From 33ab770ea0b9970d12d57d046760e10ae3e940db Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Despont?= Date: Tue, 14 May 2024 17:04:40 +0200 Subject: [PATCH 01/10] Add QR-Code options method --- src/PaymentPart/Output/TcPdfOutput/TcPdfOutput.php | 6 ++++++ src/QrCode/QrCode.php | 13 ++++++++++++- 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/src/PaymentPart/Output/TcPdfOutput/TcPdfOutput.php b/src/PaymentPart/Output/TcPdfOutput/TcPdfOutput.php index 62bc7d1..4fada4a 100644 --- a/src/PaymentPart/Output/TcPdfOutput/TcPdfOutput.php +++ b/src/PaymentPart/Output/TcPdfOutput/TcPdfOutput.php @@ -2,6 +2,7 @@ namespace Sprain\SwissQrBill\PaymentPart\Output\TcPdfOutput; +use Endroid\QrCode\Writer\SvgWriter; use setasign\Fpdi\Tcpdf\Fpdi; use Sprain\SwissQrBill\PaymentPart\Output\AbstractOutput; use Sprain\SwissQrBill\PaymentPart\Output\Element\FurtherInformation; @@ -98,6 +99,11 @@ private function addSwissQrCodeImage(): void { $qrCode = $this->getQrCode(); + // The compact version uses the element, which increases the size of the output file. + $qrCode->addOptions([ + SvgWriter::WRITER_OPTION_COMPACT => false + ]); + $method = match ($this->getQrCodeImageFormat()) { QrCode::FILE_FORMAT_SVG => 'ImageSVG', default => 'Image', diff --git a/src/QrCode/QrCode.php b/src/QrCode/QrCode.php index 516d800..ea804e2 100644 --- a/src/QrCode/QrCode.php +++ b/src/QrCode/QrCode.php @@ -30,6 +30,8 @@ final class QrCode private BaseQrCode $qrCode; private Logo $qrCodeLogo; private WriterInterface $qrCodeWriter; + /** @var array $options */ + private array $options = [SvgWriter::WRITER_OPTION_FORCE_XLINK_HREF => true]; public static function create(string $data, string $fileFormat = null): self { @@ -70,6 +72,15 @@ private function __construct(string $data, string $fileFormat) $this->setWriterByExtension($fileFormat); } + /** + * @param array $options + * @return void + */ + public function addOptions(array $options): void + { + $this->options = array_merge($this->options, $options); + } + public function writeFile(string $path): void { $extension = strtolower(pathinfo($path, PATHINFO_EXTENSION)); @@ -124,7 +135,7 @@ private function getQrCodeResult(): ResultInterface $this->qrCode, $this->qrCodeLogo, null, - [SvgWriter::WRITER_OPTION_FORCE_XLINK_HREF => true] + $this->options ); } } From b6da056f31546af4255906a73996dffae55fb756 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Despont?= Date: Tue, 14 May 2024 17:28:40 +0200 Subject: [PATCH 02/10] Composer min version --- .gitignore | 1 + composer.json | 2 +- composer.lock | 628 +++++++++--------- .../Output/TcPdfOutput/TcPdfOutput.php | 1 - 4 files changed, 306 insertions(+), 326 deletions(-) diff --git a/.gitignore b/.gitignore index ad7f8e2..ae34198 100644 --- a/.gitignore +++ b/.gitignore @@ -6,3 +6,4 @@ /example/HtmlOutput/html-example.htm /example/FpdfOutput/fpdf_example.pdf /.php-cs-fixer.cache +.idea/ diff --git a/composer.json b/composer.json index a6d3b2d..8b15ea4 100644 --- a/composer.json +++ b/composer.json @@ -11,7 +11,7 @@ "symfony/validator": "^4.4|^5.0|^6.0|^7.0", "symfony/intl": "^4.4|^5.0|^6.0|^7.0", "kmukku/php-iso11649": "^1.5", - "endroid/qr-code": "^4.4.4|^5.0", + "endroid/qr-code": "^4.4.4|^5.0.9", "symfony/polyfill-intl-icu": "^1.23" }, "require-dev": { diff --git a/composer.lock b/composer.lock index 305fcbb..0fa0a2e 100644 --- a/composer.lock +++ b/composer.lock @@ -4,32 +4,32 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "abcb8817dd048be5f3034746b31be2f7", + "content-hash": "546c41f1762b38a925701c1f1502c3d7", "packages": [ { "name": "bacon/bacon-qr-code", - "version": "2.0.8", + "version": "v3.0.0", "source": { "type": "git", "url": "https://github.com/Bacon/BaconQrCode.git", - "reference": "8674e51bb65af933a5ffaf1c308a660387c35c22" + "reference": "510de6eca6248d77d31b339d62437cc995e2fb41" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Bacon/BaconQrCode/zipball/8674e51bb65af933a5ffaf1c308a660387c35c22", - "reference": "8674e51bb65af933a5ffaf1c308a660387c35c22", + "url": "https://api.github.com/repos/Bacon/BaconQrCode/zipball/510de6eca6248d77d31b339d62437cc995e2fb41", + "reference": "510de6eca6248d77d31b339d62437cc995e2fb41", "shasum": "" }, "require": { "dasprid/enum": "^1.0.3", "ext-iconv": "*", - "php": "^7.1 || ^8.0" + "php": "^8.1" }, "require-dev": { - "phly/keep-a-changelog": "^2.1", - "phpunit/phpunit": "^7 | ^8 | ^9", - "spatie/phpunit-snapshot-assertions": "^4.2.9", - "squizlabs/php_codesniffer": "^3.4" + "phly/keep-a-changelog": "^2.12", + "phpunit/phpunit": "^10.5.11 || 11.0.4", + "spatie/phpunit-snapshot-assertions": "^5.1.5", + "squizlabs/php_codesniffer": "^3.9" }, "suggest": { "ext-imagick": "to generate QR code images" @@ -56,9 +56,9 @@ "homepage": "https://github.com/Bacon/BaconQrCode", "support": { "issues": "https://github.com/Bacon/BaconQrCode/issues", - "source": "https://github.com/Bacon/BaconQrCode/tree/2.0.8" + "source": "https://github.com/Bacon/BaconQrCode/tree/v3.0.0" }, - "time": "2022-12-07T17:46:57+00:00" + "time": "2024-04-18T11:16:25+00:00" }, { "name": "dasprid/enum", @@ -112,29 +112,26 @@ }, { "name": "endroid/qr-code", - "version": "5.0.2", + "version": "5.0.9", "source": { "type": "git", "url": "https://github.com/endroid/qr-code.git", - "reference": "e58d34fa0b86a62696144baba9d80ee98845f957" + "reference": "3dcdfab4c9122874f3915d8bf80a43b9df11852d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/endroid/qr-code/zipball/e58d34fa0b86a62696144baba9d80ee98845f957", - "reference": "e58d34fa0b86a62696144baba9d80ee98845f957", + "url": "https://api.github.com/repos/endroid/qr-code/zipball/3dcdfab4c9122874f3915d8bf80a43b9df11852d", + "reference": "3dcdfab4c9122874f3915d8bf80a43b9df11852d", "shasum": "" }, "require": { - "bacon/bacon-qr-code": "^2.0.5", + "bacon/bacon-qr-code": "^3.0", "php": "^8.1" }, - "conflict": { - "khanamiryan/qrcode-detector-decoder": "^1.0.6" - }, "require-dev": { - "endroid/quality": "dev-master", + "endroid/quality": "dev-main", "ext-gd": "*", - "khanamiryan/qrcode-detector-decoder": "^1.0.4||^2.0.2", + "khanamiryan/qrcode-detector-decoder": "^2.0.2", "setasign/fpdf": "^1.8.2" }, "suggest": { @@ -146,7 +143,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "5.x-dev" + "dev-main": "5.x-dev" } }, "autoload": { @@ -175,7 +172,7 @@ ], "support": { "issues": "https://github.com/endroid/qr-code/issues", - "source": "https://github.com/endroid/qr-code/tree/5.0.2" + "source": "https://github.com/endroid/qr-code/tree/5.0.9" }, "funding": [ { @@ -183,7 +180,7 @@ "type": "github" } ], - "time": "2023-10-04T22:55:54+00:00" + "time": "2024-05-08T08:09:28+00:00" }, { "name": "kmukku/php-iso11649", @@ -236,16 +233,16 @@ }, { "name": "symfony/intl", - "version": "v7.0.0", + "version": "v7.0.7", "source": { "type": "git", "url": "https://github.com/symfony/intl.git", - "reference": "a2bf3df1fe6ca7ed9aaf2d3f7d7a33b5529b021d" + "reference": "dd12042707110995e2e7d80103f8d9928bea8621" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/intl/zipball/a2bf3df1fe6ca7ed9aaf2d3f7d7a33b5529b021d", - "reference": "a2bf3df1fe6ca7ed9aaf2d3f7d7a33b5529b021d", + "url": "https://api.github.com/repos/symfony/intl/zipball/dd12042707110995e2e7d80103f8d9928bea8621", + "reference": "dd12042707110995e2e7d80103f8d9928bea8621", "shasum": "" }, "require": { @@ -262,7 +259,8 @@ "Symfony\\Component\\Intl\\": "" }, "exclude-from-classmap": [ - "/Tests/" + "/Tests/", + "/Resources/data/" ] }, "notification-url": "https://packagist.org/downloads/", @@ -298,7 +296,7 @@ "localization" ], "support": { - "source": "https://github.com/symfony/intl/tree/v7.0.0" + "source": "https://github.com/symfony/intl/tree/v7.0.7" }, "funding": [ { @@ -314,20 +312,20 @@ "type": "tidelift" } ], - "time": "2023-10-28T23:12:22+00:00" + "time": "2024-04-18T09:29:19+00:00" }, { "name": "symfony/polyfill-ctype", - "version": "v1.28.0", + "version": "v1.29.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-ctype.git", - "reference": "ea208ce43cbb04af6867b4fdddb1bdbf84cc28cb" + "reference": "ef4d7e442ca910c4764bce785146269b30cb5fc4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/ea208ce43cbb04af6867b4fdddb1bdbf84cc28cb", - "reference": "ea208ce43cbb04af6867b4fdddb1bdbf84cc28cb", + "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/ef4d7e442ca910c4764bce785146269b30cb5fc4", + "reference": "ef4d7e442ca910c4764bce785146269b30cb5fc4", "shasum": "" }, "require": { @@ -341,9 +339,6 @@ }, "type": "library", "extra": { - "branch-alias": { - "dev-main": "1.28-dev" - }, "thanks": { "name": "symfony/polyfill", "url": "https://github.com/symfony/polyfill" @@ -380,7 +375,7 @@ "portable" ], "support": { - "source": "https://github.com/symfony/polyfill-ctype/tree/v1.28.0" + "source": "https://github.com/symfony/polyfill-ctype/tree/v1.29.0" }, "funding": [ { @@ -396,20 +391,20 @@ "type": "tidelift" } ], - "time": "2023-01-26T09:26:14+00:00" + "time": "2024-01-29T20:11:03+00:00" }, { "name": "symfony/polyfill-intl-icu", - "version": "v1.28.0", + "version": "v1.29.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-icu.git", - "reference": "e46b4da57951a16053cd751f63f4a24292788157" + "reference": "07094a28851a49107f3ab4f9120ca2975a64b6e1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-icu/zipball/e46b4da57951a16053cd751f63f4a24292788157", - "reference": "e46b4da57951a16053cd751f63f4a24292788157", + "url": "https://api.github.com/repos/symfony/polyfill-intl-icu/zipball/07094a28851a49107f3ab4f9120ca2975a64b6e1", + "reference": "07094a28851a49107f3ab4f9120ca2975a64b6e1", "shasum": "" }, "require": { @@ -420,9 +415,6 @@ }, "type": "library", "extra": { - "branch-alias": { - "dev-main": "1.28-dev" - }, "thanks": { "name": "symfony/polyfill", "url": "https://github.com/symfony/polyfill" @@ -467,7 +459,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-icu/tree/v1.28.0" + "source": "https://github.com/symfony/polyfill-intl-icu/tree/v1.29.0" }, "funding": [ { @@ -483,20 +475,20 @@ "type": "tidelift" } ], - "time": "2023-03-21T17:27:24+00:00" + "time": "2024-01-29T20:12:16+00:00" }, { "name": "symfony/polyfill-mbstring", - "version": "v1.28.0", + "version": "v1.29.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-mbstring.git", - "reference": "42292d99c55abe617799667f454222c54c60e229" + "reference": "9773676c8a1bb1f8d4340a62efe641cf76eda7ec" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/42292d99c55abe617799667f454222c54c60e229", - "reference": "42292d99c55abe617799667f454222c54c60e229", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/9773676c8a1bb1f8d4340a62efe641cf76eda7ec", + "reference": "9773676c8a1bb1f8d4340a62efe641cf76eda7ec", "shasum": "" }, "require": { @@ -510,9 +502,6 @@ }, "type": "library", "extra": { - "branch-alias": { - "dev-main": "1.28-dev" - }, "thanks": { "name": "symfony/polyfill", "url": "https://github.com/symfony/polyfill" @@ -550,7 +539,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.28.0" + "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.29.0" }, "funding": [ { @@ -566,20 +555,20 @@ "type": "tidelift" } ], - "time": "2023-07-28T09:04:16+00:00" + "time": "2024-01-29T20:11:03+00:00" }, { "name": "symfony/polyfill-php80", - "version": "v1.28.0", + "version": "v1.29.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php80.git", - "reference": "6caa57379c4aec19c0a12a38b59b26487dcfe4b5" + "reference": "87b68208d5c1188808dd7839ee1e6c8ec3b02f1b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/6caa57379c4aec19c0a12a38b59b26487dcfe4b5", - "reference": "6caa57379c4aec19c0a12a38b59b26487dcfe4b5", + "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/87b68208d5c1188808dd7839ee1e6c8ec3b02f1b", + "reference": "87b68208d5c1188808dd7839ee1e6c8ec3b02f1b", "shasum": "" }, "require": { @@ -587,9 +576,6 @@ }, "type": "library", "extra": { - "branch-alias": { - "dev-main": "1.28-dev" - }, "thanks": { "name": "symfony/polyfill", "url": "https://github.com/symfony/polyfill" @@ -633,7 +619,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php80/tree/v1.28.0" + "source": "https://github.com/symfony/polyfill-php80/tree/v1.29.0" }, "funding": [ { @@ -649,20 +635,20 @@ "type": "tidelift" } ], - "time": "2023-01-26T09:26:14+00:00" + "time": "2024-01-29T20:11:03+00:00" }, { "name": "symfony/polyfill-php83", - "version": "v1.28.0", + "version": "v1.29.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php83.git", - "reference": "b0f46ebbeeeda3e9d2faebdfbf4b4eae9b59fa11" + "reference": "86fcae159633351e5fd145d1c47de6c528f8caff" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php83/zipball/b0f46ebbeeeda3e9d2faebdfbf4b4eae9b59fa11", - "reference": "b0f46ebbeeeda3e9d2faebdfbf4b4eae9b59fa11", + "url": "https://api.github.com/repos/symfony/polyfill-php83/zipball/86fcae159633351e5fd145d1c47de6c528f8caff", + "reference": "86fcae159633351e5fd145d1c47de6c528f8caff", "shasum": "" }, "require": { @@ -671,9 +657,6 @@ }, "type": "library", "extra": { - "branch-alias": { - "dev-main": "1.28-dev" - }, "thanks": { "name": "symfony/polyfill", "url": "https://github.com/symfony/polyfill" @@ -713,7 +696,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php83/tree/v1.28.0" + "source": "https://github.com/symfony/polyfill-php83/tree/v1.29.0" }, "funding": [ { @@ -729,20 +712,20 @@ "type": "tidelift" } ], - "time": "2023-08-16T06:22:46+00:00" + "time": "2024-01-29T20:11:03+00:00" }, { "name": "symfony/translation-contracts", - "version": "v3.4.0", + "version": "v3.5.0", "source": { "type": "git", "url": "https://github.com/symfony/translation-contracts.git", - "reference": "dee0c6e5b4c07ce851b462530088e64b255ac9c5" + "reference": "b9d2189887bb6b2e0367a9fc7136c5239ab9b05a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/dee0c6e5b4c07ce851b462530088e64b255ac9c5", - "reference": "dee0c6e5b4c07ce851b462530088e64b255ac9c5", + "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/b9d2189887bb6b2e0367a9fc7136c5239ab9b05a", + "reference": "b9d2189887bb6b2e0367a9fc7136c5239ab9b05a", "shasum": "" }, "require": { @@ -751,7 +734,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "3.4-dev" + "dev-main": "3.5-dev" }, "thanks": { "name": "symfony/contracts", @@ -791,7 +774,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/translation-contracts/tree/v3.4.0" + "source": "https://github.com/symfony/translation-contracts/tree/v3.5.0" }, "funding": [ { @@ -807,20 +790,20 @@ "type": "tidelift" } ], - "time": "2023-07-25T15:08:44+00:00" + "time": "2024-04-18T09:32:20+00:00" }, { "name": "symfony/validator", - "version": "v7.0.0", + "version": "v7.0.7", "source": { "type": "git", "url": "https://github.com/symfony/validator.git", - "reference": "616b39ffb22c1519f7fd2582b8052cde4c2d0b9f" + "reference": "ab4e75b9d23ba70e78480aecbe4d8da15adf10eb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/validator/zipball/616b39ffb22c1519f7fd2582b8052cde4c2d0b9f", - "reference": "616b39ffb22c1519f7fd2582b8052cde4c2d0b9f", + "url": "https://api.github.com/repos/symfony/validator/zipball/ab4e75b9d23ba70e78480aecbe4d8da15adf10eb", + "reference": "ab4e75b9d23ba70e78480aecbe4d8da15adf10eb", "shasum": "" }, "require": { @@ -838,7 +821,7 @@ "symfony/http-kernel": "<6.4", "symfony/intl": "<6.4", "symfony/property-info": "<6.4", - "symfony/translation": "<6.4", + "symfony/translation": "<6.4.3|>=7.0,<7.0.3", "symfony/yaml": "<6.4" }, "require-dev": { @@ -856,7 +839,7 @@ "symfony/mime": "^6.4|^7.0", "symfony/property-access": "^6.4|^7.0", "symfony/property-info": "^6.4|^7.0", - "symfony/translation": "^6.4|^7.0", + "symfony/translation": "^6.4.3|^7.0.3", "symfony/yaml": "^6.4|^7.0" }, "type": "library", @@ -885,7 +868,7 @@ "description": "Provides tools to validate values", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/validator/tree/v7.0.0" + "source": "https://github.com/symfony/validator/tree/v7.0.7" }, "funding": [ { @@ -901,22 +884,22 @@ "type": "tidelift" } ], - "time": "2023-11-29T08:40:23+00:00" + "time": "2024-04-28T11:44:19+00:00" } ], "packages-dev": [ { "name": "composer/pcre", - "version": "3.1.1", + "version": "3.1.3", "source": { "type": "git", "url": "https://github.com/composer/pcre.git", - "reference": "00104306927c7a0919b4ced2aaa6782c1e61a3c9" + "reference": "5b16e25a5355f1f3afdfc2f954a0a80aec4826a8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/pcre/zipball/00104306927c7a0919b4ced2aaa6782c1e61a3c9", - "reference": "00104306927c7a0919b4ced2aaa6782c1e61a3c9", + "url": "https://api.github.com/repos/composer/pcre/zipball/5b16e25a5355f1f3afdfc2f954a0a80aec4826a8", + "reference": "5b16e25a5355f1f3afdfc2f954a0a80aec4826a8", "shasum": "" }, "require": { @@ -958,7 +941,7 @@ ], "support": { "issues": "https://github.com/composer/pcre/issues", - "source": "https://github.com/composer/pcre/tree/3.1.1" + "source": "https://github.com/composer/pcre/tree/3.1.3" }, "funding": [ { @@ -974,7 +957,7 @@ "type": "tidelift" } ], - "time": "2023-10-11T07:11:09+00:00" + "time": "2024-03-19T10:26:25+00:00" }, { "name": "composer/semver", @@ -1059,16 +1042,16 @@ }, { "name": "composer/xdebug-handler", - "version": "3.0.3", + "version": "3.0.5", "source": { "type": "git", "url": "https://github.com/composer/xdebug-handler.git", - "reference": "ced299686f41dce890debac69273b47ffe98a40c" + "reference": "6c1925561632e83d60a44492e0b344cf48ab85ef" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/ced299686f41dce890debac69273b47ffe98a40c", - "reference": "ced299686f41dce890debac69273b47ffe98a40c", + "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/6c1925561632e83d60a44492e0b344cf48ab85ef", + "reference": "6c1925561632e83d60a44492e0b344cf48ab85ef", "shasum": "" }, "require": { @@ -1079,7 +1062,7 @@ "require-dev": { "phpstan/phpstan": "^1.0", "phpstan/phpstan-strict-rules": "^1.1", - "symfony/phpunit-bridge": "^6.0" + "phpunit/phpunit": "^8.5 || ^9.6 || ^10.5" }, "type": "library", "autoload": { @@ -1103,9 +1086,9 @@ "performance" ], "support": { - "irc": "irc://irc.freenode.org/composer", + "irc": "ircs://irc.libera.chat:6697/composer", "issues": "https://github.com/composer/xdebug-handler/issues", - "source": "https://github.com/composer/xdebug-handler/tree/3.0.3" + "source": "https://github.com/composer/xdebug-handler/tree/3.0.5" }, "funding": [ { @@ -1121,20 +1104,20 @@ "type": "tidelift" } ], - "time": "2022-02-25T21:32:43+00:00" + "time": "2024-05-06T16:37:16+00:00" }, { "name": "dg/bypass-finals", - "version": "v1.5.1", + "version": "v1.6.0", "source": { "type": "git", "url": "https://github.com/dg/bypass-finals.git", - "reference": "12ef25e1f8d4144e4ec80d13a28895e8942f4104" + "reference": "efe2fe04bae9f0de271dd462afc049067889e6d1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/dg/bypass-finals/zipball/12ef25e1f8d4144e4ec80d13a28895e8942f4104", - "reference": "12ef25e1f8d4144e4ec80d13a28895e8942f4104", + "url": "https://api.github.com/repos/dg/bypass-finals/zipball/efe2fe04bae9f0de271dd462afc049067889e6d1", + "reference": "efe2fe04bae9f0de271dd462afc049067889e6d1", "shasum": "" }, "require": { @@ -1172,9 +1155,9 @@ ], "support": { "issues": "https://github.com/dg/bypass-finals/issues", - "source": "https://github.com/dg/bypass-finals/tree/v1.5.1" + "source": "https://github.com/dg/bypass-finals/tree/v1.6.0" }, - "time": "2023-09-16T09:13:54+00:00" + "time": "2023-11-19T22:19:30+00:00" }, { "name": "dms/phpunit-arraysubset-asserts", @@ -1346,25 +1329,26 @@ }, { "name": "friendsofphp/php-cs-fixer", - "version": "v3.40.0", + "version": "v3.56.1", "source": { "type": "git", "url": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer.git", - "reference": "27d2b3265b5d550ec411b4319967ae7cfddfb2e0" + "reference": "69c6168ae8bc96dc656c7f6c7271120a68ae5903" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/PHP-CS-Fixer/PHP-CS-Fixer/zipball/27d2b3265b5d550ec411b4319967ae7cfddfb2e0", - "reference": "27d2b3265b5d550ec411b4319967ae7cfddfb2e0", + "url": "https://api.github.com/repos/PHP-CS-Fixer/PHP-CS-Fixer/zipball/69c6168ae8bc96dc656c7f6c7271120a68ae5903", + "reference": "69c6168ae8bc96dc656c7f6c7271120a68ae5903", "shasum": "" }, "require": { "composer/semver": "^3.4", "composer/xdebug-handler": "^3.0.3", + "ext-filter": "*", "ext-json": "*", "ext-tokenizer": "*", "php": "^7.4 || ^8.0", - "sebastian/diff": "^4.0 || ^5.0", + "sebastian/diff": "^4.0 || ^5.0 || ^6.0", "symfony/console": "^5.4 || ^6.0 || ^7.0", "symfony/event-dispatcher": "^5.4 || ^6.0 || ^7.0", "symfony/filesystem": "^5.4 || ^6.0 || ^7.0", @@ -1378,6 +1362,7 @@ }, "require-dev": { "facile-it/paraunit": "^1.3 || ^2.0", + "infection/infection": "^0.27.11", "justinrainbow/json-schema": "^5.2", "keradus/cli-executor": "^2.1", "mikey179/vfsstream": "^1.6.11", @@ -1385,10 +1370,8 @@ "php-cs-fixer/accessible-object": "^1.1", "php-cs-fixer/phpunit-constraint-isidenticalstring": "^1.4", "php-cs-fixer/phpunit-constraint-xmlmatchesxsd": "^1.4", - "phpspec/prophecy": "^1.17", - "phpspec/prophecy-phpunit": "^2.0", - "phpunit/phpunit": "^9.6", - "symfony/phpunit-bridge": "^6.3.8 || ^7.0", + "phpunit/phpunit": "^9.6 || ^10.5.5 || ^11.0.2", + "symfony/var-dumper": "^5.4 || ^6.0 || ^7.0", "symfony/yaml": "^5.4 || ^6.0 || ^7.0" }, "suggest": { @@ -1427,7 +1410,7 @@ ], "support": { "issues": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues", - "source": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/tree/v3.40.0" + "source": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/tree/v3.56.1" }, "funding": [ { @@ -1435,7 +1418,7 @@ "type": "github" } ], - "time": "2023-11-26T09:25:53+00:00" + "time": "2024-05-10T11:31:15+00:00" }, { "name": "khanamiryan/qrcode-detector-decoder", @@ -1553,25 +1536,27 @@ }, { "name": "nikic/php-parser", - "version": "v4.17.1", + "version": "v5.0.2", "source": { "type": "git", "url": "https://github.com/nikic/PHP-Parser.git", - "reference": "a6303e50c90c355c7eeee2c4a8b27fe8dc8fef1d" + "reference": "139676794dc1e9231bf7bcd123cfc0c99182cb13" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/a6303e50c90c355c7eeee2c4a8b27fe8dc8fef1d", - "reference": "a6303e50c90c355c7eeee2c4a8b27fe8dc8fef1d", + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/139676794dc1e9231bf7bcd123cfc0c99182cb13", + "reference": "139676794dc1e9231bf7bcd123cfc0c99182cb13", "shasum": "" }, "require": { + "ext-ctype": "*", + "ext-json": "*", "ext-tokenizer": "*", - "php": ">=7.0" + "php": ">=7.4" }, "require-dev": { "ircmaxell/php-yacc": "^0.0.7", - "phpunit/phpunit": "^6.5 || ^7.0 || ^8.0 || ^9.0" + "phpunit/phpunit": "^7.0 || ^8.0 || ^9.0" }, "bin": [ "bin/php-parse" @@ -1579,7 +1564,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "4.9-dev" + "dev-master": "5.0-dev" } }, "autoload": { @@ -1603,26 +1588,27 @@ ], "support": { "issues": "https://github.com/nikic/PHP-Parser/issues", - "source": "https://github.com/nikic/PHP-Parser/tree/v4.17.1" + "source": "https://github.com/nikic/PHP-Parser/tree/v5.0.2" }, - "time": "2023-08-13T19:53:39+00:00" + "time": "2024-03-05T20:51:40+00:00" }, { "name": "phar-io/manifest", - "version": "2.0.3", + "version": "2.0.4", "source": { "type": "git", "url": "https://github.com/phar-io/manifest.git", - "reference": "97803eca37d319dfa7826cc2437fc020857acb53" + "reference": "54750ef60c58e43759730615a392c31c80e23176" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phar-io/manifest/zipball/97803eca37d319dfa7826cc2437fc020857acb53", - "reference": "97803eca37d319dfa7826cc2437fc020857acb53", + "url": "https://api.github.com/repos/phar-io/manifest/zipball/54750ef60c58e43759730615a392c31c80e23176", + "reference": "54750ef60c58e43759730615a392c31c80e23176", "shasum": "" }, "require": { "ext-dom": "*", + "ext-libxml": "*", "ext-phar": "*", "ext-xmlwriter": "*", "phar-io/version": "^3.0.1", @@ -1663,9 +1649,15 @@ "description": "Component for reading phar.io manifest information from a PHP Archive (PHAR)", "support": { "issues": "https://github.com/phar-io/manifest/issues", - "source": "https://github.com/phar-io/manifest/tree/2.0.3" + "source": "https://github.com/phar-io/manifest/tree/2.0.4" }, - "time": "2021-07-20T11:28:43+00:00" + "funding": [ + { + "url": "https://github.com/theseer", + "type": "github" + } + ], + "time": "2024-03-03T12:33:53+00:00" }, { "name": "phar-io/version", @@ -1724,12 +1716,12 @@ "source": { "type": "git", "url": "https://github.com/phpstan/phpstan.git", - "reference": "862d87eaf8eccfaf3cbb2a8a4837d2e025af7d92" + "reference": "624d5765113711b4553c27a713e395e4838b7d6b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpstan/zipball/862d87eaf8eccfaf3cbb2a8a4837d2e025af7d92", - "reference": "862d87eaf8eccfaf3cbb2a8a4837d2e025af7d92", + "url": "https://api.github.com/repos/phpstan/phpstan/zipball/624d5765113711b4553c27a713e395e4838b7d6b", + "reference": "624d5765113711b4553c27a713e395e4838b7d6b", "shasum": "" }, "require": { @@ -1773,33 +1765,29 @@ { "url": "https://github.com/phpstan", "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/phpstan/phpstan", - "type": "tidelift" } ], - "time": "2023-11-29T19:38:27+00:00" + "time": "2024-05-14T12:12:40+00:00" }, { "name": "phpunit/php-code-coverage", - "version": "9.2.29", + "version": "9.2.31", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-code-coverage.git", - "reference": "6a3a87ac2bbe33b25042753df8195ba4aa534c76" + "reference": "48c34b5d8d983006bd2adc2d0de92963b9155965" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/6a3a87ac2bbe33b25042753df8195ba4aa534c76", - "reference": "6a3a87ac2bbe33b25042753df8195ba4aa534c76", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/48c34b5d8d983006bd2adc2d0de92963b9155965", + "reference": "48c34b5d8d983006bd2adc2d0de92963b9155965", "shasum": "" }, "require": { "ext-dom": "*", "ext-libxml": "*", "ext-xmlwriter": "*", - "nikic/php-parser": "^4.15", + "nikic/php-parser": "^4.18 || ^5.0", "php": ">=7.3", "phpunit/php-file-iterator": "^3.0.3", "phpunit/php-text-template": "^2.0.2", @@ -1849,7 +1837,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues", "security": "https://github.com/sebastianbergmann/php-code-coverage/security/policy", - "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.29" + "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.31" }, "funding": [ { @@ -1857,7 +1845,7 @@ "type": "github" } ], - "time": "2023-09-19T04:57:46+00:00" + "time": "2024-03-02T06:37:42+00:00" }, { "name": "phpunit/php-file-iterator", @@ -2102,16 +2090,16 @@ }, { "name": "phpunit/phpunit", - "version": "9.6.13", + "version": "9.6.19", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "f3d767f7f9e191eab4189abe41ab37797e30b1be" + "reference": "a1a54a473501ef4cdeaae4e06891674114d79db8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/f3d767f7f9e191eab4189abe41ab37797e30b1be", - "reference": "f3d767f7f9e191eab4189abe41ab37797e30b1be", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/a1a54a473501ef4cdeaae4e06891674114d79db8", + "reference": "a1a54a473501ef4cdeaae4e06891674114d79db8", "shasum": "" }, "require": { @@ -2185,7 +2173,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/phpunit/issues", "security": "https://github.com/sebastianbergmann/phpunit/security/policy", - "source": "https://github.com/sebastianbergmann/phpunit/tree/9.6.13" + "source": "https://github.com/sebastianbergmann/phpunit/tree/9.6.19" }, "funding": [ { @@ -2201,7 +2189,7 @@ "type": "tidelift" } ], - "time": "2023-09-19T05:39:22+00:00" + "time": "2024-04-05T04:35:58+00:00" }, { "name": "psr/container", @@ -2358,16 +2346,16 @@ }, { "name": "sebastian/cli-parser", - "version": "1.0.1", + "version": "1.0.2", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/cli-parser.git", - "reference": "442e7c7e687e42adc03470c7b668bc4b2402c0b2" + "reference": "2b56bea83a09de3ac06bb18b92f068e60cc6f50b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/442e7c7e687e42adc03470c7b668bc4b2402c0b2", - "reference": "442e7c7e687e42adc03470c7b668bc4b2402c0b2", + "url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/2b56bea83a09de3ac06bb18b92f068e60cc6f50b", + "reference": "2b56bea83a09de3ac06bb18b92f068e60cc6f50b", "shasum": "" }, "require": { @@ -2402,7 +2390,7 @@ "homepage": "https://github.com/sebastianbergmann/cli-parser", "support": { "issues": "https://github.com/sebastianbergmann/cli-parser/issues", - "source": "https://github.com/sebastianbergmann/cli-parser/tree/1.0.1" + "source": "https://github.com/sebastianbergmann/cli-parser/tree/1.0.2" }, "funding": [ { @@ -2410,7 +2398,7 @@ "type": "github" } ], - "time": "2020-09-28T06:08:49+00:00" + "time": "2024-03-02T06:27:43+00:00" }, { "name": "sebastian/code-unit", @@ -2599,20 +2587,20 @@ }, { "name": "sebastian/complexity", - "version": "2.0.2", + "version": "2.0.3", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/complexity.git", - "reference": "739b35e53379900cc9ac327b2147867b8b6efd88" + "reference": "25f207c40d62b8b7aa32f5ab026c53561964053a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/complexity/zipball/739b35e53379900cc9ac327b2147867b8b6efd88", - "reference": "739b35e53379900cc9ac327b2147867b8b6efd88", + "url": "https://api.github.com/repos/sebastianbergmann/complexity/zipball/25f207c40d62b8b7aa32f5ab026c53561964053a", + "reference": "25f207c40d62b8b7aa32f5ab026c53561964053a", "shasum": "" }, "require": { - "nikic/php-parser": "^4.7", + "nikic/php-parser": "^4.18 || ^5.0", "php": ">=7.3" }, "require-dev": { @@ -2644,7 +2632,7 @@ "homepage": "https://github.com/sebastianbergmann/complexity", "support": { "issues": "https://github.com/sebastianbergmann/complexity/issues", - "source": "https://github.com/sebastianbergmann/complexity/tree/2.0.2" + "source": "https://github.com/sebastianbergmann/complexity/tree/2.0.3" }, "funding": [ { @@ -2652,20 +2640,20 @@ "type": "github" } ], - "time": "2020-10-26T15:52:27+00:00" + "time": "2023-12-22T06:19:30+00:00" }, { "name": "sebastian/diff", - "version": "4.0.5", + "version": "4.0.6", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/diff.git", - "reference": "74be17022044ebaaecfdf0c5cd504fc9cd5a7131" + "reference": "ba01945089c3a293b01ba9badc29ad55b106b0bc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/74be17022044ebaaecfdf0c5cd504fc9cd5a7131", - "reference": "74be17022044ebaaecfdf0c5cd504fc9cd5a7131", + "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/ba01945089c3a293b01ba9badc29ad55b106b0bc", + "reference": "ba01945089c3a293b01ba9badc29ad55b106b0bc", "shasum": "" }, "require": { @@ -2710,7 +2698,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/diff/issues", - "source": "https://github.com/sebastianbergmann/diff/tree/4.0.5" + "source": "https://github.com/sebastianbergmann/diff/tree/4.0.6" }, "funding": [ { @@ -2718,7 +2706,7 @@ "type": "github" } ], - "time": "2023-05-07T05:35:17+00:00" + "time": "2024-03-02T06:30:58+00:00" }, { "name": "sebastian/environment", @@ -2785,16 +2773,16 @@ }, { "name": "sebastian/exporter", - "version": "4.0.5", + "version": "4.0.6", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/exporter.git", - "reference": "ac230ed27f0f98f597c8a2b6eb7ac563af5e5b9d" + "reference": "78c00df8f170e02473b682df15bfcdacc3d32d72" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/ac230ed27f0f98f597c8a2b6eb7ac563af5e5b9d", - "reference": "ac230ed27f0f98f597c8a2b6eb7ac563af5e5b9d", + "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/78c00df8f170e02473b682df15bfcdacc3d32d72", + "reference": "78c00df8f170e02473b682df15bfcdacc3d32d72", "shasum": "" }, "require": { @@ -2850,7 +2838,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/exporter/issues", - "source": "https://github.com/sebastianbergmann/exporter/tree/4.0.5" + "source": "https://github.com/sebastianbergmann/exporter/tree/4.0.6" }, "funding": [ { @@ -2858,20 +2846,20 @@ "type": "github" } ], - "time": "2022-09-14T06:03:37+00:00" + "time": "2024-03-02T06:33:00+00:00" }, { "name": "sebastian/global-state", - "version": "5.0.6", + "version": "5.0.7", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/global-state.git", - "reference": "bde739e7565280bda77be70044ac1047bc007e34" + "reference": "bca7df1f32ee6fe93b4d4a9abbf69e13a4ada2c9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/bde739e7565280bda77be70044ac1047bc007e34", - "reference": "bde739e7565280bda77be70044ac1047bc007e34", + "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/bca7df1f32ee6fe93b4d4a9abbf69e13a4ada2c9", + "reference": "bca7df1f32ee6fe93b4d4a9abbf69e13a4ada2c9", "shasum": "" }, "require": { @@ -2914,7 +2902,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/global-state/issues", - "source": "https://github.com/sebastianbergmann/global-state/tree/5.0.6" + "source": "https://github.com/sebastianbergmann/global-state/tree/5.0.7" }, "funding": [ { @@ -2922,24 +2910,24 @@ "type": "github" } ], - "time": "2023-08-02T09:26:13+00:00" + "time": "2024-03-02T06:35:11+00:00" }, { "name": "sebastian/lines-of-code", - "version": "1.0.3", + "version": "1.0.4", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/lines-of-code.git", - "reference": "c1c2e997aa3146983ed888ad08b15470a2e22ecc" + "reference": "e1e4a170560925c26d424b6a03aed157e7dcc5c5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/lines-of-code/zipball/c1c2e997aa3146983ed888ad08b15470a2e22ecc", - "reference": "c1c2e997aa3146983ed888ad08b15470a2e22ecc", + "url": "https://api.github.com/repos/sebastianbergmann/lines-of-code/zipball/e1e4a170560925c26d424b6a03aed157e7dcc5c5", + "reference": "e1e4a170560925c26d424b6a03aed157e7dcc5c5", "shasum": "" }, "require": { - "nikic/php-parser": "^4.6", + "nikic/php-parser": "^4.18 || ^5.0", "php": ">=7.3" }, "require-dev": { @@ -2971,7 +2959,7 @@ "homepage": "https://github.com/sebastianbergmann/lines-of-code", "support": { "issues": "https://github.com/sebastianbergmann/lines-of-code/issues", - "source": "https://github.com/sebastianbergmann/lines-of-code/tree/1.0.3" + "source": "https://github.com/sebastianbergmann/lines-of-code/tree/1.0.4" }, "funding": [ { @@ -2979,7 +2967,7 @@ "type": "github" } ], - "time": "2020-11-28T06:42:11+00:00" + "time": "2023-12-22T06:20:34+00:00" }, { "name": "sebastian/object-enumerator", @@ -3158,16 +3146,16 @@ }, { "name": "sebastian/resource-operations", - "version": "3.0.3", + "version": "3.0.4", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/resource-operations.git", - "reference": "0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8" + "reference": "05d5692a7993ecccd56a03e40cd7e5b09b1d404e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8", - "reference": "0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8", + "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/05d5692a7993ecccd56a03e40cd7e5b09b1d404e", + "reference": "05d5692a7993ecccd56a03e40cd7e5b09b1d404e", "shasum": "" }, "require": { @@ -3179,7 +3167,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "3.0-dev" + "dev-main": "3.0-dev" } }, "autoload": { @@ -3200,8 +3188,7 @@ "description": "Provides a list of PHP built-in functions that operate on resources", "homepage": "https://www.github.com/sebastianbergmann/resource-operations", "support": { - "issues": "https://github.com/sebastianbergmann/resource-operations/issues", - "source": "https://github.com/sebastianbergmann/resource-operations/tree/3.0.3" + "source": "https://github.com/sebastianbergmann/resource-operations/tree/3.0.4" }, "funding": [ { @@ -3209,7 +3196,7 @@ "type": "github" } ], - "time": "2020-09-28T06:45:17+00:00" + "time": "2024-03-14T16:00:52+00:00" }, { "name": "sebastian/type", @@ -3368,16 +3355,16 @@ }, { "name": "setasign/fpdi", - "version": "v2.5.0", + "version": "v2.6.0", "source": { "type": "git", "url": "https://github.com/Setasign/FPDI.git", - "reference": "ecf0459643ec963febfb9a5d529dcd93656006a4" + "reference": "a6db878129ec6c7e141316ee71872923e7f1b7ad" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Setasign/FPDI/zipball/ecf0459643ec963febfb9a5d529dcd93656006a4", - "reference": "ecf0459643ec963febfb9a5d529dcd93656006a4", + "url": "https://api.github.com/repos/Setasign/FPDI/zipball/a6db878129ec6c7e141316ee71872923e7f1b7ad", + "reference": "a6db878129ec6c7e141316ee71872923e7f1b7ad", "shasum": "" }, "require": { @@ -3389,8 +3376,8 @@ }, "require-dev": { "phpunit/phpunit": "~5.7", - "setasign/fpdf": "~1.8", - "setasign/tfpdf": "~1.31", + "setasign/fpdf": "~1.8.6", + "setasign/tfpdf": "~1.33", "squizlabs/php_codesniffer": "^3.5", "tecnickcom/tcpdf": "~6.2" }, @@ -3428,7 +3415,7 @@ ], "support": { "issues": "https://github.com/Setasign/FPDI/issues", - "source": "https://github.com/Setasign/FPDI/tree/v2.5.0" + "source": "https://github.com/Setasign/FPDI/tree/v2.6.0" }, "funding": [ { @@ -3436,20 +3423,20 @@ "type": "tidelift" } ], - "time": "2023-09-28T10:46:27+00:00" + "time": "2023-12-11T16:03:32+00:00" }, { "name": "symfony/console", - "version": "v7.0.0", + "version": "v7.0.7", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "64e06788686633deb8d9a7c75ab31bcf4b233a26" + "reference": "c981e0e9380ce9f146416bde3150c79197ce9986" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/64e06788686633deb8d9a7c75ab31bcf4b233a26", - "reference": "64e06788686633deb8d9a7c75ab31bcf4b233a26", + "url": "https://api.github.com/repos/symfony/console/zipball/c981e0e9380ce9f146416bde3150c79197ce9986", + "reference": "c981e0e9380ce9f146416bde3150c79197ce9986", "shasum": "" }, "require": { @@ -3513,7 +3500,7 @@ "terminal" ], "support": { - "source": "https://github.com/symfony/console/tree/v7.0.0" + "source": "https://github.com/symfony/console/tree/v7.0.7" }, "funding": [ { @@ -3529,20 +3516,20 @@ "type": "tidelift" } ], - "time": "2023-11-20T16:43:42+00:00" + "time": "2024-04-18T09:29:19+00:00" }, { "name": "symfony/deprecation-contracts", - "version": "v3.4.0", + "version": "v3.5.0", "source": { "type": "git", "url": "https://github.com/symfony/deprecation-contracts.git", - "reference": "7c3aff79d10325257a001fcf92d991f24fc967cf" + "reference": "0e0d29ce1f20deffb4ab1b016a7257c4f1e789a1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/7c3aff79d10325257a001fcf92d991f24fc967cf", - "reference": "7c3aff79d10325257a001fcf92d991f24fc967cf", + "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/0e0d29ce1f20deffb4ab1b016a7257c4f1e789a1", + "reference": "0e0d29ce1f20deffb4ab1b016a7257c4f1e789a1", "shasum": "" }, "require": { @@ -3551,7 +3538,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "3.4-dev" + "dev-main": "3.5-dev" }, "thanks": { "name": "symfony/contracts", @@ -3580,7 +3567,7 @@ "description": "A generic function and convention to trigger deprecation notices", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/deprecation-contracts/tree/v3.4.0" + "source": "https://github.com/symfony/deprecation-contracts/tree/v3.5.0" }, "funding": [ { @@ -3596,20 +3583,20 @@ "type": "tidelift" } ], - "time": "2023-05-23T14:45:45+00:00" + "time": "2024-04-18T09:32:20+00:00" }, { "name": "symfony/event-dispatcher", - "version": "v7.0.0", + "version": "v7.0.7", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher.git", - "reference": "c459b40ffe67c49af6fd392aac374c9edf8a027e" + "reference": "db2a7fab994d67d92356bb39c367db115d9d30f9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/c459b40ffe67c49af6fd392aac374c9edf8a027e", - "reference": "c459b40ffe67c49af6fd392aac374c9edf8a027e", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/db2a7fab994d67d92356bb39c367db115d9d30f9", + "reference": "db2a7fab994d67d92356bb39c367db115d9d30f9", "shasum": "" }, "require": { @@ -3660,7 +3647,7 @@ "description": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/event-dispatcher/tree/v7.0.0" + "source": "https://github.com/symfony/event-dispatcher/tree/v7.0.7" }, "funding": [ { @@ -3676,20 +3663,20 @@ "type": "tidelift" } ], - "time": "2023-07-27T16:29:09+00:00" + "time": "2024-04-18T09:29:19+00:00" }, { "name": "symfony/event-dispatcher-contracts", - "version": "v3.4.0", + "version": "v3.5.0", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher-contracts.git", - "reference": "a76aed96a42d2b521153fb382d418e30d18b59df" + "reference": "8f93aec25d41b72493c6ddff14e916177c9efc50" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/a76aed96a42d2b521153fb382d418e30d18b59df", - "reference": "a76aed96a42d2b521153fb382d418e30d18b59df", + "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/8f93aec25d41b72493c6ddff14e916177c9efc50", + "reference": "8f93aec25d41b72493c6ddff14e916177c9efc50", "shasum": "" }, "require": { @@ -3699,7 +3686,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "3.4-dev" + "dev-main": "3.5-dev" }, "thanks": { "name": "symfony/contracts", @@ -3736,7 +3723,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v3.4.0" + "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v3.5.0" }, "funding": [ { @@ -3752,26 +3739,27 @@ "type": "tidelift" } ], - "time": "2023-05-23T14:45:45+00:00" + "time": "2024-04-18T09:32:20+00:00" }, { "name": "symfony/filesystem", - "version": "v7.0.0", + "version": "v7.0.7", "source": { "type": "git", "url": "https://github.com/symfony/filesystem.git", - "reference": "7da8ea2362a283771478c5f7729cfcb43a76b8b7" + "reference": "cc168be6fbdcdf3401f50ae863ee3818ed4338f5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/filesystem/zipball/7da8ea2362a283771478c5f7729cfcb43a76b8b7", - "reference": "7da8ea2362a283771478c5f7729cfcb43a76b8b7", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/cc168be6fbdcdf3401f50ae863ee3818ed4338f5", + "reference": "cc168be6fbdcdf3401f50ae863ee3818ed4338f5", "shasum": "" }, "require": { "php": ">=8.2", "symfony/polyfill-ctype": "~1.8", - "symfony/polyfill-mbstring": "~1.8" + "symfony/polyfill-mbstring": "~1.8", + "symfony/process": "^6.4|^7.0" }, "type": "library", "autoload": { @@ -3799,7 +3787,7 @@ "description": "Provides basic utilities for the filesystem", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/filesystem/tree/v7.0.0" + "source": "https://github.com/symfony/filesystem/tree/v7.0.7" }, "funding": [ { @@ -3815,20 +3803,20 @@ "type": "tidelift" } ], - "time": "2023-07-27T06:33:22+00:00" + "time": "2024-04-18T09:29:19+00:00" }, { "name": "symfony/finder", - "version": "v7.0.0", + "version": "v7.0.7", "source": { "type": "git", "url": "https://github.com/symfony/finder.git", - "reference": "6e5688d69f7cfc4ed4a511e96007e06c2d34ce56" + "reference": "4d58f0f4fe95a30d7b538d71197135483560b97c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/6e5688d69f7cfc4ed4a511e96007e06c2d34ce56", - "reference": "6e5688d69f7cfc4ed4a511e96007e06c2d34ce56", + "url": "https://api.github.com/repos/symfony/finder/zipball/4d58f0f4fe95a30d7b538d71197135483560b97c", + "reference": "4d58f0f4fe95a30d7b538d71197135483560b97c", "shasum": "" }, "require": { @@ -3863,7 +3851,7 @@ "description": "Finds files and directories via an intuitive fluent interface", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/finder/tree/v7.0.0" + "source": "https://github.com/symfony/finder/tree/v7.0.7" }, "funding": [ { @@ -3879,20 +3867,20 @@ "type": "tidelift" } ], - "time": "2023-10-31T17:59:56+00:00" + "time": "2024-04-28T11:44:19+00:00" }, { "name": "symfony/options-resolver", - "version": "v7.0.0", + "version": "v7.0.7", "source": { "type": "git", "url": "https://github.com/symfony/options-resolver.git", - "reference": "700ff4096e346f54cb628ea650767c8130f1001f" + "reference": "23cc173858776ad451e31f053b1c9f47840b2cfa" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/options-resolver/zipball/700ff4096e346f54cb628ea650767c8130f1001f", - "reference": "700ff4096e346f54cb628ea650767c8130f1001f", + "url": "https://api.github.com/repos/symfony/options-resolver/zipball/23cc173858776ad451e31f053b1c9f47840b2cfa", + "reference": "23cc173858776ad451e31f053b1c9f47840b2cfa", "shasum": "" }, "require": { @@ -3930,7 +3918,7 @@ "options" ], "support": { - "source": "https://github.com/symfony/options-resolver/tree/v7.0.0" + "source": "https://github.com/symfony/options-resolver/tree/v7.0.7" }, "funding": [ { @@ -3946,20 +3934,20 @@ "type": "tidelift" } ], - "time": "2023-08-08T10:20:21+00:00" + "time": "2024-04-18T09:29:19+00:00" }, { "name": "symfony/polyfill-intl-grapheme", - "version": "v1.28.0", + "version": "v1.29.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-grapheme.git", - "reference": "875e90aeea2777b6f135677f618529449334a612" + "reference": "32a9da87d7b3245e09ac426c83d334ae9f06f80f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/875e90aeea2777b6f135677f618529449334a612", - "reference": "875e90aeea2777b6f135677f618529449334a612", + "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/32a9da87d7b3245e09ac426c83d334ae9f06f80f", + "reference": "32a9da87d7b3245e09ac426c83d334ae9f06f80f", "shasum": "" }, "require": { @@ -3970,9 +3958,6 @@ }, "type": "library", "extra": { - "branch-alias": { - "dev-main": "1.28-dev" - }, "thanks": { "name": "symfony/polyfill", "url": "https://github.com/symfony/polyfill" @@ -4011,7 +3996,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.28.0" + "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.29.0" }, "funding": [ { @@ -4027,20 +4012,20 @@ "type": "tidelift" } ], - "time": "2023-01-26T09:26:14+00:00" + "time": "2024-01-29T20:11:03+00:00" }, { "name": "symfony/polyfill-intl-normalizer", - "version": "v1.28.0", + "version": "v1.29.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-normalizer.git", - "reference": "8c4ad05dd0120b6a53c1ca374dca2ad0a1c4ed92" + "reference": "bc45c394692b948b4d383a08d7753968bed9a83d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/8c4ad05dd0120b6a53c1ca374dca2ad0a1c4ed92", - "reference": "8c4ad05dd0120b6a53c1ca374dca2ad0a1c4ed92", + "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/bc45c394692b948b4d383a08d7753968bed9a83d", + "reference": "bc45c394692b948b4d383a08d7753968bed9a83d", "shasum": "" }, "require": { @@ -4051,9 +4036,6 @@ }, "type": "library", "extra": { - "branch-alias": { - "dev-main": "1.28-dev" - }, "thanks": { "name": "symfony/polyfill", "url": "https://github.com/symfony/polyfill" @@ -4095,7 +4077,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.28.0" + "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.29.0" }, "funding": [ { @@ -4111,20 +4093,20 @@ "type": "tidelift" } ], - "time": "2023-01-26T09:26:14+00:00" + "time": "2024-01-29T20:11:03+00:00" }, { "name": "symfony/polyfill-php81", - "version": "v1.28.0", + "version": "v1.29.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php81.git", - "reference": "7581cd600fa9fd681b797d00b02f068e2f13263b" + "reference": "c565ad1e63f30e7477fc40738343c62b40bc672d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php81/zipball/7581cd600fa9fd681b797d00b02f068e2f13263b", - "reference": "7581cd600fa9fd681b797d00b02f068e2f13263b", + "url": "https://api.github.com/repos/symfony/polyfill-php81/zipball/c565ad1e63f30e7477fc40738343c62b40bc672d", + "reference": "c565ad1e63f30e7477fc40738343c62b40bc672d", "shasum": "" }, "require": { @@ -4132,9 +4114,6 @@ }, "type": "library", "extra": { - "branch-alias": { - "dev-main": "1.28-dev" - }, "thanks": { "name": "symfony/polyfill", "url": "https://github.com/symfony/polyfill" @@ -4174,7 +4153,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php81/tree/v1.28.0" + "source": "https://github.com/symfony/polyfill-php81/tree/v1.29.0" }, "funding": [ { @@ -4190,20 +4169,20 @@ "type": "tidelift" } ], - "time": "2023-01-26T09:26:14+00:00" + "time": "2024-01-29T20:11:03+00:00" }, { "name": "symfony/process", - "version": "v7.0.0", + "version": "v7.0.7", "source": { "type": "git", "url": "https://github.com/symfony/process.git", - "reference": "13bdb1670c7f510494e04fcb2bfa29af63db9c0d" + "reference": "3839e56b94dd1dbd13235d27504e66baf23faba0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/13bdb1670c7f510494e04fcb2bfa29af63db9c0d", - "reference": "13bdb1670c7f510494e04fcb2bfa29af63db9c0d", + "url": "https://api.github.com/repos/symfony/process/zipball/3839e56b94dd1dbd13235d27504e66baf23faba0", + "reference": "3839e56b94dd1dbd13235d27504e66baf23faba0", "shasum": "" }, "require": { @@ -4235,7 +4214,7 @@ "description": "Executes commands in sub-processes", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/process/tree/v7.0.0" + "source": "https://github.com/symfony/process/tree/v7.0.7" }, "funding": [ { @@ -4251,25 +4230,26 @@ "type": "tidelift" } ], - "time": "2023-11-20T16:43:42+00:00" + "time": "2024-04-18T09:29:19+00:00" }, { "name": "symfony/service-contracts", - "version": "v3.4.0", + "version": "v3.5.0", "source": { "type": "git", "url": "https://github.com/symfony/service-contracts.git", - "reference": "b3313c2dbffaf71c8de2934e2ea56ed2291a3838" + "reference": "bd1d9e59a81d8fa4acdcea3f617c581f7475a80f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/service-contracts/zipball/b3313c2dbffaf71c8de2934e2ea56ed2291a3838", - "reference": "b3313c2dbffaf71c8de2934e2ea56ed2291a3838", + "url": "https://api.github.com/repos/symfony/service-contracts/zipball/bd1d9e59a81d8fa4acdcea3f617c581f7475a80f", + "reference": "bd1d9e59a81d8fa4acdcea3f617c581f7475a80f", "shasum": "" }, "require": { "php": ">=8.1", - "psr/container": "^2.0" + "psr/container": "^1.1|^2.0", + "symfony/deprecation-contracts": "^2.5|^3" }, "conflict": { "ext-psr": "<1.1|>=2" @@ -4277,7 +4257,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "3.4-dev" + "dev-main": "3.5-dev" }, "thanks": { "name": "symfony/contracts", @@ -4317,7 +4297,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/service-contracts/tree/v3.4.0" + "source": "https://github.com/symfony/service-contracts/tree/v3.5.0" }, "funding": [ { @@ -4333,20 +4313,20 @@ "type": "tidelift" } ], - "time": "2023-07-30T20:28:31+00:00" + "time": "2024-04-18T09:32:20+00:00" }, { "name": "symfony/stopwatch", - "version": "v7.0.0", + "version": "v7.0.7", "source": { "type": "git", "url": "https://github.com/symfony/stopwatch.git", - "reference": "7bbfa3dd564a0ce12eb4acaaa46823c740f9cb7a" + "reference": "41a7a24aa1dc82adf46a06bc292d1923acfe6b84" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/stopwatch/zipball/7bbfa3dd564a0ce12eb4acaaa46823c740f9cb7a", - "reference": "7bbfa3dd564a0ce12eb4acaaa46823c740f9cb7a", + "url": "https://api.github.com/repos/symfony/stopwatch/zipball/41a7a24aa1dc82adf46a06bc292d1923acfe6b84", + "reference": "41a7a24aa1dc82adf46a06bc292d1923acfe6b84", "shasum": "" }, "require": { @@ -4379,7 +4359,7 @@ "description": "Provides a way to profile code", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/stopwatch/tree/v7.0.0" + "source": "https://github.com/symfony/stopwatch/tree/v7.0.7" }, "funding": [ { @@ -4395,20 +4375,20 @@ "type": "tidelift" } ], - "time": "2023-07-05T13:06:06+00:00" + "time": "2024-04-18T09:29:19+00:00" }, { "name": "symfony/string", - "version": "v7.0.0", + "version": "v7.0.7", "source": { "type": "git", "url": "https://github.com/symfony/string.git", - "reference": "92bd2bfbba476d4a1838e5e12168bef2fd1e6620" + "reference": "e405b5424dc2528e02e31ba26b83a79fd4eb8f63" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/string/zipball/92bd2bfbba476d4a1838e5e12168bef2fd1e6620", - "reference": "92bd2bfbba476d4a1838e5e12168bef2fd1e6620", + "url": "https://api.github.com/repos/symfony/string/zipball/e405b5424dc2528e02e31ba26b83a79fd4eb8f63", + "reference": "e405b5424dc2528e02e31ba26b83a79fd4eb8f63", "shasum": "" }, "require": { @@ -4465,7 +4445,7 @@ "utf8" ], "support": { - "source": "https://github.com/symfony/string/tree/v7.0.0" + "source": "https://github.com/symfony/string/tree/v7.0.7" }, "funding": [ { @@ -4481,24 +4461,24 @@ "type": "tidelift" } ], - "time": "2023-11-29T08:40:23+00:00" + "time": "2024-04-18T09:29:19+00:00" }, { "name": "tecnickcom/tcpdf", - "version": "6.6.5", + "version": "6.7.5", "source": { "type": "git", "url": "https://github.com/tecnickcom/TCPDF.git", - "reference": "5fce932fcee4371865314ab7f6c0d85423c5c7ce" + "reference": "951eabf0338ec2522bd0d5d9c79b08a3a3d36b36" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/tecnickcom/TCPDF/zipball/5fce932fcee4371865314ab7f6c0d85423c5c7ce", - "reference": "5fce932fcee4371865314ab7f6c0d85423c5c7ce", + "url": "https://api.github.com/repos/tecnickcom/TCPDF/zipball/951eabf0338ec2522bd0d5d9c79b08a3a3d36b36", + "reference": "951eabf0338ec2522bd0d5d9c79b08a3a3d36b36", "shasum": "" }, "require": { - "php": ">=5.3.0" + "php": ">=5.5.0" }, "type": "library", "autoload": { @@ -4545,7 +4525,7 @@ ], "support": { "issues": "https://github.com/tecnickcom/TCPDF/issues", - "source": "https://github.com/tecnickcom/TCPDF/tree/6.6.5" + "source": "https://github.com/tecnickcom/TCPDF/tree/6.7.5" }, "funding": [ { @@ -4553,20 +4533,20 @@ "type": "custom" } ], - "time": "2023-09-06T15:09:26+00:00" + "time": "2024-04-20T17:25:10+00:00" }, { "name": "theseer/tokenizer", - "version": "1.2.2", + "version": "1.2.3", "source": { "type": "git", "url": "https://github.com/theseer/tokenizer.git", - "reference": "b2ad5003ca10d4ee50a12da31de12a5774ba6b96" + "reference": "737eda637ed5e28c3413cb1ebe8bb52cbf1ca7a2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/theseer/tokenizer/zipball/b2ad5003ca10d4ee50a12da31de12a5774ba6b96", - "reference": "b2ad5003ca10d4ee50a12da31de12a5774ba6b96", + "url": "https://api.github.com/repos/theseer/tokenizer/zipball/737eda637ed5e28c3413cb1ebe8bb52cbf1ca7a2", + "reference": "737eda637ed5e28c3413cb1ebe8bb52cbf1ca7a2", "shasum": "" }, "require": { @@ -4595,7 +4575,7 @@ "description": "A small library for converting tokenized PHP source code into XML and potentially other formats", "support": { "issues": "https://github.com/theseer/tokenizer/issues", - "source": "https://github.com/theseer/tokenizer/tree/1.2.2" + "source": "https://github.com/theseer/tokenizer/tree/1.2.3" }, "funding": [ { @@ -4603,7 +4583,7 @@ "type": "github" } ], - "time": "2023-11-20T00:12:19+00:00" + "time": "2024-03-03T12:36:25+00:00" } ], "aliases": [], diff --git a/src/PaymentPart/Output/TcPdfOutput/TcPdfOutput.php b/src/PaymentPart/Output/TcPdfOutput/TcPdfOutput.php index 4fada4a..bd7951e 100644 --- a/src/PaymentPart/Output/TcPdfOutput/TcPdfOutput.php +++ b/src/PaymentPart/Output/TcPdfOutput/TcPdfOutput.php @@ -10,7 +10,6 @@ use Sprain\SwissQrBill\PaymentPart\Output\Element\Placeholder; use Sprain\SwissQrBill\PaymentPart\Output\Element\Text; use Sprain\SwissQrBill\PaymentPart\Output\Element\Title; -use Sprain\SwissQrBill\PaymentPart\Output\OutputInterface; use Sprain\SwissQrBill\QrCode\QrCode; use Sprain\SwissQrBill\PaymentPart\Translation\Translation; use Sprain\SwissQrBill\QrBill; From 05aafa26d27b9589891dfbc705e29a9f6d3d0df8 Mon Sep 17 00:00:00 2001 From: Dominik Kohler Date: Wed, 15 May 2024 14:31:32 +0200 Subject: [PATCH 03/10] ignore composer.lock --- .github/workflows/ci.yml | 4 +- .gitignore | 1 + composer.lock | 4624 -------------------------------------- 3 files changed, 3 insertions(+), 4626 deletions(-) delete mode 100644 composer.lock diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 05a7ec0..f9313b1 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -35,7 +35,7 @@ jobs: uses: actions/cache@v3 with: path: ${{ steps.composer-cache.outputs.dir }} - key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }} + key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.json') }} restore-keys: ${{ runner.os }}-composer- - name: Install dependencies @@ -71,7 +71,7 @@ jobs: uses: actions/cache@v3 with: path: ${{ steps.composer-cache.outputs.dir }} - key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }} + key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.json') }} restore-keys: ${{ runner.os }}-composer- - name: Install dependencies diff --git a/.gitignore b/.gitignore index ad7f8e2..9421c9e 100644 --- a/.gitignore +++ b/.gitignore @@ -6,3 +6,4 @@ /example/HtmlOutput/html-example.htm /example/FpdfOutput/fpdf_example.pdf /.php-cs-fixer.cache +/composer.lock diff --git a/composer.lock b/composer.lock deleted file mode 100644 index 305fcbb..0000000 --- a/composer.lock +++ /dev/null @@ -1,4624 +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": "abcb8817dd048be5f3034746b31be2f7", - "packages": [ - { - "name": "bacon/bacon-qr-code", - "version": "2.0.8", - "source": { - "type": "git", - "url": "https://github.com/Bacon/BaconQrCode.git", - "reference": "8674e51bb65af933a5ffaf1c308a660387c35c22" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/Bacon/BaconQrCode/zipball/8674e51bb65af933a5ffaf1c308a660387c35c22", - "reference": "8674e51bb65af933a5ffaf1c308a660387c35c22", - "shasum": "" - }, - "require": { - "dasprid/enum": "^1.0.3", - "ext-iconv": "*", - "php": "^7.1 || ^8.0" - }, - "require-dev": { - "phly/keep-a-changelog": "^2.1", - "phpunit/phpunit": "^7 | ^8 | ^9", - "spatie/phpunit-snapshot-assertions": "^4.2.9", - "squizlabs/php_codesniffer": "^3.4" - }, - "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": "https://dasprids.de/", - "role": "Developer" - } - ], - "description": "BaconQrCode is a QR code generator for PHP.", - "homepage": "https://github.com/Bacon/BaconQrCode", - "support": { - "issues": "https://github.com/Bacon/BaconQrCode/issues", - "source": "https://github.com/Bacon/BaconQrCode/tree/2.0.8" - }, - "time": "2022-12-07T17:46:57+00:00" - }, - { - "name": "dasprid/enum", - "version": "1.0.5", - "source": { - "type": "git", - "url": "https://github.com/DASPRiD/Enum.git", - "reference": "6faf451159fb8ba4126b925ed2d78acfce0dc016" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/DASPRiD/Enum/zipball/6faf451159fb8ba4126b925ed2d78acfce0dc016", - "reference": "6faf451159fb8ba4126b925ed2d78acfce0dc016", - "shasum": "" - }, - "require": { - "php": ">=7.1 <9.0" - }, - "require-dev": { - "phpunit/phpunit": "^7 | ^8 | ^9", - "squizlabs/php_codesniffer": "*" - }, - "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/", - "role": "Developer" - } - ], - "description": "PHP 7.1 enum implementation", - "keywords": [ - "enum", - "map" - ], - "support": { - "issues": "https://github.com/DASPRiD/Enum/issues", - "source": "https://github.com/DASPRiD/Enum/tree/1.0.5" - }, - "time": "2023-08-25T16:18:39+00:00" - }, - { - "name": "endroid/qr-code", - "version": "5.0.2", - "source": { - "type": "git", - "url": "https://github.com/endroid/qr-code.git", - "reference": "e58d34fa0b86a62696144baba9d80ee98845f957" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/endroid/qr-code/zipball/e58d34fa0b86a62696144baba9d80ee98845f957", - "reference": "e58d34fa0b86a62696144baba9d80ee98845f957", - "shasum": "" - }, - "require": { - "bacon/bacon-qr-code": "^2.0.5", - "php": "^8.1" - }, - "conflict": { - "khanamiryan/qrcode-detector-decoder": "^1.0.6" - }, - "require-dev": { - "endroid/quality": "dev-master", - "ext-gd": "*", - "khanamiryan/qrcode-detector-decoder": "^1.0.4||^2.0.2", - "setasign/fpdf": "^1.8.2" - }, - "suggest": { - "ext-gd": "Enables you to write PNG images", - "khanamiryan/qrcode-detector-decoder": "Enables you to use the image validator", - "roave/security-advisories": "Makes sure package versions with known security issues are not installed", - "setasign/fpdf": "Enables you to use the PDF writer" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "5.x-dev" - } - }, - "autoload": { - "psr-4": { - "Endroid\\QrCode\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Jeroen van den Enden", - "email": "info@endroid.nl" - } - ], - "description": "Endroid QR Code", - "homepage": "https://github.com/endroid/qr-code", - "keywords": [ - "code", - "endroid", - "php", - "qr", - "qrcode" - ], - "support": { - "issues": "https://github.com/endroid/qr-code/issues", - "source": "https://github.com/endroid/qr-code/tree/5.0.2" - }, - "funding": [ - { - "url": "https://github.com/endroid", - "type": "github" - } - ], - "time": "2023-10-04T22:55:54+00:00" - }, - { - "name": "kmukku/php-iso11649", - "version": "1.6", - "source": { - "type": "git", - "url": "https://github.com/kmukku/php-iso11649.git", - "reference": "723863147a8ff1c292c337e9459402f4a35c3b1e" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/kmukku/php-iso11649/zipball/723863147a8ff1c292c337e9459402f4a35c3b1e", - "reference": "723863147a8ff1c292c337e9459402f4a35c3b1e", - "shasum": "" - }, - "require": { - "php": ">=5.4.0" - }, - "type": "library", - "autoload": { - "psr-4": { - "kmukku\\phpIso11649\\": [ - "src/" - ] - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Keijo Mukku", - "email": "keijo.mukku@gmail.com" - } - ], - "description": "ISO 11649 creditor reference library for php", - "homepage": "https://github.com/kmukku/php-iso11649", - "keywords": [ - "Banking", - "ISO 11649", - "RF creditor reference", - "finance" - ], - "support": { - "issues": "https://github.com/kmukku/php-iso11649/issues", - "source": "https://github.com/kmukku/php-iso11649/tree/master" - }, - "time": "2020-04-21T13:01:17+00:00" - }, - { - "name": "symfony/intl", - "version": "v7.0.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/intl.git", - "reference": "a2bf3df1fe6ca7ed9aaf2d3f7d7a33b5529b021d" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/intl/zipball/a2bf3df1fe6ca7ed9aaf2d3f7d7a33b5529b021d", - "reference": "a2bf3df1fe6ca7ed9aaf2d3f7d7a33b5529b021d", - "shasum": "" - }, - "require": { - "php": ">=8.2" - }, - "require-dev": { - "symfony/filesystem": "^6.4|^7.0", - "symfony/finder": "^6.4|^7.0", - "symfony/var-exporter": "^6.4|^7.0" - }, - "type": "library", - "autoload": { - "psr-4": { - "Symfony\\Component\\Intl\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Bernhard Schussek", - "email": "bschussek@gmail.com" - }, - { - "name": "Eriksen Costa", - "email": "eriksen.costa@infranology.com.br" - }, - { - "name": "Igor Wiedler", - "email": "igor@wiedler.ch" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Provides access to the localization data of the ICU library", - "homepage": "https://symfony.com", - "keywords": [ - "i18n", - "icu", - "internationalization", - "intl", - "l10n", - "localization" - ], - "support": { - "source": "https://github.com/symfony/intl/tree/v7.0.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2023-10-28T23:12:22+00:00" - }, - { - "name": "symfony/polyfill-ctype", - "version": "v1.28.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-ctype.git", - "reference": "ea208ce43cbb04af6867b4fdddb1bdbf84cc28cb" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/ea208ce43cbb04af6867b4fdddb1bdbf84cc28cb", - "reference": "ea208ce43cbb04af6867b4fdddb1bdbf84cc28cb", - "shasum": "" - }, - "require": { - "php": ">=7.1" - }, - "provide": { - "ext-ctype": "*" - }, - "suggest": { - "ext-ctype": "For best performance" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "1.28-dev" - }, - "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" - } - }, - "autoload": { - "files": [ - "bootstrap.php" - ], - "psr-4": { - "Symfony\\Polyfill\\Ctype\\": "" - } - }, - "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" - ], - "support": { - "source": "https://github.com/symfony/polyfill-ctype/tree/v1.28.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2023-01-26T09:26:14+00:00" - }, - { - "name": "symfony/polyfill-intl-icu", - "version": "v1.28.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-intl-icu.git", - "reference": "e46b4da57951a16053cd751f63f4a24292788157" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-icu/zipball/e46b4da57951a16053cd751f63f4a24292788157", - "reference": "e46b4da57951a16053cd751f63f4a24292788157", - "shasum": "" - }, - "require": { - "php": ">=7.1" - }, - "suggest": { - "ext-intl": "For best performance and support of other locales than \"en\"" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "1.28-dev" - }, - "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" - } - }, - "autoload": { - "files": [ - "bootstrap.php" - ], - "psr-4": { - "Symfony\\Polyfill\\Intl\\Icu\\": "" - }, - "classmap": [ - "Resources/stubs" - ], - "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 polyfill for intl's ICU-related data and classes", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "icu", - "intl", - "polyfill", - "portable", - "shim" - ], - "support": { - "source": "https://github.com/symfony/polyfill-intl-icu/tree/v1.28.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2023-03-21T17:27:24+00:00" - }, - { - "name": "symfony/polyfill-mbstring", - "version": "v1.28.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-mbstring.git", - "reference": "42292d99c55abe617799667f454222c54c60e229" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/42292d99c55abe617799667f454222c54c60e229", - "reference": "42292d99c55abe617799667f454222c54c60e229", - "shasum": "" - }, - "require": { - "php": ">=7.1" - }, - "provide": { - "ext-mbstring": "*" - }, - "suggest": { - "ext-mbstring": "For best performance" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "1.28-dev" - }, - "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" - } - }, - "autoload": { - "files": [ - "bootstrap.php" - ], - "psr-4": { - "Symfony\\Polyfill\\Mbstring\\": "" - } - }, - "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" - ], - "support": { - "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.28.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2023-07-28T09:04:16+00:00" - }, - { - "name": "symfony/polyfill-php80", - "version": "v1.28.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-php80.git", - "reference": "6caa57379c4aec19c0a12a38b59b26487dcfe4b5" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/6caa57379c4aec19c0a12a38b59b26487dcfe4b5", - "reference": "6caa57379c4aec19c0a12a38b59b26487dcfe4b5", - "shasum": "" - }, - "require": { - "php": ">=7.1" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "1.28-dev" - }, - "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" - } - }, - "autoload": { - "files": [ - "bootstrap.php" - ], - "psr-4": { - "Symfony\\Polyfill\\Php80\\": "" - }, - "classmap": [ - "Resources/stubs" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Ion Bazan", - "email": "ion.bazan@gmail.com" - }, - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony polyfill backporting some PHP 8.0+ features to lower PHP versions", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "polyfill", - "portable", - "shim" - ], - "support": { - "source": "https://github.com/symfony/polyfill-php80/tree/v1.28.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2023-01-26T09:26:14+00:00" - }, - { - "name": "symfony/polyfill-php83", - "version": "v1.28.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-php83.git", - "reference": "b0f46ebbeeeda3e9d2faebdfbf4b4eae9b59fa11" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php83/zipball/b0f46ebbeeeda3e9d2faebdfbf4b4eae9b59fa11", - "reference": "b0f46ebbeeeda3e9d2faebdfbf4b4eae9b59fa11", - "shasum": "" - }, - "require": { - "php": ">=7.1", - "symfony/polyfill-php80": "^1.14" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "1.28-dev" - }, - "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" - } - }, - "autoload": { - "files": [ - "bootstrap.php" - ], - "psr-4": { - "Symfony\\Polyfill\\Php83\\": "" - }, - "classmap": [ - "Resources/stubs" - ] - }, - "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 8.3+ features to lower PHP versions", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "polyfill", - "portable", - "shim" - ], - "support": { - "source": "https://github.com/symfony/polyfill-php83/tree/v1.28.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2023-08-16T06:22:46+00:00" - }, - { - "name": "symfony/translation-contracts", - "version": "v3.4.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/translation-contracts.git", - "reference": "dee0c6e5b4c07ce851b462530088e64b255ac9c5" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/dee0c6e5b4c07ce851b462530088e64b255ac9c5", - "reference": "dee0c6e5b4c07ce851b462530088e64b255ac9c5", - "shasum": "" - }, - "require": { - "php": ">=8.1" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "3.4-dev" - }, - "thanks": { - "name": "symfony/contracts", - "url": "https://github.com/symfony/contracts" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Contracts\\Translation\\": "" - }, - "exclude-from-classmap": [ - "/Test/" - ] - }, - "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 translation", - "homepage": "https://symfony.com", - "keywords": [ - "abstractions", - "contracts", - "decoupling", - "interfaces", - "interoperability", - "standards" - ], - "support": { - "source": "https://github.com/symfony/translation-contracts/tree/v3.4.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2023-07-25T15:08:44+00:00" - }, - { - "name": "symfony/validator", - "version": "v7.0.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/validator.git", - "reference": "616b39ffb22c1519f7fd2582b8052cde4c2d0b9f" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/validator/zipball/616b39ffb22c1519f7fd2582b8052cde4c2d0b9f", - "reference": "616b39ffb22c1519f7fd2582b8052cde4c2d0b9f", - "shasum": "" - }, - "require": { - "php": ">=8.2", - "symfony/polyfill-ctype": "~1.8", - "symfony/polyfill-mbstring": "~1.0", - "symfony/polyfill-php83": "^1.27", - "symfony/translation-contracts": "^2.5|^3" - }, - "conflict": { - "doctrine/lexer": "<1.1", - "symfony/dependency-injection": "<6.4", - "symfony/doctrine-bridge": "<7.0", - "symfony/expression-language": "<6.4", - "symfony/http-kernel": "<6.4", - "symfony/intl": "<6.4", - "symfony/property-info": "<6.4", - "symfony/translation": "<6.4", - "symfony/yaml": "<6.4" - }, - "require-dev": { - "egulias/email-validator": "^2.1.10|^3|^4", - "symfony/cache": "^6.4|^7.0", - "symfony/config": "^6.4|^7.0", - "symfony/console": "^6.4|^7.0", - "symfony/dependency-injection": "^6.4|^7.0", - "symfony/expression-language": "^6.4|^7.0", - "symfony/finder": "^6.4|^7.0", - "symfony/http-client": "^6.4|^7.0", - "symfony/http-foundation": "^6.4|^7.0", - "symfony/http-kernel": "^6.4|^7.0", - "symfony/intl": "^6.4|^7.0", - "symfony/mime": "^6.4|^7.0", - "symfony/property-access": "^6.4|^7.0", - "symfony/property-info": "^6.4|^7.0", - "symfony/translation": "^6.4|^7.0", - "symfony/yaml": "^6.4|^7.0" - }, - "type": "library", - "autoload": { - "psr-4": { - "Symfony\\Component\\Validator\\": "" - }, - "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": "Provides tools to validate values", - "homepage": "https://symfony.com", - "support": { - "source": "https://github.com/symfony/validator/tree/v7.0.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2023-11-29T08:40:23+00:00" - } - ], - "packages-dev": [ - { - "name": "composer/pcre", - "version": "3.1.1", - "source": { - "type": "git", - "url": "https://github.com/composer/pcre.git", - "reference": "00104306927c7a0919b4ced2aaa6782c1e61a3c9" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/composer/pcre/zipball/00104306927c7a0919b4ced2aaa6782c1e61a3c9", - "reference": "00104306927c7a0919b4ced2aaa6782c1e61a3c9", - "shasum": "" - }, - "require": { - "php": "^7.4 || ^8.0" - }, - "require-dev": { - "phpstan/phpstan": "^1.3", - "phpstan/phpstan-strict-rules": "^1.1", - "symfony/phpunit-bridge": "^5" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "3.x-dev" - } - }, - "autoload": { - "psr-4": { - "Composer\\Pcre\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Jordi Boggiano", - "email": "j.boggiano@seld.be", - "homepage": "http://seld.be" - } - ], - "description": "PCRE wrapping library that offers type-safe preg_* replacements.", - "keywords": [ - "PCRE", - "preg", - "regex", - "regular expression" - ], - "support": { - "issues": "https://github.com/composer/pcre/issues", - "source": "https://github.com/composer/pcre/tree/3.1.1" - }, - "funding": [ - { - "url": "https://packagist.com", - "type": "custom" - }, - { - "url": "https://github.com/composer", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/composer/composer", - "type": "tidelift" - } - ], - "time": "2023-10-11T07:11:09+00:00" - }, - { - "name": "composer/semver", - "version": "3.4.0", - "source": { - "type": "git", - "url": "https://github.com/composer/semver.git", - "reference": "35e8d0af4486141bc745f23a29cc2091eb624a32" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/composer/semver/zipball/35e8d0af4486141bc745f23a29cc2091eb624a32", - "reference": "35e8d0af4486141bc745f23a29cc2091eb624a32", - "shasum": "" - }, - "require": { - "php": "^5.3.2 || ^7.0 || ^8.0" - }, - "require-dev": { - "phpstan/phpstan": "^1.4", - "symfony/phpunit-bridge": "^4.2 || ^5" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "3.x-dev" - } - }, - "autoload": { - "psr-4": { - "Composer\\Semver\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nils Adermann", - "email": "naderman@naderman.de", - "homepage": "http://www.naderman.de" - }, - { - "name": "Jordi Boggiano", - "email": "j.boggiano@seld.be", - "homepage": "http://seld.be" - }, - { - "name": "Rob Bast", - "email": "rob.bast@gmail.com", - "homepage": "http://robbast.nl" - } - ], - "description": "Semver library that offers utilities, version constraint parsing and validation.", - "keywords": [ - "semantic", - "semver", - "validation", - "versioning" - ], - "support": { - "irc": "ircs://irc.libera.chat:6697/composer", - "issues": "https://github.com/composer/semver/issues", - "source": "https://github.com/composer/semver/tree/3.4.0" - }, - "funding": [ - { - "url": "https://packagist.com", - "type": "custom" - }, - { - "url": "https://github.com/composer", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/composer/composer", - "type": "tidelift" - } - ], - "time": "2023-08-31T09:50:34+00:00" - }, - { - "name": "composer/xdebug-handler", - "version": "3.0.3", - "source": { - "type": "git", - "url": "https://github.com/composer/xdebug-handler.git", - "reference": "ced299686f41dce890debac69273b47ffe98a40c" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/ced299686f41dce890debac69273b47ffe98a40c", - "reference": "ced299686f41dce890debac69273b47ffe98a40c", - "shasum": "" - }, - "require": { - "composer/pcre": "^1 || ^2 || ^3", - "php": "^7.2.5 || ^8.0", - "psr/log": "^1 || ^2 || ^3" - }, - "require-dev": { - "phpstan/phpstan": "^1.0", - "phpstan/phpstan-strict-rules": "^1.1", - "symfony/phpunit-bridge": "^6.0" - }, - "type": "library", - "autoload": { - "psr-4": { - "Composer\\XdebugHandler\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "John Stevenson", - "email": "john-stevenson@blueyonder.co.uk" - } - ], - "description": "Restarts a process without Xdebug.", - "keywords": [ - "Xdebug", - "performance" - ], - "support": { - "irc": "irc://irc.freenode.org/composer", - "issues": "https://github.com/composer/xdebug-handler/issues", - "source": "https://github.com/composer/xdebug-handler/tree/3.0.3" - }, - "funding": [ - { - "url": "https://packagist.com", - "type": "custom" - }, - { - "url": "https://github.com/composer", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/composer/composer", - "type": "tidelift" - } - ], - "time": "2022-02-25T21:32:43+00:00" - }, - { - "name": "dg/bypass-finals", - "version": "v1.5.1", - "source": { - "type": "git", - "url": "https://github.com/dg/bypass-finals.git", - "reference": "12ef25e1f8d4144e4ec80d13a28895e8942f4104" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/dg/bypass-finals/zipball/12ef25e1f8d4144e4ec80d13a28895e8942f4104", - "reference": "12ef25e1f8d4144e4ec80d13a28895e8942f4104", - "shasum": "" - }, - "require": { - "php": ">=7.1" - }, - "require-dev": { - "nette/tester": "^2.3", - "phpstan/phpstan": "^0.12" - }, - "type": "library", - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause", - "GPL-2.0", - "GPL-3.0" - ], - "authors": [ - { - "name": "David Grudl", - "homepage": "https://davidgrudl.com" - } - ], - "description": "Removes final keyword from source code on-the-fly and allows mocking of final methods and classes", - "keywords": [ - "finals", - "mocking", - "phpunit", - "testing", - "unit" - ], - "support": { - "issues": "https://github.com/dg/bypass-finals/issues", - "source": "https://github.com/dg/bypass-finals/tree/v1.5.1" - }, - "time": "2023-09-16T09:13:54+00:00" - }, - { - "name": "dms/phpunit-arraysubset-asserts", - "version": "v0.2.1", - "source": { - "type": "git", - "url": "https://github.com/rdohms/phpunit-arraysubset-asserts.git", - "reference": "8e3673a70019a60df484e36fc3271d63cbdc40ea" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/rdohms/phpunit-arraysubset-asserts/zipball/8e3673a70019a60df484e36fc3271d63cbdc40ea", - "reference": "8e3673a70019a60df484e36fc3271d63cbdc40ea", - "shasum": "" - }, - "require": { - "php": "^7.3|^8.0", - "phpunit/phpunit": "^9.0" - }, - "require-dev": { - "dms/coding-standard": "^1.0", - "squizlabs/php_codesniffer": "^3.4" - }, - "type": "library", - "autoload": { - "psr-4": { - "DMS\\PHPUnitExtensions\\ArraySubset\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Rafael Dohms", - "email": "rdohms@gmail.com" - } - ], - "description": "This package provides ArraySubset and related asserts once deprecated in PHPUnit 8", - "support": { - "issues": "https://github.com/rdohms/phpunit-arraysubset-asserts/issues", - "source": "https://github.com/rdohms/phpunit-arraysubset-asserts/tree/v0.2.1" - }, - "time": "2020-10-03T21:43:40+00:00" - }, - { - "name": "doctrine/instantiator", - "version": "2.0.0", - "source": { - "type": "git", - "url": "https://github.com/doctrine/instantiator.git", - "reference": "c6222283fa3f4ac679f8b9ced9a4e23f163e80d0" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/doctrine/instantiator/zipball/c6222283fa3f4ac679f8b9ced9a4e23f163e80d0", - "reference": "c6222283fa3f4ac679f8b9ced9a4e23f163e80d0", - "shasum": "" - }, - "require": { - "php": "^8.1" - }, - "require-dev": { - "doctrine/coding-standard": "^11", - "ext-pdo": "*", - "ext-phar": "*", - "phpbench/phpbench": "^1.2", - "phpstan/phpstan": "^1.9.4", - "phpstan/phpstan-phpunit": "^1.3", - "phpunit/phpunit": "^9.5.27", - "vimeo/psalm": "^5.4" - }, - "type": "library", - "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": "https://ocramius.github.io/" - } - ], - "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" - ], - "support": { - "issues": "https://github.com/doctrine/instantiator/issues", - "source": "https://github.com/doctrine/instantiator/tree/2.0.0" - }, - "funding": [ - { - "url": "https://www.doctrine-project.org/sponsorship.html", - "type": "custom" - }, - { - "url": "https://www.patreon.com/phpdoctrine", - "type": "patreon" - }, - { - "url": "https://tidelift.com/funding/github/packagist/doctrine%2Finstantiator", - "type": "tidelift" - } - ], - "time": "2022-12-30T00:23:10+00:00" - }, - { - "name": "fpdf/fpdf", - "version": "1.86.0", - "source": { - "type": "git", - "url": "https://github.com/coreydoughty/Fpdf.git", - "reference": "d2a0cbd9e4b5557b9c6c29ddc8eb2b36d8761e00" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/coreydoughty/Fpdf/zipball/d2a0cbd9e4b5557b9c6c29ddc8eb2b36d8761e00", - "reference": "d2a0cbd9e4b5557b9c6c29ddc8eb2b36d8761e00", - "shasum": "" - }, - "require": { - "php": ">=5.6.0" - }, - "type": "library", - "extra": { - "laravel": { - "aliases": { - "FPDF": "Fpdf\\Fpdf" - } - } - }, - "autoload": { - "psr-4": { - "Fpdf\\": "src/Fpdf" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Corey Doughty", - "email": "corey@doughty.ca" - } - ], - "description": "FPDF Composer Wrapper", - "homepage": "https://github.com/coreydoughty/Fpdf", - "keywords": [ - "fpdf", - "pdf", - "wrapper" - ], - "support": { - "issues": "https://github.com/coreydoughty/Fpdf/issues", - "source": "https://github.com/coreydoughty/Fpdf/tree/1.86.0" - }, - "time": "2023-07-04T16:41:45+00:00" - }, - { - "name": "friendsofphp/php-cs-fixer", - "version": "v3.40.0", - "source": { - "type": "git", - "url": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer.git", - "reference": "27d2b3265b5d550ec411b4319967ae7cfddfb2e0" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/PHP-CS-Fixer/PHP-CS-Fixer/zipball/27d2b3265b5d550ec411b4319967ae7cfddfb2e0", - "reference": "27d2b3265b5d550ec411b4319967ae7cfddfb2e0", - "shasum": "" - }, - "require": { - "composer/semver": "^3.4", - "composer/xdebug-handler": "^3.0.3", - "ext-json": "*", - "ext-tokenizer": "*", - "php": "^7.4 || ^8.0", - "sebastian/diff": "^4.0 || ^5.0", - "symfony/console": "^5.4 || ^6.0 || ^7.0", - "symfony/event-dispatcher": "^5.4 || ^6.0 || ^7.0", - "symfony/filesystem": "^5.4 || ^6.0 || ^7.0", - "symfony/finder": "^5.4 || ^6.0 || ^7.0", - "symfony/options-resolver": "^5.4 || ^6.0 || ^7.0", - "symfony/polyfill-mbstring": "^1.28", - "symfony/polyfill-php80": "^1.28", - "symfony/polyfill-php81": "^1.28", - "symfony/process": "^5.4 || ^6.0 || ^7.0", - "symfony/stopwatch": "^5.4 || ^6.0 || ^7.0" - }, - "require-dev": { - "facile-it/paraunit": "^1.3 || ^2.0", - "justinrainbow/json-schema": "^5.2", - "keradus/cli-executor": "^2.1", - "mikey179/vfsstream": "^1.6.11", - "php-coveralls/php-coveralls": "^2.7", - "php-cs-fixer/accessible-object": "^1.1", - "php-cs-fixer/phpunit-constraint-isidenticalstring": "^1.4", - "php-cs-fixer/phpunit-constraint-xmlmatchesxsd": "^1.4", - "phpspec/prophecy": "^1.17", - "phpspec/prophecy-phpunit": "^2.0", - "phpunit/phpunit": "^9.6", - "symfony/phpunit-bridge": "^6.3.8 || ^7.0", - "symfony/yaml": "^5.4 || ^6.0 || ^7.0" - }, - "suggest": { - "ext-dom": "For handling output formats in XML", - "ext-mbstring": "For handling non-UTF8 characters." - }, - "bin": [ - "php-cs-fixer" - ], - "type": "application", - "autoload": { - "psr-4": { - "PhpCsFixer\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Dariusz RumiÅ„ski", - "email": "dariusz.ruminski@gmail.com" - } - ], - "description": "A tool to automatically fix PHP code style", - "keywords": [ - "Static code analysis", - "fixer", - "standards", - "static analysis" - ], - "support": { - "issues": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues", - "source": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/tree/v3.40.0" - }, - "funding": [ - { - "url": "https://github.com/keradus", - "type": "github" - } - ], - "time": "2023-11-26T09:25:53+00:00" - }, - { - "name": "khanamiryan/qrcode-detector-decoder", - "version": "1.0.5.2", - "source": { - "type": "git", - "url": "https://github.com/khanamiryan/php-qrcode-detector-decoder.git", - "reference": "04fdd58d86a387065f707dc6d3cc304c719910c1" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/khanamiryan/php-qrcode-detector-decoder/zipball/04fdd58d86a387065f707dc6d3cc304c719910c1", - "reference": "04fdd58d86a387065f707dc6d3cc304c719910c1", - "shasum": "" - }, - "require": { - "php": ">=5.6" - }, - "require-dev": { - "phpunit/phpunit": "^5.7 | ^7.5 | ^8.0 | ^9.0" - }, - "type": "library", - "autoload": { - "files": [ - "lib/Common/customFunctions.php" - ], - "psr-4": { - "Zxing\\": "lib/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT", - "Apache-2.0" - ], - "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" - ], - "support": { - "issues": "https://github.com/khanamiryan/php-qrcode-detector-decoder/issues", - "source": "https://github.com/khanamiryan/php-qrcode-detector-decoder/tree/1.0.5.2" - }, - "time": "2021-07-13T18:46:38+00:00" - }, - { - "name": "myclabs/deep-copy", - "version": "1.11.1", - "source": { - "type": "git", - "url": "https://github.com/myclabs/DeepCopy.git", - "reference": "7284c22080590fb39f2ffa3e9057f10a4ddd0e0c" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/7284c22080590fb39f2ffa3e9057f10a4ddd0e0c", - "reference": "7284c22080590fb39f2ffa3e9057f10a4ddd0e0c", - "shasum": "" - }, - "require": { - "php": "^7.1 || ^8.0" - }, - "conflict": { - "doctrine/collections": "<1.6.8", - "doctrine/common": "<2.13.3 || >=3,<3.2.2" - }, - "require-dev": { - "doctrine/collections": "^1.6.8", - "doctrine/common": "^2.13.3 || ^3.2.2", - "phpunit/phpunit": "^7.5.20 || ^8.5.23 || ^9.5.13" - }, - "type": "library", - "autoload": { - "files": [ - "src/DeepCopy/deep_copy.php" - ], - "psr-4": { - "DeepCopy\\": "src/DeepCopy/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "description": "Create deep copies (clones) of your objects", - "keywords": [ - "clone", - "copy", - "duplicate", - "object", - "object graph" - ], - "support": { - "issues": "https://github.com/myclabs/DeepCopy/issues", - "source": "https://github.com/myclabs/DeepCopy/tree/1.11.1" - }, - "funding": [ - { - "url": "https://tidelift.com/funding/github/packagist/myclabs/deep-copy", - "type": "tidelift" - } - ], - "time": "2023-03-08T13:26:56+00:00" - }, - { - "name": "nikic/php-parser", - "version": "v4.17.1", - "source": { - "type": "git", - "url": "https://github.com/nikic/PHP-Parser.git", - "reference": "a6303e50c90c355c7eeee2c4a8b27fe8dc8fef1d" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/a6303e50c90c355c7eeee2c4a8b27fe8dc8fef1d", - "reference": "a6303e50c90c355c7eeee2c4a8b27fe8dc8fef1d", - "shasum": "" - }, - "require": { - "ext-tokenizer": "*", - "php": ">=7.0" - }, - "require-dev": { - "ircmaxell/php-yacc": "^0.0.7", - "phpunit/phpunit": "^6.5 || ^7.0 || ^8.0 || ^9.0" - }, - "bin": [ - "bin/php-parse" - ], - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.9-dev" - } - }, - "autoload": { - "psr-4": { - "PhpParser\\": "lib/PhpParser" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Nikita Popov" - } - ], - "description": "A PHP parser written in PHP", - "keywords": [ - "parser", - "php" - ], - "support": { - "issues": "https://github.com/nikic/PHP-Parser/issues", - "source": "https://github.com/nikic/PHP-Parser/tree/v4.17.1" - }, - "time": "2023-08-13T19:53:39+00:00" - }, - { - "name": "phar-io/manifest", - "version": "2.0.3", - "source": { - "type": "git", - "url": "https://github.com/phar-io/manifest.git", - "reference": "97803eca37d319dfa7826cc2437fc020857acb53" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phar-io/manifest/zipball/97803eca37d319dfa7826cc2437fc020857acb53", - "reference": "97803eca37d319dfa7826cc2437fc020857acb53", - "shasum": "" - }, - "require": { - "ext-dom": "*", - "ext-phar": "*", - "ext-xmlwriter": "*", - "phar-io/version": "^3.0.1", - "php": "^7.2 || ^8.0" - }, - "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": "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)", - "support": { - "issues": "https://github.com/phar-io/manifest/issues", - "source": "https://github.com/phar-io/manifest/tree/2.0.3" - }, - "time": "2021-07-20T11:28:43+00:00" - }, - { - "name": "phar-io/version", - "version": "3.2.1", - "source": { - "type": "git", - "url": "https://github.com/phar-io/version.git", - "reference": "4f7fd7836c6f332bb2933569e566a0d6c4cbed74" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phar-io/version/zipball/4f7fd7836c6f332bb2933569e566a0d6c4cbed74", - "reference": "4f7fd7836c6f332bb2933569e566a0d6c4cbed74", - "shasum": "" - }, - "require": { - "php": "^7.2 || ^8.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", - "support": { - "issues": "https://github.com/phar-io/version/issues", - "source": "https://github.com/phar-io/version/tree/3.2.1" - }, - "time": "2022-02-21T01:04:05+00:00" - }, - { - "name": "phpstan/phpstan", - "version": "1.11.x-dev", - "source": { - "type": "git", - "url": "https://github.com/phpstan/phpstan.git", - "reference": "862d87eaf8eccfaf3cbb2a8a4837d2e025af7d92" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpstan/zipball/862d87eaf8eccfaf3cbb2a8a4837d2e025af7d92", - "reference": "862d87eaf8eccfaf3cbb2a8a4837d2e025af7d92", - "shasum": "" - }, - "require": { - "php": "^7.2|^8.0" - }, - "conflict": { - "phpstan/phpstan-shim": "*" - }, - "default-branch": true, - "bin": [ - "phpstan", - "phpstan.phar" - ], - "type": "library", - "autoload": { - "files": [ - "bootstrap.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "description": "PHPStan - PHP Static Analysis Tool", - "keywords": [ - "dev", - "static analysis" - ], - "support": { - "docs": "https://phpstan.org/user-guide/getting-started", - "forum": "https://github.com/phpstan/phpstan/discussions", - "issues": "https://github.com/phpstan/phpstan/issues", - "security": "https://github.com/phpstan/phpstan/security/policy", - "source": "https://github.com/phpstan/phpstan-src" - }, - "funding": [ - { - "url": "https://github.com/ondrejmirtes", - "type": "github" - }, - { - "url": "https://github.com/phpstan", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/phpstan/phpstan", - "type": "tidelift" - } - ], - "time": "2023-11-29T19:38:27+00:00" - }, - { - "name": "phpunit/php-code-coverage", - "version": "9.2.29", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/php-code-coverage.git", - "reference": "6a3a87ac2bbe33b25042753df8195ba4aa534c76" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/6a3a87ac2bbe33b25042753df8195ba4aa534c76", - "reference": "6a3a87ac2bbe33b25042753df8195ba4aa534c76", - "shasum": "" - }, - "require": { - "ext-dom": "*", - "ext-libxml": "*", - "ext-xmlwriter": "*", - "nikic/php-parser": "^4.15", - "php": ">=7.3", - "phpunit/php-file-iterator": "^3.0.3", - "phpunit/php-text-template": "^2.0.2", - "sebastian/code-unit-reverse-lookup": "^2.0.2", - "sebastian/complexity": "^2.0", - "sebastian/environment": "^5.1.2", - "sebastian/lines-of-code": "^1.0.3", - "sebastian/version": "^3.0.1", - "theseer/tokenizer": "^1.2.0" - }, - "require-dev": { - "phpunit/phpunit": "^9.3" - }, - "suggest": { - "ext-pcov": "PHP extension that provides line coverage", - "ext-xdebug": "PHP extension that provides line coverage as well as branch and path coverage" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "9.2-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" - ], - "support": { - "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues", - "security": "https://github.com/sebastianbergmann/php-code-coverage/security/policy", - "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.29" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2023-09-19T04:57:46+00:00" - }, - { - "name": "phpunit/php-file-iterator", - "version": "3.0.6", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/php-file-iterator.git", - "reference": "cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf", - "reference": "cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf", - "shasum": "" - }, - "require": { - "php": ">=7.3" - }, - "require-dev": { - "phpunit/phpunit": "^9.3" - }, - "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", - "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" - ], - "support": { - "issues": "https://github.com/sebastianbergmann/php-file-iterator/issues", - "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/3.0.6" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2021-12-02T12:48:52+00:00" - }, - { - "name": "phpunit/php-invoker", - "version": "3.1.1", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/php-invoker.git", - "reference": "5a10147d0aaf65b58940a0b72f71c9ac0423cc67" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-invoker/zipball/5a10147d0aaf65b58940a0b72f71c9ac0423cc67", - "reference": "5a10147d0aaf65b58940a0b72f71c9ac0423cc67", - "shasum": "" - }, - "require": { - "php": ">=7.3" - }, - "require-dev": { - "ext-pcntl": "*", - "phpunit/phpunit": "^9.3" - }, - "suggest": { - "ext-pcntl": "*" - }, - "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", - "role": "lead" - } - ], - "description": "Invoke callables with a timeout", - "homepage": "https://github.com/sebastianbergmann/php-invoker/", - "keywords": [ - "process" - ], - "support": { - "issues": "https://github.com/sebastianbergmann/php-invoker/issues", - "source": "https://github.com/sebastianbergmann/php-invoker/tree/3.1.1" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2020-09-28T05:58:55+00:00" - }, - { - "name": "phpunit/php-text-template", - "version": "2.0.4", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/php-text-template.git", - "reference": "5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28", - "reference": "5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28", - "shasum": "" - }, - "require": { - "php": ">=7.3" - }, - "require-dev": { - "phpunit/phpunit": "^9.3" - }, - "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", - "role": "lead" - } - ], - "description": "Simple template engine.", - "homepage": "https://github.com/sebastianbergmann/php-text-template/", - "keywords": [ - "template" - ], - "support": { - "issues": "https://github.com/sebastianbergmann/php-text-template/issues", - "source": "https://github.com/sebastianbergmann/php-text-template/tree/2.0.4" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2020-10-26T05:33:50+00:00" - }, - { - "name": "phpunit/php-timer", - "version": "5.0.3", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/php-timer.git", - "reference": "5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2", - "reference": "5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2", - "shasum": "" - }, - "require": { - "php": ">=7.3" - }, - "require-dev": { - "phpunit/phpunit": "^9.3" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "5.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": "Utility class for timing", - "homepage": "https://github.com/sebastianbergmann/php-timer/", - "keywords": [ - "timer" - ], - "support": { - "issues": "https://github.com/sebastianbergmann/php-timer/issues", - "source": "https://github.com/sebastianbergmann/php-timer/tree/5.0.3" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2020-10-26T13:16:10+00:00" - }, - { - "name": "phpunit/phpunit", - "version": "9.6.13", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "f3d767f7f9e191eab4189abe41ab37797e30b1be" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/f3d767f7f9e191eab4189abe41ab37797e30b1be", - "reference": "f3d767f7f9e191eab4189abe41ab37797e30b1be", - "shasum": "" - }, - "require": { - "doctrine/instantiator": "^1.3.1 || ^2", - "ext-dom": "*", - "ext-json": "*", - "ext-libxml": "*", - "ext-mbstring": "*", - "ext-xml": "*", - "ext-xmlwriter": "*", - "myclabs/deep-copy": "^1.10.1", - "phar-io/manifest": "^2.0.3", - "phar-io/version": "^3.0.2", - "php": ">=7.3", - "phpunit/php-code-coverage": "^9.2.28", - "phpunit/php-file-iterator": "^3.0.5", - "phpunit/php-invoker": "^3.1.1", - "phpunit/php-text-template": "^2.0.3", - "phpunit/php-timer": "^5.0.2", - "sebastian/cli-parser": "^1.0.1", - "sebastian/code-unit": "^1.0.6", - "sebastian/comparator": "^4.0.8", - "sebastian/diff": "^4.0.3", - "sebastian/environment": "^5.1.3", - "sebastian/exporter": "^4.0.5", - "sebastian/global-state": "^5.0.1", - "sebastian/object-enumerator": "^4.0.3", - "sebastian/resource-operations": "^3.0.3", - "sebastian/type": "^3.2", - "sebastian/version": "^3.0.2" - }, - "suggest": { - "ext-soap": "To be able to generate mocks based on WSDL files", - "ext-xdebug": "PHP extension that provides line coverage as well as branch and path coverage" - }, - "bin": [ - "phpunit" - ], - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "9.6-dev" - } - }, - "autoload": { - "files": [ - "src/Framework/Assert/Functions.php" - ], - "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" - ], - "support": { - "issues": "https://github.com/sebastianbergmann/phpunit/issues", - "security": "https://github.com/sebastianbergmann/phpunit/security/policy", - "source": "https://github.com/sebastianbergmann/phpunit/tree/9.6.13" - }, - "funding": [ - { - "url": "https://phpunit.de/sponsors.html", - "type": "custom" - }, - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/phpunit/phpunit", - "type": "tidelift" - } - ], - "time": "2023-09-19T05:39:22+00:00" - }, - { - "name": "psr/container", - "version": "2.0.2", - "source": { - "type": "git", - "url": "https://github.com/php-fig/container.git", - "reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/php-fig/container/zipball/c71ecc56dfe541dbd90c5360474fbc405f8d5963", - "reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963", - "shasum": "" - }, - "require": { - "php": ">=7.4.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.0.x-dev" - } - }, - "autoload": { - "psr-4": { - "Psr\\Container\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "PHP-FIG", - "homepage": "https://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" - ], - "support": { - "issues": "https://github.com/php-fig/container/issues", - "source": "https://github.com/php-fig/container/tree/2.0.2" - }, - "time": "2021-11-05T16:47:00+00:00" - }, - { - "name": "psr/event-dispatcher", - "version": "1.0.0", - "source": { - "type": "git", - "url": "https://github.com/php-fig/event-dispatcher.git", - "reference": "dbefd12671e8a14ec7f180cab83036ed26714bb0" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/php-fig/event-dispatcher/zipball/dbefd12671e8a14ec7f180cab83036ed26714bb0", - "reference": "dbefd12671e8a14ec7f180cab83036ed26714bb0", - "shasum": "" - }, - "require": { - "php": ">=7.2.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - }, - "autoload": { - "psr-4": { - "Psr\\EventDispatcher\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "PHP-FIG", - "homepage": "http://www.php-fig.org/" - } - ], - "description": "Standard interfaces for event handling.", - "keywords": [ - "events", - "psr", - "psr-14" - ], - "support": { - "issues": "https://github.com/php-fig/event-dispatcher/issues", - "source": "https://github.com/php-fig/event-dispatcher/tree/1.0.0" - }, - "time": "2019-01-08T18:20:26+00:00" - }, - { - "name": "psr/log", - "version": "3.0.0", - "source": { - "type": "git", - "url": "https://github.com/php-fig/log.git", - "reference": "fe5ea303b0887d5caefd3d431c3e61ad47037001" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/php-fig/log/zipball/fe5ea303b0887d5caefd3d431c3e61ad47037001", - "reference": "fe5ea303b0887d5caefd3d431c3e61ad47037001", - "shasum": "" - }, - "require": { - "php": ">=8.0.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.x-dev" - } - }, - "autoload": { - "psr-4": { - "Psr\\Log\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "PHP-FIG", - "homepage": "https://www.php-fig.org/" - } - ], - "description": "Common interface for logging libraries", - "homepage": "https://github.com/php-fig/log", - "keywords": [ - "log", - "psr", - "psr-3" - ], - "support": { - "source": "https://github.com/php-fig/log/tree/3.0.0" - }, - "time": "2021-07-14T16:46:02+00:00" - }, - { - "name": "sebastian/cli-parser", - "version": "1.0.1", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/cli-parser.git", - "reference": "442e7c7e687e42adc03470c7b668bc4b2402c0b2" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/442e7c7e687e42adc03470c7b668bc4b2402c0b2", - "reference": "442e7c7e687e42adc03470c7b668bc4b2402c0b2", - "shasum": "" - }, - "require": { - "php": ">=7.3" - }, - "require-dev": { - "phpunit/phpunit": "^9.3" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.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 for parsing CLI options", - "homepage": "https://github.com/sebastianbergmann/cli-parser", - "support": { - "issues": "https://github.com/sebastianbergmann/cli-parser/issues", - "source": "https://github.com/sebastianbergmann/cli-parser/tree/1.0.1" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2020-09-28T06:08:49+00:00" - }, - { - "name": "sebastian/code-unit", - "version": "1.0.8", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/code-unit.git", - "reference": "1fc9f64c0927627ef78ba436c9b17d967e68e120" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/code-unit/zipball/1fc9f64c0927627ef78ba436c9b17d967e68e120", - "reference": "1fc9f64c0927627ef78ba436c9b17d967e68e120", - "shasum": "" - }, - "require": { - "php": ">=7.3" - }, - "require-dev": { - "phpunit/phpunit": "^9.3" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.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": "Collection of value objects that represent the PHP code units", - "homepage": "https://github.com/sebastianbergmann/code-unit", - "support": { - "issues": "https://github.com/sebastianbergmann/code-unit/issues", - "source": "https://github.com/sebastianbergmann/code-unit/tree/1.0.8" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2020-10-26T13:08:54+00:00" - }, - { - "name": "sebastian/code-unit-reverse-lookup", - "version": "2.0.3", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git", - "reference": "ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5", - "reference": "ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5", - "shasum": "" - }, - "require": { - "php": ">=7.3" - }, - "require-dev": { - "phpunit/phpunit": "^9.3" - }, - "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": "Looks up which function or method a line of code belongs to", - "homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/", - "support": { - "issues": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/issues", - "source": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/tree/2.0.3" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2020-09-28T05:30:19+00:00" - }, - { - "name": "sebastian/comparator", - "version": "4.0.8", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/comparator.git", - "reference": "fa0f136dd2334583309d32b62544682ee972b51a" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/fa0f136dd2334583309d32b62544682ee972b51a", - "reference": "fa0f136dd2334583309d32b62544682ee972b51a", - "shasum": "" - }, - "require": { - "php": ">=7.3", - "sebastian/diff": "^4.0", - "sebastian/exporter": "^4.0" - }, - "require-dev": { - "phpunit/phpunit": "^9.3" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.0-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": "Bernhard Schussek", - "email": "bschussek@2bepublished.at" - } - ], - "description": "Provides the functionality to compare PHP values for equality", - "homepage": "https://github.com/sebastianbergmann/comparator", - "keywords": [ - "comparator", - "compare", - "equality" - ], - "support": { - "issues": "https://github.com/sebastianbergmann/comparator/issues", - "source": "https://github.com/sebastianbergmann/comparator/tree/4.0.8" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2022-09-14T12:41:17+00:00" - }, - { - "name": "sebastian/complexity", - "version": "2.0.2", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/complexity.git", - "reference": "739b35e53379900cc9ac327b2147867b8b6efd88" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/complexity/zipball/739b35e53379900cc9ac327b2147867b8b6efd88", - "reference": "739b35e53379900cc9ac327b2147867b8b6efd88", - "shasum": "" - }, - "require": { - "nikic/php-parser": "^4.7", - "php": ">=7.3" - }, - "require-dev": { - "phpunit/phpunit": "^9.3" - }, - "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", - "role": "lead" - } - ], - "description": "Library for calculating the complexity of PHP code units", - "homepage": "https://github.com/sebastianbergmann/complexity", - "support": { - "issues": "https://github.com/sebastianbergmann/complexity/issues", - "source": "https://github.com/sebastianbergmann/complexity/tree/2.0.2" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2020-10-26T15:52:27+00:00" - }, - { - "name": "sebastian/diff", - "version": "4.0.5", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/diff.git", - "reference": "74be17022044ebaaecfdf0c5cd504fc9cd5a7131" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/74be17022044ebaaecfdf0c5cd504fc9cd5a7131", - "reference": "74be17022044ebaaecfdf0c5cd504fc9cd5a7131", - "shasum": "" - }, - "require": { - "php": ">=7.3" - }, - "require-dev": { - "phpunit/phpunit": "^9.3", - "symfony/process": "^4.2 || ^5" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - }, - { - "name": "Kore Nordmann", - "email": "mail@kore-nordmann.de" - } - ], - "description": "Diff implementation", - "homepage": "https://github.com/sebastianbergmann/diff", - "keywords": [ - "diff", - "udiff", - "unidiff", - "unified diff" - ], - "support": { - "issues": "https://github.com/sebastianbergmann/diff/issues", - "source": "https://github.com/sebastianbergmann/diff/tree/4.0.5" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2023-05-07T05:35:17+00:00" - }, - { - "name": "sebastian/environment", - "version": "5.1.5", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/environment.git", - "reference": "830c43a844f1f8d5b7a1f6d6076b784454d8b7ed" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/830c43a844f1f8d5b7a1f6d6076b784454d8b7ed", - "reference": "830c43a844f1f8d5b7a1f6d6076b784454d8b7ed", - "shasum": "" - }, - "require": { - "php": ">=7.3" - }, - "require-dev": { - "phpunit/phpunit": "^9.3" - }, - "suggest": { - "ext-posix": "*" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "5.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" - ], - "support": { - "issues": "https://github.com/sebastianbergmann/environment/issues", - "source": "https://github.com/sebastianbergmann/environment/tree/5.1.5" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2023-02-03T06:03:51+00:00" - }, - { - "name": "sebastian/exporter", - "version": "4.0.5", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/exporter.git", - "reference": "ac230ed27f0f98f597c8a2b6eb7ac563af5e5b9d" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/ac230ed27f0f98f597c8a2b6eb7ac563af5e5b9d", - "reference": "ac230ed27f0f98f597c8a2b6eb7ac563af5e5b9d", - "shasum": "" - }, - "require": { - "php": ">=7.3", - "sebastian/recursion-context": "^4.0" - }, - "require-dev": { - "ext-mbstring": "*", - "phpunit/phpunit": "^9.3" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.0-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": "https://www.github.com/sebastianbergmann/exporter", - "keywords": [ - "export", - "exporter" - ], - "support": { - "issues": "https://github.com/sebastianbergmann/exporter/issues", - "source": "https://github.com/sebastianbergmann/exporter/tree/4.0.5" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2022-09-14T06:03:37+00:00" - }, - { - "name": "sebastian/global-state", - "version": "5.0.6", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/global-state.git", - "reference": "bde739e7565280bda77be70044ac1047bc007e34" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/bde739e7565280bda77be70044ac1047bc007e34", - "reference": "bde739e7565280bda77be70044ac1047bc007e34", - "shasum": "" - }, - "require": { - "php": ">=7.3", - "sebastian/object-reflector": "^2.0", - "sebastian/recursion-context": "^4.0" - }, - "require-dev": { - "ext-dom": "*", - "phpunit/phpunit": "^9.3" - }, - "suggest": { - "ext-uopz": "*" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "5.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" - ], - "support": { - "issues": "https://github.com/sebastianbergmann/global-state/issues", - "source": "https://github.com/sebastianbergmann/global-state/tree/5.0.6" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2023-08-02T09:26:13+00:00" - }, - { - "name": "sebastian/lines-of-code", - "version": "1.0.3", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/lines-of-code.git", - "reference": "c1c2e997aa3146983ed888ad08b15470a2e22ecc" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/lines-of-code/zipball/c1c2e997aa3146983ed888ad08b15470a2e22ecc", - "reference": "c1c2e997aa3146983ed888ad08b15470a2e22ecc", - "shasum": "" - }, - "require": { - "nikic/php-parser": "^4.6", - "php": ">=7.3" - }, - "require-dev": { - "phpunit/phpunit": "^9.3" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.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 for counting the lines of code in PHP source code", - "homepage": "https://github.com/sebastianbergmann/lines-of-code", - "support": { - "issues": "https://github.com/sebastianbergmann/lines-of-code/issues", - "source": "https://github.com/sebastianbergmann/lines-of-code/tree/1.0.3" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2020-11-28T06:42:11+00:00" - }, - { - "name": "sebastian/object-enumerator", - "version": "4.0.4", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/object-enumerator.git", - "reference": "5c9eeac41b290a3712d88851518825ad78f45c71" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/5c9eeac41b290a3712d88851518825ad78f45c71", - "reference": "5c9eeac41b290a3712d88851518825ad78f45c71", - "shasum": "" - }, - "require": { - "php": ">=7.3", - "sebastian/object-reflector": "^2.0", - "sebastian/recursion-context": "^4.0" - }, - "require-dev": { - "phpunit/phpunit": "^9.3" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.0-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/", - "support": { - "issues": "https://github.com/sebastianbergmann/object-enumerator/issues", - "source": "https://github.com/sebastianbergmann/object-enumerator/tree/4.0.4" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2020-10-26T13:12:34+00:00" - }, - { - "name": "sebastian/object-reflector", - "version": "2.0.4", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/object-reflector.git", - "reference": "b4f479ebdbf63ac605d183ece17d8d7fe49c15c7" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/b4f479ebdbf63ac605d183ece17d8d7fe49c15c7", - "reference": "b4f479ebdbf63ac605d183ece17d8d7fe49c15c7", - "shasum": "" - }, - "require": { - "php": ">=7.3" - }, - "require-dev": { - "phpunit/phpunit": "^9.3" - }, - "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": "Allows reflection of object attributes, including inherited and non-public ones", - "homepage": "https://github.com/sebastianbergmann/object-reflector/", - "support": { - "issues": "https://github.com/sebastianbergmann/object-reflector/issues", - "source": "https://github.com/sebastianbergmann/object-reflector/tree/2.0.4" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2020-10-26T13:14:26+00:00" - }, - { - "name": "sebastian/recursion-context", - "version": "4.0.5", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/recursion-context.git", - "reference": "e75bd0f07204fec2a0af9b0f3cfe97d05f92efc1" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/e75bd0f07204fec2a0af9b0f3cfe97d05f92efc1", - "reference": "e75bd0f07204fec2a0af9b0f3cfe97d05f92efc1", - "shasum": "" - }, - "require": { - "php": ">=7.3" - }, - "require-dev": { - "phpunit/phpunit": "^9.3" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.0-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": "Adam Harvey", - "email": "aharvey@php.net" - } - ], - "description": "Provides functionality to recursively process PHP variables", - "homepage": "https://github.com/sebastianbergmann/recursion-context", - "support": { - "issues": "https://github.com/sebastianbergmann/recursion-context/issues", - "source": "https://github.com/sebastianbergmann/recursion-context/tree/4.0.5" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2023-02-03T06:07:39+00:00" - }, - { - "name": "sebastian/resource-operations", - "version": "3.0.3", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/resource-operations.git", - "reference": "0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8", - "reference": "0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8", - "shasum": "" - }, - "require": { - "php": ">=7.3" - }, - "require-dev": { - "phpunit/phpunit": "^9.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": "Provides a list of PHP built-in functions that operate on resources", - "homepage": "https://www.github.com/sebastianbergmann/resource-operations", - "support": { - "issues": "https://github.com/sebastianbergmann/resource-operations/issues", - "source": "https://github.com/sebastianbergmann/resource-operations/tree/3.0.3" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2020-09-28T06:45:17+00:00" - }, - { - "name": "sebastian/type", - "version": "3.2.1", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/type.git", - "reference": "75e2c2a32f5e0b3aef905b9ed0b179b953b3d7c7" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/75e2c2a32f5e0b3aef905b9ed0b179b953b3d7c7", - "reference": "75e2c2a32f5e0b3aef905b9ed0b179b953b3d7c7", - "shasum": "" - }, - "require": { - "php": ">=7.3" - }, - "require-dev": { - "phpunit/phpunit": "^9.5" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.2-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", - "support": { - "issues": "https://github.com/sebastianbergmann/type/issues", - "source": "https://github.com/sebastianbergmann/type/tree/3.2.1" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2023-02-03T06:13:03+00:00" - }, - { - "name": "sebastian/version", - "version": "3.0.2", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/version.git", - "reference": "c6c1022351a901512170118436c764e473f6de8c" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/c6c1022351a901512170118436c764e473f6de8c", - "reference": "c6c1022351a901512170118436c764e473f6de8c", - "shasum": "" - }, - "require": { - "php": ">=7.3" - }, - "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", - "role": "lead" - } - ], - "description": "Library that helps with managing the version number of Git-hosted PHP projects", - "homepage": "https://github.com/sebastianbergmann/version", - "support": { - "issues": "https://github.com/sebastianbergmann/version/issues", - "source": "https://github.com/sebastianbergmann/version/tree/3.0.2" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2020-09-28T06:39:44+00:00" - }, - { - "name": "setasign/fpdf", - "version": "1.8.6", - "source": { - "type": "git", - "url": "https://github.com/Setasign/FPDF.git", - "reference": "0838e0ee4925716fcbbc50ad9e1799b5edfae0a0" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/Setasign/FPDF/zipball/0838e0ee4925716fcbbc50ad9e1799b5edfae0a0", - "reference": "0838e0ee4925716fcbbc50ad9e1799b5edfae0a0", - "shasum": "" - }, - "require": { - "ext-gd": "*", - "ext-zlib": "*" - }, - "type": "library", - "autoload": { - "classmap": [ - "fpdf.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Olivier Plathey", - "email": "oliver@fpdf.org", - "homepage": "http://fpdf.org/" - } - ], - "description": "FPDF is a PHP class which allows to generate PDF files with pure PHP. F from FPDF stands for Free: you may use it for any kind of usage and modify it to suit your needs.", - "homepage": "http://www.fpdf.org", - "keywords": [ - "fpdf", - "pdf" - ], - "support": { - "source": "https://github.com/Setasign/FPDF/tree/1.8.6" - }, - "time": "2023-06-26T14:44:25+00:00" - }, - { - "name": "setasign/fpdi", - "version": "v2.5.0", - "source": { - "type": "git", - "url": "https://github.com/Setasign/FPDI.git", - "reference": "ecf0459643ec963febfb9a5d529dcd93656006a4" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/Setasign/FPDI/zipball/ecf0459643ec963febfb9a5d529dcd93656006a4", - "reference": "ecf0459643ec963febfb9a5d529dcd93656006a4", - "shasum": "" - }, - "require": { - "ext-zlib": "*", - "php": "^5.6 || ^7.0 || ^8.0" - }, - "conflict": { - "setasign/tfpdf": "<1.31" - }, - "require-dev": { - "phpunit/phpunit": "~5.7", - "setasign/fpdf": "~1.8", - "setasign/tfpdf": "~1.31", - "squizlabs/php_codesniffer": "^3.5", - "tecnickcom/tcpdf": "~6.2" - }, - "suggest": { - "setasign/fpdf": "FPDI will extend this class but as it is also possible to use TCPDF or tFPDF as an alternative. There's no fixed dependency configured." - }, - "type": "library", - "autoload": { - "psr-4": { - "setasign\\Fpdi\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Jan Slabon", - "email": "jan.slabon@setasign.com", - "homepage": "https://www.setasign.com" - }, - { - "name": "Maximilian Kresse", - "email": "maximilian.kresse@setasign.com", - "homepage": "https://www.setasign.com" - } - ], - "description": "FPDI is a collection of PHP classes facilitating developers to read pages from existing PDF documents and use them as templates in FPDF. Because it is also possible to use FPDI with TCPDF, there are no fixed dependencies defined. Please see suggestions for packages which evaluates the dependencies automatically.", - "homepage": "https://www.setasign.com/fpdi", - "keywords": [ - "fpdf", - "fpdi", - "pdf" - ], - "support": { - "issues": "https://github.com/Setasign/FPDI/issues", - "source": "https://github.com/Setasign/FPDI/tree/v2.5.0" - }, - "funding": [ - { - "url": "https://tidelift.com/funding/github/packagist/setasign/fpdi", - "type": "tidelift" - } - ], - "time": "2023-09-28T10:46:27+00:00" - }, - { - "name": "symfony/console", - "version": "v7.0.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/console.git", - "reference": "64e06788686633deb8d9a7c75ab31bcf4b233a26" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/64e06788686633deb8d9a7c75ab31bcf4b233a26", - "reference": "64e06788686633deb8d9a7c75ab31bcf4b233a26", - "shasum": "" - }, - "require": { - "php": ">=8.2", - "symfony/polyfill-mbstring": "~1.0", - "symfony/service-contracts": "^2.5|^3", - "symfony/string": "^6.4|^7.0" - }, - "conflict": { - "symfony/dependency-injection": "<6.4", - "symfony/dotenv": "<6.4", - "symfony/event-dispatcher": "<6.4", - "symfony/lock": "<6.4", - "symfony/process": "<6.4" - }, - "provide": { - "psr/log-implementation": "1.0|2.0|3.0" - }, - "require-dev": { - "psr/log": "^1|^2|^3", - "symfony/config": "^6.4|^7.0", - "symfony/dependency-injection": "^6.4|^7.0", - "symfony/event-dispatcher": "^6.4|^7.0", - "symfony/http-foundation": "^6.4|^7.0", - "symfony/http-kernel": "^6.4|^7.0", - "symfony/lock": "^6.4|^7.0", - "symfony/messenger": "^6.4|^7.0", - "symfony/process": "^6.4|^7.0", - "symfony/stopwatch": "^6.4|^7.0", - "symfony/var-dumper": "^6.4|^7.0" - }, - "type": "library", - "autoload": { - "psr-4": { - "Symfony\\Component\\Console\\": "" - }, - "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": "Eases the creation of beautiful and testable command line interfaces", - "homepage": "https://symfony.com", - "keywords": [ - "cli", - "command-line", - "console", - "terminal" - ], - "support": { - "source": "https://github.com/symfony/console/tree/v7.0.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2023-11-20T16:43:42+00:00" - }, - { - "name": "symfony/deprecation-contracts", - "version": "v3.4.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/deprecation-contracts.git", - "reference": "7c3aff79d10325257a001fcf92d991f24fc967cf" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/7c3aff79d10325257a001fcf92d991f24fc967cf", - "reference": "7c3aff79d10325257a001fcf92d991f24fc967cf", - "shasum": "" - }, - "require": { - "php": ">=8.1" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "3.4-dev" - }, - "thanks": { - "name": "symfony/contracts", - "url": "https://github.com/symfony/contracts" - } - }, - "autoload": { - "files": [ - "function.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": "A generic function and convention to trigger deprecation notices", - "homepage": "https://symfony.com", - "support": { - "source": "https://github.com/symfony/deprecation-contracts/tree/v3.4.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2023-05-23T14:45:45+00:00" - }, - { - "name": "symfony/event-dispatcher", - "version": "v7.0.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/event-dispatcher.git", - "reference": "c459b40ffe67c49af6fd392aac374c9edf8a027e" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/c459b40ffe67c49af6fd392aac374c9edf8a027e", - "reference": "c459b40ffe67c49af6fd392aac374c9edf8a027e", - "shasum": "" - }, - "require": { - "php": ">=8.2", - "symfony/event-dispatcher-contracts": "^2.5|^3" - }, - "conflict": { - "symfony/dependency-injection": "<6.4", - "symfony/service-contracts": "<2.5" - }, - "provide": { - "psr/event-dispatcher-implementation": "1.0", - "symfony/event-dispatcher-implementation": "2.0|3.0" - }, - "require-dev": { - "psr/log": "^1|^2|^3", - "symfony/config": "^6.4|^7.0", - "symfony/dependency-injection": "^6.4|^7.0", - "symfony/error-handler": "^6.4|^7.0", - "symfony/expression-language": "^6.4|^7.0", - "symfony/http-foundation": "^6.4|^7.0", - "symfony/service-contracts": "^2.5|^3", - "symfony/stopwatch": "^6.4|^7.0" - }, - "type": "library", - "autoload": { - "psr-4": { - "Symfony\\Component\\EventDispatcher\\": "" - }, - "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": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them", - "homepage": "https://symfony.com", - "support": { - "source": "https://github.com/symfony/event-dispatcher/tree/v7.0.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2023-07-27T16:29:09+00:00" - }, - { - "name": "symfony/event-dispatcher-contracts", - "version": "v3.4.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/event-dispatcher-contracts.git", - "reference": "a76aed96a42d2b521153fb382d418e30d18b59df" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/a76aed96a42d2b521153fb382d418e30d18b59df", - "reference": "a76aed96a42d2b521153fb382d418e30d18b59df", - "shasum": "" - }, - "require": { - "php": ">=8.1", - "psr/event-dispatcher": "^1" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "3.4-dev" - }, - "thanks": { - "name": "symfony/contracts", - "url": "https://github.com/symfony/contracts" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Contracts\\EventDispatcher\\": "" - } - }, - "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 dispatching event", - "homepage": "https://symfony.com", - "keywords": [ - "abstractions", - "contracts", - "decoupling", - "interfaces", - "interoperability", - "standards" - ], - "support": { - "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v3.4.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2023-05-23T14:45:45+00:00" - }, - { - "name": "symfony/filesystem", - "version": "v7.0.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/filesystem.git", - "reference": "7da8ea2362a283771478c5f7729cfcb43a76b8b7" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/filesystem/zipball/7da8ea2362a283771478c5f7729cfcb43a76b8b7", - "reference": "7da8ea2362a283771478c5f7729cfcb43a76b8b7", - "shasum": "" - }, - "require": { - "php": ">=8.2", - "symfony/polyfill-ctype": "~1.8", - "symfony/polyfill-mbstring": "~1.8" - }, - "type": "library", - "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": "Provides basic utilities for the filesystem", - "homepage": "https://symfony.com", - "support": { - "source": "https://github.com/symfony/filesystem/tree/v7.0.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2023-07-27T06:33:22+00:00" - }, - { - "name": "symfony/finder", - "version": "v7.0.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/finder.git", - "reference": "6e5688d69f7cfc4ed4a511e96007e06c2d34ce56" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/6e5688d69f7cfc4ed4a511e96007e06c2d34ce56", - "reference": "6e5688d69f7cfc4ed4a511e96007e06c2d34ce56", - "shasum": "" - }, - "require": { - "php": ">=8.2" - }, - "require-dev": { - "symfony/filesystem": "^6.4|^7.0" - }, - "type": "library", - "autoload": { - "psr-4": { - "Symfony\\Component\\Finder\\": "" - }, - "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": "Finds files and directories via an intuitive fluent interface", - "homepage": "https://symfony.com", - "support": { - "source": "https://github.com/symfony/finder/tree/v7.0.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2023-10-31T17:59:56+00:00" - }, - { - "name": "symfony/options-resolver", - "version": "v7.0.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/options-resolver.git", - "reference": "700ff4096e346f54cb628ea650767c8130f1001f" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/options-resolver/zipball/700ff4096e346f54cb628ea650767c8130f1001f", - "reference": "700ff4096e346f54cb628ea650767c8130f1001f", - "shasum": "" - }, - "require": { - "php": ">=8.2", - "symfony/deprecation-contracts": "^2.5|^3" - }, - "type": "library", - "autoload": { - "psr-4": { - "Symfony\\Component\\OptionsResolver\\": "" - }, - "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": "Provides an improved replacement for the array_replace PHP function", - "homepage": "https://symfony.com", - "keywords": [ - "config", - "configuration", - "options" - ], - "support": { - "source": "https://github.com/symfony/options-resolver/tree/v7.0.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2023-08-08T10:20:21+00:00" - }, - { - "name": "symfony/polyfill-intl-grapheme", - "version": "v1.28.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-intl-grapheme.git", - "reference": "875e90aeea2777b6f135677f618529449334a612" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/875e90aeea2777b6f135677f618529449334a612", - "reference": "875e90aeea2777b6f135677f618529449334a612", - "shasum": "" - }, - "require": { - "php": ">=7.1" - }, - "suggest": { - "ext-intl": "For best performance" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "1.28-dev" - }, - "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" - } - }, - "autoload": { - "files": [ - "bootstrap.php" - ], - "psr-4": { - "Symfony\\Polyfill\\Intl\\Grapheme\\": "" - } - }, - "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 intl's grapheme_* functions", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "grapheme", - "intl", - "polyfill", - "portable", - "shim" - ], - "support": { - "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.28.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2023-01-26T09:26:14+00:00" - }, - { - "name": "symfony/polyfill-intl-normalizer", - "version": "v1.28.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-intl-normalizer.git", - "reference": "8c4ad05dd0120b6a53c1ca374dca2ad0a1c4ed92" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/8c4ad05dd0120b6a53c1ca374dca2ad0a1c4ed92", - "reference": "8c4ad05dd0120b6a53c1ca374dca2ad0a1c4ed92", - "shasum": "" - }, - "require": { - "php": ">=7.1" - }, - "suggest": { - "ext-intl": "For best performance" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "1.28-dev" - }, - "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" - } - }, - "autoload": { - "files": [ - "bootstrap.php" - ], - "psr-4": { - "Symfony\\Polyfill\\Intl\\Normalizer\\": "" - }, - "classmap": [ - "Resources/stubs" - ] - }, - "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 intl's Normalizer class and related functions", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "intl", - "normalizer", - "polyfill", - "portable", - "shim" - ], - "support": { - "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.28.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2023-01-26T09:26:14+00:00" - }, - { - "name": "symfony/polyfill-php81", - "version": "v1.28.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-php81.git", - "reference": "7581cd600fa9fd681b797d00b02f068e2f13263b" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php81/zipball/7581cd600fa9fd681b797d00b02f068e2f13263b", - "reference": "7581cd600fa9fd681b797d00b02f068e2f13263b", - "shasum": "" - }, - "require": { - "php": ">=7.1" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "1.28-dev" - }, - "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" - } - }, - "autoload": { - "files": [ - "bootstrap.php" - ], - "psr-4": { - "Symfony\\Polyfill\\Php81\\": "" - }, - "classmap": [ - "Resources/stubs" - ] - }, - "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 8.1+ features to lower PHP versions", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "polyfill", - "portable", - "shim" - ], - "support": { - "source": "https://github.com/symfony/polyfill-php81/tree/v1.28.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2023-01-26T09:26:14+00:00" - }, - { - "name": "symfony/process", - "version": "v7.0.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/process.git", - "reference": "13bdb1670c7f510494e04fcb2bfa29af63db9c0d" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/13bdb1670c7f510494e04fcb2bfa29af63db9c0d", - "reference": "13bdb1670c7f510494e04fcb2bfa29af63db9c0d", - "shasum": "" - }, - "require": { - "php": ">=8.2" - }, - "type": "library", - "autoload": { - "psr-4": { - "Symfony\\Component\\Process\\": "" - }, - "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": "Executes commands in sub-processes", - "homepage": "https://symfony.com", - "support": { - "source": "https://github.com/symfony/process/tree/v7.0.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2023-11-20T16:43:42+00:00" - }, - { - "name": "symfony/service-contracts", - "version": "v3.4.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/service-contracts.git", - "reference": "b3313c2dbffaf71c8de2934e2ea56ed2291a3838" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/service-contracts/zipball/b3313c2dbffaf71c8de2934e2ea56ed2291a3838", - "reference": "b3313c2dbffaf71c8de2934e2ea56ed2291a3838", - "shasum": "" - }, - "require": { - "php": ">=8.1", - "psr/container": "^2.0" - }, - "conflict": { - "ext-psr": "<1.1|>=2" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "3.4-dev" - }, - "thanks": { - "name": "symfony/contracts", - "url": "https://github.com/symfony/contracts" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Contracts\\Service\\": "" - }, - "exclude-from-classmap": [ - "/Test/" - ] - }, - "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" - ], - "support": { - "source": "https://github.com/symfony/service-contracts/tree/v3.4.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2023-07-30T20:28:31+00:00" - }, - { - "name": "symfony/stopwatch", - "version": "v7.0.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/stopwatch.git", - "reference": "7bbfa3dd564a0ce12eb4acaaa46823c740f9cb7a" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/stopwatch/zipball/7bbfa3dd564a0ce12eb4acaaa46823c740f9cb7a", - "reference": "7bbfa3dd564a0ce12eb4acaaa46823c740f9cb7a", - "shasum": "" - }, - "require": { - "php": ">=8.2", - "symfony/service-contracts": "^2.5|^3" - }, - "type": "library", - "autoload": { - "psr-4": { - "Symfony\\Component\\Stopwatch\\": "" - }, - "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": "Provides a way to profile code", - "homepage": "https://symfony.com", - "support": { - "source": "https://github.com/symfony/stopwatch/tree/v7.0.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2023-07-05T13:06:06+00:00" - }, - { - "name": "symfony/string", - "version": "v7.0.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/string.git", - "reference": "92bd2bfbba476d4a1838e5e12168bef2fd1e6620" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/string/zipball/92bd2bfbba476d4a1838e5e12168bef2fd1e6620", - "reference": "92bd2bfbba476d4a1838e5e12168bef2fd1e6620", - "shasum": "" - }, - "require": { - "php": ">=8.2", - "symfony/polyfill-ctype": "~1.8", - "symfony/polyfill-intl-grapheme": "~1.0", - "symfony/polyfill-intl-normalizer": "~1.0", - "symfony/polyfill-mbstring": "~1.0" - }, - "conflict": { - "symfony/translation-contracts": "<2.5" - }, - "require-dev": { - "symfony/error-handler": "^6.4|^7.0", - "symfony/http-client": "^6.4|^7.0", - "symfony/intl": "^6.4|^7.0", - "symfony/translation-contracts": "^2.5|^3.0", - "symfony/var-exporter": "^6.4|^7.0" - }, - "type": "library", - "autoload": { - "files": [ - "Resources/functions.php" - ], - "psr-4": { - "Symfony\\Component\\String\\": "" - }, - "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": "Provides an object-oriented API to strings and deals with bytes, UTF-8 code points and grapheme clusters in a unified way", - "homepage": "https://symfony.com", - "keywords": [ - "grapheme", - "i18n", - "string", - "unicode", - "utf-8", - "utf8" - ], - "support": { - "source": "https://github.com/symfony/string/tree/v7.0.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2023-11-29T08:40:23+00:00" - }, - { - "name": "tecnickcom/tcpdf", - "version": "6.6.5", - "source": { - "type": "git", - "url": "https://github.com/tecnickcom/TCPDF.git", - "reference": "5fce932fcee4371865314ab7f6c0d85423c5c7ce" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/tecnickcom/TCPDF/zipball/5fce932fcee4371865314ab7f6c0d85423c5c7ce", - "reference": "5fce932fcee4371865314ab7f6c0d85423c5c7ce", - "shasum": "" - }, - "require": { - "php": ">=5.3.0" - }, - "type": "library", - "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-or-later" - ], - "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" - ], - "support": { - "issues": "https://github.com/tecnickcom/TCPDF/issues", - "source": "https://github.com/tecnickcom/TCPDF/tree/6.6.5" - }, - "funding": [ - { - "url": "https://www.paypal.com/cgi-bin/webscr?cmd=_donations¤cy_code=GBP&business=paypal@tecnick.com&item_name=donation%20for%20tcpdf%20project", - "type": "custom" - } - ], - "time": "2023-09-06T15:09:26+00:00" - }, - { - "name": "theseer/tokenizer", - "version": "1.2.2", - "source": { - "type": "git", - "url": "https://github.com/theseer/tokenizer.git", - "reference": "b2ad5003ca10d4ee50a12da31de12a5774ba6b96" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/theseer/tokenizer/zipball/b2ad5003ca10d4ee50a12da31de12a5774ba6b96", - "reference": "b2ad5003ca10d4ee50a12da31de12a5774ba6b96", - "shasum": "" - }, - "require": { - "ext-dom": "*", - "ext-tokenizer": "*", - "ext-xmlwriter": "*", - "php": "^7.2 || ^8.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", - "support": { - "issues": "https://github.com/theseer/tokenizer/issues", - "source": "https://github.com/theseer/tokenizer/tree/1.2.2" - }, - "funding": [ - { - "url": "https://github.com/theseer", - "type": "github" - } - ], - "time": "2023-11-20T00:12:19+00:00" - } - ], - "aliases": [], - "minimum-stability": "stable", - "stability-flags": { - "phpstan/phpstan": 20 - }, - "prefer-stable": false, - "prefer-lowest": false, - "platform": { - "php": "~8.0.0|~8.1.0|~8.2.0|~8.3.0", - "ext-dom": "*", - "ext-bcmath": "*", - "ext-iconv": "*" - }, - "platform-dev": [], - "plugin-api-version": "2.6.0" -} From 7c66198726be0628bbcab20691309ec9c4ee0d67 Mon Sep 17 00:00:00 2001 From: Manuel Reinhard Date: Wed, 15 May 2024 14:26:52 +0200 Subject: [PATCH 04/10] Move setting TcPdfOutput option to QrCode class --- .../Output/TcPdfOutput/TcPdfOutput.php | 7 +--- src/QrCode/QrCode.php | 36 ++++++++++++------- 2 files changed, 25 insertions(+), 18 deletions(-) diff --git a/src/PaymentPart/Output/TcPdfOutput/TcPdfOutput.php b/src/PaymentPart/Output/TcPdfOutput/TcPdfOutput.php index bd7951e..d87addf 100644 --- a/src/PaymentPart/Output/TcPdfOutput/TcPdfOutput.php +++ b/src/PaymentPart/Output/TcPdfOutput/TcPdfOutput.php @@ -2,7 +2,6 @@ namespace Sprain\SwissQrBill\PaymentPart\Output\TcPdfOutput; -use Endroid\QrCode\Writer\SvgWriter; use setasign\Fpdi\Tcpdf\Fpdi; use Sprain\SwissQrBill\PaymentPart\Output\AbstractOutput; use Sprain\SwissQrBill\PaymentPart\Output\Element\FurtherInformation; @@ -97,11 +96,7 @@ public function getPaymentPart(): ?string private function addSwissQrCodeImage(): void { $qrCode = $this->getQrCode(); - - // The compact version uses the element, which increases the size of the output file. - $qrCode->addOptions([ - SvgWriter::WRITER_OPTION_COMPACT => false - ]); + $qrCode->avoidCompactSvgs(); $method = match ($this->getQrCodeImageFormat()) { QrCode::FILE_FORMAT_SVG => 'ImageSVG', diff --git a/src/QrCode/QrCode.php b/src/QrCode/QrCode.php index ea804e2..af992e3 100644 --- a/src/QrCode/QrCode.php +++ b/src/QrCode/QrCode.php @@ -30,8 +30,7 @@ final class QrCode private BaseQrCode $qrCode; private Logo $qrCodeLogo; private WriterInterface $qrCodeWriter; - /** @var array $options */ - private array $options = [SvgWriter::WRITER_OPTION_FORCE_XLINK_HREF => true]; + private array $writerOptions = [SvgWriter::WRITER_OPTION_FORCE_XLINK_HREF => true]; public static function create(string $data, string $fileFormat = null): self { @@ -72,15 +71,6 @@ private function __construct(string $data, string $fileFormat) $this->setWriterByExtension($fileFormat); } - /** - * @param array $options - * @return void - */ - public function addOptions(array $options): void - { - $this->options = array_merge($this->options, $options); - } - public function writeFile(string $path): void { $extension = strtolower(pathinfo($path, PATHINFO_EXTENSION)); @@ -113,6 +103,28 @@ public function getText(): string return $this->qrCode->getData(); } + /** + * This makes sure the file size of invoices created with TcPdfOutput is not unnecessarily inflated. + * + * With endroid/qr-code 5.0.8, the default behaviour was changed to create optimized SVGs with the element. + * However, for some unknown reason this inflates the filze size of invoices created with TcPdfOutput, even though + * the file size of the qr code becomes smaller. + * In endroid/qr-code 5.0.9, an option was added to create SVGs in the "old style" again, using elements. + * This new style is what we want to use for TcPdfOutput, if available. + * + * @link https://github.com/sprain/php-swiss-qr-bill/issues/249 + * @link https://github.com/endroid/qr-code/commit/3dcdfab4c9122874f3915d8bf80a43b9df11852d + */ + public function avoidCompactSvgs(): void + { + // The constant only exists in Endroid 5.0.9 and higher + if (defined('Endroid\QrCode\Writer\SvgWriter::WRITER_OPTION_COMPACT')) { + $this->writerOptions = array_merge($this->writerOptions, [ + SvgWriter::WRITER_OPTION_COMPACT => false + ]); + } + } + private function setWriterByExtension(string $extension): void { if (!in_array($extension, self::SUPPORTED_FILE_FORMATS)) { @@ -135,7 +147,7 @@ private function getQrCodeResult(): ResultInterface $this->qrCode, $this->qrCodeLogo, null, - $this->options + $this->writerOptions ); } } From fbe2bc0d5a47cd9f1a21dcb8816ed8c905523341 Mon Sep 17 00:00:00 2001 From: Manuel Reinhard Date: Wed, 15 May 2024 15:10:15 +0200 Subject: [PATCH 05/10] Add test setups for compact and non-compact SVG qr codes --- .../Output/HtmlOutput/HtmlOutputTest.php | 6 ++++-- tests/QrCode/QrCodeTest.php | 10 +++++++--- tests/TestCompactSvgQrCodeTrait.php | 15 +++++++++++++++ 3 files changed, 26 insertions(+), 5 deletions(-) create mode 100644 tests/TestCompactSvgQrCodeTrait.php diff --git a/tests/PaymentPart/Output/HtmlOutput/HtmlOutputTest.php b/tests/PaymentPart/Output/HtmlOutput/HtmlOutputTest.php index 99c99e6..dfd140c 100644 --- a/tests/PaymentPart/Output/HtmlOutput/HtmlOutputTest.php +++ b/tests/PaymentPart/Output/HtmlOutput/HtmlOutputTest.php @@ -6,11 +6,13 @@ use Sprain\SwissQrBill\PaymentPart\Output\HtmlOutput\HtmlOutput; use Sprain\SwissQrBill\QrBill; use Sprain\SwissQrBill\QrCode\QrCode; +use Sprain\Tests\SwissQrBill\TestCompactSvgQrCodeTrait; use Sprain\Tests\SwissQrBill\TestQrBillCreatorTrait; final class HtmlOutputTest extends TestCase { use TestQrBillCreatorTrait; + use TestCompactSvgQrCodeTrait; /** * @dataProvider validQrBillsProvider @@ -21,12 +23,12 @@ public function testValidQrBills(string $name, QrBill $qrBill) [ 'printable' => false, 'format' => QrCode::FILE_FORMAT_SVG, - 'file' => __DIR__ . '/../../../TestData/HtmlOutput/' . $name . '.svg.html' + 'file' => __DIR__ . '/../../../TestData/HtmlOutput/' . $name . $this->getCompact() . '.svg.html' ], [ 'printable' => true, 'format' => QrCode::FILE_FORMAT_SVG, - 'file' => __DIR__ . '/../../../TestData/HtmlOutput/' . $name . '.svg.print.html' + 'file' => __DIR__ . '/../../../TestData/HtmlOutput/' . $name . $this->getCompact() . '.svg.print.html' ], /* PNGs do not create the same output in all environments [ diff --git a/tests/QrCode/QrCodeTest.php b/tests/QrCode/QrCodeTest.php index ef8d343..d3c855d 100644 --- a/tests/QrCode/QrCodeTest.php +++ b/tests/QrCode/QrCodeTest.php @@ -5,9 +5,12 @@ use PHPUnit\Framework\TestCase; use Sprain\SwissQrBill\QrCode\Exception\UnsupportedFileExtensionException; use Sprain\SwissQrBill\QrCode\QrCode; +use Sprain\Tests\SwissQrBill\TestCompactSvgQrCodeTrait; final class QrCodeTest extends TestCase { + use TestCompactSvgQrCodeTrait; + /** * @dataProvider supportedExtensionsProvider */ @@ -18,7 +21,6 @@ public function testSupportedFileExtensions(string $extension): void if (!is_writable(dirname($testfile))) { $this->markTestSkipped(); - return; } $qrCode->writeFile($testfile); @@ -79,7 +81,9 @@ public function dataUriProvider() # ], [ 'code' => 'This is a test code', - 'dataUri' => 'data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIj8+CjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiB3aWR0aD0iNTUwcHgiIGhlaWdodD0iNTUwcHgiIHZpZXdCb3g9IjAgMCA1NTAgNTUwIj48ZGVmcz48cmVjdCBpZD0iYmxvY2siIHdpZHRoPSIyMi4wMDAwMDAwMDAwIiBoZWlnaHQ9IjIyLjAwMDAwMDAwMDAiIGZpbGw9IiMwMDAwMDAiIGZpbGwtb3BhY2l0eT0iMSIvPjwvZGVmcz48cmVjdCB4PSIwIiB5PSIwIiB3aWR0aD0iNTUwIiBoZWlnaHQ9IjU1MCIgZmlsbD0iI2ZmZmZmZiIgZmlsbC1vcGFjaXR5PSIxIi8+PHVzZSB4PSIwLjAwMDAwMDAwMDAiIHk9IjAuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIyMi4wMDAwMDAwMDAwIiB5PSIwLjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iNDQuMDAwMDAwMDAwMCIgeT0iMC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjY2LjAwMDAwMDAwMDAiIHk9IjAuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSI4OC4wMDAwMDAwMDAwIiB5PSIwLjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMTEwLjAwMDAwMDAwMDAiIHk9IjAuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIxMzIuMDAwMDAwMDAwMCIgeT0iMC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjE3Ni4wMDAwMDAwMDAwIiB5PSIwLjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMTk4LjAwMDAwMDAwMDAiIHk9IjAuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIyMjAuMDAwMDAwMDAwMCIgeT0iMC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjI4Ni4wMDAwMDAwMDAwIiB5PSIwLjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMzUyLjAwMDAwMDAwMDAiIHk9IjAuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIzOTYuMDAwMDAwMDAwMCIgeT0iMC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjQxOC4wMDAwMDAwMDAwIiB5PSIwLjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iNDQwLjAwMDAwMDAwMDAiIHk9IjAuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSI0NjIuMDAwMDAwMDAwMCIgeT0iMC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjQ4NC4wMDAwMDAwMDAwIiB5PSIwLjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iNTA2LjAwMDAwMDAwMDAiIHk9IjAuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSI1MjguMDAwMDAwMDAwMCIgeT0iMC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjAuMDAwMDAwMDAwMCIgeT0iMjIuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIxMzIuMDAwMDAwMDAwMCIgeT0iMjIuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIyMjAuMDAwMDAwMDAwMCIgeT0iMjIuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIyNDIuMDAwMDAwMDAwMCIgeT0iMjIuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIyODYuMDAwMDAwMDAwMCIgeT0iMjIuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIzMDguMDAwMDAwMDAwMCIgeT0iMjIuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIzOTYuMDAwMDAwMDAwMCIgeT0iMjIuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSI1MjguMDAwMDAwMDAwMCIgeT0iMjIuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIwLjAwMDAwMDAwMDAiIHk9IjQ0LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iNDQuMDAwMDAwMDAwMCIgeT0iNDQuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSI2Ni4wMDAwMDAwMDAwIiB5PSI0NC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9Ijg4LjAwMDAwMDAwMDAiIHk9IjQ0LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMTMyLjAwMDAwMDAwMDAiIHk9IjQ0LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMTc2LjAwMDAwMDAwMDAiIHk9IjQ0LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMTk4LjAwMDAwMDAwMDAiIHk9IjQ0LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMjIwLjAwMDAwMDAwMDAiIHk9IjQ0LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMjQyLjAwMDAwMDAwMDAiIHk9IjQ0LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMzA4LjAwMDAwMDAwMDAiIHk9IjQ0LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMzk2LjAwMDAwMDAwMDAiIHk9IjQ0LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iNDQwLjAwMDAwMDAwMDAiIHk9IjQ0LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iNDYyLjAwMDAwMDAwMDAiIHk9IjQ0LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iNDg0LjAwMDAwMDAwMDAiIHk9IjQ0LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iNTI4LjAwMDAwMDAwMDAiIHk9IjQ0LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMC4wMDAwMDAwMDAwIiB5PSI2Ni4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjQ0LjAwMDAwMDAwMDAiIHk9IjY2LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iNjYuMDAwMDAwMDAwMCIgeT0iNjYuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSI4OC4wMDAwMDAwMDAwIiB5PSI2Ni4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjEzMi4wMDAwMDAwMDAwIiB5PSI2Ni4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjE5OC4wMDAwMDAwMDAwIiB5PSI2Ni4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjI0Mi4wMDAwMDAwMDAwIiB5PSI2Ni4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjI2NC4wMDAwMDAwMDAwIiB5PSI2Ni4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjI4Ni4wMDAwMDAwMDAwIiB5PSI2Ni4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjMwOC4wMDAwMDAwMDAwIiB5PSI2Ni4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjM5Ni4wMDAwMDAwMDAwIiB5PSI2Ni4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjQ0MC4wMDAwMDAwMDAwIiB5PSI2Ni4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjQ2Mi4wMDAwMDAwMDAwIiB5PSI2Ni4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjQ4NC4wMDAwMDAwMDAwIiB5PSI2Ni4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjUyOC4wMDAwMDAwMDAwIiB5PSI2Ni4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjAuMDAwMDAwMDAwMCIgeT0iODguMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSI0NC4wMDAwMDAwMDAwIiB5PSI4OC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjY2LjAwMDAwMDAwMDAiIHk9Ijg4LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iODguMDAwMDAwMDAwMCIgeT0iODguMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIxMzIuMDAwMDAwMDAwMCIgeT0iODguMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIyMjAuMDAwMDAwMDAwMCIgeT0iODguMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIyODYuMDAwMDAwMDAwMCIgeT0iODguMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIzMzAuMDAwMDAwMDAwMCIgeT0iODguMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIzNTIuMDAwMDAwMDAwMCIgeT0iODguMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIzOTYuMDAwMDAwMDAwMCIgeT0iODguMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSI0NDAuMDAwMDAwMDAwMCIgeT0iODguMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSI0NjIuMDAwMDAwMDAwMCIgeT0iODguMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSI0ODQuMDAwMDAwMDAwMCIgeT0iODguMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSI1MjguMDAwMDAwMDAwMCIgeT0iODguMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIwLjAwMDAwMDAwMDAiIHk9IjExMC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjEzMi4wMDAwMDAwMDAwIiB5PSIxMTAuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIxNzYuMDAwMDAwMDAwMCIgeT0iMTEwLjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMjY0LjAwMDAwMDAwMDAiIHk9IjExMC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjI4Ni4wMDAwMDAwMDAwIiB5PSIxMTAuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIzMDguMDAwMDAwMDAwMCIgeT0iMTEwLjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMzk2LjAwMDAwMDAwMDAiIHk9IjExMC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjUyOC4wMDAwMDAwMDAwIiB5PSIxMTAuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIwLjAwMDAwMDAwMDAiIHk9IjEzMi4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjIyLjAwMDAwMDAwMDAiIHk9IjEzMi4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjQ0LjAwMDAwMDAwMDAiIHk9IjEzMi4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjY2LjAwMDAwMDAwMDAiIHk9IjEzMi4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9Ijg4LjAwMDAwMDAwMDAiIHk9IjEzMi4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjExMC4wMDAwMDAwMDAwIiB5PSIxMzIuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIxMzIuMDAwMDAwMDAwMCIgeT0iMTMyLjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMTc2LjAwMDAwMDAwMDAiIHk9IjEzMi4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjIyMC4wMDAwMDAwMDAwIiB5PSIxMzIuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIyNjQuMDAwMDAwMDAwMCIgeT0iMTMyLjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMzA4LjAwMDAwMDAwMDAiIHk9IjEzMi4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjM1Mi4wMDAwMDAwMDAwIiB5PSIxMzIuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIzOTYuMDAwMDAwMDAwMCIgeT0iMTMyLjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iNDE4LjAwMDAwMDAwMDAiIHk9IjEzMi4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjQ0MC4wMDAwMDAwMDAwIiB5PSIxMzIuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSI0NjIuMDAwMDAwMDAwMCIgeT0iMTMyLjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iNDg0LjAwMDAwMDAwMDAiIHk9IjEzMi4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjUwNi4wMDAwMDAwMDAwIiB5PSIxMzIuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSI1MjguMDAwMDAwMDAwMCIgeT0iMTMyLjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMjQyLjAwMDAwMDAwMDAiIHk9IjE1NC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjMzMC4wMDAwMDAwMDAwIiB5PSIxNTQuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIwLjAwMDAwMDAwMDAiIHk9IjE3Ni4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjQ0LjAwMDAwMDAwMDAiIHk9IjE3Ni4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjEzMi4wMDAwMDAwMDAwIiB5PSIxNzYuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIxNTQuMDAwMDAwMDAwMCIgeT0iMTc2LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMjIwLjAwMDAwMDAwMDAiIHk9IjE3Ni4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjI4Ni4wMDAwMDAwMDAwIiB5PSIxNzYuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIzMzAuMDAwMDAwMDAwMCIgeT0iMTc2LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMzUyLjAwMDAwMDAwMDAiIHk9IjE3Ni4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjQxOC4wMDAwMDAwMDAwIiB5PSIxNzYuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSI0ODQuMDAwMDAwMDAwMCIgeT0iMTc2LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iNTI4LjAwMDAwMDAwMDAiIHk9IjE3Ni4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjAuMDAwMDAwMDAwMCIgeT0iMTk4LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMjIuMDAwMDAwMDAwMCIgeT0iMTk4LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iNDQuMDAwMDAwMDAwMCIgeT0iMTk4LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iODguMDAwMDAwMDAwMCIgeT0iMTk4LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMTEwLjAwMDAwMDAwMDAiIHk9IjE5OC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjE3Ni4wMDAwMDAwMDAwIiB5PSIxOTguMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIyMjAuMDAwMDAwMDAwMCIgeT0iMTk4LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMjQyLjAwMDAwMDAwMDAiIHk9IjE5OC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjI2NC4wMDAwMDAwMDAwIiB5PSIxOTguMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIzNTIuMDAwMDAwMDAwMCIgeT0iMTk4LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iNDYyLjAwMDAwMDAwMDAiIHk9IjE5OC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjIyLjAwMDAwMDAwMDAiIHk9IjIyMC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjQ0LjAwMDAwMDAwMDAiIHk9IjIyMC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjY2LjAwMDAwMDAwMDAiIHk9IjIyMC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9Ijg4LjAwMDAwMDAwMDAiIHk9IjIyMC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjEzMi4wMDAwMDAwMDAwIiB5PSIyMjAuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIxNzYuMDAwMDAwMDAwMCIgeT0iMjIwLjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMzMwLjAwMDAwMDAwMDAiIHk9IjIyMC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjM5Ni4wMDAwMDAwMDAwIiB5PSIyMjAuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSI0MTguMDAwMDAwMDAwMCIgeT0iMjIwLjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iNDYyLjAwMDAwMDAwMDAiIHk9IjIyMC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjUyOC4wMDAwMDAwMDAwIiB5PSIyMjAuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIwLjAwMDAwMDAwMDAiIHk9IjI0Mi4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjIyLjAwMDAwMDAwMDAiIHk9IjI0Mi4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjQ0LjAwMDAwMDAwMDAiIHk9IjI0Mi4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjY2LjAwMDAwMDAwMDAiIHk9IjI0Mi4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjExMC4wMDAwMDAwMDAwIiB5PSIyNDIuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIxNTQuMDAwMDAwMDAwMCIgeT0iMjQyLjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMjIwLjAwMDAwMDAwMDAiIHk9IjI0Mi4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjI0Mi4wMDAwMDAwMDAwIiB5PSIyNDIuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIzMzAuMDAwMDAwMDAwMCIgeT0iMjQyLjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMzUyLjAwMDAwMDAwMDAiIHk9IjI0Mi4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjM5Ni4wMDAwMDAwMDAwIiB5PSIyNDIuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSI0ODQuMDAwMDAwMDAwMCIgeT0iMjQyLjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iNTA2LjAwMDAwMDAwMDAiIHk9IjI0Mi4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjAuMDAwMDAwMDAwMCIgeT0iMjY0LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iNDQuMDAwMDAwMDAwMCIgeT0iMjY0LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iNjYuMDAwMDAwMDAwMCIgeT0iMjY0LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMTEwLjAwMDAwMDAwMDAiIHk9IjI2NC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjEzMi4wMDAwMDAwMDAwIiB5PSIyNjQuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIyMjAuMDAwMDAwMDAwMCIgeT0iMjY0LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMjQyLjAwMDAwMDAwMDAiIHk9IjI2NC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjI2NC4wMDAwMDAwMDAwIiB5PSIyNjQuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIyODYuMDAwMDAwMDAwMCIgeT0iMjY0LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMzMwLjAwMDAwMDAwMDAiIHk9IjI2NC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjM3NC4wMDAwMDAwMDAwIiB5PSIyNjQuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIzOTYuMDAwMDAwMDAwMCIgeT0iMjY0LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iNDYyLjAwMDAwMDAwMDAiIHk9IjI2NC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjQ4NC4wMDAwMDAwMDAwIiB5PSIyNjQuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSI1MjguMDAwMDAwMDAwMCIgeT0iMjY0LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMjIuMDAwMDAwMDAwMCIgeT0iMjg2LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iNjYuMDAwMDAwMDAwMCIgeT0iMjg2LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iODguMDAwMDAwMDAwMCIgeT0iMjg2LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMTEwLjAwMDAwMDAwMDAiIHk9IjI4Ni4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjE1NC4wMDAwMDAwMDAwIiB5PSIyODYuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIxOTguMDAwMDAwMDAwMCIgeT0iMjg2LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMjY0LjAwMDAwMDAwMDAiIHk9IjI4Ni4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjMwOC4wMDAwMDAwMDAwIiB5PSIyODYuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIzMzAuMDAwMDAwMDAwMCIgeT0iMjg2LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMzc0LjAwMDAwMDAwMDAiIHk9IjI4Ni4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjQ2Mi4wMDAwMDAwMDAwIiB5PSIyODYuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSI1MDYuMDAwMDAwMDAwMCIgeT0iMjg2LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iNTI4LjAwMDAwMDAwMDAiIHk9IjI4Ni4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjAuMDAwMDAwMDAwMCIgeT0iMzA4LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMjIuMDAwMDAwMDAwMCIgeT0iMzA4LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iNDQuMDAwMDAwMDAwMCIgeT0iMzA4LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMTMyLjAwMDAwMDAwMDAiIHk9IjMwOC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjE3Ni4wMDAwMDAwMDAwIiB5PSIzMDguMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIxOTguMDAwMDAwMDAwMCIgeT0iMzA4LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMjY0LjAwMDAwMDAwMDAiIHk9IjMwOC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjI4Ni4wMDAwMDAwMDAwIiB5PSIzMDguMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIzMDguMDAwMDAwMDAwMCIgeT0iMzA4LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMzMwLjAwMDAwMDAwMDAiIHk9IjMwOC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjM3NC4wMDAwMDAwMDAwIiB5PSIzMDguMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIzOTYuMDAwMDAwMDAwMCIgeT0iMzA4LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iNDYyLjAwMDAwMDAwMDAiIHk9IjMwOC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjUwNi4wMDAwMDAwMDAwIiB5PSIzMDguMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSI1MjguMDAwMDAwMDAwMCIgeT0iMzA4LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iNjYuMDAwMDAwMDAwMCIgeT0iMzMwLjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMTU0LjAwMDAwMDAwMDAiIHk9IjMzMC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjE5OC4wMDAwMDAwMDAwIiB5PSIzMzAuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIyNDIuMDAwMDAwMDAwMCIgeT0iMzMwLjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMjY0LjAwMDAwMDAwMDAiIHk9IjMzMC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjMzMC4wMDAwMDAwMDAwIiB5PSIzMzAuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIzNTIuMDAwMDAwMDAwMCIgeT0iMzMwLjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMzk2LjAwMDAwMDAwMDAiIHk9IjMzMC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjQxOC4wMDAwMDAwMDAwIiB5PSIzMzAuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSI0ODQuMDAwMDAwMDAwMCIgeT0iMzMwLjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iNTA2LjAwMDAwMDAwMDAiIHk9IjMzMC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjAuMDAwMDAwMDAwMCIgeT0iMzUyLjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMjIuMDAwMDAwMDAwMCIgeT0iMzUyLjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iODguMDAwMDAwMDAwMCIgeT0iMzUyLjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMTEwLjAwMDAwMDAwMDAiIHk9IjM1Mi4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjEzMi4wMDAwMDAwMDAwIiB5PSIzNTIuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIxNTQuMDAwMDAwMDAwMCIgeT0iMzUyLjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMTk4LjAwMDAwMDAwMDAiIHk9IjM1Mi4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjI4Ni4wMDAwMDAwMDAwIiB5PSIzNTIuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIzMDguMDAwMDAwMDAwMCIgeT0iMzUyLjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMzMwLjAwMDAwMDAwMDAiIHk9IjM1Mi4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjM1Mi4wMDAwMDAwMDAwIiB5PSIzNTIuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIzNzQuMDAwMDAwMDAwMCIgeT0iMzUyLjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMzk2LjAwMDAwMDAwMDAiIHk9IjM1Mi4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjQxOC4wMDAwMDAwMDAwIiB5PSIzNTIuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSI0NDAuMDAwMDAwMDAwMCIgeT0iMzUyLjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iNDg0LjAwMDAwMDAwMDAiIHk9IjM1Mi4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjUwNi4wMDAwMDAwMDAwIiB5PSIzNTIuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSI1MjguMDAwMDAwMDAwMCIgeT0iMzUyLjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMTc2LjAwMDAwMDAwMDAiIHk9IjM3NC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjI4Ni4wMDAwMDAwMDAwIiB5PSIzNzQuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIzMzAuMDAwMDAwMDAwMCIgeT0iMzc0LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMzUyLjAwMDAwMDAwMDAiIHk9IjM3NC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjQ0MC4wMDAwMDAwMDAwIiB5PSIzNzQuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSI0NjIuMDAwMDAwMDAwMCIgeT0iMzc0LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMC4wMDAwMDAwMDAwIiB5PSIzOTYuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIyMi4wMDAwMDAwMDAwIiB5PSIzOTYuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSI0NC4wMDAwMDAwMDAwIiB5PSIzOTYuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSI2Ni4wMDAwMDAwMDAwIiB5PSIzOTYuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSI4OC4wMDAwMDAwMDAwIiB5PSIzOTYuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIxMTAuMDAwMDAwMDAwMCIgeT0iMzk2LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMTMyLjAwMDAwMDAwMDAiIHk9IjM5Ni4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjE3Ni4wMDAwMDAwMDAwIiB5PSIzOTYuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIxOTguMDAwMDAwMDAwMCIgeT0iMzk2LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMjIwLjAwMDAwMDAwMDAiIHk9IjM5Ni4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjI0Mi4wMDAwMDAwMDAwIiB5PSIzOTYuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIzMzAuMDAwMDAwMDAwMCIgeT0iMzk2LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMzUyLjAwMDAwMDAwMDAiIHk9IjM5Ni4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjM5Ni4wMDAwMDAwMDAwIiB5PSIzOTYuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSI0NDAuMDAwMDAwMDAwMCIgeT0iMzk2LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iNTI4LjAwMDAwMDAwMDAiIHk9IjM5Ni4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjAuMDAwMDAwMDAwMCIgeT0iNDE4LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMTMyLjAwMDAwMDAwMDAiIHk9IjQxOC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjE5OC4wMDAwMDAwMDAwIiB5PSI0MTguMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIyMjAuMDAwMDAwMDAwMCIgeT0iNDE4LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMjg2LjAwMDAwMDAwMDAiIHk9IjQxOC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjMzMC4wMDAwMDAwMDAwIiB5PSI0MTguMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIzNTIuMDAwMDAwMDAwMCIgeT0iNDE4LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iNDQwLjAwMDAwMDAwMDAiIHk9IjQxOC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjUyOC4wMDAwMDAwMDAwIiB5PSI0MTguMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIwLjAwMDAwMDAwMDAiIHk9IjQ0MC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjQ0LjAwMDAwMDAwMDAiIHk9IjQ0MC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjY2LjAwMDAwMDAwMDAiIHk9IjQ0MC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9Ijg4LjAwMDAwMDAwMDAiIHk9IjQ0MC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjEzMi4wMDAwMDAwMDAwIiB5PSI0NDAuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIyMjAuMDAwMDAwMDAwMCIgeT0iNDQwLjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMjQyLjAwMDAwMDAwMDAiIHk9IjQ0MC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjI2NC4wMDAwMDAwMDAwIiB5PSI0NDAuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIyODYuMDAwMDAwMDAwMCIgeT0iNDQwLjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMzMwLjAwMDAwMDAwMDAiIHk9IjQ0MC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjM1Mi4wMDAwMDAwMDAwIiB5PSI0NDAuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIzNzQuMDAwMDAwMDAwMCIgeT0iNDQwLjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMzk2LjAwMDAwMDAwMDAiIHk9IjQ0MC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjQxOC4wMDAwMDAwMDAwIiB5PSI0NDAuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSI0NDAuMDAwMDAwMDAwMCIgeT0iNDQwLjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iNTA2LjAwMDAwMDAwMDAiIHk9IjQ0MC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjAuMDAwMDAwMDAwMCIgeT0iNDYyLjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iNDQuMDAwMDAwMDAwMCIgeT0iNDYyLjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iNjYuMDAwMDAwMDAwMCIgeT0iNDYyLjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iODguMDAwMDAwMDAwMCIgeT0iNDYyLjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMTMyLjAwMDAwMDAwMDAiIHk9IjQ2Mi4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjE5OC4wMDAwMDAwMDAwIiB5PSI0NjIuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIyNjQuMDAwMDAwMDAwMCIgeT0iNDYyLjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMzUyLjAwMDAwMDAwMDAiIHk9IjQ2Mi4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjQxOC4wMDAwMDAwMDAwIiB5PSI0NjIuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSI1MDYuMDAwMDAwMDAwMCIgeT0iNDYyLjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMC4wMDAwMDAwMDAwIiB5PSI0ODQuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSI0NC4wMDAwMDAwMDAwIiB5PSI0ODQuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSI2Ni4wMDAwMDAwMDAwIiB5PSI0ODQuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSI4OC4wMDAwMDAwMDAwIiB5PSI0ODQuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIxMzIuMDAwMDAwMDAwMCIgeT0iNDg0LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMTc2LjAwMDAwMDAwMDAiIHk9IjQ4NC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjI2NC4wMDAwMDAwMDAwIiB5PSI0ODQuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIyODYuMDAwMDAwMDAwMCIgeT0iNDg0LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMzA4LjAwMDAwMDAwMDAiIHk9IjQ4NC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjM1Mi4wMDAwMDAwMDAwIiB5PSI0ODQuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIzNzQuMDAwMDAwMDAwMCIgeT0iNDg0LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMzk2LjAwMDAwMDAwMDAiIHk9IjQ4NC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjQxOC4wMDAwMDAwMDAwIiB5PSI0ODQuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSI0NjIuMDAwMDAwMDAwMCIgeT0iNDg0LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iNTA2LjAwMDAwMDAwMDAiIHk9IjQ4NC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjUyOC4wMDAwMDAwMDAwIiB5PSI0ODQuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIwLjAwMDAwMDAwMDAiIHk9IjUwNi4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjEzMi4wMDAwMDAwMDAwIiB5PSI1MDYuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIyMjAuMDAwMDAwMDAwMCIgeT0iNTA2LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMjQyLjAwMDAwMDAwMDAiIHk9IjUwNi4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjI2NC4wMDAwMDAwMDAwIiB5PSI1MDYuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIzMDguMDAwMDAwMDAwMCIgeT0iNTA2LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMzc0LjAwMDAwMDAwMDAiIHk9IjUwNi4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjQ0MC4wMDAwMDAwMDAwIiB5PSI1MDYuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSI1MDYuMDAwMDAwMDAwMCIgeT0iNTA2LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iNTI4LjAwMDAwMDAwMDAiIHk9IjUwNi4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjAuMDAwMDAwMDAwMCIgeT0iNTI4LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMjIuMDAwMDAwMDAwMCIgeT0iNTI4LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iNDQuMDAwMDAwMDAwMCIgeT0iNTI4LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iNjYuMDAwMDAwMDAwMCIgeT0iNTI4LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iODguMDAwMDAwMDAwMCIgeT0iNTI4LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMTEwLjAwMDAwMDAwMDAiIHk9IjUyOC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjEzMi4wMDAwMDAwMDAwIiB5PSI1MjguMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIxNzYuMDAwMDAwMDAwMCIgeT0iNTI4LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMTk4LjAwMDAwMDAwMDAiIHk9IjUyOC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjIyMC4wMDAwMDAwMDAwIiB5PSI1MjguMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIyODYuMDAwMDAwMDAwMCIgeT0iNTI4LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMzA4LjAwMDAwMDAwMDAiIHk9IjUyOC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjM1Mi4wMDAwMDAwMDAwIiB5PSI1MjguMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSI0NDAuMDAwMDAwMDAwMCIgeT0iNTI4LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iNDYyLjAwMDAwMDAwMDAiIHk9IjUyOC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjQ4NC4wMDAwMDAwMDAwIiB5PSI1MjguMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSI1MjguMDAwMDAwMDAwMCIgeT0iNTI4LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjxpbWFnZSB4PSIyMzMuNSIgeT0iMjMzLjUiIHdpZHRoPSI4MyIgaGVpZ2h0PSI4MyIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSIgeGxpbms6aHJlZj0iZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFLWUFBQUNtQVFBQUFBQjQ4OG5hQUFBQVJrbEVRVlJJeDJQNGp3WDhZUmlCb2g4WTBJSDlxT2p3Rk9VSHh2aUJVZEZSMFNFb3lvOVVhaDBZRlIwVnBaSG9ZRWpybzZLam9wU0lJb0ZSMFZGUjZvdGlBU05RRkFDZHEvUEkwVXVnTVFBQUFBQkpSVTVFcmtKZ2dnPT0iLz48L3N2Zz4K', + 'dataUri' => $this->getCompact() + ? 'data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIj8+CjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiB3aWR0aD0iNTUwcHgiIGhlaWdodD0iNTUwcHgiIHZpZXdCb3g9IjAgMCA1NTAgNTUwIj48cmVjdCB4PSIwIiB5PSIwIiB3aWR0aD0iNTUwIiBoZWlnaHQ9IjU1MCIgZmlsbD0iI2ZmZmZmZiIgZmlsbC1vcGFjaXR5PSIxIi8+PHBhdGggZmlsbD0iIzAwMDAwMCIgZmlsbC1vcGFjaXR5PSIxIiBkPSJNMCwwTDE1NCwwTDE1NCwyMkwwLDIyWk0xNzYsMEwyNDIsMEwyNDIsMjJMMTc2LDIyWk0yODYsMEwzMDgsMEwzMDgsMjJMMjg2LDIyWk0zNTIsMEwzNzQsMEwzNzQsMjJMMzUyLDIyWk0zOTYsMEw1NTAsMEw1NTAsMjJMMzk2LDIyWk0wLDIyTDIyLDIyTDIyLDQ0TDAsNDRaTTEzMiwyMkwxNTQsMjJMMTU0LDQ0TDEzMiw0NFpNMjIwLDIyTDI2NCwyMkwyNjQsNDRMMjIwLDQ0Wk0yODYsMjJMMzMwLDIyTDMzMCw0NEwyODYsNDRaTTM5NiwyMkw0MTgsMjJMNDE4LDQ0TDM5Niw0NFpNNTI4LDIyTDU1MCwyMkw1NTAsNDRMNTI4LDQ0Wk0wLDQ0TDIyLDQ0TDIyLDY2TDAsNjZaTTQ0LDQ0TDExMCw0NEwxMTAsNjZMNDQsNjZaTTEzMiw0NEwxNTQsNDRMMTU0LDY2TDEzMiw2NlpNMTc2LDQ0TDI2NCw0NEwyNjQsNjZMMTc2LDY2Wk0zMDgsNDRMMzMwLDQ0TDMzMCw2NkwzMDgsNjZaTTM5Niw0NEw0MTgsNDRMNDE4LDY2TDM5Niw2NlpNNDQwLDQ0TDUwNiw0NEw1MDYsNjZMNDQwLDY2Wk01MjgsNDRMNTUwLDQ0TDU1MCw2Nkw1MjgsNjZaTTAsNjZMMjIsNjZMMjIsODhMMCw4OFpNNDQsNjZMMTEwLDY2TDExMCw4OEw0NCw4OFpNMTMyLDY2TDE1NCw2NkwxNTQsODhMMTMyLDg4Wk0xOTgsNjZMMjIwLDY2TDIyMCw4OEwxOTgsODhaTTI0Miw2NkwzMzAsNjZMMzMwLDg4TDI0Miw4OFpNMzk2LDY2TDQxOCw2Nkw0MTgsODhMMzk2LDg4Wk00NDAsNjZMNTA2LDY2TDUwNiw4OEw0NDAsODhaTTUyOCw2Nkw1NTAsNjZMNTUwLDg4TDUyOCw4OFpNMCw4OEwyMiw4OEwyMiwxMTBMMCwxMTBaTTQ0LDg4TDExMCw4OEwxMTAsMTEwTDQ0LDExMFpNMTMyLDg4TDE1NCw4OEwxNTQsMTEwTDEzMiwxMTBaTTIyMCw4OEwyNDIsODhMMjQyLDExMEwyMjAsMTEwWk0yODYsODhMMzA4LDg4TDMwOCwxMTBMMjg2LDExMFpNMzMwLDg4TDM3NCw4OEwzNzQsMTEwTDMzMCwxMTBaTTM5Niw4OEw0MTgsODhMNDE4LDExMEwzOTYsMTEwWk00NDAsODhMNTA2LDg4TDUwNiwxMTBMNDQwLDExMFpNNTI4LDg4TDU1MCw4OEw1NTAsMTEwTDUyOCwxMTBaTTAsMTEwTDIyLDExMEwyMiwxMzJMMCwxMzJaTTEzMiwxMTBMMTU0LDExMEwxNTQsMTMyTDEzMiwxMzJaTTE3NiwxMTBMMTk4LDExMEwxOTgsMTMyTDE3NiwxMzJaTTI2NCwxMTBMMzMwLDExMEwzMzAsMTMyTDI2NCwxMzJaTTM5NiwxMTBMNDE4LDExMEw0MTgsMTMyTDM5NiwxMzJaTTUyOCwxMTBMNTUwLDExMEw1NTAsMTMyTDUyOCwxMzJaTTAsMTMyTDE1NCwxMzJMMTU0LDE1NEwwLDE1NFpNMTc2LDEzMkwxOTgsMTMyTDE5OCwxNTRMMTc2LDE1NFpNMjIwLDEzMkwyNDIsMTMyTDI0MiwxNTRMMjIwLDE1NFpNMjY0LDEzMkwyODYsMTMyTDI4NiwxNTRMMjY0LDE1NFpNMzA4LDEzMkwzMzAsMTMyTDMzMCwxNTRMMzA4LDE1NFpNMzUyLDEzMkwzNzQsMTMyTDM3NCwxNTRMMzUyLDE1NFpNMzk2LDEzMkw1NTAsMTMyTDU1MCwxNTRMMzk2LDE1NFpNMjQyLDE1NEwyNjQsMTU0TDI2NCwxNzZMMjQyLDE3NlpNMzMwLDE1NEwzNTIsMTU0TDM1MiwxNzZMMzMwLDE3NlpNMCwxNzZMMjIsMTc2TDIyLDE5OEwwLDE5OFpNNDQsMTc2TDY2LDE3Nkw2NiwxOThMNDQsMTk4Wk0xMzIsMTc2TDE3NiwxNzZMMTc2LDE5OEwxMzIsMTk4Wk0yMjAsMTc2TDI0MiwxNzZMMjQyLDE5OEwyMjAsMTk4Wk0yODYsMTc2TDMwOCwxNzZMMzA4LDE5OEwyODYsMTk4Wk0zMzAsMTc2TDM3NCwxNzZMMzc0LDE5OEwzMzAsMTk4Wk00MTgsMTc2TDQ0MCwxNzZMNDQwLDE5OEw0MTgsMTk4Wk00ODQsMTc2TDUwNiwxNzZMNTA2LDE5OEw0ODQsMTk4Wk01MjgsMTc2TDU1MCwxNzZMNTUwLDE5OEw1MjgsMTk4Wk0wLDE5OEw2NiwxOThMNjYsMjIwTDAsMjIwWk04OCwxOThMMTMyLDE5OEwxMzIsMjIwTDg4LDIyMFpNMTc2LDE5OEwxOTgsMTk4TDE5OCwyMjBMMTc2LDIyMFpNMjIwLDE5OEwyODYsMTk4TDI4NiwyMjBMMjIwLDIyMFpNMzUyLDE5OEwzNzQsMTk4TDM3NCwyMjBMMzUyLDIyMFpNNDYyLDE5OEw0ODQsMTk4TDQ4NCwyMjBMNDYyLDIyMFpNMjIsMjIwTDExMCwyMjBMMTEwLDI0MkwyMiwyNDJaTTEzMiwyMjBMMTU0LDIyMEwxNTQsMjQyTDEzMiwyNDJaTTE3NiwyMjBMMTk4LDIyMEwxOTgsMjQyTDE3NiwyNDJaTTMzMCwyMjBMMzUyLDIyMEwzNTIsMjQyTDMzMCwyNDJaTTM5NiwyMjBMNDQwLDIyMEw0NDAsMjQyTDM5NiwyNDJaTTQ2MiwyMjBMNDg0LDIyMEw0ODQsMjQyTDQ2MiwyNDJaTTUyOCwyMjBMNTUwLDIyMEw1NTAsMjQyTDUyOCwyNDJaTTAsMjQyTDg4LDI0Mkw4OCwyNjRMMCwyNjRaTTExMCwyNDJMMTMyLDI0MkwxMzIsMjY0TDExMCwyNjRaTTE1NCwyNDJMMTc2LDI0MkwxNzYsMjY0TDE1NCwyNjRaTTIyMCwyNDJMMjY0LDI0MkwyNjQsMjY0TDIyMCwyNjRaTTMzMCwyNDJMMzc0LDI0MkwzNzQsMjY0TDMzMCwyNjRaTTM5NiwyNDJMNDE4LDI0Mkw0MTgsMjY0TDM5NiwyNjRaTTQ4NCwyNDJMNTI4LDI0Mkw1MjgsMjY0TDQ4NCwyNjRaTTAsMjY0TDIyLDI2NEwyMiwyODZMMCwyODZaTTQ0LDI2NEw4OCwyNjRMODgsMjg2TDQ0LDI4NlpNMTEwLDI2NEwxNTQsMjY0TDE1NCwyODZMMTEwLDI4NlpNMjIwLDI2NEwzMDgsMjY0TDMwOCwyODZMMjIwLDI4NlpNMzMwLDI2NEwzNTIsMjY0TDM1MiwyODZMMzMwLDI4NlpNMzc0LDI2NEw0MTgsMjY0TDQxOCwyODZMMzc0LDI4NlpNNDYyLDI2NEw1MDYsMjY0TDUwNiwyODZMNDYyLDI4NlpNNTI4LDI2NEw1NTAsMjY0TDU1MCwyODZMNTI4LDI4NlpNMjIsMjg2TDQ0LDI4Nkw0NCwzMDhMMjIsMzA4Wk02NiwyODZMMTMyLDI4NkwxMzIsMzA4TDY2LDMwOFpNMTU0LDI4NkwxNzYsMjg2TDE3NiwzMDhMMTU0LDMwOFpNMTk4LDI4NkwyMjAsMjg2TDIyMCwzMDhMMTk4LDMwOFpNMjY0LDI4NkwyODYsMjg2TDI4NiwzMDhMMjY0LDMwOFpNMzA4LDI4NkwzNTIsMjg2TDM1MiwzMDhMMzA4LDMwOFpNMzc0LDI4NkwzOTYsMjg2TDM5NiwzMDhMMzc0LDMwOFpNNDYyLDI4Nkw0ODQsMjg2TDQ4NCwzMDhMNDYyLDMwOFpNNTA2LDI4Nkw1NTAsMjg2TDU1MCwzMDhMNTA2LDMwOFpNMCwzMDhMNjYsMzA4TDY2LDMzMEwwLDMzMFpNMTMyLDMwOEwxNTQsMzA4TDE1NCwzMzBMMTMyLDMzMFpNMTc2LDMwOEwyMjAsMzA4TDIyMCwzMzBMMTc2LDMzMFpNMjY0LDMwOEwzNTIsMzA4TDM1MiwzMzBMMjY0LDMzMFpNMzc0LDMwOEw0MTgsMzA4TDQxOCwzMzBMMzc0LDMzMFpNNDYyLDMwOEw0ODQsMzA4TDQ4NCwzMzBMNDYyLDMzMFpNNTA2LDMwOEw1NTAsMzA4TDU1MCwzMzBMNTA2LDMzMFpNNjYsMzMwTDg4LDMzMEw4OCwzNTJMNjYsMzUyWk0xNTQsMzMwTDE3NiwzMzBMMTc2LDM1MkwxNTQsMzUyWk0xOTgsMzMwTDIyMCwzMzBMMjIwLDM1MkwxOTgsMzUyWk0yNDIsMzMwTDI4NiwzMzBMMjg2LDM1MkwyNDIsMzUyWk0zMzAsMzMwTDM3NCwzMzBMMzc0LDM1MkwzMzAsMzUyWk0zOTYsMzMwTDQ0MCwzMzBMNDQwLDM1MkwzOTYsMzUyWk00ODQsMzMwTDUyOCwzMzBMNTI4LDM1Mkw0ODQsMzUyWk0wLDM1Mkw0NCwzNTJMNDQsMzc0TDAsMzc0Wk04OCwzNTJMMTc2LDM1MkwxNzYsMzc0TDg4LDM3NFpNMTk4LDM1MkwyMjAsMzUyTDIyMCwzNzRMMTk4LDM3NFpNMjg2LDM1Mkw0NjIsMzUyTDQ2MiwzNzRMMjg2LDM3NFpNNDg0LDM1Mkw1NTAsMzUyTDU1MCwzNzRMNDg0LDM3NFpNMTc2LDM3NEwxOTgsMzc0TDE5OCwzOTZMMTc2LDM5NlpNMjg2LDM3NEwzMDgsMzc0TDMwOCwzOTZMMjg2LDM5NlpNMzMwLDM3NEwzNzQsMzc0TDM3NCwzOTZMMzMwLDM5NlpNNDQwLDM3NEw0ODQsMzc0TDQ4NCwzOTZMNDQwLDM5NlpNMCwzOTZMMTU0LDM5NkwxNTQsNDE4TDAsNDE4Wk0xNzYsMzk2TDI2NCwzOTZMMjY0LDQxOEwxNzYsNDE4Wk0zMzAsMzk2TDM3NCwzOTZMMzc0LDQxOEwzMzAsNDE4Wk0zOTYsMzk2TDQxOCwzOTZMNDE4LDQxOEwzOTYsNDE4Wk00NDAsMzk2TDQ2MiwzOTZMNDYyLDQxOEw0NDAsNDE4Wk01MjgsMzk2TDU1MCwzOTZMNTUwLDQxOEw1MjgsNDE4Wk0wLDQxOEwyMiw0MThMMjIsNDQwTDAsNDQwWk0xMzIsNDE4TDE1NCw0MThMMTU0LDQ0MEwxMzIsNDQwWk0xOTgsNDE4TDI0Miw0MThMMjQyLDQ0MEwxOTgsNDQwWk0yODYsNDE4TDMwOCw0MThMMzA4LDQ0MEwyODYsNDQwWk0zMzAsNDE4TDM3NCw0MThMMzc0LDQ0MEwzMzAsNDQwWk00NDAsNDE4TDQ2Miw0MThMNDYyLDQ0MEw0NDAsNDQwWk01MjgsNDE4TDU1MCw0MThMNTUwLDQ0MEw1MjgsNDQwWk0wLDQ0MEwyMiw0NDBMMjIsNDYyTDAsNDYyWk00NCw0NDBMMTEwLDQ0MEwxMTAsNDYyTDQ0LDQ2MlpNMTMyLDQ0MEwxNTQsNDQwTDE1NCw0NjJMMTMyLDQ2MlpNMjIwLDQ0MEwzMDgsNDQwTDMwOCw0NjJMMjIwLDQ2MlpNMzMwLDQ0MEw0NjIsNDQwTDQ2Miw0NjJMMzMwLDQ2MlpNNTA2LDQ0MEw1MjgsNDQwTDUyOCw0NjJMNTA2LDQ2MlpNMCw0NjJMMjIsNDYyTDIyLDQ4NEwwLDQ4NFpNNDQsNDYyTDExMCw0NjJMMTEwLDQ4NEw0NCw0ODRaTTEzMiw0NjJMMTU0LDQ2MkwxNTQsNDg0TDEzMiw0ODRaTTE5OCw0NjJMMjIwLDQ2MkwyMjAsNDg0TDE5OCw0ODRaTTI2NCw0NjJMMjg2LDQ2MkwyODYsNDg0TDI2NCw0ODRaTTM1Miw0NjJMMzc0LDQ2MkwzNzQsNDg0TDM1Miw0ODRaTTQxOCw0NjJMNDQwLDQ2Mkw0NDAsNDg0TDQxOCw0ODRaTTUwNiw0NjJMNTI4LDQ2Mkw1MjgsNDg0TDUwNiw0ODRaTTAsNDg0TDIyLDQ4NEwyMiw1MDZMMCw1MDZaTTQ0LDQ4NEwxMTAsNDg0TDExMCw1MDZMNDQsNTA2Wk0xMzIsNDg0TDE1NCw0ODRMMTU0LDUwNkwxMzIsNTA2Wk0xNzYsNDg0TDE5OCw0ODRMMTk4LDUwNkwxNzYsNTA2Wk0yNjQsNDg0TDMzMCw0ODRMMzMwLDUwNkwyNjQsNTA2Wk0zNTIsNDg0TDQ0MCw0ODRMNDQwLDUwNkwzNTIsNTA2Wk00NjIsNDg0TDQ4NCw0ODRMNDg0LDUwNkw0NjIsNTA2Wk01MDYsNDg0TDU1MCw0ODRMNTUwLDUwNkw1MDYsNTA2Wk0wLDUwNkwyMiw1MDZMMjIsNTI4TDAsNTI4Wk0xMzIsNTA2TDE1NCw1MDZMMTU0LDUyOEwxMzIsNTI4Wk0yMjAsNTA2TDI4Niw1MDZMMjg2LDUyOEwyMjAsNTI4Wk0zMDgsNTA2TDMzMCw1MDZMMzMwLDUyOEwzMDgsNTI4Wk0zNzQsNTA2TDM5Niw1MDZMMzk2LDUyOEwzNzQsNTI4Wk00NDAsNTA2TDQ2Miw1MDZMNDYyLDUyOEw0NDAsNTI4Wk01MDYsNTA2TDU1MCw1MDZMNTUwLDUyOEw1MDYsNTI4Wk0wLDUyOEwxNTQsNTI4TDE1NCw1NTBMMCw1NTBaTTE3Niw1MjhMMjQyLDUyOEwyNDIsNTUwTDE3Niw1NTBaTTI4Niw1MjhMMzMwLDUyOEwzMzAsNTUwTDI4Niw1NTBaTTM1Miw1MjhMMzc0LDUyOEwzNzQsNTUwTDM1Miw1NTBaTTQ0MCw1MjhMNTA2LDUyOEw1MDYsNTUwTDQ0MCw1NTBaTTUyOCw1MjhMNTUwLDUyOEw1NTAsNTUwTDUyOCw1NTBaIi8+PGltYWdlIHg9IjIzMy41IiB5PSIyMzMuNSIgd2lkdGg9IjgzIiBoZWlnaHQ9IjgzIiBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJub25lIiB4bGluazpocmVmPSJkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUtZQUFBQ21BUUFBQUFCNDg4bmFBQUFBUmtsRVFWUkl4MlA0andYOFlSaUJvaDhZMElIOXFPandGT1VIeHZpQlVkRlIwU0VveW85VWFoMFlGUjBWcFpIb1lFanJvNktqb3BTSUlvRlIwVkZSNm90aUFTTlFGQUNkcS9QSTBVdWdNUUFBQUFCSlJVNUVya0pnZ2c9PSIvPjwvc3ZnPgo=' + : 'data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIj8+CjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiB3aWR0aD0iNTUwcHgiIGhlaWdodD0iNTUwcHgiIHZpZXdCb3g9IjAgMCA1NTAgNTUwIj48ZGVmcz48cmVjdCBpZD0iYmxvY2siIHdpZHRoPSIyMi4wMDAwMDAwMDAwIiBoZWlnaHQ9IjIyLjAwMDAwMDAwMDAiIGZpbGw9IiMwMDAwMDAiIGZpbGwtb3BhY2l0eT0iMSIvPjwvZGVmcz48cmVjdCB4PSIwIiB5PSIwIiB3aWR0aD0iNTUwIiBoZWlnaHQ9IjU1MCIgZmlsbD0iI2ZmZmZmZiIgZmlsbC1vcGFjaXR5PSIxIi8+PHVzZSB4PSIwLjAwMDAwMDAwMDAiIHk9IjAuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIyMi4wMDAwMDAwMDAwIiB5PSIwLjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iNDQuMDAwMDAwMDAwMCIgeT0iMC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjY2LjAwMDAwMDAwMDAiIHk9IjAuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSI4OC4wMDAwMDAwMDAwIiB5PSIwLjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMTEwLjAwMDAwMDAwMDAiIHk9IjAuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIxMzIuMDAwMDAwMDAwMCIgeT0iMC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjE3Ni4wMDAwMDAwMDAwIiB5PSIwLjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMTk4LjAwMDAwMDAwMDAiIHk9IjAuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIyMjAuMDAwMDAwMDAwMCIgeT0iMC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjI4Ni4wMDAwMDAwMDAwIiB5PSIwLjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMzUyLjAwMDAwMDAwMDAiIHk9IjAuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIzOTYuMDAwMDAwMDAwMCIgeT0iMC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjQxOC4wMDAwMDAwMDAwIiB5PSIwLjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iNDQwLjAwMDAwMDAwMDAiIHk9IjAuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSI0NjIuMDAwMDAwMDAwMCIgeT0iMC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjQ4NC4wMDAwMDAwMDAwIiB5PSIwLjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iNTA2LjAwMDAwMDAwMDAiIHk9IjAuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSI1MjguMDAwMDAwMDAwMCIgeT0iMC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjAuMDAwMDAwMDAwMCIgeT0iMjIuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIxMzIuMDAwMDAwMDAwMCIgeT0iMjIuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIyMjAuMDAwMDAwMDAwMCIgeT0iMjIuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIyNDIuMDAwMDAwMDAwMCIgeT0iMjIuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIyODYuMDAwMDAwMDAwMCIgeT0iMjIuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIzMDguMDAwMDAwMDAwMCIgeT0iMjIuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIzOTYuMDAwMDAwMDAwMCIgeT0iMjIuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSI1MjguMDAwMDAwMDAwMCIgeT0iMjIuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIwLjAwMDAwMDAwMDAiIHk9IjQ0LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iNDQuMDAwMDAwMDAwMCIgeT0iNDQuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSI2Ni4wMDAwMDAwMDAwIiB5PSI0NC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9Ijg4LjAwMDAwMDAwMDAiIHk9IjQ0LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMTMyLjAwMDAwMDAwMDAiIHk9IjQ0LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMTc2LjAwMDAwMDAwMDAiIHk9IjQ0LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMTk4LjAwMDAwMDAwMDAiIHk9IjQ0LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMjIwLjAwMDAwMDAwMDAiIHk9IjQ0LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMjQyLjAwMDAwMDAwMDAiIHk9IjQ0LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMzA4LjAwMDAwMDAwMDAiIHk9IjQ0LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMzk2LjAwMDAwMDAwMDAiIHk9IjQ0LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iNDQwLjAwMDAwMDAwMDAiIHk9IjQ0LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iNDYyLjAwMDAwMDAwMDAiIHk9IjQ0LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iNDg0LjAwMDAwMDAwMDAiIHk9IjQ0LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iNTI4LjAwMDAwMDAwMDAiIHk9IjQ0LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMC4wMDAwMDAwMDAwIiB5PSI2Ni4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjQ0LjAwMDAwMDAwMDAiIHk9IjY2LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iNjYuMDAwMDAwMDAwMCIgeT0iNjYuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSI4OC4wMDAwMDAwMDAwIiB5PSI2Ni4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjEzMi4wMDAwMDAwMDAwIiB5PSI2Ni4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjE5OC4wMDAwMDAwMDAwIiB5PSI2Ni4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjI0Mi4wMDAwMDAwMDAwIiB5PSI2Ni4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjI2NC4wMDAwMDAwMDAwIiB5PSI2Ni4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjI4Ni4wMDAwMDAwMDAwIiB5PSI2Ni4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjMwOC4wMDAwMDAwMDAwIiB5PSI2Ni4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjM5Ni4wMDAwMDAwMDAwIiB5PSI2Ni4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjQ0MC4wMDAwMDAwMDAwIiB5PSI2Ni4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjQ2Mi4wMDAwMDAwMDAwIiB5PSI2Ni4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjQ4NC4wMDAwMDAwMDAwIiB5PSI2Ni4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjUyOC4wMDAwMDAwMDAwIiB5PSI2Ni4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjAuMDAwMDAwMDAwMCIgeT0iODguMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSI0NC4wMDAwMDAwMDAwIiB5PSI4OC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjY2LjAwMDAwMDAwMDAiIHk9Ijg4LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iODguMDAwMDAwMDAwMCIgeT0iODguMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIxMzIuMDAwMDAwMDAwMCIgeT0iODguMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIyMjAuMDAwMDAwMDAwMCIgeT0iODguMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIyODYuMDAwMDAwMDAwMCIgeT0iODguMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIzMzAuMDAwMDAwMDAwMCIgeT0iODguMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIzNTIuMDAwMDAwMDAwMCIgeT0iODguMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIzOTYuMDAwMDAwMDAwMCIgeT0iODguMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSI0NDAuMDAwMDAwMDAwMCIgeT0iODguMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSI0NjIuMDAwMDAwMDAwMCIgeT0iODguMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSI0ODQuMDAwMDAwMDAwMCIgeT0iODguMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSI1MjguMDAwMDAwMDAwMCIgeT0iODguMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIwLjAwMDAwMDAwMDAiIHk9IjExMC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjEzMi4wMDAwMDAwMDAwIiB5PSIxMTAuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIxNzYuMDAwMDAwMDAwMCIgeT0iMTEwLjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMjY0LjAwMDAwMDAwMDAiIHk9IjExMC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjI4Ni4wMDAwMDAwMDAwIiB5PSIxMTAuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIzMDguMDAwMDAwMDAwMCIgeT0iMTEwLjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMzk2LjAwMDAwMDAwMDAiIHk9IjExMC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjUyOC4wMDAwMDAwMDAwIiB5PSIxMTAuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIwLjAwMDAwMDAwMDAiIHk9IjEzMi4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjIyLjAwMDAwMDAwMDAiIHk9IjEzMi4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjQ0LjAwMDAwMDAwMDAiIHk9IjEzMi4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjY2LjAwMDAwMDAwMDAiIHk9IjEzMi4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9Ijg4LjAwMDAwMDAwMDAiIHk9IjEzMi4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjExMC4wMDAwMDAwMDAwIiB5PSIxMzIuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIxMzIuMDAwMDAwMDAwMCIgeT0iMTMyLjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMTc2LjAwMDAwMDAwMDAiIHk9IjEzMi4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjIyMC4wMDAwMDAwMDAwIiB5PSIxMzIuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIyNjQuMDAwMDAwMDAwMCIgeT0iMTMyLjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMzA4LjAwMDAwMDAwMDAiIHk9IjEzMi4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjM1Mi4wMDAwMDAwMDAwIiB5PSIxMzIuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIzOTYuMDAwMDAwMDAwMCIgeT0iMTMyLjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iNDE4LjAwMDAwMDAwMDAiIHk9IjEzMi4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjQ0MC4wMDAwMDAwMDAwIiB5PSIxMzIuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSI0NjIuMDAwMDAwMDAwMCIgeT0iMTMyLjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iNDg0LjAwMDAwMDAwMDAiIHk9IjEzMi4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjUwNi4wMDAwMDAwMDAwIiB5PSIxMzIuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSI1MjguMDAwMDAwMDAwMCIgeT0iMTMyLjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMjQyLjAwMDAwMDAwMDAiIHk9IjE1NC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjMzMC4wMDAwMDAwMDAwIiB5PSIxNTQuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIwLjAwMDAwMDAwMDAiIHk9IjE3Ni4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjQ0LjAwMDAwMDAwMDAiIHk9IjE3Ni4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjEzMi4wMDAwMDAwMDAwIiB5PSIxNzYuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIxNTQuMDAwMDAwMDAwMCIgeT0iMTc2LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMjIwLjAwMDAwMDAwMDAiIHk9IjE3Ni4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjI4Ni4wMDAwMDAwMDAwIiB5PSIxNzYuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIzMzAuMDAwMDAwMDAwMCIgeT0iMTc2LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMzUyLjAwMDAwMDAwMDAiIHk9IjE3Ni4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjQxOC4wMDAwMDAwMDAwIiB5PSIxNzYuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSI0ODQuMDAwMDAwMDAwMCIgeT0iMTc2LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iNTI4LjAwMDAwMDAwMDAiIHk9IjE3Ni4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjAuMDAwMDAwMDAwMCIgeT0iMTk4LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMjIuMDAwMDAwMDAwMCIgeT0iMTk4LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iNDQuMDAwMDAwMDAwMCIgeT0iMTk4LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iODguMDAwMDAwMDAwMCIgeT0iMTk4LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMTEwLjAwMDAwMDAwMDAiIHk9IjE5OC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjE3Ni4wMDAwMDAwMDAwIiB5PSIxOTguMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIyMjAuMDAwMDAwMDAwMCIgeT0iMTk4LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMjQyLjAwMDAwMDAwMDAiIHk9IjE5OC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjI2NC4wMDAwMDAwMDAwIiB5PSIxOTguMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIzNTIuMDAwMDAwMDAwMCIgeT0iMTk4LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iNDYyLjAwMDAwMDAwMDAiIHk9IjE5OC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjIyLjAwMDAwMDAwMDAiIHk9IjIyMC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjQ0LjAwMDAwMDAwMDAiIHk9IjIyMC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjY2LjAwMDAwMDAwMDAiIHk9IjIyMC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9Ijg4LjAwMDAwMDAwMDAiIHk9IjIyMC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjEzMi4wMDAwMDAwMDAwIiB5PSIyMjAuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIxNzYuMDAwMDAwMDAwMCIgeT0iMjIwLjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMzMwLjAwMDAwMDAwMDAiIHk9IjIyMC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjM5Ni4wMDAwMDAwMDAwIiB5PSIyMjAuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSI0MTguMDAwMDAwMDAwMCIgeT0iMjIwLjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iNDYyLjAwMDAwMDAwMDAiIHk9IjIyMC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjUyOC4wMDAwMDAwMDAwIiB5PSIyMjAuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIwLjAwMDAwMDAwMDAiIHk9IjI0Mi4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjIyLjAwMDAwMDAwMDAiIHk9IjI0Mi4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjQ0LjAwMDAwMDAwMDAiIHk9IjI0Mi4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjY2LjAwMDAwMDAwMDAiIHk9IjI0Mi4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjExMC4wMDAwMDAwMDAwIiB5PSIyNDIuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIxNTQuMDAwMDAwMDAwMCIgeT0iMjQyLjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMjIwLjAwMDAwMDAwMDAiIHk9IjI0Mi4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjI0Mi4wMDAwMDAwMDAwIiB5PSIyNDIuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIzMzAuMDAwMDAwMDAwMCIgeT0iMjQyLjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMzUyLjAwMDAwMDAwMDAiIHk9IjI0Mi4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjM5Ni4wMDAwMDAwMDAwIiB5PSIyNDIuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSI0ODQuMDAwMDAwMDAwMCIgeT0iMjQyLjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iNTA2LjAwMDAwMDAwMDAiIHk9IjI0Mi4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjAuMDAwMDAwMDAwMCIgeT0iMjY0LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iNDQuMDAwMDAwMDAwMCIgeT0iMjY0LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iNjYuMDAwMDAwMDAwMCIgeT0iMjY0LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMTEwLjAwMDAwMDAwMDAiIHk9IjI2NC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjEzMi4wMDAwMDAwMDAwIiB5PSIyNjQuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIyMjAuMDAwMDAwMDAwMCIgeT0iMjY0LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMjQyLjAwMDAwMDAwMDAiIHk9IjI2NC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjI2NC4wMDAwMDAwMDAwIiB5PSIyNjQuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIyODYuMDAwMDAwMDAwMCIgeT0iMjY0LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMzMwLjAwMDAwMDAwMDAiIHk9IjI2NC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjM3NC4wMDAwMDAwMDAwIiB5PSIyNjQuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIzOTYuMDAwMDAwMDAwMCIgeT0iMjY0LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iNDYyLjAwMDAwMDAwMDAiIHk9IjI2NC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjQ4NC4wMDAwMDAwMDAwIiB5PSIyNjQuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSI1MjguMDAwMDAwMDAwMCIgeT0iMjY0LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMjIuMDAwMDAwMDAwMCIgeT0iMjg2LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iNjYuMDAwMDAwMDAwMCIgeT0iMjg2LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iODguMDAwMDAwMDAwMCIgeT0iMjg2LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMTEwLjAwMDAwMDAwMDAiIHk9IjI4Ni4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjE1NC4wMDAwMDAwMDAwIiB5PSIyODYuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIxOTguMDAwMDAwMDAwMCIgeT0iMjg2LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMjY0LjAwMDAwMDAwMDAiIHk9IjI4Ni4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjMwOC4wMDAwMDAwMDAwIiB5PSIyODYuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIzMzAuMDAwMDAwMDAwMCIgeT0iMjg2LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMzc0LjAwMDAwMDAwMDAiIHk9IjI4Ni4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjQ2Mi4wMDAwMDAwMDAwIiB5PSIyODYuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSI1MDYuMDAwMDAwMDAwMCIgeT0iMjg2LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iNTI4LjAwMDAwMDAwMDAiIHk9IjI4Ni4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjAuMDAwMDAwMDAwMCIgeT0iMzA4LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMjIuMDAwMDAwMDAwMCIgeT0iMzA4LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iNDQuMDAwMDAwMDAwMCIgeT0iMzA4LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMTMyLjAwMDAwMDAwMDAiIHk9IjMwOC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjE3Ni4wMDAwMDAwMDAwIiB5PSIzMDguMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIxOTguMDAwMDAwMDAwMCIgeT0iMzA4LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMjY0LjAwMDAwMDAwMDAiIHk9IjMwOC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjI4Ni4wMDAwMDAwMDAwIiB5PSIzMDguMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIzMDguMDAwMDAwMDAwMCIgeT0iMzA4LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMzMwLjAwMDAwMDAwMDAiIHk9IjMwOC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjM3NC4wMDAwMDAwMDAwIiB5PSIzMDguMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIzOTYuMDAwMDAwMDAwMCIgeT0iMzA4LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iNDYyLjAwMDAwMDAwMDAiIHk9IjMwOC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjUwNi4wMDAwMDAwMDAwIiB5PSIzMDguMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSI1MjguMDAwMDAwMDAwMCIgeT0iMzA4LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iNjYuMDAwMDAwMDAwMCIgeT0iMzMwLjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMTU0LjAwMDAwMDAwMDAiIHk9IjMzMC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjE5OC4wMDAwMDAwMDAwIiB5PSIzMzAuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIyNDIuMDAwMDAwMDAwMCIgeT0iMzMwLjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMjY0LjAwMDAwMDAwMDAiIHk9IjMzMC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjMzMC4wMDAwMDAwMDAwIiB5PSIzMzAuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIzNTIuMDAwMDAwMDAwMCIgeT0iMzMwLjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMzk2LjAwMDAwMDAwMDAiIHk9IjMzMC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjQxOC4wMDAwMDAwMDAwIiB5PSIzMzAuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSI0ODQuMDAwMDAwMDAwMCIgeT0iMzMwLjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iNTA2LjAwMDAwMDAwMDAiIHk9IjMzMC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjAuMDAwMDAwMDAwMCIgeT0iMzUyLjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMjIuMDAwMDAwMDAwMCIgeT0iMzUyLjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iODguMDAwMDAwMDAwMCIgeT0iMzUyLjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMTEwLjAwMDAwMDAwMDAiIHk9IjM1Mi4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjEzMi4wMDAwMDAwMDAwIiB5PSIzNTIuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIxNTQuMDAwMDAwMDAwMCIgeT0iMzUyLjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMTk4LjAwMDAwMDAwMDAiIHk9IjM1Mi4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjI4Ni4wMDAwMDAwMDAwIiB5PSIzNTIuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIzMDguMDAwMDAwMDAwMCIgeT0iMzUyLjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMzMwLjAwMDAwMDAwMDAiIHk9IjM1Mi4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjM1Mi4wMDAwMDAwMDAwIiB5PSIzNTIuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIzNzQuMDAwMDAwMDAwMCIgeT0iMzUyLjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMzk2LjAwMDAwMDAwMDAiIHk9IjM1Mi4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjQxOC4wMDAwMDAwMDAwIiB5PSIzNTIuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSI0NDAuMDAwMDAwMDAwMCIgeT0iMzUyLjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iNDg0LjAwMDAwMDAwMDAiIHk9IjM1Mi4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjUwNi4wMDAwMDAwMDAwIiB5PSIzNTIuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSI1MjguMDAwMDAwMDAwMCIgeT0iMzUyLjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMTc2LjAwMDAwMDAwMDAiIHk9IjM3NC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjI4Ni4wMDAwMDAwMDAwIiB5PSIzNzQuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIzMzAuMDAwMDAwMDAwMCIgeT0iMzc0LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMzUyLjAwMDAwMDAwMDAiIHk9IjM3NC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjQ0MC4wMDAwMDAwMDAwIiB5PSIzNzQuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSI0NjIuMDAwMDAwMDAwMCIgeT0iMzc0LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMC4wMDAwMDAwMDAwIiB5PSIzOTYuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIyMi4wMDAwMDAwMDAwIiB5PSIzOTYuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSI0NC4wMDAwMDAwMDAwIiB5PSIzOTYuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSI2Ni4wMDAwMDAwMDAwIiB5PSIzOTYuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSI4OC4wMDAwMDAwMDAwIiB5PSIzOTYuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIxMTAuMDAwMDAwMDAwMCIgeT0iMzk2LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMTMyLjAwMDAwMDAwMDAiIHk9IjM5Ni4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjE3Ni4wMDAwMDAwMDAwIiB5PSIzOTYuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIxOTguMDAwMDAwMDAwMCIgeT0iMzk2LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMjIwLjAwMDAwMDAwMDAiIHk9IjM5Ni4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjI0Mi4wMDAwMDAwMDAwIiB5PSIzOTYuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIzMzAuMDAwMDAwMDAwMCIgeT0iMzk2LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMzUyLjAwMDAwMDAwMDAiIHk9IjM5Ni4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjM5Ni4wMDAwMDAwMDAwIiB5PSIzOTYuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSI0NDAuMDAwMDAwMDAwMCIgeT0iMzk2LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iNTI4LjAwMDAwMDAwMDAiIHk9IjM5Ni4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjAuMDAwMDAwMDAwMCIgeT0iNDE4LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMTMyLjAwMDAwMDAwMDAiIHk9IjQxOC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjE5OC4wMDAwMDAwMDAwIiB5PSI0MTguMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIyMjAuMDAwMDAwMDAwMCIgeT0iNDE4LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMjg2LjAwMDAwMDAwMDAiIHk9IjQxOC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjMzMC4wMDAwMDAwMDAwIiB5PSI0MTguMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIzNTIuMDAwMDAwMDAwMCIgeT0iNDE4LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iNDQwLjAwMDAwMDAwMDAiIHk9IjQxOC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjUyOC4wMDAwMDAwMDAwIiB5PSI0MTguMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIwLjAwMDAwMDAwMDAiIHk9IjQ0MC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjQ0LjAwMDAwMDAwMDAiIHk9IjQ0MC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjY2LjAwMDAwMDAwMDAiIHk9IjQ0MC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9Ijg4LjAwMDAwMDAwMDAiIHk9IjQ0MC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjEzMi4wMDAwMDAwMDAwIiB5PSI0NDAuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIyMjAuMDAwMDAwMDAwMCIgeT0iNDQwLjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMjQyLjAwMDAwMDAwMDAiIHk9IjQ0MC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjI2NC4wMDAwMDAwMDAwIiB5PSI0NDAuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIyODYuMDAwMDAwMDAwMCIgeT0iNDQwLjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMzMwLjAwMDAwMDAwMDAiIHk9IjQ0MC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjM1Mi4wMDAwMDAwMDAwIiB5PSI0NDAuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIzNzQuMDAwMDAwMDAwMCIgeT0iNDQwLjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMzk2LjAwMDAwMDAwMDAiIHk9IjQ0MC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjQxOC4wMDAwMDAwMDAwIiB5PSI0NDAuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSI0NDAuMDAwMDAwMDAwMCIgeT0iNDQwLjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iNTA2LjAwMDAwMDAwMDAiIHk9IjQ0MC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjAuMDAwMDAwMDAwMCIgeT0iNDYyLjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iNDQuMDAwMDAwMDAwMCIgeT0iNDYyLjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iNjYuMDAwMDAwMDAwMCIgeT0iNDYyLjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iODguMDAwMDAwMDAwMCIgeT0iNDYyLjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMTMyLjAwMDAwMDAwMDAiIHk9IjQ2Mi4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjE5OC4wMDAwMDAwMDAwIiB5PSI0NjIuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIyNjQuMDAwMDAwMDAwMCIgeT0iNDYyLjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMzUyLjAwMDAwMDAwMDAiIHk9IjQ2Mi4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjQxOC4wMDAwMDAwMDAwIiB5PSI0NjIuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSI1MDYuMDAwMDAwMDAwMCIgeT0iNDYyLjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMC4wMDAwMDAwMDAwIiB5PSI0ODQuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSI0NC4wMDAwMDAwMDAwIiB5PSI0ODQuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSI2Ni4wMDAwMDAwMDAwIiB5PSI0ODQuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSI4OC4wMDAwMDAwMDAwIiB5PSI0ODQuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIxMzIuMDAwMDAwMDAwMCIgeT0iNDg0LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMTc2LjAwMDAwMDAwMDAiIHk9IjQ4NC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjI2NC4wMDAwMDAwMDAwIiB5PSI0ODQuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIyODYuMDAwMDAwMDAwMCIgeT0iNDg0LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMzA4LjAwMDAwMDAwMDAiIHk9IjQ4NC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjM1Mi4wMDAwMDAwMDAwIiB5PSI0ODQuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIzNzQuMDAwMDAwMDAwMCIgeT0iNDg0LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMzk2LjAwMDAwMDAwMDAiIHk9IjQ4NC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjQxOC4wMDAwMDAwMDAwIiB5PSI0ODQuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSI0NjIuMDAwMDAwMDAwMCIgeT0iNDg0LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iNTA2LjAwMDAwMDAwMDAiIHk9IjQ4NC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjUyOC4wMDAwMDAwMDAwIiB5PSI0ODQuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIwLjAwMDAwMDAwMDAiIHk9IjUwNi4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjEzMi4wMDAwMDAwMDAwIiB5PSI1MDYuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIyMjAuMDAwMDAwMDAwMCIgeT0iNTA2LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMjQyLjAwMDAwMDAwMDAiIHk9IjUwNi4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjI2NC4wMDAwMDAwMDAwIiB5PSI1MDYuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIzMDguMDAwMDAwMDAwMCIgeT0iNTA2LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMzc0LjAwMDAwMDAwMDAiIHk9IjUwNi4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjQ0MC4wMDAwMDAwMDAwIiB5PSI1MDYuMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSI1MDYuMDAwMDAwMDAwMCIgeT0iNTA2LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iNTI4LjAwMDAwMDAwMDAiIHk9IjUwNi4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjAuMDAwMDAwMDAwMCIgeT0iNTI4LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMjIuMDAwMDAwMDAwMCIgeT0iNTI4LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iNDQuMDAwMDAwMDAwMCIgeT0iNTI4LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iNjYuMDAwMDAwMDAwMCIgeT0iNTI4LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iODguMDAwMDAwMDAwMCIgeT0iNTI4LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMTEwLjAwMDAwMDAwMDAiIHk9IjUyOC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjEzMi4wMDAwMDAwMDAwIiB5PSI1MjguMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIxNzYuMDAwMDAwMDAwMCIgeT0iNTI4LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMTk4LjAwMDAwMDAwMDAiIHk9IjUyOC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjIyMC4wMDAwMDAwMDAwIiB5PSI1MjguMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSIyODYuMDAwMDAwMDAwMCIgeT0iNTI4LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iMzA4LjAwMDAwMDAwMDAiIHk9IjUyOC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjM1Mi4wMDAwMDAwMDAwIiB5PSI1MjguMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSI0NDAuMDAwMDAwMDAwMCIgeT0iNTI4LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjx1c2UgeD0iNDYyLjAwMDAwMDAwMDAiIHk9IjUyOC4wMDAwMDAwMDAwIiB4bGluazpocmVmPSIjYmxvY2siLz48dXNlIHg9IjQ4NC4wMDAwMDAwMDAwIiB5PSI1MjguMDAwMDAwMDAwMCIgeGxpbms6aHJlZj0iI2Jsb2NrIi8+PHVzZSB4PSI1MjguMDAwMDAwMDAwMCIgeT0iNTI4LjAwMDAwMDAwMDAiIHhsaW5rOmhyZWY9IiNibG9jayIvPjxpbWFnZSB4PSIyMzMuNSIgeT0iMjMzLjUiIHdpZHRoPSI4MyIgaGVpZ2h0PSI4MyIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSIgeGxpbms6aHJlZj0iZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFLWUFBQUNtQVFBQUFBQjQ4OG5hQUFBQVJrbEVRVlJJeDJQNGp3WDhZUmlCb2g4WTBJSDlxT2p3Rk9VSHh2aUJVZEZSMFNFb3lvOVVhaDBZRlIwVnBaSG9ZRWpybzZLam9wU0lJb0ZSMFZGUjZvdGlBU05RRkFDZHEvUEkwVXVnTVFBQUFBQkpSVTVFcmtKZ2dnPT0iLz48L3N2Zz4K', QrCode::FILE_FORMAT_SVG ] ]; @@ -109,7 +113,7 @@ public function stringProvider() # ], [ 'code' => 'This is a test code', - 'string' => file_get_contents(__DIR__ . '/../TestData/QrCode/string.svg'), + 'string' => file_get_contents(__DIR__ . '/../TestData/QrCode/string' . $this->getCompact() . '.svg'), 'format' => QrCode::FILE_FORMAT_SVG ] ]; diff --git a/tests/TestCompactSvgQrCodeTrait.php b/tests/TestCompactSvgQrCodeTrait.php new file mode 100644 index 0000000..326f119 --- /dev/null +++ b/tests/TestCompactSvgQrCodeTrait.php @@ -0,0 +1,15 @@ + Date: Wed, 15 May 2024 15:19:33 +0200 Subject: [PATCH 06/10] Generate required compact reference files --- ...qr-additional-information-compact.svg.html | 232 ++++++++++++++++ ...itional-information-compact.svg.print.html | 242 +++++++++++++++++ .../qr-alternative-schemes-compact.svg.html | 231 ++++++++++++++++ ...alternative-schemes-compact.svg.print.html | 241 +++++++++++++++++ .../HtmlOutput/qr-full-set-compact.svg.html | 237 +++++++++++++++++ .../qr-full-set-compact.svg.print.html | 247 ++++++++++++++++++ ...rnational-ultimate-debtor-compact.svg.html | 234 +++++++++++++++++ ...nal-ultimate-debtor-compact.svg.print.html | 244 +++++++++++++++++ .../qr-minimal-setup-compact.svg.html | 230 ++++++++++++++++ .../qr-minimal-setup-compact.svg.print.html | 240 +++++++++++++++++ ...editor-and-unknown-debtor-compact.svg.html | 229 ++++++++++++++++ ...-and-unknown-debtor-compact.svg.print.html | 239 +++++++++++++++++ ...amount-and-long-addresses-compact.svg.html | 230 ++++++++++++++++ ...-and-long-addresses-compact.svg.print.html | 240 +++++++++++++++++ ...without-amount-but-debtor-compact.svg.html | 234 +++++++++++++++++ ...t-amount-but-debtor-compact.svg.print.html | 244 +++++++++++++++++ ...nformation-without-amount-compact.svg.html | 230 ++++++++++++++++ ...tion-without-amount-compact.svg.print.html | 240 +++++++++++++++++ ...t-information-zero-amount-compact.svg.html | 230 ++++++++++++++++ ...rmation-zero-amount-compact.svg.print.html | 240 +++++++++++++++++ .../qr-payment-reference-non-compact.svg.html | 230 ++++++++++++++++ ...yment-reference-non-compact.svg.print.html | 240 +++++++++++++++++ ...qr-payment-reference-scor-compact.svg.html | 230 ++++++++++++++++ ...ment-reference-scor-compact.svg.print.html | 240 +++++++++++++++++ .../qr-ultimate-debtor-compact.svg.html | 234 +++++++++++++++++ .../qr-ultimate-debtor-compact.svg.print.html | 244 +++++++++++++++++ tests/TestData/QrCode/string-compact.svg | 2 + 27 files changed, 6154 insertions(+) create mode 100644 tests/TestData/HtmlOutput/qr-additional-information-compact.svg.html create mode 100644 tests/TestData/HtmlOutput/qr-additional-information-compact.svg.print.html create mode 100644 tests/TestData/HtmlOutput/qr-alternative-schemes-compact.svg.html create mode 100644 tests/TestData/HtmlOutput/qr-alternative-schemes-compact.svg.print.html create mode 100644 tests/TestData/HtmlOutput/qr-full-set-compact.svg.html create mode 100644 tests/TestData/HtmlOutput/qr-full-set-compact.svg.print.html create mode 100644 tests/TestData/HtmlOutput/qr-international-ultimate-debtor-compact.svg.html create mode 100644 tests/TestData/HtmlOutput/qr-international-ultimate-debtor-compact.svg.print.html create mode 100644 tests/TestData/HtmlOutput/qr-minimal-setup-compact.svg.html create mode 100644 tests/TestData/HtmlOutput/qr-minimal-setup-compact.svg.print.html create mode 100644 tests/TestData/HtmlOutput/qr-payment-information-with-mediumlong-creditor-and-unknown-debtor-compact.svg.html create mode 100644 tests/TestData/HtmlOutput/qr-payment-information-with-mediumlong-creditor-and-unknown-debtor-compact.svg.print.html create mode 100644 tests/TestData/HtmlOutput/qr-payment-information-without-amount-and-long-addresses-compact.svg.html create mode 100644 tests/TestData/HtmlOutput/qr-payment-information-without-amount-and-long-addresses-compact.svg.print.html create mode 100644 tests/TestData/HtmlOutput/qr-payment-information-without-amount-but-debtor-compact.svg.html create mode 100644 tests/TestData/HtmlOutput/qr-payment-information-without-amount-but-debtor-compact.svg.print.html create mode 100644 tests/TestData/HtmlOutput/qr-payment-information-without-amount-compact.svg.html create mode 100644 tests/TestData/HtmlOutput/qr-payment-information-without-amount-compact.svg.print.html create mode 100644 tests/TestData/HtmlOutput/qr-payment-information-zero-amount-compact.svg.html create mode 100644 tests/TestData/HtmlOutput/qr-payment-information-zero-amount-compact.svg.print.html create mode 100644 tests/TestData/HtmlOutput/qr-payment-reference-non-compact.svg.html create mode 100644 tests/TestData/HtmlOutput/qr-payment-reference-non-compact.svg.print.html create mode 100644 tests/TestData/HtmlOutput/qr-payment-reference-scor-compact.svg.html create mode 100644 tests/TestData/HtmlOutput/qr-payment-reference-scor-compact.svg.print.html create mode 100644 tests/TestData/HtmlOutput/qr-ultimate-debtor-compact.svg.html create mode 100644 tests/TestData/HtmlOutput/qr-ultimate-debtor-compact.svg.print.html create mode 100644 tests/TestData/QrCode/string-compact.svg diff --git a/tests/TestData/HtmlOutput/qr-additional-information-compact.svg.html b/tests/TestData/HtmlOutput/qr-additional-information-compact.svg.html new file mode 100644 index 0000000..9862f35 --- /dev/null +++ b/tests/TestData/HtmlOutput/qr-additional-information-compact.svg.html @@ -0,0 +1,232 @@ + + + + + + + + + + + +
Separate before paying in
+

Receipt

+
+

Account / Payable to

CH44 3199 9123 0008 8901 2
+Thomas LeClaire
+Rue examplaire 22a
+1000 Lausanne

Reference

12 34567 89012 34567 89012 34567

Payable by (name/address)

+
+
+
+

Currency

CHF

+
+
+

Amount

25.90

+
+
+
+

Acceptance point

+
+
+
+

Payment part

+ +
+
+

Currency

CHF

+
+
+

Amount

25.90

+
+
+
+
+
+

Account / Payable to

CH44 3199 9123 0008 8901 2
+Thomas LeClaire
+Rue examplaire 22a
+1000 Lausanne

Reference

12 34567 89012 34567 89012 34567

Additional information

Invoice 1234568
+Gardening work
+Bill Information

Payable by (name/address)

+
+
+
+

+
+
\ No newline at end of file diff --git a/tests/TestData/HtmlOutput/qr-additional-information-compact.svg.print.html b/tests/TestData/HtmlOutput/qr-additional-information-compact.svg.print.html new file mode 100644 index 0000000..0374a5f --- /dev/null +++ b/tests/TestData/HtmlOutput/qr-additional-information-compact.svg.print.html @@ -0,0 +1,242 @@ + + + + + + + + + + + +
Separate before paying in
+

Receipt

+
+

Account / Payable to

CH44 3199 9123 0008 8901 2
+Thomas LeClaire
+Rue examplaire 22a
+1000 Lausanne

Reference

12 34567 89012 34567 89012 34567

Payable by (name/address)

+
+
+
+

Currency

CHF

+
+
+

Amount

25.90

+
+
+
+

Acceptance point

+
+
+
+

Payment part

+ +
+
+

Currency

CHF

+
+
+

Amount

25.90

+
+
+
+
+
+

Account / Payable to

CH44 3199 9123 0008 8901 2
+Thomas LeClaire
+Rue examplaire 22a
+1000 Lausanne

Reference

12 34567 89012 34567 89012 34567

Additional information

Invoice 1234568
+Gardening work
+Bill Information

Payable by (name/address)

+
+
+
+

+
+
\ No newline at end of file diff --git a/tests/TestData/HtmlOutput/qr-alternative-schemes-compact.svg.html b/tests/TestData/HtmlOutput/qr-alternative-schemes-compact.svg.html new file mode 100644 index 0000000..d9a265d --- /dev/null +++ b/tests/TestData/HtmlOutput/qr-alternative-schemes-compact.svg.html @@ -0,0 +1,231 @@ + + + + + + + + + + + +
Separate before paying in
+

Receipt

+
+

Account / Payable to

CH44 3199 9123 0008 8901 2
+Thomas LeClaire
+Rue examplaire 22a
+1000 Lausanne

Reference

12 34567 89012 34567 89012 34567

Payable by (name/address)

+
+
+
+

Currency

CHF

+
+
+

Amount

25.90

+
+
+
+

Acceptance point

+
+
+
+

Payment part

+ +
+
+

Currency

CHF

+
+
+

Amount

25.90

+
+
+
+
+
+

Account / Payable to

CH44 3199 9123 0008 8901 2
+Thomas LeClaire
+Rue examplaire 22a
+1000 Lausanne

Reference

12 34567 89012 34567 89012 34567

Payable by (name/address)

+
+
+
+

CC/XRPL/10/bUuK6fwHtfZ3HGAgKvEV7Y5TzHEu8ChUj9
+CC/XRPL/10/bUuK6fwHtfZ3HGAgKvEV7Y5TzHEu8ChUj9

+
+
\ No newline at end of file diff --git a/tests/TestData/HtmlOutput/qr-alternative-schemes-compact.svg.print.html b/tests/TestData/HtmlOutput/qr-alternative-schemes-compact.svg.print.html new file mode 100644 index 0000000..dd9419b --- /dev/null +++ b/tests/TestData/HtmlOutput/qr-alternative-schemes-compact.svg.print.html @@ -0,0 +1,241 @@ + + + + + + + + + + + +
Separate before paying in
+

Receipt

+
+

Account / Payable to

CH44 3199 9123 0008 8901 2
+Thomas LeClaire
+Rue examplaire 22a
+1000 Lausanne

Reference

12 34567 89012 34567 89012 34567

Payable by (name/address)

+
+
+
+

Currency

CHF

+
+
+

Amount

25.90

+
+
+
+

Acceptance point

+
+
+
+

Payment part

+ +
+
+

Currency

CHF

+
+
+

Amount

25.90

+
+
+
+
+
+

Account / Payable to

CH44 3199 9123 0008 8901 2
+Thomas LeClaire
+Rue examplaire 22a
+1000 Lausanne

Reference

12 34567 89012 34567 89012 34567

Payable by (name/address)

+
+
+
+

CC/XRPL/10/bUuK6fwHtfZ3HGAgKvEV7Y5TzHEu8ChUj9
+CC/XRPL/10/bUuK6fwHtfZ3HGAgKvEV7Y5TzHEu8ChUj9

+
+
\ No newline at end of file diff --git a/tests/TestData/HtmlOutput/qr-full-set-compact.svg.html b/tests/TestData/HtmlOutput/qr-full-set-compact.svg.html new file mode 100644 index 0000000..e774257 --- /dev/null +++ b/tests/TestData/HtmlOutput/qr-full-set-compact.svg.html @@ -0,0 +1,237 @@ + + + + + + + + + + + +
Separate before paying in
+

Receipt

+
+

Account / Payable to

CH44 3199 9123 0008 8901 2
+Thomas LeClaire
+Rue examplaire 22a
+1000 Lausanne

Reference

12 34567 89012 34567 89012 34567

Payable by

Thomas LeClaire
+Rue examplaire 22a
+1000 Lausanne

+
+
+
+

Currency

CHF

+
+
+

Amount

25.90

+
+
+
+

Acceptance point

+
+
+
+

Payment part

+ +
+
+

Currency

CHF

+
+
+

Amount

25.90

+
+
+
+
+
+

Account / Payable to

CH44 3199 9123 0008 8901 2
+Thomas LeClaire
+Rue examplaire 22a
+1000 Lausanne

Reference

12 34567 89012 34567 89012 34567

Additional information

Invoice 1234568
+Gardening work
+Bill Information

Payable by

Thomas LeClaire
+Rue examplaire 22a
+1000 Lausanne

+
+
+
+

CC/XRPL/10/bUuK6fwHtfZ3HGAgKvEV7Y5TzHEu8ChUj9
+CC/XRPL/10/bUuK6fwHtfZ3HGAgKvEV7Y5TzHEu8ChUj9

+
+
\ No newline at end of file diff --git a/tests/TestData/HtmlOutput/qr-full-set-compact.svg.print.html b/tests/TestData/HtmlOutput/qr-full-set-compact.svg.print.html new file mode 100644 index 0000000..c24cd6f --- /dev/null +++ b/tests/TestData/HtmlOutput/qr-full-set-compact.svg.print.html @@ -0,0 +1,247 @@ + + + + + + + + + + + +
Separate before paying in
+

Receipt

+
+

Account / Payable to

CH44 3199 9123 0008 8901 2
+Thomas LeClaire
+Rue examplaire 22a
+1000 Lausanne

Reference

12 34567 89012 34567 89012 34567

Payable by

Thomas LeClaire
+Rue examplaire 22a
+1000 Lausanne

+
+
+
+

Currency

CHF

+
+
+

Amount

25.90

+
+
+
+

Acceptance point

+
+
+
+

Payment part

+ +
+
+

Currency

CHF

+
+
+

Amount

25.90

+
+
+
+
+
+

Account / Payable to

CH44 3199 9123 0008 8901 2
+Thomas LeClaire
+Rue examplaire 22a
+1000 Lausanne

Reference

12 34567 89012 34567 89012 34567

Additional information

Invoice 1234568
+Gardening work
+Bill Information

Payable by

Thomas LeClaire
+Rue examplaire 22a
+1000 Lausanne

+
+
+
+

CC/XRPL/10/bUuK6fwHtfZ3HGAgKvEV7Y5TzHEu8ChUj9
+CC/XRPL/10/bUuK6fwHtfZ3HGAgKvEV7Y5TzHEu8ChUj9

+
+
\ No newline at end of file diff --git a/tests/TestData/HtmlOutput/qr-international-ultimate-debtor-compact.svg.html b/tests/TestData/HtmlOutput/qr-international-ultimate-debtor-compact.svg.html new file mode 100644 index 0000000..c819cfe --- /dev/null +++ b/tests/TestData/HtmlOutput/qr-international-ultimate-debtor-compact.svg.html @@ -0,0 +1,234 @@ + + + + + + + + + + + +
Separate before paying in
+

Receipt

+
+

Account / Payable to

CH44 3199 9123 0008 8901 2
+Thomas LeClaire
+Rue examplaire 22a
+1000 Lausanne

Reference

12 34567 89012 34567 89012 34567

Payable by

Joachim Kraut
+Ewigermeisterstrasse 20
+DE-80331 München

+
+
+
+

Currency

CHF

+
+
+

Amount

25.90

+
+
+
+

Acceptance point

+
+
+
+

Payment part

+ +
+
+

Currency

CHF

+
+
+

Amount

25.90

+
+
+
+
+
+

Account / Payable to

CH44 3199 9123 0008 8901 2
+Thomas LeClaire
+Rue examplaire 22a
+1000 Lausanne

Reference

12 34567 89012 34567 89012 34567

Payable by

Joachim Kraut
+Ewigermeisterstrasse 20
+DE-80331 München

+
+
+
+

+
+
\ No newline at end of file diff --git a/tests/TestData/HtmlOutput/qr-international-ultimate-debtor-compact.svg.print.html b/tests/TestData/HtmlOutput/qr-international-ultimate-debtor-compact.svg.print.html new file mode 100644 index 0000000..9ed491d --- /dev/null +++ b/tests/TestData/HtmlOutput/qr-international-ultimate-debtor-compact.svg.print.html @@ -0,0 +1,244 @@ + + + + + + + + + + + +
Separate before paying in
+

Receipt

+
+

Account / Payable to

CH44 3199 9123 0008 8901 2
+Thomas LeClaire
+Rue examplaire 22a
+1000 Lausanne

Reference

12 34567 89012 34567 89012 34567

Payable by

Joachim Kraut
+Ewigermeisterstrasse 20
+DE-80331 München

+
+
+
+

Currency

CHF

+
+
+

Amount

25.90

+
+
+
+

Acceptance point

+
+
+
+

Payment part

+ +
+
+

Currency

CHF

+
+
+

Amount

25.90

+
+
+
+
+
+

Account / Payable to

CH44 3199 9123 0008 8901 2
+Thomas LeClaire
+Rue examplaire 22a
+1000 Lausanne

Reference

12 34567 89012 34567 89012 34567

Payable by

Joachim Kraut
+Ewigermeisterstrasse 20
+DE-80331 München

+
+
+
+

+
+
\ No newline at end of file diff --git a/tests/TestData/HtmlOutput/qr-minimal-setup-compact.svg.html b/tests/TestData/HtmlOutput/qr-minimal-setup-compact.svg.html new file mode 100644 index 0000000..6330e20 --- /dev/null +++ b/tests/TestData/HtmlOutput/qr-minimal-setup-compact.svg.html @@ -0,0 +1,230 @@ + + + + + + + + + + + +
Separate before paying in
+

Receipt

+
+

Account / Payable to

CH44 3199 9123 0008 8901 2
+Thomas LeClaire
+Rue examplaire 22a
+1000 Lausanne

Reference

12 34567 89012 34567 89012 34567

Payable by (name/address)

+
+
+
+

Currency

CHF

+
+
+

Amount

25.90

+
+
+
+

Acceptance point

+
+
+
+

Payment part

+ +
+
+

Currency

CHF

+
+
+

Amount

25.90

+
+
+
+
+
+

Account / Payable to

CH44 3199 9123 0008 8901 2
+Thomas LeClaire
+Rue examplaire 22a
+1000 Lausanne

Reference

12 34567 89012 34567 89012 34567

Payable by (name/address)

+
+
+
+

+
+
\ No newline at end of file diff --git a/tests/TestData/HtmlOutput/qr-minimal-setup-compact.svg.print.html b/tests/TestData/HtmlOutput/qr-minimal-setup-compact.svg.print.html new file mode 100644 index 0000000..6fd2bc4 --- /dev/null +++ b/tests/TestData/HtmlOutput/qr-minimal-setup-compact.svg.print.html @@ -0,0 +1,240 @@ + + + + + + + + + + + +
Separate before paying in
+

Receipt

+
+

Account / Payable to

CH44 3199 9123 0008 8901 2
+Thomas LeClaire
+Rue examplaire 22a
+1000 Lausanne

Reference

12 34567 89012 34567 89012 34567

Payable by (name/address)

+
+
+
+

Currency

CHF

+
+
+

Amount

25.90

+
+
+
+

Acceptance point

+
+
+
+

Payment part

+ +
+
+

Currency

CHF

+
+
+

Amount

25.90

+
+
+
+
+
+

Account / Payable to

CH44 3199 9123 0008 8901 2
+Thomas LeClaire
+Rue examplaire 22a
+1000 Lausanne

Reference

12 34567 89012 34567 89012 34567

Payable by (name/address)

+
+
+
+

+
+
\ No newline at end of file diff --git a/tests/TestData/HtmlOutput/qr-payment-information-with-mediumlong-creditor-and-unknown-debtor-compact.svg.html b/tests/TestData/HtmlOutput/qr-payment-information-with-mediumlong-creditor-and-unknown-debtor-compact.svg.html new file mode 100644 index 0000000..e43a868 --- /dev/null +++ b/tests/TestData/HtmlOutput/qr-payment-information-with-mediumlong-creditor-and-unknown-debtor-compact.svg.html @@ -0,0 +1,229 @@ + + + + + + + + + + + +
Separate before paying in
+

Receipt

+
+

Account / Payable to

CH44 3199 9123 0008 8901 2
+Heaps of Characters International Trading Company of Switzerland GmbH
+1000 Lausanne

Reference

12 34567 89012 34567 89012 34567

Payable by (name/address)

+
+
+
+

Currency

EUR

+
+
+

Amount

+
+
+
+

Acceptance point

+
+
+
+

Payment part

+ +
+
+

Currency

EUR

+
+
+

Amount

+
+
+
+
+
+

Account / Payable to

CH44 3199 9123 0008 8901 2
+Heaps of Characters International Trading Company of Switzerland GmbH
+Rue examplaire 22a
+1000 Lausanne

Reference

12 34567 89012 34567 89012 34567

Payable by (name/address)

+
+
+
+

+
+
\ No newline at end of file diff --git a/tests/TestData/HtmlOutput/qr-payment-information-with-mediumlong-creditor-and-unknown-debtor-compact.svg.print.html b/tests/TestData/HtmlOutput/qr-payment-information-with-mediumlong-creditor-and-unknown-debtor-compact.svg.print.html new file mode 100644 index 0000000..78159b8 --- /dev/null +++ b/tests/TestData/HtmlOutput/qr-payment-information-with-mediumlong-creditor-and-unknown-debtor-compact.svg.print.html @@ -0,0 +1,239 @@ + + + + + + + + + + + +
Separate before paying in
+

Receipt

+
+

Account / Payable to

CH44 3199 9123 0008 8901 2
+Heaps of Characters International Trading Company of Switzerland GmbH
+1000 Lausanne

Reference

12 34567 89012 34567 89012 34567

Payable by (name/address)

+
+
+
+

Currency

EUR

+
+
+

Amount

+
+
+
+

Acceptance point

+
+
+
+

Payment part

+ +
+
+

Currency

EUR

+
+
+

Amount

+
+
+
+
+
+

Account / Payable to

CH44 3199 9123 0008 8901 2
+Heaps of Characters International Trading Company of Switzerland GmbH
+Rue examplaire 22a
+1000 Lausanne

Reference

12 34567 89012 34567 89012 34567

Payable by (name/address)

+
+
+
+

+
+
\ No newline at end of file diff --git a/tests/TestData/HtmlOutput/qr-payment-information-without-amount-and-long-addresses-compact.svg.html b/tests/TestData/HtmlOutput/qr-payment-information-without-amount-and-long-addresses-compact.svg.html new file mode 100644 index 0000000..e1344f8 --- /dev/null +++ b/tests/TestData/HtmlOutput/qr-payment-information-without-amount-and-long-addresses-compact.svg.html @@ -0,0 +1,230 @@ + + + + + + + + + + + +
Separate before paying in
+

Receipt

+
+

Account / Payable to

CH44 3199 9123 0008 8901 2
+Heaps of Characters International Trading Company of Switzerland GmbH

Reference

12 34567 89012 34567 89012 34567

Payable by

Heaps of Characters International Trading Company of Switzerland GmbH

+
+
+
+

Currency

EUR

+
+
+

Amount

+
+
+
+

Acceptance point

+
+
+
+

Payment part

+ +
+
+

Currency

EUR

+
+
+

Amount

+
+
+
+
+
+

Account / Payable to

CH44 3199 9123 0008 8901 2
+Heaps of Characters International Trading Company of Switzerland GmbH
+Street of the Mighty Long Names Where Heroes Live and Villans Die 75
+1000 Lausanne au bord du lac, où le soleil brille encore la nuit

Reference

12 34567 89012 34567 89012 34567

Payable by

Heaps of Characters International Trading Company of Switzerland GmbH
+Street of the Mighty Long Names Where Heroes Live and Villans Die 75
+1000 Lausanne au bord du lac, où le soleil brille encore la nuit

+
+
+
+

+
+
\ No newline at end of file diff --git a/tests/TestData/HtmlOutput/qr-payment-information-without-amount-and-long-addresses-compact.svg.print.html b/tests/TestData/HtmlOutput/qr-payment-information-without-amount-and-long-addresses-compact.svg.print.html new file mode 100644 index 0000000..672192e --- /dev/null +++ b/tests/TestData/HtmlOutput/qr-payment-information-without-amount-and-long-addresses-compact.svg.print.html @@ -0,0 +1,240 @@ + + + + + + + + + + + +
Separate before paying in
+

Receipt

+
+

Account / Payable to

CH44 3199 9123 0008 8901 2
+Heaps of Characters International Trading Company of Switzerland GmbH

Reference

12 34567 89012 34567 89012 34567

Payable by

Heaps of Characters International Trading Company of Switzerland GmbH

+
+
+
+

Currency

EUR

+
+
+

Amount

+
+
+
+

Acceptance point

+
+
+
+

Payment part

+ +
+
+

Currency

EUR

+
+
+

Amount

+
+
+
+
+
+

Account / Payable to

CH44 3199 9123 0008 8901 2
+Heaps of Characters International Trading Company of Switzerland GmbH
+Street of the Mighty Long Names Where Heroes Live and Villans Die 75
+1000 Lausanne au bord du lac, où le soleil brille encore la nuit

Reference

12 34567 89012 34567 89012 34567

Payable by

Heaps of Characters International Trading Company of Switzerland GmbH
+Street of the Mighty Long Names Where Heroes Live and Villans Die 75
+1000 Lausanne au bord du lac, où le soleil brille encore la nuit

+
+
+
+

+
+
\ No newline at end of file diff --git a/tests/TestData/HtmlOutput/qr-payment-information-without-amount-but-debtor-compact.svg.html b/tests/TestData/HtmlOutput/qr-payment-information-without-amount-but-debtor-compact.svg.html new file mode 100644 index 0000000..61ace3e --- /dev/null +++ b/tests/TestData/HtmlOutput/qr-payment-information-without-amount-but-debtor-compact.svg.html @@ -0,0 +1,234 @@ + + + + + + + + + + + +
Separate before paying in
+

Receipt

+
+

Account / Payable to

CH44 3199 9123 0008 8901 2
+Thomas LeClaire
+Rue examplaire 22a
+1000 Lausanne

Reference

12 34567 89012 34567 89012 34567

Payable by

Thomas LeClaire
+Rue examplaire 22a
+1000 Lausanne

+
+
+
+

Currency

EUR

+
+
+

Amount

+
+
+
+

Acceptance point

+
+
+
+

Payment part

+ +
+
+

Currency

EUR

+
+
+

Amount

+
+
+
+
+
+

Account / Payable to

CH44 3199 9123 0008 8901 2
+Thomas LeClaire
+Rue examplaire 22a
+1000 Lausanne

Reference

12 34567 89012 34567 89012 34567

Payable by

Thomas LeClaire
+Rue examplaire 22a
+1000 Lausanne

+
+
+
+

+
+
\ No newline at end of file diff --git a/tests/TestData/HtmlOutput/qr-payment-information-without-amount-but-debtor-compact.svg.print.html b/tests/TestData/HtmlOutput/qr-payment-information-without-amount-but-debtor-compact.svg.print.html new file mode 100644 index 0000000..f35a4c7 --- /dev/null +++ b/tests/TestData/HtmlOutput/qr-payment-information-without-amount-but-debtor-compact.svg.print.html @@ -0,0 +1,244 @@ + + + + + + + + + + + +
Separate before paying in
+

Receipt

+
+

Account / Payable to

CH44 3199 9123 0008 8901 2
+Thomas LeClaire
+Rue examplaire 22a
+1000 Lausanne

Reference

12 34567 89012 34567 89012 34567

Payable by

Thomas LeClaire
+Rue examplaire 22a
+1000 Lausanne

+
+
+
+

Currency

EUR

+
+
+

Amount

+
+
+
+

Acceptance point

+
+
+
+

Payment part

+ +
+
+

Currency

EUR

+
+
+

Amount

+
+
+
+
+
+

Account / Payable to

CH44 3199 9123 0008 8901 2
+Thomas LeClaire
+Rue examplaire 22a
+1000 Lausanne

Reference

12 34567 89012 34567 89012 34567

Payable by

Thomas LeClaire
+Rue examplaire 22a
+1000 Lausanne

+
+
+
+

+
+
\ No newline at end of file diff --git a/tests/TestData/HtmlOutput/qr-payment-information-without-amount-compact.svg.html b/tests/TestData/HtmlOutput/qr-payment-information-without-amount-compact.svg.html new file mode 100644 index 0000000..d75b050 --- /dev/null +++ b/tests/TestData/HtmlOutput/qr-payment-information-without-amount-compact.svg.html @@ -0,0 +1,230 @@ + + + + + + + + + + + +
Separate before paying in
+

Receipt

+
+

Account / Payable to

CH44 3199 9123 0008 8901 2
+Thomas LeClaire
+Rue examplaire 22a
+1000 Lausanne

Reference

12 34567 89012 34567 89012 34567

Payable by (name/address)

+
+
+
+

Currency

EUR

+
+
+

Amount

+
+
+
+

Acceptance point

+
+
+
+

Payment part

+ +
+
+

Currency

EUR

+
+
+

Amount

+
+
+
+
+
+

Account / Payable to

CH44 3199 9123 0008 8901 2
+Thomas LeClaire
+Rue examplaire 22a
+1000 Lausanne

Reference

12 34567 89012 34567 89012 34567

Payable by (name/address)

+
+
+
+

+
+
\ No newline at end of file diff --git a/tests/TestData/HtmlOutput/qr-payment-information-without-amount-compact.svg.print.html b/tests/TestData/HtmlOutput/qr-payment-information-without-amount-compact.svg.print.html new file mode 100644 index 0000000..0795ef6 --- /dev/null +++ b/tests/TestData/HtmlOutput/qr-payment-information-without-amount-compact.svg.print.html @@ -0,0 +1,240 @@ + + + + + + + + + + + +
Separate before paying in
+

Receipt

+
+

Account / Payable to

CH44 3199 9123 0008 8901 2
+Thomas LeClaire
+Rue examplaire 22a
+1000 Lausanne

Reference

12 34567 89012 34567 89012 34567

Payable by (name/address)

+
+
+
+

Currency

EUR

+
+
+

Amount

+
+
+
+

Acceptance point

+
+
+
+

Payment part

+ +
+
+

Currency

EUR

+
+
+

Amount

+
+
+
+
+
+

Account / Payable to

CH44 3199 9123 0008 8901 2
+Thomas LeClaire
+Rue examplaire 22a
+1000 Lausanne

Reference

12 34567 89012 34567 89012 34567

Payable by (name/address)

+
+
+
+

+
+
\ No newline at end of file diff --git a/tests/TestData/HtmlOutput/qr-payment-information-zero-amount-compact.svg.html b/tests/TestData/HtmlOutput/qr-payment-information-zero-amount-compact.svg.html new file mode 100644 index 0000000..0d43a91 --- /dev/null +++ b/tests/TestData/HtmlOutput/qr-payment-information-zero-amount-compact.svg.html @@ -0,0 +1,230 @@ + + + + + + + + + + + +
Separate before paying in
+

Receipt

+
+

Account / Payable to

CH44 3199 9123 0008 8901 2
+Thomas LeClaire
+Rue examplaire 22a
+1000 Lausanne

Reference

12 34567 89012 34567 89012 34567

Payable by (name/address)

+
+
+
+

Currency

EUR

+
+
+

Amount

0.00

+
+
+
+

Acceptance point

+
+
+
+

Payment part

+ +
+
+

Currency

EUR

+
+
+

Amount

0.00

+
+
+
+
+
+

Account / Payable to

CH44 3199 9123 0008 8901 2
+Thomas LeClaire
+Rue examplaire 22a
+1000 Lausanne

Reference

12 34567 89012 34567 89012 34567

Additional information

DO NOT USE FOR PAYMENT

Payable by (name/address)

+
+
+
+

+
+
\ No newline at end of file diff --git a/tests/TestData/HtmlOutput/qr-payment-information-zero-amount-compact.svg.print.html b/tests/TestData/HtmlOutput/qr-payment-information-zero-amount-compact.svg.print.html new file mode 100644 index 0000000..cc0062f --- /dev/null +++ b/tests/TestData/HtmlOutput/qr-payment-information-zero-amount-compact.svg.print.html @@ -0,0 +1,240 @@ + + + + + + + + + + + +
Separate before paying in
+

Receipt

+
+

Account / Payable to

CH44 3199 9123 0008 8901 2
+Thomas LeClaire
+Rue examplaire 22a
+1000 Lausanne

Reference

12 34567 89012 34567 89012 34567

Payable by (name/address)

+
+
+
+

Currency

EUR

+
+
+

Amount

0.00

+
+
+
+

Acceptance point

+
+
+
+

Payment part

+ +
+
+

Currency

EUR

+
+
+

Amount

0.00

+
+
+
+
+
+

Account / Payable to

CH44 3199 9123 0008 8901 2
+Thomas LeClaire
+Rue examplaire 22a
+1000 Lausanne

Reference

12 34567 89012 34567 89012 34567

Additional information

DO NOT USE FOR PAYMENT

Payable by (name/address)

+
+
+
+

+
+
\ No newline at end of file diff --git a/tests/TestData/HtmlOutput/qr-payment-reference-non-compact.svg.html b/tests/TestData/HtmlOutput/qr-payment-reference-non-compact.svg.html new file mode 100644 index 0000000..c7e7743 --- /dev/null +++ b/tests/TestData/HtmlOutput/qr-payment-reference-non-compact.svg.html @@ -0,0 +1,230 @@ + + + + + + + + + + + +
Separate before paying in
+

Receipt

+
+

Account / Payable to

CH93 0076 2011 6238 5295 7
+Thomas LeClaire
+Rue examplaire 22a
+1000 Lausanne

Payable by (name/address)

+
+
+
+

Currency

CHF

+
+
+

Amount

25.90

+
+
+
+

Acceptance point

+
+
+
+

Payment part

+ +
+
+

Currency

CHF

+
+
+

Amount

25.90

+
+
+
+
+
+

Account / Payable to

CH93 0076 2011 6238 5295 7
+Thomas LeClaire
+Rue examplaire 22a
+1000 Lausanne

Payable by (name/address)

+
+
+
+

+
+
\ No newline at end of file diff --git a/tests/TestData/HtmlOutput/qr-payment-reference-non-compact.svg.print.html b/tests/TestData/HtmlOutput/qr-payment-reference-non-compact.svg.print.html new file mode 100644 index 0000000..cb28b5d --- /dev/null +++ b/tests/TestData/HtmlOutput/qr-payment-reference-non-compact.svg.print.html @@ -0,0 +1,240 @@ + + + + + + + + + + + +
Separate before paying in
+

Receipt

+
+

Account / Payable to

CH93 0076 2011 6238 5295 7
+Thomas LeClaire
+Rue examplaire 22a
+1000 Lausanne

Payable by (name/address)

+
+
+
+

Currency

CHF

+
+
+

Amount

25.90

+
+
+
+

Acceptance point

+
+
+
+

Payment part

+ +
+
+

Currency

CHF

+
+
+

Amount

25.90

+
+
+
+
+
+

Account / Payable to

CH93 0076 2011 6238 5295 7
+Thomas LeClaire
+Rue examplaire 22a
+1000 Lausanne

Payable by (name/address)

+
+
+
+

+
+
\ No newline at end of file diff --git a/tests/TestData/HtmlOutput/qr-payment-reference-scor-compact.svg.html b/tests/TestData/HtmlOutput/qr-payment-reference-scor-compact.svg.html new file mode 100644 index 0000000..2fbae7b --- /dev/null +++ b/tests/TestData/HtmlOutput/qr-payment-reference-scor-compact.svg.html @@ -0,0 +1,230 @@ + + + + + + + + + + + +
Separate before paying in
+

Receipt

+
+

Account / Payable to

CH93 0076 2011 6238 5295 7
+Thomas LeClaire
+Rue examplaire 22a
+1000 Lausanne

Reference

RF18 5390 0754 7034

Payable by (name/address)

+
+
+
+

Currency

CHF

+
+
+

Amount

25.90

+
+
+
+

Acceptance point

+
+
+
+

Payment part

+ +
+
+

Currency

CHF

+
+
+

Amount

25.90

+
+
+
+
+
+

Account / Payable to

CH93 0076 2011 6238 5295 7
+Thomas LeClaire
+Rue examplaire 22a
+1000 Lausanne

Reference

RF18 5390 0754 7034

Payable by (name/address)

+
+
+
+

+
+
\ No newline at end of file diff --git a/tests/TestData/HtmlOutput/qr-payment-reference-scor-compact.svg.print.html b/tests/TestData/HtmlOutput/qr-payment-reference-scor-compact.svg.print.html new file mode 100644 index 0000000..40bae05 --- /dev/null +++ b/tests/TestData/HtmlOutput/qr-payment-reference-scor-compact.svg.print.html @@ -0,0 +1,240 @@ + + + + + + + + + + + +
Separate before paying in
+

Receipt

+
+

Account / Payable to

CH93 0076 2011 6238 5295 7
+Thomas LeClaire
+Rue examplaire 22a
+1000 Lausanne

Reference

RF18 5390 0754 7034

Payable by (name/address)

+
+
+
+

Currency

CHF

+
+
+

Amount

25.90

+
+
+
+

Acceptance point

+
+
+
+

Payment part

+ +
+
+

Currency

CHF

+
+
+

Amount

25.90

+
+
+
+
+
+

Account / Payable to

CH93 0076 2011 6238 5295 7
+Thomas LeClaire
+Rue examplaire 22a
+1000 Lausanne

Reference

RF18 5390 0754 7034

Payable by (name/address)

+
+
+
+

+
+
\ No newline at end of file diff --git a/tests/TestData/HtmlOutput/qr-ultimate-debtor-compact.svg.html b/tests/TestData/HtmlOutput/qr-ultimate-debtor-compact.svg.html new file mode 100644 index 0000000..e16afda --- /dev/null +++ b/tests/TestData/HtmlOutput/qr-ultimate-debtor-compact.svg.html @@ -0,0 +1,234 @@ + + + + + + + + + + + +
Separate before paying in
+

Receipt

+
+

Account / Payable to

CH44 3199 9123 0008 8901 2
+Thomas LeClaire
+Rue examplaire 22a
+1000 Lausanne

Reference

12 34567 89012 34567 89012 34567

Payable by

Thomas LeClaire
+Rue examplaire 22a
+1000 Lausanne

+
+
+
+

Currency

CHF

+
+
+

Amount

25.90

+
+
+
+

Acceptance point

+
+
+
+

Payment part

+ +
+
+

Currency

CHF

+
+
+

Amount

25.90

+
+
+
+
+
+

Account / Payable to

CH44 3199 9123 0008 8901 2
+Thomas LeClaire
+Rue examplaire 22a
+1000 Lausanne

Reference

12 34567 89012 34567 89012 34567

Payable by

Thomas LeClaire
+Rue examplaire 22a
+1000 Lausanne

+
+
+
+

+
+
\ No newline at end of file diff --git a/tests/TestData/HtmlOutput/qr-ultimate-debtor-compact.svg.print.html b/tests/TestData/HtmlOutput/qr-ultimate-debtor-compact.svg.print.html new file mode 100644 index 0000000..5c04906 --- /dev/null +++ b/tests/TestData/HtmlOutput/qr-ultimate-debtor-compact.svg.print.html @@ -0,0 +1,244 @@ + + + + + + + + + + + +
Separate before paying in
+

Receipt

+
+

Account / Payable to

CH44 3199 9123 0008 8901 2
+Thomas LeClaire
+Rue examplaire 22a
+1000 Lausanne

Reference

12 34567 89012 34567 89012 34567

Payable by

Thomas LeClaire
+Rue examplaire 22a
+1000 Lausanne

+
+
+
+

Currency

CHF

+
+
+

Amount

25.90

+
+
+
+

Acceptance point

+
+
+
+

Payment part

+ +
+
+

Currency

CHF

+
+
+

Amount

25.90

+
+
+
+
+
+

Account / Payable to

CH44 3199 9123 0008 8901 2
+Thomas LeClaire
+Rue examplaire 22a
+1000 Lausanne

Reference

12 34567 89012 34567 89012 34567

Payable by

Thomas LeClaire
+Rue examplaire 22a
+1000 Lausanne

+
+
+
+

+
+
\ No newline at end of file diff --git a/tests/TestData/QrCode/string-compact.svg b/tests/TestData/QrCode/string-compact.svg new file mode 100644 index 0000000..f8aa462 --- /dev/null +++ b/tests/TestData/QrCode/string-compact.svg @@ -0,0 +1,2 @@ + + From f433e4fdc9aeef9889fa855686795b69f26e6618 Mon Sep 17 00:00:00 2001 From: Manuel Reinhard Date: Wed, 15 May 2024 15:25:11 +0200 Subject: [PATCH 07/10] Add value types --- src/QrCode/QrCode.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/QrCode/QrCode.php b/src/QrCode/QrCode.php index af992e3..d80f3a6 100644 --- a/src/QrCode/QrCode.php +++ b/src/QrCode/QrCode.php @@ -30,6 +30,8 @@ final class QrCode private BaseQrCode $qrCode; private Logo $qrCodeLogo; private WriterInterface $qrCodeWriter; + + /** @var array $options */ private array $writerOptions = [SvgWriter::WRITER_OPTION_FORCE_XLINK_HREF => true]; public static function create(string $data, string $fileFormat = null): self From e686f09f940493545752974e400f37aba74c5886 Mon Sep 17 00:00:00 2001 From: Manuel Reinhard Date: Wed, 15 May 2024 15:25:16 +0200 Subject: [PATCH 08/10] Fix comment --- src/QrCode/QrCode.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/QrCode/QrCode.php b/src/QrCode/QrCode.php index d80f3a6..75313aa 100644 --- a/src/QrCode/QrCode.php +++ b/src/QrCode/QrCode.php @@ -112,7 +112,7 @@ public function getText(): string * However, for some unknown reason this inflates the filze size of invoices created with TcPdfOutput, even though * the file size of the qr code becomes smaller. * In endroid/qr-code 5.0.9, an option was added to create SVGs in the "old style" again, using elements. - * This new style is what we want to use for TcPdfOutput, if available. + * This is what we want to use for TcPdfOutput, if available. * * @link https://github.com/sprain/php-swiss-qr-bill/issues/249 * @link https://github.com/endroid/qr-code/commit/3dcdfab4c9122874f3915d8bf80a43b9df11852d From dcbd2f6980085098b62e7269100207868696aeb1 Mon Sep 17 00:00:00 2001 From: Manuel Reinhard Date: Wed, 15 May 2024 15:28:40 +0200 Subject: [PATCH 09/10] Fix value type --- src/QrCode/QrCode.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/QrCode/QrCode.php b/src/QrCode/QrCode.php index 75313aa..95fa584 100644 --- a/src/QrCode/QrCode.php +++ b/src/QrCode/QrCode.php @@ -31,7 +31,7 @@ final class QrCode private Logo $qrCodeLogo; private WriterInterface $qrCodeWriter; - /** @var array $options */ + /** @var array $writerOptions */ private array $writerOptions = [SvgWriter::WRITER_OPTION_FORCE_XLINK_HREF => true]; public static function create(string $data, string $fileFormat = null): self From e8f2cf613e5af80484b933ba179005a3ced8159c Mon Sep 17 00:00:00 2001 From: Manuel Reinhard Date: Wed, 15 May 2024 15:35:46 +0200 Subject: [PATCH 10/10] Adjust required dependency version --- composer.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/composer.json b/composer.json index 8b15ea4..a6d3b2d 100644 --- a/composer.json +++ b/composer.json @@ -11,7 +11,7 @@ "symfony/validator": "^4.4|^5.0|^6.0|^7.0", "symfony/intl": "^4.4|^5.0|^6.0|^7.0", "kmukku/php-iso11649": "^1.5", - "endroid/qr-code": "^4.4.4|^5.0.9", + "endroid/qr-code": "^4.4.4|^5.0", "symfony/polyfill-intl-icu": "^1.23" }, "require-dev": {