From 705cce49a7183315b51ff2d9443e5b755178c1b8 Mon Sep 17 00:00:00 2001 From: Marco Glietsch Date: Wed, 17 Aug 2022 21:20:44 +0200 Subject: [PATCH] Abgleich --- .gitignore | 1 + app/Http/Controllers/SurveyController.php | 8 +- app/Models/BaseModel.php | 154 +- app/Models/ExtendedModel.php | 22 +- .../font-awesome/fontawesome-webfont.eot | Bin 165742 -> 0 bytes .../font-awesome/fontawesome-webfont.svg | 2671 -- .../font-awesome/fontawesome-webfont.ttf | Bin 165548 -> 0 bytes .../font-awesome/fontawesome-webfont.woff | Bin 98024 -> 0 bytes .../font-awesome/fontawesome-webfont.woff2 | Bin 77160 -> 0 bytes .../views/inc/admin/detailsModel.blade.php | 668 +- resources/views/inc/admin/listModel.blade.php | 370 +- resources/views/inc/forms/button.blade.php | 38 +- .../views/inc/forms/formAjaxCrud.blade.php | 122 +- resources/views/inc/layout/fileView.blade.php | 92 +- .../inc/survey/vaccinationState.blade.php | 3 + vendor/autoload.php | 7 - vendor/bacon/bacon-qr-code/.travis.yml | 14 - vendor/bacon/bacon-qr-code/LICENSE | 22 - vendor/bacon/bacon-qr-code/Module.php | 37 - vendor/bacon/bacon-qr-code/README.md | 24 - .../bacon/bacon-qr-code/autoload_classmap.php | 43 - .../bacon/bacon-qr-code/autoload_function.php | 12 - .../bacon/bacon-qr-code/autoload_register.php | 2 - vendor/bacon/bacon-qr-code/composer.json | 29 - .../src/BaconQrCode/Common/AbstractEnum.php | 115 - .../src/BaconQrCode/Common/BitArray.php | 435 - .../src/BaconQrCode/Common/BitMatrix.php | 350 - .../src/BaconQrCode/Common/BitUtils.php | 51 - .../BaconQrCode/Common/CharacterSetEci.php | 134 - .../src/BaconQrCode/Common/EcBlock.php | 65 - .../src/BaconQrCode/Common/EcBlocks.php | 101 - .../Common/ErrorCorrectionLevel.php | 62 - .../BaconQrCode/Common/FormatInformation.php | 236 - .../src/BaconQrCode/Common/Mode.php | 70 - .../BaconQrCode/Common/ReedSolomonCodec.php | 476 - .../src/BaconQrCode/Common/Version.php | 687 - .../src/BaconQrCode/Encoder/BlockPair.php | 64 - .../src/BaconQrCode/Encoder/ByteMatrix.php | 158 - .../src/BaconQrCode/Encoder/Encoder.php | 687 - .../src/BaconQrCode/Encoder/MaskUtil.php | 291 - .../src/BaconQrCode/Encoder/MatrixUtil.php | 580 - .../src/BaconQrCode/Encoder/QrCode.php | 201 - .../Exception/ExceptionInterface.php | 14 - .../Exception/InvalidArgumentException.php | 14 - .../Exception/OutOfBoundsException.php | 14 - .../Exception/RuntimeException.php | 14 - .../Exception/UnexpectedValueException.php | 14 - .../BaconQrCode/Exception/WriterException.php | 14 - .../src/BaconQrCode/Renderer/Color/Cmyk.php | 160 - .../Renderer/Color/ColorInterface.php | 37 - .../src/BaconQrCode/Renderer/Color/Gray.php | 84 - .../src/BaconQrCode/Renderer/Color/Rgb.php | 148 - .../Renderer/Image/AbstractRenderer.php | 338 - .../Image/Decorator/DecoratorInterface.php | 63 - .../Image/Decorator/FinderPattern.php | 210 - .../src/BaconQrCode/Renderer/Image/Eps.php | 152 - .../src/BaconQrCode/Renderer/Image/Png.php | 115 - .../Renderer/Image/RendererInterface.php | 61 - .../src/BaconQrCode/Renderer/Image/Svg.php | 146 - .../Renderer/RendererInterface.php | 26 - .../src/BaconQrCode/Renderer/Text/Html.php | 91 - .../src/BaconQrCode/Renderer/Text/Plain.php | 150 - .../bacon-qr-code/src/BaconQrCode/Writer.php | 105 - .../tests/BaconQrCode/Common/BitArrayTest.php | 201 - .../BaconQrCode/Common/BitMatrixTest.php | 119 - .../tests/BaconQrCode/Common/BitUtilsTest.php | 30 - .../Common/ErrorCorrectionLevelTest.php | 40 - .../Common/FormatInformationTest.php | 104 - .../tests/BaconQrCode/Common/ModeTest.php | 42 - .../Common/ReedSolomonCodecTest.php | 111 - .../tests/BaconQrCode/Common/VersionTest.php | 88 - .../tests/BaconQrCode/Encoder/EncoderTest.php | 468 - .../BaconQrCode/Encoder/MaskUtilTest.php | 281 - .../BaconQrCode/Encoder/MatrixUtilTest.php | 336 - .../BaconQrCode/Renderer/Text/HtmlTest.php | 99 - .../BaconQrCode/Renderer/Text/TextTest.php | 149 - .../bacon/bacon-qr-code/tests/bootstrap.php | 10 - vendor/bacon/bacon-qr-code/tests/phpunit.xml | 11 - vendor/barryvdh/laravel-debugbar/LICENSE | 19 - vendor/barryvdh/laravel-debugbar/changelog.md | 86 - .../barryvdh/laravel-debugbar/composer.json | 47 - .../laravel-debugbar/config/debugbar.php | 201 - vendor/barryvdh/laravel-debugbar/readme.md | 201 - .../src/Console/ClearCommand.php | 38 - .../src/Controllers/AssetController.php | 58 - .../src/Controllers/BaseController.php | 38 - .../src/Controllers/CacheController.php | 27 - .../src/Controllers/OpenHandlerController.php | 45 - .../src/DataCollector/CacheCollector.php | 95 - .../src/DataCollector/EventCollector.php | 110 - .../src/DataCollector/FilesCollector.php | 135 - .../src/DataCollector/GateCollector.php | 46 - .../src/DataCollector/LaravelCollector.php | 71 - .../src/DataCollector/LogsCollector.php | 142 - .../src/DataCollector/MultiAuthCollector.php | 166 - .../src/DataCollector/QueryCollector.php | 477 - .../src/DataCollector/RequestCollector.php | 177 - .../src/DataCollector/RouteCollector.php | 141 - .../src/DataCollector/SessionCollector.php | 58 - .../src/DataCollector/ViewCollector.php | 107 - .../src/DataFormatter/QueryFormatter.php | 76 - .../src/DataFormatter/SimpleFormatter.php | 105 - .../barryvdh/laravel-debugbar/src/Facade.php | 12 - .../src/JavascriptRenderer.php | 142 - .../laravel-debugbar/src/LaravelDebugbar.php | 1065 - .../src/LumenServiceProvider.php | 49 - .../src/Middleware/DebugbarEnabled.php | 42 - .../src/Middleware/InjectDebugbar.php | 123 - .../src/Resources/cache/widget.js | 59 - .../src/Resources/laravel-debugbar.css | 319 - .../src/Resources/sqlqueries/widget.js | 228 - .../vendor/font-awesome/generator_config.txt | 5 - .../Resources/vendor/font-awesome/style.css | 1671 - .../laravel-debugbar/src/ServiceProvider.php | 156 - .../src/Storage/FilesystemStorage.php | 142 - .../Support/Clockwork/ClockworkCollector.php | 91 - .../src/Support/Clockwork/Converter.php | 135 - .../src/SymfonyHttpDriver.php | 79 - .../src/Twig/Extension/Debug.php | 88 - .../src/Twig/Extension/Dump.php | 84 - .../src/Twig/Extension/Stopwatch.php | 56 - .../src/Twig/Node/StopwatchNode.php | 37 - .../Twig/TokenParser/StopwatchTokenParser.php | 55 - .../barryvdh/laravel-debugbar/src/helpers.php | 81 - ...20000_create_phpdebugbar_storage_table.php | 41 - vendor/bin/php-parse | 10 - vendor/bin/php-parse.bat | 4 - vendor/bin/phpunit | 10 - vendor/bin/phpunit.bat | 4 - vendor/bin/psysh | 1 - vendor/bin/var-dump-server | 1 - vendor/cocur/slugify/.appveyor.yml | 42 - vendor/cocur/slugify/.editorconfig | 13 - vendor/cocur/slugify/.scrutinizer.yml | 162 - vendor/cocur/slugify/.travis.yml | 47 - vendor/cocur/slugify/CODE_OF_CONDUCT.md | 74 - vendor/cocur/slugify/LICENSE | 9 - vendor/cocur/slugify/README.md | 747 - .../cocur/slugify/Resources/rules/arabic.json | 30 - .../slugify/Resources/rules/austrian.json | 9 - .../slugify/Resources/rules/azerbaijani.json | 16 - .../slugify/Resources/rules/bulgarian.json | 65 - .../slugify/Resources/rules/burmese.json | 121 - .../slugify/Resources/rules/chinese.json | 6937 ----- .../slugify/Resources/rules/croatian.json | 12 - .../cocur/slugify/Resources/rules/czech.json | 20 - .../cocur/slugify/Resources/rules/danish.json | 10 - .../slugify/Resources/rules/default.json | 186 - .../slugify/Resources/rules/esperanto.json | 14 - .../slugify/Resources/rules/estonian.json | 14 - .../slugify/Resources/rules/finnish.json | 6 - .../cocur/slugify/Resources/rules/french.json | 34 - .../slugify/Resources/rules/georgian.json | 35 - .../cocur/slugify/Resources/rules/german.json | 9 - .../cocur/slugify/Resources/rules/greek.json | 111 - .../cocur/slugify/Resources/rules/hindi.json | 66 - .../slugify/Resources/rules/hungarian.json | 20 - .../slugify/Resources/rules/italian.json | 13 - .../slugify/Resources/rules/latvian.json | 18 - .../slugify/Resources/rules/lithuanian.json | 20 - .../slugify/Resources/rules/macedonian.json | 64 - .../slugify/Resources/rules/norwegian.json | 8 - .../slugify/Resources/rules/persian.json | 34 - .../cocur/slugify/Resources/rules/polish.json | 20 - .../Resources/rules/portuguese-brazil.json | 187 - .../slugify/Resources/rules/romanian.json | 16 - .../slugify/Resources/rules/russian.json | 68 - .../slugify/Resources/rules/serbian.json | 72 - .../slugify/Resources/rules/swedish.json | 8 - .../slugify/Resources/rules/turkish.json | 14 - .../slugify/Resources/rules/ukrainian.json | 10 - .../slugify/Resources/rules/vietnamese.json | 92 - vendor/cocur/slugify/bin/generate-default.php | 59 - vendor/cocur/slugify/composer.json | 44 - vendor/cocur/slugify/phpunit.xml.dist | 19 - .../src/Bridge/Laravel/SlugifyFacade.php | 39 - .../Bridge/Laravel/SlugifyServiceProvider.php | 57 - .../src/Bridge/Latte/SlugifyHelper.php | 38 - .../Bridge/League/SlugifyServiceProvider.php | 37 - .../src/Bridge/Nette/SlugifyExtension.php | 49 - .../src/Bridge/Plum/SlugifyConverter.php | 50 - .../Bridge/Silex/SlugifyServiceProvider.php | 57 - .../Bridge/Silex2/SlugifyServiceProvider.php | 48 - .../src/Bridge/Symfony/CocurSlugifyBundle.php | 31 - .../Bridge/Symfony/CocurSlugifyExtension.php | 67 - .../src/Bridge/Symfony/Configuration.php | 38 - .../src/Bridge/Twig/SlugifyExtension.php | 80 - .../cocur/slugify/src/Bridge/ZF2/Module.php | 50 - .../slugify/src/Bridge/ZF2/SlugifyService.php | 30 - .../src/Bridge/ZF2/SlugifyViewHelper.php | 41 - .../Bridge/ZF2/SlugifyViewHelperFactory.php | 28 - .../src/RuleProvider/DefaultRuleProvider.php | 8421 ----- .../src/RuleProvider/FileRuleProvider.php | 47 - .../RuleProvider/RuleProviderInterface.php | 29 - vendor/cocur/slugify/src/Slugify.php | 180 - vendor/cocur/slugify/src/SlugifyInterface.php | 36 - .../Bridge/Laravel/SlugifyProviderTest.php | 66 - .../tests/Bridge/Latte/SlugifyHelperTest.php | 36 - .../League/SlugifyServiceProviderTest.php | 85 - .../Bridge/Nette/SlugifyExtensionTest.php | 133 - .../Bridge/Plum/SlugifyConverterTest.php | 53 - .../Bridge/Silex/SlugifySilexProviderTest.php | 60 - .../Bridge/Symfony/CocurSlugifyBundleTest.php | 40 - .../Symfony/CocurSlugifyExtensionTest.php | 70 - .../Bridge/Symfony/ConfigurationTest.php | 55 - .../Bridge/Twig/SlugifyExtensionTest.php | 69 - .../slugify/tests/Bridge/ZF2/ModuleTest.php | 49 - .../tests/Bridge/ZF2/SlugifyServiceTest.php | 69 - .../ZF2/SlugifyViewHelperFactoryTest.php | 41 - .../Bridge/ZF2/SlugifyViewHelperTest.php | 46 - .../RuleProvider/FileRuleProviderTest.php | 45 - vendor/cocur/slugify/tests/SlugifyTest.php | 269 - vendor/composer/ClassLoader.php | 445 - vendor/composer/LICENSE | 21 - vendor/composer/autoload_classmap.php | 3937 --- vendor/composer/autoload_files.php | 24 - vendor/composer/autoload_namespaces.php | 17 - vendor/composer/autoload_psr4.php | 63 - vendor/composer/autoload_real.php | 70 - vendor/composer/autoload_static.php | 4354 --- vendor/composer/installed.json | 5005 --- .../.github/ISSUE_TEMPLATE.md | 14 - .../.github/PULL_REQUEST_TEMPLATE.md | 12 - .../eloquent-sluggable/.nitpick.json | 5 - vendor/cviebrock/eloquent-sluggable/.semver | 5 - .../cviebrock/eloquent-sluggable/.travis.yml | 24 - .../cviebrock/eloquent-sluggable/CHANGELOG.md | 274 - .../eloquent-sluggable/CONTRIBUTING.md | 44 - .../cviebrock/eloquent-sluggable/LICENSE.md | 21 - vendor/cviebrock/eloquent-sluggable/README.md | 643 - .../eloquent-sluggable/ROUTE-MODEL-BINDING.md | 73 - .../eloquent-sluggable/SCOPE-HELPERS.md | 62 - vendor/cviebrock/eloquent-sluggable/TODO.md | 21 - .../cviebrock/eloquent-sluggable/UPGRADING.md | 128 - .../eloquent-sluggable/composer.json | 56 - .../cviebrock/eloquent-sluggable/phpunit.xml | 29 - .../resources/config/sluggable.php | 141 - .../src/ServiceProvider.php | 46 - .../src/Services/SlugService.php | 435 - .../eloquent-sluggable/src/Sluggable.php | 83 - .../src/SluggableObserver.php | 84 - .../src/SluggableScopeHelpers.php | 86 - .../eloquent-sluggable/tests/BaseTests.php | 459 - .../eloquent-sluggable/tests/EventTests.php | 75 - .../tests/Listeners/AbortSlugging.php | 22 - .../tests/Models/Author.php | 31 - .../eloquent-sluggable/tests/Models/Post.php | 67 - .../tests/Models/PostNotSluggable.php | 45 - .../tests/Models/PostShortConfig.php | 22 - .../PostShortConfigWithScopeHelpers.php | 26 - .../tests/Models/PostWithCustomEngine.php | 30 - .../tests/Models/PostWithCustomMethod.php | 30 - .../tests/Models/PostWithCustomSeparator.php | 27 - .../tests/Models/PostWithCustomSource.php | 26 - .../tests/Models/PostWithCustomSuffix.php | 34 - .../tests/Models/PostWithEmptySeparator.php | 27 - .../tests/Models/PostWithForeignRuleset.php | 26 - .../tests/Models/PostWithIncludeTrashed.php | 23 - .../tests/Models/PostWithMaxLength.php | 25 - .../Models/PostWithMaxLengthSplitWords.php | 26 - .../tests/Models/PostWithMultipleSlugs.php | 28 - .../PostWithMultipleSlugsAndCustomSlugKey.php | 13 - .../PostWithMultipleSlugsAndHelperTrait.php | 15 - .../tests/Models/PostWithMultipleSources.php | 24 - .../tests/Models/PostWithNoSource.php | 26 - .../tests/Models/PostWithOnUpdate.php | 27 - .../tests/Models/PostWithRelation.php | 38 - .../tests/Models/PostWithReservedSlug.php | 27 - .../tests/Models/PostWithSoftDeleting.php | 16 - .../PostWithSoftDeletingIncludeTrashed.php | 27 - .../Models/PostWithUniqueSlugConstraints.php | 39 - .../tests/OnUpdateTests.php | 107 - .../tests/ScopeHelperTests.php | 129 - .../tests/SoftDeleteTests.php | 61 - .../eloquent-sluggable/tests/StaticTests.php | 55 - .../eloquent-sluggable/tests/TestCase.php | 77 - .../tests/TestServiceProvider.php | 31 - .../eloquent-sluggable/tests/UniqueTests.php | 91 - .../migrations/2013_11_04_163552_posts.php | 41 - .../migrations/2015_08_17_185144_authors.php | 35 - vendor/dnoegel/php-xdg-base-dir/LICENSE | 19 - vendor/dnoegel/php-xdg-base-dir/README.md | 38 - vendor/dnoegel/php-xdg-base-dir/composer.json | 17 - .../dnoegel/php-xdg-base-dir/phpunit.xml.dist | 24 - vendor/dnoegel/php-xdg-base-dir/src/Xdg.php | 121 - .../php-xdg-base-dir/tests/XdgTest.php | 116 - vendor/doctrine/inflector/LICENSE | 19 - vendor/doctrine/inflector/README.md | 6 - vendor/doctrine/inflector/composer.json | 32 - .../Doctrine/Common/Inflector/Inflector.php | 490 - vendor/doctrine/instantiator/CONTRIBUTING.md | 35 - vendor/doctrine/instantiator/LICENSE | 19 - vendor/doctrine/instantiator/README.md | 40 - vendor/doctrine/instantiator/composer.json | 45 - .../Exception/ExceptionInterface.php | 29 - .../Exception/InvalidArgumentException.php | 52 - .../Exception/UnexpectedValueException.php | 66 - .../Doctrine/Instantiator/Instantiator.php | 216 - .../Instantiator/InstantiatorInterface.php | 37 - vendor/doctrine/lexer/LICENSE | 19 - vendor/doctrine/lexer/README.md | 5 - vendor/doctrine/lexer/composer.json | 24 - .../Doctrine/Common/Lexer/AbstractLexer.php | 327 - .../cron-expression/.editorconfig | 16 - .../cron-expression/CHANGELOG.md | 66 - vendor/dragonmantank/cron-expression/LICENSE | 19 - .../dragonmantank/cron-expression/README.md | 73 - .../cron-expression/composer.json | 35 - .../src/Cron/AbstractField.php | 278 - .../src/Cron/CronExpression.php | 411 - .../src/Cron/DayOfMonthField.php | 131 - .../src/Cron/DayOfWeekField.php | 170 - .../cron-expression/src/Cron/FieldFactory.php | 54 - .../src/Cron/FieldInterface.php | 40 - .../cron-expression/src/Cron/HoursField.php | 69 - .../cron-expression/src/Cron/MinutesField.php | 60 - .../cron-expression/src/Cron/MonthField.php | 38 - .../tests/Cron/AbstractFieldTest.php | 139 - .../tests/Cron/CronExpressionTest.php | 560 - .../tests/Cron/DayOfMonthFieldTest.php | 64 - .../tests/Cron/DayOfWeekFieldTest.php | 129 - .../tests/Cron/FieldFactoryTest.php | 42 - .../tests/Cron/HoursFieldTest.php | 77 - .../tests/Cron/MinutesFieldTest.php | 51 - .../tests/Cron/MonthFieldTest.php | 81 - .../EmailValidator/EmailLexer.php | 221 - .../EmailValidator/EmailParser.php | 104 - .../EmailValidator/EmailValidator.php | 67 - .../Exception/AtextAfterCFWS.php | 9 - .../EmailValidator/Exception/CRLFAtTheEnd.php | 9 - .../EmailValidator/Exception/CRLFX2.php | 9 - .../EmailValidator/Exception/CRNoLF.php | 9 - .../Exception/CharNotAllowed.php | 9 - .../Exception/CommaInDomain.php | 9 - .../Exception/ConsecutiveAt.php | 9 - .../Exception/ConsecutiveDot.php | 9 - .../Exception/DomainHyphened.php | 9 - .../EmailValidator/Exception/DotAtEnd.php | 9 - .../EmailValidator/Exception/DotAtStart.php | 9 - .../EmailValidator/Exception/ExpectingAT.php | 9 - .../Exception/ExpectingATEXT.php | 9 - .../Exception/ExpectingCTEXT.php | 9 - .../Exception/ExpectingDTEXT.php | 9 - .../Exception/ExpectingDomainLiteralClose.php | 9 - .../Exception/ExpectingQPair.php | 9 - .../EmailValidator/Exception/InvalidEmail.php | 14 - .../EmailValidator/Exception/NoDNSRecord.php | 11 - .../EmailValidator/Exception/NoDomainPart.php | 9 - .../EmailValidator/Exception/NoLocalPart.php | 9 - .../Exception/UnclosedComment.php | 9 - .../Exception/UnclosedQuotedString.php | 9 - .../Exception/UnopenedComment.php | 9 - .../EmailValidator/Parser/DomainPart.php | 368 - .../EmailValidator/Parser/LocalPart.php | 138 - .../EmailValidator/Parser/Parser.php | 215 - .../Validation/DNSCheckValidation.php | 61 - .../Validation/EmailValidation.php | 34 - .../Validation/Error/RFCWarnings.php | 11 - .../Validation/Error/SpoofEmail.php | 11 - .../Exception/EmptyValidationList.php | 13 - .../Validation/MultipleErrors.php | 26 - .../Validation/MultipleValidationWithAnd.php | 110 - .../Validation/NoRFCWarningsValidation.php | 41 - .../Validation/RFCValidation.php | 49 - .../Validation/SpoofCheckValidation.php | 45 - .../EmailValidator/Warning/AddressLiteral.php | 14 - .../EmailValidator/Warning/CFWSNearAt.php | 13 - .../EmailValidator/Warning/CFWSWithFWS.php | 13 - .../EmailValidator/Warning/Comment.php | 13 - .../Warning/DeprecatedComment.php | 13 - .../EmailValidator/Warning/DomainLiteral.php | 14 - .../EmailValidator/Warning/DomainTooLong.php | 14 - .../EmailValidator/Warning/EmailTooLong.php | 15 - .../EmailValidator/Warning/IPV6BadChar.php | 14 - .../EmailValidator/Warning/IPV6ColonEnd.php | 14 - .../EmailValidator/Warning/IPV6ColonStart.php | 14 - .../EmailValidator/Warning/IPV6Deprecated.php | 14 - .../Warning/IPV6DoubleColon.php | 14 - .../EmailValidator/Warning/IPV6GroupCount.php | 14 - .../EmailValidator/Warning/IPV6MaxGroups.php | 14 - .../EmailValidator/Warning/LabelTooLong.php | 14 - .../EmailValidator/Warning/LocalTooLong.php | 15 - .../EmailValidator/Warning/NoDNSMXRecord.php | 14 - .../EmailValidator/Warning/ObsoleteDTEXT.php | 14 - .../EmailValidator/Warning/QuotedPart.php | 13 - .../EmailValidator/Warning/QuotedString.php | 13 - .../EmailValidator/Warning/TLD.php | 13 - .../EmailValidator/Warning/Warning.php | 30 - vendor/egulias/email-validator/LICENSE | 19 - vendor/egulias/email-validator/README.md | 79 - vendor/egulias/email-validator/composer.json | 39 - .../egulias/email-validator/phpunit.xml.dist | 26 - vendor/erusev/parsedown/LICENSE.txt | 20 - vendor/erusev/parsedown/Parsedown.php | 1679 - vendor/erusev/parsedown/README.md | 86 - vendor/erusev/parsedown/composer.json | 33 - vendor/facebook/graph-sdk/CODE_OF_CONDUCT.md | 3 - vendor/facebook/graph-sdk/LICENSE | 19 - vendor/facebook/graph-sdk/composer.json | 42 - vendor/facebook/graph-sdk/phpcs.xml.dist | 7 - .../Facebook/Authentication/AccessToken.php | 160 - .../Authentication/AccessTokenMetadata.php | 390 - .../Facebook/Authentication/OAuth2Client.php | 292 - .../FacebookAuthenticationException.php | 33 - .../FacebookAuthorizationException.php | 33 - .../Exceptions/FacebookClientException.php | 33 - .../Exceptions/FacebookOtherException.php | 33 - .../Exceptions/FacebookResponseException.php | 216 - .../FacebookResumableUploadException.php | 33 - .../Exceptions/FacebookSDKException.php | 33 - .../Exceptions/FacebookServerException.php | 33 - .../Exceptions/FacebookThrottleException.php | 33 - .../graph-sdk/src/Facebook/Facebook.php | 635 - .../graph-sdk/src/Facebook/FacebookApp.php | 110 - .../src/Facebook/FacebookBatchRequest.php | 322 - .../src/Facebook/FacebookBatchResponse.php | 174 - .../graph-sdk/src/Facebook/FacebookClient.php | 250 - .../src/Facebook/FacebookRequest.php | 534 - .../src/Facebook/FacebookResponse.php | 410 - .../src/Facebook/FileUpload/FacebookFile.php | 169 - .../FileUpload/FacebookResumableUploader.php | 167 - .../FileUpload/FacebookTransferChunk.php | 133 - .../src/Facebook/FileUpload/FacebookVideo.php | 33 - .../src/Facebook/FileUpload/Mimetypes.php | 988 - .../src/Facebook/GraphNodes/Birthday.php | 85 - .../src/Facebook/GraphNodes/Collection.php | 242 - .../Facebook/GraphNodes/GraphAchievement.php | 112 - .../src/Facebook/GraphNodes/GraphAlbum.php | 183 - .../Facebook/GraphNodes/GraphApplication.php | 43 - .../Facebook/GraphNodes/GraphCoverPhoto.php | 72 - .../src/Facebook/GraphNodes/GraphEdge.php | 252 - .../src/Facebook/GraphNodes/GraphEvent.php | 242 - .../src/Facebook/GraphNodes/GraphGroup.php | 170 - .../src/Facebook/GraphNodes/GraphList.php | 36 - .../src/Facebook/GraphNodes/GraphLocation.php | 102 - .../src/Facebook/GraphNodes/GraphNode.php | 197 - .../Facebook/GraphNodes/GraphNodeFactory.php | 392 - .../src/Facebook/GraphNodes/GraphObject.php | 36 - .../GraphNodes/GraphObjectFactory.php | 88 - .../src/Facebook/GraphNodes/GraphPage.php | 147 - .../src/Facebook/GraphNodes/GraphPicture.php | 72 - .../Facebook/GraphNodes/GraphSessionInfo.php | 102 - .../src/Facebook/GraphNodes/GraphUser.php | 172 - .../Facebook/Helpers/FacebookCanvasHelper.php | 52 - .../Helpers/FacebookJavaScriptHelper.php | 42 - .../Helpers/FacebookPageTabHelper.php | 95 - .../Helpers/FacebookRedirectLoginHelper.php | 333 - .../FacebookSignedRequestFromInputHelper.php | 166 - .../src/Facebook/Http/GraphRawResponse.php | 139 - .../Facebook/Http/RequestBodyInterface.php | 39 - .../Facebook/Http/RequestBodyMultipart.php | 170 - .../Facebook/Http/RequestBodyUrlEncoded.php | 55 - .../src/Facebook/HttpClients/FacebookCurl.php | 129 - .../HttpClients/FacebookCurlHttpClient.php | 163 - .../HttpClients/FacebookGuzzleHttpClient.php | 97 - .../FacebookHttpClientInterface.php | 47 - .../Facebook/HttpClients/FacebookStream.php | 80 - .../HttpClients/FacebookStreamHttpClient.php | 94 - .../HttpClients/HttpClientsFactory.php | 99 - .../certs/DigiCertHighAssuranceEVRootCA.pem | 23 - .../FacebookMemoryPersistentDataHandler.php | 53 - .../FacebookSessionPersistentDataHandler.php | 76 - .../PersistentData/PersistentDataFactory.php | 65 - .../PersistentDataInterface.php | 49 - .../McryptPseudoRandomStringGenerator.php | 68 - .../OpenSslPseudoRandomStringGenerator.php | 67 - .../PseudoRandomStringGeneratorFactory.php | 101 - .../PseudoRandomStringGeneratorInterface.php | 45 - .../PseudoRandomStringGeneratorTrait.php | 58 - ...RandomBytesPseudoRandomStringGenerator.php | 59 - .../UrandomPseudoRandomStringGenerator.php | 89 - .../graph-sdk/src/Facebook/SignedRequest.php | 326 - .../Url/FacebookUrlDetectionHandler.php | 182 - .../Facebook/Url/FacebookUrlManipulator.php | 167 - .../Facebook/Url/UrlDetectionInterface.php | 39 - .../graph-sdk/src/Facebook/autoload.php | 81 - .../graph-sdk/src/Facebook/polyfills.php | 49 - vendor/fideloper/proxy/LICENSE.md | 13 - vendor/fideloper/proxy/composer.json | 35 - .../fideloper/proxy/config/trustedproxy.php | 45 - vendor/fideloper/proxy/src/TrustProxies.php | 111 - .../proxy/src/TrustedProxyServiceProvider.php | 41 - vendor/filp/whoops/CHANGELOG.md | 13 - vendor/filp/whoops/LICENSE.md | 19 - vendor/filp/whoops/composer.json | 42 - .../src/Whoops/Exception/ErrorException.php | 17 - .../whoops/src/Whoops/Exception/Formatter.php | 73 - .../whoops/src/Whoops/Exception/Frame.php | 296 - .../src/Whoops/Exception/FrameCollection.php | 203 - .../whoops/src/Whoops/Exception/Inspector.php | 276 - .../src/Whoops/Handler/CallbackHandler.php | 52 - .../whoops/src/Whoops/Handler/Handler.php | 95 - .../src/Whoops/Handler/HandlerInterface.php | 36 - .../Whoops/Handler/JsonResponseHandler.php | 88 - .../src/Whoops/Handler/PlainTextHandler.php | 314 - .../src/Whoops/Handler/PrettyPageHandler.php | 707 - .../src/Whoops/Handler/XmlResponseHandler.php | 107 - .../src/Whoops/Resources/css/whoops.base.css | 583 - .../src/Whoops/Resources/js/clipboard.min.js | 7 - .../src/Whoops/Resources/js/prettify.min.js | 28 - .../src/Whoops/Resources/js/whoops.base.js | 210 - .../src/Whoops/Resources/js/zepto.min.js | 2 - .../Resources/views/env_details.html.php | 42 - .../Resources/views/frame_code.html.php | 63 - .../Resources/views/frame_list.html.php | 17 - .../Resources/views/frames_container.html.php | 3 - .../views/frames_description.html.php | 20 - .../Whoops/Resources/views/header.html.php | 74 - .../Resources/views/header_outer.html.php | 3 - .../Whoops/Resources/views/layout.html.php | 33 - .../Resources/views/panel_details.html.php | 2 - .../views/panel_details_outer.html.php | 3 - .../Resources/views/panel_left.html.php | 4 - .../Resources/views/panel_left_outer.html.php | 3 - vendor/filp/whoops/src/Whoops/Run.php | 410 - .../filp/whoops/src/Whoops/RunInterface.php | 131 - .../src/Whoops/Util/HtmlDumperOutput.php | 36 - vendor/filp/whoops/src/Whoops/Util/Misc.php | 77 - .../whoops/src/Whoops/Util/SystemFacade.php | 137 - .../whoops/src/Whoops/Util/TemplateHelper.php | 352 - vendor/fzaninotto/faker/.travis.yml | 25 - vendor/fzaninotto/faker/CHANGELOG.md | 641 - vendor/fzaninotto/faker/CONTRIBUTING.md | 22 - vendor/fzaninotto/faker/LICENSE | 22 - vendor/fzaninotto/faker/Makefile | 10 - vendor/fzaninotto/faker/composer.json | 35 - vendor/fzaninotto/faker/phpunit.xml.dist | 12 - vendor/fzaninotto/faker/readme.md | 1707 -- .../faker/src/Faker/Calculator/Iban.php | 73 - .../faker/src/Faker/Calculator/Inn.php | 34 - .../faker/src/Faker/Calculator/Luhn.php | 75 - .../faker/src/Faker/Calculator/TCNo.php | 52 - .../faker/src/Faker/DefaultGenerator.php | 38 - .../fzaninotto/faker/src/Faker/Documentor.php | 66 - vendor/fzaninotto/faker/src/Faker/Factory.php | 61 - .../fzaninotto/faker/src/Faker/Generator.php | 281 - .../faker/src/Faker/Guesser/Name.php | 156 - .../Faker/ORM/CakePHP/ColumnTypeGuesser.php | 67 - .../src/Faker/ORM/CakePHP/EntityPopulator.php | 166 - .../faker/src/Faker/ORM/CakePHP/Populator.php | 109 - .../Faker/ORM/Doctrine/ColumnTypeGuesser.php | 75 - .../Faker/ORM/Doctrine/EntityPopulator.php | 251 - .../src/Faker/ORM/Doctrine/Populator.php | 82 - .../Faker/ORM/Mandango/ColumnTypeGuesser.php | 49 - .../Faker/ORM/Mandango/EntityPopulator.php | 122 - .../src/Faker/ORM/Mandango/Populator.php | 65 - .../Faker/ORM/Propel/ColumnTypeGuesser.php | 107 - .../src/Faker/ORM/Propel/EntityPopulator.php | 191 - .../faker/src/Faker/ORM/Propel/Populator.php | 89 - .../Faker/ORM/Propel2/ColumnTypeGuesser.php | 107 - .../src/Faker/ORM/Propel2/EntityPopulator.php | 192 - .../faker/src/Faker/ORM/Propel2/Populator.php | 92 - .../src/Faker/ORM/Spot/ColumnTypeGuesser.php | 77 - .../src/Faker/ORM/Spot/EntityPopulator.php | 222 - .../faker/src/Faker/ORM/Spot/Populator.php | 88 - .../faker/src/Faker/Provider/Address.php | 139 - .../faker/src/Faker/Provider/Barcode.php | 114 - .../faker/src/Faker/Provider/Base.php | 612 - .../faker/src/Faker/Provider/Biased.php | 64 - .../faker/src/Faker/Provider/Color.php | 116 - .../faker/src/Faker/Provider/Company.php | 44 - .../faker/src/Faker/Provider/DateTime.php | 340 - .../faker/src/Faker/Provider/File.php | 606 - .../faker/src/Faker/Provider/HtmlLorem.php | 277 - .../faker/src/Faker/Provider/Image.php | 105 - .../faker/src/Faker/Provider/Internet.php | 362 - .../faker/src/Faker/Provider/Lorem.php | 203 - .../src/Faker/Provider/Miscellaneous.php | 323 - .../faker/src/Faker/Provider/Payment.php | 286 - .../faker/src/Faker/Provider/Person.php | 126 - .../faker/src/Faker/Provider/PhoneNumber.php | 43 - .../faker/src/Faker/Provider/Text.php | 141 - .../faker/src/Faker/Provider/UserAgent.php | 165 - .../faker/src/Faker/Provider/Uuid.php | 57 - .../src/Faker/Provider/ar_JO/Address.php | 152 - .../src/Faker/Provider/ar_JO/Company.php | 63 - .../src/Faker/Provider/ar_JO/Internet.php | 55 - .../faker/src/Faker/Provider/ar_JO/Person.php | 108 - .../faker/src/Faker/Provider/ar_JO/Text.php | 271 - .../src/Faker/Provider/ar_SA/Address.php | 146 - .../faker/src/Faker/Provider/ar_SA/Color.php | 81 - .../src/Faker/Provider/ar_SA/Company.php | 74 - .../src/Faker/Provider/ar_SA/Internet.php | 55 - .../src/Faker/Provider/ar_SA/Payment.php | 19 - .../faker/src/Faker/Provider/ar_SA/Person.php | 118 - .../faker/src/Faker/Provider/ar_SA/Text.php | 271 - .../src/Faker/Provider/at_AT/Payment.php | 44 - .../src/Faker/Provider/bg_BG/Internet.php | 9 - .../src/Faker/Provider/bg_BG/Payment.php | 43 - .../faker/src/Faker/Provider/bg_BG/Person.php | 114 - .../src/Faker/Provider/bg_BG/PhoneNumber.php | 20 - .../src/Faker/Provider/bn_BD/Address.php | 310 - .../src/Faker/Provider/bn_BD/Company.php | 28 - .../faker/src/Faker/Provider/bn_BD/Person.php | 36 - .../src/Faker/Provider/bn_BD/PhoneNumber.php | 14 - .../faker/src/Faker/Provider/bn_BD/Utils.php | 14 - .../src/Faker/Provider/cs_CZ/Address.php | 149 - .../src/Faker/Provider/cs_CZ/Company.php | 120 - .../src/Faker/Provider/cs_CZ/DateTime.php | 61 - .../src/Faker/Provider/cs_CZ/Internet.php | 9 - .../src/Faker/Provider/cs_CZ/Payment.php | 19 - .../faker/src/Faker/Provider/cs_CZ/Person.php | 533 - .../src/Faker/Provider/cs_CZ/PhoneNumber.php | 14 - .../faker/src/Faker/Provider/cs_CZ/Text.php | 7185 ----- .../src/Faker/Provider/da_DK/Address.php | 287 - .../src/Faker/Provider/da_DK/Company.php | 70 - .../src/Faker/Provider/da_DK/Internet.php | 30 - .../src/Faker/Provider/da_DK/Payment.php | 19 - .../faker/src/Faker/Provider/da_DK/Person.php | 195 - .../src/Faker/Provider/da_DK/PhoneNumber.php | 21 - .../src/Faker/Provider/de_AT/Address.php | 116 - .../src/Faker/Provider/de_AT/Company.php | 13 - .../src/Faker/Provider/de_AT/Internet.php | 9 - .../src/Faker/Provider/de_AT/Payment.php | 19 - .../faker/src/Faker/Provider/de_AT/Person.php | 120 - .../src/Faker/Provider/de_AT/PhoneNumber.php | 19 - .../faker/src/Faker/Provider/de_AT/Text.php | 7 - .../src/Faker/Provider/de_CH/Address.php | 185 - .../src/Faker/Provider/de_CH/Company.php | 15 - .../src/Faker/Provider/de_CH/Internet.php | 17 - .../src/Faker/Provider/de_CH/Payment.php | 19 - .../faker/src/Faker/Provider/de_CH/Person.php | 89 - .../src/Faker/Provider/de_CH/PhoneNumber.php | 43 - .../faker/src/Faker/Provider/de_CH/Text.php | 2036 -- .../src/Faker/Provider/de_DE/Address.php | 125 - .../src/Faker/Provider/de_DE/Company.php | 15 - .../src/Faker/Provider/de_DE/Internet.php | 26 - .../src/Faker/Provider/de_DE/Payment.php | 56 - .../faker/src/Faker/Provider/de_DE/Person.php | 129 - .../src/Faker/Provider/de_DE/PhoneNumber.php | 20 - .../faker/src/Faker/Provider/de_DE/Text.php | 2036 -- .../src/Faker/Provider/el_CY/Address.php | 55 - .../src/Faker/Provider/el_CY/Company.php | 18 - .../src/Faker/Provider/el_CY/Internet.php | 9 - .../src/Faker/Provider/el_CY/Payment.php | 49 - .../faker/src/Faker/Provider/el_CY/Person.php | 97 - .../src/Faker/Provider/el_CY/PhoneNumber.php | 32 - .../src/Faker/Provider/el_GR/Address.php | 61 - .../src/Faker/Provider/el_GR/Company.php | 84 - .../src/Faker/Provider/el_GR/Payment.php | 19 - .../faker/src/Faker/Provider/el_GR/Person.php | 178 - .../src/Faker/Provider/el_GR/PhoneNumber.php | 85 - .../faker/src/Faker/Provider/el_GR/Text.php | 2581 -- .../src/Faker/Provider/en_AU/Address.php | 110 - .../src/Faker/Provider/en_AU/Internet.php | 9 - .../src/Faker/Provider/en_AU/PhoneNumber.php | 56 - .../src/Faker/Provider/en_CA/Address.php | 64 - .../src/Faker/Provider/en_CA/PhoneNumber.php | 18 - .../src/Faker/Provider/en_GB/Address.php | 143 - .../src/Faker/Provider/en_GB/Internet.php | 9 - .../src/Faker/Provider/en_GB/Payment.php | 19 - .../faker/src/Faker/Provider/en_GB/Person.php | 93 - .../src/Faker/Provider/en_GB/PhoneNumber.php | 43 - .../src/Faker/Provider/en_HK/Address.php | 240 - .../src/Faker/Provider/en_HK/Internet.php | 14 - .../src/Faker/Provider/en_HK/PhoneNumber.php | 38 - .../src/Faker/Provider/en_IN/Address.php | 182 - .../src/Faker/Provider/en_IN/Internet.php | 9 - .../faker/src/Faker/Provider/en_IN/Person.php | 127 - .../src/Faker/Provider/en_IN/PhoneNumber.php | 35 - .../src/Faker/Provider/en_NG/Address.php | 98 - .../src/Faker/Provider/en_NG/Internet.php | 8 - .../faker/src/Faker/Provider/en_NG/Person.php | 91 - .../src/Faker/Provider/en_NG/PhoneNumber.php | 133 - .../src/Faker/Provider/en_NZ/Address.php | 78 - .../src/Faker/Provider/en_NZ/Internet.php | 16 - .../src/Faker/Provider/en_NZ/PhoneNumber.php | 93 - .../src/Faker/Provider/en_PH/Address.php | 417 - .../src/Faker/Provider/en_PH/PhoneNumber.php | 58 - .../src/Faker/Provider/en_SG/Address.php | 126 - .../src/Faker/Provider/en_SG/PhoneNumber.php | 110 - .../src/Faker/Provider/en_UG/Address.php | 101 - .../src/Faker/Provider/en_UG/Internet.php | 9 - .../faker/src/Faker/Provider/en_UG/Person.php | 132 - .../src/Faker/Provider/en_UG/PhoneNumber.php | 17 - .../src/Faker/Provider/en_US/Address.php | 97 - .../src/Faker/Provider/en_US/Company.php | 116 - .../src/Faker/Provider/en_US/Payment.php | 38 - .../faker/src/Faker/Provider/en_US/Person.php | 131 - .../src/Faker/Provider/en_US/PhoneNumber.php | 108 - .../faker/src/Faker/Provider/en_US/Text.php | 3720 --- .../src/Faker/Provider/en_ZA/Address.php | 70 - .../src/Faker/Provider/en_ZA/Company.php | 29 - .../src/Faker/Provider/en_ZA/Internet.php | 18 - .../faker/src/Faker/Provider/en_ZA/Person.php | 178 - .../src/Faker/Provider/en_ZA/PhoneNumber.php | 100 - .../src/Faker/Provider/es_AR/Address.php | 68 - .../src/Faker/Provider/es_AR/Company.php | 66 - .../faker/src/Faker/Provider/es_AR/Person.php | 90 - .../src/Faker/Provider/es_AR/PhoneNumber.php | 42 - .../src/Faker/Provider/es_ES/Address.php | 101 - .../src/Faker/Provider/es_ES/Company.php | 80 - .../src/Faker/Provider/es_ES/Internet.php | 9 - .../src/Faker/Provider/es_ES/Payment.php | 39 - .../faker/src/Faker/Provider/es_ES/Person.php | 100 - .../src/Faker/Provider/es_ES/PhoneNumber.php | 29 - .../faker/src/Faker/Provider/es_ES/Text.php | 687 - .../src/Faker/Provider/es_PE/Address.php | 65 - .../src/Faker/Provider/es_PE/Company.php | 66 - .../faker/src/Faker/Provider/es_PE/Person.php | 106 - .../src/Faker/Provider/es_PE/PhoneNumber.php | 17 - .../src/Faker/Provider/es_VE/Address.php | 72 - .../src/Faker/Provider/es_VE/Company.php | 40 - .../src/Faker/Provider/es_VE/Internet.php | 9 - .../faker/src/Faker/Provider/es_VE/Person.php | 167 - .../src/Faker/Provider/es_VE/PhoneNumber.php | 29 - .../src/Faker/Provider/fa_IR/Address.php | 100 - .../src/Faker/Provider/fa_IR/Company.php | 57 - .../src/Faker/Provider/fa_IR/Internet.php | 102 - .../faker/src/Faker/Provider/fa_IR/Person.php | 137 - .../src/Faker/Provider/fa_IR/PhoneNumber.php | 46 - .../faker/src/Faker/Provider/fa_IR/Text.php | 546 - .../src/Faker/Provider/fi_FI/Address.php | 85 - .../src/Faker/Provider/fi_FI/Company.php | 64 - .../src/Faker/Provider/fi_FI/Internet.php | 9 - .../src/Faker/Provider/fi_FI/Payment.php | 19 - .../faker/src/Faker/Provider/fi_FI/Person.php | 145 - .../src/Faker/Provider/fi_FI/PhoneNumber.php | 99 - .../src/Faker/Provider/fr_BE/Address.php | 72 - .../src/Faker/Provider/fr_BE/Company.php | 13 - .../src/Faker/Provider/fr_BE/Internet.php | 9 - .../src/Faker/Provider/fr_BE/Payment.php | 39 - .../faker/src/Faker/Provider/fr_BE/Person.php | 49 - .../src/Faker/Provider/fr_BE/PhoneNumber.php | 20 - .../src/Faker/Provider/fr_CA/Address.php | 125 - .../src/Faker/Provider/fr_CA/Company.php | 7 - .../faker/src/Faker/Provider/fr_CA/Person.php | 82 - .../src/Faker/Provider/fr_CH/Address.php | 140 - .../src/Faker/Provider/fr_CH/Company.php | 15 - .../src/Faker/Provider/fr_CH/Internet.php | 9 - .../src/Faker/Provider/fr_CH/Payment.php | 19 - .../faker/src/Faker/Provider/fr_CH/Person.php | 90 - .../src/Faker/Provider/fr_CH/PhoneNumber.php | 43 - .../faker/src/Faker/Provider/fr_CH/Text.php | 8 - .../src/Faker/Provider/fr_FR/Address.php | 147 - .../src/Faker/Provider/fr_FR/Company.php | 476 - .../src/Faker/Provider/fr_FR/Internet.php | 9 - .../src/Faker/Provider/fr_FR/Payment.php | 44 - .../faker/src/Faker/Provider/fr_FR/Person.php | 129 - .../src/Faker/Provider/fr_FR/PhoneNumber.php | 141 - .../faker/src/Faker/Provider/fr_FR/Text.php | 15531 ---------- .../src/Faker/Provider/he_IL/Address.php | 122 - .../src/Faker/Provider/he_IL/Company.php | 14 - .../src/Faker/Provider/he_IL/Payment.php | 19 - .../faker/src/Faker/Provider/he_IL/Person.php | 132 - .../src/Faker/Provider/he_IL/PhoneNumber.php | 14 - .../src/Faker/Provider/hr_HR/Address.php | 69 - .../src/Faker/Provider/hr_HR/Company.php | 25 - .../src/Faker/Provider/hr_HR/Payment.php | 19 - .../faker/src/Faker/Provider/hr_HR/Person.php | 27 - .../src/Faker/Provider/hr_HR/PhoneNumber.php | 14 - .../src/Faker/Provider/hu_HU/Address.php | 149 - .../src/Faker/Provider/hu_HU/Company.php | 13 - .../src/Faker/Provider/hu_HU/Payment.php | 19 - .../faker/src/Faker/Provider/hu_HU/Person.php | 91 - .../src/Faker/Provider/hu_HU/PhoneNumber.php | 14 - .../faker/src/Faker/Provider/hu_HU/Text.php | 3407 --- .../src/Faker/Provider/hy_AM/Address.php | 132 - .../faker/src/Faker/Provider/hy_AM/Color.php | 12 - .../src/Faker/Provider/hy_AM/Company.php | 54 - .../src/Faker/Provider/hy_AM/Internet.php | 9 - .../faker/src/Faker/Provider/hy_AM/Person.php | 112 - .../src/Faker/Provider/hy_AM/PhoneNumber.php | 40 - .../src/Faker/Provider/id_ID/Address.php | 316 - .../src/Faker/Provider/id_ID/Company.php | 43 - .../src/Faker/Provider/id_ID/Internet.php | 25 - .../faker/src/Faker/Provider/id_ID/Person.php | 293 - .../src/Faker/Provider/id_ID/PhoneNumber.php | 55 - .../src/Faker/Provider/is_IS/Address.php | 178 - .../src/Faker/Provider/is_IS/Company.php | 53 - .../src/Faker/Provider/is_IS/Internet.php | 23 - .../src/Faker/Provider/is_IS/Payment.php | 19 - .../faker/src/Faker/Provider/is_IS/Person.php | 140 - .../src/Faker/Provider/is_IS/PhoneNumber.php | 20 - .../src/Faker/Provider/it_CH/Address.php | 139 - .../src/Faker/Provider/it_CH/Company.php | 15 - .../src/Faker/Provider/it_CH/Internet.php | 9 - .../src/Faker/Provider/it_CH/Payment.php | 19 - .../faker/src/Faker/Provider/it_CH/Person.php | 88 - .../src/Faker/Provider/it_CH/PhoneNumber.php | 43 - .../faker/src/Faker/Provider/it_CH/Text.php | 8 - .../src/Faker/Provider/it_IT/Address.php | 97 - .../src/Faker/Provider/it_IT/Company.php | 78 - .../src/Faker/Provider/it_IT/Internet.php | 9 - .../src/Faker/Provider/it_IT/Payment.php | 19 - .../faker/src/Faker/Provider/it_IT/Person.php | 98 - .../src/Faker/Provider/it_IT/PhoneNumber.php | 21 - .../faker/src/Faker/Provider/it_IT/Text.php | 1994 -- .../src/Faker/Provider/ja_JP/Address.php | 137 - .../src/Faker/Provider/ja_JP/Company.php | 17 - .../src/Faker/Provider/ja_JP/Internet.php | 93 - .../faker/src/Faker/Provider/ja_JP/Person.php | 141 - .../src/Faker/Provider/ja_JP/PhoneNumber.php | 19 - .../faker/src/Faker/Provider/ja_JP/Text.php | 635 - .../src/Faker/Provider/ka_GE/Address.php | 140 - .../faker/src/Faker/Provider/ka_GE/Color.php | 16 - .../src/Faker/Provider/ka_GE/Company.php | 55 - .../src/Faker/Provider/ka_GE/DateTime.php | 42 - .../src/Faker/Provider/ka_GE/Internet.php | 15 - .../src/Faker/Provider/ka_GE/Payment.php | 53 - .../faker/src/Faker/Provider/ka_GE/Person.php | 63 - .../src/Faker/Provider/ka_GE/PhoneNumber.php | 14 - .../faker/src/Faker/Provider/ka_GE/Text.php | 1000 - .../src/Faker/Provider/kk_KZ/Address.php | 105 - .../faker/src/Faker/Provider/kk_KZ/Color.php | 12 - .../src/Faker/Provider/kk_KZ/Company.php | 72 - .../src/Faker/Provider/kk_KZ/Internet.php | 9 - .../src/Faker/Provider/kk_KZ/Payment.php | 33 - .../faker/src/Faker/Provider/kk_KZ/Person.php | 257 - .../src/Faker/Provider/kk_KZ/PhoneNumber.php | 16 - .../faker/src/Faker/Provider/kk_KZ/Text.php | 490 - .../src/Faker/Provider/ko_KR/Address.php | 96 - .../src/Faker/Provider/ko_KR/Company.php | 31 - .../src/Faker/Provider/ko_KR/Internet.php | 86 - .../faker/src/Faker/Provider/ko_KR/Person.php | 55 - .../src/Faker/Provider/ko_KR/PhoneNumber.php | 42 - .../faker/src/Faker/Provider/ko_KR/Text.php | 1723 -- .../src/Faker/Provider/lt_LT/Address.php | 131 - .../src/Faker/Provider/lt_LT/Company.php | 15 - .../src/Faker/Provider/lt_LT/Internet.php | 18 - .../src/Faker/Provider/lt_LT/Payment.php | 19 - .../faker/src/Faker/Provider/lt_LT/Person.php | 350 - .../src/Faker/Provider/lt_LT/PhoneNumber.php | 17 - .../src/Faker/Provider/lv_LV/Address.php | 117 - .../faker/src/Faker/Provider/lv_LV/Color.php | 19 - .../src/Faker/Provider/lv_LV/Internet.php | 9 - .../src/Faker/Provider/lv_LV/Payment.php | 19 - .../faker/src/Faker/Provider/lv_LV/Person.php | 128 - .../src/Faker/Provider/lv_LV/PhoneNumber.php | 15 - .../src/Faker/Provider/me_ME/Address.php | 119 - .../src/Faker/Provider/me_ME/Company.php | 49 - .../src/Faker/Provider/me_ME/Payment.php | 19 - .../faker/src/Faker/Provider/me_ME/Person.php | 102 - .../src/Faker/Provider/me_ME/PhoneNumber.php | 15 - .../faker/src/Faker/Provider/mn_MN/Person.php | 100 - .../src/Faker/Provider/mn_MN/PhoneNumber.php | 13 - .../src/Faker/Provider/ms_MY/Address.php | 708 - .../src/Faker/Provider/ms_MY/Company.php | 105 - .../Faker/Provider/ms_MY/Miscellaneous.php | 169 - .../src/Faker/Provider/ms_MY/Payment.php | 244 - .../faker/src/Faker/Provider/ms_MY/Person.php | 813 - .../src/Faker/Provider/ms_MY/PhoneNumber.php | 217 - .../src/Faker/Provider/nb_NO/Address.php | 195 - .../src/Faker/Provider/nb_NO/Company.php | 55 - .../src/Faker/Provider/nb_NO/Payment.php | 19 - .../faker/src/Faker/Provider/nb_NO/Person.php | 326 - .../src/Faker/Provider/nb_NO/PhoneNumber.php | 22 - .../src/Faker/Provider/ne_NP/Address.php | 129 - .../src/Faker/Provider/ne_NP/Internet.php | 32 - .../faker/src/Faker/Provider/ne_NP/Person.php | 121 - .../src/Faker/Provider/ne_NP/PhoneNumber.php | 19 - .../src/Faker/Provider/nl_BE/Address.php | 124 - .../src/Faker/Provider/nl_BE/Company.php | 13 - .../src/Faker/Provider/nl_BE/Internet.php | 9 - .../src/Faker/Provider/nl_BE/Payment.php | 39 - .../faker/src/Faker/Provider/nl_BE/Person.php | 106 - .../src/Faker/Provider/nl_BE/PhoneNumber.php | 20 - .../faker/src/Faker/Provider/nl_BE/Text.php | 25347 ---------------- .../src/Faker/Provider/nl_NL/Address.php | 153 - .../faker/src/Faker/Provider/nl_NL/Color.php | 36 - .../src/Faker/Provider/nl_NL/Company.php | 39 - .../src/Faker/Provider/nl_NL/Internet.php | 9 - .../src/Faker/Provider/nl_NL/Payment.php | 19 - .../faker/src/Faker/Provider/nl_NL/Person.php | 350 - .../src/Faker/Provider/nl_NL/PhoneNumber.php | 39 - .../faker/src/Faker/Provider/nl_NL/Text.php | 3932 --- .../src/Faker/Provider/pl_PL/Address.php | 210 - .../src/Faker/Provider/pl_PL/Company.php | 80 - .../src/Faker/Provider/pl_PL/Internet.php | 9 - .../src/Faker/Provider/pl_PL/Payment.php | 115 - .../faker/src/Faker/Provider/pl_PL/Person.php | 227 - .../src/Faker/Provider/pl_PL/PhoneNumber.php | 18 - .../faker/src/Faker/Provider/pl_PL/Text.php | 2866 -- .../src/Faker/Provider/pt_BR/Address.php | 154 - .../src/Faker/Provider/pt_BR/Company.php | 33 - .../src/Faker/Provider/pt_BR/Internet.php | 9 - .../src/Faker/Provider/pt_BR/Payment.php | 72 - .../faker/src/Faker/Provider/pt_BR/Person.php | 133 - .../src/Faker/Provider/pt_BR/PhoneNumber.php | 137 - .../src/Faker/Provider/pt_BR/check_digit.php | 35 - .../src/Faker/Provider/pt_PT/Address.php | 124 - .../src/Faker/Provider/pt_PT/Payment.php | 19 - .../faker/src/Faker/Provider/pt_PT/Person.php | 146 - .../src/Faker/Provider/pt_PT/PhoneNumber.php | 50 - .../src/Faker/Provider/ro_MD/Address.php | 148 - .../src/Faker/Provider/ro_MD/Payment.php | 19 - .../faker/src/Faker/Provider/ro_MD/Person.php | 90 - .../src/Faker/Provider/ro_MD/PhoneNumber.php | 33 - .../faker/src/Faker/Provider/ro_MD/Text.php | 2463 -- .../src/Faker/Provider/ro_RO/Address.php | 176 - .../src/Faker/Provider/ro_RO/Payment.php | 19 - .../faker/src/Faker/Provider/ro_RO/Person.php | 238 - .../src/Faker/Provider/ro_RO/PhoneNumber.php | 67 - .../faker/src/Faker/Provider/ro_RO/Text.php | 154 - .../src/Faker/Provider/ru_RU/Address.php | 139 - .../faker/src/Faker/Provider/ru_RU/Color.php | 23 - .../src/Faker/Provider/ru_RU/Company.php | 94 - .../src/Faker/Provider/ru_RU/Internet.php | 9 - .../src/Faker/Provider/ru_RU/Payment.php | 811 - .../faker/src/Faker/Provider/ru_RU/Person.php | 157 - .../src/Faker/Provider/ru_RU/PhoneNumber.php | 14 - .../faker/src/Faker/Provider/ru_RU/Text.php | 4550 --- .../src/Faker/Provider/sk_SK/Address.php | 344 - .../src/Faker/Provider/sk_SK/Company.php | 64 - .../src/Faker/Provider/sk_SK/Internet.php | 9 - .../src/Faker/Provider/sk_SK/Payment.php | 19 - .../faker/src/Faker/Provider/sk_SK/Person.php | 168 - .../src/Faker/Provider/sk_SK/PhoneNumber.php | 15 - .../src/Faker/Provider/sl_SI/Address.php | 107 - .../src/Faker/Provider/sl_SI/Company.php | 14 - .../src/Faker/Provider/sl_SI/Internet.php | 11 - .../src/Faker/Provider/sl_SI/Payment.php | 19 - .../faker/src/Faker/Provider/sl_SI/Person.php | 149 - .../src/Faker/Provider/sl_SI/PhoneNumber.php | 18 - .../src/Faker/Provider/sr_Cyrl_RS/Address.php | 58 - .../src/Faker/Provider/sr_Cyrl_RS/Payment.php | 19 - .../src/Faker/Provider/sr_Cyrl_RS/Person.php | 242 - .../src/Faker/Provider/sr_Latn_RS/Address.php | 58 - .../src/Faker/Provider/sr_Latn_RS/Payment.php | 19 - .../src/Faker/Provider/sr_Latn_RS/Person.php | 213 - .../src/Faker/Provider/sr_RS/Address.php | 58 - .../src/Faker/Provider/sr_RS/Payment.php | 19 - .../faker/src/Faker/Provider/sr_RS/Person.php | 145 - .../src/Faker/Provider/sv_SE/Address.php | 150 - .../src/Faker/Provider/sv_SE/Company.php | 26 - .../src/Faker/Provider/sv_SE/Payment.php | 19 - .../faker/src/Faker/Provider/sv_SE/Person.php | 143 - .../src/Faker/Provider/sv_SE/PhoneNumber.php | 37 - .../src/Faker/Provider/th_TH/Address.php | 101 - .../faker/src/Faker/Provider/th_TH/Color.php | 16 - .../src/Faker/Provider/th_TH/Company.php | 32 - .../src/Faker/Provider/th_TH/Internet.php | 8 - .../src/Faker/Provider/th_TH/Payment.php | 43 - .../src/Faker/Provider/th_TH/PhoneNumber.php | 37 - .../src/Faker/Provider/tr_TR/Address.php | 93 - .../faker/src/Faker/Provider/tr_TR/Color.php | 58 - .../src/Faker/Provider/tr_TR/Company.php | 99 - .../src/Faker/Provider/tr_TR/DateTime.php | 46 - .../src/Faker/Provider/tr_TR/Internet.php | 9 - .../src/Faker/Provider/tr_TR/Payment.php | 19 - .../faker/src/Faker/Provider/tr_TR/Person.php | 112 - .../src/Faker/Provider/tr_TR/PhoneNumber.php | 33 - .../src/Faker/Provider/uk_UA/Address.php | 362 - .../faker/src/Faker/Provider/uk_UA/Color.php | 23 - .../src/Faker/Provider/uk_UA/Company.php | 74 - .../src/Faker/Provider/uk_UA/Internet.php | 9 - .../src/Faker/Provider/uk_UA/Payment.php | 41 - .../faker/src/Faker/Provider/uk_UA/Person.php | 99 - .../src/Faker/Provider/uk_UA/PhoneNumber.php | 51 - .../faker/src/Faker/Provider/uk_UA/Text.php | 4511 --- .../src/Faker/Provider/vi_VN/Address.php | 170 - .../faker/src/Faker/Provider/vi_VN/Color.php | 36 - .../src/Faker/Provider/vi_VN/Internet.php | 8 - .../faker/src/Faker/Provider/vi_VN/Person.php | 184 - .../src/Faker/Provider/vi_VN/PhoneNumber.php | 61 - .../src/Faker/Provider/zh_CN/Address.php | 149 - .../faker/src/Faker/Provider/zh_CN/Color.php | 66 - .../src/Faker/Provider/zh_CN/Company.php | 234 - .../src/Faker/Provider/zh_CN/DateTime.php | 46 - .../src/Faker/Provider/zh_CN/Internet.php | 24 - .../src/Faker/Provider/zh_CN/Payment.php | 41 - .../faker/src/Faker/Provider/zh_CN/Person.php | 79 - .../src/Faker/Provider/zh_CN/PhoneNumber.php | 23 - .../src/Faker/Provider/zh_TW/Address.php | 419 - .../faker/src/Faker/Provider/zh_TW/Color.php | 66 - .../src/Faker/Provider/zh_TW/Company.php | 265 - .../src/Faker/Provider/zh_TW/DateTime.php | 46 - .../src/Faker/Provider/zh_TW/Internet.php | 16 - .../src/Faker/Provider/zh_TW/Payment.php | 11 - .../faker/src/Faker/Provider/zh_TW/Person.php | 201 - .../src/Faker/Provider/zh_TW/PhoneNumber.php | 19 - .../faker/src/Faker/Provider/zh_TW/Text.php | 898 - .../faker/src/Faker/UniqueGenerator.php | 58 - .../faker/src/Faker/ValidGenerator.php | 65 - vendor/fzaninotto/faker/src/autoload.php | 26 - .../faker/test/Faker/Calculator/IbanTest.php | 306 - .../faker/test/Faker/Calculator/InnTest.php | 51 - .../faker/test/Faker/Calculator/LuhnTest.php | 72 - .../faker/test/Faker/Calculator/TCNoTest.php | 54 - .../faker/test/Faker/DefaultGeneratorTest.php | 28 - .../faker/test/Faker/GeneratorTest.php | 148 - .../faker/test/Faker/Provider/AddressTest.php | 47 - .../faker/test/Faker/Provider/BarcodeTest.php | 46 - .../faker/test/Faker/Provider/BaseTest.php | 572 - .../faker/test/Faker/Provider/BiasedTest.php | 74 - .../faker/test/Faker/Provider/ColorTest.php | 54 - .../faker/test/Faker/Provider/CompanyTest.php | 31 - .../test/Faker/Provider/DateTimeTest.php | 282 - .../test/Faker/Provider/HtmlLoremTest.php | 30 - .../faker/test/Faker/Provider/ImageTest.php | 76 - .../test/Faker/Provider/InternetTest.php | 167 - .../test/Faker/Provider/LocalizationTest.php | 27 - .../faker/test/Faker/Provider/LoremTest.php | 109 - .../test/Faker/Provider/MiscellaneousTest.php | 59 - .../faker/test/Faker/Provider/PaymentTest.php | 209 - .../faker/test/Faker/Provider/PersonTest.php | 87 - .../test/Faker/Provider/PhoneNumberTest.php | 36 - .../Faker/Provider/ProviderOverrideTest.php | 194 - .../faker/test/Faker/Provider/TextTest.php | 55 - .../test/Faker/Provider/UserAgentTest.php | 39 - .../faker/test/Faker/Provider/UuidTest.php | 32 - .../Faker/Provider/ar_JO/InternetTest.php | 33 - .../Faker/Provider/ar_SA/InternetTest.php | 33 - .../test/Faker/Provider/at_AT/PaymentTest.php | 31 - .../test/Faker/Provider/bg_BG/PaymentTest.php | 31 - .../test/Faker/Provider/bn_BD/PersonTest.php | 30 - .../test/Faker/Provider/cs_CZ/PersonTest.php | 47 - .../Faker/Provider/da_DK/InternetTest.php | 33 - .../Faker/Provider/de_AT/InternetTest.php | 33 - .../Faker/Provider/de_AT/PhoneNumberTest.php | 29 - .../test/Faker/Provider/de_CH/AddressTest.php | 70 - .../Faker/Provider/de_CH/InternetTest.php | 36 - .../Faker/Provider/de_CH/PhoneNumberTest.php | 33 - .../Faker/Provider/de_DE/InternetTest.php | 33 - .../test/Faker/Provider/el_GR/TextTest.php | 57 - .../test/Faker/Provider/en_AU/AddressTest.php | 49 - .../test/Faker/Provider/en_CA/AddressTest.php | 69 - .../test/Faker/Provider/en_GB/AddressTest.php | 36 - .../test/Faker/Provider/en_IN/AddressTest.php | 57 - .../test/Faker/Provider/en_NG/AddressTest.php | 57 - .../Faker/Provider/en_NG/InternetTest.php | 33 - .../test/Faker/Provider/en_NG/PersonTest.php | 30 - .../Faker/Provider/en_NG/PhoneNumberTest.php | 26 - .../Faker/Provider/en_NZ/PhoneNumberTest.php | 36 - .../test/Faker/Provider/en_PH/AddressTest.php | 50 - .../test/Faker/Provider/en_SG/AddressTest.php | 27 - .../Faker/Provider/en_SG/PhoneNumberTest.php | 46 - .../test/Faker/Provider/en_UG/AddressTest.php | 53 - .../test/Faker/Provider/en_US/CompanyTest.php | 33 - .../test/Faker/Provider/en_US/PaymentTest.php | 85 - .../test/Faker/Provider/en_US/PersonTest.php | 48 - .../Faker/Provider/en_US/PhoneNumberTest.php | 85 - .../test/Faker/Provider/en_ZA/CompanyTest.php | 27 - .../Faker/Provider/en_ZA/InternetTest.php | 33 - .../test/Faker/Provider/en_ZA/PersonTest.php | 69 - .../Faker/Provider/en_ZA/PhoneNumberTest.php | 66 - .../test/Faker/Provider/es_ES/PaymentTest.php | 61 - .../test/Faker/Provider/es_ES/PersonTest.php | 46 - .../test/Faker/Provider/es_ES/TextTest.php | 27 - .../test/Faker/Provider/es_PE/PersonTest.php | 29 - .../test/Faker/Provider/es_VE/CompanyTest.php | 43 - .../test/Faker/Provider/es_VE/PersonTest.php | 43 - .../Faker/Provider/fi_FI/InternetTest.php | 33 - .../test/Faker/Provider/fi_FI/PersonTest.php | 82 - .../test/Faker/Provider/fr_BE/PaymentTest.php | 30 - .../test/Faker/Provider/fr_CH/AddressTest.php | 70 - .../Faker/Provider/fr_CH/InternetTest.php | 36 - .../Faker/Provider/fr_CH/PhoneNumberTest.php | 33 - .../test/Faker/Provider/fr_FR/AddressTest.php | 33 - .../test/Faker/Provider/fr_FR/CompanyTest.php | 75 - .../test/Faker/Provider/fr_FR/PaymentTest.php | 49 - .../test/Faker/Provider/fr_FR/PersonTest.php | 37 - .../Faker/Provider/fr_FR/PhoneNumberTest.php | 57 - .../test/Faker/Provider/fr_FR/TextTest.php | 57 - .../test/Faker/Provider/id_ID/PersonTest.php | 41 - .../test/Faker/Provider/it_CH/AddressTest.php | 70 - .../Faker/Provider/it_CH/InternetTest.php | 36 - .../Faker/Provider/it_CH/PhoneNumberTest.php | 33 - .../test/Faker/Provider/it_IT/CompanyTest.php | 24 - .../test/Faker/Provider/it_IT/PersonTest.php | 24 - .../Faker/Provider/ja_JP/InternetTest.php | 28 - .../test/Faker/Provider/ja_JP/PersonTest.php | 55 - .../Faker/Provider/ja_JP/PhoneNumberTest.php | 22 - .../test/Faker/Provider/ka_GE/TextTest.php | 57 - .../test/Faker/Provider/kk_KZ/CompanyTest.php | 32 - .../test/Faker/Provider/kk_KZ/PersonTest.php | 30 - .../test/Faker/Provider/kk_KZ/TextTest.php | 57 - .../test/Faker/Provider/ko_KR/TextTest.php | 57 - .../test/Faker/Provider/mn_MN/PersonTest.php | 28 - .../test/Faker/Provider/ms_MY/PersonTest.php | 50 - .../test/Faker/Provider/nl_BE/PaymentTest.php | 30 - .../test/Faker/Provider/nl_BE/PersonTest.php | 54 - .../test/Faker/Provider/nl_NL/CompanyTest.php | 35 - .../test/Faker/Provider/nl_NL/PersonTest.php | 33 - .../test/Faker/Provider/pl_PL/AddressTest.php | 32 - .../test/Faker/Provider/pl_PL/PersonTest.php | 101 - .../test/Faker/Provider/pt_BR/CompanyTest.php | 26 - .../test/Faker/Provider/pt_BR/PersonTest.php | 34 - .../test/Faker/Provider/pt_PT/AddressTest.php | 40 - .../test/Faker/Provider/pt_PT/PersonTest.php | 53 - .../Faker/Provider/pt_PT/PhoneNumberTest.php | 26 - .../test/Faker/Provider/ro_RO/PersonTest.php | 252 - .../Faker/Provider/ro_RO/PhoneNumberTest.php | 32 - .../test/Faker/Provider/ru_RU/CompanyTest.php | 37 - .../test/Faker/Provider/ru_RU/TextTest.php | 57 - .../test/Faker/Provider/sv_SE/PersonTest.php | 61 - .../test/Faker/Provider/tr_TR/CompanyTest.php | 28 - .../test/Faker/Provider/tr_TR/PaymentTest.php | 29 - .../test/Faker/Provider/tr_TR/PersonTest.php | 34 - .../Faker/Provider/tr_TR/PhoneNumberTest.php | 34 - .../test/Faker/Provider/uk_UA/AddressTest.php | 81 - .../test/Faker/Provider/uk_UA/PersonTest.php | 57 - .../Faker/Provider/uk_UA/PhoneNumberTest.php | 36 - .../test/Faker/Provider/zh_TW/CompanyTest.php | 27 - .../test/Faker/Provider/zh_TW/PersonTest.php | 45 - .../test/Faker/Provider/zh_TW/TextTest.php | 79 - vendor/fzaninotto/faker/test/documentor.php | 16 - vendor/fzaninotto/faker/test/test.php | 38 - vendor/guzzlehttp/psr7/CHANGELOG.md | 110 - vendor/guzzlehttp/psr7/LICENSE | 19 - vendor/guzzlehttp/psr7/README.md | 739 - vendor/guzzlehttp/psr7/composer.json | 39 - vendor/guzzlehttp/psr7/src/AppendStream.php | 233 - vendor/guzzlehttp/psr7/src/BufferStream.php | 137 - vendor/guzzlehttp/psr7/src/CachingStream.php | 138 - vendor/guzzlehttp/psr7/src/DroppingStream.php | 42 - vendor/guzzlehttp/psr7/src/FnStream.php | 149 - vendor/guzzlehttp/psr7/src/InflateStream.php | 52 - vendor/guzzlehttp/psr7/src/LazyOpenStream.php | 39 - vendor/guzzlehttp/psr7/src/LimitStream.php | 155 - vendor/guzzlehttp/psr7/src/MessageTrait.php | 183 - .../guzzlehttp/psr7/src/MultipartStream.php | 153 - vendor/guzzlehttp/psr7/src/NoSeekStream.php | 22 - vendor/guzzlehttp/psr7/src/PumpStream.php | 165 - vendor/guzzlehttp/psr7/src/Request.php | 142 - vendor/guzzlehttp/psr7/src/Response.php | 132 - vendor/guzzlehttp/psr7/src/ServerRequest.php | 358 - vendor/guzzlehttp/psr7/src/Stream.php | 257 - .../psr7/src/StreamDecoratorTrait.php | 149 - vendor/guzzlehttp/psr7/src/StreamWrapper.php | 121 - vendor/guzzlehttp/psr7/src/UploadedFile.php | 316 - vendor/guzzlehttp/psr7/src/Uri.php | 702 - vendor/guzzlehttp/psr7/src/UriNormalizer.php | 216 - vendor/guzzlehttp/psr7/src/UriResolver.php | 219 - vendor/guzzlehttp/psr7/src/functions.php | 828 - .../guzzlehttp/psr7/src/functions_include.php | 6 - vendor/hamcrest/hamcrest-php/.coveralls.yml | 1 - vendor/hamcrest/hamcrest-php/.gush.yml | 7 - vendor/hamcrest/hamcrest-php/.travis.yml | 18 - vendor/hamcrest/hamcrest-php/CHANGES.txt | 163 - vendor/hamcrest/hamcrest-php/LICENSE.txt | 27 - vendor/hamcrest/hamcrest-php/README.md | 51 - vendor/hamcrest/hamcrest-php/TODO.txt | 22 - vendor/hamcrest/hamcrest-php/composer.json | 32 - .../hamcrest-php/generator/FactoryCall.php | 41 - .../hamcrest-php/generator/FactoryClass.php | 72 - .../hamcrest-php/generator/FactoryFile.php | 122 - .../generator/FactoryGenerator.php | 115 - .../hamcrest-php/generator/FactoryMethod.php | 231 - .../generator/FactoryParameter.php | 69 - .../generator/GlobalFunctionFile.php | 42 - .../generator/StaticMethodFile.php | 38 - .../generator/parts/file_header.txt | 7 - .../generator/parts/functions_footer.txt | 0 .../generator/parts/functions_header.txt | 24 - .../generator/parts/functions_imports.txt | 0 .../generator/parts/matchers_footer.txt | 1 - .../generator/parts/matchers_header.txt | 7 - .../generator/parts/matchers_imports.txt | 2 - .../hamcrest/hamcrest-php/generator/run.php | 37 - .../hamcrest-php/hamcrest/Hamcrest.php | 805 - .../hamcrest/Hamcrest/Arrays/IsArray.php | 118 - .../Hamcrest/Arrays/IsArrayContaining.php | 63 - .../Arrays/IsArrayContainingInAnyOrder.php | 59 - .../Arrays/IsArrayContainingInOrder.php | 57 - .../Hamcrest/Arrays/IsArrayContainingKey.php | 75 - .../Arrays/IsArrayContainingKeyValuePair.php | 80 - .../Hamcrest/Arrays/IsArrayWithSize.php | 73 - .../hamcrest/Hamcrest/Arrays/MatchingOnce.php | 69 - .../Hamcrest/Arrays/SeriesMatchingOnce.php | 75 - .../hamcrest/Hamcrest/AssertionError.php | 10 - .../hamcrest/Hamcrest/BaseDescription.php | 132 - .../hamcrest/Hamcrest/BaseMatcher.php | 25 - .../Collection/IsEmptyTraversable.php | 71 - .../Collection/IsTraversableWithSize.php | 47 - .../hamcrest/Hamcrest/Core/AllOf.php | 59 - .../hamcrest/Hamcrest/Core/AnyOf.php | 58 - .../Hamcrest/Core/CombinableMatcher.php | 78 - .../hamcrest/Hamcrest/Core/DescribedAs.php | 68 - .../hamcrest/Hamcrest/Core/Every.php | 56 - .../hamcrest/Hamcrest/Core/HasToString.php | 56 - .../hamcrest/Hamcrest/Core/Is.php | 57 - .../hamcrest/Hamcrest/Core/IsAnything.php | 45 - .../Hamcrest/Core/IsCollectionContaining.php | 93 - .../hamcrest/Hamcrest/Core/IsEqual.php | 44 - .../hamcrest/Hamcrest/Core/IsIdentical.php | 38 - .../hamcrest/Hamcrest/Core/IsInstanceOf.php | 67 - .../hamcrest/Hamcrest/Core/IsNot.php | 44 - .../hamcrest/Hamcrest/Core/IsNull.php | 56 - .../hamcrest/Hamcrest/Core/IsSame.php | 51 - .../hamcrest/Hamcrest/Core/IsTypeOf.php | 71 - .../hamcrest/Hamcrest/Core/Set.php | 95 - .../Hamcrest/Core/ShortcutCombination.php | 43 - .../hamcrest/Hamcrest/Description.php | 70 - .../hamcrest/Hamcrest/DiagnosingMatcher.php | 25 - .../hamcrest/Hamcrest/FeatureMatcher.php | 67 - .../Hamcrest/Internal/SelfDescribingValue.php | 27 - .../hamcrest/Hamcrest/Matcher.php | 50 - .../hamcrest/Hamcrest/MatcherAssert.php | 118 - .../hamcrest/Hamcrest/Matchers.php | 713 - .../hamcrest/Hamcrest/NullDescription.php | 43 - .../hamcrest/Hamcrest/Number/IsCloseTo.php | 67 - .../Hamcrest/Number/OrderingComparison.php | 132 - .../hamcrest/Hamcrest/SelfDescribing.php | 23 - .../hamcrest/Hamcrest/StringDescription.php | 57 - .../hamcrest/Hamcrest/Text/IsEmptyString.php | 85 - .../Hamcrest/Text/IsEqualIgnoringCase.php | 52 - .../Text/IsEqualIgnoringWhiteSpace.php | 66 - .../hamcrest/Hamcrest/Text/MatchesPattern.php | 40 - .../hamcrest/Hamcrest/Text/StringContains.php | 45 - .../Text/StringContainsIgnoringCase.php | 40 - .../Hamcrest/Text/StringContainsInOrder.php | 66 - .../hamcrest/Hamcrest/Text/StringEndsWith.php | 40 - .../Hamcrest/Text/StringStartsWith.php | 40 - .../Hamcrest/Text/SubstringMatcher.php | 45 - .../hamcrest/Hamcrest/Type/IsArray.php | 32 - .../hamcrest/Hamcrest/Type/IsBoolean.php | 32 - .../hamcrest/Hamcrest/Type/IsCallable.php | 37 - .../hamcrest/Hamcrest/Type/IsDouble.php | 34 - .../hamcrest/Hamcrest/Type/IsInteger.php | 32 - .../hamcrest/Hamcrest/Type/IsNumeric.php | 34 - .../hamcrest/Hamcrest/Type/IsObject.php | 32 - .../hamcrest/Hamcrest/Type/IsResource.php | 32 - .../hamcrest/Hamcrest/Type/IsScalar.php | 34 - .../hamcrest/Hamcrest/Type/IsString.php | 32 - .../Hamcrest/TypeSafeDiagnosingMatcher.php | 29 - .../hamcrest/Hamcrest/TypeSafeMatcher.php | 107 - .../hamcrest-php/hamcrest/Hamcrest/Util.php | 72 - .../hamcrest/Hamcrest/Xml/HasXPath.php | 195 - .../tests/Hamcrest/AbstractMatcherTest.php | 66 - .../Array/IsArrayContainingInAnyOrderTest.php | 54 - .../Array/IsArrayContainingInOrderTest.php | 44 - .../Array/IsArrayContainingKeyTest.php | 62 - .../IsArrayContainingKeyValuePairTest.php | 36 - .../Hamcrest/Array/IsArrayContainingTest.php | 50 - .../tests/Hamcrest/Array/IsArrayTest.php | 89 - .../Hamcrest/Array/IsArrayWithSizeTest.php | 37 - .../tests/Hamcrest/BaseMatcherTest.php | 23 - .../Collection/IsEmptyTraversableTest.php | 77 - .../Collection/IsTraversableWithSizeTest.php | 57 - .../tests/Hamcrest/Core/AllOfTest.php | 56 - .../tests/Hamcrest/Core/AnyOfTest.php | 79 - .../Hamcrest/Core/CombinableMatcherTest.php | 59 - .../tests/Hamcrest/Core/DescribedAsTest.php | 36 - .../tests/Hamcrest/Core/EveryTest.php | 30 - .../tests/Hamcrest/Core/HasToStringTest.php | 108 - .../tests/Hamcrest/Core/IsAnythingTest.php | 29 - .../Core/IsCollectionContainingTest.php | 91 - .../tests/Hamcrest/Core/IsEqualTest.php | 102 - .../tests/Hamcrest/Core/IsIdenticalTest.php | 30 - .../tests/Hamcrest/Core/IsInstanceOfTest.php | 51 - .../tests/Hamcrest/Core/IsNotTest.php | 31 - .../tests/Hamcrest/Core/IsNullTest.php | 20 - .../tests/Hamcrest/Core/IsSameTest.php | 30 - .../tests/Hamcrest/Core/IsTest.php | 33 - .../tests/Hamcrest/Core/IsTypeOfTest.php | 45 - .../tests/Hamcrest/Core/SampleBaseClass.php | 18 - .../tests/Hamcrest/Core/SampleSubClass.php | 6 - .../tests/Hamcrest/Core/SetTest.php | 116 - .../tests/Hamcrest/FeatureMatcherTest.php | 73 - .../tests/Hamcrest/MatcherAssertTest.php | 190 - .../tests/Hamcrest/Number/IsCloseToTest.php | 27 - .../Number/OrderingComparisonTest.php | 41 - .../tests/Hamcrest/StringDescriptionTest.php | 160 - .../tests/Hamcrest/Text/IsEmptyStringTest.php | 86 - .../Hamcrest/Text/IsEqualIgnoringCaseTest.php | 40 - .../Text/IsEqualIgnoringWhiteSpaceTest.php | 51 - .../Hamcrest/Text/MatchesPatternTest.php | 30 - .../Text/StringContainsIgnoringCaseTest.php | 80 - .../Text/StringContainsInOrderTest.php | 42 - .../Hamcrest/Text/StringContainsTest.php | 86 - .../Hamcrest/Text/StringEndsWithTest.php | 62 - .../Hamcrest/Text/StringStartsWithTest.php | 62 - .../tests/Hamcrest/Type/IsArrayTest.php | 35 - .../tests/Hamcrest/Type/IsBooleanTest.php | 35 - .../tests/Hamcrest/Type/IsCallableTest.php | 103 - .../tests/Hamcrest/Type/IsDoubleTest.php | 35 - .../tests/Hamcrest/Type/IsIntegerTest.php | 36 - .../tests/Hamcrest/Type/IsNumericTest.php | 49 - .../tests/Hamcrest/Type/IsObjectTest.php | 34 - .../tests/Hamcrest/Type/IsResourceTest.php | 34 - .../tests/Hamcrest/Type/IsScalarTest.php | 39 - .../tests/Hamcrest/Type/IsStringTest.php | 35 - .../hamcrest-php/tests/Hamcrest/UtilTest.php | 80 - .../tests/Hamcrest/Xml/HasXPathTest.php | 198 - .../hamcrest/hamcrest-php/tests/bootstrap.php | 18 - .../hamcrest-php/tests/phpunit.xml.dist | 22 - vendor/intervention/image/LICENSE | 9 - vendor/intervention/image/composer.json | 47 - vendor/intervention/image/provides.json | 11 - .../src/Intervention/Image/AbstractColor.php | 226 - .../Intervention/Image/AbstractDecoder.php | 358 - .../src/Intervention/Image/AbstractDriver.php | 134 - .../Intervention/Image/AbstractEncoder.php | 241 - .../src/Intervention/Image/AbstractFont.php | 267 - .../src/Intervention/Image/AbstractShape.php | 71 - .../Image/Commands/AbstractCommand.php | 79 - .../Intervention/Image/Commands/Argument.php | 225 - .../Image/Commands/ChecksumCommand.php | 29 - .../Image/Commands/CircleCommand.php | 35 - .../Image/Commands/EllipseCommand.php | 36 - .../Image/Commands/ExifCommand.php | 37 - .../Image/Commands/IptcCommand.php | 64 - .../Image/Commands/LineCommand.php | 36 - .../Image/Commands/OrientateCommand.php | 48 - .../Image/Commands/PolygonCommand.php | 48 - .../Image/Commands/PsrResponseCommand.php | 45 - .../Image/Commands/RectangleCommand.php | 36 - .../Image/Commands/ResponseCommand.php | 26 - .../Image/Commands/StreamCommand.php | 25 - .../Image/Commands/TextCommand.php | 34 - .../src/Intervention/Image/Constraint.php | 92 - .../Image/Exception/ImageException.php | 8 - .../Exception/InvalidArgumentException.php | 8 - .../Exception/MissingDependencyException.php | 8 - .../Image/Exception/NotFoundException.php | 8 - .../Image/Exception/NotReadableException.php | 8 - .../Image/Exception/NotSupportedException.php | 8 - .../Image/Exception/NotWritableException.php | 8 - .../Image/Exception/RuntimeException.php | 8 - .../src/Intervention/Image/Facades/Image.php | 13 - .../image/src/Intervention/Image/File.php | 92 - .../Intervention/Image/Filters/DemoFilter.php | 42 - .../Image/Filters/FilterInterface.php | 14 - .../image/src/Intervention/Image/Gd/Color.php | 226 - .../Image/Gd/Commands/BackupCommand.php | 23 - .../Image/Gd/Commands/BlurCommand.php | 23 - .../Image/Gd/Commands/BrightnessCommand.php | 19 - .../Image/Gd/Commands/ColorizeCommand.php | 27 - .../Image/Gd/Commands/ContrastCommand.php | 19 - .../Image/Gd/Commands/CropCommand.php | 40 - .../Image/Gd/Commands/DestroyCommand.php | 25 - .../Image/Gd/Commands/FillCommand.php | 68 - .../Image/Gd/Commands/FitCommand.php | 32 - .../Image/Gd/Commands/FlipCommand.php | 37 - .../Image/Gd/Commands/GammaCommand.php | 19 - .../Image/Gd/Commands/GetSizeCommand.php | 24 - .../Image/Gd/Commands/GreyscaleCommand.php | 17 - .../Image/Gd/Commands/HeightenCommand.php | 28 - .../Image/Gd/Commands/InsertCommand.php | 32 - .../Image/Gd/Commands/InterlaceCommand.php | 21 - .../Image/Gd/Commands/InvertCommand.php | 17 - .../Image/Gd/Commands/LimitColorsCommand.php | 51 - .../Image/Gd/Commands/MaskCommand.php | 81 - .../Image/Gd/Commands/OpacityCommand.php | 29 - .../Image/Gd/Commands/PickColorCommand.php | 36 - .../Image/Gd/Commands/PixelCommand.php | 24 - .../Image/Gd/Commands/PixelateCommand.php | 19 - .../Image/Gd/Commands/ResetCommand.php | 35 - .../Image/Gd/Commands/ResizeCanvasCommand.php | 81 - .../Image/Gd/Commands/ResizeCommand.php | 82 - .../Image/Gd/Commands/RotateCommand.php | 29 - .../Image/Gd/Commands/SharpenCommand.php | 32 - .../Image/Gd/Commands/TrimCommand.php | 176 - .../Image/Gd/Commands/WidenCommand.php | 28 - .../src/Intervention/Image/Gd/Decoder.php | 153 - .../src/Intervention/Image/Gd/Driver.php | 86 - .../src/Intervention/Image/Gd/Encoder.php | 122 - .../image/src/Intervention/Image/Gd/Font.php | 255 - .../Image/Gd/Shapes/CircleShape.php | 40 - .../Image/Gd/Shapes/EllipseShape.php | 64 - .../Image/Gd/Shapes/LineShape.php | 89 - .../Image/Gd/Shapes/PolygonShape.php | 48 - .../Image/Gd/Shapes/RectangleShape.php | 75 - .../image/src/Intervention/Image/Image.php | 363 - .../src/Intervention/Image/ImageManager.php | 140 - .../Intervention/Image/ImageManagerStatic.php | 87 - .../Image/ImageServiceProvider.php | 85 - .../Image/ImageServiceProviderLaravel4.php | 112 - .../Image/ImageServiceProviderLaravel5.php | 89 - .../Image/ImageServiceProviderLeague.php | 42 - .../Image/ImageServiceProviderLumen.php | 34 - .../src/Intervention/Image/Imagick/Color.php | 277 - .../Image/Imagick/Commands/BackupCommand.php | 23 - .../Image/Imagick/Commands/BlurCommand.php | 19 - .../Imagick/Commands/BrightnessCommand.php | 19 - .../Imagick/Commands/ColorizeCommand.php | 42 - .../Imagick/Commands/ContrastCommand.php | 19 - .../Image/Imagick/Commands/CropCommand.php | 43 - .../Image/Imagick/Commands/DestroyCommand.php | 25 - .../Image/Imagick/Commands/ExifCommand.php | 62 - .../Image/Imagick/Commands/FillCommand.php | 103 - .../Image/Imagick/Commands/FitCommand.php | 41 - .../Image/Imagick/Commands/FlipCommand.php | 25 - .../Image/Imagick/Commands/GammaCommand.php | 19 - .../Image/Imagick/Commands/GetSizeCommand.php | 27 - .../Imagick/Commands/GreyscaleCommand.php | 17 - .../Imagick/Commands/HeightenCommand.php | 28 - .../Image/Imagick/Commands/InsertCommand.php | 31 - .../Imagick/Commands/InterlaceCommand.php | 27 - .../Image/Imagick/Commands/InvertCommand.php | 17 - .../Imagick/Commands/LimitColorsCommand.php | 57 - .../Image/Imagick/Commands/MaskCommand.php | 58 - .../Image/Imagick/Commands/OpacityCommand.php | 21 - .../Imagick/Commands/PickColorCommand.php | 29 - .../Image/Imagick/Commands/PixelCommand.php | 30 - .../Imagick/Commands/PixelateCommand.php | 25 - .../Image/Imagick/Commands/ResetCommand.php | 37 - .../Imagick/Commands/ResizeCanvasCommand.php | 89 - .../Image/Imagick/Commands/ResizeCommand.php | 27 - .../Image/Imagick/Commands/RotateCommand.php | 29 - .../Image/Imagick/Commands/SharpenCommand.php | 19 - .../Image/Imagick/Commands/TrimCommand.php | 120 - .../Image/Imagick/Commands/WidenCommand.php | 28 - .../Intervention/Image/Imagick/Decoder.php | 121 - .../src/Intervention/Image/Imagick/Driver.php | 70 - .../Intervention/Image/Imagick/Encoder.php | 168 - .../src/Intervention/Image/Imagick/Font.php | 118 - .../Image/Imagick/Shapes/CircleShape.php | 40 - .../Image/Imagick/Shapes/EllipseShape.php | 65 - .../Image/Imagick/Shapes/LineShape.php | 93 - .../Image/Imagick/Shapes/PolygonShape.php | 80 - .../Image/Imagick/Shapes/RectangleShape.php | 83 - .../image/src/Intervention/Image/Point.php | 64 - .../image/src/Intervention/Image/Response.php | 69 - .../image/src/Intervention/Image/Size.php | 373 - .../intervention/image/src/config/config.php | 20 - .../php-console-color/.travis.yml | 15 - .../jakub-onderka/php-console-color/build.xml | 93 - .../php-console-color/composer.json | 24 - .../php-console-color/example.php | 38 - .../php-console-color/phpunit.xml | 15 - .../PhpConsoleColor/ConsoleColor.php | 280 - .../PhpConsoleColor/InvalidStyleException.php | 10 - .../PhpConsoleColor/ConsoleColorTest.php | 184 - .../php-console-color/tests/bootstrap.php | 2 - .../php-console-highlighter/.travis.yml | 21 - .../php-console-highlighter/LICENSE | 21 - .../php-console-highlighter/README.md | 40 - .../php-console-highlighter/build.xml | 93 - .../php-console-highlighter/composer.json | 26 - .../examples/snippet.php | 10 - .../examples/whole_file.php | 10 - .../examples/whole_file_line_numbers.php | 10 - .../php-console-highlighter/phpunit.xml | 15 - .../PhpConsoleHighlighter/Highlighter.php | 267 - .../PhpConsoleHighligter/HigligterTest.php | 263 - .../tests/bootstrap.php | 2 - vendor/laravel/framework/LICENSE.md | 21 - vendor/laravel/framework/README.md | 45 - vendor/laravel/framework/composer.json | 136 - .../Auth/Access/AuthorizationException.php | 10 - .../src/Illuminate/Auth/Access/Gate.php | 560 - .../Auth/Access/HandlesAuthorization.php | 30 - .../src/Illuminate/Auth/Access/Response.php | 44 - .../src/Illuminate/Auth/AuthManager.php | 294 - .../Illuminate/Auth/AuthServiceProvider.php | 90 - .../src/Illuminate/Auth/Authenticatable.php | 78 - .../Auth/AuthenticationException.php | 39 - .../Auth/Console/AuthMakeCommand.php | 119 - .../Auth/Console/ClearResetsCommand.php | 34 - .../make/controllers/HomeController.stub | 28 - .../Auth/Console/stubs/make/routes.stub | 4 - .../Console/stubs/make/views/auth/login.stub | 71 - .../make/views/auth/passwords/email.stub | 47 - .../make/views/auth/passwords/reset.stub | 65 - .../stubs/make/views/auth/register.stub | 77 - .../Auth/Console/stubs/make/views/home.stub | 23 - .../Console/stubs/make/views/layouts/app.stub | 79 - .../Illuminate/Auth/CreatesUserProviders.php | 94 - .../Illuminate/Auth/DatabaseUserProvider.php | 159 - .../Illuminate/Auth/EloquentUserProvider.php | 202 - .../src/Illuminate/Auth/Events/Attempting.php | 33 - .../Illuminate/Auth/Events/Authenticated.php | 28 - .../src/Illuminate/Auth/Events/Failed.php | 33 - .../src/Illuminate/Auth/Events/Lockout.php | 26 - .../src/Illuminate/Auth/Events/Login.php | 37 - .../src/Illuminate/Auth/Events/Logout.php | 28 - .../Illuminate/Auth/Events/PasswordReset.php | 28 - .../src/Illuminate/Auth/Events/Registered.php | 28 - .../src/Illuminate/Auth/GenericUser.php | 134 - .../src/Illuminate/Auth/GuardHelpers.php | 118 - .../Auth/Middleware/Authenticate.php | 68 - .../Middleware/AuthenticateWithBasicAuth.php | 40 - .../Illuminate/Auth/Middleware/Authorize.php | 100 - .../Auth/Notifications/ResetPassword.php | 76 - .../Auth/Passwords/CanResetPassword.php | 29 - .../Passwords/DatabaseTokenRepository.php | 204 - .../Auth/Passwords/PasswordBroker.php | 242 - .../Auth/Passwords/PasswordBrokerManager.php | 147 - .../PasswordResetServiceProvider.php | 51 - .../Passwords/TokenRepositoryInterface.php | 40 - .../src/Illuminate/Auth/Recaller.php | 88 - .../src/Illuminate/Auth/RequestGuard.php | 87 - .../src/Illuminate/Auth/SessionGuard.php | 774 - .../src/Illuminate/Auth/TokenGuard.php | 135 - .../src/Illuminate/Auth/composer.json | 42 - .../Broadcasting/BroadcastController.php | 21 - .../Broadcasting/BroadcastEvent.php | 111 - .../Broadcasting/BroadcastException.php | 10 - .../Broadcasting/BroadcastManager.php | 315 - .../Broadcasting/BroadcastServiceProvider.php | 51 - .../Broadcasting/Broadcasters/Broadcaster.php | 259 - .../Broadcasters/LogBroadcaster.php | 54 - .../Broadcasters/NullBroadcaster.php | 30 - .../Broadcasters/PusherBroadcaster.php | 130 - .../Broadcasters/RedisBroadcaster.php | 103 - .../src/Illuminate/Broadcasting/Channel.php | 34 - .../Broadcasting/InteractsWithSockets.php | 39 - .../Broadcasting/PendingBroadcast.php | 59 - .../Broadcasting/PresenceChannel.php | 17 - .../Broadcasting/PrivateChannel.php | 17 - .../src/Illuminate/Broadcasting/composer.json | 41 - .../src/Illuminate/Bus/BusServiceProvider.php | 54 - .../src/Illuminate/Bus/Dispatcher.php | 212 - .../src/Illuminate/Bus/Queueable.php | 150 - .../src/Illuminate/Bus/composer.json | 36 - .../src/Illuminate/Cache/ApcStore.php | 132 - .../src/Illuminate/Cache/ApcWrapper.php | 92 - .../src/Illuminate/Cache/ArrayStore.php | 115 - .../src/Illuminate/Cache/CacheManager.php | 306 - .../Illuminate/Cache/CacheServiceProvider.php | 47 - .../Cache/Console/CacheTableCommand.php | 81 - .../Illuminate/Cache/Console/ClearCommand.php | 141 - .../Cache/Console/ForgetCommand.php | 57 - .../Illuminate/Cache/Console/stubs/cache.stub | 32 - .../src/Illuminate/Cache/DatabaseStore.php | 256 - .../Illuminate/Cache/Events/CacheEvent.php | 46 - .../src/Illuminate/Cache/Events/CacheHit.php | 28 - .../Illuminate/Cache/Events/CacheMissed.php | 8 - .../Illuminate/Cache/Events/KeyForgotten.php | 8 - .../Illuminate/Cache/Events/KeyWritten.php | 37 - .../src/Illuminate/Cache/FileStore.php | 262 - .../framework/src/Illuminate/Cache/Lock.php | 93 - .../Illuminate/Cache/MemcachedConnector.php | 87 - .../src/Illuminate/Cache/MemcachedLock.php | 52 - .../src/Illuminate/Cache/MemcachedStore.php | 250 - .../src/Illuminate/Cache/NullStore.php | 108 - .../src/Illuminate/Cache/RateLimiter.php | 133 - .../src/Illuminate/Cache/RedisLock.php | 56 - .../src/Illuminate/Cache/RedisStore.php | 289 - .../src/Illuminate/Cache/RedisTaggedCache.php | 194 - .../src/Illuminate/Cache/Repository.php | 586 - .../Cache/RetrievesMultipleKeys.php | 39 - .../framework/src/Illuminate/Cache/TagSet.php | 110 - .../src/Illuminate/Cache/TaggableStore.php | 17 - .../src/Illuminate/Cache/TaggedCache.php | 95 - .../src/Illuminate/Cache/composer.json | 40 - .../src/Illuminate/Config/Repository.php | 179 - .../src/Illuminate/Config/composer.json | 35 - .../src/Illuminate/Console/Application.php | 296 - .../src/Illuminate/Console/Command.php | 597 - .../Illuminate/Console/ConfirmableTrait.php | 54 - .../Console/DetectsApplicationNamespace.php | 18 - .../Console/Events/ArtisanStarting.php | 24 - .../Console/Events/CommandFinished.php | 54 - .../Console/Events/CommandStarting.php | 45 - .../Illuminate/Console/GeneratorCommand.php | 237 - .../src/Illuminate/Console/OutputStyle.php | 71 - .../src/Illuminate/Console/Parser.php | 146 - .../Console/Scheduling/CacheEventMutex.php | 81 - .../Scheduling/CacheSchedulingMutex.php | 75 - .../Console/Scheduling/CallbackEvent.php | 164 - .../Console/Scheduling/CommandBuilder.php | 71 - .../Illuminate/Console/Scheduling/Event.php | 721 - .../Console/Scheduling/EventMutex.php | 30 - .../Console/Scheduling/ManagesFrequencies.php | 411 - .../Console/Scheduling/Schedule.php | 196 - .../Scheduling/ScheduleFinishCommand.php | 61 - .../Console/Scheduling/ScheduleRunCommand.php | 115 - .../Console/Scheduling/SchedulingMutex.php | 26 - .../src/Illuminate/Console/composer.json | 41 - .../src/Illuminate/Container/BoundMethod.php | 176 - .../src/Illuminate/Container/Container.php | 1260 - .../Container/ContextualBindingBuilder.php | 68 - .../Container/EntryNotFoundException.php | 11 - .../src/Illuminate/Container/composer.json | 35 - .../Contracts/Auth/Access/Authorizable.php | 15 - .../Illuminate/Contracts/Auth/Access/Gate.php | 120 - .../Contracts/Auth/Authenticatable.php | 49 - .../Contracts/Auth/CanResetPassword.php | 21 - .../src/Illuminate/Contracts/Auth/Factory.php | 22 - .../src/Illuminate/Contracts/Auth/Guard.php | 50 - .../Contracts/Auth/PasswordBroker.php | 76 - .../Contracts/Auth/PasswordBrokerFactory.php | 14 - .../Contracts/Auth/StatefulGuard.php | 63 - .../Contracts/Auth/SupportsBasicAuth.php | 24 - .../Contracts/Auth/UserProvider.php | 49 - .../Contracts/Broadcasting/Broadcaster.php | 33 - .../Contracts/Broadcasting/Factory.php | 14 - .../Broadcasting/ShouldBroadcast.php | 13 - .../Broadcasting/ShouldBroadcastNow.php | 8 - .../Illuminate/Contracts/Bus/Dispatcher.php | 55 - .../Contracts/Bus/QueueingDispatcher.php | 14 - .../Illuminate/Contracts/Cache/Factory.php | 14 - .../src/Illuminate/Contracts/Cache/Lock.php | 30 - .../Contracts/Cache/LockProvider.php | 15 - .../Contracts/Cache/LockTimeoutException.php | 10 - .../Illuminate/Contracts/Cache/Repository.php | 125 - .../src/Illuminate/Contracts/Cache/Store.php | 92 - .../Contracts/Config/Repository.php | 57 - .../Contracts/Console/Application.php | 23 - .../Illuminate/Contracts/Console/Kernel.php | 48 - .../Container/BindingResolutionException.php | 11 - .../Contracts/Container/Container.php | 153 - .../Container/ContextualBindingBuilder.php | 22 - .../Illuminate/Contracts/Cookie/Factory.php | 47 - .../Contracts/Cookie/QueueingFactory.php | 28 - .../Contracts/Database/ModelIdentifier.php | 53 - .../Contracts/Debug/ExceptionHandler.php | 34 - .../Contracts/Encryption/DecryptException.php | 10 - .../Contracts/Encryption/EncryptException.php | 10 - .../Contracts/Encryption/Encrypter.php | 24 - .../Contracts/Events/Dispatcher.php | 82 - .../Illuminate/Contracts/Filesystem/Cloud.php | 14 - .../Contracts/Filesystem/Factory.php | 14 - .../Filesystem/FileNotFoundException.php | 10 - .../Contracts/Filesystem/Filesystem.php | 175 - .../Contracts/Foundation/Application.php | 113 - .../Illuminate/Contracts/Hashing/Hasher.php | 42 - .../src/Illuminate/Contracts/Http/Kernel.php | 37 - .../Illuminate/Contracts/Mail/MailQueue.php | 25 - .../Illuminate/Contracts/Mail/Mailable.php | 33 - .../src/Illuminate/Contracts/Mail/Mailer.php | 50 - .../Contracts/Notifications/Dispatcher.php | 24 - .../Contracts/Notifications/Factory.php | 32 - .../Pagination/LengthAwarePaginator.php | 29 - .../Contracts/Pagination/Paginator.php | 117 - .../src/Illuminate/Contracts/Pipeline/Hub.php | 15 - .../Contracts/Pipeline/Pipeline.php | 40 - .../Queue/EntityNotFoundException.php | 22 - .../Contracts/Queue/EntityResolver.php | 15 - .../Illuminate/Contracts/Queue/Factory.php | 14 - .../src/Illuminate/Contracts/Queue/Job.php | 129 - .../Illuminate/Contracts/Queue/Monitor.php | 30 - .../src/Illuminate/Contracts/Queue/Queue.php | 99 - .../Contracts/Queue/QueueableCollection.php | 34 - .../Contracts/Queue/QueueableEntity.php | 27 - .../Contracts/Queue/ShouldQueue.php | 8 - .../Illuminate/Contracts/Redis/Connection.php | 35 - .../Illuminate/Contracts/Redis/Factory.php | 14 - .../Redis/LimiterTimeoutException.php | 10 - .../Contracts/Routing/BindingRegistrar.php | 23 - .../Contracts/Routing/Registrar.php | 105 - .../Contracts/Routing/ResponseFactory.php | 137 - .../Contracts/Routing/UrlGenerator.php | 71 - .../Contracts/Routing/UrlRoutable.php | 28 - .../Illuminate/Contracts/Session/Session.php | 165 - .../Contracts/Support/Arrayable.php | 13 - .../Illuminate/Contracts/Support/Htmlable.php | 13 - .../Illuminate/Contracts/Support/Jsonable.php | 14 - .../Contracts/Support/MessageBag.php | 107 - .../Contracts/Support/MessageProvider.php | 13 - .../Contracts/Support/Renderable.php | 13 - .../Contracts/Support/Responsable.php | 14 - .../Contracts/Translation/Loader.php | 40 - .../Contracts/Translation/Translator.php | 42 - .../Contracts/Validation/Factory.php | 46 - .../Contracts/Validation/ImplicitRule.php | 8 - .../Illuminate/Contracts/Validation/Rule.php | 22 - .../Validation/ValidatesWhenResolved.php | 13 - .../Contracts/Validation/Validator.php | 47 - .../src/Illuminate/Contracts/View/Engine.php | 15 - .../src/Illuminate/Contracts/View/Factory.php | 79 - .../src/Illuminate/Contracts/View/View.php | 24 - .../src/Illuminate/Contracts/composer.json | 35 - .../src/Illuminate/Cookie/CookieJar.php | 193 - .../Cookie/CookieServiceProvider.php | 24 - .../Middleware/AddQueuedCookiesToResponse.php | 45 - .../Cookie/Middleware/EncryptCookies.php | 164 - .../src/Illuminate/Cookie/composer.json | 37 - .../Illuminate/Database/Capsule/Manager.php | 201 - .../Database/Concerns/BuildsQueries.php | 161 - .../Database/Concerns/ManagesTransactions.php | 219 - .../src/Illuminate/Database/Connection.php | 1248 - .../Database/ConnectionInterface.php | 150 - .../Database/ConnectionResolver.php | 92 - .../Database/ConnectionResolverInterface.php | 29 - .../Database/Connectors/ConnectionFactory.php | 285 - .../Database/Connectors/Connector.php | 137 - .../Connectors/ConnectorInterface.php | 14 - .../Database/Connectors/MySqlConnector.php | 185 - .../Database/Connectors/PostgresConnector.php | 174 - .../Database/Connectors/SQLiteConnector.php | 39 - .../Connectors/SqlServerConnector.php | 183 - .../Console/Factories/FactoryMakeCommand.php | 84 - .../Console/Factories/stubs/factory.stub | 9 - .../Console/Migrations/BaseCommand.php | 51 - .../Console/Migrations/FreshCommand.php | 136 - .../Console/Migrations/InstallCommand.php | 70 - .../Console/Migrations/MigrateCommand.php | 103 - .../Console/Migrations/MigrateMakeCommand.php | 140 - .../Console/Migrations/RefreshCommand.php | 159 - .../Console/Migrations/ResetCommand.php | 98 - .../Console/Migrations/RollbackCommand.php | 96 - .../Console/Migrations/StatusCommand.php | 113 - .../Console/Migrations/TableGuesser.php | 23 - .../Database/Console/Seeds/SeedCommand.php | 106 - .../Console/Seeds/SeederMakeCommand.php | 96 - .../Database/Console/Seeds/stubs/seeder.stub | 16 - .../Illuminate/Database/DatabaseManager.php | 329 - .../Database/DatabaseServiceProvider.php | 99 - .../Illuminate/Database/DetectsDeadlocks.php | 32 - .../Database/DetectsLostConnections.php | 39 - .../Illuminate/Database/Eloquent/Builder.php | 1330 - .../Database/Eloquent/Collection.php | 552 - .../Eloquent/Concerns/GuardsAttributes.php | 193 - .../Eloquent/Concerns/HasAttributes.php | 1174 - .../Database/Eloquent/Concerns/HasEvents.php | 354 - .../Eloquent/Concerns/HasGlobalScopes.php | 71 - .../Eloquent/Concerns/HasRelationships.php | 757 - .../Eloquent/Concerns/HasTimestamps.php | 126 - .../Eloquent/Concerns/HidesAttributes.php | 126 - .../Concerns/QueriesRelationships.php | 314 - .../Illuminate/Database/Eloquent/Factory.php | 326 - .../Database/Eloquent/FactoryBuilder.php | 435 - .../Eloquent/JsonEncodingException.php | 35 - .../Eloquent/MassAssignmentException.php | 10 - .../Illuminate/Database/Eloquent/Model.php | 1604 - .../Eloquent/ModelNotFoundException.php | 66 - .../Database/Eloquent/QueueEntityResolver.php | 29 - .../Eloquent/RelationNotFoundException.php | 41 - .../Database/Eloquent/Relations/BelongsTo.php | 362 - .../Eloquent/Relations/BelongsToMany.php | 1040 - .../Concerns/InteractsWithPivotTable.php | 538 - .../Concerns/SupportsDefaultModels.php | 63 - .../Database/Eloquent/Relations/HasMany.php | 47 - .../Eloquent/Relations/HasManyThrough.php | 556 - .../Database/Eloquent/Relations/HasOne.php | 64 - .../Eloquent/Relations/HasOneOrMany.php | 423 - .../Database/Eloquent/Relations/MorphMany.php | 47 - .../Database/Eloquent/Relations/MorphOne.php | 64 - .../Eloquent/Relations/MorphOneOrMany.php | 140 - .../Eloquent/Relations/MorphPivot.php | 150 - .../Database/Eloquent/Relations/MorphTo.php | 283 - .../Eloquent/Relations/MorphToMany.php | 184 - .../Database/Eloquent/Relations/Pivot.php | 302 - .../Database/Eloquent/Relations/Relation.php | 387 - .../Illuminate/Database/Eloquent/Scope.php | 15 - .../Database/Eloquent/SoftDeletes.php | 173 - .../Database/Eloquent/SoftDeletingScope.php | 131 - .../Database/Events/ConnectionEvent.php | 32 - .../Database/Events/QueryExecuted.php | 59 - .../Database/Events/StatementPrepared.php | 33 - .../Database/Events/TransactionBeginning.php | 8 - .../Database/Events/TransactionCommitted.php | 8 - .../Database/Events/TransactionRolledBack.php | 8 - .../src/Illuminate/Database/Grammar.php | 223 - .../Database/MigrationServiceProvider.php | 87 - .../DatabaseMigrationRepository.php | 212 - .../Database/Migrations/Migration.php | 30 - .../Database/Migrations/MigrationCreator.php | 203 - .../MigrationRepositoryInterface.php | 81 - .../Database/Migrations/Migrator.php | 588 - .../Database/Migrations/stubs/blank.stub | 28 - .../Database/Migrations/stubs/create.stub | 31 - .../Database/Migrations/stubs/update.stub | 32 - .../Illuminate/Database/MySqlConnection.php | 84 - .../Database/PostgresConnection.php | 66 - .../src/Illuminate/Database/Query/Builder.php | 2820 -- .../Illuminate/Database/Query/Expression.php | 44 - .../Database/Query/Grammars/Grammar.php | 977 - .../Database/Query/Grammars/MySqlGrammar.php | 316 - .../Query/Grammars/PostgresGrammar.php | 336 - .../Database/Query/Grammars/SQLiteGrammar.php | 276 - .../Query/Grammars/SqlServerGrammar.php | 497 - .../Illuminate/Database/Query/JoinClause.php | 110 - .../Database/Query/JsonExpression.php | 45 - .../Query/Processors/MySqlProcessor.php | 19 - .../Query/Processors/PostgresProcessor.php | 41 - .../Database/Query/Processors/Processor.php | 49 - .../Query/Processors/SQLiteProcessor.php | 19 - .../Query/Processors/SqlServerProcessor.php | 69 - .../Illuminate/Database/QueryException.php | 78 - .../src/Illuminate/Database/README.md | 69 - .../Illuminate/Database/SQLiteConnection.php | 66 - .../Illuminate/Database/Schema/Blueprint.php | 1351 - .../Illuminate/Database/Schema/Builder.php | 316 - .../Database/Schema/Grammars/ChangeColumn.php | 205 - .../Database/Schema/Grammars/Grammar.php | 272 - .../Database/Schema/Grammars/MySqlGrammar.php | 1018 - .../Schema/Grammars/PostgresGrammar.php | 862 - .../Database/Schema/Grammars/RenameColumn.php | 69 - .../Schema/Grammars/SQLiteGrammar.php | 847 - .../Schema/Grammars/SqlServerGrammar.php | 804 - .../Database/Schema/MySqlBuilder.php | 114 - .../Database/Schema/PostgresBuilder.php | 141 - .../Database/Schema/SQLiteBuilder.php | 48 - .../Database/Schema/SqlServerBuilder.php | 20 - .../src/Illuminate/Database/Seeder.php | 125 - .../Database/SqlServerConnection.php | 113 - .../src/Illuminate/Database/composer.json | 45 - .../src/Illuminate/Encryption/Encrypter.php | 251 - .../Encryption/EncryptionServiceProvider.php | 48 - .../src/Illuminate/Encryption/composer.json | 37 - .../Illuminate/Events/CallQueuedListener.php | 160 - .../src/Illuminate/Events/Dispatcher.php | 573 - .../Events/EventServiceProvider.php | 23 - .../src/Illuminate/Events/composer.json | 36 - .../src/Illuminate/Filesystem/Cache.php | 77 - .../src/Illuminate/Filesystem/Filesystem.php | 566 - .../Filesystem/FilesystemAdapter.php | 686 - .../Filesystem/FilesystemManager.php | 401 - .../Filesystem/FilesystemServiceProvider.php | 82 - .../src/Illuminate/Filesystem/composer.json | 43 - .../src/Illuminate/Foundation/AliasLoader.php | 243 - .../src/Illuminate/Foundation/Application.php | 1166 - .../Foundation/Auth/Access/Authorizable.php | 44 - .../Auth/Access/AuthorizesRequests.php | 126 - .../Foundation/Auth/AuthenticatesUsers.php | 182 - .../Foundation/Auth/RedirectsUsers.php | 20 - .../Foundation/Auth/RegistersUsers.php | 62 - .../Foundation/Auth/ResetsPasswords.php | 161 - .../Auth/SendsPasswordResetEmails.php | 87 - .../Foundation/Auth/ThrottlesLogins.php | 120 - .../src/Illuminate/Foundation/Auth/User.php | 19 - .../Foundation/Bootstrap/BootProviders.php | 19 - .../Foundation/Bootstrap/HandleExceptions.php | 161 - .../Bootstrap/LoadConfiguration.php | 115 - .../Bootstrap/LoadEnvironmentVariables.php | 78 - .../Foundation/Bootstrap/RegisterFacades.php | 29 - .../Bootstrap/RegisterProviders.php | 19 - .../Bootstrap/SetRequestForConsole.php | 35 - .../Foundation/Bus/Dispatchable.php | 39 - .../Foundation/Bus/DispatchesJobs.php | 30 - .../Foundation/Bus/PendingChain.php | 45 - .../Foundation/Bus/PendingDispatch.php | 114 - .../Illuminate/Foundation/ComposerScripts.php | 65 - .../Foundation/Console/AppNameCommand.php | 296 - .../Foundation/Console/ChannelMakeCommand.php | 65 - .../Console/ClearCompiledCommand.php | 40 - .../Foundation/Console/ClosureCommand.php | 71 - .../Foundation/Console/ConfigCacheCommand.php | 87 - .../Foundation/Console/ConfigClearCommand.php | 55 - .../Foundation/Console/ConsoleMakeCommand.php | 90 - .../Foundation/Console/DownCommand.php | 69 - .../Foundation/Console/EnvironmentCommand.php | 32 - .../Console/EventGenerateCommand.php | 78 - .../Foundation/Console/EventMakeCommand.php | 61 - .../Console/ExceptionMakeCommand.php | 84 - .../Foundation/Console/JobMakeCommand.php | 65 - .../Illuminate/Foundation/Console/Kernel.php | 367 - .../Foundation/Console/KeyGenerateCommand.php | 111 - .../Console/ListenerMakeCommand.php | 112 - .../Foundation/Console/MailMakeCommand.php | 116 - .../Foundation/Console/ModelMakeCommand.php | 158 - .../Console/NotificationMakeCommand.php | 116 - .../Console/ObserverMakeCommand.php | 113 - .../Console/PackageDiscoverCommand.php | 40 - .../Foundation/Console/PolicyMakeCommand.php | 142 - .../Foundation/Console/PresetCommand.php | 92 - .../Foundation/Console/Presets/Bootstrap.php | 44 - .../Foundation/Console/Presets/None.php | 59 - .../Foundation/Console/Presets/Preset.php | 64 - .../Foundation/Console/Presets/React.php | 76 - .../Foundation/Console/Presets/Vue.php | 76 - .../Presets/bootstrap-stubs/_variables.scss | 8 - .../Console/Presets/bootstrap-stubs/app.scss | 14 - .../Console/Presets/none-stubs/app.js | 8 - .../Console/Presets/react-stubs/Example.js | 26 - .../Console/Presets/react-stubs/app.js | 16 - .../Presets/react-stubs/webpack.mix.js | 15 - .../Presets/vue-stubs/ExampleComponent.vue | 23 - .../Console/Presets/vue-stubs/app.js | 22 - .../Console/Presets/vue-stubs/webpack.mix.js | 15 - .../Console/ProviderMakeCommand.php | 50 - .../Foundation/Console/QueuedCommand.php | 42 - .../Foundation/Console/RequestMakeCommand.php | 50 - .../Console/ResourceMakeCommand.php | 91 - .../Foundation/Console/RouteCacheCommand.php | 109 - .../Foundation/Console/RouteClearCommand.php | 55 - .../Foundation/Console/RouteListCommand.php | 192 - .../Foundation/Console/RuleMakeCommand.php | 50 - .../Foundation/Console/ServeCommand.php | 92 - .../Foundation/Console/StorageLinkCommand.php | 40 - .../Foundation/Console/TestMakeCommand.php | 82 - .../Foundation/Console/UpCommand.php | 34 - .../Console/VendorPublishCommand.php | 275 - .../Foundation/Console/ViewCacheCommand.php | 85 - .../Foundation/Console/ViewClearCommand.php | 66 - .../Foundation/Console/stubs/channel.stub | 29 - .../Foundation/Console/stubs/console.stub | 42 - .../Console/stubs/event-handler-queued.stub | 33 - .../Console/stubs/event-handler.stub | 31 - .../Foundation/Console/stubs/event.stub | 36 - .../stubs/exception-render-report.stub | 29 - .../Console/stubs/exception-render.stub | 19 - .../Console/stubs/exception-report.stub | 18 - .../Foundation/Console/stubs/exception.stub | 10 - .../Foundation/Console/stubs/job-queued.stub | 34 - .../Foundation/Console/stubs/job.stub | 31 - .../Console/stubs/listener-duck.stub | 30 - .../Console/stubs/listener-queued-duck.stub | 32 - .../Console/stubs/listener-queued.stub | 33 - .../Foundation/Console/stubs/listener.stub | 31 - .../Foundation/Console/stubs/mail.stub | 33 - .../Console/stubs/markdown-mail.stub | 33 - .../Console/stubs/markdown-notification.stub | 58 - .../Foundation/Console/stubs/markdown.stub | 12 - .../Foundation/Console/stubs/model.stub | 10 - .../Console/stubs/notification.stub | 61 - .../Console/stubs/observer.plain.stub | 8 - .../Foundation/Console/stubs/observer.stub | 41 - .../Foundation/Console/stubs/pivot.model.stub | 10 - .../Console/stubs/policy.plain.stub | 21 - .../Foundation/Console/stubs/policy.stub | 83 - .../Foundation/Console/stubs/provider.stub | 28 - .../Foundation/Console/stubs/request.stub | 30 - .../Console/stubs/resource-collection.stub | 19 - .../Foundation/Console/stubs/resource.stub | 19 - .../Foundation/Console/stubs/routes.stub | 16 - .../Foundation/Console/stubs/rule.stub | 40 - .../Foundation/Console/stubs/test.stub | 20 - .../Foundation/Console/stubs/unit-test.stub | 20 - .../Foundation/EnvironmentDetector.php | 69 - .../Foundation/Events/Dispatchable.php | 26 - .../Foundation/Events/LocaleUpdated.php | 24 - .../Foundation/Exceptions/Handler.php | 481 - .../Foundation/Exceptions/WhoopsHandler.php | 86 - .../Foundation/Exceptions/views/404.blade.php | 5 - .../Foundation/Exceptions/views/419.blade.php | 9 - .../Foundation/Exceptions/views/429.blade.php | 5 - .../Foundation/Exceptions/views/500.blade.php | 5 - .../Foundation/Exceptions/views/503.blade.php | 5 - .../Exceptions/views/layout.blade.php | 57 - .../Foundation/Http/Events/RequestHandled.php | 33 - .../Exceptions/MaintenanceModeException.php | 54 - .../Foundation/Http/FormRequest.php | 227 - .../src/Illuminate/Foundation/Http/Kernel.php | 338 - .../Middleware/CheckForMaintenanceMode.php | 85 - .../Middleware/ConvertEmptyStringsToNull.php | 18 - .../Http/Middleware/TransformsRequest.php | 102 - .../Http/Middleware/TrimStrings.php | 31 - .../Http/Middleware/ValidatePostSize.php | 55 - .../Http/Middleware/VerifyCsrfToken.php | 167 - .../src/Illuminate/Foundation/Inspiring.php | 36 - .../Illuminate/Foundation/PackageManifest.php | 172 - .../Foundation/ProviderRepository.php | 210 - .../Providers/ArtisanServiceProvider.php | 995 - .../Providers/ComposerServiceProvider.php | 38 - .../ConsoleSupportServiceProvider.php | 27 - .../Providers/FormRequestServiceProvider.php | 39 - .../Providers/FoundationServiceProvider.php | 56 - .../Support/Providers/AuthServiceProvider.php | 46 - .../Providers/EventServiceProvider.php | 59 - .../Providers/RouteServiceProvider.php | 101 - .../Concerns/InteractsWithAuthentication.php | 149 - .../Testing/Concerns/InteractsWithConsole.php | 20 - .../Concerns/InteractsWithContainer.php | 32 - .../Concerns/InteractsWithDatabase.php | 91 - .../InteractsWithExceptionHandling.php | 136 - .../Testing/Concerns/InteractsWithRedis.php | 110 - .../Testing/Concerns/InteractsWithSession.php | 64 - .../Testing/Concerns/MakesHttpRequests.php | 460 - .../Concerns/MocksApplicationServices.php | 283 - .../Testing/Constraints/HasInDatabase.php | 103 - .../Testing/Constraints/SeeInOrder.php | 88 - .../Constraints/SoftDeletedInDatabase.php | 103 - .../Foundation/Testing/DatabaseMigrations.php | 26 - .../Testing/DatabaseTransactions.php | 40 - .../Foundation/Testing/HttpException.php | 10 - .../Foundation/Testing/RefreshDatabase.php | 117 - .../Testing/RefreshDatabaseState.php | 13 - .../Foundation/Testing/TestCase.php | 200 - .../Foundation/Testing/TestResponse.php | 975 - .../Foundation/Testing/WithFaker.php | 47 - .../Foundation/Testing/WithoutEvents.php | 22 - .../Foundation/Testing/WithoutMiddleware.php | 22 - .../Validation/ValidatesRequests.php | 97 - .../src/Illuminate/Foundation/helpers.php | 1001 - .../Illuminate/Foundation/stubs/facade.stub | 21 - .../src/Illuminate/Hashing/AbstractHasher.php | 34 - .../src/Illuminate/Hashing/ArgonHasher.php | 155 - .../src/Illuminate/Hashing/BcryptHasher.php | 87 - .../src/Illuminate/Hashing/HashManager.php | 87 - .../Hashing/HashServiceProvider.php | 41 - .../src/Illuminate/Hashing/composer.json | 35 - .../Concerns/InteractsWithContentTypes.php | 171 - .../Http/Concerns/InteractsWithFlashData.php | 64 - .../Http/Concerns/InteractsWithInput.php | 396 - .../Http/Exceptions/HttpResponseException.php | 37 - .../Http/Exceptions/PostTooLargeException.php | 23 - .../Exceptions/ThrottleRequestsException.php | 23 - .../framework/src/Illuminate/Http/File.php | 10 - .../src/Illuminate/Http/FileHelpers.php | 62 - .../src/Illuminate/Http/JsonResponse.php | 121 - .../CheckResponseForModifications.php | 27 - .../Illuminate/Http/Middleware/FrameGuard.php | 24 - .../Http/Middleware/SetCacheHeaders.php | 54 - .../src/Illuminate/Http/RedirectResponse.php | 238 - .../framework/src/Illuminate/Http/Request.php | 682 - .../Http/Resources/CollectsResources.php | 59 - .../ConditionallyLoadsAttributes.php | 205 - .../Http/Resources/DelegatesToResource.php | 130 - .../Json/AnonymousResourceCollection.php | 27 - .../Http/Resources/Json/JsonResource.php | 206 - .../Json/PaginatedResourceResponse.php | 82 - .../Http/Resources/Json/Resource.php | 8 - .../Resources/Json/ResourceCollection.php | 63 - .../Http/Resources/Json/ResourceResponse.php | 120 - .../Illuminate/Http/Resources/MergeValue.php | 26 - .../Http/Resources/MissingValue.php | 16 - .../Http/Resources/PotentiallyMissing.php | 13 - .../src/Illuminate/Http/Response.php | 81 - .../src/Illuminate/Http/ResponseTrait.php | 141 - .../src/Illuminate/Http/Testing/File.php | 115 - .../Illuminate/Http/Testing/FileFactory.php | 65 - .../src/Illuminate/Http/Testing/MimeType.php | 827 - .../src/Illuminate/Http/UploadedFile.php | 122 - .../src/Illuminate/Http/composer.json | 37 - .../Illuminate/Log/Events/MessageLogged.php | 42 - .../src/Illuminate/Log/LogManager.php | 611 - .../src/Illuminate/Log/LogServiceProvider.php | 20 - .../framework/src/Illuminate/Log/Logger.php | 275 - .../src/Illuminate/Log/composer.json | 36 - .../Illuminate/Mail/Events/MessageSending.php | 33 - .../Illuminate/Mail/Events/MessageSent.php | 33 - .../Illuminate/Mail/MailServiceProvider.php | 152 - .../src/Illuminate/Mail/Mailable.php | 786 - .../framework/src/Illuminate/Mail/Mailer.php | 569 - .../src/Illuminate/Mail/Markdown.php | 160 - .../framework/src/Illuminate/Mail/Message.php | 328 - .../src/Illuminate/Mail/PendingMail.php | 175 - .../Illuminate/Mail/SendQueuedMailable.php | 87 - .../Mail/Transport/ArrayTransport.php | 58 - .../Mail/Transport/LogTransport.php | 59 - .../Mail/Transport/MailgunTransport.php | 168 - .../Mail/Transport/MandrillTransport.php | 105 - .../Mail/Transport/SesTransport.php | 48 - .../Mail/Transport/SparkPostTransport.php | 169 - .../Illuminate/Mail/Transport/Transport.php | 108 - .../src/Illuminate/Mail/TransportManager.php | 206 - .../src/Illuminate/Mail/composer.json | 44 - .../resources/views/html/button.blade.php | 19 - .../resources/views/html/footer.blade.php | 11 - .../resources/views/html/header.blade.php | 7 - .../resources/views/html/layout.blade.php | 54 - .../resources/views/html/message.blade.php | 27 - .../Mail/resources/views/html/panel.blade.php | 13 - .../resources/views/html/promotion.blade.php | 7 - .../views/html/promotion/button.blade.php | 13 - .../resources/views/html/subcopy.blade.php | 7 - .../Mail/resources/views/html/table.blade.php | 3 - .../resources/views/html/themes/default.css | 287 - .../resources/views/markdown/button.blade.php | 1 - .../resources/views/markdown/footer.blade.php | 1 - .../resources/views/markdown/header.blade.php | 1 - .../resources/views/markdown/layout.blade.php | 9 - .../views/markdown/message.blade.php | 27 - .../resources/views/markdown/panel.blade.php | 1 - .../views/markdown/promotion.blade.php | 1 - .../views/markdown/promotion/button.blade.php | 1 - .../views/markdown/subcopy.blade.php | 1 - .../resources/views/markdown/table.blade.php | 1 - .../src/Illuminate/Notifications/Action.php | 33 - .../Notifications/AnonymousNotifiable.php | 72 - .../Notifications/ChannelManager.php | 171 - .../Channels/BroadcastChannel.php | 75 - .../Channels/DatabaseChannel.php | 63 - .../Notifications/Channels/MailChannel.php | 211 - .../Channels/NexmoSmsChannel.php | 64 - .../Channels/SlackWebhookChannel.php | 121 - .../Console/NotificationTableCommand.php | 81 - .../Console/stubs/notifications.stub | 35 - .../Notifications/DatabaseNotification.php | 102 - .../DatabaseNotificationCollection.php | 32 - .../Events/BroadcastNotificationCreated.php | 106 - .../Events/NotificationFailed.php | 56 - .../Events/NotificationSending.php | 47 - .../Notifications/Events/NotificationSent.php | 56 - .../HasDatabaseNotifications.php | 36 - .../Messages/BroadcastMessage.php | 41 - .../Messages/DatabaseMessage.php | 24 - .../Notifications/Messages/MailMessage.php | 233 - .../Notifications/Messages/NexmoMessage.php | 76 - .../Notifications/Messages/SimpleMessage.php | 224 - .../Messages/SlackAttachment.php | 321 - .../Messages/SlackAttachmentField.php | 79 - .../Notifications/Messages/SlackMessage.php | 273 - .../Illuminate/Notifications/Notifiable.php | 8 - .../Illuminate/Notifications/Notification.php | 27 - .../Notifications/NotificationSender.php | 181 - .../NotificationServiceProvider.php | 46 - .../Notifications/RoutesNotifications.php | 55 - .../Notifications/SendQueuedNotifications.php | 93 - .../Illuminate/Notifications/composer.json | 46 - .../resources/views/email.blade.php | 64 - .../Pagination/AbstractPaginator.php | 614 - .../Pagination/LengthAwarePaginator.php | 199 - .../Pagination/PaginationServiceProvider.php | 50 - .../src/Illuminate/Pagination/Paginator.php | 177 - .../src/Illuminate/Pagination/UrlWindow.php | 218 - .../src/Illuminate/Pagination/composer.json | 35 - .../resources/views/bootstrap-4.blade.php | 44 - .../resources/views/default.blade.php | 44 - .../resources/views/semantic-ui.blade.php | 36 - .../views/simple-bootstrap-4.blade.php | 25 - .../resources/views/simple-default.blade.php | 17 - .../framework/src/Illuminate/Pipeline/Hub.php | 74 - .../src/Illuminate/Pipeline/Pipeline.php | 192 - .../Pipeline/PipelineServiceProvider.php | 40 - .../src/Illuminate/Pipeline/composer.json | 35 - .../src/Illuminate/Queue/BeanstalkdQueue.php | 163 - .../Illuminate/Queue/CallQueuedHandler.php | 152 - .../src/Illuminate/Queue/Capsule/Manager.php | 187 - .../Queue/Connectors/BeanstalkdConnector.php | 40 - .../Queue/Connectors/ConnectorInterface.php | 14 - .../Queue/Connectors/DatabaseConnector.php | 43 - .../Queue/Connectors/NullConnector.php | 19 - .../Queue/Connectors/RedisConnector.php | 52 - .../Queue/Connectors/SqsConnector.php | 46 - .../Queue/Connectors/SyncConnector.php | 19 - .../Queue/Console/FailedTableCommand.php | 102 - .../Queue/Console/FlushFailedCommand.php | 34 - .../Queue/Console/ForgetFailedCommand.php | 36 - .../Queue/Console/ListFailedCommand.php | 118 - .../Queue/Console/ListenCommand.php | 114 - .../Queue/Console/RestartCommand.php | 37 - .../Illuminate/Queue/Console/RetryCommand.php | 93 - .../Illuminate/Queue/Console/TableCommand.php | 102 - .../Illuminate/Queue/Console/WorkCommand.php | 214 - .../Queue/Console/stubs/failed_jobs.stub | 35 - .../Illuminate/Queue/Console/stubs/jobs.stub | 36 - .../src/Illuminate/Queue/DatabaseQueue.php | 321 - .../Queue/Events/JobExceptionOccurred.php | 42 - .../src/Illuminate/Queue/Events/JobFailed.php | 42 - .../Illuminate/Queue/Events/JobProcessed.php | 33 - .../Illuminate/Queue/Events/JobProcessing.php | 33 - .../src/Illuminate/Queue/Events/Looping.php | 33 - .../Queue/Events/WorkerStopping.php | 8 - .../Failed/DatabaseFailedJobProvider.php | 117 - .../Failed/FailedJobProviderInterface.php | 47 - .../Queue/Failed/NullFailedJobProvider.php | 62 - .../src/Illuminate/Queue/FailingJob.php | 50 - .../Illuminate/Queue/InteractsWithQueue.php | 76 - .../Queue/InvalidPayloadException.php | 19 - .../Illuminate/Queue/Jobs/BeanstalkdJob.php | 135 - .../src/Illuminate/Queue/Jobs/DatabaseJob.php | 100 - .../Queue/Jobs/DatabaseJobRecord.php | 63 - .../src/Illuminate/Queue/Jobs/Job.php | 278 - .../src/Illuminate/Queue/Jobs/JobName.php | 35 - .../src/Illuminate/Queue/Jobs/RedisJob.php | 139 - .../src/Illuminate/Queue/Jobs/SqsJob.php | 124 - .../src/Illuminate/Queue/Jobs/SyncJob.php | 91 - .../src/Illuminate/Queue/Listener.php | 248 - .../src/Illuminate/Queue/ListenerOptions.php | 32 - .../src/Illuminate/Queue/LuaScripts.php | 103 - .../Queue/ManuallyFailedException.php | 10 - .../Queue/MaxAttemptsExceededException.php | 10 - .../src/Illuminate/Queue/NullQueue.php | 70 - .../framework/src/Illuminate/Queue/Queue.php | 205 - .../src/Illuminate/Queue/QueueManager.php | 270 - .../Illuminate/Queue/QueueServiceProvider.php | 230 - .../framework/src/Illuminate/Queue/README.md | 34 - .../src/Illuminate/Queue/RedisQueue.php | 319 - .../SerializesAndRestoresModelIdentifiers.php | 99 - .../src/Illuminate/Queue/SerializesModels.php | 62 - .../src/Illuminate/Queue/SqsQueue.php | 155 - .../src/Illuminate/Queue/SyncQueue.php | 161 - .../framework/src/Illuminate/Queue/Worker.php | 623 - .../src/Illuminate/Queue/WorkerOptions.php | 69 - .../src/Illuminate/Queue/composer.json | 48 - .../Redis/Connections/Connection.php | 110 - .../Connections/PhpRedisClusterConnection.php | 8 - .../Redis/Connections/PhpRedisConnection.php | 412 - .../Connections/PredisClusterConnection.php | 8 - .../Redis/Connections/PredisConnection.php | 46 - .../Redis/Connectors/PhpRedisConnector.php | 129 - .../Redis/Connectors/PredisConnector.php | 44 - .../Redis/Limiters/ConcurrencyLimiter.php | 130 - .../Limiters/ConcurrencyLimiterBuilder.php | 122 - .../Redis/Limiters/DurationLimiter.php | 147 - .../Redis/Limiters/DurationLimiterBuilder.php | 122 - .../src/Illuminate/Redis/RedisManager.php | 140 - .../Illuminate/Redis/RedisServiceProvider.php | 44 - .../src/Illuminate/Redis/composer.json | 36 - .../Routing/Console/ControllerMakeCommand.php | 184 - .../Routing/Console/MiddlewareMakeCommand.php | 50 - .../Routing/Console/stubs/controller.api.stub | 64 - .../Console/stubs/controller.model.api.stub | 65 - .../Console/stubs/controller.model.stub | 86 - .../Console/stubs/controller.nested.api.stub | 71 - .../Console/stubs/controller.nested.stub | 94 - .../Console/stubs/controller.plain.stub | 11 - .../Routing/Console/stubs/controller.stub | 85 - .../Routing/Console/stubs/middleware.stub | 20 - .../Contracts/ControllerDispatcher.php | 27 - .../src/Illuminate/Routing/Controller.php | 72 - .../Routing/ControllerDispatcher.php | 81 - .../Routing/ControllerMiddlewareOptions.php | 50 - .../Routing/Events/RouteMatched.php | 33 - .../Exceptions/InvalidSignatureException.php | 18 - .../Exceptions/UrlGenerationException.php | 19 - .../Routing/ImplicitRouteBinding.php | 60 - .../Routing/Matching/HostValidator.php | 25 - .../Routing/Matching/MethodValidator.php | 21 - .../Routing/Matching/SchemeValidator.php | 27 - .../Routing/Matching/UriValidator.php | 23 - .../Routing/Matching/ValidatorInterface.php | 18 - .../Routing/Middleware/SubstituteBindings.php | 43 - .../Routing/Middleware/ThrottleRequests.php | 195 - .../Middleware/ThrottleRequestsWithRedis.php | 119 - .../Routing/Middleware/ValidateSignature.php | 27 - .../Routing/MiddlewareNameResolver.php | 85 - .../Routing/PendingResourceRegistration.php | 177 - .../src/Illuminate/Routing/Pipeline.php | 91 - .../Illuminate/Routing/RedirectController.php | 21 - .../src/Illuminate/Routing/Redirector.php | 213 - .../Illuminate/Routing/ResourceRegistrar.php | 446 - .../Illuminate/Routing/ResponseFactory.php | 250 - .../src/Illuminate/Routing/Route.php | 898 - .../src/Illuminate/Routing/RouteAction.php | 92 - .../src/Illuminate/Routing/RouteBinding.php | 82 - .../Illuminate/Routing/RouteCollection.php | 351 - .../src/Illuminate/Routing/RouteCompiler.php | 54 - .../Routing/RouteDependencyResolverTrait.php | 111 - .../src/Illuminate/Routing/RouteGroup.php | 95 - .../Routing/RouteParameterBinder.php | 120 - .../src/Illuminate/Routing/RouteRegistrar.php | 199 - .../Routing/RouteSignatureParameters.php | 45 - .../Illuminate/Routing/RouteUrlGenerator.php | 313 - .../src/Illuminate/Routing/Router.php | 1226 - .../Routing/RoutingServiceProvider.php | 167 - .../Illuminate/Routing/SortedMiddleware.php | 84 - .../src/Illuminate/Routing/UrlGenerator.php | 709 - .../src/Illuminate/Routing/ViewController.php | 39 - .../src/Illuminate/Routing/composer.json | 47 - .../Session/CacheBasedSessionHandler.php | 94 - .../Session/Console/SessionTableCommand.php | 81 - .../Session/Console/stubs/database.stub | 35 - .../Session/CookieSessionHandler.php | 121 - .../Session/DatabaseSessionHandler.php | 294 - .../src/Illuminate/Session/EncryptedStore.php | 69 - .../Session/ExistenceAwareInterface.php | 14 - .../Illuminate/Session/FileSessionHandler.php | 113 - .../Middleware/AuthenticateSession.php | 96 - .../Session/Middleware/StartSession.php | 242 - .../Illuminate/Session/NullSessionHandler.php | 56 - .../src/Illuminate/Session/SessionManager.php | 215 - .../Session/SessionServiceProvider.php | 50 - .../src/Illuminate/Session/Store.php | 661 - .../Session/TokenMismatchException.php | 10 - .../src/Illuminate/Session/composer.json | 41 - .../Support/AggregateServiceProvider.php | 52 - .../framework/src/Illuminate/Support/Arr.php | 623 - .../src/Illuminate/Support/Carbon.php | 48 - .../src/Illuminate/Support/Collection.php | 1894 -- .../src/Illuminate/Support/Composer.php | 99 - .../src/Illuminate/Support/Debug/Dumper.php | 26 - .../Illuminate/Support/Debug/HtmlDumper.php | 29 - .../src/Illuminate/Support/Facades/App.php | 31 - .../Illuminate/Support/Facades/Artisan.php | 27 - .../src/Illuminate/Support/Facades/Auth.php | 53 - .../src/Illuminate/Support/Facades/Blade.php | 36 - .../Illuminate/Support/Facades/Broadcast.php | 25 - .../src/Illuminate/Support/Facades/Bus.php | 39 - .../src/Illuminate/Support/Facades/Cache.php | 35 - .../src/Illuminate/Support/Facades/Config.php | 26 - .../src/Illuminate/Support/Facades/Cookie.php | 46 - .../src/Illuminate/Support/Facades/Crypt.php | 22 - .../src/Illuminate/Support/Facades/DB.php | 41 - .../src/Illuminate/Support/Facades/Event.php | 65 - .../src/Illuminate/Support/Facades/Facade.php | 223 - .../src/Illuminate/Support/Facades/File.php | 55 - .../src/Illuminate/Support/Facades/Gate.php | 35 - .../src/Illuminate/Support/Facades/Hash.php | 24 - .../src/Illuminate/Support/Facades/Input.php | 72 - .../src/Illuminate/Support/Facades/Lang.php | 25 - .../src/Illuminate/Support/Facades/Log.php | 33 - .../src/Illuminate/Support/Facades/Mail.php | 39 - .../Support/Facades/Notification.php | 51 - .../Illuminate/Support/Facades/Password.php | 59 - .../src/Illuminate/Support/Facades/Queue.php | 43 - .../Illuminate/Support/Facades/Redirect.php | 32 - .../src/Illuminate/Support/Facades/Redis.php | 22 - .../Illuminate/Support/Facades/Request.php | 58 - .../Illuminate/Support/Facades/Response.php | 34 - .../src/Illuminate/Support/Facades/Route.php | 46 - .../src/Illuminate/Support/Facades/Schema.php | 36 - .../Illuminate/Support/Facades/Session.php | 42 - .../Illuminate/Support/Facades/Storage.php | 56 - .../src/Illuminate/Support/Facades/URL.php | 33 - .../Illuminate/Support/Facades/Validator.php | 24 - .../src/Illuminate/Support/Facades/View.php | 28 - .../src/Illuminate/Support/Fluent.php | 192 - .../Support/HigherOrderCollectionProxy.php | 63 - .../Support/HigherOrderTapProxy.php | 38 - .../src/Illuminate/Support/HtmlString.php | 46 - .../Illuminate/Support/InteractsWithTime.php | 64 - .../src/Illuminate/Support/Manager.php | 148 - .../src/Illuminate/Support/MessageBag.php | 395 - .../Support/NamespacedItemResolver.php | 102 - .../src/Illuminate/Support/Optional.php | 130 - .../src/Illuminate/Support/Pluralizer.php | 119 - .../src/Illuminate/Support/ProcessUtils.php | 69 - .../Illuminate/Support/ServiceProvider.php | 300 - .../framework/src/Illuminate/Support/Str.php | 718 - .../Support/Testing/Fakes/BusFake.php | 165 - .../Support/Testing/Fakes/EventFake.php | 260 - .../Support/Testing/Fakes/MailFake.php | 316 - .../Testing/Fakes/NotificationFake.php | 220 - .../Support/Testing/Fakes/PendingMailFake.php | 53 - .../Support/Testing/Fakes/QueueFake.php | 351 - .../Support/Traits/CapsuleManagerTrait.php | 69 - .../Illuminate/Support/Traits/Localizable.php | 31 - .../Illuminate/Support/Traits/Macroable.php | 112 - .../src/Illuminate/Support/ViewErrorBag.php | 130 - .../src/Illuminate/Support/composer.json | 49 - .../src/Illuminate/Support/helpers.php | 1179 - .../Illuminate/Translation/ArrayLoader.php | 85 - .../src/Illuminate/Translation/FileLoader.php | 187 - .../Translation/MessageSelector.php | 412 - .../TranslationServiceProvider.php | 62 - .../src/Illuminate/Translation/Translator.php | 490 - .../src/Illuminate/Translation/composer.json | 36 - .../Validation/ClosureValidationRule.php | 70 - .../Validation/Concerns/FormatsMessages.php | 384 - .../Concerns/ReplacesAttributes.php | 442 - .../Concerns/ValidatesAttributes.php | 1677 - .../Validation/DatabasePresenceVerifier.php | 138 - .../src/Illuminate/Validation/Factory.php | 283 - .../Validation/PresenceVerifierInterface.php | 30 - .../src/Illuminate/Validation/Rule.php | 76 - .../Validation/Rules/DatabaseRule.php | 172 - .../Validation/Rules/Dimensions.php | 131 - .../Illuminate/Validation/Rules/Exists.php | 22 - .../src/Illuminate/Validation/Rules/In.php | 45 - .../src/Illuminate/Validation/Rules/NotIn.php | 43 - .../Illuminate/Validation/Rules/Unique.php | 74 - .../Validation/UnauthorizedException.php | 10 - .../Validation/ValidatesWhenResolvedTrait.php | 88 - .../Illuminate/Validation/ValidationData.php | 113 - .../Validation/ValidationException.php | 138 - .../Validation/ValidationRuleParser.php | 277 - .../Validation/ValidationServiceProvider.php | 72 - .../src/Illuminate/Validation/Validator.php | 1150 - .../src/Illuminate/Validation/composer.json | 41 - .../View/Compilers/BladeCompiler.php | 519 - .../Illuminate/View/Compilers/Compiler.php | 74 - .../View/Compilers/CompilerInterface.php | 30 - .../Concerns/CompilesAuthorizations.php | 102 - .../Compilers/Concerns/CompilesComments.php | 19 - .../Compilers/Concerns/CompilesComponents.php | 48 - .../Concerns/CompilesConditionals.php | 230 - .../View/Compilers/Concerns/CompilesEchos.php | 105 - .../Compilers/Concerns/CompilesHelpers.php | 49 - .../Compilers/Concerns/CompilesIncludes.php | 69 - .../Compilers/Concerns/CompilesInjections.php | 23 - .../View/Compilers/Concerns/CompilesJson.php | 30 - .../Compilers/Concerns/CompilesLayouts.php | 116 - .../View/Compilers/Concerns/CompilesLoops.php | 180 - .../Compilers/Concerns/CompilesRawPhp.php | 32 - .../Compilers/Concerns/CompilesStacks.php | 59 - .../Concerns/CompilesTranslations.php | 44 - .../View/Concerns/ManagesComponents.php | 128 - .../View/Concerns/ManagesEvents.php | 192 - .../View/Concerns/ManagesLayouts.php | 218 - .../Illuminate/View/Concerns/ManagesLoops.php | 90 - .../View/Concerns/ManagesStacks.php | 177 - .../View/Concerns/ManagesTranslations.php | 38 - .../View/Engines/CompilerEngine.php | 102 - .../src/Illuminate/View/Engines/Engine.php | 23 - .../View/Engines/EngineResolver.php | 59 - .../Illuminate/View/Engines/FileEngine.php | 20 - .../src/Illuminate/View/Engines/PhpEngine.php | 70 - .../framework/src/Illuminate/View/Factory.php | 565 - .../src/Illuminate/View/FileViewFinder.php | 298 - .../Middleware/ShareErrorsFromSession.php | 51 - .../framework/src/Illuminate/View/View.php | 425 - .../Illuminate/View/ViewFinderInterface.php | 71 - .../src/Illuminate/View/ViewName.php | 25 - .../Illuminate/View/ViewServiceProvider.php | 149 - .../src/Illuminate/View/composer.json | 39 - vendor/laravel/tinker/LICENSE.txt | 21 - vendor/laravel/tinker/README.md | 36 - vendor/laravel/tinker/composer.json | 49 - vendor/laravel/tinker/config/tinker.php | 18 - .../tinker/src/ClassAliasAutoloader.php | 116 - .../tinker/src/Console/TinkerCommand.php | 123 - vendor/laravel/tinker/src/TinkerCaster.php | 95 - .../tinker/src/TinkerServiceProvider.php | 60 - vendor/laravelcollective/html/CONTRIBUTING.md | 3 - vendor/laravelcollective/html/LICENSE.txt | 21 - vendor/laravelcollective/html/composer.json | 57 - vendor/laravelcollective/html/readme.md | 9 - .../html/src/Componentable.php | 110 - .../html/src/Eloquent/FormAccessible.php | 119 - .../html/src/FormBuilder.php | 1434 - .../laravelcollective/html/src/FormFacade.php | 22 - .../html/src/HtmlBuilder.php | 570 - .../laravelcollective/html/src/HtmlFacade.php | 22 - .../html/src/HtmlServiceProvider.php | 107 - vendor/laravelcollective/html/src/helpers.php | 70 - .../lumen-vendor-publish/LICENSE.md | 9 - .../lumen-vendor-publish/README.md | 23 - .../lumen-vendor-publish/composer.json | 30 - .../src/VendorPublishCommand.php | 153 - vendor/league/flysystem/LICENSE | 19 - vendor/league/flysystem/composer.json | 64 - .../flysystem/src/Adapter/AbstractAdapter.php | 71 - .../src/Adapter/AbstractFtpAdapter.php | 628 - .../src/Adapter/CanOverwriteFiles.php | 10 - vendor/league/flysystem/src/Adapter/Ftp.php | 568 - vendor/league/flysystem/src/Adapter/Ftpd.php | 40 - vendor/league/flysystem/src/Adapter/Local.php | 518 - .../flysystem/src/Adapter/NullAdapter.php | 144 - .../Polyfill/NotSupportingVisibilityTrait.php | 33 - .../Adapter/Polyfill/StreamedCopyTrait.php | 49 - .../Adapter/Polyfill/StreamedReadingTrait.php | 44 - .../src/Adapter/Polyfill/StreamedTrait.php | 9 - .../Adapter/Polyfill/StreamedWritingTrait.php | 60 - .../flysystem/src/Adapter/SynologyFtp.php | 8 - .../league/flysystem/src/AdapterInterface.php | 118 - vendor/league/flysystem/src/Config.php | 107 - .../league/flysystem/src/ConfigAwareTrait.php | 49 - vendor/league/flysystem/src/Directory.php | 31 - vendor/league/flysystem/src/Exception.php | 8 - vendor/league/flysystem/src/File.php | 205 - .../flysystem/src/FileExistsException.php | 37 - .../flysystem/src/FileNotFoundException.php | 37 - vendor/league/flysystem/src/Filesystem.php | 407 - .../flysystem/src/FilesystemInterface.php | 284 - .../src/FilesystemNotFoundException.php | 12 - vendor/league/flysystem/src/Handler.php | 137 - vendor/league/flysystem/src/MountManager.php | 320 - .../flysystem/src/NotSupportedException.php | 37 - .../flysystem/src/Plugin/AbstractPlugin.php | 24 - .../league/flysystem/src/Plugin/EmptyDir.php | 34 - .../flysystem/src/Plugin/ForcedCopy.php | 44 - .../flysystem/src/Plugin/ForcedRename.php | 44 - .../flysystem/src/Plugin/GetWithMetadata.php | 51 - .../league/flysystem/src/Plugin/ListFiles.php | 35 - .../league/flysystem/src/Plugin/ListPaths.php | 36 - .../league/flysystem/src/Plugin/ListWith.php | 60 - .../flysystem/src/Plugin/PluggableTrait.php | 97 - .../src/Plugin/PluginNotFoundException.php | 10 - .../league/flysystem/src/PluginInterface.php | 20 - vendor/league/flysystem/src/ReadInterface.php | 88 - .../flysystem/src/RootViolationException.php | 10 - vendor/league/flysystem/src/SafeStorage.php | 39 - .../flysystem/src/UnreadableFileException.php | 18 - vendor/league/flysystem/src/Util.php | 348 - .../src/Util/ContentListingFormatter.php | 116 - vendor/league/flysystem/src/Util/MimeType.php | 232 - .../flysystem/src/Util/StreamHasher.php | 36 - vendor/maximebf/debugbar/LICENSE | 19 - vendor/maximebf/debugbar/composer.json | 42 - .../DebugBar/Bridge/CacheCacheCollector.php | 75 - .../src/DebugBar/Bridge/DoctrineCollector.php | 115 - .../src/DebugBar/Bridge/MonologCollector.php | 118 - .../src/DebugBar/Bridge/Propel2Collector.php | 307 - .../src/DebugBar/Bridge/PropelCollector.php | 253 - .../src/DebugBar/Bridge/SlimCollector.php | 66 - .../Bridge/SwiftMailer/SwiftLogCollector.php | 44 - .../Bridge/SwiftMailer/SwiftMailCollector.php | 92 - .../Twig/TimeableTwigExtensionProfiler.php | 60 - .../Bridge/Twig/TraceableTwigEnvironment.php | 417 - .../Bridge/Twig/TraceableTwigTemplate.php | 136 - .../DebugBar/Bridge/Twig/TwigCollector.php | 87 - .../DebugBar/Bridge/TwigProfileCollector.php | 197 - .../DataCollector/AggregatedCollector.php | 189 - .../DebugBar/DataCollector/AssetProvider.php | 43 - .../DataCollector/ConfigCollector.php | 120 - .../DebugBar/DataCollector/DataCollector.php | 234 - .../DataCollector/DataCollectorInterface.php | 31 - .../DataCollector/ExceptionsCollector.php | 142 - .../DataCollector/LocalizationCollector.php | 73 - .../DataCollector/MemoryCollector.php | 96 - .../MessagesAggregateInterface.php | 21 - .../DataCollector/MessagesCollector.php | 245 - .../DataCollector/PDO/PDOCollector.php | 206 - .../DataCollector/PDO/TraceablePDO.php | 311 - .../PDO/TraceablePDOStatement.php | 129 - .../DataCollector/PDO/TracedStatement.php | 257 - .../DataCollector/PhpInfoCollector.php | 51 - .../src/DebugBar/DataCollector/Renderable.php | 25 - .../DataCollector/RequestDataCollector.php | 100 - .../DataCollector/TimeDataCollector.php | 245 - .../DebugBar/DataFormatter/DataFormatter.php | 81 - .../DataFormatter/DataFormatterInterface.php | 42 - .../DataFormatter/DebugBarVarDumper.php | 315 - .../VarDumper/DebugBarHtmlDumper.php | 17 - .../DataFormatter/VarDumper/SeekingData.php | 103 - .../debugbar/src/DebugBar/DebugBar.php | 493 - .../src/DebugBar/DebugBarException.php | 16 - .../src/DebugBar/HttpDriverInterface.php | 64 - .../src/DebugBar/JavascriptRenderer.php | 1126 - .../debugbar/src/DebugBar/OpenHandler.php | 117 - .../debugbar/src/DebugBar/PhpHttpDriver.php | 70 - .../src/DebugBar/RequestIdGenerator.php | 43 - .../DebugBar/RequestIdGeneratorInterface.php | 25 - .../src/DebugBar/Resources/debugbar.css | 314 - .../src/DebugBar/Resources/debugbar.js | 1164 - .../src/DebugBar/Resources/openhandler.css | 69 - .../src/DebugBar/Resources/openhandler.js | 202 - .../font-awesome/css/font-awesome.min.css | 4 - .../vendor/font-awesome/fonts/FontAwesome.otf | Bin 134808 -> 0 bytes .../fonts/fontawesome-webfont.eot | Bin 165742 -> 0 bytes .../fonts/fontawesome-webfont.svg | 2671 -- .../fonts/fontawesome-webfont.ttf | Bin 165548 -> 0 bytes .../fonts/fontawesome-webfont.woff | Bin 98024 -> 0 bytes .../fonts/fontawesome-webfont.woff2 | Bin 77160 -> 0 bytes .../vendor/highlightjs/highlight.pack.js | 1 - .../vendor/highlightjs/styles/github.css | 125 - .../vendor/jquery/dist/jquery.min.js | 5 - .../src/DebugBar/Resources/widgets.css | 261 - .../src/DebugBar/Resources/widgets.js | 533 - .../Resources/widgets/mails/widget.css | 12 - .../Resources/widgets/mails/widget.js | 40 - .../Resources/widgets/sqlqueries/widget.css | 118 - .../Resources/widgets/sqlqueries/widget.js | 171 - .../Resources/widgets/templates/widget.css | 66 - .../Resources/widgets/templates/widget.js | 90 - .../src/DebugBar/StandardDebugBar.php | 34 - .../src/DebugBar/Storage/FileStorage.php | 128 - .../src/DebugBar/Storage/MemcachedStorage.php | 158 - .../src/DebugBar/Storage/PdoStorage.php | 137 - .../src/DebugBar/Storage/RedisStorage.php | 97 - .../src/DebugBar/Storage/StorageInterface.php | 45 - .../DebugBar/Storage/pdo_storage_schema.sql | 16 - vendor/mockery/mockery/.php_cs | 14 - vendor/mockery/mockery/.scrutinizer.yml | 24 - vendor/mockery/mockery/.styleci.yml | 1 - vendor/mockery/mockery/.travis.yml | 42 - vendor/mockery/mockery/CHANGELOG.md | 44 - vendor/mockery/mockery/CONTRIBUTING.md | 89 - vendor/mockery/mockery/LICENSE | 27 - vendor/mockery/mockery/README.md | 68 - vendor/mockery/mockery/composer.json | 35 - vendor/mockery/mockery/docs/Makefile | 177 - vendor/mockery/mockery/docs/README.md | 4 - vendor/mockery/mockery/docs/conf.py | 259 - .../docs/cookbook/default_expectations.rst | 17 - .../docs/cookbook/detecting_mock_objects.rst | 13 - .../mockery/mockery/docs/cookbook/index.rst | 11 - .../mockery/mockery/docs/cookbook/map.rst.inc | 3 - .../cookbook/mocking_hard_dependencies.rst | 93 - .../mockery/docs/getting_started/index.rst | 11 - .../docs/getting_started/installation.rst | 68 - .../mockery/docs/getting_started/map.rst.inc | 3 - .../docs/getting_started/simple_example.rst | 66 - .../docs/getting_started/upgrading.rst | 26 - vendor/mockery/mockery/docs/index.rst | 64 - .../docs/reference/argument_validation.rst | 168 - .../mockery/docs/reference/demeter_chains.rst | 38 - .../mockery/docs/reference/expectations.rst | 260 - .../docs/reference/final_methods_classes.rst | 23 - .../mockery/mockery/docs/reference/index.rst | 20 - .../docs/reference/instance_mocking.rst | 22 - .../mockery/docs/reference/magic_methods.rst | 16 - .../mockery/docs/reference/map.rst.inc | 19 - .../docs/reference/mockery/configuration.rst | 52 - .../docs/reference/mockery/exceptions.rst | 65 - .../docs/reference/mockery/gotchas.rst | 42 - .../mockery/docs/reference/mockery/index.rst | 10 - .../mockery/reserved_method_names.rst | 20 - .../docs/reference/object_recording.rst | 93 - .../mockery/docs/reference/partial_mocks.rst | 94 - .../pass_by_reference_behaviours.rst | 83 - .../docs/reference/phpunit_integration.rst | 110 - .../docs/reference/public_properties.rst | 16 - .../reference/public_static_properties.rst | 12 - .../mockery/docs/reference/quick_examples.rst | 130 - .../docs/reference/startup_methods.rst | 230 - .../mockery/examples/starship/Bootstrap.php | 11 - .../mockery/examples/starship/Starship.php | 24 - .../examples/starship/StarshipTest.php | 21 - vendor/mockery/mockery/library/Mockery.php | 759 - .../Phpunit/MockeryPHPUnitIntegration.php | 26 - .../Adapter/Phpunit/MockeryTestCase.php | 30 - .../Mockery/Adapter/Phpunit/TestListener.php | 93 - .../library/Mockery/CompositeExpectation.php | 131 - .../mockery/library/Mockery/Configuration.php | 131 - .../mockery/library/Mockery/Container.php | 524 - .../Mockery/CountValidator/AtLeast.php | 63 - .../library/Mockery/CountValidator/AtMost.php | 52 - .../CountValidator/CountValidatorAbstract.php | 70 - .../library/Mockery/CountValidator/Exact.php | 52 - .../Mockery/CountValidator/Exception.php | 25 - .../mockery/library/Mockery/Exception.php | 25 - .../Exception/InvalidCountException.php | 103 - .../Exception/InvalidOrderException.php | 84 - .../NoMatchingExpectationException.php | 71 - .../Mockery/Exception/RuntimeException.php | 25 - .../mockery/library/Mockery/Expectation.php | 758 - .../library/Mockery/ExpectationDirector.php | 203 - .../library/Mockery/ExpectationInterface.php | 39 - .../Mockery/Generator/CachingGenerator.php | 27 - .../Mockery/Generator/DefinedTargetClass.php | 90 - .../library/Mockery/Generator/Generator.php | 9 - .../library/Mockery/Generator/Method.php | 43 - .../Mockery/Generator/MockConfiguration.php | 460 - .../Generator/MockConfigurationBuilder.php | 124 - .../Mockery/Generator/MockDefinition.php | 33 - .../library/Mockery/Generator/Parameter.php | 101 - .../Pass/CallTypeHintPass.php | 29 - .../StringManipulation/Pass/ClassNamePass.php | 31 - .../StringManipulation/Pass/ClassPass.php | 50 - .../Pass/InstanceMockPass.php | 57 - .../StringManipulation/Pass/InterfacePass.php | 23 - .../Pass/MethodDefinitionPass.php | 150 - .../StringManipulation/Pass/Pass.php | 10 - .../RemoveBuiltinMethodsThatAreFinalPass.php | 35 - ...lizeForInternalSerializableClassesPass.php | 40 - .../Generator/StringManipulationGenerator.php | 34 - .../library/Mockery/Generator/TargetClass.php | 33 - .../Generator/UndefinedTargetClass.php | 61 - .../mockery/library/Mockery/Instantiator.php | 214 - .../mockery/library/Mockery/Loader.php | 155 - .../library/Mockery/Loader/EvalLoader.php | 18 - .../mockery/library/Mockery/Loader/Loader.php | 10 - .../library/Mockery/Loader/RequireLoader.php | 28 - .../mockery/library/Mockery/Matcher/Any.php | 46 - .../mockery/library/Mockery/Matcher/AnyOf.php | 51 - .../library/Mockery/Matcher/Closure.php | 48 - .../library/Mockery/Matcher/Contains.php | 65 - .../library/Mockery/Matcher/Ducktype.php | 54 - .../library/Mockery/Matcher/HasKey.php | 47 - .../library/Mockery/Matcher/HasValue.php | 47 - .../Mockery/Matcher/MatcherAbstract.php | 59 - .../library/Mockery/Matcher/MustBe.php | 50 - .../mockery/library/Mockery/Matcher/Not.php | 47 - .../library/Mockery/Matcher/NotAnyOf.php | 51 - .../library/Mockery/Matcher/Subset.php | 60 - .../mockery/library/Mockery/Matcher/Type.php | 53 - .../mockery/library/Mockery/MethodCall.php | 25 - .../mockery/mockery/library/Mockery/Mock.php | 758 - .../mockery/library/Mockery/MockInterface.php | 242 - .../library/Mockery/ReceivedMethodCalls.php | 30 - .../mockery/library/Mockery/Recorder.php | 103 - .../mockery/library/Mockery/Undefined.php | 47 - .../library/Mockery/VerificationDirector.php | 89 - .../Mockery/VerificationExpectation.php | 17 - vendor/mockery/mockery/package.xml | 191 - vendor/mockery/mockery/phpunit.xml.dist | 37 - vendor/mockery/mockery/tests/Bootstrap.php | 85 - .../mockery/tests/Mockery/AdhocTest.php | 90 - .../mockery/tests/Mockery/ContainerTest.php | 1744 -- .../tests/Mockery/DemeterChainTest.php | 170 - .../mockery/tests/Mockery/ExpectationTest.php | 2040 -- .../Fixtures/MethodWithNullableParameters.php | 49 - .../Fixtures/MethodWithNullableReturnType.php | 57 - .../tests/Mockery/Fixtures/VoidMethod.php | 27 - .../Generator/DefinedTargetClassTest.php | 25 - .../Generator/MockConfigurationTest.php | 197 - .../Pass/CallTypeHintPassTest.php | 39 - .../Pass/ClassNamePassTest.php | 58 - .../Pass/InstanceMockPassTest.php | 24 - .../Pass/InterfacePassTest.php | 46 - .../tests/Mockery/HamcrestExpectationTest.php | 65 - .../tests/Mockery/Loader/EvalLoaderTest.php | 16 - .../tests/Mockery/Loader/LoaderTestCase.php | 27 - .../Mockery/Loader/RequireLoaderTest.php | 16 - .../mockery/tests/Mockery/LoaderTest.php | 45 - .../Mockery/MockClassWithFinalWakeupTest.php | 96 - .../MockClassWithUnknownTypeHintTest.php | 45 - .../mockery/tests/Mockery/MockTest.php | 193 - ...MockMultipleInterfacesWhichOverlapTest.php | 66 - ...ckingMethodsWithNullableParametersTest.php | 185 - .../Mockery/MockingNullableMethodsTest.php | 184 - .../MockingParameterAndReturnTypesTest.php | 151 - .../Mockery/MockingProtectedMethodsTest.php | 122 - .../Mockery/MockingVariadicArgumentsTest.php | 56 - .../tests/Mockery/MockingVoidMethodsTest.php | 56 - .../mockery/tests/Mockery/NamedMockTest.php | 54 - .../mockery/tests/Mockery/RecorderTest.php | 206 - .../mockery/mockery/tests/Mockery/SpyTest.php | 78 - .../MockConfigurationBuilderTest.php | 43 - .../Mockery/WithFormatterExpectationTest.php | 121 - .../mockery/tests/Mockery/_files/file.txt | 0 .../mockery/mockery/travis/after_success.sh | 6 - .../mockery/mockery/travis/before_script.sh | 11 - vendor/mockery/mockery/travis/extra.ini | 2 - vendor/mockery/mockery/travis/install.sh | 6 - vendor/mockery/mockery/travis/script.sh | 8 - vendor/monolog/monolog/.php_cs | 59 - vendor/monolog/monolog/CHANGELOG.md | 342 - vendor/monolog/monolog/LICENSE | 19 - vendor/monolog/monolog/README.md | 95 - vendor/monolog/monolog/composer.json | 66 - vendor/monolog/monolog/doc/01-usage.md | 231 - .../doc/02-handlers-formatters-processors.md | 157 - vendor/monolog/monolog/doc/03-utilities.md | 13 - vendor/monolog/monolog/doc/04-extending.md | 76 - vendor/monolog/monolog/doc/sockets.md | 39 - vendor/monolog/monolog/phpunit.xml.dist | 19 - .../monolog/src/Monolog/ErrorHandler.php | 230 - .../Monolog/Formatter/ChromePHPFormatter.php | 78 - .../Monolog/Formatter/ElasticaFormatter.php | 89 - .../Monolog/Formatter/FlowdockFormatter.php | 116 - .../Monolog/Formatter/FluentdFormatter.php | 85 - .../Monolog/Formatter/FormatterInterface.php | 36 - .../Formatter/GelfMessageFormatter.php | 138 - .../src/Monolog/Formatter/HtmlFormatter.php | 141 - .../src/Monolog/Formatter/JsonFormatter.php | 208 - .../src/Monolog/Formatter/LineFormatter.php | 179 - .../src/Monolog/Formatter/LogglyFormatter.php | 47 - .../Monolog/Formatter/LogstashFormatter.php | 166 - .../Monolog/Formatter/MongoDBFormatter.php | 105 - .../Monolog/Formatter/NormalizerFormatter.php | 297 - .../src/Monolog/Formatter/ScalarFormatter.php | 48 - .../Monolog/Formatter/WildfireFormatter.php | 113 - .../src/Monolog/Handler/AbstractHandler.php | 186 - .../Handler/AbstractProcessingHandler.php | 66 - .../Monolog/Handler/AbstractSyslogHandler.php | 101 - .../src/Monolog/Handler/AmqpHandler.php | 148 - .../Monolog/Handler/BrowserConsoleHandler.php | 230 - .../src/Monolog/Handler/BufferHandler.php | 117 - .../src/Monolog/Handler/ChromePHPHandler.php | 211 - .../src/Monolog/Handler/CouchDBHandler.php | 72 - .../src/Monolog/Handler/CubeHandler.php | 151 - .../monolog/src/Monolog/Handler/Curl/Util.php | 57 - .../Monolog/Handler/DeduplicationHandler.php | 169 - .../Handler/DoctrineCouchDBHandler.php | 45 - .../src/Monolog/Handler/DynamoDbHandler.php | 107 - .../Monolog/Handler/ElasticSearchHandler.php | 128 - .../src/Monolog/Handler/ErrorLogHandler.php | 82 - .../src/Monolog/Handler/FilterHandler.php | 140 - .../ActivationStrategyInterface.php | 28 - .../ChannelLevelActivationStrategy.php | 59 - .../ErrorLevelActivationStrategy.php | 34 - .../Monolog/Handler/FingersCrossedHandler.php | 163 - .../src/Monolog/Handler/FirePHPHandler.php | 195 - .../src/Monolog/Handler/FleepHookHandler.php | 126 - .../src/Monolog/Handler/FlowdockHandler.php | 127 - .../src/Monolog/Handler/GelfHandler.php | 73 - .../src/Monolog/Handler/GroupHandler.php | 104 - .../src/Monolog/Handler/HandlerInterface.php | 90 - .../src/Monolog/Handler/HandlerWrapper.php | 108 - .../src/Monolog/Handler/HipChatHandler.php | 350 - .../src/Monolog/Handler/IFTTTHandler.php | 69 - .../src/Monolog/Handler/LogEntriesHandler.php | 55 - .../src/Monolog/Handler/LogglyHandler.php | 102 - .../src/Monolog/Handler/MailHandler.php | 67 - .../src/Monolog/Handler/MandrillHandler.php | 68 - .../Handler/MissingExtensionException.php | 21 - .../src/Monolog/Handler/MongoDBHandler.php | 59 - .../Monolog/Handler/NativeMailerHandler.php | 185 - .../src/Monolog/Handler/NewRelicHandler.php | 202 - .../src/Monolog/Handler/NullHandler.php | 45 - .../src/Monolog/Handler/PHPConsoleHandler.php | 242 - .../src/Monolog/Handler/PsrHandler.php | 56 - .../src/Monolog/Handler/PushoverHandler.php | 185 - .../src/Monolog/Handler/RavenHandler.php | 232 - .../src/Monolog/Handler/RedisHandler.php | 97 - .../src/Monolog/Handler/RollbarHandler.php | 132 - .../Monolog/Handler/RotatingFileHandler.php | 178 - .../src/Monolog/Handler/SamplingHandler.php | 82 - .../src/Monolog/Handler/Slack/SlackRecord.php | 294 - .../src/Monolog/Handler/SlackHandler.php | 215 - .../Monolog/Handler/SlackWebhookHandler.php | 115 - .../src/Monolog/Handler/SlackbotHandler.php | 80 - .../src/Monolog/Handler/SocketHandler.php | 346 - .../src/Monolog/Handler/StreamHandler.php | 176 - .../Monolog/Handler/SwiftMailerHandler.php | 99 - .../src/Monolog/Handler/SyslogHandler.php | 67 - .../Monolog/Handler/SyslogUdp/UdpSocket.php | 56 - .../src/Monolog/Handler/SyslogUdpHandler.php | 103 - .../src/Monolog/Handler/TestHandler.php | 154 - .../Handler/WhatFailureGroupHandler.php | 61 - .../Monolog/Handler/ZendMonitorHandler.php | 95 - vendor/monolog/monolog/src/Monolog/Logger.php | 700 - .../src/Monolog/Processor/GitProcessor.php | 64 - .../Processor/IntrospectionProcessor.php | 112 - .../Processor/MemoryPeakUsageProcessor.php | 35 - .../src/Monolog/Processor/MemoryProcessor.php | 63 - .../Processor/MemoryUsageProcessor.php | 35 - .../Monolog/Processor/MercurialProcessor.php | 63 - .../Monolog/Processor/ProcessIdProcessor.php | 31 - .../Processor/PsrLogMessageProcessor.php | 48 - .../src/Monolog/Processor/TagProcessor.php | 44 - .../src/Monolog/Processor/UidProcessor.php | 46 - .../src/Monolog/Processor/WebProcessor.php | 113 - .../monolog/monolog/src/Monolog/Registry.php | 134 - .../tests/Monolog/ErrorHandlerTest.php | 31 - .../Formatter/ChromePHPFormatterTest.php | 158 - .../Formatter/ElasticaFormatterTest.php | 79 - .../Formatter/FlowdockFormatterTest.php | 55 - .../Formatter/FluentdFormatterTest.php | 62 - .../Formatter/GelfMessageFormatterTest.php | 258 - .../Monolog/Formatter/JsonFormatterTest.php | 183 - .../Monolog/Formatter/LineFormatterTest.php | 222 - .../Monolog/Formatter/LogglyFormatterTest.php | 40 - .../Formatter/LogstashFormatterTest.php | 333 - .../Formatter/MongoDBFormatterTest.php | 262 - .../Formatter/NormalizerFormatterTest.php | 423 - .../Monolog/Formatter/ScalarFormatterTest.php | 110 - .../Formatter/WildfireFormatterTest.php | 142 - .../Monolog/Handler/AbstractHandlerTest.php | 115 - .../Handler/AbstractProcessingHandlerTest.php | 80 - .../tests/Monolog/Handler/AmqpHandlerTest.php | 136 - .../Handler/BrowserConsoleHandlerTest.php | 130 - .../Monolog/Handler/BufferHandlerTest.php | 158 - .../Monolog/Handler/ChromePHPHandlerTest.php | 156 - .../Monolog/Handler/CouchDBHandlerTest.php | 31 - .../Handler/DeduplicationHandlerTest.php | 165 - .../Handler/DoctrineCouchDBHandlerTest.php | 52 - .../Monolog/Handler/DynamoDbHandlerTest.php | 82 - .../Handler/ElasticSearchHandlerTest.php | 239 - .../Monolog/Handler/ErrorLogHandlerTest.php | 66 - .../Monolog/Handler/FilterHandlerTest.php | 170 - .../Handler/FingersCrossedHandlerTest.php | 279 - .../Monolog/Handler/FirePHPHandlerTest.php | 96 - .../tests/Monolog/Handler/Fixtures/.gitkeep | 0 .../Monolog/Handler/FleepHookHandlerTest.php | 85 - .../Monolog/Handler/FlowdockHandlerTest.php | 88 - .../Monolog/Handler/GelfHandlerLegacyTest.php | 95 - .../tests/Monolog/Handler/GelfHandlerTest.php | 117 - .../Handler/GelfMockMessagePublisher.php | 25 - .../Monolog/Handler/GroupHandlerTest.php | 112 - .../Monolog/Handler/HandlerWrapperTest.php | 130 - .../Monolog/Handler/HipChatHandlerTest.php | 279 - .../Monolog/Handler/LogEntriesHandlerTest.php | 84 - .../tests/Monolog/Handler/MailHandlerTest.php | 75 - .../tests/Monolog/Handler/MockRavenClient.php | 27 - .../Monolog/Handler/MongoDBHandlerTest.php | 65 - .../Handler/NativeMailerHandlerTest.php | 111 - .../Monolog/Handler/NewRelicHandlerTest.php | 200 - .../tests/Monolog/Handler/NullHandlerTest.php | 33 - .../Monolog/Handler/PHPConsoleHandlerTest.php | 273 - .../tests/Monolog/Handler/PsrHandlerTest.php | 50 - .../Monolog/Handler/PushoverHandlerTest.php | 141 - .../Monolog/Handler/RavenHandlerTest.php | 255 - .../Monolog/Handler/RedisHandlerTest.php | 127 - .../Monolog/Handler/RollbarHandlerTest.php | 84 - .../Handler/RotatingFileHandlerTest.php | 211 - .../Monolog/Handler/SamplingHandlerTest.php | 33 - .../Monolog/Handler/Slack/SlackRecordTest.php | 387 - .../Monolog/Handler/SlackHandlerTest.php | 155 - .../Handler/SlackWebhookHandlerTest.php | 107 - .../Monolog/Handler/SlackbotHandlerTest.php | 47 - .../Monolog/Handler/SocketHandlerTest.php | 309 - .../Monolog/Handler/StreamHandlerTest.php | 184 - .../Handler/SwiftMailerHandlerTest.php | 113 - .../Monolog/Handler/SyslogHandlerTest.php | 44 - .../Monolog/Handler/SyslogUdpHandlerTest.php | 76 - .../tests/Monolog/Handler/TestHandlerTest.php | 70 - .../tests/Monolog/Handler/UdpSocketTest.php | 64 - .../Handler/WhatFailureGroupHandlerTest.php | 121 - .../Handler/ZendMonitorHandlerTest.php | 69 - .../monolog/tests/Monolog/LoggerTest.php | 548 - .../Monolog/Processor/GitProcessorTest.php | 29 - .../Processor/IntrospectionProcessorTest.php | 123 - .../MemoryPeakUsageProcessorTest.php | 42 - .../Processor/MemoryUsageProcessorTest.php | 42 - .../Processor/MercurialProcessorTest.php | 41 - .../Processor/ProcessIdProcessorTest.php | 30 - .../Processor/PsrLogMessageProcessorTest.php | 43 - .../Monolog/Processor/TagProcessorTest.php | 49 - .../Monolog/Processor/UidProcessorTest.php | 33 - .../Monolog/Processor/WebProcessorTest.php | 113 - .../tests/Monolog/PsrLogCompatTest.php | 47 - .../monolog/tests/Monolog/RegistryTest.php | 153 - .../monolog/tests/Monolog/TestCase.php | 58 - vendor/myclabs/deep-copy/.gitattributes | 7 - vendor/myclabs/deep-copy/.scrutinizer.yml | 4 - vendor/myclabs/deep-copy/.travis.yml | 40 - vendor/myclabs/deep-copy/LICENSE | 20 - vendor/myclabs/deep-copy/README.md | 376 - vendor/myclabs/deep-copy/composer.json | 38 - vendor/myclabs/deep-copy/doc/clone.png | Bin 12380 -> 0 bytes vendor/myclabs/deep-copy/doc/deep-clone.png | Bin 14009 -> 0 bytes vendor/myclabs/deep-copy/doc/deep-copy.png | Bin 10895 -> 0 bytes vendor/myclabs/deep-copy/doc/graph.png | Bin 6436 -> 0 bytes vendor/myclabs/deep-copy/fixtures/f001/A.php | 20 - vendor/myclabs/deep-copy/fixtures/f001/B.php | 20 - vendor/myclabs/deep-copy/fixtures/f002/A.php | 33 - .../myclabs/deep-copy/fixtures/f003/Foo.php | 26 - .../fixtures/f004/UnclonableItem.php | 13 - .../myclabs/deep-copy/fixtures/f005/Foo.php | 13 - vendor/myclabs/deep-copy/fixtures/f006/A.php | 26 - vendor/myclabs/deep-copy/fixtures/f006/B.php | 26 - .../fixtures/f007/FooDateInterval.php | 15 - .../fixtures/f007/FooDateTimeZone.php | 15 - vendor/myclabs/deep-copy/fixtures/f008/A.php | 18 - vendor/myclabs/deep-copy/fixtures/f008/B.php | 7 - .../deep-copy/src/DeepCopy/DeepCopy.php | 281 - .../src/DeepCopy/Exception/CloneException.php | 9 - .../DeepCopy/Exception/PropertyException.php | 9 - .../Doctrine/DoctrineCollectionFilter.php | 33 - .../DoctrineEmptyCollectionFilter.php | 28 - .../Filter/Doctrine/DoctrineProxyFilter.php | 22 - .../deep-copy/src/DeepCopy/Filter/Filter.php | 18 - .../src/DeepCopy/Filter/KeepFilter.php | 16 - .../src/DeepCopy/Filter/ReplaceFilter.php | 39 - .../src/DeepCopy/Filter/SetNullFilter.php | 24 - .../Matcher/Doctrine/DoctrineProxyMatcher.php | 22 - .../src/DeepCopy/Matcher/Matcher.php | 14 - .../src/DeepCopy/Matcher/PropertyMatcher.php | 39 - .../DeepCopy/Matcher/PropertyNameMatcher.php | 32 - .../DeepCopy/Matcher/PropertyTypeMatcher.php | 46 - .../DeepCopy/Reflection/ReflectionHelper.php | 78 - .../TypeFilter/Date/DateIntervalFilter.php | 33 - .../src/DeepCopy/TypeFilter/ReplaceFilter.php | 30 - .../DeepCopy/TypeFilter/ShallowCopyFilter.php | 17 - .../TypeFilter/Spl/SplDoublyLinkedList.php | 10 - .../Spl/SplDoublyLinkedListFilter.php | 51 - .../src/DeepCopy/TypeFilter/TypeFilter.php | 13 - .../src/DeepCopy/TypeMatcher/TypeMatcher.php | 29 - .../deep-copy/src/DeepCopy/deep_copy.php | 20 - vendor/nesbot/carbon/.php_cs.dist | 60 - vendor/nesbot/carbon/LICENSE | 19 - vendor/nesbot/carbon/build.php | 87 - vendor/nesbot/carbon/composer.json | 58 - vendor/nesbot/carbon/readme.md | 94 - vendor/nesbot/carbon/src/Carbon/Carbon.php | 4090 --- .../carbon/src/Carbon/CarbonInterval.php | 687 - .../Exceptions/InvalidDateException.php | 67 - vendor/nesbot/carbon/src/Carbon/Lang/af.php | 31 - vendor/nesbot/carbon/src/Carbon/Lang/ar.php | 31 - .../carbon/src/Carbon/Lang/ar_Shakl.php | 31 - vendor/nesbot/carbon/src/Carbon/Lang/az.php | 31 - vendor/nesbot/carbon/src/Carbon/Lang/bg.php | 31 - vendor/nesbot/carbon/src/Carbon/Lang/bn.php | 31 - vendor/nesbot/carbon/src/Carbon/Lang/ca.php | 31 - vendor/nesbot/carbon/src/Carbon/Lang/cs.php | 31 - vendor/nesbot/carbon/src/Carbon/Lang/da.php | 31 - vendor/nesbot/carbon/src/Carbon/Lang/de.php | 40 - .../nesbot/carbon/src/Carbon/Lang/dv_MV.php | 31 - vendor/nesbot/carbon/src/Carbon/Lang/el.php | 31 - vendor/nesbot/carbon/src/Carbon/Lang/en.php | 31 - vendor/nesbot/carbon/src/Carbon/Lang/eo.php | 31 - vendor/nesbot/carbon/src/Carbon/Lang/es.php | 31 - vendor/nesbot/carbon/src/Carbon/Lang/et.php | 38 - vendor/nesbot/carbon/src/Carbon/Lang/eu.php | 31 - vendor/nesbot/carbon/src/Carbon/Lang/fa.php | 31 - vendor/nesbot/carbon/src/Carbon/Lang/fi.php | 31 - vendor/nesbot/carbon/src/Carbon/Lang/fo.php | 31 - vendor/nesbot/carbon/src/Carbon/Lang/fr.php | 31 - vendor/nesbot/carbon/src/Carbon/Lang/gl.php | 24 - vendor/nesbot/carbon/src/Carbon/Lang/gu.php | 31 - vendor/nesbot/carbon/src/Carbon/Lang/he.php | 31 - vendor/nesbot/carbon/src/Carbon/Lang/hr.php | 31 - vendor/nesbot/carbon/src/Carbon/Lang/hu.php | 52 - vendor/nesbot/carbon/src/Carbon/Lang/hy.php | 31 - vendor/nesbot/carbon/src/Carbon/Lang/id.php | 31 - vendor/nesbot/carbon/src/Carbon/Lang/it.php | 31 - vendor/nesbot/carbon/src/Carbon/Lang/ja.php | 31 - vendor/nesbot/carbon/src/Carbon/Lang/ka.php | 31 - vendor/nesbot/carbon/src/Carbon/Lang/kk.php | 29 - vendor/nesbot/carbon/src/Carbon/Lang/km.php | 31 - vendor/nesbot/carbon/src/Carbon/Lang/ko.php | 31 - vendor/nesbot/carbon/src/Carbon/Lang/lt.php | 38 - vendor/nesbot/carbon/src/Carbon/Lang/lv.php | 47 - vendor/nesbot/carbon/src/Carbon/Lang/mk.php | 24 - vendor/nesbot/carbon/src/Carbon/Lang/mn.php | 62 - vendor/nesbot/carbon/src/Carbon/Lang/ms.php | 31 - vendor/nesbot/carbon/src/Carbon/Lang/nl.php | 31 - vendor/nesbot/carbon/src/Carbon/Lang/no.php | 31 - vendor/nesbot/carbon/src/Carbon/Lang/pl.php | 31 - vendor/nesbot/carbon/src/Carbon/Lang/ps.php | 31 - vendor/nesbot/carbon/src/Carbon/Lang/pt.php | 31 - .../nesbot/carbon/src/Carbon/Lang/pt_BR.php | 31 - vendor/nesbot/carbon/src/Carbon/Lang/ro.php | 31 - vendor/nesbot/carbon/src/Carbon/Lang/ru.php | 31 - vendor/nesbot/carbon/src/Carbon/Lang/sk.php | 38 - vendor/nesbot/carbon/src/Carbon/Lang/sl.php | 38 - vendor/nesbot/carbon/src/Carbon/Lang/sq.php | 31 - vendor/nesbot/carbon/src/Carbon/Lang/sr.php | 37 - .../nesbot/carbon/src/Carbon/Lang/sr_Cyrl.php | 38 - .../carbon/src/Carbon/Lang/sr_Cyrl_ME.php | 38 - .../carbon/src/Carbon/Lang/sr_Latn_ME.php | 38 - .../nesbot/carbon/src/Carbon/Lang/sr_ME.php | 12 - vendor/nesbot/carbon/src/Carbon/Lang/sv.php | 31 - vendor/nesbot/carbon/src/Carbon/Lang/th.php | 31 - vendor/nesbot/carbon/src/Carbon/Lang/tr.php | 31 - vendor/nesbot/carbon/src/Carbon/Lang/uk.php | 31 - vendor/nesbot/carbon/src/Carbon/Lang/ur.php | 24 - vendor/nesbot/carbon/src/Carbon/Lang/uz.php | 31 - vendor/nesbot/carbon/src/Carbon/Lang/vi.php | 31 - vendor/nesbot/carbon/src/Carbon/Lang/zh.php | 31 - .../nesbot/carbon/src/Carbon/Lang/zh_TW.php | 31 - .../nesbot/carbon/src/Carbon/Translator.php | 143 - vendor/nikic/php-parser/.travis.yml | 29 - vendor/nikic/php-parser/CHANGELOG.md | 573 - vendor/nikic/php-parser/LICENSE | 31 - vendor/nikic/php-parser/README.md | 225 - vendor/nikic/php-parser/UPGRADE-1.0.md | 121 - vendor/nikic/php-parser/UPGRADE-2.0.md | 74 - vendor/nikic/php-parser/UPGRADE-3.0.md | 160 - vendor/nikic/php-parser/UPGRADE-4.0.md | 77 - vendor/nikic/php-parser/bin/php-parse | 202 - vendor/nikic/php-parser/composer.json | 30 - .../php-parser/doc/0_Introduction.markdown | 80 - .../doc/2_Usage_of_basic_components.markdown | 515 - vendor/nikic/php-parser/doc/README.md | 46 - .../doc/component/AST_builders.markdown | 117 - .../Constant_expression_evaluation.markdown | 115 - .../doc/component/Error_handling.markdown | 75 - .../php-parser/doc/component/FAQ.markdown | 68 - .../component/JSON_representation.markdown | 131 - .../php-parser/doc/component/Lexer.markdown | 159 - .../doc/component/Name_resolution.markdown | 87 - .../doc/component/Performance.markdown | 65 - .../doc/component/Pretty_printing.markdown | 96 - .../doc/component/Walking_the_AST.markdown | 335 - vendor/nikic/php-parser/grammar/README.md | 28 - .../nikic/php-parser/grammar/parser.template | 106 - vendor/nikic/php-parser/grammar/php5.y | 1024 - vendor/nikic/php-parser/grammar/php7.y | 1012 - .../php-parser/grammar/rebuildParsers.php | 263 - .../nikic/php-parser/grammar/tokens.template | 17 - vendor/nikic/php-parser/grammar/tokens.y | 113 - .../php-parser/lib/PhpParser/Builder.php | 13 - .../lib/PhpParser/Builder/Class_.php | 122 - .../lib/PhpParser/Builder/Declaration.php | 43 - .../lib/PhpParser/Builder/FunctionLike.php | 74 - .../lib/PhpParser/Builder/Function_.php | 50 - .../lib/PhpParser/Builder/Interface_.php | 75 - .../lib/PhpParser/Builder/Method.php | 129 - .../lib/PhpParser/Builder/Namespace_.php | 45 - .../lib/PhpParser/Builder/Param.php | 93 - .../lib/PhpParser/Builder/Property.php | 112 - .../lib/PhpParser/Builder/Trait_.php | 60 - .../php-parser/lib/PhpParser/Builder/Use_.php | 49 - .../lib/PhpParser/BuilderFactory.php | 272 - .../lib/PhpParser/BuilderHelpers.php | 277 - .../php-parser/lib/PhpParser/Comment.php | 167 - .../php-parser/lib/PhpParser/Comment/Doc.php | 7 - .../ConstExprEvaluationException.php | 6 - .../lib/PhpParser/ConstExprEvaluator.php | 226 - .../nikic/php-parser/lib/PhpParser/Error.php | 180 - .../php-parser/lib/PhpParser/ErrorHandler.php | 13 - .../lib/PhpParser/ErrorHandler/Collecting.php | 46 - .../lib/PhpParser/ErrorHandler/Throwing.php | 18 - .../lib/PhpParser/Internal/DiffElem.php | 27 - .../lib/PhpParser/Internal/Differ.php | 164 - .../Internal/PrintableNewAnonClassNode.php | 56 - .../lib/PhpParser/Internal/TokenStream.php | 256 - .../php-parser/lib/PhpParser/JsonDecoder.php | 101 - .../nikic/php-parser/lib/PhpParser/Lexer.php | 378 - .../lib/PhpParser/Lexer/Emulative.php | 8 - .../php-parser/lib/PhpParser/NameContext.php | 285 - .../nikic/php-parser/lib/PhpParser/Node.php | 153 - .../php-parser/lib/PhpParser/Node/Arg.php | 38 - .../php-parser/lib/PhpParser/Node/Const_.php | 37 - .../php-parser/lib/PhpParser/Node/Expr.php | 9 - .../lib/PhpParser/Node/Expr/ArrayDimFetch.php | 34 - .../lib/PhpParser/Node/Expr/ArrayItem.php | 38 - .../lib/PhpParser/Node/Expr/Array_.php | 34 - .../lib/PhpParser/Node/Expr/Assign.php | 34 - .../lib/PhpParser/Node/Expr/AssignOp.php | 30 - .../Node/Expr/AssignOp/BitwiseAnd.php | 12 - .../Node/Expr/AssignOp/BitwiseOr.php | 12 - .../Node/Expr/AssignOp/BitwiseXor.php | 12 - .../PhpParser/Node/Expr/AssignOp/Concat.php | 12 - .../lib/PhpParser/Node/Expr/AssignOp/Div.php | 12 - .../PhpParser/Node/Expr/AssignOp/Minus.php | 12 - .../lib/PhpParser/Node/Expr/AssignOp/Mod.php | 12 - .../lib/PhpParser/Node/Expr/AssignOp/Mul.php | 12 - .../lib/PhpParser/Node/Expr/AssignOp/Plus.php | 12 - .../lib/PhpParser/Node/Expr/AssignOp/Pow.php | 12 - .../Node/Expr/AssignOp/ShiftLeft.php | 12 - .../Node/Expr/AssignOp/ShiftRight.php | 12 - .../lib/PhpParser/Node/Expr/AssignRef.php | 34 - .../lib/PhpParser/Node/Expr/BinaryOp.php | 40 - .../Node/Expr/BinaryOp/BitwiseAnd.php | 16 - .../Node/Expr/BinaryOp/BitwiseOr.php | 16 - .../Node/Expr/BinaryOp/BitwiseXor.php | 16 - .../Node/Expr/BinaryOp/BooleanAnd.php | 16 - .../Node/Expr/BinaryOp/BooleanOr.php | 16 - .../PhpParser/Node/Expr/BinaryOp/Coalesce.php | 16 - .../PhpParser/Node/Expr/BinaryOp/Concat.php | 16 - .../lib/PhpParser/Node/Expr/BinaryOp/Div.php | 16 - .../PhpParser/Node/Expr/BinaryOp/Equal.php | 16 - .../PhpParser/Node/Expr/BinaryOp/Greater.php | 16 - .../Node/Expr/BinaryOp/GreaterOrEqual.php | 16 - .../Node/Expr/BinaryOp/Identical.php | 16 - .../Node/Expr/BinaryOp/LogicalAnd.php | 16 - .../Node/Expr/BinaryOp/LogicalOr.php | 16 - .../Node/Expr/BinaryOp/LogicalXor.php | 16 - .../PhpParser/Node/Expr/BinaryOp/Minus.php | 16 - .../lib/PhpParser/Node/Expr/BinaryOp/Mod.php | 16 - .../lib/PhpParser/Node/Expr/BinaryOp/Mul.php | 16 - .../PhpParser/Node/Expr/BinaryOp/NotEqual.php | 16 - .../Node/Expr/BinaryOp/NotIdentical.php | 16 - .../lib/PhpParser/Node/Expr/BinaryOp/Plus.php | 16 - .../lib/PhpParser/Node/Expr/BinaryOp/Pow.php | 16 - .../Node/Expr/BinaryOp/ShiftLeft.php | 16 - .../Node/Expr/BinaryOp/ShiftRight.php | 16 - .../PhpParser/Node/Expr/BinaryOp/Smaller.php | 16 - .../Node/Expr/BinaryOp/SmallerOrEqual.php | 16 - .../Node/Expr/BinaryOp/Spaceship.php | 16 - .../lib/PhpParser/Node/Expr/BitwiseNot.php | 30 - .../lib/PhpParser/Node/Expr/BooleanNot.php | 30 - .../lib/PhpParser/Node/Expr/Cast.php | 26 - .../lib/PhpParser/Node/Expr/Cast/Array_.php | 12 - .../lib/PhpParser/Node/Expr/Cast/Bool_.php | 12 - .../lib/PhpParser/Node/Expr/Cast/Double.php | 12 - .../lib/PhpParser/Node/Expr/Cast/Int_.php | 12 - .../lib/PhpParser/Node/Expr/Cast/Object_.php | 12 - .../lib/PhpParser/Node/Expr/Cast/String_.php | 12 - .../lib/PhpParser/Node/Expr/Cast/Unset_.php | 12 - .../PhpParser/Node/Expr/ClassConstFetch.php | 36 - .../lib/PhpParser/Node/Expr/Clone_.php | 30 - .../lib/PhpParser/Node/Expr/Closure.php | 71 - .../lib/PhpParser/Node/Expr/ClosureUse.php | 34 - .../lib/PhpParser/Node/Expr/ConstFetch.php | 31 - .../lib/PhpParser/Node/Expr/Empty_.php | 30 - .../lib/PhpParser/Node/Expr/Error.php | 31 - .../lib/PhpParser/Node/Expr/ErrorSuppress.php | 30 - .../lib/PhpParser/Node/Expr/Eval_.php | 30 - .../lib/PhpParser/Node/Expr/Exit_.php | 34 - .../lib/PhpParser/Node/Expr/FuncCall.php | 35 - .../lib/PhpParser/Node/Expr/Include_.php | 39 - .../lib/PhpParser/Node/Expr/Instanceof_.php | 35 - .../lib/PhpParser/Node/Expr/Isset_.php | 30 - .../lib/PhpParser/Node/Expr/List_.php | 30 - .../lib/PhpParser/Node/Expr/MethodCall.php | 40 - .../lib/PhpParser/Node/Expr/New_.php | 35 - .../lib/PhpParser/Node/Expr/PostDec.php | 30 - .../lib/PhpParser/Node/Expr/PostInc.php | 30 - .../lib/PhpParser/Node/Expr/PreDec.php | 30 - .../lib/PhpParser/Node/Expr/PreInc.php | 30 - .../lib/PhpParser/Node/Expr/Print_.php | 30 - .../lib/PhpParser/Node/Expr/PropertyFetch.php | 35 - .../lib/PhpParser/Node/Expr/ShellExec.php | 30 - .../lib/PhpParser/Node/Expr/StaticCall.php | 40 - .../Node/Expr/StaticPropertyFetch.php | 36 - .../lib/PhpParser/Node/Expr/Ternary.php | 38 - .../lib/PhpParser/Node/Expr/UnaryMinus.php | 30 - .../lib/PhpParser/Node/Expr/UnaryPlus.php | 30 - .../lib/PhpParser/Node/Expr/Variable.php | 30 - .../lib/PhpParser/Node/Expr/YieldFrom.php | 30 - .../lib/PhpParser/Node/Expr/Yield_.php | 34 - .../lib/PhpParser/Node/FunctionLike.php | 36 - .../lib/PhpParser/Node/Identifier.php | 75 - .../php-parser/lib/PhpParser/Node/Name.php | 244 - .../PhpParser/Node/Name/FullyQualified.php | 50 - .../lib/PhpParser/Node/Name/Relative.php | 50 - .../lib/PhpParser/Node/NullableType.php | 30 - .../php-parser/lib/PhpParser/Node/Param.php | 49 - .../php-parser/lib/PhpParser/Node/Scalar.php | 7 - .../lib/PhpParser/Node/Scalar/DNumber.php | 68 - .../lib/PhpParser/Node/Scalar/Encapsed.php | 31 - .../Node/Scalar/EncapsedStringPart.php | 30 - .../lib/PhpParser/Node/Scalar/LNumber.php | 71 - .../lib/PhpParser/Node/Scalar/MagicConst.php | 28 - .../Node/Scalar/MagicConst/Class_.php | 16 - .../PhpParser/Node/Scalar/MagicConst/Dir.php | 16 - .../PhpParser/Node/Scalar/MagicConst/File.php | 16 - .../Node/Scalar/MagicConst/Function_.php | 16 - .../PhpParser/Node/Scalar/MagicConst/Line.php | 16 - .../Node/Scalar/MagicConst/Method.php | 16 - .../Node/Scalar/MagicConst/Namespace_.php | 16 - .../Node/Scalar/MagicConst/Trait_.php | 16 - .../lib/PhpParser/Node/Scalar/String_.php | 164 - .../php-parser/lib/PhpParser/Node/Stmt.php | 9 - .../lib/PhpParser/Node/Stmt/Break_.php | 30 - .../lib/PhpParser/Node/Stmt/Case_.php | 34 - .../lib/PhpParser/Node/Stmt/Catch_.php | 41 - .../lib/PhpParser/Node/Stmt/ClassConst.php | 62 - .../lib/PhpParser/Node/Stmt/ClassLike.php | 48 - .../lib/PhpParser/Node/Stmt/ClassMethod.php | 151 - .../lib/PhpParser/Node/Stmt/Class_.php | 105 - .../lib/PhpParser/Node/Stmt/Const_.php | 30 - .../lib/PhpParser/Node/Stmt/Continue_.php | 30 - .../PhpParser/Node/Stmt/DeclareDeclare.php | 34 - .../lib/PhpParser/Node/Stmt/Declare_.php | 34 - .../lib/PhpParser/Node/Stmt/Do_.php | 34 - .../lib/PhpParser/Node/Stmt/Echo_.php | 30 - .../lib/PhpParser/Node/Stmt/ElseIf_.php | 34 - .../lib/PhpParser/Node/Stmt/Else_.php | 30 - .../lib/PhpParser/Node/Stmt/Expression.php | 33 - .../lib/PhpParser/Node/Stmt/Finally_.php | 30 - .../lib/PhpParser/Node/Stmt/For_.php | 43 - .../lib/PhpParser/Node/Stmt/Foreach_.php | 47 - .../lib/PhpParser/Node/Stmt/Function_.php | 69 - .../lib/PhpParser/Node/Stmt/Global_.php | 30 - .../lib/PhpParser/Node/Stmt/Goto_.php | 31 - .../lib/PhpParser/Node/Stmt/GroupUse.php | 39 - .../lib/PhpParser/Node/Stmt/HaltCompiler.php | 30 - .../lib/PhpParser/Node/Stmt/If_.php | 43 - .../lib/PhpParser/Node/Stmt/InlineHTML.php | 30 - .../lib/PhpParser/Node/Stmt/Interface_.php | 35 - .../lib/PhpParser/Node/Stmt/Label.php | 31 - .../lib/PhpParser/Node/Stmt/Namespace_.php | 38 - .../lib/PhpParser/Node/Stmt/Nop.php | 17 - .../lib/PhpParser/Node/Stmt/Property.php | 71 - .../PhpParser/Node/Stmt/PropertyProperty.php | 34 - .../lib/PhpParser/Node/Stmt/Return_.php | 30 - .../lib/PhpParser/Node/Stmt/StaticVar.php | 37 - .../lib/PhpParser/Node/Stmt/Static_.php | 30 - .../lib/PhpParser/Node/Stmt/Switch_.php | 34 - .../lib/PhpParser/Node/Stmt/Throw_.php | 30 - .../lib/PhpParser/Node/Stmt/TraitUse.php | 34 - .../Node/Stmt/TraitUseAdaptation.php | 13 - .../Node/Stmt/TraitUseAdaptation/Alias.php | 38 - .../Stmt/TraitUseAdaptation/Precedence.php | 34 - .../lib/PhpParser/Node/Stmt/Trait_.php | 30 - .../lib/PhpParser/Node/Stmt/TryCatch.php | 38 - .../lib/PhpParser/Node/Stmt/Unset_.php | 30 - .../lib/PhpParser/Node/Stmt/UseUse.php | 52 - .../lib/PhpParser/Node/Stmt/Use_.php | 47 - .../lib/PhpParser/Node/Stmt/While_.php | 34 - .../lib/PhpParser/Node/VarLikeIdentifier.php | 17 - .../php-parser/lib/PhpParser/NodeAbstract.php | 183 - .../php-parser/lib/PhpParser/NodeDumper.php | 203 - .../php-parser/lib/PhpParser/NodeFinder.php | 81 - .../lib/PhpParser/NodeTraverser.php | 263 - .../lib/PhpParser/NodeTraverserInterface.php | 29 - .../php-parser/lib/PhpParser/NodeVisitor.php | 72 - .../PhpParser/NodeVisitor/CloningVisitor.php | 20 - .../PhpParser/NodeVisitor/FindingVisitor.php | 48 - .../NodeVisitor/FirstFindingVisitor.php | 50 - .../PhpParser/NodeVisitor/NameResolver.php | 218 - .../lib/PhpParser/NodeVisitorAbstract.php | 25 - .../nikic/php-parser/lib/PhpParser/Parser.php | 18 - .../lib/PhpParser/Parser/Multiple.php | 55 - .../php-parser/lib/PhpParser/Parser/Php5.php | 2629 -- .../php-parser/lib/PhpParser/Parser/Php7.php | 2440 -- .../lib/PhpParser/Parser/Tokens.php | 144 - .../lib/PhpParser/ParserAbstract.php | 865 - .../lib/PhpParser/ParserFactory.php | 44 - .../lib/PhpParser/PrettyPrinter/Standard.php | 969 - .../lib/PhpParser/PrettyPrinterAbstract.php | 1346 - vendor/nikic/php-parser/phpunit.xml.dist | 18 - .../test/PhpParser/Builder/ClassTest.php | 162 - .../test/PhpParser/Builder/FunctionTest.php | 121 - .../test/PhpParser/Builder/InterfaceTest.php | 105 - .../test/PhpParser/Builder/MethodTest.php | 169 - .../test/PhpParser/Builder/NamespaceTest.php | 47 - .../test/PhpParser/Builder/ParamTest.php | 171 - .../test/PhpParser/Builder/PropertyTest.php | 148 - .../test/PhpParser/Builder/TraitTest.php | 49 - .../test/PhpParser/Builder/UseTest.php | 30 - .../test/PhpParser/BuilderFactoryTest.php | 286 - .../test/PhpParser/CodeParsingTest.php | 120 - .../test/PhpParser/CodeTestAbstract.php | 30 - .../test/PhpParser/CodeTestParser.php | 68 - .../php-parser/test/PhpParser/CommentTest.php | 76 - .../test/PhpParser/ConstExprEvaluatorTest.php | 133 - .../PhpParser/ErrorHandler/CollectingTest.php | 24 - .../PhpParser/ErrorHandler/ThrowingTest.php | 18 - .../php-parser/test/PhpParser/ErrorTest.php | 108 - .../test/PhpParser/Internal/DifferTest.php | 67 - .../test/PhpParser/JsonDecoderTest.php | 45 - .../test/PhpParser/Lexer/EmulativeTest.php | 133 - .../php-parser/test/PhpParser/LexerTest.php | 266 - .../test/PhpParser/NameContextTest.php | 66 - .../test/PhpParser/Node/IdentifierTest.php | 31 - .../test/PhpParser/Node/NameTest.php | 173 - .../PhpParser/Node/Scalar/MagicConstTest.php | 28 - .../test/PhpParser/Node/Scalar/StringTest.php | 63 - .../PhpParser/Node/Stmt/ClassConstTest.php | 36 - .../PhpParser/Node/Stmt/ClassMethodTest.php | 124 - .../test/PhpParser/Node/Stmt/ClassTest.php | 61 - .../PhpParser/Node/Stmt/InterfaceTest.php | 27 - .../test/PhpParser/Node/Stmt/PropertyTest.php | 46 - .../test/PhpParser/NodeAbstractTest.php | 327 - .../test/PhpParser/NodeDumperTest.php | 109 - .../test/PhpParser/NodeFinderTest.php | 60 - .../test/PhpParser/NodeTraverserTest.php | 312 - .../NodeVisitor/FindingVisitorTest.php | 54 - .../NodeVisitor/FirstFindingVisitorTest.php | 39 - .../NodeVisitor/NameResolverTest.php | 493 - .../test/PhpParser/Parser/MultipleTest.php | 96 - .../test/PhpParser/Parser/Php5Test.php | 15 - .../test/PhpParser/Parser/Php7Test.php | 15 - .../test/PhpParser/ParserFactoryTest.php | 37 - .../php-parser/test/PhpParser/ParserTest.php | 185 - .../test/PhpParser/PrettyPrinterTest.php | 315 - vendor/nikic/php-parser/test/bootstrap.php | 31 - .../code/formatPreservation/anonClasses.test | 16 - .../test/code/formatPreservation/basic.test | 190 - .../formatPreservation/blockConversion.test | 29 - .../code/formatPreservation/comments.test | 52 - .../test/code/formatPreservation/fixup.test | 67 - .../code/formatPreservation/inlineHtml.test | 54 - .../insertionOfNullable.test | 176 - .../formatPreservation/listInsertion.test | 312 - .../listInsertionIndentation.test | 17 - .../code/formatPreservation/listRemoval.test | 41 - .../formatPreservation/modifierChange.test | 33 - .../formatPreservation/nopCommentAtEnd.test | 11 - .../formatPreservation/removalViaNull.test | 194 - .../code/formatPreservation/traitAlias.test | 19 - .../test/code/parser/blockComments.test | 36 - .../test/code/parser/commentAtEndOfClass.test | 37 - .../php-parser/test/code/parser/comments.test | 108 - .../code/parser/errorHandling/eofError.test | 36 - .../parser/errorHandling/lexerErrors.test | 140 - .../code/parser/errorHandling/recovery.test | 1376 - .../test/code/parser/expr/arrayDef.test | 161 - .../code/parser/expr/arrayDestructuring.test | 152 - .../test/code/parser/expr/assign.test | 363 - .../test/code/parser/expr/assignNewByRef.test | 43 - .../test/code/parser/expr/cast.test | 94 - .../test/code/parser/expr/clone.test | 15 - .../test/code/parser/expr/closure.test | 176 - .../test/code/parser/expr/comparison.test | 129 - .../test/code/parser/expr/constant_expr.test | 691 - .../test/code/parser/expr/errorSuppress.test | 14 - .../test/code/parser/expr/exit.test | 46 - .../code/parser/expr/fetchAndCall/args.test | 109 - .../parser/expr/fetchAndCall/constFetch.test | 43 - .../expr/fetchAndCall/constantDeref.test | 253 - .../parser/expr/fetchAndCall/funcCall.test | 158 - .../parser/expr/fetchAndCall/newDeref.test | 82 - .../expr/fetchAndCall/objectAccess.test | 184 - .../expr/fetchAndCall/simpleArrayAccess.test | 72 - .../parser/expr/fetchAndCall/staticCall.test | 214 - .../fetchAndCall/staticPropertyFetch.test | 113 - .../test/code/parser/expr/includeAndEval.test | 50 - .../test/code/parser/expr/issetAndEmpty.test | 85 - .../test/code/parser/expr/listReferences.test | 88 - .../test/code/parser/expr/listWithKeys.test | 79 - .../test/code/parser/expr/logic.test | 190 - .../test/code/parser/expr/math.test | 313 - .../php-parser/test/code/parser/expr/new.test | 187 - .../code/parser/expr/newWithoutClass.test | 25 - .../test/code/parser/expr/print.test | 14 - .../test/code/parser/expr/shellExec.test | 56 - .../code/parser/expr/ternaryAndCoalesce.test | 174 - .../test/code/parser/expr/trailingCommas.test | 140 - .../expr/uvs/globalNonSimpleVarError.test | 27 - .../code/parser/expr/uvs/indirectCall.test | 507 - .../test/code/parser/expr/uvs/isset.test | 84 - .../test/code/parser/expr/uvs/misc.test | 127 - .../test/code/parser/expr/uvs/new.test | 119 - .../code/parser/expr/uvs/staticProperty.test | 123 - .../test/code/parser/expr/variable.test | 67 - .../test/code/parser/exprStmtMode.test | 57 - .../code/parser/scalar/constantString.test | 86 - .../test/code/parser/scalar/docString.test | 115 - .../code/parser/scalar/docStringNewlines.test | 77 - .../parser/scalar/encapsedNegVarOffset.test | 82 - .../code/parser/scalar/encapsedString.test | 344 - .../test/code/parser/scalar/float.test | 108 - .../test/code/parser/scalar/int.test | 61 - .../test/code/parser/scalar/invalidOctal.test | 26 - .../test/code/parser/scalar/magicConst.test | 47 - .../code/parser/scalar/unicodeEscape.test | 26 - .../test/code/parser/semiReserved.test | 488 - .../code/parser/stmt/blocklessStatement.test | 130 - .../test/code/parser/stmt/class/abstract.test | 45 - .../code/parser/stmt/class/anonymous.test | 213 - .../code/parser/stmt/class/conditional.test | 35 - .../stmt/class/constModifierErrors.test | 137 - .../parser/stmt/class/constModifiers.test | 77 - .../test/code/parser/stmt/class/final.test | 19 - .../parser/stmt/class/implicitPublic.test | 108 - .../code/parser/stmt/class/interface.test | 40 - .../test/code/parser/stmt/class/modifier.test | 249 - .../test/code/parser/stmt/class/name.test | 266 - .../code/parser/stmt/class/php4Style.test | 58 - .../test/code/parser/stmt/class/simple.test | 182 - .../code/parser/stmt/class/staticMethod.test | 175 - .../test/code/parser/stmt/class/trait.test | 188 - .../test/code/parser/stmt/const.test | 48 - .../test/code/parser/stmt/controlFlow.test | 59 - .../test/code/parser/stmt/declare.test | 70 - .../test/code/parser/stmt/echo.test | 32 - .../function/builtinTypeDeclarations.test | 87 - .../test/code/parser/stmt/function/byRef.test | 49 - .../parser/stmt/function/conditional.test | 35 - .../parser/stmt/function/defaultValues.test | 170 - .../parser/stmt/function/nullableTypes.test | 55 - .../parser/stmt/function/returnTypes.test | 64 - .../parser/stmt/function/specialVars.test | 57 - .../stmt/function/typeDeclarations.test | 63 - .../code/parser/stmt/function/variadic.test | 134 - .../stmt/function/variadicDefaultValue.test | 31 - .../code/parser/stmt/generator/basic.test | 319 - .../stmt/generator/yieldPrecedence.test | 250 - .../stmt/generator/yieldUnaryPrecedence.test | 56 - .../test/code/parser/stmt/haltCompiler.test | 61 - .../stmt/haltCompilerInvalidSyntax.test | 6 - .../code/parser/stmt/haltCompilerOffset.test | 36 - .../stmt/haltCompilerOutermostScope.test | 8 - .../test/code/parser/stmt/hashbang.test | 26 - .../php-parser/test/code/parser/stmt/if.test | 103 - .../test/code/parser/stmt/inlineHTML.test | 33 - .../test/code/parser/stmt/loop/do.test | 17 - .../test/code/parser/stmt/loop/for.test | 110 - .../test/code/parser/stmt/loop/foreach.test | 164 - .../test/code/parser/stmt/loop/while.test | 25 - .../test/code/parser/stmt/multiCatch.test | 75 - .../code/parser/stmt/namespace/alias.test | 178 - .../code/parser/stmt/namespace/braced.test | 46 - .../stmt/namespace/commentAfterNamespace.test | 22 - .../code/parser/stmt/namespace/groupUse.test | 188 - .../parser/stmt/namespace/groupUseErrors.test | 113 - .../stmt/namespace/groupUsePositions.test | 28 - .../stmt/namespace/groupUseTrailingComma.test | 47 - .../parser/stmt/namespace/invalidName.test | 87 - .../test/code/parser/stmt/namespace/mix.test | 103 - .../test/code/parser/stmt/namespace/name.test | 50 - .../code/parser/stmt/namespace/nested.test | 30 - .../code/parser/stmt/namespace/notBraced.test | 49 - .../stmt/namespace/nsAfterHashbang.test | 22 - .../parser/stmt/namespace/outsideStmt.test | 60 - .../stmt/namespace/outsideStmtInvalid.test | 109 - .../test/code/parser/stmt/switch.test | 81 - .../test/code/parser/stmt/tryCatch.test | 144 - .../code/parser/stmt/tryWithoutCatch.test | 29 - .../test/code/parser/stmt/unset.test | 26 - .../test/code/prettyPrinter/comments.test | 67 - .../prettyPrinter/commentsInCommaList.test | 53 - .../prettyPrinter/expr/anonymousClass.test | 27 - .../expr/arrayDestructuring.test | 14 - .../test/code/prettyPrinter/expr/call.test | 13 - .../test/code/prettyPrinter/expr/closure.test | 18 - .../prettyPrinter/expr/constant_deref.test | 13 - .../code/prettyPrinter/expr/docStrings.test | 86 - .../test/code/prettyPrinter/expr/include.test | 7 - .../code/prettyPrinter/expr/intrinsics.test | 29 - .../test/code/prettyPrinter/expr/list.test | 19 - .../code/prettyPrinter/expr/literals.test | 158 - .../test/code/prettyPrinter/expr/numbers.test | 35 - .../code/prettyPrinter/expr/operators.test | 144 - .../code/prettyPrinter/expr/parentheses.test | 86 - .../prettyPrinter/expr/shortArraySyntax.test | 11 - .../prettyPrinter/expr/stringEscaping.test | 23 - .../test/code/prettyPrinter/expr/uvs.test | 23 - .../code/prettyPrinter/expr/variables.test | 73 - .../test/code/prettyPrinter/expr/yield.test | 46 - .../inlineHTMLandPHPtest.file-test | 58 - .../code/prettyPrinter/nestedInlineHTML.test | 16 - .../prettyPrinter/onlyInlineHTML.file-test | 19 - .../test/code/prettyPrinter/onlyPHP.file-test | 16 - .../test/code/prettyPrinter/stmt/alias.test | 20 - .../prettyPrinter/stmt/break_continue.test | 13 - .../test/code/prettyPrinter/stmt/class.test | 53 - .../code/prettyPrinter/stmt/class_const.test | 20 - .../test/code/prettyPrinter/stmt/const.test | 11 - .../test/code/prettyPrinter/stmt/declare.test | 17 - .../code/prettyPrinter/stmt/do_while.test | 10 - .../test/code/prettyPrinter/stmt/for.test | 28 - .../test/code/prettyPrinter/stmt/foreach.test | 28 - .../stmt/function_signatures.test | 43 - .../stmt/global_static_variables.test | 11 - .../test/code/prettyPrinter/stmt/goto.test | 9 - .../code/prettyPrinter/stmt/groupUse.test | 16 - .../prettyPrinter/stmt/haltCompiler.file-test | 27 - .../test/code/prettyPrinter/stmt/if.test | 16 - .../code/prettyPrinter/stmt/multiCatch.test | 19 - .../code/prettyPrinter/stmt/namespaces.test | 50 - .../prettyPrinter/stmt/nullable_types.test | 11 - .../test/code/prettyPrinter/stmt/switch.test | 37 - .../test/code/prettyPrinter/stmt/throw.test | 7 - .../code/prettyPrinter/stmt/traitUse.test | 25 - .../code/prettyPrinter/stmt/tryCatch.test | 24 - .../test/code/prettyPrinter/stmt/while.test | 10 - vendor/nikic/php-parser/test/updateTests.php | 32 - .../nikic/php-parser/test_old/run-php-src.sh | 4 - vendor/nikic/php-parser/test_old/run.php | 251 - vendor/owen-it/laravel-auditing/LICENSE.md | 21 - vendor/owen-it/laravel-auditing/composer.json | 76 - .../owen-it/laravel-auditing/config/audit.php | 156 - .../database/migrations/audits.stub | 52 - .../laravel-auditing/drivers/driver.stub | 46 - vendor/owen-it/laravel-auditing/src/Audit.php | 231 - .../laravel-auditing/src/Auditable.php | 615 - .../src/AuditableObserver.php | 110 - .../src/AuditingServiceProvider.php | 75 - .../owen-it/laravel-auditing/src/Auditor.php | 114 - .../src/Console/AuditDriverMakeCommand.php | 51 - .../src/Console/AuditTableCommand.php | 78 - .../src/Console/InstallCommand.php | 50 - .../laravel-auditing/src/Contracts/Audit.php | 87 - .../src/Contracts/AuditDriver.php | 36 - .../src/Contracts/AuditRedactor.php | 27 - .../src/Contracts/Auditable.php | 143 - .../src/Contracts/Auditor.php | 36 - .../src/Contracts/IpAddressResolver.php | 25 - .../src/Contracts/UrlResolver.php | 25 - .../src/Contracts/UserAgentResolver.php | 25 - .../src/Contracts/UserResolver.php | 25 - .../laravel-auditing/src/Drivers/Database.php | 58 - .../laravel-auditing/src/Events/Audited.php | 57 - .../laravel-auditing/src/Events/Auditing.php | 47 - .../AuditableTransitionException.php | 47 - .../src/Exceptions/AuditingException.php | 21 - .../laravel-auditing/src/Facades/Auditor.php | 32 - .../laravel-auditing/src/Models/Audit.php | 35 - .../src/Redactors/LeftRedactor.php | 32 - .../src/Redactors/RightRedactor.php | 32 - .../src/Resolvers/IpAddressResolver.php | 28 - .../src/Resolvers/UrlResolver.php | 33 - .../src/Resolvers/UserAgentResolver.php | 28 - .../src/Resolvers/UserResolver.php | 28 - vendor/paragonie/random_compat/LICENSE | 22 - vendor/paragonie/random_compat/build-phar.sh | 5 - vendor/paragonie/random_compat/composer.json | 34 - .../dist/random_compat.phar.pubkey | 5 - .../dist/random_compat.phar.pubkey.asc | 11 - vendor/paragonie/random_compat/lib/random.php | 32 - .../random_compat/other/build_phar.php | 57 - .../random_compat/psalm-autoload.php | 9 - vendor/paragonie/random_compat/psalm.xml | 19 - vendor/phar-io/manifest/.php_cs | 67 - vendor/phar-io/manifest/.travis.yml | 33 - vendor/phar-io/manifest/LICENSE | 31 - vendor/phar-io/manifest/README.md | 30 - vendor/phar-io/manifest/build.xml | 50 - vendor/phar-io/manifest/composer.json | 42 - vendor/phar-io/manifest/composer.lock | 69 - .../phar-io/manifest/examples/example-01.php | 23 - vendor/phar-io/manifest/phive.xml | 4 - vendor/phar-io/manifest/phpunit.xml | 20 - .../manifest/src/ManifestDocumentMapper.php | 193 - .../phar-io/manifest/src/ManifestLoader.php | 66 - .../manifest/src/ManifestSerializer.php | 163 - .../manifest/src/exceptions/Exception.php | 14 - .../InvalidApplicationNameException.php | 16 - .../src/exceptions/InvalidEmailException.php | 14 - .../src/exceptions/InvalidUrlException.php | 14 - .../exceptions/ManifestDocumentException.php | 6 - .../ManifestDocumentMapperException.php | 6 - .../exceptions/ManifestElementException.php | 6 - .../exceptions/ManifestLoaderException.php | 6 - .../manifest/src/values/Application.php | 20 - .../manifest/src/values/ApplicationName.php | 65 - vendor/phar-io/manifest/src/values/Author.php | 57 - .../manifest/src/values/AuthorCollection.php | 43 - .../src/values/AuthorCollectionIterator.php | 56 - .../manifest/src/values/BundledComponent.php | 48 - .../src/values/BundledComponentCollection.php | 43 - .../BundledComponentCollectionIterator.php | 56 - .../src/values/CopyrightInformation.php | 42 - vendor/phar-io/manifest/src/values/Email.php | 47 - .../phar-io/manifest/src/values/Extension.php | 75 - .../phar-io/manifest/src/values/Library.php | 20 - .../phar-io/manifest/src/values/License.php | 42 - .../phar-io/manifest/src/values/Manifest.php | 138 - .../src/values/PhpExtensionRequirement.php | 32 - .../src/values/PhpVersionRequirement.php | 31 - .../manifest/src/values/Requirement.php | 14 - .../src/values/RequirementCollection.php | 43 - .../values/RequirementCollectionIterator.php | 56 - vendor/phar-io/manifest/src/values/Type.php | 60 - vendor/phar-io/manifest/src/values/Url.php | 47 - .../manifest/src/xml/AuthorElement.php | 21 - .../src/xml/AuthorElementCollection.php | 19 - .../manifest/src/xml/BundlesElement.php | 19 - .../manifest/src/xml/ComponentElement.php | 21 - .../src/xml/ComponentElementCollection.php | 19 - .../manifest/src/xml/ContainsElement.php | 31 - .../manifest/src/xml/CopyrightElement.php | 25 - .../manifest/src/xml/ElementCollection.php | 58 - .../phar-io/manifest/src/xml/ExtElement.php | 17 - .../manifest/src/xml/ExtElementCollection.php | 20 - .../manifest/src/xml/ExtensionElement.php | 21 - .../manifest/src/xml/LicenseElement.php | 21 - .../manifest/src/xml/ManifestDocument.php | 118 - .../xml/ManifestDocumentLoadingException.php | 48 - .../manifest/src/xml/ManifestElement.php | 100 - .../phar-io/manifest/src/xml/PhpElement.php | 27 - .../manifest/src/xml/RequiresElement.php | 19 - .../tests/ManifestDocumentMapperTest.php | 110 - .../manifest/tests/ManifestLoaderTest.php | 83 - .../manifest/tests/ManifestSerializerTest.php | 114 - .../manifest/tests/_fixture/custom.xml | 10 - .../_fixture/extension-invalidcompatible.xml | 13 - .../manifest/tests/_fixture/extension.xml | 13 - .../tests/_fixture/invalidversion.xml | 11 - .../_fixture/invalidversionconstraint.xml | 11 - .../manifest/tests/_fixture/library.xml | 11 - .../manifest/tests/_fixture/manifest.xml | 11 - .../manifest/tests/_fixture/phpunit-5.6.5.xml | 46 - .../phar-io/manifest/tests/_fixture/test.phar | Bin 7165 -> 0 bytes .../ManifestDocumentLoadingExceptionTest.php | 19 - .../tests/values/ApplicationNameTest.php | 57 - .../manifest/tests/values/ApplicationTest.php | 44 - .../tests/values/AuthorCollectionTest.php | 62 - .../manifest/tests/values/AuthorTest.php | 45 - .../values/BundledComponentCollectionTest.php | 63 - .../tests/values/BundledComponentTest.php | 42 - .../tests/values/CopyrightInformationTest.php | 62 - .../manifest/tests/values/EmailTest.php | 35 - .../manifest/tests/values/ExtensionTest.php | 109 - .../manifest/tests/values/LibraryTest.php | 44 - .../manifest/tests/values/LicenseTest.php | 41 - .../manifest/tests/values/ManifestTest.php | 187 - .../values/PhpExtensionRequirementTest.php | 26 - .../values/PhpVersionRequirementTest.php | 38 - .../values/RequirementCollectionTest.php | 63 - .../phar-io/manifest/tests/values/UrlTest.php | 35 - .../tests/xml/AuthorElementCollectionTest.php | 18 - .../manifest/tests/xml/AuthorElementTest.php | 25 - .../manifest/tests/xml/BundlesElementTest.php | 41 - .../xml/ComponentElementCollectionTest.php | 18 - .../tests/xml/ComponentElementTest.php | 25 - .../tests/xml/ContainsElementTest.php | 63 - .../tests/xml/CopyrightElementTest.php | 52 - .../tests/xml/ExtElementCollectionTest.php | 19 - .../manifest/tests/xml/ExtElementTest.php | 21 - .../tests/xml/ExtensionElementTest.php | 25 - .../manifest/tests/xml/LicenseElementTest.php | 25 - .../tests/xml/ManifestDocumentTest.php | 110 - .../manifest/tests/xml/PhpElementTest.php | 48 - .../tests/xml/RequiresElementTest.php | 37 - vendor/phar-io/version/.php_cs | 67 - vendor/phar-io/version/.travis.yml | 33 - vendor/phar-io/version/CHANGELOG.md | 44 - vendor/phar-io/version/LICENSE | 31 - vendor/phar-io/version/README.md | 61 - vendor/phar-io/version/build.xml | 41 - vendor/phar-io/version/composer.json | 34 - vendor/phar-io/version/phive.xml | 5 - vendor/phar-io/version/phpunit.xml | 19 - .../phar-io/version/src/PreReleaseSuffix.php | 95 - vendor/phar-io/version/src/Version.php | 175 - .../version/src/VersionConstraintParser.php | 122 - .../version/src/VersionConstraintValue.php | 123 - vendor/phar-io/version/src/VersionNumber.php | 41 - .../constraints/AbstractVersionConstraint.php | 32 - .../constraints/AndVersionConstraintGroup.php | 43 - .../src/constraints/AnyVersionConstraint.php | 29 - .../constraints/ExactVersionConstraint.php | 22 - .../GreaterThanOrEqualToVersionConstraint.php | 38 - .../constraints/OrVersionConstraintGroup.php | 43 - ...SpecificMajorAndMinorVersionConstraint.php | 48 - .../SpecificMajorVersionConstraint.php | 37 - .../src/constraints/VersionConstraint.php | 26 - .../version/src/exceptions/Exception.php | 14 - .../InvalidPreReleaseSuffixException.php | 7 - .../exceptions/InvalidVersionException.php | 6 - .../UnsupportedVersionConstraintException.php | 14 - .../VersionConstraintParserTest.php | 146 - .../Unit/AbstractVersionConstraintTest.php | 25 - .../Unit/AndVersionConstraintGroupTest.php | 52 - .../tests/Unit/AnyVersionConstraintTest.php | 41 - .../tests/Unit/ExactVersionConstraintTest.php | 58 - ...aterThanOrEqualToVersionConstraintTest.php | 47 - .../Unit/OrVersionConstraintGroupTest.php | 65 - .../tests/Unit/PreReleaseSuffixTest.php | 46 - ...ificMajorAndMinorVersionConstraintTest.php | 45 - .../SpecificMajorVersionConstraintTest.php | 44 - .../version/tests/Unit/VersionTest.php | 113 - .../reflection-common/.travis.yml | 35 - .../phpdocumentor/reflection-common/LICENSE | 22 - .../phpdocumentor/reflection-common/README.md | 2 - .../reflection-common/composer.json | 29 - .../reflection-common/src/Element.php | 32 - .../reflection-common/src/File.php | 40 - .../reflection-common/src/Fqsen.php | 82 - .../reflection-common/src/Location.php | 57 - .../reflection-common/src/Project.php | 25 - .../reflection-common/src/ProjectFactory.php | 27 - .../reflection-docblock/.coveralls.yml | 3 - .../phpdocumentor/reflection-docblock/LICENSE | 21 - .../reflection-docblock/README.md | 67 - .../reflection-docblock/composer.json | 34 - .../easy-coding-standard.neon | 31 - .../reflection-docblock/src/DocBlock.php | 236 - .../src/DocBlock/Description.php | 114 - .../src/DocBlock/DescriptionFactory.php | 191 - .../src/DocBlock/ExampleFinder.php | 170 - .../src/DocBlock/Serializer.php | 155 - .../src/DocBlock/StandardTagFactory.php | 319 - .../reflection-docblock/src/DocBlock/Tag.php | 26 - .../src/DocBlock/TagFactory.php | 93 - .../src/DocBlock/Tags/Author.php | 100 - .../src/DocBlock/Tags/BaseTag.php | 52 - .../src/DocBlock/Tags/Covers.php | 83 - .../src/DocBlock/Tags/Deprecated.php | 97 - .../src/DocBlock/Tags/Example.php | 176 - .../DocBlock/Tags/Factory/StaticMethod.php | 18 - .../src/DocBlock/Tags/Factory/Strategy.php | 18 - .../src/DocBlock/Tags/Formatter.php | 27 - .../Tags/Formatter/AlignFormatter.php | 47 - .../Tags/Formatter/PassthroughFormatter.php | 31 - .../src/DocBlock/Tags/Generic.php | 91 - .../src/DocBlock/Tags/Link.php | 77 - .../src/DocBlock/Tags/Method.php | 242 - .../src/DocBlock/Tags/Param.php | 141 - .../src/DocBlock/Tags/Property.php | 118 - .../src/DocBlock/Tags/PropertyRead.php | 118 - .../src/DocBlock/Tags/PropertyWrite.php | 118 - .../src/DocBlock/Tags/Reference/Fqsen.php | 42 - .../src/DocBlock/Tags/Reference/Reference.php | 21 - .../src/DocBlock/Tags/Reference/Url.php | 40 - .../src/DocBlock/Tags/Return_.php | 72 - .../src/DocBlock/Tags/See.php | 88 - .../src/DocBlock/Tags/Since.php | 94 - .../src/DocBlock/Tags/Source.php | 97 - .../src/DocBlock/Tags/Throws.php | 72 - .../src/DocBlock/Tags/Uses.php | 83 - .../src/DocBlock/Tags/Var_.php | 118 - .../src/DocBlock/Tags/Version.php | 94 - .../src/DocBlockFactory.php | 277 - .../src/DocBlockFactoryInterface.php | 23 - vendor/phpdocumentor/type-resolver/LICENSE | 21 - vendor/phpdocumentor/type-resolver/README.md | 182 - .../phpdocumentor/type-resolver/composer.json | 27 - .../type-resolver/src/FqsenResolver.php | 77 - .../phpdocumentor/type-resolver/src/Type.php | 18 - .../type-resolver/src/TypeResolver.php | 298 - .../type-resolver/src/Types/Array_.php | 86 - .../type-resolver/src/Types/Boolean.php | 31 - .../type-resolver/src/Types/Callable_.php | 31 - .../type-resolver/src/Types/Compound.php | 93 - .../type-resolver/src/Types/Context.php | 84 - .../src/Types/ContextFactory.php | 210 - .../type-resolver/src/Types/Float_.php | 31 - .../type-resolver/src/Types/Integer.php | 28 - .../type-resolver/src/Types/Iterable_.php | 31 - .../type-resolver/src/Types/Mixed_.php | 31 - .../type-resolver/src/Types/Null_.php | 31 - .../type-resolver/src/Types/Nullable.php | 56 - .../type-resolver/src/Types/Object_.php | 71 - .../type-resolver/src/Types/Parent_.php | 33 - .../type-resolver/src/Types/Resource_.php | 31 - .../type-resolver/src/Types/Scalar.php | 31 - .../type-resolver/src/Types/Self_.php | 33 - .../type-resolver/src/Types/Static_.php | 38 - .../type-resolver/src/Types/String_.php | 31 - .../type-resolver/src/Types/This.php | 34 - .../type-resolver/src/Types/Void_.php | 34 - vendor/phpspec/prophecy/CHANGES.md | 194 - vendor/phpspec/prophecy/LICENSE | 23 - vendor/phpspec/prophecy/README.md | 391 - vendor/phpspec/prophecy/composer.json | 50 - .../prophecy/src/Prophecy/Argument.php | 212 - .../Prophecy/Argument/ArgumentsWildcard.php | 101 - .../Prophecy/Argument/Token/AnyValueToken.php | 52 - .../Argument/Token/AnyValuesToken.php | 52 - .../Argument/Token/ApproximateValueToken.php | 55 - .../Argument/Token/ArrayCountToken.php | 86 - .../Argument/Token/ArrayEntryToken.php | 143 - .../Argument/Token/ArrayEveryEntryToken.php | 82 - .../Prophecy/Argument/Token/CallbackToken.php | 75 - .../Argument/Token/ExactValueToken.php | 116 - .../Argument/Token/IdenticalValueToken.php | 74 - .../Argument/Token/LogicalAndToken.php | 80 - .../Argument/Token/LogicalNotToken.php | 73 - .../Argument/Token/ObjectStateToken.php | 104 - .../Argument/Token/StringContainsToken.php | 67 - .../Argument/Token/TokenInterface.php | 43 - .../src/Prophecy/Argument/Token/TypeToken.php | 76 - .../prophecy/src/Prophecy/Call/Call.php | 127 - .../prophecy/src/Prophecy/Call/CallCenter.php | 171 - .../Prophecy/Comparator/ClosureComparator.php | 42 - .../src/Prophecy/Comparator/Factory.php | 47 - .../Comparator/ProphecyComparator.php | 28 - .../src/Prophecy/Doubler/CachedDoubler.php | 68 - .../ClassPatch/ClassPatchInterface.php | 48 - .../ClassPatch/DisableConstructorPatch.php | 72 - .../Doubler/ClassPatch/HhvmExceptionPatch.php | 63 - .../Doubler/ClassPatch/KeywordPatch.php | 140 - .../Doubler/ClassPatch/MagicCallPatch.php | 89 - .../ClassPatch/ProphecySubjectPatch.php | 104 - .../ReflectionClassNewInstancePatch.php | 57 - .../Doubler/ClassPatch/SplFileInfoPatch.php | 123 - .../Doubler/ClassPatch/TraversablePatch.php | 83 - .../src/Prophecy/Doubler/DoubleInterface.php | 22 - .../prophecy/src/Prophecy/Doubler/Doubler.php | 146 - .../Doubler/Generator/ClassCodeGenerator.php | 129 - .../Doubler/Generator/ClassCreator.php | 67 - .../Doubler/Generator/ClassMirror.php | 258 - .../Doubler/Generator/Node/ArgumentNode.php | 102 - .../Doubler/Generator/Node/ClassNode.php | 166 - .../Doubler/Generator/Node/MethodNode.php | 198 - .../Doubler/Generator/ReflectionInterface.php | 22 - .../Doubler/Generator/TypeHintReference.php | 46 - .../src/Prophecy/Doubler/LazyDouble.php | 127 - .../src/Prophecy/Doubler/NameGenerator.php | 52 - .../Call/UnexpectedCallException.php | 40 - .../Doubler/ClassCreatorException.php | 31 - .../Doubler/ClassMirrorException.php | 31 - .../Doubler/ClassNotFoundException.php | 33 - .../Exception/Doubler/DoubleException.php | 18 - .../Exception/Doubler/DoublerException.php | 18 - .../Doubler/InterfaceNotFoundException.php | 20 - .../Doubler/MethodNotExtendableException.php | 41 - .../Doubler/MethodNotFoundException.php | 60 - .../Doubler/ReturnByReferenceException.php | 41 - .../src/Prophecy/Exception/Exception.php | 26 - .../Exception/InvalidArgumentException.php | 16 - .../Prediction/AggregateException.php | 50 - .../Prediction/FailedPredictionException.php | 24 - .../Exception/Prediction/NoCallsException.php | 18 - .../Prediction/PredictionException.php | 18 - .../UnexpectedCallsCountException.php | 31 - .../Prediction/UnexpectedCallsException.php | 32 - .../Prophecy/MethodProphecyException.php | 34 - .../Prophecy/ObjectProphecyException.php | 34 - .../Exception/Prophecy/ProphecyException.php | 18 - .../ClassAndInterfaceTagRetriever.php | 69 - .../PhpDocumentor/ClassTagRetriever.php | 52 - .../PhpDocumentor/LegacyClassTagRetriever.php | 35 - .../MethodTagRetrieverInterface.php | 30 - .../Prophecy/Prediction/CallPrediction.php | 86 - .../Prediction/CallTimesPrediction.php | 107 - .../Prediction/CallbackPrediction.php | 65 - .../Prophecy/Prediction/NoCallsPrediction.php | 68 - .../Prediction/PredictionInterface.php | 37 - .../src/Prophecy/Promise/CallbackPromise.php | 66 - .../src/Prophecy/Promise/PromiseInterface.php | 35 - .../Promise/ReturnArgumentPromise.php | 61 - .../src/Prophecy/Promise/ReturnPromise.php | 55 - .../src/Prophecy/Promise/ThrowPromise.php | 99 - .../src/Prophecy/Prophecy/MethodProphecy.php | 464 - .../src/Prophecy/Prophecy/ObjectProphecy.php | 281 - .../Prophecy/Prophecy/ProphecyInterface.php | 27 - .../Prophecy/ProphecySubjectInterface.php | 34 - .../src/Prophecy/Prophecy/Revealer.php | 44 - .../Prophecy/Prophecy/RevealerInterface.php | 29 - .../phpspec/prophecy/src/Prophecy/Prophet.php | 134 - .../prophecy/src/Prophecy/Util/ExportUtil.php | 212 - .../prophecy/src/Prophecy/Util/StringUtil.php | 89 - .../phpunit/php-code-coverage/.gitattributes | 1 - .../php-code-coverage/.github/CONTRIBUTING.md | 1 - .../.github/ISSUE_TEMPLATE.md | 18 - .../php-code-coverage/.github/stale.yml | 44 - vendor/phpunit/php-code-coverage/.php_cs.dist | 165 - vendor/phpunit/php-code-coverage/.travis.yml | 39 - .../php-code-coverage/ChangeLog-2.2.md | 56 - .../php-code-coverage/ChangeLog-3.0.md | 31 - .../php-code-coverage/ChangeLog-3.1.md | 30 - .../php-code-coverage/ChangeLog-3.2.md | 23 - .../php-code-coverage/ChangeLog-3.3.md | 33 - .../php-code-coverage/ChangeLog-4.0.md | 67 - .../php-code-coverage/ChangeLog-5.0.md | 45 - .../php-code-coverage/ChangeLog-5.1.md | 19 - .../php-code-coverage/ChangeLog-5.2.md | 44 - .../php-code-coverage/ChangeLog-5.3.md | 34 - .../php-code-coverage/ChangeLog-6.0.md | 77 - vendor/phpunit/php-code-coverage/LICENSE | 33 - vendor/phpunit/php-code-coverage/README.md | 40 - vendor/phpunit/php-code-coverage/build.xml | 19 - .../phpunit/php-code-coverage/composer.json | 55 - vendor/phpunit/php-code-coverage/phpunit.xml | 21 - .../php-code-coverage/src/CodeCoverage.php | 1000 - .../php-code-coverage/src/Driver/Driver.php | 48 - .../php-code-coverage/src/Driver/PHPDBG.php | 97 - .../php-code-coverage/src/Driver/Xdebug.php | 99 - .../CoveredCodeNotExecutedException.php | 18 - .../src/Exception/Exception.php | 18 - .../Exception/InvalidArgumentException.php | 37 - .../MissingCoversAnnotationException.php | 18 - .../src/Exception/RuntimeException.php | 15 - .../UnintentionallyCoveredCodeException.php | 54 - .../phpunit/php-code-coverage/src/Filter.php | 151 - .../src/Node/AbstractNode.php | 329 - .../php-code-coverage/src/Node/Builder.php | 226 - .../php-code-coverage/src/Node/Directory.php | 428 - .../php-code-coverage/src/Node/File.php | 607 - .../php-code-coverage/src/Node/Iterator.php | 92 - .../php-code-coverage/src/Report/Clover.php | 259 - .../php-code-coverage/src/Report/Crap4j.php | 170 - .../src/Report/Html/Facade.php | 181 - .../src/Report/Html/Renderer.php | 271 - .../src/Report/Html/Renderer/Dashboard.php | 282 - .../src/Report/Html/Renderer/Directory.php | 95 - .../src/Report/Html/Renderer/File.php | 522 - .../Renderer/Template/coverage_bar.html.dist | 5 - .../Renderer/Template/css/bootstrap.min.css | 6 - .../Html/Renderer/Template/css/custom.css | 0 .../Html/Renderer/Template/css/nv.d3.min.css | 1 - .../Html/Renderer/Template/css/style.css | 122 - .../Renderer/Template/dashboard.html.dist | 285 - .../Renderer/Template/directory.html.dist | 62 - .../Template/directory_item.html.dist | 13 - .../Html/Renderer/Template/file.html.dist | 69 - .../Renderer/Template/file_item.html.dist | 14 - .../fonts/glyphicons-halflings-regular.eot | Bin 20127 -> 0 bytes .../fonts/glyphicons-halflings-regular.svg | 288 - .../fonts/glyphicons-halflings-regular.ttf | Bin 45404 -> 0 bytes .../fonts/glyphicons-halflings-regular.woff | Bin 23424 -> 0 bytes .../fonts/glyphicons-halflings-regular.woff2 | Bin 18028 -> 0 bytes .../Renderer/Template/js/bootstrap.min.js | 7 - .../Html/Renderer/Template/js/d3.min.js | 5 - .../Report/Html/Renderer/Template/js/file.js | 61 - .../Html/Renderer/Template/js/holder.min.js | 12 - .../Renderer/Template/js/html5shiv.min.js | 326 - .../Html/Renderer/Template/js/jquery.min.js | 4 - .../Html/Renderer/Template/js/nv.d3.min.js | 8 - .../Html/Renderer/Template/js/respond.min.js | 5 - .../Renderer/Template/method_item.html.dist | 11 - .../php-code-coverage/src/Report/PHP.php | 61 - .../php-code-coverage/src/Report/Text.php | 285 - .../src/Report/Xml/BuildInformation.php | 77 - .../src/Report/Xml/Coverage.php | 70 - .../src/Report/Xml/Directory.php | 15 - .../src/Report/Xml/Facade.php | 288 - .../php-code-coverage/src/Report/Xml/File.php | 82 - .../src/Report/Xml/Method.php | 57 - .../php-code-coverage/src/Report/Xml/Node.php | 88 - .../src/Report/Xml/Project.php | 86 - .../src/Report/Xml/Report.php | 93 - .../src/Report/Xml/Source.php | 42 - .../src/Report/Xml/Tests.php | 47 - .../src/Report/Xml/Totals.php | 141 - .../php-code-coverage/src/Report/Xml/Unit.php | 96 - vendor/phpunit/php-code-coverage/src/Util.php | 41 - .../phpunit/php-code-coverage/src/Version.php | 31 - .../php-code-coverage/tests/TestCase.php | 377 - .../tests/_files/BankAccount-clover.xml | 26 - .../tests/_files/BankAccount-crap4j.xml | 59 - .../tests/_files/BankAccount-text.txt | 12 - .../tests/_files/BankAccount.php | 33 - .../tests/_files/BankAccountTest.php | 68 - .../_files/CoverageClassExtendedTest.php | 14 - .../tests/_files/CoverageClassTest.php | 14 - .../CoverageFunctionParenthesesTest.php | 13 - ...erageFunctionParenthesesWhitespaceTest.php | 13 - .../tests/_files/CoverageFunctionTest.php | 13 - .../CoverageMethodOneLineAnnotationTest.php | 12 - .../_files/CoverageMethodParenthesesTest.php | 14 - ...overageMethodParenthesesWhitespaceTest.php | 14 - .../tests/_files/CoverageMethodTest.php | 14 - .../tests/_files/CoverageNoneTest.php | 11 - .../tests/_files/CoverageNotPrivateTest.php | 14 - .../tests/_files/CoverageNotProtectedTest.php | 14 - .../tests/_files/CoverageNotPublicTest.php | 14 - .../tests/_files/CoverageNothingTest.php | 15 - .../tests/_files/CoveragePrivateTest.php | 14 - .../tests/_files/CoverageProtectedTest.php | 14 - .../tests/_files/CoveragePublicTest.php | 14 - .../CoverageTwoDefaultClassAnnotations.php | 17 - .../tests/_files/CoveredClass.php | 36 - .../tests/_files/CoveredFunction.php | 4 - .../NamespaceCoverageClassExtendedTest.php | 14 - .../_files/NamespaceCoverageClassTest.php | 14 - ...NamespaceCoverageCoversClassPublicTest.php | 17 - .../NamespaceCoverageCoversClassTest.php | 22 - .../_files/NamespaceCoverageMethodTest.php | 14 - .../NamespaceCoverageNotPrivateTest.php | 14 - .../NamespaceCoverageNotProtectedTest.php | 14 - .../_files/NamespaceCoverageNotPublicTest.php | 14 - .../_files/NamespaceCoveragePrivateTest.php | 14 - .../_files/NamespaceCoverageProtectedTest.php | 14 - .../_files/NamespaceCoveragePublicTest.php | 14 - .../tests/_files/NamespaceCoveredClass.php | 38 - .../_files/NotExistingCoveredElementTest.php | 26 - .../BankAccount.php.html | 246 - .../CoverageForBankAccount/dashboard.html | 291 - .../HTML/CoverageForBankAccount/index.html | 120 - .../dashboard.html | 289 - .../index.html | 120 - ...with_class_and_anonymous_function.php.html | 169 - .../dashboard.html | 287 - .../index.html | 110 - .../source_with_ignore.php.html | 193 - .../BankAccount.php.xml | 262 - .../XML/CoverageForBankAccount/index.xml | 33 - .../index.xml | 30 - ..._with_class_and_anonymous_function.php.xml | 161 - .../CoverageForFileWithIgnoredLines/index.xml | 30 - .../source_with_ignore.php.xml | 187 - .../class-with-anonymous-function-clover.xml | 21 - .../class-with-anonymous-function-crap4j.xml | 26 - .../class-with-anonymous-function-text.txt | 12 - .../tests/_files/ignored-lines-clover.xml | 17 - .../tests/_files/ignored-lines-crap4j.xml | 37 - .../tests/_files/ignored-lines-text.txt | 10 - ...urce_with_class_and_anonymous_function.php | 19 - .../tests/_files/source_with_ignore.php | 37 - .../tests/_files/source_with_namespace.php | 20 - .../source_with_oneline_annotations.php | 36 - .../tests/_files/source_without_ignore.php | 4 - .../tests/_files/source_without_namespace.php | 18 - .../php-code-coverage/tests/bootstrap.php | 5 - .../tests/tests/BuilderTest.php | 212 - .../tests/tests/CloverTest.php | 49 - .../tests/tests/CodeCoverageTest.php | 499 - .../tests/tests/Crap4jTest.php | 49 - .../tests/tests/FilterTest.php | 197 - .../tests/tests/HTMLTest.php | 103 - .../tests/tests/TextTest.php | 49 - .../tests/tests/UtilTest.php | 29 - .../php-code-coverage/tests/tests/XmlTest.php | 98 - .../phpunit/php-file-iterator/.gitattributes | 1 - .../php-file-iterator/.github/stale.yml | 40 - vendor/phpunit/php-file-iterator/.php_cs.dist | 167 - vendor/phpunit/php-file-iterator/ChangeLog.md | 63 - vendor/phpunit/php-file-iterator/LICENSE | 33 - vendor/phpunit/php-file-iterator/README.md | 12 - .../phpunit/php-file-iterator/composer.json | 35 - .../phpunit/php-file-iterator/src/Facade.php | 112 - .../phpunit/php-file-iterator/src/Factory.php | 83 - .../php-file-iterator/src/Iterator.php | 112 - .../phpunit/php-text-template/.gitattributes | 1 - vendor/phpunit/php-text-template/LICENSE | 33 - vendor/phpunit/php-text-template/README.md | 14 - .../phpunit/php-text-template/composer.json | 29 - .../php-text-template/src/Template.php | 135 - vendor/phpunit/php-timer/.gitattributes | 1 - vendor/phpunit/php-timer/.php_cs.dist | 148 - vendor/phpunit/php-timer/.travis.yml | 24 - vendor/phpunit/php-timer/ChangeLog.md | 15 - vendor/phpunit/php-timer/LICENSE | 33 - vendor/phpunit/php-timer/README.md | 49 - vendor/phpunit/php-timer/build.xml | 20 - vendor/phpunit/php-timer/composer.json | 42 - vendor/phpunit/php-timer/phpunit.xml | 19 - vendor/phpunit/php-timer/src/Exception.php | 15 - .../php-timer/src/RuntimeException.php | 15 - vendor/phpunit/php-timer/src/Timer.php | 81 - vendor/phpunit/php-timer/tests/TimerTest.php | 121 - .../phpunit/php-token-stream/.gitattributes | 1 - vendor/phpunit/php-token-stream/.travis.yml | 25 - vendor/phpunit/php-token-stream/ChangeLog.md | 27 - vendor/phpunit/php-token-stream/LICENSE | 33 - vendor/phpunit/php-token-stream/README.md | 14 - vendor/phpunit/php-token-stream/build.xml | 21 - vendor/phpunit/php-token-stream/composer.json | 39 - vendor/phpunit/php-token-stream/phpunit.xml | 17 - vendor/phpunit/php-token-stream/src/Token.php | 1351 - .../php-token-stream/src/Token/Stream.php | 607 - .../src/Token/Stream/CachingFactory.php | 46 - .../tests/Token/ClassTest.php | 169 - .../tests/Token/ClosureTest.php | 78 - .../tests/Token/FunctionTest.php | 139 - .../tests/Token/IncludeTest.php | 65 - .../tests/Token/InterfaceTest.php | 195 - .../tests/Token/NamespaceTest.php | 69 - .../_fixture/classExtendsNamespacedClass.php | 10 - .../tests/_fixture/classInNamespace.php | 6 - .../tests/_fixture/classInScopedNamespace.php | 9 - .../_fixture/classUsesNamespacedFunction.php | 8 - .../class_with_method_named_empty.php | 7 - ...h_method_that_declares_anonymous_class.php | 15 - ..._method_that_declares_anonymous_class2.php | 16 - ...ltiple_anonymous_classes_and_functions.php | 26 - .../tests/_fixture/closure.php | 7 - .../tests/_fixture/issue19.php | 3 - .../tests/_fixture/issue30.php | 8 - ...tipleNamespacesWithOneClassUsingBraces.php | 12 - ...espacesWithOneClassUsingNonBraceSyntax.php | 14 - .../_fixture/php-code-coverage-issue-424.php | 13 - .../tests/_fixture/source.php | 36 - .../tests/_fixture/source2.php | 6 - .../tests/_fixture/source3.php | 14 - .../tests/_fixture/source4.php | 30 - .../tests/_fixture/source5.php | 5 - .../php-token-stream/tests/bootstrap.php | 15 - vendor/phpunit/phpunit/.editorconfig | 8 - vendor/phpunit/phpunit/.gitattributes | 4 - .../phpunit/.github/CODE_OF_CONDUCT.md | 28 - .../phpunit/phpunit/.github/CONTRIBUTING.md | 68 - .../phpunit/phpunit/.github/ISSUE_TEMPLATE.md | 15 - vendor/phpunit/phpunit/.github/stale.yml | 47 - vendor/phpunit/phpunit/.php_cs.dist | 191 - vendor/phpunit/phpunit/.travis.yml | 69 - vendor/phpunit/phpunit/ChangeLog-6.5.md | 81 - vendor/phpunit/phpunit/ChangeLog-7.0.md | 56 - vendor/phpunit/phpunit/ChangeLog-7.1.md | 63 - vendor/phpunit/phpunit/ChangeLog-7.2.md | 78 - vendor/phpunit/phpunit/LICENSE | 33 - vendor/phpunit/phpunit/README.md | 40 - vendor/phpunit/phpunit/appveyor.yml | 59 - vendor/phpunit/phpunit/build.xml | 418 - vendor/phpunit/phpunit/composer.json | 90 - vendor/phpunit/phpunit/phive.xml | 8 - vendor/phpunit/phpunit/phpstan-tests.neon | 49 - vendor/phpunit/phpunit/phpstan.neon | 7 - vendor/phpunit/phpunit/phpunit | 53 - vendor/phpunit/phpunit/phpunit.xml | 33 - vendor/phpunit/phpunit/phpunit.xsd | 288 - vendor/phpunit/phpunit/src/Exception.php | 17 - .../phpunit/phpunit/src/Framework/Assert.php | 2428 -- .../src/Framework/Assert/Functions.php | 1689 - .../src/Framework/AssertionFailedError.php | 24 - .../src/Framework/CodeCoverageException.php | 14 - .../src/Framework/Constraint/ArrayHasKey.php | 81 - .../src/Framework/Constraint/ArraySubset.php | 131 - .../src/Framework/Constraint/Attribute.php | 79 - .../src/Framework/Constraint/Callback.php | 47 - .../Constraint/ClassHasAttribute.php | 80 - .../Constraint/ClassHasStaticAttribute.php | 51 - .../src/Framework/Constraint/Composite.php | 70 - .../src/Framework/Constraint/Constraint.php | 148 - .../src/Framework/Constraint/Count.php | 119 - .../Framework/Constraint/DirectoryExists.php | 53 - .../src/Framework/Constraint/Exception.php | 82 - .../Framework/Constraint/ExceptionCode.php | 63 - .../Framework/Constraint/ExceptionMessage.php | 73 - .../ExceptionMessageRegularExpression.php | 71 - .../src/Framework/Constraint/FileExists.php | 53 - .../src/Framework/Constraint/GreaterThan.php | 53 - .../src/Framework/Constraint/IsAnything.php | 55 - .../src/Framework/Constraint/IsEmpty.php | 61 - .../src/Framework/Constraint/IsEqual.php | 150 - .../src/Framework/Constraint/IsFalse.php | 35 - .../src/Framework/Constraint/IsFinite.php | 35 - .../src/Framework/Constraint/IsIdentical.php | 144 - .../src/Framework/Constraint/IsInfinite.php | 35 - .../src/Framework/Constraint/IsInstanceOf.php | 91 - .../src/Framework/Constraint/IsJson.php | 73 - .../src/Framework/Constraint/IsNan.php | 35 - .../src/Framework/Constraint/IsNull.php | 35 - .../src/Framework/Constraint/IsReadable.php | 53 - .../src/Framework/Constraint/IsTrue.php | 35 - .../src/Framework/Constraint/IsType.php | 152 - .../src/Framework/Constraint/IsWritable.php | 53 - .../src/Framework/Constraint/JsonMatches.php | 111 - .../JsonMatchesErrorMessageProvider.php | 62 - .../src/Framework/Constraint/LessThan.php | 53 - .../src/Framework/Constraint/LogicalAnd.php | 123 - .../src/Framework/Constraint/LogicalNot.php | 171 - .../src/Framework/Constraint/LogicalOr.php | 120 - .../src/Framework/Constraint/LogicalXor.php | 125 - .../Constraint/ObjectHasAttribute.php | 34 - .../Constraint/RegularExpression.php | 56 - .../src/Framework/Constraint/SameSize.php | 18 - .../Framework/Constraint/StringContains.php | 76 - .../Framework/Constraint/StringEndsWith.php | 48 - .../StringMatchesFormatDescription.php | 117 - .../Framework/Constraint/StringStartsWith.php | 48 - .../Constraint/TraversableContains.php | 116 - .../Constraint/TraversableContainsOnly.php | 93 - .../CoveredCodeNotExecutedException.php | 14 - .../src/Framework/DataProviderTestSuite.php | 40 - .../src/Framework/Error/Deprecated.php | 15 - .../phpunit/src/Framework/Error/Error.php | 26 - .../phpunit/src/Framework/Error/Notice.php | 15 - .../phpunit/src/Framework/Error/Warning.php | 15 - .../phpunit/src/Framework/Exception.php | 78 - .../src/Framework/ExceptionWrapper.php | 120 - .../Framework/ExpectationFailedException.php | 39 - .../phpunit/src/Framework/IncompleteTest.php | 18 - .../src/Framework/IncompleteTestCase.php | 76 - .../src/Framework/IncompleteTestError.php | 14 - .../InvalidCoversTargetException.php | 14 - .../MissingCoversAnnotationException.php | 14 - .../Framework/MockObject/Builder/Identity.php | 30 - .../MockObject/Builder/InvocationMocker.php | 277 - .../Framework/MockObject/Builder/Match.php | 26 - .../MockObject/Builder/MethodNameMatch.php | 26 - .../MockObject/Builder/NamespaceMatch.php | 37 - .../MockObject/Builder/ParametersMatch.php | 50 - .../src/Framework/MockObject/Builder/Stub.php | 26 - .../Exception/BadMethodCallException.php | 14 - .../MockObject/Exception/Exception.php | 17 - .../MockObject/Exception/RuntimeException.php | 14 - .../ForwardCompatibility/MockObject.php | 16 - .../src/Framework/MockObject/Generator.php | 1209 - .../MockObject/Generator/deprecation.tpl.dist | 2 - .../Generator/mocked_class.tpl.dist | 46 - .../Generator/mocked_class_method.tpl.dist | 8 - .../Generator/mocked_clone.tpl.dist | 4 - .../Generator/mocked_method.tpl.dist | 22 - .../Generator/mocked_method_void.tpl.dist | 20 - .../Generator/mocked_static_method.tpl.dist | 5 - .../Generator/proxied_method.tpl.dist | 22 - .../Generator/proxied_method_void.tpl.dist | 22 - .../MockObject/Generator/trait_class.tpl.dist | 4 - .../Generator/unmocked_clone.tpl.dist | 5 - .../MockObject/Generator/wsdl_class.tpl.dist | 7 - .../MockObject/Generator/wsdl_method.tpl.dist | 4 - .../MockObject/Invocation/Invocation.php | 31 - .../Invocation/ObjectInvocation.php | 40 - .../Invocation/StaticInvocation.php | 258 - .../Framework/MockObject/InvocationMocker.php | 186 - .../src/Framework/MockObject/Invokable.php | 38 - .../src/Framework/MockObject/Matcher.php | 309 - .../MockObject/Matcher/AnyInvokedCount.php | 26 - .../MockObject/Matcher/AnyParameters.php | 31 - .../Matcher/ConsecutiveParameters.php | 126 - .../MockObject/Matcher/DeferredError.php | 40 - .../MockObject/Matcher/Invocation.php | 47 - .../MockObject/Matcher/InvokedAtIndex.php | 81 - .../Matcher/InvokedAtLeastCount.php | 55 - .../MockObject/Matcher/InvokedAtLeastOnce.php | 43 - .../MockObject/Matcher/InvokedAtMostCount.php | 55 - .../MockObject/Matcher/InvokedCount.php | 106 - .../MockObject/Matcher/InvokedRecorder.php | 63 - .../MockObject/Matcher/MethodName.php | 68 - .../MockObject/Matcher/Parameters.php | 158 - .../Matcher/StatelessInvocation.php | 50 - .../src/Framework/MockObject/MockBuilder.php | 410 - .../src/Framework/MockObject/MockObject.php | 55 - .../phpunit/src/Framework/MockObject/Stub.php | 29 - .../MockObject/Stub/ConsecutiveCalls.php | 56 - .../Framework/MockObject/Stub/Exception.php | 42 - .../MockObject/Stub/MatcherCollection.php | 26 - .../MockObject/Stub/ReturnArgument.php | 41 - .../MockObject/Stub/ReturnCallback.php | 52 - .../MockObject/Stub/ReturnReference.php | 45 - .../Framework/MockObject/Stub/ReturnSelf.php | 38 - .../Framework/MockObject/Stub/ReturnStub.php | 45 - .../MockObject/Stub/ReturnValueMap.php | 51 - .../src/Framework/MockObject/Verifiable.php | 26 - .../phpunit/src/Framework/OutputError.php | 14 - .../phpunit/src/Framework/RiskyTest.php | 14 - .../phpunit/src/Framework/RiskyTestError.php | 14 - .../phpunit/src/Framework/SelfDescribing.php | 21 - .../phpunit/src/Framework/SkippedTest.php | 14 - .../phpunit/src/Framework/SkippedTestCase.php | 76 - .../src/Framework/SkippedTestError.php | 14 - .../src/Framework/SkippedTestSuiteError.php | 14 - .../phpunit/src/Framework/SyntheticError.php | 61 - vendor/phpunit/phpunit/src/Framework/Test.php | 23 - .../phpunit/src/Framework/TestCase.php | 2120 -- .../phpunit/src/Framework/TestFailure.php | 154 - .../phpunit/src/Framework/TestListener.php | 66 - .../TestListenerDefaultImplementation.php | 53 - .../phpunit/src/Framework/TestResult.php | 1066 - .../phpunit/src/Framework/TestSuite.php | 962 - .../src/Framework/TestSuiteIterator.php | 91 - .../UnintentionallyCoveredCodeError.php | 18 - .../phpunit/phpunit/src/Framework/Warning.php | 24 - .../phpunit/src/Framework/WarningTestCase.php | 71 - .../phpunit/src/Runner/BaseTestRunner.php | 145 - .../phpunit/phpunit/src/Runner/Exception.php | 14 - .../Filter/ExcludeGroupFilterIterator.php | 18 - .../phpunit/src/Runner/Filter/Factory.php | 51 - .../src/Runner/Filter/GroupFilterIterator.php | 51 - .../Filter/IncludeGroupFilterIterator.php | 18 - .../src/Runner/Filter/NameFilterIterator.php | 123 - .../Runner/Hook/AfterIncompleteTestHook.php | 15 - .../src/Runner/Hook/AfterLastTestHook.php | 15 - .../src/Runner/Hook/AfterRiskyTestHook.php | 15 - .../src/Runner/Hook/AfterSkippedTestHook.php | 15 - .../Runner/Hook/AfterSuccessfulTestHook.php | 15 - .../src/Runner/Hook/AfterTestErrorHook.php | 15 - .../src/Runner/Hook/AfterTestFailureHook.php | 15 - .../src/Runner/Hook/AfterTestWarningHook.php | 15 - .../src/Runner/Hook/BeforeFirstTestHook.php | 15 - .../src/Runner/Hook/BeforeTestHook.php | 15 - .../phpunit/phpunit/src/Runner/Hook/Hook.php | 14 - .../phpunit/src/Runner/Hook/TestHook.php | 14 - .../src/Runner/Hook/TestListenerAdapter.php | 133 - .../phpunit/src/Runner/PhptTestCase.php | 565 - .../src/Runner/StandardTestSuiteLoader.php | 112 - .../phpunit/src/Runner/TestSuiteLoader.php | 22 - .../phpunit/src/Runner/TestSuiteSorter.php | 161 - vendor/phpunit/phpunit/src/Runner/Version.php | 64 - vendor/phpunit/phpunit/src/TextUI/Command.php | 1296 - .../phpunit/src/TextUI/ResultPrinter.php | 596 - .../phpunit/phpunit/src/TextUI/TestRunner.php | 1214 - vendor/phpunit/phpunit/src/Util/Blacklist.php | 127 - .../phpunit/src/Util/Configuration.php | 1292 - .../src/Util/ConfigurationGenerator.php | 60 - .../phpunit/phpunit/src/Util/ErrorHandler.php | 106 - .../phpunit/phpunit/src/Util/FileLoader.php | 68 - .../phpunit/phpunit/src/Util/Filesystem.php | 30 - vendor/phpunit/phpunit/src/Util/Filter.php | 83 - vendor/phpunit/phpunit/src/Util/Getopt.php | 183 - .../phpunit/phpunit/src/Util/GlobalState.php | 172 - .../src/Util/InvalidArgumentHelper.php | 35 - vendor/phpunit/phpunit/src/Util/Json.php | 83 - vendor/phpunit/phpunit/src/Util/Log/JUnit.php | 419 - .../phpunit/phpunit/src/Util/Log/TeamCity.php | 379 - .../src/Util/PHP/AbstractPhpProcess.php | 368 - .../src/Util/PHP/DefaultPhpProcess.php | 218 - .../Util/PHP/Template/PhptTestCase.tpl.dist | 40 - .../Util/PHP/Template/TestCaseClass.tpl.dist | 108 - .../Util/PHP/Template/TestCaseMethod.tpl.dist | 110 - .../src/Util/PHP/WindowsPhpProcess.php | 46 - .../phpunit/src/Util/PHP/eval-stdin.php | 10 - vendor/phpunit/phpunit/src/Util/Printer.php | 140 - .../phpunit/src/Util/RegularExpression.php | 27 - vendor/phpunit/phpunit/src/Util/Test.php | 1111 - .../src/Util/TestDox/CliTestDoxPrinter.php | 222 - .../src/Util/TestDox/HtmlResultPrinter.php | 131 - .../src/Util/TestDox/NamePrettifier.php | 105 - .../src/Util/TestDox/ResultPrinter.php | 356 - .../phpunit/src/Util/TestDox/TestResult.php | 155 - .../src/Util/TestDox/TextResultPrinter.php | 47 - .../src/Util/TestDox/XmlResultPrinter.php | 205 - .../phpunit/src/Util/TextTestListRenderer.php | 43 - vendor/phpunit/phpunit/src/Util/Type.php | 36 - vendor/phpunit/phpunit/src/Util/Xml.php | 275 - .../phpunit/src/Util/XmlTestListRenderer.php | 81 - vendor/phpunit/phpunit/tests/Fail/fail.phpt | 5 - .../phpunit/tests/Framework/AssertTest.php | 2810 -- .../Framework/Constraint/ArrayHasKeyTest.php | 64 - .../Framework/Constraint/ArraySubsetTest.php | 86 - .../Framework/Constraint/AttributeTest.php | 80 - .../Framework/Constraint/CallbackTest.php | 65 - .../Constraint/ClassHasAttributeTest.php | 70 - .../ClassHasStaticAttributeTest.php | 66 - .../Constraint/ConstraintTestCase.php | 54 - .../tests/Framework/Constraint/CountTest.php | 145 - .../Constraint/DirectoryExistsTest.php | 66 - .../Constraint/ExceptionMessageRegExpTest.php | 55 - .../Constraint/ExceptionMessageTest.php | 51 - .../Framework/Constraint/FileExistsTest.php | 65 - .../Framework/Constraint/GreaterThanTest.php | 66 - .../Framework/Constraint/IsEmptyTest.php | 67 - .../Framework/Constraint/IsEqualTest.php | 321 - .../Framework/Constraint/IsIdenticalTest.php | 197 - .../Framework/Constraint/IsInstanceOfTest.php | 41 - .../tests/Framework/Constraint/IsJsonTest.php | 34 - .../tests/Framework/Constraint/IsNullTest.php | 66 - .../Framework/Constraint/IsReadableTest.php | 42 - .../tests/Framework/Constraint/IsTypeTest.php | 111 - .../Framework/Constraint/IsWritableTest.php | 42 - .../JsonMatchesErrorMessageProviderTest.php | 87 - .../Framework/Constraint/JsonMatchesTest.php | 94 - .../Framework/Constraint/LessThanTest.php | 66 - .../Framework/Constraint/LogicalAndTest.php | 237 - .../Framework/Constraint/LogicalOrTest.php | 232 - .../Framework/Constraint/LogicalXorTest.php | 44 - .../Constraint/ObjectHasAttributeTest.php | 66 - .../Constraint/RegularExpressionTest.php | 66 - .../Framework/Constraint/SameSizeTest.php | 62 - .../Constraint/StringContainsTest.php | 96 - .../Constraint/StringEndsWithTest.php | 87 - .../StringMatchesFormatDescriptionTest.php | 108 - .../Constraint/StringStartsWithTest.php | 88 - .../Constraint/TraversableContainsTest.php | 170 - .../tests/Framework/ConstraintTest.php | 1492 - .../tests/Framework/ExceptionWrapperTest.php | 55 - .../Builder/InvocationMockerTest.php | 74 - .../Framework/MockObject/Generator/232.phpt | 135 - .../3154_namespaced_constant_resolving.phpt | 119 - .../Framework/MockObject/Generator/397.phpt | 105 - .../MockObject/Generator/abstract_class.phpt | 154 - .../Framework/MockObject/Generator/class.phpt | 132 - .../Generator/class_call_parent_clone.phpt | 84 - .../class_call_parent_constructor.phpt | 83 - .../class_dont_call_parent_clone.phpt | 83 - .../class_dont_call_parent_constructor.phpt | 83 - ...ing_interface_call_parent_constructor.phpt | 88 - ...nterface_dont_call_parent_constructor.phpt | 88 - .../MockObject/Generator/class_partial.phpt | 110 - .../class_with_deprecated_method.phpt | 112 - .../class_with_method_named_method.phpt | 98 - ...ullable_typehinted_variadic_arguments.phpt | 106 - ...od_with_typehinted_variadic_arguments.phpt | 106 - ...s_with_method_with_variadic_arguments.phpt | 106 - .../constant_as_parameter_default_value.phpt | 106 - .../MockObject/Generator/interface.phpt | 104 - .../invocation_object_clone_object.phpt | 133 - .../Generator/namespaced_class.phpt | 134 - .../namespaced_class_call_parent_clone.phpt | 86 - ...espaced_class_call_parent_constructor.phpt | 85 - ...mespaced_class_dont_call_parent_clone.phpt | 85 - ...ed_class_dont_call_parent_constructor.phpt | 85 - ...ing_interface_call_parent_constructor.phpt | 90 - ...nterface_dont_call_parent_constructor.phpt | 90 - .../Generator/namespaced_class_partial.phpt | 112 - .../Generator/namespaced_interface.phpt | 106 - .../Generator/nonexistent_class.phpt | 81 - .../nonexistent_class_with_namespace.phpt | 89 - ...ith_namespace_starting_with_separator.phpt | 89 - .../MockObject/Generator/nullable_types.phpt | 106 - .../Framework/MockObject/Generator/proxy.phpt | 128 - .../return_type_declarations_closure.phpt | 104 - .../return_type_declarations_final.phpt | 111 - .../return_type_declarations_generator.phpt | 104 - .../return_type_declarations_nullable.phpt | 104 - ...eturn_type_declarations_object_method.phpt | 107 - .../return_type_declarations_parent.phpt | 110 - .../return_type_declarations_self.phpt | 104 - ...eturn_type_declarations_static_method.phpt | 90 - .../return_type_declarations_void.phpt | 102 - .../Generator/scalar_type_declarations.phpt | 106 - .../MockObject/Generator/wsdl_class.phpt | 37 - .../Generator/wsdl_class_namespace.phpt | 38 - .../Generator/wsdl_class_partial.phpt | 30 - .../Framework/MockObject/GeneratorTest.php | 213 - .../Invocation/ObjectInvocationTest.php | 120 - .../Invocation/StaticInvocationTest.php | 114 - .../Matcher/ConsecutiveParametersTest.php | 68 - .../Framework/MockObject/MockBuilderTest.php | 129 - .../Framework/MockObject/MockObjectTest.php | 1117 - .../Framework/MockObject/ProxyObjectTest.php | 41 - .../phpunit/tests/Framework/TestCaseTest.php | 766 - .../tests/Framework/TestFailureTest.php | 40 - .../tests/Framework/TestImplementorTest.php | 25 - .../tests/Framework/TestListenerTest.php | 119 - .../phpunit/tests/Framework/TestSuiteTest.php | 203 - .../phpunit/tests/Regression/GitHub/1149.phpt | 20 - .../Regression/GitHub/1149/Issue1149Test.php | 28 - .../phpunit/tests/Regression/GitHub/1216.phpt | 25 - .../Regression/GitHub/1216/Issue1216Test.php | 18 - .../Regression/GitHub/1216/bootstrap1216.php | 10 - .../Regression/GitHub/1216/phpunit1216.xml | 8 - .../phpunit/tests/Regression/GitHub/1265.phpt | 21 - .../Regression/GitHub/1265/Issue1265Test.php | 18 - .../Regression/GitHub/1265/phpunit1265.xml | 2 - .../phpunit/tests/Regression/GitHub/1330.phpt | 24 - .../Regression/GitHub/1330/Issue1330Test.php | 18 - .../Regression/GitHub/1330/phpunit1330.xml | 5 - .../phpunit/tests/Regression/GitHub/1335.phpt | 19 - .../Regression/GitHub/1335/Issue1335Test.php | 77 - .../Regression/GitHub/1335/bootstrap1335.php | 21 - .../phpunit/tests/Regression/GitHub/1337.phpt | 19 - .../Regression/GitHub/1337/Issue1337Test.php | 29 - .../phpunit/tests/Regression/GitHub/1348.phpt | 33 - .../Regression/GitHub/1348/Issue1348Test.php | 24 - .../phpunit/tests/Regression/GitHub/1351.phpt | 46 - .../GitHub/1351/ChildProcessClass1351.php | 12 - .../Regression/GitHub/1351/Issue1351Test.php | 59 - .../phpunit/tests/Regression/GitHub/1374.phpt | 19 - .../Regression/GitHub/1374/Issue1374Test.php | 31 - .../phpunit/tests/Regression/GitHub/1437.phpt | 26 - .../Regression/GitHub/1437/Issue1437Test.php | 19 - .../phpunit/tests/Regression/GitHub/1468.phpt | 20 - .../Regression/GitHub/1468/Issue1468Test.php | 21 - .../phpunit/tests/Regression/GitHub/1471.phpt | 26 - .../Regression/GitHub/1471/Issue1471Test.php | 22 - .../phpunit/tests/Regression/GitHub/1472.phpt | 18 - .../Regression/GitHub/1472/Issue1472Test.php | 31 - .../phpunit/tests/Regression/GitHub/1570.phpt | 25 - .../Regression/GitHub/1570/Issue1570Test.php | 18 - .../tests/Regression/GitHub/2137-filter.phpt | 28 - .../Regression/GitHub/2137-no_filter.phpt | 30 - .../Regression/GitHub/2137/Issue2137Test.php | 43 - .../phpunit/tests/Regression/GitHub/2145.phpt | 27 - .../Regression/GitHub/2145/Issue2145Test.php | 24 - .../phpunit/tests/Regression/GitHub/2158.phpt | 19 - .../Regression/GitHub/2158/Issue2158Test.php | 33 - .../tests/Regression/GitHub/2158/constant.inc | 5 - .../phpunit/tests/Regression/GitHub/2366.phpt | 19 - .../Regression/GitHub/2366/Issue2366Test.php | 41 - .../phpunit/tests/Regression/GitHub/2380.phpt | 19 - .../Regression/GitHub/2380/Issue2380Test.php | 29 - .../phpunit/tests/Regression/GitHub/2382.phpt | 19 - .../Regression/GitHub/2382/Issue2382Test.php | 30 - .../phpunit/tests/Regression/GitHub/2435.phpt | 20 - .../Regression/GitHub/2435/Issue2435Test.php | 16 - .../phpunit/tests/Regression/GitHub/244.phpt | 32 - .../Regression/GitHub/244/Issue244Test.php | 65 - .../Regression/GitHub/2448-existing-test.phpt | 20 - .../GitHub/2448-not-existing-test.phpt | 12 - .../tests/Regression/GitHub/2448/Test.php | 16 - ...-separate-class-preserve-no-bootstrap.phpt | 35 - .../GitHub/2591-separate-class-preserve.phpt | 21 - ...nction-no-preserve-no-bootstrap-php73.phpt | 37 - ...ction-no-preserve-no-bootstrap-xdebug.phpt | 37 - ...ate-function-no-preserve-no-bootstrap.phpt | 37 - .../2591-separate-function-no-preserve.phpt | 20 - .../2591-separate-function-preserve.phpt | 20 - .../GitHub/2591/SeparateClassPreserveTest.php | 35 - .../2591/SeparateFunctionNoPreserveTest.php | 28 - .../2591/SeparateFunctionPreserveTest.php | 28 - .../GitHub/2591/bootstrapNoBootstrap.php | 15 - .../GitHub/2591/bootstrapWithBootstrap.php | 12 - .../2591/bootstrapWithBootstrapNoGlobal.php | 11 - .../2724-diff-pid-from-master-process.phpt | 22 - ...SeparateClassRunMethodInNewProcessTest.php | 53 - .../2725-separate-class-before-after-pid.phpt | 18 - .../GitHub/2725/BeforeAfterClassPidTest.php | 50 - .../phpunit/tests/Regression/GitHub/2731.phpt | 26 - .../Regression/GitHub/2731/Issue2731Test.php | 19 - .../phpunit/tests/Regression/GitHub/2811.phpt | 20 - .../Regression/GitHub/2811/Issue2811Test.php | 18 - .../phpunit/tests/Regression/GitHub/2830.phpt | 20 - .../Regression/GitHub/2830/Issue2830Test.php | 27 - .../phpunit/tests/Regression/GitHub/2972.phpt | 18 - .../GitHub/2972/issue-2972-test.phpt | 10 - .../2972/unconventiallyNamedIssue2972Test.php | 20 - .../Regression/GitHub/3093/Issue3093Test.php | 30 - .../GitHub/3093/issue-3093-test.phpt | 19 - .../Regression/GitHub/3107/Issue3107Test.php | 25 - .../GitHub/3107/issue-3107-test.phpt | 27 - .../Regression/GitHub/3156/Issue3156Test.php | 41 - .../phpunit/tests/Regression/GitHub/322.phpt | 27 - .../Regression/GitHub/322/Issue322Test.php | 29 - .../Regression/GitHub/322/phpunit322.xml | 11 - .../phpunit/tests/Regression/GitHub/433.phpt | 31 - .../Regression/GitHub/433/Issue433Test.php | 31 - .../phpunit/tests/Regression/GitHub/445.phpt | 32 - .../Regression/GitHub/445/Issue445Test.php | 31 - .../phpunit/tests/Regression/GitHub/498.phpt | 29 - .../Regression/GitHub/498/Issue498Test.php | 53 - .../phpunit/tests/Regression/GitHub/503.phpt | 35 - .../Regression/GitHub/503/Issue503Test.php | 21 - .../phpunit/tests/Regression/GitHub/581.phpt | 40 - .../Regression/GitHub/581/Issue581Test.php | 21 - .../phpunit/tests/Regression/GitHub/74.phpt | 28 - .../Regression/GitHub/74/Issue74Test.php | 20 - .../Regression/GitHub/74/NewException.php | 12 - .../phpunit/tests/Regression/GitHub/765.phpt | 26 - .../Regression/GitHub/765/Issue765Test.php | 32 - .../phpunit/tests/Regression/GitHub/797.phpt | 22 - .../Regression/GitHub/797/Issue797Test.php | 20 - .../Regression/GitHub/797/bootstrap797.php | 13 - .../phpunit/tests/Regression/GitHub/863.phpt | 24 - .../phpunit/tests/Regression/GitHub/873.phpt | 21 - .../Regression/GitHub/873/Issue873Test.php | 16 - .../phpunit/tests/Regression/Trac/1021.phpt | 19 - .../Regression/Trac/1021/Issue1021Test.php | 34 - .../phpunit/tests/Regression/Trac/523.phpt | 19 - .../Regression/Trac/523/Issue523Test.php | 23 - .../phpunit/tests/Regression/Trac/578.phpt | 37 - .../Regression/Trac/578/Issue578Test.php | 30 - .../phpunit/tests/Regression/Trac/684.phpt | 25 - .../Regression/Trac/684/Issue684Test.php | 14 - .../phpunit/tests/Regression/Trac/783.phpt | 21 - .../tests/Regression/Trac/783/ChildSuite.php | 26 - .../tests/Regression/Trac/783/OneTest.php | 21 - .../tests/Regression/Trac/783/ParentSuite.php | 23 - .../tests/Regression/Trac/783/TwoTest.php | 21 - .../phpunit/tests/Runner/PhptTestCaseTest.php | 320 - .../tests/Runner/TestSuiteSorterTest.php | 84 - .../phpunit/tests/TextUI/_files/Extension.php | 87 - .../phpunit/tests/TextUI/_files/HookTest.php | 52 - .../tests/TextUI/_files/NullPrinter.php | 19 - .../tests/TextUI/_files/expect_external.txt | 1 - .../phpunit/tests/TextUI/_files/hooks.xml | 14 - .../tests/TextUI/_files/phpt-env.expected.txt | 1 - .../tests/TextUI/_files/phpt_external.php | 10 - .../tests/TextUI/abstract-test-class.phpt | 24 - .../phpunit/tests/TextUI/assertion.phpt | 38 - .../tests/TextUI/code-coverage-ignore.phpt | 36 - .../tests/TextUI/code-coverage-phpt.phpt | 43 - .../phpunit/tests/TextUI/colors-always.phpt | 18 - .../tests/TextUI/concrete-test-class.phpt | 18 - .../tests/TextUI/custom-printer-debug.phpt | 26 - .../tests/TextUI/custom-printer-verbose.phpt | 31 - .../tests/TextUI/dataprovider-debug.phpt | 33 - .../tests/TextUI/dataprovider-issue-2833.phpt | 17 - .../tests/TextUI/dataprovider-issue-2859.phpt | 17 - .../tests/TextUI/dataprovider-issue-2922.phpt | 18 - .../dataprovider-log-xml-isolation.phpt | 46 - .../tests/TextUI/dataprovider-log-xml.phpt | 45 - .../tests/TextUI/dataprovider-testdox.phpt | 23 - .../phpunit/phpunit/tests/TextUI/debug.phpt | 25 - .../tests/TextUI/default-isolation.phpt | 19 - .../phpunit/phpunit/tests/TextUI/default.phpt | 18 - .../defaulttestsuite-using-testsuite.phpt | 21 - .../tests/TextUI/defaulttestsuite.phpt | 19 - .../tests/TextUI/dependencies-clone.phpt | 22 - .../tests/TextUI/dependencies-isolation.phpt | 42 - .../phpunit/tests/TextUI/dependencies.phpt | 41 - .../tests/TextUI/dependencies2-isolation.phpt | 19 - .../phpunit/tests/TextUI/dependencies2.phpt | 18 - .../tests/TextUI/dependencies3-isolation.phpt | 19 - .../phpunit/tests/TextUI/dependencies3.phpt | 19 - .../TextUI/disable-code-coverage-ignore.phpt | 40 - .../phpunit/tests/TextUI/empty-testcase.phpt | 25 - .../phpunit/tests/TextUI/exception-stack.phpt | 64 - .../tests/TextUI/exclude-group-isolation.phpt | 21 - .../phpunit/tests/TextUI/exclude-group.phpt | 20 - .../tests/TextUI/failure-isolation.phpt | 140 - .../tests/TextUI/failure-reverse-list.phpt | 140 - .../phpunit/phpunit/tests/TextUI/failure.phpt | 139 - .../phpunit/tests/TextUI/fatal-isolation.phpt | 24 - .../tests/TextUI/filter-class-isolation.phpt | 21 - .../phpunit/tests/TextUI/filter-class.phpt | 20 - ...ider-by-classname-and-range-isolation.phpt | 21 - ...r-dataprovider-by-classname-and-range.phpt | 20 - ...lter-dataprovider-by-number-isolation.phpt | 21 - .../TextUI/filter-dataprovider-by-number.phpt | 20 - ...-dataprovider-by-only-range-isolation.phpt | 21 - .../filter-dataprovider-by-only-range.phpt | 20 - ...dataprovider-by-only-regexp-isolation.phpt | 21 - .../filter-dataprovider-by-only-regexp.phpt | 20 - ...dataprovider-by-only-string-isolation.phpt | 21 - .../filter-dataprovider-by-only-string.phpt | 20 - ...ilter-dataprovider-by-range-isolation.phpt | 21 - .../TextUI/filter-dataprovider-by-range.phpt | 20 - ...lter-dataprovider-by-regexp-isolation.phpt | 21 - .../TextUI/filter-dataprovider-by-regexp.phpt | 20 - ...lter-dataprovider-by-string-isolation.phpt | 21 - .../TextUI/filter-dataprovider-by-string.phpt | 20 - .../filter-method-case-insensitive.phpt | 20 - ...ilter-method-case-sensitive-no-result.phpt | 20 - .../tests/TextUI/filter-method-isolation.phpt | 21 - .../phpunit/tests/TextUI/filter-method.phpt | 20 - .../tests/TextUI/filter-no-results.phpt | 20 - .../tests/TextUI/forward-compatibility.phpt | 18 - .../phpunit/tests/TextUI/group-isolation.phpt | 21 - .../phpunit/phpunit/tests/TextUI/group.phpt | 20 - vendor/phpunit/phpunit/tests/TextUI/help.phpt | 108 - .../phpunit/phpunit/tests/TextUI/help2.phpt | 109 - .../phpunit/phpunit/tests/TextUI/hooks.phpt | 31 - .../phpunit/tests/TextUI/ini-isolation.phpt | 21 - .../phpunit/tests/TextUI/list-groups.phpt | 18 - .../phpunit/tests/TextUI/list-suites.phpt | 16 - .../tests/TextUI/list-tests-dataprovider.phpt | 19 - .../TextUI/list-tests-xml-dataprovider.phpt | 31 - .../phpunit/tests/TextUI/log-junit.phpt | 89 - .../phpunit/tests/TextUI/log-teamcity.phpt | 38 - .../phpunit/tests/TextUI/mycommand.phpt | 24 - .../tests/TextUI/options-after-arguments.phpt | 18 - .../tests/TextUI/output-isolation.phpt | 20 - .../TextUI/phar-extension-suppressed.phpt | 12 - .../phpunit/tests/TextUI/phar-extension.phpt | 21 - .../phpunit/tests/TextUI/phpt-args.phpt | 12 - .../phpunit/tests/TextUI/phpt-env.phpt | 12 - .../phpunit/tests/TextUI/phpt-external.phpt | 6 - .../phpunit/tests/TextUI/phpt-stderr.phpt | 8 - .../phpunit/tests/TextUI/phpt-stdin.phpt | 11 - .../phpunit/tests/TextUI/phpt-xfail.phpt | 18 - .../phpunit/phpunit/tests/TextUI/repeat.phpt | 20 - ...ated-with-does-not-perform-assertions.phpt | 24 - .../report-useless-tests-incomplete.phpt | 19 - .../report-useless-tests-isolation.phpt | 25 - .../tests/TextUI/report-useless-tests.phpt | 24 - .../tests/TextUI/stop-on-warning-via-cli.phpt | 25 - .../TextUI/stop-on-warning-via-config.phpt | 26 - .../TextUI/teamcity-inner-exceptions.phpt | 39 - .../phpunit/tests/TextUI/teamcity.phpt | 37 - ...mized-seed-with-dependency-resolution.phpt | 37 - ...randomized-with-dependency-resolution.phpt | 25 - ...r-reversed-with-dependency-resolution.phpt | 35 - ...eversed-without-dependency-resolution.phpt | 44 - .../tests/TextUI/test-suffix-multiple.phpt | 19 - .../tests/TextUI/test-suffix-single.phpt | 19 - .../tests/TextUI/testdox-exclude-group.phpt | 25 - .../phpunit/tests/TextUI/testdox-group.phpt | 25 - .../phpunit/tests/TextUI/testdox-html.phpt | 57 - .../phpunit/tests/TextUI/testdox-text.phpt | 25 - .../phpunit/tests/TextUI/testdox-verbose.phpt | 25 - .../phpunit/tests/TextUI/testdox-xml.phpt | 62 - .../phpunit/phpunit/tests/TextUI/testdox.phpt | 22 - .../tests/Util/ConfigurationGeneratorTest.php | 51 - .../phpunit/tests/Util/ConfigurationTest.php | 572 - .../phpunit/phpunit/tests/Util/GetoptTest.php | 214 - .../phpunit/tests/Util/GlobalStateTest.php | 35 - .../phpunit/phpunit/tests/Util/JsonTest.php | 86 - .../tests/Util/PHP/AbstractPhpProcessTest.php | 119 - .../tests/Util/RegularExpressionTest.php | 56 - .../Util/TestDox/CliTestDoxPrinterTest.php | 209 - .../tests/Util/TestDox/NamePrettifierTest.php | 60 - .../phpunit/phpunit/tests/Util/TestTest.php | 1031 - vendor/phpunit/phpunit/tests/Util/XmlTest.php | 119 - .../tests/_files/AbstractMockTestClass.php | 18 - .../phpunit/tests/_files/AbstractTest.php | 18 - .../phpunit/tests/_files/AbstractTrait.php | 23 - .../phpunit/tests/_files/AnInterface.php | 13 - .../_files/AnInterfaceWithReturnType.php | 13 - .../phpunit/tests/_files/AnotherInterface.php | 13 - .../phpunit/tests/_files/ArrayAccessible.php | 47 - .../phpunit/tests/_files/AssertionExample.php | 16 - .../tests/_files/AssertionExampleTest.php | 20 - .../phpunit/phpunit/tests/_files/Author.php | 25 - .../phpunit/tests/_files/BankAccount.php | 80 - .../phpunit/tests/_files/BankAccountTest.php | 93 - .../tests/_files/BankAccountTest.test.php | 86 - .../phpunit/tests/_files/BankAccountTest2.php | 56 - vendor/phpunit/phpunit/tests/_files/Bar.php | 16 - .../tests/_files/BeforeAndAfterTest.php | 47 - .../_files/BeforeClassAndAfterClassTest.php | 47 - .../BeforeClassWithOnlyDataProviderTest.php | 48 - vendor/phpunit/phpunit/tests/_files/Book.php | 18 - .../phpunit/tests/_files/Calculator.php | 22 - .../ChangeCurrentWorkingDirectoryTest.php | 19 - .../ClassThatImplementsSerializable.php | 23 - .../ClassWithAllPossibleReturnTypes.php | 64 - .../_files/ClassWithNonPublicAttributes.php | 47 - .../ClassWithScalarTypeDeclarations.php | 15 - .../tests/_files/ClassWithSelfTypeHint.php | 15 - .../tests/_files/ClassWithStaticMethod.php | 15 - .../tests/_files/ClassWithToString.php | 20 - .../tests/_files/ClonedDependencyTest.php | 67 - .../phpunit/tests/_files/ConcreteTest.my.php | 16 - .../phpunit/tests/_files/ConcreteTest.php | 16 - .../phpunit/tests/_files/CountConstraint.php | 45 - .../_files/CoverageClassExtendedTest.php | 22 - .../tests/_files/CoverageClassTest.php | 22 - ...verageCoversOverridesCoversNothingTest.php | 25 - .../CoverageFunctionParenthesesTest.php | 21 - ...erageFunctionParenthesesWhitespaceTest.php | 21 - .../tests/_files/CoverageFunctionTest.php | 21 - .../CoverageMethodOneLineAnnotationTest.php | 20 - .../_files/CoverageMethodParenthesesTest.php | 22 - ...overageMethodParenthesesWhitespaceTest.php | 22 - .../tests/_files/CoverageMethodTest.php | 22 - .../_files/CoverageNamespacedFunctionTest.php | 21 - .../phpunit/tests/_files/CoverageNoneTest.php | 19 - .../tests/_files/CoverageNotPrivateTest.php | 22 - .../tests/_files/CoverageNotProtectedTest.php | 22 - .../tests/_files/CoverageNotPublicTest.php | 22 - .../tests/_files/CoverageNothingTest.php | 23 - .../tests/_files/CoveragePrivateTest.php | 22 - .../tests/_files/CoverageProtectedTest.php | 22 - .../tests/_files/CoveragePublicTest.php | 22 - .../CoverageTwoDefaultClassAnnotations.php | 25 - .../phpunit/tests/_files/CoveredClass.php | 44 - .../phpunit/tests/_files/CoveredFunction.php | 12 - .../phpunit/tests/_files/CustomPrinter.php | 14 - .../tests/_files/DataProviderDebugTest.php | 58 - .../_files/DataProviderDependencyTest.php | 33 - .../tests/_files/DataProviderFilterTest.php | 49 - .../_files/DataProviderIncompleteTest.php | 47 - .../DataProviderIssue2833/FirstTest.php | 30 - .../DataProviderIssue2833/SecondTest.php | 22 - .../_files/DataProviderIssue2859/phpunit.xml | 10 - .../another/TestWithDataProviderTest.php | 28 - .../DataProviderIssue2922/FirstTest.php | 31 - .../DataProviderIssue2922/SecondTest.php | 21 - .../tests/_files/DataProviderSkippedTest.php | 47 - .../phpunit/tests/_files/DataProviderTest.php | 31 - .../tests/_files/DataProviderTestDoxTest.php | 38 - .../tests/_files/DependencyFailureTest.php | 42 - .../tests/_files/DependencySuccessTest.php | 34 - .../tests/_files/DependencyTestSuite.php | 23 - .../tests/_files/DoNoAssertionTestCase.php | 17 - ...mAssertionsButPerformingAssertionsTest.php | 22 - .../phpunit/tests/_files/DoubleTestCase.php | 39 - .../phpunit/tests/_files/DummyBarTest.php | 18 - .../phpunit/tests/_files/DummyException.php | 12 - .../phpunit/tests/_files/DummyFooTest.php | 18 - .../tests/_files/EmptyTestCaseTest.php | 14 - .../phpunit/tests/_files/ExampleTrait.php | 16 - .../ExceptionInAssertPostConditionsTest.php | 50 - .../ExceptionInAssertPreConditionsTest.php | 50 - .../tests/_files/ExceptionInSetUpTest.php | 50 - .../tests/_files/ExceptionInTearDownTest.php | 50 - .../phpunit/tests/_files/ExceptionInTest.php | 50 - .../ExceptionInTestDetectedInTeardown.php | 29 - .../tests/_files/ExceptionNamespaceTest.php | 45 - .../tests/_files/ExceptionStackTest.php | 34 - .../phpunit/tests/_files/ExceptionTest.php | 149 - .../tests/_files/ExceptionWithThrowable.php | 12 - .../phpunit/phpunit/tests/_files/Failure.php | 18 - .../phpunit/tests/_files/FailureTest.php | 85 - .../phpunit/tests/_files/FalsyConstraint.php | 26 - .../phpunit/tests/_files/FatalTest.php | 22 - vendor/phpunit/phpunit/tests/_files/Foo.php | 16 - .../phpunit/tests/_files/FunctionCallback.php | 17 - .../phpunit/tests/_files/GoogleSearch.wsdl | 198 - .../tests/_files/IgnoreCodeCoverageClass.php | 25 - .../_files/IgnoreCodeCoverageClassTest.php | 25 - .../phpunit/tests/_files/IncompleteTest.php | 18 - .../tests/_files/Inheritance/InheritanceA.php | 14 - .../tests/_files/Inheritance/InheritanceB.php | 17 - .../tests/_files/InheritedTestCase.php | 15 - .../phpunit/phpunit/tests/_files/IniTest.php | 18 - .../InterfaceWithSemiReservedMethodName.php | 13 - .../_files/InterfaceWithStaticMethod.php | 13 - .../phpunit/tests/_files/IsolationTest.php | 23 - .../tests/_files/JsonData/arrayObject.json | 1 - .../tests/_files/JsonData/simpleObject.json | 1 - .../phpunit/tests/_files/MethodCallback.php | 29 - .../_files/MethodCallbackByReference.php | 21 - .../phpunit/tests/_files/MockRunner.php | 17 - .../tests/_files/MockTestInterface.php | 15 - .../phpunit/phpunit/tests/_files/Mockable.php | 37 - .../tests/_files/MultiDependencyTest.php | 50 - .../tests/_files/MultipleDataProviderTest.php | 89 - .../phpunit/tests/_files/MyCommand.php | 24 - .../phpunit/tests/_files/NamedConstraint.php | 37 - .../NamespaceCoverageClassExtendedTest.php | 22 - .../_files/NamespaceCoverageClassTest.php | 22 - ...NamespaceCoverageCoversClassPublicTest.php | 25 - .../NamespaceCoverageCoversClassTest.php | 30 - .../_files/NamespaceCoverageMethodTest.php | 22 - .../NamespaceCoverageNotPrivateTest.php | 22 - .../NamespaceCoverageNotProtectedTest.php | 22 - .../_files/NamespaceCoverageNotPublicTest.php | 22 - .../_files/NamespaceCoveragePrivateTest.php | 22 - .../_files/NamespaceCoverageProtectedTest.php | 22 - .../_files/NamespaceCoveragePublicTest.php | 22 - .../tests/_files/NamespaceCoveredClass.php | 46 - .../tests/_files/NamespaceCoveredFunction.php | 15 - .../tests/_files/NoArgTestCaseTest.php | 17 - .../phpunit/tests/_files/NoTestCaseClass.php | 12 - .../phpunit/tests/_files/NoTestCases.php | 17 - .../phpunit/tests/_files/NonStatic.php | 15 - .../_files/NotExistingCoveredElementTest.php | 34 - .../tests/_files/NotPublicTestCase.php | 21 - .../phpunit/tests/_files/NotVoidTestCase.php | 14 - .../phpunit/tests/_files/NothingTest.php | 17 - .../phpunit/tests/_files/OneTestCase.php | 21 - .../phpunit/tests/_files/OutputTestCase.php | 37 - .../phpunit/tests/_files/OverrideTestCase.php | 15 - .../_files/ParseTestMethodAnnotationsMock.php | 24 - .../tests/_files/PartialMockTestClass.php | 26 - .../RequirementsClassBeforeClassHookTest.php | 21 - .../_files/RequirementsClassDocBlockTest.php | 30 - .../phpunit/tests/_files/RequirementsTest.php | 457 - .../tests/_files/SampleArrayAccess.php | 42 - .../phpunit/tests/_files/SampleClass.php | 24 - .../phpunit/tests/_files/Singleton.php | 30 - .../phpunit/tests/_files/SingletonClass.php | 35 - .../phpunit/tests/_files/SomeClass.php | 19 - .../phpunit/tests/_files/StackTest.php | 34 - .../tests/_files/StaticMockTestClass.php | 20 - .../phpunit/tests/_files/StatusTest.php | 50 - .../tests/_files/StopOnWarningTestSuite.php | 23 - .../tests/_files/StopsOnWarningTest.php | 17 - .../phpunit/tests/_files/StringableClass.php | 16 - .../phpunit/phpunit/tests/_files/Struct.php | 18 - .../phpunit/phpunit/tests/_files/Success.php | 18 - .../tests/_files/TemplateMethodsTest.php | 62 - .../tests/_files/TestAutoreferenced.php | 20 - .../phpunit/tests/_files/TestDoxGroupTest.php | 29 - .../tests/_files/TestGeneratorMaker.php | 18 - .../phpunit/tests/_files/TestIncomplete.php | 18 - .../phpunit/tests/_files/TestIterator.php | 45 - .../phpunit/tests/_files/TestIterator2.php | 43 - .../tests/_files/TestIteratorAggregate.php | 23 - .../tests/_files/TestIteratorAggregate2.php | 24 - .../phpunit/tests/_files/TestSkipped.php | 18 - .../phpunit/tests/_files/TestTestError.php | 18 - .../phpunit/tests/_files/TestWithTest.php | 34 - .../_files/TestableCliTestDoxPrinter.php | 25 - .../tests/_files/ThrowExceptionTestCase.php | 18 - .../tests/_files/ThrowNoExceptionTestCase.php | 17 - .../_files/TraversableMockTestInterface.php | 12 - .../phpunit/tests/_files/TruthyConstraint.php | 26 - .../VariousIterableDataProviderTest.php | 47 - .../phpunit/phpunit/tests/_files/WasRun.php | 20 - .../tests/_files/WrapperIteratorAggregate.php | 29 - vendor/phpunit/phpunit/tests/_files/bar.xml | 1 - .../_files/configuration.colors.empty.xml | 1 - .../_files/configuration.colors.false.xml | 1 - .../_files/configuration.colors.invalid.xml | 1 - .../_files/configuration.colors.true.xml | 1 - .../_files/configuration.columns.default.xml | 1 - .../_files/configuration.custom-printer.xml | 2 - .../_files/configuration.defaulttestsuite.xml | 10 - .../_files/configuration.one-file-suite.xml | 7 - .../tests/_files/configuration.suites.xml | 6 - .../phpunit/tests/_files/configuration.xml | 160 - .../tests/_files/configuration_empty.xml | 49 - .../_files/configuration_stop_on_warning.xml | 2 - .../tests/_files/configuration_xinclude.xml | 81 - .../tests/_files/expectedFileFormat.txt | 1 - vendor/phpunit/phpunit/tests/_files/foo.xml | 1 - .../tests/_files/phpt-for-coverage.phpt | 8 - .../phpunit/tests/_files/phpt-xfail.phpt | 11 - .../phpunit-example-extension/phpunit.xml | 10 - .../tests/OneTest.php | 21 - .../phpunit-example-extension-3.0.3.phar | Bin 7698 -> 0 bytes ...uctureAttributesAreSameButValuesAreNot.xml | 10 - .../tests/_files/structureExpected.xml | 10 - .../tests/_files/structureIgnoreTextNodes.xml | 13 - .../_files/structureIsSameButDataIsNot.xml | 10 - .../structureWrongNumberOfAttributes.xml | 10 - .../_files/structureWrongNumberOfNodes.xml | 9 - vendor/phpunit/phpunit/tests/bootstrap.php | 54 - vendor/psr/container/LICENSE | 21 - vendor/psr/container/README.md | 5 - vendor/psr/container/composer.json | 27 - .../src/ContainerExceptionInterface.php | 13 - .../psr/container/src/ContainerInterface.php | 37 - .../src/NotFoundExceptionInterface.php | 13 - vendor/psr/http-message/CHANGELOG.md | 36 - vendor/psr/http-message/LICENSE | 19 - vendor/psr/http-message/README.md | 13 - vendor/psr/http-message/composer.json | 26 - .../psr/http-message/src/MessageInterface.php | 187 - .../psr/http-message/src/RequestInterface.php | 129 - .../http-message/src/ResponseInterface.php | 68 - .../src/ServerRequestInterface.php | 261 - .../psr/http-message/src/StreamInterface.php | 158 - .../src/UploadedFileInterface.php | 123 - vendor/psr/http-message/src/UriInterface.php | 323 - vendor/psr/log/LICENSE | 19 - vendor/psr/log/Psr/Log/AbstractLogger.php | 128 - .../log/Psr/Log/InvalidArgumentException.php | 7 - vendor/psr/log/Psr/Log/LogLevel.php | 18 - .../psr/log/Psr/Log/LoggerAwareInterface.php | 18 - vendor/psr/log/Psr/Log/LoggerAwareTrait.php | 26 - vendor/psr/log/Psr/Log/LoggerInterface.php | 123 - vendor/psr/log/Psr/Log/LoggerTrait.php | 140 - vendor/psr/log/Psr/Log/NullLogger.php | 28 - .../log/Psr/Log/Test/LoggerInterfaceTest.php | 140 - vendor/psr/log/README.md | 45 - vendor/psr/log/composer.json | 26 - vendor/psr/simple-cache/.editorconfig | 12 - vendor/psr/simple-cache/LICENSE.md | 21 - vendor/psr/simple-cache/README.md | 8 - vendor/psr/simple-cache/composer.json | 25 - .../psr/simple-cache/src/CacheException.php | 10 - .../psr/simple-cache/src/CacheInterface.php | 114 - .../src/InvalidArgumentException.php | 13 - vendor/psy/psysh/.editorconfig | 15 - vendor/psy/psysh/.github/CONTRIBUTING.md | 9 - vendor/psy/psysh/.phan/config.php | 46 - vendor/psy/psysh/.php_cs | 32 - vendor/psy/psysh/.styleci.yml | 29 - vendor/psy/psysh/.travis.yml | 44 - vendor/psy/psysh/LICENSE | 21 - vendor/psy/psysh/Makefile | 95 - vendor/psy/psysh/README.md | 34 - vendor/psy/psysh/bin/build-stub | 22 - vendor/psy/psysh/bin/psysh | 138 - vendor/psy/psysh/box.json.dist | 13 - vendor/psy/psysh/composer.json | 52 - vendor/psy/psysh/phpunit.xml.dist | 12 - vendor/psy/psysh/src/CodeCleaner.php | 349 - .../src/CodeCleaner/AbstractClassPass.php | 71 - .../CodeCleaner/AssignThisVariablePass.php | 39 - .../CallTimePassByReferencePass.php | 50 - .../psysh/src/CodeCleaner/CalledClassPass.php | 83 - .../psysh/src/CodeCleaner/CodeCleanerPass.php | 22 - vendor/psy/psysh/src/CodeCleaner/ExitPass.php | 32 - .../psysh/src/CodeCleaner/FinalClassPass.php | 70 - .../src/CodeCleaner/FunctionContextPass.php | 61 - .../FunctionReturnInWriteContextPass.php | 81 - .../src/CodeCleaner/ImplicitReturnPass.php | 128 - .../psysh/src/CodeCleaner/InstanceOfPass.php | 47 - .../src/CodeCleaner/LeavePsyshAlonePass.php | 36 - .../psysh/src/CodeCleaner/LegacyEmptyPass.php | 73 - vendor/psy/psysh/src/CodeCleaner/ListPass.php | 89 - .../psysh/src/CodeCleaner/LoopContextPass.php | 103 - .../src/CodeCleaner/MagicConstantsPass.php | 42 - .../src/CodeCleaner/NamespaceAwarePass.php | 71 - .../psysh/src/CodeCleaner/NamespacePass.php | 88 - .../psysh/src/CodeCleaner/NoReturnValue.php | 35 - .../CodeCleaner/PassableByReferencePass.php | 109 - .../psy/psysh/src/CodeCleaner/RequirePass.php | 102 - .../psysh/src/CodeCleaner/StrictTypesPass.php | 87 - .../src/CodeCleaner/UseStatementPass.php | 126 - .../src/CodeCleaner/ValidClassNamePass.php | 396 - .../src/CodeCleaner/ValidConstantPass.php | 90 - .../src/CodeCleaner/ValidConstructorPass.php | 112 - .../src/CodeCleaner/ValidFunctionNamePass.php | 97 - .../psy/psysh/src/Command/BufferCommand.php | 77 - vendor/psy/psysh/src/Command/ClearCommand.php | 49 - vendor/psy/psysh/src/Command/Command.php | 282 - vendor/psy/psysh/src/Command/DocCommand.php | 132 - vendor/psy/psysh/src/Command/DumpCommand.php | 94 - vendor/psy/psysh/src/Command/EditCommand.php | 187 - vendor/psy/psysh/src/Command/ExitCommand.php | 52 - vendor/psy/psysh/src/Command/HelpCommand.php | 98 - .../psy/psysh/src/Command/HistoryCommand.php | 246 - vendor/psy/psysh/src/Command/ListCommand.php | 276 - .../ListCommand/ClassConstantEnumerator.php | 127 - .../Command/ListCommand/ClassEnumerator.php | 126 - .../ListCommand/ConstantEnumerator.php | 122 - .../src/Command/ListCommand/Enumerator.php | 106 - .../ListCommand/FunctionEnumerator.php | 112 - .../ListCommand/GlobalVariableEnumerator.php | 92 - .../ListCommand/InterfaceEnumerator.php | 89 - .../Command/ListCommand/MethodEnumerator.php | 145 - .../ListCommand/PropertyEnumerator.php | 180 - .../Command/ListCommand/TraitEnumerator.php | 89 - .../ListCommand/VariableEnumerator.php | 137 - vendor/psy/psysh/src/Command/ParseCommand.php | 180 - .../psysh/src/Command/PsyVersionCommand.php | 41 - .../psysh/src/Command/ReflectingCommand.php | 303 - vendor/psy/psysh/src/Command/ShowCommand.php | 289 - vendor/psy/psysh/src/Command/SudoCommand.php | 143 - .../psy/psysh/src/Command/ThrowUpCommand.php | 172 - .../psy/psysh/src/Command/TimeitCommand.php | 196 - .../Command/TimeitCommand/TimeitVisitor.php | 139 - vendor/psy/psysh/src/Command/TraceCommand.php | 167 - .../psy/psysh/src/Command/WhereamiCommand.php | 148 - vendor/psy/psysh/src/Command/WtfCommand.php | 125 - vendor/psy/psysh/src/ConfigPaths.php | 237 - vendor/psy/psysh/src/Configuration.php | 1307 - vendor/psy/psysh/src/ConsoleColorFactory.php | 82 - vendor/psy/psysh/src/Context.php | 320 - vendor/psy/psysh/src/ContextAware.php | 28 - .../psysh/src/Exception/BreakException.php | 51 - .../src/Exception/DeprecatedException.php | 20 - .../psysh/src/Exception/ErrorException.php | 114 - vendor/psy/psysh/src/Exception/Exception.php | 27 - .../src/Exception/FatalErrorException.php | 52 - .../src/Exception/ParseErrorException.php | 42 - .../psysh/src/Exception/RuntimeException.php | 43 - .../psysh/src/Exception/ThrowUpException.php | 57 - .../src/Exception/TypeErrorException.php | 55 - vendor/psy/psysh/src/ExecutionClosure.php | 119 - vendor/psy/psysh/src/ExecutionLoop.php | 67 - .../src/ExecutionLoop/AbstractListener.php | 62 - .../psy/psysh/src/ExecutionLoop/Listener.php | 83 - .../psysh/src/ExecutionLoop/ProcessForker.php | 219 - .../src/ExecutionLoop/RunkitReloader.php | 135 - vendor/psy/psysh/src/ExecutionLoopClosure.php | 99 - .../psy/psysh/src/Formatter/CodeFormatter.php | 71 - .../psysh/src/Formatter/DocblockFormatter.php | 168 - vendor/psy/psysh/src/Formatter/Formatter.php | 25 - .../src/Formatter/SignatureFormatter.php | 308 - vendor/psy/psysh/src/Input/CodeArgument.php | 50 - vendor/psy/psysh/src/Input/FilterOptions.php | 145 - vendor/psy/psysh/src/Input/ShellInput.php | 336 - vendor/psy/psysh/src/Input/SilentInput.php | 44 - vendor/psy/psysh/src/Output/OutputPager.php | 26 - vendor/psy/psysh/src/Output/PassthruPager.php | 39 - .../psy/psysh/src/Output/ProcOutputPager.php | 103 - vendor/psy/psysh/src/Output/ShellOutput.php | 204 - vendor/psy/psysh/src/ParserFactory.php | 91 - vendor/psy/psysh/src/Readline/GNUReadline.php | 170 - vendor/psy/psysh/src/Readline/HoaConsole.php | 107 - vendor/psy/psysh/src/Readline/Libedit.php | 83 - vendor/psy/psysh/src/Readline/Readline.php | 76 - vendor/psy/psysh/src/Readline/Transient.php | 147 - .../Reflection/ReflectionClassConstant.php | 228 - .../src/Reflection/ReflectionConstant.php | 30 - .../src/Reflection/ReflectionConstant_.php | 182 - .../ReflectionLanguageConstruct.php | 164 - .../ReflectionLanguageConstructParameter.php | 103 - vendor/psy/psysh/src/Shell.php | 1300 - vendor/psy/psysh/src/Sudo.php | 150 - vendor/psy/psysh/src/Sudo/SudoVisitor.php | 124 - .../psysh/src/TabCompletion/AutoCompleter.php | 110 - .../Matcher/AbstractContextAwareMatcher.php | 65 - .../AbstractDefaultParametersMatcher.php | 76 - .../TabCompletion/Matcher/AbstractMatcher.php | 195 - .../Matcher/ClassAttributesMatcher.php | 87 - .../ClassMethodDefaultParametersMatcher.php | 64 - .../Matcher/ClassMethodsMatcher.php | 84 - .../Matcher/ClassNamesMatcher.php | 77 - .../TabCompletion/Matcher/CommandsMatcher.php | 114 - .../Matcher/ConstantsMatcher.php | 54 - .../FunctionDefaultParametersMatcher.php | 53 - .../Matcher/FunctionsMatcher.php | 56 - .../TabCompletion/Matcher/KeywordsMatcher.php | 85 - .../Matcher/MongoClientMatcher.php | 71 - .../Matcher/MongoDatabaseMatcher.php | 67 - .../Matcher/ObjectAttributesMatcher.php | 78 - .../ObjectMethodDefaultParametersMatcher.php | 71 - .../Matcher/ObjectMethodsMatcher.php | 80 - .../Matcher/VariablesMatcher.php | 51 - vendor/psy/psysh/src/Util/Docblock.php | 241 - vendor/psy/psysh/src/Util/Json.php | 33 - vendor/psy/psysh/src/Util/Mirror.php | 99 - vendor/psy/psysh/src/Util/Str.php | 114 - vendor/psy/psysh/src/VarDumper/Cloner.php | 42 - vendor/psy/psysh/src/VarDumper/Dumper.php | 109 - vendor/psy/psysh/src/VarDumper/Presenter.php | 137 - .../psysh/src/VarDumper/PresenterAware.php | 26 - .../psy/psysh/src/VersionUpdater/Checker.php | 31 - .../src/VersionUpdater/GitHubChecker.php | 89 - .../src/VersionUpdater/IntervalChecker.php | 69 - .../psysh/src/VersionUpdater/NoopChecker.php | 36 - vendor/psy/psysh/src/functions.php | 358 - vendor/psy/psysh/test/ClassWithSecrets.php | 37 - .../CodeCleaner/AbstractClassPassTest.php | 57 - .../AssignThisVariablePassTest.php | 58 - .../CallTimePassByReferencePassTest.php | 59 - .../test/CodeCleaner/CalledClassPassTest.php | 90 - .../test/CodeCleaner/CodeCleanerTestCase.php | 41 - .../psysh/test/CodeCleaner/ExitPassTest.php | 59 - .../test/CodeCleaner/FinalClassPassTest.php | 65 - .../Fixtures/ClassWithCallStatic.php | 20 - .../CodeCleaner/Fixtures/ClassWithStatic.php | 20 - .../CodeCleaner/FunctionContextPassTest.php | 56 - .../FunctionReturnInWriteContextPassTest.php | 91 - .../CodeCleaner/ImplicitReturnPassTest.php | 112 - .../test/CodeCleaner/InstanceOfPassTest.php | 72 - .../CodeCleaner/LeavePsyshAlonePassTest.php | 69 - .../test/CodeCleaner/LegacyEmptyPassTest.php | 76 - .../psysh/test/CodeCleaner/ListPassTest.php | 104 - .../test/CodeCleaner/LoopContextPassTest.php | 108 - .../CodeCleaner/MagicConstantsPassTest.php | 39 - .../test/CodeCleaner/NamespacePassTest.php | 59 - .../test/CodeCleaner/NoReturnValueTest.php | 32 - .../PassableByReferencePassTest.php | 104 - .../test/CodeCleaner/RequirePassTest.php | 93 - .../test/CodeCleaner/StrictTypesPassTest.php | 52 - .../test/CodeCleaner/UseStatementPassTest.php | 102 - .../CodeCleaner/ValidClassNamePassTest.php | 324 - .../CodeCleaner/ValidConstantPassTest.php | 65 - .../CodeCleaner/ValidConstructorPassTest.php | 93 - .../CodeCleaner/ValidFunctionNamePassTest.php | 180 - vendor/psy/psysh/test/CodeCleanerTest.php | 131 - .../psysh/test/Command/ExitCommandTest.php | 29 - .../psysh/test/Command/ThrowUpCommandTest.php | 89 - .../TimeitCommand/TimeitVisitorTest.php | 52 - vendor/psy/psysh/test/ConfigurationTest.php | 256 - .../psysh/test/ConsoleColorFactoryTest.php | 51 - vendor/psy/psysh/test/ContextTest.php | 325 - .../test/Exception/BreakExceptionTest.php | 42 - .../test/Exception/ErrorExceptionTest.php | 125 - .../Exception/FatalErrorExceptionTest.php | 51 - .../Exception/ParseErrorExceptionTest.php | 42 - .../test/Exception/RuntimeExceptionTest.php | 30 - .../test/Exception/ThrowUpExceptionTest.php | 66 - .../test/Exception/TypeErrorExceptionTest.php | 52 - vendor/psy/psysh/test/FakeShell.php | 29 - .../test/Formatter/CodeFormatterTest.php | 129 - .../test/Formatter/DocblockFormatterTest.php | 63 - .../test/Formatter/Fixtures/BoringTrait.php | 20 - .../test/Formatter/Fixtures/SomeClass.php | 30 - .../test/Formatter/SignatureFormatterTest.php | 95 - .../psy/psysh/test/Input/CodeArgumentTest.php | 52 - .../psysh/test/Input/FilterOptionsTest.php | 105 - .../psy/psysh/test/Input/ShellInputTest.php | 254 - vendor/psy/psysh/test/ParserTestCase.php | 97 - .../psysh/test/Readline/GNUReadlineTest.php | 80 - .../psysh/test/Readline/HoaConsoleTest.php | 31 - .../psy/psysh/test/Readline/LibeditTest.php | 128 - .../psy/psysh/test/Readline/TransientTest.php | 76 - .../ReflectionClassConstantTest.php | 81 - .../Reflection/ReflectionConstantBCTest.php | 26 - .../Reflection/ReflectionConstantTest.php | 114 - ...flectionLanguageConstructParameterTest.php | 64 - .../ReflectionLanguageConstructTest.php | 102 - vendor/psy/psysh/test/ShellTest.php | 439 - .../psy/psysh/test/Sudo/SudoVisitorTest.php | 142 - vendor/psy/psysh/test/SudoTest.php | 80 - .../test/TabCompletion/AutoCompleterTest.php | 145 - .../psysh/test/TabCompletion/StaticSample.php | 27 - vendor/psy/psysh/test/Util/DocblockTest.php | 100 - vendor/psy/psysh/test/Util/MirrorTest.php | 86 - vendor/psy/psysh/test/Util/StrTest.php | 31 - .../test/VersionUpdater/GitHubCheckerTest.php | 82 - .../test/VersionUpdater/NoopCheckerTest.php | 25 - vendor/psy/psysh/test/fixtures/config.php | 20 - .../fixtures/default/.config/psysh/config.php | 1 - .../default/.config/psysh/psysh_history | 0 .../.local/share/psysh/php_manual.sqlite | 0 vendor/psy/psysh/test/fixtures/empty.php | 12 - .../psysh/test/fixtures/legacy/.psysh/history | 0 .../fixtures/legacy/.psysh/php_manual.sqlite | 0 .../psysh/test/fixtures/legacy/.psysh/rc.php | 1 - .../test/fixtures/mixed/.psysh/config.php | 1 - .../test/fixtures/mixed/.psysh/psysh_history | 0 .../psysh/test/fixtures/mixed/.psysh/rc.php | 1 - .../psysh/test/fixtures/project/.psysh.php | 17 - .../psysh/test/fixtures/unvis_fixtures.json | 1 - .../psysh/test/tools/gen_unvis_fixtures.py | 94 - vendor/psy/psysh/test/tools/vis.py | 126 - vendor/psy/psysh/vendor-bin/box/composer.json | 7 - vendor/psy/psysh/vendor-bin/box/composer.lock | 2524 -- vendor/ramsey/uuid/CHANGELOG.md | 376 - vendor/ramsey/uuid/CODE_OF_CONDUCT.md | 74 - vendor/ramsey/uuid/CONTRIBUTING.md | 75 - vendor/ramsey/uuid/LICENSE | 19 - vendor/ramsey/uuid/README.md | 159 - vendor/ramsey/uuid/composer.json | 80 - vendor/ramsey/uuid/src/BinaryUtils.php | 43 - .../uuid/src/Builder/DefaultUuidBuilder.php | 54 - .../uuid/src/Builder/DegradedUuidBuilder.php | 53 - .../uuid/src/Builder/UuidBuilderInterface.php | 34 - .../ramsey/uuid/src/Codec/CodecInterface.php | 58 - .../ramsey/uuid/src/Codec/GuidStringCodec.php | 102 - .../uuid/src/Codec/OrderedTimeCodec.php | 68 - vendor/ramsey/uuid/src/Codec/StringCodec.php | 170 - .../src/Codec/TimestampFirstCombCodec.php | 107 - .../uuid/src/Codec/TimestampLastCombCodec.php | 23 - .../Converter/Number/BigNumberConverter.php | 54 - .../Number/DegradedNumberConverter.php | 58 - .../Converter/NumberConverterInterface.php | 46 - .../Converter/Time/BigNumberTimeConverter.php | 58 - .../Converter/Time/DegradedTimeConverter.php | 42 - .../src/Converter/Time/PhpTimeConverter.php | 47 - .../src/Converter/TimeConverterInterface.php | 35 - vendor/ramsey/uuid/src/DegradedUuid.php | 114 - .../Exception/InvalidUuidStringException.php | 22 - .../UnsatisfiedDependencyException.php | 23 - .../UnsupportedOperationException.php | 22 - vendor/ramsey/uuid/src/FeatureSet.php | 333 - .../uuid/src/Generator/CombGenerator.php | 88 - .../src/Generator/DefaultTimeGenerator.php | 138 - .../uuid/src/Generator/MtRandGenerator.php | 41 - .../uuid/src/Generator/OpenSslGenerator.php | 38 - .../src/Generator/PeclUuidRandomGenerator.php | 37 - .../src/Generator/PeclUuidTimeGenerator.php | 38 - .../src/Generator/RandomBytesGenerator.php | 37 - .../src/Generator/RandomGeneratorFactory.php | 31 - .../Generator/RandomGeneratorInterface.php | 33 - .../uuid/src/Generator/RandomLibAdapter.php | 62 - .../src/Generator/SodiumRandomGenerator.php | 36 - .../src/Generator/TimeGeneratorFactory.php | 72 - .../src/Generator/TimeGeneratorInterface.php | 39 - .../Provider/Node/FallbackNodeProvider.php | 58 - .../src/Provider/Node/RandomNodeProvider.php | 42 - .../src/Provider/Node/SystemNodeProvider.php | 125 - .../src/Provider/NodeProviderInterface.php | 30 - .../src/Provider/Time/FixedTimeProvider.php | 76 - .../src/Provider/Time/SystemTimeProvider.php | 33 - .../src/Provider/TimeProviderInterface.php | 29 - vendor/ramsey/uuid/src/Uuid.php | 740 - vendor/ramsey/uuid/src/UuidFactory.php | 314 - .../ramsey/uuid/src/UuidFactoryInterface.php | 103 - vendor/ramsey/uuid/src/UuidInterface.php | 270 - .../code-unit-reverse-lookup/.php_cs | 67 - .../code-unit-reverse-lookup/.travis.yml | 25 - .../code-unit-reverse-lookup/ChangeLog.md | 10 - .../code-unit-reverse-lookup/LICENSE | 33 - .../code-unit-reverse-lookup/README.md | 14 - .../code-unit-reverse-lookup/build.xml | 22 - .../code-unit-reverse-lookup/composer.json | 28 - .../code-unit-reverse-lookup/phpunit.xml | 21 - .../code-unit-reverse-lookup/src/Wizard.php | 111 - .../tests/WizardTest.php | 45 - vendor/sebastian/comparator/.github/stale.yml | 40 - vendor/sebastian/comparator/.php_cs.dist | 189 - vendor/sebastian/comparator/.travis.yml | 33 - vendor/sebastian/comparator/ChangeLog.md | 59 - vendor/sebastian/comparator/LICENSE | 33 - vendor/sebastian/comparator/README.md | 37 - vendor/sebastian/comparator/build.xml | 21 - vendor/sebastian/comparator/composer.json | 54 - vendor/sebastian/comparator/phpunit.xml | 21 - .../comparator/src/ArrayComparator.php | 130 - .../sebastian/comparator/src/Comparator.php | 61 - .../comparator/src/ComparisonFailure.php | 128 - .../comparator/src/DOMNodeComparator.php | 86 - .../comparator/src/DateTimeComparator.php | 86 - .../comparator/src/DoubleComparator.php | 56 - .../comparator/src/ExceptionComparator.php | 52 - vendor/sebastian/comparator/src/Factory.php | 138 - .../comparator/src/MockObjectComparator.php | 47 - .../comparator/src/NumericComparator.php | 68 - .../comparator/src/ObjectComparator.php | 106 - .../comparator/src/ResourceComparator.php | 52 - .../comparator/src/ScalarComparator.php | 91 - .../src/SplObjectStorageComparator.php | 69 - .../comparator/src/TypeComparator.php | 59 - .../comparator/tests/ArrayComparatorTest.php | 161 - .../tests/ComparisonFailureTest.php | 59 - .../tests/DOMNodeComparatorTest.php | 180 - .../tests/DateTimeComparatorTest.php | 213 - .../comparator/tests/DoubleComparatorTest.php | 135 - .../tests/ExceptionComparatorTest.php | 136 - .../comparator/tests/FactoryTest.php | 117 - .../tests/MockObjectComparatorTest.php | 168 - .../tests/NumericComparatorTest.php | 123 - .../comparator/tests/ObjectComparatorTest.php | 150 - .../tests/ResourceComparatorTest.php | 122 - .../comparator/tests/ScalarComparatorTest.php | 164 - .../tests/SplObjectStorageComparatorTest.php | 145 - .../comparator/tests/TypeComparatorTest.php | 107 - .../comparator/tests/_fixture/Author.php | 26 - .../comparator/tests/_fixture/Book.php | 19 - .../tests/_fixture/ClassWithToString.php | 18 - .../comparator/tests/_fixture/SampleClass.php | 29 - .../comparator/tests/_fixture/Struct.php | 23 - .../comparator/tests/_fixture/TestClass.php | 14 - .../tests/_fixture/TestClassComparator.php | 14 - vendor/sebastian/diff/.github/stale.yml | 40 - vendor/sebastian/diff/.php_cs.dist | 168 - vendor/sebastian/diff/.travis.yml | 25 - vendor/sebastian/diff/ChangeLog.md | 46 - vendor/sebastian/diff/LICENSE | 33 - vendor/sebastian/diff/README.md | 195 - vendor/sebastian/diff/build.xml | 22 - vendor/sebastian/diff/composer.json | 39 - vendor/sebastian/diff/phpunit.xml | 21 - vendor/sebastian/diff/src/Chunk.php | 78 - vendor/sebastian/diff/src/Diff.php | 67 - vendor/sebastian/diff/src/Differ.php | 330 - .../src/Exception/ConfigurationException.php | 40 - .../diff/src/Exception/Exception.php | 15 - .../Exception/InvalidArgumentException.php | 15 - vendor/sebastian/diff/src/Line.php | 44 - .../LongestCommonSubsequenceCalculator.php | 24 - ...ientLongestCommonSubsequenceCalculator.php | 81 - .../src/Output/AbstractChunkOutputBuilder.php | 56 - .../diff/src/Output/DiffOnlyOutputBuilder.php | 68 - .../src/Output/DiffOutputBuilderInterface.php | 20 - .../Output/StrictUnifiedDiffOutputBuilder.php | 318 - .../src/Output/UnifiedDiffOutputBuilder.php | 264 - vendor/sebastian/diff/src/Parser.php | 106 - ...ientLongestCommonSubsequenceCalculator.php | 66 - vendor/sebastian/diff/tests/ChunkTest.php | 68 - vendor/sebastian/diff/tests/DiffTest.php | 55 - vendor/sebastian/diff/tests/DifferTest.php | 462 - .../Exception/ConfigurationExceptionTest.php | 41 - .../InvalidArgumentExceptionTest.php | 33 - vendor/sebastian/diff/tests/LineTest.php | 44 - .../tests/LongestCommonSubsequenceTest.php | 201 - .../MemoryEfficientImplementationTest.php | 22 - .../Output/AbstractChunkOutputBuilderTest.php | 152 - .../Output/DiffOnlyOutputBuilderTest.php | 76 - ...nifiedDiffOutputBuilderIntegrationTest.php | 299 - ...nifiedDiffOutputBuilderIntegrationTest.php | 163 - ...ctUnifiedDiffOutputBuilderDataProvider.php | 189 - .../StrictUnifiedDiffOutputBuilderTest.php | 684 - .../UnifiedDiffOutputBuilderDataProvider.php | 396 - .../Output/UnifiedDiffOutputBuilderTest.php | 90 - vendor/sebastian/diff/tests/ParserTest.php | 175 - .../tests/TimeEfficientImplementationTest.php | 22 - .../sebastian/diff/tests/Utils/FileUtils.php | 31 - .../tests/Utils/UnifiedDiffAssertTrait.php | 277 - .../UnifiedDiffAssertTraitIntegrationTest.php | 129 - .../Utils/UnifiedDiffAssertTraitTest.php | 434 - .../diff/tests/fixtures/.editorconfig | 1 - .../1_a.txt | 1 - .../1_b.txt | 0 .../2_a.txt | 35 - .../2_b.txt | 18 - .../diff/tests/fixtures/out/.editorconfig | 1 - .../sebastian/diff/tests/fixtures/patch.txt | 9 - .../sebastian/diff/tests/fixtures/patch2.txt | 21 - .../diff/tests/fixtures/serialized_diff.bin | Bin 4143 -> 0 bytes vendor/sebastian/environment/.php_cs | 79 - vendor/sebastian/environment/.travis.yml | 34 - vendor/sebastian/environment/ChangeLog.md | 51 - vendor/sebastian/environment/LICENSE | 33 - vendor/sebastian/environment/README.md | 17 - vendor/sebastian/environment/build.xml | 21 - vendor/sebastian/environment/composer.json | 30 - vendor/sebastian/environment/phpunit.xml | 18 - vendor/sebastian/environment/src/Console.php | 146 - .../environment/src/OperatingSystem.php | 51 - vendor/sebastian/environment/src/Runtime.php | 186 - .../environment/tests/ConsoleTest.php | 67 - .../environment/tests/OperatingSystemTest.php | 39 - .../environment/tests/RuntimeTest.php | 112 - vendor/sebastian/exporter/.php_cs | 77 - vendor/sebastian/exporter/.travis.yml | 26 - vendor/sebastian/exporter/LICENSE | 33 - vendor/sebastian/exporter/README.md | 172 - vendor/sebastian/exporter/build.xml | 21 - vendor/sebastian/exporter/composer.json | 48 - vendor/sebastian/exporter/phpunit.xml | 19 - vendor/sebastian/exporter/src/Exporter.php | 312 - .../sebastian/exporter/tests/ExporterTest.php | 361 - vendor/sebastian/global-state/.php_cs | 79 - vendor/sebastian/global-state/.travis.yml | 26 - vendor/sebastian/global-state/LICENSE | 33 - vendor/sebastian/global-state/README.md | 16 - vendor/sebastian/global-state/build.xml | 22 - vendor/sebastian/global-state/composer.json | 40 - vendor/sebastian/global-state/phpunit.xml | 24 - .../sebastian/global-state/src/Blacklist.php | 123 - .../global-state/src/CodeExporter.php | 94 - .../sebastian/global-state/src/Restorer.php | 137 - .../sebastian/global-state/src/Snapshot.php | 368 - .../global-state/src/exceptions/Exception.php | 17 - .../src/exceptions/RuntimeException.php | 17 - .../global-state/tests/BlacklistTest.php | 120 - .../global-state/tests/CodeExporterTest.php | 38 - .../global-state/tests/RestorerTest.php | 105 - .../global-state/tests/SnapshotTest.php | 116 - .../tests/_fixture/BlacklistedChildClass.php | 17 - .../tests/_fixture/BlacklistedClass.php | 18 - .../tests/_fixture/BlacklistedImplementor.php | 18 - .../tests/_fixture/BlacklistedInterface.php | 17 - .../tests/_fixture/SnapshotClass.php | 37 - .../tests/_fixture/SnapshotDomDocument.php | 19 - .../tests/_fixture/SnapshotFunctions.php | 17 - .../tests/_fixture/SnapshotTrait.php | 17 - vendor/sebastian/object-enumerator/.php_cs | 67 - .../sebastian/object-enumerator/.travis.yml | 26 - .../sebastian/object-enumerator/ChangeLog.md | 53 - vendor/sebastian/object-enumerator/LICENSE | 33 - vendor/sebastian/object-enumerator/README.md | 14 - vendor/sebastian/object-enumerator/build.xml | 22 - .../sebastian/object-enumerator/composer.json | 35 - .../sebastian/object-enumerator/phpunit.xml | 20 - .../object-enumerator/src/Enumerator.php | 85 - .../object-enumerator/src/Exception.php | 15 - .../src/InvalidArgumentException.php | 15 - .../tests/EnumeratorTest.php | 139 - .../tests/_fixture/ExceptionThrower.php | 28 - vendor/sebastian/object-reflector/.php_cs | 79 - vendor/sebastian/object-reflector/.travis.yml | 26 - .../sebastian/object-reflector/ChangeLog.md | 20 - vendor/sebastian/object-reflector/LICENSE | 33 - vendor/sebastian/object-reflector/README.md | 14 - vendor/sebastian/object-reflector/build.xml | 22 - .../sebastian/object-reflector/composer.json | 33 - vendor/sebastian/object-reflector/phpunit.xml | 19 - .../object-reflector/src/Exception.php | 17 - .../src/InvalidArgumentException.php | 17 - .../object-reflector/src/ObjectReflector.php | 51 - .../tests/ObjectReflectorTest.php | 70 - .../tests/_fixture/ChildClass.php | 25 - .../ClassWithIntegerAttributeName.php | 22 - .../tests/_fixture/ParentClass.php | 20 - .../sebastian/recursion-context/.travis.yml | 23 - vendor/sebastian/recursion-context/LICENSE | 33 - vendor/sebastian/recursion-context/README.md | 14 - vendor/sebastian/recursion-context/build.xml | 21 - .../sebastian/recursion-context/composer.json | 36 - .../sebastian/recursion-context/phpunit.xml | 19 - .../recursion-context/src/Context.php | 167 - .../recursion-context/src/Exception.php | 17 - .../src/InvalidArgumentException.php | 17 - .../recursion-context/tests/ContextTest.php | 142 - vendor/sebastian/resource-operations/LICENSE | 33 - .../sebastian/resource-operations/README.md | 16 - .../sebastian/resource-operations/build.xml | 24 - .../resource-operations/build/generate.php | 62 - .../resource-operations/composer.json | 26 - .../src/ResourceOperations.php | 670 - vendor/sebastian/version/.gitattributes | 1 - vendor/sebastian/version/.php_cs | 66 - vendor/sebastian/version/LICENSE | 33 - vendor/sebastian/version/README.md | 43 - vendor/sebastian/version/composer.json | 29 - vendor/sebastian/version/src/Version.php | 109 - .../simple-qrcode/.travis.yml | 11 - .../simple-qrcode/CHANGELOG.md | 69 - .../simple-qrcode/CONTRIBUTING.md | 3 - vendor/simplesoftwareio/simple-qrcode/LICENSE | 21 - .../simplesoftwareio/simple-qrcode/README.md | 27 - .../simple-qrcode/composer.json | 38 - .../simple-qrcode/docs/en/README.md | 365 - .../simple-qrcode/docs/es/README.md | 347 - .../simple-qrcode/docs/fr/README.md | 348 - .../simple-qrcode/docs/hi/README.md | 346 - .../simple-qrcode/docs/imgs/merged-qrcode.png | Bin 11462 -> 0 bytes .../simple-qrcode/docs/it/README.md | 348 - .../simple-qrcode/docs/pt-br/README.md | 347 - .../simple-qrcode/docs/ru/README.md | 347 - .../simple-qrcode/docs/zh/README.md | 346 - .../simple-qrcode/phpunit.xml | 18 - .../QrCode/BaconQrCodeGenerator.php | 290 - .../SimpleSoftwareIO/QrCode/DataTypes/BTC.php | 134 - .../QrCode/DataTypes/DataTypeInterface.php | 18 - .../QrCode/DataTypes/Email.php | 122 - .../SimpleSoftwareIO/QrCode/DataTypes/Geo.php | 55 - .../QrCode/DataTypes/PhoneNumber.php | 40 - .../SimpleSoftwareIO/QrCode/DataTypes/SMS.php | 85 - .../QrCode/DataTypes/WiFi.php | 115 - .../QrCode/Facades/QrCode.php | 20 - .../src/SimpleSoftwareIO/QrCode/Image.php | 53 - .../QrCode/ImageInterface.php | 34 - .../SimpleSoftwareIO/QrCode/ImageMerge.php | 170 - .../QrCode/ImageMergeInterface.php | 21 - .../QrCode/QrCodeInterface.php | 93 - .../QrCode/QrCodeServiceProvider.php | 35 - .../tests/BaconQrCodeGeneratorTest.php | 137 - .../simple-qrcode/tests/DataTypes/BTCTest.php | 47 - .../tests/DataTypes/EmailTest.php | 56 - .../simple-qrcode/tests/DataTypes/GeoTest.php | 17 - .../tests/DataTypes/PhoneNumberTest.php | 17 - .../simple-qrcode/tests/DataTypes/SMSTest.php | 39 - .../tests/DataTypes/WiFiTest.php | 70 - .../simple-qrcode/tests/ImageMergeTest.php | 89 - .../simple-qrcode/tests/ImageTest.php | 82 - .../Images/simplesoftware-icon-grey-blue.png | Bin 18980 -> 0 bytes .../simple-qrcode/tests/bootstrap.php | 3 - vendor/spatie/laravel-permission/.styleci.yml | 1 - vendor/spatie/laravel-permission/CHANGELOG.md | 268 - .../spatie/laravel-permission/CONTRIBUTING.md | 32 - vendor/spatie/laravel-permission/LICENSE.md | 21 - vendor/spatie/laravel-permission/README.md | 875 - .../spatie/laravel-permission/composer.json | 58 - .../laravel-permission/config/permission.php | 88 - .../create_permission_tables.php.stub | 91 - .../src/Commands/CreatePermission.php | 27 - .../src/Commands/CreateRole.php | 27 - .../src/Contracts/Permission.php | 49 - .../laravel-permission/src/Contracts/Role.php | 58 - .../src/Exceptions/GuardDoesNotMatch.php | 14 - .../Exceptions/PermissionAlreadyExists.php | 13 - .../src/Exceptions/PermissionDoesNotExist.php | 18 - .../src/Exceptions/RoleAlreadyExists.php | 13 - .../src/Exceptions/RoleDoesNotExist.php | 18 - .../src/Exceptions/UnauthorizedException.php | 57 - .../spatie/laravel-permission/src/Guard.php | 51 - .../src/Middlewares/PermissionMiddleware.php | 29 - .../src/Middlewares/RoleMiddleware.php | 27 - .../src/Models/Permission.php | 157 - .../laravel-permission/src/Models/Role.php | 154 - .../src/PermissionRegistrar.php | 54 - .../src/PermissionServiceProvider.php | 100 - .../src/Traits/HasPermissions.php | 336 - .../src/Traits/HasRoles.php | 245 - .../src/Traits/RefreshesPermissionCache.php | 19 - .../spatie/laravel-permission/src/helpers.php | 19 - vendor/swiftmailer/swiftmailer/.gitattributes | 9 - .../swiftmailer/.github/ISSUE_TEMPLATE.md | 19 - .../.github/PULL_REQUEST_TEMPLATE.md | 14 - vendor/swiftmailer/swiftmailer/.php_cs.dist | 16 - vendor/swiftmailer/swiftmailer/.travis.yml | 25 - vendor/swiftmailer/swiftmailer/CHANGES | 321 - vendor/swiftmailer/swiftmailer/LICENSE | 19 - vendor/swiftmailer/swiftmailer/README | 15 - vendor/swiftmailer/swiftmailer/composer.json | 40 - .../swiftmailer/swiftmailer/doc/headers.rst | 621 - vendor/swiftmailer/swiftmailer/doc/index.rst | 12 - .../swiftmailer/doc/introduction.rst | 61 - .../swiftmailer/swiftmailer/doc/japanese.rst | 19 - .../swiftmailer/swiftmailer/doc/messages.rst | 950 - .../swiftmailer/swiftmailer/doc/plugins.rst | 337 - .../swiftmailer/swiftmailer/doc/sending.rst | 453 - .../swiftmailer/lib/classes/Swift.php | 78 - .../lib/classes/Swift/AddressEncoder.php | 25 - .../AddressEncoder/IdnAddressEncoder.php | 69 - .../AddressEncoder/Utf8AddressEncoder.php | 36 - .../classes/Swift/AddressEncoderException.php | 32 - .../lib/classes/Swift/Attachment.php | 57 - .../AbstractFilterableInputStream.php | 176 - .../Swift/ByteStream/ArrayByteStream.php | 178 - .../Swift/ByteStream/FileByteStream.php | 216 - .../ByteStream/TemporaryFileByteStream.php | 42 - .../lib/classes/Swift/CharacterReader.php | 67 - .../GenericFixedWidthReader.php | 97 - .../Swift/CharacterReader/UsAsciiReader.php | 84 - .../Swift/CharacterReader/Utf8Reader.php | 176 - .../classes/Swift/CharacterReaderFactory.php | 26 - .../SimpleCharacterReaderFactory.php | 124 - .../lib/classes/Swift/CharacterStream.php | 89 - .../CharacterStream/ArrayCharacterStream.php | 291 - .../CharacterStream/NgCharacterStream.php | 262 - .../lib/classes/Swift/ConfigurableSpool.php | 63 - .../lib/classes/Swift/DependencyContainer.php | 391 - .../lib/classes/Swift/DependencyException.php | 27 - .../lib/classes/Swift/EmbeddedFile.php | 53 - .../swiftmailer/lib/classes/Swift/Encoder.php | 28 - .../classes/Swift/Encoder/Base64Encoder.php | 58 - .../lib/classes/Swift/Encoder/QpEncoder.php | 300 - .../classes/Swift/Encoder/Rfc2231Encoder.php | 90 - .../lib/classes/Swift/Events/CommandEvent.php | 64 - .../classes/Swift/Events/CommandListener.php | 24 - .../lib/classes/Swift/Events/Event.php | 38 - .../classes/Swift/Events/EventDispatcher.php | 83 - .../classes/Swift/Events/EventListener.php | 18 - .../lib/classes/Swift/Events/EventObject.php | 61 - .../classes/Swift/Events/ResponseEvent.php | 64 - .../classes/Swift/Events/ResponseListener.php | 24 - .../lib/classes/Swift/Events/SendEvent.php | 126 - .../lib/classes/Swift/Events/SendListener.php | 31 - .../Swift/Events/SimpleEventDispatcher.php | 143 - .../Swift/Events/TransportChangeEvent.php | 27 - .../Swift/Events/TransportChangeListener.php | 45 - .../Swift/Events/TransportExceptionEvent.php | 43 - .../Events/TransportExceptionListener.php | 24 - .../lib/classes/Swift/FailoverTransport.php | 33 - .../lib/classes/Swift/FileSpool.php | 208 - .../lib/classes/Swift/FileStream.php | 24 - .../lib/classes/Swift/Filterable.php | 32 - .../lib/classes/Swift/IdGenerator.php | 22 - .../swiftmailer/lib/classes/Swift/Image.php | 43 - .../lib/classes/Swift/InputByteStream.php | 75 - .../lib/classes/Swift/IoException.php | 28 - .../lib/classes/Swift/KeyCache.php | 105 - .../classes/Swift/KeyCache/ArrayKeyCache.php | 203 - .../classes/Swift/KeyCache/DiskKeyCache.php | 295 - .../Swift/KeyCache/KeyCacheInputStream.php | 51 - .../classes/Swift/KeyCache/NullKeyCache.php | 113 - .../KeyCache/SimpleKeyCacheInputStream.php | 123 - .../classes/Swift/LoadBalancedTransport.php | 33 - .../swiftmailer/lib/classes/Swift/Mailer.php | 97 - .../Swift/Mailer/ArrayRecipientIterator.php | 53 - .../Swift/Mailer/RecipientIterator.php | 32 - .../lib/classes/Swift/MemorySpool.php | 110 - .../swiftmailer/lib/classes/Swift/Message.php | 279 - .../lib/classes/Swift/Mime/Attachment.php | 144 - .../classes/Swift/Mime/CharsetObserver.php | 24 - .../lib/classes/Swift/Mime/ContentEncoder.php | 34 - .../ContentEncoder/Base64ContentEncoder.php | 101 - .../ContentEncoder/NativeQpContentEncoder.php | 123 - .../ContentEncoder/NullContentEncoder.php | 79 - .../ContentEncoder/PlainContentEncoder.php | 164 - .../Mime/ContentEncoder/QpContentEncoder.php | 134 - .../ContentEncoder/QpContentEncoderProxy.php | 96 - .../Mime/ContentEncoder/RawContentEncoder.php | 65 - .../lib/classes/Swift/Mime/EmbeddedFile.php | 41 - .../classes/Swift/Mime/EncodingObserver.php | 24 - .../lib/classes/Swift/Mime/Header.php | 93 - .../lib/classes/Swift/Mime/HeaderEncoder.php | 24 - .../HeaderEncoder/Base64HeaderEncoder.php | 55 - .../Mime/HeaderEncoder/QpHeaderEncoder.php | 65 - .../Swift/Mime/Headers/AbstractHeader.php | 476 - .../classes/Swift/Mime/Headers/DateHeader.php | 113 - .../Mime/Headers/IdentificationHeader.php | 186 - .../Swift/Mime/Headers/MailboxHeader.php | 360 - .../Swift/Mime/Headers/OpenDKIMHeader.php | 135 - .../Mime/Headers/ParameterizedHeader.php | 255 - .../classes/Swift/Mime/Headers/PathHeader.php | 155 - .../Swift/Mime/Headers/UnstructuredHeader.php | 109 - .../lib/classes/Swift/Mime/IdGenerator.php | 53 - .../lib/classes/Swift/Mime/MimePart.php | 208 - .../Swift/Mime/SimpleHeaderFactory.php | 192 - .../classes/Swift/Mime/SimpleHeaderSet.php | 399 - .../lib/classes/Swift/Mime/SimpleMessage.php | 642 - .../classes/Swift/Mime/SimpleMimeEntity.php | 810 - .../lib/classes/Swift/MimePart.php | 45 - .../lib/classes/Swift/NullTransport.php | 26 - .../lib/classes/Swift/OutputByteStream.php | 46 - .../classes/Swift/Plugins/AntiFloodPlugin.php | 137 - .../Swift/Plugins/BandwidthMonitorPlugin.php | 154 - .../Swift/Plugins/Decorator/Replacements.php | 31 - .../classes/Swift/Plugins/DecoratorPlugin.php | 200 - .../Swift/Plugins/ImpersonatePlugin.php | 65 - .../lib/classes/Swift/Plugins/Logger.php | 36 - .../classes/Swift/Plugins/LoggerPlugin.php | 126 - .../Swift/Plugins/Loggers/ArrayLogger.php | 72 - .../Swift/Plugins/Loggers/EchoLogger.php | 58 - .../classes/Swift/Plugins/MessageLogger.php | 70 - .../Swift/Plugins/Pop/Pop3Connection.php | 31 - .../Swift/Plugins/Pop/Pop3Exception.php | 27 - .../Swift/Plugins/PopBeforeSmtpPlugin.php | 254 - .../Swift/Plugins/RedirectingPlugin.php | 201 - .../lib/classes/Swift/Plugins/Reporter.php | 32 - .../classes/Swift/Plugins/ReporterPlugin.php | 57 - .../Swift/Plugins/Reporters/HitReporter.php | 58 - .../Swift/Plugins/Reporters/HtmlReporter.php | 38 - .../lib/classes/Swift/Plugins/Sleeper.php | 24 - .../classes/Swift/Plugins/ThrottlerPlugin.php | 196 - .../lib/classes/Swift/Plugins/Timer.php | 24 - .../lib/classes/Swift/Preferences.php | 100 - .../Swift/ReplacementFilterFactory.php | 27 - .../classes/Swift/RfcComplianceException.php | 27 - .../lib/classes/Swift/SendmailTransport.php | 33 - .../swiftmailer/lib/classes/Swift/Signer.php | 19 - .../lib/classes/Swift/Signers/BodySigner.php | 33 - .../lib/classes/Swift/Signers/DKIMSigner.php | 682 - .../classes/Swift/Signers/DomainKeySigner.php | 504 - .../classes/Swift/Signers/HeaderSigner.php | 65 - .../classes/Swift/Signers/OpenDKIMSigner.php | 183 - .../lib/classes/Swift/Signers/SMimeSigner.php | 542 - .../lib/classes/Swift/SmtpTransport.php | 44 - .../swiftmailer/lib/classes/Swift/Spool.php | 53 - .../lib/classes/Swift/SpoolTransport.php | 33 - .../lib/classes/Swift/StreamFilter.php | 35 - .../ByteArrayReplacementFilter.php | 166 - .../StreamFilters/StringReplacementFilter.php | 70 - .../StringReplacementFilterFactory.php | 45 - .../lib/classes/Swift/SwiftException.php | 28 - .../lib/classes/Swift/Transport.php | 77 - .../Swift/Transport/AbstractSmtpTransport.php | 549 - .../Esmtp/Auth/CramMd5Authenticator.php | 75 - .../Esmtp/Auth/LoginAuthenticator.php | 45 - .../Esmtp/Auth/NTLMAuthenticator.php | 681 - .../Esmtp/Auth/PlainAuthenticator.php | 44 - .../Esmtp/Auth/XOAuth2Authenticator.php | 64 - .../Swift/Transport/Esmtp/AuthHandler.php | 268 - .../Swift/Transport/Esmtp/Authenticator.php | 37 - .../Transport/Esmtp/EightBitMimeHandler.php | 113 - .../Swift/Transport/Esmtp/SmtpUtf8Handler.php | 107 - .../classes/Swift/Transport/EsmtpHandler.php | 86 - .../Swift/Transport/EsmtpTransport.php | 446 - .../Swift/Transport/FailoverTransport.php | 105 - .../lib/classes/Swift/Transport/IoBuffer.php | 67 - .../Swift/Transport/LoadBalancedTransport.php | 194 - .../classes/Swift/Transport/NullTransport.php | 98 - .../Swift/Transport/SendmailTransport.php | 158 - .../lib/classes/Swift/Transport/SmtpAgent.php | 36 - .../Swift/Transport/SpoolTransport.php | 120 - .../classes/Swift/Transport/StreamBuffer.php | 326 - .../lib/classes/Swift/TransportException.php | 28 - .../lib/dependency_maps/cache_deps.php | 23 - .../lib/dependency_maps/message_deps.php | 9 - .../lib/dependency_maps/mime_deps.php | 134 - .../lib/dependency_maps/transport_deps.php | 97 - .../swiftmailer/lib/mime_types.php | 1007 - .../swiftmailer/lib/preferences.php | 19 - .../swiftmailer/lib/swift_required.php | 22 - .../lib/swiftmailer_generate_mimes_config.php | 182 - .../swiftmailer/swiftmailer/phpunit.xml.dist | 38 - .../tests/IdenticalBinaryConstraint.php | 62 - .../swiftmailer/tests/StreamCollector.php | 11 - .../tests/SwiftMailerSmokeTestCase.php | 46 - .../swiftmailer/tests/SwiftMailerTestCase.php | 38 - .../_samples/charsets/iso-2022-jp/one.txt | 11 - .../_samples/charsets/iso-8859-1/one.txt | 19 - .../tests/_samples/charsets/utf-8/one.txt | 22 - .../tests/_samples/charsets/utf-8/three.txt | 45 - .../tests/_samples/charsets/utf-8/two.txt | 3 - .../tests/_samples/dkim/dkim.test.priv | 15 - .../tests/_samples/dkim/dkim.test.pub | 6 - .../swiftmailer/tests/_samples/files/data.txt | 1 - .../tests/_samples/files/swiftmailer.png | Bin 3194 -> 0 bytes .../tests/_samples/files/textfile.zip | Bin 202 -> 0 bytes .../swiftmailer/tests/_samples/smime/CA.srl | 1 - .../swiftmailer/tests/_samples/smime/ca.crt | 21 - .../swiftmailer/tests/_samples/smime/ca.key | 27 - .../tests/_samples/smime/create-cert.sh | 40 - .../tests/_samples/smime/encrypt.crt | 19 - .../tests/_samples/smime/encrypt.key | 27 - .../tests/_samples/smime/encrypt2.crt | 19 - .../tests/_samples/smime/encrypt2.key | 27 - .../tests/_samples/smime/intermediate.crt | 19 - .../tests/_samples/smime/intermediate.key | 27 - .../swiftmailer/tests/_samples/smime/sign.crt | 19 - .../swiftmailer/tests/_samples/smime/sign.key | 27 - .../tests/_samples/smime/sign2.crt | 19 - .../tests/_samples/smime/sign2.key | 27 - .../tests/acceptance.conf.php.default | 37 - .../Swift/AttachmentAcceptanceTest.php | 12 - .../FileByteStreamAcceptanceTest.php | 162 - ...leCharacterReaderFactoryAcceptanceTest.php | 179 - .../DependencyContainerAcceptanceTest.php | 22 - .../Swift/EmbeddedFileAcceptanceTest.php | 12 - .../Encoder/Base64EncoderAcceptanceTest.php | 45 - .../Swift/Encoder/QpEncoderAcceptanceTest.php | 54 - .../Encoder/Rfc2231EncoderAcceptanceTest.php | 50 - .../KeyCache/ArrayKeyCacheAcceptanceTest.php | 173 - .../KeyCache/DiskKeyCacheAcceptanceTest.php | 173 - .../Swift/MessageAcceptanceTest.php | 55 - .../Swift/Mime/AttachmentAcceptanceTest.php | 126 - .../Base64ContentEncoderAcceptanceTest.php | 56 - .../NativeQpContentEncoderAcceptanceTest.php | 88 - .../PlainContentEncoderAcceptanceTest.php | 88 - .../QpContentEncoderAcceptanceTest.php | 160 - .../Swift/Mime/EmbeddedFileAcceptanceTest.php | 139 - .../Base64HeaderEncoderAcceptanceTest.php | 32 - .../Swift/Mime/MimePartAcceptanceTest.php | 130 - .../Mime/SimpleMessageAcceptanceTest.php | 1250 - .../Swift/MimePartAcceptanceTest.php | 15 - .../AbstractStreamBufferAcceptanceTest.php | 131 - .../BasicSocketAcceptanceTest.php | 33 - .../StreamBuffer/ProcessAcceptanceTest.php | 26 - .../StreamBuffer/SocketTimeoutTest.php | 65 - .../StreamBuffer/SslSocketAcceptanceTest.php | 40 - .../StreamBuffer/TlsSocketAcceptanceTest.php | 39 - .../swiftmailer/tests/bootstrap.php | 21 - .../tests/bug/Swift/Bug111Test.php | 42 - .../tests/bug/Swift/Bug118Test.php | 20 - .../tests/bug/Swift/Bug206Test.php | 40 - .../tests/bug/Swift/Bug274Test.php | 25 - .../swiftmailer/tests/bug/Swift/Bug34Test.php | 75 - .../swiftmailer/tests/bug/Swift/Bug35Test.php | 73 - .../swiftmailer/tests/bug/Swift/Bug38Test.php | 192 - .../tests/bug/Swift/Bug518Test.php | 38 - .../swiftmailer/tests/bug/Swift/Bug51Test.php | 110 - .../tests/bug/Swift/Bug534Test.php | 38 - .../tests/bug/Swift/Bug650Test.php | 38 - .../swiftmailer/tests/bug/Swift/Bug71Test.php | 20 - .../swiftmailer/tests/bug/Swift/Bug76Test.php | 71 - ...FileByteStreamConsecutiveReadCallsTest.php | 18 - .../tests/fixtures/MimeEntityFixture.php | 67 - .../swiftmailer/tests/smoke.conf.php.default | 63 - .../smoke/Swift/Smoke/AttachmentSmokeTest.php | 33 - .../smoke/Swift/Smoke/BasicSmokeTest.php | 23 - .../Smoke/HtmlWithAttachmentSmokeTest.php | 31 - .../Swift/Smoke/InternationalSmokeTest.php | 40 - .../Swift/ByteStream/ArrayByteStreamTest.php | 202 - .../GenericFixedWidthReaderTest.php | 43 - .../CharacterReader/UsAsciiReaderTest.php | 52 - .../Swift/CharacterReader/Utf8ReaderTest.php | 65 - .../ArrayCharacterStreamTest.php | 358 - .../unit/Swift/DependencyContainerTest.php | 191 - .../unit/Swift/Encoder/Base64EncoderTest.php | 173 - .../unit/Swift/Encoder/QpEncoderTest.php | 400 - .../unit/Swift/Encoder/Rfc2231EncoderTest.php | 141 - .../unit/Swift/Events/CommandEventTest.php | 34 - .../unit/Swift/Events/EventObjectTest.php | 32 - .../unit/Swift/Events/ResponseEventTest.php | 38 - .../tests/unit/Swift/Events/SendEventTest.php | 96 - .../Events/SimpleEventDispatcherTest.php | 142 - .../Swift/Events/TransportChangeEventTest.php | 30 - .../Events/TransportExceptionEventTest.php | 41 - .../unit/Swift/KeyCache/ArrayKeyCacheTest.php | 240 - .../SimpleKeyCacheInputStreamTest.php | 73 - .../Mailer/ArrayRecipientIteratorTest.php | 42 - .../tests/unit/Swift/MailerTest.php | 145 - .../tests/unit/Swift/MessageTest.php | 133 - .../Swift/Mime/AbstractMimeEntityTest.php | 1092 - .../tests/unit/Swift/Mime/AttachmentTest.php | 321 - .../Base64ContentEncoderTest.php | 323 - .../PlainContentEncoderTest.php | 171 - .../ContentEncoder/QpContentEncoderTest.php | 516 - .../unit/Swift/Mime/EmbeddedFileTest.php | 59 - .../HeaderEncoder/Base64HeaderEncoderTest.php | 13 - .../HeaderEncoder/QpHeaderEncoderTest.php | 221 - .../Swift/Mime/Headers/DateHeaderTest.php | 90 - .../Mime/Headers/IdentificationHeaderTest.php | 192 - .../Swift/Mime/Headers/MailboxHeaderTest.php | 367 - .../Mime/Headers/ParameterizedHeaderTest.php | 396 - .../Swift/Mime/Headers/PathHeaderTest.php | 95 - .../Mime/Headers/UnstructuredHeaderTest.php | 353 - .../tests/unit/Swift/Mime/IdGeneratorTest.php | 32 - .../tests/unit/Swift/Mime/MimePartTest.php | 234 - .../Swift/Mime/SimpleHeaderFactoryTest.php | 169 - .../unit/Swift/Mime/SimpleHeaderSetTest.php | 734 - .../unit/Swift/Mime/SimpleMessageTest.php | 837 - .../unit/Swift/Mime/SimpleMimeEntityTest.php | 12 - .../Swift/Plugins/AntiFloodPluginTest.php | 93 - .../Plugins/BandwidthMonitorPluginTest.php | 128 - .../Swift/Plugins/DecoratorPluginTest.php | 284 - .../unit/Swift/Plugins/LoggerPluginTest.php | 188 - .../Swift/Plugins/Loggers/ArrayLoggerTest.php | 65 - .../Swift/Plugins/Loggers/EchoLoggerTest.php | 24 - .../Swift/Plugins/PopBeforeSmtpPluginTest.php | 101 - .../Swift/Plugins/RedirectingPluginTest.php | 183 - .../unit/Swift/Plugins/ReporterPluginTest.php | 86 - .../Plugins/Reporters/HitReporterTest.php | 64 - .../Plugins/Reporters/HtmlReporterTest.php | 54 - .../Swift/Plugins/ThrottlerPluginTest.php | 102 - .../unit/Swift/Signers/DKIMSignerTest.php | 220 - .../unit/Swift/Signers/OpenDKIMSignerTest.php | 45 - .../unit/Swift/Signers/SMimeSignerTest.php | 653 - .../ByteArrayReplacementFilterTest.php | 129 - .../StringReplacementFilterFactoryTest.php | 36 - .../StringReplacementFilterTest.php | 59 - .../AbstractSmtpEventSupportTest.php | 558 - .../unit/Swift/Transport/AbstractSmtpTest.php | 1400 - .../Esmtp/Auth/CramMd5AuthenticatorTest.php | 65 - .../Esmtp/Auth/LoginAuthenticatorTest.php | 65 - .../Esmtp/Auth/NTLMAuthenticatorTest.php | 204 - .../Esmtp/Auth/PlainAuthenticatorTest.php | 68 - .../Swift/Transport/Esmtp/AuthHandlerTest.php | 165 - .../EsmtpTransport/ExtensionSupportTest.php | 561 - .../Swift/Transport/EsmtpTransportTest.php | 651 - .../Swift/Transport/FailoverTransportTest.php | 600 - .../Transport/LoadBalancedTransportTest.php | 838 - .../Swift/Transport/SendmailTransportTest.php | 150 - .../unit/Swift/Transport/StreamBufferTest.php | 43 - vendor/symfony/console/Application.php | 1151 - vendor/symfony/console/CHANGELOG.md | 129 - vendor/symfony/console/Command/Command.php | 646 - .../symfony/console/Command/HelpCommand.php | 81 - .../symfony/console/Command/ListCommand.php | 90 - .../symfony/console/Command/LockableTrait.php | 72 - .../CommandLoader/CommandLoaderInterface.php | 37 - .../CommandLoader/ContainerCommandLoader.php | 55 - .../CommandLoader/FactoryCommandLoader.php | 62 - vendor/symfony/console/ConsoleEvents.php | 47 - .../AddConsoleCommandPass.php | 98 - .../Descriptor/ApplicationDescription.php | 144 - .../symfony/console/Descriptor/Descriptor.php | 107 - .../Descriptor/DescriptorInterface.php | 31 - .../console/Descriptor/JsonDescriptor.php | 168 - .../console/Descriptor/MarkdownDescriptor.php | 182 - .../console/Descriptor/TextDescriptor.php | 342 - .../console/Descriptor/XmlDescriptor.php | 245 - .../console/Event/ConsoleCommandEvent.php | 60 - .../console/Event/ConsoleErrorEvent.php | 58 - vendor/symfony/console/Event/ConsoleEvent.php | 67 - .../console/Event/ConsoleTerminateEvent.php | 53 - .../console/EventListener/ErrorListener.php | 91 - .../Exception/CommandNotFoundException.php | 43 - .../console/Exception/ExceptionInterface.php | 21 - .../Exception/InvalidArgumentException.php | 19 - .../Exception/InvalidOptionException.php | 21 - .../console/Exception/LogicException.php | 19 - .../Exception/NamespaceNotFoundException.php | 21 - .../console/Exception/RuntimeException.php | 19 - .../console/Formatter/OutputFormatter.php | 230 - .../Formatter/OutputFormatterInterface.php | 71 - .../Formatter/OutputFormatterStyle.php | 219 - .../OutputFormatterStyleInterface.php | 62 - .../Formatter/OutputFormatterStyleStack.php | 109 - .../console/Helper/DebugFormatterHelper.php | 127 - .../console/Helper/DescriptorHelper.php | 94 - .../console/Helper/FormatterHelper.php | 106 - vendor/symfony/console/Helper/Helper.php | 138 - .../console/Helper/HelperInterface.php | 39 - vendor/symfony/console/Helper/HelperSet.php | 108 - .../console/Helper/InputAwareHelper.php | 33 - .../symfony/console/Helper/ProcessHelper.php | 141 - vendor/symfony/console/Helper/ProgressBar.php | 530 - .../console/Helper/ProgressIndicator.php | 269 - .../symfony/console/Helper/QuestionHelper.php | 419 - .../console/Helper/SymfonyQuestionHelper.php | 96 - vendor/symfony/console/Helper/Table.php | 746 - vendor/symfony/console/Helper/TableCell.php | 68 - vendor/symfony/console/Helper/TableRows.php | 32 - .../symfony/console/Helper/TableSeparator.php | 25 - vendor/symfony/console/Helper/TableStyle.php | 432 - vendor/symfony/console/Input/ArgvInput.php | 345 - vendor/symfony/console/Input/ArrayInput.php | 206 - vendor/symfony/console/Input/Input.php | 203 - .../symfony/console/Input/InputArgument.php | 129 - .../console/Input/InputAwareInterface.php | 28 - .../symfony/console/Input/InputDefinition.php | 402 - .../symfony/console/Input/InputInterface.php | 161 - vendor/symfony/console/Input/InputOption.php | 208 - .../Input/StreamableInputInterface.php | 37 - vendor/symfony/console/Input/StringInput.php | 72 - vendor/symfony/console/LICENSE | 19 - .../symfony/console/Logger/ConsoleLogger.php | 124 - .../symfony/console/Output/BufferedOutput.php | 45 - .../symfony/console/Output/ConsoleOutput.php | 161 - .../console/Output/ConsoleOutputInterface.php | 32 - .../console/Output/ConsoleSectionOutput.php | 133 - vendor/symfony/console/Output/NullOutput.php | 123 - vendor/symfony/console/Output/Output.php | 177 - .../console/Output/OutputInterface.php | 114 - .../symfony/console/Output/StreamOutput.php | 116 - .../console/Question/ChoiceQuestion.php | 184 - .../console/Question/ConfirmationQuestion.php | 59 - vendor/symfony/console/Question/Question.php | 246 - vendor/symfony/console/README.md | 20 - .../console/Resources/bin/hiddeninput.exe | Bin 9216 -> 0 bytes vendor/symfony/console/Style/OutputStyle.php | 155 - .../symfony/console/Style/StyleInterface.php | 154 - vendor/symfony/console/Style/SymfonyStyle.php | 438 - vendor/symfony/console/Terminal.php | 137 - .../console/Tester/ApplicationTester.php | 133 - .../symfony/console/Tester/CommandTester.php | 79 - vendor/symfony/console/Tester/TesterTrait.php | 103 - .../symfony/console/Tests/ApplicationTest.php | 1693 -- .../console/Tests/Command/CommandTest.php | 428 - .../console/Tests/Command/HelpCommandTest.php | 71 - .../console/Tests/Command/ListCommandTest.php | 113 - .../Tests/Command/LockableTraitTest.php | 67 - .../ContainerCommandLoaderTest.php | 61 - .../FactoryCommandLoaderTest.php | 60 - .../AddConsoleCommandPassTest.php | 258 - .../Descriptor/AbstractDescriptorTest.php | 107 - .../Tests/Descriptor/JsonDescriptorTest.php | 35 - .../Descriptor/MarkdownDescriptorTest.php | 45 - .../Tests/Descriptor/ObjectsProvider.php | 82 - .../Tests/Descriptor/TextDescriptorTest.php | 53 - .../Tests/Descriptor/XmlDescriptorTest.php | 27 - .../Tests/EventListener/ErrorListenerTest.php | 156 - .../console/Tests/Fixtures/BarBucCommand.php | 11 - .../Tests/Fixtures/DescriptorApplication1.php | 18 - .../Tests/Fixtures/DescriptorApplication2.php | 26 - .../DescriptorApplicationMbString.php | 24 - .../Tests/Fixtures/DescriptorCommand1.php | 27 - .../Tests/Fixtures/DescriptorCommand2.php | 32 - .../Tests/Fixtures/DescriptorCommand3.php | 27 - .../Tests/Fixtures/DescriptorCommand4.php | 25 - .../Fixtures/DescriptorCommandMbString.php | 32 - .../console/Tests/Fixtures/DummyOutput.php | 36 - .../console/Tests/Fixtures/Foo1Command.php | 26 - .../console/Tests/Fixtures/Foo2Command.php | 21 - .../console/Tests/Fixtures/Foo3Command.php | 29 - .../console/Tests/Fixtures/Foo4Command.php | 11 - .../console/Tests/Fixtures/Foo5Command.php | 10 - .../console/Tests/Fixtures/Foo6Command.php | 12 - .../console/Tests/Fixtures/FooCommand.php | 33 - .../Tests/Fixtures/FooLock2Command.php | 28 - .../console/Tests/Fixtures/FooLockCommand.php | 27 - .../console/Tests/Fixtures/FooOptCommand.php | 36 - .../Fixtures/FooSameCaseLowercaseCommand.php | 11 - .../Fixtures/FooSameCaseUppercaseCommand.php | 11 - .../Fixtures/FooSubnamespaced1Command.php | 26 - .../Fixtures/FooSubnamespaced2Command.php | 26 - .../Tests/Fixtures/FooWithoutAliasCommand.php | 21 - .../console/Tests/Fixtures/FoobarCommand.php | 25 - .../Style/SymfonyStyle/command/command_0.php | 11 - .../Style/SymfonyStyle/command/command_1.php | 13 - .../Style/SymfonyStyle/command/command_10.php | 17 - .../Style/SymfonyStyle/command/command_11.php | 12 - .../Style/SymfonyStyle/command/command_12.php | 13 - .../Style/SymfonyStyle/command/command_13.php | 14 - .../Style/SymfonyStyle/command/command_14.php | 17 - .../Style/SymfonyStyle/command/command_15.php | 14 - .../Style/SymfonyStyle/command/command_16.php | 15 - .../Style/SymfonyStyle/command/command_17.php | 13 - .../Style/SymfonyStyle/command/command_2.php | 16 - .../Style/SymfonyStyle/command/command_3.php | 12 - .../Style/SymfonyStyle/command/command_4.php | 34 - .../command/command_4_with_iterators.php | 34 - .../Style/SymfonyStyle/command/command_5.php | 37 - .../Style/SymfonyStyle/command/command_6.php | 16 - .../Style/SymfonyStyle/command/command_7.php | 15 - .../Style/SymfonyStyle/command/command_8.php | 26 - .../Style/SymfonyStyle/command/command_9.php | 11 - .../command/interactive_command_1.php | 19 - .../output/interactive_output_1.txt | 7 - .../Style/SymfonyStyle/output/output_0.txt | 3 - .../Style/SymfonyStyle/output/output_1.txt | 9 - .../Style/SymfonyStyle/output/output_10.txt | 7 - .../Style/SymfonyStyle/output/output_11.txt | 4 - .../Style/SymfonyStyle/output/output_12.txt | 6 - .../Style/SymfonyStyle/output/output_13.txt | 7 - .../Style/SymfonyStyle/output/output_14.txt | 6 - .../Style/SymfonyStyle/output/output_15.txt | 7 - .../Style/SymfonyStyle/output/output_16.txt | 8 - .../Style/SymfonyStyle/output/output_17.txt | 7 - .../Style/SymfonyStyle/output/output_2.txt | 13 - .../Style/SymfonyStyle/output/output_3.txt | 7 - .../Style/SymfonyStyle/output/output_4.txt | 32 - .../output/output_4_with_iterators.txt | 32 - .../Style/SymfonyStyle/output/output_5.txt | 18 - .../Style/SymfonyStyle/output/output_6.txt | 6 - .../Style/SymfonyStyle/output/output_7.txt | 5 - .../Style/SymfonyStyle/output/output_8.txt | 9 - .../Style/SymfonyStyle/output/output_9.txt | 5 - .../console/Tests/Fixtures/TestCommand.php | 28 - .../console/Tests/Fixtures/TestTiti.php | 21 - .../console/Tests/Fixtures/TestToto.php | 22 - .../console/Tests/Fixtures/application_1.json | 156 - .../console/Tests/Fixtures/application_1.md | 172 - .../console/Tests/Fixtures/application_1.txt | 17 - .../console/Tests/Fixtures/application_1.xml | 104 - .../console/Tests/Fixtures/application_2.json | 509 - .../console/Tests/Fixtures/application_2.md | 431 - .../console/Tests/Fixtures/application_2.txt | 21 - .../console/Tests/Fixtures/application_2.xml | 254 - .../application_filtered_namespace.txt | 16 - .../Tests/Fixtures/application_gethelp.txt | 1 - .../Tests/Fixtures/application_mbstring.md | 269 - .../Tests/Fixtures/application_mbstring.txt | 19 - .../Fixtures/application_renderexception1.txt | 5 - .../Fixtures/application_renderexception2.txt | 7 - .../Fixtures/application_renderexception3.txt | 18 - .../application_renderexception3decorated.txt | 18 - .../Fixtures/application_renderexception4.txt | 6 - ...plication_renderexception_doublewidth1.txt | 8 - ..._renderexception_doublewidth1decorated.txt | 8 - ...plication_renderexception_doublewidth2.txt | 9 - ...plication_renderexception_escapeslines.txt | 9 - ...application_renderexception_linebreaks.txt | 11 - .../Tests/Fixtures/application_run1.txt | 17 - .../Tests/Fixtures/application_run2.txt | 29 - .../Tests/Fixtures/application_run3.txt | 29 - .../Tests/Fixtures/application_run4.txt | 1 - .../console/Tests/Fixtures/command_1.json | 15 - .../console/Tests/Fixtures/command_1.md | 12 - .../console/Tests/Fixtures/command_1.txt | 10 - .../console/Tests/Fixtures/command_1.xml | 12 - .../console/Tests/Fixtures/command_2.json | 33 - .../console/Tests/Fixtures/command_2.md | 29 - .../console/Tests/Fixtures/command_2.txt | 16 - .../console/Tests/Fixtures/command_2.xml | 21 - .../Tests/Fixtures/command_mbstring.md | 29 - .../Tests/Fixtures/command_mbstring.txt | 16 - .../Tests/Fixtures/input_argument_1.json | 7 - .../Tests/Fixtures/input_argument_1.md | 5 - .../Tests/Fixtures/input_argument_1.txt | 1 - .../Tests/Fixtures/input_argument_1.xml | 5 - .../Tests/Fixtures/input_argument_2.json | 7 - .../Tests/Fixtures/input_argument_2.md | 7 - .../Tests/Fixtures/input_argument_2.txt | 1 - .../Tests/Fixtures/input_argument_2.xml | 5 - .../Tests/Fixtures/input_argument_3.json | 7 - .../Tests/Fixtures/input_argument_3.md | 7 - .../Tests/Fixtures/input_argument_3.txt | 1 - .../Tests/Fixtures/input_argument_3.xml | 7 - .../Tests/Fixtures/input_argument_4.json | 7 - .../Tests/Fixtures/input_argument_4.md | 8 - .../Tests/Fixtures/input_argument_4.txt | 2 - .../Tests/Fixtures/input_argument_4.xml | 6 - ...input_argument_with_default_inf_value.json | 7 - .../input_argument_with_default_inf_value.md | 7 - .../input_argument_with_default_inf_value.txt | 1 - .../input_argument_with_default_inf_value.xml | 7 - .../Fixtures/input_argument_with_style.json | 7 - .../Fixtures/input_argument_with_style.md | 7 - .../Fixtures/input_argument_with_style.txt | 1 - .../Fixtures/input_argument_with_style.xml | 7 - .../Tests/Fixtures/input_definition_1.json | 4 - .../Tests/Fixtures/input_definition_1.md | 0 .../Tests/Fixtures/input_definition_1.txt | 0 .../Tests/Fixtures/input_definition_1.xml | 5 - .../Tests/Fixtures/input_definition_2.json | 12 - .../Tests/Fixtures/input_definition_2.md | 7 - .../Tests/Fixtures/input_definition_2.txt | 2 - .../Tests/Fixtures/input_definition_2.xml | 10 - .../Tests/Fixtures/input_definition_3.json | 14 - .../Tests/Fixtures/input_definition_3.md | 8 - .../Tests/Fixtures/input_definition_3.txt | 2 - .../Tests/Fixtures/input_definition_3.xml | 9 - .../Tests/Fixtures/input_definition_4.json | 22 - .../Tests/Fixtures/input_definition_4.md | 16 - .../Tests/Fixtures/input_definition_4.txt | 5 - .../Tests/Fixtures/input_definition_4.xml | 14 - .../Tests/Fixtures/input_option_1.json | 9 - .../console/Tests/Fixtures/input_option_1.md | 6 - .../console/Tests/Fixtures/input_option_1.txt | 1 - .../console/Tests/Fixtures/input_option_1.xml | 4 - .../Tests/Fixtures/input_option_2.json | 9 - .../console/Tests/Fixtures/input_option_2.md | 8 - .../console/Tests/Fixtures/input_option_2.txt | 1 - .../console/Tests/Fixtures/input_option_2.xml | 7 - .../Tests/Fixtures/input_option_3.json | 9 - .../console/Tests/Fixtures/input_option_3.md | 8 - .../console/Tests/Fixtures/input_option_3.txt | 1 - .../console/Tests/Fixtures/input_option_3.xml | 5 - .../Tests/Fixtures/input_option_4.json | 9 - .../console/Tests/Fixtures/input_option_4.md | 8 - .../console/Tests/Fixtures/input_option_4.txt | 1 - .../console/Tests/Fixtures/input_option_4.xml | 5 - .../Tests/Fixtures/input_option_5.json | 9 - .../console/Tests/Fixtures/input_option_5.md | 9 - .../console/Tests/Fixtures/input_option_5.txt | 2 - .../console/Tests/Fixtures/input_option_5.xml | 6 - .../Tests/Fixtures/input_option_6.json | 9 - .../console/Tests/Fixtures/input_option_6.md | 8 - .../console/Tests/Fixtures/input_option_6.txt | 1 - .../console/Tests/Fixtures/input_option_6.xml | 5 - .../input_option_with_default_inf_value.json | 9 - .../input_option_with_default_inf_value.md | 8 - .../input_option_with_default_inf_value.txt | 1 - .../input_option_with_default_inf_value.xml | 7 - .../Fixtures/input_option_with_style.json | 9 - .../Tests/Fixtures/input_option_with_style.md | 8 - .../Fixtures/input_option_with_style.txt | 1 - .../Fixtures/input_option_with_style.xml | 7 - .../input_option_with_style_array.json | 12 - .../Fixtures/input_option_with_style_array.md | 8 - .../input_option_with_style_array.txt | 1 - .../input_option_with_style_array.xml | 8 - .../OutputFormatterStyleStackTest.php | 71 - .../Formatter/OutputFormatterStyleTest.php | 100 - .../Tests/Formatter/OutputFormatterTest.php | 333 - .../Helper/AbstractQuestionHelperTest.php | 34 - .../Tests/Helper/FormatterHelperTest.php | 129 - .../console/Tests/Helper/HelperSetTest.php | 127 - .../console/Tests/Helper/HelperTest.php | 55 - .../Tests/Helper/ProcessHelperTest.php | 118 - .../console/Tests/Helper/ProgressBarTest.php | 899 - .../Tests/Helper/ProgressIndicatorTest.php | 183 - .../Tests/Helper/QuestionHelperTest.php | 608 - .../Helper/SymfonyQuestionHelperTest.php | 156 - .../console/Tests/Helper/TableStyleTest.php | 28 - .../console/Tests/Helper/TableTest.php | 988 - .../console/Tests/Input/ArgvInputTest.php | 452 - .../console/Tests/Input/ArrayInputTest.php | 177 - .../console/Tests/Input/InputArgumentTest.php | 103 - .../Tests/Input/InputDefinitionTest.php | 407 - .../console/Tests/Input/InputOptionTest.php | 196 - .../symfony/console/Tests/Input/InputTest.php | 149 - .../console/Tests/Input/StringInputTest.php | 87 - .../Tests/Logger/ConsoleLoggerTest.php | 215 - .../Tests/Output/ConsoleOutputTest.php | 42 - .../Tests/Output/ConsoleSectionOutputTest.php | 140 - .../console/Tests/Output/NullOutputTest.php | 88 - .../console/Tests/Output/OutputTest.php | 189 - .../console/Tests/Output/StreamOutputTest.php | 61 - .../console/Tests/Style/SymfonyStyleTest.php | 116 - vendor/symfony/console/Tests/TerminalTest.php | 44 - .../Tests/Tester/ApplicationTesterTest.php | 93 - .../Tests/Tester/CommandTesterTest.php | 163 - vendor/symfony/console/composer.json | 52 - vendor/symfony/console/phpunit.xml.dist | 41 - vendor/symfony/css-selector/CHANGELOG.md | 13 - .../css-selector/CssSelectorConverter.php | 65 - .../Exception/ExceptionInterface.php | 24 - .../Exception/ExpressionErrorException.php | 24 - .../Exception/InternalErrorException.php | 24 - .../css-selector/Exception/ParseException.php | 24 - .../Exception/SyntaxErrorException.php | 73 - vendor/symfony/css-selector/LICENSE | 19 - .../css-selector/Node/AbstractNode.php | 42 - .../css-selector/Node/AttributeNode.php | 85 - .../symfony/css-selector/Node/ClassNode.php | 60 - .../Node/CombinedSelectorNode.php | 69 - .../symfony/css-selector/Node/ElementNode.php | 72 - .../css-selector/Node/FunctionNode.php | 81 - vendor/symfony/css-selector/Node/HashNode.php | 60 - .../css-selector/Node/NegationNode.php | 66 - .../css-selector/Node/NodeInterface.php | 31 - .../symfony/css-selector/Node/PseudoNode.php | 60 - .../css-selector/Node/SelectorNode.php | 60 - .../symfony/css-selector/Node/Specificity.php | 75 - .../Parser/Handler/CommentHandler.php | 48 - .../Parser/Handler/HandlerInterface.php | 33 - .../Parser/Handler/HashHandler.php | 58 - .../Parser/Handler/IdentifierHandler.php | 58 - .../Parser/Handler/NumberHandler.php | 54 - .../Parser/Handler/StringHandler.php | 77 - .../Parser/Handler/WhitespaceHandler.php | 46 - vendor/symfony/css-selector/Parser/Parser.php | 353 - .../css-selector/Parser/ParserInterface.php | 34 - vendor/symfony/css-selector/Parser/Reader.php | 86 - .../Parser/Shortcut/ClassParser.php | 51 - .../Parser/Shortcut/ElementParser.php | 47 - .../Parser/Shortcut/EmptyStringParser.php | 46 - .../Parser/Shortcut/HashParser.php | 51 - vendor/symfony/css-selector/Parser/Token.php | 111 - .../css-selector/Parser/TokenStream.php | 175 - .../Parser/Tokenizer/Tokenizer.php | 75 - .../Parser/Tokenizer/TokenizerEscaping.php | 63 - .../Parser/Tokenizer/TokenizerPatterns.php | 89 - vendor/symfony/css-selector/README.md | 20 - .../Tests/CssSelectorConverterTest.php | 76 - .../Tests/Node/AbstractNodeTest.php | 34 - .../Tests/Node/AttributeNodeTest.php | 37 - .../css-selector/Tests/Node/ClassNodeTest.php | 33 - .../Tests/Node/CombinedSelectorNodeTest.php | 35 - .../Tests/Node/ElementNodeTest.php | 35 - .../Tests/Node/FunctionNodeTest.php | 47 - .../css-selector/Tests/Node/HashNodeTest.php | 33 - .../Tests/Node/NegationNodeTest.php | 33 - .../Tests/Node/PseudoNodeTest.php | 32 - .../Tests/Node/SelectorNodeTest.php | 34 - .../Tests/Node/SpecificityTest.php | 63 - .../Parser/Handler/AbstractHandlerTest.php | 70 - .../Parser/Handler/CommentHandlerTest.php | 55 - .../Tests/Parser/Handler/HashHandlerTest.php | 49 - .../Parser/Handler/IdentifierHandlerTest.php | 49 - .../Parser/Handler/NumberHandlerTest.php | 50 - .../Parser/Handler/StringHandlerTest.php | 50 - .../Parser/Handler/WhitespaceHandlerTest.php | 44 - .../css-selector/Tests/Parser/ParserTest.php | 250 - .../css-selector/Tests/Parser/ReaderTest.php | 102 - .../Tests/Parser/Shortcut/ClassParserTest.php | 45 - .../Parser/Shortcut/ElementParserTest.php | 44 - .../Parser/Shortcut/EmptyStringParserTest.php | 36 - .../Tests/Parser/Shortcut/HashParserTest.php | 45 - .../Tests/Parser/TokenStreamTest.php | 96 - .../Tests/XPath/Fixtures/ids.html | 48 - .../Tests/XPath/Fixtures/lang.xml | 11 - .../Tests/XPath/Fixtures/shakespear.html | 308 - .../Tests/XPath/TranslatorTest.php | 327 - .../XPath/Extension/AbstractExtension.php | 65 - .../Extension/AttributeMatchingExtension.php | 119 - .../XPath/Extension/CombinationExtension.php | 83 - .../XPath/Extension/ExtensionInterface.php | 69 - .../XPath/Extension/FunctionExtension.php | 177 - .../XPath/Extension/HtmlExtension.php | 216 - .../XPath/Extension/NodeExtension.php | 197 - .../XPath/Extension/PseudoClassExtension.php | 148 - .../symfony/css-selector/XPath/Translator.php | 224 - .../XPath/TranslatorInterface.php | 37 - .../symfony/css-selector/XPath/XPathExpr.php | 102 - vendor/symfony/css-selector/composer.json | 37 - vendor/symfony/css-selector/phpunit.xml.dist | 31 - vendor/symfony/debug/BufferingLogger.php | 37 - vendor/symfony/debug/CHANGELOG.md | 70 - vendor/symfony/debug/Debug.php | 60 - vendor/symfony/debug/DebugClassLoader.php | 404 - vendor/symfony/debug/ErrorHandler.php | 682 - .../Exception/ClassNotFoundException.php | 36 - .../debug/Exception/FatalErrorException.php | 77 - .../debug/Exception/FatalThrowableError.php | 51 - .../debug/Exception/FlattenException.php | 276 - .../debug/Exception/OutOfMemoryException.php | 21 - .../debug/Exception/SilencedErrorContext.php | 67 - .../Exception/UndefinedFunctionException.php | 36 - .../Exception/UndefinedMethodException.php | 36 - vendor/symfony/debug/ExceptionHandler.php | 426 - .../ClassNotFoundFatalErrorHandler.php | 189 - .../FatalErrorHandlerInterface.php | 32 - .../UndefinedFunctionFatalErrorHandler.php | 84 - .../UndefinedMethodFatalErrorHandler.php | 66 - vendor/symfony/debug/LICENSE | 19 - vendor/symfony/debug/README.md | 13 - .../debug/Tests/DebugClassLoaderTest.php | 333 - .../symfony/debug/Tests/ErrorHandlerTest.php | 504 - .../Tests/Exception/FlattenExceptionTest.php | 340 - .../debug/Tests/ExceptionHandlerTest.php | 133 - .../ClassNotFoundFatalErrorHandlerTest.php | 176 - ...UndefinedFunctionFatalErrorHandlerTest.php | 81 - .../UndefinedMethodFatalErrorHandlerTest.php | 76 - .../debug/Tests/Fixtures/AnnotatedClass.php | 13 - .../debug/Tests/Fixtures/ClassAlias.php | 3 - .../debug/Tests/Fixtures/DeprecatedClass.php | 12 - .../Tests/Fixtures/DeprecatedInterface.php | 12 - .../Tests/Fixtures/ExtendedFinalMethod.php | 17 - .../debug/Tests/Fixtures/FinalClass.php | 10 - .../debug/Tests/Fixtures/FinalMethod.php | 17 - .../debug/Tests/Fixtures/InternalClass.php | 15 - .../Tests/Fixtures/InternalInterface.php | 10 - .../debug/Tests/Fixtures/InternalTrait.php | 10 - .../debug/Tests/Fixtures/InternalTrait2.php | 23 - .../Tests/Fixtures/NonDeprecatedInterface.php | 7 - .../debug/Tests/Fixtures/PEARClass.php | 5 - .../symfony/debug/Tests/Fixtures/Throwing.php | 3 - .../debug/Tests/Fixtures/ToStringThrower.php | 24 - .../debug/Tests/Fixtures/casemismatch.php | 7 - .../debug/Tests/Fixtures/notPsr0Bis.php | 7 - .../Tests/Fixtures/psr4/Psr4CaseMismatch.php | 7 - .../debug/Tests/Fixtures/reallyNotPsr0.php | 7 - .../debug/Tests/Fixtures2/RequiredTwice.php | 7 - vendor/symfony/debug/Tests/HeaderMock.php | 38 - .../debug/Tests/MockExceptionHandler.php | 24 - .../debug/Tests/phpt/debug_class_loader.phpt | 26 - .../Tests/phpt/decorate_exception_hander.phpt | 47 - .../debug/Tests/phpt/exception_rethrown.phpt | 35 - .../phpt/fatal_with_nested_handlers.phpt | 42 - vendor/symfony/debug/composer.json | 40 - vendor/symfony/debug/phpunit.xml.dist | 33 - vendor/symfony/event-dispatcher/CHANGELOG.md | 55 - .../Debug/TraceableEventDispatcher.php | 335 - .../TraceableEventDispatcherInterface.php | 41 - .../Debug/WrappedListener.php | 114 - .../RegisterListenersPass.php | 136 - vendor/symfony/event-dispatcher/Event.php | 58 - .../event-dispatcher/EventDispatcher.php | 236 - .../EventDispatcherInterface.php | 93 - .../EventSubscriberInterface.php | 46 - .../symfony/event-dispatcher/GenericEvent.php | 175 - .../ImmutableEventDispatcher.php | 91 - vendor/symfony/event-dispatcher/LICENSE | 19 - vendor/symfony/event-dispatcher/README.md | 15 - .../Tests/AbstractEventDispatcherTest.php | 442 - .../Debug/TraceableEventDispatcherTest.php | 282 - .../RegisterListenersPassTest.php | 206 - .../Tests/EventDispatcherTest.php | 22 - .../event-dispatcher/Tests/EventTest.php | 55 - .../Tests/GenericEventTest.php | 140 - .../Tests/ImmutableEventDispatcherTest.php | 106 - vendor/symfony/event-dispatcher/composer.json | 47 - .../symfony/event-dispatcher/phpunit.xml.dist | 31 - vendor/symfony/finder/CHANGELOG.md | 61 - .../symfony/finder/Comparator/Comparator.php | 98 - .../finder/Comparator/DateComparator.php | 51 - .../finder/Comparator/NumberComparator.php | 79 - .../Exception/AccessDeniedException.php | 19 - vendor/symfony/finder/Finder.php | 738 - vendor/symfony/finder/Glob.php | 116 - .../finder/Iterator/CustomFilterIterator.php | 61 - .../Iterator/DateRangeFilterIterator.php | 58 - .../Iterator/DepthRangeFilterIterator.php | 45 - .../ExcludeDirectoryFilterIterator.php | 84 - .../Iterator/FileTypeFilterIterator.php | 53 - .../Iterator/FilecontentFilterIterator.php | 58 - .../Iterator/FilenameFilterIterator.php | 47 - .../Iterator/MultiplePcreFilterIterator.php | 112 - .../finder/Iterator/PathFilterIterator.php | 56 - .../Iterator/RecursiveDirectoryIterator.php | 140 - .../Iterator/SizeRangeFilterIterator.php | 57 - .../finder/Iterator/SortableIterator.php | 80 - vendor/symfony/finder/LICENSE | 19 - vendor/symfony/finder/README.md | 14 - vendor/symfony/finder/SplFileInfo.php | 78 - .../Tests/Comparator/ComparatorTest.php | 65 - .../Tests/Comparator/DateComparatorTest.php | 64 - .../Tests/Comparator/NumberComparatorTest.php | 108 - vendor/symfony/finder/Tests/FinderTest.php | 737 - vendor/symfony/finder/Tests/Fixtures/.dot/a | 0 .../finder/Tests/Fixtures/.dot/b/c.neon | 0 .../finder/Tests/Fixtures/.dot/b/d.neon | 0 .../finder/Tests/Fixtures/A/B/C/abc.dat | 0 .../symfony/finder/Tests/Fixtures/A/B/ab.dat | 0 vendor/symfony/finder/Tests/Fixtures/A/a.dat | 0 .../Tests/Fixtures/copy/A/B/C/abc.dat.copy | 0 .../Tests/Fixtures/copy/A/B/ab.dat.copy | 0 .../finder/Tests/Fixtures/copy/A/a.dat.copy | 0 .../symfony/finder/Tests/Fixtures/dolor.txt | 2 - .../symfony/finder/Tests/Fixtures/ipsum.txt | 2 - .../symfony/finder/Tests/Fixtures/lorem.txt | 2 - vendor/symfony/finder/Tests/Fixtures/one/.dot | 1 - vendor/symfony/finder/Tests/Fixtures/one/a | 0 .../finder/Tests/Fixtures/one/b/c.neon | 0 .../finder/Tests/Fixtures/one/b/d.neon | 0 .../Fixtures/r+e.gex[c]a(r)s/dir/bar.dat | 0 .../finder/Tests/Fixtures/with space/foo.txt | 0 vendor/symfony/finder/Tests/GlobTest.php | 95 - .../Iterator/CustomFilterIteratorTest.php | 46 - .../Iterator/DateRangeFilterIteratorTest.php | 74 - .../Iterator/DepthRangeFilterIteratorTest.php | 83 - .../ExcludeDirectoryFilterIteratorTest.php | 80 - .../Iterator/FileTypeFilterIteratorTest.php | 73 - .../FilecontentFilterIteratorTest.php | 86 - .../Iterator/FilenameFilterIteratorTest.php | 54 - .../finder/Tests/Iterator/Iterator.php | 55 - .../Tests/Iterator/IteratorTestCase.php | 100 - .../Tests/Iterator/MockFileListIterator.php | 21 - .../finder/Tests/Iterator/MockSplFileInfo.php | 132 - .../MultiplePcreFilterIteratorTest.php | 71 - .../Tests/Iterator/PathFilterIteratorTest.php | 82 - .../Tests/Iterator/RealIteratorTestCase.php | 119 - .../RecursiveDirectoryIteratorTest.php | 59 - .../Iterator/SizeRangeFilterIteratorTest.php | 69 - .../Tests/Iterator/SortableIteratorTest.php | 183 - vendor/symfony/finder/composer.json | 33 - vendor/symfony/finder/phpunit.xml.dist | 30 - .../symfony/http-foundation/AcceptHeader.php | 173 - .../http-foundation/AcceptHeaderItem.php | 191 - .../symfony/http-foundation/ApacheRequest.php | 43 - .../http-foundation/BinaryFileResponse.php | 354 - vendor/symfony/http-foundation/CHANGELOG.md | 197 - vendor/symfony/http-foundation/Cookie.php | 277 - .../Exception/ConflictingHeadersException.php | 21 - .../Exception/RequestExceptionInterface.php | 21 - .../SuspiciousOperationException.php | 20 - .../ExpressionRequestMatcher.php | 47 - .../File/Exception/AccessDeniedException.php | 28 - .../Exception/CannotWriteFileException.php | 21 - .../File/Exception/ExtensionFileException.php | 21 - .../File/Exception/FileException.php | 21 - .../File/Exception/FileNotFoundException.php | 28 - .../File/Exception/FormSizeFileException.php | 21 - .../File/Exception/IniSizeFileException.php | 21 - .../File/Exception/NoFileException.php | 21 - .../File/Exception/NoTmpDirFileException.php | 21 - .../File/Exception/PartialFileException.php | 21 - .../Exception/UnexpectedTypeException.php | 20 - .../File/Exception/UploadException.php | 21 - vendor/symfony/http-foundation/File/File.php | 138 - .../File/MimeType/ExtensionGuesser.php | 94 - .../MimeType/ExtensionGuesserInterface.php | 27 - .../MimeType/FileBinaryMimeTypeGuesser.php | 99 - .../File/MimeType/FileinfoMimeTypeGuesser.php | 69 - .../MimeType/MimeTypeExtensionGuesser.php | 808 - .../File/MimeType/MimeTypeGuesser.php | 133 - .../MimeType/MimeTypeGuesserInterface.php | 35 - .../symfony/http-foundation/File/Stream.php | 28 - .../http-foundation/File/UploadedFile.php | 300 - vendor/symfony/http-foundation/FileBag.php | 144 - vendor/symfony/http-foundation/HeaderBag.php | 315 - .../symfony/http-foundation/HeaderUtils.php | 174 - vendor/symfony/http-foundation/IpUtils.php | 156 - .../symfony/http-foundation/JsonResponse.php | 204 - vendor/symfony/http-foundation/LICENSE | 19 - .../symfony/http-foundation/ParameterBag.php | 234 - vendor/symfony/http-foundation/README.md | 14 - .../http-foundation/RedirectResponse.php | 109 - vendor/symfony/http-foundation/Request.php | 2021 -- .../http-foundation/RequestMatcher.php | 178 - .../RequestMatcherInterface.php | 27 - .../symfony/http-foundation/RequestStack.php | 103 - vendor/symfony/http-foundation/Response.php | 1223 - .../http-foundation/ResponseHeaderBag.php | 339 - vendor/symfony/http-foundation/ServerBag.php | 102 - .../Session/Attribute/AttributeBag.php | 148 - .../Attribute/AttributeBagInterface.php | 72 - .../Attribute/NamespacedAttributeBag.php | 153 - .../Session/Flash/AutoExpireFlashBag.php | 161 - .../Session/Flash/FlashBag.php | 152 - .../Session/Flash/FlashBagInterface.php | 93 - .../http-foundation/Session/Session.php | 282 - .../Session/SessionBagInterface.php | 46 - .../Session/SessionBagProxy.php | 88 - .../Session/SessionInterface.php | 180 - .../Handler/AbstractSessionHandler.php | 154 - .../Handler/MemcachedSessionHandler.php | 124 - .../Handler/MigratingSessionHandler.php | 124 - .../Storage/Handler/MongoDbSessionHandler.php | 202 - .../Handler/NativeFileSessionHandler.php | 55 - .../Storage/Handler/NullSessionHandler.php | 76 - .../Storage/Handler/PdoSessionHandler.php | 904 - .../Storage/Handler/RedisSessionHandler.php | 105 - .../Storage/Handler/StrictSessionHandler.php | 103 - .../Session/Storage/MetadataBag.php | 168 - .../Storage/MockArraySessionStorage.php | 252 - .../Storage/MockFileSessionStorage.php | 152 - .../Session/Storage/NativeSessionStorage.php | 441 - .../Storage/PhpBridgeSessionStorage.php | 59 - .../Session/Storage/Proxy/AbstractProxy.php | 122 - .../Storage/Proxy/SessionHandlerProxy.php | 85 - .../Storage/SessionStorageInterface.php | 137 - .../http-foundation/StreamedResponse.php | 144 - .../Tests/AcceptHeaderItemTest.php | 113 - .../Tests/AcceptHeaderTest.php | 130 - .../Tests/ApacheRequestTest.php | 93 - .../Tests/BinaryFileResponseTest.php | 352 - .../http-foundation/Tests/CookieTest.php | 223 - .../Tests/ExpressionRequestMatcherTest.php | 69 - .../http-foundation/Tests/File/FakeFile.php | 45 - .../http-foundation/Tests/File/FileTest.php | 180 - .../Tests/File/Fixtures/.unknownextension | 1 - .../Tests/File/Fixtures/directory/.empty | 0 .../Tests/File/Fixtures/other-file.example | 0 .../http-foundation/Tests/File/Fixtures/test | Bin 35 -> 0 bytes .../Tests/File/Fixtures/test.gif | Bin 35 -> 0 bytes .../Tests/File/MimeType/MimeTypeTest.php | 90 - .../Tests/File/UploadedFileTest.php | 346 - .../http-foundation/Tests/FileBagTest.php | 178 - .../Fixtures/response-functional/common.inc | 43 - .../cookie_max_age.expected | 11 - .../response-functional/cookie_max_age.php | 10 - .../cookie_raw_urlencode.expected | 10 - .../cookie_raw_urlencode.php | 12 - .../cookie_samesite_lax.expected | 9 - .../cookie_samesite_lax.php | 8 - .../cookie_samesite_strict.expected | 9 - .../cookie_samesite_strict.php | 8 - .../cookie_urlencode.expected | 10 - .../response-functional/cookie_urlencode.php | 12 - .../invalid_cookie_name.expected | 6 - .../invalid_cookie_name.php | 11 - .../http-foundation/Tests/HeaderBagTest.php | 205 - .../http-foundation/Tests/HeaderUtilsTest.php | 85 - .../http-foundation/Tests/IpUtilsTest.php | 104 - .../Tests/JsonResponseTest.php | 257 - .../Tests/ParameterBagTest.php | 194 - .../Tests/RedirectResponseTest.php | 97 - .../Tests/RequestMatcherTest.php | 151 - .../Tests/RequestStackTest.php | 70 - .../http-foundation/Tests/RequestTest.php | 2211 -- .../Tests/ResponseFunctionalTest.php | 58 - .../Tests/ResponseHeaderBagTest.php | 363 - .../http-foundation/Tests/ResponseTest.php | 1035 - .../Tests/ResponseTestCase.php | 89 - .../http-foundation/Tests/ServerBagTest.php | 170 - .../Session/Attribute/AttributeBagTest.php | 186 - .../Attribute/NamespacedAttributeBagTest.php | 182 - .../Session/Flash/AutoExpireFlashBagTest.php | 161 - .../Tests/Session/Flash/FlashBagTest.php | 132 - .../Tests/Session/SessionTest.php | 242 - .../AbstractRedisSessionHandlerTestCase.php | 177 - .../Handler/AbstractSessionHandlerTest.php | 58 - .../Storage/Handler/Fixtures/common.inc | 151 - .../Handler/Fixtures/empty_destroys.expected | 17 - .../Handler/Fixtures/empty_destroys.php | 8 - .../Handler/Fixtures/read_only.expected | 14 - .../Storage/Handler/Fixtures/read_only.php | 8 - .../Handler/Fixtures/regenerate.expected | 24 - .../Storage/Handler/Fixtures/regenerate.php | 10 - .../Storage/Handler/Fixtures/storage.expected | 20 - .../Storage/Handler/Fixtures/storage.php | 24 - .../Handler/Fixtures/with_cookie.expected | 15 - .../Storage/Handler/Fixtures/with_cookie.php | 8 - .../Fixtures/with_cookie_and_session.expected | 24 - .../Fixtures/with_cookie_and_session.php | 13 - .../Handler/MemcachedSessionHandlerTest.php | 135 - .../Handler/MigratingSessionHandlerTest.php | 186 - .../Handler/MongoDbSessionHandlerTest.php | 209 - .../Handler/NativeFileSessionHandlerTest.php | 76 - .../Handler/NullSessionHandlerTest.php | 59 - .../Storage/Handler/PdoSessionHandlerTest.php | 404 - .../PredisClusterSessionHandlerTest.php | 22 - .../Handler/PredisSessionHandlerTest.php | 22 - .../Handler/RedisArraySessionHandlerTest.php | 20 - .../Handler/RedisSessionHandlerTest.php | 23 - .../Handler/StrictSessionHandlerTest.php | 189 - .../Tests/Session/Storage/MetadataBagTest.php | 139 - .../Storage/MockArraySessionStorageTest.php | 131 - .../Storage/MockFileSessionStorageTest.php | 127 - .../Storage/NativeSessionStorageTest.php | 294 - .../Storage/PhpBridgeSessionStorageTest.php | 95 - .../Storage/Proxy/AbstractProxyTest.php | 113 - .../Storage/Proxy/SessionHandlerProxyTest.php | 124 - .../Tests/StreamedResponseTest.php | 126 - .../Tests/schema/http-status-codes.rng | 31 - .../Tests/schema/iana-registry.rng | 198 - vendor/symfony/http-foundation/composer.json | 38 - .../symfony/http-foundation/phpunit.xml.dist | 31 - vendor/symfony/http-kernel/Bundle/Bundle.php | 179 - .../http-kernel/Bundle/BundleInterface.php | 71 - vendor/symfony/http-kernel/CHANGELOG.md | 184 - .../CacheClearer/CacheClearerInterface.php | 27 - .../CacheClearer/ChainCacheClearer.php | 39 - .../CacheClearer/Psr6CacheClearer.php | 58 - .../http-kernel/CacheWarmer/CacheWarmer.php | 32 - .../CacheWarmer/CacheWarmerAggregate.php | 70 - .../CacheWarmer/CacheWarmerInterface.php | 32 - .../CacheWarmer/WarmableInterface.php | 27 - vendor/symfony/http-kernel/Client.php | 203 - .../http-kernel/Config/FileLocator.php | 54 - .../Controller/ArgumentResolver.php | 94 - .../ArgumentResolver/DefaultValueResolver.php | 40 - .../RequestAttributeValueResolver.php | 40 - .../ArgumentResolver/RequestValueResolver.php | 40 - .../ArgumentResolver/ServiceValueResolver.php | 84 - .../ArgumentResolver/SessionValueResolver.php | 50 - .../TraceableValueResolver.php | 62 - .../VariadicValueResolver.php | 48 - .../Controller/ArgumentResolverInterface.php | 35 - .../ArgumentValueResolverInterface.php | 43 - .../ContainerControllerResolver.php | 74 - .../Controller/ControllerReference.php | 44 - .../Controller/ControllerResolver.php | 206 - .../ControllerResolverInterface.php | 41 - .../Controller/TraceableArgumentResolver.php | 44 - .../TraceableControllerResolver.php | 44 - .../ControllerMetadata/ArgumentMetadata.php | 107 - .../ArgumentMetadataFactory.php | 71 - .../ArgumentMetadataFactoryInterface.php | 27 - .../DataCollector/AjaxDataCollector.php | 38 - .../DataCollector/ConfigDataCollector.php | 332 - .../DataCollector/DataCollector.php | 93 - .../DataCollector/DataCollectorInterface.php | 40 - .../DataCollector/DumpDataCollector.php | 255 - .../DataCollector/EventDataCollector.php | 148 - .../DataCollector/ExceptionDataCollector.php | 112 - .../LateDataCollectorInterface.php | 25 - .../DataCollector/LoggerDataCollector.php | 279 - .../DataCollector/MemoryDataCollector.php | 120 - .../DataCollector/RequestDataCollector.php | 426 - .../DataCollector/RouterDataCollector.php | 108 - .../DataCollector/TimeDataCollector.php | 149 - .../http-kernel/Debug/FileLinkFormatter.php | 105 - .../Debug/TraceableEventDispatcher.php | 82 - .../AddAnnotatedClassesToCachePass.php | 145 - .../ConfigurableExtension.php | 42 - .../ControllerArgumentValueResolverPass.php | 64 - .../DependencyInjection/Extension.php | 44 - .../FragmentRendererPass.php | 63 - .../LazyLoadingFragmentHandler.php | 47 - .../DependencyInjection/LoggerPass.php | 41 - .../MergeExtensionConfigurationPass.php | 41 - ...RegisterControllerArgumentLocatorsPass.php | 188 - ...oveEmptyControllerArgumentLocatorsPass.php | 70 - .../ResettableServicePass.php | 66 - .../DependencyInjection/ServicesResetter.php | 39 - .../Event/FilterControllerArgumentsEvent.php | 52 - .../Event/FilterControllerEvent.php | 53 - .../http-kernel/Event/FilterResponseEvent.php | 55 - .../http-kernel/Event/FinishRequestEvent.php | 21 - .../http-kernel/Event/GetResponseEvent.php | 58 - .../GetResponseForControllerResultEvent.php | 61 - .../Event/GetResponseForExceptionEvent.php | 90 - .../symfony/http-kernel/Event/KernelEvent.php | 82 - .../http-kernel/Event/PostResponseEvent.php | 46 - .../EventListener/AbstractSessionListener.php | 148 - .../AbstractTestSessionListener.php | 95 - .../AddRequestFormatsListener.php | 50 - .../EventListener/DebugHandlersListener.php | 156 - .../EventListener/DumpListener.php | 63 - .../EventListener/ExceptionListener.php | 135 - .../EventListener/FragmentListener.php | 99 - .../EventListener/LocaleListener.php | 83 - .../EventListener/ProfilerListener.php | 128 - .../EventListener/ResponseListener.php | 56 - .../EventListener/RouterListener.php | 178 - .../EventListener/SaveSessionListener.php | 46 - .../EventListener/SessionListener.php | 38 - .../StreamedResponseListener.php | 49 - .../EventListener/SurrogateListener.php | 65 - .../EventListener/TestSessionListener.php | 40 - .../EventListener/TranslatorListener.php | 69 - .../EventListener/ValidateRequestListener.php | 53 - .../Exception/AccessDeniedHttpException.php | 30 - .../Exception/BadRequestHttpException.php | 29 - .../Exception/ConflictHttpException.php | 29 - .../Exception/GoneHttpException.php | 29 - .../http-kernel/Exception/HttpException.php | 51 - .../Exception/HttpExceptionInterface.php | 34 - .../Exception/LengthRequiredHttpException.php | 29 - .../MethodNotAllowedHttpException.php | 32 - .../Exception/NotAcceptableHttpException.php | 29 - .../Exception/NotFoundHttpException.php | 29 - .../PreconditionFailedHttpException.php | 29 - .../PreconditionRequiredHttpException.php | 31 - .../ServiceUnavailableHttpException.php | 34 - .../TooManyRequestsHttpException.php | 36 - .../Exception/UnauthorizedHttpException.php | 32 - .../UnprocessableEntityHttpException.php | 29 - .../UnsupportedMediaTypeHttpException.php | 29 - .../AbstractSurrogateFragmentRenderer.php | 110 - .../Fragment/EsiFragmentRenderer.php | 28 - .../http-kernel/Fragment/FragmentHandler.php | 112 - .../Fragment/FragmentRendererInterface.php | 42 - .../Fragment/HIncludeFragmentRenderer.php | 160 - .../Fragment/InlineFragmentRenderer.php | 146 - .../Fragment/RoutableFragmentRenderer.php | 90 - .../Fragment/SsiFragmentRenderer.php | 28 - .../HttpCache/AbstractSurrogate.php | 134 - vendor/symfony/http-kernel/HttpCache/Esi.php | 115 - .../http-kernel/HttpCache/HttpCache.php | 703 - .../HttpCache/ResponseCacheStrategy.php | 96 - .../ResponseCacheStrategyInterface.php | 37 - vendor/symfony/http-kernel/HttpCache/Ssi.php | 98 - .../symfony/http-kernel/HttpCache/Store.php | 489 - .../http-kernel/HttpCache/StoreInterface.php | 83 - .../HttpCache/SurrogateInterface.php | 92 - vendor/symfony/http-kernel/HttpKernel.php | 284 - .../http-kernel/HttpKernelInterface.php | 43 - vendor/symfony/http-kernel/Kernel.php | 813 - vendor/symfony/http-kernel/KernelEvents.php | 103 - .../symfony/http-kernel/KernelInterface.php | 161 - vendor/symfony/http-kernel/LICENSE | 19 - .../http-kernel/Log/DebugLoggerInterface.php | 49 - vendor/symfony/http-kernel/Log/Logger.php | 104 - .../Profiler/FileProfilerStorage.php | 290 - .../symfony/http-kernel/Profiler/Profile.php | 295 - .../symfony/http-kernel/Profiler/Profiler.php | 258 - .../Profiler/ProfilerStorageInterface.php | 57 - vendor/symfony/http-kernel/README.md | 16 - .../http-kernel/RebootableInterface.php | 30 - .../http-kernel/Resources/welcome.html.php | 84 - .../http-kernel/TerminableInterface.php | 32 - .../http-kernel/Tests/Bundle/BundleTest.php | 69 - .../CacheClearer/ChainCacheClearerTest.php | 46 - .../CacheClearer/Psr6CacheClearerTest.php | 48 - .../CacheWarmer/CacheWarmerAggregateTest.php | 79 - .../Tests/CacheWarmer/CacheWarmerTest.php | 68 - .../symfony/http-kernel/Tests/ClientTest.php | 182 - .../Tests/Config/FileLocatorTest.php | 48 - .../ServiceValueResolverTest.php | 140 - .../TraceableValueResolverTest.php | 76 - .../Tests/Controller/ArgumentResolverTest.php | 338 - .../ContainerControllerResolverTest.php | 241 - .../Controller/ControllerResolverTest.php | 259 - .../ArgumentMetadataFactoryTest.php | 139 - .../ArgumentMetadataTest.php | 46 - .../Tests/DataCollector/Compiler.log | 4 - .../DataCollector/ConfigDataCollectorTest.php | 66 - .../Tests/DataCollector/DataCollectorTest.php | 38 - .../DataCollector/DumpDataCollectorTest.php | 157 - .../ExceptionDataCollectorTest.php | 59 - .../DataCollector/LoggerDataCollectorTest.php | 188 - .../DataCollector/MemoryDataCollectorTest.php | 59 - .../RequestDataCollectorTest.php | 334 - .../DataCollector/TimeDataCollectorTest.php | 55 - .../Tests/Debug/FileLinkFormatterTest.php | 67 - .../Debug/TraceableEventDispatcherTest.php | 121 - .../AddAnnotatedClassesToCachePassTest.php | 99 - ...ontrollerArgumentValueResolverPassTest.php | 131 - .../FragmentRendererPassTest.php | 71 - .../LazyLoadingFragmentHandlerTest.php | 41 - .../DependencyInjection/LoggerPassTest.php | 56 - .../MergeExtensionConfigurationPassTest.php | 50 - ...sterControllerArgumentLocatorsPassTest.php | 402 - ...mptyControllerArgumentLocatorsPassTest.php | 109 - .../ResettableServicePassTest.php | 78 - .../ServicesResetterTest.php | 42 - .../FilterControllerArgumentsEventTest.php | 17 - .../GetResponseForExceptionEventTest.php | 27 - .../AddRequestFormatsListenerTest.php | 84 - .../DebugHandlersListenerTest.php | 155 - .../Tests/EventListener/DumpListenerTest.php | 81 - .../EventListener/ExceptionListenerTest.php | 182 - .../EventListener/FragmentListenerTest.php | 122 - .../EventListener/LocaleListenerTest.php | 102 - .../EventListener/ProfilerListenerTest.php | 71 - .../EventListener/ResponseListenerTest.php | 95 - .../EventListener/RouterListenerTest.php | 221 - .../EventListener/SaveSessionListenerTest.php | 52 - .../EventListener/SessionListenerTest.php | 156 - .../EventListener/SurrogateListenerTest.php | 67 - .../EventListener/TestSessionListenerTest.php | 201 - .../EventListener/TranslatorListenerTest.php | 118 - .../ValidateRequestListenerTest.php | 48 - .../AccessDeniedHttpExceptionTest.php | 13 - .../Exception/BadRequestHttpExceptionTest.php | 13 - .../Exception/ConflictHttpExceptionTest.php | 13 - .../Tests/Exception/GoneHttpExceptionTest.php | 13 - .../Tests/Exception/HttpExceptionTest.php | 53 - .../LengthRequiredHttpExceptionTest.php | 13 - .../MethodNotAllowedHttpExceptionTest.php | 37 - .../NotAcceptableHttpExceptionTest.php | 13 - .../Exception/NotFoundHttpExceptionTest.php | 13 - .../PreconditionFailedHttpExceptionTest.php | 13 - .../PreconditionRequiredHttpExceptionTest.php | 13 - .../ServiceUnavailableHttpExceptionTest.php | 42 - .../TooManyRequestsHttpExceptionTest.php | 42 - .../UnauthorizedHttpExceptionTest.php | 37 - .../UnprocessableEntityHttpExceptionTest.php | 13 - .../UnsupportedMediaTypeHttpExceptionTest.php | 13 - .../Tests/Fixtures/123/Kernel123.php | 37 - .../Fixtures/BaseBundle/Resources/foo.txt | 0 .../Fixtures/BaseBundle/Resources/hide.txt | 0 .../Fixtures/Bundle1Bundle/Resources/foo.txt | 0 .../Tests/Fixtures/Bundle1Bundle/bar.txt | 0 .../Tests/Fixtures/Bundle1Bundle/foo.txt | 0 .../Tests/Fixtures/Bundle2Bundle/foo.txt | 0 .../Fixtures/ChildBundle/Resources/foo.txt | 0 .../Fixtures/ChildBundle/Resources/hide.txt | 0 .../Tests/Fixtures/ClearableService.php | 13 - .../Controller/BasicTypesController.php | 19 - .../Fixtures/Controller/ExtendingRequest.php | 18 - .../Fixtures/Controller/ExtendingSession.php | 18 - .../Controller/NullableController.php | 19 - .../Controller/VariadicController.php | 19 - .../DataCollector/CloneVarDataCollector.php | 46 - .../ExtensionAbsentBundle.php | 18 - .../ExtensionLoadedExtension.php | 22 - .../ExtensionLoadedBundle.php | 18 - .../ExtensionNotValidExtension.php | 20 - .../ExtensionNotValidBundle.php | 18 - .../Command/BarCommand.php | 17 - .../Command/FooCommand.php | 22 - .../ExtensionPresentExtension.php | 22 - .../ExtensionPresentBundle.php | 18 - .../Tests/Fixtures/KernelForOverrideName.php | 28 - .../Tests/Fixtures/KernelForTest.php | 37 - .../Tests/Fixtures/KernelWithoutBundles.php | 33 - .../Tests/Fixtures/ResettableService.php | 13 - .../Fixtures/Resources/BaseBundle/hide.txt | 0 .../Fixtures/Resources/Bundle1Bundle/foo.txt | 0 .../Fixtures/Resources/ChildBundle/foo.txt | 0 .../Fixtures/Resources/FooBundle/foo.txt | 0 .../http-kernel/Tests/Fixtures/TestClient.php | 31 - .../Tests/Fixtures/TestEventDispatcher.php | 36 - .../Fragment/EsiFragmentRendererTest.php | 106 - .../Tests/Fragment/FragmentHandlerTest.php | 99 - .../Fragment/HIncludeFragmentRendererTest.php | 89 - .../Fragment/InlineFragmentRendererTest.php | 223 - .../Fragment/RoutableFragmentRendererTest.php | 94 - .../Fragment/SsiFragmentRendererTest.php | 97 - .../http-kernel/Tests/HttpCache/EsiTest.php | 248 - .../Tests/HttpCache/HttpCacheTest.php | 1522 - .../Tests/HttpCache/HttpCacheTestCase.php | 185 - .../HttpCache/ResponseCacheStrategyTest.php | 240 - .../http-kernel/Tests/HttpCache/SsiTest.php | 215 - .../http-kernel/Tests/HttpCache/StoreTest.php | 301 - .../Tests/HttpCache/TestHttpKernel.php | 92 - .../HttpCache/TestMultipleHttpKernel.php | 81 - .../http-kernel/Tests/HttpKernelTest.php | 387 - .../symfony/http-kernel/Tests/KernelTest.php | 763 - .../http-kernel/Tests/Log/LoggerTest.php | 212 - vendor/symfony/http-kernel/Tests/Logger.php | 88 - .../Profiler/FileProfilerStorageTest.php | 350 - .../Tests/Profiler/ProfilerTest.php | 105 - .../http-kernel/Tests/TestHttpKernel.php | 42 - .../http-kernel/Tests/UriSignerTest.php | 64 - vendor/symfony/http-kernel/UriSigner.php | 106 - vendor/symfony/http-kernel/composer.json | 71 - vendor/symfony/http-kernel/phpunit.xml.dist | 40 - vendor/symfony/polyfill-ctype/Ctype.php | 227 - vendor/symfony/polyfill-ctype/LICENSE | 19 - vendor/symfony/polyfill-ctype/README.md | 12 - vendor/symfony/polyfill-ctype/bootstrap.php | 26 - vendor/symfony/polyfill-ctype/composer.json | 31 - vendor/symfony/polyfill-mbstring/LICENSE | 19 - vendor/symfony/polyfill-mbstring/Mbstring.php | 791 - vendor/symfony/polyfill-mbstring/README.md | 13 - .../Resources/unidata/lowerCase.php | 1101 - .../Resources/unidata/upperCase.php | 1109 - .../symfony/polyfill-mbstring/bootstrap.php | 58 - .../symfony/polyfill-mbstring/composer.json | 34 - vendor/symfony/polyfill-php72/LICENSE | 19 - vendor/symfony/polyfill-php72/Php72.php | 164 - vendor/symfony/polyfill-php72/README.md | 27 - vendor/symfony/polyfill-php72/bootstrap.php | 31 - vendor/symfony/polyfill-php72/composer.json | 31 - vendor/symfony/process/CHANGELOG.md | 81 - .../process/Exception/ExceptionInterface.php | 21 - .../Exception/InvalidArgumentException.php | 21 - .../process/Exception/LogicException.php | 21 - .../Exception/ProcessFailedException.php | 54 - .../Exception/ProcessSignaledException.php | 41 - .../Exception/ProcessTimedOutException.php | 69 - .../process/Exception/RuntimeException.php | 21 - vendor/symfony/process/ExecutableFinder.php | 88 - vendor/symfony/process/InputStream.php | 92 - vendor/symfony/process/LICENSE | 19 - .../symfony/process/PhpExecutableFinder.php | 94 - vendor/symfony/process/PhpProcess.php | 71 - .../symfony/process/Pipes/AbstractPipes.php | 178 - .../symfony/process/Pipes/PipesInterface.php | 67 - vendor/symfony/process/Pipes/UnixPipes.php | 153 - vendor/symfony/process/Pipes/WindowsPipes.php | 196 - vendor/symfony/process/Process.php | 1570 - vendor/symfony/process/ProcessUtils.php | 69 - vendor/symfony/process/README.md | 13 - .../process/Tests/ExecutableFinderTest.php | 163 - .../process/Tests/NonStopableProcess.php | 47 - .../process/Tests/PhpExecutableFinderTest.php | 49 - .../symfony/process/Tests/PhpProcessTest.php | 48 - .../PipeStdinInStdoutStdErrStreamSelect.php | 72 - .../Tests/ProcessFailedExceptionTest.php | 137 - vendor/symfony/process/Tests/ProcessTest.php | 1521 - .../symfony/process/Tests/SignalListener.php | 21 - vendor/symfony/process/composer.json | 33 - vendor/symfony/process/phpunit.xml.dist | 30 - vendor/symfony/routing/Annotation/Route.php | 164 - vendor/symfony/routing/CHANGELOG.md | 234 - vendor/symfony/routing/CompiledRoute.php | 165 - .../RoutingResolverPass.php | 49 - .../routing/Exception/ExceptionInterface.php | 21 - .../Exception/InvalidParameterException.php | 21 - .../Exception/MethodNotAllowedException.php | 41 - .../MissingMandatoryParametersException.php | 22 - .../Exception/NoConfigurationException.php | 21 - .../Exception/ResourceNotFoundException.php | 23 - .../Exception/RouteNotFoundException.php | 21 - .../ConfigurableRequirementsInterface.php | 55 - .../Generator/Dumper/GeneratorDumper.php | 37 - .../Dumper/GeneratorDumperInterface.php | 39 - .../Generator/Dumper/PhpGeneratorDumper.php | 129 - .../routing/Generator/UrlGenerator.php | 330 - .../Generator/UrlGeneratorInterface.php | 86 - vendor/symfony/routing/LICENSE | 19 - .../routing/Loader/AnnotationClassLoader.php | 319 - .../Loader/AnnotationDirectoryLoader.php | 93 - .../routing/Loader/AnnotationFileLoader.php | 141 - .../symfony/routing/Loader/ClosureLoader.php | 46 - .../Configurator/CollectionConfigurator.php | 95 - .../Configurator/ImportConfigurator.php | 93 - .../Loader/Configurator/RouteConfigurator.php | 34 - .../Configurator/RoutingConfigurator.php | 62 - .../Loader/Configurator/Traits/AddTrait.php | 90 - .../Loader/Configurator/Traits/RouteTrait.php | 127 - .../ServiceRouterLoader.php | 40 - .../routing/Loader/DirectoryLoader.php | 58 - .../symfony/routing/Loader/GlobFileLoader.php | 47 - .../routing/Loader/ObjectRouteLoader.php | 100 - .../symfony/routing/Loader/PhpFileLoader.php | 75 - .../symfony/routing/Loader/XmlFileLoader.php | 425 - .../symfony/routing/Loader/YamlFileLoader.php | 274 - .../Loader/schema/routing/routing-1.0.xsd | 162 - .../routing/Matcher/Dumper/MatcherDumper.php | 37 - .../Matcher/Dumper/MatcherDumperInterface.php | 39 - .../Matcher/Dumper/PhpMatcherDumper.php | 774 - .../Matcher/Dumper/StaticPrefixCollection.php | 202 - .../Matcher/RedirectableUrlMatcher.php | 64 - .../RedirectableUrlMatcherInterface.php | 31 - .../Matcher/RequestMatcherInterface.php | 39 - .../routing/Matcher/TraceableUrlMatcher.php | 141 - vendor/symfony/routing/Matcher/UrlMatcher.php | 271 - .../routing/Matcher/UrlMatcherInterface.php | 41 - vendor/symfony/routing/README.md | 13 - vendor/symfony/routing/RequestContext.php | 326 - .../routing/RequestContextAwareInterface.php | 27 - vendor/symfony/routing/Route.php | 571 - vendor/symfony/routing/RouteCollection.php | 297 - .../routing/RouteCollectionBuilder.php | 376 - vendor/symfony/routing/RouteCompiler.php | 329 - .../routing/RouteCompilerInterface.php | 30 - vendor/symfony/routing/Router.php | 388 - vendor/symfony/routing/RouterInterface.php | 32 - .../routing/Tests/Annotation/RouteTest.php | 59 - .../routing/Tests/CompiledRouteTest.php | 27 - .../RoutingResolverPassTest.php | 36 - .../AnnotatedClasses/AbstractClass.php | 16 - .../Fixtures/AnnotatedClasses/BarClass.php | 19 - .../Fixtures/AnnotatedClasses/BazClass.php | 19 - .../Fixtures/AnnotatedClasses/FooClass.php | 16 - .../Fixtures/AnnotatedClasses/FooTrait.php | 13 - .../AbstractClassController.php | 7 - .../ActionPathController.php | 15 - .../DefaultValueController.php | 15 - .../ExplicitLocalizedActionPathController.php | 15 - .../InvokableController.php | 15 - .../InvokableLocalizedController.php | 15 - .../LocalizedActionPathController.php | 15 - .../LocalizedMethodActionControllers.php | 25 - ...calizedPrefixLocalizedActionController.php | 18 - ...zedPrefixMissingLocaleActionController.php | 18 - ...efixMissingRouteLocaleActionController.php | 18 - .../LocalizedPrefixWithRouteWithoutLocale.php | 18 - .../MethodActionControllers.php | 25 - .../MissingRouteNameController.php | 15 - .../NothingButNameController.php | 15 - ...PrefixedActionLocalizedRouteController.php | 18 - .../PrefixedActionPathController.php | 18 - .../RouteWithPrefixController.php | 18 - .../Tests/Fixtures/CustomCompiledRoute.php | 18 - .../Tests/Fixtures/CustomRouteCompiler.php | 26 - .../Tests/Fixtures/CustomXmlFileLoader.php | 26 - .../AnonymousClassInTrait.php | 24 - .../OtherAnnotatedClasses/NoStartTagClass.php | 3 - .../OtherAnnotatedClasses/VariadicClass.php | 19 - .../Tests/Fixtures/RedirectableUrlMatcher.php | 30 - .../routing/Tests/Fixtures/annotated.php | 0 .../routing/Tests/Fixtures/bad_format.yml | 3 - vendor/symfony/routing/Tests/Fixtures/bar.xml | 0 .../controller/import__controller.xml | 10 - .../controller/import__controller.yml | 4 - .../Fixtures/controller/import_controller.xml | 8 - .../Fixtures/controller/import_controller.yml | 3 - .../controller/import_override_defaults.xml | 10 - .../controller/import_override_defaults.yml | 5 - .../Fixtures/controller/override_defaults.xml | 10 - .../Fixtures/controller/override_defaults.yml | 5 - .../Tests/Fixtures/controller/routing.xml | 14 - .../Tests/Fixtures/controller/routing.yml | 11 - .../Fixtures/directory/recurse/routes1.yml | 2 - .../Fixtures/directory/recurse/routes2.yml | 2 - .../Tests/Fixtures/directory/routes3.yml | 2 - .../Fixtures/directory_import/import.yml | 3 - .../Tests/Fixtures/dumper/url_matcher0.php | 35 - .../Tests/Fixtures/dumper/url_matcher1.php | 247 - .../Tests/Fixtures/dumper/url_matcher10.php | 2830 -- .../Tests/Fixtures/dumper/url_matcher11.php | 151 - .../Tests/Fixtures/dumper/url_matcher12.php | 100 - .../Tests/Fixtures/dumper/url_matcher13.php | 69 - .../Tests/Fixtures/dumper/url_matcher2.php | 284 - .../Tests/Fixtures/dumper/url_matcher3.php | 112 - .../Tests/Fixtures/dumper/url_matcher4.php | 84 - .../Tests/Fixtures/dumper/url_matcher5.php | 154 - .../Tests/Fixtures/dumper/url_matcher6.php | 131 - .../Tests/Fixtures/dumper/url_matcher7.php | 166 - .../Tests/Fixtures/dumper/url_matcher8.php | 88 - .../Tests/Fixtures/dumper/url_matcher9.php | 53 - .../symfony/routing/Tests/Fixtures/empty.yml | 0 .../routing/Tests/Fixtures/file_resource.yml | 0 vendor/symfony/routing/Tests/Fixtures/foo.xml | 0 .../symfony/routing/Tests/Fixtures/foo1.xml | 0 .../routing/Tests/Fixtures/glob/bar.xml | 8 - .../routing/Tests/Fixtures/glob/bar.yml | 4 - .../routing/Tests/Fixtures/glob/baz.xml | 8 - .../routing/Tests/Fixtures/glob/baz.yml | 4 - .../Tests/Fixtures/glob/import_multiple.xml | 8 - .../Tests/Fixtures/glob/import_multiple.yml | 2 - .../Tests/Fixtures/glob/import_single.xml | 8 - .../Tests/Fixtures/glob/import_single.yml | 2 - .../routing/Tests/Fixtures/glob/php_dsl.php | 7 - .../Tests/Fixtures/glob/php_dsl_bar.php | 12 - .../Tests/Fixtures/glob/php_dsl_baz.php | 12 - .../import_with_name_prefix/routing.xml | 10 - .../import_with_name_prefix/routing.yml | 7 - .../import_with_no_trailing_slash/routing.xml | 10 - .../import_with_no_trailing_slash/routing.yml | 10 - .../routing/Tests/Fixtures/incomplete.yml | 2 - .../routing/Tests/Fixtures/list_defaults.xml | 20 - .../Tests/Fixtures/list_in_list_defaults.xml | 22 - .../Tests/Fixtures/list_in_map_defaults.xml | 22 - .../Tests/Fixtures/list_null_values.xml | 22 - .../routing/Tests/Fixtures/localized.xml | 13 - ...imported-with-locale-but-not-localized.xml | 9 - ...imported-with-locale-but-not-localized.yml | 4 - .../localized/imported-with-locale.xml | 11 - .../localized/imported-with-locale.yml | 6 - .../importer-with-controller-default.yml | 5 - ...ith-locale-imports-non-localized-route.xml | 10 - ...ith-locale-imports-non-localized-route.yml | 6 - .../localized/importer-with-locale.xml | 10 - .../localized/importer-with-locale.yml | 6 - .../localized/importing-localized-route.yml | 3 - .../Fixtures/localized/localized-route.yml | 9 - .../localized/missing-locale-in-importer.yml | 5 - .../Fixtures/localized/not-localized.yml | 4 - .../officially_formatted_locales.yml | 7 - .../route-without-path-or-locales.yml | 3 - .../routing/Tests/Fixtures/map_defaults.xml | 20 - .../Tests/Fixtures/map_in_list_defaults.xml | 22 - .../Tests/Fixtures/map_in_map_defaults.xml | 22 - .../Tests/Fixtures/map_null_values.xml | 22 - .../routing/Tests/Fixtures/missing_id.xml | 8 - .../routing/Tests/Fixtures/missing_path.xml | 8 - .../Tests/Fixtures/namespaceprefix.xml | 16 - .../Fixtures/nonesense_resource_plus_path.yml | 3 - .../nonesense_type_without_resource.yml | 3 - .../routing/Tests/Fixtures/nonvalid.xml | 10 - .../routing/Tests/Fixtures/nonvalid.yml | 1 - .../routing/Tests/Fixtures/nonvalid2.yml | 1 - .../routing/Tests/Fixtures/nonvalidkeys.yml | 3 - .../routing/Tests/Fixtures/nonvalidnode.xml | 8 - .../routing/Tests/Fixtures/nonvalidroute.xml | 12 - .../routing/Tests/Fixtures/null_values.xml | 12 - .../routing/Tests/Fixtures/php_dsl.php | 29 - .../routing/Tests/Fixtures/php_dsl_i18n.php | 17 - .../routing/Tests/Fixtures/php_dsl_sub.php | 15 - .../Tests/Fixtures/php_dsl_sub_i18n.php | 11 - .../Tests/Fixtures/php_dsl_sub_root.php | 10 - .../routing/Tests/Fixtures/php_object_dsl.php | 32 - .../Tests/Fixtures/scalar_defaults.xml | 33 - .../Tests/Fixtures/special_route_name.yml | 2 - .../routing/Tests/Fixtures/validpattern.php | 18 - .../routing/Tests/Fixtures/validpattern.xml | 15 - .../routing/Tests/Fixtures/validpattern.yml | 13 - .../routing/Tests/Fixtures/validresource.php | 18 - .../routing/Tests/Fixtures/validresource.xml | 13 - .../routing/Tests/Fixtures/validresource.yml | 8 - .../Fixtures/with_define_path_variable.php | 5 - .../routing/Tests/Fixtures/withdoctype.xml | 3 - .../Dumper/PhpGeneratorDumperTest.php | 204 - .../Tests/Generator/UrlGeneratorTest.php | 724 - .../Loader/AbstractAnnotationLoaderTest.php | 33 - .../Loader/AnnotationClassLoaderTest.php | 270 - .../Loader/AnnotationDirectoryLoaderTest.php | 109 - .../Tests/Loader/AnnotationFileLoaderTest.php | 85 - .../Tests/Loader/ClosureLoaderTest.php | 49 - .../Tests/Loader/DirectoryLoaderTest.php | 74 - .../routing/Tests/Loader/FileLocatorStub.php | 17 - .../Tests/Loader/GlobFileLoaderTest.php | 45 - .../Tests/Loader/ObjectRouteLoaderTest.php | 148 - .../Tests/Loader/PhpFileLoaderTest.php | 169 - .../Tests/Loader/XmlFileLoaderTest.php | 444 - .../Tests/Loader/YamlFileLoaderTest.php | 307 - .../DumpedRedirectableUrlMatcherTest.php | 43 - .../Tests/Matcher/DumpedUrlMatcherTest.php | 30 - .../Matcher/Dumper/PhpMatcherDumperTest.php | 501 - .../Dumper/StaticPrefixCollectionTest.php | 177 - .../Matcher/RedirectableUrlMatcherTest.php | 144 - .../Tests/Matcher/TraceableUrlMatcherTest.php | 122 - .../routing/Tests/Matcher/UrlMatcherTest.php | 677 - .../routing/Tests/RequestContextTest.php | 160 - .../Tests/RouteCollectionBuilderTest.php | 364 - .../routing/Tests/RouteCollectionTest.php | 333 - .../routing/Tests/RouteCompilerTest.php | 408 - vendor/symfony/routing/Tests/RouteTest.php | 274 - vendor/symfony/routing/Tests/RouterTest.php | 163 - vendor/symfony/routing/composer.json | 55 - vendor/symfony/routing/phpunit.xml.dist | 30 - vendor/symfony/translation/CHANGELOG.md | 108 - .../Catalogue/AbstractOperation.php | 158 - .../translation/Catalogue/MergeOperation.php | 55 - .../Catalogue/OperationInterface.php | 77 - .../translation/Catalogue/TargetOperation.php | 69 - .../translation/Command/XliffLintCommand.php | 270 - .../TranslationDataCollector.php | 167 - .../translation/DataCollectorTranslator.php | 165 - .../TranslationDumperPass.php | 44 - .../TranslationExtractorPass.php | 49 - .../DependencyInjection/TranslatorPass.php | 79 - .../translation/Dumper/CsvFileDumper.php | 63 - .../translation/Dumper/DumperInterface.php | 31 - .../symfony/translation/Dumper/FileDumper.php | 113 - .../translation/Dumper/IcuResFileDumper.php | 106 - .../translation/Dumper/IniFileDumper.php | 45 - .../translation/Dumper/JsonFileDumper.php | 44 - .../translation/Dumper/MoFileDumper.php | 82 - .../translation/Dumper/PhpFileDumper.php | 38 - .../translation/Dumper/PoFileDumper.php | 61 - .../translation/Dumper/QtFileDumper.php | 50 - .../translation/Dumper/XliffFileDumper.php | 205 - .../translation/Dumper/YamlFileDumper.php | 62 - .../Exception/ExceptionInterface.php | 21 - .../Exception/InvalidArgumentException.php | 21 - .../Exception/InvalidResourceException.php | 21 - .../translation/Exception/LogicException.php | 21 - .../Exception/NotFoundResourceException.php | 21 - .../Exception/RuntimeException.php | 21 - .../Extractor/AbstractFileExtractor.php | 80 - .../translation/Extractor/ChainExtractor.php | 60 - .../Extractor/ExtractorInterface.php | 38 - .../translation/Extractor/PhpExtractor.php | 256 - .../Extractor/PhpStringTokenParser.php | 142 - .../ChoiceMessageFormatterInterface.php | 30 - .../Formatter/MessageFormatter.php | 48 - .../Formatter/MessageFormatterInterface.php | 30 - .../translation/IdentityTranslator.php | 63 - vendor/symfony/translation/Interval.php | 109 - vendor/symfony/translation/LICENSE | 19 - .../translation/Loader/ArrayLoader.php | 66 - .../translation/Loader/CsvFileLoader.php | 65 - .../symfony/translation/Loader/FileLoader.php | 65 - .../translation/Loader/IcuDatFileLoader.php | 61 - .../translation/Loader/IcuResFileLoader.php | 91 - .../translation/Loader/IniFileLoader.php | 28 - .../translation/Loader/JsonFileLoader.php | 64 - .../translation/Loader/LoaderInterface.php | 38 - .../translation/Loader/MoFileLoader.php | 145 - .../translation/Loader/PhpFileLoader.php | 28 - .../translation/Loader/PoFileLoader.php | 148 - .../translation/Loader/QtFileLoader.php | 77 - .../translation/Loader/XliffFileLoader.php | 314 - .../translation/Loader/YamlFileLoader.php | 50 - .../dic/xliff-core/xliff-core-1.2-strict.xsd | 2223 -- .../schema/dic/xliff-core/xliff-core-2.0.xsd | 411 - .../Loader/schema/dic/xliff-core/xml.xsd | 309 - .../symfony/translation/LoggingTranslator.php | 136 - .../symfony/translation/MessageCatalogue.php | 271 - .../translation/MessageCatalogueInterface.php | 136 - .../symfony/translation/MessageSelector.php | 94 - .../translation/MetadataAwareInterface.php | 54 - .../translation/PluralizationRules.php | 209 - vendor/symfony/translation/README.md | 13 - .../translation/Reader/TranslationReader.php | 63 - .../Reader/TranslationReaderInterface.php | 30 - .../schemas/xliff-core-1.2-strict.xsd | 2223 -- .../Tests/Catalogue/AbstractOperationTest.php | 74 - .../Tests/Catalogue/MergeOperationTest.php | 83 - .../Tests/Catalogue/TargetOperationTest.php | 82 - .../Tests/Command/XliffLintCommandTest.php | 163 - .../TranslationDataCollectorTest.php | 150 - .../Tests/DataCollectorTranslatorTest.php | 92 - .../TranslationDumperPassTest.php | 48 - .../TranslationExtractorPassTest.php | 66 - .../TranslationPassTest.php | 57 - .../Tests/Dumper/CsvFileDumperTest.php | 30 - .../Tests/Dumper/FileDumperTest.php | 66 - .../Tests/Dumper/IcuResFileDumperTest.php | 29 - .../Tests/Dumper/IniFileDumperTest.php | 29 - .../Tests/Dumper/JsonFileDumperTest.php | 39 - .../Tests/Dumper/MoFileDumperTest.php | 29 - .../Tests/Dumper/PhpFileDumperTest.php | 29 - .../Tests/Dumper/PoFileDumperTest.php | 29 - .../Tests/Dumper/QtFileDumperTest.php | 29 - .../Tests/Dumper/XliffFileDumperTest.php | 115 - .../Tests/Dumper/YamlFileDumperTest.php | 47 - .../Tests/Extractor/PhpExtractorTest.php | 95 - .../Tests/Formatter/MessageFormatterTest.php | 82 - .../Tests/IdentityTranslatorTest.php | 96 - .../translation/Tests/IntervalTest.php | 49 - .../Tests/Loader/CsvFileLoaderTest.php | 61 - .../Tests/Loader/IcuDatFileLoaderTest.php | 64 - .../Tests/Loader/IcuResFileLoaderTest.php | 51 - .../Tests/Loader/IniFileLoaderTest.php | 51 - .../Tests/Loader/JsonFileLoaderTest.php | 62 - .../Tests/Loader/LocalizedTestCase.php | 24 - .../Tests/Loader/MoFileLoaderTest.php | 72 - .../Tests/Loader/PhpFileLoaderTest.php | 50 - .../Tests/Loader/PoFileLoaderTest.php | 109 - .../Tests/Loader/QtFileLoaderTest.php | 75 - .../Tests/Loader/XliffFileLoaderTest.php | 260 - .../Tests/Loader/YamlFileLoaderTest.php | 71 - .../Tests/LoggingTranslatorTest.php | 50 - .../Tests/MessageCatalogueTest.php | 222 - .../translation/Tests/MessageSelectorTest.php | 137 - .../Tests/PluralizationRulesTest.php | 122 - .../translation/Tests/TranslatorCacheTest.php | 311 - .../translation/Tests/TranslatorTest.php | 549 - .../Tests/Util/ArrayConverterTest.php | 74 - .../Tests/Writer/TranslationWriterTest.php | 69 - .../Tests/fixtures/empty-translation.mo | Bin 49 -> 0 bytes .../Tests/fixtures/empty-translation.po | 3 - .../translation/Tests/fixtures/empty.csv | 0 .../translation/Tests/fixtures/empty.ini | 0 .../translation/Tests/fixtures/empty.json | 0 .../translation/Tests/fixtures/empty.mo | 0 .../translation/Tests/fixtures/empty.po | 0 .../translation/Tests/fixtures/empty.xlf | 0 .../translation/Tests/fixtures/empty.yml | 0 .../translation/Tests/fixtures/encoding.xlf | 16 - .../Tests/fixtures/escaped-id-plurals.po | 10 - .../translation/Tests/fixtures/escaped-id.po | 8 - .../fixtures/extractor/resource.format.engine | 0 .../this.is.a.template.format.engine | 0 .../fixtures/extractor/translation.html.php | 49 - .../Tests/fixtures/fuzzy-translations.po | 10 - .../Tests/fixtures/invalid-xml-resources.xlf | 23 - .../translation/Tests/fixtures/malformed.json | 3 - .../translation/Tests/fixtures/messages.yml | 3 - .../Tests/fixtures/messages_linear.yml | 2 - .../translation/Tests/fixtures/non-valid.xlf | 11 - .../translation/Tests/fixtures/non-valid.yml | 1 - .../translation/Tests/fixtures/plurals.mo | Bin 74 -> 0 bytes .../translation/Tests/fixtures/plurals.po | 5 - .../translation/Tests/fixtures/resname.xlf | 19 - .../resourcebundle/corrupted/resources.dat | 1 - .../Tests/fixtures/resourcebundle/dat/en.res | Bin 120 -> 0 bytes .../Tests/fixtures/resourcebundle/dat/en.txt | 3 - .../Tests/fixtures/resourcebundle/dat/fr.res | Bin 124 -> 0 bytes .../Tests/fixtures/resourcebundle/dat/fr.txt | 3 - .../resourcebundle/dat/packagelist.txt | 2 - .../fixtures/resourcebundle/dat/resources.dat | Bin 352 -> 0 bytes .../Tests/fixtures/resourcebundle/res/en.res | Bin 84 -> 0 bytes .../Tests/fixtures/resources-2.0-clean.xlf | 23 - .../resources-2.0-multi-segment-unit.xlf | 17 - .../Tests/fixtures/resources-2.0.xlf | 25 - .../Tests/fixtures/resources-clean.xlf | 25 - .../Tests/fixtures/resources-notes-meta.xlf | 26 - .../fixtures/resources-target-attributes.xlf | 14 - .../Tests/fixtures/resources-tool-info.xlf | 14 - .../translation/Tests/fixtures/resources.csv | 4 - .../Tests/fixtures/resources.dump.json | 1 - .../translation/Tests/fixtures/resources.ini | 1 - .../translation/Tests/fixtures/resources.json | 3 - .../translation/Tests/fixtures/resources.mo | Bin 52 -> 0 bytes .../translation/Tests/fixtures/resources.php | 5 - .../translation/Tests/fixtures/resources.po | 8 - .../translation/Tests/fixtures/resources.ts | 10 - .../translation/Tests/fixtures/resources.xlf | 23 - .../translation/Tests/fixtures/resources.yml | 1 - .../translation/Tests/fixtures/valid.csv | 4 - .../Tests/fixtures/with-attributes.xlf | 21 - .../Tests/fixtures/withdoctype.xlf | 12 - .../translation/Tests/fixtures/withnote.xlf | 22 - vendor/symfony/translation/Translator.php | 437 - .../translation/TranslatorBagInterface.php | 33 - .../translation/TranslatorInterface.php | 67 - .../translation/Util/ArrayConverter.php | 99 - .../translation/Writer/TranslationWriter.php | 90 - .../Writer/TranslationWriterInterface.php | 34 - vendor/symfony/translation/composer.json | 53 - vendor/symfony/translation/phpunit.xml.dist | 30 - vendor/symfony/var-dumper/CHANGELOG.md | 32 - .../symfony/var-dumper/Caster/AmqpCaster.php | 210 - vendor/symfony/var-dumper/Caster/ArgsStub.php | 80 - vendor/symfony/var-dumper/Caster/Caster.php | 157 - .../symfony/var-dumper/Caster/ClassStub.php | 87 - .../symfony/var-dumper/Caster/ConstStub.php | 33 - .../var-dumper/Caster/CutArrayStub.php | 30 - vendor/symfony/var-dumper/Caster/CutStub.php | 59 - .../symfony/var-dumper/Caster/DOMCaster.php | 302 - .../symfony/var-dumper/Caster/DateCaster.php | 122 - .../var-dumper/Caster/DoctrineCaster.php | 60 - vendor/symfony/var-dumper/Caster/EnumStub.php | 30 - .../var-dumper/Caster/ExceptionCaster.php | 349 - .../symfony/var-dumper/Caster/FrameStub.php | 30 - .../symfony/var-dumper/Caster/GmpCaster.php | 30 - vendor/symfony/var-dumper/Caster/LinkStub.php | 108 - .../symfony/var-dumper/Caster/PdoCaster.php | 120 - .../symfony/var-dumper/Caster/PgSqlCaster.php | 154 - .../symfony/var-dumper/Caster/RedisCaster.php | 68 - .../var-dumper/Caster/ReflectionCaster.php | 321 - .../var-dumper/Caster/ResourceCaster.php | 72 - .../symfony/var-dumper/Caster/SplCaster.php | 213 - .../symfony/var-dumper/Caster/StubCaster.php | 82 - .../var-dumper/Caster/SymfonyCaster.php | 43 - .../symfony/var-dumper/Caster/TraceStub.php | 36 - .../var-dumper/Caster/XmlReaderCaster.php | 77 - .../var-dumper/Caster/XmlResourceCaster.php | 61 - .../var-dumper/Cloner/AbstractCloner.php | 330 - .../var-dumper/Cloner/ClonerInterface.php | 27 - vendor/symfony/var-dumper/Cloner/Cursor.php | 43 - vendor/symfony/var-dumper/Cloner/Data.php | 425 - .../var-dumper/Cloner/DumperInterface.php | 60 - vendor/symfony/var-dumper/Cloner/Stub.php | 57 - .../symfony/var-dumper/Cloner/VarCloner.php | 293 - .../Command/Descriptor/CliDescriptor.php | 81 - .../Descriptor/DumpDescriptorInterface.php | 23 - .../Command/Descriptor/HtmlDescriptor.php | 119 - .../var-dumper/Command/ServerDumpCommand.php | 99 - .../var-dumper/Dumper/AbstractDumper.php | 211 - .../symfony/var-dumper/Dumper/CliDumper.php | 592 - .../ContextProvider/CliContextProvider.php | 32 - .../ContextProviderInterface.php | 25 - .../RequestContextProvider.php | 49 - .../ContextProvider/SourceContextProvider.php | 126 - .../var-dumper/Dumper/DataDumperInterface.php | 24 - .../symfony/var-dumper/Dumper/HtmlDumper.php | 908 - .../var-dumper/Dumper/ServerDumper.php | 53 - .../Exception/ThrowingCasterException.php | 26 - vendor/symfony/var-dumper/LICENSE | 19 - vendor/symfony/var-dumper/README.md | 15 - .../var-dumper/Resources/bin/var-dump-server | 63 - .../Resources/css/htmlDescriptor.css | 129 - .../var-dumper/Resources/functions/dump.php | 45 - .../var-dumper/Resources/js/htmlDescriptor.js | 10 - .../symfony/var-dumper/Server/Connection.php | 97 - .../symfony/var-dumper/Server/DumpServer.php | 107 - .../var-dumper/Test/VarDumperTestTrait.php | 57 - .../var-dumper/Tests/Caster/CasterTest.php | 178 - .../Tests/Caster/DateCasterTest.php | 390 - .../Tests/Caster/ExceptionCasterTest.php | 230 - .../var-dumper/Tests/Caster/GmpCasterTest.php | 48 - .../var-dumper/Tests/Caster/PdoCasterTest.php | 64 - .../Tests/Caster/RedisCasterTest.php | 66 - .../Tests/Caster/ReflectionCasterTest.php | 233 - .../var-dumper/Tests/Caster/SplCasterTest.php | 207 - .../Tests/Caster/StubCasterTest.php | 192 - .../Tests/Caster/XmlReaderCasterTest.php | 248 - .../var-dumper/Tests/Cloner/DataTest.php | 115 - .../var-dumper/Tests/Cloner/VarClonerTest.php | 437 - .../var-dumper/Tests/Dumper/CliDumperTest.php | 538 - .../Tests/Dumper/HtmlDumperTest.php | 167 - .../Tests/Dumper/ServerDumperTest.php | 95 - .../Tests/Fixtures/FooInterface.php | 11 - .../Tests/Fixtures/GeneratorDemo.php | 21 - .../Tests/Fixtures/NotLoadableClass.php | 7 - .../var-dumper/Tests/Fixtures/Twig.php | 38 - .../var-dumper/Tests/Fixtures/dumb-var.php | 40 - .../var-dumper/Tests/Fixtures/dump_server.php | 38 - .../var-dumper/Tests/Fixtures/xml_reader.xml | 10 - .../Tests/Server/ConnectionTest.php | 88 - .../Tests/Test/VarDumperTestTraitTest.php | 46 - vendor/symfony/var-dumper/VarDumper.php | 48 - vendor/symfony/var-dumper/composer.json | 53 - vendor/symfony/var-dumper/phpunit.xml.dist | 33 - vendor/theseer/tokenizer/.php_cs | 67 - vendor/theseer/tokenizer/.travis.yml | 33 - vendor/theseer/tokenizer/LICENSE | 30 - vendor/theseer/tokenizer/README.md | 49 - vendor/theseer/tokenizer/build.xml | 41 - vendor/theseer/tokenizer/composer.json | 27 - vendor/theseer/tokenizer/phive.xml | 5 - vendor/theseer/tokenizer/phpunit.xml | 25 - vendor/theseer/tokenizer/src/Exception.php | 6 - vendor/theseer/tokenizer/src/NamespaceUri.php | 28 - .../tokenizer/src/NamespaceUriException.php | 6 - vendor/theseer/tokenizer/src/Token.php | 55 - .../theseer/tokenizer/src/TokenCollection.php | 128 - .../src/TokenCollectionException.php | 6 - vendor/theseer/tokenizer/src/Tokenizer.php | 82 - .../theseer/tokenizer/src/XMLSerializer.php | 94 - .../tokenizer/tests/NamespaceUriTest.php | 29 - .../tokenizer/tests/TokenCollectionTest.php | 72 - vendor/theseer/tokenizer/tests/TokenTest.php | 31 - .../theseer/tokenizer/tests/TokenizerTest.php | 21 - .../tokenizer/tests/XMLSerializerTest.php | 43 - .../tokenizer/tests/_files/customns.xml | 177 - .../theseer/tokenizer/tests/_files/test.php | 25 - .../tokenizer/tests/_files/test.php.tokens | Bin 29474 -> 0 bytes .../tokenizer/tests/_files/test.php.xml | 177 - .../css-to-inline-styles/LICENSE.md | 23 - .../css-to-inline-styles/composer.json | 31 - .../css-to-inline-styles/phpunit.xml.dist | 18 - .../src/Css/Processor.php | 68 - .../src/Css/Property/Processor.php | 122 - .../src/Css/Property/Property.php | 90 - .../src/Css/Rule/Processor.php | 155 - .../src/Css/Rule/Rule.php | 84 - .../src/CssToInlineStyles.php | 235 - vendor/toolkito/larasap/.travis.yml | 13 - vendor/toolkito/larasap/CODE_OF_CONDUCT.md | 46 - vendor/toolkito/larasap/CONTRIBUTING.md | 30 - vendor/toolkito/larasap/ISSUE_TEMPLATE.md | 1 - vendor/toolkito/larasap/LICENSE | 21 - vendor/toolkito/larasap/README.md | 268 - vendor/toolkito/larasap/composer.json | 41 - vendor/toolkito/larasap/config/config.php | 26 - vendor/toolkito/larasap/phpunit.xml | 18 - vendor/toolkito/larasap/src/Facebook/Api.php | 127 - .../larasap/src/LarasapServiceProvider.php | 27 - vendor/toolkito/larasap/src/SendTo.php | 143 - vendor/toolkito/larasap/src/Telegram/Api.php | 396 - vendor/toolkito/larasap/src/Twitter/Api.php | 180 - vendor/toolkito/larasap/src/Twitter/OAuth.php | 1031 - vendor/toolkito/larasap/tests/SendToTest.php | 14 - vendor/vlucas/phpdotenv/LICENSE.txt | 32 - vendor/vlucas/phpdotenv/composer.json | 29 - vendor/vlucas/phpdotenv/src/Dotenv.php | 130 - .../src/Exception/ExceptionInterface.php | 11 - .../Exception/InvalidCallbackException.php | 13 - .../src/Exception/InvalidFileException.php | 13 - .../src/Exception/InvalidPathException.php | 13 - .../src/Exception/ValidationException.php | 13 - vendor/vlucas/phpdotenv/src/Loader.php | 418 - vendor/vlucas/phpdotenv/src/Validator.php | 149 - vendor/webmozart/assert/.composer-auth.json | 7 - vendor/webmozart/assert/.styleci.yml | 11 - vendor/webmozart/assert/CHANGELOG.md | 53 - vendor/webmozart/assert/LICENSE | 20 - vendor/webmozart/assert/README.md | 252 - vendor/webmozart/assert/composer.json | 34 - vendor/webmozart/assert/src/Assert.php | 1087 - 7289 files changed, 743 insertions(+), 853143 deletions(-) delete mode 100644 public/fonts/vendor/font-awesome/fontawesome-webfont.eot delete mode 100644 public/fonts/vendor/font-awesome/fontawesome-webfont.svg delete mode 100644 public/fonts/vendor/font-awesome/fontawesome-webfont.ttf delete mode 100644 public/fonts/vendor/font-awesome/fontawesome-webfont.woff delete mode 100644 public/fonts/vendor/font-awesome/fontawesome-webfont.woff2 delete mode 100644 vendor/autoload.php delete mode 100644 vendor/bacon/bacon-qr-code/.travis.yml delete mode 100644 vendor/bacon/bacon-qr-code/LICENSE delete mode 100644 vendor/bacon/bacon-qr-code/Module.php delete mode 100644 vendor/bacon/bacon-qr-code/README.md delete mode 100644 vendor/bacon/bacon-qr-code/autoload_classmap.php delete mode 100644 vendor/bacon/bacon-qr-code/autoload_function.php delete mode 100644 vendor/bacon/bacon-qr-code/autoload_register.php delete mode 100644 vendor/bacon/bacon-qr-code/composer.json delete mode 100644 vendor/bacon/bacon-qr-code/src/BaconQrCode/Common/AbstractEnum.php delete mode 100644 vendor/bacon/bacon-qr-code/src/BaconQrCode/Common/BitArray.php delete mode 100644 vendor/bacon/bacon-qr-code/src/BaconQrCode/Common/BitMatrix.php delete mode 100644 vendor/bacon/bacon-qr-code/src/BaconQrCode/Common/BitUtils.php delete mode 100644 vendor/bacon/bacon-qr-code/src/BaconQrCode/Common/CharacterSetEci.php delete mode 100644 vendor/bacon/bacon-qr-code/src/BaconQrCode/Common/EcBlock.php delete mode 100644 vendor/bacon/bacon-qr-code/src/BaconQrCode/Common/EcBlocks.php delete mode 100644 vendor/bacon/bacon-qr-code/src/BaconQrCode/Common/ErrorCorrectionLevel.php delete mode 100644 vendor/bacon/bacon-qr-code/src/BaconQrCode/Common/FormatInformation.php delete mode 100644 vendor/bacon/bacon-qr-code/src/BaconQrCode/Common/Mode.php delete mode 100644 vendor/bacon/bacon-qr-code/src/BaconQrCode/Common/ReedSolomonCodec.php delete mode 100644 vendor/bacon/bacon-qr-code/src/BaconQrCode/Common/Version.php delete mode 100644 vendor/bacon/bacon-qr-code/src/BaconQrCode/Encoder/BlockPair.php delete mode 100644 vendor/bacon/bacon-qr-code/src/BaconQrCode/Encoder/ByteMatrix.php delete mode 100644 vendor/bacon/bacon-qr-code/src/BaconQrCode/Encoder/Encoder.php delete mode 100644 vendor/bacon/bacon-qr-code/src/BaconQrCode/Encoder/MaskUtil.php delete mode 100644 vendor/bacon/bacon-qr-code/src/BaconQrCode/Encoder/MatrixUtil.php delete mode 100644 vendor/bacon/bacon-qr-code/src/BaconQrCode/Encoder/QrCode.php delete mode 100644 vendor/bacon/bacon-qr-code/src/BaconQrCode/Exception/ExceptionInterface.php delete mode 100644 vendor/bacon/bacon-qr-code/src/BaconQrCode/Exception/InvalidArgumentException.php delete mode 100644 vendor/bacon/bacon-qr-code/src/BaconQrCode/Exception/OutOfBoundsException.php delete mode 100644 vendor/bacon/bacon-qr-code/src/BaconQrCode/Exception/RuntimeException.php delete mode 100644 vendor/bacon/bacon-qr-code/src/BaconQrCode/Exception/UnexpectedValueException.php delete mode 100644 vendor/bacon/bacon-qr-code/src/BaconQrCode/Exception/WriterException.php delete mode 100644 vendor/bacon/bacon-qr-code/src/BaconQrCode/Renderer/Color/Cmyk.php delete mode 100644 vendor/bacon/bacon-qr-code/src/BaconQrCode/Renderer/Color/ColorInterface.php delete mode 100644 vendor/bacon/bacon-qr-code/src/BaconQrCode/Renderer/Color/Gray.php delete mode 100644 vendor/bacon/bacon-qr-code/src/BaconQrCode/Renderer/Color/Rgb.php delete mode 100644 vendor/bacon/bacon-qr-code/src/BaconQrCode/Renderer/Image/AbstractRenderer.php delete mode 100644 vendor/bacon/bacon-qr-code/src/BaconQrCode/Renderer/Image/Decorator/DecoratorInterface.php delete mode 100644 vendor/bacon/bacon-qr-code/src/BaconQrCode/Renderer/Image/Decorator/FinderPattern.php delete mode 100644 vendor/bacon/bacon-qr-code/src/BaconQrCode/Renderer/Image/Eps.php delete mode 100644 vendor/bacon/bacon-qr-code/src/BaconQrCode/Renderer/Image/Png.php delete mode 100644 vendor/bacon/bacon-qr-code/src/BaconQrCode/Renderer/Image/RendererInterface.php delete mode 100644 vendor/bacon/bacon-qr-code/src/BaconQrCode/Renderer/Image/Svg.php delete mode 100644 vendor/bacon/bacon-qr-code/src/BaconQrCode/Renderer/RendererInterface.php delete mode 100644 vendor/bacon/bacon-qr-code/src/BaconQrCode/Renderer/Text/Html.php delete mode 100644 vendor/bacon/bacon-qr-code/src/BaconQrCode/Renderer/Text/Plain.php delete mode 100644 vendor/bacon/bacon-qr-code/src/BaconQrCode/Writer.php delete mode 100644 vendor/bacon/bacon-qr-code/tests/BaconQrCode/Common/BitArrayTest.php delete mode 100644 vendor/bacon/bacon-qr-code/tests/BaconQrCode/Common/BitMatrixTest.php delete mode 100644 vendor/bacon/bacon-qr-code/tests/BaconQrCode/Common/BitUtilsTest.php delete mode 100644 vendor/bacon/bacon-qr-code/tests/BaconQrCode/Common/ErrorCorrectionLevelTest.php delete mode 100644 vendor/bacon/bacon-qr-code/tests/BaconQrCode/Common/FormatInformationTest.php delete mode 100644 vendor/bacon/bacon-qr-code/tests/BaconQrCode/Common/ModeTest.php delete mode 100644 vendor/bacon/bacon-qr-code/tests/BaconQrCode/Common/ReedSolomonCodecTest.php delete mode 100644 vendor/bacon/bacon-qr-code/tests/BaconQrCode/Common/VersionTest.php delete mode 100644 vendor/bacon/bacon-qr-code/tests/BaconQrCode/Encoder/EncoderTest.php delete mode 100644 vendor/bacon/bacon-qr-code/tests/BaconQrCode/Encoder/MaskUtilTest.php delete mode 100644 vendor/bacon/bacon-qr-code/tests/BaconQrCode/Encoder/MatrixUtilTest.php delete mode 100644 vendor/bacon/bacon-qr-code/tests/BaconQrCode/Renderer/Text/HtmlTest.php delete mode 100644 vendor/bacon/bacon-qr-code/tests/BaconQrCode/Renderer/Text/TextTest.php delete mode 100644 vendor/bacon/bacon-qr-code/tests/bootstrap.php delete mode 100644 vendor/bacon/bacon-qr-code/tests/phpunit.xml delete mode 100644 vendor/barryvdh/laravel-debugbar/LICENSE delete mode 100644 vendor/barryvdh/laravel-debugbar/changelog.md delete mode 100644 vendor/barryvdh/laravel-debugbar/composer.json delete mode 100644 vendor/barryvdh/laravel-debugbar/config/debugbar.php delete mode 100644 vendor/barryvdh/laravel-debugbar/readme.md delete mode 100644 vendor/barryvdh/laravel-debugbar/src/Console/ClearCommand.php delete mode 100644 vendor/barryvdh/laravel-debugbar/src/Controllers/AssetController.php delete mode 100644 vendor/barryvdh/laravel-debugbar/src/Controllers/BaseController.php delete mode 100644 vendor/barryvdh/laravel-debugbar/src/Controllers/CacheController.php delete mode 100644 vendor/barryvdh/laravel-debugbar/src/Controllers/OpenHandlerController.php delete mode 100644 vendor/barryvdh/laravel-debugbar/src/DataCollector/CacheCollector.php delete mode 100644 vendor/barryvdh/laravel-debugbar/src/DataCollector/EventCollector.php delete mode 100644 vendor/barryvdh/laravel-debugbar/src/DataCollector/FilesCollector.php delete mode 100644 vendor/barryvdh/laravel-debugbar/src/DataCollector/GateCollector.php delete mode 100644 vendor/barryvdh/laravel-debugbar/src/DataCollector/LaravelCollector.php delete mode 100644 vendor/barryvdh/laravel-debugbar/src/DataCollector/LogsCollector.php delete mode 100644 vendor/barryvdh/laravel-debugbar/src/DataCollector/MultiAuthCollector.php delete mode 100644 vendor/barryvdh/laravel-debugbar/src/DataCollector/QueryCollector.php delete mode 100644 vendor/barryvdh/laravel-debugbar/src/DataCollector/RequestCollector.php delete mode 100644 vendor/barryvdh/laravel-debugbar/src/DataCollector/RouteCollector.php delete mode 100644 vendor/barryvdh/laravel-debugbar/src/DataCollector/SessionCollector.php delete mode 100644 vendor/barryvdh/laravel-debugbar/src/DataCollector/ViewCollector.php delete mode 100644 vendor/barryvdh/laravel-debugbar/src/DataFormatter/QueryFormatter.php delete mode 100644 vendor/barryvdh/laravel-debugbar/src/DataFormatter/SimpleFormatter.php delete mode 100644 vendor/barryvdh/laravel-debugbar/src/Facade.php delete mode 100644 vendor/barryvdh/laravel-debugbar/src/JavascriptRenderer.php delete mode 100644 vendor/barryvdh/laravel-debugbar/src/LaravelDebugbar.php delete mode 100644 vendor/barryvdh/laravel-debugbar/src/LumenServiceProvider.php delete mode 100644 vendor/barryvdh/laravel-debugbar/src/Middleware/DebugbarEnabled.php delete mode 100644 vendor/barryvdh/laravel-debugbar/src/Middleware/InjectDebugbar.php delete mode 100644 vendor/barryvdh/laravel-debugbar/src/Resources/cache/widget.js delete mode 100644 vendor/barryvdh/laravel-debugbar/src/Resources/laravel-debugbar.css delete mode 100644 vendor/barryvdh/laravel-debugbar/src/Resources/sqlqueries/widget.js delete mode 100644 vendor/barryvdh/laravel-debugbar/src/Resources/vendor/font-awesome/generator_config.txt delete mode 100644 vendor/barryvdh/laravel-debugbar/src/Resources/vendor/font-awesome/style.css delete mode 100644 vendor/barryvdh/laravel-debugbar/src/ServiceProvider.php delete mode 100644 vendor/barryvdh/laravel-debugbar/src/Storage/FilesystemStorage.php delete mode 100644 vendor/barryvdh/laravel-debugbar/src/Support/Clockwork/ClockworkCollector.php delete mode 100644 vendor/barryvdh/laravel-debugbar/src/Support/Clockwork/Converter.php delete mode 100644 vendor/barryvdh/laravel-debugbar/src/SymfonyHttpDriver.php delete mode 100644 vendor/barryvdh/laravel-debugbar/src/Twig/Extension/Debug.php delete mode 100644 vendor/barryvdh/laravel-debugbar/src/Twig/Extension/Dump.php delete mode 100644 vendor/barryvdh/laravel-debugbar/src/Twig/Extension/Stopwatch.php delete mode 100644 vendor/barryvdh/laravel-debugbar/src/Twig/Node/StopwatchNode.php delete mode 100644 vendor/barryvdh/laravel-debugbar/src/Twig/TokenParser/StopwatchTokenParser.php delete mode 100644 vendor/barryvdh/laravel-debugbar/src/helpers.php delete mode 100644 vendor/barryvdh/laravel-debugbar/src/migrations/2014_12_01_120000_create_phpdebugbar_storage_table.php delete mode 120000 vendor/bin/php-parse delete mode 100644 vendor/bin/php-parse.bat delete mode 120000 vendor/bin/phpunit delete mode 100644 vendor/bin/phpunit.bat delete mode 120000 vendor/bin/psysh delete mode 120000 vendor/bin/var-dump-server delete mode 100644 vendor/cocur/slugify/.appveyor.yml delete mode 100644 vendor/cocur/slugify/.editorconfig delete mode 100644 vendor/cocur/slugify/.scrutinizer.yml delete mode 100644 vendor/cocur/slugify/.travis.yml delete mode 100644 vendor/cocur/slugify/CODE_OF_CONDUCT.md delete mode 100644 vendor/cocur/slugify/LICENSE delete mode 100644 vendor/cocur/slugify/README.md delete mode 100644 vendor/cocur/slugify/Resources/rules/arabic.json delete mode 100644 vendor/cocur/slugify/Resources/rules/austrian.json delete mode 100644 vendor/cocur/slugify/Resources/rules/azerbaijani.json delete mode 100644 vendor/cocur/slugify/Resources/rules/bulgarian.json delete mode 100644 vendor/cocur/slugify/Resources/rules/burmese.json delete mode 100644 vendor/cocur/slugify/Resources/rules/chinese.json delete mode 100644 vendor/cocur/slugify/Resources/rules/croatian.json delete mode 100644 vendor/cocur/slugify/Resources/rules/czech.json delete mode 100644 vendor/cocur/slugify/Resources/rules/danish.json delete mode 100644 vendor/cocur/slugify/Resources/rules/default.json delete mode 100644 vendor/cocur/slugify/Resources/rules/esperanto.json delete mode 100644 vendor/cocur/slugify/Resources/rules/estonian.json delete mode 100644 vendor/cocur/slugify/Resources/rules/finnish.json delete mode 100644 vendor/cocur/slugify/Resources/rules/french.json delete mode 100644 vendor/cocur/slugify/Resources/rules/georgian.json delete mode 100644 vendor/cocur/slugify/Resources/rules/german.json delete mode 100644 vendor/cocur/slugify/Resources/rules/greek.json delete mode 100644 vendor/cocur/slugify/Resources/rules/hindi.json delete mode 100644 vendor/cocur/slugify/Resources/rules/hungarian.json delete mode 100644 vendor/cocur/slugify/Resources/rules/italian.json delete mode 100644 vendor/cocur/slugify/Resources/rules/latvian.json delete mode 100644 vendor/cocur/slugify/Resources/rules/lithuanian.json delete mode 100644 vendor/cocur/slugify/Resources/rules/macedonian.json delete mode 100644 vendor/cocur/slugify/Resources/rules/norwegian.json delete mode 100644 vendor/cocur/slugify/Resources/rules/persian.json delete mode 100644 vendor/cocur/slugify/Resources/rules/polish.json delete mode 100644 vendor/cocur/slugify/Resources/rules/portuguese-brazil.json delete mode 100644 vendor/cocur/slugify/Resources/rules/romanian.json delete mode 100644 vendor/cocur/slugify/Resources/rules/russian.json delete mode 100644 vendor/cocur/slugify/Resources/rules/serbian.json delete mode 100644 vendor/cocur/slugify/Resources/rules/swedish.json delete mode 100644 vendor/cocur/slugify/Resources/rules/turkish.json delete mode 100644 vendor/cocur/slugify/Resources/rules/ukrainian.json delete mode 100644 vendor/cocur/slugify/Resources/rules/vietnamese.json delete mode 100644 vendor/cocur/slugify/bin/generate-default.php delete mode 100644 vendor/cocur/slugify/composer.json delete mode 100644 vendor/cocur/slugify/phpunit.xml.dist delete mode 100644 vendor/cocur/slugify/src/Bridge/Laravel/SlugifyFacade.php delete mode 100644 vendor/cocur/slugify/src/Bridge/Laravel/SlugifyServiceProvider.php delete mode 100644 vendor/cocur/slugify/src/Bridge/Latte/SlugifyHelper.php delete mode 100644 vendor/cocur/slugify/src/Bridge/League/SlugifyServiceProvider.php delete mode 100644 vendor/cocur/slugify/src/Bridge/Nette/SlugifyExtension.php delete mode 100644 vendor/cocur/slugify/src/Bridge/Plum/SlugifyConverter.php delete mode 100644 vendor/cocur/slugify/src/Bridge/Silex/SlugifyServiceProvider.php delete mode 100644 vendor/cocur/slugify/src/Bridge/Silex2/SlugifyServiceProvider.php delete mode 100644 vendor/cocur/slugify/src/Bridge/Symfony/CocurSlugifyBundle.php delete mode 100644 vendor/cocur/slugify/src/Bridge/Symfony/CocurSlugifyExtension.php delete mode 100644 vendor/cocur/slugify/src/Bridge/Symfony/Configuration.php delete mode 100644 vendor/cocur/slugify/src/Bridge/Twig/SlugifyExtension.php delete mode 100644 vendor/cocur/slugify/src/Bridge/ZF2/Module.php delete mode 100644 vendor/cocur/slugify/src/Bridge/ZF2/SlugifyService.php delete mode 100644 vendor/cocur/slugify/src/Bridge/ZF2/SlugifyViewHelper.php delete mode 100644 vendor/cocur/slugify/src/Bridge/ZF2/SlugifyViewHelperFactory.php delete mode 100644 vendor/cocur/slugify/src/RuleProvider/DefaultRuleProvider.php delete mode 100644 vendor/cocur/slugify/src/RuleProvider/FileRuleProvider.php delete mode 100644 vendor/cocur/slugify/src/RuleProvider/RuleProviderInterface.php delete mode 100644 vendor/cocur/slugify/src/Slugify.php delete mode 100644 vendor/cocur/slugify/src/SlugifyInterface.php delete mode 100644 vendor/cocur/slugify/tests/Bridge/Laravel/SlugifyProviderTest.php delete mode 100644 vendor/cocur/slugify/tests/Bridge/Latte/SlugifyHelperTest.php delete mode 100644 vendor/cocur/slugify/tests/Bridge/League/SlugifyServiceProviderTest.php delete mode 100644 vendor/cocur/slugify/tests/Bridge/Nette/SlugifyExtensionTest.php delete mode 100644 vendor/cocur/slugify/tests/Bridge/Plum/SlugifyConverterTest.php delete mode 100644 vendor/cocur/slugify/tests/Bridge/Silex/SlugifySilexProviderTest.php delete mode 100644 vendor/cocur/slugify/tests/Bridge/Symfony/CocurSlugifyBundleTest.php delete mode 100644 vendor/cocur/slugify/tests/Bridge/Symfony/CocurSlugifyExtensionTest.php delete mode 100644 vendor/cocur/slugify/tests/Bridge/Symfony/ConfigurationTest.php delete mode 100644 vendor/cocur/slugify/tests/Bridge/Twig/SlugifyExtensionTest.php delete mode 100644 vendor/cocur/slugify/tests/Bridge/ZF2/ModuleTest.php delete mode 100644 vendor/cocur/slugify/tests/Bridge/ZF2/SlugifyServiceTest.php delete mode 100644 vendor/cocur/slugify/tests/Bridge/ZF2/SlugifyViewHelperFactoryTest.php delete mode 100644 vendor/cocur/slugify/tests/Bridge/ZF2/SlugifyViewHelperTest.php delete mode 100644 vendor/cocur/slugify/tests/RuleProvider/FileRuleProviderTest.php delete mode 100644 vendor/cocur/slugify/tests/SlugifyTest.php delete mode 100644 vendor/composer/ClassLoader.php delete mode 100644 vendor/composer/LICENSE delete mode 100644 vendor/composer/autoload_classmap.php delete mode 100644 vendor/composer/autoload_files.php delete mode 100644 vendor/composer/autoload_namespaces.php delete mode 100644 vendor/composer/autoload_psr4.php delete mode 100644 vendor/composer/autoload_real.php delete mode 100644 vendor/composer/autoload_static.php delete mode 100644 vendor/composer/installed.json delete mode 100644 vendor/cviebrock/eloquent-sluggable/.github/ISSUE_TEMPLATE.md delete mode 100644 vendor/cviebrock/eloquent-sluggable/.github/PULL_REQUEST_TEMPLATE.md delete mode 100644 vendor/cviebrock/eloquent-sluggable/.nitpick.json delete mode 100644 vendor/cviebrock/eloquent-sluggable/.semver delete mode 100644 vendor/cviebrock/eloquent-sluggable/.travis.yml delete mode 100644 vendor/cviebrock/eloquent-sluggable/CHANGELOG.md delete mode 100644 vendor/cviebrock/eloquent-sluggable/CONTRIBUTING.md delete mode 100644 vendor/cviebrock/eloquent-sluggable/LICENSE.md delete mode 100644 vendor/cviebrock/eloquent-sluggable/README.md delete mode 100644 vendor/cviebrock/eloquent-sluggable/ROUTE-MODEL-BINDING.md delete mode 100644 vendor/cviebrock/eloquent-sluggable/SCOPE-HELPERS.md delete mode 100644 vendor/cviebrock/eloquent-sluggable/TODO.md delete mode 100644 vendor/cviebrock/eloquent-sluggable/UPGRADING.md delete mode 100644 vendor/cviebrock/eloquent-sluggable/composer.json delete mode 100644 vendor/cviebrock/eloquent-sluggable/phpunit.xml delete mode 100644 vendor/cviebrock/eloquent-sluggable/resources/config/sluggable.php delete mode 100644 vendor/cviebrock/eloquent-sluggable/src/ServiceProvider.php delete mode 100644 vendor/cviebrock/eloquent-sluggable/src/Services/SlugService.php delete mode 100644 vendor/cviebrock/eloquent-sluggable/src/Sluggable.php delete mode 100644 vendor/cviebrock/eloquent-sluggable/src/SluggableObserver.php delete mode 100644 vendor/cviebrock/eloquent-sluggable/src/SluggableScopeHelpers.php delete mode 100644 vendor/cviebrock/eloquent-sluggable/tests/BaseTests.php delete mode 100644 vendor/cviebrock/eloquent-sluggable/tests/EventTests.php delete mode 100644 vendor/cviebrock/eloquent-sluggable/tests/Listeners/AbortSlugging.php delete mode 100644 vendor/cviebrock/eloquent-sluggable/tests/Models/Author.php delete mode 100644 vendor/cviebrock/eloquent-sluggable/tests/Models/Post.php delete mode 100644 vendor/cviebrock/eloquent-sluggable/tests/Models/PostNotSluggable.php delete mode 100644 vendor/cviebrock/eloquent-sluggable/tests/Models/PostShortConfig.php delete mode 100644 vendor/cviebrock/eloquent-sluggable/tests/Models/PostShortConfigWithScopeHelpers.php delete mode 100644 vendor/cviebrock/eloquent-sluggable/tests/Models/PostWithCustomEngine.php delete mode 100644 vendor/cviebrock/eloquent-sluggable/tests/Models/PostWithCustomMethod.php delete mode 100644 vendor/cviebrock/eloquent-sluggable/tests/Models/PostWithCustomSeparator.php delete mode 100644 vendor/cviebrock/eloquent-sluggable/tests/Models/PostWithCustomSource.php delete mode 100644 vendor/cviebrock/eloquent-sluggable/tests/Models/PostWithCustomSuffix.php delete mode 100644 vendor/cviebrock/eloquent-sluggable/tests/Models/PostWithEmptySeparator.php delete mode 100644 vendor/cviebrock/eloquent-sluggable/tests/Models/PostWithForeignRuleset.php delete mode 100644 vendor/cviebrock/eloquent-sluggable/tests/Models/PostWithIncludeTrashed.php delete mode 100644 vendor/cviebrock/eloquent-sluggable/tests/Models/PostWithMaxLength.php delete mode 100644 vendor/cviebrock/eloquent-sluggable/tests/Models/PostWithMaxLengthSplitWords.php delete mode 100644 vendor/cviebrock/eloquent-sluggable/tests/Models/PostWithMultipleSlugs.php delete mode 100644 vendor/cviebrock/eloquent-sluggable/tests/Models/PostWithMultipleSlugsAndCustomSlugKey.php delete mode 100644 vendor/cviebrock/eloquent-sluggable/tests/Models/PostWithMultipleSlugsAndHelperTrait.php delete mode 100644 vendor/cviebrock/eloquent-sluggable/tests/Models/PostWithMultipleSources.php delete mode 100644 vendor/cviebrock/eloquent-sluggable/tests/Models/PostWithNoSource.php delete mode 100644 vendor/cviebrock/eloquent-sluggable/tests/Models/PostWithOnUpdate.php delete mode 100644 vendor/cviebrock/eloquent-sluggable/tests/Models/PostWithRelation.php delete mode 100644 vendor/cviebrock/eloquent-sluggable/tests/Models/PostWithReservedSlug.php delete mode 100644 vendor/cviebrock/eloquent-sluggable/tests/Models/PostWithSoftDeleting.php delete mode 100644 vendor/cviebrock/eloquent-sluggable/tests/Models/PostWithSoftDeletingIncludeTrashed.php delete mode 100644 vendor/cviebrock/eloquent-sluggable/tests/Models/PostWithUniqueSlugConstraints.php delete mode 100644 vendor/cviebrock/eloquent-sluggable/tests/OnUpdateTests.php delete mode 100644 vendor/cviebrock/eloquent-sluggable/tests/ScopeHelperTests.php delete mode 100644 vendor/cviebrock/eloquent-sluggable/tests/SoftDeleteTests.php delete mode 100644 vendor/cviebrock/eloquent-sluggable/tests/StaticTests.php delete mode 100644 vendor/cviebrock/eloquent-sluggable/tests/TestCase.php delete mode 100644 vendor/cviebrock/eloquent-sluggable/tests/TestServiceProvider.php delete mode 100644 vendor/cviebrock/eloquent-sluggable/tests/UniqueTests.php delete mode 100644 vendor/cviebrock/eloquent-sluggable/tests/database/migrations/2013_11_04_163552_posts.php delete mode 100644 vendor/cviebrock/eloquent-sluggable/tests/database/migrations/2015_08_17_185144_authors.php delete mode 100644 vendor/dnoegel/php-xdg-base-dir/LICENSE delete mode 100644 vendor/dnoegel/php-xdg-base-dir/README.md delete mode 100644 vendor/dnoegel/php-xdg-base-dir/composer.json delete mode 100644 vendor/dnoegel/php-xdg-base-dir/phpunit.xml.dist delete mode 100644 vendor/dnoegel/php-xdg-base-dir/src/Xdg.php delete mode 100644 vendor/dnoegel/php-xdg-base-dir/tests/XdgTest.php delete mode 100644 vendor/doctrine/inflector/LICENSE delete mode 100644 vendor/doctrine/inflector/README.md delete mode 100644 vendor/doctrine/inflector/composer.json delete mode 100644 vendor/doctrine/inflector/lib/Doctrine/Common/Inflector/Inflector.php delete mode 100644 vendor/doctrine/instantiator/CONTRIBUTING.md delete mode 100644 vendor/doctrine/instantiator/LICENSE delete mode 100644 vendor/doctrine/instantiator/README.md delete mode 100644 vendor/doctrine/instantiator/composer.json delete mode 100644 vendor/doctrine/instantiator/src/Doctrine/Instantiator/Exception/ExceptionInterface.php delete mode 100644 vendor/doctrine/instantiator/src/Doctrine/Instantiator/Exception/InvalidArgumentException.php delete mode 100644 vendor/doctrine/instantiator/src/Doctrine/Instantiator/Exception/UnexpectedValueException.php delete mode 100644 vendor/doctrine/instantiator/src/Doctrine/Instantiator/Instantiator.php delete mode 100644 vendor/doctrine/instantiator/src/Doctrine/Instantiator/InstantiatorInterface.php delete mode 100644 vendor/doctrine/lexer/LICENSE delete mode 100644 vendor/doctrine/lexer/README.md delete mode 100644 vendor/doctrine/lexer/composer.json delete mode 100644 vendor/doctrine/lexer/lib/Doctrine/Common/Lexer/AbstractLexer.php delete mode 100644 vendor/dragonmantank/cron-expression/.editorconfig delete mode 100644 vendor/dragonmantank/cron-expression/CHANGELOG.md delete mode 100644 vendor/dragonmantank/cron-expression/LICENSE delete mode 100644 vendor/dragonmantank/cron-expression/README.md delete mode 100644 vendor/dragonmantank/cron-expression/composer.json delete mode 100644 vendor/dragonmantank/cron-expression/src/Cron/AbstractField.php delete mode 100644 vendor/dragonmantank/cron-expression/src/Cron/CronExpression.php delete mode 100644 vendor/dragonmantank/cron-expression/src/Cron/DayOfMonthField.php delete mode 100644 vendor/dragonmantank/cron-expression/src/Cron/DayOfWeekField.php delete mode 100644 vendor/dragonmantank/cron-expression/src/Cron/FieldFactory.php delete mode 100644 vendor/dragonmantank/cron-expression/src/Cron/FieldInterface.php delete mode 100644 vendor/dragonmantank/cron-expression/src/Cron/HoursField.php delete mode 100644 vendor/dragonmantank/cron-expression/src/Cron/MinutesField.php delete mode 100644 vendor/dragonmantank/cron-expression/src/Cron/MonthField.php delete mode 100644 vendor/dragonmantank/cron-expression/tests/Cron/AbstractFieldTest.php delete mode 100644 vendor/dragonmantank/cron-expression/tests/Cron/CronExpressionTest.php delete mode 100644 vendor/dragonmantank/cron-expression/tests/Cron/DayOfMonthFieldTest.php delete mode 100644 vendor/dragonmantank/cron-expression/tests/Cron/DayOfWeekFieldTest.php delete mode 100644 vendor/dragonmantank/cron-expression/tests/Cron/FieldFactoryTest.php delete mode 100644 vendor/dragonmantank/cron-expression/tests/Cron/HoursFieldTest.php delete mode 100644 vendor/dragonmantank/cron-expression/tests/Cron/MinutesFieldTest.php delete mode 100644 vendor/dragonmantank/cron-expression/tests/Cron/MonthFieldTest.php delete mode 100644 vendor/egulias/email-validator/EmailValidator/EmailLexer.php delete mode 100644 vendor/egulias/email-validator/EmailValidator/EmailParser.php delete mode 100644 vendor/egulias/email-validator/EmailValidator/EmailValidator.php delete mode 100644 vendor/egulias/email-validator/EmailValidator/Exception/AtextAfterCFWS.php delete mode 100644 vendor/egulias/email-validator/EmailValidator/Exception/CRLFAtTheEnd.php delete mode 100644 vendor/egulias/email-validator/EmailValidator/Exception/CRLFX2.php delete mode 100644 vendor/egulias/email-validator/EmailValidator/Exception/CRNoLF.php delete mode 100644 vendor/egulias/email-validator/EmailValidator/Exception/CharNotAllowed.php delete mode 100644 vendor/egulias/email-validator/EmailValidator/Exception/CommaInDomain.php delete mode 100644 vendor/egulias/email-validator/EmailValidator/Exception/ConsecutiveAt.php delete mode 100644 vendor/egulias/email-validator/EmailValidator/Exception/ConsecutiveDot.php delete mode 100644 vendor/egulias/email-validator/EmailValidator/Exception/DomainHyphened.php delete mode 100644 vendor/egulias/email-validator/EmailValidator/Exception/DotAtEnd.php delete mode 100644 vendor/egulias/email-validator/EmailValidator/Exception/DotAtStart.php delete mode 100644 vendor/egulias/email-validator/EmailValidator/Exception/ExpectingAT.php delete mode 100644 vendor/egulias/email-validator/EmailValidator/Exception/ExpectingATEXT.php delete mode 100644 vendor/egulias/email-validator/EmailValidator/Exception/ExpectingCTEXT.php delete mode 100644 vendor/egulias/email-validator/EmailValidator/Exception/ExpectingDTEXT.php delete mode 100644 vendor/egulias/email-validator/EmailValidator/Exception/ExpectingDomainLiteralClose.php delete mode 100644 vendor/egulias/email-validator/EmailValidator/Exception/ExpectingQPair.php delete mode 100644 vendor/egulias/email-validator/EmailValidator/Exception/InvalidEmail.php delete mode 100644 vendor/egulias/email-validator/EmailValidator/Exception/NoDNSRecord.php delete mode 100644 vendor/egulias/email-validator/EmailValidator/Exception/NoDomainPart.php delete mode 100644 vendor/egulias/email-validator/EmailValidator/Exception/NoLocalPart.php delete mode 100644 vendor/egulias/email-validator/EmailValidator/Exception/UnclosedComment.php delete mode 100644 vendor/egulias/email-validator/EmailValidator/Exception/UnclosedQuotedString.php delete mode 100644 vendor/egulias/email-validator/EmailValidator/Exception/UnopenedComment.php delete mode 100644 vendor/egulias/email-validator/EmailValidator/Parser/DomainPart.php delete mode 100644 vendor/egulias/email-validator/EmailValidator/Parser/LocalPart.php delete mode 100644 vendor/egulias/email-validator/EmailValidator/Parser/Parser.php delete mode 100644 vendor/egulias/email-validator/EmailValidator/Validation/DNSCheckValidation.php delete mode 100644 vendor/egulias/email-validator/EmailValidator/Validation/EmailValidation.php delete mode 100644 vendor/egulias/email-validator/EmailValidator/Validation/Error/RFCWarnings.php delete mode 100644 vendor/egulias/email-validator/EmailValidator/Validation/Error/SpoofEmail.php delete mode 100644 vendor/egulias/email-validator/EmailValidator/Validation/Exception/EmptyValidationList.php delete mode 100644 vendor/egulias/email-validator/EmailValidator/Validation/MultipleErrors.php delete mode 100644 vendor/egulias/email-validator/EmailValidator/Validation/MultipleValidationWithAnd.php delete mode 100644 vendor/egulias/email-validator/EmailValidator/Validation/NoRFCWarningsValidation.php delete mode 100644 vendor/egulias/email-validator/EmailValidator/Validation/RFCValidation.php delete mode 100644 vendor/egulias/email-validator/EmailValidator/Validation/SpoofCheckValidation.php delete mode 100644 vendor/egulias/email-validator/EmailValidator/Warning/AddressLiteral.php delete mode 100644 vendor/egulias/email-validator/EmailValidator/Warning/CFWSNearAt.php delete mode 100644 vendor/egulias/email-validator/EmailValidator/Warning/CFWSWithFWS.php delete mode 100644 vendor/egulias/email-validator/EmailValidator/Warning/Comment.php delete mode 100644 vendor/egulias/email-validator/EmailValidator/Warning/DeprecatedComment.php delete mode 100644 vendor/egulias/email-validator/EmailValidator/Warning/DomainLiteral.php delete mode 100644 vendor/egulias/email-validator/EmailValidator/Warning/DomainTooLong.php delete mode 100644 vendor/egulias/email-validator/EmailValidator/Warning/EmailTooLong.php delete mode 100644 vendor/egulias/email-validator/EmailValidator/Warning/IPV6BadChar.php delete mode 100644 vendor/egulias/email-validator/EmailValidator/Warning/IPV6ColonEnd.php delete mode 100644 vendor/egulias/email-validator/EmailValidator/Warning/IPV6ColonStart.php delete mode 100644 vendor/egulias/email-validator/EmailValidator/Warning/IPV6Deprecated.php delete mode 100644 vendor/egulias/email-validator/EmailValidator/Warning/IPV6DoubleColon.php delete mode 100644 vendor/egulias/email-validator/EmailValidator/Warning/IPV6GroupCount.php delete mode 100644 vendor/egulias/email-validator/EmailValidator/Warning/IPV6MaxGroups.php delete mode 100644 vendor/egulias/email-validator/EmailValidator/Warning/LabelTooLong.php delete mode 100644 vendor/egulias/email-validator/EmailValidator/Warning/LocalTooLong.php delete mode 100644 vendor/egulias/email-validator/EmailValidator/Warning/NoDNSMXRecord.php delete mode 100644 vendor/egulias/email-validator/EmailValidator/Warning/ObsoleteDTEXT.php delete mode 100644 vendor/egulias/email-validator/EmailValidator/Warning/QuotedPart.php delete mode 100644 vendor/egulias/email-validator/EmailValidator/Warning/QuotedString.php delete mode 100644 vendor/egulias/email-validator/EmailValidator/Warning/TLD.php delete mode 100644 vendor/egulias/email-validator/EmailValidator/Warning/Warning.php delete mode 100644 vendor/egulias/email-validator/LICENSE delete mode 100644 vendor/egulias/email-validator/README.md delete mode 100644 vendor/egulias/email-validator/composer.json delete mode 100644 vendor/egulias/email-validator/phpunit.xml.dist delete mode 100644 vendor/erusev/parsedown/LICENSE.txt delete mode 100644 vendor/erusev/parsedown/Parsedown.php delete mode 100644 vendor/erusev/parsedown/README.md delete mode 100644 vendor/erusev/parsedown/composer.json delete mode 100644 vendor/facebook/graph-sdk/CODE_OF_CONDUCT.md delete mode 100644 vendor/facebook/graph-sdk/LICENSE delete mode 100644 vendor/facebook/graph-sdk/composer.json delete mode 100644 vendor/facebook/graph-sdk/phpcs.xml.dist delete mode 100644 vendor/facebook/graph-sdk/src/Facebook/Authentication/AccessToken.php delete mode 100644 vendor/facebook/graph-sdk/src/Facebook/Authentication/AccessTokenMetadata.php delete mode 100644 vendor/facebook/graph-sdk/src/Facebook/Authentication/OAuth2Client.php delete mode 100644 vendor/facebook/graph-sdk/src/Facebook/Exceptions/FacebookAuthenticationException.php delete mode 100644 vendor/facebook/graph-sdk/src/Facebook/Exceptions/FacebookAuthorizationException.php delete mode 100644 vendor/facebook/graph-sdk/src/Facebook/Exceptions/FacebookClientException.php delete mode 100644 vendor/facebook/graph-sdk/src/Facebook/Exceptions/FacebookOtherException.php delete mode 100644 vendor/facebook/graph-sdk/src/Facebook/Exceptions/FacebookResponseException.php delete mode 100644 vendor/facebook/graph-sdk/src/Facebook/Exceptions/FacebookResumableUploadException.php delete mode 100644 vendor/facebook/graph-sdk/src/Facebook/Exceptions/FacebookSDKException.php delete mode 100644 vendor/facebook/graph-sdk/src/Facebook/Exceptions/FacebookServerException.php delete mode 100644 vendor/facebook/graph-sdk/src/Facebook/Exceptions/FacebookThrottleException.php delete mode 100644 vendor/facebook/graph-sdk/src/Facebook/Facebook.php delete mode 100644 vendor/facebook/graph-sdk/src/Facebook/FacebookApp.php delete mode 100644 vendor/facebook/graph-sdk/src/Facebook/FacebookBatchRequest.php delete mode 100644 vendor/facebook/graph-sdk/src/Facebook/FacebookBatchResponse.php delete mode 100644 vendor/facebook/graph-sdk/src/Facebook/FacebookClient.php delete mode 100644 vendor/facebook/graph-sdk/src/Facebook/FacebookRequest.php delete mode 100644 vendor/facebook/graph-sdk/src/Facebook/FacebookResponse.php delete mode 100644 vendor/facebook/graph-sdk/src/Facebook/FileUpload/FacebookFile.php delete mode 100644 vendor/facebook/graph-sdk/src/Facebook/FileUpload/FacebookResumableUploader.php delete mode 100644 vendor/facebook/graph-sdk/src/Facebook/FileUpload/FacebookTransferChunk.php delete mode 100644 vendor/facebook/graph-sdk/src/Facebook/FileUpload/FacebookVideo.php delete mode 100644 vendor/facebook/graph-sdk/src/Facebook/FileUpload/Mimetypes.php delete mode 100644 vendor/facebook/graph-sdk/src/Facebook/GraphNodes/Birthday.php delete mode 100644 vendor/facebook/graph-sdk/src/Facebook/GraphNodes/Collection.php delete mode 100644 vendor/facebook/graph-sdk/src/Facebook/GraphNodes/GraphAchievement.php delete mode 100644 vendor/facebook/graph-sdk/src/Facebook/GraphNodes/GraphAlbum.php delete mode 100644 vendor/facebook/graph-sdk/src/Facebook/GraphNodes/GraphApplication.php delete mode 100644 vendor/facebook/graph-sdk/src/Facebook/GraphNodes/GraphCoverPhoto.php delete mode 100644 vendor/facebook/graph-sdk/src/Facebook/GraphNodes/GraphEdge.php delete mode 100644 vendor/facebook/graph-sdk/src/Facebook/GraphNodes/GraphEvent.php delete mode 100644 vendor/facebook/graph-sdk/src/Facebook/GraphNodes/GraphGroup.php delete mode 100644 vendor/facebook/graph-sdk/src/Facebook/GraphNodes/GraphList.php delete mode 100644 vendor/facebook/graph-sdk/src/Facebook/GraphNodes/GraphLocation.php delete mode 100644 vendor/facebook/graph-sdk/src/Facebook/GraphNodes/GraphNode.php delete mode 100644 vendor/facebook/graph-sdk/src/Facebook/GraphNodes/GraphNodeFactory.php delete mode 100644 vendor/facebook/graph-sdk/src/Facebook/GraphNodes/GraphObject.php delete mode 100644 vendor/facebook/graph-sdk/src/Facebook/GraphNodes/GraphObjectFactory.php delete mode 100644 vendor/facebook/graph-sdk/src/Facebook/GraphNodes/GraphPage.php delete mode 100644 vendor/facebook/graph-sdk/src/Facebook/GraphNodes/GraphPicture.php delete mode 100644 vendor/facebook/graph-sdk/src/Facebook/GraphNodes/GraphSessionInfo.php delete mode 100644 vendor/facebook/graph-sdk/src/Facebook/GraphNodes/GraphUser.php delete mode 100644 vendor/facebook/graph-sdk/src/Facebook/Helpers/FacebookCanvasHelper.php delete mode 100644 vendor/facebook/graph-sdk/src/Facebook/Helpers/FacebookJavaScriptHelper.php delete mode 100644 vendor/facebook/graph-sdk/src/Facebook/Helpers/FacebookPageTabHelper.php delete mode 100644 vendor/facebook/graph-sdk/src/Facebook/Helpers/FacebookRedirectLoginHelper.php delete mode 100644 vendor/facebook/graph-sdk/src/Facebook/Helpers/FacebookSignedRequestFromInputHelper.php delete mode 100644 vendor/facebook/graph-sdk/src/Facebook/Http/GraphRawResponse.php delete mode 100644 vendor/facebook/graph-sdk/src/Facebook/Http/RequestBodyInterface.php delete mode 100644 vendor/facebook/graph-sdk/src/Facebook/Http/RequestBodyMultipart.php delete mode 100644 vendor/facebook/graph-sdk/src/Facebook/Http/RequestBodyUrlEncoded.php delete mode 100644 vendor/facebook/graph-sdk/src/Facebook/HttpClients/FacebookCurl.php delete mode 100644 vendor/facebook/graph-sdk/src/Facebook/HttpClients/FacebookCurlHttpClient.php delete mode 100644 vendor/facebook/graph-sdk/src/Facebook/HttpClients/FacebookGuzzleHttpClient.php delete mode 100644 vendor/facebook/graph-sdk/src/Facebook/HttpClients/FacebookHttpClientInterface.php delete mode 100644 vendor/facebook/graph-sdk/src/Facebook/HttpClients/FacebookStream.php delete mode 100644 vendor/facebook/graph-sdk/src/Facebook/HttpClients/FacebookStreamHttpClient.php delete mode 100644 vendor/facebook/graph-sdk/src/Facebook/HttpClients/HttpClientsFactory.php delete mode 100644 vendor/facebook/graph-sdk/src/Facebook/HttpClients/certs/DigiCertHighAssuranceEVRootCA.pem delete mode 100644 vendor/facebook/graph-sdk/src/Facebook/PersistentData/FacebookMemoryPersistentDataHandler.php delete mode 100644 vendor/facebook/graph-sdk/src/Facebook/PersistentData/FacebookSessionPersistentDataHandler.php delete mode 100644 vendor/facebook/graph-sdk/src/Facebook/PersistentData/PersistentDataFactory.php delete mode 100644 vendor/facebook/graph-sdk/src/Facebook/PersistentData/PersistentDataInterface.php delete mode 100644 vendor/facebook/graph-sdk/src/Facebook/PseudoRandomString/McryptPseudoRandomStringGenerator.php delete mode 100644 vendor/facebook/graph-sdk/src/Facebook/PseudoRandomString/OpenSslPseudoRandomStringGenerator.php delete mode 100644 vendor/facebook/graph-sdk/src/Facebook/PseudoRandomString/PseudoRandomStringGeneratorFactory.php delete mode 100644 vendor/facebook/graph-sdk/src/Facebook/PseudoRandomString/PseudoRandomStringGeneratorInterface.php delete mode 100644 vendor/facebook/graph-sdk/src/Facebook/PseudoRandomString/PseudoRandomStringGeneratorTrait.php delete mode 100644 vendor/facebook/graph-sdk/src/Facebook/PseudoRandomString/RandomBytesPseudoRandomStringGenerator.php delete mode 100644 vendor/facebook/graph-sdk/src/Facebook/PseudoRandomString/UrandomPseudoRandomStringGenerator.php delete mode 100644 vendor/facebook/graph-sdk/src/Facebook/SignedRequest.php delete mode 100644 vendor/facebook/graph-sdk/src/Facebook/Url/FacebookUrlDetectionHandler.php delete mode 100644 vendor/facebook/graph-sdk/src/Facebook/Url/FacebookUrlManipulator.php delete mode 100644 vendor/facebook/graph-sdk/src/Facebook/Url/UrlDetectionInterface.php delete mode 100644 vendor/facebook/graph-sdk/src/Facebook/autoload.php delete mode 100644 vendor/facebook/graph-sdk/src/Facebook/polyfills.php delete mode 100644 vendor/fideloper/proxy/LICENSE.md delete mode 100755 vendor/fideloper/proxy/composer.json delete mode 100644 vendor/fideloper/proxy/config/trustedproxy.php delete mode 100644 vendor/fideloper/proxy/src/TrustProxies.php delete mode 100644 vendor/fideloper/proxy/src/TrustedProxyServiceProvider.php delete mode 100644 vendor/filp/whoops/CHANGELOG.md delete mode 100644 vendor/filp/whoops/LICENSE.md delete mode 100644 vendor/filp/whoops/composer.json delete mode 100644 vendor/filp/whoops/src/Whoops/Exception/ErrorException.php delete mode 100644 vendor/filp/whoops/src/Whoops/Exception/Formatter.php delete mode 100644 vendor/filp/whoops/src/Whoops/Exception/Frame.php delete mode 100644 vendor/filp/whoops/src/Whoops/Exception/FrameCollection.php delete mode 100644 vendor/filp/whoops/src/Whoops/Exception/Inspector.php delete mode 100644 vendor/filp/whoops/src/Whoops/Handler/CallbackHandler.php delete mode 100644 vendor/filp/whoops/src/Whoops/Handler/Handler.php delete mode 100644 vendor/filp/whoops/src/Whoops/Handler/HandlerInterface.php delete mode 100644 vendor/filp/whoops/src/Whoops/Handler/JsonResponseHandler.php delete mode 100644 vendor/filp/whoops/src/Whoops/Handler/PlainTextHandler.php delete mode 100644 vendor/filp/whoops/src/Whoops/Handler/PrettyPageHandler.php delete mode 100644 vendor/filp/whoops/src/Whoops/Handler/XmlResponseHandler.php delete mode 100644 vendor/filp/whoops/src/Whoops/Resources/css/whoops.base.css delete mode 100644 vendor/filp/whoops/src/Whoops/Resources/js/clipboard.min.js delete mode 100644 vendor/filp/whoops/src/Whoops/Resources/js/prettify.min.js delete mode 100644 vendor/filp/whoops/src/Whoops/Resources/js/whoops.base.js delete mode 100644 vendor/filp/whoops/src/Whoops/Resources/js/zepto.min.js delete mode 100644 vendor/filp/whoops/src/Whoops/Resources/views/env_details.html.php delete mode 100644 vendor/filp/whoops/src/Whoops/Resources/views/frame_code.html.php delete mode 100644 vendor/filp/whoops/src/Whoops/Resources/views/frame_list.html.php delete mode 100644 vendor/filp/whoops/src/Whoops/Resources/views/frames_container.html.php delete mode 100644 vendor/filp/whoops/src/Whoops/Resources/views/frames_description.html.php delete mode 100644 vendor/filp/whoops/src/Whoops/Resources/views/header.html.php delete mode 100644 vendor/filp/whoops/src/Whoops/Resources/views/header_outer.html.php delete mode 100644 vendor/filp/whoops/src/Whoops/Resources/views/layout.html.php delete mode 100644 vendor/filp/whoops/src/Whoops/Resources/views/panel_details.html.php delete mode 100644 vendor/filp/whoops/src/Whoops/Resources/views/panel_details_outer.html.php delete mode 100644 vendor/filp/whoops/src/Whoops/Resources/views/panel_left.html.php delete mode 100644 vendor/filp/whoops/src/Whoops/Resources/views/panel_left_outer.html.php delete mode 100644 vendor/filp/whoops/src/Whoops/Run.php delete mode 100644 vendor/filp/whoops/src/Whoops/RunInterface.php delete mode 100644 vendor/filp/whoops/src/Whoops/Util/HtmlDumperOutput.php delete mode 100644 vendor/filp/whoops/src/Whoops/Util/Misc.php delete mode 100644 vendor/filp/whoops/src/Whoops/Util/SystemFacade.php delete mode 100644 vendor/filp/whoops/src/Whoops/Util/TemplateHelper.php delete mode 100644 vendor/fzaninotto/faker/.travis.yml delete mode 100644 vendor/fzaninotto/faker/CHANGELOG.md delete mode 100644 vendor/fzaninotto/faker/CONTRIBUTING.md delete mode 100644 vendor/fzaninotto/faker/LICENSE delete mode 100644 vendor/fzaninotto/faker/Makefile delete mode 100644 vendor/fzaninotto/faker/composer.json delete mode 100644 vendor/fzaninotto/faker/phpunit.xml.dist delete mode 100644 vendor/fzaninotto/faker/readme.md delete mode 100644 vendor/fzaninotto/faker/src/Faker/Calculator/Iban.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Calculator/Inn.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Calculator/Luhn.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Calculator/TCNo.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/DefaultGenerator.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Documentor.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Factory.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Generator.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Guesser/Name.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/ORM/CakePHP/ColumnTypeGuesser.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/ORM/CakePHP/EntityPopulator.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/ORM/CakePHP/Populator.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/ORM/Doctrine/ColumnTypeGuesser.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/ORM/Doctrine/EntityPopulator.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/ORM/Doctrine/Populator.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/ORM/Mandango/ColumnTypeGuesser.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/ORM/Mandango/EntityPopulator.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/ORM/Mandango/Populator.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/ORM/Propel/ColumnTypeGuesser.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/ORM/Propel/EntityPopulator.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/ORM/Propel/Populator.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/ORM/Propel2/ColumnTypeGuesser.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/ORM/Propel2/EntityPopulator.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/ORM/Propel2/Populator.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/ORM/Spot/ColumnTypeGuesser.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/ORM/Spot/EntityPopulator.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/ORM/Spot/Populator.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/Address.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/Barcode.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/Base.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/Biased.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/Color.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/Company.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/DateTime.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/File.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/HtmlLorem.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/Image.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/Internet.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/Lorem.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/Miscellaneous.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/Payment.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/Person.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/PhoneNumber.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/Text.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/UserAgent.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/Uuid.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/ar_JO/Address.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/ar_JO/Company.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/ar_JO/Internet.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/ar_JO/Person.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/ar_JO/Text.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/ar_SA/Address.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/ar_SA/Color.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/ar_SA/Company.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/ar_SA/Internet.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/ar_SA/Payment.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/ar_SA/Person.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/ar_SA/Text.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/at_AT/Payment.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/bg_BG/Internet.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/bg_BG/Payment.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/bg_BG/Person.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/bg_BG/PhoneNumber.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/bn_BD/Address.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/bn_BD/Company.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/bn_BD/Person.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/bn_BD/PhoneNumber.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/bn_BD/Utils.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/cs_CZ/Address.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/cs_CZ/Company.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/cs_CZ/DateTime.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/cs_CZ/Internet.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/cs_CZ/Payment.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/cs_CZ/Person.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/cs_CZ/PhoneNumber.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/cs_CZ/Text.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/da_DK/Address.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/da_DK/Company.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/da_DK/Internet.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/da_DK/Payment.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/da_DK/Person.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/da_DK/PhoneNumber.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/de_AT/Address.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/de_AT/Company.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/de_AT/Internet.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/de_AT/Payment.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/de_AT/Person.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/de_AT/PhoneNumber.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/de_AT/Text.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/de_CH/Address.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/de_CH/Company.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/de_CH/Internet.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/de_CH/Payment.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/de_CH/Person.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/de_CH/PhoneNumber.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/de_CH/Text.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/de_DE/Address.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/de_DE/Company.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/de_DE/Internet.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/de_DE/Payment.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/de_DE/Person.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/de_DE/PhoneNumber.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/de_DE/Text.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/el_CY/Address.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/el_CY/Company.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/el_CY/Internet.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/el_CY/Payment.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/el_CY/Person.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/el_CY/PhoneNumber.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/el_GR/Address.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/el_GR/Company.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/el_GR/Payment.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/el_GR/Person.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/el_GR/PhoneNumber.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/el_GR/Text.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/en_AU/Address.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/en_AU/Internet.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/en_AU/PhoneNumber.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/en_CA/Address.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/en_CA/PhoneNumber.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/en_GB/Address.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/en_GB/Internet.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/en_GB/Payment.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/en_GB/Person.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/en_GB/PhoneNumber.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/en_HK/Address.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/en_HK/Internet.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/en_HK/PhoneNumber.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/en_IN/Address.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/en_IN/Internet.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/en_IN/Person.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/en_IN/PhoneNumber.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/en_NG/Address.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/en_NG/Internet.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/en_NG/Person.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/en_NG/PhoneNumber.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/en_NZ/Address.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/en_NZ/Internet.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/en_NZ/PhoneNumber.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/en_PH/Address.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/en_PH/PhoneNumber.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/en_SG/Address.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/en_SG/PhoneNumber.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/en_UG/Address.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/en_UG/Internet.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/en_UG/Person.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/en_UG/PhoneNumber.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/en_US/Address.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/en_US/Company.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/en_US/Payment.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/en_US/Person.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/en_US/PhoneNumber.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/en_US/Text.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/en_ZA/Address.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/en_ZA/Company.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/en_ZA/Internet.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/en_ZA/Person.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/en_ZA/PhoneNumber.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/es_AR/Address.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/es_AR/Company.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/es_AR/Person.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/es_AR/PhoneNumber.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/es_ES/Address.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/es_ES/Company.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/es_ES/Internet.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/es_ES/Payment.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/es_ES/Person.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/es_ES/PhoneNumber.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/es_ES/Text.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/es_PE/Address.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/es_PE/Company.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/es_PE/Person.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/es_PE/PhoneNumber.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/es_VE/Address.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/es_VE/Company.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/es_VE/Internet.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/es_VE/Person.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/es_VE/PhoneNumber.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/fa_IR/Address.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/fa_IR/Company.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/fa_IR/Internet.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/fa_IR/Person.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/fa_IR/PhoneNumber.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/fa_IR/Text.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/fi_FI/Address.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/fi_FI/Company.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/fi_FI/Internet.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/fi_FI/Payment.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/fi_FI/Person.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/fi_FI/PhoneNumber.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/fr_BE/Address.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/fr_BE/Company.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/fr_BE/Internet.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/fr_BE/Payment.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/fr_BE/Person.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/fr_BE/PhoneNumber.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/fr_CA/Address.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/fr_CA/Company.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/fr_CA/Person.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/fr_CH/Address.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/fr_CH/Company.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/fr_CH/Internet.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/fr_CH/Payment.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/fr_CH/Person.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/fr_CH/PhoneNumber.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/fr_CH/Text.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/fr_FR/Address.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/fr_FR/Company.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/fr_FR/Internet.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/fr_FR/Payment.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/fr_FR/Person.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/fr_FR/PhoneNumber.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/fr_FR/Text.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/he_IL/Address.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/he_IL/Company.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/he_IL/Payment.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/he_IL/Person.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/he_IL/PhoneNumber.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/hr_HR/Address.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/hr_HR/Company.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/hr_HR/Payment.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/hr_HR/Person.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/hr_HR/PhoneNumber.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/hu_HU/Address.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/hu_HU/Company.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/hu_HU/Payment.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/hu_HU/Person.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/hu_HU/PhoneNumber.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/hu_HU/Text.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/hy_AM/Address.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/hy_AM/Color.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/hy_AM/Company.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/hy_AM/Internet.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/hy_AM/Person.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/hy_AM/PhoneNumber.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/id_ID/Address.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/id_ID/Company.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/id_ID/Internet.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/id_ID/Person.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/id_ID/PhoneNumber.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/is_IS/Address.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/is_IS/Company.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/is_IS/Internet.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/is_IS/Payment.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/is_IS/Person.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/is_IS/PhoneNumber.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/it_CH/Address.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/it_CH/Company.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/it_CH/Internet.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/it_CH/Payment.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/it_CH/Person.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/it_CH/PhoneNumber.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/it_CH/Text.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/it_IT/Address.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/it_IT/Company.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/it_IT/Internet.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/it_IT/Payment.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/it_IT/Person.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/it_IT/PhoneNumber.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/it_IT/Text.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/ja_JP/Address.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/ja_JP/Company.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/ja_JP/Internet.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/ja_JP/Person.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/ja_JP/PhoneNumber.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/ja_JP/Text.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/ka_GE/Address.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/ka_GE/Color.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/ka_GE/Company.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/ka_GE/DateTime.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/ka_GE/Internet.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/ka_GE/Payment.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/ka_GE/Person.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/ka_GE/PhoneNumber.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/ka_GE/Text.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/kk_KZ/Address.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/kk_KZ/Color.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/kk_KZ/Company.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/kk_KZ/Internet.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/kk_KZ/Payment.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/kk_KZ/Person.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/kk_KZ/PhoneNumber.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/kk_KZ/Text.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/ko_KR/Address.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/ko_KR/Company.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/ko_KR/Internet.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/ko_KR/Person.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/ko_KR/PhoneNumber.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/ko_KR/Text.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/lt_LT/Address.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/lt_LT/Company.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/lt_LT/Internet.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/lt_LT/Payment.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/lt_LT/Person.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/lt_LT/PhoneNumber.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/lv_LV/Address.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/lv_LV/Color.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/lv_LV/Internet.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/lv_LV/Payment.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/lv_LV/Person.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/lv_LV/PhoneNumber.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/me_ME/Address.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/me_ME/Company.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/me_ME/Payment.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/me_ME/Person.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/me_ME/PhoneNumber.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/mn_MN/Person.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/mn_MN/PhoneNumber.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/ms_MY/Address.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/ms_MY/Company.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/ms_MY/Miscellaneous.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/ms_MY/Payment.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/ms_MY/Person.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/ms_MY/PhoneNumber.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/nb_NO/Address.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/nb_NO/Company.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/nb_NO/Payment.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/nb_NO/Person.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/nb_NO/PhoneNumber.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/ne_NP/Address.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/ne_NP/Internet.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/ne_NP/Person.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/ne_NP/PhoneNumber.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/nl_BE/Address.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/nl_BE/Company.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/nl_BE/Internet.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/nl_BE/Payment.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/nl_BE/Person.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/nl_BE/PhoneNumber.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/nl_BE/Text.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/nl_NL/Address.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/nl_NL/Color.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/nl_NL/Company.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/nl_NL/Internet.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/nl_NL/Payment.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/nl_NL/Person.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/nl_NL/PhoneNumber.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/nl_NL/Text.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/pl_PL/Address.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/pl_PL/Company.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/pl_PL/Internet.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/pl_PL/Payment.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/pl_PL/Person.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/pl_PL/PhoneNumber.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/pl_PL/Text.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/pt_BR/Address.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/pt_BR/Company.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/pt_BR/Internet.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/pt_BR/Payment.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/pt_BR/Person.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/pt_BR/PhoneNumber.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/pt_BR/check_digit.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/pt_PT/Address.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/pt_PT/Payment.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/pt_PT/Person.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/pt_PT/PhoneNumber.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/ro_MD/Address.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/ro_MD/Payment.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/ro_MD/Person.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/ro_MD/PhoneNumber.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/ro_MD/Text.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/ro_RO/Address.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/ro_RO/Payment.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/ro_RO/Person.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/ro_RO/PhoneNumber.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/ro_RO/Text.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/ru_RU/Address.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/ru_RU/Color.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/ru_RU/Company.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/ru_RU/Internet.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/ru_RU/Payment.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/ru_RU/Person.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/ru_RU/PhoneNumber.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/ru_RU/Text.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/sk_SK/Address.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/sk_SK/Company.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/sk_SK/Internet.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/sk_SK/Payment.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/sk_SK/Person.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/sk_SK/PhoneNumber.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/sl_SI/Address.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/sl_SI/Company.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/sl_SI/Internet.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/sl_SI/Payment.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/sl_SI/Person.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/sl_SI/PhoneNumber.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/sr_Cyrl_RS/Address.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/sr_Cyrl_RS/Payment.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/sr_Cyrl_RS/Person.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/sr_Latn_RS/Address.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/sr_Latn_RS/Payment.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/sr_Latn_RS/Person.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/sr_RS/Address.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/sr_RS/Payment.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/sr_RS/Person.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/sv_SE/Address.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/sv_SE/Company.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/sv_SE/Payment.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/sv_SE/Person.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/sv_SE/PhoneNumber.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/th_TH/Address.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/th_TH/Color.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/th_TH/Company.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/th_TH/Internet.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/th_TH/Payment.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/th_TH/PhoneNumber.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/tr_TR/Address.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/tr_TR/Color.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/tr_TR/Company.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/tr_TR/DateTime.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/tr_TR/Internet.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/tr_TR/Payment.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/tr_TR/Person.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/tr_TR/PhoneNumber.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/uk_UA/Address.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/uk_UA/Color.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/uk_UA/Company.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/uk_UA/Internet.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/uk_UA/Payment.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/uk_UA/Person.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/uk_UA/PhoneNumber.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/uk_UA/Text.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/vi_VN/Address.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/vi_VN/Color.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/vi_VN/Internet.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/vi_VN/Person.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/vi_VN/PhoneNumber.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/zh_CN/Address.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/zh_CN/Color.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/zh_CN/Company.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/zh_CN/DateTime.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/zh_CN/Internet.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/zh_CN/Payment.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/zh_CN/Person.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/zh_CN/PhoneNumber.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/zh_TW/Address.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/zh_TW/Color.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/zh_TW/Company.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/zh_TW/DateTime.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/zh_TW/Internet.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/zh_TW/Payment.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/zh_TW/Person.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/zh_TW/PhoneNumber.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/Provider/zh_TW/Text.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/UniqueGenerator.php delete mode 100644 vendor/fzaninotto/faker/src/Faker/ValidGenerator.php delete mode 100644 vendor/fzaninotto/faker/src/autoload.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Calculator/IbanTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Calculator/InnTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Calculator/LuhnTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Calculator/TCNoTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/DefaultGeneratorTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/GeneratorTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/AddressTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/BarcodeTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/BaseTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/BiasedTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/ColorTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/CompanyTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/DateTimeTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/HtmlLoremTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/ImageTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/InternetTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/LocalizationTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/LoremTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/MiscellaneousTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/PaymentTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/PersonTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/PhoneNumberTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/ProviderOverrideTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/TextTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/UserAgentTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/UuidTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/ar_JO/InternetTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/ar_SA/InternetTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/at_AT/PaymentTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/bg_BG/PaymentTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/bn_BD/PersonTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/cs_CZ/PersonTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/da_DK/InternetTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/de_AT/InternetTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/de_AT/PhoneNumberTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/de_CH/AddressTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/de_CH/InternetTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/de_CH/PhoneNumberTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/de_DE/InternetTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/el_GR/TextTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/en_AU/AddressTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/en_CA/AddressTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/en_GB/AddressTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/en_IN/AddressTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/en_NG/AddressTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/en_NG/InternetTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/en_NG/PersonTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/en_NG/PhoneNumberTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/en_NZ/PhoneNumberTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/en_PH/AddressTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/en_SG/AddressTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/en_SG/PhoneNumberTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/en_UG/AddressTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/en_US/CompanyTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/en_US/PaymentTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/en_US/PersonTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/en_US/PhoneNumberTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/en_ZA/CompanyTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/en_ZA/InternetTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/en_ZA/PersonTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/en_ZA/PhoneNumberTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/es_ES/PaymentTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/es_ES/PersonTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/es_ES/TextTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/es_PE/PersonTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/es_VE/CompanyTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/es_VE/PersonTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/fi_FI/InternetTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/fi_FI/PersonTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/fr_BE/PaymentTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/fr_CH/AddressTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/fr_CH/InternetTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/fr_CH/PhoneNumberTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/fr_FR/AddressTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/fr_FR/CompanyTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/fr_FR/PaymentTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/fr_FR/PersonTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/fr_FR/PhoneNumberTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/fr_FR/TextTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/id_ID/PersonTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/it_CH/AddressTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/it_CH/InternetTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/it_CH/PhoneNumberTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/it_IT/CompanyTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/it_IT/PersonTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/ja_JP/InternetTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/ja_JP/PersonTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/ja_JP/PhoneNumberTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/ka_GE/TextTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/kk_KZ/CompanyTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/kk_KZ/PersonTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/kk_KZ/TextTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/ko_KR/TextTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/mn_MN/PersonTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/ms_MY/PersonTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/nl_BE/PaymentTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/nl_BE/PersonTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/nl_NL/CompanyTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/nl_NL/PersonTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/pl_PL/AddressTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/pl_PL/PersonTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/pt_BR/CompanyTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/pt_BR/PersonTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/pt_PT/AddressTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/pt_PT/PersonTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/pt_PT/PhoneNumberTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/ro_RO/PersonTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/ro_RO/PhoneNumberTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/ru_RU/CompanyTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/ru_RU/TextTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/sv_SE/PersonTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/tr_TR/CompanyTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/tr_TR/PaymentTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/tr_TR/PersonTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/tr_TR/PhoneNumberTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/uk_UA/AddressTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/uk_UA/PersonTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/uk_UA/PhoneNumberTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/zh_TW/CompanyTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/zh_TW/PersonTest.php delete mode 100644 vendor/fzaninotto/faker/test/Faker/Provider/zh_TW/TextTest.php delete mode 100644 vendor/fzaninotto/faker/test/documentor.php delete mode 100644 vendor/fzaninotto/faker/test/test.php delete mode 100644 vendor/guzzlehttp/psr7/CHANGELOG.md delete mode 100644 vendor/guzzlehttp/psr7/LICENSE delete mode 100644 vendor/guzzlehttp/psr7/README.md delete mode 100644 vendor/guzzlehttp/psr7/composer.json delete mode 100644 vendor/guzzlehttp/psr7/src/AppendStream.php delete mode 100644 vendor/guzzlehttp/psr7/src/BufferStream.php delete mode 100644 vendor/guzzlehttp/psr7/src/CachingStream.php delete mode 100644 vendor/guzzlehttp/psr7/src/DroppingStream.php delete mode 100644 vendor/guzzlehttp/psr7/src/FnStream.php delete mode 100644 vendor/guzzlehttp/psr7/src/InflateStream.php delete mode 100644 vendor/guzzlehttp/psr7/src/LazyOpenStream.php delete mode 100644 vendor/guzzlehttp/psr7/src/LimitStream.php delete mode 100644 vendor/guzzlehttp/psr7/src/MessageTrait.php delete mode 100644 vendor/guzzlehttp/psr7/src/MultipartStream.php delete mode 100644 vendor/guzzlehttp/psr7/src/NoSeekStream.php delete mode 100644 vendor/guzzlehttp/psr7/src/PumpStream.php delete mode 100644 vendor/guzzlehttp/psr7/src/Request.php delete mode 100644 vendor/guzzlehttp/psr7/src/Response.php delete mode 100644 vendor/guzzlehttp/psr7/src/ServerRequest.php delete mode 100644 vendor/guzzlehttp/psr7/src/Stream.php delete mode 100644 vendor/guzzlehttp/psr7/src/StreamDecoratorTrait.php delete mode 100644 vendor/guzzlehttp/psr7/src/StreamWrapper.php delete mode 100644 vendor/guzzlehttp/psr7/src/UploadedFile.php delete mode 100644 vendor/guzzlehttp/psr7/src/Uri.php delete mode 100644 vendor/guzzlehttp/psr7/src/UriNormalizer.php delete mode 100644 vendor/guzzlehttp/psr7/src/UriResolver.php delete mode 100644 vendor/guzzlehttp/psr7/src/functions.php delete mode 100644 vendor/guzzlehttp/psr7/src/functions_include.php delete mode 100644 vendor/hamcrest/hamcrest-php/.coveralls.yml delete mode 100644 vendor/hamcrest/hamcrest-php/.gush.yml delete mode 100644 vendor/hamcrest/hamcrest-php/.travis.yml delete mode 100644 vendor/hamcrest/hamcrest-php/CHANGES.txt delete mode 100644 vendor/hamcrest/hamcrest-php/LICENSE.txt delete mode 100644 vendor/hamcrest/hamcrest-php/README.md delete mode 100644 vendor/hamcrest/hamcrest-php/TODO.txt delete mode 100644 vendor/hamcrest/hamcrest-php/composer.json delete mode 100644 vendor/hamcrest/hamcrest-php/generator/FactoryCall.php delete mode 100644 vendor/hamcrest/hamcrest-php/generator/FactoryClass.php delete mode 100644 vendor/hamcrest/hamcrest-php/generator/FactoryFile.php delete mode 100644 vendor/hamcrest/hamcrest-php/generator/FactoryGenerator.php delete mode 100644 vendor/hamcrest/hamcrest-php/generator/FactoryMethod.php delete mode 100644 vendor/hamcrest/hamcrest-php/generator/FactoryParameter.php delete mode 100644 vendor/hamcrest/hamcrest-php/generator/GlobalFunctionFile.php delete mode 100644 vendor/hamcrest/hamcrest-php/generator/StaticMethodFile.php delete mode 100644 vendor/hamcrest/hamcrest-php/generator/parts/file_header.txt delete mode 100644 vendor/hamcrest/hamcrest-php/generator/parts/functions_footer.txt delete mode 100644 vendor/hamcrest/hamcrest-php/generator/parts/functions_header.txt delete mode 100644 vendor/hamcrest/hamcrest-php/generator/parts/functions_imports.txt delete mode 100644 vendor/hamcrest/hamcrest-php/generator/parts/matchers_footer.txt delete mode 100644 vendor/hamcrest/hamcrest-php/generator/parts/matchers_header.txt delete mode 100644 vendor/hamcrest/hamcrest-php/generator/parts/matchers_imports.txt delete mode 100644 vendor/hamcrest/hamcrest-php/generator/run.php delete mode 100644 vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest.php delete mode 100644 vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/IsArray.php delete mode 100644 vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/IsArrayContaining.php delete mode 100644 vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/IsArrayContainingInAnyOrder.php delete mode 100644 vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/IsArrayContainingInOrder.php delete mode 100644 vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/IsArrayContainingKey.php delete mode 100644 vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/IsArrayContainingKeyValuePair.php delete mode 100644 vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/IsArrayWithSize.php delete mode 100644 vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/MatchingOnce.php delete mode 100644 vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/SeriesMatchingOnce.php delete mode 100644 vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/AssertionError.php delete mode 100644 vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/BaseDescription.php delete mode 100644 vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/BaseMatcher.php delete mode 100644 vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Collection/IsEmptyTraversable.php delete mode 100644 vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Collection/IsTraversableWithSize.php delete mode 100644 vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/AllOf.php delete mode 100644 vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/AnyOf.php delete mode 100644 vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/CombinableMatcher.php delete mode 100644 vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/DescribedAs.php delete mode 100644 vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/Every.php delete mode 100644 vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/HasToString.php delete mode 100644 vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/Is.php delete mode 100644 vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsAnything.php delete mode 100644 vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsCollectionContaining.php delete mode 100644 vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsEqual.php delete mode 100644 vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsIdentical.php delete mode 100644 vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsInstanceOf.php delete mode 100644 vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsNot.php delete mode 100644 vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsNull.php delete mode 100644 vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsSame.php delete mode 100644 vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsTypeOf.php delete mode 100644 vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/Set.php delete mode 100644 vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/ShortcutCombination.php delete mode 100644 vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Description.php delete mode 100644 vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/DiagnosingMatcher.php delete mode 100644 vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/FeatureMatcher.php delete mode 100644 vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Internal/SelfDescribingValue.php delete mode 100644 vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Matcher.php delete mode 100644 vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/MatcherAssert.php delete mode 100644 vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Matchers.php delete mode 100644 vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/NullDescription.php delete mode 100644 vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Number/IsCloseTo.php delete mode 100644 vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Number/OrderingComparison.php delete mode 100644 vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/SelfDescribing.php delete mode 100644 vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/StringDescription.php delete mode 100644 vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/IsEmptyString.php delete mode 100644 vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/IsEqualIgnoringCase.php delete mode 100644 vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/IsEqualIgnoringWhiteSpace.php delete mode 100644 vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/MatchesPattern.php delete mode 100644 vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/StringContains.php delete mode 100644 vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/StringContainsIgnoringCase.php delete mode 100644 vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/StringContainsInOrder.php delete mode 100644 vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/StringEndsWith.php delete mode 100644 vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/StringStartsWith.php delete mode 100644 vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/SubstringMatcher.php delete mode 100644 vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Type/IsArray.php delete mode 100644 vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Type/IsBoolean.php delete mode 100644 vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Type/IsCallable.php delete mode 100644 vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Type/IsDouble.php delete mode 100644 vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Type/IsInteger.php delete mode 100644 vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Type/IsNumeric.php delete mode 100644 vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Type/IsObject.php delete mode 100644 vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Type/IsResource.php delete mode 100644 vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Type/IsScalar.php delete mode 100644 vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Type/IsString.php delete mode 100644 vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/TypeSafeDiagnosingMatcher.php delete mode 100644 vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/TypeSafeMatcher.php delete mode 100644 vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Util.php delete mode 100644 vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Xml/HasXPath.php delete mode 100644 vendor/hamcrest/hamcrest-php/tests/Hamcrest/AbstractMatcherTest.php delete mode 100644 vendor/hamcrest/hamcrest-php/tests/Hamcrest/Array/IsArrayContainingInAnyOrderTest.php delete mode 100644 vendor/hamcrest/hamcrest-php/tests/Hamcrest/Array/IsArrayContainingInOrderTest.php delete mode 100644 vendor/hamcrest/hamcrest-php/tests/Hamcrest/Array/IsArrayContainingKeyTest.php delete mode 100644 vendor/hamcrest/hamcrest-php/tests/Hamcrest/Array/IsArrayContainingKeyValuePairTest.php delete mode 100644 vendor/hamcrest/hamcrest-php/tests/Hamcrest/Array/IsArrayContainingTest.php delete mode 100644 vendor/hamcrest/hamcrest-php/tests/Hamcrest/Array/IsArrayTest.php delete mode 100644 vendor/hamcrest/hamcrest-php/tests/Hamcrest/Array/IsArrayWithSizeTest.php delete mode 100644 vendor/hamcrest/hamcrest-php/tests/Hamcrest/BaseMatcherTest.php delete mode 100644 vendor/hamcrest/hamcrest-php/tests/Hamcrest/Collection/IsEmptyTraversableTest.php delete mode 100644 vendor/hamcrest/hamcrest-php/tests/Hamcrest/Collection/IsTraversableWithSizeTest.php delete mode 100644 vendor/hamcrest/hamcrest-php/tests/Hamcrest/Core/AllOfTest.php delete mode 100644 vendor/hamcrest/hamcrest-php/tests/Hamcrest/Core/AnyOfTest.php delete mode 100644 vendor/hamcrest/hamcrest-php/tests/Hamcrest/Core/CombinableMatcherTest.php delete mode 100644 vendor/hamcrest/hamcrest-php/tests/Hamcrest/Core/DescribedAsTest.php delete mode 100644 vendor/hamcrest/hamcrest-php/tests/Hamcrest/Core/EveryTest.php delete mode 100644 vendor/hamcrest/hamcrest-php/tests/Hamcrest/Core/HasToStringTest.php delete mode 100644 vendor/hamcrest/hamcrest-php/tests/Hamcrest/Core/IsAnythingTest.php delete mode 100644 vendor/hamcrest/hamcrest-php/tests/Hamcrest/Core/IsCollectionContainingTest.php delete mode 100644 vendor/hamcrest/hamcrest-php/tests/Hamcrest/Core/IsEqualTest.php delete mode 100644 vendor/hamcrest/hamcrest-php/tests/Hamcrest/Core/IsIdenticalTest.php delete mode 100644 vendor/hamcrest/hamcrest-php/tests/Hamcrest/Core/IsInstanceOfTest.php delete mode 100644 vendor/hamcrest/hamcrest-php/tests/Hamcrest/Core/IsNotTest.php delete mode 100644 vendor/hamcrest/hamcrest-php/tests/Hamcrest/Core/IsNullTest.php delete mode 100644 vendor/hamcrest/hamcrest-php/tests/Hamcrest/Core/IsSameTest.php delete mode 100644 vendor/hamcrest/hamcrest-php/tests/Hamcrest/Core/IsTest.php delete mode 100644 vendor/hamcrest/hamcrest-php/tests/Hamcrest/Core/IsTypeOfTest.php delete mode 100644 vendor/hamcrest/hamcrest-php/tests/Hamcrest/Core/SampleBaseClass.php delete mode 100644 vendor/hamcrest/hamcrest-php/tests/Hamcrest/Core/SampleSubClass.php delete mode 100644 vendor/hamcrest/hamcrest-php/tests/Hamcrest/Core/SetTest.php delete mode 100644 vendor/hamcrest/hamcrest-php/tests/Hamcrest/FeatureMatcherTest.php delete mode 100644 vendor/hamcrest/hamcrest-php/tests/Hamcrest/MatcherAssertTest.php delete mode 100644 vendor/hamcrest/hamcrest-php/tests/Hamcrest/Number/IsCloseToTest.php delete mode 100644 vendor/hamcrest/hamcrest-php/tests/Hamcrest/Number/OrderingComparisonTest.php delete mode 100644 vendor/hamcrest/hamcrest-php/tests/Hamcrest/StringDescriptionTest.php delete mode 100644 vendor/hamcrest/hamcrest-php/tests/Hamcrest/Text/IsEmptyStringTest.php delete mode 100644 vendor/hamcrest/hamcrest-php/tests/Hamcrest/Text/IsEqualIgnoringCaseTest.php delete mode 100644 vendor/hamcrest/hamcrest-php/tests/Hamcrest/Text/IsEqualIgnoringWhiteSpaceTest.php delete mode 100644 vendor/hamcrest/hamcrest-php/tests/Hamcrest/Text/MatchesPatternTest.php delete mode 100644 vendor/hamcrest/hamcrest-php/tests/Hamcrest/Text/StringContainsIgnoringCaseTest.php delete mode 100644 vendor/hamcrest/hamcrest-php/tests/Hamcrest/Text/StringContainsInOrderTest.php delete mode 100644 vendor/hamcrest/hamcrest-php/tests/Hamcrest/Text/StringContainsTest.php delete mode 100644 vendor/hamcrest/hamcrest-php/tests/Hamcrest/Text/StringEndsWithTest.php delete mode 100644 vendor/hamcrest/hamcrest-php/tests/Hamcrest/Text/StringStartsWithTest.php delete mode 100644 vendor/hamcrest/hamcrest-php/tests/Hamcrest/Type/IsArrayTest.php delete mode 100644 vendor/hamcrest/hamcrest-php/tests/Hamcrest/Type/IsBooleanTest.php delete mode 100644 vendor/hamcrest/hamcrest-php/tests/Hamcrest/Type/IsCallableTest.php delete mode 100644 vendor/hamcrest/hamcrest-php/tests/Hamcrest/Type/IsDoubleTest.php delete mode 100644 vendor/hamcrest/hamcrest-php/tests/Hamcrest/Type/IsIntegerTest.php delete mode 100644 vendor/hamcrest/hamcrest-php/tests/Hamcrest/Type/IsNumericTest.php delete mode 100644 vendor/hamcrest/hamcrest-php/tests/Hamcrest/Type/IsObjectTest.php delete mode 100644 vendor/hamcrest/hamcrest-php/tests/Hamcrest/Type/IsResourceTest.php delete mode 100644 vendor/hamcrest/hamcrest-php/tests/Hamcrest/Type/IsScalarTest.php delete mode 100644 vendor/hamcrest/hamcrest-php/tests/Hamcrest/Type/IsStringTest.php delete mode 100644 vendor/hamcrest/hamcrest-php/tests/Hamcrest/UtilTest.php delete mode 100644 vendor/hamcrest/hamcrest-php/tests/Hamcrest/Xml/HasXPathTest.php delete mode 100644 vendor/hamcrest/hamcrest-php/tests/bootstrap.php delete mode 100644 vendor/hamcrest/hamcrest-php/tests/phpunit.xml.dist delete mode 100644 vendor/intervention/image/LICENSE delete mode 100644 vendor/intervention/image/composer.json delete mode 100644 vendor/intervention/image/provides.json delete mode 100644 vendor/intervention/image/src/Intervention/Image/AbstractColor.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/AbstractDecoder.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/AbstractDriver.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/AbstractEncoder.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/AbstractFont.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/AbstractShape.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Commands/AbstractCommand.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Commands/Argument.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Commands/ChecksumCommand.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Commands/CircleCommand.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Commands/EllipseCommand.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Commands/ExifCommand.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Commands/IptcCommand.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Commands/LineCommand.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Commands/OrientateCommand.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Commands/PolygonCommand.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Commands/PsrResponseCommand.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Commands/RectangleCommand.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Commands/ResponseCommand.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Commands/StreamCommand.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Commands/TextCommand.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Constraint.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Exception/ImageException.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Exception/InvalidArgumentException.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Exception/MissingDependencyException.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Exception/NotFoundException.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Exception/NotReadableException.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Exception/NotSupportedException.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Exception/NotWritableException.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Exception/RuntimeException.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Facades/Image.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/File.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Filters/DemoFilter.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Filters/FilterInterface.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Gd/Color.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Gd/Commands/BackupCommand.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Gd/Commands/BlurCommand.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Gd/Commands/BrightnessCommand.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Gd/Commands/ColorizeCommand.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Gd/Commands/ContrastCommand.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Gd/Commands/CropCommand.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Gd/Commands/DestroyCommand.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Gd/Commands/FillCommand.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Gd/Commands/FitCommand.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Gd/Commands/FlipCommand.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Gd/Commands/GammaCommand.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Gd/Commands/GetSizeCommand.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Gd/Commands/GreyscaleCommand.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Gd/Commands/HeightenCommand.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Gd/Commands/InsertCommand.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Gd/Commands/InterlaceCommand.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Gd/Commands/InvertCommand.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Gd/Commands/LimitColorsCommand.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Gd/Commands/MaskCommand.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Gd/Commands/OpacityCommand.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Gd/Commands/PickColorCommand.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Gd/Commands/PixelCommand.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Gd/Commands/PixelateCommand.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Gd/Commands/ResetCommand.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Gd/Commands/ResizeCanvasCommand.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Gd/Commands/ResizeCommand.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Gd/Commands/RotateCommand.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Gd/Commands/SharpenCommand.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Gd/Commands/TrimCommand.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Gd/Commands/WidenCommand.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Gd/Decoder.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Gd/Driver.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Gd/Encoder.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Gd/Font.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Gd/Shapes/CircleShape.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Gd/Shapes/EllipseShape.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Gd/Shapes/LineShape.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Gd/Shapes/PolygonShape.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Gd/Shapes/RectangleShape.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Image.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/ImageManager.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/ImageManagerStatic.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/ImageServiceProvider.php delete mode 100755 vendor/intervention/image/src/Intervention/Image/ImageServiceProviderLaravel4.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/ImageServiceProviderLaravel5.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/ImageServiceProviderLeague.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/ImageServiceProviderLumen.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Imagick/Color.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Imagick/Commands/BackupCommand.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Imagick/Commands/BlurCommand.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Imagick/Commands/BrightnessCommand.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Imagick/Commands/ColorizeCommand.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Imagick/Commands/ContrastCommand.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Imagick/Commands/CropCommand.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Imagick/Commands/DestroyCommand.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Imagick/Commands/ExifCommand.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Imagick/Commands/FillCommand.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Imagick/Commands/FitCommand.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Imagick/Commands/FlipCommand.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Imagick/Commands/GammaCommand.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Imagick/Commands/GetSizeCommand.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Imagick/Commands/GreyscaleCommand.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Imagick/Commands/HeightenCommand.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Imagick/Commands/InsertCommand.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Imagick/Commands/InterlaceCommand.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Imagick/Commands/InvertCommand.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Imagick/Commands/LimitColorsCommand.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Imagick/Commands/MaskCommand.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Imagick/Commands/OpacityCommand.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Imagick/Commands/PickColorCommand.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Imagick/Commands/PixelCommand.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Imagick/Commands/PixelateCommand.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Imagick/Commands/ResetCommand.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Imagick/Commands/ResizeCanvasCommand.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Imagick/Commands/ResizeCommand.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Imagick/Commands/RotateCommand.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Imagick/Commands/SharpenCommand.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Imagick/Commands/TrimCommand.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Imagick/Commands/WidenCommand.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Imagick/Decoder.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Imagick/Driver.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Imagick/Encoder.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Imagick/Font.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Imagick/Shapes/CircleShape.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Imagick/Shapes/EllipseShape.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Imagick/Shapes/LineShape.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Imagick/Shapes/PolygonShape.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Imagick/Shapes/RectangleShape.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Point.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Response.php delete mode 100644 vendor/intervention/image/src/Intervention/Image/Size.php delete mode 100644 vendor/intervention/image/src/config/config.php delete mode 100644 vendor/jakub-onderka/php-console-color/.travis.yml delete mode 100644 vendor/jakub-onderka/php-console-color/build.xml delete mode 100644 vendor/jakub-onderka/php-console-color/composer.json delete mode 100644 vendor/jakub-onderka/php-console-color/example.php delete mode 100644 vendor/jakub-onderka/php-console-color/phpunit.xml delete mode 100644 vendor/jakub-onderka/php-console-color/src/JakubOnderka/PhpConsoleColor/ConsoleColor.php delete mode 100644 vendor/jakub-onderka/php-console-color/src/JakubOnderka/PhpConsoleColor/InvalidStyleException.php delete mode 100644 vendor/jakub-onderka/php-console-color/tests/JakubOnderka/PhpConsoleColor/ConsoleColorTest.php delete mode 100644 vendor/jakub-onderka/php-console-color/tests/bootstrap.php delete mode 100644 vendor/jakub-onderka/php-console-highlighter/.travis.yml delete mode 100644 vendor/jakub-onderka/php-console-highlighter/LICENSE delete mode 100644 vendor/jakub-onderka/php-console-highlighter/README.md delete mode 100644 vendor/jakub-onderka/php-console-highlighter/build.xml delete mode 100644 vendor/jakub-onderka/php-console-highlighter/composer.json delete mode 100644 vendor/jakub-onderka/php-console-highlighter/examples/snippet.php delete mode 100644 vendor/jakub-onderka/php-console-highlighter/examples/whole_file.php delete mode 100644 vendor/jakub-onderka/php-console-highlighter/examples/whole_file_line_numbers.php delete mode 100644 vendor/jakub-onderka/php-console-highlighter/phpunit.xml delete mode 100644 vendor/jakub-onderka/php-console-highlighter/src/JakubOnderka/PhpConsoleHighlighter/Highlighter.php delete mode 100644 vendor/jakub-onderka/php-console-highlighter/tests/JakubOnderka/PhpConsoleHighligter/HigligterTest.php delete mode 100644 vendor/jakub-onderka/php-console-highlighter/tests/bootstrap.php delete mode 100644 vendor/laravel/framework/LICENSE.md delete mode 100644 vendor/laravel/framework/README.md delete mode 100644 vendor/laravel/framework/composer.json delete mode 100644 vendor/laravel/framework/src/Illuminate/Auth/Access/AuthorizationException.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Auth/Access/Gate.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Auth/Access/HandlesAuthorization.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Auth/Access/Response.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Auth/AuthManager.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Auth/AuthServiceProvider.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Auth/Authenticatable.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Auth/AuthenticationException.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Auth/Console/AuthMakeCommand.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Auth/Console/ClearResetsCommand.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Auth/Console/stubs/make/controllers/HomeController.stub delete mode 100644 vendor/laravel/framework/src/Illuminate/Auth/Console/stubs/make/routes.stub delete mode 100644 vendor/laravel/framework/src/Illuminate/Auth/Console/stubs/make/views/auth/login.stub delete mode 100644 vendor/laravel/framework/src/Illuminate/Auth/Console/stubs/make/views/auth/passwords/email.stub delete mode 100644 vendor/laravel/framework/src/Illuminate/Auth/Console/stubs/make/views/auth/passwords/reset.stub delete mode 100644 vendor/laravel/framework/src/Illuminate/Auth/Console/stubs/make/views/auth/register.stub delete mode 100644 vendor/laravel/framework/src/Illuminate/Auth/Console/stubs/make/views/home.stub delete mode 100644 vendor/laravel/framework/src/Illuminate/Auth/Console/stubs/make/views/layouts/app.stub delete mode 100644 vendor/laravel/framework/src/Illuminate/Auth/CreatesUserProviders.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Auth/DatabaseUserProvider.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Auth/EloquentUserProvider.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Auth/Events/Attempting.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Auth/Events/Authenticated.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Auth/Events/Failed.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Auth/Events/Lockout.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Auth/Events/Login.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Auth/Events/Logout.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Auth/Events/PasswordReset.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Auth/Events/Registered.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Auth/GenericUser.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Auth/GuardHelpers.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Auth/Middleware/Authenticate.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Auth/Middleware/AuthenticateWithBasicAuth.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Auth/Middleware/Authorize.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Auth/Notifications/ResetPassword.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Auth/Passwords/CanResetPassword.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Auth/Passwords/DatabaseTokenRepository.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Auth/Passwords/PasswordBroker.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Auth/Passwords/PasswordBrokerManager.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Auth/Passwords/PasswordResetServiceProvider.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Auth/Passwords/TokenRepositoryInterface.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Auth/Recaller.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Auth/RequestGuard.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Auth/SessionGuard.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Auth/TokenGuard.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Auth/composer.json delete mode 100644 vendor/laravel/framework/src/Illuminate/Broadcasting/BroadcastController.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Broadcasting/BroadcastEvent.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Broadcasting/BroadcastException.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Broadcasting/BroadcastManager.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Broadcasting/BroadcastServiceProvider.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Broadcasting/Broadcasters/Broadcaster.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Broadcasting/Broadcasters/LogBroadcaster.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Broadcasting/Broadcasters/NullBroadcaster.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Broadcasting/Broadcasters/PusherBroadcaster.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Broadcasting/Broadcasters/RedisBroadcaster.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Broadcasting/Channel.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Broadcasting/InteractsWithSockets.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Broadcasting/PendingBroadcast.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Broadcasting/PresenceChannel.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Broadcasting/PrivateChannel.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Broadcasting/composer.json delete mode 100644 vendor/laravel/framework/src/Illuminate/Bus/BusServiceProvider.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Bus/Dispatcher.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Bus/Queueable.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Bus/composer.json delete mode 100755 vendor/laravel/framework/src/Illuminate/Cache/ApcStore.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Cache/ApcWrapper.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Cache/ArrayStore.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Cache/CacheManager.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Cache/CacheServiceProvider.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Cache/Console/CacheTableCommand.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Cache/Console/ClearCommand.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Cache/Console/ForgetCommand.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Cache/Console/stubs/cache.stub delete mode 100755 vendor/laravel/framework/src/Illuminate/Cache/DatabaseStore.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Cache/Events/CacheEvent.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Cache/Events/CacheHit.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Cache/Events/CacheMissed.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Cache/Events/KeyForgotten.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Cache/Events/KeyWritten.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Cache/FileStore.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Cache/Lock.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Cache/MemcachedConnector.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Cache/MemcachedLock.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Cache/MemcachedStore.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Cache/NullStore.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Cache/RateLimiter.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Cache/RedisLock.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Cache/RedisStore.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Cache/RedisTaggedCache.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Cache/Repository.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Cache/RetrievesMultipleKeys.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Cache/TagSet.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Cache/TaggableStore.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Cache/TaggedCache.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Cache/composer.json delete mode 100644 vendor/laravel/framework/src/Illuminate/Config/Repository.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Config/composer.json delete mode 100755 vendor/laravel/framework/src/Illuminate/Console/Application.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Console/Command.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Console/ConfirmableTrait.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Console/DetectsApplicationNamespace.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Console/Events/ArtisanStarting.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Console/Events/CommandFinished.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Console/Events/CommandStarting.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Console/GeneratorCommand.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Console/OutputStyle.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Console/Parser.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheSchedulingMutex.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Console/Scheduling/CallbackEvent.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Console/Scheduling/CommandBuilder.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Console/Scheduling/EventMutex.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesFrequencies.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Console/Scheduling/Schedule.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleFinishCommand.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Console/Scheduling/SchedulingMutex.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Console/composer.json delete mode 100644 vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Container/Container.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Container/ContextualBindingBuilder.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Container/EntryNotFoundException.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Container/composer.json delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Auth/Access/Authorizable.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Auth/Access/Gate.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Auth/Authenticatable.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Auth/CanResetPassword.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Auth/Factory.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Auth/Guard.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Auth/PasswordBroker.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Auth/PasswordBrokerFactory.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Auth/StatefulGuard.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Auth/SupportsBasicAuth.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Auth/UserProvider.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Broadcasting/Broadcaster.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Broadcasting/Factory.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Broadcasting/ShouldBroadcast.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Broadcasting/ShouldBroadcastNow.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Bus/Dispatcher.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Bus/QueueingDispatcher.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Cache/Factory.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Cache/Lock.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Cache/LockProvider.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Cache/LockTimeoutException.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Cache/Repository.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Cache/Store.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Config/Repository.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Console/Application.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Console/Kernel.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Container/BindingResolutionException.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Container/Container.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Container/ContextualBindingBuilder.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Cookie/Factory.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Cookie/QueueingFactory.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Database/ModelIdentifier.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Debug/ExceptionHandler.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Encryption/DecryptException.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Encryption/EncryptException.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Encryption/Encrypter.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Events/Dispatcher.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Filesystem/Cloud.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Filesystem/Factory.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Filesystem/FileNotFoundException.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Filesystem/Filesystem.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Foundation/Application.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Hashing/Hasher.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Http/Kernel.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Mail/MailQueue.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Mail/Mailable.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Mail/Mailer.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Notifications/Dispatcher.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Notifications/Factory.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Pagination/LengthAwarePaginator.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Pagination/Paginator.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Pipeline/Hub.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Pipeline/Pipeline.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Queue/EntityNotFoundException.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Queue/EntityResolver.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Queue/Factory.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Queue/Job.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Queue/Monitor.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Queue/Queue.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Queue/QueueableCollection.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Queue/QueueableEntity.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Queue/ShouldQueue.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Redis/Connection.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Redis/Factory.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Redis/LimiterTimeoutException.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Routing/BindingRegistrar.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Routing/Registrar.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Routing/ResponseFactory.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Routing/UrlGenerator.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Routing/UrlRoutable.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Session/Session.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Contracts/Support/Arrayable.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Support/Htmlable.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Contracts/Support/Jsonable.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Support/MessageBag.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Contracts/Support/MessageProvider.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Contracts/Support/Renderable.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Support/Responsable.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Contracts/Translation/Loader.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Translation/Translator.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Validation/Factory.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Validation/ImplicitRule.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Validation/Rule.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Validation/ValidatesWhenResolved.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/Validation/Validator.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Contracts/View/Engine.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/View/Factory.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/View/View.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Contracts/composer.json delete mode 100755 vendor/laravel/framework/src/Illuminate/Cookie/CookieJar.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Cookie/CookieServiceProvider.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Cookie/Middleware/AddQueuedCookiesToResponse.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Cookie/Middleware/EncryptCookies.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Cookie/composer.json delete mode 100755 vendor/laravel/framework/src/Illuminate/Database/Capsule/Manager.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Database/Concerns/BuildsQueries.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Database/Concerns/ManagesTransactions.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Database/Connection.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Database/ConnectionInterface.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Database/ConnectionResolver.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Database/ConnectionResolverInterface.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectorInterface.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Database/Connectors/MySqlConnector.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Database/Connectors/SQLiteConnector.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Database/Connectors/SqlServerConnector.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Database/Console/Factories/FactoryMakeCommand.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Database/Console/Factories/stubs/factory.stub delete mode 100755 vendor/laravel/framework/src/Illuminate/Database/Console/Migrations/BaseCommand.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Database/Console/Migrations/FreshCommand.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Database/Console/Migrations/InstallCommand.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Database/Console/Migrations/MigrateCommand.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Database/Console/Migrations/MigrateMakeCommand.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Database/Console/Migrations/RefreshCommand.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Database/Console/Migrations/ResetCommand.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Database/Console/Migrations/RollbackCommand.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Database/Console/Migrations/StatusCommand.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Database/Console/Migrations/TableGuesser.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Database/Console/Seeds/SeedCommand.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Database/Console/Seeds/SeederMakeCommand.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Database/Console/Seeds/stubs/seeder.stub delete mode 100755 vendor/laravel/framework/src/Illuminate/Database/DatabaseManager.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Database/DatabaseServiceProvider.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Database/DetectsDeadlocks.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Database/DetectsLostConnections.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Database/Eloquent/Builder.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Database/Eloquent/Collection.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/GuardsAttributes.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/HasAttributes.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/HasEvents.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/HasGlobalScopes.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/HasRelationships.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/HasTimestamps.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/HidesAttributes.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/QueriesRelationships.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Database/Eloquent/Factory.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Database/Eloquent/FactoryBuilder.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Database/Eloquent/JsonEncodingException.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Database/Eloquent/MassAssignmentException.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Database/Eloquent/Model.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Database/Eloquent/ModelNotFoundException.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Database/Eloquent/QueueEntityResolver.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Database/Eloquent/RelationNotFoundException.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/BelongsTo.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/BelongsToMany.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/Concerns/InteractsWithPivotTable.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/Concerns/SupportsDefaultModels.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/HasMany.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/HasManyThrough.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/HasOne.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/HasOneOrMany.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/MorphMany.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/MorphOne.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/MorphOneOrMany.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/MorphPivot.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/MorphTo.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/MorphToMany.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/Pivot.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/Relation.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Database/Eloquent/Scope.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Database/Eloquent/SoftDeletes.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Database/Eloquent/SoftDeletingScope.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Database/Events/ConnectionEvent.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Database/Events/QueryExecuted.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Database/Events/StatementPrepared.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Database/Events/TransactionBeginning.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Database/Events/TransactionCommitted.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Database/Events/TransactionRolledBack.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Database/Grammar.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Database/MigrationServiceProvider.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Database/Migrations/DatabaseMigrationRepository.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Database/Migrations/Migration.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Database/Migrations/MigrationCreator.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Database/Migrations/MigrationRepositoryInterface.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Database/Migrations/Migrator.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Database/Migrations/stubs/blank.stub delete mode 100755 vendor/laravel/framework/src/Illuminate/Database/Migrations/stubs/create.stub delete mode 100755 vendor/laravel/framework/src/Illuminate/Database/Migrations/stubs/update.stub delete mode 100755 vendor/laravel/framework/src/Illuminate/Database/MySqlConnection.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Database/PostgresConnection.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Database/Query/Expression.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Database/Query/Grammars/Grammar.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Database/Query/Grammars/MySqlGrammar.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Database/Query/Grammars/PostgresGrammar.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Database/Query/Grammars/SQLiteGrammar.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Database/Query/Grammars/SqlServerGrammar.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Database/Query/JoinClause.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Database/Query/JsonExpression.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Database/Query/Processors/MySqlProcessor.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Database/Query/Processors/PostgresProcessor.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Database/Query/Processors/Processor.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Database/Query/Processors/SQLiteProcessor.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Database/Query/Processors/SqlServerProcessor.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Database/QueryException.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Database/README.md delete mode 100755 vendor/laravel/framework/src/Illuminate/Database/SQLiteConnection.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Database/Schema/Blueprint.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Database/Schema/Builder.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Database/Schema/Grammars/ChangeColumn.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Database/Schema/Grammars/Grammar.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Database/Schema/Grammars/MySqlGrammar.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Database/Schema/Grammars/PostgresGrammar.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Database/Schema/Grammars/RenameColumn.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Database/Schema/Grammars/SQLiteGrammar.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Database/Schema/Grammars/SqlServerGrammar.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Database/Schema/MySqlBuilder.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Database/Schema/PostgresBuilder.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Database/Schema/SQLiteBuilder.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Database/Schema/SqlServerBuilder.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Database/Seeder.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Database/SqlServerConnection.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Database/composer.json delete mode 100755 vendor/laravel/framework/src/Illuminate/Encryption/Encrypter.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Encryption/EncryptionServiceProvider.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Encryption/composer.json delete mode 100644 vendor/laravel/framework/src/Illuminate/Events/CallQueuedListener.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Events/Dispatcher.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Events/EventServiceProvider.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Events/composer.json delete mode 100644 vendor/laravel/framework/src/Illuminate/Filesystem/Cache.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Filesystem/FilesystemAdapter.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Filesystem/FilesystemManager.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Filesystem/FilesystemServiceProvider.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Filesystem/composer.json delete mode 100755 vendor/laravel/framework/src/Illuminate/Foundation/AliasLoader.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Foundation/Application.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Auth/Access/Authorizable.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Auth/Access/AuthorizesRequests.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Auth/AuthenticatesUsers.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Auth/RedirectsUsers.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Auth/RegistersUsers.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Auth/ResetsPasswords.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Auth/SendsPasswordResetEmails.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Auth/ThrottlesLogins.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Auth/User.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/BootProviders.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/HandleExceptions.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/LoadConfiguration.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/LoadEnvironmentVariables.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/RegisterFacades.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/RegisterProviders.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/SetRequestForConsole.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Bus/Dispatchable.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Bus/DispatchesJobs.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Bus/PendingChain.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Bus/PendingDispatch.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/ComposerScripts.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Console/AppNameCommand.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Console/ChannelMakeCommand.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Console/ClearCompiledCommand.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Console/ClosureCommand.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Console/ConfigCacheCommand.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Console/ConfigClearCommand.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Console/ConsoleMakeCommand.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Console/DownCommand.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Console/EnvironmentCommand.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Console/EventGenerateCommand.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Console/EventMakeCommand.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Console/ExceptionMakeCommand.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Console/JobMakeCommand.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Console/KeyGenerateCommand.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Console/ListenerMakeCommand.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Console/MailMakeCommand.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Console/ModelMakeCommand.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Console/NotificationMakeCommand.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Console/ObserverMakeCommand.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Console/PackageDiscoverCommand.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Console/PolicyMakeCommand.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Console/PresetCommand.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Console/Presets/Bootstrap.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Console/Presets/None.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Console/Presets/Preset.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Console/Presets/React.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Console/Presets/Vue.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Console/Presets/bootstrap-stubs/_variables.scss delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Console/Presets/bootstrap-stubs/app.scss delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Console/Presets/none-stubs/app.js delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Console/Presets/react-stubs/Example.js delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Console/Presets/react-stubs/app.js delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Console/Presets/react-stubs/webpack.mix.js delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Console/Presets/vue-stubs/ExampleComponent.vue delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Console/Presets/vue-stubs/app.js delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Console/Presets/vue-stubs/webpack.mix.js delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Console/ProviderMakeCommand.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Console/QueuedCommand.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Console/RequestMakeCommand.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Console/ResourceMakeCommand.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Console/RouteCacheCommand.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Console/RouteClearCommand.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Console/RouteListCommand.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Console/RuleMakeCommand.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Console/ServeCommand.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Console/StorageLinkCommand.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Console/TestMakeCommand.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Console/UpCommand.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Console/VendorPublishCommand.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Console/ViewCacheCommand.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Console/ViewClearCommand.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Console/stubs/channel.stub delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Console/stubs/console.stub delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Console/stubs/event-handler-queued.stub delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Console/stubs/event-handler.stub delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Console/stubs/event.stub delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Console/stubs/exception-render-report.stub delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Console/stubs/exception-render.stub delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Console/stubs/exception-report.stub delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Console/stubs/exception.stub delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Console/stubs/job-queued.stub delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Console/stubs/job.stub delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Console/stubs/listener-duck.stub delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Console/stubs/listener-queued-duck.stub delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Console/stubs/listener-queued.stub delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Console/stubs/listener.stub delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Console/stubs/mail.stub delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Console/stubs/markdown-mail.stub delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Console/stubs/markdown-notification.stub delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Console/stubs/markdown.stub delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Console/stubs/model.stub delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Console/stubs/notification.stub delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Console/stubs/observer.plain.stub delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Console/stubs/observer.stub delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Console/stubs/pivot.model.stub delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Console/stubs/policy.plain.stub delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Console/stubs/policy.stub delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Console/stubs/provider.stub delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Console/stubs/request.stub delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Console/stubs/resource-collection.stub delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Console/stubs/resource.stub delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Console/stubs/routes.stub delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Console/stubs/rule.stub delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Console/stubs/test.stub delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Console/stubs/unit-test.stub delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/EnvironmentDetector.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Events/Dispatchable.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Events/LocaleUpdated.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/Handler.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/WhoopsHandler.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/views/404.blade.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/views/419.blade.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/views/429.blade.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/views/500.blade.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/views/503.blade.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/views/layout.blade.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Http/Events/RequestHandled.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Http/Exceptions/MaintenanceModeException.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Http/FormRequest.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/CheckForMaintenanceMode.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ConvertEmptyStringsToNull.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TrimStrings.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ValidatePostSize.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/VerifyCsrfToken.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Inspiring.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/PackageManifest.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Foundation/ProviderRepository.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Foundation/Providers/ArtisanServiceProvider.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Foundation/Providers/ComposerServiceProvider.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Providers/ConsoleSupportServiceProvider.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Providers/FormRequestServiceProvider.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Providers/FoundationServiceProvider.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Support/Providers/AuthServiceProvider.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Support/Providers/EventServiceProvider.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Support/Providers/RouteServiceProvider.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/InteractsWithAuthentication.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/InteractsWithConsole.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/InteractsWithContainer.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/InteractsWithDatabase.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/InteractsWithExceptionHandling.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/InteractsWithRedis.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/InteractsWithSession.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/MakesHttpRequests.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/MocksApplicationServices.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Testing/Constraints/HasInDatabase.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Testing/Constraints/SeeInOrder.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Testing/Constraints/SoftDeletedInDatabase.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Testing/DatabaseMigrations.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Testing/DatabaseTransactions.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Testing/HttpException.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Testing/RefreshDatabase.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Testing/RefreshDatabaseState.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Testing/TestCase.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Testing/TestResponse.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Testing/WithFaker.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Testing/WithoutEvents.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Testing/WithoutMiddleware.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/Validation/ValidatesRequests.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/helpers.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Foundation/stubs/facade.stub delete mode 100644 vendor/laravel/framework/src/Illuminate/Hashing/AbstractHasher.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Hashing/ArgonHasher.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Hashing/BcryptHasher.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Hashing/HashManager.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Hashing/HashServiceProvider.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Hashing/composer.json delete mode 100644 vendor/laravel/framework/src/Illuminate/Http/Concerns/InteractsWithContentTypes.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Http/Concerns/InteractsWithFlashData.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Http/Concerns/InteractsWithInput.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Http/Exceptions/HttpResponseException.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Http/Exceptions/PostTooLargeException.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Http/Exceptions/ThrottleRequestsException.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Http/File.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Http/FileHelpers.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Http/JsonResponse.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Http/Middleware/CheckResponseForModifications.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Http/Middleware/FrameGuard.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Http/Middleware/SetCacheHeaders.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Http/RedirectResponse.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Http/Request.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Http/Resources/CollectsResources.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Http/Resources/ConditionallyLoadsAttributes.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Http/Resources/DelegatesToResource.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Http/Resources/Json/AnonymousResourceCollection.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Http/Resources/Json/JsonResource.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Http/Resources/Json/PaginatedResourceResponse.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Http/Resources/Json/Resource.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Http/Resources/Json/ResourceCollection.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Http/Resources/Json/ResourceResponse.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Http/Resources/MergeValue.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Http/Resources/MissingValue.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Http/Resources/PotentiallyMissing.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Http/Response.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Http/ResponseTrait.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Http/Testing/File.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Http/Testing/FileFactory.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Http/Testing/MimeType.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Http/UploadedFile.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Http/composer.json delete mode 100644 vendor/laravel/framework/src/Illuminate/Log/Events/MessageLogged.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Log/LogManager.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Log/LogServiceProvider.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Log/Logger.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Log/composer.json delete mode 100644 vendor/laravel/framework/src/Illuminate/Mail/Events/MessageSending.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Mail/Events/MessageSent.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Mail/MailServiceProvider.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Mail/Mailable.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Mail/Mailer.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Mail/Markdown.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Mail/Message.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Mail/PendingMail.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Mail/SendQueuedMailable.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Mail/Transport/ArrayTransport.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Mail/Transport/LogTransport.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Mail/Transport/MailgunTransport.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Mail/Transport/MandrillTransport.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Mail/Transport/SesTransport.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Mail/Transport/SparkPostTransport.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Mail/Transport/Transport.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Mail/TransportManager.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Mail/composer.json delete mode 100644 vendor/laravel/framework/src/Illuminate/Mail/resources/views/html/button.blade.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Mail/resources/views/html/footer.blade.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Mail/resources/views/html/header.blade.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Mail/resources/views/html/layout.blade.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Mail/resources/views/html/message.blade.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Mail/resources/views/html/panel.blade.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Mail/resources/views/html/promotion.blade.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Mail/resources/views/html/promotion/button.blade.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Mail/resources/views/html/subcopy.blade.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Mail/resources/views/html/table.blade.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Mail/resources/views/html/themes/default.css delete mode 100644 vendor/laravel/framework/src/Illuminate/Mail/resources/views/markdown/button.blade.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Mail/resources/views/markdown/footer.blade.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Mail/resources/views/markdown/header.blade.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Mail/resources/views/markdown/layout.blade.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Mail/resources/views/markdown/message.blade.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Mail/resources/views/markdown/panel.blade.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Mail/resources/views/markdown/promotion.blade.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Mail/resources/views/markdown/promotion/button.blade.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Mail/resources/views/markdown/subcopy.blade.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Mail/resources/views/markdown/table.blade.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Notifications/Action.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Notifications/AnonymousNotifiable.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Notifications/ChannelManager.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Notifications/Channels/BroadcastChannel.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Notifications/Channels/DatabaseChannel.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Notifications/Channels/MailChannel.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Notifications/Channels/NexmoSmsChannel.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Notifications/Channels/SlackWebhookChannel.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Notifications/Console/NotificationTableCommand.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Notifications/Console/stubs/notifications.stub delete mode 100644 vendor/laravel/framework/src/Illuminate/Notifications/DatabaseNotification.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Notifications/DatabaseNotificationCollection.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Notifications/Events/BroadcastNotificationCreated.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Notifications/Events/NotificationFailed.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Notifications/Events/NotificationSending.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Notifications/Events/NotificationSent.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Notifications/HasDatabaseNotifications.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Notifications/Messages/BroadcastMessage.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Notifications/Messages/DatabaseMessage.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Notifications/Messages/MailMessage.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Notifications/Messages/NexmoMessage.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Notifications/Messages/SimpleMessage.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Notifications/Messages/SlackAttachment.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Notifications/Messages/SlackAttachmentField.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Notifications/Messages/SlackMessage.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Notifications/Notifiable.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Notifications/Notification.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Notifications/NotificationSender.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Notifications/NotificationServiceProvider.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Notifications/RoutesNotifications.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Notifications/SendQueuedNotifications.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Notifications/composer.json delete mode 100644 vendor/laravel/framework/src/Illuminate/Notifications/resources/views/email.blade.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Pagination/AbstractPaginator.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Pagination/LengthAwarePaginator.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Pagination/PaginationServiceProvider.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Pagination/Paginator.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Pagination/UrlWindow.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Pagination/composer.json delete mode 100644 vendor/laravel/framework/src/Illuminate/Pagination/resources/views/bootstrap-4.blade.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Pagination/resources/views/default.blade.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Pagination/resources/views/semantic-ui.blade.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Pagination/resources/views/simple-bootstrap-4.blade.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Pagination/resources/views/simple-default.blade.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Pipeline/Hub.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Pipeline/PipelineServiceProvider.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Pipeline/composer.json delete mode 100755 vendor/laravel/framework/src/Illuminate/Queue/BeanstalkdQueue.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Queue/CallQueuedHandler.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Queue/Capsule/Manager.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Queue/Connectors/BeanstalkdConnector.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Queue/Connectors/ConnectorInterface.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Queue/Connectors/DatabaseConnector.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Queue/Connectors/NullConnector.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Queue/Connectors/RedisConnector.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Queue/Connectors/SqsConnector.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Queue/Connectors/SyncConnector.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Queue/Console/FailedTableCommand.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Queue/Console/FlushFailedCommand.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Queue/Console/ForgetFailedCommand.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Queue/Console/ListFailedCommand.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Queue/Console/ListenCommand.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Queue/Console/RestartCommand.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Queue/Console/RetryCommand.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Queue/Console/TableCommand.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Queue/Console/WorkCommand.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Queue/Console/stubs/failed_jobs.stub delete mode 100644 vendor/laravel/framework/src/Illuminate/Queue/Console/stubs/jobs.stub delete mode 100644 vendor/laravel/framework/src/Illuminate/Queue/DatabaseQueue.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Queue/Events/JobExceptionOccurred.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Queue/Events/JobFailed.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Queue/Events/JobProcessed.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Queue/Events/JobProcessing.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Queue/Events/Looping.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Queue/Events/WorkerStopping.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Queue/Failed/DatabaseFailedJobProvider.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Queue/Failed/FailedJobProviderInterface.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Queue/Failed/NullFailedJobProvider.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Queue/FailingJob.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Queue/InteractsWithQueue.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Queue/InvalidPayloadException.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Queue/Jobs/BeanstalkdJob.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Queue/Jobs/DatabaseJob.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Queue/Jobs/DatabaseJobRecord.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Queue/Jobs/Job.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Queue/Jobs/JobName.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Queue/Jobs/RedisJob.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Queue/Jobs/SqsJob.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Queue/Jobs/SyncJob.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Queue/Listener.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Queue/ListenerOptions.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Queue/LuaScripts.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Queue/ManuallyFailedException.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Queue/MaxAttemptsExceededException.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Queue/NullQueue.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Queue/Queue.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Queue/QueueManager.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Queue/QueueServiceProvider.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Queue/README.md delete mode 100644 vendor/laravel/framework/src/Illuminate/Queue/RedisQueue.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Queue/SerializesAndRestoresModelIdentifiers.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Queue/SerializesModels.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Queue/SqsQueue.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Queue/SyncQueue.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Queue/Worker.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Queue/WorkerOptions.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Queue/composer.json delete mode 100644 vendor/laravel/framework/src/Illuminate/Redis/Connections/Connection.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Redis/Connections/PhpRedisClusterConnection.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Redis/Connections/PhpRedisConnection.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Redis/Connections/PredisClusterConnection.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Redis/Connections/PredisConnection.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Redis/Connectors/PhpRedisConnector.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Redis/Connectors/PredisConnector.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Redis/Limiters/ConcurrencyLimiter.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Redis/Limiters/ConcurrencyLimiterBuilder.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Redis/Limiters/DurationLimiter.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Redis/Limiters/DurationLimiterBuilder.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Redis/RedisManager.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Redis/RedisServiceProvider.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Redis/composer.json delete mode 100755 vendor/laravel/framework/src/Illuminate/Routing/Console/ControllerMakeCommand.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Routing/Console/MiddlewareMakeCommand.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Routing/Console/stubs/controller.api.stub delete mode 100644 vendor/laravel/framework/src/Illuminate/Routing/Console/stubs/controller.model.api.stub delete mode 100644 vendor/laravel/framework/src/Illuminate/Routing/Console/stubs/controller.model.stub delete mode 100644 vendor/laravel/framework/src/Illuminate/Routing/Console/stubs/controller.nested.api.stub delete mode 100644 vendor/laravel/framework/src/Illuminate/Routing/Console/stubs/controller.nested.stub delete mode 100644 vendor/laravel/framework/src/Illuminate/Routing/Console/stubs/controller.plain.stub delete mode 100644 vendor/laravel/framework/src/Illuminate/Routing/Console/stubs/controller.stub delete mode 100644 vendor/laravel/framework/src/Illuminate/Routing/Console/stubs/middleware.stub delete mode 100644 vendor/laravel/framework/src/Illuminate/Routing/Contracts/ControllerDispatcher.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Routing/Controller.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Routing/ControllerMiddlewareOptions.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Routing/Events/RouteMatched.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Routing/Exceptions/InvalidSignatureException.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Routing/Exceptions/UrlGenerationException.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Routing/ImplicitRouteBinding.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Routing/Matching/HostValidator.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Routing/Matching/MethodValidator.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Routing/Matching/SchemeValidator.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Routing/Matching/UriValidator.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Routing/Matching/ValidatorInterface.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Routing/Middleware/SubstituteBindings.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequests.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequestsWithRedis.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Routing/Middleware/ValidateSignature.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Routing/MiddlewareNameResolver.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Routing/PendingResourceRegistration.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Routing/RedirectController.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Routing/Redirector.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Routing/ResourceRegistrar.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Routing/ResponseFactory.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Routing/Route.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Routing/RouteAction.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Routing/RouteBinding.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Routing/RouteCollection.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Routing/RouteCompiler.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Routing/RouteDependencyResolverTrait.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Routing/RouteGroup.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Routing/RouteParameterBinder.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Routing/RouteRegistrar.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Routing/RouteSignatureParameters.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Routing/RouteUrlGenerator.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Routing/Router.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Routing/RoutingServiceProvider.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Routing/SortedMiddleware.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Routing/UrlGenerator.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Routing/ViewController.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Routing/composer.json delete mode 100755 vendor/laravel/framework/src/Illuminate/Session/CacheBasedSessionHandler.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Session/Console/SessionTableCommand.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Session/Console/stubs/database.stub delete mode 100755 vendor/laravel/framework/src/Illuminate/Session/CookieSessionHandler.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Session/DatabaseSessionHandler.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Session/EncryptedStore.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Session/ExistenceAwareInterface.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Session/FileSessionHandler.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Session/Middleware/AuthenticateSession.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Session/NullSessionHandler.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Session/SessionManager.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Session/SessionServiceProvider.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Session/Store.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Session/TokenMismatchException.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Session/composer.json delete mode 100644 vendor/laravel/framework/src/Illuminate/Support/AggregateServiceProvider.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Support/Arr.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Support/Carbon.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Support/Collection.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Support/Composer.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Support/Debug/Dumper.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Support/Debug/HtmlDumper.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Support/Facades/App.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Support/Facades/Artisan.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Support/Facades/Auth.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Support/Facades/Blade.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Support/Facades/Broadcast.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Support/Facades/Bus.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Support/Facades/Cache.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Support/Facades/Config.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Support/Facades/Cookie.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Support/Facades/Crypt.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Support/Facades/DB.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Support/Facades/Event.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Support/Facades/Facade.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Support/Facades/File.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Support/Facades/Gate.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Support/Facades/Hash.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Support/Facades/Input.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Support/Facades/Lang.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Support/Facades/Log.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Support/Facades/Mail.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Support/Facades/Notification.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Support/Facades/Password.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Support/Facades/Queue.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Support/Facades/Redirect.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Support/Facades/Redis.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Support/Facades/Request.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Support/Facades/Response.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Support/Facades/Route.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Support/Facades/Schema.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Support/Facades/Session.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Support/Facades/Storage.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Support/Facades/URL.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Support/Facades/Validator.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Support/Facades/View.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Support/Fluent.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Support/HigherOrderCollectionProxy.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Support/HigherOrderTapProxy.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Support/HtmlString.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Support/InteractsWithTime.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Support/Manager.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Support/MessageBag.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Support/NamespacedItemResolver.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Support/Optional.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Support/Pluralizer.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Support/ProcessUtils.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Support/ServiceProvider.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Support/Str.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Support/Testing/Fakes/BusFake.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Support/Testing/Fakes/EventFake.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Support/Testing/Fakes/MailFake.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Support/Testing/Fakes/NotificationFake.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Support/Testing/Fakes/PendingMailFake.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Support/Testing/Fakes/QueueFake.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Support/Traits/CapsuleManagerTrait.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Support/Traits/Localizable.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Support/Traits/Macroable.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Support/ViewErrorBag.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Support/composer.json delete mode 100755 vendor/laravel/framework/src/Illuminate/Support/helpers.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Translation/ArrayLoader.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Translation/FileLoader.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Translation/MessageSelector.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Translation/TranslationServiceProvider.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Translation/Translator.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Translation/composer.json delete mode 100644 vendor/laravel/framework/src/Illuminate/Validation/ClosureValidationRule.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Validation/Concerns/FormatsMessages.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Validation/Concerns/ReplacesAttributes.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Validation/Concerns/ValidatesAttributes.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Validation/DatabasePresenceVerifier.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Validation/Factory.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Validation/PresenceVerifierInterface.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Validation/Rule.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Validation/Rules/DatabaseRule.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Validation/Rules/Dimensions.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Validation/Rules/Exists.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Validation/Rules/In.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Validation/Rules/NotIn.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Validation/Rules/Unique.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Validation/UnauthorizedException.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Validation/ValidatesWhenResolvedTrait.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Validation/ValidationData.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Validation/ValidationException.php delete mode 100644 vendor/laravel/framework/src/Illuminate/Validation/ValidationRuleParser.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Validation/ValidationServiceProvider.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Validation/Validator.php delete mode 100755 vendor/laravel/framework/src/Illuminate/Validation/composer.json delete mode 100644 vendor/laravel/framework/src/Illuminate/View/Compilers/BladeCompiler.php delete mode 100755 vendor/laravel/framework/src/Illuminate/View/Compilers/Compiler.php delete mode 100755 vendor/laravel/framework/src/Illuminate/View/Compilers/CompilerInterface.php delete mode 100644 vendor/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesAuthorizations.php delete mode 100644 vendor/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesComments.php delete mode 100644 vendor/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesComponents.php delete mode 100644 vendor/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesConditionals.php delete mode 100644 vendor/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesEchos.php delete mode 100644 vendor/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesHelpers.php delete mode 100644 vendor/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesIncludes.php delete mode 100644 vendor/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesInjections.php delete mode 100644 vendor/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesJson.php delete mode 100644 vendor/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesLayouts.php delete mode 100644 vendor/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesLoops.php delete mode 100644 vendor/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesRawPhp.php delete mode 100644 vendor/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesStacks.php delete mode 100644 vendor/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesTranslations.php delete mode 100644 vendor/laravel/framework/src/Illuminate/View/Concerns/ManagesComponents.php delete mode 100644 vendor/laravel/framework/src/Illuminate/View/Concerns/ManagesEvents.php delete mode 100644 vendor/laravel/framework/src/Illuminate/View/Concerns/ManagesLayouts.php delete mode 100644 vendor/laravel/framework/src/Illuminate/View/Concerns/ManagesLoops.php delete mode 100644 vendor/laravel/framework/src/Illuminate/View/Concerns/ManagesStacks.php delete mode 100644 vendor/laravel/framework/src/Illuminate/View/Concerns/ManagesTranslations.php delete mode 100755 vendor/laravel/framework/src/Illuminate/View/Engines/CompilerEngine.php delete mode 100755 vendor/laravel/framework/src/Illuminate/View/Engines/Engine.php delete mode 100755 vendor/laravel/framework/src/Illuminate/View/Engines/EngineResolver.php delete mode 100644 vendor/laravel/framework/src/Illuminate/View/Engines/FileEngine.php delete mode 100755 vendor/laravel/framework/src/Illuminate/View/Engines/PhpEngine.php delete mode 100755 vendor/laravel/framework/src/Illuminate/View/Factory.php delete mode 100755 vendor/laravel/framework/src/Illuminate/View/FileViewFinder.php delete mode 100644 vendor/laravel/framework/src/Illuminate/View/Middleware/ShareErrorsFromSession.php delete mode 100755 vendor/laravel/framework/src/Illuminate/View/View.php delete mode 100755 vendor/laravel/framework/src/Illuminate/View/ViewFinderInterface.php delete mode 100644 vendor/laravel/framework/src/Illuminate/View/ViewName.php delete mode 100755 vendor/laravel/framework/src/Illuminate/View/ViewServiceProvider.php delete mode 100644 vendor/laravel/framework/src/Illuminate/View/composer.json delete mode 100644 vendor/laravel/tinker/LICENSE.txt delete mode 100644 vendor/laravel/tinker/README.md delete mode 100644 vendor/laravel/tinker/composer.json delete mode 100644 vendor/laravel/tinker/config/tinker.php delete mode 100644 vendor/laravel/tinker/src/ClassAliasAutoloader.php delete mode 100644 vendor/laravel/tinker/src/Console/TinkerCommand.php delete mode 100644 vendor/laravel/tinker/src/TinkerCaster.php delete mode 100644 vendor/laravel/tinker/src/TinkerServiceProvider.php delete mode 100755 vendor/laravelcollective/html/CONTRIBUTING.md delete mode 100644 vendor/laravelcollective/html/LICENSE.txt delete mode 100755 vendor/laravelcollective/html/composer.json delete mode 100644 vendor/laravelcollective/html/readme.md delete mode 100644 vendor/laravelcollective/html/src/Componentable.php delete mode 100644 vendor/laravelcollective/html/src/Eloquent/FormAccessible.php delete mode 100644 vendor/laravelcollective/html/src/FormBuilder.php delete mode 100644 vendor/laravelcollective/html/src/FormFacade.php delete mode 100755 vendor/laravelcollective/html/src/HtmlBuilder.php delete mode 100644 vendor/laravelcollective/html/src/HtmlFacade.php delete mode 100755 vendor/laravelcollective/html/src/HtmlServiceProvider.php delete mode 100644 vendor/laravelcollective/html/src/helpers.php delete mode 100644 vendor/laravelista/lumen-vendor-publish/LICENSE.md delete mode 100644 vendor/laravelista/lumen-vendor-publish/README.md delete mode 100644 vendor/laravelista/lumen-vendor-publish/composer.json delete mode 100644 vendor/laravelista/lumen-vendor-publish/src/VendorPublishCommand.php delete mode 100644 vendor/league/flysystem/LICENSE delete mode 100644 vendor/league/flysystem/composer.json delete mode 100644 vendor/league/flysystem/src/Adapter/AbstractAdapter.php delete mode 100644 vendor/league/flysystem/src/Adapter/AbstractFtpAdapter.php delete mode 100644 vendor/league/flysystem/src/Adapter/CanOverwriteFiles.php delete mode 100644 vendor/league/flysystem/src/Adapter/Ftp.php delete mode 100644 vendor/league/flysystem/src/Adapter/Ftpd.php delete mode 100644 vendor/league/flysystem/src/Adapter/Local.php delete mode 100644 vendor/league/flysystem/src/Adapter/NullAdapter.php delete mode 100644 vendor/league/flysystem/src/Adapter/Polyfill/NotSupportingVisibilityTrait.php delete mode 100644 vendor/league/flysystem/src/Adapter/Polyfill/StreamedCopyTrait.php delete mode 100644 vendor/league/flysystem/src/Adapter/Polyfill/StreamedReadingTrait.php delete mode 100644 vendor/league/flysystem/src/Adapter/Polyfill/StreamedTrait.php delete mode 100644 vendor/league/flysystem/src/Adapter/Polyfill/StreamedWritingTrait.php delete mode 100644 vendor/league/flysystem/src/Adapter/SynologyFtp.php delete mode 100644 vendor/league/flysystem/src/AdapterInterface.php delete mode 100644 vendor/league/flysystem/src/Config.php delete mode 100644 vendor/league/flysystem/src/ConfigAwareTrait.php delete mode 100644 vendor/league/flysystem/src/Directory.php delete mode 100644 vendor/league/flysystem/src/Exception.php delete mode 100644 vendor/league/flysystem/src/File.php delete mode 100644 vendor/league/flysystem/src/FileExistsException.php delete mode 100644 vendor/league/flysystem/src/FileNotFoundException.php delete mode 100644 vendor/league/flysystem/src/Filesystem.php delete mode 100644 vendor/league/flysystem/src/FilesystemInterface.php delete mode 100644 vendor/league/flysystem/src/FilesystemNotFoundException.php delete mode 100644 vendor/league/flysystem/src/Handler.php delete mode 100644 vendor/league/flysystem/src/MountManager.php delete mode 100644 vendor/league/flysystem/src/NotSupportedException.php delete mode 100644 vendor/league/flysystem/src/Plugin/AbstractPlugin.php delete mode 100644 vendor/league/flysystem/src/Plugin/EmptyDir.php delete mode 100644 vendor/league/flysystem/src/Plugin/ForcedCopy.php delete mode 100644 vendor/league/flysystem/src/Plugin/ForcedRename.php delete mode 100644 vendor/league/flysystem/src/Plugin/GetWithMetadata.php delete mode 100644 vendor/league/flysystem/src/Plugin/ListFiles.php delete mode 100644 vendor/league/flysystem/src/Plugin/ListPaths.php delete mode 100644 vendor/league/flysystem/src/Plugin/ListWith.php delete mode 100644 vendor/league/flysystem/src/Plugin/PluggableTrait.php delete mode 100644 vendor/league/flysystem/src/Plugin/PluginNotFoundException.php delete mode 100644 vendor/league/flysystem/src/PluginInterface.php delete mode 100644 vendor/league/flysystem/src/ReadInterface.php delete mode 100644 vendor/league/flysystem/src/RootViolationException.php delete mode 100644 vendor/league/flysystem/src/SafeStorage.php delete mode 100644 vendor/league/flysystem/src/UnreadableFileException.php delete mode 100644 vendor/league/flysystem/src/Util.php delete mode 100644 vendor/league/flysystem/src/Util/ContentListingFormatter.php delete mode 100644 vendor/league/flysystem/src/Util/MimeType.php delete mode 100644 vendor/league/flysystem/src/Util/StreamHasher.php delete mode 100644 vendor/maximebf/debugbar/LICENSE delete mode 100644 vendor/maximebf/debugbar/composer.json delete mode 100644 vendor/maximebf/debugbar/src/DebugBar/Bridge/CacheCacheCollector.php delete mode 100644 vendor/maximebf/debugbar/src/DebugBar/Bridge/DoctrineCollector.php delete mode 100644 vendor/maximebf/debugbar/src/DebugBar/Bridge/MonologCollector.php delete mode 100644 vendor/maximebf/debugbar/src/DebugBar/Bridge/Propel2Collector.php delete mode 100644 vendor/maximebf/debugbar/src/DebugBar/Bridge/PropelCollector.php delete mode 100644 vendor/maximebf/debugbar/src/DebugBar/Bridge/SlimCollector.php delete mode 100644 vendor/maximebf/debugbar/src/DebugBar/Bridge/SwiftMailer/SwiftLogCollector.php delete mode 100644 vendor/maximebf/debugbar/src/DebugBar/Bridge/SwiftMailer/SwiftMailCollector.php delete mode 100644 vendor/maximebf/debugbar/src/DebugBar/Bridge/Twig/TimeableTwigExtensionProfiler.php delete mode 100644 vendor/maximebf/debugbar/src/DebugBar/Bridge/Twig/TraceableTwigEnvironment.php delete mode 100644 vendor/maximebf/debugbar/src/DebugBar/Bridge/Twig/TraceableTwigTemplate.php delete mode 100644 vendor/maximebf/debugbar/src/DebugBar/Bridge/Twig/TwigCollector.php delete mode 100644 vendor/maximebf/debugbar/src/DebugBar/Bridge/TwigProfileCollector.php delete mode 100644 vendor/maximebf/debugbar/src/DebugBar/DataCollector/AggregatedCollector.php delete mode 100644 vendor/maximebf/debugbar/src/DebugBar/DataCollector/AssetProvider.php delete mode 100644 vendor/maximebf/debugbar/src/DebugBar/DataCollector/ConfigCollector.php delete mode 100644 vendor/maximebf/debugbar/src/DebugBar/DataCollector/DataCollector.php delete mode 100644 vendor/maximebf/debugbar/src/DebugBar/DataCollector/DataCollectorInterface.php delete mode 100644 vendor/maximebf/debugbar/src/DebugBar/DataCollector/ExceptionsCollector.php delete mode 100644 vendor/maximebf/debugbar/src/DebugBar/DataCollector/LocalizationCollector.php delete mode 100644 vendor/maximebf/debugbar/src/DebugBar/DataCollector/MemoryCollector.php delete mode 100644 vendor/maximebf/debugbar/src/DebugBar/DataCollector/MessagesAggregateInterface.php delete mode 100644 vendor/maximebf/debugbar/src/DebugBar/DataCollector/MessagesCollector.php delete mode 100644 vendor/maximebf/debugbar/src/DebugBar/DataCollector/PDO/PDOCollector.php delete mode 100644 vendor/maximebf/debugbar/src/DebugBar/DataCollector/PDO/TraceablePDO.php delete mode 100644 vendor/maximebf/debugbar/src/DebugBar/DataCollector/PDO/TraceablePDOStatement.php delete mode 100644 vendor/maximebf/debugbar/src/DebugBar/DataCollector/PDO/TracedStatement.php delete mode 100644 vendor/maximebf/debugbar/src/DebugBar/DataCollector/PhpInfoCollector.php delete mode 100644 vendor/maximebf/debugbar/src/DebugBar/DataCollector/Renderable.php delete mode 100644 vendor/maximebf/debugbar/src/DebugBar/DataCollector/RequestDataCollector.php delete mode 100644 vendor/maximebf/debugbar/src/DebugBar/DataCollector/TimeDataCollector.php delete mode 100644 vendor/maximebf/debugbar/src/DebugBar/DataFormatter/DataFormatter.php delete mode 100644 vendor/maximebf/debugbar/src/DebugBar/DataFormatter/DataFormatterInterface.php delete mode 100644 vendor/maximebf/debugbar/src/DebugBar/DataFormatter/DebugBarVarDumper.php delete mode 100644 vendor/maximebf/debugbar/src/DebugBar/DataFormatter/VarDumper/DebugBarHtmlDumper.php delete mode 100644 vendor/maximebf/debugbar/src/DebugBar/DataFormatter/VarDumper/SeekingData.php delete mode 100644 vendor/maximebf/debugbar/src/DebugBar/DebugBar.php delete mode 100644 vendor/maximebf/debugbar/src/DebugBar/DebugBarException.php delete mode 100644 vendor/maximebf/debugbar/src/DebugBar/HttpDriverInterface.php delete mode 100644 vendor/maximebf/debugbar/src/DebugBar/JavascriptRenderer.php delete mode 100644 vendor/maximebf/debugbar/src/DebugBar/OpenHandler.php delete mode 100644 vendor/maximebf/debugbar/src/DebugBar/PhpHttpDriver.php delete mode 100644 vendor/maximebf/debugbar/src/DebugBar/RequestIdGenerator.php delete mode 100644 vendor/maximebf/debugbar/src/DebugBar/RequestIdGeneratorInterface.php delete mode 100644 vendor/maximebf/debugbar/src/DebugBar/Resources/debugbar.css delete mode 100644 vendor/maximebf/debugbar/src/DebugBar/Resources/debugbar.js delete mode 100644 vendor/maximebf/debugbar/src/DebugBar/Resources/openhandler.css delete mode 100644 vendor/maximebf/debugbar/src/DebugBar/Resources/openhandler.js delete mode 100644 vendor/maximebf/debugbar/src/DebugBar/Resources/vendor/font-awesome/css/font-awesome.min.css delete mode 100644 vendor/maximebf/debugbar/src/DebugBar/Resources/vendor/font-awesome/fonts/FontAwesome.otf delete mode 100644 vendor/maximebf/debugbar/src/DebugBar/Resources/vendor/font-awesome/fonts/fontawesome-webfont.eot delete mode 100644 vendor/maximebf/debugbar/src/DebugBar/Resources/vendor/font-awesome/fonts/fontawesome-webfont.svg delete mode 100644 vendor/maximebf/debugbar/src/DebugBar/Resources/vendor/font-awesome/fonts/fontawesome-webfont.ttf delete mode 100644 vendor/maximebf/debugbar/src/DebugBar/Resources/vendor/font-awesome/fonts/fontawesome-webfont.woff delete mode 100644 vendor/maximebf/debugbar/src/DebugBar/Resources/vendor/font-awesome/fonts/fontawesome-webfont.woff2 delete mode 100644 vendor/maximebf/debugbar/src/DebugBar/Resources/vendor/highlightjs/highlight.pack.js delete mode 100644 vendor/maximebf/debugbar/src/DebugBar/Resources/vendor/highlightjs/styles/github.css delete mode 100644 vendor/maximebf/debugbar/src/DebugBar/Resources/vendor/jquery/dist/jquery.min.js delete mode 100644 vendor/maximebf/debugbar/src/DebugBar/Resources/widgets.css delete mode 100644 vendor/maximebf/debugbar/src/DebugBar/Resources/widgets.js delete mode 100644 vendor/maximebf/debugbar/src/DebugBar/Resources/widgets/mails/widget.css delete mode 100644 vendor/maximebf/debugbar/src/DebugBar/Resources/widgets/mails/widget.js delete mode 100644 vendor/maximebf/debugbar/src/DebugBar/Resources/widgets/sqlqueries/widget.css delete mode 100644 vendor/maximebf/debugbar/src/DebugBar/Resources/widgets/sqlqueries/widget.js delete mode 100644 vendor/maximebf/debugbar/src/DebugBar/Resources/widgets/templates/widget.css delete mode 100644 vendor/maximebf/debugbar/src/DebugBar/Resources/widgets/templates/widget.js delete mode 100644 vendor/maximebf/debugbar/src/DebugBar/StandardDebugBar.php delete mode 100644 vendor/maximebf/debugbar/src/DebugBar/Storage/FileStorage.php delete mode 100644 vendor/maximebf/debugbar/src/DebugBar/Storage/MemcachedStorage.php delete mode 100644 vendor/maximebf/debugbar/src/DebugBar/Storage/PdoStorage.php delete mode 100644 vendor/maximebf/debugbar/src/DebugBar/Storage/RedisStorage.php delete mode 100644 vendor/maximebf/debugbar/src/DebugBar/Storage/StorageInterface.php delete mode 100644 vendor/maximebf/debugbar/src/DebugBar/Storage/pdo_storage_schema.sql delete mode 100644 vendor/mockery/mockery/.php_cs delete mode 100644 vendor/mockery/mockery/.scrutinizer.yml delete mode 100644 vendor/mockery/mockery/.styleci.yml delete mode 100644 vendor/mockery/mockery/.travis.yml delete mode 100644 vendor/mockery/mockery/CHANGELOG.md delete mode 100644 vendor/mockery/mockery/CONTRIBUTING.md delete mode 100644 vendor/mockery/mockery/LICENSE delete mode 100644 vendor/mockery/mockery/README.md delete mode 100644 vendor/mockery/mockery/composer.json delete mode 100644 vendor/mockery/mockery/docs/Makefile delete mode 100644 vendor/mockery/mockery/docs/README.md delete mode 100644 vendor/mockery/mockery/docs/conf.py delete mode 100644 vendor/mockery/mockery/docs/cookbook/default_expectations.rst delete mode 100644 vendor/mockery/mockery/docs/cookbook/detecting_mock_objects.rst delete mode 100644 vendor/mockery/mockery/docs/cookbook/index.rst delete mode 100644 vendor/mockery/mockery/docs/cookbook/map.rst.inc delete mode 100644 vendor/mockery/mockery/docs/cookbook/mocking_hard_dependencies.rst delete mode 100644 vendor/mockery/mockery/docs/getting_started/index.rst delete mode 100644 vendor/mockery/mockery/docs/getting_started/installation.rst delete mode 100644 vendor/mockery/mockery/docs/getting_started/map.rst.inc delete mode 100644 vendor/mockery/mockery/docs/getting_started/simple_example.rst delete mode 100644 vendor/mockery/mockery/docs/getting_started/upgrading.rst delete mode 100644 vendor/mockery/mockery/docs/index.rst delete mode 100644 vendor/mockery/mockery/docs/reference/argument_validation.rst delete mode 100644 vendor/mockery/mockery/docs/reference/demeter_chains.rst delete mode 100644 vendor/mockery/mockery/docs/reference/expectations.rst delete mode 100644 vendor/mockery/mockery/docs/reference/final_methods_classes.rst delete mode 100644 vendor/mockery/mockery/docs/reference/index.rst delete mode 100644 vendor/mockery/mockery/docs/reference/instance_mocking.rst delete mode 100644 vendor/mockery/mockery/docs/reference/magic_methods.rst delete mode 100644 vendor/mockery/mockery/docs/reference/map.rst.inc delete mode 100644 vendor/mockery/mockery/docs/reference/mockery/configuration.rst delete mode 100644 vendor/mockery/mockery/docs/reference/mockery/exceptions.rst delete mode 100644 vendor/mockery/mockery/docs/reference/mockery/gotchas.rst delete mode 100644 vendor/mockery/mockery/docs/reference/mockery/index.rst delete mode 100644 vendor/mockery/mockery/docs/reference/mockery/reserved_method_names.rst delete mode 100644 vendor/mockery/mockery/docs/reference/object_recording.rst delete mode 100644 vendor/mockery/mockery/docs/reference/partial_mocks.rst delete mode 100644 vendor/mockery/mockery/docs/reference/pass_by_reference_behaviours.rst delete mode 100644 vendor/mockery/mockery/docs/reference/phpunit_integration.rst delete mode 100644 vendor/mockery/mockery/docs/reference/public_properties.rst delete mode 100644 vendor/mockery/mockery/docs/reference/public_static_properties.rst delete mode 100644 vendor/mockery/mockery/docs/reference/quick_examples.rst delete mode 100644 vendor/mockery/mockery/docs/reference/startup_methods.rst delete mode 100644 vendor/mockery/mockery/examples/starship/Bootstrap.php delete mode 100644 vendor/mockery/mockery/examples/starship/Starship.php delete mode 100644 vendor/mockery/mockery/examples/starship/StarshipTest.php delete mode 100644 vendor/mockery/mockery/library/Mockery.php delete mode 100644 vendor/mockery/mockery/library/Mockery/Adapter/Phpunit/MockeryPHPUnitIntegration.php delete mode 100644 vendor/mockery/mockery/library/Mockery/Adapter/Phpunit/MockeryTestCase.php delete mode 100644 vendor/mockery/mockery/library/Mockery/Adapter/Phpunit/TestListener.php delete mode 100644 vendor/mockery/mockery/library/Mockery/CompositeExpectation.php delete mode 100644 vendor/mockery/mockery/library/Mockery/Configuration.php delete mode 100644 vendor/mockery/mockery/library/Mockery/Container.php delete mode 100644 vendor/mockery/mockery/library/Mockery/CountValidator/AtLeast.php delete mode 100644 vendor/mockery/mockery/library/Mockery/CountValidator/AtMost.php delete mode 100644 vendor/mockery/mockery/library/Mockery/CountValidator/CountValidatorAbstract.php delete mode 100644 vendor/mockery/mockery/library/Mockery/CountValidator/Exact.php delete mode 100644 vendor/mockery/mockery/library/Mockery/CountValidator/Exception.php delete mode 100644 vendor/mockery/mockery/library/Mockery/Exception.php delete mode 100644 vendor/mockery/mockery/library/Mockery/Exception/InvalidCountException.php delete mode 100644 vendor/mockery/mockery/library/Mockery/Exception/InvalidOrderException.php delete mode 100644 vendor/mockery/mockery/library/Mockery/Exception/NoMatchingExpectationException.php delete mode 100644 vendor/mockery/mockery/library/Mockery/Exception/RuntimeException.php delete mode 100644 vendor/mockery/mockery/library/Mockery/Expectation.php delete mode 100644 vendor/mockery/mockery/library/Mockery/ExpectationDirector.php delete mode 100644 vendor/mockery/mockery/library/Mockery/ExpectationInterface.php delete mode 100644 vendor/mockery/mockery/library/Mockery/Generator/CachingGenerator.php delete mode 100644 vendor/mockery/mockery/library/Mockery/Generator/DefinedTargetClass.php delete mode 100644 vendor/mockery/mockery/library/Mockery/Generator/Generator.php delete mode 100644 vendor/mockery/mockery/library/Mockery/Generator/Method.php delete mode 100644 vendor/mockery/mockery/library/Mockery/Generator/MockConfiguration.php delete mode 100644 vendor/mockery/mockery/library/Mockery/Generator/MockConfigurationBuilder.php delete mode 100644 vendor/mockery/mockery/library/Mockery/Generator/MockDefinition.php delete mode 100644 vendor/mockery/mockery/library/Mockery/Generator/Parameter.php delete mode 100644 vendor/mockery/mockery/library/Mockery/Generator/StringManipulation/Pass/CallTypeHintPass.php delete mode 100644 vendor/mockery/mockery/library/Mockery/Generator/StringManipulation/Pass/ClassNamePass.php delete mode 100644 vendor/mockery/mockery/library/Mockery/Generator/StringManipulation/Pass/ClassPass.php delete mode 100644 vendor/mockery/mockery/library/Mockery/Generator/StringManipulation/Pass/InstanceMockPass.php delete mode 100644 vendor/mockery/mockery/library/Mockery/Generator/StringManipulation/Pass/InterfacePass.php delete mode 100644 vendor/mockery/mockery/library/Mockery/Generator/StringManipulation/Pass/MethodDefinitionPass.php delete mode 100644 vendor/mockery/mockery/library/Mockery/Generator/StringManipulation/Pass/Pass.php delete mode 100644 vendor/mockery/mockery/library/Mockery/Generator/StringManipulation/Pass/RemoveBuiltinMethodsThatAreFinalPass.php delete mode 100644 vendor/mockery/mockery/library/Mockery/Generator/StringManipulation/Pass/RemoveUnserializeForInternalSerializableClassesPass.php delete mode 100644 vendor/mockery/mockery/library/Mockery/Generator/StringManipulationGenerator.php delete mode 100644 vendor/mockery/mockery/library/Mockery/Generator/TargetClass.php delete mode 100644 vendor/mockery/mockery/library/Mockery/Generator/UndefinedTargetClass.php delete mode 100644 vendor/mockery/mockery/library/Mockery/Instantiator.php delete mode 100644 vendor/mockery/mockery/library/Mockery/Loader.php delete mode 100644 vendor/mockery/mockery/library/Mockery/Loader/EvalLoader.php delete mode 100644 vendor/mockery/mockery/library/Mockery/Loader/Loader.php delete mode 100644 vendor/mockery/mockery/library/Mockery/Loader/RequireLoader.php delete mode 100644 vendor/mockery/mockery/library/Mockery/Matcher/Any.php delete mode 100644 vendor/mockery/mockery/library/Mockery/Matcher/AnyOf.php delete mode 100644 vendor/mockery/mockery/library/Mockery/Matcher/Closure.php delete mode 100644 vendor/mockery/mockery/library/Mockery/Matcher/Contains.php delete mode 100644 vendor/mockery/mockery/library/Mockery/Matcher/Ducktype.php delete mode 100644 vendor/mockery/mockery/library/Mockery/Matcher/HasKey.php delete mode 100644 vendor/mockery/mockery/library/Mockery/Matcher/HasValue.php delete mode 100644 vendor/mockery/mockery/library/Mockery/Matcher/MatcherAbstract.php delete mode 100644 vendor/mockery/mockery/library/Mockery/Matcher/MustBe.php delete mode 100644 vendor/mockery/mockery/library/Mockery/Matcher/Not.php delete mode 100644 vendor/mockery/mockery/library/Mockery/Matcher/NotAnyOf.php delete mode 100644 vendor/mockery/mockery/library/Mockery/Matcher/Subset.php delete mode 100644 vendor/mockery/mockery/library/Mockery/Matcher/Type.php delete mode 100644 vendor/mockery/mockery/library/Mockery/MethodCall.php delete mode 100644 vendor/mockery/mockery/library/Mockery/Mock.php delete mode 100644 vendor/mockery/mockery/library/Mockery/MockInterface.php delete mode 100644 vendor/mockery/mockery/library/Mockery/ReceivedMethodCalls.php delete mode 100644 vendor/mockery/mockery/library/Mockery/Recorder.php delete mode 100644 vendor/mockery/mockery/library/Mockery/Undefined.php delete mode 100644 vendor/mockery/mockery/library/Mockery/VerificationDirector.php delete mode 100644 vendor/mockery/mockery/library/Mockery/VerificationExpectation.php delete mode 100644 vendor/mockery/mockery/package.xml delete mode 100644 vendor/mockery/mockery/phpunit.xml.dist delete mode 100644 vendor/mockery/mockery/tests/Bootstrap.php delete mode 100644 vendor/mockery/mockery/tests/Mockery/AdhocTest.php delete mode 100644 vendor/mockery/mockery/tests/Mockery/ContainerTest.php delete mode 100644 vendor/mockery/mockery/tests/Mockery/DemeterChainTest.php delete mode 100644 vendor/mockery/mockery/tests/Mockery/ExpectationTest.php delete mode 100644 vendor/mockery/mockery/tests/Mockery/Fixtures/MethodWithNullableParameters.php delete mode 100644 vendor/mockery/mockery/tests/Mockery/Fixtures/MethodWithNullableReturnType.php delete mode 100644 vendor/mockery/mockery/tests/Mockery/Fixtures/VoidMethod.php delete mode 100644 vendor/mockery/mockery/tests/Mockery/Generator/DefinedTargetClassTest.php delete mode 100644 vendor/mockery/mockery/tests/Mockery/Generator/MockConfigurationTest.php delete mode 100644 vendor/mockery/mockery/tests/Mockery/Generator/StringManipulation/Pass/CallTypeHintPassTest.php delete mode 100644 vendor/mockery/mockery/tests/Mockery/Generator/StringManipulation/Pass/ClassNamePassTest.php delete mode 100644 vendor/mockery/mockery/tests/Mockery/Generator/StringManipulation/Pass/InstanceMockPassTest.php delete mode 100644 vendor/mockery/mockery/tests/Mockery/Generator/StringManipulation/Pass/InterfacePassTest.php delete mode 100644 vendor/mockery/mockery/tests/Mockery/HamcrestExpectationTest.php delete mode 100644 vendor/mockery/mockery/tests/Mockery/Loader/EvalLoaderTest.php delete mode 100644 vendor/mockery/mockery/tests/Mockery/Loader/LoaderTestCase.php delete mode 100644 vendor/mockery/mockery/tests/Mockery/Loader/RequireLoaderTest.php delete mode 100644 vendor/mockery/mockery/tests/Mockery/LoaderTest.php delete mode 100644 vendor/mockery/mockery/tests/Mockery/MockClassWithFinalWakeupTest.php delete mode 100644 vendor/mockery/mockery/tests/Mockery/MockClassWithUnknownTypeHintTest.php delete mode 100644 vendor/mockery/mockery/tests/Mockery/MockTest.php delete mode 100644 vendor/mockery/mockery/tests/Mockery/MockeryCanMockMultipleInterfacesWhichOverlapTest.php delete mode 100644 vendor/mockery/mockery/tests/Mockery/MockingMethodsWithNullableParametersTest.php delete mode 100644 vendor/mockery/mockery/tests/Mockery/MockingNullableMethodsTest.php delete mode 100644 vendor/mockery/mockery/tests/Mockery/MockingParameterAndReturnTypesTest.php delete mode 100644 vendor/mockery/mockery/tests/Mockery/MockingProtectedMethodsTest.php delete mode 100644 vendor/mockery/mockery/tests/Mockery/MockingVariadicArgumentsTest.php delete mode 100644 vendor/mockery/mockery/tests/Mockery/MockingVoidMethodsTest.php delete mode 100644 vendor/mockery/mockery/tests/Mockery/NamedMockTest.php delete mode 100644 vendor/mockery/mockery/tests/Mockery/RecorderTest.php delete mode 100644 vendor/mockery/mockery/tests/Mockery/SpyTest.php delete mode 100644 vendor/mockery/mockery/tests/Mockery/Test/Generator/MockConfigurationBuilderTest.php delete mode 100644 vendor/mockery/mockery/tests/Mockery/WithFormatterExpectationTest.php delete mode 100644 vendor/mockery/mockery/tests/Mockery/_files/file.txt delete mode 100755 vendor/mockery/mockery/travis/after_success.sh delete mode 100755 vendor/mockery/mockery/travis/before_script.sh delete mode 100644 vendor/mockery/mockery/travis/extra.ini delete mode 100755 vendor/mockery/mockery/travis/install.sh delete mode 100755 vendor/mockery/mockery/travis/script.sh delete mode 100644 vendor/monolog/monolog/.php_cs delete mode 100644 vendor/monolog/monolog/CHANGELOG.md delete mode 100644 vendor/monolog/monolog/LICENSE delete mode 100644 vendor/monolog/monolog/README.md delete mode 100644 vendor/monolog/monolog/composer.json delete mode 100644 vendor/monolog/monolog/doc/01-usage.md delete mode 100644 vendor/monolog/monolog/doc/02-handlers-formatters-processors.md delete mode 100644 vendor/monolog/monolog/doc/03-utilities.md delete mode 100644 vendor/monolog/monolog/doc/04-extending.md delete mode 100644 vendor/monolog/monolog/doc/sockets.md delete mode 100644 vendor/monolog/monolog/phpunit.xml.dist delete mode 100644 vendor/monolog/monolog/src/Monolog/ErrorHandler.php delete mode 100644 vendor/monolog/monolog/src/Monolog/Formatter/ChromePHPFormatter.php delete mode 100644 vendor/monolog/monolog/src/Monolog/Formatter/ElasticaFormatter.php delete mode 100644 vendor/monolog/monolog/src/Monolog/Formatter/FlowdockFormatter.php delete mode 100644 vendor/monolog/monolog/src/Monolog/Formatter/FluentdFormatter.php delete mode 100644 vendor/monolog/monolog/src/Monolog/Formatter/FormatterInterface.php delete mode 100644 vendor/monolog/monolog/src/Monolog/Formatter/GelfMessageFormatter.php delete mode 100644 vendor/monolog/monolog/src/Monolog/Formatter/HtmlFormatter.php delete mode 100644 vendor/monolog/monolog/src/Monolog/Formatter/JsonFormatter.php delete mode 100644 vendor/monolog/monolog/src/Monolog/Formatter/LineFormatter.php delete mode 100644 vendor/monolog/monolog/src/Monolog/Formatter/LogglyFormatter.php delete mode 100644 vendor/monolog/monolog/src/Monolog/Formatter/LogstashFormatter.php delete mode 100644 vendor/monolog/monolog/src/Monolog/Formatter/MongoDBFormatter.php delete mode 100644 vendor/monolog/monolog/src/Monolog/Formatter/NormalizerFormatter.php delete mode 100644 vendor/monolog/monolog/src/Monolog/Formatter/ScalarFormatter.php delete mode 100644 vendor/monolog/monolog/src/Monolog/Formatter/WildfireFormatter.php delete mode 100644 vendor/monolog/monolog/src/Monolog/Handler/AbstractHandler.php delete mode 100644 vendor/monolog/monolog/src/Monolog/Handler/AbstractProcessingHandler.php delete mode 100644 vendor/monolog/monolog/src/Monolog/Handler/AbstractSyslogHandler.php delete mode 100644 vendor/monolog/monolog/src/Monolog/Handler/AmqpHandler.php delete mode 100644 vendor/monolog/monolog/src/Monolog/Handler/BrowserConsoleHandler.php delete mode 100644 vendor/monolog/monolog/src/Monolog/Handler/BufferHandler.php delete mode 100644 vendor/monolog/monolog/src/Monolog/Handler/ChromePHPHandler.php delete mode 100644 vendor/monolog/monolog/src/Monolog/Handler/CouchDBHandler.php delete mode 100644 vendor/monolog/monolog/src/Monolog/Handler/CubeHandler.php delete mode 100644 vendor/monolog/monolog/src/Monolog/Handler/Curl/Util.php delete mode 100644 vendor/monolog/monolog/src/Monolog/Handler/DeduplicationHandler.php delete mode 100644 vendor/monolog/monolog/src/Monolog/Handler/DoctrineCouchDBHandler.php delete mode 100644 vendor/monolog/monolog/src/Monolog/Handler/DynamoDbHandler.php delete mode 100644 vendor/monolog/monolog/src/Monolog/Handler/ElasticSearchHandler.php delete mode 100644 vendor/monolog/monolog/src/Monolog/Handler/ErrorLogHandler.php delete mode 100644 vendor/monolog/monolog/src/Monolog/Handler/FilterHandler.php delete mode 100644 vendor/monolog/monolog/src/Monolog/Handler/FingersCrossed/ActivationStrategyInterface.php delete mode 100644 vendor/monolog/monolog/src/Monolog/Handler/FingersCrossed/ChannelLevelActivationStrategy.php delete mode 100644 vendor/monolog/monolog/src/Monolog/Handler/FingersCrossed/ErrorLevelActivationStrategy.php delete mode 100644 vendor/monolog/monolog/src/Monolog/Handler/FingersCrossedHandler.php delete mode 100644 vendor/monolog/monolog/src/Monolog/Handler/FirePHPHandler.php delete mode 100644 vendor/monolog/monolog/src/Monolog/Handler/FleepHookHandler.php delete mode 100644 vendor/monolog/monolog/src/Monolog/Handler/FlowdockHandler.php delete mode 100644 vendor/monolog/monolog/src/Monolog/Handler/GelfHandler.php delete mode 100644 vendor/monolog/monolog/src/Monolog/Handler/GroupHandler.php delete mode 100644 vendor/monolog/monolog/src/Monolog/Handler/HandlerInterface.php delete mode 100644 vendor/monolog/monolog/src/Monolog/Handler/HandlerWrapper.php delete mode 100644 vendor/monolog/monolog/src/Monolog/Handler/HipChatHandler.php delete mode 100644 vendor/monolog/monolog/src/Monolog/Handler/IFTTTHandler.php delete mode 100644 vendor/monolog/monolog/src/Monolog/Handler/LogEntriesHandler.php delete mode 100644 vendor/monolog/monolog/src/Monolog/Handler/LogglyHandler.php delete mode 100644 vendor/monolog/monolog/src/Monolog/Handler/MailHandler.php delete mode 100644 vendor/monolog/monolog/src/Monolog/Handler/MandrillHandler.php delete mode 100644 vendor/monolog/monolog/src/Monolog/Handler/MissingExtensionException.php delete mode 100644 vendor/monolog/monolog/src/Monolog/Handler/MongoDBHandler.php delete mode 100644 vendor/monolog/monolog/src/Monolog/Handler/NativeMailerHandler.php delete mode 100644 vendor/monolog/monolog/src/Monolog/Handler/NewRelicHandler.php delete mode 100644 vendor/monolog/monolog/src/Monolog/Handler/NullHandler.php delete mode 100644 vendor/monolog/monolog/src/Monolog/Handler/PHPConsoleHandler.php delete mode 100644 vendor/monolog/monolog/src/Monolog/Handler/PsrHandler.php delete mode 100644 vendor/monolog/monolog/src/Monolog/Handler/PushoverHandler.php delete mode 100644 vendor/monolog/monolog/src/Monolog/Handler/RavenHandler.php delete mode 100644 vendor/monolog/monolog/src/Monolog/Handler/RedisHandler.php delete mode 100644 vendor/monolog/monolog/src/Monolog/Handler/RollbarHandler.php delete mode 100644 vendor/monolog/monolog/src/Monolog/Handler/RotatingFileHandler.php delete mode 100644 vendor/monolog/monolog/src/Monolog/Handler/SamplingHandler.php delete mode 100644 vendor/monolog/monolog/src/Monolog/Handler/Slack/SlackRecord.php delete mode 100644 vendor/monolog/monolog/src/Monolog/Handler/SlackHandler.php delete mode 100644 vendor/monolog/monolog/src/Monolog/Handler/SlackWebhookHandler.php delete mode 100644 vendor/monolog/monolog/src/Monolog/Handler/SlackbotHandler.php delete mode 100644 vendor/monolog/monolog/src/Monolog/Handler/SocketHandler.php delete mode 100644 vendor/monolog/monolog/src/Monolog/Handler/StreamHandler.php delete mode 100644 vendor/monolog/monolog/src/Monolog/Handler/SwiftMailerHandler.php delete mode 100644 vendor/monolog/monolog/src/Monolog/Handler/SyslogHandler.php delete mode 100644 vendor/monolog/monolog/src/Monolog/Handler/SyslogUdp/UdpSocket.php delete mode 100644 vendor/monolog/monolog/src/Monolog/Handler/SyslogUdpHandler.php delete mode 100644 vendor/monolog/monolog/src/Monolog/Handler/TestHandler.php delete mode 100644 vendor/monolog/monolog/src/Monolog/Handler/WhatFailureGroupHandler.php delete mode 100644 vendor/monolog/monolog/src/Monolog/Handler/ZendMonitorHandler.php delete mode 100644 vendor/monolog/monolog/src/Monolog/Logger.php delete mode 100644 vendor/monolog/monolog/src/Monolog/Processor/GitProcessor.php delete mode 100644 vendor/monolog/monolog/src/Monolog/Processor/IntrospectionProcessor.php delete mode 100644 vendor/monolog/monolog/src/Monolog/Processor/MemoryPeakUsageProcessor.php delete mode 100644 vendor/monolog/monolog/src/Monolog/Processor/MemoryProcessor.php delete mode 100644 vendor/monolog/monolog/src/Monolog/Processor/MemoryUsageProcessor.php delete mode 100644 vendor/monolog/monolog/src/Monolog/Processor/MercurialProcessor.php delete mode 100644 vendor/monolog/monolog/src/Monolog/Processor/ProcessIdProcessor.php delete mode 100644 vendor/monolog/monolog/src/Monolog/Processor/PsrLogMessageProcessor.php delete mode 100644 vendor/monolog/monolog/src/Monolog/Processor/TagProcessor.php delete mode 100644 vendor/monolog/monolog/src/Monolog/Processor/UidProcessor.php delete mode 100644 vendor/monolog/monolog/src/Monolog/Processor/WebProcessor.php delete mode 100644 vendor/monolog/monolog/src/Monolog/Registry.php delete mode 100644 vendor/monolog/monolog/tests/Monolog/ErrorHandlerTest.php delete mode 100644 vendor/monolog/monolog/tests/Monolog/Formatter/ChromePHPFormatterTest.php delete mode 100644 vendor/monolog/monolog/tests/Monolog/Formatter/ElasticaFormatterTest.php delete mode 100644 vendor/monolog/monolog/tests/Monolog/Formatter/FlowdockFormatterTest.php delete mode 100644 vendor/monolog/monolog/tests/Monolog/Formatter/FluentdFormatterTest.php delete mode 100644 vendor/monolog/monolog/tests/Monolog/Formatter/GelfMessageFormatterTest.php delete mode 100644 vendor/monolog/monolog/tests/Monolog/Formatter/JsonFormatterTest.php delete mode 100644 vendor/monolog/monolog/tests/Monolog/Formatter/LineFormatterTest.php delete mode 100644 vendor/monolog/monolog/tests/Monolog/Formatter/LogglyFormatterTest.php delete mode 100644 vendor/monolog/monolog/tests/Monolog/Formatter/LogstashFormatterTest.php delete mode 100644 vendor/monolog/monolog/tests/Monolog/Formatter/MongoDBFormatterTest.php delete mode 100644 vendor/monolog/monolog/tests/Monolog/Formatter/NormalizerFormatterTest.php delete mode 100644 vendor/monolog/monolog/tests/Monolog/Formatter/ScalarFormatterTest.php delete mode 100644 vendor/monolog/monolog/tests/Monolog/Formatter/WildfireFormatterTest.php delete mode 100644 vendor/monolog/monolog/tests/Monolog/Handler/AbstractHandlerTest.php delete mode 100644 vendor/monolog/monolog/tests/Monolog/Handler/AbstractProcessingHandlerTest.php delete mode 100644 vendor/monolog/monolog/tests/Monolog/Handler/AmqpHandlerTest.php delete mode 100644 vendor/monolog/monolog/tests/Monolog/Handler/BrowserConsoleHandlerTest.php delete mode 100644 vendor/monolog/monolog/tests/Monolog/Handler/BufferHandlerTest.php delete mode 100644 vendor/monolog/monolog/tests/Monolog/Handler/ChromePHPHandlerTest.php delete mode 100644 vendor/monolog/monolog/tests/Monolog/Handler/CouchDBHandlerTest.php delete mode 100644 vendor/monolog/monolog/tests/Monolog/Handler/DeduplicationHandlerTest.php delete mode 100644 vendor/monolog/monolog/tests/Monolog/Handler/DoctrineCouchDBHandlerTest.php delete mode 100644 vendor/monolog/monolog/tests/Monolog/Handler/DynamoDbHandlerTest.php delete mode 100644 vendor/monolog/monolog/tests/Monolog/Handler/ElasticSearchHandlerTest.php delete mode 100644 vendor/monolog/monolog/tests/Monolog/Handler/ErrorLogHandlerTest.php delete mode 100644 vendor/monolog/monolog/tests/Monolog/Handler/FilterHandlerTest.php delete mode 100644 vendor/monolog/monolog/tests/Monolog/Handler/FingersCrossedHandlerTest.php delete mode 100644 vendor/monolog/monolog/tests/Monolog/Handler/FirePHPHandlerTest.php delete mode 100644 vendor/monolog/monolog/tests/Monolog/Handler/Fixtures/.gitkeep delete mode 100644 vendor/monolog/monolog/tests/Monolog/Handler/FleepHookHandlerTest.php delete mode 100644 vendor/monolog/monolog/tests/Monolog/Handler/FlowdockHandlerTest.php delete mode 100644 vendor/monolog/monolog/tests/Monolog/Handler/GelfHandlerLegacyTest.php delete mode 100644 vendor/monolog/monolog/tests/Monolog/Handler/GelfHandlerTest.php delete mode 100644 vendor/monolog/monolog/tests/Monolog/Handler/GelfMockMessagePublisher.php delete mode 100644 vendor/monolog/monolog/tests/Monolog/Handler/GroupHandlerTest.php delete mode 100644 vendor/monolog/monolog/tests/Monolog/Handler/HandlerWrapperTest.php delete mode 100644 vendor/monolog/monolog/tests/Monolog/Handler/HipChatHandlerTest.php delete mode 100644 vendor/monolog/monolog/tests/Monolog/Handler/LogEntriesHandlerTest.php delete mode 100644 vendor/monolog/monolog/tests/Monolog/Handler/MailHandlerTest.php delete mode 100644 vendor/monolog/monolog/tests/Monolog/Handler/MockRavenClient.php delete mode 100644 vendor/monolog/monolog/tests/Monolog/Handler/MongoDBHandlerTest.php delete mode 100644 vendor/monolog/monolog/tests/Monolog/Handler/NativeMailerHandlerTest.php delete mode 100644 vendor/monolog/monolog/tests/Monolog/Handler/NewRelicHandlerTest.php delete mode 100644 vendor/monolog/monolog/tests/Monolog/Handler/NullHandlerTest.php delete mode 100644 vendor/monolog/monolog/tests/Monolog/Handler/PHPConsoleHandlerTest.php delete mode 100644 vendor/monolog/monolog/tests/Monolog/Handler/PsrHandlerTest.php delete mode 100644 vendor/monolog/monolog/tests/Monolog/Handler/PushoverHandlerTest.php delete mode 100644 vendor/monolog/monolog/tests/Monolog/Handler/RavenHandlerTest.php delete mode 100644 vendor/monolog/monolog/tests/Monolog/Handler/RedisHandlerTest.php delete mode 100644 vendor/monolog/monolog/tests/Monolog/Handler/RollbarHandlerTest.php delete mode 100644 vendor/monolog/monolog/tests/Monolog/Handler/RotatingFileHandlerTest.php delete mode 100644 vendor/monolog/monolog/tests/Monolog/Handler/SamplingHandlerTest.php delete mode 100644 vendor/monolog/monolog/tests/Monolog/Handler/Slack/SlackRecordTest.php delete mode 100644 vendor/monolog/monolog/tests/Monolog/Handler/SlackHandlerTest.php delete mode 100644 vendor/monolog/monolog/tests/Monolog/Handler/SlackWebhookHandlerTest.php delete mode 100644 vendor/monolog/monolog/tests/Monolog/Handler/SlackbotHandlerTest.php delete mode 100644 vendor/monolog/monolog/tests/Monolog/Handler/SocketHandlerTest.php delete mode 100644 vendor/monolog/monolog/tests/Monolog/Handler/StreamHandlerTest.php delete mode 100644 vendor/monolog/monolog/tests/Monolog/Handler/SwiftMailerHandlerTest.php delete mode 100644 vendor/monolog/monolog/tests/Monolog/Handler/SyslogHandlerTest.php delete mode 100644 vendor/monolog/monolog/tests/Monolog/Handler/SyslogUdpHandlerTest.php delete mode 100644 vendor/monolog/monolog/tests/Monolog/Handler/TestHandlerTest.php delete mode 100644 vendor/monolog/monolog/tests/Monolog/Handler/UdpSocketTest.php delete mode 100644 vendor/monolog/monolog/tests/Monolog/Handler/WhatFailureGroupHandlerTest.php delete mode 100644 vendor/monolog/monolog/tests/Monolog/Handler/ZendMonitorHandlerTest.php delete mode 100644 vendor/monolog/monolog/tests/Monolog/LoggerTest.php delete mode 100644 vendor/monolog/monolog/tests/Monolog/Processor/GitProcessorTest.php delete mode 100644 vendor/monolog/monolog/tests/Monolog/Processor/IntrospectionProcessorTest.php delete mode 100644 vendor/monolog/monolog/tests/Monolog/Processor/MemoryPeakUsageProcessorTest.php delete mode 100644 vendor/monolog/monolog/tests/Monolog/Processor/MemoryUsageProcessorTest.php delete mode 100644 vendor/monolog/monolog/tests/Monolog/Processor/MercurialProcessorTest.php delete mode 100644 vendor/monolog/monolog/tests/Monolog/Processor/ProcessIdProcessorTest.php delete mode 100644 vendor/monolog/monolog/tests/Monolog/Processor/PsrLogMessageProcessorTest.php delete mode 100644 vendor/monolog/monolog/tests/Monolog/Processor/TagProcessorTest.php delete mode 100644 vendor/monolog/monolog/tests/Monolog/Processor/UidProcessorTest.php delete mode 100644 vendor/monolog/monolog/tests/Monolog/Processor/WebProcessorTest.php delete mode 100644 vendor/monolog/monolog/tests/Monolog/PsrLogCompatTest.php delete mode 100644 vendor/monolog/monolog/tests/Monolog/RegistryTest.php delete mode 100644 vendor/monolog/monolog/tests/Monolog/TestCase.php delete mode 100755 vendor/myclabs/deep-copy/.gitattributes delete mode 100644 vendor/myclabs/deep-copy/.scrutinizer.yml delete mode 100755 vendor/myclabs/deep-copy/.travis.yml delete mode 100644 vendor/myclabs/deep-copy/LICENSE delete mode 100644 vendor/myclabs/deep-copy/README.md delete mode 100644 vendor/myclabs/deep-copy/composer.json delete mode 100644 vendor/myclabs/deep-copy/doc/clone.png delete mode 100644 vendor/myclabs/deep-copy/doc/deep-clone.png delete mode 100644 vendor/myclabs/deep-copy/doc/deep-copy.png delete mode 100644 vendor/myclabs/deep-copy/doc/graph.png delete mode 100644 vendor/myclabs/deep-copy/fixtures/f001/A.php delete mode 100644 vendor/myclabs/deep-copy/fixtures/f001/B.php delete mode 100644 vendor/myclabs/deep-copy/fixtures/f002/A.php delete mode 100644 vendor/myclabs/deep-copy/fixtures/f003/Foo.php delete mode 100644 vendor/myclabs/deep-copy/fixtures/f004/UnclonableItem.php delete mode 100644 vendor/myclabs/deep-copy/fixtures/f005/Foo.php delete mode 100644 vendor/myclabs/deep-copy/fixtures/f006/A.php delete mode 100644 vendor/myclabs/deep-copy/fixtures/f006/B.php delete mode 100644 vendor/myclabs/deep-copy/fixtures/f007/FooDateInterval.php delete mode 100644 vendor/myclabs/deep-copy/fixtures/f007/FooDateTimeZone.php delete mode 100644 vendor/myclabs/deep-copy/fixtures/f008/A.php delete mode 100644 vendor/myclabs/deep-copy/fixtures/f008/B.php delete mode 100644 vendor/myclabs/deep-copy/src/DeepCopy/DeepCopy.php delete mode 100644 vendor/myclabs/deep-copy/src/DeepCopy/Exception/CloneException.php delete mode 100644 vendor/myclabs/deep-copy/src/DeepCopy/Exception/PropertyException.php delete mode 100644 vendor/myclabs/deep-copy/src/DeepCopy/Filter/Doctrine/DoctrineCollectionFilter.php delete mode 100644 vendor/myclabs/deep-copy/src/DeepCopy/Filter/Doctrine/DoctrineEmptyCollectionFilter.php delete mode 100644 vendor/myclabs/deep-copy/src/DeepCopy/Filter/Doctrine/DoctrineProxyFilter.php delete mode 100644 vendor/myclabs/deep-copy/src/DeepCopy/Filter/Filter.php delete mode 100644 vendor/myclabs/deep-copy/src/DeepCopy/Filter/KeepFilter.php delete mode 100644 vendor/myclabs/deep-copy/src/DeepCopy/Filter/ReplaceFilter.php delete mode 100644 vendor/myclabs/deep-copy/src/DeepCopy/Filter/SetNullFilter.php delete mode 100644 vendor/myclabs/deep-copy/src/DeepCopy/Matcher/Doctrine/DoctrineProxyMatcher.php delete mode 100644 vendor/myclabs/deep-copy/src/DeepCopy/Matcher/Matcher.php delete mode 100644 vendor/myclabs/deep-copy/src/DeepCopy/Matcher/PropertyMatcher.php delete mode 100644 vendor/myclabs/deep-copy/src/DeepCopy/Matcher/PropertyNameMatcher.php delete mode 100644 vendor/myclabs/deep-copy/src/DeepCopy/Matcher/PropertyTypeMatcher.php delete mode 100644 vendor/myclabs/deep-copy/src/DeepCopy/Reflection/ReflectionHelper.php delete mode 100644 vendor/myclabs/deep-copy/src/DeepCopy/TypeFilter/Date/DateIntervalFilter.php delete mode 100644 vendor/myclabs/deep-copy/src/DeepCopy/TypeFilter/ReplaceFilter.php delete mode 100644 vendor/myclabs/deep-copy/src/DeepCopy/TypeFilter/ShallowCopyFilter.php delete mode 100644 vendor/myclabs/deep-copy/src/DeepCopy/TypeFilter/Spl/SplDoublyLinkedList.php delete mode 100644 vendor/myclabs/deep-copy/src/DeepCopy/TypeFilter/Spl/SplDoublyLinkedListFilter.php delete mode 100644 vendor/myclabs/deep-copy/src/DeepCopy/TypeFilter/TypeFilter.php delete mode 100644 vendor/myclabs/deep-copy/src/DeepCopy/TypeMatcher/TypeMatcher.php delete mode 100644 vendor/myclabs/deep-copy/src/DeepCopy/deep_copy.php delete mode 100644 vendor/nesbot/carbon/.php_cs.dist delete mode 100644 vendor/nesbot/carbon/LICENSE delete mode 100644 vendor/nesbot/carbon/build.php delete mode 100644 vendor/nesbot/carbon/composer.json delete mode 100644 vendor/nesbot/carbon/readme.md delete mode 100644 vendor/nesbot/carbon/src/Carbon/Carbon.php delete mode 100644 vendor/nesbot/carbon/src/Carbon/CarbonInterval.php delete mode 100644 vendor/nesbot/carbon/src/Carbon/Exceptions/InvalidDateException.php delete mode 100644 vendor/nesbot/carbon/src/Carbon/Lang/af.php delete mode 100644 vendor/nesbot/carbon/src/Carbon/Lang/ar.php delete mode 100644 vendor/nesbot/carbon/src/Carbon/Lang/ar_Shakl.php delete mode 100644 vendor/nesbot/carbon/src/Carbon/Lang/az.php delete mode 100644 vendor/nesbot/carbon/src/Carbon/Lang/bg.php delete mode 100644 vendor/nesbot/carbon/src/Carbon/Lang/bn.php delete mode 100644 vendor/nesbot/carbon/src/Carbon/Lang/ca.php delete mode 100644 vendor/nesbot/carbon/src/Carbon/Lang/cs.php delete mode 100644 vendor/nesbot/carbon/src/Carbon/Lang/da.php delete mode 100644 vendor/nesbot/carbon/src/Carbon/Lang/de.php delete mode 100644 vendor/nesbot/carbon/src/Carbon/Lang/dv_MV.php delete mode 100644 vendor/nesbot/carbon/src/Carbon/Lang/el.php delete mode 100644 vendor/nesbot/carbon/src/Carbon/Lang/en.php delete mode 100644 vendor/nesbot/carbon/src/Carbon/Lang/eo.php delete mode 100644 vendor/nesbot/carbon/src/Carbon/Lang/es.php delete mode 100644 vendor/nesbot/carbon/src/Carbon/Lang/et.php delete mode 100644 vendor/nesbot/carbon/src/Carbon/Lang/eu.php delete mode 100644 vendor/nesbot/carbon/src/Carbon/Lang/fa.php delete mode 100644 vendor/nesbot/carbon/src/Carbon/Lang/fi.php delete mode 100644 vendor/nesbot/carbon/src/Carbon/Lang/fo.php delete mode 100644 vendor/nesbot/carbon/src/Carbon/Lang/fr.php delete mode 100644 vendor/nesbot/carbon/src/Carbon/Lang/gl.php delete mode 100644 vendor/nesbot/carbon/src/Carbon/Lang/gu.php delete mode 100644 vendor/nesbot/carbon/src/Carbon/Lang/he.php delete mode 100644 vendor/nesbot/carbon/src/Carbon/Lang/hr.php delete mode 100644 vendor/nesbot/carbon/src/Carbon/Lang/hu.php delete mode 100644 vendor/nesbot/carbon/src/Carbon/Lang/hy.php delete mode 100644 vendor/nesbot/carbon/src/Carbon/Lang/id.php delete mode 100644 vendor/nesbot/carbon/src/Carbon/Lang/it.php delete mode 100644 vendor/nesbot/carbon/src/Carbon/Lang/ja.php delete mode 100644 vendor/nesbot/carbon/src/Carbon/Lang/ka.php delete mode 100644 vendor/nesbot/carbon/src/Carbon/Lang/kk.php delete mode 100644 vendor/nesbot/carbon/src/Carbon/Lang/km.php delete mode 100644 vendor/nesbot/carbon/src/Carbon/Lang/ko.php delete mode 100644 vendor/nesbot/carbon/src/Carbon/Lang/lt.php delete mode 100644 vendor/nesbot/carbon/src/Carbon/Lang/lv.php delete mode 100644 vendor/nesbot/carbon/src/Carbon/Lang/mk.php delete mode 100644 vendor/nesbot/carbon/src/Carbon/Lang/mn.php delete mode 100644 vendor/nesbot/carbon/src/Carbon/Lang/ms.php delete mode 100644 vendor/nesbot/carbon/src/Carbon/Lang/nl.php delete mode 100644 vendor/nesbot/carbon/src/Carbon/Lang/no.php delete mode 100644 vendor/nesbot/carbon/src/Carbon/Lang/pl.php delete mode 100644 vendor/nesbot/carbon/src/Carbon/Lang/ps.php delete mode 100644 vendor/nesbot/carbon/src/Carbon/Lang/pt.php delete mode 100644 vendor/nesbot/carbon/src/Carbon/Lang/pt_BR.php delete mode 100644 vendor/nesbot/carbon/src/Carbon/Lang/ro.php delete mode 100644 vendor/nesbot/carbon/src/Carbon/Lang/ru.php delete mode 100644 vendor/nesbot/carbon/src/Carbon/Lang/sk.php delete mode 100644 vendor/nesbot/carbon/src/Carbon/Lang/sl.php delete mode 100644 vendor/nesbot/carbon/src/Carbon/Lang/sq.php delete mode 100644 vendor/nesbot/carbon/src/Carbon/Lang/sr.php delete mode 100644 vendor/nesbot/carbon/src/Carbon/Lang/sr_Cyrl.php delete mode 100644 vendor/nesbot/carbon/src/Carbon/Lang/sr_Cyrl_ME.php delete mode 100644 vendor/nesbot/carbon/src/Carbon/Lang/sr_Latn_ME.php delete mode 100644 vendor/nesbot/carbon/src/Carbon/Lang/sr_ME.php delete mode 100644 vendor/nesbot/carbon/src/Carbon/Lang/sv.php delete mode 100644 vendor/nesbot/carbon/src/Carbon/Lang/th.php delete mode 100644 vendor/nesbot/carbon/src/Carbon/Lang/tr.php delete mode 100644 vendor/nesbot/carbon/src/Carbon/Lang/uk.php delete mode 100644 vendor/nesbot/carbon/src/Carbon/Lang/ur.php delete mode 100644 vendor/nesbot/carbon/src/Carbon/Lang/uz.php delete mode 100644 vendor/nesbot/carbon/src/Carbon/Lang/vi.php delete mode 100644 vendor/nesbot/carbon/src/Carbon/Lang/zh.php delete mode 100644 vendor/nesbot/carbon/src/Carbon/Lang/zh_TW.php delete mode 100644 vendor/nesbot/carbon/src/Carbon/Translator.php delete mode 100644 vendor/nikic/php-parser/.travis.yml delete mode 100644 vendor/nikic/php-parser/CHANGELOG.md delete mode 100644 vendor/nikic/php-parser/LICENSE delete mode 100644 vendor/nikic/php-parser/README.md delete mode 100644 vendor/nikic/php-parser/UPGRADE-1.0.md delete mode 100644 vendor/nikic/php-parser/UPGRADE-2.0.md delete mode 100644 vendor/nikic/php-parser/UPGRADE-3.0.md delete mode 100644 vendor/nikic/php-parser/UPGRADE-4.0.md delete mode 100755 vendor/nikic/php-parser/bin/php-parse delete mode 100644 vendor/nikic/php-parser/composer.json delete mode 100644 vendor/nikic/php-parser/doc/0_Introduction.markdown delete mode 100644 vendor/nikic/php-parser/doc/2_Usage_of_basic_components.markdown delete mode 100644 vendor/nikic/php-parser/doc/README.md delete mode 100644 vendor/nikic/php-parser/doc/component/AST_builders.markdown delete mode 100644 vendor/nikic/php-parser/doc/component/Constant_expression_evaluation.markdown delete mode 100644 vendor/nikic/php-parser/doc/component/Error_handling.markdown delete mode 100644 vendor/nikic/php-parser/doc/component/FAQ.markdown delete mode 100644 vendor/nikic/php-parser/doc/component/JSON_representation.markdown delete mode 100644 vendor/nikic/php-parser/doc/component/Lexer.markdown delete mode 100644 vendor/nikic/php-parser/doc/component/Name_resolution.markdown delete mode 100644 vendor/nikic/php-parser/doc/component/Performance.markdown delete mode 100644 vendor/nikic/php-parser/doc/component/Pretty_printing.markdown delete mode 100644 vendor/nikic/php-parser/doc/component/Walking_the_AST.markdown delete mode 100644 vendor/nikic/php-parser/grammar/README.md delete mode 100644 vendor/nikic/php-parser/grammar/parser.template delete mode 100644 vendor/nikic/php-parser/grammar/php5.y delete mode 100644 vendor/nikic/php-parser/grammar/php7.y delete mode 100644 vendor/nikic/php-parser/grammar/rebuildParsers.php delete mode 100644 vendor/nikic/php-parser/grammar/tokens.template delete mode 100644 vendor/nikic/php-parser/grammar/tokens.y delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Builder.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Builder/Class_.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Builder/Declaration.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Builder/FunctionLike.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Builder/Function_.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Builder/Interface_.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Builder/Method.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Builder/Namespace_.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Builder/Param.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Builder/Property.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Builder/Trait_.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Builder/Use_.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/BuilderFactory.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/BuilderHelpers.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Comment.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Comment/Doc.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/ConstExprEvaluationException.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/ConstExprEvaluator.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Error.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/ErrorHandler.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/ErrorHandler/Collecting.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/ErrorHandler/Throwing.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Internal/DiffElem.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Internal/Differ.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Internal/PrintableNewAnonClassNode.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Internal/TokenStream.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/JsonDecoder.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Lexer.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Lexer/Emulative.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/NameContext.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Arg.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Const_.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/ArrayDimFetch.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/ArrayItem.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Array_.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Assign.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/BitwiseAnd.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/BitwiseOr.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/BitwiseXor.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/Concat.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/Div.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/Minus.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/Mod.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/Mul.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/Plus.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/Pow.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/ShiftLeft.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/ShiftRight.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/AssignRef.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/BitwiseAnd.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/BitwiseOr.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/BitwiseXor.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/BooleanAnd.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/BooleanOr.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Coalesce.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Concat.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Div.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Equal.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Greater.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/GreaterOrEqual.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Identical.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/LogicalAnd.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/LogicalOr.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/LogicalXor.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Minus.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Mod.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Mul.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/NotEqual.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/NotIdentical.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Plus.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Pow.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/ShiftLeft.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/ShiftRight.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Smaller.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/SmallerOrEqual.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Spaceship.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BitwiseNot.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/BooleanNot.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Cast.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Cast/Array_.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Cast/Bool_.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Cast/Double.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Cast/Int_.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Cast/Object_.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Cast/String_.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Cast/Unset_.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/ClassConstFetch.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Clone_.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Closure.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/ClosureUse.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/ConstFetch.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Empty_.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Error.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/ErrorSuppress.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Eval_.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Exit_.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/FuncCall.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Include_.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Instanceof_.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Isset_.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/List_.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/MethodCall.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/New_.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/PostDec.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/PostInc.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/PreDec.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/PreInc.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Print_.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/PropertyFetch.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/ShellExec.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/StaticCall.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/StaticPropertyFetch.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Ternary.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/UnaryMinus.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/UnaryPlus.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Variable.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/YieldFrom.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Yield_.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/FunctionLike.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Identifier.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Name.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Name/FullyQualified.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Name/Relative.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/NullableType.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Param.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Scalar.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Scalar/DNumber.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Scalar/Encapsed.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Scalar/EncapsedStringPart.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Scalar/LNumber.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/Class_.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/Dir.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/File.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/Function_.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/Line.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/Method.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/Namespace_.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/Trait_.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Scalar/String_.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Stmt.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Break_.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Case_.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Catch_.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/ClassConst.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/ClassLike.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/ClassMethod.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Class_.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Const_.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Continue_.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/DeclareDeclare.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Declare_.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Do_.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Echo_.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/ElseIf_.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Else_.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Expression.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Finally_.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/For_.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Foreach_.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Function_.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Global_.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Goto_.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/GroupUse.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/HaltCompiler.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/If_.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/InlineHTML.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Interface_.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Label.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Namespace_.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Nop.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Property.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/PropertyProperty.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Return_.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/StaticVar.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Static_.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Switch_.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Throw_.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/TraitUse.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/TraitUseAdaptation.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/TraitUseAdaptation/Alias.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/TraitUseAdaptation/Precedence.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Trait_.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/TryCatch.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Unset_.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/UseUse.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Use_.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/While_.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Node/VarLikeIdentifier.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/NodeAbstract.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/NodeDumper.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/NodeFinder.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/NodeTraverser.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/NodeTraverserInterface.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/NodeVisitor.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/NodeVisitor/CloningVisitor.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/NodeVisitor/FindingVisitor.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/NodeVisitor/FirstFindingVisitor.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/NodeVisitor/NameResolver.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/NodeVisitorAbstract.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Parser.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Parser/Multiple.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Parser/Php5.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Parser/Php7.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/Parser/Tokens.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/ParserAbstract.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/ParserFactory.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/PrettyPrinter/Standard.php delete mode 100644 vendor/nikic/php-parser/lib/PhpParser/PrettyPrinterAbstract.php delete mode 100644 vendor/nikic/php-parser/phpunit.xml.dist delete mode 100644 vendor/nikic/php-parser/test/PhpParser/Builder/ClassTest.php delete mode 100644 vendor/nikic/php-parser/test/PhpParser/Builder/FunctionTest.php delete mode 100644 vendor/nikic/php-parser/test/PhpParser/Builder/InterfaceTest.php delete mode 100644 vendor/nikic/php-parser/test/PhpParser/Builder/MethodTest.php delete mode 100644 vendor/nikic/php-parser/test/PhpParser/Builder/NamespaceTest.php delete mode 100644 vendor/nikic/php-parser/test/PhpParser/Builder/ParamTest.php delete mode 100644 vendor/nikic/php-parser/test/PhpParser/Builder/PropertyTest.php delete mode 100644 vendor/nikic/php-parser/test/PhpParser/Builder/TraitTest.php delete mode 100644 vendor/nikic/php-parser/test/PhpParser/Builder/UseTest.php delete mode 100644 vendor/nikic/php-parser/test/PhpParser/BuilderFactoryTest.php delete mode 100644 vendor/nikic/php-parser/test/PhpParser/CodeParsingTest.php delete mode 100644 vendor/nikic/php-parser/test/PhpParser/CodeTestAbstract.php delete mode 100644 vendor/nikic/php-parser/test/PhpParser/CodeTestParser.php delete mode 100644 vendor/nikic/php-parser/test/PhpParser/CommentTest.php delete mode 100644 vendor/nikic/php-parser/test/PhpParser/ConstExprEvaluatorTest.php delete mode 100644 vendor/nikic/php-parser/test/PhpParser/ErrorHandler/CollectingTest.php delete mode 100644 vendor/nikic/php-parser/test/PhpParser/ErrorHandler/ThrowingTest.php delete mode 100644 vendor/nikic/php-parser/test/PhpParser/ErrorTest.php delete mode 100644 vendor/nikic/php-parser/test/PhpParser/Internal/DifferTest.php delete mode 100644 vendor/nikic/php-parser/test/PhpParser/JsonDecoderTest.php delete mode 100644 vendor/nikic/php-parser/test/PhpParser/Lexer/EmulativeTest.php delete mode 100644 vendor/nikic/php-parser/test/PhpParser/LexerTest.php delete mode 100644 vendor/nikic/php-parser/test/PhpParser/NameContextTest.php delete mode 100644 vendor/nikic/php-parser/test/PhpParser/Node/IdentifierTest.php delete mode 100644 vendor/nikic/php-parser/test/PhpParser/Node/NameTest.php delete mode 100644 vendor/nikic/php-parser/test/PhpParser/Node/Scalar/MagicConstTest.php delete mode 100644 vendor/nikic/php-parser/test/PhpParser/Node/Scalar/StringTest.php delete mode 100644 vendor/nikic/php-parser/test/PhpParser/Node/Stmt/ClassConstTest.php delete mode 100644 vendor/nikic/php-parser/test/PhpParser/Node/Stmt/ClassMethodTest.php delete mode 100644 vendor/nikic/php-parser/test/PhpParser/Node/Stmt/ClassTest.php delete mode 100644 vendor/nikic/php-parser/test/PhpParser/Node/Stmt/InterfaceTest.php delete mode 100644 vendor/nikic/php-parser/test/PhpParser/Node/Stmt/PropertyTest.php delete mode 100644 vendor/nikic/php-parser/test/PhpParser/NodeAbstractTest.php delete mode 100644 vendor/nikic/php-parser/test/PhpParser/NodeDumperTest.php delete mode 100644 vendor/nikic/php-parser/test/PhpParser/NodeFinderTest.php delete mode 100644 vendor/nikic/php-parser/test/PhpParser/NodeTraverserTest.php delete mode 100644 vendor/nikic/php-parser/test/PhpParser/NodeVisitor/FindingVisitorTest.php delete mode 100644 vendor/nikic/php-parser/test/PhpParser/NodeVisitor/FirstFindingVisitorTest.php delete mode 100644 vendor/nikic/php-parser/test/PhpParser/NodeVisitor/NameResolverTest.php delete mode 100644 vendor/nikic/php-parser/test/PhpParser/Parser/MultipleTest.php delete mode 100644 vendor/nikic/php-parser/test/PhpParser/Parser/Php5Test.php delete mode 100644 vendor/nikic/php-parser/test/PhpParser/Parser/Php7Test.php delete mode 100644 vendor/nikic/php-parser/test/PhpParser/ParserFactoryTest.php delete mode 100644 vendor/nikic/php-parser/test/PhpParser/ParserTest.php delete mode 100644 vendor/nikic/php-parser/test/PhpParser/PrettyPrinterTest.php delete mode 100644 vendor/nikic/php-parser/test/bootstrap.php delete mode 100644 vendor/nikic/php-parser/test/code/formatPreservation/anonClasses.test delete mode 100644 vendor/nikic/php-parser/test/code/formatPreservation/basic.test delete mode 100644 vendor/nikic/php-parser/test/code/formatPreservation/blockConversion.test delete mode 100644 vendor/nikic/php-parser/test/code/formatPreservation/comments.test delete mode 100644 vendor/nikic/php-parser/test/code/formatPreservation/fixup.test delete mode 100644 vendor/nikic/php-parser/test/code/formatPreservation/inlineHtml.test delete mode 100644 vendor/nikic/php-parser/test/code/formatPreservation/insertionOfNullable.test delete mode 100644 vendor/nikic/php-parser/test/code/formatPreservation/listInsertion.test delete mode 100644 vendor/nikic/php-parser/test/code/formatPreservation/listInsertionIndentation.test delete mode 100644 vendor/nikic/php-parser/test/code/formatPreservation/listRemoval.test delete mode 100644 vendor/nikic/php-parser/test/code/formatPreservation/modifierChange.test delete mode 100644 vendor/nikic/php-parser/test/code/formatPreservation/nopCommentAtEnd.test delete mode 100644 vendor/nikic/php-parser/test/code/formatPreservation/removalViaNull.test delete mode 100644 vendor/nikic/php-parser/test/code/formatPreservation/traitAlias.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/blockComments.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/commentAtEndOfClass.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/comments.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/errorHandling/eofError.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/errorHandling/lexerErrors.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/errorHandling/recovery.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/expr/arrayDef.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/expr/arrayDestructuring.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/expr/assign.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/expr/assignNewByRef.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/expr/cast.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/expr/clone.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/expr/closure.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/expr/comparison.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/expr/constant_expr.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/expr/errorSuppress.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/expr/exit.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/expr/fetchAndCall/args.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/expr/fetchAndCall/constFetch.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/expr/fetchAndCall/constantDeref.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/expr/fetchAndCall/funcCall.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/expr/fetchAndCall/newDeref.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/expr/fetchAndCall/objectAccess.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/expr/fetchAndCall/simpleArrayAccess.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/expr/fetchAndCall/staticCall.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/expr/fetchAndCall/staticPropertyFetch.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/expr/includeAndEval.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/expr/issetAndEmpty.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/expr/listReferences.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/expr/listWithKeys.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/expr/logic.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/expr/math.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/expr/new.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/expr/newWithoutClass.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/expr/print.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/expr/shellExec.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/expr/ternaryAndCoalesce.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/expr/trailingCommas.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/expr/uvs/globalNonSimpleVarError.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/expr/uvs/indirectCall.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/expr/uvs/isset.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/expr/uvs/misc.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/expr/uvs/new.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/expr/uvs/staticProperty.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/expr/variable.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/exprStmtMode.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/scalar/constantString.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/scalar/docString.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/scalar/docStringNewlines.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/scalar/encapsedNegVarOffset.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/scalar/encapsedString.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/scalar/float.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/scalar/int.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/scalar/invalidOctal.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/scalar/magicConst.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/scalar/unicodeEscape.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/semiReserved.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/stmt/blocklessStatement.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/stmt/class/abstract.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/stmt/class/anonymous.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/stmt/class/conditional.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/stmt/class/constModifierErrors.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/stmt/class/constModifiers.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/stmt/class/final.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/stmt/class/implicitPublic.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/stmt/class/interface.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/stmt/class/modifier.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/stmt/class/name.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/stmt/class/php4Style.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/stmt/class/simple.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/stmt/class/staticMethod.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/stmt/class/trait.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/stmt/const.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/stmt/controlFlow.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/stmt/declare.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/stmt/echo.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/stmt/function/builtinTypeDeclarations.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/stmt/function/byRef.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/stmt/function/conditional.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/stmt/function/defaultValues.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/stmt/function/nullableTypes.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/stmt/function/returnTypes.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/stmt/function/specialVars.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/stmt/function/typeDeclarations.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/stmt/function/variadic.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/stmt/function/variadicDefaultValue.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/stmt/generator/basic.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/stmt/generator/yieldPrecedence.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/stmt/generator/yieldUnaryPrecedence.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/stmt/haltCompiler.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/stmt/haltCompilerInvalidSyntax.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/stmt/haltCompilerOffset.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/stmt/haltCompilerOutermostScope.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/stmt/hashbang.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/stmt/if.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/stmt/inlineHTML.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/stmt/loop/do.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/stmt/loop/for.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/stmt/loop/foreach.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/stmt/loop/while.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/stmt/multiCatch.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/stmt/namespace/alias.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/stmt/namespace/braced.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/stmt/namespace/commentAfterNamespace.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/stmt/namespace/groupUse.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/stmt/namespace/groupUseErrors.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/stmt/namespace/groupUsePositions.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/stmt/namespace/groupUseTrailingComma.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/stmt/namespace/invalidName.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/stmt/namespace/mix.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/stmt/namespace/name.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/stmt/namespace/nested.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/stmt/namespace/notBraced.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/stmt/namespace/nsAfterHashbang.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/stmt/namespace/outsideStmt.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/stmt/namespace/outsideStmtInvalid.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/stmt/switch.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/stmt/tryCatch.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/stmt/tryWithoutCatch.test delete mode 100644 vendor/nikic/php-parser/test/code/parser/stmt/unset.test delete mode 100644 vendor/nikic/php-parser/test/code/prettyPrinter/comments.test delete mode 100644 vendor/nikic/php-parser/test/code/prettyPrinter/commentsInCommaList.test delete mode 100644 vendor/nikic/php-parser/test/code/prettyPrinter/expr/anonymousClass.test delete mode 100644 vendor/nikic/php-parser/test/code/prettyPrinter/expr/arrayDestructuring.test delete mode 100644 vendor/nikic/php-parser/test/code/prettyPrinter/expr/call.test delete mode 100644 vendor/nikic/php-parser/test/code/prettyPrinter/expr/closure.test delete mode 100644 vendor/nikic/php-parser/test/code/prettyPrinter/expr/constant_deref.test delete mode 100644 vendor/nikic/php-parser/test/code/prettyPrinter/expr/docStrings.test delete mode 100644 vendor/nikic/php-parser/test/code/prettyPrinter/expr/include.test delete mode 100644 vendor/nikic/php-parser/test/code/prettyPrinter/expr/intrinsics.test delete mode 100644 vendor/nikic/php-parser/test/code/prettyPrinter/expr/list.test delete mode 100644 vendor/nikic/php-parser/test/code/prettyPrinter/expr/literals.test delete mode 100644 vendor/nikic/php-parser/test/code/prettyPrinter/expr/numbers.test delete mode 100644 vendor/nikic/php-parser/test/code/prettyPrinter/expr/operators.test delete mode 100644 vendor/nikic/php-parser/test/code/prettyPrinter/expr/parentheses.test delete mode 100644 vendor/nikic/php-parser/test/code/prettyPrinter/expr/shortArraySyntax.test delete mode 100644 vendor/nikic/php-parser/test/code/prettyPrinter/expr/stringEscaping.test delete mode 100644 vendor/nikic/php-parser/test/code/prettyPrinter/expr/uvs.test delete mode 100644 vendor/nikic/php-parser/test/code/prettyPrinter/expr/variables.test delete mode 100644 vendor/nikic/php-parser/test/code/prettyPrinter/expr/yield.test delete mode 100644 vendor/nikic/php-parser/test/code/prettyPrinter/inlineHTMLandPHPtest.file-test delete mode 100644 vendor/nikic/php-parser/test/code/prettyPrinter/nestedInlineHTML.test delete mode 100644 vendor/nikic/php-parser/test/code/prettyPrinter/onlyInlineHTML.file-test delete mode 100644 vendor/nikic/php-parser/test/code/prettyPrinter/onlyPHP.file-test delete mode 100644 vendor/nikic/php-parser/test/code/prettyPrinter/stmt/alias.test delete mode 100644 vendor/nikic/php-parser/test/code/prettyPrinter/stmt/break_continue.test delete mode 100644 vendor/nikic/php-parser/test/code/prettyPrinter/stmt/class.test delete mode 100644 vendor/nikic/php-parser/test/code/prettyPrinter/stmt/class_const.test delete mode 100644 vendor/nikic/php-parser/test/code/prettyPrinter/stmt/const.test delete mode 100644 vendor/nikic/php-parser/test/code/prettyPrinter/stmt/declare.test delete mode 100644 vendor/nikic/php-parser/test/code/prettyPrinter/stmt/do_while.test delete mode 100644 vendor/nikic/php-parser/test/code/prettyPrinter/stmt/for.test delete mode 100644 vendor/nikic/php-parser/test/code/prettyPrinter/stmt/foreach.test delete mode 100644 vendor/nikic/php-parser/test/code/prettyPrinter/stmt/function_signatures.test delete mode 100644 vendor/nikic/php-parser/test/code/prettyPrinter/stmt/global_static_variables.test delete mode 100644 vendor/nikic/php-parser/test/code/prettyPrinter/stmt/goto.test delete mode 100644 vendor/nikic/php-parser/test/code/prettyPrinter/stmt/groupUse.test delete mode 100644 vendor/nikic/php-parser/test/code/prettyPrinter/stmt/haltCompiler.file-test delete mode 100644 vendor/nikic/php-parser/test/code/prettyPrinter/stmt/if.test delete mode 100644 vendor/nikic/php-parser/test/code/prettyPrinter/stmt/multiCatch.test delete mode 100644 vendor/nikic/php-parser/test/code/prettyPrinter/stmt/namespaces.test delete mode 100644 vendor/nikic/php-parser/test/code/prettyPrinter/stmt/nullable_types.test delete mode 100644 vendor/nikic/php-parser/test/code/prettyPrinter/stmt/switch.test delete mode 100644 vendor/nikic/php-parser/test/code/prettyPrinter/stmt/throw.test delete mode 100644 vendor/nikic/php-parser/test/code/prettyPrinter/stmt/traitUse.test delete mode 100644 vendor/nikic/php-parser/test/code/prettyPrinter/stmt/tryCatch.test delete mode 100644 vendor/nikic/php-parser/test/code/prettyPrinter/stmt/while.test delete mode 100644 vendor/nikic/php-parser/test/updateTests.php delete mode 100755 vendor/nikic/php-parser/test_old/run-php-src.sh delete mode 100644 vendor/nikic/php-parser/test_old/run.php delete mode 100644 vendor/owen-it/laravel-auditing/LICENSE.md delete mode 100644 vendor/owen-it/laravel-auditing/composer.json delete mode 100644 vendor/owen-it/laravel-auditing/config/audit.php delete mode 100644 vendor/owen-it/laravel-auditing/database/migrations/audits.stub delete mode 100644 vendor/owen-it/laravel-auditing/drivers/driver.stub delete mode 100644 vendor/owen-it/laravel-auditing/src/Audit.php delete mode 100644 vendor/owen-it/laravel-auditing/src/Auditable.php delete mode 100644 vendor/owen-it/laravel-auditing/src/AuditableObserver.php delete mode 100644 vendor/owen-it/laravel-auditing/src/AuditingServiceProvider.php delete mode 100644 vendor/owen-it/laravel-auditing/src/Auditor.php delete mode 100644 vendor/owen-it/laravel-auditing/src/Console/AuditDriverMakeCommand.php delete mode 100644 vendor/owen-it/laravel-auditing/src/Console/AuditTableCommand.php delete mode 100644 vendor/owen-it/laravel-auditing/src/Console/InstallCommand.php delete mode 100644 vendor/owen-it/laravel-auditing/src/Contracts/Audit.php delete mode 100644 vendor/owen-it/laravel-auditing/src/Contracts/AuditDriver.php delete mode 100644 vendor/owen-it/laravel-auditing/src/Contracts/AuditRedactor.php delete mode 100644 vendor/owen-it/laravel-auditing/src/Contracts/Auditable.php delete mode 100644 vendor/owen-it/laravel-auditing/src/Contracts/Auditor.php delete mode 100644 vendor/owen-it/laravel-auditing/src/Contracts/IpAddressResolver.php delete mode 100644 vendor/owen-it/laravel-auditing/src/Contracts/UrlResolver.php delete mode 100644 vendor/owen-it/laravel-auditing/src/Contracts/UserAgentResolver.php delete mode 100644 vendor/owen-it/laravel-auditing/src/Contracts/UserResolver.php delete mode 100644 vendor/owen-it/laravel-auditing/src/Drivers/Database.php delete mode 100644 vendor/owen-it/laravel-auditing/src/Events/Audited.php delete mode 100644 vendor/owen-it/laravel-auditing/src/Events/Auditing.php delete mode 100644 vendor/owen-it/laravel-auditing/src/Exceptions/AuditableTransitionException.php delete mode 100644 vendor/owen-it/laravel-auditing/src/Exceptions/AuditingException.php delete mode 100644 vendor/owen-it/laravel-auditing/src/Facades/Auditor.php delete mode 100644 vendor/owen-it/laravel-auditing/src/Models/Audit.php delete mode 100644 vendor/owen-it/laravel-auditing/src/Redactors/LeftRedactor.php delete mode 100644 vendor/owen-it/laravel-auditing/src/Redactors/RightRedactor.php delete mode 100644 vendor/owen-it/laravel-auditing/src/Resolvers/IpAddressResolver.php delete mode 100644 vendor/owen-it/laravel-auditing/src/Resolvers/UrlResolver.php delete mode 100644 vendor/owen-it/laravel-auditing/src/Resolvers/UserAgentResolver.php delete mode 100644 vendor/owen-it/laravel-auditing/src/Resolvers/UserResolver.php delete mode 100644 vendor/paragonie/random_compat/LICENSE delete mode 100755 vendor/paragonie/random_compat/build-phar.sh delete mode 100644 vendor/paragonie/random_compat/composer.json delete mode 100644 vendor/paragonie/random_compat/dist/random_compat.phar.pubkey delete mode 100644 vendor/paragonie/random_compat/dist/random_compat.phar.pubkey.asc delete mode 100644 vendor/paragonie/random_compat/lib/random.php delete mode 100644 vendor/paragonie/random_compat/other/build_phar.php delete mode 100644 vendor/paragonie/random_compat/psalm-autoload.php delete mode 100644 vendor/paragonie/random_compat/psalm.xml delete mode 100644 vendor/phar-io/manifest/.php_cs delete mode 100644 vendor/phar-io/manifest/.travis.yml delete mode 100644 vendor/phar-io/manifest/LICENSE delete mode 100644 vendor/phar-io/manifest/README.md delete mode 100644 vendor/phar-io/manifest/build.xml delete mode 100644 vendor/phar-io/manifest/composer.json delete mode 100644 vendor/phar-io/manifest/composer.lock delete mode 100644 vendor/phar-io/manifest/examples/example-01.php delete mode 100644 vendor/phar-io/manifest/phive.xml delete mode 100644 vendor/phar-io/manifest/phpunit.xml delete mode 100644 vendor/phar-io/manifest/src/ManifestDocumentMapper.php delete mode 100644 vendor/phar-io/manifest/src/ManifestLoader.php delete mode 100644 vendor/phar-io/manifest/src/ManifestSerializer.php delete mode 100644 vendor/phar-io/manifest/src/exceptions/Exception.php delete mode 100644 vendor/phar-io/manifest/src/exceptions/InvalidApplicationNameException.php delete mode 100644 vendor/phar-io/manifest/src/exceptions/InvalidEmailException.php delete mode 100644 vendor/phar-io/manifest/src/exceptions/InvalidUrlException.php delete mode 100644 vendor/phar-io/manifest/src/exceptions/ManifestDocumentException.php delete mode 100644 vendor/phar-io/manifest/src/exceptions/ManifestDocumentMapperException.php delete mode 100644 vendor/phar-io/manifest/src/exceptions/ManifestElementException.php delete mode 100644 vendor/phar-io/manifest/src/exceptions/ManifestLoaderException.php delete mode 100644 vendor/phar-io/manifest/src/values/Application.php delete mode 100644 vendor/phar-io/manifest/src/values/ApplicationName.php delete mode 100644 vendor/phar-io/manifest/src/values/Author.php delete mode 100644 vendor/phar-io/manifest/src/values/AuthorCollection.php delete mode 100644 vendor/phar-io/manifest/src/values/AuthorCollectionIterator.php delete mode 100644 vendor/phar-io/manifest/src/values/BundledComponent.php delete mode 100644 vendor/phar-io/manifest/src/values/BundledComponentCollection.php delete mode 100644 vendor/phar-io/manifest/src/values/BundledComponentCollectionIterator.php delete mode 100644 vendor/phar-io/manifest/src/values/CopyrightInformation.php delete mode 100644 vendor/phar-io/manifest/src/values/Email.php delete mode 100644 vendor/phar-io/manifest/src/values/Extension.php delete mode 100644 vendor/phar-io/manifest/src/values/Library.php delete mode 100644 vendor/phar-io/manifest/src/values/License.php delete mode 100644 vendor/phar-io/manifest/src/values/Manifest.php delete mode 100644 vendor/phar-io/manifest/src/values/PhpExtensionRequirement.php delete mode 100644 vendor/phar-io/manifest/src/values/PhpVersionRequirement.php delete mode 100644 vendor/phar-io/manifest/src/values/Requirement.php delete mode 100644 vendor/phar-io/manifest/src/values/RequirementCollection.php delete mode 100644 vendor/phar-io/manifest/src/values/RequirementCollectionIterator.php delete mode 100644 vendor/phar-io/manifest/src/values/Type.php delete mode 100644 vendor/phar-io/manifest/src/values/Url.php delete mode 100644 vendor/phar-io/manifest/src/xml/AuthorElement.php delete mode 100644 vendor/phar-io/manifest/src/xml/AuthorElementCollection.php delete mode 100644 vendor/phar-io/manifest/src/xml/BundlesElement.php delete mode 100644 vendor/phar-io/manifest/src/xml/ComponentElement.php delete mode 100644 vendor/phar-io/manifest/src/xml/ComponentElementCollection.php delete mode 100644 vendor/phar-io/manifest/src/xml/ContainsElement.php delete mode 100644 vendor/phar-io/manifest/src/xml/CopyrightElement.php delete mode 100644 vendor/phar-io/manifest/src/xml/ElementCollection.php delete mode 100644 vendor/phar-io/manifest/src/xml/ExtElement.php delete mode 100644 vendor/phar-io/manifest/src/xml/ExtElementCollection.php delete mode 100644 vendor/phar-io/manifest/src/xml/ExtensionElement.php delete mode 100644 vendor/phar-io/manifest/src/xml/LicenseElement.php delete mode 100644 vendor/phar-io/manifest/src/xml/ManifestDocument.php delete mode 100644 vendor/phar-io/manifest/src/xml/ManifestDocumentLoadingException.php delete mode 100644 vendor/phar-io/manifest/src/xml/ManifestElement.php delete mode 100644 vendor/phar-io/manifest/src/xml/PhpElement.php delete mode 100644 vendor/phar-io/manifest/src/xml/RequiresElement.php delete mode 100644 vendor/phar-io/manifest/tests/ManifestDocumentMapperTest.php delete mode 100644 vendor/phar-io/manifest/tests/ManifestLoaderTest.php delete mode 100644 vendor/phar-io/manifest/tests/ManifestSerializerTest.php delete mode 100644 vendor/phar-io/manifest/tests/_fixture/custom.xml delete mode 100644 vendor/phar-io/manifest/tests/_fixture/extension-invalidcompatible.xml delete mode 100644 vendor/phar-io/manifest/tests/_fixture/extension.xml delete mode 100644 vendor/phar-io/manifest/tests/_fixture/invalidversion.xml delete mode 100644 vendor/phar-io/manifest/tests/_fixture/invalidversionconstraint.xml delete mode 100644 vendor/phar-io/manifest/tests/_fixture/library.xml delete mode 100644 vendor/phar-io/manifest/tests/_fixture/manifest.xml delete mode 100644 vendor/phar-io/manifest/tests/_fixture/phpunit-5.6.5.xml delete mode 100644 vendor/phar-io/manifest/tests/_fixture/test.phar delete mode 100644 vendor/phar-io/manifest/tests/exceptions/ManifestDocumentLoadingExceptionTest.php delete mode 100644 vendor/phar-io/manifest/tests/values/ApplicationNameTest.php delete mode 100644 vendor/phar-io/manifest/tests/values/ApplicationTest.php delete mode 100644 vendor/phar-io/manifest/tests/values/AuthorCollectionTest.php delete mode 100644 vendor/phar-io/manifest/tests/values/AuthorTest.php delete mode 100644 vendor/phar-io/manifest/tests/values/BundledComponentCollectionTest.php delete mode 100644 vendor/phar-io/manifest/tests/values/BundledComponentTest.php delete mode 100644 vendor/phar-io/manifest/tests/values/CopyrightInformationTest.php delete mode 100644 vendor/phar-io/manifest/tests/values/EmailTest.php delete mode 100644 vendor/phar-io/manifest/tests/values/ExtensionTest.php delete mode 100644 vendor/phar-io/manifest/tests/values/LibraryTest.php delete mode 100644 vendor/phar-io/manifest/tests/values/LicenseTest.php delete mode 100644 vendor/phar-io/manifest/tests/values/ManifestTest.php delete mode 100644 vendor/phar-io/manifest/tests/values/PhpExtensionRequirementTest.php delete mode 100644 vendor/phar-io/manifest/tests/values/PhpVersionRequirementTest.php delete mode 100644 vendor/phar-io/manifest/tests/values/RequirementCollectionTest.php delete mode 100644 vendor/phar-io/manifest/tests/values/UrlTest.php delete mode 100644 vendor/phar-io/manifest/tests/xml/AuthorElementCollectionTest.php delete mode 100644 vendor/phar-io/manifest/tests/xml/AuthorElementTest.php delete mode 100644 vendor/phar-io/manifest/tests/xml/BundlesElementTest.php delete mode 100644 vendor/phar-io/manifest/tests/xml/ComponentElementCollectionTest.php delete mode 100644 vendor/phar-io/manifest/tests/xml/ComponentElementTest.php delete mode 100644 vendor/phar-io/manifest/tests/xml/ContainsElementTest.php delete mode 100644 vendor/phar-io/manifest/tests/xml/CopyrightElementTest.php delete mode 100644 vendor/phar-io/manifest/tests/xml/ExtElementCollectionTest.php delete mode 100644 vendor/phar-io/manifest/tests/xml/ExtElementTest.php delete mode 100644 vendor/phar-io/manifest/tests/xml/ExtensionElementTest.php delete mode 100644 vendor/phar-io/manifest/tests/xml/LicenseElementTest.php delete mode 100644 vendor/phar-io/manifest/tests/xml/ManifestDocumentTest.php delete mode 100644 vendor/phar-io/manifest/tests/xml/PhpElementTest.php delete mode 100644 vendor/phar-io/manifest/tests/xml/RequiresElementTest.php delete mode 100644 vendor/phar-io/version/.php_cs delete mode 100644 vendor/phar-io/version/.travis.yml delete mode 100644 vendor/phar-io/version/CHANGELOG.md delete mode 100644 vendor/phar-io/version/LICENSE delete mode 100644 vendor/phar-io/version/README.md delete mode 100644 vendor/phar-io/version/build.xml delete mode 100644 vendor/phar-io/version/composer.json delete mode 100644 vendor/phar-io/version/phive.xml delete mode 100644 vendor/phar-io/version/phpunit.xml delete mode 100644 vendor/phar-io/version/src/PreReleaseSuffix.php delete mode 100644 vendor/phar-io/version/src/Version.php delete mode 100644 vendor/phar-io/version/src/VersionConstraintParser.php delete mode 100644 vendor/phar-io/version/src/VersionConstraintValue.php delete mode 100644 vendor/phar-io/version/src/VersionNumber.php delete mode 100644 vendor/phar-io/version/src/constraints/AbstractVersionConstraint.php delete mode 100644 vendor/phar-io/version/src/constraints/AndVersionConstraintGroup.php delete mode 100644 vendor/phar-io/version/src/constraints/AnyVersionConstraint.php delete mode 100644 vendor/phar-io/version/src/constraints/ExactVersionConstraint.php delete mode 100644 vendor/phar-io/version/src/constraints/GreaterThanOrEqualToVersionConstraint.php delete mode 100644 vendor/phar-io/version/src/constraints/OrVersionConstraintGroup.php delete mode 100644 vendor/phar-io/version/src/constraints/SpecificMajorAndMinorVersionConstraint.php delete mode 100644 vendor/phar-io/version/src/constraints/SpecificMajorVersionConstraint.php delete mode 100644 vendor/phar-io/version/src/constraints/VersionConstraint.php delete mode 100644 vendor/phar-io/version/src/exceptions/Exception.php delete mode 100644 vendor/phar-io/version/src/exceptions/InvalidPreReleaseSuffixException.php delete mode 100644 vendor/phar-io/version/src/exceptions/InvalidVersionException.php delete mode 100644 vendor/phar-io/version/src/exceptions/UnsupportedVersionConstraintException.php delete mode 100644 vendor/phar-io/version/tests/Integration/VersionConstraintParserTest.php delete mode 100644 vendor/phar-io/version/tests/Unit/AbstractVersionConstraintTest.php delete mode 100644 vendor/phar-io/version/tests/Unit/AndVersionConstraintGroupTest.php delete mode 100644 vendor/phar-io/version/tests/Unit/AnyVersionConstraintTest.php delete mode 100644 vendor/phar-io/version/tests/Unit/ExactVersionConstraintTest.php delete mode 100644 vendor/phar-io/version/tests/Unit/GreaterThanOrEqualToVersionConstraintTest.php delete mode 100644 vendor/phar-io/version/tests/Unit/OrVersionConstraintGroupTest.php delete mode 100644 vendor/phar-io/version/tests/Unit/PreReleaseSuffixTest.php delete mode 100644 vendor/phar-io/version/tests/Unit/SpecificMajorAndMinorVersionConstraintTest.php delete mode 100644 vendor/phar-io/version/tests/Unit/SpecificMajorVersionConstraintTest.php delete mode 100644 vendor/phar-io/version/tests/Unit/VersionTest.php delete mode 100644 vendor/phpdocumentor/reflection-common/.travis.yml delete mode 100644 vendor/phpdocumentor/reflection-common/LICENSE delete mode 100644 vendor/phpdocumentor/reflection-common/README.md delete mode 100644 vendor/phpdocumentor/reflection-common/composer.json delete mode 100644 vendor/phpdocumentor/reflection-common/src/Element.php delete mode 100644 vendor/phpdocumentor/reflection-common/src/File.php delete mode 100644 vendor/phpdocumentor/reflection-common/src/Fqsen.php delete mode 100644 vendor/phpdocumentor/reflection-common/src/Location.php delete mode 100644 vendor/phpdocumentor/reflection-common/src/Project.php delete mode 100644 vendor/phpdocumentor/reflection-common/src/ProjectFactory.php delete mode 100644 vendor/phpdocumentor/reflection-docblock/.coveralls.yml delete mode 100644 vendor/phpdocumentor/reflection-docblock/LICENSE delete mode 100644 vendor/phpdocumentor/reflection-docblock/README.md delete mode 100644 vendor/phpdocumentor/reflection-docblock/composer.json delete mode 100644 vendor/phpdocumentor/reflection-docblock/easy-coding-standard.neon delete mode 100644 vendor/phpdocumentor/reflection-docblock/src/DocBlock.php delete mode 100644 vendor/phpdocumentor/reflection-docblock/src/DocBlock/Description.php delete mode 100644 vendor/phpdocumentor/reflection-docblock/src/DocBlock/DescriptionFactory.php delete mode 100644 vendor/phpdocumentor/reflection-docblock/src/DocBlock/ExampleFinder.php delete mode 100644 vendor/phpdocumentor/reflection-docblock/src/DocBlock/Serializer.php delete mode 100644 vendor/phpdocumentor/reflection-docblock/src/DocBlock/StandardTagFactory.php delete mode 100644 vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tag.php delete mode 100644 vendor/phpdocumentor/reflection-docblock/src/DocBlock/TagFactory.php delete mode 100644 vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Author.php delete mode 100644 vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/BaseTag.php delete mode 100644 vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Covers.php delete mode 100644 vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Deprecated.php delete mode 100644 vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Example.php delete mode 100644 vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Factory/StaticMethod.php delete mode 100644 vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Factory/Strategy.php delete mode 100644 vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Formatter.php delete mode 100644 vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Formatter/AlignFormatter.php delete mode 100644 vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Formatter/PassthroughFormatter.php delete mode 100644 vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Generic.php delete mode 100644 vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Link.php delete mode 100644 vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Method.php delete mode 100644 vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Param.php delete mode 100644 vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Property.php delete mode 100644 vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/PropertyRead.php delete mode 100644 vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/PropertyWrite.php delete mode 100644 vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Reference/Fqsen.php delete mode 100644 vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Reference/Reference.php delete mode 100644 vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Reference/Url.php delete mode 100644 vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Return_.php delete mode 100644 vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/See.php delete mode 100644 vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Since.php delete mode 100644 vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Source.php delete mode 100644 vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Throws.php delete mode 100644 vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Uses.php delete mode 100644 vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Var_.php delete mode 100644 vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Version.php delete mode 100644 vendor/phpdocumentor/reflection-docblock/src/DocBlockFactory.php delete mode 100644 vendor/phpdocumentor/reflection-docblock/src/DocBlockFactoryInterface.php delete mode 100644 vendor/phpdocumentor/type-resolver/LICENSE delete mode 100644 vendor/phpdocumentor/type-resolver/README.md delete mode 100644 vendor/phpdocumentor/type-resolver/composer.json delete mode 100644 vendor/phpdocumentor/type-resolver/src/FqsenResolver.php delete mode 100644 vendor/phpdocumentor/type-resolver/src/Type.php delete mode 100644 vendor/phpdocumentor/type-resolver/src/TypeResolver.php delete mode 100644 vendor/phpdocumentor/type-resolver/src/Types/Array_.php delete mode 100644 vendor/phpdocumentor/type-resolver/src/Types/Boolean.php delete mode 100644 vendor/phpdocumentor/type-resolver/src/Types/Callable_.php delete mode 100644 vendor/phpdocumentor/type-resolver/src/Types/Compound.php delete mode 100644 vendor/phpdocumentor/type-resolver/src/Types/Context.php delete mode 100644 vendor/phpdocumentor/type-resolver/src/Types/ContextFactory.php delete mode 100644 vendor/phpdocumentor/type-resolver/src/Types/Float_.php delete mode 100644 vendor/phpdocumentor/type-resolver/src/Types/Integer.php delete mode 100644 vendor/phpdocumentor/type-resolver/src/Types/Iterable_.php delete mode 100644 vendor/phpdocumentor/type-resolver/src/Types/Mixed_.php delete mode 100644 vendor/phpdocumentor/type-resolver/src/Types/Null_.php delete mode 100644 vendor/phpdocumentor/type-resolver/src/Types/Nullable.php delete mode 100644 vendor/phpdocumentor/type-resolver/src/Types/Object_.php delete mode 100644 vendor/phpdocumentor/type-resolver/src/Types/Parent_.php delete mode 100644 vendor/phpdocumentor/type-resolver/src/Types/Resource_.php delete mode 100644 vendor/phpdocumentor/type-resolver/src/Types/Scalar.php delete mode 100644 vendor/phpdocumentor/type-resolver/src/Types/Self_.php delete mode 100644 vendor/phpdocumentor/type-resolver/src/Types/Static_.php delete mode 100644 vendor/phpdocumentor/type-resolver/src/Types/String_.php delete mode 100644 vendor/phpdocumentor/type-resolver/src/Types/This.php delete mode 100644 vendor/phpdocumentor/type-resolver/src/Types/Void_.php delete mode 100644 vendor/phpspec/prophecy/CHANGES.md delete mode 100644 vendor/phpspec/prophecy/LICENSE delete mode 100644 vendor/phpspec/prophecy/README.md delete mode 100644 vendor/phpspec/prophecy/composer.json delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Argument.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Argument/ArgumentsWildcard.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Argument/Token/AnyValueToken.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Argument/Token/AnyValuesToken.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Argument/Token/ApproximateValueToken.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Argument/Token/ArrayCountToken.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Argument/Token/ArrayEntryToken.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Argument/Token/ArrayEveryEntryToken.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Argument/Token/CallbackToken.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Argument/Token/ExactValueToken.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Argument/Token/IdenticalValueToken.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Argument/Token/LogicalAndToken.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Argument/Token/LogicalNotToken.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Argument/Token/ObjectStateToken.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Argument/Token/StringContainsToken.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Argument/Token/TokenInterface.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Argument/Token/TypeToken.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Call/Call.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Call/CallCenter.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Comparator/ClosureComparator.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Comparator/Factory.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Comparator/ProphecyComparator.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Doubler/CachedDoubler.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/ClassPatchInterface.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/DisableConstructorPatch.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/HhvmExceptionPatch.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/KeywordPatch.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/MagicCallPatch.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/ProphecySubjectPatch.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/ReflectionClassNewInstancePatch.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/SplFileInfoPatch.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/TraversablePatch.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Doubler/DoubleInterface.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Doubler/Doubler.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Doubler/Generator/ClassCodeGenerator.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Doubler/Generator/ClassCreator.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Doubler/Generator/ClassMirror.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Doubler/Generator/Node/ArgumentNode.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Doubler/Generator/Node/ClassNode.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Doubler/Generator/Node/MethodNode.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Doubler/Generator/ReflectionInterface.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Doubler/Generator/TypeHintReference.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Doubler/LazyDouble.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Doubler/NameGenerator.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Exception/Call/UnexpectedCallException.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/ClassCreatorException.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/ClassMirrorException.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/ClassNotFoundException.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/DoubleException.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/DoublerException.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/InterfaceNotFoundException.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/MethodNotExtendableException.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/MethodNotFoundException.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/ReturnByReferenceException.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Exception/Exception.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Exception/InvalidArgumentException.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Exception/Prediction/AggregateException.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Exception/Prediction/FailedPredictionException.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Exception/Prediction/NoCallsException.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Exception/Prediction/PredictionException.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Exception/Prediction/UnexpectedCallsCountException.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Exception/Prediction/UnexpectedCallsException.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Exception/Prophecy/MethodProphecyException.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Exception/Prophecy/ObjectProphecyException.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Exception/Prophecy/ProphecyException.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/PhpDocumentor/ClassAndInterfaceTagRetriever.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/PhpDocumentor/ClassTagRetriever.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/PhpDocumentor/LegacyClassTagRetriever.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/PhpDocumentor/MethodTagRetrieverInterface.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Prediction/CallPrediction.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Prediction/CallTimesPrediction.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Prediction/CallbackPrediction.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Prediction/NoCallsPrediction.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Prediction/PredictionInterface.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Promise/CallbackPromise.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Promise/PromiseInterface.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Promise/ReturnArgumentPromise.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Promise/ReturnPromise.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Promise/ThrowPromise.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Prophecy/MethodProphecy.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Prophecy/ObjectProphecy.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Prophecy/ProphecyInterface.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Prophecy/ProphecySubjectInterface.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Prophecy/Revealer.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Prophecy/RevealerInterface.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Prophet.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Util/ExportUtil.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Util/StringUtil.php delete mode 100644 vendor/phpunit/php-code-coverage/.gitattributes delete mode 100644 vendor/phpunit/php-code-coverage/.github/CONTRIBUTING.md delete mode 100644 vendor/phpunit/php-code-coverage/.github/ISSUE_TEMPLATE.md delete mode 100644 vendor/phpunit/php-code-coverage/.github/stale.yml delete mode 100644 vendor/phpunit/php-code-coverage/.php_cs.dist delete mode 100644 vendor/phpunit/php-code-coverage/.travis.yml delete mode 100644 vendor/phpunit/php-code-coverage/ChangeLog-2.2.md delete mode 100644 vendor/phpunit/php-code-coverage/ChangeLog-3.0.md delete mode 100644 vendor/phpunit/php-code-coverage/ChangeLog-3.1.md delete mode 100644 vendor/phpunit/php-code-coverage/ChangeLog-3.2.md delete mode 100644 vendor/phpunit/php-code-coverage/ChangeLog-3.3.md delete mode 100644 vendor/phpunit/php-code-coverage/ChangeLog-4.0.md delete mode 100644 vendor/phpunit/php-code-coverage/ChangeLog-5.0.md delete mode 100644 vendor/phpunit/php-code-coverage/ChangeLog-5.1.md delete mode 100644 vendor/phpunit/php-code-coverage/ChangeLog-5.2.md delete mode 100644 vendor/phpunit/php-code-coverage/ChangeLog-5.3.md delete mode 100644 vendor/phpunit/php-code-coverage/ChangeLog-6.0.md delete mode 100644 vendor/phpunit/php-code-coverage/LICENSE delete mode 100644 vendor/phpunit/php-code-coverage/README.md delete mode 100644 vendor/phpunit/php-code-coverage/build.xml delete mode 100644 vendor/phpunit/php-code-coverage/composer.json delete mode 100644 vendor/phpunit/php-code-coverage/phpunit.xml delete mode 100644 vendor/phpunit/php-code-coverage/src/CodeCoverage.php delete mode 100644 vendor/phpunit/php-code-coverage/src/Driver/Driver.php delete mode 100644 vendor/phpunit/php-code-coverage/src/Driver/PHPDBG.php delete mode 100644 vendor/phpunit/php-code-coverage/src/Driver/Xdebug.php delete mode 100644 vendor/phpunit/php-code-coverage/src/Exception/CoveredCodeNotExecutedException.php delete mode 100644 vendor/phpunit/php-code-coverage/src/Exception/Exception.php delete mode 100644 vendor/phpunit/php-code-coverage/src/Exception/InvalidArgumentException.php delete mode 100644 vendor/phpunit/php-code-coverage/src/Exception/MissingCoversAnnotationException.php delete mode 100644 vendor/phpunit/php-code-coverage/src/Exception/RuntimeException.php delete mode 100644 vendor/phpunit/php-code-coverage/src/Exception/UnintentionallyCoveredCodeException.php delete mode 100644 vendor/phpunit/php-code-coverage/src/Filter.php delete mode 100644 vendor/phpunit/php-code-coverage/src/Node/AbstractNode.php delete mode 100644 vendor/phpunit/php-code-coverage/src/Node/Builder.php delete mode 100644 vendor/phpunit/php-code-coverage/src/Node/Directory.php delete mode 100644 vendor/phpunit/php-code-coverage/src/Node/File.php delete mode 100644 vendor/phpunit/php-code-coverage/src/Node/Iterator.php delete mode 100644 vendor/phpunit/php-code-coverage/src/Report/Clover.php delete mode 100644 vendor/phpunit/php-code-coverage/src/Report/Crap4j.php delete mode 100644 vendor/phpunit/php-code-coverage/src/Report/Html/Facade.php delete mode 100644 vendor/phpunit/php-code-coverage/src/Report/Html/Renderer.php delete mode 100644 vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Dashboard.php delete mode 100644 vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Directory.php delete mode 100644 vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/File.php delete mode 100644 vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/coverage_bar.html.dist delete mode 100644 vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/css/bootstrap.min.css delete mode 100644 vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/css/custom.css delete mode 100644 vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/css/nv.d3.min.css delete mode 100644 vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/css/style.css delete mode 100644 vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/dashboard.html.dist delete mode 100644 vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/directory.html.dist delete mode 100644 vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/directory_item.html.dist delete mode 100644 vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/file.html.dist delete mode 100644 vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/file_item.html.dist delete mode 100644 vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/fonts/glyphicons-halflings-regular.eot delete mode 100644 vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/fonts/glyphicons-halflings-regular.svg delete mode 100644 vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/fonts/glyphicons-halflings-regular.ttf delete mode 100644 vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/fonts/glyphicons-halflings-regular.woff delete mode 100644 vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/fonts/glyphicons-halflings-regular.woff2 delete mode 100644 vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/js/bootstrap.min.js delete mode 100644 vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/js/d3.min.js delete mode 100644 vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/js/file.js delete mode 100644 vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/js/holder.min.js delete mode 100644 vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/js/html5shiv.min.js delete mode 100644 vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/js/jquery.min.js delete mode 100644 vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/js/nv.d3.min.js delete mode 100644 vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/js/respond.min.js delete mode 100644 vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/method_item.html.dist delete mode 100644 vendor/phpunit/php-code-coverage/src/Report/PHP.php delete mode 100644 vendor/phpunit/php-code-coverage/src/Report/Text.php delete mode 100644 vendor/phpunit/php-code-coverage/src/Report/Xml/BuildInformation.php delete mode 100644 vendor/phpunit/php-code-coverage/src/Report/Xml/Coverage.php delete mode 100644 vendor/phpunit/php-code-coverage/src/Report/Xml/Directory.php delete mode 100644 vendor/phpunit/php-code-coverage/src/Report/Xml/Facade.php delete mode 100644 vendor/phpunit/php-code-coverage/src/Report/Xml/File.php delete mode 100644 vendor/phpunit/php-code-coverage/src/Report/Xml/Method.php delete mode 100644 vendor/phpunit/php-code-coverage/src/Report/Xml/Node.php delete mode 100644 vendor/phpunit/php-code-coverage/src/Report/Xml/Project.php delete mode 100644 vendor/phpunit/php-code-coverage/src/Report/Xml/Report.php delete mode 100644 vendor/phpunit/php-code-coverage/src/Report/Xml/Source.php delete mode 100644 vendor/phpunit/php-code-coverage/src/Report/Xml/Tests.php delete mode 100644 vendor/phpunit/php-code-coverage/src/Report/Xml/Totals.php delete mode 100644 vendor/phpunit/php-code-coverage/src/Report/Xml/Unit.php delete mode 100644 vendor/phpunit/php-code-coverage/src/Util.php delete mode 100644 vendor/phpunit/php-code-coverage/src/Version.php delete mode 100644 vendor/phpunit/php-code-coverage/tests/TestCase.php delete mode 100644 vendor/phpunit/php-code-coverage/tests/_files/BankAccount-clover.xml delete mode 100644 vendor/phpunit/php-code-coverage/tests/_files/BankAccount-crap4j.xml delete mode 100644 vendor/phpunit/php-code-coverage/tests/_files/BankAccount-text.txt delete mode 100644 vendor/phpunit/php-code-coverage/tests/_files/BankAccount.php delete mode 100644 vendor/phpunit/php-code-coverage/tests/_files/BankAccountTest.php delete mode 100644 vendor/phpunit/php-code-coverage/tests/_files/CoverageClassExtendedTest.php delete mode 100644 vendor/phpunit/php-code-coverage/tests/_files/CoverageClassTest.php delete mode 100644 vendor/phpunit/php-code-coverage/tests/_files/CoverageFunctionParenthesesTest.php delete mode 100644 vendor/phpunit/php-code-coverage/tests/_files/CoverageFunctionParenthesesWhitespaceTest.php delete mode 100644 vendor/phpunit/php-code-coverage/tests/_files/CoverageFunctionTest.php delete mode 100644 vendor/phpunit/php-code-coverage/tests/_files/CoverageMethodOneLineAnnotationTest.php delete mode 100644 vendor/phpunit/php-code-coverage/tests/_files/CoverageMethodParenthesesTest.php delete mode 100644 vendor/phpunit/php-code-coverage/tests/_files/CoverageMethodParenthesesWhitespaceTest.php delete mode 100644 vendor/phpunit/php-code-coverage/tests/_files/CoverageMethodTest.php delete mode 100644 vendor/phpunit/php-code-coverage/tests/_files/CoverageNoneTest.php delete mode 100644 vendor/phpunit/php-code-coverage/tests/_files/CoverageNotPrivateTest.php delete mode 100644 vendor/phpunit/php-code-coverage/tests/_files/CoverageNotProtectedTest.php delete mode 100644 vendor/phpunit/php-code-coverage/tests/_files/CoverageNotPublicTest.php delete mode 100644 vendor/phpunit/php-code-coverage/tests/_files/CoverageNothingTest.php delete mode 100644 vendor/phpunit/php-code-coverage/tests/_files/CoveragePrivateTest.php delete mode 100644 vendor/phpunit/php-code-coverage/tests/_files/CoverageProtectedTest.php delete mode 100644 vendor/phpunit/php-code-coverage/tests/_files/CoveragePublicTest.php delete mode 100644 vendor/phpunit/php-code-coverage/tests/_files/CoverageTwoDefaultClassAnnotations.php delete mode 100644 vendor/phpunit/php-code-coverage/tests/_files/CoveredClass.php delete mode 100644 vendor/phpunit/php-code-coverage/tests/_files/CoveredFunction.php delete mode 100644 vendor/phpunit/php-code-coverage/tests/_files/NamespaceCoverageClassExtendedTest.php delete mode 100644 vendor/phpunit/php-code-coverage/tests/_files/NamespaceCoverageClassTest.php delete mode 100644 vendor/phpunit/php-code-coverage/tests/_files/NamespaceCoverageCoversClassPublicTest.php delete mode 100644 vendor/phpunit/php-code-coverage/tests/_files/NamespaceCoverageCoversClassTest.php delete mode 100644 vendor/phpunit/php-code-coverage/tests/_files/NamespaceCoverageMethodTest.php delete mode 100644 vendor/phpunit/php-code-coverage/tests/_files/NamespaceCoverageNotPrivateTest.php delete mode 100644 vendor/phpunit/php-code-coverage/tests/_files/NamespaceCoverageNotProtectedTest.php delete mode 100644 vendor/phpunit/php-code-coverage/tests/_files/NamespaceCoverageNotPublicTest.php delete mode 100644 vendor/phpunit/php-code-coverage/tests/_files/NamespaceCoveragePrivateTest.php delete mode 100644 vendor/phpunit/php-code-coverage/tests/_files/NamespaceCoverageProtectedTest.php delete mode 100644 vendor/phpunit/php-code-coverage/tests/_files/NamespaceCoveragePublicTest.php delete mode 100644 vendor/phpunit/php-code-coverage/tests/_files/NamespaceCoveredClass.php delete mode 100644 vendor/phpunit/php-code-coverage/tests/_files/NotExistingCoveredElementTest.php delete mode 100644 vendor/phpunit/php-code-coverage/tests/_files/Report/HTML/CoverageForBankAccount/BankAccount.php.html delete mode 100644 vendor/phpunit/php-code-coverage/tests/_files/Report/HTML/CoverageForBankAccount/dashboard.html delete mode 100644 vendor/phpunit/php-code-coverage/tests/_files/Report/HTML/CoverageForBankAccount/index.html delete mode 100644 vendor/phpunit/php-code-coverage/tests/_files/Report/HTML/CoverageForClassWithAnonymousFunction/dashboard.html delete mode 100644 vendor/phpunit/php-code-coverage/tests/_files/Report/HTML/CoverageForClassWithAnonymousFunction/index.html delete mode 100644 vendor/phpunit/php-code-coverage/tests/_files/Report/HTML/CoverageForClassWithAnonymousFunction/source_with_class_and_anonymous_function.php.html delete mode 100644 vendor/phpunit/php-code-coverage/tests/_files/Report/HTML/CoverageForFileWithIgnoredLines/dashboard.html delete mode 100644 vendor/phpunit/php-code-coverage/tests/_files/Report/HTML/CoverageForFileWithIgnoredLines/index.html delete mode 100644 vendor/phpunit/php-code-coverage/tests/_files/Report/HTML/CoverageForFileWithIgnoredLines/source_with_ignore.php.html delete mode 100644 vendor/phpunit/php-code-coverage/tests/_files/Report/XML/CoverageForBankAccount/BankAccount.php.xml delete mode 100644 vendor/phpunit/php-code-coverage/tests/_files/Report/XML/CoverageForBankAccount/index.xml delete mode 100644 vendor/phpunit/php-code-coverage/tests/_files/Report/XML/CoverageForClassWithAnonymousFunction/index.xml delete mode 100644 vendor/phpunit/php-code-coverage/tests/_files/Report/XML/CoverageForClassWithAnonymousFunction/source_with_class_and_anonymous_function.php.xml delete mode 100644 vendor/phpunit/php-code-coverage/tests/_files/Report/XML/CoverageForFileWithIgnoredLines/index.xml delete mode 100644 vendor/phpunit/php-code-coverage/tests/_files/Report/XML/CoverageForFileWithIgnoredLines/source_with_ignore.php.xml delete mode 100644 vendor/phpunit/php-code-coverage/tests/_files/class-with-anonymous-function-clover.xml delete mode 100644 vendor/phpunit/php-code-coverage/tests/_files/class-with-anonymous-function-crap4j.xml delete mode 100644 vendor/phpunit/php-code-coverage/tests/_files/class-with-anonymous-function-text.txt delete mode 100644 vendor/phpunit/php-code-coverage/tests/_files/ignored-lines-clover.xml delete mode 100644 vendor/phpunit/php-code-coverage/tests/_files/ignored-lines-crap4j.xml delete mode 100644 vendor/phpunit/php-code-coverage/tests/_files/ignored-lines-text.txt delete mode 100644 vendor/phpunit/php-code-coverage/tests/_files/source_with_class_and_anonymous_function.php delete mode 100644 vendor/phpunit/php-code-coverage/tests/_files/source_with_ignore.php delete mode 100644 vendor/phpunit/php-code-coverage/tests/_files/source_with_namespace.php delete mode 100644 vendor/phpunit/php-code-coverage/tests/_files/source_with_oneline_annotations.php delete mode 100644 vendor/phpunit/php-code-coverage/tests/_files/source_without_ignore.php delete mode 100644 vendor/phpunit/php-code-coverage/tests/_files/source_without_namespace.php delete mode 100644 vendor/phpunit/php-code-coverage/tests/bootstrap.php delete mode 100644 vendor/phpunit/php-code-coverage/tests/tests/BuilderTest.php delete mode 100644 vendor/phpunit/php-code-coverage/tests/tests/CloverTest.php delete mode 100644 vendor/phpunit/php-code-coverage/tests/tests/CodeCoverageTest.php delete mode 100644 vendor/phpunit/php-code-coverage/tests/tests/Crap4jTest.php delete mode 100644 vendor/phpunit/php-code-coverage/tests/tests/FilterTest.php delete mode 100644 vendor/phpunit/php-code-coverage/tests/tests/HTMLTest.php delete mode 100644 vendor/phpunit/php-code-coverage/tests/tests/TextTest.php delete mode 100644 vendor/phpunit/php-code-coverage/tests/tests/UtilTest.php delete mode 100644 vendor/phpunit/php-code-coverage/tests/tests/XmlTest.php delete mode 100644 vendor/phpunit/php-file-iterator/.gitattributes delete mode 100644 vendor/phpunit/php-file-iterator/.github/stale.yml delete mode 100644 vendor/phpunit/php-file-iterator/.php_cs.dist delete mode 100644 vendor/phpunit/php-file-iterator/ChangeLog.md delete mode 100644 vendor/phpunit/php-file-iterator/LICENSE delete mode 100644 vendor/phpunit/php-file-iterator/README.md delete mode 100644 vendor/phpunit/php-file-iterator/composer.json delete mode 100644 vendor/phpunit/php-file-iterator/src/Facade.php delete mode 100644 vendor/phpunit/php-file-iterator/src/Factory.php delete mode 100644 vendor/phpunit/php-file-iterator/src/Iterator.php delete mode 100644 vendor/phpunit/php-text-template/.gitattributes delete mode 100644 vendor/phpunit/php-text-template/LICENSE delete mode 100644 vendor/phpunit/php-text-template/README.md delete mode 100644 vendor/phpunit/php-text-template/composer.json delete mode 100644 vendor/phpunit/php-text-template/src/Template.php delete mode 100644 vendor/phpunit/php-timer/.gitattributes delete mode 100644 vendor/phpunit/php-timer/.php_cs.dist delete mode 100644 vendor/phpunit/php-timer/.travis.yml delete mode 100644 vendor/phpunit/php-timer/ChangeLog.md delete mode 100644 vendor/phpunit/php-timer/LICENSE delete mode 100644 vendor/phpunit/php-timer/README.md delete mode 100644 vendor/phpunit/php-timer/build.xml delete mode 100644 vendor/phpunit/php-timer/composer.json delete mode 100644 vendor/phpunit/php-timer/phpunit.xml delete mode 100644 vendor/phpunit/php-timer/src/Exception.php delete mode 100644 vendor/phpunit/php-timer/src/RuntimeException.php delete mode 100644 vendor/phpunit/php-timer/src/Timer.php delete mode 100644 vendor/phpunit/php-timer/tests/TimerTest.php delete mode 100644 vendor/phpunit/php-token-stream/.gitattributes delete mode 100644 vendor/phpunit/php-token-stream/.travis.yml delete mode 100644 vendor/phpunit/php-token-stream/ChangeLog.md delete mode 100644 vendor/phpunit/php-token-stream/LICENSE delete mode 100644 vendor/phpunit/php-token-stream/README.md delete mode 100644 vendor/phpunit/php-token-stream/build.xml delete mode 100644 vendor/phpunit/php-token-stream/composer.json delete mode 100644 vendor/phpunit/php-token-stream/phpunit.xml delete mode 100644 vendor/phpunit/php-token-stream/src/Token.php delete mode 100644 vendor/phpunit/php-token-stream/src/Token/Stream.php delete mode 100644 vendor/phpunit/php-token-stream/src/Token/Stream/CachingFactory.php delete mode 100644 vendor/phpunit/php-token-stream/tests/Token/ClassTest.php delete mode 100644 vendor/phpunit/php-token-stream/tests/Token/ClosureTest.php delete mode 100644 vendor/phpunit/php-token-stream/tests/Token/FunctionTest.php delete mode 100644 vendor/phpunit/php-token-stream/tests/Token/IncludeTest.php delete mode 100644 vendor/phpunit/php-token-stream/tests/Token/InterfaceTest.php delete mode 100644 vendor/phpunit/php-token-stream/tests/Token/NamespaceTest.php delete mode 100644 vendor/phpunit/php-token-stream/tests/_fixture/classExtendsNamespacedClass.php delete mode 100644 vendor/phpunit/php-token-stream/tests/_fixture/classInNamespace.php delete mode 100644 vendor/phpunit/php-token-stream/tests/_fixture/classInScopedNamespace.php delete mode 100644 vendor/phpunit/php-token-stream/tests/_fixture/classUsesNamespacedFunction.php delete mode 100644 vendor/phpunit/php-token-stream/tests/_fixture/class_with_method_named_empty.php delete mode 100644 vendor/phpunit/php-token-stream/tests/_fixture/class_with_method_that_declares_anonymous_class.php delete mode 100644 vendor/phpunit/php-token-stream/tests/_fixture/class_with_method_that_declares_anonymous_class2.php delete mode 100644 vendor/phpunit/php-token-stream/tests/_fixture/class_with_multiple_anonymous_classes_and_functions.php delete mode 100644 vendor/phpunit/php-token-stream/tests/_fixture/closure.php delete mode 100644 vendor/phpunit/php-token-stream/tests/_fixture/issue19.php delete mode 100644 vendor/phpunit/php-token-stream/tests/_fixture/issue30.php delete mode 100644 vendor/phpunit/php-token-stream/tests/_fixture/multipleNamespacesWithOneClassUsingBraces.php delete mode 100644 vendor/phpunit/php-token-stream/tests/_fixture/multipleNamespacesWithOneClassUsingNonBraceSyntax.php delete mode 100644 vendor/phpunit/php-token-stream/tests/_fixture/php-code-coverage-issue-424.php delete mode 100644 vendor/phpunit/php-token-stream/tests/_fixture/source.php delete mode 100644 vendor/phpunit/php-token-stream/tests/_fixture/source2.php delete mode 100644 vendor/phpunit/php-token-stream/tests/_fixture/source3.php delete mode 100644 vendor/phpunit/php-token-stream/tests/_fixture/source4.php delete mode 100644 vendor/phpunit/php-token-stream/tests/_fixture/source5.php delete mode 100644 vendor/phpunit/php-token-stream/tests/bootstrap.php delete mode 100644 vendor/phpunit/phpunit/.editorconfig delete mode 100644 vendor/phpunit/phpunit/.gitattributes delete mode 100644 vendor/phpunit/phpunit/.github/CODE_OF_CONDUCT.md delete mode 100644 vendor/phpunit/phpunit/.github/CONTRIBUTING.md delete mode 100644 vendor/phpunit/phpunit/.github/ISSUE_TEMPLATE.md delete mode 100644 vendor/phpunit/phpunit/.github/stale.yml delete mode 100644 vendor/phpunit/phpunit/.php_cs.dist delete mode 100644 vendor/phpunit/phpunit/.travis.yml delete mode 100644 vendor/phpunit/phpunit/ChangeLog-6.5.md delete mode 100644 vendor/phpunit/phpunit/ChangeLog-7.0.md delete mode 100644 vendor/phpunit/phpunit/ChangeLog-7.1.md delete mode 100644 vendor/phpunit/phpunit/ChangeLog-7.2.md delete mode 100644 vendor/phpunit/phpunit/LICENSE delete mode 100644 vendor/phpunit/phpunit/README.md delete mode 100644 vendor/phpunit/phpunit/appveyor.yml delete mode 100644 vendor/phpunit/phpunit/build.xml delete mode 100644 vendor/phpunit/phpunit/composer.json delete mode 100644 vendor/phpunit/phpunit/phive.xml delete mode 100644 vendor/phpunit/phpunit/phpstan-tests.neon delete mode 100644 vendor/phpunit/phpunit/phpstan.neon delete mode 100755 vendor/phpunit/phpunit/phpunit delete mode 100644 vendor/phpunit/phpunit/phpunit.xml delete mode 100644 vendor/phpunit/phpunit/phpunit.xsd delete mode 100644 vendor/phpunit/phpunit/src/Exception.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/Assert.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/Assert/Functions.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/AssertionFailedError.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/CodeCoverageException.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/Constraint/ArrayHasKey.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/Constraint/ArraySubset.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/Constraint/Attribute.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/Constraint/Callback.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/Constraint/ClassHasAttribute.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/Constraint/ClassHasStaticAttribute.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/Constraint/Composite.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/Constraint/Constraint.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/Constraint/Count.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/Constraint/DirectoryExists.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/Constraint/Exception.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/Constraint/ExceptionCode.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/Constraint/ExceptionMessage.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/Constraint/ExceptionMessageRegularExpression.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/Constraint/FileExists.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/Constraint/GreaterThan.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/Constraint/IsAnything.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/Constraint/IsEmpty.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/Constraint/IsEqual.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/Constraint/IsFalse.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/Constraint/IsFinite.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/Constraint/IsIdentical.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/Constraint/IsInfinite.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/Constraint/IsInstanceOf.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/Constraint/IsJson.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/Constraint/IsNan.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/Constraint/IsNull.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/Constraint/IsReadable.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/Constraint/IsTrue.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/Constraint/IsType.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/Constraint/IsWritable.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/Constraint/JsonMatches.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/Constraint/JsonMatchesErrorMessageProvider.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/Constraint/LessThan.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/Constraint/LogicalAnd.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/Constraint/LogicalNot.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/Constraint/LogicalOr.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/Constraint/LogicalXor.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/Constraint/ObjectHasAttribute.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/Constraint/RegularExpression.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/Constraint/SameSize.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/Constraint/StringContains.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/Constraint/StringEndsWith.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/Constraint/StringMatchesFormatDescription.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/Constraint/StringStartsWith.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/Constraint/TraversableContains.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/Constraint/TraversableContainsOnly.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/CoveredCodeNotExecutedException.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/DataProviderTestSuite.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/Error/Deprecated.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/Error/Error.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/Error/Notice.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/Error/Warning.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/Exception.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/ExceptionWrapper.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/ExpectationFailedException.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/IncompleteTest.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/IncompleteTestCase.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/IncompleteTestError.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/InvalidCoversTargetException.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/MissingCoversAnnotationException.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/MockObject/Builder/Identity.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/MockObject/Builder/InvocationMocker.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/MockObject/Builder/Match.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/MockObject/Builder/MethodNameMatch.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/MockObject/Builder/NamespaceMatch.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/MockObject/Builder/ParametersMatch.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/MockObject/Builder/Stub.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/MockObject/Exception/BadMethodCallException.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/MockObject/Exception/Exception.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/MockObject/Exception/RuntimeException.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/MockObject/ForwardCompatibility/MockObject.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/MockObject/Generator.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/MockObject/Generator/deprecation.tpl.dist delete mode 100644 vendor/phpunit/phpunit/src/Framework/MockObject/Generator/mocked_class.tpl.dist delete mode 100644 vendor/phpunit/phpunit/src/Framework/MockObject/Generator/mocked_class_method.tpl.dist delete mode 100644 vendor/phpunit/phpunit/src/Framework/MockObject/Generator/mocked_clone.tpl.dist delete mode 100644 vendor/phpunit/phpunit/src/Framework/MockObject/Generator/mocked_method.tpl.dist delete mode 100644 vendor/phpunit/phpunit/src/Framework/MockObject/Generator/mocked_method_void.tpl.dist delete mode 100644 vendor/phpunit/phpunit/src/Framework/MockObject/Generator/mocked_static_method.tpl.dist delete mode 100644 vendor/phpunit/phpunit/src/Framework/MockObject/Generator/proxied_method.tpl.dist delete mode 100644 vendor/phpunit/phpunit/src/Framework/MockObject/Generator/proxied_method_void.tpl.dist delete mode 100644 vendor/phpunit/phpunit/src/Framework/MockObject/Generator/trait_class.tpl.dist delete mode 100644 vendor/phpunit/phpunit/src/Framework/MockObject/Generator/unmocked_clone.tpl.dist delete mode 100644 vendor/phpunit/phpunit/src/Framework/MockObject/Generator/wsdl_class.tpl.dist delete mode 100644 vendor/phpunit/phpunit/src/Framework/MockObject/Generator/wsdl_method.tpl.dist delete mode 100644 vendor/phpunit/phpunit/src/Framework/MockObject/Invocation/Invocation.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/MockObject/Invocation/ObjectInvocation.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/MockObject/Invocation/StaticInvocation.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/MockObject/InvocationMocker.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/MockObject/Invokable.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/MockObject/Matcher.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/MockObject/Matcher/AnyInvokedCount.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/MockObject/Matcher/AnyParameters.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/MockObject/Matcher/ConsecutiveParameters.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/MockObject/Matcher/DeferredError.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/MockObject/Matcher/Invocation.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/MockObject/Matcher/InvokedAtIndex.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/MockObject/Matcher/InvokedAtLeastCount.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/MockObject/Matcher/InvokedAtLeastOnce.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/MockObject/Matcher/InvokedAtMostCount.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/MockObject/Matcher/InvokedCount.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/MockObject/Matcher/InvokedRecorder.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/MockObject/Matcher/MethodName.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/MockObject/Matcher/Parameters.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/MockObject/Matcher/StatelessInvocation.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/MockObject/MockBuilder.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/MockObject/MockObject.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/MockObject/Stub.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/MockObject/Stub/ConsecutiveCalls.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/MockObject/Stub/Exception.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/MockObject/Stub/MatcherCollection.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/MockObject/Stub/ReturnArgument.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/MockObject/Stub/ReturnCallback.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/MockObject/Stub/ReturnReference.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/MockObject/Stub/ReturnSelf.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/MockObject/Stub/ReturnStub.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/MockObject/Stub/ReturnValueMap.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/MockObject/Verifiable.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/OutputError.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/RiskyTest.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/RiskyTestError.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/SelfDescribing.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/SkippedTest.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/SkippedTestCase.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/SkippedTestError.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/SkippedTestSuiteError.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/SyntheticError.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/Test.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/TestCase.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/TestFailure.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/TestListener.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/TestListenerDefaultImplementation.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/TestResult.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/TestSuite.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/TestSuiteIterator.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/UnintentionallyCoveredCodeError.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/Warning.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/WarningTestCase.php delete mode 100644 vendor/phpunit/phpunit/src/Runner/BaseTestRunner.php delete mode 100644 vendor/phpunit/phpunit/src/Runner/Exception.php delete mode 100644 vendor/phpunit/phpunit/src/Runner/Filter/ExcludeGroupFilterIterator.php delete mode 100644 vendor/phpunit/phpunit/src/Runner/Filter/Factory.php delete mode 100644 vendor/phpunit/phpunit/src/Runner/Filter/GroupFilterIterator.php delete mode 100644 vendor/phpunit/phpunit/src/Runner/Filter/IncludeGroupFilterIterator.php delete mode 100644 vendor/phpunit/phpunit/src/Runner/Filter/NameFilterIterator.php delete mode 100644 vendor/phpunit/phpunit/src/Runner/Hook/AfterIncompleteTestHook.php delete mode 100644 vendor/phpunit/phpunit/src/Runner/Hook/AfterLastTestHook.php delete mode 100644 vendor/phpunit/phpunit/src/Runner/Hook/AfterRiskyTestHook.php delete mode 100644 vendor/phpunit/phpunit/src/Runner/Hook/AfterSkippedTestHook.php delete mode 100644 vendor/phpunit/phpunit/src/Runner/Hook/AfterSuccessfulTestHook.php delete mode 100644 vendor/phpunit/phpunit/src/Runner/Hook/AfterTestErrorHook.php delete mode 100644 vendor/phpunit/phpunit/src/Runner/Hook/AfterTestFailureHook.php delete mode 100644 vendor/phpunit/phpunit/src/Runner/Hook/AfterTestWarningHook.php delete mode 100644 vendor/phpunit/phpunit/src/Runner/Hook/BeforeFirstTestHook.php delete mode 100644 vendor/phpunit/phpunit/src/Runner/Hook/BeforeTestHook.php delete mode 100644 vendor/phpunit/phpunit/src/Runner/Hook/Hook.php delete mode 100644 vendor/phpunit/phpunit/src/Runner/Hook/TestHook.php delete mode 100644 vendor/phpunit/phpunit/src/Runner/Hook/TestListenerAdapter.php delete mode 100644 vendor/phpunit/phpunit/src/Runner/PhptTestCase.php delete mode 100644 vendor/phpunit/phpunit/src/Runner/StandardTestSuiteLoader.php delete mode 100644 vendor/phpunit/phpunit/src/Runner/TestSuiteLoader.php delete mode 100644 vendor/phpunit/phpunit/src/Runner/TestSuiteSorter.php delete mode 100644 vendor/phpunit/phpunit/src/Runner/Version.php delete mode 100644 vendor/phpunit/phpunit/src/TextUI/Command.php delete mode 100644 vendor/phpunit/phpunit/src/TextUI/ResultPrinter.php delete mode 100644 vendor/phpunit/phpunit/src/TextUI/TestRunner.php delete mode 100644 vendor/phpunit/phpunit/src/Util/Blacklist.php delete mode 100644 vendor/phpunit/phpunit/src/Util/Configuration.php delete mode 100644 vendor/phpunit/phpunit/src/Util/ConfigurationGenerator.php delete mode 100644 vendor/phpunit/phpunit/src/Util/ErrorHandler.php delete mode 100644 vendor/phpunit/phpunit/src/Util/FileLoader.php delete mode 100644 vendor/phpunit/phpunit/src/Util/Filesystem.php delete mode 100644 vendor/phpunit/phpunit/src/Util/Filter.php delete mode 100644 vendor/phpunit/phpunit/src/Util/Getopt.php delete mode 100644 vendor/phpunit/phpunit/src/Util/GlobalState.php delete mode 100644 vendor/phpunit/phpunit/src/Util/InvalidArgumentHelper.php delete mode 100644 vendor/phpunit/phpunit/src/Util/Json.php delete mode 100644 vendor/phpunit/phpunit/src/Util/Log/JUnit.php delete mode 100644 vendor/phpunit/phpunit/src/Util/Log/TeamCity.php delete mode 100644 vendor/phpunit/phpunit/src/Util/PHP/AbstractPhpProcess.php delete mode 100644 vendor/phpunit/phpunit/src/Util/PHP/DefaultPhpProcess.php delete mode 100644 vendor/phpunit/phpunit/src/Util/PHP/Template/PhptTestCase.tpl.dist delete mode 100644 vendor/phpunit/phpunit/src/Util/PHP/Template/TestCaseClass.tpl.dist delete mode 100644 vendor/phpunit/phpunit/src/Util/PHP/Template/TestCaseMethod.tpl.dist delete mode 100644 vendor/phpunit/phpunit/src/Util/PHP/WindowsPhpProcess.php delete mode 100644 vendor/phpunit/phpunit/src/Util/PHP/eval-stdin.php delete mode 100644 vendor/phpunit/phpunit/src/Util/Printer.php delete mode 100644 vendor/phpunit/phpunit/src/Util/RegularExpression.php delete mode 100644 vendor/phpunit/phpunit/src/Util/Test.php delete mode 100644 vendor/phpunit/phpunit/src/Util/TestDox/CliTestDoxPrinter.php delete mode 100644 vendor/phpunit/phpunit/src/Util/TestDox/HtmlResultPrinter.php delete mode 100644 vendor/phpunit/phpunit/src/Util/TestDox/NamePrettifier.php delete mode 100644 vendor/phpunit/phpunit/src/Util/TestDox/ResultPrinter.php delete mode 100644 vendor/phpunit/phpunit/src/Util/TestDox/TestResult.php delete mode 100644 vendor/phpunit/phpunit/src/Util/TestDox/TextResultPrinter.php delete mode 100644 vendor/phpunit/phpunit/src/Util/TestDox/XmlResultPrinter.php delete mode 100644 vendor/phpunit/phpunit/src/Util/TextTestListRenderer.php delete mode 100644 vendor/phpunit/phpunit/src/Util/Type.php delete mode 100644 vendor/phpunit/phpunit/src/Util/Xml.php delete mode 100644 vendor/phpunit/phpunit/src/Util/XmlTestListRenderer.php delete mode 100644 vendor/phpunit/phpunit/tests/Fail/fail.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Framework/AssertTest.php delete mode 100644 vendor/phpunit/phpunit/tests/Framework/Constraint/ArrayHasKeyTest.php delete mode 100644 vendor/phpunit/phpunit/tests/Framework/Constraint/ArraySubsetTest.php delete mode 100644 vendor/phpunit/phpunit/tests/Framework/Constraint/AttributeTest.php delete mode 100644 vendor/phpunit/phpunit/tests/Framework/Constraint/CallbackTest.php delete mode 100644 vendor/phpunit/phpunit/tests/Framework/Constraint/ClassHasAttributeTest.php delete mode 100644 vendor/phpunit/phpunit/tests/Framework/Constraint/ClassHasStaticAttributeTest.php delete mode 100644 vendor/phpunit/phpunit/tests/Framework/Constraint/ConstraintTestCase.php delete mode 100644 vendor/phpunit/phpunit/tests/Framework/Constraint/CountTest.php delete mode 100644 vendor/phpunit/phpunit/tests/Framework/Constraint/DirectoryExistsTest.php delete mode 100644 vendor/phpunit/phpunit/tests/Framework/Constraint/ExceptionMessageRegExpTest.php delete mode 100644 vendor/phpunit/phpunit/tests/Framework/Constraint/ExceptionMessageTest.php delete mode 100644 vendor/phpunit/phpunit/tests/Framework/Constraint/FileExistsTest.php delete mode 100644 vendor/phpunit/phpunit/tests/Framework/Constraint/GreaterThanTest.php delete mode 100644 vendor/phpunit/phpunit/tests/Framework/Constraint/IsEmptyTest.php delete mode 100644 vendor/phpunit/phpunit/tests/Framework/Constraint/IsEqualTest.php delete mode 100644 vendor/phpunit/phpunit/tests/Framework/Constraint/IsIdenticalTest.php delete mode 100644 vendor/phpunit/phpunit/tests/Framework/Constraint/IsInstanceOfTest.php delete mode 100644 vendor/phpunit/phpunit/tests/Framework/Constraint/IsJsonTest.php delete mode 100644 vendor/phpunit/phpunit/tests/Framework/Constraint/IsNullTest.php delete mode 100644 vendor/phpunit/phpunit/tests/Framework/Constraint/IsReadableTest.php delete mode 100644 vendor/phpunit/phpunit/tests/Framework/Constraint/IsTypeTest.php delete mode 100644 vendor/phpunit/phpunit/tests/Framework/Constraint/IsWritableTest.php delete mode 100644 vendor/phpunit/phpunit/tests/Framework/Constraint/JsonMatchesErrorMessageProviderTest.php delete mode 100644 vendor/phpunit/phpunit/tests/Framework/Constraint/JsonMatchesTest.php delete mode 100644 vendor/phpunit/phpunit/tests/Framework/Constraint/LessThanTest.php delete mode 100644 vendor/phpunit/phpunit/tests/Framework/Constraint/LogicalAndTest.php delete mode 100644 vendor/phpunit/phpunit/tests/Framework/Constraint/LogicalOrTest.php delete mode 100644 vendor/phpunit/phpunit/tests/Framework/Constraint/LogicalXorTest.php delete mode 100644 vendor/phpunit/phpunit/tests/Framework/Constraint/ObjectHasAttributeTest.php delete mode 100644 vendor/phpunit/phpunit/tests/Framework/Constraint/RegularExpressionTest.php delete mode 100644 vendor/phpunit/phpunit/tests/Framework/Constraint/SameSizeTest.php delete mode 100644 vendor/phpunit/phpunit/tests/Framework/Constraint/StringContainsTest.php delete mode 100644 vendor/phpunit/phpunit/tests/Framework/Constraint/StringEndsWithTest.php delete mode 100644 vendor/phpunit/phpunit/tests/Framework/Constraint/StringMatchesFormatDescriptionTest.php delete mode 100644 vendor/phpunit/phpunit/tests/Framework/Constraint/StringStartsWithTest.php delete mode 100644 vendor/phpunit/phpunit/tests/Framework/Constraint/TraversableContainsTest.php delete mode 100644 vendor/phpunit/phpunit/tests/Framework/ConstraintTest.php delete mode 100644 vendor/phpunit/phpunit/tests/Framework/ExceptionWrapperTest.php delete mode 100644 vendor/phpunit/phpunit/tests/Framework/MockObject/Builder/InvocationMockerTest.php delete mode 100644 vendor/phpunit/phpunit/tests/Framework/MockObject/Generator/232.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Framework/MockObject/Generator/3154_namespaced_constant_resolving.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Framework/MockObject/Generator/397.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Framework/MockObject/Generator/abstract_class.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Framework/MockObject/Generator/class.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Framework/MockObject/Generator/class_call_parent_clone.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Framework/MockObject/Generator/class_call_parent_constructor.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Framework/MockObject/Generator/class_dont_call_parent_clone.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Framework/MockObject/Generator/class_dont_call_parent_constructor.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Framework/MockObject/Generator/class_implementing_interface_call_parent_constructor.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Framework/MockObject/Generator/class_implementing_interface_dont_call_parent_constructor.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Framework/MockObject/Generator/class_partial.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Framework/MockObject/Generator/class_with_deprecated_method.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Framework/MockObject/Generator/class_with_method_named_method.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Framework/MockObject/Generator/class_with_method_with_nullable_typehinted_variadic_arguments.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Framework/MockObject/Generator/class_with_method_with_typehinted_variadic_arguments.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Framework/MockObject/Generator/class_with_method_with_variadic_arguments.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Framework/MockObject/Generator/constant_as_parameter_default_value.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Framework/MockObject/Generator/interface.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Framework/MockObject/Generator/invocation_object_clone_object.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Framework/MockObject/Generator/namespaced_class.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Framework/MockObject/Generator/namespaced_class_call_parent_clone.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Framework/MockObject/Generator/namespaced_class_call_parent_constructor.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Framework/MockObject/Generator/namespaced_class_dont_call_parent_clone.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Framework/MockObject/Generator/namespaced_class_dont_call_parent_constructor.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Framework/MockObject/Generator/namespaced_class_implementing_interface_call_parent_constructor.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Framework/MockObject/Generator/namespaced_class_implementing_interface_dont_call_parent_constructor.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Framework/MockObject/Generator/namespaced_class_partial.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Framework/MockObject/Generator/namespaced_interface.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Framework/MockObject/Generator/nonexistent_class.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Framework/MockObject/Generator/nonexistent_class_with_namespace.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Framework/MockObject/Generator/nonexistent_class_with_namespace_starting_with_separator.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Framework/MockObject/Generator/nullable_types.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Framework/MockObject/Generator/proxy.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Framework/MockObject/Generator/return_type_declarations_closure.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Framework/MockObject/Generator/return_type_declarations_final.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Framework/MockObject/Generator/return_type_declarations_generator.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Framework/MockObject/Generator/return_type_declarations_nullable.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Framework/MockObject/Generator/return_type_declarations_object_method.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Framework/MockObject/Generator/return_type_declarations_parent.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Framework/MockObject/Generator/return_type_declarations_self.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Framework/MockObject/Generator/return_type_declarations_static_method.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Framework/MockObject/Generator/return_type_declarations_void.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Framework/MockObject/Generator/scalar_type_declarations.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Framework/MockObject/Generator/wsdl_class.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Framework/MockObject/Generator/wsdl_class_namespace.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Framework/MockObject/Generator/wsdl_class_partial.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Framework/MockObject/GeneratorTest.php delete mode 100644 vendor/phpunit/phpunit/tests/Framework/MockObject/Invocation/ObjectInvocationTest.php delete mode 100644 vendor/phpunit/phpunit/tests/Framework/MockObject/Invocation/StaticInvocationTest.php delete mode 100644 vendor/phpunit/phpunit/tests/Framework/MockObject/Matcher/ConsecutiveParametersTest.php delete mode 100644 vendor/phpunit/phpunit/tests/Framework/MockObject/MockBuilderTest.php delete mode 100644 vendor/phpunit/phpunit/tests/Framework/MockObject/MockObjectTest.php delete mode 100644 vendor/phpunit/phpunit/tests/Framework/MockObject/ProxyObjectTest.php delete mode 100644 vendor/phpunit/phpunit/tests/Framework/TestCaseTest.php delete mode 100644 vendor/phpunit/phpunit/tests/Framework/TestFailureTest.php delete mode 100644 vendor/phpunit/phpunit/tests/Framework/TestImplementorTest.php delete mode 100644 vendor/phpunit/phpunit/tests/Framework/TestListenerTest.php delete mode 100644 vendor/phpunit/phpunit/tests/Framework/TestSuiteTest.php delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/1149.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/1149/Issue1149Test.php delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/1216.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/1216/Issue1216Test.php delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/1216/bootstrap1216.php delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/1216/phpunit1216.xml delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/1265.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/1265/Issue1265Test.php delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/1265/phpunit1265.xml delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/1330.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/1330/Issue1330Test.php delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/1330/phpunit1330.xml delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/1335.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/1335/Issue1335Test.php delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/1335/bootstrap1335.php delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/1337.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/1337/Issue1337Test.php delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/1348.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/1348/Issue1348Test.php delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/1351.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/1351/ChildProcessClass1351.php delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/1351/Issue1351Test.php delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/1374.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/1374/Issue1374Test.php delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/1437.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/1437/Issue1437Test.php delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/1468.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/1468/Issue1468Test.php delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/1471.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/1471/Issue1471Test.php delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/1472.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/1472/Issue1472Test.php delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/1570.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/1570/Issue1570Test.php delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/2137-filter.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/2137-no_filter.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/2137/Issue2137Test.php delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/2145.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/2145/Issue2145Test.php delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/2158.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/2158/Issue2158Test.php delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/2158/constant.inc delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/2366.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/2366/Issue2366Test.php delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/2380.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/2380/Issue2380Test.php delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/2382.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/2382/Issue2382Test.php delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/2435.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/2435/Issue2435Test.php delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/244.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/244/Issue244Test.php delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/2448-existing-test.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/2448-not-existing-test.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/2448/Test.php delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/2591-separate-class-preserve-no-bootstrap.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/2591-separate-class-preserve.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/2591-separate-function-no-preserve-no-bootstrap-php73.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/2591-separate-function-no-preserve-no-bootstrap-xdebug.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/2591-separate-function-no-preserve-no-bootstrap.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/2591-separate-function-no-preserve.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/2591-separate-function-preserve.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/2591/SeparateClassPreserveTest.php delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/2591/SeparateFunctionNoPreserveTest.php delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/2591/SeparateFunctionPreserveTest.php delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/2591/bootstrapNoBootstrap.php delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/2591/bootstrapWithBootstrap.php delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/2591/bootstrapWithBootstrapNoGlobal.php delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/2724-diff-pid-from-master-process.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/2724/SeparateClassRunMethodInNewProcessTest.php delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/2725-separate-class-before-after-pid.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/2725/BeforeAfterClassPidTest.php delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/2731.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/2731/Issue2731Test.php delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/2811.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/2811/Issue2811Test.php delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/2830.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/2830/Issue2830Test.php delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/2972.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/2972/issue-2972-test.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/2972/unconventiallyNamedIssue2972Test.php delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/3093/Issue3093Test.php delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/3093/issue-3093-test.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/3107/Issue3107Test.php delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/3107/issue-3107-test.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/3156/Issue3156Test.php delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/322.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/322/Issue322Test.php delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/322/phpunit322.xml delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/433.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/433/Issue433Test.php delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/445.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/445/Issue445Test.php delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/498.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/498/Issue498Test.php delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/503.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/503/Issue503Test.php delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/581.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/581/Issue581Test.php delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/74.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/74/Issue74Test.php delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/74/NewException.php delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/765.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/765/Issue765Test.php delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/797.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/797/Issue797Test.php delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/797/bootstrap797.php delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/863.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/873.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/873/Issue873Test.php delete mode 100644 vendor/phpunit/phpunit/tests/Regression/Trac/1021.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Regression/Trac/1021/Issue1021Test.php delete mode 100644 vendor/phpunit/phpunit/tests/Regression/Trac/523.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Regression/Trac/523/Issue523Test.php delete mode 100644 vendor/phpunit/phpunit/tests/Regression/Trac/578.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Regression/Trac/578/Issue578Test.php delete mode 100644 vendor/phpunit/phpunit/tests/Regression/Trac/684.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Regression/Trac/684/Issue684Test.php delete mode 100644 vendor/phpunit/phpunit/tests/Regression/Trac/783.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Regression/Trac/783/ChildSuite.php delete mode 100644 vendor/phpunit/phpunit/tests/Regression/Trac/783/OneTest.php delete mode 100644 vendor/phpunit/phpunit/tests/Regression/Trac/783/ParentSuite.php delete mode 100644 vendor/phpunit/phpunit/tests/Regression/Trac/783/TwoTest.php delete mode 100644 vendor/phpunit/phpunit/tests/Runner/PhptTestCaseTest.php delete mode 100644 vendor/phpunit/phpunit/tests/Runner/TestSuiteSorterTest.php delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/_files/Extension.php delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/_files/HookTest.php delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/_files/NullPrinter.php delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/_files/expect_external.txt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/_files/hooks.xml delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/_files/phpt-env.expected.txt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/_files/phpt_external.php delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/abstract-test-class.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/assertion.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/code-coverage-ignore.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/code-coverage-phpt.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/colors-always.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/concrete-test-class.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/custom-printer-debug.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/custom-printer-verbose.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/dataprovider-debug.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/dataprovider-issue-2833.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/dataprovider-issue-2859.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/dataprovider-issue-2922.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/dataprovider-log-xml-isolation.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/dataprovider-log-xml.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/dataprovider-testdox.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/debug.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/default-isolation.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/default.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/defaulttestsuite-using-testsuite.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/defaulttestsuite.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/dependencies-clone.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/dependencies-isolation.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/dependencies.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/dependencies2-isolation.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/dependencies2.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/dependencies3-isolation.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/dependencies3.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/disable-code-coverage-ignore.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/empty-testcase.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/exception-stack.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/exclude-group-isolation.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/exclude-group.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/failure-isolation.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/failure-reverse-list.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/failure.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/fatal-isolation.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/filter-class-isolation.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/filter-class.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/filter-dataprovider-by-classname-and-range-isolation.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/filter-dataprovider-by-classname-and-range.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/filter-dataprovider-by-number-isolation.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/filter-dataprovider-by-number.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/filter-dataprovider-by-only-range-isolation.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/filter-dataprovider-by-only-range.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/filter-dataprovider-by-only-regexp-isolation.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/filter-dataprovider-by-only-regexp.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/filter-dataprovider-by-only-string-isolation.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/filter-dataprovider-by-only-string.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/filter-dataprovider-by-range-isolation.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/filter-dataprovider-by-range.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/filter-dataprovider-by-regexp-isolation.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/filter-dataprovider-by-regexp.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/filter-dataprovider-by-string-isolation.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/filter-dataprovider-by-string.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/filter-method-case-insensitive.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/filter-method-case-sensitive-no-result.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/filter-method-isolation.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/filter-method.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/filter-no-results.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/forward-compatibility.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/group-isolation.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/group.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/help.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/help2.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/hooks.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/ini-isolation.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/list-groups.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/list-suites.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/list-tests-dataprovider.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/list-tests-xml-dataprovider.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/log-junit.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/log-teamcity.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/mycommand.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/options-after-arguments.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/output-isolation.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/phar-extension-suppressed.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/phar-extension.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/phpt-args.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/phpt-env.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/phpt-external.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/phpt-stderr.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/phpt-stdin.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/phpt-xfail.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/repeat.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/report-tests-performing-assertions-when-annotated-with-does-not-perform-assertions.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/report-useless-tests-incomplete.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/report-useless-tests-isolation.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/report-useless-tests.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/stop-on-warning-via-cli.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/stop-on-warning-via-config.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/teamcity-inner-exceptions.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/teamcity.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/test-order-randomized-seed-with-dependency-resolution.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/test-order-randomized-with-dependency-resolution.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/test-order-reversed-with-dependency-resolution.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/test-order-reversed-without-dependency-resolution.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/test-suffix-multiple.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/test-suffix-single.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/testdox-exclude-group.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/testdox-group.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/testdox-html.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/testdox-text.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/testdox-verbose.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/testdox-xml.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/testdox.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Util/ConfigurationGeneratorTest.php delete mode 100644 vendor/phpunit/phpunit/tests/Util/ConfigurationTest.php delete mode 100644 vendor/phpunit/phpunit/tests/Util/GetoptTest.php delete mode 100644 vendor/phpunit/phpunit/tests/Util/GlobalStateTest.php delete mode 100644 vendor/phpunit/phpunit/tests/Util/JsonTest.php delete mode 100644 vendor/phpunit/phpunit/tests/Util/PHP/AbstractPhpProcessTest.php delete mode 100644 vendor/phpunit/phpunit/tests/Util/RegularExpressionTest.php delete mode 100644 vendor/phpunit/phpunit/tests/Util/TestDox/CliTestDoxPrinterTest.php delete mode 100644 vendor/phpunit/phpunit/tests/Util/TestDox/NamePrettifierTest.php delete mode 100644 vendor/phpunit/phpunit/tests/Util/TestTest.php delete mode 100644 vendor/phpunit/phpunit/tests/Util/XmlTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/AbstractMockTestClass.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/AbstractTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/AbstractTrait.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/AnInterface.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/AnInterfaceWithReturnType.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/AnotherInterface.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/ArrayAccessible.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/AssertionExample.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/AssertionExampleTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/Author.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/BankAccount.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/BankAccountTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/BankAccountTest.test.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/BankAccountTest2.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/Bar.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/BeforeAndAfterTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/BeforeClassAndAfterClassTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/BeforeClassWithOnlyDataProviderTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/Book.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/Calculator.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/ChangeCurrentWorkingDirectoryTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/ClassThatImplementsSerializable.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/ClassWithAllPossibleReturnTypes.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/ClassWithNonPublicAttributes.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/ClassWithScalarTypeDeclarations.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/ClassWithSelfTypeHint.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/ClassWithStaticMethod.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/ClassWithToString.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/ClonedDependencyTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/ConcreteTest.my.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/ConcreteTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/CountConstraint.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/CoverageClassExtendedTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/CoverageClassTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/CoverageCoversOverridesCoversNothingTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/CoverageFunctionParenthesesTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/CoverageFunctionParenthesesWhitespaceTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/CoverageFunctionTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/CoverageMethodOneLineAnnotationTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/CoverageMethodParenthesesTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/CoverageMethodParenthesesWhitespaceTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/CoverageMethodTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/CoverageNamespacedFunctionTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/CoverageNoneTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/CoverageNotPrivateTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/CoverageNotProtectedTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/CoverageNotPublicTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/CoverageNothingTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/CoveragePrivateTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/CoverageProtectedTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/CoveragePublicTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/CoverageTwoDefaultClassAnnotations.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/CoveredClass.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/CoveredFunction.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/CustomPrinter.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/DataProviderDebugTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/DataProviderDependencyTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/DataProviderFilterTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/DataProviderIncompleteTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/DataProviderIssue2833/FirstTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/DataProviderIssue2833/SecondTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/DataProviderIssue2859/phpunit.xml delete mode 100644 vendor/phpunit/phpunit/tests/_files/DataProviderIssue2859/tests/another/TestWithDataProviderTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/DataProviderIssue2922/FirstTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/DataProviderIssue2922/SecondTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/DataProviderSkippedTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/DataProviderTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/DataProviderTestDoxTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/DependencyFailureTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/DependencySuccessTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/DependencyTestSuite.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/DoNoAssertionTestCase.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/DoesNotPerformAssertionsButPerformingAssertionsTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/DoubleTestCase.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/DummyBarTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/DummyException.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/DummyFooTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/EmptyTestCaseTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/ExampleTrait.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/ExceptionInAssertPostConditionsTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/ExceptionInAssertPreConditionsTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/ExceptionInSetUpTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/ExceptionInTearDownTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/ExceptionInTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/ExceptionInTestDetectedInTeardown.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/ExceptionNamespaceTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/ExceptionStackTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/ExceptionTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/ExceptionWithThrowable.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/Failure.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/FailureTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/FalsyConstraint.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/FatalTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/Foo.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/FunctionCallback.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/GoogleSearch.wsdl delete mode 100644 vendor/phpunit/phpunit/tests/_files/IgnoreCodeCoverageClass.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/IgnoreCodeCoverageClassTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/IncompleteTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/Inheritance/InheritanceA.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/Inheritance/InheritanceB.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/InheritedTestCase.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/IniTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/InterfaceWithSemiReservedMethodName.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/InterfaceWithStaticMethod.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/IsolationTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/JsonData/arrayObject.json delete mode 100644 vendor/phpunit/phpunit/tests/_files/JsonData/simpleObject.json delete mode 100644 vendor/phpunit/phpunit/tests/_files/MethodCallback.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/MethodCallbackByReference.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/MockRunner.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/MockTestInterface.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/Mockable.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/MultiDependencyTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/MultipleDataProviderTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/MyCommand.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/NamedConstraint.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/NamespaceCoverageClassExtendedTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/NamespaceCoverageClassTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/NamespaceCoverageCoversClassPublicTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/NamespaceCoverageCoversClassTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/NamespaceCoverageMethodTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/NamespaceCoverageNotPrivateTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/NamespaceCoverageNotProtectedTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/NamespaceCoverageNotPublicTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/NamespaceCoveragePrivateTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/NamespaceCoverageProtectedTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/NamespaceCoveragePublicTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/NamespaceCoveredClass.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/NamespaceCoveredFunction.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/NoArgTestCaseTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/NoTestCaseClass.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/NoTestCases.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/NonStatic.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/NotExistingCoveredElementTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/NotPublicTestCase.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/NotVoidTestCase.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/NothingTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/OneTestCase.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/OutputTestCase.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/OverrideTestCase.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/ParseTestMethodAnnotationsMock.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/PartialMockTestClass.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/RequirementsClassBeforeClassHookTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/RequirementsClassDocBlockTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/RequirementsTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/SampleArrayAccess.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/SampleClass.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/Singleton.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/SingletonClass.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/SomeClass.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/StackTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/StaticMockTestClass.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/StatusTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/StopOnWarningTestSuite.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/StopsOnWarningTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/StringableClass.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/Struct.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/Success.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/TemplateMethodsTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/TestAutoreferenced.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/TestDoxGroupTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/TestGeneratorMaker.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/TestIncomplete.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/TestIterator.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/TestIterator2.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/TestIteratorAggregate.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/TestIteratorAggregate2.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/TestSkipped.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/TestTestError.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/TestWithTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/TestableCliTestDoxPrinter.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/ThrowExceptionTestCase.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/ThrowNoExceptionTestCase.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/TraversableMockTestInterface.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/TruthyConstraint.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/VariousIterableDataProviderTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/WasRun.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/WrapperIteratorAggregate.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/bar.xml delete mode 100644 vendor/phpunit/phpunit/tests/_files/configuration.colors.empty.xml delete mode 100644 vendor/phpunit/phpunit/tests/_files/configuration.colors.false.xml delete mode 100644 vendor/phpunit/phpunit/tests/_files/configuration.colors.invalid.xml delete mode 100644 vendor/phpunit/phpunit/tests/_files/configuration.colors.true.xml delete mode 100644 vendor/phpunit/phpunit/tests/_files/configuration.columns.default.xml delete mode 100644 vendor/phpunit/phpunit/tests/_files/configuration.custom-printer.xml delete mode 100644 vendor/phpunit/phpunit/tests/_files/configuration.defaulttestsuite.xml delete mode 100644 vendor/phpunit/phpunit/tests/_files/configuration.one-file-suite.xml delete mode 100644 vendor/phpunit/phpunit/tests/_files/configuration.suites.xml delete mode 100644 vendor/phpunit/phpunit/tests/_files/configuration.xml delete mode 100644 vendor/phpunit/phpunit/tests/_files/configuration_empty.xml delete mode 100644 vendor/phpunit/phpunit/tests/_files/configuration_stop_on_warning.xml delete mode 100644 vendor/phpunit/phpunit/tests/_files/configuration_xinclude.xml delete mode 100644 vendor/phpunit/phpunit/tests/_files/expectedFileFormat.txt delete mode 100644 vendor/phpunit/phpunit/tests/_files/foo.xml delete mode 100644 vendor/phpunit/phpunit/tests/_files/phpt-for-coverage.phpt delete mode 100644 vendor/phpunit/phpunit/tests/_files/phpt-xfail.phpt delete mode 100644 vendor/phpunit/phpunit/tests/_files/phpunit-example-extension/phpunit.xml delete mode 100644 vendor/phpunit/phpunit/tests/_files/phpunit-example-extension/tests/OneTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/phpunit-example-extension/tools/phpunit.d/phpunit-example-extension-3.0.3.phar delete mode 100644 vendor/phpunit/phpunit/tests/_files/structureAttributesAreSameButValuesAreNot.xml delete mode 100644 vendor/phpunit/phpunit/tests/_files/structureExpected.xml delete mode 100644 vendor/phpunit/phpunit/tests/_files/structureIgnoreTextNodes.xml delete mode 100644 vendor/phpunit/phpunit/tests/_files/structureIsSameButDataIsNot.xml delete mode 100644 vendor/phpunit/phpunit/tests/_files/structureWrongNumberOfAttributes.xml delete mode 100644 vendor/phpunit/phpunit/tests/_files/structureWrongNumberOfNodes.xml delete mode 100644 vendor/phpunit/phpunit/tests/bootstrap.php delete mode 100644 vendor/psr/container/LICENSE delete mode 100644 vendor/psr/container/README.md delete mode 100644 vendor/psr/container/composer.json delete mode 100644 vendor/psr/container/src/ContainerExceptionInterface.php delete mode 100644 vendor/psr/container/src/ContainerInterface.php delete mode 100644 vendor/psr/container/src/NotFoundExceptionInterface.php delete mode 100644 vendor/psr/http-message/CHANGELOG.md delete mode 100644 vendor/psr/http-message/LICENSE delete mode 100644 vendor/psr/http-message/README.md delete mode 100644 vendor/psr/http-message/composer.json delete mode 100644 vendor/psr/http-message/src/MessageInterface.php delete mode 100644 vendor/psr/http-message/src/RequestInterface.php delete mode 100644 vendor/psr/http-message/src/ResponseInterface.php delete mode 100644 vendor/psr/http-message/src/ServerRequestInterface.php delete mode 100644 vendor/psr/http-message/src/StreamInterface.php delete mode 100644 vendor/psr/http-message/src/UploadedFileInterface.php delete mode 100644 vendor/psr/http-message/src/UriInterface.php delete mode 100644 vendor/psr/log/LICENSE delete mode 100644 vendor/psr/log/Psr/Log/AbstractLogger.php delete mode 100644 vendor/psr/log/Psr/Log/InvalidArgumentException.php delete mode 100644 vendor/psr/log/Psr/Log/LogLevel.php delete mode 100644 vendor/psr/log/Psr/Log/LoggerAwareInterface.php delete mode 100644 vendor/psr/log/Psr/Log/LoggerAwareTrait.php delete mode 100644 vendor/psr/log/Psr/Log/LoggerInterface.php delete mode 100644 vendor/psr/log/Psr/Log/LoggerTrait.php delete mode 100644 vendor/psr/log/Psr/Log/NullLogger.php delete mode 100644 vendor/psr/log/Psr/Log/Test/LoggerInterfaceTest.php delete mode 100644 vendor/psr/log/README.md delete mode 100644 vendor/psr/log/composer.json delete mode 100644 vendor/psr/simple-cache/.editorconfig delete mode 100644 vendor/psr/simple-cache/LICENSE.md delete mode 100644 vendor/psr/simple-cache/README.md delete mode 100644 vendor/psr/simple-cache/composer.json delete mode 100644 vendor/psr/simple-cache/src/CacheException.php delete mode 100644 vendor/psr/simple-cache/src/CacheInterface.php delete mode 100644 vendor/psr/simple-cache/src/InvalidArgumentException.php delete mode 100644 vendor/psy/psysh/.editorconfig delete mode 100644 vendor/psy/psysh/.github/CONTRIBUTING.md delete mode 100644 vendor/psy/psysh/.phan/config.php delete mode 100644 vendor/psy/psysh/.php_cs delete mode 100644 vendor/psy/psysh/.styleci.yml delete mode 100644 vendor/psy/psysh/.travis.yml delete mode 100644 vendor/psy/psysh/LICENSE delete mode 100644 vendor/psy/psysh/Makefile delete mode 100644 vendor/psy/psysh/README.md delete mode 100755 vendor/psy/psysh/bin/build-stub delete mode 100755 vendor/psy/psysh/bin/psysh delete mode 100644 vendor/psy/psysh/box.json.dist delete mode 100644 vendor/psy/psysh/composer.json delete mode 100644 vendor/psy/psysh/phpunit.xml.dist delete mode 100644 vendor/psy/psysh/src/CodeCleaner.php delete mode 100644 vendor/psy/psysh/src/CodeCleaner/AbstractClassPass.php delete mode 100644 vendor/psy/psysh/src/CodeCleaner/AssignThisVariablePass.php delete mode 100644 vendor/psy/psysh/src/CodeCleaner/CallTimePassByReferencePass.php delete mode 100644 vendor/psy/psysh/src/CodeCleaner/CalledClassPass.php delete mode 100644 vendor/psy/psysh/src/CodeCleaner/CodeCleanerPass.php delete mode 100644 vendor/psy/psysh/src/CodeCleaner/ExitPass.php delete mode 100644 vendor/psy/psysh/src/CodeCleaner/FinalClassPass.php delete mode 100644 vendor/psy/psysh/src/CodeCleaner/FunctionContextPass.php delete mode 100644 vendor/psy/psysh/src/CodeCleaner/FunctionReturnInWriteContextPass.php delete mode 100644 vendor/psy/psysh/src/CodeCleaner/ImplicitReturnPass.php delete mode 100644 vendor/psy/psysh/src/CodeCleaner/InstanceOfPass.php delete mode 100644 vendor/psy/psysh/src/CodeCleaner/LeavePsyshAlonePass.php delete mode 100644 vendor/psy/psysh/src/CodeCleaner/LegacyEmptyPass.php delete mode 100644 vendor/psy/psysh/src/CodeCleaner/ListPass.php delete mode 100644 vendor/psy/psysh/src/CodeCleaner/LoopContextPass.php delete mode 100644 vendor/psy/psysh/src/CodeCleaner/MagicConstantsPass.php delete mode 100644 vendor/psy/psysh/src/CodeCleaner/NamespaceAwarePass.php delete mode 100644 vendor/psy/psysh/src/CodeCleaner/NamespacePass.php delete mode 100644 vendor/psy/psysh/src/CodeCleaner/NoReturnValue.php delete mode 100644 vendor/psy/psysh/src/CodeCleaner/PassableByReferencePass.php delete mode 100644 vendor/psy/psysh/src/CodeCleaner/RequirePass.php delete mode 100644 vendor/psy/psysh/src/CodeCleaner/StrictTypesPass.php delete mode 100644 vendor/psy/psysh/src/CodeCleaner/UseStatementPass.php delete mode 100644 vendor/psy/psysh/src/CodeCleaner/ValidClassNamePass.php delete mode 100644 vendor/psy/psysh/src/CodeCleaner/ValidConstantPass.php delete mode 100644 vendor/psy/psysh/src/CodeCleaner/ValidConstructorPass.php delete mode 100644 vendor/psy/psysh/src/CodeCleaner/ValidFunctionNamePass.php delete mode 100644 vendor/psy/psysh/src/Command/BufferCommand.php delete mode 100644 vendor/psy/psysh/src/Command/ClearCommand.php delete mode 100644 vendor/psy/psysh/src/Command/Command.php delete mode 100644 vendor/psy/psysh/src/Command/DocCommand.php delete mode 100644 vendor/psy/psysh/src/Command/DumpCommand.php delete mode 100644 vendor/psy/psysh/src/Command/EditCommand.php delete mode 100644 vendor/psy/psysh/src/Command/ExitCommand.php delete mode 100644 vendor/psy/psysh/src/Command/HelpCommand.php delete mode 100644 vendor/psy/psysh/src/Command/HistoryCommand.php delete mode 100644 vendor/psy/psysh/src/Command/ListCommand.php delete mode 100644 vendor/psy/psysh/src/Command/ListCommand/ClassConstantEnumerator.php delete mode 100644 vendor/psy/psysh/src/Command/ListCommand/ClassEnumerator.php delete mode 100644 vendor/psy/psysh/src/Command/ListCommand/ConstantEnumerator.php delete mode 100644 vendor/psy/psysh/src/Command/ListCommand/Enumerator.php delete mode 100644 vendor/psy/psysh/src/Command/ListCommand/FunctionEnumerator.php delete mode 100644 vendor/psy/psysh/src/Command/ListCommand/GlobalVariableEnumerator.php delete mode 100644 vendor/psy/psysh/src/Command/ListCommand/InterfaceEnumerator.php delete mode 100644 vendor/psy/psysh/src/Command/ListCommand/MethodEnumerator.php delete mode 100644 vendor/psy/psysh/src/Command/ListCommand/PropertyEnumerator.php delete mode 100644 vendor/psy/psysh/src/Command/ListCommand/TraitEnumerator.php delete mode 100644 vendor/psy/psysh/src/Command/ListCommand/VariableEnumerator.php delete mode 100644 vendor/psy/psysh/src/Command/ParseCommand.php delete mode 100644 vendor/psy/psysh/src/Command/PsyVersionCommand.php delete mode 100644 vendor/psy/psysh/src/Command/ReflectingCommand.php delete mode 100644 vendor/psy/psysh/src/Command/ShowCommand.php delete mode 100644 vendor/psy/psysh/src/Command/SudoCommand.php delete mode 100644 vendor/psy/psysh/src/Command/ThrowUpCommand.php delete mode 100644 vendor/psy/psysh/src/Command/TimeitCommand.php delete mode 100644 vendor/psy/psysh/src/Command/TimeitCommand/TimeitVisitor.php delete mode 100644 vendor/psy/psysh/src/Command/TraceCommand.php delete mode 100644 vendor/psy/psysh/src/Command/WhereamiCommand.php delete mode 100644 vendor/psy/psysh/src/Command/WtfCommand.php delete mode 100644 vendor/psy/psysh/src/ConfigPaths.php delete mode 100644 vendor/psy/psysh/src/Configuration.php delete mode 100644 vendor/psy/psysh/src/ConsoleColorFactory.php delete mode 100644 vendor/psy/psysh/src/Context.php delete mode 100644 vendor/psy/psysh/src/ContextAware.php delete mode 100644 vendor/psy/psysh/src/Exception/BreakException.php delete mode 100644 vendor/psy/psysh/src/Exception/DeprecatedException.php delete mode 100644 vendor/psy/psysh/src/Exception/ErrorException.php delete mode 100644 vendor/psy/psysh/src/Exception/Exception.php delete mode 100644 vendor/psy/psysh/src/Exception/FatalErrorException.php delete mode 100644 vendor/psy/psysh/src/Exception/ParseErrorException.php delete mode 100644 vendor/psy/psysh/src/Exception/RuntimeException.php delete mode 100644 vendor/psy/psysh/src/Exception/ThrowUpException.php delete mode 100644 vendor/psy/psysh/src/Exception/TypeErrorException.php delete mode 100644 vendor/psy/psysh/src/ExecutionClosure.php delete mode 100644 vendor/psy/psysh/src/ExecutionLoop.php delete mode 100644 vendor/psy/psysh/src/ExecutionLoop/AbstractListener.php delete mode 100644 vendor/psy/psysh/src/ExecutionLoop/Listener.php delete mode 100644 vendor/psy/psysh/src/ExecutionLoop/ProcessForker.php delete mode 100644 vendor/psy/psysh/src/ExecutionLoop/RunkitReloader.php delete mode 100644 vendor/psy/psysh/src/ExecutionLoopClosure.php delete mode 100644 vendor/psy/psysh/src/Formatter/CodeFormatter.php delete mode 100644 vendor/psy/psysh/src/Formatter/DocblockFormatter.php delete mode 100644 vendor/psy/psysh/src/Formatter/Formatter.php delete mode 100644 vendor/psy/psysh/src/Formatter/SignatureFormatter.php delete mode 100644 vendor/psy/psysh/src/Input/CodeArgument.php delete mode 100644 vendor/psy/psysh/src/Input/FilterOptions.php delete mode 100644 vendor/psy/psysh/src/Input/ShellInput.php delete mode 100644 vendor/psy/psysh/src/Input/SilentInput.php delete mode 100644 vendor/psy/psysh/src/Output/OutputPager.php delete mode 100644 vendor/psy/psysh/src/Output/PassthruPager.php delete mode 100644 vendor/psy/psysh/src/Output/ProcOutputPager.php delete mode 100644 vendor/psy/psysh/src/Output/ShellOutput.php delete mode 100644 vendor/psy/psysh/src/ParserFactory.php delete mode 100644 vendor/psy/psysh/src/Readline/GNUReadline.php delete mode 100644 vendor/psy/psysh/src/Readline/HoaConsole.php delete mode 100644 vendor/psy/psysh/src/Readline/Libedit.php delete mode 100644 vendor/psy/psysh/src/Readline/Readline.php delete mode 100644 vendor/psy/psysh/src/Readline/Transient.php delete mode 100644 vendor/psy/psysh/src/Reflection/ReflectionClassConstant.php delete mode 100644 vendor/psy/psysh/src/Reflection/ReflectionConstant.php delete mode 100644 vendor/psy/psysh/src/Reflection/ReflectionConstant_.php delete mode 100644 vendor/psy/psysh/src/Reflection/ReflectionLanguageConstruct.php delete mode 100644 vendor/psy/psysh/src/Reflection/ReflectionLanguageConstructParameter.php delete mode 100644 vendor/psy/psysh/src/Shell.php delete mode 100644 vendor/psy/psysh/src/Sudo.php delete mode 100644 vendor/psy/psysh/src/Sudo/SudoVisitor.php delete mode 100644 vendor/psy/psysh/src/TabCompletion/AutoCompleter.php delete mode 100644 vendor/psy/psysh/src/TabCompletion/Matcher/AbstractContextAwareMatcher.php delete mode 100644 vendor/psy/psysh/src/TabCompletion/Matcher/AbstractDefaultParametersMatcher.php delete mode 100644 vendor/psy/psysh/src/TabCompletion/Matcher/AbstractMatcher.php delete mode 100644 vendor/psy/psysh/src/TabCompletion/Matcher/ClassAttributesMatcher.php delete mode 100644 vendor/psy/psysh/src/TabCompletion/Matcher/ClassMethodDefaultParametersMatcher.php delete mode 100644 vendor/psy/psysh/src/TabCompletion/Matcher/ClassMethodsMatcher.php delete mode 100644 vendor/psy/psysh/src/TabCompletion/Matcher/ClassNamesMatcher.php delete mode 100644 vendor/psy/psysh/src/TabCompletion/Matcher/CommandsMatcher.php delete mode 100644 vendor/psy/psysh/src/TabCompletion/Matcher/ConstantsMatcher.php delete mode 100644 vendor/psy/psysh/src/TabCompletion/Matcher/FunctionDefaultParametersMatcher.php delete mode 100644 vendor/psy/psysh/src/TabCompletion/Matcher/FunctionsMatcher.php delete mode 100644 vendor/psy/psysh/src/TabCompletion/Matcher/KeywordsMatcher.php delete mode 100644 vendor/psy/psysh/src/TabCompletion/Matcher/MongoClientMatcher.php delete mode 100644 vendor/psy/psysh/src/TabCompletion/Matcher/MongoDatabaseMatcher.php delete mode 100644 vendor/psy/psysh/src/TabCompletion/Matcher/ObjectAttributesMatcher.php delete mode 100644 vendor/psy/psysh/src/TabCompletion/Matcher/ObjectMethodDefaultParametersMatcher.php delete mode 100644 vendor/psy/psysh/src/TabCompletion/Matcher/ObjectMethodsMatcher.php delete mode 100644 vendor/psy/psysh/src/TabCompletion/Matcher/VariablesMatcher.php delete mode 100644 vendor/psy/psysh/src/Util/Docblock.php delete mode 100644 vendor/psy/psysh/src/Util/Json.php delete mode 100644 vendor/psy/psysh/src/Util/Mirror.php delete mode 100644 vendor/psy/psysh/src/Util/Str.php delete mode 100644 vendor/psy/psysh/src/VarDumper/Cloner.php delete mode 100644 vendor/psy/psysh/src/VarDumper/Dumper.php delete mode 100644 vendor/psy/psysh/src/VarDumper/Presenter.php delete mode 100644 vendor/psy/psysh/src/VarDumper/PresenterAware.php delete mode 100644 vendor/psy/psysh/src/VersionUpdater/Checker.php delete mode 100644 vendor/psy/psysh/src/VersionUpdater/GitHubChecker.php delete mode 100644 vendor/psy/psysh/src/VersionUpdater/IntervalChecker.php delete mode 100644 vendor/psy/psysh/src/VersionUpdater/NoopChecker.php delete mode 100644 vendor/psy/psysh/src/functions.php delete mode 100644 vendor/psy/psysh/test/ClassWithSecrets.php delete mode 100644 vendor/psy/psysh/test/CodeCleaner/AbstractClassPassTest.php delete mode 100644 vendor/psy/psysh/test/CodeCleaner/AssignThisVariablePassTest.php delete mode 100644 vendor/psy/psysh/test/CodeCleaner/CallTimePassByReferencePassTest.php delete mode 100644 vendor/psy/psysh/test/CodeCleaner/CalledClassPassTest.php delete mode 100644 vendor/psy/psysh/test/CodeCleaner/CodeCleanerTestCase.php delete mode 100644 vendor/psy/psysh/test/CodeCleaner/ExitPassTest.php delete mode 100644 vendor/psy/psysh/test/CodeCleaner/FinalClassPassTest.php delete mode 100644 vendor/psy/psysh/test/CodeCleaner/Fixtures/ClassWithCallStatic.php delete mode 100644 vendor/psy/psysh/test/CodeCleaner/Fixtures/ClassWithStatic.php delete mode 100644 vendor/psy/psysh/test/CodeCleaner/FunctionContextPassTest.php delete mode 100644 vendor/psy/psysh/test/CodeCleaner/FunctionReturnInWriteContextPassTest.php delete mode 100644 vendor/psy/psysh/test/CodeCleaner/ImplicitReturnPassTest.php delete mode 100644 vendor/psy/psysh/test/CodeCleaner/InstanceOfPassTest.php delete mode 100644 vendor/psy/psysh/test/CodeCleaner/LeavePsyshAlonePassTest.php delete mode 100644 vendor/psy/psysh/test/CodeCleaner/LegacyEmptyPassTest.php delete mode 100644 vendor/psy/psysh/test/CodeCleaner/ListPassTest.php delete mode 100644 vendor/psy/psysh/test/CodeCleaner/LoopContextPassTest.php delete mode 100644 vendor/psy/psysh/test/CodeCleaner/MagicConstantsPassTest.php delete mode 100644 vendor/psy/psysh/test/CodeCleaner/NamespacePassTest.php delete mode 100644 vendor/psy/psysh/test/CodeCleaner/NoReturnValueTest.php delete mode 100644 vendor/psy/psysh/test/CodeCleaner/PassableByReferencePassTest.php delete mode 100644 vendor/psy/psysh/test/CodeCleaner/RequirePassTest.php delete mode 100644 vendor/psy/psysh/test/CodeCleaner/StrictTypesPassTest.php delete mode 100644 vendor/psy/psysh/test/CodeCleaner/UseStatementPassTest.php delete mode 100644 vendor/psy/psysh/test/CodeCleaner/ValidClassNamePassTest.php delete mode 100644 vendor/psy/psysh/test/CodeCleaner/ValidConstantPassTest.php delete mode 100644 vendor/psy/psysh/test/CodeCleaner/ValidConstructorPassTest.php delete mode 100644 vendor/psy/psysh/test/CodeCleaner/ValidFunctionNamePassTest.php delete mode 100644 vendor/psy/psysh/test/CodeCleanerTest.php delete mode 100644 vendor/psy/psysh/test/Command/ExitCommandTest.php delete mode 100644 vendor/psy/psysh/test/Command/ThrowUpCommandTest.php delete mode 100644 vendor/psy/psysh/test/Command/TimeitCommand/TimeitVisitorTest.php delete mode 100644 vendor/psy/psysh/test/ConfigurationTest.php delete mode 100644 vendor/psy/psysh/test/ConsoleColorFactoryTest.php delete mode 100644 vendor/psy/psysh/test/ContextTest.php delete mode 100644 vendor/psy/psysh/test/Exception/BreakExceptionTest.php delete mode 100644 vendor/psy/psysh/test/Exception/ErrorExceptionTest.php delete mode 100644 vendor/psy/psysh/test/Exception/FatalErrorExceptionTest.php delete mode 100644 vendor/psy/psysh/test/Exception/ParseErrorExceptionTest.php delete mode 100644 vendor/psy/psysh/test/Exception/RuntimeExceptionTest.php delete mode 100644 vendor/psy/psysh/test/Exception/ThrowUpExceptionTest.php delete mode 100644 vendor/psy/psysh/test/Exception/TypeErrorExceptionTest.php delete mode 100644 vendor/psy/psysh/test/FakeShell.php delete mode 100644 vendor/psy/psysh/test/Formatter/CodeFormatterTest.php delete mode 100644 vendor/psy/psysh/test/Formatter/DocblockFormatterTest.php delete mode 100644 vendor/psy/psysh/test/Formatter/Fixtures/BoringTrait.php delete mode 100644 vendor/psy/psysh/test/Formatter/Fixtures/SomeClass.php delete mode 100644 vendor/psy/psysh/test/Formatter/SignatureFormatterTest.php delete mode 100644 vendor/psy/psysh/test/Input/CodeArgumentTest.php delete mode 100644 vendor/psy/psysh/test/Input/FilterOptionsTest.php delete mode 100644 vendor/psy/psysh/test/Input/ShellInputTest.php delete mode 100644 vendor/psy/psysh/test/ParserTestCase.php delete mode 100644 vendor/psy/psysh/test/Readline/GNUReadlineTest.php delete mode 100644 vendor/psy/psysh/test/Readline/HoaConsoleTest.php delete mode 100644 vendor/psy/psysh/test/Readline/LibeditTest.php delete mode 100644 vendor/psy/psysh/test/Readline/TransientTest.php delete mode 100644 vendor/psy/psysh/test/Reflection/ReflectionClassConstantTest.php delete mode 100644 vendor/psy/psysh/test/Reflection/ReflectionConstantBCTest.php delete mode 100644 vendor/psy/psysh/test/Reflection/ReflectionConstantTest.php delete mode 100644 vendor/psy/psysh/test/Reflection/ReflectionLanguageConstructParameterTest.php delete mode 100644 vendor/psy/psysh/test/Reflection/ReflectionLanguageConstructTest.php delete mode 100644 vendor/psy/psysh/test/ShellTest.php delete mode 100644 vendor/psy/psysh/test/Sudo/SudoVisitorTest.php delete mode 100644 vendor/psy/psysh/test/SudoTest.php delete mode 100644 vendor/psy/psysh/test/TabCompletion/AutoCompleterTest.php delete mode 100644 vendor/psy/psysh/test/TabCompletion/StaticSample.php delete mode 100644 vendor/psy/psysh/test/Util/DocblockTest.php delete mode 100644 vendor/psy/psysh/test/Util/MirrorTest.php delete mode 100644 vendor/psy/psysh/test/Util/StrTest.php delete mode 100644 vendor/psy/psysh/test/VersionUpdater/GitHubCheckerTest.php delete mode 100644 vendor/psy/psysh/test/VersionUpdater/NoopCheckerTest.php delete mode 100644 vendor/psy/psysh/test/fixtures/config.php delete mode 100644 vendor/psy/psysh/test/fixtures/default/.config/psysh/config.php delete mode 100644 vendor/psy/psysh/test/fixtures/default/.config/psysh/psysh_history delete mode 100644 vendor/psy/psysh/test/fixtures/default/.local/share/psysh/php_manual.sqlite delete mode 100644 vendor/psy/psysh/test/fixtures/empty.php delete mode 100644 vendor/psy/psysh/test/fixtures/legacy/.psysh/history delete mode 100644 vendor/psy/psysh/test/fixtures/legacy/.psysh/php_manual.sqlite delete mode 100644 vendor/psy/psysh/test/fixtures/legacy/.psysh/rc.php delete mode 100644 vendor/psy/psysh/test/fixtures/mixed/.psysh/config.php delete mode 100644 vendor/psy/psysh/test/fixtures/mixed/.psysh/psysh_history delete mode 100644 vendor/psy/psysh/test/fixtures/mixed/.psysh/rc.php delete mode 100644 vendor/psy/psysh/test/fixtures/project/.psysh.php delete mode 100644 vendor/psy/psysh/test/fixtures/unvis_fixtures.json delete mode 100755 vendor/psy/psysh/test/tools/gen_unvis_fixtures.py delete mode 100755 vendor/psy/psysh/test/tools/vis.py delete mode 100644 vendor/psy/psysh/vendor-bin/box/composer.json delete mode 100644 vendor/psy/psysh/vendor-bin/box/composer.lock delete mode 100644 vendor/ramsey/uuid/CHANGELOG.md delete mode 100644 vendor/ramsey/uuid/CODE_OF_CONDUCT.md delete mode 100644 vendor/ramsey/uuid/CONTRIBUTING.md delete mode 100644 vendor/ramsey/uuid/LICENSE delete mode 100644 vendor/ramsey/uuid/README.md delete mode 100644 vendor/ramsey/uuid/composer.json delete mode 100644 vendor/ramsey/uuid/src/BinaryUtils.php delete mode 100644 vendor/ramsey/uuid/src/Builder/DefaultUuidBuilder.php delete mode 100644 vendor/ramsey/uuid/src/Builder/DegradedUuidBuilder.php delete mode 100644 vendor/ramsey/uuid/src/Builder/UuidBuilderInterface.php delete mode 100644 vendor/ramsey/uuid/src/Codec/CodecInterface.php delete mode 100644 vendor/ramsey/uuid/src/Codec/GuidStringCodec.php delete mode 100644 vendor/ramsey/uuid/src/Codec/OrderedTimeCodec.php delete mode 100644 vendor/ramsey/uuid/src/Codec/StringCodec.php delete mode 100644 vendor/ramsey/uuid/src/Codec/TimestampFirstCombCodec.php delete mode 100644 vendor/ramsey/uuid/src/Codec/TimestampLastCombCodec.php delete mode 100644 vendor/ramsey/uuid/src/Converter/Number/BigNumberConverter.php delete mode 100644 vendor/ramsey/uuid/src/Converter/Number/DegradedNumberConverter.php delete mode 100644 vendor/ramsey/uuid/src/Converter/NumberConverterInterface.php delete mode 100644 vendor/ramsey/uuid/src/Converter/Time/BigNumberTimeConverter.php delete mode 100644 vendor/ramsey/uuid/src/Converter/Time/DegradedTimeConverter.php delete mode 100644 vendor/ramsey/uuid/src/Converter/Time/PhpTimeConverter.php delete mode 100644 vendor/ramsey/uuid/src/Converter/TimeConverterInterface.php delete mode 100644 vendor/ramsey/uuid/src/DegradedUuid.php delete mode 100644 vendor/ramsey/uuid/src/Exception/InvalidUuidStringException.php delete mode 100644 vendor/ramsey/uuid/src/Exception/UnsatisfiedDependencyException.php delete mode 100644 vendor/ramsey/uuid/src/Exception/UnsupportedOperationException.php delete mode 100644 vendor/ramsey/uuid/src/FeatureSet.php delete mode 100644 vendor/ramsey/uuid/src/Generator/CombGenerator.php delete mode 100644 vendor/ramsey/uuid/src/Generator/DefaultTimeGenerator.php delete mode 100644 vendor/ramsey/uuid/src/Generator/MtRandGenerator.php delete mode 100644 vendor/ramsey/uuid/src/Generator/OpenSslGenerator.php delete mode 100644 vendor/ramsey/uuid/src/Generator/PeclUuidRandomGenerator.php delete mode 100644 vendor/ramsey/uuid/src/Generator/PeclUuidTimeGenerator.php delete mode 100644 vendor/ramsey/uuid/src/Generator/RandomBytesGenerator.php delete mode 100644 vendor/ramsey/uuid/src/Generator/RandomGeneratorFactory.php delete mode 100644 vendor/ramsey/uuid/src/Generator/RandomGeneratorInterface.php delete mode 100644 vendor/ramsey/uuid/src/Generator/RandomLibAdapter.php delete mode 100644 vendor/ramsey/uuid/src/Generator/SodiumRandomGenerator.php delete mode 100644 vendor/ramsey/uuid/src/Generator/TimeGeneratorFactory.php delete mode 100644 vendor/ramsey/uuid/src/Generator/TimeGeneratorInterface.php delete mode 100644 vendor/ramsey/uuid/src/Provider/Node/FallbackNodeProvider.php delete mode 100644 vendor/ramsey/uuid/src/Provider/Node/RandomNodeProvider.php delete mode 100644 vendor/ramsey/uuid/src/Provider/Node/SystemNodeProvider.php delete mode 100644 vendor/ramsey/uuid/src/Provider/NodeProviderInterface.php delete mode 100644 vendor/ramsey/uuid/src/Provider/Time/FixedTimeProvider.php delete mode 100644 vendor/ramsey/uuid/src/Provider/Time/SystemTimeProvider.php delete mode 100644 vendor/ramsey/uuid/src/Provider/TimeProviderInterface.php delete mode 100644 vendor/ramsey/uuid/src/Uuid.php delete mode 100644 vendor/ramsey/uuid/src/UuidFactory.php delete mode 100644 vendor/ramsey/uuid/src/UuidFactoryInterface.php delete mode 100644 vendor/ramsey/uuid/src/UuidInterface.php delete mode 100644 vendor/sebastian/code-unit-reverse-lookup/.php_cs delete mode 100644 vendor/sebastian/code-unit-reverse-lookup/.travis.yml delete mode 100644 vendor/sebastian/code-unit-reverse-lookup/ChangeLog.md delete mode 100644 vendor/sebastian/code-unit-reverse-lookup/LICENSE delete mode 100644 vendor/sebastian/code-unit-reverse-lookup/README.md delete mode 100644 vendor/sebastian/code-unit-reverse-lookup/build.xml delete mode 100644 vendor/sebastian/code-unit-reverse-lookup/composer.json delete mode 100644 vendor/sebastian/code-unit-reverse-lookup/phpunit.xml delete mode 100644 vendor/sebastian/code-unit-reverse-lookup/src/Wizard.php delete mode 100644 vendor/sebastian/code-unit-reverse-lookup/tests/WizardTest.php delete mode 100644 vendor/sebastian/comparator/.github/stale.yml delete mode 100644 vendor/sebastian/comparator/.php_cs.dist delete mode 100644 vendor/sebastian/comparator/.travis.yml delete mode 100644 vendor/sebastian/comparator/ChangeLog.md delete mode 100644 vendor/sebastian/comparator/LICENSE delete mode 100644 vendor/sebastian/comparator/README.md delete mode 100644 vendor/sebastian/comparator/build.xml delete mode 100644 vendor/sebastian/comparator/composer.json delete mode 100644 vendor/sebastian/comparator/phpunit.xml delete mode 100644 vendor/sebastian/comparator/src/ArrayComparator.php delete mode 100644 vendor/sebastian/comparator/src/Comparator.php delete mode 100644 vendor/sebastian/comparator/src/ComparisonFailure.php delete mode 100644 vendor/sebastian/comparator/src/DOMNodeComparator.php delete mode 100644 vendor/sebastian/comparator/src/DateTimeComparator.php delete mode 100644 vendor/sebastian/comparator/src/DoubleComparator.php delete mode 100644 vendor/sebastian/comparator/src/ExceptionComparator.php delete mode 100644 vendor/sebastian/comparator/src/Factory.php delete mode 100644 vendor/sebastian/comparator/src/MockObjectComparator.php delete mode 100644 vendor/sebastian/comparator/src/NumericComparator.php delete mode 100644 vendor/sebastian/comparator/src/ObjectComparator.php delete mode 100644 vendor/sebastian/comparator/src/ResourceComparator.php delete mode 100644 vendor/sebastian/comparator/src/ScalarComparator.php delete mode 100644 vendor/sebastian/comparator/src/SplObjectStorageComparator.php delete mode 100644 vendor/sebastian/comparator/src/TypeComparator.php delete mode 100644 vendor/sebastian/comparator/tests/ArrayComparatorTest.php delete mode 100644 vendor/sebastian/comparator/tests/ComparisonFailureTest.php delete mode 100644 vendor/sebastian/comparator/tests/DOMNodeComparatorTest.php delete mode 100644 vendor/sebastian/comparator/tests/DateTimeComparatorTest.php delete mode 100644 vendor/sebastian/comparator/tests/DoubleComparatorTest.php delete mode 100644 vendor/sebastian/comparator/tests/ExceptionComparatorTest.php delete mode 100644 vendor/sebastian/comparator/tests/FactoryTest.php delete mode 100644 vendor/sebastian/comparator/tests/MockObjectComparatorTest.php delete mode 100644 vendor/sebastian/comparator/tests/NumericComparatorTest.php delete mode 100644 vendor/sebastian/comparator/tests/ObjectComparatorTest.php delete mode 100644 vendor/sebastian/comparator/tests/ResourceComparatorTest.php delete mode 100644 vendor/sebastian/comparator/tests/ScalarComparatorTest.php delete mode 100644 vendor/sebastian/comparator/tests/SplObjectStorageComparatorTest.php delete mode 100644 vendor/sebastian/comparator/tests/TypeComparatorTest.php delete mode 100644 vendor/sebastian/comparator/tests/_fixture/Author.php delete mode 100644 vendor/sebastian/comparator/tests/_fixture/Book.php delete mode 100644 vendor/sebastian/comparator/tests/_fixture/ClassWithToString.php delete mode 100644 vendor/sebastian/comparator/tests/_fixture/SampleClass.php delete mode 100644 vendor/sebastian/comparator/tests/_fixture/Struct.php delete mode 100644 vendor/sebastian/comparator/tests/_fixture/TestClass.php delete mode 100644 vendor/sebastian/comparator/tests/_fixture/TestClassComparator.php delete mode 100644 vendor/sebastian/diff/.github/stale.yml delete mode 100644 vendor/sebastian/diff/.php_cs.dist delete mode 100644 vendor/sebastian/diff/.travis.yml delete mode 100644 vendor/sebastian/diff/ChangeLog.md delete mode 100644 vendor/sebastian/diff/LICENSE delete mode 100644 vendor/sebastian/diff/README.md delete mode 100644 vendor/sebastian/diff/build.xml delete mode 100644 vendor/sebastian/diff/composer.json delete mode 100644 vendor/sebastian/diff/phpunit.xml delete mode 100644 vendor/sebastian/diff/src/Chunk.php delete mode 100644 vendor/sebastian/diff/src/Diff.php delete mode 100644 vendor/sebastian/diff/src/Differ.php delete mode 100644 vendor/sebastian/diff/src/Exception/ConfigurationException.php delete mode 100644 vendor/sebastian/diff/src/Exception/Exception.php delete mode 100644 vendor/sebastian/diff/src/Exception/InvalidArgumentException.php delete mode 100644 vendor/sebastian/diff/src/Line.php delete mode 100644 vendor/sebastian/diff/src/LongestCommonSubsequenceCalculator.php delete mode 100644 vendor/sebastian/diff/src/MemoryEfficientLongestCommonSubsequenceCalculator.php delete mode 100644 vendor/sebastian/diff/src/Output/AbstractChunkOutputBuilder.php delete mode 100644 vendor/sebastian/diff/src/Output/DiffOnlyOutputBuilder.php delete mode 100644 vendor/sebastian/diff/src/Output/DiffOutputBuilderInterface.php delete mode 100644 vendor/sebastian/diff/src/Output/StrictUnifiedDiffOutputBuilder.php delete mode 100644 vendor/sebastian/diff/src/Output/UnifiedDiffOutputBuilder.php delete mode 100644 vendor/sebastian/diff/src/Parser.php delete mode 100644 vendor/sebastian/diff/src/TimeEfficientLongestCommonSubsequenceCalculator.php delete mode 100644 vendor/sebastian/diff/tests/ChunkTest.php delete mode 100644 vendor/sebastian/diff/tests/DiffTest.php delete mode 100644 vendor/sebastian/diff/tests/DifferTest.php delete mode 100644 vendor/sebastian/diff/tests/Exception/ConfigurationExceptionTest.php delete mode 100644 vendor/sebastian/diff/tests/Exception/InvalidArgumentExceptionTest.php delete mode 100644 vendor/sebastian/diff/tests/LineTest.php delete mode 100644 vendor/sebastian/diff/tests/LongestCommonSubsequenceTest.php delete mode 100644 vendor/sebastian/diff/tests/MemoryEfficientImplementationTest.php delete mode 100644 vendor/sebastian/diff/tests/Output/AbstractChunkOutputBuilderTest.php delete mode 100644 vendor/sebastian/diff/tests/Output/DiffOnlyOutputBuilderTest.php delete mode 100644 vendor/sebastian/diff/tests/Output/Integration/StrictUnifiedDiffOutputBuilderIntegrationTest.php delete mode 100644 vendor/sebastian/diff/tests/Output/Integration/UnifiedDiffOutputBuilderIntegrationTest.php delete mode 100644 vendor/sebastian/diff/tests/Output/StrictUnifiedDiffOutputBuilderDataProvider.php delete mode 100644 vendor/sebastian/diff/tests/Output/StrictUnifiedDiffOutputBuilderTest.php delete mode 100644 vendor/sebastian/diff/tests/Output/UnifiedDiffOutputBuilderDataProvider.php delete mode 100644 vendor/sebastian/diff/tests/Output/UnifiedDiffOutputBuilderTest.php delete mode 100644 vendor/sebastian/diff/tests/ParserTest.php delete mode 100644 vendor/sebastian/diff/tests/TimeEfficientImplementationTest.php delete mode 100644 vendor/sebastian/diff/tests/Utils/FileUtils.php delete mode 100644 vendor/sebastian/diff/tests/Utils/UnifiedDiffAssertTrait.php delete mode 100644 vendor/sebastian/diff/tests/Utils/UnifiedDiffAssertTraitIntegrationTest.php delete mode 100644 vendor/sebastian/diff/tests/Utils/UnifiedDiffAssertTraitTest.php delete mode 100644 vendor/sebastian/diff/tests/fixtures/.editorconfig delete mode 100644 vendor/sebastian/diff/tests/fixtures/UnifiedDiffAssertTraitIntegrationTest/1_a.txt delete mode 100644 vendor/sebastian/diff/tests/fixtures/UnifiedDiffAssertTraitIntegrationTest/1_b.txt delete mode 100644 vendor/sebastian/diff/tests/fixtures/UnifiedDiffAssertTraitIntegrationTest/2_a.txt delete mode 100644 vendor/sebastian/diff/tests/fixtures/UnifiedDiffAssertTraitIntegrationTest/2_b.txt delete mode 100644 vendor/sebastian/diff/tests/fixtures/out/.editorconfig delete mode 100644 vendor/sebastian/diff/tests/fixtures/patch.txt delete mode 100644 vendor/sebastian/diff/tests/fixtures/patch2.txt delete mode 100644 vendor/sebastian/diff/tests/fixtures/serialized_diff.bin delete mode 100644 vendor/sebastian/environment/.php_cs delete mode 100644 vendor/sebastian/environment/.travis.yml delete mode 100644 vendor/sebastian/environment/ChangeLog.md delete mode 100644 vendor/sebastian/environment/LICENSE delete mode 100644 vendor/sebastian/environment/README.md delete mode 100644 vendor/sebastian/environment/build.xml delete mode 100644 vendor/sebastian/environment/composer.json delete mode 100644 vendor/sebastian/environment/phpunit.xml delete mode 100644 vendor/sebastian/environment/src/Console.php delete mode 100644 vendor/sebastian/environment/src/OperatingSystem.php delete mode 100644 vendor/sebastian/environment/src/Runtime.php delete mode 100644 vendor/sebastian/environment/tests/ConsoleTest.php delete mode 100644 vendor/sebastian/environment/tests/OperatingSystemTest.php delete mode 100644 vendor/sebastian/environment/tests/RuntimeTest.php delete mode 100644 vendor/sebastian/exporter/.php_cs delete mode 100644 vendor/sebastian/exporter/.travis.yml delete mode 100644 vendor/sebastian/exporter/LICENSE delete mode 100644 vendor/sebastian/exporter/README.md delete mode 100644 vendor/sebastian/exporter/build.xml delete mode 100644 vendor/sebastian/exporter/composer.json delete mode 100644 vendor/sebastian/exporter/phpunit.xml delete mode 100644 vendor/sebastian/exporter/src/Exporter.php delete mode 100644 vendor/sebastian/exporter/tests/ExporterTest.php delete mode 100644 vendor/sebastian/global-state/.php_cs delete mode 100644 vendor/sebastian/global-state/.travis.yml delete mode 100644 vendor/sebastian/global-state/LICENSE delete mode 100644 vendor/sebastian/global-state/README.md delete mode 100644 vendor/sebastian/global-state/build.xml delete mode 100644 vendor/sebastian/global-state/composer.json delete mode 100644 vendor/sebastian/global-state/phpunit.xml delete mode 100644 vendor/sebastian/global-state/src/Blacklist.php delete mode 100644 vendor/sebastian/global-state/src/CodeExporter.php delete mode 100644 vendor/sebastian/global-state/src/Restorer.php delete mode 100644 vendor/sebastian/global-state/src/Snapshot.php delete mode 100644 vendor/sebastian/global-state/src/exceptions/Exception.php delete mode 100644 vendor/sebastian/global-state/src/exceptions/RuntimeException.php delete mode 100644 vendor/sebastian/global-state/tests/BlacklistTest.php delete mode 100644 vendor/sebastian/global-state/tests/CodeExporterTest.php delete mode 100644 vendor/sebastian/global-state/tests/RestorerTest.php delete mode 100644 vendor/sebastian/global-state/tests/SnapshotTest.php delete mode 100644 vendor/sebastian/global-state/tests/_fixture/BlacklistedChildClass.php delete mode 100644 vendor/sebastian/global-state/tests/_fixture/BlacklistedClass.php delete mode 100644 vendor/sebastian/global-state/tests/_fixture/BlacklistedImplementor.php delete mode 100644 vendor/sebastian/global-state/tests/_fixture/BlacklistedInterface.php delete mode 100644 vendor/sebastian/global-state/tests/_fixture/SnapshotClass.php delete mode 100644 vendor/sebastian/global-state/tests/_fixture/SnapshotDomDocument.php delete mode 100644 vendor/sebastian/global-state/tests/_fixture/SnapshotFunctions.php delete mode 100644 vendor/sebastian/global-state/tests/_fixture/SnapshotTrait.php delete mode 100644 vendor/sebastian/object-enumerator/.php_cs delete mode 100644 vendor/sebastian/object-enumerator/.travis.yml delete mode 100644 vendor/sebastian/object-enumerator/ChangeLog.md delete mode 100644 vendor/sebastian/object-enumerator/LICENSE delete mode 100644 vendor/sebastian/object-enumerator/README.md delete mode 100644 vendor/sebastian/object-enumerator/build.xml delete mode 100644 vendor/sebastian/object-enumerator/composer.json delete mode 100644 vendor/sebastian/object-enumerator/phpunit.xml delete mode 100644 vendor/sebastian/object-enumerator/src/Enumerator.php delete mode 100644 vendor/sebastian/object-enumerator/src/Exception.php delete mode 100644 vendor/sebastian/object-enumerator/src/InvalidArgumentException.php delete mode 100644 vendor/sebastian/object-enumerator/tests/EnumeratorTest.php delete mode 100644 vendor/sebastian/object-enumerator/tests/_fixture/ExceptionThrower.php delete mode 100644 vendor/sebastian/object-reflector/.php_cs delete mode 100644 vendor/sebastian/object-reflector/.travis.yml delete mode 100644 vendor/sebastian/object-reflector/ChangeLog.md delete mode 100644 vendor/sebastian/object-reflector/LICENSE delete mode 100644 vendor/sebastian/object-reflector/README.md delete mode 100644 vendor/sebastian/object-reflector/build.xml delete mode 100644 vendor/sebastian/object-reflector/composer.json delete mode 100644 vendor/sebastian/object-reflector/phpunit.xml delete mode 100644 vendor/sebastian/object-reflector/src/Exception.php delete mode 100644 vendor/sebastian/object-reflector/src/InvalidArgumentException.php delete mode 100644 vendor/sebastian/object-reflector/src/ObjectReflector.php delete mode 100644 vendor/sebastian/object-reflector/tests/ObjectReflectorTest.php delete mode 100644 vendor/sebastian/object-reflector/tests/_fixture/ChildClass.php delete mode 100644 vendor/sebastian/object-reflector/tests/_fixture/ClassWithIntegerAttributeName.php delete mode 100644 vendor/sebastian/object-reflector/tests/_fixture/ParentClass.php delete mode 100644 vendor/sebastian/recursion-context/.travis.yml delete mode 100644 vendor/sebastian/recursion-context/LICENSE delete mode 100644 vendor/sebastian/recursion-context/README.md delete mode 100644 vendor/sebastian/recursion-context/build.xml delete mode 100644 vendor/sebastian/recursion-context/composer.json delete mode 100644 vendor/sebastian/recursion-context/phpunit.xml delete mode 100644 vendor/sebastian/recursion-context/src/Context.php delete mode 100644 vendor/sebastian/recursion-context/src/Exception.php delete mode 100644 vendor/sebastian/recursion-context/src/InvalidArgumentException.php delete mode 100644 vendor/sebastian/recursion-context/tests/ContextTest.php delete mode 100644 vendor/sebastian/resource-operations/LICENSE delete mode 100644 vendor/sebastian/resource-operations/README.md delete mode 100644 vendor/sebastian/resource-operations/build.xml delete mode 100755 vendor/sebastian/resource-operations/build/generate.php delete mode 100644 vendor/sebastian/resource-operations/composer.json delete mode 100644 vendor/sebastian/resource-operations/src/ResourceOperations.php delete mode 100644 vendor/sebastian/version/.gitattributes delete mode 100644 vendor/sebastian/version/.php_cs delete mode 100644 vendor/sebastian/version/LICENSE delete mode 100644 vendor/sebastian/version/README.md delete mode 100644 vendor/sebastian/version/composer.json delete mode 100644 vendor/sebastian/version/src/Version.php delete mode 100644 vendor/simplesoftwareio/simple-qrcode/.travis.yml delete mode 100644 vendor/simplesoftwareio/simple-qrcode/CHANGELOG.md delete mode 100644 vendor/simplesoftwareio/simple-qrcode/CONTRIBUTING.md delete mode 100644 vendor/simplesoftwareio/simple-qrcode/LICENSE delete mode 100644 vendor/simplesoftwareio/simple-qrcode/README.md delete mode 100644 vendor/simplesoftwareio/simple-qrcode/composer.json delete mode 100644 vendor/simplesoftwareio/simple-qrcode/docs/en/README.md delete mode 100644 vendor/simplesoftwareio/simple-qrcode/docs/es/README.md delete mode 100644 vendor/simplesoftwareio/simple-qrcode/docs/fr/README.md delete mode 100644 vendor/simplesoftwareio/simple-qrcode/docs/hi/README.md delete mode 100644 vendor/simplesoftwareio/simple-qrcode/docs/imgs/merged-qrcode.png delete mode 100644 vendor/simplesoftwareio/simple-qrcode/docs/it/README.md delete mode 100644 vendor/simplesoftwareio/simple-qrcode/docs/pt-br/README.md delete mode 100644 vendor/simplesoftwareio/simple-qrcode/docs/ru/README.md delete mode 100644 vendor/simplesoftwareio/simple-qrcode/docs/zh/README.md delete mode 100644 vendor/simplesoftwareio/simple-qrcode/phpunit.xml delete mode 100644 vendor/simplesoftwareio/simple-qrcode/src/SimpleSoftwareIO/QrCode/BaconQrCodeGenerator.php delete mode 100644 vendor/simplesoftwareio/simple-qrcode/src/SimpleSoftwareIO/QrCode/DataTypes/BTC.php delete mode 100644 vendor/simplesoftwareio/simple-qrcode/src/SimpleSoftwareIO/QrCode/DataTypes/DataTypeInterface.php delete mode 100644 vendor/simplesoftwareio/simple-qrcode/src/SimpleSoftwareIO/QrCode/DataTypes/Email.php delete mode 100644 vendor/simplesoftwareio/simple-qrcode/src/SimpleSoftwareIO/QrCode/DataTypes/Geo.php delete mode 100644 vendor/simplesoftwareio/simple-qrcode/src/SimpleSoftwareIO/QrCode/DataTypes/PhoneNumber.php delete mode 100644 vendor/simplesoftwareio/simple-qrcode/src/SimpleSoftwareIO/QrCode/DataTypes/SMS.php delete mode 100644 vendor/simplesoftwareio/simple-qrcode/src/SimpleSoftwareIO/QrCode/DataTypes/WiFi.php delete mode 100644 vendor/simplesoftwareio/simple-qrcode/src/SimpleSoftwareIO/QrCode/Facades/QrCode.php delete mode 100644 vendor/simplesoftwareio/simple-qrcode/src/SimpleSoftwareIO/QrCode/Image.php delete mode 100644 vendor/simplesoftwareio/simple-qrcode/src/SimpleSoftwareIO/QrCode/ImageInterface.php delete mode 100644 vendor/simplesoftwareio/simple-qrcode/src/SimpleSoftwareIO/QrCode/ImageMerge.php delete mode 100644 vendor/simplesoftwareio/simple-qrcode/src/SimpleSoftwareIO/QrCode/ImageMergeInterface.php delete mode 100644 vendor/simplesoftwareio/simple-qrcode/src/SimpleSoftwareIO/QrCode/QrCodeInterface.php delete mode 100644 vendor/simplesoftwareio/simple-qrcode/src/SimpleSoftwareIO/QrCode/QrCodeServiceProvider.php delete mode 100644 vendor/simplesoftwareio/simple-qrcode/tests/BaconQrCodeGeneratorTest.php delete mode 100644 vendor/simplesoftwareio/simple-qrcode/tests/DataTypes/BTCTest.php delete mode 100644 vendor/simplesoftwareio/simple-qrcode/tests/DataTypes/EmailTest.php delete mode 100644 vendor/simplesoftwareio/simple-qrcode/tests/DataTypes/GeoTest.php delete mode 100644 vendor/simplesoftwareio/simple-qrcode/tests/DataTypes/PhoneNumberTest.php delete mode 100644 vendor/simplesoftwareio/simple-qrcode/tests/DataTypes/SMSTest.php delete mode 100644 vendor/simplesoftwareio/simple-qrcode/tests/DataTypes/WiFiTest.php delete mode 100644 vendor/simplesoftwareio/simple-qrcode/tests/ImageMergeTest.php delete mode 100644 vendor/simplesoftwareio/simple-qrcode/tests/ImageTest.php delete mode 100644 vendor/simplesoftwareio/simple-qrcode/tests/Images/simplesoftware-icon-grey-blue.png delete mode 100644 vendor/simplesoftwareio/simple-qrcode/tests/bootstrap.php delete mode 100644 vendor/spatie/laravel-permission/.styleci.yml delete mode 100644 vendor/spatie/laravel-permission/CHANGELOG.md delete mode 100644 vendor/spatie/laravel-permission/CONTRIBUTING.md delete mode 100644 vendor/spatie/laravel-permission/LICENSE.md delete mode 100644 vendor/spatie/laravel-permission/README.md delete mode 100644 vendor/spatie/laravel-permission/composer.json delete mode 100644 vendor/spatie/laravel-permission/config/permission.php delete mode 100644 vendor/spatie/laravel-permission/database/migrations/create_permission_tables.php.stub delete mode 100644 vendor/spatie/laravel-permission/src/Commands/CreatePermission.php delete mode 100644 vendor/spatie/laravel-permission/src/Commands/CreateRole.php delete mode 100644 vendor/spatie/laravel-permission/src/Contracts/Permission.php delete mode 100644 vendor/spatie/laravel-permission/src/Contracts/Role.php delete mode 100644 vendor/spatie/laravel-permission/src/Exceptions/GuardDoesNotMatch.php delete mode 100644 vendor/spatie/laravel-permission/src/Exceptions/PermissionAlreadyExists.php delete mode 100644 vendor/spatie/laravel-permission/src/Exceptions/PermissionDoesNotExist.php delete mode 100644 vendor/spatie/laravel-permission/src/Exceptions/RoleAlreadyExists.php delete mode 100644 vendor/spatie/laravel-permission/src/Exceptions/RoleDoesNotExist.php delete mode 100644 vendor/spatie/laravel-permission/src/Exceptions/UnauthorizedException.php delete mode 100644 vendor/spatie/laravel-permission/src/Guard.php delete mode 100644 vendor/spatie/laravel-permission/src/Middlewares/PermissionMiddleware.php delete mode 100644 vendor/spatie/laravel-permission/src/Middlewares/RoleMiddleware.php delete mode 100644 vendor/spatie/laravel-permission/src/Models/Permission.php delete mode 100644 vendor/spatie/laravel-permission/src/Models/Role.php delete mode 100644 vendor/spatie/laravel-permission/src/PermissionRegistrar.php delete mode 100644 vendor/spatie/laravel-permission/src/PermissionServiceProvider.php delete mode 100644 vendor/spatie/laravel-permission/src/Traits/HasPermissions.php delete mode 100644 vendor/spatie/laravel-permission/src/Traits/HasRoles.php delete mode 100644 vendor/spatie/laravel-permission/src/Traits/RefreshesPermissionCache.php delete mode 100644 vendor/spatie/laravel-permission/src/helpers.php delete mode 100644 vendor/swiftmailer/swiftmailer/.gitattributes delete mode 100644 vendor/swiftmailer/swiftmailer/.github/ISSUE_TEMPLATE.md delete mode 100644 vendor/swiftmailer/swiftmailer/.github/PULL_REQUEST_TEMPLATE.md delete mode 100644 vendor/swiftmailer/swiftmailer/.php_cs.dist delete mode 100644 vendor/swiftmailer/swiftmailer/.travis.yml delete mode 100644 vendor/swiftmailer/swiftmailer/CHANGES delete mode 100644 vendor/swiftmailer/swiftmailer/LICENSE delete mode 100644 vendor/swiftmailer/swiftmailer/README delete mode 100644 vendor/swiftmailer/swiftmailer/composer.json delete mode 100644 vendor/swiftmailer/swiftmailer/doc/headers.rst delete mode 100644 vendor/swiftmailer/swiftmailer/doc/index.rst delete mode 100644 vendor/swiftmailer/swiftmailer/doc/introduction.rst delete mode 100644 vendor/swiftmailer/swiftmailer/doc/japanese.rst delete mode 100644 vendor/swiftmailer/swiftmailer/doc/messages.rst delete mode 100644 vendor/swiftmailer/swiftmailer/doc/plugins.rst delete mode 100644 vendor/swiftmailer/swiftmailer/doc/sending.rst delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/AddressEncoder.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/AddressEncoder/IdnAddressEncoder.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/AddressEncoder/Utf8AddressEncoder.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/AddressEncoderException.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Attachment.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/ByteStream/AbstractFilterableInputStream.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/ByteStream/ArrayByteStream.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/ByteStream/FileByteStream.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/ByteStream/TemporaryFileByteStream.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/CharacterReader.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/CharacterReader/GenericFixedWidthReader.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/CharacterReader/UsAsciiReader.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/CharacterReader/Utf8Reader.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/CharacterReaderFactory.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/CharacterReaderFactory/SimpleCharacterReaderFactory.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/CharacterStream.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/CharacterStream/ArrayCharacterStream.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/CharacterStream/NgCharacterStream.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/ConfigurableSpool.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/DependencyContainer.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/DependencyException.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/EmbeddedFile.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Encoder.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Encoder/Base64Encoder.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Encoder/QpEncoder.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Encoder/Rfc2231Encoder.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Events/CommandEvent.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Events/CommandListener.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Events/Event.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Events/EventDispatcher.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Events/EventListener.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Events/EventObject.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Events/ResponseEvent.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Events/ResponseListener.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Events/SendEvent.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Events/SendListener.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Events/SimpleEventDispatcher.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Events/TransportChangeEvent.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Events/TransportChangeListener.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Events/TransportExceptionEvent.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Events/TransportExceptionListener.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/FailoverTransport.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/FileSpool.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/FileStream.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Filterable.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/IdGenerator.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Image.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/InputByteStream.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/IoException.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/KeyCache.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/KeyCache/ArrayKeyCache.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/KeyCache/DiskKeyCache.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/KeyCache/KeyCacheInputStream.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/KeyCache/NullKeyCache.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/KeyCache/SimpleKeyCacheInputStream.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/LoadBalancedTransport.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mailer.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mailer/ArrayRecipientIterator.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mailer/RecipientIterator.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/MemorySpool.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Message.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/Attachment.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/CharsetObserver.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/ContentEncoder.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/ContentEncoder/Base64ContentEncoder.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/ContentEncoder/NativeQpContentEncoder.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/ContentEncoder/NullContentEncoder.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/ContentEncoder/PlainContentEncoder.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/ContentEncoder/QpContentEncoder.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/ContentEncoder/QpContentEncoderProxy.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/ContentEncoder/RawContentEncoder.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/EmbeddedFile.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/EncodingObserver.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/Header.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/HeaderEncoder.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/HeaderEncoder/Base64HeaderEncoder.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/HeaderEncoder/QpHeaderEncoder.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/Headers/AbstractHeader.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/Headers/DateHeader.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/Headers/IdentificationHeader.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/Headers/MailboxHeader.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/Headers/OpenDKIMHeader.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/Headers/ParameterizedHeader.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/Headers/PathHeader.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/Headers/UnstructuredHeader.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/IdGenerator.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/MimePart.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/SimpleHeaderFactory.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/SimpleHeaderSet.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/SimpleMessage.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/SimpleMimeEntity.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/MimePart.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/NullTransport.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/OutputByteStream.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Plugins/AntiFloodPlugin.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Plugins/BandwidthMonitorPlugin.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Plugins/Decorator/Replacements.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Plugins/DecoratorPlugin.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Plugins/ImpersonatePlugin.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Plugins/Logger.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Plugins/LoggerPlugin.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Plugins/Loggers/ArrayLogger.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Plugins/Loggers/EchoLogger.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Plugins/MessageLogger.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Plugins/Pop/Pop3Connection.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Plugins/Pop/Pop3Exception.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Plugins/PopBeforeSmtpPlugin.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Plugins/RedirectingPlugin.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Plugins/Reporter.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Plugins/ReporterPlugin.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Plugins/Reporters/HitReporter.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Plugins/Reporters/HtmlReporter.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Plugins/Sleeper.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Plugins/ThrottlerPlugin.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Plugins/Timer.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Preferences.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/ReplacementFilterFactory.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/RfcComplianceException.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/SendmailTransport.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Signer.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Signers/BodySigner.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Signers/DKIMSigner.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Signers/DomainKeySigner.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Signers/HeaderSigner.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Signers/OpenDKIMSigner.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Signers/SMimeSigner.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/SmtpTransport.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Spool.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/SpoolTransport.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/StreamFilter.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/StreamFilters/ByteArrayReplacementFilter.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/StreamFilters/StringReplacementFilter.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/StreamFilters/StringReplacementFilterFactory.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/SwiftException.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/AbstractSmtpTransport.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/Esmtp/Auth/CramMd5Authenticator.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/Esmtp/Auth/LoginAuthenticator.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/Esmtp/Auth/NTLMAuthenticator.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/Esmtp/Auth/PlainAuthenticator.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/Esmtp/Auth/XOAuth2Authenticator.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/Esmtp/AuthHandler.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/Esmtp/Authenticator.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/Esmtp/EightBitMimeHandler.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/Esmtp/SmtpUtf8Handler.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/EsmtpHandler.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/EsmtpTransport.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/FailoverTransport.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/IoBuffer.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/LoadBalancedTransport.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/NullTransport.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/SendmailTransport.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/SmtpAgent.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/SpoolTransport.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/StreamBuffer.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/classes/Swift/TransportException.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/dependency_maps/cache_deps.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/dependency_maps/message_deps.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/dependency_maps/mime_deps.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/dependency_maps/transport_deps.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/mime_types.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/preferences.php delete mode 100644 vendor/swiftmailer/swiftmailer/lib/swift_required.php delete mode 100755 vendor/swiftmailer/swiftmailer/lib/swiftmailer_generate_mimes_config.php delete mode 100644 vendor/swiftmailer/swiftmailer/phpunit.xml.dist delete mode 100644 vendor/swiftmailer/swiftmailer/tests/IdenticalBinaryConstraint.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/StreamCollector.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/SwiftMailerSmokeTestCase.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/SwiftMailerTestCase.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/_samples/charsets/iso-2022-jp/one.txt delete mode 100644 vendor/swiftmailer/swiftmailer/tests/_samples/charsets/iso-8859-1/one.txt delete mode 100644 vendor/swiftmailer/swiftmailer/tests/_samples/charsets/utf-8/one.txt delete mode 100644 vendor/swiftmailer/swiftmailer/tests/_samples/charsets/utf-8/three.txt delete mode 100644 vendor/swiftmailer/swiftmailer/tests/_samples/charsets/utf-8/two.txt delete mode 100644 vendor/swiftmailer/swiftmailer/tests/_samples/dkim/dkim.test.priv delete mode 100644 vendor/swiftmailer/swiftmailer/tests/_samples/dkim/dkim.test.pub delete mode 100644 vendor/swiftmailer/swiftmailer/tests/_samples/files/data.txt delete mode 100644 vendor/swiftmailer/swiftmailer/tests/_samples/files/swiftmailer.png delete mode 100644 vendor/swiftmailer/swiftmailer/tests/_samples/files/textfile.zip delete mode 100644 vendor/swiftmailer/swiftmailer/tests/_samples/smime/CA.srl delete mode 100644 vendor/swiftmailer/swiftmailer/tests/_samples/smime/ca.crt delete mode 100644 vendor/swiftmailer/swiftmailer/tests/_samples/smime/ca.key delete mode 100644 vendor/swiftmailer/swiftmailer/tests/_samples/smime/create-cert.sh delete mode 100644 vendor/swiftmailer/swiftmailer/tests/_samples/smime/encrypt.crt delete mode 100644 vendor/swiftmailer/swiftmailer/tests/_samples/smime/encrypt.key delete mode 100644 vendor/swiftmailer/swiftmailer/tests/_samples/smime/encrypt2.crt delete mode 100644 vendor/swiftmailer/swiftmailer/tests/_samples/smime/encrypt2.key delete mode 100644 vendor/swiftmailer/swiftmailer/tests/_samples/smime/intermediate.crt delete mode 100644 vendor/swiftmailer/swiftmailer/tests/_samples/smime/intermediate.key delete mode 100644 vendor/swiftmailer/swiftmailer/tests/_samples/smime/sign.crt delete mode 100644 vendor/swiftmailer/swiftmailer/tests/_samples/smime/sign.key delete mode 100644 vendor/swiftmailer/swiftmailer/tests/_samples/smime/sign2.crt delete mode 100644 vendor/swiftmailer/swiftmailer/tests/_samples/smime/sign2.key delete mode 100644 vendor/swiftmailer/swiftmailer/tests/acceptance.conf.php.default delete mode 100644 vendor/swiftmailer/swiftmailer/tests/acceptance/Swift/AttachmentAcceptanceTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/acceptance/Swift/ByteStream/FileByteStreamAcceptanceTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/acceptance/Swift/CharacterReaderFactory/SimpleCharacterReaderFactoryAcceptanceTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/acceptance/Swift/DependencyContainerAcceptanceTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/acceptance/Swift/EmbeddedFileAcceptanceTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/acceptance/Swift/Encoder/Base64EncoderAcceptanceTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/acceptance/Swift/Encoder/QpEncoderAcceptanceTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/acceptance/Swift/Encoder/Rfc2231EncoderAcceptanceTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/acceptance/Swift/KeyCache/ArrayKeyCacheAcceptanceTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/acceptance/Swift/KeyCache/DiskKeyCacheAcceptanceTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/acceptance/Swift/MessageAcceptanceTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/acceptance/Swift/Mime/AttachmentAcceptanceTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/acceptance/Swift/Mime/ContentEncoder/Base64ContentEncoderAcceptanceTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/acceptance/Swift/Mime/ContentEncoder/NativeQpContentEncoderAcceptanceTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/acceptance/Swift/Mime/ContentEncoder/PlainContentEncoderAcceptanceTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/acceptance/Swift/Mime/ContentEncoder/QpContentEncoderAcceptanceTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/acceptance/Swift/Mime/EmbeddedFileAcceptanceTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/acceptance/Swift/Mime/HeaderEncoder/Base64HeaderEncoderAcceptanceTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/acceptance/Swift/Mime/MimePartAcceptanceTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/acceptance/Swift/Mime/SimpleMessageAcceptanceTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/acceptance/Swift/MimePartAcceptanceTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/acceptance/Swift/Transport/StreamBuffer/AbstractStreamBufferAcceptanceTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/acceptance/Swift/Transport/StreamBuffer/BasicSocketAcceptanceTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/acceptance/Swift/Transport/StreamBuffer/ProcessAcceptanceTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/acceptance/Swift/Transport/StreamBuffer/SocketTimeoutTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/acceptance/Swift/Transport/StreamBuffer/SslSocketAcceptanceTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/acceptance/Swift/Transport/StreamBuffer/TlsSocketAcceptanceTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/bootstrap.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/bug/Swift/Bug111Test.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/bug/Swift/Bug118Test.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/bug/Swift/Bug206Test.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/bug/Swift/Bug274Test.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/bug/Swift/Bug34Test.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/bug/Swift/Bug35Test.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/bug/Swift/Bug38Test.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/bug/Swift/Bug518Test.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/bug/Swift/Bug51Test.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/bug/Swift/Bug534Test.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/bug/Swift/Bug650Test.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/bug/Swift/Bug71Test.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/bug/Swift/Bug76Test.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/bug/Swift/BugFileByteStreamConsecutiveReadCallsTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/fixtures/MimeEntityFixture.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/smoke.conf.php.default delete mode 100644 vendor/swiftmailer/swiftmailer/tests/smoke/Swift/Smoke/AttachmentSmokeTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/smoke/Swift/Smoke/BasicSmokeTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/smoke/Swift/Smoke/HtmlWithAttachmentSmokeTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/smoke/Swift/Smoke/InternationalSmokeTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/ByteStream/ArrayByteStreamTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/CharacterReader/GenericFixedWidthReaderTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/CharacterReader/UsAsciiReaderTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/CharacterReader/Utf8ReaderTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/CharacterStream/ArrayCharacterStreamTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/DependencyContainerTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/Encoder/Base64EncoderTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/Encoder/QpEncoderTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/Encoder/Rfc2231EncoderTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/Events/CommandEventTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/Events/EventObjectTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/Events/ResponseEventTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/Events/SendEventTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/Events/SimpleEventDispatcherTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/Events/TransportChangeEventTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/Events/TransportExceptionEventTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/KeyCache/ArrayKeyCacheTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/KeyCache/SimpleKeyCacheInputStreamTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/Mailer/ArrayRecipientIteratorTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/MailerTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/MessageTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/Mime/AbstractMimeEntityTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/Mime/AttachmentTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/Mime/ContentEncoder/Base64ContentEncoderTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/Mime/ContentEncoder/PlainContentEncoderTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/Mime/ContentEncoder/QpContentEncoderTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/Mime/EmbeddedFileTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/Mime/HeaderEncoder/Base64HeaderEncoderTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/Mime/HeaderEncoder/QpHeaderEncoderTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/Mime/Headers/DateHeaderTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/Mime/Headers/IdentificationHeaderTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/Mime/Headers/MailboxHeaderTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/Mime/Headers/ParameterizedHeaderTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/Mime/Headers/PathHeaderTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/Mime/Headers/UnstructuredHeaderTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/Mime/IdGeneratorTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/Mime/MimePartTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/Mime/SimpleHeaderFactoryTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/Mime/SimpleHeaderSetTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/Mime/SimpleMessageTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/Mime/SimpleMimeEntityTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/Plugins/AntiFloodPluginTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/Plugins/BandwidthMonitorPluginTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/Plugins/DecoratorPluginTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/Plugins/LoggerPluginTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/Plugins/Loggers/ArrayLoggerTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/Plugins/Loggers/EchoLoggerTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/Plugins/PopBeforeSmtpPluginTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/Plugins/RedirectingPluginTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/Plugins/ReporterPluginTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/Plugins/Reporters/HitReporterTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/Plugins/Reporters/HtmlReporterTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/Plugins/ThrottlerPluginTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/Signers/DKIMSignerTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/Signers/OpenDKIMSignerTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/Signers/SMimeSignerTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/StreamFilters/ByteArrayReplacementFilterTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/StreamFilters/StringReplacementFilterFactoryTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/StreamFilters/StringReplacementFilterTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/Transport/AbstractSmtpEventSupportTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/Transport/AbstractSmtpTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/Transport/Esmtp/Auth/CramMd5AuthenticatorTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/Transport/Esmtp/Auth/LoginAuthenticatorTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/Transport/Esmtp/Auth/NTLMAuthenticatorTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/Transport/Esmtp/Auth/PlainAuthenticatorTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/Transport/Esmtp/AuthHandlerTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/Transport/EsmtpTransport/ExtensionSupportTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/Transport/EsmtpTransportTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/Transport/FailoverTransportTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/Transport/LoadBalancedTransportTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/Transport/SendmailTransportTest.php delete mode 100644 vendor/swiftmailer/swiftmailer/tests/unit/Swift/Transport/StreamBufferTest.php delete mode 100644 vendor/symfony/console/Application.php delete mode 100644 vendor/symfony/console/CHANGELOG.md delete mode 100644 vendor/symfony/console/Command/Command.php delete mode 100644 vendor/symfony/console/Command/HelpCommand.php delete mode 100644 vendor/symfony/console/Command/ListCommand.php delete mode 100644 vendor/symfony/console/Command/LockableTrait.php delete mode 100644 vendor/symfony/console/CommandLoader/CommandLoaderInterface.php delete mode 100644 vendor/symfony/console/CommandLoader/ContainerCommandLoader.php delete mode 100644 vendor/symfony/console/CommandLoader/FactoryCommandLoader.php delete mode 100644 vendor/symfony/console/ConsoleEvents.php delete mode 100644 vendor/symfony/console/DependencyInjection/AddConsoleCommandPass.php delete mode 100644 vendor/symfony/console/Descriptor/ApplicationDescription.php delete mode 100644 vendor/symfony/console/Descriptor/Descriptor.php delete mode 100644 vendor/symfony/console/Descriptor/DescriptorInterface.php delete mode 100644 vendor/symfony/console/Descriptor/JsonDescriptor.php delete mode 100644 vendor/symfony/console/Descriptor/MarkdownDescriptor.php delete mode 100644 vendor/symfony/console/Descriptor/TextDescriptor.php delete mode 100644 vendor/symfony/console/Descriptor/XmlDescriptor.php delete mode 100644 vendor/symfony/console/Event/ConsoleCommandEvent.php delete mode 100644 vendor/symfony/console/Event/ConsoleErrorEvent.php delete mode 100644 vendor/symfony/console/Event/ConsoleEvent.php delete mode 100644 vendor/symfony/console/Event/ConsoleTerminateEvent.php delete mode 100644 vendor/symfony/console/EventListener/ErrorListener.php delete mode 100644 vendor/symfony/console/Exception/CommandNotFoundException.php delete mode 100644 vendor/symfony/console/Exception/ExceptionInterface.php delete mode 100644 vendor/symfony/console/Exception/InvalidArgumentException.php delete mode 100644 vendor/symfony/console/Exception/InvalidOptionException.php delete mode 100644 vendor/symfony/console/Exception/LogicException.php delete mode 100644 vendor/symfony/console/Exception/NamespaceNotFoundException.php delete mode 100644 vendor/symfony/console/Exception/RuntimeException.php delete mode 100644 vendor/symfony/console/Formatter/OutputFormatter.php delete mode 100644 vendor/symfony/console/Formatter/OutputFormatterInterface.php delete mode 100644 vendor/symfony/console/Formatter/OutputFormatterStyle.php delete mode 100644 vendor/symfony/console/Formatter/OutputFormatterStyleInterface.php delete mode 100644 vendor/symfony/console/Formatter/OutputFormatterStyleStack.php delete mode 100644 vendor/symfony/console/Helper/DebugFormatterHelper.php delete mode 100644 vendor/symfony/console/Helper/DescriptorHelper.php delete mode 100644 vendor/symfony/console/Helper/FormatterHelper.php delete mode 100644 vendor/symfony/console/Helper/Helper.php delete mode 100644 vendor/symfony/console/Helper/HelperInterface.php delete mode 100644 vendor/symfony/console/Helper/HelperSet.php delete mode 100644 vendor/symfony/console/Helper/InputAwareHelper.php delete mode 100644 vendor/symfony/console/Helper/ProcessHelper.php delete mode 100644 vendor/symfony/console/Helper/ProgressBar.php delete mode 100644 vendor/symfony/console/Helper/ProgressIndicator.php delete mode 100644 vendor/symfony/console/Helper/QuestionHelper.php delete mode 100644 vendor/symfony/console/Helper/SymfonyQuestionHelper.php delete mode 100644 vendor/symfony/console/Helper/Table.php delete mode 100644 vendor/symfony/console/Helper/TableCell.php delete mode 100644 vendor/symfony/console/Helper/TableRows.php delete mode 100644 vendor/symfony/console/Helper/TableSeparator.php delete mode 100644 vendor/symfony/console/Helper/TableStyle.php delete mode 100644 vendor/symfony/console/Input/ArgvInput.php delete mode 100644 vendor/symfony/console/Input/ArrayInput.php delete mode 100644 vendor/symfony/console/Input/Input.php delete mode 100644 vendor/symfony/console/Input/InputArgument.php delete mode 100644 vendor/symfony/console/Input/InputAwareInterface.php delete mode 100644 vendor/symfony/console/Input/InputDefinition.php delete mode 100644 vendor/symfony/console/Input/InputInterface.php delete mode 100644 vendor/symfony/console/Input/InputOption.php delete mode 100644 vendor/symfony/console/Input/StreamableInputInterface.php delete mode 100644 vendor/symfony/console/Input/StringInput.php delete mode 100644 vendor/symfony/console/LICENSE delete mode 100644 vendor/symfony/console/Logger/ConsoleLogger.php delete mode 100644 vendor/symfony/console/Output/BufferedOutput.php delete mode 100644 vendor/symfony/console/Output/ConsoleOutput.php delete mode 100644 vendor/symfony/console/Output/ConsoleOutputInterface.php delete mode 100644 vendor/symfony/console/Output/ConsoleSectionOutput.php delete mode 100644 vendor/symfony/console/Output/NullOutput.php delete mode 100644 vendor/symfony/console/Output/Output.php delete mode 100644 vendor/symfony/console/Output/OutputInterface.php delete mode 100644 vendor/symfony/console/Output/StreamOutput.php delete mode 100644 vendor/symfony/console/Question/ChoiceQuestion.php delete mode 100644 vendor/symfony/console/Question/ConfirmationQuestion.php delete mode 100644 vendor/symfony/console/Question/Question.php delete mode 100644 vendor/symfony/console/README.md delete mode 100644 vendor/symfony/console/Resources/bin/hiddeninput.exe delete mode 100644 vendor/symfony/console/Style/OutputStyle.php delete mode 100644 vendor/symfony/console/Style/StyleInterface.php delete mode 100644 vendor/symfony/console/Style/SymfonyStyle.php delete mode 100644 vendor/symfony/console/Terminal.php delete mode 100644 vendor/symfony/console/Tester/ApplicationTester.php delete mode 100644 vendor/symfony/console/Tester/CommandTester.php delete mode 100644 vendor/symfony/console/Tester/TesterTrait.php delete mode 100644 vendor/symfony/console/Tests/ApplicationTest.php delete mode 100644 vendor/symfony/console/Tests/Command/CommandTest.php delete mode 100644 vendor/symfony/console/Tests/Command/HelpCommandTest.php delete mode 100644 vendor/symfony/console/Tests/Command/ListCommandTest.php delete mode 100644 vendor/symfony/console/Tests/Command/LockableTraitTest.php delete mode 100644 vendor/symfony/console/Tests/CommandLoader/ContainerCommandLoaderTest.php delete mode 100644 vendor/symfony/console/Tests/CommandLoader/FactoryCommandLoaderTest.php delete mode 100644 vendor/symfony/console/Tests/DependencyInjection/AddConsoleCommandPassTest.php delete mode 100644 vendor/symfony/console/Tests/Descriptor/AbstractDescriptorTest.php delete mode 100644 vendor/symfony/console/Tests/Descriptor/JsonDescriptorTest.php delete mode 100644 vendor/symfony/console/Tests/Descriptor/MarkdownDescriptorTest.php delete mode 100644 vendor/symfony/console/Tests/Descriptor/ObjectsProvider.php delete mode 100644 vendor/symfony/console/Tests/Descriptor/TextDescriptorTest.php delete mode 100644 vendor/symfony/console/Tests/Descriptor/XmlDescriptorTest.php delete mode 100644 vendor/symfony/console/Tests/EventListener/ErrorListenerTest.php delete mode 100644 vendor/symfony/console/Tests/Fixtures/BarBucCommand.php delete mode 100644 vendor/symfony/console/Tests/Fixtures/DescriptorApplication1.php delete mode 100644 vendor/symfony/console/Tests/Fixtures/DescriptorApplication2.php delete mode 100644 vendor/symfony/console/Tests/Fixtures/DescriptorApplicationMbString.php delete mode 100644 vendor/symfony/console/Tests/Fixtures/DescriptorCommand1.php delete mode 100644 vendor/symfony/console/Tests/Fixtures/DescriptorCommand2.php delete mode 100644 vendor/symfony/console/Tests/Fixtures/DescriptorCommand3.php delete mode 100644 vendor/symfony/console/Tests/Fixtures/DescriptorCommand4.php delete mode 100644 vendor/symfony/console/Tests/Fixtures/DescriptorCommandMbString.php delete mode 100644 vendor/symfony/console/Tests/Fixtures/DummyOutput.php delete mode 100644 vendor/symfony/console/Tests/Fixtures/Foo1Command.php delete mode 100644 vendor/symfony/console/Tests/Fixtures/Foo2Command.php delete mode 100644 vendor/symfony/console/Tests/Fixtures/Foo3Command.php delete mode 100644 vendor/symfony/console/Tests/Fixtures/Foo4Command.php delete mode 100644 vendor/symfony/console/Tests/Fixtures/Foo5Command.php delete mode 100644 vendor/symfony/console/Tests/Fixtures/Foo6Command.php delete mode 100644 vendor/symfony/console/Tests/Fixtures/FooCommand.php delete mode 100644 vendor/symfony/console/Tests/Fixtures/FooLock2Command.php delete mode 100644 vendor/symfony/console/Tests/Fixtures/FooLockCommand.php delete mode 100644 vendor/symfony/console/Tests/Fixtures/FooOptCommand.php delete mode 100644 vendor/symfony/console/Tests/Fixtures/FooSameCaseLowercaseCommand.php delete mode 100644 vendor/symfony/console/Tests/Fixtures/FooSameCaseUppercaseCommand.php delete mode 100644 vendor/symfony/console/Tests/Fixtures/FooSubnamespaced1Command.php delete mode 100644 vendor/symfony/console/Tests/Fixtures/FooSubnamespaced2Command.php delete mode 100644 vendor/symfony/console/Tests/Fixtures/FooWithoutAliasCommand.php delete mode 100644 vendor/symfony/console/Tests/Fixtures/FoobarCommand.php delete mode 100644 vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/command/command_0.php delete mode 100644 vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/command/command_1.php delete mode 100644 vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/command/command_10.php delete mode 100644 vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/command/command_11.php delete mode 100644 vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/command/command_12.php delete mode 100644 vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/command/command_13.php delete mode 100644 vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/command/command_14.php delete mode 100644 vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/command/command_15.php delete mode 100644 vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/command/command_16.php delete mode 100644 vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/command/command_17.php delete mode 100644 vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/command/command_2.php delete mode 100644 vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/command/command_3.php delete mode 100644 vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/command/command_4.php delete mode 100644 vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/command/command_4_with_iterators.php delete mode 100644 vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/command/command_5.php delete mode 100644 vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/command/command_6.php delete mode 100644 vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/command/command_7.php delete mode 100644 vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/command/command_8.php delete mode 100644 vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/command/command_9.php delete mode 100644 vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/command/interactive_command_1.php delete mode 100644 vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/output/interactive_output_1.txt delete mode 100644 vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/output/output_0.txt delete mode 100644 vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/output/output_1.txt delete mode 100644 vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/output/output_10.txt delete mode 100644 vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/output/output_11.txt delete mode 100644 vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/output/output_12.txt delete mode 100644 vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/output/output_13.txt delete mode 100644 vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/output/output_14.txt delete mode 100644 vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/output/output_15.txt delete mode 100644 vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/output/output_16.txt delete mode 100644 vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/output/output_17.txt delete mode 100644 vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/output/output_2.txt delete mode 100644 vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/output/output_3.txt delete mode 100644 vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/output/output_4.txt delete mode 100644 vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/output/output_4_with_iterators.txt delete mode 100644 vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/output/output_5.txt delete mode 100644 vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/output/output_6.txt delete mode 100644 vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/output/output_7.txt delete mode 100644 vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/output/output_8.txt delete mode 100644 vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/output/output_9.txt delete mode 100644 vendor/symfony/console/Tests/Fixtures/TestCommand.php delete mode 100644 vendor/symfony/console/Tests/Fixtures/TestTiti.php delete mode 100644 vendor/symfony/console/Tests/Fixtures/TestToto.php delete mode 100644 vendor/symfony/console/Tests/Fixtures/application_1.json delete mode 100644 vendor/symfony/console/Tests/Fixtures/application_1.md delete mode 100644 vendor/symfony/console/Tests/Fixtures/application_1.txt delete mode 100644 vendor/symfony/console/Tests/Fixtures/application_1.xml delete mode 100644 vendor/symfony/console/Tests/Fixtures/application_2.json delete mode 100644 vendor/symfony/console/Tests/Fixtures/application_2.md delete mode 100644 vendor/symfony/console/Tests/Fixtures/application_2.txt delete mode 100644 vendor/symfony/console/Tests/Fixtures/application_2.xml delete mode 100644 vendor/symfony/console/Tests/Fixtures/application_filtered_namespace.txt delete mode 100644 vendor/symfony/console/Tests/Fixtures/application_gethelp.txt delete mode 100644 vendor/symfony/console/Tests/Fixtures/application_mbstring.md delete mode 100644 vendor/symfony/console/Tests/Fixtures/application_mbstring.txt delete mode 100644 vendor/symfony/console/Tests/Fixtures/application_renderexception1.txt delete mode 100644 vendor/symfony/console/Tests/Fixtures/application_renderexception2.txt delete mode 100644 vendor/symfony/console/Tests/Fixtures/application_renderexception3.txt delete mode 100644 vendor/symfony/console/Tests/Fixtures/application_renderexception3decorated.txt delete mode 100644 vendor/symfony/console/Tests/Fixtures/application_renderexception4.txt delete mode 100644 vendor/symfony/console/Tests/Fixtures/application_renderexception_doublewidth1.txt delete mode 100644 vendor/symfony/console/Tests/Fixtures/application_renderexception_doublewidth1decorated.txt delete mode 100644 vendor/symfony/console/Tests/Fixtures/application_renderexception_doublewidth2.txt delete mode 100644 vendor/symfony/console/Tests/Fixtures/application_renderexception_escapeslines.txt delete mode 100644 vendor/symfony/console/Tests/Fixtures/application_renderexception_linebreaks.txt delete mode 100644 vendor/symfony/console/Tests/Fixtures/application_run1.txt delete mode 100644 vendor/symfony/console/Tests/Fixtures/application_run2.txt delete mode 100644 vendor/symfony/console/Tests/Fixtures/application_run3.txt delete mode 100644 vendor/symfony/console/Tests/Fixtures/application_run4.txt delete mode 100644 vendor/symfony/console/Tests/Fixtures/command_1.json delete mode 100644 vendor/symfony/console/Tests/Fixtures/command_1.md delete mode 100644 vendor/symfony/console/Tests/Fixtures/command_1.txt delete mode 100644 vendor/symfony/console/Tests/Fixtures/command_1.xml delete mode 100644 vendor/symfony/console/Tests/Fixtures/command_2.json delete mode 100644 vendor/symfony/console/Tests/Fixtures/command_2.md delete mode 100644 vendor/symfony/console/Tests/Fixtures/command_2.txt delete mode 100644 vendor/symfony/console/Tests/Fixtures/command_2.xml delete mode 100644 vendor/symfony/console/Tests/Fixtures/command_mbstring.md delete mode 100644 vendor/symfony/console/Tests/Fixtures/command_mbstring.txt delete mode 100644 vendor/symfony/console/Tests/Fixtures/input_argument_1.json delete mode 100644 vendor/symfony/console/Tests/Fixtures/input_argument_1.md delete mode 100644 vendor/symfony/console/Tests/Fixtures/input_argument_1.txt delete mode 100644 vendor/symfony/console/Tests/Fixtures/input_argument_1.xml delete mode 100644 vendor/symfony/console/Tests/Fixtures/input_argument_2.json delete mode 100644 vendor/symfony/console/Tests/Fixtures/input_argument_2.md delete mode 100644 vendor/symfony/console/Tests/Fixtures/input_argument_2.txt delete mode 100644 vendor/symfony/console/Tests/Fixtures/input_argument_2.xml delete mode 100644 vendor/symfony/console/Tests/Fixtures/input_argument_3.json delete mode 100644 vendor/symfony/console/Tests/Fixtures/input_argument_3.md delete mode 100644 vendor/symfony/console/Tests/Fixtures/input_argument_3.txt delete mode 100644 vendor/symfony/console/Tests/Fixtures/input_argument_3.xml delete mode 100644 vendor/symfony/console/Tests/Fixtures/input_argument_4.json delete mode 100644 vendor/symfony/console/Tests/Fixtures/input_argument_4.md delete mode 100644 vendor/symfony/console/Tests/Fixtures/input_argument_4.txt delete mode 100644 vendor/symfony/console/Tests/Fixtures/input_argument_4.xml delete mode 100644 vendor/symfony/console/Tests/Fixtures/input_argument_with_default_inf_value.json delete mode 100644 vendor/symfony/console/Tests/Fixtures/input_argument_with_default_inf_value.md delete mode 100644 vendor/symfony/console/Tests/Fixtures/input_argument_with_default_inf_value.txt delete mode 100644 vendor/symfony/console/Tests/Fixtures/input_argument_with_default_inf_value.xml delete mode 100644 vendor/symfony/console/Tests/Fixtures/input_argument_with_style.json delete mode 100644 vendor/symfony/console/Tests/Fixtures/input_argument_with_style.md delete mode 100644 vendor/symfony/console/Tests/Fixtures/input_argument_with_style.txt delete mode 100644 vendor/symfony/console/Tests/Fixtures/input_argument_with_style.xml delete mode 100644 vendor/symfony/console/Tests/Fixtures/input_definition_1.json delete mode 100644 vendor/symfony/console/Tests/Fixtures/input_definition_1.md delete mode 100644 vendor/symfony/console/Tests/Fixtures/input_definition_1.txt delete mode 100644 vendor/symfony/console/Tests/Fixtures/input_definition_1.xml delete mode 100644 vendor/symfony/console/Tests/Fixtures/input_definition_2.json delete mode 100644 vendor/symfony/console/Tests/Fixtures/input_definition_2.md delete mode 100644 vendor/symfony/console/Tests/Fixtures/input_definition_2.txt delete mode 100644 vendor/symfony/console/Tests/Fixtures/input_definition_2.xml delete mode 100644 vendor/symfony/console/Tests/Fixtures/input_definition_3.json delete mode 100644 vendor/symfony/console/Tests/Fixtures/input_definition_3.md delete mode 100644 vendor/symfony/console/Tests/Fixtures/input_definition_3.txt delete mode 100644 vendor/symfony/console/Tests/Fixtures/input_definition_3.xml delete mode 100644 vendor/symfony/console/Tests/Fixtures/input_definition_4.json delete mode 100644 vendor/symfony/console/Tests/Fixtures/input_definition_4.md delete mode 100644 vendor/symfony/console/Tests/Fixtures/input_definition_4.txt delete mode 100644 vendor/symfony/console/Tests/Fixtures/input_definition_4.xml delete mode 100644 vendor/symfony/console/Tests/Fixtures/input_option_1.json delete mode 100644 vendor/symfony/console/Tests/Fixtures/input_option_1.md delete mode 100644 vendor/symfony/console/Tests/Fixtures/input_option_1.txt delete mode 100644 vendor/symfony/console/Tests/Fixtures/input_option_1.xml delete mode 100644 vendor/symfony/console/Tests/Fixtures/input_option_2.json delete mode 100644 vendor/symfony/console/Tests/Fixtures/input_option_2.md delete mode 100644 vendor/symfony/console/Tests/Fixtures/input_option_2.txt delete mode 100644 vendor/symfony/console/Tests/Fixtures/input_option_2.xml delete mode 100644 vendor/symfony/console/Tests/Fixtures/input_option_3.json delete mode 100644 vendor/symfony/console/Tests/Fixtures/input_option_3.md delete mode 100644 vendor/symfony/console/Tests/Fixtures/input_option_3.txt delete mode 100644 vendor/symfony/console/Tests/Fixtures/input_option_3.xml delete mode 100644 vendor/symfony/console/Tests/Fixtures/input_option_4.json delete mode 100644 vendor/symfony/console/Tests/Fixtures/input_option_4.md delete mode 100644 vendor/symfony/console/Tests/Fixtures/input_option_4.txt delete mode 100644 vendor/symfony/console/Tests/Fixtures/input_option_4.xml delete mode 100644 vendor/symfony/console/Tests/Fixtures/input_option_5.json delete mode 100644 vendor/symfony/console/Tests/Fixtures/input_option_5.md delete mode 100644 vendor/symfony/console/Tests/Fixtures/input_option_5.txt delete mode 100644 vendor/symfony/console/Tests/Fixtures/input_option_5.xml delete mode 100644 vendor/symfony/console/Tests/Fixtures/input_option_6.json delete mode 100644 vendor/symfony/console/Tests/Fixtures/input_option_6.md delete mode 100644 vendor/symfony/console/Tests/Fixtures/input_option_6.txt delete mode 100644 vendor/symfony/console/Tests/Fixtures/input_option_6.xml delete mode 100644 vendor/symfony/console/Tests/Fixtures/input_option_with_default_inf_value.json delete mode 100644 vendor/symfony/console/Tests/Fixtures/input_option_with_default_inf_value.md delete mode 100644 vendor/symfony/console/Tests/Fixtures/input_option_with_default_inf_value.txt delete mode 100644 vendor/symfony/console/Tests/Fixtures/input_option_with_default_inf_value.xml delete mode 100644 vendor/symfony/console/Tests/Fixtures/input_option_with_style.json delete mode 100644 vendor/symfony/console/Tests/Fixtures/input_option_with_style.md delete mode 100644 vendor/symfony/console/Tests/Fixtures/input_option_with_style.txt delete mode 100644 vendor/symfony/console/Tests/Fixtures/input_option_with_style.xml delete mode 100644 vendor/symfony/console/Tests/Fixtures/input_option_with_style_array.json delete mode 100644 vendor/symfony/console/Tests/Fixtures/input_option_with_style_array.md delete mode 100644 vendor/symfony/console/Tests/Fixtures/input_option_with_style_array.txt delete mode 100644 vendor/symfony/console/Tests/Fixtures/input_option_with_style_array.xml delete mode 100644 vendor/symfony/console/Tests/Formatter/OutputFormatterStyleStackTest.php delete mode 100644 vendor/symfony/console/Tests/Formatter/OutputFormatterStyleTest.php delete mode 100644 vendor/symfony/console/Tests/Formatter/OutputFormatterTest.php delete mode 100644 vendor/symfony/console/Tests/Helper/AbstractQuestionHelperTest.php delete mode 100644 vendor/symfony/console/Tests/Helper/FormatterHelperTest.php delete mode 100644 vendor/symfony/console/Tests/Helper/HelperSetTest.php delete mode 100644 vendor/symfony/console/Tests/Helper/HelperTest.php delete mode 100644 vendor/symfony/console/Tests/Helper/ProcessHelperTest.php delete mode 100644 vendor/symfony/console/Tests/Helper/ProgressBarTest.php delete mode 100644 vendor/symfony/console/Tests/Helper/ProgressIndicatorTest.php delete mode 100644 vendor/symfony/console/Tests/Helper/QuestionHelperTest.php delete mode 100644 vendor/symfony/console/Tests/Helper/SymfonyQuestionHelperTest.php delete mode 100644 vendor/symfony/console/Tests/Helper/TableStyleTest.php delete mode 100644 vendor/symfony/console/Tests/Helper/TableTest.php delete mode 100644 vendor/symfony/console/Tests/Input/ArgvInputTest.php delete mode 100644 vendor/symfony/console/Tests/Input/ArrayInputTest.php delete mode 100644 vendor/symfony/console/Tests/Input/InputArgumentTest.php delete mode 100644 vendor/symfony/console/Tests/Input/InputDefinitionTest.php delete mode 100644 vendor/symfony/console/Tests/Input/InputOptionTest.php delete mode 100644 vendor/symfony/console/Tests/Input/InputTest.php delete mode 100644 vendor/symfony/console/Tests/Input/StringInputTest.php delete mode 100644 vendor/symfony/console/Tests/Logger/ConsoleLoggerTest.php delete mode 100644 vendor/symfony/console/Tests/Output/ConsoleOutputTest.php delete mode 100644 vendor/symfony/console/Tests/Output/ConsoleSectionOutputTest.php delete mode 100644 vendor/symfony/console/Tests/Output/NullOutputTest.php delete mode 100644 vendor/symfony/console/Tests/Output/OutputTest.php delete mode 100644 vendor/symfony/console/Tests/Output/StreamOutputTest.php delete mode 100644 vendor/symfony/console/Tests/Style/SymfonyStyleTest.php delete mode 100644 vendor/symfony/console/Tests/TerminalTest.php delete mode 100644 vendor/symfony/console/Tests/Tester/ApplicationTesterTest.php delete mode 100644 vendor/symfony/console/Tests/Tester/CommandTesterTest.php delete mode 100644 vendor/symfony/console/composer.json delete mode 100644 vendor/symfony/console/phpunit.xml.dist delete mode 100644 vendor/symfony/css-selector/CHANGELOG.md delete mode 100644 vendor/symfony/css-selector/CssSelectorConverter.php delete mode 100644 vendor/symfony/css-selector/Exception/ExceptionInterface.php delete mode 100644 vendor/symfony/css-selector/Exception/ExpressionErrorException.php delete mode 100644 vendor/symfony/css-selector/Exception/InternalErrorException.php delete mode 100644 vendor/symfony/css-selector/Exception/ParseException.php delete mode 100644 vendor/symfony/css-selector/Exception/SyntaxErrorException.php delete mode 100644 vendor/symfony/css-selector/LICENSE delete mode 100644 vendor/symfony/css-selector/Node/AbstractNode.php delete mode 100644 vendor/symfony/css-selector/Node/AttributeNode.php delete mode 100644 vendor/symfony/css-selector/Node/ClassNode.php delete mode 100644 vendor/symfony/css-selector/Node/CombinedSelectorNode.php delete mode 100644 vendor/symfony/css-selector/Node/ElementNode.php delete mode 100644 vendor/symfony/css-selector/Node/FunctionNode.php delete mode 100644 vendor/symfony/css-selector/Node/HashNode.php delete mode 100644 vendor/symfony/css-selector/Node/NegationNode.php delete mode 100644 vendor/symfony/css-selector/Node/NodeInterface.php delete mode 100644 vendor/symfony/css-selector/Node/PseudoNode.php delete mode 100644 vendor/symfony/css-selector/Node/SelectorNode.php delete mode 100644 vendor/symfony/css-selector/Node/Specificity.php delete mode 100644 vendor/symfony/css-selector/Parser/Handler/CommentHandler.php delete mode 100644 vendor/symfony/css-selector/Parser/Handler/HandlerInterface.php delete mode 100644 vendor/symfony/css-selector/Parser/Handler/HashHandler.php delete mode 100644 vendor/symfony/css-selector/Parser/Handler/IdentifierHandler.php delete mode 100644 vendor/symfony/css-selector/Parser/Handler/NumberHandler.php delete mode 100644 vendor/symfony/css-selector/Parser/Handler/StringHandler.php delete mode 100644 vendor/symfony/css-selector/Parser/Handler/WhitespaceHandler.php delete mode 100644 vendor/symfony/css-selector/Parser/Parser.php delete mode 100644 vendor/symfony/css-selector/Parser/ParserInterface.php delete mode 100644 vendor/symfony/css-selector/Parser/Reader.php delete mode 100644 vendor/symfony/css-selector/Parser/Shortcut/ClassParser.php delete mode 100644 vendor/symfony/css-selector/Parser/Shortcut/ElementParser.php delete mode 100644 vendor/symfony/css-selector/Parser/Shortcut/EmptyStringParser.php delete mode 100644 vendor/symfony/css-selector/Parser/Shortcut/HashParser.php delete mode 100644 vendor/symfony/css-selector/Parser/Token.php delete mode 100644 vendor/symfony/css-selector/Parser/TokenStream.php delete mode 100644 vendor/symfony/css-selector/Parser/Tokenizer/Tokenizer.php delete mode 100644 vendor/symfony/css-selector/Parser/Tokenizer/TokenizerEscaping.php delete mode 100644 vendor/symfony/css-selector/Parser/Tokenizer/TokenizerPatterns.php delete mode 100644 vendor/symfony/css-selector/README.md delete mode 100644 vendor/symfony/css-selector/Tests/CssSelectorConverterTest.php delete mode 100644 vendor/symfony/css-selector/Tests/Node/AbstractNodeTest.php delete mode 100644 vendor/symfony/css-selector/Tests/Node/AttributeNodeTest.php delete mode 100644 vendor/symfony/css-selector/Tests/Node/ClassNodeTest.php delete mode 100644 vendor/symfony/css-selector/Tests/Node/CombinedSelectorNodeTest.php delete mode 100644 vendor/symfony/css-selector/Tests/Node/ElementNodeTest.php delete mode 100644 vendor/symfony/css-selector/Tests/Node/FunctionNodeTest.php delete mode 100644 vendor/symfony/css-selector/Tests/Node/HashNodeTest.php delete mode 100644 vendor/symfony/css-selector/Tests/Node/NegationNodeTest.php delete mode 100644 vendor/symfony/css-selector/Tests/Node/PseudoNodeTest.php delete mode 100644 vendor/symfony/css-selector/Tests/Node/SelectorNodeTest.php delete mode 100644 vendor/symfony/css-selector/Tests/Node/SpecificityTest.php delete mode 100644 vendor/symfony/css-selector/Tests/Parser/Handler/AbstractHandlerTest.php delete mode 100644 vendor/symfony/css-selector/Tests/Parser/Handler/CommentHandlerTest.php delete mode 100644 vendor/symfony/css-selector/Tests/Parser/Handler/HashHandlerTest.php delete mode 100644 vendor/symfony/css-selector/Tests/Parser/Handler/IdentifierHandlerTest.php delete mode 100644 vendor/symfony/css-selector/Tests/Parser/Handler/NumberHandlerTest.php delete mode 100644 vendor/symfony/css-selector/Tests/Parser/Handler/StringHandlerTest.php delete mode 100644 vendor/symfony/css-selector/Tests/Parser/Handler/WhitespaceHandlerTest.php delete mode 100644 vendor/symfony/css-selector/Tests/Parser/ParserTest.php delete mode 100644 vendor/symfony/css-selector/Tests/Parser/ReaderTest.php delete mode 100644 vendor/symfony/css-selector/Tests/Parser/Shortcut/ClassParserTest.php delete mode 100644 vendor/symfony/css-selector/Tests/Parser/Shortcut/ElementParserTest.php delete mode 100644 vendor/symfony/css-selector/Tests/Parser/Shortcut/EmptyStringParserTest.php delete mode 100644 vendor/symfony/css-selector/Tests/Parser/Shortcut/HashParserTest.php delete mode 100644 vendor/symfony/css-selector/Tests/Parser/TokenStreamTest.php delete mode 100644 vendor/symfony/css-selector/Tests/XPath/Fixtures/ids.html delete mode 100644 vendor/symfony/css-selector/Tests/XPath/Fixtures/lang.xml delete mode 100644 vendor/symfony/css-selector/Tests/XPath/Fixtures/shakespear.html delete mode 100644 vendor/symfony/css-selector/Tests/XPath/TranslatorTest.php delete mode 100644 vendor/symfony/css-selector/XPath/Extension/AbstractExtension.php delete mode 100644 vendor/symfony/css-selector/XPath/Extension/AttributeMatchingExtension.php delete mode 100644 vendor/symfony/css-selector/XPath/Extension/CombinationExtension.php delete mode 100644 vendor/symfony/css-selector/XPath/Extension/ExtensionInterface.php delete mode 100644 vendor/symfony/css-selector/XPath/Extension/FunctionExtension.php delete mode 100644 vendor/symfony/css-selector/XPath/Extension/HtmlExtension.php delete mode 100644 vendor/symfony/css-selector/XPath/Extension/NodeExtension.php delete mode 100644 vendor/symfony/css-selector/XPath/Extension/PseudoClassExtension.php delete mode 100644 vendor/symfony/css-selector/XPath/Translator.php delete mode 100644 vendor/symfony/css-selector/XPath/TranslatorInterface.php delete mode 100644 vendor/symfony/css-selector/XPath/XPathExpr.php delete mode 100644 vendor/symfony/css-selector/composer.json delete mode 100644 vendor/symfony/css-selector/phpunit.xml.dist delete mode 100644 vendor/symfony/debug/BufferingLogger.php delete mode 100644 vendor/symfony/debug/CHANGELOG.md delete mode 100644 vendor/symfony/debug/Debug.php delete mode 100644 vendor/symfony/debug/DebugClassLoader.php delete mode 100644 vendor/symfony/debug/ErrorHandler.php delete mode 100644 vendor/symfony/debug/Exception/ClassNotFoundException.php delete mode 100644 vendor/symfony/debug/Exception/FatalErrorException.php delete mode 100644 vendor/symfony/debug/Exception/FatalThrowableError.php delete mode 100644 vendor/symfony/debug/Exception/FlattenException.php delete mode 100644 vendor/symfony/debug/Exception/OutOfMemoryException.php delete mode 100644 vendor/symfony/debug/Exception/SilencedErrorContext.php delete mode 100644 vendor/symfony/debug/Exception/UndefinedFunctionException.php delete mode 100644 vendor/symfony/debug/Exception/UndefinedMethodException.php delete mode 100644 vendor/symfony/debug/ExceptionHandler.php delete mode 100644 vendor/symfony/debug/FatalErrorHandler/ClassNotFoundFatalErrorHandler.php delete mode 100644 vendor/symfony/debug/FatalErrorHandler/FatalErrorHandlerInterface.php delete mode 100644 vendor/symfony/debug/FatalErrorHandler/UndefinedFunctionFatalErrorHandler.php delete mode 100644 vendor/symfony/debug/FatalErrorHandler/UndefinedMethodFatalErrorHandler.php delete mode 100644 vendor/symfony/debug/LICENSE delete mode 100644 vendor/symfony/debug/README.md delete mode 100644 vendor/symfony/debug/Tests/DebugClassLoaderTest.php delete mode 100644 vendor/symfony/debug/Tests/ErrorHandlerTest.php delete mode 100644 vendor/symfony/debug/Tests/Exception/FlattenExceptionTest.php delete mode 100644 vendor/symfony/debug/Tests/ExceptionHandlerTest.php delete mode 100644 vendor/symfony/debug/Tests/FatalErrorHandler/ClassNotFoundFatalErrorHandlerTest.php delete mode 100644 vendor/symfony/debug/Tests/FatalErrorHandler/UndefinedFunctionFatalErrorHandlerTest.php delete mode 100644 vendor/symfony/debug/Tests/FatalErrorHandler/UndefinedMethodFatalErrorHandlerTest.php delete mode 100644 vendor/symfony/debug/Tests/Fixtures/AnnotatedClass.php delete mode 100644 vendor/symfony/debug/Tests/Fixtures/ClassAlias.php delete mode 100644 vendor/symfony/debug/Tests/Fixtures/DeprecatedClass.php delete mode 100644 vendor/symfony/debug/Tests/Fixtures/DeprecatedInterface.php delete mode 100644 vendor/symfony/debug/Tests/Fixtures/ExtendedFinalMethod.php delete mode 100644 vendor/symfony/debug/Tests/Fixtures/FinalClass.php delete mode 100644 vendor/symfony/debug/Tests/Fixtures/FinalMethod.php delete mode 100644 vendor/symfony/debug/Tests/Fixtures/InternalClass.php delete mode 100644 vendor/symfony/debug/Tests/Fixtures/InternalInterface.php delete mode 100644 vendor/symfony/debug/Tests/Fixtures/InternalTrait.php delete mode 100644 vendor/symfony/debug/Tests/Fixtures/InternalTrait2.php delete mode 100644 vendor/symfony/debug/Tests/Fixtures/NonDeprecatedInterface.php delete mode 100644 vendor/symfony/debug/Tests/Fixtures/PEARClass.php delete mode 100644 vendor/symfony/debug/Tests/Fixtures/Throwing.php delete mode 100644 vendor/symfony/debug/Tests/Fixtures/ToStringThrower.php delete mode 100644 vendor/symfony/debug/Tests/Fixtures/casemismatch.php delete mode 100644 vendor/symfony/debug/Tests/Fixtures/notPsr0Bis.php delete mode 100644 vendor/symfony/debug/Tests/Fixtures/psr4/Psr4CaseMismatch.php delete mode 100644 vendor/symfony/debug/Tests/Fixtures/reallyNotPsr0.php delete mode 100644 vendor/symfony/debug/Tests/Fixtures2/RequiredTwice.php delete mode 100644 vendor/symfony/debug/Tests/HeaderMock.php delete mode 100644 vendor/symfony/debug/Tests/MockExceptionHandler.php delete mode 100644 vendor/symfony/debug/Tests/phpt/debug_class_loader.phpt delete mode 100644 vendor/symfony/debug/Tests/phpt/decorate_exception_hander.phpt delete mode 100644 vendor/symfony/debug/Tests/phpt/exception_rethrown.phpt delete mode 100644 vendor/symfony/debug/Tests/phpt/fatal_with_nested_handlers.phpt delete mode 100644 vendor/symfony/debug/composer.json delete mode 100644 vendor/symfony/debug/phpunit.xml.dist delete mode 100644 vendor/symfony/event-dispatcher/CHANGELOG.md delete mode 100644 vendor/symfony/event-dispatcher/Debug/TraceableEventDispatcher.php delete mode 100644 vendor/symfony/event-dispatcher/Debug/TraceableEventDispatcherInterface.php delete mode 100644 vendor/symfony/event-dispatcher/Debug/WrappedListener.php delete mode 100644 vendor/symfony/event-dispatcher/DependencyInjection/RegisterListenersPass.php delete mode 100644 vendor/symfony/event-dispatcher/Event.php delete mode 100644 vendor/symfony/event-dispatcher/EventDispatcher.php delete mode 100644 vendor/symfony/event-dispatcher/EventDispatcherInterface.php delete mode 100644 vendor/symfony/event-dispatcher/EventSubscriberInterface.php delete mode 100644 vendor/symfony/event-dispatcher/GenericEvent.php delete mode 100644 vendor/symfony/event-dispatcher/ImmutableEventDispatcher.php delete mode 100644 vendor/symfony/event-dispatcher/LICENSE delete mode 100644 vendor/symfony/event-dispatcher/README.md delete mode 100644 vendor/symfony/event-dispatcher/Tests/AbstractEventDispatcherTest.php delete mode 100644 vendor/symfony/event-dispatcher/Tests/Debug/TraceableEventDispatcherTest.php delete mode 100644 vendor/symfony/event-dispatcher/Tests/DependencyInjection/RegisterListenersPassTest.php delete mode 100644 vendor/symfony/event-dispatcher/Tests/EventDispatcherTest.php delete mode 100644 vendor/symfony/event-dispatcher/Tests/EventTest.php delete mode 100644 vendor/symfony/event-dispatcher/Tests/GenericEventTest.php delete mode 100644 vendor/symfony/event-dispatcher/Tests/ImmutableEventDispatcherTest.php delete mode 100644 vendor/symfony/event-dispatcher/composer.json delete mode 100644 vendor/symfony/event-dispatcher/phpunit.xml.dist delete mode 100644 vendor/symfony/finder/CHANGELOG.md delete mode 100644 vendor/symfony/finder/Comparator/Comparator.php delete mode 100644 vendor/symfony/finder/Comparator/DateComparator.php delete mode 100644 vendor/symfony/finder/Comparator/NumberComparator.php delete mode 100644 vendor/symfony/finder/Exception/AccessDeniedException.php delete mode 100644 vendor/symfony/finder/Finder.php delete mode 100644 vendor/symfony/finder/Glob.php delete mode 100644 vendor/symfony/finder/Iterator/CustomFilterIterator.php delete mode 100644 vendor/symfony/finder/Iterator/DateRangeFilterIterator.php delete mode 100644 vendor/symfony/finder/Iterator/DepthRangeFilterIterator.php delete mode 100644 vendor/symfony/finder/Iterator/ExcludeDirectoryFilterIterator.php delete mode 100644 vendor/symfony/finder/Iterator/FileTypeFilterIterator.php delete mode 100644 vendor/symfony/finder/Iterator/FilecontentFilterIterator.php delete mode 100644 vendor/symfony/finder/Iterator/FilenameFilterIterator.php delete mode 100644 vendor/symfony/finder/Iterator/MultiplePcreFilterIterator.php delete mode 100644 vendor/symfony/finder/Iterator/PathFilterIterator.php delete mode 100644 vendor/symfony/finder/Iterator/RecursiveDirectoryIterator.php delete mode 100644 vendor/symfony/finder/Iterator/SizeRangeFilterIterator.php delete mode 100644 vendor/symfony/finder/Iterator/SortableIterator.php delete mode 100644 vendor/symfony/finder/LICENSE delete mode 100644 vendor/symfony/finder/README.md delete mode 100644 vendor/symfony/finder/SplFileInfo.php delete mode 100644 vendor/symfony/finder/Tests/Comparator/ComparatorTest.php delete mode 100644 vendor/symfony/finder/Tests/Comparator/DateComparatorTest.php delete mode 100644 vendor/symfony/finder/Tests/Comparator/NumberComparatorTest.php delete mode 100644 vendor/symfony/finder/Tests/FinderTest.php delete mode 100644 vendor/symfony/finder/Tests/Fixtures/.dot/a delete mode 100644 vendor/symfony/finder/Tests/Fixtures/.dot/b/c.neon delete mode 100644 vendor/symfony/finder/Tests/Fixtures/.dot/b/d.neon delete mode 100644 vendor/symfony/finder/Tests/Fixtures/A/B/C/abc.dat delete mode 100644 vendor/symfony/finder/Tests/Fixtures/A/B/ab.dat delete mode 100644 vendor/symfony/finder/Tests/Fixtures/A/a.dat delete mode 100644 vendor/symfony/finder/Tests/Fixtures/copy/A/B/C/abc.dat.copy delete mode 100644 vendor/symfony/finder/Tests/Fixtures/copy/A/B/ab.dat.copy delete mode 100644 vendor/symfony/finder/Tests/Fixtures/copy/A/a.dat.copy delete mode 100644 vendor/symfony/finder/Tests/Fixtures/dolor.txt delete mode 100644 vendor/symfony/finder/Tests/Fixtures/ipsum.txt delete mode 100644 vendor/symfony/finder/Tests/Fixtures/lorem.txt delete mode 100644 vendor/symfony/finder/Tests/Fixtures/one/.dot delete mode 100644 vendor/symfony/finder/Tests/Fixtures/one/a delete mode 100644 vendor/symfony/finder/Tests/Fixtures/one/b/c.neon delete mode 100644 vendor/symfony/finder/Tests/Fixtures/one/b/d.neon delete mode 100644 vendor/symfony/finder/Tests/Fixtures/r+e.gex[c]a(r)s/dir/bar.dat delete mode 100644 vendor/symfony/finder/Tests/Fixtures/with space/foo.txt delete mode 100644 vendor/symfony/finder/Tests/GlobTest.php delete mode 100644 vendor/symfony/finder/Tests/Iterator/CustomFilterIteratorTest.php delete mode 100644 vendor/symfony/finder/Tests/Iterator/DateRangeFilterIteratorTest.php delete mode 100644 vendor/symfony/finder/Tests/Iterator/DepthRangeFilterIteratorTest.php delete mode 100644 vendor/symfony/finder/Tests/Iterator/ExcludeDirectoryFilterIteratorTest.php delete mode 100644 vendor/symfony/finder/Tests/Iterator/FileTypeFilterIteratorTest.php delete mode 100644 vendor/symfony/finder/Tests/Iterator/FilecontentFilterIteratorTest.php delete mode 100644 vendor/symfony/finder/Tests/Iterator/FilenameFilterIteratorTest.php delete mode 100644 vendor/symfony/finder/Tests/Iterator/Iterator.php delete mode 100644 vendor/symfony/finder/Tests/Iterator/IteratorTestCase.php delete mode 100644 vendor/symfony/finder/Tests/Iterator/MockFileListIterator.php delete mode 100644 vendor/symfony/finder/Tests/Iterator/MockSplFileInfo.php delete mode 100644 vendor/symfony/finder/Tests/Iterator/MultiplePcreFilterIteratorTest.php delete mode 100644 vendor/symfony/finder/Tests/Iterator/PathFilterIteratorTest.php delete mode 100644 vendor/symfony/finder/Tests/Iterator/RealIteratorTestCase.php delete mode 100644 vendor/symfony/finder/Tests/Iterator/RecursiveDirectoryIteratorTest.php delete mode 100644 vendor/symfony/finder/Tests/Iterator/SizeRangeFilterIteratorTest.php delete mode 100644 vendor/symfony/finder/Tests/Iterator/SortableIteratorTest.php delete mode 100644 vendor/symfony/finder/composer.json delete mode 100644 vendor/symfony/finder/phpunit.xml.dist delete mode 100644 vendor/symfony/http-foundation/AcceptHeader.php delete mode 100644 vendor/symfony/http-foundation/AcceptHeaderItem.php delete mode 100644 vendor/symfony/http-foundation/ApacheRequest.php delete mode 100644 vendor/symfony/http-foundation/BinaryFileResponse.php delete mode 100644 vendor/symfony/http-foundation/CHANGELOG.md delete mode 100644 vendor/symfony/http-foundation/Cookie.php delete mode 100644 vendor/symfony/http-foundation/Exception/ConflictingHeadersException.php delete mode 100644 vendor/symfony/http-foundation/Exception/RequestExceptionInterface.php delete mode 100644 vendor/symfony/http-foundation/Exception/SuspiciousOperationException.php delete mode 100644 vendor/symfony/http-foundation/ExpressionRequestMatcher.php delete mode 100644 vendor/symfony/http-foundation/File/Exception/AccessDeniedException.php delete mode 100644 vendor/symfony/http-foundation/File/Exception/CannotWriteFileException.php delete mode 100644 vendor/symfony/http-foundation/File/Exception/ExtensionFileException.php delete mode 100644 vendor/symfony/http-foundation/File/Exception/FileException.php delete mode 100644 vendor/symfony/http-foundation/File/Exception/FileNotFoundException.php delete mode 100644 vendor/symfony/http-foundation/File/Exception/FormSizeFileException.php delete mode 100644 vendor/symfony/http-foundation/File/Exception/IniSizeFileException.php delete mode 100644 vendor/symfony/http-foundation/File/Exception/NoFileException.php delete mode 100644 vendor/symfony/http-foundation/File/Exception/NoTmpDirFileException.php delete mode 100644 vendor/symfony/http-foundation/File/Exception/PartialFileException.php delete mode 100644 vendor/symfony/http-foundation/File/Exception/UnexpectedTypeException.php delete mode 100644 vendor/symfony/http-foundation/File/Exception/UploadException.php delete mode 100644 vendor/symfony/http-foundation/File/File.php delete mode 100644 vendor/symfony/http-foundation/File/MimeType/ExtensionGuesser.php delete mode 100644 vendor/symfony/http-foundation/File/MimeType/ExtensionGuesserInterface.php delete mode 100644 vendor/symfony/http-foundation/File/MimeType/FileBinaryMimeTypeGuesser.php delete mode 100644 vendor/symfony/http-foundation/File/MimeType/FileinfoMimeTypeGuesser.php delete mode 100644 vendor/symfony/http-foundation/File/MimeType/MimeTypeExtensionGuesser.php delete mode 100644 vendor/symfony/http-foundation/File/MimeType/MimeTypeGuesser.php delete mode 100644 vendor/symfony/http-foundation/File/MimeType/MimeTypeGuesserInterface.php delete mode 100644 vendor/symfony/http-foundation/File/Stream.php delete mode 100644 vendor/symfony/http-foundation/File/UploadedFile.php delete mode 100644 vendor/symfony/http-foundation/FileBag.php delete mode 100644 vendor/symfony/http-foundation/HeaderBag.php delete mode 100644 vendor/symfony/http-foundation/HeaderUtils.php delete mode 100644 vendor/symfony/http-foundation/IpUtils.php delete mode 100644 vendor/symfony/http-foundation/JsonResponse.php delete mode 100644 vendor/symfony/http-foundation/LICENSE delete mode 100644 vendor/symfony/http-foundation/ParameterBag.php delete mode 100644 vendor/symfony/http-foundation/README.md delete mode 100644 vendor/symfony/http-foundation/RedirectResponse.php delete mode 100644 vendor/symfony/http-foundation/Request.php delete mode 100644 vendor/symfony/http-foundation/RequestMatcher.php delete mode 100644 vendor/symfony/http-foundation/RequestMatcherInterface.php delete mode 100644 vendor/symfony/http-foundation/RequestStack.php delete mode 100644 vendor/symfony/http-foundation/Response.php delete mode 100644 vendor/symfony/http-foundation/ResponseHeaderBag.php delete mode 100644 vendor/symfony/http-foundation/ServerBag.php delete mode 100644 vendor/symfony/http-foundation/Session/Attribute/AttributeBag.php delete mode 100644 vendor/symfony/http-foundation/Session/Attribute/AttributeBagInterface.php delete mode 100644 vendor/symfony/http-foundation/Session/Attribute/NamespacedAttributeBag.php delete mode 100644 vendor/symfony/http-foundation/Session/Flash/AutoExpireFlashBag.php delete mode 100644 vendor/symfony/http-foundation/Session/Flash/FlashBag.php delete mode 100644 vendor/symfony/http-foundation/Session/Flash/FlashBagInterface.php delete mode 100644 vendor/symfony/http-foundation/Session/Session.php delete mode 100644 vendor/symfony/http-foundation/Session/SessionBagInterface.php delete mode 100644 vendor/symfony/http-foundation/Session/SessionBagProxy.php delete mode 100644 vendor/symfony/http-foundation/Session/SessionInterface.php delete mode 100644 vendor/symfony/http-foundation/Session/Storage/Handler/AbstractSessionHandler.php delete mode 100644 vendor/symfony/http-foundation/Session/Storage/Handler/MemcachedSessionHandler.php delete mode 100644 vendor/symfony/http-foundation/Session/Storage/Handler/MigratingSessionHandler.php delete mode 100644 vendor/symfony/http-foundation/Session/Storage/Handler/MongoDbSessionHandler.php delete mode 100644 vendor/symfony/http-foundation/Session/Storage/Handler/NativeFileSessionHandler.php delete mode 100644 vendor/symfony/http-foundation/Session/Storage/Handler/NullSessionHandler.php delete mode 100644 vendor/symfony/http-foundation/Session/Storage/Handler/PdoSessionHandler.php delete mode 100644 vendor/symfony/http-foundation/Session/Storage/Handler/RedisSessionHandler.php delete mode 100644 vendor/symfony/http-foundation/Session/Storage/Handler/StrictSessionHandler.php delete mode 100644 vendor/symfony/http-foundation/Session/Storage/MetadataBag.php delete mode 100644 vendor/symfony/http-foundation/Session/Storage/MockArraySessionStorage.php delete mode 100644 vendor/symfony/http-foundation/Session/Storage/MockFileSessionStorage.php delete mode 100644 vendor/symfony/http-foundation/Session/Storage/NativeSessionStorage.php delete mode 100644 vendor/symfony/http-foundation/Session/Storage/PhpBridgeSessionStorage.php delete mode 100644 vendor/symfony/http-foundation/Session/Storage/Proxy/AbstractProxy.php delete mode 100644 vendor/symfony/http-foundation/Session/Storage/Proxy/SessionHandlerProxy.php delete mode 100644 vendor/symfony/http-foundation/Session/Storage/SessionStorageInterface.php delete mode 100644 vendor/symfony/http-foundation/StreamedResponse.php delete mode 100644 vendor/symfony/http-foundation/Tests/AcceptHeaderItemTest.php delete mode 100644 vendor/symfony/http-foundation/Tests/AcceptHeaderTest.php delete mode 100644 vendor/symfony/http-foundation/Tests/ApacheRequestTest.php delete mode 100644 vendor/symfony/http-foundation/Tests/BinaryFileResponseTest.php delete mode 100644 vendor/symfony/http-foundation/Tests/CookieTest.php delete mode 100644 vendor/symfony/http-foundation/Tests/ExpressionRequestMatcherTest.php delete mode 100644 vendor/symfony/http-foundation/Tests/File/FakeFile.php delete mode 100644 vendor/symfony/http-foundation/Tests/File/FileTest.php delete mode 100644 vendor/symfony/http-foundation/Tests/File/Fixtures/.unknownextension delete mode 100644 vendor/symfony/http-foundation/Tests/File/Fixtures/directory/.empty delete mode 100644 vendor/symfony/http-foundation/Tests/File/Fixtures/other-file.example delete mode 100644 vendor/symfony/http-foundation/Tests/File/Fixtures/test delete mode 100644 vendor/symfony/http-foundation/Tests/File/Fixtures/test.gif delete mode 100644 vendor/symfony/http-foundation/Tests/File/MimeType/MimeTypeTest.php delete mode 100644 vendor/symfony/http-foundation/Tests/File/UploadedFileTest.php delete mode 100644 vendor/symfony/http-foundation/Tests/FileBagTest.php delete mode 100644 vendor/symfony/http-foundation/Tests/Fixtures/response-functional/common.inc delete mode 100644 vendor/symfony/http-foundation/Tests/Fixtures/response-functional/cookie_max_age.expected delete mode 100644 vendor/symfony/http-foundation/Tests/Fixtures/response-functional/cookie_max_age.php delete mode 100644 vendor/symfony/http-foundation/Tests/Fixtures/response-functional/cookie_raw_urlencode.expected delete mode 100644 vendor/symfony/http-foundation/Tests/Fixtures/response-functional/cookie_raw_urlencode.php delete mode 100644 vendor/symfony/http-foundation/Tests/Fixtures/response-functional/cookie_samesite_lax.expected delete mode 100644 vendor/symfony/http-foundation/Tests/Fixtures/response-functional/cookie_samesite_lax.php delete mode 100644 vendor/symfony/http-foundation/Tests/Fixtures/response-functional/cookie_samesite_strict.expected delete mode 100644 vendor/symfony/http-foundation/Tests/Fixtures/response-functional/cookie_samesite_strict.php delete mode 100644 vendor/symfony/http-foundation/Tests/Fixtures/response-functional/cookie_urlencode.expected delete mode 100644 vendor/symfony/http-foundation/Tests/Fixtures/response-functional/cookie_urlencode.php delete mode 100644 vendor/symfony/http-foundation/Tests/Fixtures/response-functional/invalid_cookie_name.expected delete mode 100644 vendor/symfony/http-foundation/Tests/Fixtures/response-functional/invalid_cookie_name.php delete mode 100644 vendor/symfony/http-foundation/Tests/HeaderBagTest.php delete mode 100644 vendor/symfony/http-foundation/Tests/HeaderUtilsTest.php delete mode 100644 vendor/symfony/http-foundation/Tests/IpUtilsTest.php delete mode 100644 vendor/symfony/http-foundation/Tests/JsonResponseTest.php delete mode 100644 vendor/symfony/http-foundation/Tests/ParameterBagTest.php delete mode 100644 vendor/symfony/http-foundation/Tests/RedirectResponseTest.php delete mode 100644 vendor/symfony/http-foundation/Tests/RequestMatcherTest.php delete mode 100644 vendor/symfony/http-foundation/Tests/RequestStackTest.php delete mode 100644 vendor/symfony/http-foundation/Tests/RequestTest.php delete mode 100644 vendor/symfony/http-foundation/Tests/ResponseFunctionalTest.php delete mode 100644 vendor/symfony/http-foundation/Tests/ResponseHeaderBagTest.php delete mode 100644 vendor/symfony/http-foundation/Tests/ResponseTest.php delete mode 100644 vendor/symfony/http-foundation/Tests/ResponseTestCase.php delete mode 100644 vendor/symfony/http-foundation/Tests/ServerBagTest.php delete mode 100644 vendor/symfony/http-foundation/Tests/Session/Attribute/AttributeBagTest.php delete mode 100644 vendor/symfony/http-foundation/Tests/Session/Attribute/NamespacedAttributeBagTest.php delete mode 100644 vendor/symfony/http-foundation/Tests/Session/Flash/AutoExpireFlashBagTest.php delete mode 100644 vendor/symfony/http-foundation/Tests/Session/Flash/FlashBagTest.php delete mode 100644 vendor/symfony/http-foundation/Tests/Session/SessionTest.php delete mode 100644 vendor/symfony/http-foundation/Tests/Session/Storage/Handler/AbstractRedisSessionHandlerTestCase.php delete mode 100644 vendor/symfony/http-foundation/Tests/Session/Storage/Handler/AbstractSessionHandlerTest.php delete mode 100644 vendor/symfony/http-foundation/Tests/Session/Storage/Handler/Fixtures/common.inc delete mode 100644 vendor/symfony/http-foundation/Tests/Session/Storage/Handler/Fixtures/empty_destroys.expected delete mode 100644 vendor/symfony/http-foundation/Tests/Session/Storage/Handler/Fixtures/empty_destroys.php delete mode 100644 vendor/symfony/http-foundation/Tests/Session/Storage/Handler/Fixtures/read_only.expected delete mode 100644 vendor/symfony/http-foundation/Tests/Session/Storage/Handler/Fixtures/read_only.php delete mode 100644 vendor/symfony/http-foundation/Tests/Session/Storage/Handler/Fixtures/regenerate.expected delete mode 100644 vendor/symfony/http-foundation/Tests/Session/Storage/Handler/Fixtures/regenerate.php delete mode 100644 vendor/symfony/http-foundation/Tests/Session/Storage/Handler/Fixtures/storage.expected delete mode 100644 vendor/symfony/http-foundation/Tests/Session/Storage/Handler/Fixtures/storage.php delete mode 100644 vendor/symfony/http-foundation/Tests/Session/Storage/Handler/Fixtures/with_cookie.expected delete mode 100644 vendor/symfony/http-foundation/Tests/Session/Storage/Handler/Fixtures/with_cookie.php delete mode 100644 vendor/symfony/http-foundation/Tests/Session/Storage/Handler/Fixtures/with_cookie_and_session.expected delete mode 100644 vendor/symfony/http-foundation/Tests/Session/Storage/Handler/Fixtures/with_cookie_and_session.php delete mode 100644 vendor/symfony/http-foundation/Tests/Session/Storage/Handler/MemcachedSessionHandlerTest.php delete mode 100644 vendor/symfony/http-foundation/Tests/Session/Storage/Handler/MigratingSessionHandlerTest.php delete mode 100644 vendor/symfony/http-foundation/Tests/Session/Storage/Handler/MongoDbSessionHandlerTest.php delete mode 100644 vendor/symfony/http-foundation/Tests/Session/Storage/Handler/NativeFileSessionHandlerTest.php delete mode 100644 vendor/symfony/http-foundation/Tests/Session/Storage/Handler/NullSessionHandlerTest.php delete mode 100644 vendor/symfony/http-foundation/Tests/Session/Storage/Handler/PdoSessionHandlerTest.php delete mode 100644 vendor/symfony/http-foundation/Tests/Session/Storage/Handler/PredisClusterSessionHandlerTest.php delete mode 100644 vendor/symfony/http-foundation/Tests/Session/Storage/Handler/PredisSessionHandlerTest.php delete mode 100644 vendor/symfony/http-foundation/Tests/Session/Storage/Handler/RedisArraySessionHandlerTest.php delete mode 100644 vendor/symfony/http-foundation/Tests/Session/Storage/Handler/RedisSessionHandlerTest.php delete mode 100644 vendor/symfony/http-foundation/Tests/Session/Storage/Handler/StrictSessionHandlerTest.php delete mode 100644 vendor/symfony/http-foundation/Tests/Session/Storage/MetadataBagTest.php delete mode 100644 vendor/symfony/http-foundation/Tests/Session/Storage/MockArraySessionStorageTest.php delete mode 100644 vendor/symfony/http-foundation/Tests/Session/Storage/MockFileSessionStorageTest.php delete mode 100644 vendor/symfony/http-foundation/Tests/Session/Storage/NativeSessionStorageTest.php delete mode 100644 vendor/symfony/http-foundation/Tests/Session/Storage/PhpBridgeSessionStorageTest.php delete mode 100644 vendor/symfony/http-foundation/Tests/Session/Storage/Proxy/AbstractProxyTest.php delete mode 100644 vendor/symfony/http-foundation/Tests/Session/Storage/Proxy/SessionHandlerProxyTest.php delete mode 100644 vendor/symfony/http-foundation/Tests/StreamedResponseTest.php delete mode 100644 vendor/symfony/http-foundation/Tests/schema/http-status-codes.rng delete mode 100644 vendor/symfony/http-foundation/Tests/schema/iana-registry.rng delete mode 100644 vendor/symfony/http-foundation/composer.json delete mode 100644 vendor/symfony/http-foundation/phpunit.xml.dist delete mode 100644 vendor/symfony/http-kernel/Bundle/Bundle.php delete mode 100644 vendor/symfony/http-kernel/Bundle/BundleInterface.php delete mode 100644 vendor/symfony/http-kernel/CHANGELOG.md delete mode 100644 vendor/symfony/http-kernel/CacheClearer/CacheClearerInterface.php delete mode 100644 vendor/symfony/http-kernel/CacheClearer/ChainCacheClearer.php delete mode 100644 vendor/symfony/http-kernel/CacheClearer/Psr6CacheClearer.php delete mode 100644 vendor/symfony/http-kernel/CacheWarmer/CacheWarmer.php delete mode 100644 vendor/symfony/http-kernel/CacheWarmer/CacheWarmerAggregate.php delete mode 100644 vendor/symfony/http-kernel/CacheWarmer/CacheWarmerInterface.php delete mode 100644 vendor/symfony/http-kernel/CacheWarmer/WarmableInterface.php delete mode 100644 vendor/symfony/http-kernel/Client.php delete mode 100644 vendor/symfony/http-kernel/Config/FileLocator.php delete mode 100644 vendor/symfony/http-kernel/Controller/ArgumentResolver.php delete mode 100644 vendor/symfony/http-kernel/Controller/ArgumentResolver/DefaultValueResolver.php delete mode 100644 vendor/symfony/http-kernel/Controller/ArgumentResolver/RequestAttributeValueResolver.php delete mode 100644 vendor/symfony/http-kernel/Controller/ArgumentResolver/RequestValueResolver.php delete mode 100644 vendor/symfony/http-kernel/Controller/ArgumentResolver/ServiceValueResolver.php delete mode 100644 vendor/symfony/http-kernel/Controller/ArgumentResolver/SessionValueResolver.php delete mode 100644 vendor/symfony/http-kernel/Controller/ArgumentResolver/TraceableValueResolver.php delete mode 100644 vendor/symfony/http-kernel/Controller/ArgumentResolver/VariadicValueResolver.php delete mode 100644 vendor/symfony/http-kernel/Controller/ArgumentResolverInterface.php delete mode 100644 vendor/symfony/http-kernel/Controller/ArgumentValueResolverInterface.php delete mode 100644 vendor/symfony/http-kernel/Controller/ContainerControllerResolver.php delete mode 100644 vendor/symfony/http-kernel/Controller/ControllerReference.php delete mode 100644 vendor/symfony/http-kernel/Controller/ControllerResolver.php delete mode 100644 vendor/symfony/http-kernel/Controller/ControllerResolverInterface.php delete mode 100644 vendor/symfony/http-kernel/Controller/TraceableArgumentResolver.php delete mode 100644 vendor/symfony/http-kernel/Controller/TraceableControllerResolver.php delete mode 100644 vendor/symfony/http-kernel/ControllerMetadata/ArgumentMetadata.php delete mode 100644 vendor/symfony/http-kernel/ControllerMetadata/ArgumentMetadataFactory.php delete mode 100644 vendor/symfony/http-kernel/ControllerMetadata/ArgumentMetadataFactoryInterface.php delete mode 100644 vendor/symfony/http-kernel/DataCollector/AjaxDataCollector.php delete mode 100644 vendor/symfony/http-kernel/DataCollector/ConfigDataCollector.php delete mode 100644 vendor/symfony/http-kernel/DataCollector/DataCollector.php delete mode 100644 vendor/symfony/http-kernel/DataCollector/DataCollectorInterface.php delete mode 100644 vendor/symfony/http-kernel/DataCollector/DumpDataCollector.php delete mode 100644 vendor/symfony/http-kernel/DataCollector/EventDataCollector.php delete mode 100644 vendor/symfony/http-kernel/DataCollector/ExceptionDataCollector.php delete mode 100644 vendor/symfony/http-kernel/DataCollector/LateDataCollectorInterface.php delete mode 100644 vendor/symfony/http-kernel/DataCollector/LoggerDataCollector.php delete mode 100644 vendor/symfony/http-kernel/DataCollector/MemoryDataCollector.php delete mode 100644 vendor/symfony/http-kernel/DataCollector/RequestDataCollector.php delete mode 100644 vendor/symfony/http-kernel/DataCollector/RouterDataCollector.php delete mode 100644 vendor/symfony/http-kernel/DataCollector/TimeDataCollector.php delete mode 100644 vendor/symfony/http-kernel/Debug/FileLinkFormatter.php delete mode 100644 vendor/symfony/http-kernel/Debug/TraceableEventDispatcher.php delete mode 100644 vendor/symfony/http-kernel/DependencyInjection/AddAnnotatedClassesToCachePass.php delete mode 100644 vendor/symfony/http-kernel/DependencyInjection/ConfigurableExtension.php delete mode 100644 vendor/symfony/http-kernel/DependencyInjection/ControllerArgumentValueResolverPass.php delete mode 100644 vendor/symfony/http-kernel/DependencyInjection/Extension.php delete mode 100644 vendor/symfony/http-kernel/DependencyInjection/FragmentRendererPass.php delete mode 100644 vendor/symfony/http-kernel/DependencyInjection/LazyLoadingFragmentHandler.php delete mode 100644 vendor/symfony/http-kernel/DependencyInjection/LoggerPass.php delete mode 100644 vendor/symfony/http-kernel/DependencyInjection/MergeExtensionConfigurationPass.php delete mode 100644 vendor/symfony/http-kernel/DependencyInjection/RegisterControllerArgumentLocatorsPass.php delete mode 100644 vendor/symfony/http-kernel/DependencyInjection/RemoveEmptyControllerArgumentLocatorsPass.php delete mode 100644 vendor/symfony/http-kernel/DependencyInjection/ResettableServicePass.php delete mode 100644 vendor/symfony/http-kernel/DependencyInjection/ServicesResetter.php delete mode 100644 vendor/symfony/http-kernel/Event/FilterControllerArgumentsEvent.php delete mode 100644 vendor/symfony/http-kernel/Event/FilterControllerEvent.php delete mode 100644 vendor/symfony/http-kernel/Event/FilterResponseEvent.php delete mode 100644 vendor/symfony/http-kernel/Event/FinishRequestEvent.php delete mode 100644 vendor/symfony/http-kernel/Event/GetResponseEvent.php delete mode 100644 vendor/symfony/http-kernel/Event/GetResponseForControllerResultEvent.php delete mode 100644 vendor/symfony/http-kernel/Event/GetResponseForExceptionEvent.php delete mode 100644 vendor/symfony/http-kernel/Event/KernelEvent.php delete mode 100644 vendor/symfony/http-kernel/Event/PostResponseEvent.php delete mode 100644 vendor/symfony/http-kernel/EventListener/AbstractSessionListener.php delete mode 100644 vendor/symfony/http-kernel/EventListener/AbstractTestSessionListener.php delete mode 100644 vendor/symfony/http-kernel/EventListener/AddRequestFormatsListener.php delete mode 100644 vendor/symfony/http-kernel/EventListener/DebugHandlersListener.php delete mode 100644 vendor/symfony/http-kernel/EventListener/DumpListener.php delete mode 100644 vendor/symfony/http-kernel/EventListener/ExceptionListener.php delete mode 100644 vendor/symfony/http-kernel/EventListener/FragmentListener.php delete mode 100644 vendor/symfony/http-kernel/EventListener/LocaleListener.php delete mode 100644 vendor/symfony/http-kernel/EventListener/ProfilerListener.php delete mode 100644 vendor/symfony/http-kernel/EventListener/ResponseListener.php delete mode 100644 vendor/symfony/http-kernel/EventListener/RouterListener.php delete mode 100644 vendor/symfony/http-kernel/EventListener/SaveSessionListener.php delete mode 100644 vendor/symfony/http-kernel/EventListener/SessionListener.php delete mode 100644 vendor/symfony/http-kernel/EventListener/StreamedResponseListener.php delete mode 100644 vendor/symfony/http-kernel/EventListener/SurrogateListener.php delete mode 100644 vendor/symfony/http-kernel/EventListener/TestSessionListener.php delete mode 100644 vendor/symfony/http-kernel/EventListener/TranslatorListener.php delete mode 100644 vendor/symfony/http-kernel/EventListener/ValidateRequestListener.php delete mode 100644 vendor/symfony/http-kernel/Exception/AccessDeniedHttpException.php delete mode 100644 vendor/symfony/http-kernel/Exception/BadRequestHttpException.php delete mode 100644 vendor/symfony/http-kernel/Exception/ConflictHttpException.php delete mode 100644 vendor/symfony/http-kernel/Exception/GoneHttpException.php delete mode 100644 vendor/symfony/http-kernel/Exception/HttpException.php delete mode 100644 vendor/symfony/http-kernel/Exception/HttpExceptionInterface.php delete mode 100644 vendor/symfony/http-kernel/Exception/LengthRequiredHttpException.php delete mode 100644 vendor/symfony/http-kernel/Exception/MethodNotAllowedHttpException.php delete mode 100644 vendor/symfony/http-kernel/Exception/NotAcceptableHttpException.php delete mode 100644 vendor/symfony/http-kernel/Exception/NotFoundHttpException.php delete mode 100644 vendor/symfony/http-kernel/Exception/PreconditionFailedHttpException.php delete mode 100644 vendor/symfony/http-kernel/Exception/PreconditionRequiredHttpException.php delete mode 100644 vendor/symfony/http-kernel/Exception/ServiceUnavailableHttpException.php delete mode 100644 vendor/symfony/http-kernel/Exception/TooManyRequestsHttpException.php delete mode 100644 vendor/symfony/http-kernel/Exception/UnauthorizedHttpException.php delete mode 100644 vendor/symfony/http-kernel/Exception/UnprocessableEntityHttpException.php delete mode 100644 vendor/symfony/http-kernel/Exception/UnsupportedMediaTypeHttpException.php delete mode 100644 vendor/symfony/http-kernel/Fragment/AbstractSurrogateFragmentRenderer.php delete mode 100644 vendor/symfony/http-kernel/Fragment/EsiFragmentRenderer.php delete mode 100644 vendor/symfony/http-kernel/Fragment/FragmentHandler.php delete mode 100644 vendor/symfony/http-kernel/Fragment/FragmentRendererInterface.php delete mode 100644 vendor/symfony/http-kernel/Fragment/HIncludeFragmentRenderer.php delete mode 100644 vendor/symfony/http-kernel/Fragment/InlineFragmentRenderer.php delete mode 100644 vendor/symfony/http-kernel/Fragment/RoutableFragmentRenderer.php delete mode 100644 vendor/symfony/http-kernel/Fragment/SsiFragmentRenderer.php delete mode 100644 vendor/symfony/http-kernel/HttpCache/AbstractSurrogate.php delete mode 100644 vendor/symfony/http-kernel/HttpCache/Esi.php delete mode 100644 vendor/symfony/http-kernel/HttpCache/HttpCache.php delete mode 100644 vendor/symfony/http-kernel/HttpCache/ResponseCacheStrategy.php delete mode 100644 vendor/symfony/http-kernel/HttpCache/ResponseCacheStrategyInterface.php delete mode 100644 vendor/symfony/http-kernel/HttpCache/Ssi.php delete mode 100644 vendor/symfony/http-kernel/HttpCache/Store.php delete mode 100644 vendor/symfony/http-kernel/HttpCache/StoreInterface.php delete mode 100644 vendor/symfony/http-kernel/HttpCache/SurrogateInterface.php delete mode 100644 vendor/symfony/http-kernel/HttpKernel.php delete mode 100644 vendor/symfony/http-kernel/HttpKernelInterface.php delete mode 100644 vendor/symfony/http-kernel/Kernel.php delete mode 100644 vendor/symfony/http-kernel/KernelEvents.php delete mode 100644 vendor/symfony/http-kernel/KernelInterface.php delete mode 100644 vendor/symfony/http-kernel/LICENSE delete mode 100644 vendor/symfony/http-kernel/Log/DebugLoggerInterface.php delete mode 100644 vendor/symfony/http-kernel/Log/Logger.php delete mode 100644 vendor/symfony/http-kernel/Profiler/FileProfilerStorage.php delete mode 100644 vendor/symfony/http-kernel/Profiler/Profile.php delete mode 100644 vendor/symfony/http-kernel/Profiler/Profiler.php delete mode 100644 vendor/symfony/http-kernel/Profiler/ProfilerStorageInterface.php delete mode 100644 vendor/symfony/http-kernel/README.md delete mode 100644 vendor/symfony/http-kernel/RebootableInterface.php delete mode 100644 vendor/symfony/http-kernel/Resources/welcome.html.php delete mode 100644 vendor/symfony/http-kernel/TerminableInterface.php delete mode 100644 vendor/symfony/http-kernel/Tests/Bundle/BundleTest.php delete mode 100644 vendor/symfony/http-kernel/Tests/CacheClearer/ChainCacheClearerTest.php delete mode 100644 vendor/symfony/http-kernel/Tests/CacheClearer/Psr6CacheClearerTest.php delete mode 100644 vendor/symfony/http-kernel/Tests/CacheWarmer/CacheWarmerAggregateTest.php delete mode 100644 vendor/symfony/http-kernel/Tests/CacheWarmer/CacheWarmerTest.php delete mode 100644 vendor/symfony/http-kernel/Tests/ClientTest.php delete mode 100644 vendor/symfony/http-kernel/Tests/Config/FileLocatorTest.php delete mode 100644 vendor/symfony/http-kernel/Tests/Controller/ArgumentResolver/ServiceValueResolverTest.php delete mode 100644 vendor/symfony/http-kernel/Tests/Controller/ArgumentResolver/TraceableValueResolverTest.php delete mode 100644 vendor/symfony/http-kernel/Tests/Controller/ArgumentResolverTest.php delete mode 100644 vendor/symfony/http-kernel/Tests/Controller/ContainerControllerResolverTest.php delete mode 100644 vendor/symfony/http-kernel/Tests/Controller/ControllerResolverTest.php delete mode 100644 vendor/symfony/http-kernel/Tests/ControllerMetadata/ArgumentMetadataFactoryTest.php delete mode 100644 vendor/symfony/http-kernel/Tests/ControllerMetadata/ArgumentMetadataTest.php delete mode 100644 vendor/symfony/http-kernel/Tests/DataCollector/Compiler.log delete mode 100644 vendor/symfony/http-kernel/Tests/DataCollector/ConfigDataCollectorTest.php delete mode 100644 vendor/symfony/http-kernel/Tests/DataCollector/DataCollectorTest.php delete mode 100644 vendor/symfony/http-kernel/Tests/DataCollector/DumpDataCollectorTest.php delete mode 100644 vendor/symfony/http-kernel/Tests/DataCollector/ExceptionDataCollectorTest.php delete mode 100644 vendor/symfony/http-kernel/Tests/DataCollector/LoggerDataCollectorTest.php delete mode 100644 vendor/symfony/http-kernel/Tests/DataCollector/MemoryDataCollectorTest.php delete mode 100644 vendor/symfony/http-kernel/Tests/DataCollector/RequestDataCollectorTest.php delete mode 100644 vendor/symfony/http-kernel/Tests/DataCollector/TimeDataCollectorTest.php delete mode 100644 vendor/symfony/http-kernel/Tests/Debug/FileLinkFormatterTest.php delete mode 100644 vendor/symfony/http-kernel/Tests/Debug/TraceableEventDispatcherTest.php delete mode 100644 vendor/symfony/http-kernel/Tests/DependencyInjection/AddAnnotatedClassesToCachePassTest.php delete mode 100644 vendor/symfony/http-kernel/Tests/DependencyInjection/ControllerArgumentValueResolverPassTest.php delete mode 100644 vendor/symfony/http-kernel/Tests/DependencyInjection/FragmentRendererPassTest.php delete mode 100644 vendor/symfony/http-kernel/Tests/DependencyInjection/LazyLoadingFragmentHandlerTest.php delete mode 100644 vendor/symfony/http-kernel/Tests/DependencyInjection/LoggerPassTest.php delete mode 100644 vendor/symfony/http-kernel/Tests/DependencyInjection/MergeExtensionConfigurationPassTest.php delete mode 100644 vendor/symfony/http-kernel/Tests/DependencyInjection/RegisterControllerArgumentLocatorsPassTest.php delete mode 100644 vendor/symfony/http-kernel/Tests/DependencyInjection/RemoveEmptyControllerArgumentLocatorsPassTest.php delete mode 100644 vendor/symfony/http-kernel/Tests/DependencyInjection/ResettableServicePassTest.php delete mode 100644 vendor/symfony/http-kernel/Tests/DependencyInjection/ServicesResetterTest.php delete mode 100644 vendor/symfony/http-kernel/Tests/Event/FilterControllerArgumentsEventTest.php delete mode 100644 vendor/symfony/http-kernel/Tests/Event/GetResponseForExceptionEventTest.php delete mode 100644 vendor/symfony/http-kernel/Tests/EventListener/AddRequestFormatsListenerTest.php delete mode 100644 vendor/symfony/http-kernel/Tests/EventListener/DebugHandlersListenerTest.php delete mode 100644 vendor/symfony/http-kernel/Tests/EventListener/DumpListenerTest.php delete mode 100644 vendor/symfony/http-kernel/Tests/EventListener/ExceptionListenerTest.php delete mode 100644 vendor/symfony/http-kernel/Tests/EventListener/FragmentListenerTest.php delete mode 100644 vendor/symfony/http-kernel/Tests/EventListener/LocaleListenerTest.php delete mode 100644 vendor/symfony/http-kernel/Tests/EventListener/ProfilerListenerTest.php delete mode 100644 vendor/symfony/http-kernel/Tests/EventListener/ResponseListenerTest.php delete mode 100644 vendor/symfony/http-kernel/Tests/EventListener/RouterListenerTest.php delete mode 100644 vendor/symfony/http-kernel/Tests/EventListener/SaveSessionListenerTest.php delete mode 100644 vendor/symfony/http-kernel/Tests/EventListener/SessionListenerTest.php delete mode 100644 vendor/symfony/http-kernel/Tests/EventListener/SurrogateListenerTest.php delete mode 100644 vendor/symfony/http-kernel/Tests/EventListener/TestSessionListenerTest.php delete mode 100644 vendor/symfony/http-kernel/Tests/EventListener/TranslatorListenerTest.php delete mode 100644 vendor/symfony/http-kernel/Tests/EventListener/ValidateRequestListenerTest.php delete mode 100644 vendor/symfony/http-kernel/Tests/Exception/AccessDeniedHttpExceptionTest.php delete mode 100644 vendor/symfony/http-kernel/Tests/Exception/BadRequestHttpExceptionTest.php delete mode 100644 vendor/symfony/http-kernel/Tests/Exception/ConflictHttpExceptionTest.php delete mode 100644 vendor/symfony/http-kernel/Tests/Exception/GoneHttpExceptionTest.php delete mode 100644 vendor/symfony/http-kernel/Tests/Exception/HttpExceptionTest.php delete mode 100644 vendor/symfony/http-kernel/Tests/Exception/LengthRequiredHttpExceptionTest.php delete mode 100644 vendor/symfony/http-kernel/Tests/Exception/MethodNotAllowedHttpExceptionTest.php delete mode 100644 vendor/symfony/http-kernel/Tests/Exception/NotAcceptableHttpExceptionTest.php delete mode 100644 vendor/symfony/http-kernel/Tests/Exception/NotFoundHttpExceptionTest.php delete mode 100644 vendor/symfony/http-kernel/Tests/Exception/PreconditionFailedHttpExceptionTest.php delete mode 100644 vendor/symfony/http-kernel/Tests/Exception/PreconditionRequiredHttpExceptionTest.php delete mode 100644 vendor/symfony/http-kernel/Tests/Exception/ServiceUnavailableHttpExceptionTest.php delete mode 100644 vendor/symfony/http-kernel/Tests/Exception/TooManyRequestsHttpExceptionTest.php delete mode 100644 vendor/symfony/http-kernel/Tests/Exception/UnauthorizedHttpExceptionTest.php delete mode 100644 vendor/symfony/http-kernel/Tests/Exception/UnprocessableEntityHttpExceptionTest.php delete mode 100644 vendor/symfony/http-kernel/Tests/Exception/UnsupportedMediaTypeHttpExceptionTest.php delete mode 100644 vendor/symfony/http-kernel/Tests/Fixtures/123/Kernel123.php delete mode 100644 vendor/symfony/http-kernel/Tests/Fixtures/BaseBundle/Resources/foo.txt delete mode 100644 vendor/symfony/http-kernel/Tests/Fixtures/BaseBundle/Resources/hide.txt delete mode 100644 vendor/symfony/http-kernel/Tests/Fixtures/Bundle1Bundle/Resources/foo.txt delete mode 100644 vendor/symfony/http-kernel/Tests/Fixtures/Bundle1Bundle/bar.txt delete mode 100644 vendor/symfony/http-kernel/Tests/Fixtures/Bundle1Bundle/foo.txt delete mode 100644 vendor/symfony/http-kernel/Tests/Fixtures/Bundle2Bundle/foo.txt delete mode 100644 vendor/symfony/http-kernel/Tests/Fixtures/ChildBundle/Resources/foo.txt delete mode 100644 vendor/symfony/http-kernel/Tests/Fixtures/ChildBundle/Resources/hide.txt delete mode 100644 vendor/symfony/http-kernel/Tests/Fixtures/ClearableService.php delete mode 100644 vendor/symfony/http-kernel/Tests/Fixtures/Controller/BasicTypesController.php delete mode 100644 vendor/symfony/http-kernel/Tests/Fixtures/Controller/ExtendingRequest.php delete mode 100644 vendor/symfony/http-kernel/Tests/Fixtures/Controller/ExtendingSession.php delete mode 100644 vendor/symfony/http-kernel/Tests/Fixtures/Controller/NullableController.php delete mode 100644 vendor/symfony/http-kernel/Tests/Fixtures/Controller/VariadicController.php delete mode 100644 vendor/symfony/http-kernel/Tests/Fixtures/DataCollector/CloneVarDataCollector.php delete mode 100644 vendor/symfony/http-kernel/Tests/Fixtures/ExtensionAbsentBundle/ExtensionAbsentBundle.php delete mode 100644 vendor/symfony/http-kernel/Tests/Fixtures/ExtensionLoadedBundle/DependencyInjection/ExtensionLoadedExtension.php delete mode 100644 vendor/symfony/http-kernel/Tests/Fixtures/ExtensionLoadedBundle/ExtensionLoadedBundle.php delete mode 100644 vendor/symfony/http-kernel/Tests/Fixtures/ExtensionNotValidBundle/DependencyInjection/ExtensionNotValidExtension.php delete mode 100644 vendor/symfony/http-kernel/Tests/Fixtures/ExtensionNotValidBundle/ExtensionNotValidBundle.php delete mode 100644 vendor/symfony/http-kernel/Tests/Fixtures/ExtensionPresentBundle/Command/BarCommand.php delete mode 100644 vendor/symfony/http-kernel/Tests/Fixtures/ExtensionPresentBundle/Command/FooCommand.php delete mode 100644 vendor/symfony/http-kernel/Tests/Fixtures/ExtensionPresentBundle/DependencyInjection/ExtensionPresentExtension.php delete mode 100644 vendor/symfony/http-kernel/Tests/Fixtures/ExtensionPresentBundle/ExtensionPresentBundle.php delete mode 100644 vendor/symfony/http-kernel/Tests/Fixtures/KernelForOverrideName.php delete mode 100644 vendor/symfony/http-kernel/Tests/Fixtures/KernelForTest.php delete mode 100644 vendor/symfony/http-kernel/Tests/Fixtures/KernelWithoutBundles.php delete mode 100644 vendor/symfony/http-kernel/Tests/Fixtures/ResettableService.php delete mode 100644 vendor/symfony/http-kernel/Tests/Fixtures/Resources/BaseBundle/hide.txt delete mode 100644 vendor/symfony/http-kernel/Tests/Fixtures/Resources/Bundle1Bundle/foo.txt delete mode 100644 vendor/symfony/http-kernel/Tests/Fixtures/Resources/ChildBundle/foo.txt delete mode 100644 vendor/symfony/http-kernel/Tests/Fixtures/Resources/FooBundle/foo.txt delete mode 100644 vendor/symfony/http-kernel/Tests/Fixtures/TestClient.php delete mode 100644 vendor/symfony/http-kernel/Tests/Fixtures/TestEventDispatcher.php delete mode 100644 vendor/symfony/http-kernel/Tests/Fragment/EsiFragmentRendererTest.php delete mode 100644 vendor/symfony/http-kernel/Tests/Fragment/FragmentHandlerTest.php delete mode 100644 vendor/symfony/http-kernel/Tests/Fragment/HIncludeFragmentRendererTest.php delete mode 100644 vendor/symfony/http-kernel/Tests/Fragment/InlineFragmentRendererTest.php delete mode 100644 vendor/symfony/http-kernel/Tests/Fragment/RoutableFragmentRendererTest.php delete mode 100644 vendor/symfony/http-kernel/Tests/Fragment/SsiFragmentRendererTest.php delete mode 100644 vendor/symfony/http-kernel/Tests/HttpCache/EsiTest.php delete mode 100644 vendor/symfony/http-kernel/Tests/HttpCache/HttpCacheTest.php delete mode 100644 vendor/symfony/http-kernel/Tests/HttpCache/HttpCacheTestCase.php delete mode 100644 vendor/symfony/http-kernel/Tests/HttpCache/ResponseCacheStrategyTest.php delete mode 100644 vendor/symfony/http-kernel/Tests/HttpCache/SsiTest.php delete mode 100644 vendor/symfony/http-kernel/Tests/HttpCache/StoreTest.php delete mode 100644 vendor/symfony/http-kernel/Tests/HttpCache/TestHttpKernel.php delete mode 100644 vendor/symfony/http-kernel/Tests/HttpCache/TestMultipleHttpKernel.php delete mode 100644 vendor/symfony/http-kernel/Tests/HttpKernelTest.php delete mode 100644 vendor/symfony/http-kernel/Tests/KernelTest.php delete mode 100644 vendor/symfony/http-kernel/Tests/Log/LoggerTest.php delete mode 100644 vendor/symfony/http-kernel/Tests/Logger.php delete mode 100644 vendor/symfony/http-kernel/Tests/Profiler/FileProfilerStorageTest.php delete mode 100644 vendor/symfony/http-kernel/Tests/Profiler/ProfilerTest.php delete mode 100644 vendor/symfony/http-kernel/Tests/TestHttpKernel.php delete mode 100644 vendor/symfony/http-kernel/Tests/UriSignerTest.php delete mode 100644 vendor/symfony/http-kernel/UriSigner.php delete mode 100644 vendor/symfony/http-kernel/composer.json delete mode 100644 vendor/symfony/http-kernel/phpunit.xml.dist delete mode 100644 vendor/symfony/polyfill-ctype/Ctype.php delete mode 100644 vendor/symfony/polyfill-ctype/LICENSE delete mode 100644 vendor/symfony/polyfill-ctype/README.md delete mode 100644 vendor/symfony/polyfill-ctype/bootstrap.php delete mode 100644 vendor/symfony/polyfill-ctype/composer.json delete mode 100644 vendor/symfony/polyfill-mbstring/LICENSE delete mode 100644 vendor/symfony/polyfill-mbstring/Mbstring.php delete mode 100644 vendor/symfony/polyfill-mbstring/README.md delete mode 100644 vendor/symfony/polyfill-mbstring/Resources/unidata/lowerCase.php delete mode 100644 vendor/symfony/polyfill-mbstring/Resources/unidata/upperCase.php delete mode 100644 vendor/symfony/polyfill-mbstring/bootstrap.php delete mode 100644 vendor/symfony/polyfill-mbstring/composer.json delete mode 100644 vendor/symfony/polyfill-php72/LICENSE delete mode 100644 vendor/symfony/polyfill-php72/Php72.php delete mode 100644 vendor/symfony/polyfill-php72/README.md delete mode 100644 vendor/symfony/polyfill-php72/bootstrap.php delete mode 100644 vendor/symfony/polyfill-php72/composer.json delete mode 100644 vendor/symfony/process/CHANGELOG.md delete mode 100644 vendor/symfony/process/Exception/ExceptionInterface.php delete mode 100644 vendor/symfony/process/Exception/InvalidArgumentException.php delete mode 100644 vendor/symfony/process/Exception/LogicException.php delete mode 100644 vendor/symfony/process/Exception/ProcessFailedException.php delete mode 100644 vendor/symfony/process/Exception/ProcessSignaledException.php delete mode 100644 vendor/symfony/process/Exception/ProcessTimedOutException.php delete mode 100644 vendor/symfony/process/Exception/RuntimeException.php delete mode 100644 vendor/symfony/process/ExecutableFinder.php delete mode 100644 vendor/symfony/process/InputStream.php delete mode 100644 vendor/symfony/process/LICENSE delete mode 100644 vendor/symfony/process/PhpExecutableFinder.php delete mode 100644 vendor/symfony/process/PhpProcess.php delete mode 100644 vendor/symfony/process/Pipes/AbstractPipes.php delete mode 100644 vendor/symfony/process/Pipes/PipesInterface.php delete mode 100644 vendor/symfony/process/Pipes/UnixPipes.php delete mode 100644 vendor/symfony/process/Pipes/WindowsPipes.php delete mode 100644 vendor/symfony/process/Process.php delete mode 100644 vendor/symfony/process/ProcessUtils.php delete mode 100644 vendor/symfony/process/README.md delete mode 100644 vendor/symfony/process/Tests/ExecutableFinderTest.php delete mode 100644 vendor/symfony/process/Tests/NonStopableProcess.php delete mode 100644 vendor/symfony/process/Tests/PhpExecutableFinderTest.php delete mode 100644 vendor/symfony/process/Tests/PhpProcessTest.php delete mode 100644 vendor/symfony/process/Tests/PipeStdinInStdoutStdErrStreamSelect.php delete mode 100644 vendor/symfony/process/Tests/ProcessFailedExceptionTest.php delete mode 100644 vendor/symfony/process/Tests/ProcessTest.php delete mode 100644 vendor/symfony/process/Tests/SignalListener.php delete mode 100644 vendor/symfony/process/composer.json delete mode 100644 vendor/symfony/process/phpunit.xml.dist delete mode 100644 vendor/symfony/routing/Annotation/Route.php delete mode 100644 vendor/symfony/routing/CHANGELOG.md delete mode 100644 vendor/symfony/routing/CompiledRoute.php delete mode 100644 vendor/symfony/routing/DependencyInjection/RoutingResolverPass.php delete mode 100644 vendor/symfony/routing/Exception/ExceptionInterface.php delete mode 100644 vendor/symfony/routing/Exception/InvalidParameterException.php delete mode 100644 vendor/symfony/routing/Exception/MethodNotAllowedException.php delete mode 100644 vendor/symfony/routing/Exception/MissingMandatoryParametersException.php delete mode 100644 vendor/symfony/routing/Exception/NoConfigurationException.php delete mode 100644 vendor/symfony/routing/Exception/ResourceNotFoundException.php delete mode 100644 vendor/symfony/routing/Exception/RouteNotFoundException.php delete mode 100644 vendor/symfony/routing/Generator/ConfigurableRequirementsInterface.php delete mode 100644 vendor/symfony/routing/Generator/Dumper/GeneratorDumper.php delete mode 100644 vendor/symfony/routing/Generator/Dumper/GeneratorDumperInterface.php delete mode 100644 vendor/symfony/routing/Generator/Dumper/PhpGeneratorDumper.php delete mode 100644 vendor/symfony/routing/Generator/UrlGenerator.php delete mode 100644 vendor/symfony/routing/Generator/UrlGeneratorInterface.php delete mode 100644 vendor/symfony/routing/LICENSE delete mode 100644 vendor/symfony/routing/Loader/AnnotationClassLoader.php delete mode 100644 vendor/symfony/routing/Loader/AnnotationDirectoryLoader.php delete mode 100644 vendor/symfony/routing/Loader/AnnotationFileLoader.php delete mode 100644 vendor/symfony/routing/Loader/ClosureLoader.php delete mode 100644 vendor/symfony/routing/Loader/Configurator/CollectionConfigurator.php delete mode 100644 vendor/symfony/routing/Loader/Configurator/ImportConfigurator.php delete mode 100644 vendor/symfony/routing/Loader/Configurator/RouteConfigurator.php delete mode 100644 vendor/symfony/routing/Loader/Configurator/RoutingConfigurator.php delete mode 100644 vendor/symfony/routing/Loader/Configurator/Traits/AddTrait.php delete mode 100644 vendor/symfony/routing/Loader/Configurator/Traits/RouteTrait.php delete mode 100644 vendor/symfony/routing/Loader/DependencyInjection/ServiceRouterLoader.php delete mode 100644 vendor/symfony/routing/Loader/DirectoryLoader.php delete mode 100644 vendor/symfony/routing/Loader/GlobFileLoader.php delete mode 100644 vendor/symfony/routing/Loader/ObjectRouteLoader.php delete mode 100644 vendor/symfony/routing/Loader/PhpFileLoader.php delete mode 100644 vendor/symfony/routing/Loader/XmlFileLoader.php delete mode 100644 vendor/symfony/routing/Loader/YamlFileLoader.php delete mode 100644 vendor/symfony/routing/Loader/schema/routing/routing-1.0.xsd delete mode 100644 vendor/symfony/routing/Matcher/Dumper/MatcherDumper.php delete mode 100644 vendor/symfony/routing/Matcher/Dumper/MatcherDumperInterface.php delete mode 100644 vendor/symfony/routing/Matcher/Dumper/PhpMatcherDumper.php delete mode 100644 vendor/symfony/routing/Matcher/Dumper/StaticPrefixCollection.php delete mode 100644 vendor/symfony/routing/Matcher/RedirectableUrlMatcher.php delete mode 100644 vendor/symfony/routing/Matcher/RedirectableUrlMatcherInterface.php delete mode 100644 vendor/symfony/routing/Matcher/RequestMatcherInterface.php delete mode 100644 vendor/symfony/routing/Matcher/TraceableUrlMatcher.php delete mode 100644 vendor/symfony/routing/Matcher/UrlMatcher.php delete mode 100644 vendor/symfony/routing/Matcher/UrlMatcherInterface.php delete mode 100644 vendor/symfony/routing/README.md delete mode 100644 vendor/symfony/routing/RequestContext.php delete mode 100644 vendor/symfony/routing/RequestContextAwareInterface.php delete mode 100644 vendor/symfony/routing/Route.php delete mode 100644 vendor/symfony/routing/RouteCollection.php delete mode 100644 vendor/symfony/routing/RouteCollectionBuilder.php delete mode 100644 vendor/symfony/routing/RouteCompiler.php delete mode 100644 vendor/symfony/routing/RouteCompilerInterface.php delete mode 100644 vendor/symfony/routing/Router.php delete mode 100644 vendor/symfony/routing/RouterInterface.php delete mode 100644 vendor/symfony/routing/Tests/Annotation/RouteTest.php delete mode 100644 vendor/symfony/routing/Tests/CompiledRouteTest.php delete mode 100644 vendor/symfony/routing/Tests/DependencyInjection/RoutingResolverPassTest.php delete mode 100644 vendor/symfony/routing/Tests/Fixtures/AnnotatedClasses/AbstractClass.php delete mode 100644 vendor/symfony/routing/Tests/Fixtures/AnnotatedClasses/BarClass.php delete mode 100644 vendor/symfony/routing/Tests/Fixtures/AnnotatedClasses/BazClass.php delete mode 100644 vendor/symfony/routing/Tests/Fixtures/AnnotatedClasses/FooClass.php delete mode 100644 vendor/symfony/routing/Tests/Fixtures/AnnotatedClasses/FooTrait.php delete mode 100644 vendor/symfony/routing/Tests/Fixtures/AnnotationFixtures/AbstractClassController.php delete mode 100644 vendor/symfony/routing/Tests/Fixtures/AnnotationFixtures/ActionPathController.php delete mode 100644 vendor/symfony/routing/Tests/Fixtures/AnnotationFixtures/DefaultValueController.php delete mode 100644 vendor/symfony/routing/Tests/Fixtures/AnnotationFixtures/ExplicitLocalizedActionPathController.php delete mode 100644 vendor/symfony/routing/Tests/Fixtures/AnnotationFixtures/InvokableController.php delete mode 100644 vendor/symfony/routing/Tests/Fixtures/AnnotationFixtures/InvokableLocalizedController.php delete mode 100644 vendor/symfony/routing/Tests/Fixtures/AnnotationFixtures/LocalizedActionPathController.php delete mode 100644 vendor/symfony/routing/Tests/Fixtures/AnnotationFixtures/LocalizedMethodActionControllers.php delete mode 100644 vendor/symfony/routing/Tests/Fixtures/AnnotationFixtures/LocalizedPrefixLocalizedActionController.php delete mode 100644 vendor/symfony/routing/Tests/Fixtures/AnnotationFixtures/LocalizedPrefixMissingLocaleActionController.php delete mode 100644 vendor/symfony/routing/Tests/Fixtures/AnnotationFixtures/LocalizedPrefixMissingRouteLocaleActionController.php delete mode 100644 vendor/symfony/routing/Tests/Fixtures/AnnotationFixtures/LocalizedPrefixWithRouteWithoutLocale.php delete mode 100644 vendor/symfony/routing/Tests/Fixtures/AnnotationFixtures/MethodActionControllers.php delete mode 100644 vendor/symfony/routing/Tests/Fixtures/AnnotationFixtures/MissingRouteNameController.php delete mode 100644 vendor/symfony/routing/Tests/Fixtures/AnnotationFixtures/NothingButNameController.php delete mode 100644 vendor/symfony/routing/Tests/Fixtures/AnnotationFixtures/PrefixedActionLocalizedRouteController.php delete mode 100644 vendor/symfony/routing/Tests/Fixtures/AnnotationFixtures/PrefixedActionPathController.php delete mode 100644 vendor/symfony/routing/Tests/Fixtures/AnnotationFixtures/RouteWithPrefixController.php delete mode 100644 vendor/symfony/routing/Tests/Fixtures/CustomCompiledRoute.php delete mode 100644 vendor/symfony/routing/Tests/Fixtures/CustomRouteCompiler.php delete mode 100644 vendor/symfony/routing/Tests/Fixtures/CustomXmlFileLoader.php delete mode 100644 vendor/symfony/routing/Tests/Fixtures/OtherAnnotatedClasses/AnonymousClassInTrait.php delete mode 100644 vendor/symfony/routing/Tests/Fixtures/OtherAnnotatedClasses/NoStartTagClass.php delete mode 100644 vendor/symfony/routing/Tests/Fixtures/OtherAnnotatedClasses/VariadicClass.php delete mode 100644 vendor/symfony/routing/Tests/Fixtures/RedirectableUrlMatcher.php delete mode 100644 vendor/symfony/routing/Tests/Fixtures/annotated.php delete mode 100644 vendor/symfony/routing/Tests/Fixtures/bad_format.yml delete mode 100644 vendor/symfony/routing/Tests/Fixtures/bar.xml delete mode 100644 vendor/symfony/routing/Tests/Fixtures/controller/import__controller.xml delete mode 100644 vendor/symfony/routing/Tests/Fixtures/controller/import__controller.yml delete mode 100644 vendor/symfony/routing/Tests/Fixtures/controller/import_controller.xml delete mode 100644 vendor/symfony/routing/Tests/Fixtures/controller/import_controller.yml delete mode 100644 vendor/symfony/routing/Tests/Fixtures/controller/import_override_defaults.xml delete mode 100644 vendor/symfony/routing/Tests/Fixtures/controller/import_override_defaults.yml delete mode 100644 vendor/symfony/routing/Tests/Fixtures/controller/override_defaults.xml delete mode 100644 vendor/symfony/routing/Tests/Fixtures/controller/override_defaults.yml delete mode 100644 vendor/symfony/routing/Tests/Fixtures/controller/routing.xml delete mode 100644 vendor/symfony/routing/Tests/Fixtures/controller/routing.yml delete mode 100644 vendor/symfony/routing/Tests/Fixtures/directory/recurse/routes1.yml delete mode 100644 vendor/symfony/routing/Tests/Fixtures/directory/recurse/routes2.yml delete mode 100644 vendor/symfony/routing/Tests/Fixtures/directory/routes3.yml delete mode 100644 vendor/symfony/routing/Tests/Fixtures/directory_import/import.yml delete mode 100644 vendor/symfony/routing/Tests/Fixtures/dumper/url_matcher0.php delete mode 100644 vendor/symfony/routing/Tests/Fixtures/dumper/url_matcher1.php delete mode 100644 vendor/symfony/routing/Tests/Fixtures/dumper/url_matcher10.php delete mode 100644 vendor/symfony/routing/Tests/Fixtures/dumper/url_matcher11.php delete mode 100644 vendor/symfony/routing/Tests/Fixtures/dumper/url_matcher12.php delete mode 100644 vendor/symfony/routing/Tests/Fixtures/dumper/url_matcher13.php delete mode 100644 vendor/symfony/routing/Tests/Fixtures/dumper/url_matcher2.php delete mode 100644 vendor/symfony/routing/Tests/Fixtures/dumper/url_matcher3.php delete mode 100644 vendor/symfony/routing/Tests/Fixtures/dumper/url_matcher4.php delete mode 100644 vendor/symfony/routing/Tests/Fixtures/dumper/url_matcher5.php delete mode 100644 vendor/symfony/routing/Tests/Fixtures/dumper/url_matcher6.php delete mode 100644 vendor/symfony/routing/Tests/Fixtures/dumper/url_matcher7.php delete mode 100644 vendor/symfony/routing/Tests/Fixtures/dumper/url_matcher8.php delete mode 100644 vendor/symfony/routing/Tests/Fixtures/dumper/url_matcher9.php delete mode 100644 vendor/symfony/routing/Tests/Fixtures/empty.yml delete mode 100644 vendor/symfony/routing/Tests/Fixtures/file_resource.yml delete mode 100644 vendor/symfony/routing/Tests/Fixtures/foo.xml delete mode 100644 vendor/symfony/routing/Tests/Fixtures/foo1.xml delete mode 100644 vendor/symfony/routing/Tests/Fixtures/glob/bar.xml delete mode 100644 vendor/symfony/routing/Tests/Fixtures/glob/bar.yml delete mode 100644 vendor/symfony/routing/Tests/Fixtures/glob/baz.xml delete mode 100644 vendor/symfony/routing/Tests/Fixtures/glob/baz.yml delete mode 100644 vendor/symfony/routing/Tests/Fixtures/glob/import_multiple.xml delete mode 100644 vendor/symfony/routing/Tests/Fixtures/glob/import_multiple.yml delete mode 100644 vendor/symfony/routing/Tests/Fixtures/glob/import_single.xml delete mode 100644 vendor/symfony/routing/Tests/Fixtures/glob/import_single.yml delete mode 100644 vendor/symfony/routing/Tests/Fixtures/glob/php_dsl.php delete mode 100644 vendor/symfony/routing/Tests/Fixtures/glob/php_dsl_bar.php delete mode 100644 vendor/symfony/routing/Tests/Fixtures/glob/php_dsl_baz.php delete mode 100644 vendor/symfony/routing/Tests/Fixtures/import_with_name_prefix/routing.xml delete mode 100644 vendor/symfony/routing/Tests/Fixtures/import_with_name_prefix/routing.yml delete mode 100644 vendor/symfony/routing/Tests/Fixtures/import_with_no_trailing_slash/routing.xml delete mode 100644 vendor/symfony/routing/Tests/Fixtures/import_with_no_trailing_slash/routing.yml delete mode 100644 vendor/symfony/routing/Tests/Fixtures/incomplete.yml delete mode 100644 vendor/symfony/routing/Tests/Fixtures/list_defaults.xml delete mode 100644 vendor/symfony/routing/Tests/Fixtures/list_in_list_defaults.xml delete mode 100644 vendor/symfony/routing/Tests/Fixtures/list_in_map_defaults.xml delete mode 100644 vendor/symfony/routing/Tests/Fixtures/list_null_values.xml delete mode 100644 vendor/symfony/routing/Tests/Fixtures/localized.xml delete mode 100644 vendor/symfony/routing/Tests/Fixtures/localized/imported-with-locale-but-not-localized.xml delete mode 100644 vendor/symfony/routing/Tests/Fixtures/localized/imported-with-locale-but-not-localized.yml delete mode 100644 vendor/symfony/routing/Tests/Fixtures/localized/imported-with-locale.xml delete mode 100644 vendor/symfony/routing/Tests/Fixtures/localized/imported-with-locale.yml delete mode 100644 vendor/symfony/routing/Tests/Fixtures/localized/importer-with-controller-default.yml delete mode 100644 vendor/symfony/routing/Tests/Fixtures/localized/importer-with-locale-imports-non-localized-route.xml delete mode 100644 vendor/symfony/routing/Tests/Fixtures/localized/importer-with-locale-imports-non-localized-route.yml delete mode 100644 vendor/symfony/routing/Tests/Fixtures/localized/importer-with-locale.xml delete mode 100644 vendor/symfony/routing/Tests/Fixtures/localized/importer-with-locale.yml delete mode 100644 vendor/symfony/routing/Tests/Fixtures/localized/importing-localized-route.yml delete mode 100644 vendor/symfony/routing/Tests/Fixtures/localized/localized-route.yml delete mode 100644 vendor/symfony/routing/Tests/Fixtures/localized/missing-locale-in-importer.yml delete mode 100644 vendor/symfony/routing/Tests/Fixtures/localized/not-localized.yml delete mode 100644 vendor/symfony/routing/Tests/Fixtures/localized/officially_formatted_locales.yml delete mode 100644 vendor/symfony/routing/Tests/Fixtures/localized/route-without-path-or-locales.yml delete mode 100644 vendor/symfony/routing/Tests/Fixtures/map_defaults.xml delete mode 100644 vendor/symfony/routing/Tests/Fixtures/map_in_list_defaults.xml delete mode 100644 vendor/symfony/routing/Tests/Fixtures/map_in_map_defaults.xml delete mode 100644 vendor/symfony/routing/Tests/Fixtures/map_null_values.xml delete mode 100644 vendor/symfony/routing/Tests/Fixtures/missing_id.xml delete mode 100644 vendor/symfony/routing/Tests/Fixtures/missing_path.xml delete mode 100644 vendor/symfony/routing/Tests/Fixtures/namespaceprefix.xml delete mode 100644 vendor/symfony/routing/Tests/Fixtures/nonesense_resource_plus_path.yml delete mode 100644 vendor/symfony/routing/Tests/Fixtures/nonesense_type_without_resource.yml delete mode 100644 vendor/symfony/routing/Tests/Fixtures/nonvalid.xml delete mode 100644 vendor/symfony/routing/Tests/Fixtures/nonvalid.yml delete mode 100644 vendor/symfony/routing/Tests/Fixtures/nonvalid2.yml delete mode 100644 vendor/symfony/routing/Tests/Fixtures/nonvalidkeys.yml delete mode 100644 vendor/symfony/routing/Tests/Fixtures/nonvalidnode.xml delete mode 100644 vendor/symfony/routing/Tests/Fixtures/nonvalidroute.xml delete mode 100644 vendor/symfony/routing/Tests/Fixtures/null_values.xml delete mode 100644 vendor/symfony/routing/Tests/Fixtures/php_dsl.php delete mode 100644 vendor/symfony/routing/Tests/Fixtures/php_dsl_i18n.php delete mode 100644 vendor/symfony/routing/Tests/Fixtures/php_dsl_sub.php delete mode 100644 vendor/symfony/routing/Tests/Fixtures/php_dsl_sub_i18n.php delete mode 100644 vendor/symfony/routing/Tests/Fixtures/php_dsl_sub_root.php delete mode 100644 vendor/symfony/routing/Tests/Fixtures/php_object_dsl.php delete mode 100644 vendor/symfony/routing/Tests/Fixtures/scalar_defaults.xml delete mode 100644 vendor/symfony/routing/Tests/Fixtures/special_route_name.yml delete mode 100644 vendor/symfony/routing/Tests/Fixtures/validpattern.php delete mode 100644 vendor/symfony/routing/Tests/Fixtures/validpattern.xml delete mode 100644 vendor/symfony/routing/Tests/Fixtures/validpattern.yml delete mode 100644 vendor/symfony/routing/Tests/Fixtures/validresource.php delete mode 100644 vendor/symfony/routing/Tests/Fixtures/validresource.xml delete mode 100644 vendor/symfony/routing/Tests/Fixtures/validresource.yml delete mode 100644 vendor/symfony/routing/Tests/Fixtures/with_define_path_variable.php delete mode 100644 vendor/symfony/routing/Tests/Fixtures/withdoctype.xml delete mode 100644 vendor/symfony/routing/Tests/Generator/Dumper/PhpGeneratorDumperTest.php delete mode 100644 vendor/symfony/routing/Tests/Generator/UrlGeneratorTest.php delete mode 100644 vendor/symfony/routing/Tests/Loader/AbstractAnnotationLoaderTest.php delete mode 100644 vendor/symfony/routing/Tests/Loader/AnnotationClassLoaderTest.php delete mode 100644 vendor/symfony/routing/Tests/Loader/AnnotationDirectoryLoaderTest.php delete mode 100644 vendor/symfony/routing/Tests/Loader/AnnotationFileLoaderTest.php delete mode 100644 vendor/symfony/routing/Tests/Loader/ClosureLoaderTest.php delete mode 100644 vendor/symfony/routing/Tests/Loader/DirectoryLoaderTest.php delete mode 100644 vendor/symfony/routing/Tests/Loader/FileLocatorStub.php delete mode 100644 vendor/symfony/routing/Tests/Loader/GlobFileLoaderTest.php delete mode 100644 vendor/symfony/routing/Tests/Loader/ObjectRouteLoaderTest.php delete mode 100644 vendor/symfony/routing/Tests/Loader/PhpFileLoaderTest.php delete mode 100644 vendor/symfony/routing/Tests/Loader/XmlFileLoaderTest.php delete mode 100644 vendor/symfony/routing/Tests/Loader/YamlFileLoaderTest.php delete mode 100644 vendor/symfony/routing/Tests/Matcher/DumpedRedirectableUrlMatcherTest.php delete mode 100644 vendor/symfony/routing/Tests/Matcher/DumpedUrlMatcherTest.php delete mode 100644 vendor/symfony/routing/Tests/Matcher/Dumper/PhpMatcherDumperTest.php delete mode 100644 vendor/symfony/routing/Tests/Matcher/Dumper/StaticPrefixCollectionTest.php delete mode 100644 vendor/symfony/routing/Tests/Matcher/RedirectableUrlMatcherTest.php delete mode 100644 vendor/symfony/routing/Tests/Matcher/TraceableUrlMatcherTest.php delete mode 100644 vendor/symfony/routing/Tests/Matcher/UrlMatcherTest.php delete mode 100644 vendor/symfony/routing/Tests/RequestContextTest.php delete mode 100644 vendor/symfony/routing/Tests/RouteCollectionBuilderTest.php delete mode 100644 vendor/symfony/routing/Tests/RouteCollectionTest.php delete mode 100644 vendor/symfony/routing/Tests/RouteCompilerTest.php delete mode 100644 vendor/symfony/routing/Tests/RouteTest.php delete mode 100644 vendor/symfony/routing/Tests/RouterTest.php delete mode 100644 vendor/symfony/routing/composer.json delete mode 100644 vendor/symfony/routing/phpunit.xml.dist delete mode 100644 vendor/symfony/translation/CHANGELOG.md delete mode 100644 vendor/symfony/translation/Catalogue/AbstractOperation.php delete mode 100644 vendor/symfony/translation/Catalogue/MergeOperation.php delete mode 100644 vendor/symfony/translation/Catalogue/OperationInterface.php delete mode 100644 vendor/symfony/translation/Catalogue/TargetOperation.php delete mode 100644 vendor/symfony/translation/Command/XliffLintCommand.php delete mode 100644 vendor/symfony/translation/DataCollector/TranslationDataCollector.php delete mode 100644 vendor/symfony/translation/DataCollectorTranslator.php delete mode 100644 vendor/symfony/translation/DependencyInjection/TranslationDumperPass.php delete mode 100644 vendor/symfony/translation/DependencyInjection/TranslationExtractorPass.php delete mode 100644 vendor/symfony/translation/DependencyInjection/TranslatorPass.php delete mode 100644 vendor/symfony/translation/Dumper/CsvFileDumper.php delete mode 100644 vendor/symfony/translation/Dumper/DumperInterface.php delete mode 100644 vendor/symfony/translation/Dumper/FileDumper.php delete mode 100644 vendor/symfony/translation/Dumper/IcuResFileDumper.php delete mode 100644 vendor/symfony/translation/Dumper/IniFileDumper.php delete mode 100644 vendor/symfony/translation/Dumper/JsonFileDumper.php delete mode 100644 vendor/symfony/translation/Dumper/MoFileDumper.php delete mode 100644 vendor/symfony/translation/Dumper/PhpFileDumper.php delete mode 100644 vendor/symfony/translation/Dumper/PoFileDumper.php delete mode 100644 vendor/symfony/translation/Dumper/QtFileDumper.php delete mode 100644 vendor/symfony/translation/Dumper/XliffFileDumper.php delete mode 100644 vendor/symfony/translation/Dumper/YamlFileDumper.php delete mode 100644 vendor/symfony/translation/Exception/ExceptionInterface.php delete mode 100644 vendor/symfony/translation/Exception/InvalidArgumentException.php delete mode 100644 vendor/symfony/translation/Exception/InvalidResourceException.php delete mode 100644 vendor/symfony/translation/Exception/LogicException.php delete mode 100644 vendor/symfony/translation/Exception/NotFoundResourceException.php delete mode 100644 vendor/symfony/translation/Exception/RuntimeException.php delete mode 100644 vendor/symfony/translation/Extractor/AbstractFileExtractor.php delete mode 100644 vendor/symfony/translation/Extractor/ChainExtractor.php delete mode 100644 vendor/symfony/translation/Extractor/ExtractorInterface.php delete mode 100644 vendor/symfony/translation/Extractor/PhpExtractor.php delete mode 100644 vendor/symfony/translation/Extractor/PhpStringTokenParser.php delete mode 100644 vendor/symfony/translation/Formatter/ChoiceMessageFormatterInterface.php delete mode 100644 vendor/symfony/translation/Formatter/MessageFormatter.php delete mode 100644 vendor/symfony/translation/Formatter/MessageFormatterInterface.php delete mode 100644 vendor/symfony/translation/IdentityTranslator.php delete mode 100644 vendor/symfony/translation/Interval.php delete mode 100644 vendor/symfony/translation/LICENSE delete mode 100644 vendor/symfony/translation/Loader/ArrayLoader.php delete mode 100644 vendor/symfony/translation/Loader/CsvFileLoader.php delete mode 100644 vendor/symfony/translation/Loader/FileLoader.php delete mode 100644 vendor/symfony/translation/Loader/IcuDatFileLoader.php delete mode 100644 vendor/symfony/translation/Loader/IcuResFileLoader.php delete mode 100644 vendor/symfony/translation/Loader/IniFileLoader.php delete mode 100644 vendor/symfony/translation/Loader/JsonFileLoader.php delete mode 100644 vendor/symfony/translation/Loader/LoaderInterface.php delete mode 100644 vendor/symfony/translation/Loader/MoFileLoader.php delete mode 100644 vendor/symfony/translation/Loader/PhpFileLoader.php delete mode 100644 vendor/symfony/translation/Loader/PoFileLoader.php delete mode 100644 vendor/symfony/translation/Loader/QtFileLoader.php delete mode 100644 vendor/symfony/translation/Loader/XliffFileLoader.php delete mode 100644 vendor/symfony/translation/Loader/YamlFileLoader.php delete mode 100644 vendor/symfony/translation/Loader/schema/dic/xliff-core/xliff-core-1.2-strict.xsd delete mode 100644 vendor/symfony/translation/Loader/schema/dic/xliff-core/xliff-core-2.0.xsd delete mode 100644 vendor/symfony/translation/Loader/schema/dic/xliff-core/xml.xsd delete mode 100644 vendor/symfony/translation/LoggingTranslator.php delete mode 100644 vendor/symfony/translation/MessageCatalogue.php delete mode 100644 vendor/symfony/translation/MessageCatalogueInterface.php delete mode 100644 vendor/symfony/translation/MessageSelector.php delete mode 100644 vendor/symfony/translation/MetadataAwareInterface.php delete mode 100644 vendor/symfony/translation/PluralizationRules.php delete mode 100644 vendor/symfony/translation/README.md delete mode 100644 vendor/symfony/translation/Reader/TranslationReader.php delete mode 100644 vendor/symfony/translation/Reader/TranslationReaderInterface.php delete mode 100644 vendor/symfony/translation/Resources/schemas/xliff-core-1.2-strict.xsd delete mode 100644 vendor/symfony/translation/Tests/Catalogue/AbstractOperationTest.php delete mode 100644 vendor/symfony/translation/Tests/Catalogue/MergeOperationTest.php delete mode 100644 vendor/symfony/translation/Tests/Catalogue/TargetOperationTest.php delete mode 100644 vendor/symfony/translation/Tests/Command/XliffLintCommandTest.php delete mode 100644 vendor/symfony/translation/Tests/DataCollector/TranslationDataCollectorTest.php delete mode 100644 vendor/symfony/translation/Tests/DataCollectorTranslatorTest.php delete mode 100644 vendor/symfony/translation/Tests/DependencyInjection/TranslationDumperPassTest.php delete mode 100644 vendor/symfony/translation/Tests/DependencyInjection/TranslationExtractorPassTest.php delete mode 100644 vendor/symfony/translation/Tests/DependencyInjection/TranslationPassTest.php delete mode 100644 vendor/symfony/translation/Tests/Dumper/CsvFileDumperTest.php delete mode 100644 vendor/symfony/translation/Tests/Dumper/FileDumperTest.php delete mode 100644 vendor/symfony/translation/Tests/Dumper/IcuResFileDumperTest.php delete mode 100644 vendor/symfony/translation/Tests/Dumper/IniFileDumperTest.php delete mode 100644 vendor/symfony/translation/Tests/Dumper/JsonFileDumperTest.php delete mode 100644 vendor/symfony/translation/Tests/Dumper/MoFileDumperTest.php delete mode 100644 vendor/symfony/translation/Tests/Dumper/PhpFileDumperTest.php delete mode 100644 vendor/symfony/translation/Tests/Dumper/PoFileDumperTest.php delete mode 100644 vendor/symfony/translation/Tests/Dumper/QtFileDumperTest.php delete mode 100644 vendor/symfony/translation/Tests/Dumper/XliffFileDumperTest.php delete mode 100644 vendor/symfony/translation/Tests/Dumper/YamlFileDumperTest.php delete mode 100644 vendor/symfony/translation/Tests/Extractor/PhpExtractorTest.php delete mode 100644 vendor/symfony/translation/Tests/Formatter/MessageFormatterTest.php delete mode 100644 vendor/symfony/translation/Tests/IdentityTranslatorTest.php delete mode 100644 vendor/symfony/translation/Tests/IntervalTest.php delete mode 100644 vendor/symfony/translation/Tests/Loader/CsvFileLoaderTest.php delete mode 100644 vendor/symfony/translation/Tests/Loader/IcuDatFileLoaderTest.php delete mode 100644 vendor/symfony/translation/Tests/Loader/IcuResFileLoaderTest.php delete mode 100644 vendor/symfony/translation/Tests/Loader/IniFileLoaderTest.php delete mode 100644 vendor/symfony/translation/Tests/Loader/JsonFileLoaderTest.php delete mode 100644 vendor/symfony/translation/Tests/Loader/LocalizedTestCase.php delete mode 100644 vendor/symfony/translation/Tests/Loader/MoFileLoaderTest.php delete mode 100644 vendor/symfony/translation/Tests/Loader/PhpFileLoaderTest.php delete mode 100644 vendor/symfony/translation/Tests/Loader/PoFileLoaderTest.php delete mode 100644 vendor/symfony/translation/Tests/Loader/QtFileLoaderTest.php delete mode 100644 vendor/symfony/translation/Tests/Loader/XliffFileLoaderTest.php delete mode 100644 vendor/symfony/translation/Tests/Loader/YamlFileLoaderTest.php delete mode 100644 vendor/symfony/translation/Tests/LoggingTranslatorTest.php delete mode 100644 vendor/symfony/translation/Tests/MessageCatalogueTest.php delete mode 100644 vendor/symfony/translation/Tests/MessageSelectorTest.php delete mode 100644 vendor/symfony/translation/Tests/PluralizationRulesTest.php delete mode 100644 vendor/symfony/translation/Tests/TranslatorCacheTest.php delete mode 100644 vendor/symfony/translation/Tests/TranslatorTest.php delete mode 100644 vendor/symfony/translation/Tests/Util/ArrayConverterTest.php delete mode 100644 vendor/symfony/translation/Tests/Writer/TranslationWriterTest.php delete mode 100644 vendor/symfony/translation/Tests/fixtures/empty-translation.mo delete mode 100644 vendor/symfony/translation/Tests/fixtures/empty-translation.po delete mode 100644 vendor/symfony/translation/Tests/fixtures/empty.csv delete mode 100644 vendor/symfony/translation/Tests/fixtures/empty.ini delete mode 100644 vendor/symfony/translation/Tests/fixtures/empty.json delete mode 100644 vendor/symfony/translation/Tests/fixtures/empty.mo delete mode 100644 vendor/symfony/translation/Tests/fixtures/empty.po delete mode 100644 vendor/symfony/translation/Tests/fixtures/empty.xlf delete mode 100644 vendor/symfony/translation/Tests/fixtures/empty.yml delete mode 100644 vendor/symfony/translation/Tests/fixtures/encoding.xlf delete mode 100644 vendor/symfony/translation/Tests/fixtures/escaped-id-plurals.po delete mode 100644 vendor/symfony/translation/Tests/fixtures/escaped-id.po delete mode 100644 vendor/symfony/translation/Tests/fixtures/extractor/resource.format.engine delete mode 100644 vendor/symfony/translation/Tests/fixtures/extractor/this.is.a.template.format.engine delete mode 100644 vendor/symfony/translation/Tests/fixtures/extractor/translation.html.php delete mode 100644 vendor/symfony/translation/Tests/fixtures/fuzzy-translations.po delete mode 100644 vendor/symfony/translation/Tests/fixtures/invalid-xml-resources.xlf delete mode 100644 vendor/symfony/translation/Tests/fixtures/malformed.json delete mode 100644 vendor/symfony/translation/Tests/fixtures/messages.yml delete mode 100644 vendor/symfony/translation/Tests/fixtures/messages_linear.yml delete mode 100644 vendor/symfony/translation/Tests/fixtures/non-valid.xlf delete mode 100644 vendor/symfony/translation/Tests/fixtures/non-valid.yml delete mode 100644 vendor/symfony/translation/Tests/fixtures/plurals.mo delete mode 100644 vendor/symfony/translation/Tests/fixtures/plurals.po delete mode 100644 vendor/symfony/translation/Tests/fixtures/resname.xlf delete mode 100644 vendor/symfony/translation/Tests/fixtures/resourcebundle/corrupted/resources.dat delete mode 100644 vendor/symfony/translation/Tests/fixtures/resourcebundle/dat/en.res delete mode 100644 vendor/symfony/translation/Tests/fixtures/resourcebundle/dat/en.txt delete mode 100644 vendor/symfony/translation/Tests/fixtures/resourcebundle/dat/fr.res delete mode 100644 vendor/symfony/translation/Tests/fixtures/resourcebundle/dat/fr.txt delete mode 100644 vendor/symfony/translation/Tests/fixtures/resourcebundle/dat/packagelist.txt delete mode 100644 vendor/symfony/translation/Tests/fixtures/resourcebundle/dat/resources.dat delete mode 100644 vendor/symfony/translation/Tests/fixtures/resourcebundle/res/en.res delete mode 100644 vendor/symfony/translation/Tests/fixtures/resources-2.0-clean.xlf delete mode 100644 vendor/symfony/translation/Tests/fixtures/resources-2.0-multi-segment-unit.xlf delete mode 100644 vendor/symfony/translation/Tests/fixtures/resources-2.0.xlf delete mode 100644 vendor/symfony/translation/Tests/fixtures/resources-clean.xlf delete mode 100644 vendor/symfony/translation/Tests/fixtures/resources-notes-meta.xlf delete mode 100644 vendor/symfony/translation/Tests/fixtures/resources-target-attributes.xlf delete mode 100644 vendor/symfony/translation/Tests/fixtures/resources-tool-info.xlf delete mode 100644 vendor/symfony/translation/Tests/fixtures/resources.csv delete mode 100644 vendor/symfony/translation/Tests/fixtures/resources.dump.json delete mode 100644 vendor/symfony/translation/Tests/fixtures/resources.ini delete mode 100644 vendor/symfony/translation/Tests/fixtures/resources.json delete mode 100644 vendor/symfony/translation/Tests/fixtures/resources.mo delete mode 100644 vendor/symfony/translation/Tests/fixtures/resources.php delete mode 100644 vendor/symfony/translation/Tests/fixtures/resources.po delete mode 100644 vendor/symfony/translation/Tests/fixtures/resources.ts delete mode 100644 vendor/symfony/translation/Tests/fixtures/resources.xlf delete mode 100644 vendor/symfony/translation/Tests/fixtures/resources.yml delete mode 100644 vendor/symfony/translation/Tests/fixtures/valid.csv delete mode 100644 vendor/symfony/translation/Tests/fixtures/with-attributes.xlf delete mode 100644 vendor/symfony/translation/Tests/fixtures/withdoctype.xlf delete mode 100644 vendor/symfony/translation/Tests/fixtures/withnote.xlf delete mode 100644 vendor/symfony/translation/Translator.php delete mode 100644 vendor/symfony/translation/TranslatorBagInterface.php delete mode 100644 vendor/symfony/translation/TranslatorInterface.php delete mode 100644 vendor/symfony/translation/Util/ArrayConverter.php delete mode 100644 vendor/symfony/translation/Writer/TranslationWriter.php delete mode 100644 vendor/symfony/translation/Writer/TranslationWriterInterface.php delete mode 100644 vendor/symfony/translation/composer.json delete mode 100644 vendor/symfony/translation/phpunit.xml.dist delete mode 100644 vendor/symfony/var-dumper/CHANGELOG.md delete mode 100644 vendor/symfony/var-dumper/Caster/AmqpCaster.php delete mode 100644 vendor/symfony/var-dumper/Caster/ArgsStub.php delete mode 100644 vendor/symfony/var-dumper/Caster/Caster.php delete mode 100644 vendor/symfony/var-dumper/Caster/ClassStub.php delete mode 100644 vendor/symfony/var-dumper/Caster/ConstStub.php delete mode 100644 vendor/symfony/var-dumper/Caster/CutArrayStub.php delete mode 100644 vendor/symfony/var-dumper/Caster/CutStub.php delete mode 100644 vendor/symfony/var-dumper/Caster/DOMCaster.php delete mode 100644 vendor/symfony/var-dumper/Caster/DateCaster.php delete mode 100644 vendor/symfony/var-dumper/Caster/DoctrineCaster.php delete mode 100644 vendor/symfony/var-dumper/Caster/EnumStub.php delete mode 100644 vendor/symfony/var-dumper/Caster/ExceptionCaster.php delete mode 100644 vendor/symfony/var-dumper/Caster/FrameStub.php delete mode 100644 vendor/symfony/var-dumper/Caster/GmpCaster.php delete mode 100644 vendor/symfony/var-dumper/Caster/LinkStub.php delete mode 100644 vendor/symfony/var-dumper/Caster/PdoCaster.php delete mode 100644 vendor/symfony/var-dumper/Caster/PgSqlCaster.php delete mode 100644 vendor/symfony/var-dumper/Caster/RedisCaster.php delete mode 100644 vendor/symfony/var-dumper/Caster/ReflectionCaster.php delete mode 100644 vendor/symfony/var-dumper/Caster/ResourceCaster.php delete mode 100644 vendor/symfony/var-dumper/Caster/SplCaster.php delete mode 100644 vendor/symfony/var-dumper/Caster/StubCaster.php delete mode 100644 vendor/symfony/var-dumper/Caster/SymfonyCaster.php delete mode 100644 vendor/symfony/var-dumper/Caster/TraceStub.php delete mode 100644 vendor/symfony/var-dumper/Caster/XmlReaderCaster.php delete mode 100644 vendor/symfony/var-dumper/Caster/XmlResourceCaster.php delete mode 100644 vendor/symfony/var-dumper/Cloner/AbstractCloner.php delete mode 100644 vendor/symfony/var-dumper/Cloner/ClonerInterface.php delete mode 100644 vendor/symfony/var-dumper/Cloner/Cursor.php delete mode 100644 vendor/symfony/var-dumper/Cloner/Data.php delete mode 100644 vendor/symfony/var-dumper/Cloner/DumperInterface.php delete mode 100644 vendor/symfony/var-dumper/Cloner/Stub.php delete mode 100644 vendor/symfony/var-dumper/Cloner/VarCloner.php delete mode 100644 vendor/symfony/var-dumper/Command/Descriptor/CliDescriptor.php delete mode 100644 vendor/symfony/var-dumper/Command/Descriptor/DumpDescriptorInterface.php delete mode 100644 vendor/symfony/var-dumper/Command/Descriptor/HtmlDescriptor.php delete mode 100644 vendor/symfony/var-dumper/Command/ServerDumpCommand.php delete mode 100644 vendor/symfony/var-dumper/Dumper/AbstractDumper.php delete mode 100644 vendor/symfony/var-dumper/Dumper/CliDumper.php delete mode 100644 vendor/symfony/var-dumper/Dumper/ContextProvider/CliContextProvider.php delete mode 100644 vendor/symfony/var-dumper/Dumper/ContextProvider/ContextProviderInterface.php delete mode 100644 vendor/symfony/var-dumper/Dumper/ContextProvider/RequestContextProvider.php delete mode 100644 vendor/symfony/var-dumper/Dumper/ContextProvider/SourceContextProvider.php delete mode 100644 vendor/symfony/var-dumper/Dumper/DataDumperInterface.php delete mode 100644 vendor/symfony/var-dumper/Dumper/HtmlDumper.php delete mode 100644 vendor/symfony/var-dumper/Dumper/ServerDumper.php delete mode 100644 vendor/symfony/var-dumper/Exception/ThrowingCasterException.php delete mode 100644 vendor/symfony/var-dumper/LICENSE delete mode 100644 vendor/symfony/var-dumper/README.md delete mode 100755 vendor/symfony/var-dumper/Resources/bin/var-dump-server delete mode 100644 vendor/symfony/var-dumper/Resources/css/htmlDescriptor.css delete mode 100644 vendor/symfony/var-dumper/Resources/functions/dump.php delete mode 100644 vendor/symfony/var-dumper/Resources/js/htmlDescriptor.js delete mode 100644 vendor/symfony/var-dumper/Server/Connection.php delete mode 100644 vendor/symfony/var-dumper/Server/DumpServer.php delete mode 100644 vendor/symfony/var-dumper/Test/VarDumperTestTrait.php delete mode 100644 vendor/symfony/var-dumper/Tests/Caster/CasterTest.php delete mode 100644 vendor/symfony/var-dumper/Tests/Caster/DateCasterTest.php delete mode 100644 vendor/symfony/var-dumper/Tests/Caster/ExceptionCasterTest.php delete mode 100644 vendor/symfony/var-dumper/Tests/Caster/GmpCasterTest.php delete mode 100644 vendor/symfony/var-dumper/Tests/Caster/PdoCasterTest.php delete mode 100644 vendor/symfony/var-dumper/Tests/Caster/RedisCasterTest.php delete mode 100644 vendor/symfony/var-dumper/Tests/Caster/ReflectionCasterTest.php delete mode 100644 vendor/symfony/var-dumper/Tests/Caster/SplCasterTest.php delete mode 100644 vendor/symfony/var-dumper/Tests/Caster/StubCasterTest.php delete mode 100644 vendor/symfony/var-dumper/Tests/Caster/XmlReaderCasterTest.php delete mode 100644 vendor/symfony/var-dumper/Tests/Cloner/DataTest.php delete mode 100644 vendor/symfony/var-dumper/Tests/Cloner/VarClonerTest.php delete mode 100644 vendor/symfony/var-dumper/Tests/Dumper/CliDumperTest.php delete mode 100644 vendor/symfony/var-dumper/Tests/Dumper/HtmlDumperTest.php delete mode 100644 vendor/symfony/var-dumper/Tests/Dumper/ServerDumperTest.php delete mode 100644 vendor/symfony/var-dumper/Tests/Fixtures/FooInterface.php delete mode 100644 vendor/symfony/var-dumper/Tests/Fixtures/GeneratorDemo.php delete mode 100644 vendor/symfony/var-dumper/Tests/Fixtures/NotLoadableClass.php delete mode 100644 vendor/symfony/var-dumper/Tests/Fixtures/Twig.php delete mode 100644 vendor/symfony/var-dumper/Tests/Fixtures/dumb-var.php delete mode 100644 vendor/symfony/var-dumper/Tests/Fixtures/dump_server.php delete mode 100644 vendor/symfony/var-dumper/Tests/Fixtures/xml_reader.xml delete mode 100644 vendor/symfony/var-dumper/Tests/Server/ConnectionTest.php delete mode 100644 vendor/symfony/var-dumper/Tests/Test/VarDumperTestTraitTest.php delete mode 100644 vendor/symfony/var-dumper/VarDumper.php delete mode 100644 vendor/symfony/var-dumper/composer.json delete mode 100644 vendor/symfony/var-dumper/phpunit.xml.dist delete mode 100644 vendor/theseer/tokenizer/.php_cs delete mode 100644 vendor/theseer/tokenizer/.travis.yml delete mode 100644 vendor/theseer/tokenizer/LICENSE delete mode 100644 vendor/theseer/tokenizer/README.md delete mode 100644 vendor/theseer/tokenizer/build.xml delete mode 100644 vendor/theseer/tokenizer/composer.json delete mode 100644 vendor/theseer/tokenizer/phive.xml delete mode 100644 vendor/theseer/tokenizer/phpunit.xml delete mode 100644 vendor/theseer/tokenizer/src/Exception.php delete mode 100644 vendor/theseer/tokenizer/src/NamespaceUri.php delete mode 100644 vendor/theseer/tokenizer/src/NamespaceUriException.php delete mode 100644 vendor/theseer/tokenizer/src/Token.php delete mode 100644 vendor/theseer/tokenizer/src/TokenCollection.php delete mode 100644 vendor/theseer/tokenizer/src/TokenCollectionException.php delete mode 100644 vendor/theseer/tokenizer/src/Tokenizer.php delete mode 100644 vendor/theseer/tokenizer/src/XMLSerializer.php delete mode 100644 vendor/theseer/tokenizer/tests/NamespaceUriTest.php delete mode 100644 vendor/theseer/tokenizer/tests/TokenCollectionTest.php delete mode 100644 vendor/theseer/tokenizer/tests/TokenTest.php delete mode 100644 vendor/theseer/tokenizer/tests/TokenizerTest.php delete mode 100644 vendor/theseer/tokenizer/tests/XMLSerializerTest.php delete mode 100644 vendor/theseer/tokenizer/tests/_files/customns.xml delete mode 100644 vendor/theseer/tokenizer/tests/_files/test.php delete mode 100644 vendor/theseer/tokenizer/tests/_files/test.php.tokens delete mode 100644 vendor/theseer/tokenizer/tests/_files/test.php.xml delete mode 100644 vendor/tijsverkoyen/css-to-inline-styles/LICENSE.md delete mode 100644 vendor/tijsverkoyen/css-to-inline-styles/composer.json delete mode 100644 vendor/tijsverkoyen/css-to-inline-styles/phpunit.xml.dist delete mode 100644 vendor/tijsverkoyen/css-to-inline-styles/src/Css/Processor.php delete mode 100644 vendor/tijsverkoyen/css-to-inline-styles/src/Css/Property/Processor.php delete mode 100644 vendor/tijsverkoyen/css-to-inline-styles/src/Css/Property/Property.php delete mode 100644 vendor/tijsverkoyen/css-to-inline-styles/src/Css/Rule/Processor.php delete mode 100644 vendor/tijsverkoyen/css-to-inline-styles/src/Css/Rule/Rule.php delete mode 100644 vendor/tijsverkoyen/css-to-inline-styles/src/CssToInlineStyles.php delete mode 100644 vendor/toolkito/larasap/.travis.yml delete mode 100644 vendor/toolkito/larasap/CODE_OF_CONDUCT.md delete mode 100644 vendor/toolkito/larasap/CONTRIBUTING.md delete mode 100644 vendor/toolkito/larasap/ISSUE_TEMPLATE.md delete mode 100644 vendor/toolkito/larasap/LICENSE delete mode 100644 vendor/toolkito/larasap/README.md delete mode 100644 vendor/toolkito/larasap/composer.json delete mode 100644 vendor/toolkito/larasap/config/config.php delete mode 100644 vendor/toolkito/larasap/phpunit.xml delete mode 100644 vendor/toolkito/larasap/src/Facebook/Api.php delete mode 100644 vendor/toolkito/larasap/src/LarasapServiceProvider.php delete mode 100644 vendor/toolkito/larasap/src/SendTo.php delete mode 100644 vendor/toolkito/larasap/src/Telegram/Api.php delete mode 100644 vendor/toolkito/larasap/src/Twitter/Api.php delete mode 100644 vendor/toolkito/larasap/src/Twitter/OAuth.php delete mode 100644 vendor/toolkito/larasap/tests/SendToTest.php delete mode 100644 vendor/vlucas/phpdotenv/LICENSE.txt delete mode 100644 vendor/vlucas/phpdotenv/composer.json delete mode 100644 vendor/vlucas/phpdotenv/src/Dotenv.php delete mode 100644 vendor/vlucas/phpdotenv/src/Exception/ExceptionInterface.php delete mode 100644 vendor/vlucas/phpdotenv/src/Exception/InvalidCallbackException.php delete mode 100644 vendor/vlucas/phpdotenv/src/Exception/InvalidFileException.php delete mode 100644 vendor/vlucas/phpdotenv/src/Exception/InvalidPathException.php delete mode 100644 vendor/vlucas/phpdotenv/src/Exception/ValidationException.php delete mode 100644 vendor/vlucas/phpdotenv/src/Loader.php delete mode 100644 vendor/vlucas/phpdotenv/src/Validator.php delete mode 100644 vendor/webmozart/assert/.composer-auth.json delete mode 100644 vendor/webmozart/assert/.styleci.yml delete mode 100644 vendor/webmozart/assert/CHANGELOG.md delete mode 100644 vendor/webmozart/assert/LICENSE delete mode 100644 vendor/webmozart/assert/README.md delete mode 100644 vendor/webmozart/assert/composer.json delete mode 100644 vendor/webmozart/assert/src/Assert.php diff --git a/.gitignore b/.gitignore index 7f606374..62af194f 100644 --- a/.gitignore +++ b/.gitignore @@ -6,3 +6,4 @@ node_modules storage/framework storage/debugbar .idea +vendor diff --git a/app/Http/Controllers/SurveyController.php b/app/Http/Controllers/SurveyController.php index 38ec9577..fd487da2 100644 --- a/app/Http/Controllers/SurveyController.php +++ b/app/Http/Controllers/SurveyController.php @@ -48,7 +48,9 @@ class SurveyController extends ExtendedController 'state' => 'required|min:3', 'age' => 'required', ]; - if(strtolower($request->state) == 'geimpft' or strtolower($request->state) == 'genesen') + if(strtolower($request->state) == 'geimpft' or + strtolower($request->state) == 'genesen' or + strtolower($request->state) == 'geboostert') { $validationData['expiration_date'] = 'date_format:d.m.Y|after:today'; } @@ -65,7 +67,9 @@ class SurveyController extends ExtendedController ]); $expiration_date = Carbon::createFromDate(1900, 1, 1); - if(strtolower($request->state) == 'geimpft' or strtolower($request->state) == 'genesen') + if(strtolower($request->state) == 'geimpft' or + strtolower($request->state) == 'genesen' or + strtolower($request->state) == 'geboostert') { $expiration_date = Carbon::createFromFormat('d.m.Y', $request->expiration_date); } diff --git a/app/Models/BaseModel.php b/app/Models/BaseModel.php index 55d2fe4c..ae54a666 100755 --- a/app/Models/BaseModel.php +++ b/app/Models/BaseModel.php @@ -1,78 +1,78 @@ -modelType == 'POST') ? true : false; - } - - public function getIsTagAttribute() - { - return ($this->modelType == 'TAG') ? true : false; - } - - public function getHasFilesAttribute() - { - return $this->hasFiles; - } - - public function getHasPublicationsAttribute() - { - return $this->hasPublications; - } - - public function user() - { - return $this->HasOne('App\Models\User', 'id', 'user_id'); - } - - public function getUpdatedAttribute($value) - { - return \Carbon\Carbon::createFromTimestamp(strtotime($this->updated_at))->diffForHumans(); - } - - public function getCreatedAttribute($value) - { - return \Carbon\Carbon::createFromTimestamp(strtotime($this->created_at))->diffForHumans(); - } - - public function getDeletedAttribute($value) - { - if(empty($value)) - { - return $value; - } - else - { - return \Carbon\Carbon::createFromTimestamp(strtotime($this->deleted_at))->diffForHumans(); - } - } - - public function disableTimestamps() - { - $this->timestamps = false; - } - - public function enableTimestamps() - { - $this->timestamps = true; - } +modelType == 'POST') ? true : false; + } + + public function getIsTagAttribute() + { + return ($this->modelType == 'TAG') ? true : false; + } + + public function getHasFilesAttribute() + { + return $this->hasFiles; + } + + public function getHasPublicationsAttribute() + { + return $this->hasPublications; + } + + public function user() + { + return $this->HasOne('App\Models\User', 'id', 'user_id'); + } + + public function getUpdatedAttribute($value) + { + return \Carbon\Carbon::createFromTimestamp(strtotime($this->updated_at))->diffForHumans(); + } + + public function getCreatedAttribute($value) + { + return \Carbon\Carbon::createFromTimestamp(strtotime($this->created_at))->diffForHumans(); + } + + public function getDeletedAttribute($value) + { + if(empty($value)) + { + return $value; + } + else + { + return \Carbon\Carbon::createFromTimestamp(strtotime($this->deleted_at))->diffForHumans(); + } + } + + public function disableTimestamps() + { + $this->timestamps = false; + } + + public function enableTimestamps() + { + $this->timestamps = true; + } } \ No newline at end of file diff --git a/app/Models/ExtendedModel.php b/app/Models/ExtendedModel.php index 66f00be1..4d0e2042 100755 --- a/app/Models/ExtendedModel.php +++ b/app/Models/ExtendedModel.php @@ -1,11 +1,11 @@ -W2@EHO9NV8h3u2x_sp}KECIB>@9+Qn{FBV{ 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 G*yFsbY~cLNXLP73aA74Mq6M9f^&YV`isWW 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

5q!RY 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 - - - -Created by FontForge 20120731 at Mon Oct 24 17:37:40 2016 - By ,,, -Copyright Dave Gandy 2016. All rights reserved. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/public/fonts/vendor/font-awesome/fontawesome-webfont.ttf b/public/fonts/vendor/font-awesome/fontawesome-webfont.ttf deleted file mode 100644 index 35acda2fa1196aad98c2adf4378a7611dd713aa3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 165548 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 z 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 d0mRO}xo^G_%I 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 SdSQM28?+M|D(2r_;{O0|uQ74} diff --git a/public/fonts/vendor/font-awesome/fontawesome-webfont.woff2 b/public/fonts/vendor/font-awesome/fontawesome-webfont.woff2 deleted file mode 100644 index 4d13fc60404b91e398a37200c4a77b645cfd9586..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 77160 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 diff --git a/resources/views/inc/admin/detailsModel.blade.php b/resources/views/inc/admin/detailsModel.blade.php index 48dbdf4e..92c57007 100755 --- a/resources/views/inc/admin/detailsModel.blade.php +++ b/resources/views/inc/admin/detailsModel.blade.php @@ -1,334 +1,334 @@ -

- -
+
+ +
diff --git a/resources/views/inc/admin/listModel.blade.php b/resources/views/inc/admin/listModel.blade.php index e8303d1b..d0969545 100755 --- a/resources/views/inc/admin/listModel.blade.php +++ b/resources/views/inc/admin/listModel.blade.php @@ -1,185 +1,185 @@ -@include('inc.layout.paginationSummary', ['model' => $models]) - - - - - @foreach($listdata as $key => $options) - - @endforeach - - - - - - @foreach ($models as $model) - - @foreach($listdata as $key => $options) - - @endforeach - - - @endforeach - -
- @if(key_exists('label', $options)) - {{ $options['label'] }} - @else - @if(key_exists('type', $options)) - @if($options['type'] == 'inputDateTimePicker') - {{ $options['datepicker']['label'] }}/{{ $options['time']['label'] }} - @endif - @else - {{ $key }} - @endif - @endif - - Aktionen
- @if(key_exists('foreign', $options)) - @php - $foreignModel = $options['foreign']['model']; - $foreignKey = $options['foreign']['column']; - if(key_exists('conditions', $options['foreign'])) - { - $foreignWhereColumn = $options['foreign']['conditions'][0]['column']; - $foreignWhereValue = $options['foreign']['conditions'][0]['value']; - } - @endphp - @if($foreignModel == 'audits') - @if(key_exists('index', $options)) - @if($options['index'] == 'first') - {{ $model->audits->first()->$key->$foreignKey }} - @elseif($options['index'] == 'last') - {{ $model->audits->last()->$key->$foreignKey }} - @else - {{ $model->audits->last()->$key->$foreignKey }} - @endif - @else - {{ $model->username }} - @endif - @else - @if(isset($model->$foreignModel->$foreignKey)) - {{ $model->$foreignModel->$foreignKey }} - @elseif(isset($model->$foreignModel)) - @php - $count = 0; - if(isset($foreignWhereColumn)) - { - foreach($model->$foreignModel as $foreign) - { - if($foreign->$foreignWhereColumn == $foreignWhereValue) - { - $count++; - } - } - } - else - { - $count = count($model->$foreignModel); - } - @endphp - @if($count > 1) -
    - @foreach($model->$foreignModel as $foreign) - @if(isset($foreignWhereColumn)) - @if($foreign->$foreignWhereColumn == $foreignWhereValue) -
  • - {{ $foreign->$foreignKey }} -
  • - @endif - @else -
  • - {{ $foreign->$foreignKey }} -
  • - @endif - @endforeach -
- @else - @foreach($model->$foreignModel as $foreign) - @if(isset($foreignWhereColumn)) - @if($foreign->$foreignWhereColumn == $foreignWhereValue) - {{ $foreign->$foreignKey }} - @endif - @else - {{ $foreign->$foreignKey }} - @endif - @endforeach - @endif - @endif - @endif - @else - @php - if(key_exists('type', $options)) - { - if($options['type'] == 'inputDateTimePicker') - { - if(key_exists('datepicker', $options) && key_exists('time', $options)) - { - if(key_exists('format', $options['datepicker']) && key_exists('format', $options['time'])) - { - $dateFormat = $options['datepicker']['format']; - $timeFormat = $options['time']['format']; - $format = $dateFormat.' '.$timeFormat; - $value = \Carbon\Carbon::parse($model->$key)->format($format); - } - } - else - { - $value = $model->$key; - } - } - else - { - $value = $model->$key; - } - } - else if(key_exists('helper', $options)) - { - $helper = $options['helper']; - $value = $helper($model->$key); - } - else - { - if(key_exists('format', $options)) - { - $value = \Carbon\Carbon::parse($model->$key)->format($options['format']); - } - else - { - $value = $model->$key; - } - } - @endphp - @if($key == 'published') - @include('inc.forms.formAjaxPublish', [ - 'model' => $model, - 'title' => __("models.".$model->modeltype) - ]) - @elseif($key == 'order') - @include('inc.forms.formAjaxOrder', [ - 'model' => $model, - 'orderCount' => count($models) - ]) - @else - {{ $value }} - @endif - @endif -
- @include('inc.forms.formAjaxCrud', [ - 'model' => $model, - ]) -
+@include('inc.layout.paginationSummary', ['model' => $models]) + + + + + @foreach($listdata as $key => $options) + + @endforeach + + + + + + @foreach ($models as $model) + + @foreach($listdata as $key => $options) + + @endforeach + + + @endforeach + +
+ @if(key_exists('label', $options)) + {{ $options['label'] }} + @else + @if(key_exists('type', $options)) + @if($options['type'] == 'inputDateTimePicker') + {{ $options['datepicker']['label'] }}/{{ $options['time']['label'] }} + @endif + @else + {{ $key }} + @endif + @endif + + Aktionen
+ @if(key_exists('foreign', $options)) + @php + $foreignModel = $options['foreign']['model']; + $foreignKey = $options['foreign']['column']; + if(key_exists('conditions', $options['foreign'])) + { + $foreignWhereColumn = $options['foreign']['conditions'][0]['column']; + $foreignWhereValue = $options['foreign']['conditions'][0]['value']; + } + @endphp + @if($foreignModel == 'audits') + @if(key_exists('index', $options)) + @if($options['index'] == 'first') + {{ $model->audits->first()->$key->$foreignKey }} + @elseif($options['index'] == 'last') + {{ $model->audits->last()->$key->$foreignKey }} + @else + {{ $model->audits->last()->$key->$foreignKey }} + @endif + @else + {{ $model->username }} + @endif + @else + @if(isset($model->$foreignModel->$foreignKey)) + {{ $model->$foreignModel->$foreignKey }} + @elseif(isset($model->$foreignModel)) + @php + $count = 0; + if(isset($foreignWhereColumn)) + { + foreach($model->$foreignModel as $foreign) + { + if($foreign->$foreignWhereColumn == $foreignWhereValue) + { + $count++; + } + } + } + else + { + $count = count($model->$foreignModel); + } + @endphp + @if($count > 1) +
    + @foreach($model->$foreignModel as $foreign) + @if(isset($foreignWhereColumn)) + @if($foreign->$foreignWhereColumn == $foreignWhereValue) +
  • + {{ $foreign->$foreignKey }} +
  • + @endif + @else +
  • + {{ $foreign->$foreignKey }} +
  • + @endif + @endforeach +
+ @else + @foreach($model->$foreignModel as $foreign) + @if(isset($foreignWhereColumn)) + @if($foreign->$foreignWhereColumn == $foreignWhereValue) + {{ $foreign->$foreignKey }} + @endif + @else + {{ $foreign->$foreignKey }} + @endif + @endforeach + @endif + @endif + @endif + @else + @php + if(key_exists('type', $options)) + { + if($options['type'] == 'inputDateTimePicker') + { + if(key_exists('datepicker', $options) && key_exists('time', $options)) + { + if(key_exists('format', $options['datepicker']) && key_exists('format', $options['time'])) + { + $dateFormat = $options['datepicker']['format']; + $timeFormat = $options['time']['format']; + $format = $dateFormat.' '.$timeFormat; + $value = \Carbon\Carbon::parse($model->$key)->format($format); + } + } + else + { + $value = $model->$key; + } + } + else + { + $value = $model->$key; + } + } + else if(key_exists('helper', $options)) + { + $helper = $options['helper']; + $value = $helper($model->$key); + } + else + { + if(key_exists('format', $options)) + { + $value = \Carbon\Carbon::parse($model->$key)->format($options['format']); + } + else + { + $value = $model->$key; + } + } + @endphp + @if($key == 'published') + @include('inc.forms.formAjaxPublish', [ + 'model' => $model, + 'title' => __("models.".$model->modeltype) + ]) + @elseif($key == 'order') + @include('inc.forms.formAjaxOrder', [ + 'model' => $model, + 'orderCount' => count($models) + ]) + @else + {{ $value }} + @endif + @endif +
+ @include('inc.forms.formAjaxCrud', [ + 'model' => $model, + ]) +
diff --git a/resources/views/inc/forms/button.blade.php b/resources/views/inc/forms/button.blade.php index 78c92b1b..5627b47d 100755 --- a/resources/views/inc/forms/button.blade.php +++ b/resources/views/inc/forms/button.blade.php @@ -1,20 +1,20 @@ - \ No newline at end of file diff --git a/resources/views/inc/forms/formAjaxCrud.blade.php b/resources/views/inc/forms/formAjaxCrud.blade.php index 8af8bfda..31a25218 100755 --- a/resources/views/inc/forms/formAjaxCrud.blade.php +++ b/resources/views/inc/forms/formAjaxCrud.blade.php @@ -1,62 +1,62 @@ -
-{{ $model->department }} -@if(!isset($model->deleted_at)) - @include('inc.forms.button', [ - 'url' => '#', - 'style' => 'btn-success', - 'class' => 'show-modal', - 'icon' => 'fa fa-info', - 'label' => __("admin.details"), - 'data' => [ - 'id' => $model->id, - 'type' => (isset($model->type) ? $model->type : $url), - 'title' => __("models.".$modeltype) - ] - ]) -@endif -@if(Access::hasAnyEditPermission($url, $model['user_id']) && !isset($model->deleted_at)) - @include('inc.forms.button', [ - 'url' => '#', - 'style' => 'btn-info', - 'class' => 'edit-modal', - 'icon' => 'fa fa-edit', - 'label' => __("admin.edit"), - 'data' => [ - 'id' => $model->id, - 'type' => (isset($model->type) ? $model->type : $url), - 'title' => __("models.".$modeltype) - ] - ]) -@endif - -@if(Access::hasAnyDeletePermission($url, $model['user_id']) && !isset($model->deleted_at)) - @include('inc.forms.button', [ - 'url' => '#', - 'style' => 'btn-danger', - 'class' => 'delete-modal', - 'icon' => 'fa fa-trash-alt', - 'label' => __("admin.delete"), - 'data' => [ - 'id' => $model->id, - 'type' => (isset($model->type) ? $model->type : $url), - 'title' => __("models.".$modeltype) - ] - ]) -@endif - -@if( Auth::user()->can('Administrator') -&& isset($model->deleted_at)) - @include('inc.forms.button', [ - 'url' => '#', - 'style' => 'btn-warning', - 'class' => 'restore-modal', - 'icon' => 'glyphicon glyphicon-edit', - 'label' => __("admin.restore"), - 'data' => [ - 'id' => $model->id, - 'type' => (isset($model->type) ? $model->type : $url), - 'title' => __("models.".$modeltype) - ] - ]) -@endif +
+{{ $model->department }} +@if(!isset($model->deleted_at)) + @include('inc.forms.button', [ + 'url' => '#', + 'style' => 'btn-success', + 'class' => 'show-modal', + 'icon' => 'fa fa-info', + 'label' => __("admin.details"), + 'data' => [ + 'id' => $model->id, + 'type' => (isset($model->type) ? $model->type : $url), + 'title' => __("models.".$modeltype) + ] + ]) +@endif +@if(Access::hasAnyEditPermission($url, $model['user_id']) && !isset($model->deleted_at)) + @include('inc.forms.button', [ + 'url' => '#', + 'style' => 'btn-info', + 'class' => 'edit-modal', + 'icon' => 'fa fa-edit', + 'label' => __("admin.edit"), + 'data' => [ + 'id' => $model->id, + 'type' => (isset($model->type) ? $model->type : $url), + 'title' => __("models.".$modeltype) + ] + ]) +@endif + +@if(Access::hasAnyDeletePermission($url, $model['user_id']) && !isset($model->deleted_at)) + @include('inc.forms.button', [ + 'url' => '#', + 'style' => 'btn-danger', + 'class' => 'delete-modal', + 'icon' => 'fa fa-trash-alt', + 'label' => __("admin.delete"), + 'data' => [ + 'id' => $model->id, + 'type' => (isset($model->type) ? $model->type : $url), + 'title' => __("models.".$modeltype) + ] + ]) +@endif + +@if( Auth::user()->can('Administrator') +&& isset($model->deleted_at)) + @include('inc.forms.button', [ + 'url' => '#', + 'style' => 'btn-warning', + 'class' => 'restore-modal', + 'icon' => 'glyphicon glyphicon-edit', + 'label' => __("admin.restore"), + 'data' => [ + 'id' => $model->id, + 'type' => (isset($model->type) ? $model->type : $url), + 'title' => __("models.".$modeltype) + ] + ]) +@endif
\ No newline at end of file diff --git a/resources/views/inc/layout/fileView.blade.php b/resources/views/inc/layout/fileView.blade.php index 6f440c9e..83c9554d 100755 --- a/resources/views/inc/layout/fileView.blade.php +++ b/resources/views/inc/layout/fileView.blade.php @@ -1,47 +1,47 @@ -@if(isset($documents)) - - - @foreach($documents as $document) - @if($document->filetype != 'image') - - -

- {{ $document->filename }} -

-
- @endif - @endforeach +@if(isset($documents)) + + + @foreach($documents as $document) + @if($document->filetype != 'image') + + +

+ {{ $document->filename }} +

+
+ @endif + @endforeach @endif \ No newline at end of file diff --git a/resources/views/inc/survey/vaccinationState.blade.php b/resources/views/inc/survey/vaccinationState.blade.php index 2110bd53..43fc9cba 100644 --- a/resources/views/inc/survey/vaccinationState.blade.php +++ b/resources/views/inc/survey/vaccinationState.blade.php @@ -45,6 +45,8 @@ Um die Einsatzbereitschaft besser abschätzen zu können bitten wir alle aktiven Angehörigen der Freiwilligen Feuerwehr Eppingen - Gesamtwehr an dieser Umfrage teilzunehmen. Die Umfrage findet absolut anonym statt. Es werden lediglich die Daten aus dem untenstehenden Formular gespeichert. +
+ Sollte sowohl eine Genesung, als auch eine Impfung oder Boosterung vorliegen, bitte das aktuellste Ereignis eintragen.
@@ -96,6 +98,7 @@ 'models' => [ (object)['state' => ''], (object)['state' => 'Geimpft'], + (object)['state' => 'Geboostert'], (object)['state' => 'Genesen'], (object)['state' => 'Ich möchte mich vorerst nicht impfen lassen'], ] diff --git a/vendor/autoload.php b/vendor/autoload.php deleted file mode 100644 index 406ed1ef..00000000 --- a/vendor/autoload.php +++ /dev/null @@ -1,7 +0,0 @@ - array( - __DIR__ . '/autoload_classmap.php', - ), - 'Zend\Loader\StandardAutoloader' => array( - 'namespaces' => array( - __NAMESPACE__ => __DIR__ . '/src/' . __NAMESPACE__, - ), - ), - ); - } -} diff --git a/vendor/bacon/bacon-qr-code/README.md b/vendor/bacon/bacon-qr-code/README.md deleted file mode 100644 index a836bd61..00000000 --- a/vendor/bacon/bacon-qr-code/README.md +++ /dev/null @@ -1,24 +0,0 @@ -QR Code generator -================= - -Master: [![Build Status](https://api.travis-ci.org/Bacon/BaconQrCode.png?branch=master)](http://travis-ci.org/Bacon/BaconQrCode) - -Introduction ------------- -BaconQrCode is a port of QR code portion of the ZXing library. It currently -only features the encoder part, but could later receive the decoder part as -well. - -As the Reed Solomon codec implementation of the ZXing library performs quite -slow in PHP, it was exchanged with the implementation by Phil Karn. - - -Example usage -------------- -```php -$renderer = new \BaconQrCode\Renderer\Image\Png(); -$renderer->setHeight(256); -$renderer->setWidth(256); -$writer = new \BaconQrCode\Writer($renderer); -$writer->writeFile('Hello World!', 'qrcode.png'); -``` diff --git a/vendor/bacon/bacon-qr-code/autoload_classmap.php b/vendor/bacon/bacon-qr-code/autoload_classmap.php deleted file mode 100644 index 9fbeb35b..00000000 --- a/vendor/bacon/bacon-qr-code/autoload_classmap.php +++ /dev/null @@ -1,43 +0,0 @@ - __DIR__ . '/src/BaconQrCode/Common/AbstractEnum.php', - 'BaconQrCode\Common\BitArray' => __DIR__ . '/src/BaconQrCode/Common/BitArray.php', - 'BaconQrCode\Common\BitMatrix' => __DIR__ . '/src/BaconQrCode/Common/BitMatrix.php', - 'BaconQrCode\Common\BitUtils' => __DIR__ . '/src/BaconQrCode/Common/BitUtils.php', - 'BaconQrCode\Common\CharacterSetEci' => __DIR__ . '/src/BaconQrCode/Common/CharacterSetEci.php', - 'BaconQrCode\Common\EcBlock' => __DIR__ . '/src/BaconQrCode/Common/EcBlock.php', - 'BaconQrCode\Common\EcBlocks' => __DIR__ . '/src/BaconQrCode/Common/EcBlocks.php', - 'BaconQrCode\Common\ErrorCorrectionLevel' => __DIR__ . '/src/BaconQrCode/Common/ErrorCorrectionLevel.php', - 'BaconQrCode\Common\FormatInformation' => __DIR__ . '/src/BaconQrCode/Common/FormatInformation.php', - 'BaconQrCode\Common\Mode' => __DIR__ . '/src/BaconQrCode/Common/Mode.php', - 'BaconQrCode\Common\ReedSolomonCodec' => __DIR__ . '/src/BaconQrCode/Common/ReedSolomonCodec.php', - 'BaconQrCode\Common\Version' => __DIR__ . '/src/BaconQrCode/Common/Version.php', - 'BaconQrCode\Encoder\BlockPair' => __DIR__ . '/src/BaconQrCode/Encoder/BlockPair.php', - 'BaconQrCode\Encoder\ByteMatrix' => __DIR__ . '/src/BaconQrCode/Encoder/ByteMatrix.php', - 'BaconQrCode\Encoder\Encoder' => __DIR__ . '/src/BaconQrCode/Encoder/Encoder.php', - 'BaconQrCode\Encoder\MaskUtil' => __DIR__ . '/src/BaconQrCode/Encoder/MaskUtil.php', - 'BaconQrCode\Encoder\MatrixUtil' => __DIR__ . '/src/BaconQrCode/Encoder/MatrixUtil.php', - 'BaconQrCode\Encoder\QrCode' => __DIR__ . '/src/BaconQrCode/Encoder/QrCode.php', - 'BaconQrCode\Exception\ExceptionInterface' => __DIR__ . '/src/BaconQrCode/Exception/ExceptionInterface.php', - 'BaconQrCode\Exception\InvalidArgumentException' => __DIR__ . '/src/BaconQrCode/Exception/InvalidArgumentException.php', - 'BaconQrCode\Exception\OutOfBoundsException' => __DIR__ . '/src/BaconQrCode/Exception/OutOfBoundsException.php', - 'BaconQrCode\Exception\RuntimeException' => __DIR__ . '/src/BaconQrCode/Exception/RuntimeException.php', - 'BaconQrCode\Exception\UnexpectedValueException' => __DIR__ . '/src/BaconQrCode/Exception/UnexpectedValueException.php', - 'BaconQrCode\Exception\WriterException' => __DIR__ . '/src/BaconQrCode/Exception/WriterException.php', - 'BaconQrCode\Renderer\Color\Cmyk' => __DIR__ . '/src/BaconQrCode/Renderer/Color/Cmyk.php', - 'BaconQrCode\Renderer\Color\ColorInterface' => __DIR__ . '/src/BaconQrCode/Renderer/Color/ColorInterface.php', - 'BaconQrCode\Renderer\Color\Gray' => __DIR__ . '/src/BaconQrCode/Renderer/Color/Gray.php', - 'BaconQrCode\Renderer\Color\Rgb' => __DIR__ . '/src/BaconQrCode/Renderer/Color/Rgb.php', - 'BaconQrCode\Renderer\Image\AbstractRenderer' => __DIR__ . '/src/BaconQrCode/Renderer/Image/AbstractRenderer.php', - 'BaconQrCode\Renderer\Image\Decorator\DecoratorInterface' => __DIR__ . '/src/BaconQrCode/Renderer/Image/Decorator/DecoratorInterface.php', - 'BaconQrCode\Renderer\Image\Decorator\FinderPattern' => __DIR__ . '/src/BaconQrCode/Renderer/Image/Decorator/FinderPattern.php', - 'BaconQrCode\Renderer\Image\Eps' => __DIR__ . '/src/BaconQrCode/Renderer/Image/Eps.php', - 'BaconQrCode\Renderer\Image\Png' => __DIR__ . '/src/BaconQrCode/Renderer/Image/Png.php', - 'BaconQrCode\Renderer\Image\RendererInterface' => __DIR__ . '/src/BaconQrCode/Renderer/Image/RendererInterface.php', - 'BaconQrCode\Renderer\Image\Svg' => __DIR__ . '/src/BaconQrCode/Renderer/Image/Svg.php', - 'BaconQrCode\Renderer\RendererInterface' => __DIR__ . '/src/BaconQrCode/Renderer/RendererInterface.php', - 'BaconQrCode\Renderer\Text\Plain' => __DIR__ . '/src/BaconQrCode/Renderer/Text/Plain.php', - 'BaconQrCode\Renderer\Text\Html' => __DIR__ . '/src/BaconQrCode/Renderer/Text/Html.php', - 'BaconQrCode\Writer' => __DIR__ . '/src/BaconQrCode/Writer.php', -); \ No newline at end of file diff --git a/vendor/bacon/bacon-qr-code/autoload_function.php b/vendor/bacon/bacon-qr-code/autoload_function.php deleted file mode 100644 index 9148da38..00000000 --- a/vendor/bacon/bacon-qr-code/autoload_function.php +++ /dev/null @@ -1,12 +0,0 @@ -strict = $strict; - $this->change($initialValue); - } - - /** - * Changes the value of the enum. - * - * @param mixed $value - * @return void - */ - public function change($value) - { - if (!in_array($value, $this->getConstList(), $this->strict)) { - throw new Exception\UnexpectedValueException('Value not a const in enum ' . get_class($this)); - } - - $this->value = $value; - } - - /** - * Gets current value. - * - * @return mixed - */ - public function get() - { - return $this->value; - } - - /** - * Gets all constants (possible values) as an array. - * - * @param boolean $includeDefault - * @return array - */ - public function getConstList($includeDefault = true) - { - if ($this->constants === null) { - $reflection = new ReflectionClass($this); - $this->constants = $reflection->getConstants(); - } - - if ($includeDefault) { - return $this->constants; - } - - $constants = $this->constants; - unset($constants['__default']); - - return $constants; - } - - /** - * Gets the name of the enum. - * - * @return string - */ - public function __toString() - { - return array_search($this->value, $this->getConstList()); - } -} diff --git a/vendor/bacon/bacon-qr-code/src/BaconQrCode/Common/BitArray.php b/vendor/bacon/bacon-qr-code/src/BaconQrCode/Common/BitArray.php deleted file mode 100644 index 0a99d9a9..00000000 --- a/vendor/bacon/bacon-qr-code/src/BaconQrCode/Common/BitArray.php +++ /dev/null @@ -1,435 +0,0 @@ -size = $size; - $this->bits = new SplFixedArray(($this->size + 31) >> 3); - } - - /** - * Gets the size in bits. - * - * @return integer - */ - public function getSize() - { - return $this->size; - } - - /** - * Gets the size in bytes. - * - * @return integer - */ - public function getSizeInBytes() - { - return ($this->size + 7) >> 3; - } - - /** - * Ensures that the array has a minimum capacity. - * - * @param integer $size - * @return void - */ - public function ensureCapacity($size) - { - if ($size > count($this->bits) << 5) { - $this->bits->setSize(($size + 31) >> 5); - } - } - - /** - * Gets a specific bit. - * - * @param integer $i - * @return boolean - */ - public function get($i) - { - return ($this->bits[$i >> 5] & (1 << ($i & 0x1f))) !== 0; - } - - /** - * Sets a specific bit. - * - * @param integer $i - * @return void - */ - public function set($i) - { - $this->bits[$i >> 5] = $this->bits[$i >> 5] | 1 << ($i & 0x1f); - } - - /** - * Flips a specific bit. - * - * @param integer $i - * @return void - */ - public function flip($i) - { - $this->bits[$i >> 5] ^= 1 << ($i & 0x1f); - } - - /** - * Gets the next set bit position from a given position. - * - * @param integer $from - * @return integer - */ - public function getNextSet($from) - { - if ($from >= $this->size) { - return $this->size; - } - - $bitsOffset = $from >> 5; - $currentBits = $this->bits[$bitsOffset]; - $bitsLength = count($this->bits); - - $currentBits &= ~((1 << ($from & 0x1f)) - 1); - - while ($currentBits === 0) { - if (++$bitsOffset === $bitsLength) { - return $this->size; - } - - $currentBits = $this->bits[$bitsOffset]; - } - - $result = ($bitsOffset << 5) + BitUtils::numberOfTrailingZeros($currentBits); - - return $result > $this->size ? $this->size : $result; - } - - /** - * Gets the next unset bit position from a given position. - * - * @param integer $from - * @return integer - */ - public function getNextUnset($from) - { - if ($from >= $this->size) { - return $this->size; - } - - $bitsOffset = $from >> 5; - $currentBits = ~$this->bits[$bitsOffset]; - $bitsLength = count($this->bits); - - $currentBits &= ~((1 << ($from & 0x1f)) - 1); - - while ($currentBits === 0) { - if (++$bitsOffset === $bitsLength) { - return $this->size; - } - - $currentBits = ~$this->bits[$bitsOffset]; - } - - $result = ($bitsOffset << 5) + BitUtils::numberOfTrailingZeros($currentBits); - - return $result > $this->size ? $this->size : $result; - } - - /** - * Sets a bulk of bits. - * - * @param integer $i - * @param integer $newBits - * @return void - */ - public function setBulk($i, $newBits) - { - $this->bits[$i >> 5] = $newBits; - } - - /** - * Sets a range of bits. - * - * @param integer $start - * @param integer $end - * @return void - * @throws Exception\InvalidArgumentException - */ - public function setRange($start, $end) - { - if ($end < $start) { - throw new Exception\InvalidArgumentException('End must be greater or equal to start'); - } - - if ($end === $start) { - return; - } - - $end--; - - $firstInt = $start >> 5; - $lastInt = $end >> 5; - - for ($i = $firstInt; $i <= $lastInt; $i++) { - $firstBit = $i > $firstInt ? 0 : $start & 0x1f; - $lastBit = $i < $lastInt ? 31 : $end & 0x1f; - - if ($firstBit === 0 && $lastBit === 31) { - $mask = 0x7fffffff; - } else { - $mask = 0; - - for ($j = $firstBit; $j < $lastBit; $j++) { - $mask |= 1 << $j; - } - } - - $this->bits[$i] = $this->bits[$i] | $mask; - } - } - - /** - * Clears the bit array, unsetting every bit. - * - * @return void - */ - public function clear() - { - $bitsLength = count($this->bits); - - for ($i = 0; $i < $bitsLength; $i++) { - $this->bits[$i] = 0; - } - } - - /** - * Checks if a range of bits is set or not set. - * - * @param integer $start - * @param integer $end - * @param integer $value - * @return boolean - * @throws Exception\InvalidArgumentException - */ - public function isRange($start, $end, $value) - { - if ($end < $start) { - throw new Exception\InvalidArgumentException('End must be greater or equal to start'); - } - - if ($end === $start) { - return; - } - - $end--; - - $firstInt = $start >> 5; - $lastInt = $end >> 5; - - for ($i = $firstInt; $i <= $lastInt; $i++) { - $firstBit = $i > $firstInt ? 0 : $start & 0x1f; - $lastBit = $i < $lastInt ? 31 : $end & 0x1f; - - if ($firstBit === 0 && $lastBit === 31) { - $mask = 0x7fffffff; - } else { - $mask = 0; - - for ($j = $firstBit; $j <= $lastBit; $j++) { - $mask |= 1 << $j; - } - } - - if (($this->bits[$i] & $mask) !== ($value ? $mask : 0)) { - return false; - } - } - - return true; - } - - /** - * Appends a bit to the array. - * - * @param boolean $bit - * @return void - */ - public function appendBit($bit) - { - $this->ensureCapacity($this->size + 1); - - if ($bit) { - $this->bits[$this->size >> 5] = $this->bits[$this->size >> 5] | (1 << ($this->size & 0x1f)); - } - - $this->size++; - } - - /** - * Appends a number of bits (up to 32) to the array. - * - * @param integer $value - * @param integer $numBits - * @return void - * @throws Exception\InvalidArgumentException - */ - public function appendBits($value, $numBits) - { - if ($numBits < 0 || $numBits > 32) { - throw new Exception\InvalidArgumentException('Num bits must be between 0 and 32'); - } - - $this->ensureCapacity($this->size + $numBits); - - for ($numBitsLeft = $numBits; $numBitsLeft > 0; $numBitsLeft--) { - $this->appendBit((($value >> ($numBitsLeft - 1)) & 0x01) === 1); - } - } - - /** - * Appends another bit array to this array. - * - * @param BitArray $other - * @return void - */ - public function appendBitArray(self $other) - { - $otherSize = $other->getSize(); - $this->ensureCapacity($this->size + $other->getSize()); - - for ($i = 0; $i < $otherSize; $i++) { - $this->appendBit($other->get($i)); - } - } - - /** - * Makes an exclusive-or comparision on the current bit array. - * - * @param BitArray $other - * @return void - * @throws Exception\InvalidArgumentException - */ - public function xorBits(self $other) - { - $bitsLength = count($this->bits); - $otherBits = $other->getBitArray(); - - if ($bitsLength !== count($otherBits)) { - throw new Exception\InvalidArgumentException('Sizes don\'t match'); - } - - for ($i = 0; $i < $bitsLength; $i++) { - $this->bits[$i] = $this->bits[$i] ^ $otherBits[$i]; - } - } - - /** - * Converts the bit array to a byte array. - * - * @param integer $bitOffset - * @param integer $numBytes - * @return SplFixedArray - */ - public function toBytes($bitOffset, $numBytes) - { - $bytes = new SplFixedArray($numBytes); - - for ($i = 0; $i < $numBytes; $i++) { - $byte = 0; - - for ($j = 0; $j < 8; $j++) { - if ($this->get($bitOffset)) { - $byte |= 1 << (7 - $j); - } - - $bitOffset++; - } - - $bytes[$i] = $byte; - } - - return $bytes; - } - - /** - * Gets the internal bit array. - * - * @return SplFixedArray - */ - public function getBitArray() - { - return $this->bits; - } - - /** - * Reverses the array. - * - * @return void - */ - public function reverse() - { - $newBits = new SplFixedArray(count($this->bits)); - - for ($i = 0; $i < $this->size; $i++) { - if ($this->get($this->size - $i - 1)) { - $newBits[$i >> 5] = $newBits[$i >> 5] | (1 << ($i & 0x1f)); - } - } - - $this->bits = newBits; - } - - /** - * Returns a string representation of the bit array. - * - * @return string - */ - public function __toString() - { - $result = ''; - - for ($i = 0; $i < $this->size; $i++) { - if (($i & 0x07) === 0) { - $result .= ' '; - } - - $result .= $this->get($i) ? 'X' : '.'; - } - - return $result; - } -} diff --git a/vendor/bacon/bacon-qr-code/src/BaconQrCode/Common/BitMatrix.php b/vendor/bacon/bacon-qr-code/src/BaconQrCode/Common/BitMatrix.php deleted file mode 100644 index b930f88b..00000000 --- a/vendor/bacon/bacon-qr-code/src/BaconQrCode/Common/BitMatrix.php +++ /dev/null @@ -1,350 +0,0 @@ -width = $width; - $this->height = $height; - $this->rowSize = ($width + 31) >> 5; - $this->bits = new SplFixedArray($this->rowSize * $height); - } - - /** - * Gets the requested bit, where true means black. - * - * @param integer $x - * @param integer $y - * @return boolean - */ - public function get($x, $y) - { - $offset = $y * $this->rowSize + ($x >> 5); - return (BitUtils::unsignedRightShift($this->bits[$offset], ($x & 0x1f)) & 1) !== 0; - } - - /** - * Sets the given bit to true. - * - * @param integer $x - * @param integer $y - * @return void - */ - public function set($x, $y) - { - $offset = $y * $this->rowSize + ($x >> 5); - $this->bits[$offset] = $this->bits[$offset] | (1 << ($x & 0x1f)); - } - - /** - * Flips the given bit. - * - * @param integer $x - * @param integer $y - * @return void - */ - public function flip($x, $y) - { - $offset = $y * $this->rowSize + ($x >> 5); - $this->bits[$offset] = $this->bits[$offset] ^ (1 << ($x & 0x1f)); - } - - /** - * Clears all bits (set to false). - * - * @return void - */ - public function clear() - { - $max = count($this->bits); - - for ($i = 0; $i < $max; $i++) { - $this->bits[$i] = 0; - } - } - - /** - * Sets a square region of the bit matrix to true. - * - * @param integer $left - * @param integer $top - * @param integer $width - * @param integer $height - * @return void - */ - public function setRegion($left, $top, $width, $height) - { - if ($top < 0 || $left < 0) { - throw new Exception\InvalidArgumentException('Left and top must be non-negative'); - } - - if ($height < 1 || $width < 1) { - throw new Exception\InvalidArgumentException('Width and height must be at least 1'); - } - - $right = $left + $width; - $bottom = $top + $height; - - if ($bottom > $this->height || $right > $this->width) { - throw new Exception\InvalidArgumentException('The region must fit inside the matrix'); - } - - for ($y = $top; $y < $bottom; $y++) { - $offset = $y * $this->rowSize; - - for ($x = $left; $x < $right; $x++) { - $index = $offset + ($x >> 5); - $this->bits[$index] = $this->bits[$index] | (1 << ($x & 0x1f)); - } - } - } - - /** - * A fast method to retrieve one row of data from the matrix as a BitArray. - * - * @param integer $y - * @param BitArray $row - * @return BitArray - */ - public function getRow($y, BitArray $row = null) - { - if ($row === null || $row->getSize() < $this->width) { - $row = new BitArray($this->width); - } - - $offset = $y * $this->rowSize; - - for ($x = 0; $x < $this->rowSize; $x++) { - $row->setBulk($x << 5, $this->bits[$offset + $x]); - } - - return $row; - } - - /** - * Sets a row of data from a BitArray. - * - * @param integer $y - * @param BitArray $row - * @return void - */ - public function setRow($y, BitArray $row) - { - $bits = $row->getBitArray(); - - for ($i = 0; $i < $this->rowSize; $i++) { - $this->bits[$y * $this->rowSize + $i] = $bits[$i]; - } - } - - /** - * This is useful in detecting the enclosing rectangle of a 'pure' barcode. - * - * @return SplFixedArray - */ - public function getEnclosingRectangle() - { - $left = $this->width; - $top = $this->height; - $right = -1; - $bottom = -1; - - for ($y = 0; $y < $this->height; $y++) { - for ($x32 = 0; $x32 < $this->rowSize; $x32++) { - $bits = $this->bits[$y * $this->rowSize + $x32]; - - if ($bits !== 0) { - if ($y < $top) { - $top = $y; - } - - if ($y > $bottom) { - $bottom = $y; - } - - if ($x32 * 32 < $left) { - $bit = 0; - - while (($bits << (31 - $bit)) === 0) { - $bit++; - } - - if (($x32 * 32 + $bit) < $left) { - $left = $x32 * 32 + $bit; - } - } - } - - if ($x32 * 32 + 31 > $right) { - $bit = 31; - - while (BitUtils::unsignedRightShift($bits, $bit) === 0) { - $bit--; - } - - if (($x32 * 32 + $bit) > $right) { - $right = $x32 * 32 + $bit; - } - } - } - } - - $width = $right - $left; - $height = $bottom - $top; - - if ($width < 0 || $height < 0) { - return null; - } - - return SplFixedArray::fromArray(array($left, $top, $width, $height), false); - } - - /** - * Gets the most top left set bit. - * - * This is useful in detecting a corner of a 'pure' barcode. - * - * @return SplFixedArray - */ - public function getTopLeftOnBit() - { - $bitsOffset = 0; - - while ($bitsOffset < count($this->bits) && $this->bits[$bitsOffset] === 0) { - $bitsOffset++; - } - - if ($bitsOffset === count($this->bits)) { - return null; - } - - $x = intval($bitsOffset / $this->rowSize); - $y = ($bitsOffset % $this->rowSize) << 5; - - $bits = $this->bits[$bitsOffset]; - $bit = 0; - - while (($bits << (31 - $bit)) === 0) { - $bit++; - } - - $x += $bit; - - return SplFixedArray::fromArray(array($x, $y), false); - } - - /** - * Gets the most bottom right set bit. - * - * This is useful in detecting a corner of a 'pure' barcode. - * - * @return SplFixedArray - */ - public function getBottomRightOnBit() - { - $bitsOffset = count($this->bits) - 1; - - while ($bitsOffset >= 0 && $this->bits[$bitsOffset] === 0) { - $bitsOffset--; - } - - if ($bitsOffset < 0) { - return null; - } - - $x = intval($bitsOffset / $this->rowSize); - $y = ($bitsOffset % $this->rowSize) << 5; - - $bits = $this->bits[$bitsOffset]; - $bit = 0; - - while (BitUtils::unsignedRightShift($bits, $bit) === 0) { - $bit--; - } - - $x += $bit; - - return SplFixedArray::fromArray(array($x, $y), false); - } - - /** - * Gets the width of the matrix, - * - * @return integer - */ - public function getWidth() - { - return $this->width; - } - - /** - * Gets the height of the matrix. - * - * @return integer - */ - public function getHeight() - { - return $this->height; - } -} diff --git a/vendor/bacon/bacon-qr-code/src/BaconQrCode/Common/BitUtils.php b/vendor/bacon/bacon-qr-code/src/BaconQrCode/Common/BitUtils.php deleted file mode 100644 index a6412440..00000000 --- a/vendor/bacon/bacon-qr-code/src/BaconQrCode/Common/BitUtils.php +++ /dev/null @@ -1,51 +0,0 @@ ->>" in other - * languages. - * - * @param integer $a - * @param integer $b - * @return integer - */ - public static function unsignedRightShift($a, $b) - { - return ( - $a >= 0 - ? $a >> $b - : (($a & 0x7fffffff) >> $b) | (0x40000000 >> ($b - 1)) - ); - } - - /** - * Gets the number of trailing zeros. - * - * @param integer $i - * @return integer - */ - public static function numberOfTrailingZeros($i) - { - $lastPos = strrpos(str_pad(decbin($i), 32, '0', STR_PAD_LEFT), '1'); - - return $lastPos === false ? 32 : 31 - $lastPos; - } -} \ No newline at end of file diff --git a/vendor/bacon/bacon-qr-code/src/BaconQrCode/Common/CharacterSetEci.php b/vendor/bacon/bacon-qr-code/src/BaconQrCode/Common/CharacterSetEci.php deleted file mode 100644 index 77662360..00000000 --- a/vendor/bacon/bacon-qr-code/src/BaconQrCode/Common/CharacterSetEci.php +++ /dev/null @@ -1,134 +0,0 @@ - self::ISO8859_1, - 'ISO-8859-2' => self::ISO8859_2, - 'ISO-8859-3' => self::ISO8859_3, - 'ISO-8859-4' => self::ISO8859_4, - 'ISO-8859-5' => self::ISO8859_5, - 'ISO-8859-6' => self::ISO8859_6, - 'ISO-8859-7' => self::ISO8859_7, - 'ISO-8859-8' => self::ISO8859_8, - 'ISO-8859-9' => self::ISO8859_9, - 'ISO-8859-10' => self::ISO8859_10, - 'ISO-8859-11' => self::ISO8859_11, - 'ISO-8859-12' => self::ISO8859_12, - 'ISO-8859-13' => self::ISO8859_13, - 'ISO-8859-14' => self::ISO8859_14, - 'ISO-8859-15' => self::ISO8859_15, - 'ISO-8859-16' => self::ISO8859_16, - 'SHIFT-JIS' => self::SJIS, - 'WINDOWS-1250' => self::CP1250, - 'WINDOWS-1251' => self::CP1251, - 'WINDOWS-1252' => self::CP1252, - 'WINDOWS-1256' => self::CP1256, - 'UTF-16BE' => self::UNICODE_BIG_UNMARKED, - 'UTF-8' => self::UTF8, - 'ASCII' => self::ASCII, - 'GBK' => self::GB18030, - 'EUC-KR' => self::EUC_KR, - ); - - /** - * Additional possible values for character sets. - * - * @var array - */ - protected $additionalValues = array( - self::CP437 => 2, - self::ASCII => 170, - ); - - /** - * Gets character set ECI by value. - * - * @param string $name - * @return CharacterSetEci|null - */ - public static function getCharacterSetECIByValue($value) - { - if ($value < 0 || $value >= 900) { - throw new Exception\InvalidArgumentException('Value must be between 0 and 900'); - } - - if (false !== ($key = array_search($value, self::$additionalValues))) { - $value = $key; - } - - try { - return new self($value); - } catch (Exception\UnexpectedValueException $e) { - return null; - } - } - - /** - * Gets character set ECI by name. - * - * @param string $name - * @return CharacterSetEci|null - */ - public static function getCharacterSetECIByName($name) - { - $name = strtoupper($name); - - if (isset(self::$nameToEci[$name])) { - return new self(self::$nameToEci[$name]); - } - - return null; - } -} diff --git a/vendor/bacon/bacon-qr-code/src/BaconQrCode/Common/EcBlock.php b/vendor/bacon/bacon-qr-code/src/BaconQrCode/Common/EcBlock.php deleted file mode 100644 index cbcc2ba0..00000000 --- a/vendor/bacon/bacon-qr-code/src/BaconQrCode/Common/EcBlock.php +++ /dev/null @@ -1,65 +0,0 @@ -count = $count; - $this->dataCodewords = $dataCodewords; - } - - /** - * Returns how many times the block is used. - * - * @return integer - */ - public function getCount() - { - return $this->count; - } - - /** - * Returns the number of data codewords. - * - * @return integer - */ - public function getDataCodewords() - { - return $this->dataCodewords; - } -} diff --git a/vendor/bacon/bacon-qr-code/src/BaconQrCode/Common/EcBlocks.php b/vendor/bacon/bacon-qr-code/src/BaconQrCode/Common/EcBlocks.php deleted file mode 100644 index 87cef5d0..00000000 --- a/vendor/bacon/bacon-qr-code/src/BaconQrCode/Common/EcBlocks.php +++ /dev/null @@ -1,101 +0,0 @@ -ecCodewordsPerBlock = $ecCodewordsPerBlock; - - $this->ecBlocks = new SplFixedArray($ecb2 === null ? 1 : 2); - $this->ecBlocks[0] = $ecb1; - - if ($ecb2 !== null) { - $this->ecBlocks[1] = $ecb2; - } - } - - /** - * Gets the number of EC codewords per block. - * - * @return integer - */ - public function getEcCodewordsPerBlock() - { - return $this->ecCodewordsPerBlock; - } - - /** - * Gets the total number of EC block appearances. - * - * @return integer - */ - public function getNumBlocks() - { - $total = 0; - - foreach ($this->ecBlocks as $ecBlock) { - $total += $ecBlock->getCount(); - } - - return $total; - } - - /** - * Gets the total count of EC codewords. - * - * @return integer - */ - public function getTotalEcCodewords() - { - return $this->ecCodewordsPerBlock * $this->getNumBlocks(); - } - - /** - * Gets the EC blocks included in this collection. - * - * @return SplFixedArray - */ - public function getEcBlocks() - { - return $this->ecBlocks; - } -} diff --git a/vendor/bacon/bacon-qr-code/src/BaconQrCode/Common/ErrorCorrectionLevel.php b/vendor/bacon/bacon-qr-code/src/BaconQrCode/Common/ErrorCorrectionLevel.php deleted file mode 100644 index bd0a60a3..00000000 --- a/vendor/bacon/bacon-qr-code/src/BaconQrCode/Common/ErrorCorrectionLevel.php +++ /dev/null @@ -1,62 +0,0 @@ -value) { - case self::L: - return 0; - break; - - case self::M: - return 1; - break; - - case self::Q: - return 2; - break; - - case self::H: - return 3; - break; - } - } -} diff --git a/vendor/bacon/bacon-qr-code/src/BaconQrCode/Common/FormatInformation.php b/vendor/bacon/bacon-qr-code/src/BaconQrCode/Common/FormatInformation.php deleted file mode 100644 index 5ec9ffd4..00000000 --- a/vendor/bacon/bacon-qr-code/src/BaconQrCode/Common/FormatInformation.php +++ /dev/null @@ -1,236 +0,0 @@ -ecLevel = new ErrorCorrectionLevel(($formatInfo >> 3) & 0x3); - $this->dataMask = $formatInfo & 0x7; - } - - /** - * Checks how many bits are different between two integers. - * - * @param integer $a - * @param integer $b - * @return integer - */ - public static function numBitsDiffering($a, $b) - { - $a ^= $b; - - return ( - self::$bitsSetInHalfByte[$a & 0xf] - + self::$bitsSetInHalfByte[(BitUtils::unsignedRightShift($a, 4) & 0xf)] - + self::$bitsSetInHalfByte[(BitUtils::unsignedRightShift($a, 8) & 0xf)] - + self::$bitsSetInHalfByte[(BitUtils::unsignedRightShift($a, 12) & 0xf)] - + self::$bitsSetInHalfByte[(BitUtils::unsignedRightShift($a, 16) & 0xf)] - + self::$bitsSetInHalfByte[(BitUtils::unsignedRightShift($a, 20) & 0xf)] - + self::$bitsSetInHalfByte[(BitUtils::unsignedRightShift($a, 24) & 0xf)] - + self::$bitsSetInHalfByte[(BitUtils::unsignedRightShift($a, 28) & 0xf)] - ); - } - - /** - * Decodes format information. - * - * @param integer $maskedFormatInfo1 - * @param integer $maskedFormatInfo2 - * @return FormatInformation|null - */ - public static function decodeFormatInformation($maskedFormatInfo1, $maskedFormatInfo2) - { - $formatInfo = self::doDecodeFormatInformation($maskedFormatInfo1, $maskedFormatInfo2); - - if ($formatInfo !== null) { - return $formatInfo; - } - - // Should return null, but, some QR codes apparently do not mask this - // info. Try again by actually masking the pattern first. - return self::doDecodeFormatInformation( - $maskedFormatInfo1 ^ self::FORMAT_INFO_MASK_QR, - $maskedFormatInfo2 ^ self::FORMAT_INFO_MASK_QR - ); - } - - /** - * Internal method for decoding format information. - * - * @param integer $maskedFormatInfo1 - * @param integer $maskedFormatInfo2 - * @return FormatInformation|null - */ - protected static function doDecodeFormatInformation($maskedFormatInfo1, $maskedFormatInfo2) - { - $bestDifference = PHP_INT_MAX; - $bestFormatInfo = 0; - - foreach (self::$formatInfoDecodeLookup as $decodeInfo) { - $targetInfo = $decodeInfo[0]; - - if ($targetInfo === $maskedFormatInfo1 || $targetInfo === $maskedFormatInfo2) { - // Found an exact match - return new self($decodeInfo[1]); - } - - $bitsDifference = self::numBitsDiffering($maskedFormatInfo1, $targetInfo); - - if ($bitsDifference < $bestDifference) { - $bestFormatInfo = $decodeInfo[1]; - $bestDifference = $bitsDifference; - } - - if ($maskedFormatInfo1 !== $maskedFormatInfo2) { - // Also try the other option - $bitsDifference = self::numBitsDiffering($maskedFormatInfo2, $targetInfo); - - if ($bitsDifference < $bestDifference) { - $bestFormatInfo = $decodeInfo[1]; - $bestDifference = $bitsDifference; - } - } - } - - // Hamming distance of the 32 masked codes is 7, by construction, so - // <= 3 bits differing means we found a match. - if ($bestDifference <= 3) { - return new self($bestFormatInfo); - } - - return null; - } - - /** - * Gets the error correction level. - * - * @return ErrorCorrectionLevel - */ - public function getErrorCorrectionLevel() - { - return $this->ecLevel; - } - - /** - * Gets the data mask. - * - * @return integer - */ - public function getDataMask() - { - return $this->dataMask; - } - - /** - * Hashes the code of the EC level. - * - * @return integer - */ - public function hashCode() - { - return ($this->ecLevel->get() << 3) | $this->dataMask; - } - - /** - * Verifies if this instance equals another one. - * - * @param mixed $other - * @return boolean - */ - public function equals($other) { - if (!$other instanceof self) { - return false; - } - - return ( - $this->ecLevel->get() === $other->getErrorCorrectionLevel()->get() - && $this->dataMask === $other->getDataMask() - ); - } -} diff --git a/vendor/bacon/bacon-qr-code/src/BaconQrCode/Common/Mode.php b/vendor/bacon/bacon-qr-code/src/BaconQrCode/Common/Mode.php deleted file mode 100644 index 8faf344e..00000000 --- a/vendor/bacon/bacon-qr-code/src/BaconQrCode/Common/Mode.php +++ /dev/null @@ -1,70 +0,0 @@ - array(0, 0, 0), - self::NUMERIC => array(10, 12, 14), - self::ALPHANUMERIC => array(9, 11, 13), - self::STRUCTURED_APPEND => array(0, 0, 0), - self::BYTE => array(8, 16, 16), - self::ECI => array(0, 0, 0), - self::KANJI => array(8, 10, 12), - self::FNC1_FIRST_POSITION => array(0, 0, 0), - self::FNC1_SECOND_POSITION => array(0, 0, 0), - self::HANZI => array(8, 10, 12), - ); - - /** - * Gets the number of bits used in a specific QR code version. - * - * @param Version $version - * @return integer - */ - public function getCharacterCountBits(Version $version) - { - $number = $version->getVersionNumber(); - - if ($number <= 9) { - $offset = 0; - } elseif ($number <= 26) { - $offset = 1; - } else { - $offset = 2; - } - - return self::$characterCountBitsForVersions[$this->value][$offset]; - } -} diff --git a/vendor/bacon/bacon-qr-code/src/BaconQrCode/Common/ReedSolomonCodec.php b/vendor/bacon/bacon-qr-code/src/BaconQrCode/Common/ReedSolomonCodec.php deleted file mode 100644 index e8d45b94..00000000 --- a/vendor/bacon/bacon-qr-code/src/BaconQrCode/Common/ReedSolomonCodec.php +++ /dev/null @@ -1,476 +0,0 @@ - 8) { - throw new Exception\InvalidArgumentException('Symbol size must be between 0 and 8'); - } - - if ($firstRoot < 0 || $firstRoot >= (1 << $symbolSize)) { - throw new Exception\InvalidArgumentException('First root must be between 0 and ' . (1 << $symbolSize)); - } - - if ($numRoots < 0 || $numRoots >= (1 << $symbolSize)) { - throw new Exception\InvalidArgumentException('Num roots must be between 0 and ' . (1 << $symbolSize)); - } - - if ($padding < 0 || $padding >= ((1 << $symbolSize) - 1 - $numRoots)) { - throw new Exception\InvalidArgumentException('Padding must be between 0 and ' . ((1 << $symbolSize) - 1 - $numRoots)); - } - - $this->symbolSize = $symbolSize; - $this->blockSize = (1 << $symbolSize) - 1; - $this->padding = $padding; - $this->alphaTo = SplFixedArray::fromArray(array_fill(0, $this->blockSize + 1, 0), false); - $this->indexOf = SplFixedArray::fromArray(array_fill(0, $this->blockSize + 1, 0), false); - - // Generate galous field lookup table - $this->indexOf[0] = $this->blockSize; - $this->alphaTo[$this->blockSize] = 0; - - $sr = 1; - - for ($i = 0; $i < $this->blockSize; $i++) { - $this->indexOf[$sr] = $i; - $this->alphaTo[$i] = $sr; - - $sr <<= 1; - - if ($sr & (1 << $symbolSize)) { - $sr ^= $gfPoly; - } - - $sr &= $this->blockSize; - } - - if ($sr !== 1) { - throw new Exception\RuntimeException('Field generator polynomial is not primitive'); - } - - // Form RS code generator polynomial from its roots - $this->generatorPoly = SplFixedArray::fromArray(array_fill(0, $numRoots + 1, 0), false); - $this->firstRoot = $firstRoot; - $this->primitive = $primitive; - $this->numRoots = $numRoots; - - // Find prim-th root of 1, used in decoding - for ($iPrimitive = 1; ($iPrimitive % $primitive) !== 0; $iPrimitive += $this->blockSize); - $this->iPrimitive = intval($iPrimitive / $primitive); - - $this->generatorPoly[0] = 1; - - for ($i = 0, $root = $firstRoot * $primitive; $i < $numRoots; $i++, $root += $primitive) { - $this->generatorPoly[$i + 1] = 1; - - for ($j = $i; $j > 0; $j--) { - if ($this->generatorPoly[$j] !== 0) { - $this->generatorPoly[$j] = $this->generatorPoly[$j - 1] ^ $this->alphaTo[$this->modNn($this->indexOf[$this->generatorPoly[$j]] + $root)]; - } else { - $this->generatorPoly[$j] = $this->generatorPoly[$j - 1]; - } - } - - $this->generatorPoly[$j] = $this->alphaTo[$this->modNn($this->indexOf[$this->generatorPoly[0]] + $root)]; - } - - // Convert generator poly to index form for quicker encoding - for ($i = 0; $i <= $numRoots; $i++) { - $this->generatorPoly[$i] = $this->indexOf[$this->generatorPoly[$i]]; - } - } - - /** - * Encodes data and writes result back into parity array. - * - * @param SplFixedArray $data - * @param SplFixedArray $parity - * @return void - */ - public function encode(SplFixedArray $data, SplFixedArray $parity) - { - for ($i = 0; $i < $this->numRoots; $i++) { - $parity[$i] = 0; - } - - $iterations = $this->blockSize - $this->numRoots - $this->padding; - - for ($i = 0; $i < $iterations; $i++) { - $feedback = $this->indexOf[$data[$i] ^ $parity[0]]; - - if ($feedback !== $this->blockSize) { - // Feedback term is non-zero - $feedback = $this->modNn($this->blockSize - $this->generatorPoly[$this->numRoots] + $feedback); - - for ($j = 1; $j < $this->numRoots; $j++) { - $parity[$j] = $parity[$j] ^ $this->alphaTo[$this->modNn($feedback + $this->generatorPoly[$this->numRoots - $j])]; - } - } - - for ($j = 0; $j < $this->numRoots - 1; $j++) { - $parity[$j] = $parity[$j + 1]; - } - - if ($feedback !== $this->blockSize) { - $parity[$this->numRoots - 1] = $this->alphaTo[$this->modNn($feedback + $this->generatorPoly[0])]; - } else { - $parity[$this->numRoots - 1] = 0; - } - } - } - - /** - * Decodes received data. - * - * @param SplFixedArray $data - * @param SplFixedArray|null $erasures - * @return null|integer - */ - public function decode(SplFixedArray $data, SplFixedArray $erasures = null) - { - // This speeds up the initialization a bit. - $numRootsPlusOne = SplFixedArray::fromArray(array_fill(0, $this->numRoots + 1, 0), false); - $numRoots = SplFixedArray::fromArray(array_fill(0, $this->numRoots, 0), false); - - $lambda = clone $numRootsPlusOne; - $b = clone $numRootsPlusOne; - $t = clone $numRootsPlusOne; - $omega = clone $numRootsPlusOne; - $root = clone $numRoots; - $loc = clone $numRoots; - - $numErasures = ($erasures !== null ? count($erasures) : 0); - - // Form the Syndromes; i.e., evaluate data(x) at roots of g(x) - $syndromes = SplFixedArray::fromArray(array_fill(0, $this->numRoots, $data[0]), false); - - for ($i = 1; $i < $this->blockSize - $this->padding; $i++) { - for ($j = 0; $j < $this->numRoots; $j++) { - if ($syndromes[$j] === 0) { - $syndromes[$j] = $data[$i]; - } else { - $syndromes[$j] = $data[$i] ^ $this->alphaTo[ - $this->modNn($this->indexOf[$syndromes[$j]] + ($this->firstRoot + $j) * $this->primitive) - ]; - } - } - } - - // Convert syndromes to index form, checking for nonzero conditions - $syndromeError = 0; - - for ($i = 0; $i < $this->numRoots; $i++) { - $syndromeError |= $syndromes[$i]; - $syndromes[$i] = $this->indexOf[$syndromes[$i]]; - } - - if (!$syndromeError) { - // If syndrome is zero, data[] is a codeword and there are no errors - // to correct, so return data[] unmodified. - return 0; - } - - $lambda[0] = 1; - - if ($numErasures > 0) { - // Init lambda to be the erasure locator polynomial - $lambda[1] = $this->alphaTo[$this->modNn($this->primitive * ($this->blockSize - 1 - $erasures[0]))]; - - for ($i = 1; $i < $numErasures; $i++) { - $u = $this->modNn($this->primitive * ($this->blockSize - 1 - $erasures[$i])); - - for ($j = $i + 1; $j > 0; $j--) { - $tmp = $this->indexOf[$lambda[$j - 1]]; - - if ($tmp !== $this->blockSize) { - $lambda[$j] = $lambda[$j] ^ $this->alphaTo[$this->modNn($u + $tmp)]; - } - } - } - } - - for ($i = 0; $i <= $this->numRoots; $i++) { - $b[$i] = $this->indexOf[$lambda[$i]]; - } - - // Begin Berlekamp-Massey algorithm to determine error+erasure locator - // polynomial - $r = $numErasures; - $el = $numErasures; - - while (++$r <= $this->numRoots) { - // Compute discrepancy at the r-th step in poly form - $discrepancyR = 0; - - for ($i = 0; $i < $r; $i++) { - if ($lambda[$i] !== 0 && $syndromes[$r - $i - 1] !== $this->blockSize) { - $discrepancyR ^= $this->alphaTo[$this->modNn($this->indexOf[$lambda[$i]] + $syndromes[$r - $i - 1])]; - } - } - - $discrepancyR = $this->indexOf[$discrepancyR]; - - if ($discrepancyR === $this->blockSize) { - $tmp = $b->toArray(); - array_unshift($tmp, $this->blockSize); - array_pop($tmp); - $b = SplFixedArray::fromArray($tmp, false); - } else { - $t[0] = $lambda[0]; - - for ($i = 0; $i < $this->numRoots; $i++) { - if ($b[$i] !== $this->blockSize) { - $t[$i + 1] = $lambda[$i + 1] ^ $this->alphaTo[$this->modNn($discrepancyR + $b[$i])]; - } else { - $t[$i + 1] = $lambda[$i + 1]; - } - } - - if (2 * $el <= $r + $numErasures - 1) { - $el = $r + $numErasures - $el; - - for ($i = 0; $i <= $this->numRoots; $i++) { - $b[$i] = ( - $lambda[$i] === 0 - ? $this->blockSize - : $this->modNn($this->indexOf[$lambda[$i]] - $discrepancyR + $this->blockSize) - ); - } - } else { - $tmp = $b->toArray(); - array_unshift($tmp, $this->blockSize); - array_pop($tmp); - $b = SplFixedArray::fromArray($tmp, false); - } - - $lambda = clone $t; - } - } - - // Convert lambda to index form and compute deg(lambda(x)) - $degLambda = 0; - - for ($i = 0; $i <= $this->numRoots; $i++) { - $lambda[$i] = $this->indexOf[$lambda[$i]]; - - if ($lambda[$i] !== $this->blockSize) { - $degLambda = $i; - } - } - - // Find roots of the error+erasure locator polynomial by Chien search. - $reg = clone $lambda; - $reg[0] = 0; - $count = 0; - - for ($i = 1, $k = $this->iPrimitive - 1; $i <= $this->blockSize; $i++, $k = $this->modNn($k + $this->iPrimitive)) { - $q = 1; - - for ($j = $degLambda; $j > 0; $j--) { - if ($reg[$j] !== $this->blockSize) { - $reg[$j] = $this->modNn($reg[$j] + $j); - $q ^= $this->alphaTo[$reg[$j]]; - } - } - - if ($q !== 0) { - // Not a root - continue; - } - - // Store root (index-form) and error location number - $root[$count] = $i; - $loc[$count] = $k; - - if (++$count === $degLambda) { - break; - } - } - - if ($degLambda !== $count) { - // deg(lambda) unequal to number of roots: uncorreactable error - // detected - return null; - } - - // Compute err+eras evaluate poly omega(x) = s(x)*lambda(x) (modulo - // x**numRoots). In index form. Also find deg(omega). - $degOmega = $degLambda - 1; - - for ($i = 0; $i <= $degOmega; $i++) { - $tmp = 0; - - for ($j = $i; $j >= 0; $j--) { - if ($syndromes[$i - $j] !== $this->blockSize && $lambda[$j] !== $this->blockSize) { - $tmp ^= $this->alphaTo[$this->modNn($syndromes[$i - $j] + $lambda[$j])]; - } - } - - $omega[$i] = $this->indexOf[$tmp]; - } - - // Compute error values in poly-form. num1 = omega(inv(X(l))), num2 = - // inv(X(l))**(firstRoot-1) and den = lambda_pr(inv(X(l))) all in poly - // form. - for ($j = $count - 1; $j >= 0; $j--) { - $num1 = 0; - - for ($i = $degOmega; $i >= 0; $i--) { - if ($omega[$i] !== $this->blockSize) { - $num1 ^= $this->alphaTo[$this->modNn($omega[$i] + $i * $root[$j])]; - } - } - - $num2 = $this->alphaTo[$this->modNn($root[$j] * ($this->firstRoot - 1) + $this->blockSize)]; - $den = 0; - - // lambda[i+1] for i even is the formal derivativelambda_pr of - // lambda[i] - for ($i = min($degLambda, $this->numRoots - 1) & ~1; $i >= 0; $i -= 2) { - if ($lambda[$i + 1] !== $this->blockSize) { - $den ^= $this->alphaTo[$this->modNn($lambda[$i + 1] + $i * $root[$j])]; - } - } - - // Apply error to data - if ($num1 !== 0 && $loc[$j] >= $this->padding) { - $data[$loc[$j] - $this->padding] = $data[$loc[$j] - $this->padding] ^ ( - $this->alphaTo[ - $this->modNn( - $this->indexOf[$num1] + $this->indexOf[$num2] + $this->blockSize - $this->indexOf[$den] - ) - ] - ); - } - } - - if ($erasures !== null) { - if (count($erasures) < $count) { - $erasures->setSize($count); - } - - for ($i = 0; $i < $count; $i++) { - $erasures[$i] = $loc[$i]; - } - } - - return $count; - } - - /** - * Computes $x % GF_SIZE, where GF_SIZE is 2**GF_BITS - 1, without a slow - * divide. - * - * @param itneger $x - * @return integer - */ - protected function modNn($x) - { - while ($x >= $this->blockSize) { - $x -= $this->blockSize; - $x = ($x >> $this->symbolSize) + ($x & $this->blockSize); - } - - return $x; - } -} diff --git a/vendor/bacon/bacon-qr-code/src/BaconQrCode/Common/Version.php b/vendor/bacon/bacon-qr-code/src/BaconQrCode/Common/Version.php deleted file mode 100644 index d6986399..00000000 --- a/vendor/bacon/bacon-qr-code/src/BaconQrCode/Common/Version.php +++ /dev/null @@ -1,687 +0,0 @@ -versionNumber = $versionNumber; - $this->alignmentPatternCenters = $alignmentPatternCenters; - $this->errorCorrectionBlocks = $ecBlocks; - - $totalCodewords = 0; - $ecCodewords = $ecBlocks[0]->getEcCodewordsPerBlock(); - - foreach ($ecBlocks[0]->getEcBlocks() as $ecBlock) { - $totalCodewords += $ecBlock->getCount() * ($ecBlock->getDataCodewords() + $ecCodewords); - } - - $this->totalCodewords = $totalCodewords; - } - - /** - * Gets the version number. - * - * @return integer - */ - public function getVersionNumber() - { - return $this->versionNumber; - } - - /** - * Gets the alignment pattern centers. - * - * @return SplFixedArray - */ - public function getAlignmentPatternCenters() - { - return $this->alignmentPatternCenters; - } - - /** - * Gets the total number of codewords. - * - * @return integer - */ - public function getTotalCodewords() - { - return $this->totalCodewords; - } - - /** - * Gets the dimension for the current version. - * - * @return integer - */ - public function getDimensionForVersion() - { - return 17 + 4 * $this->versionNumber; - } - - /** - * Gets the number of EC blocks for a specific EC level. - * - * @param ErrorCorrectionLevel $ecLevel - * @return integer - */ - public function getEcBlocksForLevel(ErrorCorrectionLevel $ecLevel) - { - return $this->errorCorrectionBlocks[$ecLevel->getOrdinal()]; - } - - /** - * Gets a provisional version number for a specific dimension. - * - * @param integer $dimension - * @return Version - * @throws Exception\InvalidArgumentException - */ - public static function getProvisionalVersionForDimension($dimension) - { - if ($dimension % 4 !== 1) { - throw new Exception\InvalidArgumentException('Dimension is not 1 mod 4'); - } - - return self::getVersionForNumber(($dimension - 17) >> 2); - } - - /** - * Gets a version instance for a specific version number. - * - * @param integer $versionNumber - * @return Version - * @throws Exception\InvalidArgumentException - */ - public static function getVersionForNumber($versionNumber) - { - if ($versionNumber < 1 || $versionNumber > 40) { - throw new Exception\InvalidArgumentException('Version number must be between 1 and 40'); - } - - if (!isset(self::$versions[$versionNumber])) { - self::buildVersion($versionNumber); - } - - return self::$versions[$versionNumber - 1]; - } - - /** - * Decodes version information from an integer and returns the version. - * - * @param integer $versionBits - * @return Version|null - */ - public static function decodeVersionInformation($versionBits) - { - $bestDifference = PHP_INT_MAX; - $bestVersion = 0; - - foreach (self::$versionDecodeInfo as $i => $targetVersion) { - if ($targetVersion === $versionBits) { - return self::getVersionForNumber($i + 7); - } - - $bitsDifference = FormatInformation::numBitsDiffering($versionBits, $targetVersion); - - if ($bitsDifference < $bestDifference) { - $bestVersion = $i + 7; - $bestDifference = $bitsDifference; - } - } - - if ($bestDifference <= 3) { - return self::getVersionForNumber($bestVersion); - } - - return null; - } - - /** - * Builds the function pattern for the current version. - * - * @return BitMatrix - */ - public function buildFunctionPattern() - { - $dimension = $this->getDimensionForVersion(); - $bitMatrix = new BitMatrix($dimension); - - // Top left finder pattern + separator + format - $bitMatrix->setRegion(0, 0, 9, 9); - // Top right finder pattern + separator + format - $bitMatrix->setRegion($dimension - 8, 0, 8, 9); - // Bottom left finder pattern + separator + format - $bitMatrix->setRegion(0, $dimension - 8, 9, 8); - - // Alignment patterns - $max = count($this->alignmentPatternCenters); - - for ($x = 0; $x < $max; $x++) { - $i = $this->alignmentPatternCenters[$x] - 2; - - for ($y = 0; $y < $max; $y++) { - if (($x === 0 && ($y === 0 || $y === $max - 1)) || ($x === $max - 1 && $y === 0)) { - // No alignment patterns near the three finder paterns - continue; - } - - $bitMatrix->setRegion($this->alignmentPatternCenters[$y] - 2, $i, 5, 5); - } - } - - // Vertical timing pattern - $bitMatrix->setRegion(6, 9, 1, $dimension - 17); - // Horizontal timing pattern - $bitMatrix->setRegion(9, 6, $dimension - 17, 1); - - if ($this->versionNumber > 6) { - // Version info, top right - $bitMatrix->setRegion($dimension - 11, 0, 3, 6); - // Version info, bottom left - $bitMatrix->setRegion(0, $dimension - 11, 6, 3); - } - - return $bitMatrix; - } - - /** - * Returns a string representation for the version. - * - * @return string - */ - public function __toString() - { - return (string) $this->versionNumber; - } - - /** - * Build and cache a specific version. - * - * See ISO 18004:2006 6.5.1 Table 9. - * - * @param integer $versionNumber - * @return void - */ - protected static function buildVersion($versionNumber) - { - switch ($versionNumber) { - case 1: - $patterns = array(); - $ecBlocks = array( - new EcBlocks(7, new EcBlock(1, 19)), - new EcBlocks(10, new EcBlock(1, 16)), - new EcBlocks(13, new EcBlock(1, 13)), - new EcBlocks(17, new EcBlock(1, 9)), - ); - break; - - case 2: - $patterns = array(6, 18); - $ecBlocks = array( - new EcBlocks(10, new EcBlock(1, 34)), - new EcBlocks(16, new EcBlock(1, 28)), - new EcBlocks(22, new EcBlock(1, 22)), - new EcBlocks(28, new EcBlock(1, 16)), - ); - break; - - case 3: - $patterns = array(6, 22); - $ecBlocks = array( - new EcBlocks(15, new EcBlock(1, 55)), - new EcBlocks(26, new EcBlock(1, 44)), - new EcBlocks(18, new EcBlock(2, 17)), - new EcBlocks(22, new EcBlock(2, 13)), - ); - break; - - case 4: - $patterns = array(6, 26); - $ecBlocks = array( - new EcBlocks(20, new EcBlock(1, 80)), - new EcBlocks(18, new EcBlock(2, 32)), - new EcBlocks(26, new EcBlock(3, 24)), - new EcBlocks(16, new EcBlock(4, 9)), - ); - break; - - case 5: - $patterns = array(6, 30); - $ecBlocks = array( - new EcBlocks(26, new EcBlock(1, 108)), - new EcBlocks(24, new EcBlock(2, 43)), - new EcBlocks(18, new EcBlock(2, 15), new EcBlock(2, 16)), - new EcBlocks(22, new EcBlock(2, 11), new EcBlock(2, 12)), - ); - break; - - case 6: - $patterns = array(6, 34); - $ecBlocks = array( - new EcBlocks(18, new EcBlock(2, 68)), - new EcBlocks(16, new EcBlock(4, 27)), - new EcBlocks(24, new EcBlock(4, 19)), - new EcBlocks(28, new EcBlock(4, 15)), - ); - break; - - case 7: - $patterns = array(6, 22, 38); - $ecBlocks = array( - new EcBlocks(20, new EcBlock(2, 78)), - new EcBlocks(18, new EcBlock(4, 31)), - new EcBlocks(18, new EcBlock(2, 14), new EcBlock(4, 15)), - new EcBlocks(26, new EcBlock(4, 13), new EcBlock(1, 14)), - ); - break; - - case 8: - $patterns = array(6, 24, 42); - $ecBlocks = array( - new EcBlocks(24, new EcBlock(2, 97)), - new EcBlocks(22, new EcBlock(2, 38), new EcBlock(2, 39)), - new EcBlocks(22, new EcBlock(4, 18), new EcBlock(2, 19)), - new EcBlocks(26, new EcBlock(4, 14), new EcBlock(2, 15)), - ); - break; - - case 9: - $patterns = array(6, 26, 46); - $ecBlocks = array( - new EcBlocks(30, new EcBlock(2, 116)), - new EcBlocks(22, new EcBlock(3, 36), new EcBlock(2, 37)), - new EcBlocks(20, new EcBlock(4, 16), new EcBlock(4, 17)), - new EcBlocks(24, new EcBlock(4, 12), new EcBlock(4, 13)), - ); - break; - - case 10: - $patterns = array(6, 28, 50); - $ecBlocks = array( - new EcBlocks(18, new EcBlock(2, 68), new EcBlock(2, 69)), - new EcBlocks(26, new EcBlock(4, 43), new EcBlock(1, 44)), - new EcBlocks(24, new EcBlock(6, 19), new EcBlock(2, 20)), - new EcBlocks(28, new EcBlock(6, 15), new EcBlock(2, 16)), - ); - break; - - case 11: - $patterns = array(6, 30, 54); - $ecBlocks = array( - new EcBlocks(20, new EcBlock(4, 81)), - new EcBlocks(30, new EcBlock(1, 50), new EcBlock(4, 51)), - new EcBlocks(28, new EcBlock(4, 22), new EcBlock(4, 23)), - new EcBlocks(24, new EcBlock(3, 12), new EcBlock(8, 13)), - ); - break; - - case 12: - $patterns = array(6, 32, 58); - $ecBlocks = array( - new EcBlocks(24, new EcBlock(2, 92), new EcBlock(2, 93)), - new EcBlocks(22, new EcBlock(6, 36), new EcBlock(2, 37)), - new EcBlocks(26, new EcBlock(4, 20), new EcBlock(6, 21)), - new EcBlocks(28, new EcBlock(7, 14), new EcBlock(4, 15)), - ); - break; - - case 13: - $patterns = array(6, 34, 62); - $ecBlocks = array( - new EcBlocks(26, new EcBlock(4, 107)), - new EcBlocks(22, new EcBlock(8, 37), new EcBlock(1, 38)), - new EcBlocks(24, new EcBlock(8, 20), new EcBlock(4, 21)), - new EcBlocks(22, new EcBlock(12, 11), new EcBlock(4, 12)), - ); - break; - - case 14: - $patterns = array(6, 26, 46, 66); - $ecBlocks = array( - new EcBlocks(30, new EcBlock(3, 115), new EcBlock(1, 116)), - new EcBlocks(24, new EcBlock(4, 40), new EcBlock(5, 41)), - new EcBlocks(20, new EcBlock(11, 16), new EcBlock(5, 17)), - new EcBlocks(24, new EcBlock(11, 12), new EcBlock(5, 13)), - ); - break; - - case 15: - $patterns = array(6, 26, 48, 70); - $ecBlocks = array( - new EcBlocks(22, new EcBlock(5, 87), new EcBlock(1, 88)), - new EcBlocks(24, new EcBlock(5, 41), new EcBlock(5, 42)), - new EcBlocks(30, new EcBlock(5, 24), new EcBlock(7, 25)), - new EcBlocks(24, new EcBlock(11, 12), new EcBlock(7, 13)), - ); - break; - - case 16: - $patterns = array(6, 26, 50, 74); - $ecBlocks = array( - new EcBlocks(24, new EcBlock(5, 98), new EcBlock(1, 99)), - new EcBlocks(28, new EcBlock(7, 45), new EcBlock(3, 46)), - new EcBlocks(24, new EcBlock(15, 19), new EcBlock(2, 20)), - new EcBlocks(30, new EcBlock(3, 15), new EcBlock(13, 16)), - ); - break; - - case 17: - $patterns = array(6, 30, 54, 78); - $ecBlocks = array( - new EcBlocks(28, new EcBlock(1, 107), new EcBlock(5, 108)), - new EcBlocks(28, new EcBlock(10, 46), new EcBlock(1, 47)), - new EcBlocks(28, new EcBlock(1, 22), new EcBlock(15, 23)), - new EcBlocks(28, new EcBlock(2, 14), new EcBlock(17, 15)), - ); - break; - - case 18: - $patterns = array(6, 30, 56, 82); - $ecBlocks = array( - new EcBlocks(30, new EcBlock(5, 120), new EcBlock(1, 121)), - new EcBlocks(26, new EcBlock(9, 43), new EcBlock(4, 44)), - new EcBlocks(28, new EcBlock(17, 22), new EcBlock(1, 23)), - new EcBlocks(28, new EcBlock(2, 14), new EcBlock(19, 15)), - ); - break; - - case 19: - $patterns = array(6, 30, 58, 86); - $ecBlocks = array( - new EcBlocks(28, new EcBlock(3, 113), new EcBlock(4, 114)), - new EcBlocks(26, new EcBlock(3, 44), new EcBlock(11, 45)), - new EcBlocks(26, new EcBlock(17, 21), new EcBlock(4, 22)), - new EcBlocks(26, new EcBlock(9, 13), new EcBlock(16, 14)), - ); - break; - - case 20: - $patterns = array(6, 34, 62, 90); - $ecBlocks = array( - new EcBlocks(28, new EcBlock(3, 107), new EcBlock(5, 108)), - new EcBlocks(26, new EcBlock(3, 41), new EcBlock(13, 42)), - new EcBlocks(30, new EcBlock(15, 24), new EcBlock(5, 25)), - new EcBlocks(28, new EcBlock(15, 15), new EcBlock(10, 16)), - ); - break; - - case 21: - $patterns = array(6, 28, 50, 72, 94); - $ecBlocks = array( - new EcBlocks(28, new EcBlock(4, 116), new EcBlock(4, 117)), - new EcBlocks(26, new EcBlock(17, 42)), - new EcBlocks(28, new EcBlock(17, 22), new EcBlock(6, 23)), - new EcBlocks(30, new EcBlock(19, 16), new EcBlock(6, 17)), - ); - break; - - case 22: - $patterns = array(6, 26, 50, 74, 98); - $ecBlocks = array( - new EcBlocks(28, new EcBlock(2, 111), new EcBlock(7, 112)), - new EcBlocks(28, new EcBlock(17, 46)), - new EcBlocks(30, new EcBlock(7, 24), new EcBlock(16, 25)), - new EcBlocks(24, new EcBlock(34, 13)), - ); - break; - - case 23: - $patterns = array(6, 30, 54, 78, 102); - $ecBlocks = array( - new EcBlocks(30, new EcBlock(4, 121), new EcBlock(5, 122)), - new EcBlocks(28, new EcBlock(4, 47), new EcBlock(14, 48)), - new EcBlocks(30, new EcBlock(11, 24), new EcBlock(14, 25)), - new EcBlocks(30, new EcBlock(16, 15), new EcBlock(14, 16)), - ); - break; - - case 24: - $patterns = array(6, 28, 54, 80, 106); - $ecBlocks = array( - new EcBlocks(30, new EcBlock(6, 117), new EcBlock(4, 118)), - new EcBlocks(28, new EcBlock(6, 45), new EcBlock(14, 46)), - new EcBlocks(30, new EcBlock(11, 24), new EcBlock(16, 25)), - new EcBlocks(30, new EcBlock(30, 16), new EcBlock(2, 17)), - ); - break; - - case 25: - $patterns = array(6, 32, 58, 84, 110); - $ecBlocks = array( - new EcBlocks(26, new EcBlock(8, 106), new EcBlock(4, 107)), - new EcBlocks(28, new EcBlock(8, 47), new EcBlock(13, 48)), - new EcBlocks(30, new EcBlock(7, 24), new EcBlock(22, 25)), - new EcBlocks(30, new EcBlock(22, 15), new EcBlock(13, 16)), - ); - break; - - case 26: - $patterns = array(6, 30, 58, 86, 114); - $ecBlocks = array( - new EcBlocks(28, new EcBlock(10, 114), new EcBlock(2, 115)), - new EcBlocks(28, new EcBlock(19, 46), new EcBlock(4, 47)), - new EcBlocks(28, new EcBlock(28, 22), new EcBlock(6, 23)), - new EcBlocks(30, new EcBlock(33, 16), new EcBlock(4, 17)), - ); - break; - - case 27: - $patterns = array(6, 34, 62, 90, 118); - $ecBlocks = array( - new EcBlocks(30, new EcBlock(8, 122), new EcBlock(4, 123)), - new EcBlocks(28, new EcBlock(22, 45), new EcBlock(3, 46)), - new EcBlocks(30, new EcBlock(8, 23), new EcBlock(26, 24)), - new EcBlocks(30, new EcBlock(12, 15), new EcBlock(28, 16)), - ); - break; - - case 28: - $patterns = array(6, 26, 50, 74, 98, 122); - $ecBlocks = array( - new EcBlocks(30, new EcBlock(3, 117), new EcBlock(10, 118)), - new EcBlocks(28, new EcBlock(3, 45), new EcBlock(23, 46)), - new EcBlocks(30, new EcBlock(4, 24), new EcBlock(31, 25)), - new EcBlocks(30, new EcBlock(11, 15), new EcBlock(31, 16)), - ); - break; - - case 29: - $patterns = array(6, 30, 54, 78, 102, 126); - $ecBlocks = array( - new EcBlocks(30, new EcBlock(7, 116), new EcBlock(7, 117)), - new EcBlocks(28, new EcBlock(21, 45), new EcBlock(7, 46)), - new EcBlocks(30, new EcBlock(1, 23), new EcBlock(37, 24)), - new EcBlocks(30, new EcBlock(19, 15), new EcBlock(26, 16)), - ); - break; - - case 30: - $patterns = array(6, 26, 52, 78, 104, 130); - $ecBlocks = array( - new EcBlocks(30, new EcBlock(5, 115), new EcBlock(10, 116)), - new EcBlocks(28, new EcBlock(19, 47), new EcBlock(10, 48)), - new EcBlocks(30, new EcBlock(15, 24), new EcBlock(25, 25)), - new EcBlocks(30, new EcBlock(23, 15), new EcBlock(25, 16)), - ); - break; - - case 31: - $patterns = array(6, 30, 56, 82, 108, 134); - $ecBlocks = array( - new EcBlocks(30, new EcBlock(13, 115), new EcBlock(3, 116)), - new EcBlocks(28, new EcBlock(2, 46), new EcBlock(29, 47)), - new EcBlocks(30, new EcBlock(42, 24), new EcBlock(1, 25)), - new EcBlocks(30, new EcBlock(23, 15), new EcBlock(28, 16)), - ); - break; - - case 32: - $patterns = array(6, 34, 60, 86, 112, 138); - $ecBlocks = array( - new EcBlocks(30, new EcBlock(17, 115)), - new EcBlocks(28, new EcBlock(10, 46), new EcBlock(23, 47)), - new EcBlocks(30, new EcBlock(10, 24), new EcBlock(35, 25)), - new EcBlocks(30, new EcBlock(19, 15), new EcBlock(35, 16)), - ); - break; - - case 33: - $patterns = array(6, 30, 58, 86, 114, 142); - $ecBlocks = array( - new EcBlocks(30, new EcBlock(17, 115), new EcBlock(1, 116)), - new EcBlocks(28, new EcBlock(14, 46), new EcBlock(21, 47)), - new EcBlocks(30, new EcBlock(29, 24), new EcBlock(19, 25)), - new EcBlocks(30, new EcBlock(11, 15), new EcBlock(46, 16)), - ); - break; - - case 34: - $patterns = array(6, 34, 62, 90, 118, 146); - $ecBlocks = array( - new EcBlocks(30, new EcBlock(13, 115), new EcBlock(6, 116)), - new EcBlocks(28, new EcBlock(14, 46), new EcBlock(23, 47)), - new EcBlocks(30, new EcBlock(44, 24), new EcBlock(7, 25)), - new EcBlocks(30, new EcBlock(59, 16), new EcBlock(1, 17)), - ); - break; - - case 35: - $patterns = array(6, 30, 54, 78, 102, 126, 150); - $ecBlocks = array( - new EcBlocks(30, new EcBlock(12, 121), new EcBlock(7, 122)), - new EcBlocks(28, new EcBlock(12, 47), new EcBlock(26, 48)), - new EcBlocks(30, new EcBlock(39, 24), new EcBlock(14, 25)), - new EcBlocks(30, new EcBlock(22, 15), new EcBlock(41, 16)), - ); - break; - - case 36: - $patterns = array(6, 24, 50, 76, 102, 128, 154); - $ecBlocks = array( - new EcBlocks(30, new EcBlock(6, 121), new EcBlock(14, 122)), - new EcBlocks(28, new EcBlock(6, 47), new EcBlock(34, 48)), - new EcBlocks(30, new EcBlock(46, 24), new EcBlock(10, 25)), - new EcBlocks(30, new EcBlock(2, 15), new EcBlock(64, 16)), - ); - break; - - case 37: - $patterns = array(6, 28, 54, 80, 106, 132, 158); - $ecBlocks = array( - new EcBlocks(30, new EcBlock(17, 122), new EcBlock(4, 123)), - new EcBlocks(28, new EcBlock(29, 46), new EcBlock(14, 47)), - new EcBlocks(30, new EcBlock(49, 24), new EcBlock(10, 25)), - new EcBlocks(30, new EcBlock(24, 15), new EcBlock(46, 16)), - ); - break; - - case 38: - $patterns = array(6, 32, 58, 84, 110, 136, 162); - $ecBlocks = array( - new EcBlocks(30, new EcBlock(4, 122), new EcBlock(18, 123)), - new EcBlocks(28, new EcBlock(13, 46), new EcBlock(32, 47)), - new EcBlocks(30, new EcBlock(48, 24), new EcBlock(14, 25)), - new EcBlocks(30, new EcBlock(42, 15), new EcBlock(32, 16)), - ); - break; - - case 39: - $patterns = array(6, 26, 54, 82, 110, 138, 166); - $ecBlocks = array( - new EcBlocks(30, new EcBlock(20, 117), new EcBlock(4, 118)), - new EcBlocks(28, new EcBlock(40, 47), new EcBlock(7, 48)), - new EcBlocks(30, new EcBlock(43, 24), new EcBlock(22, 25)), - new EcBlocks(30, new EcBlock(10, 15), new EcBlock(67, 16)), - ); - break; - - case 40: - $patterns = array(6, 30, 58, 86, 114, 142, 170); - $ecBlocks = array( - new EcBlocks(30, new EcBlock(19, 118), new EcBlock(6, 119)), - new EcBlocks(28, new EcBlock(18, 47), new EcBlock(31, 48)), - new EcBlocks(30, new EcBlock(34, 24), new EcBlock(34, 25)), - new EcBlocks(30, new EcBlock(20, 15), new EcBlock(61, 16)), - ); - break; - } - - self::$versions[$versionNumber - 1] = new self( - $versionNumber, - SplFixedArray::fromArray($patterns, false), - SplFixedArray::fromArray($ecBlocks, false) - ); - } -} diff --git a/vendor/bacon/bacon-qr-code/src/BaconQrCode/Encoder/BlockPair.php b/vendor/bacon/bacon-qr-code/src/BaconQrCode/Encoder/BlockPair.php deleted file mode 100644 index 090db297..00000000 --- a/vendor/bacon/bacon-qr-code/src/BaconQrCode/Encoder/BlockPair.php +++ /dev/null @@ -1,64 +0,0 @@ -dataBytes = $data; - $this->errorCorrectionBytes = $errorCorrection; - } - - /** - * Gets the data bytes. - * - * @return SplFixedArray - */ - public function getDataBytes() - { - return $this->dataBytes; - } - - /** - * Gets the error correction bytes. - * - * @return SplFixedArray - */ - public function getErrorCorrectionBytes() - { - return $this->errorCorrectionBytes; - } -} diff --git a/vendor/bacon/bacon-qr-code/src/BaconQrCode/Encoder/ByteMatrix.php b/vendor/bacon/bacon-qr-code/src/BaconQrCode/Encoder/ByteMatrix.php deleted file mode 100644 index a378f083..00000000 --- a/vendor/bacon/bacon-qr-code/src/BaconQrCode/Encoder/ByteMatrix.php +++ /dev/null @@ -1,158 +0,0 @@ -height = $height; - $this->width = $width; - $this->bytes = new SplFixedArray($height); - - for ($y = 0; $y < $height; $y++) { - $this->bytes[$y] = new SplFixedArray($width); - } - } - - /** - * Gets the width of the matrix. - * - * @return integer - */ - public function getWidth() - { - return $this->width; - } - - /** - * Gets the height of the matrix. - * - * @return integer - */ - public function getHeight() - { - return $this->height; - } - - /** - * Gets the internal representation of the matrix. - * - * @return SplFixedArray - */ - public function getArray() - { - return $this->bytes; - } - - /** - * Gets the byte for a specific position. - * - * @param integer $x - * @param integer $y - * @return integer - */ - public function get($x, $y) - { - return $this->bytes[$y][$x]; - } - - /** - * Sets the byte for a specific position. - * - * @param integer $x - * @param integer $y - * @param integer $value - * @return void - */ - public function set($x, $y, $value) - { - $this->bytes[$y][$x] = (int) $value; - } - - /** - * Clears the matrix with a specific value. - * - * @param integer $value - * @return void - */ - public function clear($value) - { - for ($y = 0; $y < $this->height; $y++) { - for ($x = 0; $x < $this->width; $x++) { - $this->bytes[$y][$x] = $value; - } - } - } - - /** - * Returns a string representation of the matrix. - * - * @return string - */ - public function __toString() - { - $result = ''; - - for ($y = 0; $y < $this->height; $y++) { - for ($x = 0; $x < $this->width; $x++) { - switch ($this->bytes[$y][$x]) { - case 0: - $result .= ' 0'; - break; - - case 1: - $result .= ' 1'; - break; - - default: - $result .= ' '; - break; - } - } - - $result .= "\n"; - } - - return $result; - } -} diff --git a/vendor/bacon/bacon-qr-code/src/BaconQrCode/Encoder/Encoder.php b/vendor/bacon/bacon-qr-code/src/BaconQrCode/Encoder/Encoder.php deleted file mode 100644 index c8efc35d..00000000 --- a/vendor/bacon/bacon-qr-code/src/BaconQrCode/Encoder/Encoder.php +++ /dev/null @@ -1,687 +0,0 @@ -get() === Mode::BYTE && $encoding !== self::DEFAULT_BYTE_MODE_ECODING) { - $eci = CharacterSetEci::getCharacterSetEciByName($encoding); - - if ($eci !== null) { - self::appendEci($eci, $headerBits); - } - } - - // (With ECI in place,) Write the mode marker - self::appendModeInfo($mode, $headerBits); - - // Collect data within the main segment, separately, to count its size - // if needed. Don't add it to main payload yet. - $dataBits = new BitArray(); - self::appendBytes($content, $mode, $dataBits, $encoding); - - // Hard part: need to know version to know how many bits length takes. - // But need to know how many bits it takes to know version. First we - // take a guess at version by assuming version will be the minimum, 1: - $provisionalBitsNeeded = $headerBits->getSize() - + $mode->getCharacterCountBits(Version::getVersionForNumber(1)) - + $dataBits->getSize(); - $provisionalVersion = self::chooseVersion($provisionalBitsNeeded, $ecLevel); - - // Use that guess to calculate the right version. I am still not sure - // this works in 100% of cases. - $bitsNeeded = $headerBits->getSize() - + $mode->getCharacterCountBits($provisionalVersion) - + $dataBits->getSize(); - $version = self::chooseVersion($bitsNeeded, $ecLevel); - - $headerAndDataBits = new BitArray(); - $headerAndDataBits->appendBitArray($headerBits); - - // Find "length" of main segment and write it. - $numLetters = ($mode->get() === Mode::BYTE ? $dataBits->getSizeInBytes() : strlen($content)); - self::appendLengthInfo($numLetters, $version, $mode, $headerAndDataBits); - - // Put data together into the overall payload. - $headerAndDataBits->appendBitArray($dataBits); - $ecBlocks = $version->getEcBlocksForLevel($ecLevel); - $numDataBytes = $version->getTotalCodewords() - $ecBlocks->getTotalEcCodewords(); - - // Terminate the bits properly. - self::terminateBits($numDataBytes, $headerAndDataBits); - - // Interleave data bits with error correction code. - $finalBits = self::interleaveWithEcBytes( - $headerAndDataBits, - $version->getTotalCodewords(), - $numDataBytes, - $ecBlocks->getNumBlocks() - ); - - $qrCode = new QrCode(); - $qrCode->setErrorCorrectionLevel($ecLevel); - $qrCode->setMode($mode); - $qrCode->setVersion($version); - - // Choose the mask pattern and set to "qrCode". - $dimension = $version->getDimensionForVersion(); - $matrix = new ByteMatrix($dimension, $dimension); - $maskPattern = self::chooseMaskPattern($finalBits, $ecLevel, $version, $matrix); - $qrCode->setMaskPattern($maskPattern); - - // Build the matrix and set it to "qrCode". - MatrixUtil::buildMatrix($finalBits, $ecLevel, $version, $maskPattern, $matrix); - $qrCode->setMatrix($matrix); - - return $qrCode; - } - - /** - * Gets the alphanumeric code for a byte. - * - * @param string|integer $code - * @return integer - */ - protected static function getAlphanumericCode($code) - { - $code = (is_string($code) ? ord($code) : $code); - - if (isset(self::$alphanumericTable[$code])) { - return self::$alphanumericTable[$code]; - } - - return -1; - } - - /** - * Chooses the best mode for a given content. - * - * @param string $content - * @param string $encoding - * @return Mode - */ - protected static function chooseMode($content, $encoding = null) - { - if (strcasecmp($encoding, 'SHIFT-JIS') === 0) { - return self::isOnlyDoubleByteKanji($content) ? new Mode(Mode::KANJI) : new Mode(Mode::BYTE); - } - - $hasNumeric = false; - $hasAlphanumeric = false; - $contentLength = strlen($content); - - for ($i = 0; $i < $contentLength; $i++) { - $char = $content[$i]; - - if (ctype_digit($char)) { - $hasNumeric = true; - } elseif (self::getAlphanumericCode($char) !== -1) { - $hasAlphanumeric = true; - } else { - return new Mode(Mode::BYTE); - } - } - - if ($hasAlphanumeric) { - return new Mode(Mode::ALPHANUMERIC); - } elseif ($hasNumeric) { - return new Mode(Mode::NUMERIC); - } - - return new Mode(Mode::BYTE); - } - - /** - * Calculates the mask penalty for a matrix. - * - * @param ByteMatrix $matrix - * @return integer - */ - protected static function calculateMaskPenalty(ByteMatrix $matrix) - { - return ( - MaskUtil::applyMaskPenaltyRule1($matrix) - + MaskUtil::applyMaskPenaltyRule2($matrix) - + MaskUtil::applyMaskPenaltyRule3($matrix) - + MaskUtil::applyMaskPenaltyRule4($matrix) - ); - } - - /** - * Chooses the best mask pattern for a matrix. - * - * @param BitArray $bits - * @param ErrorCorrectionLevel $ecLevel - * @param Version $version - * @param ByteMatrix $matrix - * @return integer - */ - protected static function chooseMaskPattern( - BitArray $bits, - ErrorCorrectionLevel $ecLevel, - Version $version, - ByteMatrix $matrix - ) { - $minPenality = PHP_INT_MAX; - $bestMaskPattern = -1; - - for ($maskPattern = 0; $maskPattern < QrCode::NUM_MASK_PATTERNS; $maskPattern++) { - MatrixUtil::buildMatrix($bits, $ecLevel, $version, $maskPattern, $matrix); - $penalty = self::calculateMaskPenalty($matrix); - - if ($penalty < $minPenality) { - $minPenality = $penalty; - $bestMaskPattern = $maskPattern; - } - } - - return $bestMaskPattern; - } - - /** - * Chooses the best version for the input. - * - * @param integer $numInputBits - * @param ErrorCorrectionLevel $ecLevel - * @return Version - * @throws Exception\WriterException - */ - protected static function chooseVersion($numInputBits, ErrorCorrectionLevel $ecLevel) - { - for ($versionNum = 1; $versionNum <= 40; $versionNum++) { - $version = Version::getVersionForNumber($versionNum); - $numBytes = $version->getTotalCodewords(); - - $ecBlocks = $version->getEcBlocksForLevel($ecLevel); - $numEcBytes = $ecBlocks->getTotalEcCodewords(); - - $numDataBytes = $numBytes - $numEcBytes; - $totalInputBytes = intval(($numInputBits + 8) / 8); - - if ($numDataBytes >= $totalInputBytes) { - return $version; - } - } - - throw new Exception\WriterException('Data too big'); - } - - /** - * Terminates the bits in a bit array. - * - * @param integer $numDataBytes - * @param BitArray $bits - * @throws Exception\WriterException - */ - protected static function terminateBits($numDataBytes, BitArray $bits) - { - $capacity = $numDataBytes << 3; - - if ($bits->getSize() > $capacity) { - throw new Exception\WriterException('Data bits cannot fit in the QR code'); - } - - for ($i = 0; $i < 4 && $bits->getSize() < $capacity; $i++) { - $bits->appendBit(false); - } - - $numBitsInLastByte = $bits->getSize() & 0x7; - - if ($numBitsInLastByte > 0) { - for ($i = $numBitsInLastByte; $i < 8; $i++) { - $bits->appendBit(false); - } - } - - $numPaddingBytes = $numDataBytes - $bits->getSizeInBytes(); - - for ($i = 0; $i < $numPaddingBytes; $i++) { - $bits->appendBits(($i & 0x1) === 0 ? 0xec : 0x11, 8); - } - - if ($bits->getSize() !== $capacity) { - throw new Exception\WriterException('Bits size does not equal capacity'); - } - } - - /** - * Gets number of data- and EC bytes for a block ID. - * - * @param integer $numTotalBytes - * @param integer $numDataBytes - * @param integer $numRsBlocks - * @param integer $blockId - * @return array - * @throws Exception\WriterException - */ - protected static function getNumDataBytesAndNumEcBytesForBlockId( - $numTotalBytes, - $numDataBytes, - $numRsBlocks, - $blockId - ) { - if ($blockId >= $numRsBlocks) { - throw new Exception\WriterException('Block ID too large'); - } - - $numRsBlocksInGroup2 = $numTotalBytes % $numRsBlocks; - $numRsBlocksInGroup1 = $numRsBlocks - $numRsBlocksInGroup2; - $numTotalBytesInGroup1 = intval($numTotalBytes / $numRsBlocks); - $numTotalBytesInGroup2 = $numTotalBytesInGroup1 + 1; - $numDataBytesInGroup1 = intval($numDataBytes / $numRsBlocks); - $numDataBytesInGroup2 = $numDataBytesInGroup1 + 1; - $numEcBytesInGroup1 = $numTotalBytesInGroup1 - $numDataBytesInGroup1; - $numEcBytesInGroup2 = $numTotalBytesInGroup2 - $numDataBytesInGroup2; - - if ($numEcBytesInGroup1 !== $numEcBytesInGroup2) { - throw new Exception\WriterException('EC bytes mismatch'); - } - - if ($numRsBlocks !== $numRsBlocksInGroup1 + $numRsBlocksInGroup2) { - throw new Exception\WriterException('RS blocks mismatch'); - } - - if ($numTotalBytes !== - (($numDataBytesInGroup1 + $numEcBytesInGroup1) * $numRsBlocksInGroup1) - + (($numDataBytesInGroup2 + $numEcBytesInGroup2) * $numRsBlocksInGroup2) - ) { - throw new Exception\WriterException('Total bytes mismatch'); - } - - if ($blockId < $numRsBlocksInGroup1) { - return array($numDataBytesInGroup1, $numEcBytesInGroup1); - } else { - return array($numDataBytesInGroup2, $numEcBytesInGroup2); - } - } - - /** - * Interleaves data with EC bytes. - * - * @param BitArray $bits - * @param integer $numTotalBytes - * @param integer $numDataBytes - * @param integer $numRsBlocks - * @return BitArray - * @throws Exception\WriterException - */ - protected static function interleaveWithEcBytes(BitArray $bits, $numTotalBytes, $numDataBytes, $numRsBlocks) - { - if ($bits->getSizeInBytes() !== $numDataBytes) { - throw new Exception\WriterException('Number of bits and data bytes does not match'); - } - - $dataBytesOffset = 0; - $maxNumDataBytes = 0; - $maxNumEcBytes = 0; - - $blocks = new SplFixedArray($numRsBlocks); - - for ($i = 0; $i < $numRsBlocks; $i++) { - list($numDataBytesInBlock, $numEcBytesInBlock) = self::getNumDataBytesAndNumEcBytesForBlockId( - $numTotalBytes, - $numDataBytes, - $numRsBlocks, - $i - ); - - $size = $numDataBytesInBlock; - $dataBytes = $bits->toBytes(8 * $dataBytesOffset, $size); - $ecBytes = self::generateEcBytes($dataBytes, $numEcBytesInBlock); - $blocks[$i] = new BlockPair($dataBytes, $ecBytes); - - $maxNumDataBytes = max($maxNumDataBytes, $size); - $maxNumEcBytes = max($maxNumEcBytes, count($ecBytes)); - $dataBytesOffset += $numDataBytesInBlock; - } - - if ($numDataBytes !== $dataBytesOffset) { - throw new Exception\WriterException('Data bytes does not match offset'); - } - - $result = new BitArray(); - - for ($i = 0; $i < $maxNumDataBytes; $i++) { - foreach ($blocks as $block) { - $dataBytes = $block->getDataBytes(); - - if ($i < count($dataBytes)) { - $result->appendBits($dataBytes[$i], 8); - } - } - } - - for ($i = 0; $i < $maxNumEcBytes; $i++) { - foreach ($blocks as $block) { - $ecBytes = $block->getErrorCorrectionBytes(); - - if ($i < count($ecBytes)) { - $result->appendBits($ecBytes[$i], 8); - } - } - } - - if ($numTotalBytes !== $result->getSizeInBytes()) { - throw new Exception\WriterException('Interleaving error: ' . $numTotalBytes . ' and ' . $result->getSizeInBytes() . ' differ'); - } - - return $result; - } - - /** - * Generates EC bytes for given data. - * - * @param SplFixedArray $dataBytes - * @param integer $numEcBytesInBlock - * @return SplFixedArray - */ - protected static function generateEcBytes(SplFixedArray $dataBytes, $numEcBytesInBlock) - { - $numDataBytes = count($dataBytes); - $toEncode = new SplFixedArray($numDataBytes + $numEcBytesInBlock); - - for ($i = 0; $i < $numDataBytes; $i++) { - $toEncode[$i] = $dataBytes[$i] & 0xff; - } - - $ecBytes = new SplFixedArray($numEcBytesInBlock); - $codec = self::getCodec($numDataBytes, $numEcBytesInBlock); - $codec->encode($toEncode, $ecBytes); - - return $ecBytes; - } - - /** - * Gets an RS codec and caches it. - * - * @param integer $numDataBytes - * @param integer $numEcBytesInBlock - * @return ReedSolomonCodec - */ - protected static function getCodec($numDataBytes, $numEcBytesInBlock) - { - $cacheId = $numDataBytes . '-' . $numEcBytesInBlock; - - if (!isset(self::$codecs[$cacheId])) { - self::$codecs[$cacheId] = new ReedSolomonCodec( - 8, - 0x11d, - 0, - 1, - $numEcBytesInBlock, - 255 - $numDataBytes - $numEcBytesInBlock - ); - } - - return self::$codecs[$cacheId]; - } - - /** - * Appends mode information to a bit array. - * - * @param Mode $mode - * @param BitArray $bits - * @return void - */ - protected static function appendModeInfo(Mode $mode, BitArray $bits) - { - $bits->appendBits($mode->get(), 4); - } - - /** - * Appends length information to a bit array. - * - * @param integer $numLetters - * @param Version $version - * @param Mode $mode - * @param BitArray $bits - * @return void - * @throws Exception\WriterException - */ - protected static function appendLengthInfo($numLetters, Version $version, Mode $mode, BitArray $bits) - { - $numBits = $mode->getCharacterCountBits($version); - - if ($numLetters >= (1 << $numBits)) { - throw new Exception\WriterException($numLetters . ' is bigger than ' . ((1 << $numBits) - 1)); - } - - $bits->appendBits($numLetters, $numBits); - } - - /** - * Appends bytes to a bit array in a specific mode. - * - * @param stirng $content - * @param Mode $mode - * @param BitArray $bits - * @param string $encoding - * @return void - * @throws Exception\WriterException - */ - protected static function appendBytes($content, Mode $mode, BitArray $bits, $encoding) - { - switch ($mode->get()) { - case Mode::NUMERIC: - self::appendNumericBytes($content, $bits); - break; - - case Mode::ALPHANUMERIC: - self::appendAlphanumericBytes($content, $bits); - break; - - case Mode::BYTE: - self::append8BitBytes($content, $bits, $encoding); - break; - - case Mode::KANJI: - self::appendKanjiBytes($content, $bits); - break; - - default: - throw new Exception\WriterException('Invalid mode: ' . $mode->get()); - } - } - - /** - * Appends numeric bytes to a bit array. - * - * @param string $content - * @param BitArray $bits - * @return void - */ - protected static function appendNumericBytes($content, BitArray $bits) - { - $length = strlen($content); - $i = 0; - - while ($i < $length) { - $num1 = (int) $content[$i]; - - if ($i + 2 < $length) { - // Encode three numeric letters in ten bits. - $num2 = (int) $content[$i + 1]; - $num3 = (int) $content[$i + 2]; - $bits->appendBits($num1 * 100 + $num2 * 10 + $num3, 10); - $i += 3; - } elseif ($i + 1 < $length) { - // Encode two numeric letters in seven bits. - $num2 = (int) $content[$i + 1]; - $bits->appendBits($num1 * 10 + $num2, 7); - $i += 2; - } else { - // Encode one numeric letter in four bits. - $bits->appendBits($num1, 4); - $i++; - } - } - } - - /** - * Appends alpha-numeric bytes to a bit array. - * - * @param string $content - * @param BitArray $bits - * @return void - */ - protected static function appendAlphanumericBytes($content, BitArray $bits) - { - $length = strlen($content); - $i = 0; - - while ($i < $length) { - if (-1 === ($code1 = self::getAlphanumericCode($content[$i]))) { - throw new Exception\WriterException('Invalid alphanumeric code'); - } - - if ($i + 1 < $length) { - if (-1 === ($code2 = self::getAlphanumericCode($content[$i + 1]))) { - throw new Exception\WriterException('Invalid alphanumeric code'); - } - - // Encode two alphanumeric letters in 11 bits. - $bits->appendBits($code1 * 45 + $code2, 11); - $i += 2; - } else { - // Encode one alphanumeric letter in six bits. - $bits->appendBits($code1, 6); - $i++; - } - } - } - - /** - * Appends regular 8-bit bytes to a bit array. - * - * @param string $content - * @param BitArray $bits - * @return void - */ - protected static function append8BitBytes($content, BitArray $bits, $encoding) - { - if (false === ($bytes = @iconv('utf-8', $encoding, $content))) { - throw new Exception\WriterException('Could not encode content to ' . $encoding); - } - - $length = strlen($bytes); - - for ($i = 0; $i < $length; $i++) { - $bits->appendBits(ord($bytes[$i]), 8); - } - } - - /** - * Appends KANJI bytes to a bit array. - * - * @param string $content - * @param BitArray $bits - * @return void - */ - protected static function appendKanjiBytes($content, BitArray $bits) - { - if (strlen($content) % 2 > 0) { - // We just do a simple length check here. The for loop will check - // individual characters. - throw new Exception\WriterException('Content does not seem to be encoded in SHIFT-JIS'); - } - - $length = strlen($content); - - for ($i = 0; $i < $length; $i += 2) { - $byte1 = ord($content[$i]) & 0xff; - $byte2 = ord($content[$i + 1]) & 0xff; - $code = ($byte1 << 8) | $byte2; - - if ($code >= 0x8140 && $code <= 0x9ffc) { - $subtracted = $code - 0x8140; - } elseif ($code >= 0xe040 && $code <= 0xebbf) { - $subtracted = $code - 0xc140; - } else { - throw new Exception\WriterException('Invalid byte sequence'); - } - - $encoded = (($subtracted >> 8) * 0xc0) + ($subtracted & 0xff); - - $bits->appendBits($encoded, 13); - } - } - - /** - * Appends ECI information to a bit array. - * - * @param CharacterSetEci $eci - * @param BitArray $bits - * @return void - */ - protected static function appendEci(CharacterSetEci $eci, BitArray $bits) - { - $mode = new Mode(Mode::ECI); - $bits->appendBits($mode->get(), 4); - $bits->appendBits($eci->get(), 8); - } -} diff --git a/vendor/bacon/bacon-qr-code/src/BaconQrCode/Encoder/MaskUtil.php b/vendor/bacon/bacon-qr-code/src/BaconQrCode/Encoder/MaskUtil.php deleted file mode 100644 index c294d557..00000000 --- a/vendor/bacon/bacon-qr-code/src/BaconQrCode/Encoder/MaskUtil.php +++ /dev/null @@ -1,291 +0,0 @@ -getArray(); - $width = $matrix->getWidth(); - $height = $matrix->getHeight(); - - for ($y = 0; $y < $height - 1; $y++) { - for ($x = 0; $x < $width - 1; $x++) { - $value = $array[$y][$x]; - - if ($value === $array[$y][$x + 1] && $value === $array[$y + 1][$x] && $value === $array[$y + 1][$x + 1]) { - $penalty++; - } - } - } - - return self::N2 * $penalty; - } - - /** - * Applies mask penalty rule 3 and returns the penalty. - * - * Finds consecutive cells of 00001011101 or 10111010000, and gives penalty - * to them. If we find patterns like 000010111010000, we give penalties - * twice (i.e. 40 * 2). - * - * @param ByteMatrix $matrix - * @return integer - */ - public static function applyMaskPenaltyRule3(ByteMatrix $matrix) - { - $penalty = 0; - $array = $matrix->getArray(); - $width = $matrix->getWidth(); - $height = $matrix->getHeight(); - - for ($y = 0; $y < $height; $y++) { - for ($x = 0; $x < $width; $x++) { - if ( - $x + 6 < $width - && $array[$y][$x] === 1 - && $array[$y][$x + 1] === 0 - && $array[$y][$x + 2] === 1 - && $array[$y][$x + 3] === 1 - && $array[$y][$x + 4] === 1 - && $array[$y][$x + 5] === 0 - && $array[$y][$x + 6] === 1 - && ( - ( - $x + 10 < $width - && $array[$y][$x + 7] === 0 - && $array[$y][$x + 8] === 0 - && $array[$y][$x + 9] === 0 - && $array[$y][$x + 10] === 0 - ) - || ( - $x - 4 >= 0 - && $array[$y][$x - 1] === 0 - && $array[$y][$x - 2] === 0 - && $array[$y][$x - 3] === 0 - && $array[$y][$x - 4] === 0 - ) - ) - ) { - $penalty += self::N3; - } - - if ( - $y + 6 < $height - && $array[$y][$x] === 1 - && $array[$y + 1][$x] === 0 - && $array[$y + 2][$x] === 1 - && $array[$y + 3][$x] === 1 - && $array[$y + 4][$x] === 1 - && $array[$y + 5][$x] === 0 - && $array[$y + 6][$x] === 1 - && ( - ( - $y + 10 < $height - && $array[$y + 7][$x] === 0 - && $array[$y + 8][$x] === 0 - && $array[$y + 9][$x] === 0 - && $array[$y + 10][$x] === 0 - ) - || ( - $y - 4 >= 0 - && $array[$y - 1][$x] === 0 - && $array[$y - 2][$x] === 0 - && $array[$y - 3][$x] === 0 - && $array[$y - 4][$x] === 0 - ) - ) - ) { - $penalty += self::N3; - } - } - } - - return $penalty; - } - - /** - * Applies mask penalty rule 4 and returns the penalty. - * - * Calculates the ratio of dark cells and gives penalty if the ratio is far - * from 50%. It gives 10 penalty for 5% distance. - * - * @param ByteMatrix $matrix - * @return integer - */ - public static function applyMaskPenaltyRule4(ByteMatrix $matrix) - { - $numDarkCells = 0; - - $array = $matrix->getArray(); - $width = $matrix->getWidth(); - $height = $matrix->getHeight(); - - for ($y = 0; $y < $height; $y++) { - $arrayY = $array[$y]; - - for ($x = 0; $x < $width; $x++) { - if ($arrayY[$x] === 1) { - $numDarkCells++; - } - } - } - - $numTotalCells = $height * $width; - $darkRatio = $numDarkCells / $numTotalCells; - $fixedPercentVariances = (int) (abs($darkRatio - 0.5) * 20); - - return $fixedPercentVariances * self::N4; - } - - /** - * Returns the mask bit for "getMaskPattern" at "x" and "y". - * - * See 8.8 of JISX0510:2004 for mask pattern conditions. - * - * @param integer $maskPattern - * @param integer $x - * @param integer $y - * @return integer - * @throws Exception\InvalidArgumentException - */ - public static function getDataMaskBit($maskPattern, $x, $y) - { - switch ($maskPattern) { - case 0: - $intermediate = ($y + $x) & 0x1; - break; - - case 1: - $intermediate = $y & 0x1; - break; - - case 2: - $intermediate = $x % 3; - break; - - case 3: - $intermediate = ($y + $x) % 3; - break; - - case 4: - $intermediate = (BitUtils::unsignedRightShift($y, 1) + ($x / 3)) & 0x1; - break; - - case 5: - $temp = $y * $x; - $intermediate = ($temp & 0x1) + ($temp % 3); - break; - - case 6: - $temp = $y * $x; - $intermediate = (($temp & 0x1) + ($temp % 3)) & 0x1; - break; - - case 7: - $temp = $y * $x; - $intermediate = (($temp % 3) + (($y + $x) & 0x1)) & 0x1; - break; - - default: - throw new Exception\InvalidArgumentException('Invalid mask pattern: ' . $maskPattern); - } - - return $intermediate === 0; - } - - /** - * Helper function for applyMaskPenaltyRule1. - * - * We need this for doing this calculation in both vertical and horizontal - * orders respectively. - * - * @param ByteMatrix $matrix - * @param boolean $isHorizontal - * @return integer - */ - protected static function applyMaskPenaltyRule1Internal(ByteMatrix $matrix, $isHorizontal) - { - $penalty = 0; - $iLimit = $isHorizontal ? $matrix->getHeight() : $matrix->getWidth(); - $jLimit = $isHorizontal ? $matrix->getWidth() : $matrix->getHeight(); - $array = $matrix->getArray(); - - for ($i = 0; $i < $iLimit; $i++) { - $numSameBitCells = 0; - $prevBit = -1; - - for ($j = 0; $j < $jLimit; $j++) { - $bit = $isHorizontal ? $array[$i][$j] : $array[$j][$i]; - - if ($bit === $prevBit) { - $numSameBitCells++; - } else { - if ($numSameBitCells >= 5) { - $penalty += self::N1 + ($numSameBitCells - 5); - } - - $numSameBitCells = 1; - $prevBit = $bit; - } - } - - if ($numSameBitCells >= 5) { - $penalty += self::N1 + ($numSameBitCells - 5); - } - } - - return $penalty; - } -} diff --git a/vendor/bacon/bacon-qr-code/src/BaconQrCode/Encoder/MatrixUtil.php b/vendor/bacon/bacon-qr-code/src/BaconQrCode/Encoder/MatrixUtil.php deleted file mode 100644 index 83273818..00000000 --- a/vendor/bacon/bacon-qr-code/src/BaconQrCode/Encoder/MatrixUtil.php +++ /dev/null @@ -1,580 +0,0 @@ -clear(-1); - } - - /** - * Builds a complete matrix. - * - * @param BitArray $dataBits - * @param ErrorCorrectionLevel $level - * @param Version $version - * @param integer $maskPattern - * @param ByteMatrix $matrix - * @return void - */ - public static function buildMatrix( - BitArray $dataBits, - ErrorCorrectionLevel $level, - Version $version, - $maskPattern, - ByteMatrix $matrix - ) { - self::clearMatrix($matrix); - self::embedBasicPatterns($version, $matrix); - self::embedTypeInfo($level, $maskPattern, $matrix); - self::maybeEmbedVersionInfo($version, $matrix); - self::embedDataBits($dataBits, $maskPattern, $matrix); - } - - /** - * Embeds type information into a matrix. - * - * @param ErrorCorrectionLevel $level - * @param integer $maskPattern - * @param ByteMatrix $matrix - * @return void - */ - protected static function embedTypeInfo(ErrorCorrectionLevel $level, $maskPattern, ByteMatrix $matrix) - { - $typeInfoBits = new BitArray(); - self::makeTypeInfoBits($level, $maskPattern, $typeInfoBits); - - $typeInfoBitsSize = $typeInfoBits->getSize(); - - for ($i = 0; $i < $typeInfoBitsSize; $i++) { - $bit = $typeInfoBits->get($typeInfoBitsSize - 1 - $i); - - $x1 = self::$typeInfoCoordinates[$i][0]; - $y1 = self::$typeInfoCoordinates[$i][1]; - - $matrix->set($x1, $y1, $bit); - - if ($i < 8) { - $x2 = $matrix->getWidth() - $i - 1; - $y2 = 8; - } else { - $x2 = 8; - $y2 = $matrix->getHeight() - 7 + ($i - 8); - } - - $matrix->set($x2, $y2, $bit); - } - } - - /** - * Generates type information bits and appends them to a bit array. - * - * @param ErrorCorrectionLevel $level - * @param integer $maskPattern - * @param BitArray $bits - * @return void - * @throws Exception\RuntimeException - */ - protected static function makeTypeInfoBits(ErrorCorrectionLevel $level, $maskPattern, BitArray $bits) - { - $typeInfo = ($level->get() << 3) | $maskPattern; - $bits->appendBits($typeInfo, 5); - - $bchCode = self::calculateBchCode($typeInfo, self::$typeInfoPoly); - $bits->appendBits($bchCode, 10); - - $maskBits = new BitArray(); - $maskBits->appendBits(self::$typeInfoMaskPattern, 15); - $bits->xorBits($maskBits); - - if ($bits->getSize() !== 15) { - throw new Exception\RuntimeException('Bit array resulted in invalid size: ' . $bits->getSize()); - } - } - - /** - * Embeds version information if required. - * - * @param Version $version - * @param ByteMatrix $matrix - * @return void - */ - protected static function maybeEmbedVersionInfo(Version $version, ByteMatrix $matrix) - { - if ($version->getVersionNumber() < 7) { - return; - } - - $versionInfoBits = new BitArray(); - self::makeVersionInfoBits($version, $versionInfoBits); - - $bitIndex = 6 * 3 - 1; - - for ($i = 0; $i < 6; $i++) { - for ($j = 0; $j < 3; $j++) { - $bit = $versionInfoBits->get($bitIndex); - $bitIndex--; - - $matrix->set($i, $matrix->getHeight() - 11 + $j, $bit); - $matrix->set($matrix->getHeight() - 11 + $j, $i, $bit); - } - } - } - - /** - * Generates version information bits and appends them to a bit array. - * - * @param Version $version - * @param BitArray $bits - * @return void - * @throws Exception\RuntimeException - */ - protected static function makeVersionInfoBits(Version $version, BitArray $bits) - { - $bits->appendBits($version->getVersionNumber(), 6); - - $bchCode = self::calculateBchCode($version->getVersionNumber(), self::$versionInfoPoly); - $bits->appendBits($bchCode, 12); - - if ($bits->getSize() !== 18) { - throw new Exception\RuntimeException('Bit array resulted in invalid size: ' . $bits->getSize()); - } - } - - /** - * Calculates the BHC code for a value and a polynomial. - * - * @param integer $value - * @param integer $poly - * @return integer - */ - protected static function calculateBchCode($value, $poly) - { - $msbSetInPoly = self::findMsbSet($poly); - $value <<= $msbSetInPoly - 1; - - while (self::findMsbSet($value) >= $msbSetInPoly) { - $value ^= $poly << (self::findMsbSet($value) - $msbSetInPoly); - } - - return $value; - } - - /** - * Finds and MSB set. - * - * @param integer $value - * @return integer - */ - protected static function findMsbSet($value) - { - $numDigits = 0; - - while ($value !== 0) { - $value >>= 1; - $numDigits++; - } - - return $numDigits; - } - - /** - * Embeds basic patterns into a matrix. - * - * @param Version $version - * @param ByteMatrix $matrix - * @return void - */ - protected static function embedBasicPatterns(Version $version, ByteMatrix $matrix) - { - self::embedPositionDetectionPatternsAndSeparators($matrix); - self::embedDarkDotAtLeftBottomCorner($matrix); - self::maybeEmbedPositionAdjustmentPatterns($version, $matrix); - self::embedTimingPatterns($matrix); - } - - /** - * Embeds position detection patterns and separators into a byte matrix. - * - * @param ByteMatrix $matrix - * @return void - */ - protected static function embedPositionDetectionPatternsAndSeparators(ByteMatrix $matrix) - { - $pdpWidth = count(self::$positionDetectionPattern[0]); - - self::embedPositionDetectionPattern(0, 0, $matrix); - self::embedPositionDetectionPattern($matrix->getWidth() - $pdpWidth, 0, $matrix); - self::embedPositionDetectionPattern(0, $matrix->getWidth() - $pdpWidth, $matrix); - - $hspWidth = 8; - - self::embedHorizontalSeparationPattern(0, $hspWidth - 1, $matrix); - self::embedHorizontalSeparationPattern($matrix->getWidth() - $hspWidth, $hspWidth - 1, $matrix); - self::embedHorizontalSeparationPattern(0, $matrix->getWidth() - $hspWidth, $matrix); - - $vspSize = 7; - - self::embedVerticalSeparationPattern($vspSize, 0, $matrix); - self::embedVerticalSeparationPattern($matrix->getHeight() - $vspSize - 1, 0, $matrix); - self::embedVerticalSeparationPattern($vspSize, $matrix->getHeight() - $vspSize, $matrix); - } - - /** - * Embeds a single position detection pattern into a byte matrix. - * - * @param integer $xStart - * @param integer $yStart - * @param ByteMatrix $matrix - * @return void - */ - protected static function embedPositionDetectionPattern($xStart, $yStart, ByteMatrix $matrix) - { - for ($y = 0; $y < 7; $y++) { - for ($x = 0; $x < 7; $x++) { - $matrix->set($xStart + $x, $yStart + $y, self::$positionDetectionPattern[$y][$x]); - } - } - } - - /** - * Embeds a single horizontal separation pattern. - * - * @param integer $xStart - * @param integer $yStart - * @param ByteMatrix $matrix - * @return void - * @throws Exception\RuntimeException - */ - protected static function embedHorizontalSeparationPattern($xStart, $yStart, ByteMatrix $matrix) - { - for ($x = 0; $x < 8; $x++) { - if ($matrix->get($xStart + $x, $yStart) !== -1) { - throw new Exception\RuntimeException('Byte already set'); - } - - $matrix->set($xStart + $x, $yStart, 0); - } - } - - /** - * Embeds a single vertical separation pattern. - * - * @param integer $xStart - * @param integer $yStart - * @param ByteMatrix $matrix - * @return void - * @throws Exception\RuntimeException - */ - protected static function embedVerticalSeparationPattern($xStart, $yStart, ByteMatrix $matrix) - { - for ($y = 0; $y < 7; $y++) { - if ($matrix->get($xStart, $yStart + $y) !== -1) { - throw new Exception\RuntimeException('Byte already set'); - } - - $matrix->set($xStart, $yStart + $y, 0); - } - } - - /** - * Embeds a dot at the left bottom corner. - * - * @param ByteMatrix $matrix - * @return void - * @throws Exception\RuntimeException - */ - protected static function embedDarkDotAtLeftBottomCorner(ByteMatrix $matrix) - { - if ($matrix->get(8, $matrix->getHeight() - 8) === 0) { - throw new Exception\RuntimeException('Byte already set to 0'); - } - - $matrix->set(8, $matrix->getHeight() - 8, 1); - } - - /** - * Embeds position adjustment patterns if required. - * - * @param Version $version - * @param ByteMatrix $matrix - * @return void - */ - protected static function maybeEmbedPositionAdjustmentPatterns(Version $version, ByteMatrix $matrix) - { - if ($version->getVersionNumber() < 2) { - return; - } - - $index = $version->getVersionNumber() - 1; - - $coordinates = self::$positionAdjustmentPatternCoordinateTable[$index]; - $numCoordinates = count($coordinates); - - for ($i = 0; $i < $numCoordinates; $i++) { - for ($j = 0; $j < $numCoordinates; $j++) { - $y = $coordinates[$i]; - $x = $coordinates[$j]; - - if ($x === null || $y === null) { - continue; - } - - if ($matrix->get($x, $y) === -1) { - self::embedPositionAdjustmentPattern($x - 2, $y - 2, $matrix); - } - } - } - } - - /** - * Embeds a single position adjustment pattern. - * - * @param integer $xStart - * @param intger $yStart - * @param ByteMatrix $matrix - * @return void - */ - protected static function embedPositionAdjustmentPattern($xStart, $yStart, ByteMatrix $matrix) - { - for ($y = 0; $y < 5; $y++) { - for ($x = 0; $x < 5; $x++) { - $matrix->set($xStart + $x, $yStart + $y, self::$positionAdjustmentPattern[$y][$x]); - } - } - } - - /** - * Embeds timing patterns into a matrix. - * - * @param ByteMatrix $matrix - * @return void - */ - protected static function embedTimingPatterns(ByteMatrix $matrix) - { - $matrixWidth = $matrix->getWidth(); - - for ($i = 8; $i < $matrixWidth - 8; $i++) { - $bit = ($i + 1) % 2; - - if ($matrix->get($i, 6) === -1) { - $matrix->set($i, 6, $bit); - } - - if ($matrix->get(6, $i) === -1) { - $matrix->set(6, $i, $bit); - } - } - } - - /** - * Embeds "dataBits" using "getMaskPattern". - * - * For debugging purposes, it skips masking process if "getMaskPattern" is - * -1. See 8.7 of JISX0510:2004 (p.38) for how to embed data bits. - * - * @param BitArray $dataBits - * @param integer $maskPattern - * @param ByteMatrix $matrix - * @return void - * @throws Exception\WriterException - */ - protected static function embedDataBits(BitArray $dataBits, $maskPattern, ByteMatrix $matrix) - { - $bitIndex = 0; - $direction = -1; - - // Start from the right bottom cell. - $x = $matrix->getWidth() - 1; - $y = $matrix->getHeight() - 1; - - while ($x > 0) { - // Skip vertical timing pattern. - if ($x === 6) { - $x--; - } - - while ($y >= 0 && $y < $matrix->getHeight()) { - for ($i = 0; $i < 2; $i++) { - $xx = $x - $i; - - // Skip the cell if it's not empty. - if ($matrix->get($xx, $y) !== -1) { - continue; - } - - if ($bitIndex < $dataBits->getSize()) { - $bit = $dataBits->get($bitIndex); - $bitIndex++; - } else { - // Padding bit. If there is no bit left, we'll fill the - // left cells with 0, as described in 8.4.9 of - // JISX0510:2004 (p. 24). - $bit = false; - } - - // Skip masking if maskPattern is -1. - if ($maskPattern !== -1 && MaskUtil::getDataMaskBit($maskPattern, $xx, $y)) { - $bit = !$bit; - } - - $matrix->set($xx, $y, $bit); - } - - $y += $direction; - } - - $direction = -$direction; - $y += $direction; - $x -= 2; - } - - // All bits should be consumed - if ($bitIndex !== $dataBits->getSize()) { - throw new Exception\WriterException('Not all bits consumed (' . $bitIndex . ' out of ' . $dataBits->getSize() .')'); - } - } -} diff --git a/vendor/bacon/bacon-qr-code/src/BaconQrCode/Encoder/QrCode.php b/vendor/bacon/bacon-qr-code/src/BaconQrCode/Encoder/QrCode.php deleted file mode 100644 index 07e1c385..00000000 --- a/vendor/bacon/bacon-qr-code/src/BaconQrCode/Encoder/QrCode.php +++ /dev/null @@ -1,201 +0,0 @@ -mode; - } - - /** - * Sets the mode. - * - * @param Mode $mode - * @return void - */ - public function setMode(Mode $mode) - { - $this->mode = $mode; - } - - /** - * Gets the EC level. - * - * @return ErrorCorrectionLevel - */ - public function getErrorCorrectionLevel() - { - return $this->errorCorrectionLevel; - } - - /** - * Sets the EC level. - * - * @param ErrorCorrectionLevel $errorCorrectionLevel - * @return void - */ - public function setErrorCorrectionLevel(ErrorCorrectionLevel $errorCorrectionLevel) - { - $this->errorCorrectionLevel = $errorCorrectionLevel; - } - - /** - * Gets the version. - * - * @return Version - */ - public function getVersion() - { - return $this->version; - } - - /** - * Sets the version. - * - * @param Version $version - * @return void - */ - public function setVersion(Version $version) - { - $this->version = $version; - } - - /** - * Gets the mask pattern. - * - * @return integer - */ - public function getMaskPattern() - { - return $this->maskPattern; - } - - /** - * Sets the mask pattern. - * - * @param integer $maskPattern - * @return void - */ - public function setMaskPattern($maskPattern) - { - $this->maskPattern = $maskPattern; - } - - /** - * Gets the matrix. - * - * @return ByteMatrix - */ - public function getMatrix() - { - return $this->matrix; - } - - /** - * Sets the matrix. - * - * @param ByteMatrix $matrix - * @return void - */ - public function setMatrix(ByteMatrix $matrix) - { - $this->matrix = $matrix; - } - - /** - * Validates whether a mask pattern is valid. - * - * @param integer $maskPattern - * @return boolean - */ - public static function isValidMaskPattern($maskPattern) - { - return $maskPattern > 0 && $maskPattern < self::NUM_MASK_PATTERNS; - } - - /** - * Returns a string representation of the QR code. - * - * @return string - */ - public function __toString() - { - $result = "<<\n" - . " mode: " . $this->mode . "\n" - . " ecLevel: " . $this->errorCorrectionLevel . "\n" - . " version: " . $this->version . "\n" - . " maskPattern: " . $this->maskPattern . "\n"; - - if ($this->matrix === null) { - $result .= " matrix: null\n"; - } else { - $result .= " matrix:\n"; - $result .= $this->matrix; - } - - $result .= ">>\n"; - - return $result; - } -} diff --git a/vendor/bacon/bacon-qr-code/src/BaconQrCode/Exception/ExceptionInterface.php b/vendor/bacon/bacon-qr-code/src/BaconQrCode/Exception/ExceptionInterface.php deleted file mode 100644 index 5c58fc51..00000000 --- a/vendor/bacon/bacon-qr-code/src/BaconQrCode/Exception/ExceptionInterface.php +++ /dev/null @@ -1,14 +0,0 @@ - 100) { - throw new Exception\InvalidArgumentException('Cyan must be between 0 and 100'); - } - - if ($magenta < 0 || $magenta > 100) { - throw new Exception\InvalidArgumentException('Magenta must be between 0 and 100'); - } - - if ($yellow < 0 || $yellow > 100) { - throw new Exception\InvalidArgumentException('Yellow must be between 0 and 100'); - } - - if ($black < 0 || $black > 100) { - throw new Exception\InvalidArgumentException('Black must be between 0 and 100'); - } - - $this->cyan = (int) $cyan; - $this->magenta = (int) $magenta; - $this->yellow = (int) $yellow; - $this->black = (int) $black; - } - - /** - * Returns the cyan value. - * - * @return integer - */ - public function getCyan() - { - return $this->cyan; - } - - /** - * Returns the magenta value. - * - * @return integer - */ - public function getMagenta() - { - return $this->magenta; - } - - /** - * Returns the yellow value. - * - * @return integer - */ - public function getYellow() - { - return $this->yellow; - } - - /** - * Returns the black value. - * - * @return integer - */ - public function getBlack() - { - return $this->black; - } - - /** - * toRgb(): defined by ColorInterface. - * - * @see ColorInterface::toRgb() - * @return Rgb - */ - public function toRgb() - { - $k = $this->black / 100; - $c = (-$k * $this->cyan + $k * 100 + $this->cyan) / 100; - $m = (-$k * $this->magenta + $k * 100 + $this->magenta) / 100; - $y = (-$k * $this->yellow + $k * 100 + $this->yellow) / 100; - - return new Rgb( - -$c * 255 + 255, - -$m * 255 + 255, - -$y * 255 + 255 - ); - } - - /** - * toCmyk(): defined by ColorInterface. - * - * @see ColorInterface::toCmyk() - * @return Cmyk - */ - public function toCmyk() - { - return $this; - } - - /** - * toGray(): defined by ColorInterface. - * - * @see ColorInterface::toGray() - * @return Gray - */ - public function toGray() - { - return $this->toRgb()->toGray(); - } -} \ No newline at end of file diff --git a/vendor/bacon/bacon-qr-code/src/BaconQrCode/Renderer/Color/ColorInterface.php b/vendor/bacon/bacon-qr-code/src/BaconQrCode/Renderer/Color/ColorInterface.php deleted file mode 100644 index 747accc1..00000000 --- a/vendor/bacon/bacon-qr-code/src/BaconQrCode/Renderer/Color/ColorInterface.php +++ /dev/null @@ -1,37 +0,0 @@ - 100) { - throw new Exception\InvalidArgumentException('Gray must be between 0 and 100'); - } - - $this->gray = (int) $gray; - } - - /** - * Returns the gray value. - * - * @return integer - */ - public function getGray() - { - return $this->gray; - } - - /** - * toRgb(): defined by ColorInterface. - * - * @see ColorInterface::toRgb() - * @return Rgb - */ - public function toRgb() - { - return new Rgb($this->gray * 2.55, $this->gray * 2.55, $this->gray * 2.55); - } - - /** - * toCmyk(): defined by ColorInterface. - * - * @see ColorInterface::toCmyk() - * @return Cmyk - */ - public function toCmyk() - { - return new Cmyk(0, 0, 0, 100 - $this->gray); - } - - /** - * toGray(): defined by ColorInterface. - * - * @see ColorInterface::toGray() - * @return Gray - */ - public function toGray() - { - return $this; - } -} \ No newline at end of file diff --git a/vendor/bacon/bacon-qr-code/src/BaconQrCode/Renderer/Color/Rgb.php b/vendor/bacon/bacon-qr-code/src/BaconQrCode/Renderer/Color/Rgb.php deleted file mode 100644 index 44e4060c..00000000 --- a/vendor/bacon/bacon-qr-code/src/BaconQrCode/Renderer/Color/Rgb.php +++ /dev/null @@ -1,148 +0,0 @@ - 255) { - throw new Exception\InvalidArgumentException('Red must be between 0 and 255'); - } - - if ($green < 0 || $green > 255) { - throw new Exception\InvalidArgumentException('Green must be between 0 and 255'); - } - - if ($blue < 0 || $blue > 255) { - throw new Exception\InvalidArgumentException('Blue must be between 0 and 255'); - } - - $this->red = (int) $red; - $this->green = (int) $green; - $this->blue = (int) $blue; - } - - /** - * Returns the red value. - * - * @return integer - */ - public function getRed() - { - return $this->red; - } - - /** - * Returns the green value. - * - * @return integer - */ - public function getGreen() - { - return $this->green; - } - - /** - * Returns the blue value. - * - * @return integer - */ - public function getBlue() - { - return $this->blue; - } - - /** - * Returns a hexadecimal string representation of the RGB value. - * - * @return string - */ - public function __toString() - { - return sprintf('%02x%02x%02x', $this->red, $this->green, $this->blue); - } - - /** - * toRgb(): defined by ColorInterface. - * - * @see ColorInterface::toRgb() - * @return Rgb - */ - public function toRgb() - { - return $this; - } - - /** - * toCmyk(): defined by ColorInterface. - * - * @see ColorInterface::toCmyk() - * @return Cmyk - */ - public function toCmyk() - { - $c = 1 - ($this->red / 255); - $m = 1 - ($this->green / 255); - $y = 1 - ($this->blue / 255); - $k = min($c, $m, $y); - - return new Cmyk( - 100 * ($c - $k) / (1 - $k), - 100 * ($m - $k) / (1 - $k), - 100 * ($y - $k) / (1 - $k), - 100 * $k - ); - } - - /** - * toGray(): defined by ColorInterface. - * - * @see ColorInterface::toGray() - * @return Gray - */ - public function toGray() - { - return new Gray(($this->red * 0.21 + $this->green * 0.71 + $this->blue * 0.07) / 2.55); - } -} \ No newline at end of file diff --git a/vendor/bacon/bacon-qr-code/src/BaconQrCode/Renderer/Image/AbstractRenderer.php b/vendor/bacon/bacon-qr-code/src/BaconQrCode/Renderer/Image/AbstractRenderer.php deleted file mode 100644 index b0bb02ac..00000000 --- a/vendor/bacon/bacon-qr-code/src/BaconQrCode/Renderer/Image/AbstractRenderer.php +++ /dev/null @@ -1,338 +0,0 @@ -margin = (int) $margin; - return $this; - } - - /** - * Gets the margin around the QR code. - * - * @return integer - */ - public function getMargin() - { - return $this->margin; - } - - /** - * Sets the height around the renderd image. - * - * If the width is smaller than the matrix width plus padding, the renderer - * will automatically use that as the width instead of the specified one. - * - * @param integer $width - * @return AbstractRenderer - */ - public function setWidth($width) - { - $this->width = (int) $width; - return $this; - } - - /** - * Gets the width of the rendered image. - * - * @return integer - */ - public function getWidth() - { - return $this->width; - } - - /** - * Sets the height around the renderd image. - * - * If the height is smaller than the matrix height plus padding, the - * renderer will automatically use that as the height instead of the - * specified one. - * - * @param integer $height - * @return AbstractRenderer - */ - public function setHeight($height) - { - $this->height = (int) $height; - return $this; - } - - /** - * Gets the height around the rendered image. - * - * @return integer - */ - public function getHeight() - { - return $this->height; - } - - /** - * Sets whether dimensions should be rounded down. - * - * @param boolean $flag - * @return AbstractRenderer - */ - public function setRoundDimensions($flag) - { - $this->floorToClosestDimension = $flag; - return $this; - } - - /** - * Gets whether dimensions should be rounded down. - * - * @return boolean - */ - public function shouldRoundDimensions() - { - return $this->floorToClosestDimension; - } - - /** - * Sets background color. - * - * @param Color\ColorInterface $color - * @return AbstractRenderer - */ - public function setBackgroundColor(Color\ColorInterface $color) - { - $this->backgroundColor = $color; - return $this; - } - - /** - * Gets background color. - * - * @return Color\ColorInterface - */ - public function getBackgroundColor() - { - if ($this->backgroundColor === null) { - $this->backgroundColor = new Color\Gray(100); - } - - return $this->backgroundColor; - } - - /** - * Sets foreground color. - * - * @param Color\ColorInterface $color - * @return AbstractRenderer - */ - public function setForegroundColor(Color\ColorInterface $color) - { - $this->foregroundColor = $color; - return $this; - } - - /** - * Gets foreground color. - * - * @return Color\ColorInterface - */ - public function getForegroundColor() - { - if ($this->foregroundColor === null) { - $this->foregroundColor = new Color\Gray(0); - } - - return $this->foregroundColor; - } - - /** - * Adds a decorator to the renderer. - * - * @param DecoratorInterface $decorator - * @return AbstractRenderer - */ - public function addDecorator(DecoratorInterface $decorator) - { - $this->decorators[] = $decorator; - return $this; - } - - /** - * render(): defined by RendererInterface. - * - * @see RendererInterface::render() - * @param QrCode $qrCode - * @return string - */ - public function render(QrCode $qrCode) - { - $input = $qrCode->getMatrix(); - $inputWidth = $input->getWidth(); - $inputHeight = $input->getHeight(); - $qrWidth = $inputWidth + ($this->getMargin() << 1); - $qrHeight = $inputHeight + ($this->getMargin() << 1); - $outputWidth = max($this->getWidth(), $qrWidth); - $outputHeight = max($this->getHeight(), $qrHeight); - $multiple = (int) min($outputWidth / $qrWidth, $outputHeight / $qrHeight); - - if ($this->shouldRoundDimensions()) { - $outputWidth -= $outputWidth % $multiple; - $outputHeight -= $outputHeight % $multiple; - } - - // Padding includes both the quiet zone and the extra white pixels to - // accommodate the requested dimensions. For example, if input is 25x25 - // the QR will be 33x33 including the quiet zone. If the requested size - // is 200x160, the multiple will be 4, for a QR of 132x132. These will - // handle all the padding from 100x100 (the actual QR) up to 200x160. - $leftPadding = (int) (($outputWidth - ($inputWidth * $multiple)) / 2); - $topPadding = (int) (($outputHeight - ($inputHeight * $multiple)) / 2); - - // Store calculated parameters - $this->finalWidth = $outputWidth; - $this->finalHeight = $outputHeight; - $this->blockSize = $multiple; - - $this->init(); - $this->addColor('background', $this->getBackgroundColor()); - $this->addColor('foreground', $this->getForegroundColor()); - $this->drawBackground('background'); - - foreach ($this->decorators as $decorator) { - $decorator->preProcess( - $qrCode, - $this, - $outputWidth, - $outputHeight, - $leftPadding, - $topPadding, - $multiple - ); - } - - for ($inputY = 0, $outputY = $topPadding; $inputY < $inputHeight; $inputY++, $outputY += $multiple) { - for ($inputX = 0, $outputX = $leftPadding; $inputX < $inputWidth; $inputX++, $outputX += $multiple) { - if ($input->get($inputX, $inputY) === 1) { - $this->drawBlock($outputX, $outputY, 'foreground'); - } - } - } - - foreach ($this->decorators as $decorator) { - $decorator->postProcess( - $qrCode, - $this, - $outputWidth, - $outputHeight, - $leftPadding, - $topPadding, - $multiple - ); - } - - return $this->getByteStream(); - } -} \ No newline at end of file diff --git a/vendor/bacon/bacon-qr-code/src/BaconQrCode/Renderer/Image/Decorator/DecoratorInterface.php b/vendor/bacon/bacon-qr-code/src/BaconQrCode/Renderer/Image/Decorator/DecoratorInterface.php deleted file mode 100644 index e67268b5..00000000 --- a/vendor/bacon/bacon-qr-code/src/BaconQrCode/Renderer/Image/Decorator/DecoratorInterface.php +++ /dev/null @@ -1,63 +0,0 @@ -outerColor = $color; - return $this; - } - - /** - * Gets outer color. - * - * @return Color\ColorInterface - */ - public function getOuterColor() - { - if ($this->outerColor === null) { - $this->outerColor = new Color\Gray(100); - } - - return $this->outerColor; - } - - /** - * Sets inner color. - * - * @param Color\ColorInterface $color - * @return FinderPattern - */ - public function setInnerColor(Color\ColorInterface $color) - { - $this->innerColor = $color; - return $this; - } - - /** - * Gets inner color. - * - * @return Color\ColorInterface - */ - public function getInnerColor() - { - if ($this->innerColor === null) { - $this->innerColor = new Color\Gray(0); - } - - return $this->innerColor; - } - - /** - * preProcess(): defined by DecoratorInterface. - * - * @see DecoratorInterface::preProcess() - * @param QrCode $qrCode - * @param RendererInterface $renderer - * @param integer $outputWidth - * @param integer $outputHeight - * @param integer $leftPadding - * @param integer $topPadding - * @param integer $multiple - * @return void - */ - public function preProcess( - QrCode $qrCode, - RendererInterface $renderer, - $outputWidth, - $outputHeight, - $leftPadding, - $topPadding, - $multiple - ) { - $matrix = $qrCode->getMatrix(); - $positions = array( - array(0, 0), - array($matrix->getWidth() - 7, 0), - array(0, $matrix->getHeight() - 7), - ); - - foreach (self::$outerPositionDetectionPattern as $y => $row) { - foreach ($row as $x => $isSet) { - foreach ($positions as $position) { - $matrix->set($x + $position[0], $y + $position[1], 0); - } - } - } - } - - /** - * postProcess(): defined by DecoratorInterface. - * - * @see DecoratorInterface::postProcess() - * - * @param QrCode $qrCode - * @param RendererInterface $renderer - * @param integer $outputWidth - * @param integer $outputHeight - * @param integer $leftPadding - * @param integer $topPadding - * @param integer $multiple - * @return void - */ - public function postProcess( - QrCode $qrCode, - RendererInterface $renderer, - $outputWidth, - $outputHeight, - $leftPadding, - $topPadding, - $multiple - ) { - $matrix = $qrCode->getMatrix(); - $positions = array( - array(0, 0), - array($matrix->getWidth() - 7, 0), - array(0, $matrix->getHeight() - 7), - ); - - $renderer->addColor('finder-outer', $this->getOuterColor()); - $renderer->addColor('finder-inner', $this->getInnerColor()); - - foreach (self::$outerPositionDetectionPattern as $y => $row) { - foreach ($row as $x => $isOuterSet) { - $isInnerSet = self::$innerPositionDetectionPattern[$y][$x]; - - if ($isOuterSet) { - foreach ($positions as $position) { - $renderer->drawBlock( - $leftPadding + $x * $multiple + $position[0] * $multiple, - $topPadding + $y * $multiple + $position[1] * $multiple, - 'finder-outer' - ); - } - } - - if ($isInnerSet) { - foreach ($positions as $position) { - $renderer->drawBlock( - $leftPadding + $x * $multiple + $position[0] * $multiple, - $topPadding + $y * $multiple + $position[1] * $multiple, - 'finder-inner' - ); - } - } - } - } - } -} \ No newline at end of file diff --git a/vendor/bacon/bacon-qr-code/src/BaconQrCode/Renderer/Image/Eps.php b/vendor/bacon/bacon-qr-code/src/BaconQrCode/Renderer/Image/Eps.php deleted file mode 100644 index 97661951..00000000 --- a/vendor/bacon/bacon-qr-code/src/BaconQrCode/Renderer/Image/Eps.php +++ /dev/null @@ -1,152 +0,0 @@ -eps = "%!PS-Adobe-3.0 EPSF-3.0\n" - . "%%BoundingBox: 0 0 " . $this->finalWidth . " " . $this->finalHeight . "\n" - . "/F { rectfill } def\n"; - } - - /** - * addColor(): defined by RendererInterface. - * - * @see ImageRendererInterface::addColor() - * @param string $id - * @param ColorInterface $color - * @return void - */ - public function addColor($id, ColorInterface $color) - { - if ( - !$color instanceof Rgb - && !$color instanceof Cmyk - && !$color instanceof Gray - ) { - $color = $color->toCmyk(); - } - - $this->colors[$id] = $color; - } - - /** - * drawBackground(): defined by RendererInterface. - * - * @see ImageRendererInterface::drawBackground() - * @param string $colorId - * @return void - */ - public function drawBackground($colorId) - { - $this->setColor($colorId); - $this->eps .= "0 0 " . $this->finalWidth . " " . $this->finalHeight . " F\n"; - } - - /** - * drawBlock(): defined by RendererInterface. - * - * @see ImageRendererInterface::drawBlock() - * @param integer $x - * @param integer $y - * @param string $colorId - * @return void - */ - public function drawBlock($x, $y, $colorId) - { - $this->setColor($colorId); - $this->eps .= $x . " " . ($this->finalHeight - $y - $this->blockSize) . " " . $this->blockSize . " " . $this->blockSize . " F\n"; - } - - /** - * getByteStream(): defined by RendererInterface. - * - * @see ImageRendererInterface::getByteStream() - * @return string - */ - public function getByteStream() - { - return $this->eps; - } - - /** - * Sets color to use. - * - * @param string $colorId - * @return void - */ - protected function setColor($colorId) - { - if ($colorId !== $this->currentColor) { - $color = $this->colors[$colorId]; - - if ($color instanceof Rgb) { - $this->eps .= sprintf( - "%F %F %F setrgbcolor\n", - $color->getRed() / 100, - $color->getGreen() / 100, - $color->getBlue() / 100 - ); - } elseif ($color instanceof Cmyk) { - $this->eps .= sprintf( - "%F %F %F %F setcmykcolor\n", - $color->getCyan() / 100, - $color->getMagenta() / 100, - $color->getYellow() / 100, - $color->getBlack() / 100 - ); - } elseif ($color instanceof Gray) { - $this->eps .= sprintf( - "%F setgray\n", - $color->getGray() / 100 - ); - } - - $this->currentColor = $colorId; - } - } -} diff --git a/vendor/bacon/bacon-qr-code/src/BaconQrCode/Renderer/Image/Png.php b/vendor/bacon/bacon-qr-code/src/BaconQrCode/Renderer/Image/Png.php deleted file mode 100644 index dd593a8b..00000000 --- a/vendor/bacon/bacon-qr-code/src/BaconQrCode/Renderer/Image/Png.php +++ /dev/null @@ -1,115 +0,0 @@ -image = imagecreatetruecolor($this->finalWidth, $this->finalHeight); - } - - /** - * addColor(): defined by RendererInterface. - * - * @see ImageRendererInterface::addColor() - * @param string $id - * @param ColorInterface $color - * @return void - * @throws Exception\RuntimeException - */ - public function addColor($id, ColorInterface $color) - { - if ($this->image === null) { - throw new Exception\RuntimeException('Colors can only be added after init'); - } - - $color = $color->toRgb(); - - $this->colors[$id] = imagecolorallocate( - $this->image, - $color->getRed(), - $color->getGreen(), - $color->getBlue() - ); - } - - /** - * drawBackground(): defined by RendererInterface. - * - * @see ImageRendererInterface::drawBackground() - * @param string $colorId - * @return void - */ - public function drawBackground($colorId) - { - imagefill($this->image, 0, 0, $this->colors[$colorId]); - } - - /** - * drawBlock(): defined by RendererInterface. - * - * @see ImageRendererInterface::drawBlock() - * @param integer $x - * @param integer $y - * @param string $colorId - * @return void - */ - public function drawBlock($x, $y, $colorId) - { - imagefilledrectangle( - $this->image, - $x, - $y, - $x + $this->blockSize - 1, - $y + $this->blockSize - 1, - $this->colors[$colorId] - ); - } - - /** - * getByteStream(): defined by RendererInterface. - * - * @see ImageRendererInterface::getByteStream() - * @return string - */ - public function getByteStream() - { - ob_start(); - imagepng($this->image); - return ob_get_clean(); - } -} \ No newline at end of file diff --git a/vendor/bacon/bacon-qr-code/src/BaconQrCode/Renderer/Image/RendererInterface.php b/vendor/bacon/bacon-qr-code/src/BaconQrCode/Renderer/Image/RendererInterface.php deleted file mode 100644 index 52101a65..00000000 --- a/vendor/bacon/bacon-qr-code/src/BaconQrCode/Renderer/Image/RendererInterface.php +++ /dev/null @@ -1,61 +0,0 @@ -svg = new SimpleXMLElement( - '' - . '' - ); - $this->svg->addAttribute('version', '1.1'); - $this->svg->addAttribute('width', $this->finalWidth . 'px'); - $this->svg->addAttribute('height', $this->finalHeight . 'px'); - $this->svg->addAttribute('viewBox', '0 0 ' . $this->finalWidth . ' ' . $this->finalHeight); - $this->svg->addChild('defs'); - } - - /** - * addColor(): defined by RendererInterface. - * - * @see ImageRendererInterface::addColor() - * @param string $id - * @param ColorInterface $color - * @return void - * @throws Exception\InvalidArgumentException - */ - public function addColor($id, ColorInterface $color) - { - $this->colors[$id] = (string) $color->toRgb(); - } - - /** - * drawBackground(): defined by RendererInterface. - * - * @see ImageRendererInterface::drawBackground() - * @param string $colorId - * @return void - */ - public function drawBackground($colorId) - { - $rect = $this->svg->addChild('rect'); - $rect->addAttribute('x', 0); - $rect->addAttribute('y', 0); - $rect->addAttribute('width', $this->finalWidth); - $rect->addAttribute('height', $this->finalHeight); - $rect->addAttribute('fill', '#' . $this->colors[$colorId]); - } - - /** - * drawBlock(): defined by RendererInterface. - * - * @see ImageRendererInterface::drawBlock() - * @param integer $x - * @param integer $y - * @param string $colorId - * @return void - */ - public function drawBlock($x, $y, $colorId) - { - $use = $this->svg->addChild('use'); - $use->addAttribute('x', $x); - $use->addAttribute('y', $y); - $use->addAttribute( - 'xlink:href', - $this->getRectPrototypeId($colorId), - 'http://www.w3.org/1999/xlink' - ); - } - - /** - * getByteStream(): defined by RendererInterface. - * - * @see ImageRendererInterface::getByteStream() - * @return string - */ - public function getByteStream() - { - return $this->svg->asXML(); - } - - /** - * Get the prototype ID for a color. - * - * @param integer $colorId - * @return string - */ - protected function getRectPrototypeId($colorId) - { - if (!isset($this->prototypeIds[$colorId])) { - $id = 'r' . dechex(count($this->prototypeIds)); - - $rect = $this->svg->defs->addChild('rect'); - $rect->addAttribute('id', $id); - $rect->addAttribute('width', $this->blockSize); - $rect->addAttribute('height', $this->blockSize); - $rect->addAttribute('fill', '#' . $this->colors[$colorId]); - - $this->prototypeIds[$colorId] = '#' . $id; - } - - return $this->prototypeIds[$colorId]; - } -} diff --git a/vendor/bacon/bacon-qr-code/src/BaconQrCode/Renderer/RendererInterface.php b/vendor/bacon/bacon-qr-code/src/BaconQrCode/Renderer/RendererInterface.php deleted file mode 100644 index 554e1d88..00000000 --- a/vendor/bacon/bacon-qr-code/src/BaconQrCode/Renderer/RendererInterface.php +++ /dev/null @@ -1,26 +0,0 @@ -class = $class; - } - - /** - * Get CSS class name. - * - * @return string - */ - public function getClass() - { - return $this->class; - } - - /** - * Set CSS style value. - * - * @param string $style - */ - public function setStyle($style) - { - $this->style = $style; - } - - /** - * Get CSS style value. - * - * @return string - */ - public function getStyle() - { - return $this->style; - } - - /** - * render(): defined by RendererInterface. - * - * @see RendererInterface::render() - * @param QrCode $qrCode - * @return string - */ - public function render(QrCode $qrCode) - { - $textCode = parent::render($qrCode); - - $result = '' . $textCode . ''; - - return $result; - } -} diff --git a/vendor/bacon/bacon-qr-code/src/BaconQrCode/Renderer/Text/Plain.php b/vendor/bacon/bacon-qr-code/src/BaconQrCode/Renderer/Text/Plain.php deleted file mode 100644 index a7e4cfb7..00000000 --- a/vendor/bacon/bacon-qr-code/src/BaconQrCode/Renderer/Text/Plain.php +++ /dev/null @@ -1,150 +0,0 @@ -fullBlock = $fullBlock; - } - - /** - * Get char used as full block (occupied space, "black"). - * - * @return string - */ - public function getFullBlock() - { - return $this->fullBlock; - } - - /** - * Set char used as empty block (empty space, "white"). - * - * @param string $emptyBlock - */ - public function setEmptyBlock($emptyBlock) - { - $this->emptyBlock = $emptyBlock; - } - - /** - * Get char used as empty block (empty space, "white"). - * - * @return string - */ - public function getEmptyBlock() - { - return $this->emptyBlock; - } - - /** - * Sets the margin around the QR code. - * - * @param integer $margin - * @return AbstractRenderer - * @throws Exception\InvalidArgumentException - */ - public function setMargin($margin) - { - if ($margin < 0) { - throw new Exception\InvalidArgumentException('Margin must be equal to greater than 0'); - } - - $this->margin = (int) $margin; - - return $this; - } - - /** - * Gets the margin around the QR code. - * - * @return integer - */ - public function getMargin() - { - return $this->margin; - } - - /** - * render(): defined by RendererInterface. - * - * @see RendererInterface::render() - * @param QrCode $qrCode - * @return string - */ - public function render(QrCode $qrCode) - { - $result = ''; - $matrix = $qrCode->getMatrix(); - $width = $matrix->getWidth(); - - // Top margin - for ($x = 0; $x < $this->margin; $x++) { - $result .= str_repeat($this->emptyBlock, $width + 2 * $this->margin)."\n"; - } - - // Body - $array = $matrix->getArray(); - - foreach ($array as $row) { - $result .= str_repeat($this->emptyBlock, $this->margin); // left margin - foreach ($row as $byte) { - $result .= $byte ? $this->fullBlock : $this->emptyBlock; - } - $result .= str_repeat($this->emptyBlock, $this->margin); // right margin - $result .= "\n"; - } - - // Bottom margin - for ($x = 0; $x < $this->margin; $x++) { - $result .= str_repeat($this->emptyBlock, $width + 2 * $this->margin)."\n"; - } - - return $result; - } -} diff --git a/vendor/bacon/bacon-qr-code/src/BaconQrCode/Writer.php b/vendor/bacon/bacon-qr-code/src/BaconQrCode/Writer.php deleted file mode 100644 index 0f803138..00000000 --- a/vendor/bacon/bacon-qr-code/src/BaconQrCode/Writer.php +++ /dev/null @@ -1,105 +0,0 @@ -renderer = $renderer; - } - - /** - * Sets the renderer used to create a byte stream. - * - * @param RendererInterface $renderer - * @return Writer - */ - public function setRenderer(RendererInterface $renderer) - { - $this->renderer = $renderer; - return $this; - } - - /** - * Gets the renderer used to create a byte stream. - * - * @return RendererInterface - */ - public function getRenderer() - { - return $this->renderer; - } - - /** - * Writes QR code and returns it as string. - * - * Content is a string which *should* be encoded in UTF-8, in case there are - * non ASCII-characters present. - * - * @param string $content - * @param string $encoding - * @param integer $ecLevel - * @return string - * @throws Exception\InvalidArgumentException - */ - public function writeString( - $content, - $encoding = Encoder::DEFAULT_BYTE_MODE_ECODING, - $ecLevel = ErrorCorrectionLevel::L - ) { - if (strlen($content) === 0) { - throw new Exception\InvalidArgumentException('Found empty contents'); - } - - $qrCode = Encoder::encode($content, new ErrorCorrectionLevel($ecLevel), $encoding); - - return $this->getRenderer()->render($qrCode); - } - - /** - * Writes QR code to a file. - * - * @see Writer::writeString() - * @param string $content - * @param string $filename - * @param string $encoding - * @param integer $ecLevel - * @return void - */ - public function writeFile( - $content, - $filename, - $encoding = Encoder::DEFAULT_BYTE_MODE_ECODING, - $ecLevel = ErrorCorrectionLevel::L - ) { - file_put_contents($filename, $this->writeString($content, $encoding, $ecLevel)); - } -} diff --git a/vendor/bacon/bacon-qr-code/tests/BaconQrCode/Common/BitArrayTest.php b/vendor/bacon/bacon-qr-code/tests/BaconQrCode/Common/BitArrayTest.php deleted file mode 100644 index 81bcbce6..00000000 --- a/vendor/bacon/bacon-qr-code/tests/BaconQrCode/Common/BitArrayTest.php +++ /dev/null @@ -1,201 +0,0 @@ -assertFalse($array->get($i)); - $array->set($i); - $this->assertTrue($array->get($i)); - } - } - - public function testGetNextSet1() - { - $array = new BitArray(32); - - for ($i = 0; $i < $array->getSize(); $i++) { - $this->assertEquals($i, 32, '', $array->getNextSet($i)); - } - - $array = new BitArray(33); - - for ($i = 0; $i < $array->getSize(); $i++) { - $this->assertEquals($i, 33, '', $array->getNextSet($i)); - } - } - - public function testGetNextSet2() - { - $array = new BitArray(33); - - for ($i = 0; $i < $array->getSize(); $i++) { - $this->assertEquals($i, $i <= 31 ? 31 : 33, '', $array->getNextSet($i)); - } - - $array = new BitArray(33); - - for ($i = 0; $i < $array->getSize(); $i++) { - $this->assertEquals($i, 32, '', $array->getNextSet($i)); - } - } - - public function testGetNextSet3() - { - $array = new BitArray(63); - $array->set(31); - $array->set(32); - - for ($i = 0; $i < $array->getSize(); $i++) { - if ($i <= 31) { - $expected = 31; - } elseif ($i <= 32) { - $expected = 32; - } else { - $expected = 63; - } - - $this->assertEquals($i, $expected, '', $array->getNextSet($i)); - } - } - - public function testGetNextSet4() - { - $array = new BitArray(63); - $array->set(33); - $array->set(40); - - for ($i = 0; $i < $array->getSize(); $i++) { - if ($i <= 33) { - $expected = 33; - } elseif ($i <= 40) { - $expected = 40; - } else { - $expected = 63; - } - - $this->assertEquals($i, $expected, '', $array->getNextSet($i)); - } - } - - public function testGetNextSet5() - { - if (defined('MT_RAND_PHP')) { - mt_srand(0xdeadbeef, MT_RAND_PHP); - } else { - mt_srand(0xdeadbeef); - } - - for ($i = 0; $i < 10; $i++) { - $array = new BitArray(mt_rand(1, 100)); - $numSet = mt_rand(0, 19); - - for ($j = 0; $j < $numSet; $j++) { - $array->set(mt_rand(0, $array->getSize() - 1)); - } - - $numQueries = mt_rand(0, 19); - - for ($j = 0; $j < $numQueries; $j++) { - $query = mt_rand(0, $array->getSize() - 1); - $expected = $query; - - while ($expected < $array->getSize() && !$array->get($expected)) { - $expected++; - } - - $actual = $array->getNextSet($query); - - if ($actual !== $expected) { - $array->getNextSet($query); - } - - $this->assertEquals($expected, $actual); - } - } - } - - public function testSetBulk() - { - $array = new BitArray(64); - $array->setBulk(32, 0xFFFF0000); - - for ($i = 0; $i < 48; $i++) { - $this->assertFalse($array->get($i)); - } - - for ($i = 48; $i < 64; $i++) { - $this->assertTrue($array->get($i)); - } - } - - public function testClear() - { - $array = new BitArray(32); - - for ($i = 0; $i < 32; $i++) { - $array->set($i); - } - - $array->clear(); - - for ($i = 0; $i < 32; $i++) { - $this->assertFalse($array->get($i)); - } - } - - public function testGetArray() - { - $array = new BitArray(64); - $array->set(0); - $array->set(63); - - $ints = $array->getBitArray(); - - $this->assertEquals(1, $ints[0]); - $this->assertEquals(0x80000000, $ints[1]); - } - - public function testIsRange() - { - $array = new BitArray(64); - $this->assertTrue($array->isRange(0, 64, false)); - $this->assertFalse($array->isRange(0, 64, true)); - - $array->set(32); - $this->assertTrue($array->isRange(32, 33, true)); - - $array->set(31); - $this->assertTrue($array->isRange(31, 33, true)); - - $array->set(34); - $this->assertFalse($array->isRange(31, 35, true)); - - for ($i = 0; $i < 31; $i++) { - $array->set($i); - } - - $this->assertTrue($array->isRange(0, 33, true)); - - for ($i = 33; $i < 64; $i++) { - $array->set($i); - } - - $this->assertTrue($array->isRange(0, 64, true)); - $this->assertFalse($array->isRange(0, 64, false)); - } -} \ No newline at end of file diff --git a/vendor/bacon/bacon-qr-code/tests/BaconQrCode/Common/BitMatrixTest.php b/vendor/bacon/bacon-qr-code/tests/BaconQrCode/Common/BitMatrixTest.php deleted file mode 100644 index 89a58812..00000000 --- a/vendor/bacon/bacon-qr-code/tests/BaconQrCode/Common/BitMatrixTest.php +++ /dev/null @@ -1,119 +0,0 @@ -assertEquals(33, $matrix->getHeight()); - - for ($y = 0; $y < 33; $y++) { - for ($x = 0; $x < 33; $x++) { - if ($y * $x % 3 === 0) { - $matrix->set($x, $y); - } - } - } - - for ($y = 0; $y < 33; $y++) { - for ($x = 0; $x < 33; $x++) { - $this->assertEquals($x * $y % 3 === 0, $matrix->get($x, $y)); - } - } - } - - public function testSetRegion() - { - $matrix = new BitMatrix(5); - $matrix->setRegion(1, 1, 3, 3); - - for ($y = 0; $y < 5; $y++) { - for ($x = 0; $x < 5; $x++) { - $this->assertEquals($y >= 1 && $y <= 3 && $x >= 1 && $x <= 3, $matrix->get($x, $y)); - } - } - } - - public function testRectangularMatrix() - { - $matrix = new BitMatrix(75, 20); - $this->assertEquals(75, $matrix->getWidth()); - $this->assertEquals(20, $matrix->getHeight()); - - $matrix->set(10, 0); - $matrix->set(11, 1); - $matrix->set(50, 2); - $matrix->set(51, 3); - $matrix->flip(74, 4); - $matrix->flip(0, 5); - - $this->assertTrue($matrix->get(10, 0)); - $this->assertTrue($matrix->get(11, 1)); - $this->assertTrue($matrix->get(50, 2)); - $this->assertTrue($matrix->get(51, 3)); - $this->assertTrue($matrix->get(74, 4)); - $this->assertTrue($matrix->get(0, 5)); - - $matrix->flip(50, 2); - $matrix->flip(51, 3); - - $this->assertFalse($matrix->get(50, 2)); - $this->assertFalse($matrix->get(51, 3)); - } - - public function testRectangularSetRegion() - { - $matrix = new BitMatrix(320, 240); - $this->assertEquals(320, $matrix->getWidth()); - $this->assertEquals(240, $matrix->getHeight()); - - $matrix->setRegion(105, 22, 80, 12); - - for ($y = 0; $y < 240; $y++) { - for ($x = 0; $x < 320; $x++) { - $this->assertEquals($y >= 22 && $y < 34 && $x >= 105 && $x < 185, $matrix->get($x, $y)); - } - } - } - - public function testGetRow() - { - $matrix = new BitMatrix(102, 5); - - for ($x = 0; $x < 102; $x++) { - if ($x & 3 === 0) { - $matrix->set($x, 2); - } - } - - $array1 = $matrix->getRow(2, null); - $this->assertEquals(102, $array1->getSize()); - - $array2 = new BitArray(60); - $array2 = $matrix->getRow(2, $array2); - $this->assertEquals(102, $array2->getSize()); - - $array3 = new BitArray(200); - $array3 = $matrix->getRow(2, $array3); - $this->assertEquals(200, $array3->getSize()); - - for ($x = 0; $x < 102; $x++) { - $on = ($x & 3 === 0); - - $this->assertEquals($on, $array1->get($x)); - $this->assertEquals($on, $array2->get($x)); - $this->assertEquals($on, $array3->get($x)); - } - } -} \ No newline at end of file diff --git a/vendor/bacon/bacon-qr-code/tests/BaconQrCode/Common/BitUtilsTest.php b/vendor/bacon/bacon-qr-code/tests/BaconQrCode/Common/BitUtilsTest.php deleted file mode 100644 index b80ff7df..00000000 --- a/vendor/bacon/bacon-qr-code/tests/BaconQrCode/Common/BitUtilsTest.php +++ /dev/null @@ -1,30 +0,0 @@ -assertEquals(1, BitUtils::unsignedRightShift(1, 0)); - $this->assertEquals(1, BitUtils::unsignedRightShift(10, 3)); - $this->assertEquals(536870910, BitUtils::unsignedRightShift(-10, 3)); - } - - public function testNumberOfTrailingZeros() - { - $this->assertEquals(32, BitUtils::numberOfTrailingZeros(0)); - $this->assertEquals(1, BitUtils::numberOfTrailingZeros(10)); - $this->assertEquals(0, BitUtils::numberOfTrailingZeros(15)); - $this->assertEquals(2, BitUtils::numberOfTrailingZeros(20)); - } -} \ No newline at end of file diff --git a/vendor/bacon/bacon-qr-code/tests/BaconQrCode/Common/ErrorCorrectionLevelTest.php b/vendor/bacon/bacon-qr-code/tests/BaconQrCode/Common/ErrorCorrectionLevelTest.php deleted file mode 100644 index 736e995d..00000000 --- a/vendor/bacon/bacon-qr-code/tests/BaconQrCode/Common/ErrorCorrectionLevelTest.php +++ /dev/null @@ -1,40 +0,0 @@ -assertEquals(0x0, ErrorCorrectionLevel::M); - $this->assertEquals(0x1, ErrorCorrectionLevel::L); - $this->assertEquals(0x2, ErrorCorrectionLevel::H); - $this->assertEquals(0x3, ErrorCorrectionLevel::Q); - } - - public function testInvalidErrorCorrectionLevelThrowsException() - { - $this->setExpectedException( - 'BaconQrCode\Exception\UnexpectedValueException', - 'Value not a const in enum BaconQrCode\Common\ErrorCorrectionLevel' - ); - new ErrorCorrectionLevel(4); - } -} \ No newline at end of file diff --git a/vendor/bacon/bacon-qr-code/tests/BaconQrCode/Common/FormatInformationTest.php b/vendor/bacon/bacon-qr-code/tests/BaconQrCode/Common/FormatInformationTest.php deleted file mode 100644 index 5f6ee58c..00000000 --- a/vendor/bacon/bacon-qr-code/tests/BaconQrCode/Common/FormatInformationTest.php +++ /dev/null @@ -1,104 +0,0 @@ -unmaskedTestFormatInfo = $this->maskedTestFormatInfo ^ 0x5412; - } - - - public function testBitsDiffering() - { - $this->assertEquals(0, FormatInformation::numBitsDiffering(1, 1)); - $this->assertEquals(1, FormatInformation::numBitsDiffering(0, 2)); - $this->assertEquals(2, FormatInformation::numBitsDiffering(1, 2)); - $this->assertEquals(32, FormatInformation::numBitsDiffering(-1, 0)); - } - - public function testDecode() - { - $expected = FormatInformation::decodeFormatInformation( - $this->maskedTestFormatInfo, - $this->maskedTestFormatInfo - ); - - $this->assertNotNull($expected); - $this->assertEquals(7, $expected->getDataMask()); - $this->assertEquals(ErrorCorrectionLevel::Q, $expected->getErrorCorrectionLevel()->get()); - - $this->assertEquals( - $expected, - FormatInformation::decodeFormatInformation( - $this->unmaskedTestFormatInfo, - $this->maskedTestFormatInfo - ) - ); - } - - public function testDecodeWithBitDifference() - { - $expected = FormatInformation::decodeFormatInformation( - $this->maskedTestFormatInfo, - $this->maskedTestFormatInfo - ); - - $this->assertEquals( - $expected, - FormatInformation::decodeFormatInformation( - $this->maskedTestFormatInfo ^ 0x1, - $this->maskedTestFormatInfo ^ 0x1 - ) - ); - $this->assertEquals( - $expected, - FormatInformation::decodeFormatInformation( - $this->maskedTestFormatInfo ^ 0x3, - $this->maskedTestFormatInfo ^ 0x3 - ) - ); - $this->assertEquals( - $expected, - FormatInformation::decodeFormatInformation( - $this->maskedTestFormatInfo ^ 0x7, - $this->maskedTestFormatInfo ^ 0x7 - ) - ); - $this->assertNull( - FormatInformation::decodeFormatInformation( - $this->maskedTestFormatInfo ^ 0xf, - $this->maskedTestFormatInfo ^ 0xf - ) - ); - } - - public function testDecodeWithMisRead() - { - $expected = FormatInformation::decodeFormatInformation( - $this->maskedTestFormatInfo, - $this->maskedTestFormatInfo - ); - - $this->assertEquals( - $expected, - FormatInformation::decodeFormatInformation( - $this->maskedTestFormatInfo ^ 0x3, - $this->maskedTestFormatInfo ^ 0xf - ) - ); - } -} \ No newline at end of file diff --git a/vendor/bacon/bacon-qr-code/tests/BaconQrCode/Common/ModeTest.php b/vendor/bacon/bacon-qr-code/tests/BaconQrCode/Common/ModeTest.php deleted file mode 100644 index 4daab7c3..00000000 --- a/vendor/bacon/bacon-qr-code/tests/BaconQrCode/Common/ModeTest.php +++ /dev/null @@ -1,42 +0,0 @@ -assertEquals(0x0, Mode::TERMINATOR); - $this->assertEquals(0x1, Mode::NUMERIC); - $this->assertEquals(0x2, Mode::ALPHANUMERIC); - $this->assertEquals(0x4, Mode::BYTE); - $this->assertEquals(0x8, Mode::KANJI); - } - - public function testInvalidModeThrowsException() - { - $this->setExpectedException( - 'BaconQrCode\Exception\UnexpectedValueException', - 'Value not a const in enum BaconQrCode\Common\Mode' - ); - new Mode(10); - } -} \ No newline at end of file diff --git a/vendor/bacon/bacon-qr-code/tests/BaconQrCode/Common/ReedSolomonCodecTest.php b/vendor/bacon/bacon-qr-code/tests/BaconQrCode/Common/ReedSolomonCodecTest.php deleted file mode 100644 index 604641a0..00000000 --- a/vendor/bacon/bacon-qr-code/tests/BaconQrCode/Common/ReedSolomonCodecTest.php +++ /dev/null @@ -1,111 +0,0 @@ -encode($block, $parity); - - // Copy parity into test blocks - for ($i = 0; $i < $numRoots; $i++) { - $block[$i + $dataSize] = $parity[$i]; - $tBlock[$i + $dataSize] = $parity[$i]; - } - - // Seed with errors - for ($i = 0; $i < $errors; $i++) { - $errorValue = mt_rand(1, $blockSize); - - do { - $errorLocation = mt_rand(0, $blockSize); - } while ($errorLocations[$errorLocation] !== 0); - - $errorLocations[$errorLocation] = 1; - - if (mt_rand(0, 1)) { - $erasures[] = $errorLocation; - } - - $tBlock[$errorLocation] ^= $errorValue; - } - - $erasures = SplFixedArray::fromArray($erasures, false); - - // Decode the errored block - $foundErrors = $codec->decode($tBlock, $erasures); - - if ($errors > 0 && $foundErrors === null) { - $this->assertEquals($block, $tBlock, 'Decoder failed to correct errors'); - } - - $this->assertEquals($errors, $foundErrors, 'Found errors do not equal expected errors'); - - for ($i = 0; $i < $foundErrors; $i++) { - if ($errorLocations[$erasures[$i]] === 0) { - $this->fail(sprintf('Decoder indicates error in location %d without error', $erasures[$i])); - } - } - - $this->assertEquals($block, $tBlock, 'Decoder did not correct errors'); - } - } -} \ No newline at end of file diff --git a/vendor/bacon/bacon-qr-code/tests/BaconQrCode/Common/VersionTest.php b/vendor/bacon/bacon-qr-code/tests/BaconQrCode/Common/VersionTest.php deleted file mode 100644 index 8b3fc01f..00000000 --- a/vendor/bacon/bacon-qr-code/tests/BaconQrCode/Common/VersionTest.php +++ /dev/null @@ -1,88 +0,0 @@ -assertNotNull($version); - $this->assertEquals($versionNumber, $version->getVersionNumber()); - $this->assertNotNull($version->getAlignmentPatternCenters()); - - if ($versionNumber > 1) { - $this->assertTrue(count($version->getAlignmentPatternCenters()) > 0); - } - - $this->assertEquals($dimension, $version->getDimensionForVersion()); - $this->assertNotNull($version->getEcBlocksForLevel(new ErrorCorrectionLevel(ErrorCorrectionLevel::H))); - $this->assertNotNull($version->getEcBlocksForLevel(new ErrorCorrectionLevel(ErrorCorrectionLevel::L))); - $this->assertNotNull($version->getEcBlocksForLevel(new ErrorCorrectionLevel(ErrorCorrectionLevel::M))); - $this->assertNotNull($version->getEcBlocksForLevel(new ErrorCorrectionLevel(ErrorCorrectionLevel::Q))); - $this->assertNotNull($version->buildFunctionPattern()); - } - - /** - * @dataProvider versionProvider - * @param integer $versionNumber - * @param integer $dimension - */ - public function testGetProvisionalVersionForDimension($versionNumber, $dimension) - { - $this->assertEquals( - $versionNumber, - Version::getProvisionalVersionForDimension($dimension)->getVersionNumber() - ); - } - - /** - * @dataProvider decodeInformationProvider - * @param integer $expectedVersion - * @param integer $mask - */ - public function testDecodeVersionInformation($expectedVersion, $mask) - { - $version = Version::decodeVersionInformation($mask); - $this->assertNotNull($version); - $this->assertEquals($expectedVersion, $version->getVersionNumber()); - } -} \ No newline at end of file diff --git a/vendor/bacon/bacon-qr-code/tests/BaconQrCode/Encoder/EncoderTest.php b/vendor/bacon/bacon-qr-code/tests/BaconQrCode/Encoder/EncoderTest.php deleted file mode 100644 index 31cdaa4e..00000000 --- a/vendor/bacon/bacon-qr-code/tests/BaconQrCode/Encoder/EncoderTest.php +++ /dev/null @@ -1,468 +0,0 @@ -getMethods(ReflectionMethod::IS_STATIC) as $method) { - $method->setAccessible(true); - $this->methods[$method->getName()] = $method; - } - } - - public function testGetAlphanumericCode() - { - // The first ten code points are numbers. - for ($i = 0; $i < 10; $i++) { - $this->assertEquals($i, $this->methods['getAlphanumericCode']->invoke(null, ord('0') + $i)); - } - - // The next 26 code points are capital alphabet letters. - for ($i = 10; $i < 36; $i++) { - // The first ten code points are numbers - $this->assertEquals($i, $this->methods['getAlphanumericCode']->invoke(null, ord('A') + $i - 10)); - } - - // Others are symbol letters. - $this->assertEquals(36, $this->methods['getAlphanumericCode']->invoke(null, ' ')); - $this->assertEquals(37, $this->methods['getAlphanumericCode']->invoke(null, '$')); - $this->assertEquals(38, $this->methods['getAlphanumericCode']->invoke(null, '%')); - $this->assertEquals(39, $this->methods['getAlphanumericCode']->invoke(null, '*')); - $this->assertEquals(40, $this->methods['getAlphanumericCode']->invoke(null, '+')); - $this->assertEquals(41, $this->methods['getAlphanumericCode']->invoke(null, '-')); - $this->assertEquals(42, $this->methods['getAlphanumericCode']->invoke(null, '.')); - $this->assertEquals(43, $this->methods['getAlphanumericCode']->invoke(null, '/')); - $this->assertEquals(44, $this->methods['getAlphanumericCode']->invoke(null, ':')); - - // Should return -1 for other letters. - $this->assertEquals(-1, $this->methods['getAlphanumericCode']->invoke(null, 'a')); - $this->assertEquals(-1, $this->methods['getAlphanumericCode']->invoke(null, '#')); - $this->assertEquals(-1, $this->methods['getAlphanumericCode']->invoke(null, "\0")); - } - - public function testChooseMode() - { - // Numeric mode - $this->assertSame(Mode::NUMERIC, $this->methods['chooseMode']->invoke(null, '0')->get()); - $this->assertSame(Mode::NUMERIC, $this->methods['chooseMode']->invoke(null, '0123456789')->get()); - - // Alphanumeric mode - $this->assertSame(Mode::ALPHANUMERIC, $this->methods['chooseMode']->invoke(null, 'A')->get()); - $this->assertSame(Mode::ALPHANUMERIC, $this->methods['chooseMode']->invoke(null, '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ $%*+-./:')->get()); - - // 8-bit byte mode - $this->assertSame(Mode::BYTE, $this->methods['chooseMode']->invoke(null, 'a')->get()); - $this->assertSame(Mode::BYTE, $this->methods['chooseMode']->invoke(null, '#')->get()); - $this->assertSame(Mode::BYTE, $this->methods['chooseMode']->invoke(null, '')->get()); - - // AIUE in Hiragana in SHIFT-JIS - $this->assertSame(Mode::BYTE, $this->methods['chooseMode']->invoke(null, "\x8\xa\x8\xa\x8\xa\x8\xa6")->get()); - - // Nihon in Kanji in SHIFT-JIS - $this->assertSame(Mode::BYTE, $this->methods['chooseMode']->invoke(null, "\x9\xf\x9\x7b")->get()); - - // Sou-Utso-Byou in Kanji in SHIFT-JIS - $this->assertSame(Mode::BYTE, $this->methods['chooseMode']->invoke(null, "\xe\x4\x9\x5\x9\x61")->get()); - } - - public function testEncode() - { - $qrCode = Encoder::encode('ABCDEF', new ErrorCorrectionLevel(ErrorCorrectionLevel::H)); - $expected = "<<\n" - . " mode: ALPHANUMERIC\n" - . " ecLevel: H\n" - . " version: 1\n" - . " maskPattern: 0\n" - . " matrix:\n" - . " 1 1 1 1 1 1 1 0 1 1 1 1 0 0 1 1 1 1 1 1 1\n" - . " 1 0 0 0 0 0 1 0 0 1 1 1 0 0 1 0 0 0 0 0 1\n" - . " 1 0 1 1 1 0 1 0 0 1 0 1 1 0 1 0 1 1 1 0 1\n" - . " 1 0 1 1 1 0 1 0 1 1 1 0 1 0 1 0 1 1 1 0 1\n" - . " 1 0 1 1 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1\n" - . " 1 0 0 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 1\n" - . " 1 1 1 1 1 1 1 0 1 0 1 0 1 0 1 1 1 1 1 1 1\n" - . " 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0\n" - . " 0 0 1 0 1 1 1 0 1 1 0 0 1 1 0 0 0 1 0 0 1\n" - . " 1 0 1 1 1 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0\n" - . " 0 0 1 1 0 0 1 0 1 0 0 0 1 0 1 0 1 0 1 1 0\n" - . " 1 1 0 1 0 1 0 1 1 1 0 1 0 1 0 0 0 0 0 1 0\n" - . " 0 0 1 1 0 1 1 1 1 0 0 0 1 0 1 0 1 1 1 1 0\n" - . " 0 0 0 0 0 0 0 0 1 0 0 1 1 1 0 1 0 1 0 0 0\n" - . " 1 1 1 1 1 1 1 0 0 0 1 0 1 0 1 1 0 0 0 0 1\n" - . " 1 0 0 0 0 0 1 0 1 1 1 1 0 1 0 1 1 1 1 0 1\n" - . " 1 0 1 1 1 0 1 0 1 0 1 1 0 1 0 1 0 0 0 0 1\n" - . " 1 0 1 1 1 0 1 0 0 1 1 0 1 1 1 1 0 1 0 1 0\n" - . " 1 0 1 1 1 0 1 0 1 0 0 0 1 0 1 0 1 1 1 0 1\n" - . " 1 0 0 0 0 0 1 0 0 1 1 0 1 1 0 1 0 0 0 1 1\n" - . " 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 1 0 1 0 1\n" - . ">>\n"; - - $this->assertEquals($expected, $qrCode->__toString()); - } - - public function testSimpleUtf8Eci() - { - $qrCode = Encoder::encode('hello', new ErrorCorrectionLevel(ErrorCorrectionLevel::H), 'utf-8'); - $expected = "<<\n" - . " mode: BYTE\n" - . " ecLevel: H\n" - . " version: 1\n" - . " maskPattern: 3\n" - . " matrix:\n" - . " 1 1 1 1 1 1 1 0 0 0 0 0 0 0 1 1 1 1 1 1 1\n" - . " 1 0 0 0 0 0 1 0 0 0 1 0 1 0 1 0 0 0 0 0 1\n" - . " 1 0 1 1 1 0 1 0 0 1 0 1 0 0 1 0 1 1 1 0 1\n" - . " 1 0 1 1 1 0 1 0 0 1 1 0 1 0 1 0 1 1 1 0 1\n" - . " 1 0 1 1 1 0 1 0 1 0 1 0 1 0 1 0 1 1 1 0 1\n" - . " 1 0 0 0 0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 1\n" - . " 1 1 1 1 1 1 1 0 1 0 1 0 1 0 1 1 1 1 1 1 1\n" - . " 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0\n" - . " 0 0 1 1 0 0 1 1 1 1 0 0 0 1 1 0 1 0 0 0 0\n" - . " 0 0 1 1 1 0 0 0 0 0 1 1 0 0 0 1 0 1 1 1 0\n" - . " 0 1 0 1 0 1 1 1 0 1 0 1 0 0 0 0 0 1 1 1 1\n" - . " 1 1 0 0 1 0 0 1 1 0 0 1 1 1 1 0 1 0 1 1 0\n" - . " 0 0 0 0 1 0 1 1 1 1 0 0 0 0 0 1 0 0 1 0 0\n" - . " 0 0 0 0 0 0 0 0 1 1 1 1 0 0 1 1 1 0 0 0 1\n" - . " 1 1 1 1 1 1 1 0 1 1 1 0 1 0 1 1 0 0 1 0 0\n" - . " 1 0 0 0 0 0 1 0 0 0 1 0 0 1 1 1 1 1 1 0 1\n" - . " 1 0 1 1 1 0 1 0 0 1 0 0 0 0 1 1 0 0 0 0 0\n" - . " 1 0 1 1 1 0 1 0 1 1 1 0 1 0 0 0 1 1 0 0 0\n" - . " 1 0 1 1 1 0 1 0 1 1 0 0 0 1 0 0 1 0 0 0 0\n" - . " 1 0 0 0 0 0 1 0 0 0 0 1 1 0 1 0 1 0 1 1 0\n" - . " 1 1 1 1 1 1 1 0 0 1 0 1 1 1 0 1 1 0 0 0 0\n" - . ">>\n"; - - $this->assertEquals($expected, $qrCode->__toString()); - } - - public function testAppendModeInfo() - { - $bits = new BitArray(); - $this->methods['appendModeInfo']->invoke(null, new Mode(Mode::NUMERIC), $bits); - $this->assertEquals(' ...X', $bits->__toString()); - } - - public function testAppendLengthInfo() - { - // 1 letter (1/1), 10 bits. - $bits = new BitArray(); - $this->methods['appendLengthInfo']->invoke( - null, - 1, - Version::getVersionForNumber(1), - new Mode(Mode::NUMERIC), - $bits - ); - $this->assertEquals(' ........ .X', $bits->__toString()); - - // 2 letters (2/1), 11 bits. - $bits = new BitArray(); - $this->methods['appendLengthInfo']->invoke( - null, - 2, - Version::getVersionForNumber(10), - new Mode(Mode::ALPHANUMERIC), - $bits - ); - $this->assertEquals(' ........ .X.', $bits->__toString()); - - // 255 letters (255/1), 16 bits. - $bits = new BitArray(); - $this->methods['appendLengthInfo']->invoke( - null, - 255, - Version::getVersionForNumber(27), - new Mode(Mode::BYTE), - $bits - ); - $this->assertEquals(' ........ XXXXXXXX', $bits->__toString()); - - // 512 letters (1024/2), 12 bits. - $bits = new BitArray(); - $this->methods['appendLengthInfo']->invoke( - null, - 512, - Version::getVersionForNumber(40), - new Mode(Mode::KANJI), - $bits - ); - $this->assertEquals(' ..X..... ....', $bits->__toString()); - } - - public function testAppendBytes() - { - // Should use appendNumericBytes. - // 1 = 01 = 0001 in 4 bits. - $bits = new BitArray(); - $this->methods['appendBytes']->invoke( - null, - '1', - new Mode(Mode::NUMERIC), - $bits, - Encoder::DEFAULT_BYTE_MODE_ECODING - ); - $this->assertEquals(' ...X', $bits->__toString()); - - // Should use appendAlphaNumericBytes. - // A = 10 = 0xa = 001010 in 6 bits. - $bits = new BitArray(); - $this->methods['appendBytes']->invoke( - null, - 'A', - new Mode(Mode::ALPHANUMERIC), - $bits, - Encoder::DEFAULT_BYTE_MODE_ECODING - ); - $this->assertEquals(' ..X.X.', $bits->__toString()); - - // Should use append8BitBytes. - // 0x61, 0x62, 0x63 - $bits = new BitArray(); - $this->methods['appendBytes']->invoke( - null, - 'abc', - new Mode(Mode::BYTE), - $bits, - Encoder::DEFAULT_BYTE_MODE_ECODING - ); - $this->assertEquals(' .XX....X .XX...X. .XX...XX', $bits->__toString()); - - // Should use appendKanjiBytes. - // 0x93, 0x5f - $bits = new BitArray(); - $this->methods['appendBytes']->invoke( - null, - "\x93\x5f", - new Mode(Mode::KANJI), - $bits, - Encoder::DEFAULT_BYTE_MODE_ECODING - ); - $this->assertEquals(' .XX.XX.. XXXXX', $bits->__toString()); - - // Lower letters such as 'a' cannot be encoded in alphanumeric mode. - $this->setExpectedException( - 'BaconQrCode\Exception\WriterException', - 'Invalid alphanumeric code' - ); - $this->methods['appendBytes']->invoke( - null, - "a", - new Mode(Mode::ALPHANUMERIC), - $bits, - Encoder::DEFAULT_BYTE_MODE_ECODING - ); - } - - public function testTerminateBits() - { - $bits = new BitArray(); - $this->methods['terminateBits']->invoke(null, 0, $bits); - $this->assertEquals('', $bits->__toString()); - - $bits = new BitArray(); - $this->methods['terminateBits']->invoke(null, 1, $bits); - $this->assertEquals(' ........', $bits->__toString()); - - $bits = new BitArray(); - $bits->appendBits(0, 3); - $this->methods['terminateBits']->invoke(null, 1, $bits); - $this->assertEquals(' ........', $bits->__toString()); - - $bits = new BitArray(); - $bits->appendBits(0, 5); - $this->methods['terminateBits']->invoke(null, 1, $bits); - $this->assertEquals(' ........', $bits->__toString()); - - $bits = new BitArray(); - $bits->appendBits(0, 8); - $this->methods['terminateBits']->invoke(null, 1, $bits); - $this->assertEquals(' ........', $bits->__toString()); - - $bits = new BitArray(); - $this->methods['terminateBits']->invoke(null, 2, $bits); - $this->assertEquals(' ........ XXX.XX..', $bits->__toString()); - - $bits = new BitArray(); - $bits->appendBits(0, 1); - $this->methods['terminateBits']->invoke(null, 3, $bits); - $this->assertEquals(' ........ XXX.XX.. ...X...X', $bits->__toString()); - } - - public function testGetNumDataBytesAndNumEcBytesForBlockId() - { - // Version 1-H. - list($numDataBytes, $numEcBytes) = $this->methods['getNumDataBytesAndNumEcBytesForBlockId']->invoke(null, 26, 9, 1, 0); - $this->assertEquals(9, $numDataBytes); - $this->assertEquals(17, $numEcBytes); - - // Version 3-H. 2 blocks. - list($numDataBytes, $numEcBytes) = $this->methods['getNumDataBytesAndNumEcBytesForBlockId']->invoke(null, 70, 26, 2, 0); - $this->assertEquals(13, $numDataBytes); - $this->assertEquals(22, $numEcBytes); - list($numDataBytes, $numEcBytes) = $this->methods['getNumDataBytesAndNumEcBytesForBlockId']->invoke(null, 70, 26, 2, 1); - $this->assertEquals(13, $numDataBytes); - $this->assertEquals(22, $numEcBytes); - - // Version 7-H. (4 + 1) blocks. - list($numDataBytes, $numEcBytes) = $this->methods['getNumDataBytesAndNumEcBytesForBlockId']->invoke(null, 196, 66, 5, 0); - $this->assertEquals(13, $numDataBytes); - $this->assertEquals(26, $numEcBytes); - list($numDataBytes, $numEcBytes) = $this->methods['getNumDataBytesAndNumEcBytesForBlockId']->invoke(null, 196, 66, 5, 4); - $this->assertEquals(14, $numDataBytes); - $this->assertEquals(26, $numEcBytes); - - // Version 40-H. (20 + 61) blocks. - list($numDataBytes, $numEcBytes) = $this->methods['getNumDataBytesAndNumEcBytesForBlockId']->invoke(null, 3706, 1276, 81, 0); - $this->assertEquals(15, $numDataBytes); - $this->assertEquals(30, $numEcBytes); - list($numDataBytes, $numEcBytes) = $this->methods['getNumDataBytesAndNumEcBytesForBlockId']->invoke(null, 3706, 1276, 81, 20); - $this->assertEquals(16, $numDataBytes); - $this->assertEquals(30, $numEcBytes); - list($numDataBytes, $numEcBytes) = $this->methods['getNumDataBytesAndNumEcBytesForBlockId']->invoke(null, 3706, 1276, 81, 80); - $this->assertEquals(16, $numDataBytes); - $this->assertEquals(30, $numEcBytes); - } - - public function testInterleaveWithEcBytes() - { - $dataBytes = SplFixedArray::fromArray(array(32, 65, 205, 69, 41, 220, 46, 128, 236), false); - $in = new BitArray(); - - foreach ($dataBytes as $dataByte) { - $in->appendBits($dataByte, 8); - } - - $outBits = $this->methods['interleaveWithEcBytes']->invoke(null, $in, 26, 9, 1); - $expected = SplFixedArray::fromArray(array( - // Data bytes. - 32, 65, 205, 69, 41, 220, 46, 128, 236, - // Error correction bytes. - 42, 159, 74, 221, 244, 169, 239, 150, 138, 70, 237, 85, 224, 96, 74, 219, 61, - ), false); - - $out = $outBits->toBytes(0, count($expected)); - - $this->assertEquals($expected, $out); - } - - public function testAppendNumericBytes() - { - // 1 = 01 = 0001 in 4 bits. - $bits = new BitArray(); - $this->methods['appendNumericBytes']->invoke(null, '1', $bits); - $this->assertEquals(' ...X', $bits->__toString()); - - // 12 = 0xc = 0001100 in 7 bits. - $bits = new BitArray(); - $this->methods['appendNumericBytes']->invoke(null, '12', $bits); - $this->assertEquals(' ...XX..', $bits->__toString()); - - // 123 = 0x7b = 0001111011 in 10 bits. - $bits = new BitArray(); - $this->methods['appendNumericBytes']->invoke(null, '123', $bits); - $this->assertEquals(' ...XXXX. XX', $bits->__toString()); - - // 1234 = "123" + "4" = 0001111011 + 0100 in 14 bits. - $bits = new BitArray(); - $this->methods['appendNumericBytes']->invoke(null, '1234', $bits); - $this->assertEquals(' ...XXXX. XX.X..', $bits->__toString()); - - // Empty - $bits = new BitArray(); - $this->methods['appendNumericBytes']->invoke(null, '', $bits); - $this->assertEquals('', $bits->__toString()); - } - - public function testAppendAlphanumericBytes() - { - $bits = new BitArray(); - $this->methods['appendAlphanumericBytes']->invoke(null, 'A', $bits); - $this->assertEquals(' ..X.X.', $bits->__toString()); - - $bits = new BitArray(); - $this->methods['appendAlphanumericBytes']->invoke(null, 'AB', $bits); - $this->assertEquals(' ..XXX..X X.X', $bits->__toString()); - - $bits = new BitArray(); - $this->methods['appendAlphanumericBytes']->invoke(null, 'ABC', $bits); - $this->assertEquals(' ..XXX..X X.X..XX. .', $bits->__toString()); - - // Empty - $bits = new BitArray(); - $this->methods['appendAlphanumericBytes']->invoke(null, '', $bits); - $this->assertEquals('', $bits->__toString()); - - // Invalid data - $this->setExpectedException('BaconQrCode\Exception\WriterException', 'Invalid alphanumeric code'); - $bits = new BitArray(); - $this->methods['appendAlphanumericBytes']->invoke(null, 'abc', $bits); - } - - public function testAppend8BitBytes() - { - // 0x61, 0x62, 0x63 - $bits = new BitArray(); - $this->methods['append8BitBytes']->invoke(null, 'abc', $bits, Encoder::DEFAULT_BYTE_MODE_ECODING); - $this->assertEquals(' .XX....X .XX...X. .XX...XX', $bits->__toString()); - - // Empty - $bits = new BitArray(); - $this->methods['append8BitBytes']->invoke(null, '', $bits, Encoder::DEFAULT_BYTE_MODE_ECODING); - $this->assertEquals('', $bits->__toString()); - } - - public function testAppendKanjiBytes() - { - // Numbers are from page 21 of JISX0510:2004 - $bits = new BitArray(); - $this->methods['appendKanjiBytes']->invoke(null, "\x93\x5f", $bits); - $this->assertEquals(' .XX.XX.. XXXXX', $bits->__toString()); - - $this->methods['appendKanjiBytes']->invoke(null, "\xe4\xaa", $bits); - $this->assertEquals(' .XX.XX.. XXXXXXX. X.X.X.X. X.', $bits->__toString()); - } - - public function testGenerateEcBytes() - { - // Numbers are from http://www.swetake.com/qr/qr3.html and - // http://www.swetake.com/qr/qr9.html - $dataBytes = SplFixedArray::fromArray(array(32, 65, 205, 69, 41, 220, 46, 128, 236), false); - $ecBytes = $this->methods['generateEcBytes']->invoke(null, $dataBytes, 17); - $expected = SplFixedArray::fromArray(array(42, 159, 74, 221, 244, 169, 239, 150, 138, 70, 237, 85, 224, 96, 74, 219, 61), false); - $this->assertEquals($expected, $ecBytes); - - $dataBytes = SplFixedArray::fromArray(array(67, 70, 22, 38, 54, 70, 86, 102, 118, 134, 150, 166, 182, 198, 214), false); - $ecBytes = $this->methods['generateEcBytes']->invoke(null, $dataBytes, 18); - $expected = SplFixedArray::fromArray(array(175, 80, 155, 64, 178, 45, 214, 233, 65, 209, 12, 155, 117, 31, 140, 214, 27, 187), false); - $this->assertEquals($expected, $ecBytes); - - // High-order zero coefficient case. - $dataBytes = SplFixedArray::fromArray(array(32, 49, 205, 69, 42, 20, 0, 236, 17), false); - $ecBytes = $this->methods['generateEcBytes']->invoke(null, $dataBytes, 17); - $expected = SplFixedArray::fromArray(array(0, 3, 130, 179, 194, 0, 55, 211, 110, 79, 98, 72, 170, 96, 211, 137, 213), false); - $this->assertEquals($expected, $ecBytes); - } -} \ No newline at end of file diff --git a/vendor/bacon/bacon-qr-code/tests/BaconQrCode/Encoder/MaskUtilTest.php b/vendor/bacon/bacon-qr-code/tests/BaconQrCode/Encoder/MaskUtilTest.php deleted file mode 100644 index a5c38656..00000000 --- a/vendor/bacon/bacon-qr-code/tests/BaconQrCode/Encoder/MaskUtilTest.php +++ /dev/null @@ -1,281 +0,0 @@ -fail('Data mask bit did not match'); - } - } - } - } - - public function testApplyMaskPenaltyRule1() - { - $matrix = new ByteMatrix(4, 1); - $matrix->set(0, 0, 0); - $matrix->set(1, 0, 0); - $matrix->set(2, 0, 0); - $matrix->set(3, 0, 0); - - $this->assertEquals(0, MaskUtil::applyMaskPenaltyRule1($matrix)); - - // Horizontal - $matrix = new ByteMatrix(6, 1); - $matrix->set(0, 0, 0); - $matrix->set(1, 0, 0); - $matrix->set(2, 0, 0); - $matrix->set(3, 0, 0); - $matrix->set(4, 0, 0); - $matrix->set(5, 0, 1); - $this->assertEquals(3, MaskUtil::applyMaskPenaltyRule1($matrix)); - $matrix->set(5, 0, 0); - $this->assertEquals(4, MaskUtil::applyMaskPenaltyRule1($matrix)); - - // Vertical - $matrix = new ByteMatrix(1, 6); - $matrix->set(0, 0, 0); - $matrix->set(0, 1, 0); - $matrix->set(0, 2, 0); - $matrix->set(0, 3, 0); - $matrix->set(0, 4, 0); - $matrix->set(0, 5, 1); - $this->assertEquals(3, MaskUtil::applyMaskPenaltyRule1($matrix)); - $matrix->set(0, 5, 0); - $this->assertEquals(4, MaskUtil::applyMaskPenaltyRule1($matrix)); - } - - public function testApplyMaskPenaltyRule2() - { - $matrix = new ByteMatrix(1, 1); - $matrix->set(0, 0, 0); - $this->assertEquals(0, MaskUtil::applyMaskPenaltyRule2($matrix)); - - $matrix = new ByteMatrix(2, 2); - $matrix->set(0, 0, 0); - $matrix->set(1, 0, 0); - $matrix->set(0, 1, 0); - $matrix->set(1, 1, 1); - $this->assertEquals(0, MaskUtil::applyMaskPenaltyRule2($matrix)); - - $matrix = new ByteMatrix(2, 2); - $matrix->set(0, 0, 0); - $matrix->set(1, 0, 0); - $matrix->set(0, 1, 0); - $matrix->set(1, 1, 0); - $this->assertEquals(3, MaskUtil::applyMaskPenaltyRule2($matrix)); - - $matrix = new ByteMatrix(3, 3); - $matrix->set(0, 0, 0); - $matrix->set(1, 0, 0); - $matrix->set(2, 0, 0); - $matrix->set(0, 1, 0); - $matrix->set(1, 1, 0); - $matrix->set(2, 1, 0); - $matrix->set(0, 2, 0); - $matrix->set(1, 2, 0); - $matrix->set(2, 2, 0); - $this->assertEquals(3 * 4, MaskUtil::applyMaskPenaltyRule2($matrix)); - } - - public function testApplyMaskPenalty3() - { - // Horizontal 00001011101 - $matrix = new ByteMatrix(11, 1); - $matrix->set(0, 0, 0); - $matrix->set(1, 0, 0); - $matrix->set(2, 0, 0); - $matrix->set(3, 0, 0); - $matrix->set(4, 0, 1); - $matrix->set(5, 0, 0); - $matrix->set(6, 0, 1); - $matrix->set(7, 0, 1); - $matrix->set(8, 0, 1); - $matrix->set(9, 0, 0); - $matrix->set(10, 0, 1); - $this->assertEquals(40, MaskUtil::applyMaskPenaltyRule3($matrix)); - - // Horizontal 10111010000 - $matrix = new ByteMatrix(11, 1); - $matrix->set(0, 0, 1); - $matrix->set(1, 0, 0); - $matrix->set(2, 0, 1); - $matrix->set(3, 0, 1); - $matrix->set(4, 0, 1); - $matrix->set(5, 0, 0); - $matrix->set(6, 0, 1); - $matrix->set(7, 0, 0); - $matrix->set(8, 0, 0); - $matrix->set(9, 0, 0); - $matrix->set(10, 0, 0); - $this->assertEquals(40, MaskUtil::applyMaskPenaltyRule3($matrix)); - - // Vertical 00001011101 - $matrix = new ByteMatrix(1, 11); - $matrix->set(0, 0, 0); - $matrix->set(0, 1, 0); - $matrix->set(0, 2, 0); - $matrix->set(0, 3, 0); - $matrix->set(0, 4, 1); - $matrix->set(0, 5, 0); - $matrix->set(0, 6, 1); - $matrix->set(0, 7, 1); - $matrix->set(0, 8, 1); - $matrix->set(0, 9, 0); - $matrix->set(0, 10, 1); - $this->assertEquals(40, MaskUtil::applyMaskPenaltyRule3($matrix)); - - // Vertical 10111010000 - $matrix = new ByteMatrix(1, 11); - $matrix->set(0, 0, 1); - $matrix->set(0, 1, 0); - $matrix->set(0, 2, 1); - $matrix->set(0, 3, 1); - $matrix->set(0, 4, 1); - $matrix->set(0, 5, 0); - $matrix->set(0, 6, 1); - $matrix->set(0, 7, 0); - $matrix->set(0, 8, 0); - $matrix->set(0, 9, 0); - $matrix->set(0, 10, 0); - $this->assertEquals(40, MaskUtil::applyMaskPenaltyRule3($matrix)); - } - - public function testApplyMaskPenaltyRule4() - { - // Dark cell ratio = 0% - $matrix = new ByteMatrix(1, 1); - $matrix->set(0, 0, 0); - $this->assertEquals(100, MaskUtil::applyMaskPenaltyRule4($matrix)); - - // Dark cell ratio = 5% - $matrix = new ByteMatrix(2, 1); - $matrix->set(0, 0, 0); - $matrix->set(0, 0, 1); - $this->assertEquals(0, MaskUtil::applyMaskPenaltyRule4($matrix)); - - // Dark cell ratio = 66.67% - $matrix = new ByteMatrix(6, 1); - $matrix->set(0, 0, 0); - $matrix->set(1, 0, 1); - $matrix->set(2, 0, 1); - $matrix->set(3, 0, 1); - $matrix->set(4, 0, 1); - $matrix->set(5, 0, 0); - $this->assertEquals(30, MaskUtil::applyMaskPenaltyRule4($matrix)); - } -} \ No newline at end of file diff --git a/vendor/bacon/bacon-qr-code/tests/BaconQrCode/Encoder/MatrixUtilTest.php b/vendor/bacon/bacon-qr-code/tests/BaconQrCode/Encoder/MatrixUtilTest.php deleted file mode 100644 index bf3544f0..00000000 --- a/vendor/bacon/bacon-qr-code/tests/BaconQrCode/Encoder/MatrixUtilTest.php +++ /dev/null @@ -1,336 +0,0 @@ -getMethods(ReflectionMethod::IS_STATIC) as $method) { - $method->setAccessible(true); - $this->methods[$method->getName()] = $method; - } - } - - public function testToString() - { - $matrix= new ByteMatrix(3, 3); - $matrix->set(0, 0, 0); - $matrix->set(1, 0, 1); - $matrix->set(2, 0, 0); - $matrix->set(0, 1, 1); - $matrix->set(1, 1, 0); - $matrix->set(2, 1, 1); - $matrix->set(0, 2, -1); - $matrix->set(1, 2, -1); - $matrix->set(2, 2, -1); - - $expected = " 0 1 0\n 1 0 1\n \n"; - $this->assertEquals($expected, $matrix->__toString()); - } - - public function testClearMatrix() - { - $matrix = new ByteMatrix(2, 2); - MatrixUtil::clearMatrix($matrix); - - $this->assertEquals(-1, $matrix->get(0, 0)); - $this->assertEquals(-1, $matrix->get(1, 0)); - $this->assertEquals(-1, $matrix->get(0, 1)); - $this->assertEquals(-1, $matrix->get(1, 1)); - } - - public function testEmbedBasicPatterns1() - { - $matrix = new ByteMatrix(21, 21); - MatrixUtil::clearMatrix($matrix); - $this->methods['embedBasicPatterns']->invoke( - null, - Version::getVersionForNumber(1), - $matrix - ); - $expected = " 1 1 1 1 1 1 1 0 0 1 1 1 1 1 1 1\n" - . " 1 0 0 0 0 0 1 0 0 1 0 0 0 0 0 1\n" - . " 1 0 1 1 1 0 1 0 0 1 0 1 1 1 0 1\n" - . " 1 0 1 1 1 0 1 0 0 1 0 1 1 1 0 1\n" - . " 1 0 1 1 1 0 1 0 0 1 0 1 1 1 0 1\n" - . " 1 0 0 0 0 0 1 0 0 1 0 0 0 0 0 1\n" - . " 1 1 1 1 1 1 1 0 1 0 1 0 1 0 1 1 1 1 1 1 1\n" - . " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0\n" - . " 1 \n" - . " 0 \n" - . " 1 \n" - . " 0 \n" - . " 1 \n" - . " 0 0 0 0 0 0 0 0 1 \n" - . " 1 1 1 1 1 1 1 0 \n" - . " 1 0 0 0 0 0 1 0 \n" - . " 1 0 1 1 1 0 1 0 \n" - . " 1 0 1 1 1 0 1 0 \n" - . " 1 0 1 1 1 0 1 0 \n" - . " 1 0 0 0 0 0 1 0 \n" - . " 1 1 1 1 1 1 1 0 \n"; - - $this->assertEquals($expected, $matrix->__toString()); - } - - public function testEmbedBasicPatterns2() - { - $matrix = new ByteMatrix(25, 25); - MatrixUtil::clearMatrix($matrix); - $this->methods['embedBasicPatterns']->invoke( - null, - Version::getVersionForNumber(2), - $matrix - ); - $expected = " 1 1 1 1 1 1 1 0 0 1 1 1 1 1 1 1\n" - . " 1 0 0 0 0 0 1 0 0 1 0 0 0 0 0 1\n" - . " 1 0 1 1 1 0 1 0 0 1 0 1 1 1 0 1\n" - . " 1 0 1 1 1 0 1 0 0 1 0 1 1 1 0 1\n" - . " 1 0 1 1 1 0 1 0 0 1 0 1 1 1 0 1\n" - . " 1 0 0 0 0 0 1 0 0 1 0 0 0 0 0 1\n" - . " 1 1 1 1 1 1 1 0 1 0 1 0 1 0 1 0 1 0 1 1 1 1 1 1 1\n" - . " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0\n" - . " 1 \n" - . " 0 \n" - . " 1 \n" - . " 0 \n" - . " 1 \n" - . " 0 \n" - . " 1 \n" - . " 0 \n" - . " 1 1 1 1 1 1 \n" - . " 0 0 0 0 0 0 0 0 1 1 0 0 0 1 \n" - . " 1 1 1 1 1 1 1 0 1 0 1 0 1 \n" - . " 1 0 0 0 0 0 1 0 1 0 0 0 1 \n" - . " 1 0 1 1 1 0 1 0 1 1 1 1 1 \n" - . " 1 0 1 1 1 0 1 0 \n" - . " 1 0 1 1 1 0 1 0 \n" - . " 1 0 0 0 0 0 1 0 \n" - . " 1 1 1 1 1 1 1 0 \n"; - - $this->assertEquals($expected, $matrix->__toString()); - } - - public function testEmbedTypeInfo() - { - $matrix = new ByteMatrix(21, 21); - MatrixUtil::clearMatrix($matrix); - $this->methods['embedTypeInfo']->invoke( - null, - new ErrorCorrectionLevel(ErrorCorrectionLevel::M), - 5, - $matrix - ); - $expected = " 0 \n" - . " 1 \n" - . " 1 \n" - . " 1 \n" - . " 0 \n" - . " 0 \n" - . " \n" - . " 1 \n" - . " 1 0 0 0 0 0 0 1 1 1 0 0 1 1 1 0\n" - . " \n" - . " \n" - . " \n" - . " \n" - . " \n" - . " 0 \n" - . " 0 \n" - . " 0 \n" - . " 0 \n" - . " 0 \n" - . " 0 \n" - . " 1 \n"; - - $this->assertEquals($expected, $matrix->__toString()); - } - - public function testEmbedVersionInfo() - { - $matrix = new ByteMatrix(21, 21); - MatrixUtil::clearMatrix($matrix); - $this->methods['maybeEmbedVersionInfo']->invoke( - null, - Version::getVersionForNumber(7), - $matrix - ); - $expected = " 0 0 1 \n" - . " 0 1 0 \n" - . " 0 1 0 \n" - . " 0 1 1 \n" - . " 1 1 1 \n" - . " 0 0 0 \n" - . " \n" - . " \n" - . " \n" - . " \n" - . " 0 0 0 0 1 0 \n" - . " 0 1 1 1 1 0 \n" - . " 1 0 0 1 1 0 \n" - . " \n" - . " \n" - . " \n" - . " \n" - . " \n" - . " \n" - . " \n" - . " \n"; - - $this->assertEquals($expected, $matrix->__toString()); - } - - public function testEmbedDataBits() - { - $matrix = new ByteMatrix(21, 21); - MatrixUtil::clearMatrix($matrix); - $this->methods['embedBasicPatterns']->invoke( - null, - Version::getVersionForNumber(1), - $matrix - ); - - $bits = new BitArray(); - $this->methods['embedDataBits']->invoke( - null, - $bits, - -1, - $matrix - ); - - $expected = " 1 1 1 1 1 1 1 0 0 0 0 0 0 0 1 1 1 1 1 1 1\n" - . " 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 1\n" - . " 1 0 1 1 1 0 1 0 0 0 0 0 0 0 1 0 1 1 1 0 1\n" - . " 1 0 1 1 1 0 1 0 0 0 0 0 0 0 1 0 1 1 1 0 1\n" - . " 1 0 1 1 1 0 1 0 0 0 0 0 0 0 1 0 1 1 1 0 1\n" - . " 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 1\n" - . " 1 1 1 1 1 1 1 0 1 0 1 0 1 0 1 1 1 1 1 1 1\n" - . " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0\n" - . " 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0\n" - . " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0\n" - . " 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0\n" - . " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0\n" - . " 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0\n" - . " 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0\n" - . " 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0\n" - . " 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0\n" - . " 1 0 1 1 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0\n" - . " 1 0 1 1 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0\n" - . " 1 0 1 1 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0\n" - . " 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0\n" - . " 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0\n"; - - $this->assertEquals($expected, $matrix->__toString()); - } - - public function testBuildMatrix() - { - $bytes = array( - 32, 65, 205, 69, 41, 220, 46, 128, 236, 42, 159, 74, 221, 244, 169, - 239, 150, 138, 70, 237, 85, 224, 96, 74, 219 , 61 - ); - $bits = new BitArray(); - - foreach ($bytes as $byte) { - $bits->appendBits($byte, 8); - } - - $matrix = new ByteMatrix(21, 21); - MatrixUtil::buildMatrix( - $bits, - new ErrorCorrectionLevel(ErrorCorrectionLevel::H), - Version::getVersionForNumber(1), - 3, - $matrix - ); - - $expected = " 1 1 1 1 1 1 1 0 0 1 1 0 0 0 1 1 1 1 1 1 1\n" - . " 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 1\n" - . " 1 0 1 1 1 0 1 0 0 0 0 1 0 0 1 0 1 1 1 0 1\n" - . " 1 0 1 1 1 0 1 0 0 1 1 0 0 0 1 0 1 1 1 0 1\n" - . " 1 0 1 1 1 0 1 0 1 1 0 0 1 0 1 0 1 1 1 0 1\n" - . " 1 0 0 0 0 0 1 0 0 0 1 1 1 0 1 0 0 0 0 0 1\n" - . " 1 1 1 1 1 1 1 0 1 0 1 0 1 0 1 1 1 1 1 1 1\n" - . " 0 0 0 0 0 0 0 0 1 1 0 1 1 0 0 0 0 0 0 0 0\n" - . " 0 0 1 1 0 0 1 1 1 0 0 1 1 1 1 0 1 0 0 0 0\n" - . " 1 0 1 0 1 0 0 0 0 0 1 1 1 0 0 1 0 1 1 1 0\n" - . " 1 1 1 1 0 1 1 0 1 0 1 1 1 0 0 1 1 1 0 1 0\n" - . " 1 0 1 0 1 1 0 1 1 1 0 0 1 1 1 0 0 1 0 1 0\n" - . " 0 0 1 0 0 1 1 1 0 0 0 0 0 0 1 0 1 1 1 1 1\n" - . " 0 0 0 0 0 0 0 0 1 1 0 1 0 0 0 0 0 1 0 1 1\n" - . " 1 1 1 1 1 1 1 0 1 1 1 1 0 0 0 0 1 0 1 1 0\n" - . " 1 0 0 0 0 0 1 0 0 0 0 1 0 1 1 1 0 0 0 0 0\n" - . " 1 0 1 1 1 0 1 0 0 1 0 0 1 1 0 0 1 0 0 1 1\n" - . " 1 0 1 1 1 0 1 0 1 1 0 1 0 0 0 0 0 1 1 1 0\n" - . " 1 0 1 1 1 0 1 0 1 1 1 1 0 0 0 0 1 1 1 0 0\n" - . " 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0\n" - . " 1 1 1 1 1 1 1 0 0 0 1 1 1 1 1 0 1 0 0 1 0\n"; - - $this->assertEquals($expected, $matrix->__toString()); - } - - public function testFindMsbSet() - { - $this->assertEquals(0, $this->methods['findMsbSet']->invoke(null, 0)); - $this->assertEquals(1, $this->methods['findMsbSet']->invoke(null, 1)); - $this->assertEquals(8, $this->methods['findMsbSet']->invoke(null, 0x80)); - $this->assertEquals(32, $this->methods['findMsbSet']->invoke(null, 0x80000000)); - } - - public function testCalculateBchCode() - { - // Encoding of type information. - // From Appendix C in JISX0510:2004 (p 65) - $this->assertEquals(0xdc, $this->methods['calculateBchCode']->invoke(null, 5, 0x537)); - // From http://www.swetake.com/qr/qr6.html - $this->assertEquals(0x1c2, $this->methods['calculateBchCode']->invoke(null, 0x13, 0x537)); - // From http://www.swetake.com/qr/qr11.html - $this->assertEquals(0x214, $this->methods['calculateBchCode']->invoke(null, 0x1b, 0x537)); - - // Encoding of version information. - // From Appendix D in JISX0510:2004 (p 68) - $this->assertEquals(0xc94, $this->methods['calculateBchCode']->invoke(null, 7, 0x1f25)); - $this->assertEquals(0x5bc, $this->methods['calculateBchCode']->invoke(null, 8, 0x1f25)); - $this->assertEquals(0xa99, $this->methods['calculateBchCode']->invoke(null, 9, 0x1f25)); - $this->assertEquals(0x4d3, $this->methods['calculateBchCode']->invoke(null, 10, 0x1f25)); - $this->assertEquals(0x9a6, $this->methods['calculateBchCode']->invoke(null, 20, 0x1f25)); - $this->assertEquals(0xd75, $this->methods['calculateBchCode']->invoke(null, 30, 0x1f25)); - $this->assertEquals(0xc69, $this->methods['calculateBchCode']->invoke(null, 40, 0x1f25)); - } - - public function testMakeVersionInfoBits() - { - // From Appendix D in JISX0510:2004 (p 68) - $bits = new BitArray(); - $this->methods['makeVersionInfoBits']->invoke(null, Version::getVersionForNumber(7), $bits); - $this->assertEquals(' ...XXXXX ..X..X.X ..', $bits->__toString()); - } - - public function testMakeTypeInfoBits() - { - // From Appendix D in JISX0510:2004 (p 68) - $bits = new BitArray(); - $this->methods['makeTypeInfoBits']->invoke(null, new ErrorCorrectionLevel(ErrorCorrectionLevel::M), 5, $bits); - $this->assertEquals(' X......X X..XXX.', $bits->__toString()); - } -} \ No newline at end of file diff --git a/vendor/bacon/bacon-qr-code/tests/BaconQrCode/Renderer/Text/HtmlTest.php b/vendor/bacon/bacon-qr-code/tests/BaconQrCode/Renderer/Text/HtmlTest.php deleted file mode 100644 index 0c69dd2e..00000000 --- a/vendor/bacon/bacon-qr-code/tests/BaconQrCode/Renderer/Text/HtmlTest.php +++ /dev/null @@ -1,99 +0,0 @@ -renderer = new Html(); - $this->writer = new Writer($this->renderer); - } - - public function testBasicRender() - { - $content = 'foobar'; - $expected = - '
' .
-            "                       \n" .
-            " ███████ █████ ███████ \n" .
-            " â–ˆ     â–ˆ  â–ˆ â–ˆ  â–ˆ     â–ˆ \n" .
-            " █ ███ █  ██   █ ███ █ \n" .
-            " █ ███ █  ███  █ ███ █ \n" .
-            " █ ███ █   █ █ █ ███ █ \n" .
-            " █     █    ██ █     █ \n" .
-            " ███████ █ █ █ ███████ \n" .
-            "         █████         \n" .
-            " ██ ██ █  ██ █ █     █ \n" .
-            "    ██    ██ █ █ ██    \n" .
-            "  ████████ █  ██ █  ██ \n" .
-            "           ██      █ █ \n" .
-            "  ██  ███  █   █  █  █ \n" .
-            "         █ ███    █ █  \n" .
-            " ███████  ██ ██████    \n" .
-            " █     █   ████   ██   \n" .
-            " █ ███ █ ██ ██ ██ █ ██ \n" .
-            " █ ███ █ ██ ██  █ ██   \n" .
-            " █ ███ █   █   █ ██ ██ \n" .
-            " █     █ ███  ███ ████ \n" .
-            " ███████ ████   ██     \n" .
-            "                       \n" .
-            '
' - ; - - $qrCode = Encoder::encode( - $content, - new ErrorCorrectionLevel(ErrorCorrectionLevel::L), - Encoder::DEFAULT_BYTE_MODE_ECODING - ); - $this->assertEquals($expected, $this->renderer->render($qrCode)); - } - - public function testSetStyle() - { - $content = 'foobar'; - $qrCode = Encoder::encode( - $content, - new ErrorCorrectionLevel(ErrorCorrectionLevel::L), - Encoder::DEFAULT_BYTE_MODE_ECODING - ); - $this->renderer->setStyle('bar'); - $this->assertEquals('bar', $this->renderer->getStyle()); - $this->assertStringMatchesFormat('%astyle="bar"%a', $this->renderer->render($qrCode)); - } - - public function testSetClass() - { - $content = 'foobar'; - $qrCode = Encoder::encode( - $content, - new ErrorCorrectionLevel(ErrorCorrectionLevel::L), - Encoder::DEFAULT_BYTE_MODE_ECODING - ); - $this->renderer->setClass('bar'); - $this->assertEquals('bar', $this->renderer->getClass()); - $this->assertStringMatchesFormat('%aclass="bar"%a', $this->renderer->render($qrCode)); - } -} diff --git a/vendor/bacon/bacon-qr-code/tests/BaconQrCode/Renderer/Text/TextTest.php b/vendor/bacon/bacon-qr-code/tests/BaconQrCode/Renderer/Text/TextTest.php deleted file mode 100644 index d94e8e5d..00000000 --- a/vendor/bacon/bacon-qr-code/tests/BaconQrCode/Renderer/Text/TextTest.php +++ /dev/null @@ -1,149 +0,0 @@ -renderer = new Plain(); - $this->writer = new Writer($this->renderer); - } - - public function testBasicRender() - { - $content = 'foobar'; - $expected = - " \n" . - " ███████ █████ ███████ \n" . - " █ █ █ █ █ █ \n" . - " █ ███ █ ██ █ ███ █ \n" . - " █ ███ █ ███ █ ███ █ \n" . - " █ ███ █ █ █ █ ███ █ \n" . - " █ █ ██ █ █ \n" . - " ███████ █ █ █ ███████ \n" . - " █████ \n" . - " ██ ██ █ ██ █ █ █ \n" . - " ██ ██ █ █ ██ \n" . - " ████████ █ ██ █ ██ \n" . - " ██ █ █ \n" . - " ██ ███ █ █ █ █ \n" . - " █ ███ █ █ \n" . - " ███████ ██ ██████ \n" . - " █ █ ████ ██ \n" . - " █ ███ █ ██ ██ ██ █ ██ \n" . - " █ ███ █ ██ ██ █ ██ \n" . - " █ ███ █ █ █ ██ ██ \n" . - " █ █ ███ ███ ████ \n" . - " ███████ ████ ██ \n" . - " \n" - ; - - $qrCode = Encoder::encode( - $content, - new ErrorCorrectionLevel(ErrorCorrectionLevel::L), - Encoder::DEFAULT_BYTE_MODE_ECODING - ); - $this->assertEquals($expected, $this->renderer->render($qrCode)); - } - - public function testBasicRenderNoMargins() - { - $content = 'foobar'; - $expected = - "███████ █████ ███████\n" . - "█ █ █ █ █ █\n" . - "█ ███ █ ██ █ ███ █\n" . - "█ ███ █ ███ █ ███ █\n" . - "█ ███ █ █ █ █ ███ █\n" . - "█ █ ██ █ █\n" . - "███████ █ █ █ ███████\n" . - " █████ \n" . - "██ ██ █ ██ █ █ █\n" . - " ██ ██ █ █ ██ \n" . - " ████████ █ ██ █ ██\n" . - " ██ █ █\n" . - " ██ ███ █ █ █ █\n" . - " █ ███ █ █ \n" . - "███████ ██ ██████ \n" . - "█ █ ████ ██ \n" . - "█ ███ █ ██ ██ ██ █ ██\n" . - "█ ███ █ ██ ██ █ ██ \n" . - "█ ███ █ █ █ ██ ██\n" . - "█ █ ███ ███ ████\n" . - "███████ ████ ██ \n" - ; - - $qrCode = Encoder::encode( - $content, - new ErrorCorrectionLevel(ErrorCorrectionLevel::L), - Encoder::DEFAULT_BYTE_MODE_ECODING - ); - $this->renderer->setMargin(0); - $this->assertEquals(0, $this->renderer->getMargin()); - $this->assertEquals($expected, $this->renderer->render($qrCode)); - } - - public function testBasicRenderCustomChar() - { - $content = 'foobar'; - $expected = - "-----------------------\n" . - "-#######-#####-#######-\n" . - "-#-----#--#-#--#-----#-\n" . - "-#-###-#--##---#-###-#-\n" . - "-#-###-#--###--#-###-#-\n" . - "-#-###-#---#-#-#-###-#-\n" . - "-#-----#----##-#-----#-\n" . - "-#######-#-#-#-#######-\n" . - "---------#####---------\n" . - "-##-##-#--##-#-#-----#-\n" . - "----##----##-#-#-##----\n" . - "--########-#--##-#--##-\n" . - "-----------##------#-#-\n" . - "--##--###--#---#--#--#-\n" . - "---------#-###----#-#--\n" . - "-#######--##-######----\n" . - "-#-----#---####---##---\n" . - "-#-###-#-##-##-##-#-##-\n" . - "-#-###-#-##-##--#-##---\n" . - "-#-###-#---#---#-##-##-\n" . - "-#-----#-###--###-####-\n" . - "-#######-####---##-----\n" . - "-----------------------\n" - ; - - $qrCode = Encoder::encode( - $content, - new ErrorCorrectionLevel(ErrorCorrectionLevel::L), - Encoder::DEFAULT_BYTE_MODE_ECODING - ); - $this->renderer->setFullBlock('#'); - $this->renderer->setEmptyBlock('-'); - $this->assertEquals('#', $this->renderer->getFullBlock()); - $this->assertEquals('-', $this->renderer->getEmptyBlock()); - $this->assertEquals($expected, $this->renderer->render($qrCode)); - } -} diff --git a/vendor/bacon/bacon-qr-code/tests/bootstrap.php b/vendor/bacon/bacon-qr-code/tests/bootstrap.php deleted file mode 100644 index 05a49415..00000000 --- a/vendor/bacon/bacon-qr-code/tests/bootstrap.php +++ /dev/null @@ -1,10 +0,0 @@ - - - - . - - - - ../src/ - - - diff --git a/vendor/barryvdh/laravel-debugbar/LICENSE b/vendor/barryvdh/laravel-debugbar/LICENSE deleted file mode 100644 index f724f7c2..00000000 --- a/vendor/barryvdh/laravel-debugbar/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (C) 2013-present Barry vd. Heuvel - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies -of the Software, and to permit persons to whom the Software is furnished to do -so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/vendor/barryvdh/laravel-debugbar/changelog.md b/vendor/barryvdh/laravel-debugbar/changelog.md deleted file mode 100644 index 072b5614..00000000 --- a/vendor/barryvdh/laravel-debugbar/changelog.md +++ /dev/null @@ -1,86 +0,0 @@ -# Changelog for Laravel Debugbar - -## 1.8.4 (2014-10-31) - -- Add Redis/PDO storage options - -## 1.8.3 (2014-11-23) - -- Base EventCollector on TimeData Collector - -## 1.8.2 (2014-11-18) - -- Use XHR handler instead of jQuery handler - -## 1.8.1 (2014-11-14) - -- Fix compatability with Symfony 2.3 (Laravel 4.) - -## 1.8.0 (2014-10-31) - -- Fix L5 compatability -- add hints + explain options to QueryLogger -- update to Debugbar 1.10.x -- new ViewCollector layout with more information - -## 1.7.7 (2014-09-15) - -- Make it compatible with Laravel 5.0-dev -- Allow anonymous function as `enabled` setting (for IP checks etc) -- Escape query bindings, to prevent executing of scripts/html - -## 1.7.6 (2014-09-12) - -- Fix reflash bug -- Fix caching of debugbar assets - -## 1.7.5 (2014-09-12) - -- Reflash data for all debugbar requests - -## 1.7.4 (2014-09-08) - -- Rename assets routes to prevent Nginx conflicts - -## 1.7.3 (2014-09-05) - -- Add helper functions (debug(), add/start/stop_measure() and measure() -- Collect data on responses that are not redirect/ajax/html also. - -## 1.7.2 (2014-09-04) - -- Fix 4.0 compatibility (problem with Controller namespace) -- Give deprecation notice instead of publishing assets. - -## 1.7.1 (2014-09-03) - -- Deprecated `debugbar:publish` command in favor of AssetController -- Fixed issue with detecting absolute paths in Windows - -## 1.7.0 (2014-09-03) - -- Use AssetController instead of publishing assets to the public folder. -- Inline fonts + images to base64 Data-URI -- Use PSR-4 file structure - -## 1.6.8 (2014-08-27) - -- Change OpenHandler layout -- Add backtrace option for query origin - -## 1.6.7 (2014-08-09) - -- Add Twig extensions for better integration with rcrowe/TwigBridge - -## 1.6.6 (2014-07-08) - -- Check if Requests wantsJSON instead of only isXmlHttpRequest -- Make sure closure for timing is run, even when disabled - -## 1.6.5 (2014-06-24) - -- Add Laravel style - -## 1.6.4 (2014-06-15) - -- Work on non-UTF-8 handling \ No newline at end of file diff --git a/vendor/barryvdh/laravel-debugbar/composer.json b/vendor/barryvdh/laravel-debugbar/composer.json deleted file mode 100644 index c96ac7df..00000000 --- a/vendor/barryvdh/laravel-debugbar/composer.json +++ /dev/null @@ -1,47 +0,0 @@ -{ - "name": "barryvdh/laravel-debugbar", - "description": "PHP Debugbar integration for Laravel", - "keywords": ["laravel", "debugbar", "profiler", "debug", "webprofiler"], - "license": "MIT", - "authors": [ - { - "name": "Barry vd. Heuvel", - "email": "barryvdh@gmail.com" - } - ], - "require": { - "php": ">=7.0", - "maximebf/debugbar": "~1.15.0", - "illuminate/routing": "5.5.x|5.6.x", - "illuminate/session": "5.5.x|5.6.x", - "illuminate/support": "5.5.x|5.6.x", - "symfony/debug": "^3|^4", - "symfony/finder": "^3|^4" - }, - "autoload": { - "psr-4": { - "Barryvdh\\Debugbar\\": "src/" - }, - "files": [ - "src/helpers.php" - ] - }, - "minimum-stability": "dev", - "prefer-stable": true, - "extra": { - "branch-alias": { - "dev-master": "3.2-dev" - }, - "laravel": { - "providers": [ - "Barryvdh\\Debugbar\\ServiceProvider" - ], - "aliases": { - "Debugbar": "Barryvdh\\Debugbar\\Facade" - } - } - }, - "require-dev": { - "illuminate/framework": "5.5.x" - } -} diff --git a/vendor/barryvdh/laravel-debugbar/config/debugbar.php b/vendor/barryvdh/laravel-debugbar/config/debugbar.php deleted file mode 100644 index 8350e1c8..00000000 --- a/vendor/barryvdh/laravel-debugbar/config/debugbar.php +++ /dev/null @@ -1,201 +0,0 @@ - env('DEBUGBAR_ENABLED', null), - 'except' => [ - // - ], - - /* - |-------------------------------------------------------------------------- - | Storage settings - |-------------------------------------------------------------------------- - | - | DebugBar stores data for session/ajax requests. - | You can disable this, so the debugbar stores data in headers/session, - | but this can cause problems with large data collectors. - | By default, file storage (in the storage folder) is used. Redis and PDO - | can also be used. For PDO, run the package migrations first. - | - */ - 'storage' => [ - 'enabled' => true, - 'driver' => 'file', // redis, file, pdo, custom - 'path' => storage_path('debugbar'), // For file driver - 'connection' => null, // Leave null for default connection (Redis/PDO) - 'provider' => '' // Instance of StorageInterface for custom driver - ], - - /* - |-------------------------------------------------------------------------- - | Vendors - |-------------------------------------------------------------------------- - | - | Vendor files are included by default, but can be set to false. - | This can also be set to 'js' or 'css', to only include javascript or css vendor files. - | Vendor files are for css: font-awesome (including fonts) and highlight.js (css files) - | and for js: jquery and and highlight.js - | So if you want syntax highlighting, set it to true. - | jQuery is set to not conflict with existing jQuery scripts. - | - */ - - 'include_vendors' => true, - - /* - |-------------------------------------------------------------------------- - | Capture Ajax Requests - |-------------------------------------------------------------------------- - | - | The Debugbar can capture Ajax requests and display them. If you don't want this (ie. because of errors), - | you can use this option to disable sending the data through the headers. - | - | Optionally, you can also send ServerTiming headers on ajax requests for the Chrome DevTools. - */ - - 'capture_ajax' => true, - 'add_ajax_timing' => false, - - /* - |-------------------------------------------------------------------------- - | Custom Error Handler for Deprecated warnings - |-------------------------------------------------------------------------- - | - | When enabled, the Debugbar shows deprecated warnings for Symfony components - | in the Messages tab. - | - */ - 'error_handler' => false, - - /* - |-------------------------------------------------------------------------- - | Clockwork integration - |-------------------------------------------------------------------------- - | - | The Debugbar can emulate the Clockwork headers, so you can use the Chrome - | Extension, without the server-side code. It uses Debugbar collectors instead. - | - */ - 'clockwork' => false, - - /* - |-------------------------------------------------------------------------- - | DataCollectors - |-------------------------------------------------------------------------- - | - | Enable/disable DataCollectors - | - */ - - 'collectors' => [ - 'phpinfo' => true, // Php version - 'messages' => true, // Messages - 'time' => true, // Time Datalogger - 'memory' => true, // Memory usage - 'exceptions' => true, // Exception displayer - 'log' => true, // Logs from Monolog (merged in messages if enabled) - 'db' => true, // Show database (PDO) queries and bindings - 'views' => true, // Views with their data - 'route' => true, // Current route information - 'auth' => true, // Display Laravel authentication status - 'gate' => true, // Display Laravel Gate checks - 'session' => true, // Display session data - 'symfony_request' => true, // Only one can be enabled.. - 'mail' => true, // Catch mail messages - 'laravel' => false, // Laravel version and environment - 'events' => false, // All events fired - 'default_request' => false, // Regular or special Symfony request logger - 'logs' => false, // Add the latest log messages - 'files' => false, // Show the included files - 'config' => false, // Display config settings - 'cache' => false, // Display cache events - ], - - /* - |-------------------------------------------------------------------------- - | Extra options - |-------------------------------------------------------------------------- - | - | Configure some DataCollectors - | - */ - - 'options' => [ - 'auth' => [ - 'show_name' => true, // Also show the users name/email in the debugbar - ], - 'db' => [ - 'with_params' => true, // Render SQL with the parameters substituted - 'backtrace' => true, // Use a backtrace to find the origin of the query in your files. - 'timeline' => false, // Add the queries to the timeline - 'explain' => [ // Show EXPLAIN output on queries - 'enabled' => false, - 'types' => ['SELECT'], // ['SELECT', 'INSERT', 'UPDATE', 'DELETE']; for MySQL 5.6.3+ - ], - 'hints' => true, // Show hints for common mistakes - ], - 'mail' => [ - 'full_log' => false - ], - 'views' => [ - 'data' => false, //Note: Can slow down the application, because the data can be quite large.. - ], - 'route' => [ - 'label' => true // show complete route on bar - ], - 'logs' => [ - 'file' => null - ], - 'cache' => [ - 'values' => true // collect cache values - ], - ], - - /* - |-------------------------------------------------------------------------- - | Inject Debugbar in Response - |-------------------------------------------------------------------------- - | - | Usually, the debugbar is added just before , by listening to the - | Response after the App is done. If you disable this, you have to add them - | in your template yourself. See http://phpdebugbar.com/docs/rendering.html - | - */ - - 'inject' => true, - - /* - |-------------------------------------------------------------------------- - | DebugBar route prefix - |-------------------------------------------------------------------------- - | - | Sometimes you want to set route prefix to be used by DebugBar to load - | its resources from. Usually the need comes from misconfigured web server or - | from trying to overcome bugs like this: http://trac.nginx.org/nginx/ticket/97 - | - */ - 'route_prefix' => '_debugbar', - - /* - |-------------------------------------------------------------------------- - | DebugBar route domain - |-------------------------------------------------------------------------- - | - | By default DebugBar route served from the same domain that request served. - | To override default domain, specify it as a non-empty value. - */ - 'route_domain' => null, -]; diff --git a/vendor/barryvdh/laravel-debugbar/readme.md b/vendor/barryvdh/laravel-debugbar/readme.md deleted file mode 100644 index e3c3d813..00000000 --- a/vendor/barryvdh/laravel-debugbar/readme.md +++ /dev/null @@ -1,201 +0,0 @@ -## Laravel Debugbar -[![Packagist License](https://poser.pugx.org/barryvdh/laravel-debugbar/license.png)](http://choosealicense.com/licenses/mit/) -[![Latest Stable Version](https://poser.pugx.org/barryvdh/laravel-debugbar/version.png)](https://packagist.org/packages/barryvdh/laravel-debugbar) -[![Total Downloads](https://poser.pugx.org/barryvdh/laravel-debugbar/d/total.png)](https://packagist.org/packages/barryvdh/laravel-debugbar) - -### Note for v3: Debugbar is now enabled by requiring the package, but still needs APP_DEBUG=true by default! - -### For Laravel < 5.5, please use the [2.4 branch](https://github.com/barryvdh/laravel-debugbar/tree/2.4)! - -This is a package to integrate [PHP Debug Bar](http://phpdebugbar.com/) with Laravel 5. -It includes a ServiceProvider to register the debugbar and attach it to the output. You can publish assets and configure it through Laravel. -It bootstraps some Collectors to work with Laravel and implements a couple custom DataCollectors, specific for Laravel. -It is configured to display Redirects and (jQuery) Ajax Requests. (Shown in a dropdown) -Read [the documentation](http://phpdebugbar.com/docs/) for more configuration options. - -![Screenshot](https://cloud.githubusercontent.com/assets/973269/4270452/740c8c8c-3ccb-11e4-8d9a-5a9e64f19351.png) - -Note: Use the DebugBar only in development. It can slow the application down (because it has to gather data). So when experiencing slowness, try disabling some of the collectors. - -This package includes some custom collectors: - - QueryCollector: Show all queries, including binding + timing - - RouteCollector: Show information about the current Route. - - ViewCollector: Show the currently loaded views. (Optionally: display the shared data) - - EventsCollector: Show all events - - LaravelCollector: Show the Laravel version and Environment. (disabled by default) - - SymfonyRequestCollector: replaces the RequestCollector with more information about the request/response - - LogsCollector: Show the latest log entries from the storage logs. (disabled by default) - - FilesCollector: Show the files that are included/required by PHP. (disabled by default) - - ConfigCollector: Display the values from the config files. (disabled by default) - - CacheCollector: Display all cache events. (disabled by default) - -Bootstraps the following collectors for Laravel: - - LogCollector: Show all Log messages - - SwiftMailCollector and SwiftLogCollector for Mail - -And the default collectors: - - PhpInfoCollector - - MessagesCollector - - TimeDataCollector (With Booting and Application timing) - - MemoryCollector - - ExceptionsCollector - -It also provides a Facade interface for easy logging Messages, Exceptions and Time - -## Installation - -Require this package with composer. It is recommended to only require the package for development. - -```shell -composer require barryvdh/laravel-debugbar --dev -``` - -Laravel 5.5 uses Package Auto-Discovery, so doesn't require you to manually add the ServiceProvider. - -The Debugbar will be enabled when `APP_DEBUG` is `true`. - -> If you use a catch-all/fallback route, make sure you load the Debugbar ServiceProvider before your own App ServiceProviders. - -### Laravel 5.5+: - -If you don't use auto-discovery, add the ServiceProvider to the providers array in config/app.php - -```php -Barryvdh\Debugbar\ServiceProvider::class, -``` - -If you want to use the facade to log messages, add this to your facades in app.php: - -```php -'Debugbar' => Barryvdh\Debugbar\Facade::class, -``` - -The profiler is enabled by default, if you have APP_DEBUG=true. You can override that in the config (`debugbar.enabled`) or by setting `DEBUGBAR_ENABLED` in your `.env`. See more options in `config/debugbar.php` -You can also set in your config if you want to include/exclude the vendor files also (FontAwesome, Highlight.js and jQuery). If you already use them in your site, set it to false. -You can also only display the js or css vendors, by setting it to 'js' or 'css'. (Highlight.js requires both css + js, so set to `true` for syntax highlighting) - -Copy the package config to your local config with the publish command: - -```shell -php artisan vendor:publish --provider="Barryvdh\Debugbar\ServiceProvider" -``` - -### Lumen: - -For Lumen, register a different Provider in `bootstrap/app.php`: - -```php -if (env('APP_DEBUG')) { - $app->register(Barryvdh\Debugbar\LumenServiceProvider::class); -} -``` - -To change the configuration, copy the file to your config folder and enable it: - -```php -$app->configure('debugbar'); -``` - -## Usage - -You can now add messages using the Facade (when added), using the PSR-3 levels (debug, info, notice, warning, error, critical, alert, emergency): - -```php -Debugbar::info($object); -Debugbar::error('Error!'); -Debugbar::warning('Watch out…'); -Debugbar::addMessage('Another message', 'mylabel'); -``` - -And start/stop timing: - -```php -Debugbar::startMeasure('render','Time for rendering'); -Debugbar::stopMeasure('render'); -Debugbar::addMeasure('now', LARAVEL_START, microtime(true)); -Debugbar::measure('My long operation', function() { - // Do something… -}); -``` - -Or log exceptions: - -```php -try { - throw new Exception('foobar'); -} catch (Exception $e) { - Debugbar::addThrowable($e); -} -``` - -There are also helper functions available for the most common calls: - -```php -// All arguments will be dumped as a debug message -debug($var1, $someString, $intValue, $object); - -start_measure('render','Time for rendering'); -stop_measure('render'); -add_measure('now', LARAVEL_START, microtime(true)); -measure('My long operation', function() { - // Do something… -}); -``` - -If you want you can add your own DataCollectors, through the Container or the Facade: - -```php -Debugbar::addCollector(new DebugBar\DataCollector\MessagesCollector('my_messages')); -//Or via the App container: -$debugbar = App::make('debugbar'); -$debugbar->addCollector(new DebugBar\DataCollector\MessagesCollector('my_messages')); -``` - -By default, the Debugbar is injected just before ``. If you want to inject the Debugbar yourself, -set the config option 'inject' to false and use the renderer yourself and follow http://phpdebugbar.com/docs/rendering.html - -```php -$renderer = Debugbar::getJavascriptRenderer(); -``` - -Note: Not using the auto-inject, will disable the Request information, because that is added After the response. -You can add the default_request datacollector in the config as alternative. - -## Enabling/Disabling on run time -You can enable or disable the debugbar during run time. - -```php -\Debugbar::enable(); -\Debugbar::disable(); -``` - -NB. Once enabled, the collectors are added (and could produce extra overhead), so if you want to use the debugbar in production, disable in the config and only enable when needed. - - -## Twig Integration - -Laravel Debugbar comes with two Twig Extensions. These are tested with [rcrowe/TwigBridge](https://github.com/rcrowe/TwigBridge) 0.6.x - -Add the following extensions to your TwigBridge config/extensions.php (or register the extensions manually) - -```php -'Barryvdh\Debugbar\Twig\Extension\Debug', -'Barryvdh\Debugbar\Twig\Extension\Dump', -'Barryvdh\Debugbar\Twig\Extension\Stopwatch', -``` - -The Dump extension will replace the [dump function](http://twig.sensiolabs.org/doc/functions/dump.html) to output variables using the DataFormatter. The Debug extension adds a `debug()` function which passes variables to the Message Collector, -instead of showing it directly in the template. It dumps the arguments, or when empty; all context variables. - -```twig -{{ debug() }} -{{ debug(user, categories) }} -``` - -The Stopwatch extension adds a [stopwatch tag](http://symfony.com/blog/new-in-symfony-2-4-a-stopwatch-tag-for-twig) similar to the one in Symfony/Silex Twigbridge. - -```twig -{% stopwatch "foo" %} - …some things that gets timed -{% endstopwatch %} -``` diff --git a/vendor/barryvdh/laravel-debugbar/src/Console/ClearCommand.php b/vendor/barryvdh/laravel-debugbar/src/Console/ClearCommand.php deleted file mode 100644 index 64c7dd28..00000000 --- a/vendor/barryvdh/laravel-debugbar/src/Console/ClearCommand.php +++ /dev/null @@ -1,38 +0,0 @@ -debugbar = $debugbar; - - parent::__construct(); - } - - public function handle() - { - $this->debugbar->boot(); - - if ($storage = $this->debugbar->getStorage()) { - try - { - $storage->clear(); - } catch(\InvalidArgumentException $e) { - // hide InvalidArgumentException if storage location does not exist - if(strpos($e->getMessage(), 'does not exist') === false) { - throw $e; - } - } - $this->info('Debugbar Storage cleared!'); - } else { - $this->error('No Debugbar Storage found..'); - } - } -} diff --git a/vendor/barryvdh/laravel-debugbar/src/Controllers/AssetController.php b/vendor/barryvdh/laravel-debugbar/src/Controllers/AssetController.php deleted file mode 100644 index 00c58300..00000000 --- a/vendor/barryvdh/laravel-debugbar/src/Controllers/AssetController.php +++ /dev/null @@ -1,58 +0,0 @@ -debugbar->getJavascriptRenderer(); - - $content = $renderer->dumpAssetsToString('js'); - - $response = new Response( - $content, 200, [ - 'Content-Type' => 'text/javascript', - ] - ); - - return $this->cacheResponse($response); - } - - /** - * Return the stylesheets for the Debugbar - * - * @return \Symfony\Component\HttpFoundation\Response - */ - public function css() - { - $renderer = $this->debugbar->getJavascriptRenderer(); - - $content = $renderer->dumpAssetsToString('css'); - - $response = new Response( - $content, 200, [ - 'Content-Type' => 'text/css', - ] - ); - - return $this->cacheResponse($response); - } - - /** - * Cache the response 1 year (31536000 sec) - */ - protected function cacheResponse(Response $response) - { - $response->setSharedMaxAge(31536000); - $response->setMaxAge(31536000); - $response->setExpires(new \DateTime('+1 year')); - - return $response; - } -} diff --git a/vendor/barryvdh/laravel-debugbar/src/Controllers/BaseController.php b/vendor/barryvdh/laravel-debugbar/src/Controllers/BaseController.php deleted file mode 100644 index 3c0d08b4..00000000 --- a/vendor/barryvdh/laravel-debugbar/src/Controllers/BaseController.php +++ /dev/null @@ -1,38 +0,0 @@ -debugbar = $debugbar; - - if ($request->hasSession()){ - $request->session()->reflash(); - } - } - } - -} else { - - class BaseController - { - protected $debugbar; - - public function __construct(Request $request, LaravelDebugbar $debugbar) - { - $this->debugbar = $debugbar; - - if ($request->hasSession()){ - $request->session()->reflash(); - } - } - } -} diff --git a/vendor/barryvdh/laravel-debugbar/src/Controllers/CacheController.php b/vendor/barryvdh/laravel-debugbar/src/Controllers/CacheController.php deleted file mode 100644 index 3d04305a..00000000 --- a/vendor/barryvdh/laravel-debugbar/src/Controllers/CacheController.php +++ /dev/null @@ -1,27 +0,0 @@ -tags($tags); - } else { - unset($tags); - } - - $success = $cache->forget($key); - - return response()->json(compact('success')); - } - -} diff --git a/vendor/barryvdh/laravel-debugbar/src/Controllers/OpenHandlerController.php b/vendor/barryvdh/laravel-debugbar/src/Controllers/OpenHandlerController.php deleted file mode 100644 index 77056f40..00000000 --- a/vendor/barryvdh/laravel-debugbar/src/Controllers/OpenHandlerController.php +++ /dev/null @@ -1,45 +0,0 @@ -debugbar); - $data = $openHandler->handle(null, false, false); - - return new Response( - $data, 200, [ - 'Content-Type' => 'application/json' - ] - ); - } - - /** - * Return Clockwork output - * - * @param $id - * @return mixed - * @throws \DebugBar\DebugBarException - */ - public function clockwork($id) - { - $request = [ - 'op' => 'get', - 'id' => $id, - ]; - - $openHandler = new OpenHandler($this->debugbar); - $data = $openHandler->handle($request, false, false); - - // Convert to Clockwork - $converter = new Converter(); - $output = $converter->convert(json_decode($data, true)); - - return response()->json($output); - } -} diff --git a/vendor/barryvdh/laravel-debugbar/src/DataCollector/CacheCollector.php b/vendor/barryvdh/laravel-debugbar/src/DataCollector/CacheCollector.php deleted file mode 100644 index 61b7ad4f..00000000 --- a/vendor/barryvdh/laravel-debugbar/src/DataCollector/CacheCollector.php +++ /dev/null @@ -1,95 +0,0 @@ - 'hit', - CacheMissed::class => 'missed', - KeyWritten::class => 'written', - KeyForgotten::class => 'forgotten', - ]; - - public function __construct($requestStartTime = null, $collectValues) - { - parent::__construct(); - - $this->collectValues = $collectValues; - } - - public function onCacheEvent(CacheEvent $event) - { - $class = get_class($event); - $params = get_object_vars($event); - - $label = $this->classMap[$class]; - - if (isset($params['value'])) { - if ($this->collectValues) { - $params['value'] = htmlspecialchars($this->getDataFormatter()->formatVar($event->value)); - } else { - unset($params['value']); - } - } - - - if (!empty($params['key']) && in_array($label, ['hit', 'written'])) { - $params['delete'] = route('debugbar.cache.delete', [ - 'key' => urlencode($params['key']), - 'tags' => !empty($params['tags']) ? json_encode($params['tags']) : '', - ]); - } - - $time = microtime(true); - $this->addMeasure($label . "\t" . $event->key, $time, $time, $params); - } - - - public function subscribe(Dispatcher $dispatcher) - { - foreach ($this->classMap as $eventClass => $type) { - $dispatcher->listen($eventClass, [$this, 'onCacheEvent']); - } - } - - public function collect() - { - $data = parent::collect(); - $data['nb_measures'] = count($data['measures']); - - return $data; - } - - public function getName() - { - return 'cache'; - } - - public function getWidgets() - { - return [ - 'cache' => [ - 'icon' => 'clipboard', - 'widget' => 'PhpDebugBar.Widgets.LaravelCacheWidget', - 'map' => 'cache', - 'default' => '{}', - ], - 'cache:badge' => [ - 'map' => 'cache.nb_measures', - 'default' => 'null', - ], - ]; - } -} diff --git a/vendor/barryvdh/laravel-debugbar/src/DataCollector/EventCollector.php b/vendor/barryvdh/laravel-debugbar/src/DataCollector/EventCollector.php deleted file mode 100644 index 572cab53..00000000 --- a/vendor/barryvdh/laravel-debugbar/src/DataCollector/EventCollector.php +++ /dev/null @@ -1,110 +0,0 @@ -setDataFormatter(new SimpleFormatter()); - } - - public function onWildcardEvent($name = null, $data = []) - { - $params = $this->prepareParams($data); - $time = microtime(true); - - // Find all listeners for the current event - foreach ($this->events->getListeners($name) as $i => $listener) { - - // Check if it's an object + method name - if (is_array($listener) && count($listener) > 1 && is_object($listener[0])) { - list($class, $method) = $listener; - - // Skip this class itself - if ($class instanceof static) { - continue; - } - - // Format the listener to readable format - $listener = get_class($class) . '@' . $method; - - // Handle closures - } elseif ($listener instanceof \Closure) { - $reflector = new \ReflectionFunction($listener); - - // Skip our own listeners - if ($reflector->getNamespaceName() == 'Barryvdh\Debugbar') { - continue; - } - - // Format the closure to a readable format - $filename = ltrim(str_replace(base_path(), '', $reflector->getFileName()), '/'); - $listener = $reflector->getName() . ' (' . $filename . ':' . $reflector->getStartLine() . '-' . $reflector->getEndLine() . ')'; - } else { - // Not sure if this is possible, but to prevent edge cases - $listener = $this->getDataFormatter()->formatVar($listener); - } - - $params['listeners.' . $i] = $listener; - } - $this->addMeasure($name, $time, $time, $params); - } - - public function subscribe(Dispatcher $events) - { - $this->events = $events; - $events->listen('*', [$this, 'onWildcardEvent']); - } - - protected function prepareParams($params) - { - $data = []; - foreach ($params as $key => $value) { - if (is_object($value) && Str::is('Illuminate\*\Events\*', get_class($value))) { - $value = $this->prepareParams(get_object_vars($value)); - } - $data[$key] = htmlentities($this->getDataFormatter()->formatVar($value), ENT_QUOTES, 'UTF-8', false); - } - - return $data; - } - - public function collect() - { - $data = parent::collect(); - $data['nb_measures'] = count($data['measures']); - - return $data; - } - - public function getName() - { - return 'event'; - } - - public function getWidgets() - { - return [ - "events" => [ - "icon" => "tasks", - "widget" => "PhpDebugBar.Widgets.TimelineWidget", - "map" => "event", - "default" => "{}", - ], - 'events:badge' => [ - 'map' => 'event.nb_measures', - 'default' => 0, - ], - ]; - } -} diff --git a/vendor/barryvdh/laravel-debugbar/src/DataCollector/FilesCollector.php b/vendor/barryvdh/laravel-debugbar/src/DataCollector/FilesCollector.php deleted file mode 100644 index 4c56837c..00000000 --- a/vendor/barryvdh/laravel-debugbar/src/DataCollector/FilesCollector.php +++ /dev/null @@ -1,135 +0,0 @@ -app = $app; - $this->basePath = base_path(); - } - - /** - * {@inheritDoc} - */ - public function collect() - { - $files = $this->getIncludedFiles(); - $compiled = $this->getCompiledFiles(); - - $included = []; - $alreadyCompiled = []; - foreach ($files as $file) { - // Skip the files from Debugbar, they are only loaded for Debugging and confuse the output. - // Of course some files are stil always loaded (ServiceProvider, Facade etc) - if (strpos($file, 'vendor/maximebf/debugbar/src') !== false || strpos( - $file, - 'vendor/barryvdh/laravel-debugbar/src' - ) !== false - ) { - continue; - } elseif (!in_array($file, $compiled)) { - $included[] = [ - 'message' => "'" . $this->stripBasePath($file) . "',", - // Use PHP syntax so we can copy-paste to compile config file. - 'is_string' => true, - ]; - } else { - $alreadyCompiled[] = [ - 'message' => "* '" . $this->stripBasePath($file) . "',", - // Mark with *, so know they are compiled anyways. - 'is_string' => true, - ]; - } - } - - // First the included files, then those that are going to be compiled. - $messages = array_merge($included, $alreadyCompiled); - - return [ - 'messages' => $messages, - 'count' => count($included), - ]; - } - - /** - * Get the files included on load. - * - * @return array - */ - protected function getIncludedFiles() - { - return get_included_files(); - } - - /** - * Get the files that are going to be compiled, so they aren't as important. - * - * @return array - */ - protected function getCompiledFiles() - { - if ($this->app && class_exists('Illuminate\Foundation\Console\OptimizeCommand')) { - $reflector = new \ReflectionClass('Illuminate\Foundation\Console\OptimizeCommand'); - $path = dirname($reflector->getFileName()) . '/Optimize/config.php'; - - if (file_exists($path)) { - $app = $this->app; - $core = require $path; - return array_merge($core, $app['config']['compile']); - } - } - return []; - } - - /** - * Remove the basePath from the paths, so they are relative to the base - * - * @param $path - * @return string - */ - protected function stripBasePath($path) - { - return ltrim(str_replace($this->basePath, '', $path), '/'); - } - - /** - * {@inheritDoc} - */ - public function getWidgets() - { - $name = $this->getName(); - return [ - "$name" => [ - "icon" => "files-o", - "widget" => "PhpDebugBar.Widgets.MessagesWidget", - "map" => "$name.messages", - "default" => "{}" - ], - "$name:badge" => [ - "map" => "$name.count", - "default" => "null" - ] - ]; - } - - /** - * {@inheritDoc} - */ - public function getName() - { - return 'files'; - } -} diff --git a/vendor/barryvdh/laravel-debugbar/src/DataCollector/GateCollector.php b/vendor/barryvdh/laravel-debugbar/src/DataCollector/GateCollector.php deleted file mode 100644 index 5e6ad850..00000000 --- a/vendor/barryvdh/laravel-debugbar/src/DataCollector/GateCollector.php +++ /dev/null @@ -1,46 +0,0 @@ -setDataFormatter(new SimpleFormatter()); - $gate->after([$this, 'addCheck']); - } - - public function addCheck(Authorizable $user = null, $ability, $result, $arguments = []) - { - $userKey = 'user'; - $userId = null; - - if ($user) { - $userKey = snake_case(class_basename($user)); - $userId = $user instanceof Authenticatable ? $user->getAuthIdentifier() : $user->id; - } - - $label = $result ? 'success' : 'error'; - - $this->addMessage([ - 'ability' => $ability, - 'result' => $result, - $userKey => $userId, - 'arguments' => $this->getDataFormatter()->formatVar($arguments), - ], $label, false); - } -} diff --git a/vendor/barryvdh/laravel-debugbar/src/DataCollector/LaravelCollector.php b/vendor/barryvdh/laravel-debugbar/src/DataCollector/LaravelCollector.php deleted file mode 100644 index ec327deb..00000000 --- a/vendor/barryvdh/laravel-debugbar/src/DataCollector/LaravelCollector.php +++ /dev/null @@ -1,71 +0,0 @@ -app = $app; - } - - /** - * {@inheritDoc} - */ - public function collect() - { - // Fallback if not injected - $app = $this->app ?: app(); - - return [ - "version" => $app::VERSION, - "environment" => $app->environment(), - "locale" => $app->getLocale(), - ]; - } - - /** - * {@inheritDoc} - */ - public function getName() - { - return 'laravel'; - } - - /** - * {@inheritDoc} - */ - public function getWidgets() - { - return [ - "version" => [ - "icon" => "github", - "tooltip" => "Version", - "map" => "laravel.version", - "default" => "" - ], - "environment" => [ - "icon" => "desktop", - "tooltip" => "Environment", - "map" => "laravel.environment", - "default" => "" - ], - "locale" => [ - "icon" => "flag", - "tooltip" => "Current locale", - "map" => "laravel.locale", - "default" => "", - ], - ]; - } -} diff --git a/vendor/barryvdh/laravel-debugbar/src/DataCollector/LogsCollector.php b/vendor/barryvdh/laravel-debugbar/src/DataCollector/LogsCollector.php deleted file mode 100644 index 2950e950..00000000 --- a/vendor/barryvdh/laravel-debugbar/src/DataCollector/LogsCollector.php +++ /dev/null @@ -1,142 +0,0 @@ -getLogsFile(); - $this->getStorageLogs($path); - } - - /** - * Get the path to the logs file - * - * @return string - */ - public function getLogsFile() - { - // default daily rotating logs (Laravel 5.0) - $path = storage_path() . '/logs/laravel-' . date('Y-m-d') . '.log'; - - // single file logs - if (!file_exists($path)) { - $path = storage_path() . '/logs/laravel.log'; - } - - return $path; - } - - /** - * get logs apache in app/storage/logs - * only 24 last of current day - * - * @param string $path - * - * @return array - */ - public function getStorageLogs($path) - { - if (!file_exists($path)) { - return; - } - - //Load the latest lines, guessing about 15x the number of log entries (for stack traces etc) - $file = implode("", $this->tailFile($path, $this->lines)); - - foreach ($this->getLogs($file) as $log) { - $this->addMessage($log['header'] . $log['stack'], $log['level'], false); - } - } - - /** - * By Ain Tohvri (ain) - * http://tekkie.flashbit.net/php/tail-functionality-in-php - * @param string $file - * @param int $lines - * @return array - */ - protected function tailFile($file, $lines) - { - $handle = fopen($file, "r"); - $linecounter = $lines; - $pos = -2; - $beginning = false; - $text = []; - while ($linecounter > 0) { - $t = " "; - while ($t != "\n") { - if (fseek($handle, $pos, SEEK_END) == -1) { - $beginning = true; - break; - } - $t = fgetc($handle); - $pos--; - } - $linecounter--; - if ($beginning) { - rewind($handle); - } - $text[$lines - $linecounter - 1] = fgets($handle); - if ($beginning) { - break; - } - } - fclose($handle); - return array_reverse($text); - } - - /** - * Search a string for log entries - * Based on https://github.com/mikemand/logviewer/blob/master/src/Kmd/Logviewer/Logviewer.php by mikemand - * - * @param $file - * @return array - */ - public function getLogs($file) - { - $pattern = "/\[\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}\].*/"; - - $log_levels = $this->getLevels(); - - // There has GOT to be a better way of doing this... - preg_match_all($pattern, $file, $headings); - $log_data = preg_split($pattern, $file); - - $log = []; - foreach ($headings as $h) { - for ($i = 0, $j = count($h); $i < $j; $i++) { - foreach ($log_levels as $ll) { - if (strpos(strtolower($h[$i]), strtolower('.' . $ll))) { - $log[] = ['level' => $ll, 'header' => $h[$i], 'stack' => $log_data[$i]]; - } - } - } - } - - $log = array_reverse($log); - - return $log; - } - - /** - * Get the log levels from psr/log. - * Based on https://github.com/mikemand/logviewer/blob/master/src/Kmd/Logviewer/Logviewer.php by mikemand - * - * @access public - * @return array - */ - public function getLevels() - { - $class = new ReflectionClass(new LogLevel()); - return $class->getConstants(); - } -} diff --git a/vendor/barryvdh/laravel-debugbar/src/DataCollector/MultiAuthCollector.php b/vendor/barryvdh/laravel-debugbar/src/DataCollector/MultiAuthCollector.php deleted file mode 100644 index 59722c76..00000000 --- a/vendor/barryvdh/laravel-debugbar/src/DataCollector/MultiAuthCollector.php +++ /dev/null @@ -1,166 +0,0 @@ -auth = $auth; - $this->guards = $guards; - } - - /** - * Set to show the users name/email - * @param bool $showName - */ - public function setShowName($showName) - { - $this->showName = (bool) $showName; - } - - /** - * @{inheritDoc} - */ - public function collect() - { - $data = []; - $names = ''; - - foreach($this->guards as $guardName) { - try { - $user = $this->resolveUser($this->auth->guard($guardName)); - } catch (\Exception $e) { - continue; - } - - $data['guards'][$guardName] = $this->getUserInformation($user); - - if(!is_null($user)) { - $names .= $guardName . ": " . $data['guards'][$guardName]['name'] . ', '; - } - } - - foreach ($data['guards'] as $key => $var) { - if (!is_string($data['guards'][$key])) { - $data['guards'][$key] = $this->formatVar($var); - } - } - - $data['names'] = rtrim($names, ', '); - - return $data; - } - - private function resolveUser(Guard $guard) - { - // if we're logging in using remember token - // then we must resolve user „manually†- // to prevent csrf token regeneration - - $recaller = $guard instanceof SessionGuard - ? $guard->getRequest()->cookies->get($guard->getRecallerName()) - : null; - - if (is_string($recaller) && Str::contains($recaller, '|')) { - $segments = explode('|', $recaller); - if (count($segments) == 2 && trim($segments[0]) !== '' && trim($segments[1]) !== '') { - return $guard->getProvider()->retrieveByToken($segments[0], $segments[1]); - } - } - return $guard->user(); - } - - /** - * Get displayed user information - * @param \Illuminate\Auth\UserInterface $user - * @return array - */ - protected function getUserInformation($user = null) - { - // Defaults - if (is_null($user)) { - return [ - 'name' => 'Guest', - 'user' => ['guest' => true], - ]; - } - - // The default auth identifer is the ID number, which isn't all that - // useful. Try username and email. - $identifier = $user->getAuthIdentifier(); - if (is_numeric($identifier)) { - try { - if ($user->username) { - $identifier = $user->username; - } elseif ($user->email) { - $identifier = $user->email; - } - } catch (\Exception $e) { - } - } - - return [ - 'name' => $identifier, - 'user' => $user instanceof Arrayable ? $user->toArray() : $user, - ]; - } - - /** - * @{inheritDoc} - */ - public function getName() - { - return 'auth'; - } - - /** - * @{inheritDoc} - */ - public function getWidgets() - { - $widgets = [ - "auth" => [ - "icon" => "lock", - "widget" => "PhpDebugBar.Widgets.VariableListWidget", - "map" => "auth.guards", - "default" => "{}" - ] - ]; - - if ($this->showName) { - $widgets['auth.name'] = [ - 'icon' => 'user', - 'tooltip' => 'Auth status', - 'map' => 'auth.names', - 'default' => '', - ]; - } - - return $widgets; - } - -} diff --git a/vendor/barryvdh/laravel-debugbar/src/DataCollector/QueryCollector.php b/vendor/barryvdh/laravel-debugbar/src/DataCollector/QueryCollector.php deleted file mode 100644 index 211c5f1e..00000000 --- a/vendor/barryvdh/laravel-debugbar/src/DataCollector/QueryCollector.php +++ /dev/null @@ -1,477 +0,0 @@ -timeCollector = $timeCollector; - } - - /** - * Renders the SQL of traced statements with params embedded - * - * @param boolean $enabled - * @param string $quotationChar NOT USED - */ - public function setRenderSqlWithParams($enabled = true, $quotationChar = "'") - { - $this->renderSqlWithParams = $enabled; - } - - /** - * Show or hide the hints in the parameters - * - * @param boolean $enabled - */ - public function setShowHints($enabled = true) - { - $this->showHints = $enabled; - } - - /** - * Enable/disable finding the source - * - * @param bool $value - * @param array $middleware - */ - public function setFindSource($value, array $middleware) - { - $this->findSource = (bool) $value; - $this->middleware = $middleware; - } - - /** - * Enable/disable the EXPLAIN queries - * - * @param bool $enabled - * @param array|null $types Array of types to explain queries (select/insert/update/delete) - */ - public function setExplainSource($enabled, $types) - { - $this->explainQuery = $enabled; - if($types){ - $this->explainTypes = $types; - } - } - - /** - * - * @param string $query - * @param array $bindings - * @param float $time - * @param \Illuminate\Database\Connection $connection - */ - public function addQuery($query, $bindings, $time, $connection) - { - $explainResults = []; - $time = $time / 1000; - $endTime = microtime(true); - $startTime = $endTime - $time; - $hints = $this->performQueryAnalysis($query); - - $pdo = $connection->getPdo(); - $bindings = $connection->prepareBindings($bindings); - - // Run EXPLAIN on this query (if needed) - if ($this->explainQuery && preg_match('/^('.implode($this->explainTypes).') /i', $query)) { - $statement = $pdo->prepare('EXPLAIN ' . $query); - $statement->execute($bindings); - $explainResults = $statement->fetchAll(\PDO::FETCH_CLASS); - } - - $bindings = $this->getDataFormatter()->checkBindings($bindings); - if (!empty($bindings) && $this->renderSqlWithParams) { - foreach ($bindings as $key => $binding) { - // This regex matches placeholders only, not the question marks, - // nested in quotes, while we iterate through the bindings - // and substitute placeholders by suitable values. - $regex = is_numeric($key) - ? "/\?(?=(?:[^'\\\']*'[^'\\\']*')*[^'\\\']*$)/" - : "/:{$key}(?=(?:[^'\\\']*'[^'\\\']*')*[^'\\\']*$)/"; - $query = preg_replace($regex, $pdo->quote($binding), $query, 1); - } - } - - $source = []; - - if ($this->findSource) { - try { - $source = $this->findSource(); - } catch (\Exception $e) { - } - } - - $this->queries[] = [ - 'query' => $query, - 'type' => 'query', - 'bindings' => $this->getDataFormatter()->escapeBindings($bindings), - 'time' => $time, - 'source' => $source, - 'explain' => $explainResults, - 'connection' => $connection->getDatabaseName(), - 'hints' => $this->showHints ? $hints : null, - ]; - - if ($this->timeCollector !== null) { - $this->timeCollector->addMeasure($query, $startTime, $endTime); - } - } - - /** - * Explainer::performQueryAnalysis() - * - * Perform simple regex analysis on the code - * - * @package xplain (https://github.com/rap2hpoutre/mysql-xplain-xplain) - * @author e-doceo - * @copyright 2014 - * @version $Id$ - * @access public - * @param string $query - * @return string - */ - protected function performQueryAnalysis($query) - { - $hints = []; - if (preg_match('/^\\s*SELECT\\s*`?[a-zA-Z0-9]*`?\\.?\\*/i', $query)) { - $hints[] = 'Use SELECT * only if you need all columns from table'; - } - if (preg_match('/ORDER BY RAND()/i', $query)) { - $hints[] = 'ORDER BY RAND() is slow, try to avoid if you can. - You can read this - or this'; - } - if (strpos($query, '!=') !== false) { - $hints[] = 'The != operator is not standard. Use the <> operator to test for inequality instead.'; - } - if (stripos($query, 'WHERE') === false && preg_match('/^(SELECT) /i', $query)) { - $hints[] = 'The SELECT statement has no WHERE clause and could examine many more rows than intended'; - } - if (preg_match('/LIMIT\\s/i', $query) && stripos($query, 'ORDER BY') === false) { - $hints[] = 'LIMIT without ORDER BY causes non-deterministic results, depending on the query execution plan'; - } - if (preg_match('/LIKE\\s[\'"](%.*?)[\'"]/i', $query, $matches)) { - $hints[] = 'An argument has a leading wildcard character: ' . $matches[1]. '. - The predicate with this argument is not sargable and cannot use an index if one exists.'; - } - return $hints; - } - - /** - * Use a backtrace to search for the origins of the query. - * - * @return array - */ - protected function findSource() - { - $stack = debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS | DEBUG_BACKTRACE_PROVIDE_OBJECT, 50); - - $sources = []; - - foreach ($stack as $index => $trace) { - $sources[] = $this->parseTrace($index, $trace); - } - - return array_filter($sources); - } - - /** - * Parse a trace element from the backtrace stack. - * - * @param int $index - * @param array $trace - * @return object|bool - */ - protected function parseTrace($index, array $trace) - { - $frame = (object) [ - 'index' => $index, - 'namespace' => null, - 'name' => null, - 'line' => isset($trace['line']) ? $trace['line'] : '?', - ]; - - if (isset($trace['function']) && $trace['function'] == 'substituteBindings') { - $frame->name = 'Route binding'; - - return $frame; - } - - if (isset($trace['class']) && - isset($trace['file']) && - !$this->fileIsInExcludedPath($trace['file']) - ) { - $file = $trace['file']; - - if (isset($trace['object']) && is_a($trace['object'], 'Twig_Template')) { - list($file, $frame->line) = $this->getTwigInfo($trace); - } elseif (strpos($file, storage_path()) !== false) { - $hash = pathinfo($file, PATHINFO_FILENAME); - - if (! $frame->name = $this->findViewFromHash($hash)) { - $frame->name = $hash; - } - - $frame->namespace = 'view'; - - return $frame; - } elseif (strpos($file, 'Middleware') !== false) { - $frame->name = $this->findMiddlewareFromFile($file); - - if ($frame->name) { - $frame->namespace = 'middleware'; - } else { - $frame->name = $this->normalizeFilename($file); - } - - return $frame; - } - - $frame->name = $this->normalizeFilename($file); - - return $frame; - } - - - return false; - } - - /** - * Check if the given file is to be excluded from analysis - * - * @param string $file - * @return bool - */ - protected function fileIsInExcludedPath($file) - { - $excludedPaths = [ - '/vendor/laravel/framework/src/Illuminate/Database', - '/vendor/laravel/framework/src/Illuminate/Events', - '/vendor/barryvdh/laravel-debugbar', - ]; - - $normalizedPath = str_replace('\\', '/', $file); - - foreach ($excludedPaths as $excludedPath) { - if (strpos($normalizedPath, $excludedPath) !== false) { - return true; - } - } - - return false; - } - - /** - * Find the middleware alias from the file. - * - * @param string $file - * @return string|null - */ - protected function findMiddlewareFromFile($file) - { - $filename = pathinfo($file, PATHINFO_FILENAME); - - foreach ($this->middleware as $alias => $class) { - if (strpos($class, $filename) !== false) { - return $alias; - } - } - } - - /** - * Find the template name from the hash. - * - * @param string $hash - * @return null|string - */ - protected function findViewFromHash($hash) - { - $finder = app('view')->getFinder(); - - if (isset($this->reflection['viewfinderViews'])) { - $property = $this->reflection['viewfinderViews']; - } else { - $reflection = new \ReflectionClass($finder); - $property = $reflection->getProperty('views'); - $property->setAccessible(true); - $this->reflection['viewfinderViews'] = $property; - } - - foreach ($property->getValue($finder) as $name => $path){ - if (sha1($path) == $hash || md5($path) == $hash) { - return $name; - } - } - } - - /** - * Get the filename/line from a Twig template trace - * - * @param array $trace - * @return array The file and line - */ - protected function getTwigInfo($trace) - { - $file = $trace['object']->getTemplateName(); - - if (isset($trace['line'])) { - foreach ($trace['object']->getDebugInfo() as $codeLine => $templateLine) { - if ($codeLine <= $trace['line']) { - return [$file, $templateLine]; - } - } - } - - return [$file, -1]; - } - - /** - * Shorten the path by removing the relative links and base dir - * - * @param string $path - * @return string - */ - protected function normalizeFilename($path) - { - if (file_exists($path)) { - $path = realpath($path); - } - return str_replace(base_path(), '', $path); - } - - /** - * Collect a database transaction event. - * @param string $event - * @param \Illuminate\Database\Connection $connection - * @return array - */ - public function collectTransactionEvent($event, $connection) - { - $source = []; - - if ($this->findSource) { - try { - $source = $this->findSource(); - } catch (\Exception $e) { - } - } - - $this->queries[] = [ - 'query' => $event, - 'type' => 'transaction', - 'bindings' => [], - 'time' => 0, - 'source' => $source, - 'explain' => [], - 'connection' => $connection->getDatabaseName(), - 'hints' => null, - ]; - } - - /** - * Reset the queries. - */ - public function reset() - { - $this->queries = []; - } - - /** - * {@inheritDoc} - */ - public function collect() - { - $totalTime = 0; - $queries = $this->queries; - - $statements = []; - foreach ($queries as $query) { - $totalTime += $query['time']; - - $statements[] = [ - 'sql' => $this->getDataFormatter()->formatSql($query['query']), - 'type' => $query['type'], - 'params' => [], - 'bindings' => $query['bindings'], - 'hints' => $query['hints'], - 'backtrace' => array_values($query['source']), - 'duration' => $query['time'], - 'duration_str' => ($query['type'] == 'transaction') ? '' : $this->formatDuration($query['time']), - 'stmt_id' => $this->getDataFormatter()->formatSource(reset($query['source'])), - 'connection' => $query['connection'], - ]; - - //Add the results from the explain as new rows - foreach($query['explain'] as $explain){ - $statements[] = [ - 'sql' => ' - EXPLAIN #' . $explain->id . ': `' . $explain->table . '` (' . $explain->select_type . ')', - 'type' => 'explain', - 'params' => $explain, - 'row_count' => $explain->rows, - 'stmt_id' => $explain->id, - ]; - } - } - - $nb_statements = array_filter($queries, function ($query) { - return $query['type'] == 'query'; - }); - - $data = [ - 'nb_statements' => count($nb_statements), - 'nb_failed_statements' => 0, - 'accumulated_duration' => $totalTime, - 'accumulated_duration_str' => $this->formatDuration($totalTime), - 'statements' => $statements - ]; - return $data; - } - - /** - * {@inheritDoc} - */ - public function getName() - { - return 'queries'; - } - - /** - * {@inheritDoc} - */ - public function getWidgets() - { - return [ - "queries" => [ - "icon" => "database", - "widget" => "PhpDebugBar.Widgets.LaravelSQLQueriesWidget", - "map" => "queries", - "default" => "[]" - ], - "queries:badge" => [ - "map" => "queries.nb_statements", - "default" => 0 - ] - ]; - } -} diff --git a/vendor/barryvdh/laravel-debugbar/src/DataCollector/RequestCollector.php b/vendor/barryvdh/laravel-debugbar/src/DataCollector/RequestCollector.php deleted file mode 100644 index 25bada3c..00000000 --- a/vendor/barryvdh/laravel-debugbar/src/DataCollector/RequestCollector.php +++ /dev/null @@ -1,177 +0,0 @@ - - * - */ -class RequestCollector extends DataCollector implements DataCollectorInterface, Renderable -{ - /** @var \Symfony\Component\HttpFoundation\Request $request */ - protected $request; - /** @var \Symfony\Component\HttpFoundation\Request $response */ - protected $response; - /** @var \Symfony\Component\HttpFoundation\Session\SessionInterface $session */ - protected $session; - - /** - * Create a new SymfonyRequestCollector - * - * @param \Symfony\Component\HttpFoundation\Request $request - * @param \Symfony\Component\HttpFoundation\Request $response - * @param \Symfony\Component\HttpFoundation\Session\SessionInterface $session - */ - public function __construct($request, $response, $session = null) - { - $this->request = $request; - $this->response = $response; - $this->session = $session; - } - - /** - * {@inheritDoc} - */ - public function getName() - { - return 'request'; - } - - /** - * {@inheritDoc} - */ - public function getWidgets() - { - return [ - "request" => [ - "icon" => "tags", - "widget" => "PhpDebugBar.Widgets.VariableListWidget", - "map" => "request", - "default" => "{}" - ] - ]; - } - - /** - * {@inheritdoc} - */ - public function collect() - { - $request = $this->request; - $response = $this->response; - - $responseHeaders = $response->headers->all(); - $cookies = []; - foreach ($response->headers->getCookies() as $cookie) { - $cookies[] = $this->getCookieHeader( - $cookie->getName(), - $cookie->getValue(), - $cookie->getExpiresTime(), - $cookie->getPath(), - $cookie->getDomain(), - $cookie->isSecure(), - $cookie->isHttpOnly() - ); - } - if (count($cookies) > 0) { - $responseHeaders['Set-Cookie'] = $cookies; - } - - $statusCode = $response->getStatusCode(); - - $data = [ - 'format' => $request->getRequestFormat(), - 'content_type' => $response->headers->get('Content-Type') ? $response->headers->get( - 'Content-Type' - ) : 'text/html', - 'status_text' => isset(Response::$statusTexts[$statusCode]) ? Response::$statusTexts[$statusCode] : '', - 'status_code' => $statusCode, - 'request_query' => $request->query->all(), - 'request_request' => $request->request->all(), - 'request_headers' => $request->headers->all(), - 'request_server' => $request->server->all(), - 'request_cookies' => $request->cookies->all(), - 'response_headers' => $responseHeaders, - 'path_info' => $request->getPathInfo(), - ]; - - if ($this->session) { - $sessionAttributes = []; - foreach ($this->session->all() as $key => $value) { - $sessionAttributes[$key] = $value; - } - $data['session_attributes'] = $sessionAttributes; - } - - foreach ($data['request_server'] as $key => $value) { - if (str_is('*_KEY', $key) || str_is('*_PASSWORD', $key) - || str_is('*_SECRET', $key) || str_is('*_PW', $key)) { - $data['request_server'][$key] = '******'; - } - } - - if (isset($data['request_headers']['php-auth-pw'])) { - $data['request_headers']['php-auth-pw'] = '******'; - } - - if (isset($data['request_server']['PHP_AUTH_PW'])) { - $data['request_server']['PHP_AUTH_PW'] = '******'; - } - - foreach ($data as $key => $var) { - if (!is_string($data[$key])) { - $data[$key] = $this->formatVar($var); - } - } - - return $data; - } - - private function getCookieHeader($name, $value, $expires, $path, $domain, $secure, $httponly) - { - $cookie = sprintf('%s=%s', $name, urlencode($value)); - - if (0 !== $expires) { - if (is_numeric($expires)) { - $expires = (int) $expires; - } elseif ($expires instanceof \DateTime) { - $expires = $expires->getTimestamp(); - } else { - $expires = strtotime($expires); - if (false === $expires || -1 == $expires) { - throw new \InvalidArgumentException( - sprintf('The "expires" cookie parameter is not valid.', $expires) - ); - } - } - - $cookie .= '; expires=' . substr( - \DateTime::createFromFormat('U', $expires, new \DateTimeZone('UTC'))->format('D, d-M-Y H:i:s T'), - 0, - -5 - ); - } - - if ($domain) { - $cookie .= '; domain=' . $domain; - } - - $cookie .= '; path=' . $path; - - if ($secure) { - $cookie .= '; secure'; - } - - if ($httponly) { - $cookie .= '; httponly'; - } - - return $cookie; - } -} diff --git a/vendor/barryvdh/laravel-debugbar/src/DataCollector/RouteCollector.php b/vendor/barryvdh/laravel-debugbar/src/DataCollector/RouteCollector.php deleted file mode 100644 index 6128e331..00000000 --- a/vendor/barryvdh/laravel-debugbar/src/DataCollector/RouteCollector.php +++ /dev/null @@ -1,141 +0,0 @@ -router = $router; - } - - /** - * {@inheritDoc} - */ - public function collect() - { - $route = $this->router->current(); - return $this->getRouteInformation($route); - } - - /** - * Get the route information for a given route. - * - * @param \Illuminate\Routing\Route $route - * @return array - */ - protected function getRouteInformation($route) - { - if (!is_a($route, 'Illuminate\Routing\Route')) { - return []; - } - $uri = head($route->methods()) . ' ' . $route->uri(); - $action = $route->getAction(); - - $result = [ - 'uri' => $uri ?: '-', - ]; - - $result = array_merge($result, $action); - - - if (isset($action['controller']) && strpos($action['controller'], '@') !== false) { - list($controller, $method) = explode('@', $action['controller']); - if(class_exists($controller) && method_exists($controller, $method)) { - $reflector = new \ReflectionMethod($controller, $method); - } - unset($result['uses']); - } elseif (isset($action['uses']) && $action['uses'] instanceof \Closure) { - $reflector = new \ReflectionFunction($action['uses']); - $result['uses'] = $this->formatVar($result['uses']); - } - - if (isset($reflector)) { - $filename = ltrim(str_replace(base_path(), '', $reflector->getFileName()), '/'); - $result['file'] = $filename . ':' . $reflector->getStartLine() . '-' . $reflector->getEndLine(); - } - - if ($middleware = $this->getMiddleware($route)) { - $result['middleware'] = $middleware; - } - - - - return $result; - } - - /** - * Get middleware - * - * @param \Illuminate\Routing\Route $route - * @return string - */ - protected function getMiddleware($route) - { - return implode(', ', $route->middleware()); - } - - /** - * {@inheritDoc} - */ - public function getName() - { - return 'route'; - } - - /** - * {@inheritDoc} - */ - public function getWidgets() - { - $widgets = [ - "route" => [ - "icon" => "share", - "widget" => "PhpDebugBar.Widgets.VariableListWidget", - "map" => "route", - "default" => "{}" - ] - ]; - if (Config::get('debugbar.options.route.label', true)) { - $widgets['currentroute'] = [ - "icon" => "share", - "tooltip" => "Route", - "map" => "route.uri", - "default" => "" - ]; - } - return $widgets; - } - - /** - * Display the route information on the console. - * - * @param array $routes - * @return void - */ - protected function displayRoutes(array $routes) - { - $this->table->setHeaders($this->headers)->setRows($routes); - - $this->table->render($this->getOutput()); - } -} diff --git a/vendor/barryvdh/laravel-debugbar/src/DataCollector/SessionCollector.php b/vendor/barryvdh/laravel-debugbar/src/DataCollector/SessionCollector.php deleted file mode 100644 index 8501646d..00000000 --- a/vendor/barryvdh/laravel-debugbar/src/DataCollector/SessionCollector.php +++ /dev/null @@ -1,58 +0,0 @@ -session = $session; - } - - /** - * {@inheritdoc} - */ - public function collect() - { - $data = []; - foreach ($this->session->all() as $key => $value) { - $data[$key] = is_string($value) ? $value : $this->formatVar($value); - } - return $data; - } - - /** - * {@inheritDoc} - */ - public function getName() - { - return 'session'; - } - - /** - * {@inheritDoc} - */ - public function getWidgets() - { - return [ - "session" => [ - "icon" => "archive", - "widget" => "PhpDebugBar.Widgets.VariableListWidget", - "map" => "session", - "default" => "{}" - ] - ]; - } -} diff --git a/vendor/barryvdh/laravel-debugbar/src/DataCollector/ViewCollector.php b/vendor/barryvdh/laravel-debugbar/src/DataCollector/ViewCollector.php deleted file mode 100644 index b7c657e1..00000000 --- a/vendor/barryvdh/laravel-debugbar/src/DataCollector/ViewCollector.php +++ /dev/null @@ -1,107 +0,0 @@ -setDataFormatter(new SimpleFormatter()); - $this->collect_data = $collectData; - $this->name = 'views'; - $this->templates = []; - } - - public function getName() - { - return 'views'; - } - - public function getWidgets() - { - return [ - 'views' => [ - 'icon' => 'leaf', - 'widget' => 'PhpDebugBar.Widgets.TemplatesWidget', - 'map' => 'views', - 'default' => '[]' - ], - 'views:badge' => [ - 'map' => 'views.nb_templates', - 'default' => 0 - ] - ]; - } - - /** - * Add a View instance to the Collector - * - * @param \Illuminate\View\View $view - */ - public function addView(View $view) - { - $name = $view->getName(); - $path = $view->getPath(); - - if (!is_object($path)) { - if ($path) { - $path = ltrim(str_replace(base_path(), '', realpath($path)), '/'); - } - - if (substr($path, -10) == '.blade.php') { - $type = 'blade'; - } else { - $type = pathinfo($path, PATHINFO_EXTENSION); - } - } else { - $type = get_class($view); - $path = ''; - } - - if (!$this->collect_data) { - $params = array_keys($view->getData()); - } else { - $data = []; - foreach ($view->getData() as $key => $value) { - $data[$key] = $this->getDataFormatter()->formatVar($value); - } - $params = $data; - } - - $template = [ - 'name' => $path ? sprintf('%s (%s)', $name, $path) : $name, - 'param_count' => count($params), - 'params' => $params, - 'type' => $type, - ]; - - if ( $this->getXdebugLink($path)) { - $template['xdebug_link'] = $this->getXdebugLink($path); - } - - $this->templates[] = $template; - } - - public function collect() - { - $templates = $this->templates; - - return [ - 'nb_templates' => count($templates), - 'templates' => $templates, - ]; - } -} diff --git a/vendor/barryvdh/laravel-debugbar/src/DataFormatter/QueryFormatter.php b/vendor/barryvdh/laravel-debugbar/src/DataFormatter/QueryFormatter.php deleted file mode 100644 index aa0db8c7..00000000 --- a/vendor/barryvdh/laravel-debugbar/src/DataFormatter/QueryFormatter.php +++ /dev/null @@ -1,76 +0,0 @@ -namespace) { - $parts['namespace'] = $source->namespace . '::'; - } - - $parts['name'] = $source->name; - $parts['line'] = ':' . $source->line; - - return implode($parts); - } -} diff --git a/vendor/barryvdh/laravel-debugbar/src/DataFormatter/SimpleFormatter.php b/vendor/barryvdh/laravel-debugbar/src/DataFormatter/SimpleFormatter.php deleted file mode 100644 index 0a1fc938..00000000 --- a/vendor/barryvdh/laravel-debugbar/src/DataFormatter/SimpleFormatter.php +++ /dev/null @@ -1,105 +0,0 @@ -exportValue($data); - } - - /** - * Converts a PHP value to a string. - * - * @param mixed $value The PHP value - * @param int $depth Only for internal usage - * @param bool $deep Only for internal usage - * - * @return string The string representation of the given value - * @author Bernhard Schussek - */ - private function exportValue($value, $depth = 1, $deep = false) - { - if ($value instanceof \__PHP_Incomplete_Class) { - return sprintf('__PHP_Incomplete_Class(%s)', $this->getClassNameFromIncomplete($value)); - } - - if (is_object($value)) { - if ($value instanceof \DateTimeInterface) { - return sprintf('Object(%s) - %s', get_class($value), $value->format(\DateTime::ATOM)); - } - - return sprintf('Object(%s)', get_class($value)); - } - - if (is_array($value)) { - if (empty($value)) { - return '[]'; - } - - $indent = str_repeat(' ', $depth); - - $a = array(); - foreach ($value as $k => $v) { - if (is_array($v)) { - $deep = true; - } - $a[] = sprintf('%s => %s', $k, $this->exportValue($v, $depth + 1, $deep)); - } - - if ($deep) { - return sprintf("[\n%s%s\n%s]", $indent, implode(sprintf(", \n%s", $indent), $a), str_repeat(' ', $depth - 1)); - } - - $s = sprintf('[%s]', implode(', ', $a)); - - if (80 > strlen($s)) { - return $s; - } - - return sprintf("[\n%s%s\n]", $indent, implode(sprintf(",\n%s", $indent), $a)); - } - - if (is_resource($value)) { - return sprintf('Resource(%s#%d)', get_resource_type($value), $value); - } - - if (null === $value) { - return 'null'; - } - - if (false === $value) { - return 'false'; - } - - if (true === $value) { - return 'true'; - } - - return (string) $value; - } - - /** - * @param \__PHP_Incomplete_Class $value - * @return mixed - * @author Bernhard Schussek - */ - private function getClassNameFromIncomplete(\__PHP_Incomplete_Class $value) - { - $array = new \ArrayObject($value); - - return $array['__PHP_Incomplete_Class_Name']; - } -} diff --git a/vendor/barryvdh/laravel-debugbar/src/Facade.php b/vendor/barryvdh/laravel-debugbar/src/Facade.php deleted file mode 100644 index d2bbcf5e..00000000 --- a/vendor/barryvdh/laravel-debugbar/src/Facade.php +++ /dev/null @@ -1,12 +0,0 @@ -cssFiles['laravel'] = __DIR__ . '/Resources/laravel-debugbar.css'; - $this->cssVendors['fontawesome'] = __DIR__ . '/Resources/vendor/font-awesome/style.css'; - $this->jsFiles['laravel-sql'] = __DIR__ . '/Resources/sqlqueries/widget.js'; - $this->jsFiles['laravel-cache'] = __DIR__ . '/Resources/cache/widget.js'; - } - - /** - * Set the URL Generator - * - * @param \Illuminate\Routing\UrlGenerator $url - * @deprecated - */ - public function setUrlGenerator($url) - { - - } - - /** - * {@inheritdoc} - */ - public function renderHead() - { - $cssRoute = route('debugbar.assets.css', [ - 'v' => $this->getModifiedTime('css') - ]); - - $jsRoute = route('debugbar.assets.js', [ - 'v' => $this->getModifiedTime('js') - ]); - - $cssRoute = preg_replace('/\Ahttps?:/', '', $cssRoute); - $jsRoute = preg_replace('/\Ahttps?:/', '', $jsRoute); - - $html = ""; - $html .= ""; - - if ($this->isJqueryNoConflictEnabled()) { - $html .= '' . "\n"; - } - - $html .= $this->getInlineHtml(); - - - return $html; - } - - protected function getInlineHtml() - { - $html = ''; - - foreach (['head', 'css', 'js'] as $asset) { - foreach ($this->getAssets('inline_' . $asset) as $item) { - $html .= $item . "\n"; - } - } - - return $html; - } - /** - * Get the last modified time of any assets. - * - * @param string $type 'js' or 'css' - * @return int - */ - protected function getModifiedTime($type) - { - $files = $this->getAssets($type); - - $latest = 0; - foreach ($files as $file) { - $mtime = filemtime($file); - if ($mtime > $latest) { - $latest = $mtime; - } - } - return $latest; - } - - /** - * Return assets as a string - * - * @param string $type 'js' or 'css' - * @return string - */ - public function dumpAssetsToString($type) - { - $files = $this->getAssets($type); - - $content = ''; - foreach ($files as $file) { - $content .= file_get_contents($file) . "\n"; - } - - return $content; - } - - /** - * Makes a URI relative to another - * - * @param string|array $uri - * @param string $root - * @return string - */ - protected function makeUriRelativeTo($uri, $root) - { - if (!$root) { - return $uri; - } - - if (is_array($uri)) { - $uris = []; - foreach ($uri as $u) { - $uris[] = $this->makeUriRelativeTo($u, $root); - } - return $uris; - } - - if (substr($uri, 0, 1) === '/' || preg_match('/^([a-zA-Z]+:\/\/|[a-zA-Z]:\/|[a-zA-Z]:\\\)/', $uri)) { - return $uri; - } - return rtrim($root, '/') . "/$uri"; - } -} diff --git a/vendor/barryvdh/laravel-debugbar/src/LaravelDebugbar.php b/vendor/barryvdh/laravel-debugbar/src/LaravelDebugbar.php deleted file mode 100644 index 5ad17d30..00000000 --- a/vendor/barryvdh/laravel-debugbar/src/LaravelDebugbar.php +++ /dev/null @@ -1,1065 +0,0 @@ -app = $app; - $this->version = $app->version(); - $this->is_lumen = str_contains($this->version, 'Lumen'); - } - - /** - * Enable the Debugbar and boot, if not already booted. - */ - public function enable() - { - $this->enabled = true; - - if (!$this->booted) { - $this->boot(); - } - } - - /** - * Boot the debugbar (add collectors, renderer and listener) - */ - public function boot() - { - if ($this->booted) { - return; - } - - /** @var \Barryvdh\Debugbar\LaravelDebugbar $debugbar */ - $debugbar = $this; - - /** @var Application $app */ - $app = $this->app; - - // Set custom error handler - if ($app['config']->get('debugbar.error_handler' , false)) { - set_error_handler([$this, 'handleError']); - } - - $this->selectStorage($debugbar); - - if ($this->shouldCollect('phpinfo', true)) { - $this->addCollector(new PhpInfoCollector()); - } - - if ($this->shouldCollect('messages', true)) { - $this->addCollector(new MessagesCollector()); - } - - if ($this->shouldCollect('time', true)) { - $this->addCollector(new TimeDataCollector()); - - if ( ! $this->isLumen()) { - $this->app->booted( - function () use ($debugbar) { - $startTime = $this->app['request']->server('REQUEST_TIME_FLOAT'); - if ($startTime) { - $debugbar['time']->addMeasure('Booting', $startTime, microtime(true)); - } - } - ); - } - - $debugbar->startMeasure('application', 'Application'); - } - - if ($this->shouldCollect('memory', true)) { - $this->addCollector(new MemoryCollector()); - } - - if ($this->shouldCollect('exceptions', true)) { - try { - $exceptionCollector = new ExceptionsCollector(); - $exceptionCollector->setChainExceptions( - $this->app['config']->get('debugbar.options.exceptions.chain', true) - ); - $this->addCollector($exceptionCollector); - } catch (\Exception $e) { - } - } - - if ($this->shouldCollect('laravel', false)) { - $this->addCollector(new LaravelCollector($this->app)); - } - - if ($this->shouldCollect('default_request', false)) { - $this->addCollector(new RequestDataCollector()); - } - - if ($this->shouldCollect('events', false) && isset($this->app['events'])) { - try { - $startTime = $this->app['request']->server('REQUEST_TIME_FLOAT'); - $eventCollector = new EventCollector($startTime); - $this->addCollector($eventCollector); - $this->app['events']->subscribe($eventCollector); - - } catch (\Exception $e) { - $this->addThrowable( - new Exception( - 'Cannot add EventCollector to Laravel Debugbar: ' . $e->getMessage(), - $e->getCode(), - $e - ) - ); - } - } - - if ($this->shouldCollect('views', true) && isset($this->app['events'])) { - try { - $collectData = $this->app['config']->get('debugbar.options.views.data', true); - $this->addCollector(new ViewCollector($collectData)); - $this->app['events']->listen( - 'composing:*', - function ($view, $data = []) use ($debugbar) { - if ($data) { - $view = $data[0]; // For Laravel >= 5.4 - } - $debugbar['views']->addView($view); - } - ); - } catch (\Exception $e) { - $this->addThrowable( - new Exception( - 'Cannot add ViewCollector to Laravel Debugbar: ' . $e->getMessage(), $e->getCode(), $e - ) - ); - } - } - - if (!$this->isLumen() && $this->shouldCollect('route')) { - try { - $this->addCollector($this->app->make('Barryvdh\Debugbar\DataCollector\RouteCollector')); - } catch (\Exception $e) { - $this->addThrowable( - new Exception( - 'Cannot add RouteCollector to Laravel Debugbar: ' . $e->getMessage(), - $e->getCode(), - $e - ) - ); - } - } - - if (!$this->isLumen() && $this->shouldCollect('log', true)) { - try { - if ($this->hasCollector('messages')) { - $logger = new MessagesCollector('log'); - $this['messages']->aggregate($logger); - $this->app['log']->listen( - function ($level, $message = null, $context = null) use ($logger) { - // Laravel 5.4 changed how the global log listeners are called. We must account for - // the first argument being an "event object", where arguments are passed - // via object properties, instead of individual arguments. - if ($level instanceof \Illuminate\Log\Events\MessageLogged) { - $message = $level->message; - $context = $level->context; - $level = $level->level; - } - - try { - $logMessage = (string) $message; - if (mb_check_encoding($logMessage, 'UTF-8')) { - $logMessage .= (!empty($context) ? ' ' . json_encode($context) : ''); - } else { - $logMessage = "[INVALID UTF-8 DATA]"; - } - } catch (\Exception $e) { - $logMessage = "[Exception: " . $e->getMessage() . "]"; - } - $logger->addMessage( - '[' . date('H:i:s') . '] ' . "LOG.$level: " . $logMessage, - $level, - false - ); - } - ); - } else { - $this->addCollector(new MonologCollector($this->app['log']->getMonolog())); - } - } catch (\Exception $e) { - $this->addThrowable( - new Exception( - 'Cannot add LogsCollector to Laravel Debugbar: ' . $e->getMessage(), $e->getCode(), $e - ) - ); - } - } - - if ($this->shouldCollect('db', true) && isset($this->app['db'])) { - $db = $this->app['db']; - if ($debugbar->hasCollector('time') && $this->app['config']->get( - 'debugbar.options.db.timeline', - false - ) - ) { - $timeCollector = $debugbar->getCollector('time'); - } else { - $timeCollector = null; - } - $queryCollector = new QueryCollector($timeCollector); - - $queryCollector->setDataFormatter(new QueryFormatter()); - - if ($this->app['config']->get('debugbar.options.db.with_params')) { - $queryCollector->setRenderSqlWithParams(true); - } - - if ($this->app['config']->get('debugbar.options.db.backtrace')) { - $middleware = ! $this->is_lumen ? $this->app['router']->getMiddleware() : []; - $queryCollector->setFindSource(true, $middleware); - } - - if ($this->app['config']->get('debugbar.options.db.explain.enabled')) { - $types = $this->app['config']->get('debugbar.options.db.explain.types'); - $queryCollector->setExplainSource(true, $types); - } - - if ($this->app['config']->get('debugbar.options.db.hints', true)) { - $queryCollector->setShowHints(true); - } - - $this->addCollector($queryCollector); - - try { - $db->listen( - function ($query, $bindings = null, $time = null, $connectionName = null) use ($db, $queryCollector) { - if (!$this->shouldCollect('db', true)) { - return; // Issue 776 : We've turned off collecting after the listener was attached - } - // Laravel 5.2 changed the way some core events worked. We must account for - // the first argument being an "event object", where arguments are passed - // via object properties, instead of individual arguments. - if ( $query instanceof \Illuminate\Database\Events\QueryExecuted ) { - $bindings = $query->bindings; - $time = $query->time; - $connection = $query->connection; - - $query = $query->sql; - } else { - $connection = $db->connection($connectionName); - } - - $queryCollector->addQuery((string) $query, $bindings, $time, $connection); - } - ); - } catch (\Exception $e) { - $this->addThrowable( - new Exception( - 'Cannot add listen to Queries for Laravel Debugbar: ' . $e->getMessage(), - $e->getCode(), - $e - ) - ); - } - - try { - $db->getEventDispatcher()->listen([ - \Illuminate\Database\Events\TransactionBeginning::class, - 'connection.*.beganTransaction', - ], function ($transaction) use ($queryCollector) { - - // Laravel 5.2 changed the way some core events worked. We must account for - // the first argument being an "event object", where arguments are passed - // via object properties, instead of individual arguments. - if($transaction instanceof \Illuminate\Database\Events\TransactionBeginning) { - $connection = $transaction->connection; - } else { - $connection = $transaction; - } - - $queryCollector->collectTransactionEvent('Begin Transaction', $connection); - }); - - $db->getEventDispatcher()->listen([ - \Illuminate\Database\Events\TransactionCommitted::class, - 'connection.*.committed', - ], function ($transaction) use ($queryCollector) { - - if($transaction instanceof \Illuminate\Database\Events\TransactionCommitted) { - $connection = $transaction->connection; - } else { - $connection = $transaction; - } - - $queryCollector->collectTransactionEvent('Commit Transaction', $connection); - }); - - $db->getEventDispatcher()->listen([ - \Illuminate\Database\Events\TransactionRolledBack::class, - 'connection.*.rollingBack', - ], function ($transaction) use ($queryCollector) { - - if($transaction instanceof \Illuminate\Database\Events\TransactionRolledBack) { - $connection = $transaction->connection; - } else { - $connection = $transaction; - } - - $queryCollector->collectTransactionEvent('Rollback Transaction', $connection); - }); - } catch (\Exception $e) { - $this->addThrowable( - new Exception( - 'Cannot add listen transactions to Queries for Laravel Debugbar: ' . $e->getMessage(), - $e->getCode(), - $e - ) - ); - } - } - - if ($this->shouldCollect('mail', true) && class_exists('Illuminate\Mail\MailServiceProvider')) { - try { - $mailer = $this->app['mailer']->getSwiftMailer(); - $this->addCollector(new SwiftMailCollector($mailer)); - if ($this->app['config']->get('debugbar.options.mail.full_log') && $this->hasCollector( - 'messages' - ) - ) { - $this['messages']->aggregate(new SwiftLogCollector($mailer)); - } - } catch (\Exception $e) { - $this->addThrowable( - new Exception( - 'Cannot add MailCollector to Laravel Debugbar: ' . $e->getMessage(), $e->getCode(), $e - ) - ); - } - } - - if ($this->shouldCollect('logs', false)) { - try { - $file = $this->app['config']->get('debugbar.options.logs.file'); - $this->addCollector(new LogsCollector($file)); - } catch (\Exception $e) { - $this->addThrowable( - new Exception( - 'Cannot add LogsCollector to Laravel Debugbar: ' . $e->getMessage(), $e->getCode(), $e - ) - ); - } - } - if ($this->shouldCollect('files', false)) { - $this->addCollector(new FilesCollector($app)); - } - - if ($this->shouldCollect('auth', false)) { - try { - $guards = array_keys($this->app['config']->get('auth.guards', [])); - $authCollector = new MultiAuthCollector($app['auth'], $guards); - - $authCollector->setShowName( - $this->app['config']->get('debugbar.options.auth.show_name') - ); - $this->addCollector($authCollector); - } catch (\Exception $e) { - $this->addThrowable( - new Exception( - 'Cannot add AuthCollector to Laravel Debugbar: ' . $e->getMessage(), $e->getCode(), $e - ) - ); - } - } - - if ($this->shouldCollect('gate', false)) { - try { - $gateCollector = $this->app->make('Barryvdh\Debugbar\DataCollector\GateCollector'); - $this->addCollector($gateCollector); - } catch (\Exception $e){ - // No Gate collector - } - } - - if ($this->shouldCollect('cache', false) && isset($this->app['events'])) { - try { - $collectValues = $this->app['config']->get('debugbar.options.cache.values', true); - $startTime = $this->app['request']->server('REQUEST_TIME_FLOAT'); - $cacheCollector = new CacheCollector($startTime, $collectValues); - $this->addCollector($cacheCollector); - $this->app['events']->subscribe($cacheCollector); - - } catch (\Exception $e) { - $this->addThrowable( - new Exception( - 'Cannot add CacheCollector to Laravel Debugbar: ' . $e->getMessage(), - $e->getCode(), - $e - ) - ); - } - } - - $renderer = $this->getJavascriptRenderer(); - $renderer->setIncludeVendors($this->app['config']->get('debugbar.include_vendors', true)); - $renderer->setBindAjaxHandlerToXHR($app['config']->get('debugbar.capture_ajax', true)); - - $this->booted = true; - } - - public function shouldCollect($name, $default = false) - { - return $this->app['config']->get('debugbar.collectors.' . $name, $default); - } - - /** - * Adds a data collector - * - * @param DataCollectorInterface $collector - * - * @throws DebugBarException - * @return $this - */ - public function addCollector(DataCollectorInterface $collector) - { - parent::addCollector($collector); - - if (method_exists($collector, 'useHtmlVarDumper')) { - $collector->useHtmlVarDumper(); - } - - return $this; - } - - /** - * Handle silenced errors - * - * @param $level - * @param $message - * @param string $file - * @param int $line - * @param array $context - * @throws \ErrorException - */ - public function handleError($level, $message, $file = '', $line = 0, $context = []) - { - if (error_reporting() & $level) { - throw new \ErrorException($message, 0, $level, $file, $line); - } else { - $this->addMessage($message, 'deprecation'); - } - } - - /** - * Starts a measure - * - * @param string $name Internal name, used to stop the measure - * @param string $label Public name - */ - public function startMeasure($name, $label = null) - { - if ($this->hasCollector('time')) { - /** @var \DebugBar\DataCollector\TimeDataCollector $collector */ - $collector = $this->getCollector('time'); - $collector->startMeasure($name, $label); - } - } - - /** - * Stops a measure - * - * @param string $name - */ - public function stopMeasure($name) - { - if ($this->hasCollector('time')) { - /** @var \DebugBar\DataCollector\TimeDataCollector $collector */ - $collector = $this->getCollector('time'); - try { - $collector->stopMeasure($name); - } catch (\Exception $e) { - // $this->addThrowable($e); - } - } - } - - /** - * Adds an exception to be profiled in the debug bar - * - * @param Exception $e - * @deprecated in favor of addThrowable - */ - public function addException(Exception $e) - { - return $this->addThrowable($e); - } - - /** - * Adds an exception to be profiled in the debug bar - * - * @param Exception $e - */ - public function addThrowable($e) - { - if ($this->hasCollector('exceptions')) { - /** @var \DebugBar\DataCollector\ExceptionsCollector $collector */ - $collector = $this->getCollector('exceptions'); - $collector->addThrowable($e); - } - } - - /** - * Returns a JavascriptRenderer for this instance - * - * @param string $baseUrl - * @param string $basePathng - * @return JavascriptRenderer - */ - public function getJavascriptRenderer($baseUrl = null, $basePath = null) - { - if ($this->jsRenderer === null) { - $this->jsRenderer = new JavascriptRenderer($this, $baseUrl, $basePath); - } - return $this->jsRenderer; - } - - /** - * Modify the response and inject the debugbar (or data in headers) - * - * @param \Symfony\Component\HttpFoundation\Request $request - * @param \Symfony\Component\HttpFoundation\Response $response - * @return \Symfony\Component\HttpFoundation\Response - */ - public function modifyResponse(Request $request, Response $response) - { - $app = $this->app; - if (!$this->isEnabled() || $this->isDebugbarRequest()) { - return $response; - } - - // Show the Http Response Exception in the Debugbar, when available - if (isset($response->exception)) { - $this->addThrowable($response->exception); - } - - if ($this->shouldCollect('config', false)) { - try { - $configCollector = new ConfigCollector(); - $configCollector->setData($app['config']->all()); - $this->addCollector($configCollector); - } catch (\Exception $e) { - $this->addThrowable( - new Exception( - 'Cannot add ConfigCollector to Laravel Debugbar: ' . $e->getMessage(), - $e->getCode(), - $e - ) - ); - } - } - - if ($this->app->bound(SessionManager::class)){ - - /** @var \Illuminate\Session\SessionManager $sessionManager */ - $sessionManager = $app->make(SessionManager::class); - $httpDriver = new SymfonyHttpDriver($sessionManager, $response); - $this->setHttpDriver($httpDriver); - - if ($this->shouldCollect('session') && ! $this->hasCollector('session')) { - try { - $this->addCollector(new SessionCollector($sessionManager)); - } catch (\Exception $e) { - $this->addThrowable( - new Exception( - 'Cannot add SessionCollector to Laravel Debugbar: ' . $e->getMessage(), - $e->getCode(), - $e - ) - ); - } - } - } else { - $sessionManager = null; - } - - if ($this->shouldCollect('symfony_request', true) && !$this->hasCollector('request')) { - try { - $this->addCollector(new RequestCollector($request, $response, $sessionManager)); - } catch (\Exception $e) { - $this->addThrowable( - new Exception( - 'Cannot add SymfonyRequestCollector to Laravel Debugbar: ' . $e->getMessage(), - $e->getCode(), - $e - ) - ); - } - } - - if ($app['config']->get('debugbar.clockwork') && ! $this->hasCollector('clockwork')) { - - try { - $this->addCollector(new ClockworkCollector($request, $response, $sessionManager)); - } catch (\Exception $e) { - $this->addThrowable( - new Exception( - 'Cannot add ClockworkCollector to Laravel Debugbar: ' . $e->getMessage(), - $e->getCode(), - $e - ) - ); - } - - $this->addClockworkHeaders($response); - } - - if ($response->isRedirection()) { - try { - $this->stackData(); - } catch (\Exception $e) { - $app['log']->error('Debugbar exception: ' . $e->getMessage()); - } - } elseif ( - $this->isJsonRequest($request) && - $app['config']->get('debugbar.capture_ajax', true) - ) { - try { - $this->sendDataInHeaders(true); - - if ($app['config']->get('debugbar.add_ajax_timing', false)) { - $this->addServerTimingHeaders($response); - } - - } catch (\Exception $e) { - $app['log']->error('Debugbar exception: ' . $e->getMessage()); - } - } elseif ( - ($response->headers->has('Content-Type') && - strpos($response->headers->get('Content-Type'), 'html') === false) - || $request->getRequestFormat() !== 'html' - || $response->getContent() === false - ) { - try { - // Just collect + store data, don't inject it. - $this->collect(); - } catch (\Exception $e) { - $app['log']->error('Debugbar exception: ' . $e->getMessage()); - } - } elseif ($app['config']->get('debugbar.inject', true)) { - try { - $this->injectDebugbar($response); - } catch (\Exception $e) { - $app['log']->error('Debugbar exception: ' . $e->getMessage()); - } - } - - - - return $response; - } - - /** - * Check if the Debugbar is enabled - * @return boolean - */ - public function isEnabled() - { - if ($this->enabled === null) { - $config = $this->app['config']; - $configEnabled = value($config->get('debugbar.enabled')); - - if ($configEnabled === null) { - $configEnabled = $config->get('app.debug'); - } - - $this->enabled = $configEnabled && !$this->app->runningInConsole() && !$this->app->environment('testing'); - } - - return $this->enabled; - } - - /** - * Check if this is a request to the Debugbar OpenHandler - * - * @return bool - */ - protected function isDebugbarRequest() - { - return $this->app['request']->segment(1) == '_debugbar'; - } - - /** - * @param \Symfony\Component\HttpFoundation\Request $request - * @return bool - */ - protected function isJsonRequest(Request $request) - { - // If XmlHttpRequest, return true - if ($request->isXmlHttpRequest()) { - return true; - } - - // Check if the request wants Json - $acceptable = $request->getAcceptableContentTypes(); - return (isset($acceptable[0]) && $acceptable[0] == 'application/json'); - } - - /** - * Collects the data from the collectors - * - * @return array - */ - public function collect() - { - /** @var Request $request */ - $request = $this->app['request']; - - $this->data = [ - '__meta' => [ - 'id' => $this->getCurrentRequestId(), - 'datetime' => date('Y-m-d H:i:s'), - 'utime' => microtime(true), - 'method' => $request->getMethod(), - 'uri' => $request->getRequestUri(), - 'ip' => $request->getClientIp() - ] - ]; - - foreach ($this->collectors as $name => $collector) { - $this->data[$name] = $collector->collect(); - } - - // Remove all invalid (non UTF-8) characters - array_walk_recursive( - $this->data, - function (&$item) { - if (is_string($item) && !mb_check_encoding($item, 'UTF-8')) { - $item = mb_convert_encoding($item, 'UTF-8', 'UTF-8'); - } - } - ); - - if ($this->storage !== null) { - $this->storage->save($this->getCurrentRequestId(), $this->data); - } - - return $this->data; - } - - /** - * Injects the web debug toolbar into the given Response. - * - * @param \Symfony\Component\HttpFoundation\Response $response A Response instance - * Based on https://github.com/symfony/WebProfilerBundle/blob/master/EventListener/WebDebugToolbarListener.php - */ - public function injectDebugbar(Response $response) - { - $content = $response->getContent(); - - $renderer = $this->getJavascriptRenderer(); - if ($this->getStorage()) { - $openHandlerUrl = route('debugbar.openhandler'); - $renderer->setOpenHandlerUrl($openHandlerUrl); - } - - $renderedContent = $renderer->renderHead() . $renderer->render(); - - $pos = strripos($content, ''); - if (false !== $pos) { - $content = substr($content, 0, $pos) . $renderedContent . substr($content, $pos); - } else { - $content = $content . $renderedContent; - } - - // Update the new content and reset the content length - $response->setContent($content); - $response->headers->remove('Content-Length'); - } - - /** - * Disable the Debugbar - */ - public function disable() - { - $this->enabled = false; - } - - /** - * Adds a measure - * - * @param string $label - * @param float $start - * @param float $end - */ - public function addMeasure($label, $start, $end) - { - if ($this->hasCollector('time')) { - /** @var \DebugBar\DataCollector\TimeDataCollector $collector */ - $collector = $this->getCollector('time'); - $collector->addMeasure($label, $start, $end); - } - } - - /** - * Utility function to measure the execution of a Closure - * - * @param string $label - * @param \Closure $closure - */ - public function measure($label, \Closure $closure) - { - if ($this->hasCollector('time')) { - /** @var \DebugBar\DataCollector\TimeDataCollector $collector */ - $collector = $this->getCollector('time'); - $collector->measure($label, $closure); - } else { - $closure(); - } - } - - /** - * Collect data in a CLI request - * - * @return array - */ - public function collectConsole() - { - if (!$this->isEnabled()) { - return; - } - - $this->data = [ - '__meta' => [ - 'id' => $this->getCurrentRequestId(), - 'datetime' => date('Y-m-d H:i:s'), - 'utime' => microtime(true), - 'method' => 'CLI', - 'uri' => isset($_SERVER['argv']) ? implode(' ', $_SERVER['argv']) : null, - 'ip' => isset($_SERVER['SSH_CLIENT']) ? $_SERVER['SSH_CLIENT'] : null - ] - ]; - - foreach ($this->collectors as $name => $collector) { - $this->data[$name] = $collector->collect(); - } - - // Remove all invalid (non UTF-8) characters - array_walk_recursive( - $this->data, - function (&$item) { - if (is_string($item) && !mb_check_encoding($item, 'UTF-8')) { - $item = mb_convert_encoding($item, 'UTF-8', 'UTF-8'); - } - } - ); - - if ($this->storage !== null) { - $this->storage->save($this->getCurrentRequestId(), $this->data); - } - - return $this->data; - } - - /** - * Magic calls for adding messages - * - * @param string $method - * @param array $args - * @return mixed|void - */ - public function __call($method, $args) - { - $messageLevels = ['emergency', 'alert', 'critical', 'error', 'warning', 'notice', 'info', 'debug', 'log']; - if (in_array($method, $messageLevels)) { - foreach($args as $arg) { - $this->addMessage($arg, $method); - } - } - } - - /** - * Adds a message to the MessagesCollector - * - * A message can be anything from an object to a string - * - * @param mixed $message - * @param string $label - */ - public function addMessage($message, $label = 'info') - { - if ($this->hasCollector('messages')) { - /** @var \DebugBar\DataCollector\MessagesCollector $collector */ - $collector = $this->getCollector('messages'); - $collector->addMessage($message, $label); - } - } - - /** - * Check the version of Laravel - * - * @param string $version - * @param string $operator (default: '>=') - * @return boolean - */ - protected function checkVersion($version, $operator = ">=") - { - return version_compare($this->version, $version, $operator); - } - - protected function isLumen() - { - return $this->is_lumen; - } - - /** - * @param DebugBar $debugbar - */ - protected function selectStorage(DebugBar $debugbar) - { - $config = $this->app['config']; - if ($config->get('debugbar.storage.enabled')) { - $driver = $config->get('debugbar.storage.driver', 'file'); - - switch ($driver) { - case 'pdo': - $connection = $config->get('debugbar.storage.connection'); - $table = $this->app['db']->getTablePrefix() . 'phpdebugbar'; - $pdo = $this->app['db']->connection($connection)->getPdo(); - $storage = new PdoStorage($pdo, $table); - break; - case 'redis': - $connection = $config->get('debugbar.storage.connection'); - $client = $this->app['redis']->connection($connection); - if (is_a($client, 'Illuminate\Redis\Connections\Connection', false)) { - $client = $client->client(); - } - $storage = new RedisStorage($client); - break; - case 'custom': - $class = $config->get('debugbar.storage.provider'); - $storage = $this->app->make($class); - break; - case 'file': - default: - $path = $config->get('debugbar.storage.path'); - $storage = new FilesystemStorage($this->app['files'], $path); - break; - } - - $debugbar->setStorage($storage); - } - } - - protected function addClockworkHeaders(Response $response) - { - $prefix = $this->app['config']->get('debugbar.route_prefix'); - $response->headers->set('X-Clockwork-Id', $this->getCurrentRequestId(), true); - $response->headers->set('X-Clockwork-Version', 1, true); - $response->headers->set('X-Clockwork-Path', $prefix .'/clockwork/', true); - } - - /** - * Add Server-Timing headers for the TimeData collector - * - * @see https://www.w3.org/TR/server-timing/ - * @param Response $response - */ - protected function addServerTimingHeaders(Response $response) - { - if ($this->hasCollector('time')) { - $collector = $this->getCollector('time'); - - $headers = []; - foreach ($collector->collect()['measures'] as $k => $m) { - $headers[] = sprintf('%d=%F; "%s"', $k, $m['duration'] * 1000, str_replace('"', "'", $m['label'])); - } - - $response->headers->set('Server-Timing', $headers, false); - } - } -} diff --git a/vendor/barryvdh/laravel-debugbar/src/LumenServiceProvider.php b/vendor/barryvdh/laravel-debugbar/src/LumenServiceProvider.php deleted file mode 100644 index a3542753..00000000 --- a/vendor/barryvdh/laravel-debugbar/src/LumenServiceProvider.php +++ /dev/null @@ -1,49 +0,0 @@ -app->router; - } - - /** - * Get the config path - * - * @return string - */ - protected function getConfigPath() - { - return base_path('config/debugbar.php'); - } - - /** - * Register the Debugbar Middleware - * - * @param string $middleware - */ - protected function registerMiddleware($middleware) - { - $this->app->middleware([$middleware]); - } - - /** - * Get the services provided by the provider. - * - * @return array - */ - public function provides() - { - return ['debugbar', 'command.debugbar.clear']; - } -} diff --git a/vendor/barryvdh/laravel-debugbar/src/Middleware/DebugbarEnabled.php b/vendor/barryvdh/laravel-debugbar/src/Middleware/DebugbarEnabled.php deleted file mode 100644 index 9e10a766..00000000 --- a/vendor/barryvdh/laravel-debugbar/src/Middleware/DebugbarEnabled.php +++ /dev/null @@ -1,42 +0,0 @@ -debugbar = $debugbar; - } - - /** - * Handle an incoming request. - * - * @param Request $request - * @param Closure $next - * @return mixed - */ - public function handle($request, Closure $next) - { - if (!$this->debugbar->isEnabled()) { - abort(404); - } - - return $next($request); - - } -} diff --git a/vendor/barryvdh/laravel-debugbar/src/Middleware/InjectDebugbar.php b/vendor/barryvdh/laravel-debugbar/src/Middleware/InjectDebugbar.php deleted file mode 100644 index 42934fa0..00000000 --- a/vendor/barryvdh/laravel-debugbar/src/Middleware/InjectDebugbar.php +++ /dev/null @@ -1,123 +0,0 @@ -container = $container; - $this->debugbar = $debugbar; - $this->except = config('debugbar.except') ?: []; - } - - /** - * Handle an incoming request. - * - * @param Request $request - * @param Closure $next - * @return mixed - */ - public function handle($request, Closure $next) - { - if (!$this->debugbar->isEnabled() || $this->inExceptArray($request)) { - return $next($request); - } - - $this->debugbar->boot(); - - try { - /** @var \Illuminate\Http\Response $response */ - $response = $next($request); - } catch (Exception $e) { - $response = $this->handleException($request, $e); - } catch (Error $error) { - $e = new FatalThrowableError($error); - $response = $this->handleException($request, $e); - } - - // Modify the response to add the Debugbar - $this->debugbar->modifyResponse($request, $response); - - return $response; - - } - - /** - * Handle the given exception. - * - * (Copy from Illuminate\Routing\Pipeline by Taylor Otwell) - * - * @param $passable - * @param Exception $e - * @return mixed - * @throws Exception - */ - protected function handleException($passable, Exception $e) - { - if (! $this->container->bound(ExceptionHandler::class) || ! $passable instanceof Request) { - throw $e; - } - - $handler = $this->container->make(ExceptionHandler::class); - - $handler->report($e); - - return $handler->render($passable, $e); - } - - /** - * Determine if the request has a URI that should be ignored. - * - * @param \Illuminate\Http\Request $request - * @return bool - */ - protected function inExceptArray($request) - { - foreach ($this->except as $except) { - if ($except !== '/') { - $except = trim($except, '/'); - } - - if ($request->is($except)) { - return true; - } - } - - return false; - } -} diff --git a/vendor/barryvdh/laravel-debugbar/src/Resources/cache/widget.js b/vendor/barryvdh/laravel-debugbar/src/Resources/cache/widget.js deleted file mode 100644 index ad7d967f..00000000 --- a/vendor/barryvdh/laravel-debugbar/src/Resources/cache/widget.js +++ /dev/null @@ -1,59 +0,0 @@ -(function($) { - - var csscls = PhpDebugBar.utils.makecsscls('phpdebugbar-widgets-'); - - /** - * Widget for the displaying cache events - * - * Options: - * - data - */ - var LaravelCacheWidget = PhpDebugBar.Widgets.LaravelCacheWidget = PhpDebugBar.Widgets.TimelineWidget.extend({ - - tagName: 'ul', - - className: csscls('timeline cache'), - - onForgetClick: function(e, el) { - e.stopPropagation(); - - $.ajax({ - url: $(el).attr("data-url"), - type: 'DELETE', - success: function(result) { - $(el).fadeOut(200); - } - }); - }, - - render: function() { - LaravelCacheWidget.__super__.render.apply(this); - - this.bindAttr('data', function(data) { - - if (data.measures) { - var self = this; - var lines = this.$el.find('.'+csscls('measure')); - - for (var i = 0; i < data.measures.length; i++) { - var measure = data.measures[i]; - var m = lines[i]; - - if (measure.params && !$.isEmptyObject(measure.params)) { - - if (measure.params.delete && measure.params.key) { - $('') - .addClass(csscls('forget')) - .text('forget') - .attr('data-url', measure.params.delete) - .one('click', function(e) { self.onForgetClick(e, this); }) - .appendTo(m); - } - } - } - } - }); - } - }); - -})(PhpDebugBar.$); diff --git a/vendor/barryvdh/laravel-debugbar/src/Resources/laravel-debugbar.css b/vendor/barryvdh/laravel-debugbar/src/Resources/laravel-debugbar.css deleted file mode 100644 index d708aab1..00000000 --- a/vendor/barryvdh/laravel-debugbar/src/Resources/laravel-debugbar.css +++ /dev/null @@ -1,319 +0,0 @@ -div.phpdebugbar { - font-size: 13px; - font-family: "Lucida Grande", "Lucida Sans Unicode", "Lucida Sans", Geneva, Verdana, sans-serif; - direction: ltr; - text-align: left; - z-index: 100000; -} - -div.phpdebugbar-resize-handle { - border-bottom-color: #ddd; -} - -div.phpdebugbar-closed, -div.phpdebugbar-minimized { - border-top-color: #ddd; -} - -a.phpdebugbar-restore-btn { - border-right-color: #ddd !important; -} - -div.phpdebugbar code, div.phpdebugbar pre, div.phpdebugbar samp { - background: none; - font-family: "SFMono-Regular", Consolas, "Liberation Mono", Menlo, Courier, monospace; - font-size: 1em; - border: 0; - padding: 0; -} - -div.phpdebugbar code, div.phpdebugbar pre { - color: #000; -} - -div.phpdebugbar pre.sf-dump { - color: #a0a000; - outline: 0; -} - -div.phpdebugbar-body { - border-top: none; -} - -div.phpdebugbar-header { - min-height: 30px; - line-height: 20px; - padding-left: 39px; -} - -div.phpdebugbar-header, -a.phpdebugbar-restore-btn, -div.phpdebugbar-openhandler .phpdebugbar-openhandler-header { - background: #f5f5f5 url(data:image/png;base64,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) no-repeat 5px 3px; -} - -a.phpdebugbar-close-btn { - background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAOCAYAAAAfSC3RAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAYdEVYdFNvZnR3YXJlAHBhaW50Lm5ldCA0LjAuM4zml1AAAADDSURBVDhPxZCxCsIwFEUzuGdwCvQD7BIIcehUXDqVfGM/wsG/iG4ifkzMlRuSPLo4eeFBue8c6Iv6b4wxW557Hs0KnWa3seqDxTiOyVqbhmF4UND4Rofdruyce3rvE6bIRSo9GOI1McbLPM/vVm4l7MAQr0kpHaQsJTDE+6zrepym6SVFdNgR69M+hBTLzWCI10gJvydvBkO8ZlmWayvhJnkzGOI1+fBTCOHWPkT7YNiBId4HizxnCKy+r81uX/otSn0A7dioI/vYX+8AAAAASUVORK5CYII=) no-repeat 9px 6px; - color : #555; -} - -a.phpdebugbar-open-btn { - background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAOCAYAAADJ7fe0AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAACxIAAAsSAdLdfvwAAAAHdElNRQfdCgYULwwNKp3GAAAAGHRFWHRTb2Z0d2FyZQBwYWludC5uZXQgNC4wLjOM5pdQAAAA1UlEQVQ4T2OgKpCUlOQH4vdA/B8Jv4dKEwYgDdLS0v8NDQ3/GxsbwzGIj2YoGEO1oQJkjcRgqDZUAJKwsrJ6/v//fwdiMFQbKgAZkpGR0QR0ajy60wlgRJhBXSGhpqb2CNnZhHBkZORcqBEMDFBX2BsYGGBVjAv39vZaQ41gYIC6Ygs2hbiwr6/vdqA+DqgR4CiW19bWxqoYF87Ly4uFaocAZWXlydgU4sJ2dna3ga4QgGqHAC0trY/YFOPCKSkpDVCtCAA01QaIsaYJHFgCqpVagIEBACGlF2c3r4ViAAAAAElFTkSuQmCC) no-repeat 8px 6px; -} - - -div.phpdebugbar-header, -div.phpdebugbar-openhandler-header { - background-size: 21px auto; - background-position: 9px center; -} - -a.phpdebugbar-restore-btn { - background-size: 20px; - width: 16px; - border-right-color: #ccc; -} - -div.phpdebugbar-header > div > * { - font-size: 13px; -} - -div.phpdebugbar-header .phpdebugbar-tab { - padding: 5px 6px; -} - -div.phpdebugbar .phpdebugbar-header select { - padding: 1px 0; -} - -dl.phpdebugbar-widgets-kvlist dt { - width: 200px; - min-height: 20px; - padding: 7px 5px; - line-height: 20px; -} - -dl.phpdebugbar-widgets-kvlist dd { - min-height: 20px; - margin-left: 210px; - padding: 7px 5px; - line-height: 20px; -} - -ul.phpdebugbar-widgets-timeline .phpdebugbar-widgets-measure { - height: 25px; - line-height: 25px; - border: none; -} - -ul.phpdebugbar-widgets-timeline li:nth-child(even) { - background-color: #f9f9f9; -} - -ul.phpdebugbar-widgets-timeline li span.phpdebugbar-widgets-value { - height: 15px; - background-color: #f4645f; -} - -ul.phpdebugbar-widgets-timeline li span.phpdebugbar-widgets-label, -ul.phpdebugbar-widgets-timeline li span.phpdebugbar-widgets-collector { - top: 0px; -} - -div.phpdebugbar-widgets-messages div.phpdebugbar-widgets-toolbar a.phpdebugbar-widgets-filter { - background-color: #f4645f; -} - -a.phpdebugbar-tab:hover, -span.phpdebugbar-indicator:hover, -a.phpdebugbar-indicator:hover, -a.phpdebugbar-close-btn:hover, -a.phpdebugbar-open-btn:hover { - background-color: #ebebeb; - transition: background-color .25s linear 0s, color .25s linear 0s; -} - -a.phpdebugbar-tab.phpdebugbar-active { - background: #f4645f; - color: #fff; -} - -a.phpdebugbar-tab.phpdebugbar-active span.phpdebugbar-badge { - background-color: white; - color: #f4645f; -} - -a.phpdebugbar-tab span.phpdebugbar-badge { - vertical-align: 0px; - padding: 2px 6px; - background: #f4645f; - font-size: 12px; - color: #fff; - border-radius: 10px; -} - -div.phpdebugbar-openhandler .phpdebugbar-openhandler-header { - background-size: 20px; -} - -div.phpdebugbar-openhandler a { - color: #555; -} - -div.phpdebugbar-openhandler table { - table-layout: fixed; -} - -div.phpdebugbar-openhandler table td, -div.phpdebugbar-openhandler table th { - text-align: left; -} - -div.phpdebugbar-openhandler table td a { - display: block; - white-space: nowrap; - overflow: hidden; - text-overflow: ellipsis; -} - -.phpdebugbar-indicator span.phpdebugbar-tooltip { - top: -36px; - border: none; - border-radius: 5px; - background: #f5f5f5; - font-size: 12px; -} - -div.phpdebugbar-widgets-messages div.phpdebugbar-widgets-toolbar a.phpdebugbar-widgets-filter { - margin: 0; - padding: 5px 8px; - border-radius: 0; - font-size: 12px; - transition: background-color .25s linear 0s, color .25s linear 0s; -} - -div.phpdebugbar-widgets-messages div.phpdebugbar-widgets-toolbar a.phpdebugbar-widgets-filter:hover { - background-color: #ad4844; - color: #fff; -} - -.phpdebugbar-widgets-toolbar > .fa { - width: 25px; - font-size: 15px; - color: #555; - text-align: center; -} - -ul.phpdebugbar-widgets-list li.phpdebugbar-widgets-list-item { - padding: 15px 10px; - border: none; - font-family: inherit; - overflow: visible; - display: flex; - flex-wrap: wrap; -} - -.phpdebugbar-widgets-sql.phpdebugbar-widgets-name { - font-weight: bold; -} - -ul.phpdebugbar-widgets-list li.phpdebugbar-widgets-list-item .phpdebugbar-widgets-sql { - flex: 1; - margin-right: 5px; - cursor: text; -} - -ul.phpdebugbar-widgets-list li.phpdebugbar-widgets-list-item .phpdebugbar-widgets-duration { - /*flex: 0 0 auto;*/ - margin-left: auto; - margin-right: 5px; -} - -ul.phpdebugbar-widgets-list li.phpdebugbar-widgets-list-item .phpdebugbar-widgets-database { - /*flex: 0 0 auto;*/ - margin-left: auto; -} - -ul.phpdebugbar-widgets-list li.phpdebugbar-widgets-list-item .phpdebugbar-widgets-stmt-id { - /*flex: 0 0 auto;*/ - margin-left: auto; - margin-right: 5px; -} - -ul.phpdebugbar-widgets-list li.phpdebugbar-widgets-list-item .phpdebugbar-widgets-params { - background-color: rgba(255, 255, 255, .5); - flex: 1 1 auto; - margin: 10px 100% 10px 0; - max-width: 100%; -} - -ul.phpdebugbar-widgets-list li.phpdebugbar-widgets-list-item:nth-child(even) { - background-color: #f9f9f9; -} - -div.phpdebugbar-widgets-messages li.phpdebugbar-widgets-list-item span.phpdebugbar-widgets-value.phpdebugbar-widgets-error:before { - font-size: 12px; - color: #e74c3c; -} - -div.phpdebugbar-widgets-messages li.phpdebugbar-widgets-list-item span.phpdebugbar-widgets-value.phpdebugbar-widgets-warning:before { - font-size: 12px; - color: #f1c40f; -} - -div.phpdebugbar-widgets-messages li.phpdebugbar-widgets-list-item span.phpdebugbar-widgets-value.phpdebugbar-widgets-error { - color: #e74c3c; -} - -.phpdebugbar-widgets-value.phpdebugbar-widgets-warning { - color: #f1c40f; -} - -div.phpdebugbar-widgets-sqlqueries { - line-height: 20px; -} - -div.phpdebugbar-widgets-sqlqueries .phpdebugbar-widgets-status { - background: none !important; - font-family: inherit !important; - font-weight: 400 !important; -} - -div.phpdebugbar-widgets-sqlqueries table.phpdebugbar-widgets-params th, -div.phpdebugbar-widgets-sqlqueries table.phpdebugbar-widgets-params td { - padding: 5px 10px; -} - -div.phpdebugbar-widgets-sqlqueries table.phpdebugbar-widgets-params td.phpdebugbar-widgets-name { - text-align: right; - vertical-align: top; - white-space: nowrap; -} - -div.phpdebugbar-widgets-sqlqueries table.phpdebugbar-widgets-params td.phpdebugbar-widgets-value { - text-align: left; -} - -ul.phpdebugbar-widgets-list ul.phpdebugbar-widgets-table-list { - text-align: left; -} - -ul.phpdebugbar-widgets-list li.phpdebugbar-widgets-table-list-item { - /*padding: 5px 10px;*/ -} - -.phpdebugbar-text-muted { - color: #888; -} - -ul.phpdebugbar-widgets-cache a.phpdebugbar-widgets-forget { - float: right; - font-size: 12px; - padding: 0 4px; - background: #f4645f; - margin: 0 2px; - border-radius: 4px; - color: #fff; - text-decoration: none; - line-height: 1.5rem; -} \ No newline at end of file diff --git a/vendor/barryvdh/laravel-debugbar/src/Resources/sqlqueries/widget.js b/vendor/barryvdh/laravel-debugbar/src/Resources/sqlqueries/widget.js deleted file mode 100644 index 4959e083..00000000 --- a/vendor/barryvdh/laravel-debugbar/src/Resources/sqlqueries/widget.js +++ /dev/null @@ -1,228 +0,0 @@ -(function($) { - - var csscls = PhpDebugBar.utils.makecsscls('phpdebugbar-widgets-'); - - /** - * Widget for the displaying sql queries - * - * Options: - * - data - */ - var LaravelSQLQueriesWidget = PhpDebugBar.Widgets.LaravelSQLQueriesWidget = PhpDebugBar.Widget.extend({ - - className: csscls('sqlqueries'), - - onFilterClick: function(el) { - $(el).toggleClass(csscls('excluded')); - - var excludedLabels = []; - this.$toolbar.find(csscls('.filter') + csscls('.excluded')).each(function() { - excludedLabels.push(this.rel); - }); - - this.$list.$el.find("li[connection=" + $(el).attr("rel") + "]").toggle(); - - this.set('exclude', excludedLabels); - }, - - render: function() { - this.$status = $('
').addClass(csscls('status')).appendTo(this.$el); - - this.$toolbar = $('
').addClass(csscls('toolbar')).appendTo(this.$el); - - var filters = [], self = this; - - this.$list = new PhpDebugBar.Widgets.ListWidget({ itemRenderer: function(li, stmt) { - if (stmt.type === 'transaction') { - $('').addClass(csscls('sql')).addClass(csscls('name')).text(stmt.sql).appendTo(li); - } else { - $('').addClass(csscls('sql')).html(PhpDebugBar.Widgets.highlight(stmt.sql, 'sql')).appendTo(li); - } - if (stmt.duration_str) { - $('').addClass(csscls('duration')).text(stmt.duration_str).appendTo(li); - } - if (stmt.memory_str) { - $('').addClass(csscls('memory')).text(stmt.memory_str).appendTo(li); - } - if (typeof(stmt.row_count) != 'undefined') { - $('').addClass(csscls('row-count')).text(stmt.row_count).appendTo(li); - } - if (typeof(stmt.stmt_id) != 'undefined' && stmt.stmt_id) { - $('').addClass(csscls('stmt-id')).text(stmt.stmt_id).appendTo(li); - } - if (stmt.connection) { - $('').addClass(csscls('database')).text(stmt.connection).appendTo(li); - li.attr("connection",stmt.connection); - if ( $.inArray(stmt.connection, filters) == -1 ) { - filters.push(stmt.connection); - $('
') - .addClass(csscls('filter')) - .text(stmt.connection) - .attr('rel', stmt.connection) - .on('click', function() { self.onFilterClick(this); }) - .appendTo(self.$toolbar); - if (filters.length>1) { - self.$toolbar.show(); - self.$list.$el.css("margin-bottom","20px"); - } - } - } - if (typeof(stmt.is_success) != 'undefined' && !stmt.is_success) { - li.addClass(csscls('error')); - li.append($('').addClass(csscls('error')).text("[" + stmt.error_code + "] " + stmt.error_message)); - } - - var table = $('
Metadata
').addClass(csscls('params')).appendTo(li); - - if (stmt.bindings && stmt.bindings.length) { - table.append(function () { - var icon = 'thumb-tack'; - var $icon = ''; - var $name = $('').addClass(csscls('name')).html('Bindings ' + $icon); - var $value = $('').addClass(csscls('value')); - var $span = $('').addClass('phpdebugbar-text-muted'); - - var index = 0; - var $bindings = new PhpDebugBar.Widgets.ListWidget({ itemRenderer: function(li, binding) { - var $index = $span.clone().text(index++ + '.'); - li.append($index, ' ', binding).removeClass(csscls('list-item')).addClass(csscls('table-list-item')); - }}); - - $bindings.set('data', stmt.bindings); - - $bindings.$el - .removeClass(csscls('list')) - .addClass(csscls('table-list')) - .appendTo($value); - - return $('').append($name, $value); - }); - } - - if (stmt.hints && stmt.hints.length) { - table.append(function () { - var icon = 'question-circle'; - var $icon = ''; - var $name = $('').addClass(csscls('name')).html('Hints ' + $icon); - var $value = $('').addClass(csscls('value')); - - var $hints = new PhpDebugBar.Widgets.ListWidget({ itemRenderer: function(li, hint) { - li.append(hint).removeClass(csscls('list-item')).addClass(csscls('table-list-item')); - }}); - - $hints.set('data', stmt.hints); - $hints.$el - .removeClass(csscls('list')) - .addClass(csscls('table-list')) - .appendTo($value); - - return $('').append($name, $value); - }); - } - - if (stmt.backtrace && stmt.backtrace.length) { - table.append(function () { - var icon = 'list-ul'; - var $icon = ''; - var $name = $('').addClass(csscls('name')).html('Backtrace ' + $icon); - var $value = $('').addClass(csscls('value')); - var $span = $('').addClass('phpdebugbar-text-muted'); - - var $backtrace = new PhpDebugBar.Widgets.ListWidget({ itemRenderer: function(li, source) { - var $parts = [ - $span.clone().text(source.index + '.'), - ' ', - ]; - - if (source.namespace) { - $parts.push(source.namespace + '::'); - } - - $parts.push(source.name); - $parts.push($span.clone().text(':' + source.line)); - - li.append($parts).removeClass(csscls('list-item')).addClass(csscls('table-list-item')); - }}); - - $backtrace.set('data', stmt.backtrace); - - $backtrace.$el - .removeClass(csscls('list')) - .addClass(csscls('table-list')) - .appendTo($value); - - return $('').append($name, $value); - }); - } - - if (stmt.params && !$.isEmptyObject(stmt.params)) { - for (var key in stmt.params) { - if (typeof stmt.params[key] !== 'function') { - table.append('' + key + '' + stmt.params[key] + ''); - } - } - } - - li.css('cursor', 'pointer').click(function() { - if (table.is(':visible')) { - table.hide(); - } else { - table.show(); - } - }); - }}); - this.$list.$el.appendTo(this.$el); - - this.bindAttr('data', function(data) { - this.$list.set('data', data.statements); - this.$status.empty(); - var stmt; - - // Search for duplicate statements. - for (var sql = {}, duplicate = 0, i = 0; i < data.statements.length; i++) { - if(data.statements[i].type === 'query') { - stmt = data.statements[i].sql; - if (data.statements[i].bindings && data.statements[i].bindings.length) { - stmt += JSON.stringify(data.statements[i].bindings); - } - if (data.statements[i].connection) { - stmt += '@' + data.statements[i].connection; - } - sql[stmt] = sql[stmt] || { keys: [] }; - sql[stmt].keys.push(i); - } - } - // Add classes to all duplicate SQL statements. - for (stmt in sql) { - if (sql[stmt].keys.length > 1) { - duplicate += sql[stmt].keys.length; - - for (i = 0; i < sql[stmt].keys.length; i++) { - this.$list.$el.find('.' + csscls('list-item')).eq(sql[stmt].keys[i]) - .addClass(csscls('sql-duplicate')) - .addClass(csscls('sql-duplicate-'+duplicate)); - } - } - } - - var t = $('').text(data.nb_statements + " statements were executed").appendTo(this.$status); - if (data.nb_failed_statements) { - t.append(", " + data.nb_failed_statements + " of which failed"); - } - if (duplicate) { - t.append(", " + duplicate + " of which were duplicated"); - t.append(", " + (data.nb_statements - duplicate) + " unique"); - } - if (data.accumulated_duration_str) { - this.$status.append($('').addClass(csscls('duration')).text(data.accumulated_duration_str)); - } - if (data.memory_usage_str) { - this.$status.append($('').addClass(csscls('memory')).text(data.memory_usage_str)); - } - }); - } - - }); - -})(PhpDebugBar.$); diff --git a/vendor/barryvdh/laravel-debugbar/src/Resources/vendor/font-awesome/generator_config.txt b/vendor/barryvdh/laravel-debugbar/src/Resources/vendor/font-awesome/generator_config.txt deleted file mode 100644 index f9985f0e..00000000 --- a/vendor/barryvdh/laravel-debugbar/src/Resources/vendor/font-awesome/generator_config.txt +++ /dev/null @@ -1,5 +0,0 @@ -# Font Squirrel Font-face Generator Configuration File -# Upload this file to the generator to recreate the settings -# you used to create these fonts. - -{"mode":"expert","formats":["woff"],"tt_instructor":"keep","fallback":"none","fallback_custom":"100","options_subset":"none","subset_custom":"","subset_custom_range":"","subset_ot_features":"all","subset_ot_features_list":"","base64":"Y","css_stylesheet":"style.css","filename_suffix":"","emsquare":"2048","spacing_adjustment":"0","rememberme":"Y"} \ No newline at end of file diff --git a/vendor/barryvdh/laravel-debugbar/src/Resources/vendor/font-awesome/style.css b/vendor/barryvdh/laravel-debugbar/src/Resources/vendor/font-awesome/style.css deleted file mode 100644 index 6fc6c340..00000000 --- a/vendor/barryvdh/laravel-debugbar/src/Resources/vendor/font-awesome/style.css +++ /dev/null @@ -1,1671 +0,0 @@ -/*! - * Font Awesome 4.3.0 by @davegandy - http://fontawesome.io - @fontawesome - * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) - */ -/* FONT PATH - * -------------------------- */ -@font-face { - font-family: 'PhpDebugbarFontAwesome'; - src: url(data:application/font-woff;charset=utf-8;base64,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) format('woff'); - font-weight: normal; - font-style: normal; -} -.phpdebugbar-fa { - display: inline-block; - font: normal normal normal 14px/1 PhpDebugbarFontAwesome; - font-size: inherit; - text-rendering: auto; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; -} -/* makes the font 33% larger relative to the icon container */ -.phpdebugbar-fa-lg { - font-size: 1.33333333em; - line-height: 0.75em; - vertical-align: -15%; -} -.phpdebugbar-fa-2x { - font-size: 2em; -} -.phpdebugbar-fa-3x { - font-size: 3em; -} -.phpdebugbar-fa-4x { - font-size: 4em; -} -.phpdebugbar-fa-5x { - font-size: 5em; -} -.phpdebugbar-fa-fw { - width: 1.28571429em; - text-align: center; -} -.phpdebugbar-fa-ul { - padding-left: 0; - margin-left: 2.14285714em; - list-style-type: none; -} -.phpdebugbar-fa-ul > li { - position: relative; -} -.phpdebugbar-fa-li { - position: absolute; - left: -2.14285714em; - width: 2.14285714em; - top: 0.14285714em; - text-align: center; -} -.phpdebugbar-fa-li.phpdebugbar-fa-lg { - left: -1.85714286em; -} -.phpdebugbar-fa-border { - padding: .2em .25em .15em; - border: solid 0.08em #eeeeee; - border-radius: .1em; -} -.pull-right { - float: right; -} -.pull-left { - float: left; -} -.phpdebugbar-fa.pull-left { - margin-right: .3em; -} -.phpdebugbar-fa.pull-right { - margin-left: .3em; -} -.phpdebugbar-fa-spin { - -webkit-animation: phpdebugbar-fa-spin 2s infinite linear; - animation: phpdebugbar-fa-spin 2s infinite linear; -} -@-webkit-keyframes phpdebugbar-fa-spin { - 0% { - -webkit-transform: rotate(0deg); - transform: rotate(0deg); - } - 100% { - -webkit-transform: rotate(359deg); - transform: rotate(359deg); - } -} -@keyframes phpdebugbar-fa-spin { - 0% { - -webkit-transform: rotate(0deg); - transform: rotate(0deg); - } - 100% { - -webkit-transform: rotate(359deg); - transform: rotate(359deg); - } -} -.phpdebugbar-fa-rotate-90 { - filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=1); - -webkit-transform: rotate(90deg); - -ms-transform: rotate(90deg); - transform: rotate(90deg); -} -.phpdebugbar-fa-rotate-180 { - filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2); - -webkit-transform: rotate(180deg); - -ms-transform: rotate(180deg); - transform: rotate(180deg); -} -.phpdebugbar-fa-rotate-270 { - filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=3); - -webkit-transform: rotate(270deg); - -ms-transform: rotate(270deg); - transform: rotate(270deg); -} -.phpdebugbar-fa-flip-horizontal { - filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1); - -webkit-transform: scale(-1, 1); - -ms-transform: scale(-1, 1); - transform: scale(-1, 1); -} -.phpdebugbar-fa-flip-vertical { - filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1); - -webkit-transform: scale(1, -1); - -ms-transform: scale(1, -1); - transform: scale(1, -1); -} -:root .phpdebugbar-fa-rotate-90, -:root .phpdebugbar-fa-rotate-180, -:root .phpdebugbar-fa-rotate-270, -:root .phpdebugbar-fa-flip-horizontal, -:root .phpdebugbar-fa-flip-vertical { - filter: none; -} -.phpdebugbar-fa-stack { - position: relative; - display: inline-block; - width: 2em; - height: 2em; - line-height: 2em; - vertical-align: middle; -} -.phpdebugbar-fa-stack-1x, -.phpdebugbar-fa-stack-2x { - position: absolute; - left: 0; - width: 100%; - text-align: center; -} -.phpdebugbar-fa-stack-1x { - line-height: inherit; -} -.phpdebugbar-fa-stack-2x { - font-size: 2em; -} -.phpdebugbar-fa-inverse { - color: #ffffff; -} -/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen - readers do not read off random characters that represent icons */ -.phpdebugbar-fa-glass:before { - content: "\f000"; -} -.phpdebugbar-fa-music:before { - content: "\f001"; -} -.phpdebugbar-fa-search:before { - content: "\f002"; -} -.phpdebugbar-fa-envelope-o:before { - content: "\f003"; -} -.phpdebugbar-fa-heart:before { - content: "\f004"; -} -.phpdebugbar-fa-star:before { - content: "\f005"; -} -.phpdebugbar-fa-star-o:before { - content: "\f006"; -} -.phpdebugbar-fa-user:before { - content: "\f007"; -} -.phpdebugbar-fa-film:before { - content: "\f008"; -} -.phpdebugbar-fa-th-large:before { - content: "\f009"; -} -.phpdebugbar-fa-th:before { - content: "\f00a"; -} -.phpdebugbar-fa-th-list:before { - content: "\f00b"; -} -.phpdebugbar-fa-check:before { - content: "\f00c"; -} -.phpdebugbar-fa-remove:before, -.phpdebugbar-fa-close:before, -.phpdebugbar-fa-times:before { - content: "\f00d"; -} -.phpdebugbar-fa-search-plus:before { - content: "\f00e"; -} -.phpdebugbar-fa-search-minus:before { - content: "\f010"; -} -.phpdebugbar-fa-power-off:before { - content: "\f011"; -} -.phpdebugbar-fa-signal:before { - content: "\f012"; -} -.phpdebugbar-fa-gear:before, -.phpdebugbar-fa-cog:before { - content: "\f013"; -} -.phpdebugbar-fa-trash-o:before { - content: "\f014"; -} -.phpdebugbar-fa-home:before { - content: "\f015"; -} -.phpdebugbar-fa-file-o:before { - content: "\f016"; -} -.phpdebugbar-fa-clock-o:before { - content: "\f017"; -} -.phpdebugbar-fa-road:before { - content: "\f018"; -} -.phpdebugbar-fa-download:before { - content: "\f019"; -} -.phpdebugbar-fa-arrow-circle-o-down:before { - content: "\f01a"; -} -.phpdebugbar-fa-arrow-circle-o-up:before { - content: "\f01b"; -} -.phpdebugbar-fa-inbox:before { - content: "\f01c"; -} -.phpdebugbar-fa-play-circle-o:before { - content: "\f01d"; -} -.phpdebugbar-fa-rotate-right:before, -.phpdebugbar-fa-repeat:before { - content: "\f01e"; -} -.phpdebugbar-fa-refresh:before { - content: "\f021"; -} -.phpdebugbar-fa-list-alt:before { - content: "\f022"; -} -.phpdebugbar-fa-lock:before { - content: "\f023"; -} -.phpdebugbar-fa-flag:before { - content: "\f024"; -} -.phpdebugbar-fa-headphones:before { - content: "\f025"; -} -.phpdebugbar-fa-volume-off:before { - content: "\f026"; -} -.phpdebugbar-fa-volume-down:before { - content: "\f027"; -} -.phpdebugbar-fa-volume-up:before { - content: "\f028"; -} -.phpdebugbar-fa-qrcode:before { - content: "\f029"; -} -.phpdebugbar-fa-barcode:before { - content: "\f02a"; -} -.phpdebugbar-fa-tag:before { - content: "\f02b"; -} -.phpdebugbar-fa-tags:before { - content: "\f02c"; -} -.phpdebugbar-fa-book:before { - content: "\f02d"; -} -.phpdebugbar-fa-bookmark:before { - content: "\f02e"; -} -.phpdebugbar-fa-print:before { - content: "\f02f"; -} -.phpdebugbar-fa-camera:before { - content: "\f030"; -} -.phpdebugbar-fa-font:before { - content: "\f031"; -} -.phpdebugbar-fa-bold:before { - content: "\f032"; -} -.phpdebugbar-fa-italic:before { - content: "\f033"; -} -.phpdebugbar-fa-text-height:before { - content: "\f034"; -} -.phpdebugbar-fa-text-width:before { - content: "\f035"; -} -.phpdebugbar-fa-align-left:before { - content: "\f036"; -} -.phpdebugbar-fa-align-center:before { - content: "\f037"; -} -.phpdebugbar-fa-align-right:before { - content: "\f038"; -} -.phpdebugbar-fa-align-justify:before { - content: "\f039"; -} -.phpdebugbar-fa-list:before { - content: "\f03a"; -} -.phpdebugbar-fa-dedent:before, -.phpdebugbar-fa-outdent:before { - content: "\f03b"; -} -.phpdebugbar-fa-indent:before { - content: "\f03c"; -} -.phpdebugbar-fa-video-camera:before { - content: "\f03d"; -} -.phpdebugbar-fa-photo:before, -.phpdebugbar-fa-image:before, -.phpdebugbar-fa-picture-o:before { - content: "\f03e"; -} -.phpdebugbar-fa-pencil:before { - content: "\f040"; -} -.phpdebugbar-fa-map-marker:before { - content: "\f041"; -} -.phpdebugbar-fa-adjust:before { - content: "\f042"; -} -.phpdebugbar-fa-tint:before { - content: "\f043"; -} -.phpdebugbar-fa-edit:before, -.phpdebugbar-fa-pencil-square-o:before { - content: "\f044"; -} -.phpdebugbar-fa-share-square-o:before { - content: "\f045"; -} -.phpdebugbar-fa-check-square-o:before { - content: "\f046"; -} -.phpdebugbar-fa-arrows:before { - content: "\f047"; -} -.phpdebugbar-fa-step-backward:before { - content: "\f048"; -} -.phpdebugbar-fa-fast-backward:before { - content: "\f049"; -} -.phpdebugbar-fa-backward:before { - content: "\f04a"; -} -.phpdebugbar-fa-play:before { - content: "\f04b"; -} -.phpdebugbar-fa-pause:before { - content: "\f04c"; -} -.phpdebugbar-fa-stop:before { - content: "\f04d"; -} -.phpdebugbar-fa-forward:before { - content: "\f04e"; -} -.phpdebugbar-fa-fast-forward:before { - content: "\f050"; -} -.phpdebugbar-fa-step-forward:before { - content: "\f051"; -} -.phpdebugbar-fa-eject:before { - content: "\f052"; -} -.phpdebugbar-fa-chevron-left:before { - content: "\f053"; -} -.phpdebugbar-fa-chevron-right:before { - content: "\f054"; -} -.phpdebugbar-fa-plus-circle:before { - content: "\f055"; -} -.phpdebugbar-fa-minus-circle:before { - content: "\f056"; -} -.phpdebugbar-fa-times-circle:before { - content: "\f057"; -} -.phpdebugbar-fa-check-circle:before { - content: "\f058"; -} -.phpdebugbar-fa-question-circle:before { - content: "\f059"; -} -.phpdebugbar-fa-info-circle:before { - content: "\f05a"; -} -.phpdebugbar-fa-crosshairs:before { - content: "\f05b"; -} -.phpdebugbar-fa-times-circle-o:before { - content: "\f05c"; -} -.phpdebugbar-fa-check-circle-o:before { - content: "\f05d"; -} -.phpdebugbar-fa-ban:before { - content: "\f05e"; -} -.phpdebugbar-fa-arrow-left:before { - content: "\f060"; -} -.phpdebugbar-fa-arrow-right:before { - content: "\f061"; -} -.phpdebugbar-fa-arrow-up:before { - content: "\f062"; -} -.phpdebugbar-fa-arrow-down:before { - content: "\f063"; -} -.phpdebugbar-fa-mail-forward:before, -.phpdebugbar-fa-share:before { - content: "\f064"; -} -.phpdebugbar-fa-expand:before { - content: "\f065"; -} -.phpdebugbar-fa-compress:before { - content: "\f066"; -} -.phpdebugbar-fa-plus:before { - content: "\f067"; -} -.phpdebugbar-fa-minus:before { - content: "\f068"; -} -.phpdebugbar-fa-asterisk:before { - content: "\f069"; -} -.phpdebugbar-fa-exclamation-circle:before { - content: "\f06a"; -} -.phpdebugbar-fa-gift:before { - content: "\f06b"; -} -.phpdebugbar-fa-leaf:before { - content: "\f06c"; -} -.phpdebugbar-fa-fire:before { - content: "\f06d"; -} -.phpdebugbar-fa-eye:before { - content: "\f06e"; -} -.phpdebugbar-fa-eye-slash:before { - content: "\f070"; -} -.phpdebugbar-fa-warning:before, -.phpdebugbar-fa-exclamation-triangle:before { - content: "\f071"; -} -.phpdebugbar-fa-plane:before { - content: "\f072"; -} -.phpdebugbar-fa-calendar:before { - content: "\f073"; -} -.phpdebugbar-fa-random:before { - content: "\f074"; -} -.phpdebugbar-fa-comment:before { - content: "\f075"; -} -.phpdebugbar-fa-magnet:before { - content: "\f076"; -} -.phpdebugbar-fa-chevron-up:before { - content: "\f077"; -} -.phpdebugbar-fa-chevron-down:before { - content: "\f078"; -} -.phpdebugbar-fa-retweet:before { - content: "\f079"; -} -.phpdebugbar-fa-shopping-cart:before { - content: "\f07a"; -} -.phpdebugbar-fa-folder:before { - content: "\f07b"; -} -.phpdebugbar-fa-folder-open:before { - content: "\f07c"; -} -.phpdebugbar-fa-arrows-v:before { - content: "\f07d"; -} -.phpdebugbar-fa-arrows-h:before { - content: "\f07e"; -} -.phpdebugbar-fa-bar-chart-o:before, -.phpdebugbar-fa-bar-chart:before { - content: "\f080"; -} -.phpdebugbar-fa-twitter-square:before { - content: "\f081"; -} -.phpdebugbar-fa-facebook-square:before { - content: "\f082"; -} -.phpdebugbar-fa-camera-retro:before { - content: "\f083"; -} -.phpdebugbar-fa-key:before { - content: "\f084"; -} -.phpdebugbar-fa-gears:before, -.phpdebugbar-fa-cogs:before { - content: "\f085"; -} -.phpdebugbar-fa-comments:before { - content: "\f086"; -} -.phpdebugbar-fa-thumbs-o-up:before { - content: "\f087"; -} -.phpdebugbar-fa-thumbs-o-down:before { - content: "\f088"; -} -.phpdebugbar-fa-star-half:before { - content: "\f089"; -} -.phpdebugbar-fa-heart-o:before { - content: "\f08a"; -} -.phpdebugbar-fa-sign-out:before { - content: "\f08b"; -} -.phpdebugbar-fa-linkedin-square:before { - content: "\f08c"; -} -.phpdebugbar-fa-thumb-tack:before { - content: "\f08d"; -} -.phpdebugbar-fa-external-link:before { - content: "\f08e"; -} -.phpdebugbar-fa-sign-in:before { - content: "\f090"; -} -.phpdebugbar-fa-trophy:before { - content: "\f091"; -} -.phpdebugbar-fa-github-square:before { - content: "\f092"; -} -.phpdebugbar-fa-upload:before { - content: "\f093"; -} -.phpdebugbar-fa-lemon-o:before { - content: "\f094"; -} -.phpdebugbar-fa-phone:before { - content: "\f095"; -} -.phpdebugbar-fa-square-o:before { - content: "\f096"; -} -.phpdebugbar-fa-bookmark-o:before { - content: "\f097"; -} -.phpdebugbar-fa-phone-square:before { - content: "\f098"; -} -.phpdebugbar-fa-twitter:before { - content: "\f099"; -} -.phpdebugbar-fa-facebook:before { - content: "\f09a"; -} -.phpdebugbar-fa-github:before { - content: "\f09b"; -} -.phpdebugbar-fa-unlock:before { - content: "\f09c"; -} -.phpdebugbar-fa-credit-card:before { - content: "\f09d"; -} -.phpdebugbar-fa-rss:before { - content: "\f09e"; -} -.phpdebugbar-fa-hdd-o:before { - content: "\f0a0"; -} -.phpdebugbar-fa-bullhorn:before { - content: "\f0a1"; -} -.phpdebugbar-fa-bell:before { - content: "\f0f3"; -} -.phpdebugbar-fa-certificate:before { - content: "\f0a3"; -} -.phpdebugbar-fa-hand-o-right:before { - content: "\f0a4"; -} -.phpdebugbar-fa-hand-o-left:before { - content: "\f0a5"; -} -.phpdebugbar-fa-hand-o-up:before { - content: "\f0a6"; -} -.phpdebugbar-fa-hand-o-down:before { - content: "\f0a7"; -} -.phpdebugbar-fa-arrow-circle-left:before { - content: "\f0a8"; -} -.phpdebugbar-fa-arrow-circle-right:before { - content: "\f0a9"; -} -.phpdebugbar-fa-arrow-circle-up:before { - content: "\f0aa"; -} -.phpdebugbar-fa-arrow-circle-down:before { - content: "\f0ab"; -} -.phpdebugbar-fa-globe:before { - content: "\f0ac"; -} -.phpdebugbar-fa-wrench:before { - content: "\f0ad"; -} -.phpdebugbar-fa-tasks:before { - content: "\f0ae"; -} -.phpdebugbar-fa-filter:before { - content: "\f0b0"; -} -.phpdebugbar-fa-briefcase:before { - content: "\f0b1"; -} -.phpdebugbar-fa-arrows-alt:before { - content: "\f0b2"; -} -.phpdebugbar-fa-group:before, -.phpdebugbar-fa-users:before { - content: "\f0c0"; -} -.phpdebugbar-fa-chain:before, -.phpdebugbar-fa-link:before { - content: "\f0c1"; -} -.phpdebugbar-fa-cloud:before { - content: "\f0c2"; -} -.phpdebugbar-fa-flask:before { - content: "\f0c3"; -} -.phpdebugbar-fa-cut:before, -.phpdebugbar-fa-scissors:before { - content: "\f0c4"; -} -.phpdebugbar-fa-copy:before, -.phpdebugbar-fa-files-o:before { - content: "\f0c5"; -} -.phpdebugbar-fa-paperclip:before { - content: "\f0c6"; -} -.phpdebugbar-fa-save:before, -.phpdebugbar-fa-floppy-o:before { - content: "\f0c7"; -} -.phpdebugbar-fa-square:before { - content: "\f0c8"; -} -.phpdebugbar-fa-navicon:before, -.phpdebugbar-fa-reorder:before, -.phpdebugbar-fa-bars:before { - content: "\f0c9"; -} -.phpdebugbar-fa-list-ul:before { - content: "\f0ca"; -} -.phpdebugbar-fa-list-ol:before { - content: "\f0cb"; -} -.phpdebugbar-fa-strikethrough:before { - content: "\f0cc"; -} -.phpdebugbar-fa-underline:before { - content: "\f0cd"; -} -.phpdebugbar-fa-table:before { - content: "\f0ce"; -} -.phpdebugbar-fa-magic:before { - content: "\f0d0"; -} -.phpdebugbar-fa-truck:before { - content: "\f0d1"; -} -.phpdebugbar-fa-pinterest:before { - content: "\f0d2"; -} -.phpdebugbar-fa-pinterest-square:before { - content: "\f0d3"; -} -.phpdebugbar-fa-google-plus-square:before { - content: "\f0d4"; -} -.phpdebugbar-fa-google-plus:before { - content: "\f0d5"; -} -.phpdebugbar-fa-money:before { - content: "\f0d6"; -} -.phpdebugbar-fa-caret-down:before { - content: "\f0d7"; -} -.phpdebugbar-fa-caret-up:before { - content: "\f0d8"; -} -.phpdebugbar-fa-caret-left:before { - content: "\f0d9"; -} -.phpdebugbar-fa-caret-right:before { - content: "\f0da"; -} -.phpdebugbar-fa-columns:before { - content: "\f0db"; -} -.phpdebugbar-fa-unsorted:before, -.phpdebugbar-fa-sort:before { - content: "\f0dc"; -} -.phpdebugbar-fa-sort-down:before, -.phpdebugbar-fa-sort-desc:before { - content: "\f0dd"; -} -.phpdebugbar-fa-sort-up:before, -.phpdebugbar-fa-sort-asc:before { - content: "\f0de"; -} -.phpdebugbar-fa-envelope:before { - content: "\f0e0"; -} -.phpdebugbar-fa-linkedin:before { - content: "\f0e1"; -} -.phpdebugbar-fa-rotate-left:before, -.phpdebugbar-fa-undo:before { - content: "\f0e2"; -} -.phpdebugbar-fa-legal:before, -.phpdebugbar-fa-gavel:before { - content: "\f0e3"; -} -.phpdebugbar-fa-dashboard:before, -.phpdebugbar-fa-tachometer:before { - content: "\f0e4"; -} -.phpdebugbar-fa-comment-o:before { - content: "\f0e5"; -} -.phpdebugbar-fa-comments-o:before { - content: "\f0e6"; -} -.phpdebugbar-fa-flash:before, -.phpdebugbar-fa-bolt:before { - content: "\f0e7"; -} -.phpdebugbar-fa-sitemap:before { - content: "\f0e8"; -} -.phpdebugbar-fa-umbrella:before { - content: "\f0e9"; -} -.phpdebugbar-fa-paste:before, -.phpdebugbar-fa-clipboard:before { - content: "\f0ea"; -} -.phpdebugbar-fa-lightbulb-o:before { - content: "\f0eb"; -} -.phpdebugbar-fa-exchange:before { - content: "\f0ec"; -} -.phpdebugbar-fa-cloud-download:before { - content: "\f0ed"; -} -.phpdebugbar-fa-cloud-upload:before { - content: "\f0ee"; -} -.phpdebugbar-fa-user-md:before { - content: "\f0f0"; -} -.phpdebugbar-fa-stethoscope:before { - content: "\f0f1"; -} -.phpdebugbar-fa-suitcase:before { - content: "\f0f2"; -} -.phpdebugbar-fa-bell-o:before { - content: "\f0a2"; -} -.phpdebugbar-fa-coffee:before { - content: "\f0f4"; -} -.phpdebugbar-fa-cutlery:before { - content: "\f0f5"; -} -.phpdebugbar-fa-file-text-o:before { - content: "\f0f6"; -} -.phpdebugbar-fa-building-o:before { - content: "\f0f7"; -} -.phpdebugbar-fa-hospital-o:before { - content: "\f0f8"; -} -.phpdebugbar-fa-ambulance:before { - content: "\f0f9"; -} -.phpdebugbar-fa-medkit:before { - content: "\f0fa"; -} -.phpdebugbar-fa-fighter-jet:before { - content: "\f0fb"; -} -.phpdebugbar-fa-beer:before { - content: "\f0fc"; -} -.phpdebugbar-fa-h-square:before { - content: "\f0fd"; -} -.phpdebugbar-fa-plus-square:before { - content: "\f0fe"; -} -.phpdebugbar-fa-angle-double-left:before { - content: "\f100"; -} -.phpdebugbar-fa-angle-double-right:before { - content: "\f101"; -} -.phpdebugbar-fa-angle-double-up:before { - content: "\f102"; -} -.phpdebugbar-fa-angle-double-down:before { - content: "\f103"; -} -.phpdebugbar-fa-angle-left:before { - content: "\f104"; -} -.phpdebugbar-fa-angle-right:before { - content: "\f105"; -} -.phpdebugbar-fa-angle-up:before { - content: "\f106"; -} -.phpdebugbar-fa-angle-down:before { - content: "\f107"; -} -.phpdebugbar-fa-desktop:before { - content: "\f108"; -} -.phpdebugbar-fa-laptop:before { - content: "\f109"; -} -.phpdebugbar-fa-tablet:before { - content: "\f10a"; -} -.phpdebugbar-fa-mobile-phone:before, -.phpdebugbar-fa-mobile:before { - content: "\f10b"; -} -.phpdebugbar-fa-circle-o:before { - content: "\f10c"; -} -.phpdebugbar-fa-quote-left:before { - content: "\f10d"; -} -.phpdebugbar-fa-quote-right:before { - content: "\f10e"; -} -.phpdebugbar-fa-spinner:before { - content: "\f110"; -} -.phpdebugbar-fa-circle:before { - content: "\f111"; -} -.phpdebugbar-fa-mail-reply:before, -.phpdebugbar-fa-reply:before { - content: "\f112"; -} -.phpdebugbar-fa-github-alt:before { - content: "\f113"; -} -.phpdebugbar-fa-folder-o:before { - content: "\f114"; -} -.phpdebugbar-fa-folder-open-o:before { - content: "\f115"; -} -.phpdebugbar-fa-smile-o:before { - content: "\f118"; -} -.phpdebugbar-fa-frown-o:before { - content: "\f119"; -} -.phpdebugbar-fa-meh-o:before { - content: "\f11a"; -} -.phpdebugbar-fa-gamepad:before { - content: "\f11b"; -} -.phpdebugbar-fa-keyboard-o:before { - content: "\f11c"; -} -.phpdebugbar-fa-flag-o:before { - content: "\f11d"; -} -.phpdebugbar-fa-flag-checkered:before { - content: "\f11e"; -} -.phpdebugbar-fa-terminal:before { - content: "\f120"; -} -.phpdebugbar-fa-code:before { - content: "\f121"; -} -.phpdebugbar-fa-mail-reply-all:before, -.phpdebugbar-fa-reply-all:before { - content: "\f122"; -} -.phpdebugbar-fa-star-half-empty:before, -.phpdebugbar-fa-star-half-full:before, -.phpdebugbar-fa-star-half-o:before { - content: "\f123"; -} -.phpdebugbar-fa-location-arrow:before { - content: "\f124"; -} -.phpdebugbar-fa-crop:before { - content: "\f125"; -} -.phpdebugbar-fa-code-fork:before { - content: "\f126"; -} -.phpdebugbar-fa-unlink:before, -.phpdebugbar-fa-chain-broken:before { - content: "\f127"; -} -.phpdebugbar-fa-question:before { - content: "\f128"; -} -.phpdebugbar-fa-info:before { - content: "\f129"; -} -.phpdebugbar-fa-exclamation:before { - content: "\f12a"; -} -.phpdebugbar-fa-superscript:before { - content: "\f12b"; -} -.phpdebugbar-fa-subscript:before { - content: "\f12c"; -} -.phpdebugbar-fa-eraser:before { - content: "\f12d"; -} -.phpdebugbar-fa-puzzle-piece:before { - content: "\f12e"; -} -.phpdebugbar-fa-microphone:before { - content: "\f130"; -} -.phpdebugbar-fa-microphone-slash:before { - content: "\f131"; -} -.phpdebugbar-fa-shield:before { - content: "\f132"; -} -.phpdebugbar-fa-calendar-o:before { - content: "\f133"; -} -.phpdebugbar-fa-fire-extinguisher:before { - content: "\f134"; -} -.phpdebugbar-fa-rocket:before { - content: "\f135"; -} -.phpdebugbar-fa-maxcdn:before { - content: "\f136"; -} -.phpdebugbar-fa-chevron-circle-left:before { - content: "\f137"; -} -.phpdebugbar-fa-chevron-circle-right:before { - content: "\f138"; -} -.phpdebugbar-fa-chevron-circle-up:before { - content: "\f139"; -} -.phpdebugbar-fa-chevron-circle-down:before { - content: "\f13a"; -} -.phpdebugbar-fa-html5:before { - content: "\f13b"; -} -.phpdebugbar-fa-css3:before { - content: "\f13c"; -} -.phpdebugbar-fa-anchor:before { - content: "\f13d"; -} -.phpdebugbar-fa-unlock-alt:before { - content: "\f13e"; -} -.phpdebugbar-fa-bullseye:before { - content: "\f140"; -} -.phpdebugbar-fa-ellipsis-h:before { - content: "\f141"; -} -.phpdebugbar-fa-ellipsis-v:before { - content: "\f142"; -} -.phpdebugbar-fa-rss-square:before { - content: "\f143"; -} -.phpdebugbar-fa-play-circle:before { - content: "\f144"; -} -.phpdebugbar-fa-ticket:before { - content: "\f145"; -} -.phpdebugbar-fa-minus-square:before { - content: "\f146"; -} -.phpdebugbar-fa-minus-square-o:before { - content: "\f147"; -} -.phpdebugbar-fa-level-up:before { - content: "\f148"; -} -.phpdebugbar-fa-level-down:before { - content: "\f149"; -} -.phpdebugbar-fa-check-square:before { - content: "\f14a"; -} -.phpdebugbar-fa-pencil-square:before { - content: "\f14b"; -} -.phpdebugbar-fa-external-link-square:before { - content: "\f14c"; -} -.phpdebugbar-fa-share-square:before { - content: "\f14d"; -} -.phpdebugbar-fa-compass:before { - content: "\f14e"; -} -.phpdebugbar-fa-toggle-down:before, -.phpdebugbar-fa-caret-square-o-down:before { - content: "\f150"; -} -.phpdebugbar-fa-toggle-up:before, -.phpdebugbar-fa-caret-square-o-up:before { - content: "\f151"; -} -.phpdebugbar-fa-toggle-right:before, -.phpdebugbar-fa-caret-square-o-right:before { - content: "\f152"; -} -.phpdebugbar-fa-euro:before, -.phpdebugbar-fa-eur:before { - content: "\f153"; -} -.phpdebugbar-fa-gbp:before { - content: "\f154"; -} -.phpdebugbar-fa-dollar:before, -.phpdebugbar-fa-usd:before { - content: "\f155"; -} -.phpdebugbar-fa-rupee:before, -.phpdebugbar-fa-inr:before { - content: "\f156"; -} -.phpdebugbar-fa-cny:before, -.phpdebugbar-fa-rmb:before, -.phpdebugbar-fa-yen:before, -.phpdebugbar-fa-jpy:before { - content: "\f157"; -} -.phpdebugbar-fa-ruble:before, -.phpdebugbar-fa-rouble:before, -.phpdebugbar-fa-rub:before { - content: "\f158"; -} -.phpdebugbar-fa-won:before, -.phpdebugbar-fa-krw:before { - content: "\f159"; -} -.phpdebugbar-fa-bitcoin:before, -.phpdebugbar-fa-btc:before { - content: "\f15a"; -} -.phpdebugbar-fa-file:before { - content: "\f15b"; -} -.phpdebugbar-fa-file-text:before { - content: "\f15c"; -} -.phpdebugbar-fa-sort-alpha-asc:before { - content: "\f15d"; -} -.phpdebugbar-fa-sort-alpha-desc:before { - content: "\f15e"; -} -.phpdebugbar-fa-sort-amount-asc:before { - content: "\f160"; -} -.phpdebugbar-fa-sort-amount-desc:before { - content: "\f161"; -} -.phpdebugbar-fa-sort-numeric-asc:before { - content: "\f162"; -} -.phpdebugbar-fa-sort-numeric-desc:before { - content: "\f163"; -} -.phpdebugbar-fa-thumbs-up:before { - content: "\f164"; -} -.phpdebugbar-fa-thumbs-down:before { - content: "\f165"; -} -.phpdebugbar-fa-youtube-square:before { - content: "\f166"; -} -.phpdebugbar-fa-youtube:before { - content: "\f167"; -} -.phpdebugbar-fa-xing:before { - content: "\f168"; -} -.phpdebugbar-fa-xing-square:before { - content: "\f169"; -} -.phpdebugbar-fa-youtube-play:before { - content: "\f16a"; -} -.phpdebugbar-fa-dropbox:before { - content: "\f16b"; -} -.phpdebugbar-fa-stack-overflow:before { - content: "\f16c"; -} -.phpdebugbar-fa-instagram:before { - content: "\f16d"; -} -.phpdebugbar-fa-flickr:before { - content: "\f16e"; -} -.phpdebugbar-fa-adn:before { - content: "\f170"; -} -.phpdebugbar-fa-bitbucket:before { - content: "\f171"; -} -.phpdebugbar-fa-bitbucket-square:before { - content: "\f172"; -} -.phpdebugbar-fa-tumblr:before { - content: "\f173"; -} -.phpdebugbar-fa-tumblr-square:before { - content: "\f174"; -} -.phpdebugbar-fa-long-arrow-down:before { - content: "\f175"; -} -.phpdebugbar-fa-long-arrow-up:before { - content: "\f176"; -} -.phpdebugbar-fa-long-arrow-left:before { - content: "\f177"; -} -.phpdebugbar-fa-long-arrow-right:before { - content: "\f178"; -} -.phpdebugbar-fa-apple:before { - content: "\f179"; -} -.phpdebugbar-fa-windows:before { - content: "\f17a"; -} -.phpdebugbar-fa-android:before { - content: "\f17b"; -} -.phpdebugbar-fa-linux:before { - content: "\f17c"; -} -.phpdebugbar-fa-dribbble:before { - content: "\f17d"; -} -.phpdebugbar-fa-skype:before { - content: "\f17e"; -} -.phpdebugbar-fa-foursquare:before { - content: "\f180"; -} -.phpdebugbar-fa-trello:before { - content: "\f181"; -} -.phpdebugbar-fa-female:before { - content: "\f182"; -} -.phpdebugbar-fa-male:before { - content: "\f183"; -} -.phpdebugbar-fa-gittip:before { - content: "\f184"; -} -.phpdebugbar-fa-sun-o:before { - content: "\f185"; -} -.phpdebugbar-fa-moon-o:before { - content: "\f186"; -} -.phpdebugbar-fa-archive:before { - content: "\f187"; -} -.phpdebugbar-fa-bug:before { - content: "\f188"; -} -.phpdebugbar-fa-vk:before { - content: "\f189"; -} -.phpdebugbar-fa-weibo:before { - content: "\f18a"; -} -.phpdebugbar-fa-renren:before { - content: "\f18b"; -} -.phpdebugbar-fa-pagelines:before { - content: "\f18c"; -} -.phpdebugbar-fa-stack-exchange:before { - content: "\f18d"; -} -.phpdebugbar-fa-arrow-circle-o-right:before { - content: "\f18e"; -} -.phpdebugbar-fa-arrow-circle-o-left:before { - content: "\f190"; -} -.phpdebugbar-fa-toggle-left:before, -.phpdebugbar-fa-caret-square-o-left:before { - content: "\f191"; -} -.phpdebugbar-fa-dot-circle-o:before { - content: "\f192"; -} -.phpdebugbar-fa-wheelchair:before { - content: "\f193"; -} -.phpdebugbar-fa-vimeo-square:before { - content: "\f194"; -} -.phpdebugbar-fa-turkish-lira:before, -.phpdebugbar-fa-try:before { - content: "\f195"; -} -.phpdebugbar-fa-plus-square-o:before { - content: "\f196"; -} -.phpdebugbar-fa-space-shuttle:before { - content: "\f197"; -} -.phpdebugbar-fa-slack:before { - content: "\f198"; -} -.phpdebugbar-fa-envelope-square:before { - content: "\f199"; -} -.phpdebugbar-fa-wordpress:before { - content: "\f19a"; -} -.phpdebugbar-fa-openid:before { - content: "\f19b"; -} -.phpdebugbar-fa-institution:before, -.phpdebugbar-fa-bank:before, -.phpdebugbar-fa-university:before { - content: "\f19c"; -} -.phpdebugbar-fa-mortar-board:before, -.phpdebugbar-fa-graduation-cap:before { - content: "\f19d"; -} -.phpdebugbar-fa-yahoo:before { - content: "\f19e"; -} -.phpdebugbar-fa-google:before { - content: "\f1a0"; -} -.phpdebugbar-fa-reddit:before { - content: "\f1a1"; -} -.phpdebugbar-fa-reddit-square:before { - content: "\f1a2"; -} -.phpdebugbar-fa-stumbleupon-circle:before { - content: "\f1a3"; -} -.phpdebugbar-fa-stumbleupon:before { - content: "\f1a4"; -} -.phpdebugbar-fa-delicious:before { - content: "\f1a5"; -} -.phpdebugbar-fa-digg:before { - content: "\f1a6"; -} -.phpdebugbar-fa-pied-piper:before { - content: "\f1a7"; -} -.phpdebugbar-fa-pied-piper-alt:before { - content: "\f1a8"; -} -.phpdebugbar-fa-drupal:before { - content: "\f1a9"; -} -.phpdebugbar-fa-joomla:before { - content: "\f1aa"; -} -.phpdebugbar-fa-language:before { - content: "\f1ab"; -} -.phpdebugbar-fa-fax:before { - content: "\f1ac"; -} -.phpdebugbar-fa-building:before { - content: "\f1ad"; -} -.phpdebugbar-fa-child:before { - content: "\f1ae"; -} -.phpdebugbar-fa-paw:before { - content: "\f1b0"; -} -.phpdebugbar-fa-spoon:before { - content: "\f1b1"; -} -.phpdebugbar-fa-cube:before { - content: "\f1b2"; -} -.phpdebugbar-fa-cubes:before { - content: "\f1b3"; -} -.phpdebugbar-fa-behance:before { - content: "\f1b4"; -} -.phpdebugbar-fa-behance-square:before { - content: "\f1b5"; -} -.phpdebugbar-fa-steam:before { - content: "\f1b6"; -} -.phpdebugbar-fa-steam-square:before { - content: "\f1b7"; -} -.phpdebugbar-fa-recycle:before { - content: "\f1b8"; -} -.phpdebugbar-fa-automobile:before, -.phpdebugbar-fa-car:before { - content: "\f1b9"; -} -.phpdebugbar-fa-cab:before, -.phpdebugbar-fa-taxi:before { - content: "\f1ba"; -} -.phpdebugbar-fa-tree:before { - content: "\f1bb"; -} -.phpdebugbar-fa-spotify:before { - content: "\f1bc"; -} -.phpdebugbar-fa-deviantart:before { - content: "\f1bd"; -} -.phpdebugbar-fa-soundcloud:before { - content: "\f1be"; -} -.phpdebugbar-fa-database:before { - content: "\f1c0"; -} -.phpdebugbar-fa-file-pdf-o:before { - content: "\f1c1"; -} -.phpdebugbar-fa-file-word-o:before { - content: "\f1c2"; -} -.phpdebugbar-fa-file-excel-o:before { - content: "\f1c3"; -} -.phpdebugbar-fa-file-powerpoint-o:before { - content: "\f1c4"; -} -.phpdebugbar-fa-file-photo-o:before, -.phpdebugbar-fa-file-picture-o:before, -.phpdebugbar-fa-file-image-o:before { - content: "\f1c5"; -} -.phpdebugbar-fa-file-zip-o:before, -.phpdebugbar-fa-file-archive-o:before { - content: "\f1c6"; -} -.phpdebugbar-fa-file-sound-o:before, -.phpdebugbar-fa-file-audio-o:before { - content: "\f1c7"; -} -.phpdebugbar-fa-file-movie-o:before, -.phpdebugbar-fa-file-video-o:before { - content: "\f1c8"; -} -.phpdebugbar-fa-file-code-o:before { - content: "\f1c9"; -} -.phpdebugbar-fa-vine:before { - content: "\f1ca"; -} -.phpdebugbar-fa-codepen:before { - content: "\f1cb"; -} -.phpdebugbar-fa-jsfiddle:before { - content: "\f1cc"; -} -.phpdebugbar-fa-life-bouy:before, -.phpdebugbar-fa-life-buoy:before, -.phpdebugbar-fa-life-saver:before, -.phpdebugbar-fa-support:before, -.phpdebugbar-fa-life-ring:before { - content: "\f1cd"; -} -.phpdebugbar-fa-circle-o-notch:before { - content: "\f1ce"; -} -.phpdebugbar-fa-ra:before, -.phpdebugbar-fa-rebel:before { - content: "\f1d0"; -} -.phpdebugbar-fa-ge:before, -.phpdebugbar-fa-empire:before { - content: "\f1d1"; -} -.phpdebugbar-fa-git-square:before { - content: "\f1d2"; -} -.phpdebugbar-fa-git:before { - content: "\f1d3"; -} -.phpdebugbar-fa-hacker-news:before { - content: "\f1d4"; -} -.phpdebugbar-fa-tencent-weibo:before { - content: "\f1d5"; -} -.phpdebugbar-fa-qq:before { - content: "\f1d6"; -} -.phpdebugbar-fa-wechat:before, -.phpdebugbar-fa-weixin:before { - content: "\f1d7"; -} -.phpdebugbar-fa-send:before, -.phpdebugbar-fa-paper-plane:before { - content: "\f1d8"; -} -.phpdebugbar-fa-send-o:before, -.phpdebugbar-fa-paper-plane-o:before { - content: "\f1d9"; -} -.phpdebugbar-fa-history:before { - content: "\f1da"; -} -.phpdebugbar-fa-circle-thin:before { - content: "\f1db"; -} -.phpdebugbar-fa-header:before { - content: "\f1dc"; -} -.phpdebugbar-fa-paragraph:before { - content: "\f1dd"; -} -.phpdebugbar-fa-sliders:before { - content: "\f1de"; -} -.phpdebugbar-fa-share-alt:before { - content: "\f1e0"; -} -.phpdebugbar-fa-share-alt-square:before { - content: "\f1e1"; -} -.phpdebugbar-fa-bomb:before { - content: "\f1e2"; -} -.phpdebugbar-fa-soccer-ball-o:before, -.phpdebugbar-fa-futbol-o:before { - content: "\f1e3"; -} -.phpdebugbar-fa-tty:before { - content: "\f1e4"; -} -.phpdebugbar-fa-binoculars:before { - content: "\f1e5"; -} -.phpdebugbar-fa-plug:before { - content: "\f1e6"; -} -.phpdebugbar-fa-slideshare:before { - content: "\f1e7"; -} -.phpdebugbar-fa-twitch:before { - content: "\f1e8"; -} -.phpdebugbar-fa-yelp:before { - content: "\f1e9"; -} -.phpdebugbar-fa-newspaper-o:before { - content: "\f1ea"; -} -.phpdebugbar-fa-wifi:before { - content: "\f1eb"; -} -.phpdebugbar-fa-calculator:before { - content: "\f1ec"; -} -.phpdebugbar-fa-paypal:before { - content: "\f1ed"; -} -.phpdebugbar-fa-google-wallet:before { - content: "\f1ee"; -} -.phpdebugbar-fa-cc-visa:before { - content: "\f1f0"; -} -.phpdebugbar-fa-cc-mastercard:before { - content: "\f1f1"; -} -.phpdebugbar-fa-cc-discover:before { - content: "\f1f2"; -} -.phpdebugbar-fa-cc-amex:before { - content: "\f1f3"; -} -.phpdebugbar-fa-cc-paypal:before { - content: "\f1f4"; -} -.phpdebugbar-fa-cc-stripe:before { - content: "\f1f5"; -} -.phpdebugbar-fa-bell-slash:before { - content: "\f1f6"; -} -.phpdebugbar-fa-bell-slash-o:before { - content: "\f1f7"; -} -.phpdebugbar-fa-trash:before { - content: "\f1f8"; -} -.phpdebugbar-fa-copyright:before { - content: "\f1f9"; -} -.phpdebugbar-fa-at:before { - content: "\f1fa"; -} -.phpdebugbar-fa-eyedropper:before { - content: "\f1fb"; -} -.phpdebugbar-fa-paint-brush:before { - content: "\f1fc"; -} -.phpdebugbar-fa-birthday-cake:before { - content: "\f1fd"; -} -.phpdebugbar-fa-area-chart:before { - content: "\f1fe"; -} -.phpdebugbar-fa-pie-chart:before { - content: "\f200"; -} -.phpdebugbar-fa-line-chart:before { - content: "\f201"; -} -.phpdebugbar-fa-lastfm:before { - content: "\f202"; -} -.phpdebugbar-fa-lastfm-square:before { - content: "\f203"; -} -.phpdebugbar-fa-toggle-off:before { - content: "\f204"; -} -.phpdebugbar-fa-toggle-on:before { - content: "\f205"; -} -.phpdebugbar-fa-bicycle:before { - content: "\f206"; -} -.phpdebugbar-fa-bus:before { - content: "\f207"; -} -.phpdebugbar-fa-ioxhost:before { - content: "\f208"; -} -.phpdebugbar-fa-angellist:before { - content: "\f209"; -} -.phpdebugbar-fa-cc:before { - content: "\f20a"; -} -.phpdebugbar-fa-shekel:before, -.phpdebugbar-fa-sheqel:before, -.phpdebugbar-fa-ils:before { - content: "\f20b"; -} -.phpdebugbar-fa-meanpath:before { - content: "\f20c"; -} diff --git a/vendor/barryvdh/laravel-debugbar/src/ServiceProvider.php b/vendor/barryvdh/laravel-debugbar/src/ServiceProvider.php deleted file mode 100644 index f86b593a..00000000 --- a/vendor/barryvdh/laravel-debugbar/src/ServiceProvider.php +++ /dev/null @@ -1,156 +0,0 @@ -mergeConfigFrom($configPath, 'debugbar'); - - $this->app->alias( - DataFormatter::class, - DataFormatterInterface::class - ); - - $this->app->singleton(LaravelDebugbar::class, function () { - $debugbar = new LaravelDebugbar($this->app); - - if ($this->app->bound(SessionManager::class)) { - $sessionManager = $this->app->make(SessionManager::class); - $httpDriver = new SymfonyHttpDriver($sessionManager); - $debugbar->setHttpDriver($httpDriver); - } - - return $debugbar; - } - ); - - $this->app->alias(LaravelDebugbar::class, 'debugbar'); - - $this->app->singleton('command.debugbar.clear', - function ($app) { - return new Console\ClearCommand($app['debugbar']); - } - ); - - $this->commands(['command.debugbar.clear']); - } - - /** - * Bootstrap the application events. - * - * @return void - */ - public function boot() - { - $configPath = __DIR__ . '/../config/debugbar.php'; - $this->publishes([$configPath => $this->getConfigPath()], 'config'); - - $routeConfig = [ - 'namespace' => 'Barryvdh\Debugbar\Controllers', - 'prefix' => $this->app['config']->get('debugbar.route_prefix'), - 'domain' => $this->app['config']->get('debugbar.route_domain'), - 'middleware' => [DebugbarEnabled::class], - ]; - - $this->getRouter()->group($routeConfig, function($router) { - $router->get('open', [ - 'uses' => 'OpenHandlerController@handle', - 'as' => 'debugbar.openhandler', - ]); - - $router->get('clockwork/{id}', [ - 'uses' => 'OpenHandlerController@clockwork', - 'as' => 'debugbar.clockwork', - ]); - - $router->get('assets/stylesheets', [ - 'uses' => 'AssetController@css', - 'as' => 'debugbar.assets.css', - ]); - - $router->get('assets/javascript', [ - 'uses' => 'AssetController@js', - 'as' => 'debugbar.assets.js', - ]); - - $router->delete('cache/{key}/{tags?}', [ - 'uses' => 'CacheController@delete', - 'as' => 'debugbar.cache.delete', - ]); - }); - - $this->registerMiddleware(InjectDebugbar::class); - } - - /** - * Get the active router. - * - * @return Router - */ - protected function getRouter() - { - return $this->app['router']; - } - - /** - * Get the config path - * - * @return string - */ - protected function getConfigPath() - { - return config_path('debugbar.php'); - } - - /** - * Publish the config file - * - * @param string $configPath - */ - protected function publishConfig($configPath) - { - $this->publishes([$configPath => config_path('debugbar.php')], 'config'); - } - - /** - * Register the Debugbar Middleware - * - * @param string $middleware - */ - protected function registerMiddleware($middleware) - { - $kernel = $this->app[Kernel::class]; - $kernel->pushMiddleware($middleware); - } - - /** - * Get the services provided by the provider. - * - * @return array - */ - public function provides() - { - return ['debugbar', 'command.debugbar.clear', DataFormatterInterface::class, LaravelDebugbar::class]; - } -} diff --git a/vendor/barryvdh/laravel-debugbar/src/Storage/FilesystemStorage.php b/vendor/barryvdh/laravel-debugbar/src/Storage/FilesystemStorage.php deleted file mode 100644 index 1ea11aee..00000000 --- a/vendor/barryvdh/laravel-debugbar/src/Storage/FilesystemStorage.php +++ /dev/null @@ -1,142 +0,0 @@ -files = $files; - $this->dirname = rtrim($dirname, DIRECTORY_SEPARATOR) . DIRECTORY_SEPARATOR; - } - - /** - * {@inheritDoc} - */ - public function save($id, $data) - { - if (!$this->files->isDirectory($this->dirname)) { - if ($this->files->makeDirectory($this->dirname, 0777, true)) { - $this->files->put($this->dirname . '.gitignore', "*\n!.gitignore\n"); - } else { - throw new \Exception("Cannot create directory '$this->dirname'.."); - } - } - - try { - $this->files->put($this->makeFilename($id), json_encode($data)); - } catch (\Exception $e) { - //TODO; error handling - } - - // Randomly check if we should collect old files - if (rand(1, 100) <= $this->gc_probability) { - $this->garbageCollect(); - } - } - - /** - * Create the filename for the data, based on the id. - * - * @param $id - * @return string - */ - public function makeFilename($id) - { - return $this->dirname . basename($id) . ".json"; - } - - /** - * Delete files older then a certain age (gc_lifetime) - */ - protected function garbageCollect() - { - foreach (Finder::create()->files()->name('*.json')->date('< ' . $this->gc_lifetime . ' hour ago')->in( - $this->dirname - ) as $file) { - $this->files->delete($file->getRealPath()); - } - } - - /** - * {@inheritDoc} - */ - public function get($id) - { - return json_decode($this->files->get($this->makeFilename($id)), true); - } - - /** - * {@inheritDoc} - */ - public function find(array $filters = [], $max = 20, $offset = 0) - { - // Sort by modified time, newest first - $sort = function (\SplFileInfo $a, \SplFileInfo $b) { - return strcmp($b->getMTime(), $a->getMTime()); - }; - - // Loop through .json files, filter the metadata and stop when max is found. - $i = 0; - $results = []; - foreach (Finder::create()->files()->name('*.json')->in($this->dirname)->sort($sort) as $file) { - if ($i++ < $offset && empty($filters)) { - $results[] = null; - continue; - } - $data = json_decode($file->getContents(), true); - $meta = $data['__meta']; - unset($data); - if ($this->filter($meta, $filters)) { - $results[] = $meta; - } - if (count($results) >= ($max + $offset)) { - break; - } - } - return array_slice($results, $offset, $max); - } - - /** - * Filter the metadata for matches. - * - * @param $meta - * @param $filters - * @return bool - */ - protected function filter($meta, $filters) - { - foreach ($filters as $key => $value) { - if (!isset($meta[$key]) || fnmatch($value, $meta[$key]) === false) { - return false; - } - } - return true; - } - - /** - * {@inheritDoc} - */ - public function clear() - { - foreach (Finder::create()->files()->name('*.json')->in($this->dirname) as $file) { - $this->files->delete($file->getRealPath()); - } - } -} diff --git a/vendor/barryvdh/laravel-debugbar/src/Support/Clockwork/ClockworkCollector.php b/vendor/barryvdh/laravel-debugbar/src/Support/Clockwork/ClockworkCollector.php deleted file mode 100644 index 752132b2..00000000 --- a/vendor/barryvdh/laravel-debugbar/src/Support/Clockwork/ClockworkCollector.php +++ /dev/null @@ -1,91 +0,0 @@ - - * - */ -class ClockworkCollector extends DataCollector implements DataCollectorInterface, Renderable -{ - /** @var \Symfony\Component\HttpFoundation\Request $request */ - protected $request; - /** @var \Symfony\Component\HttpFoundation\Request $response */ - protected $response; - /** @var \Symfony\Component\HttpFoundation\Session\SessionInterface $session */ - protected $session; - - /** - * Create a new SymfonyRequestCollector - * - * @param \Symfony\Component\HttpFoundation\Request $request - * @param \Symfony\Component\HttpFoundation\Request $response - * @param \Symfony\Component\HttpFoundation\Session\SessionInterface $session - */ - public function __construct($request, $response, $session = null) - { - $this->request = $request; - $this->response = $response; - $this->session = $session; - } - - /** - * {@inheritDoc} - */ - public function getName() - { - return 'clockwork'; - } - - /** - * {@inheritDoc} - */ - public function getWidgets() - { - return null; - } - - /** - * {@inheritdoc} - */ - public function collect() - { - $request = $this->request; - $response = $this->response; - - $data = [ - 'getData' => $request->query->all(), - 'postData' => $request->request->all(), - 'headers' => $request->headers->all(), - 'cookies' => $request->cookies->all(), - 'uri' => $request->getRequestUri(), - 'method' => $request->getMethod(), - 'responseStatus' => $response->getStatusCode(), - ]; - - if ($this->session) { - $sessionAttributes = []; - foreach ($this->session->all() as $key => $value) { - $sessionAttributes[$key] = $value; - } - $data['sessionData'] = $sessionAttributes; - } - - if (isset($data['postData']['php-auth-pw'])) { - $data['postData']['php-auth-pw'] = '******'; - } - - if (isset($data['postData']['PHP_AUTH_PW'])) { - $data['postData']['PHP_AUTH_PW'] = '******'; - } - - return $data; - } - -} diff --git a/vendor/barryvdh/laravel-debugbar/src/Support/Clockwork/Converter.php b/vendor/barryvdh/laravel-debugbar/src/Support/Clockwork/Converter.php deleted file mode 100644 index e6473d97..00000000 --- a/vendor/barryvdh/laravel-debugbar/src/Support/Clockwork/Converter.php +++ /dev/null @@ -1,135 +0,0 @@ - $meta['id'], - 'method' => $meta['method'], - 'uri' => $meta['uri'], - 'time' => $meta['utime'], - 'headers' => [], - 'cookies' => [], - 'emailsData' => [], - 'getData' => [], - 'log' => [], - 'postData' => [], - 'sessionData' => [], - 'timelineData' => [], - 'viewsData' => [], - 'controller' => null, - 'responseTime' => null, - 'responseStatus' => null, - 'responseDuration' => 0, - ]; - - if (isset($data['clockwork'])) { - $output = array_merge($output, $data['clockwork']); - } - - if (isset($data['time'])) { - $time = $data['time']; - $output['time'] = $time['start']; - $output['responseTime'] = $time['end']; - $output['responseDuration'] = $time['duration'] * 1000; - foreach($time['measures'] as $measure) { - $output['timelineData'][] = [ - 'data' => [], - 'description' => $measure['label'], - 'duration' => $measure['duration'] * 1000, - 'end' => $measure['end'], - 'start' => $measure['start'], - 'relative_start' => $measure['start'] - $time['start'], - ]; - } - } - - if (isset($data['route'])) { - $route = $data['route']; - - $controller = null; - if (isset($route['controller'])) { - $controller = $route['controller']; - } elseif (isset($route['uses'])) { - $controller = $route['uses']; - } - - $output['controller'] = $controller; - - list($method, $uri) = explode(' ', $route['uri'], 2); - - $output['routes'][] = [ - 'action' => $controller, - 'after' => isset($route['after']) ? $route['after'] : null, - 'before' => isset($route['before']) ? $route['before'] : null, - 'method' => $method, - 'name' => isset($route['as']) ? $route['as'] : null, - 'uri' => $uri, - ]; - } - - if (isset($data['messages'])) { - foreach($data['messages']['messages'] as $message) { - $output['log'][] = [ - 'message' => $message['message'], - 'time' => $message['time'], - 'level' => $message['label'], - ]; - } - } - - if (isset($data['queries'])) { - $queries = $data['queries']; - foreach($queries['statements'] as $statement){ - $output['databaseQueries'][] = [ - 'query' => $statement['sql'], - 'bindings' => $statement['params'], - 'duration' => $statement['duration'] * 1000, - 'connection' => $statement['connection'] - ]; - } - - $output['databaseDuration'] = $queries['accumulated_duration'] * 1000; - } - - if (isset($data['views'])) { - foreach ($data['views']['templates'] as $view) { - $output['viewsData'][] = [ - 'description' => 'Rendering a view', - 'duration' => 0, - 'end' => 0, - 'start' => 0, - 'data' => [ - 'name' => $view['name'], - 'data' => $view['params'], - ], - ]; - } - } - - if (isset($data['swiftmailer_mails'])) { - foreach($data['swiftmailer_mails']['mails'] as $mail) { - $output['emailsData'][] = [ - 'data' => [ - 'to' => $mail['to'], - 'subject' => $mail['subject'], - 'headers' => isset($mail['headers']) ? explode("\n", $mail['headers']) : null, - ], - ]; - } - } - - return $output; - } - -} diff --git a/vendor/barryvdh/laravel-debugbar/src/SymfonyHttpDriver.php b/vendor/barryvdh/laravel-debugbar/src/SymfonyHttpDriver.php deleted file mode 100644 index 088a5ab9..00000000 --- a/vendor/barryvdh/laravel-debugbar/src/SymfonyHttpDriver.php +++ /dev/null @@ -1,79 +0,0 @@ -session = $session; - $this->response = $response; - } - - /** - * {@inheritDoc} - */ - public function setHeaders(array $headers) - { - if (!is_null($this->response)) { - $this->response->headers->add($headers); - } - } - - /** - * {@inheritDoc} - */ - public function isSessionStarted() - { - if (!$this->session->isStarted()) { - $this->session->start(); - } - - return $this->session->isStarted(); - } - - /** - * {@inheritDoc} - */ - public function setSessionValue($name, $value) - { - $this->session->put($name, $value); - } - - /** - * {@inheritDoc} - */ - public function hasSessionValue($name) - { - return $this->session->has($name); - } - - /** - * {@inheritDoc} - */ - public function getSessionValue($name) - { - return $this->session->get($name); - } - - /** - * {@inheritDoc} - */ - public function deleteSessionValue($name) - { - $this->session->remove($name); - } -} diff --git a/vendor/barryvdh/laravel-debugbar/src/Twig/Extension/Debug.php b/vendor/barryvdh/laravel-debugbar/src/Twig/Extension/Debug.php deleted file mode 100644 index 1b815e53..00000000 --- a/vendor/barryvdh/laravel-debugbar/src/Twig/Extension/Debug.php +++ /dev/null @@ -1,88 +0,0 @@ -bound('debugbar')) { - $this->debugbar = $app['debugbar']; - } else { - $this->debugbar = null; - } - } - - /** - * {@inheritDoc} - */ - public function getName() - { - return 'Laravel_Debugbar_Debug'; - } - - /** - * {@inheritDoc} - */ - public function getFunctions() - { - return [ - new Twig_SimpleFunction( - 'debug', [$this, 'debug'], ['needs_context' => true, 'needs_environment' => true] - ), - ]; - } - - /** - * Based on Twig_Extension_Debug / twig_var_dump - * (c) 2011 Fabien Potencier - * - * @param Twig_Environment $env - * @param $context - */ - public function debug(Twig_Environment $env, $context) - { - if (!$env->isDebug() || !$this->debugbar) { - return; - } - - $count = func_num_args(); - if (2 === $count) { - $data = []; - foreach ($context as $key => $value) { - if (is_object($value)) { - if (method_exists($value, 'toArray')) { - $data[$key] = $value->toArray(); - } else { - $data[$key] = "Object (" . get_class($value) . ")"; - } - } else { - $data[$key] = $value; - } - } - $this->debugbar->addMessage($data); - } else { - for ($i = 2; $i < $count; $i++) { - $this->debugbar->addMessage(func_get_arg($i)); - } - } - - return; - } -} diff --git a/vendor/barryvdh/laravel-debugbar/src/Twig/Extension/Dump.php b/vendor/barryvdh/laravel-debugbar/src/Twig/Extension/Dump.php deleted file mode 100644 index 4a4f697e..00000000 --- a/vendor/barryvdh/laravel-debugbar/src/Twig/Extension/Dump.php +++ /dev/null @@ -1,84 +0,0 @@ -formatter = $formatter; - } - - /** - * {@inheritDoc} - */ - public function getName() - { - return 'Laravel_Debugbar_Dump'; - } - - /** - * {@inheritDoc} - */ - public function getFunctions() - { - return [ - new Twig_SimpleFunction( - 'dump', [$this, 'dump'], ['is_safe' => ['html'], 'needs_context' => true, 'needs_environment' => true] - ), - ]; - } - - /** - * Based on Twig_Extension_Debug / twig_var_dump - * (c) 2011 Fabien Potencier - * - * @param Twig_Environment $env - * @param $context - * - * @return string - */ - public function dump(Twig_Environment $env, $context) - { - $output = ''; - - $count = func_num_args(); - if (2 === $count) { - $data = []; - foreach ($context as $key => $value) { - if (is_object($value)) { - if (method_exists($value, 'toArray')) { - $data[$key] = $value->toArray(); - } else { - $data[$key] = "Object (" . get_class($value) . ")"; - } - } else { - $data[$key] = $value; - } - } - $output .= $this->formatter->formatVar($data); - } else { - for ($i = 2; $i < $count; $i++) { - $output .= $this->formatter->formatVar(func_get_arg($i)); - } - } - - return '
'.$output.'
'; - } -} diff --git a/vendor/barryvdh/laravel-debugbar/src/Twig/Extension/Stopwatch.php b/vendor/barryvdh/laravel-debugbar/src/Twig/Extension/Stopwatch.php deleted file mode 100644 index 993d8ddb..00000000 --- a/vendor/barryvdh/laravel-debugbar/src/Twig/Extension/Stopwatch.php +++ /dev/null @@ -1,56 +0,0 @@ -bound('debugbar')) { - $this->debugbar = $app['debugbar']; - } else { - $this->debugbar = null; - } - } - - /** - * {@inheritDoc} - */ - public function getName() - { - return 'stopwatch'; - } - - public function getTokenParsers() - { - return [ - /* - * {% stopwatch foo %} - * Some stuff which will be recorded on the timeline - * {% endstopwatch %} - */ - new StopwatchTokenParser($this->debugbar !== null), - ]; - } - - public function getDebugbar() - { - return $this->debugbar; - } -} diff --git a/vendor/barryvdh/laravel-debugbar/src/Twig/Node/StopwatchNode.php b/vendor/barryvdh/laravel-debugbar/src/Twig/Node/StopwatchNode.php deleted file mode 100644 index ac9b3762..00000000 --- a/vendor/barryvdh/laravel-debugbar/src/Twig/Node/StopwatchNode.php +++ /dev/null @@ -1,37 +0,0 @@ - - */ -class StopwatchNode extends \Twig_Node -{ - public function __construct( - \Twig_NodeInterface $name, - $body, - \Twig_Node_Expression_AssignName $var, - $lineno = 0, - $tag = null - ) { - parent::__construct(['body' => $body, 'name' => $name, 'var' => $var], [], $lineno, $tag); - } - - public function compile(\Twig_Compiler $compiler) - { - $compiler - ->addDebugInfo($this) - ->write('') - ->subcompile($this->getNode('var')) - ->raw(' = ') - ->subcompile($this->getNode('name')) - ->write(";\n") - ->write("\$this->env->getExtension('stopwatch')->getDebugbar()->startMeasure(") - ->subcompile($this->getNode('var')) - ->raw(");\n") - ->subcompile($this->getNode('body')) - ->write("\$this->env->getExtension('stopwatch')->getDebugbar()->stopMeasure(") - ->subcompile($this->getNode('var')) - ->raw(");\n"); - } -} diff --git a/vendor/barryvdh/laravel-debugbar/src/Twig/TokenParser/StopwatchTokenParser.php b/vendor/barryvdh/laravel-debugbar/src/Twig/TokenParser/StopwatchTokenParser.php deleted file mode 100644 index 0f068c77..00000000 --- a/vendor/barryvdh/laravel-debugbar/src/Twig/TokenParser/StopwatchTokenParser.php +++ /dev/null @@ -1,55 +0,0 @@ - - */ -class StopwatchTokenParser extends \Twig_TokenParser -{ - protected $debugbarAvailable; - - public function __construct($debugbarAvailable) - { - $this->debugbarAvailable = $debugbarAvailable; - } - - public function parse(\Twig_Token $token) - { - $lineno = $token->getLine(); - $stream = $this->parser->getStream(); - - // {% stopwatch 'bar' %} - $name = $this->parser->getExpressionParser()->parseExpression(); - - $stream->expect(\Twig_Token::BLOCK_END_TYPE); - - // {% endstopwatch %} - $body = $this->parser->subparse([$this, 'decideStopwatchEnd'], true); - $stream->expect(\Twig_Token::BLOCK_END_TYPE); - - if ($this->debugbarAvailable) { - return new StopwatchNode( - $name, - $body, - new \Twig_Node_Expression_AssignName($this->parser->getVarName(), $token->getLine()), - $lineno, - $this->getTag() - ); - } - - return $body; - } - - public function getTag() - { - return 'stopwatch'; - } - - public function decideStopwatchEnd(\Twig_Token $token) - { - return $token->test('endstopwatch'); - } -} diff --git a/vendor/barryvdh/laravel-debugbar/src/helpers.php b/vendor/barryvdh/laravel-debugbar/src/helpers.php deleted file mode 100644 index 0cd00444..00000000 --- a/vendor/barryvdh/laravel-debugbar/src/helpers.php +++ /dev/null @@ -1,81 +0,0 @@ -addMessage($value, 'debug'); - } - } -} - -if (!function_exists('start_measure')) { - /** - * Starts a measure - * - * @param string $name Internal name, used to stop the measure - * @param string $label Public name - */ - function start_measure($name, $label = null) - { - debugbar()->startMeasure($name, $label); - } -} - -if (!function_exists('stop_measure')) { - /** - * Stop a measure - * - * @param string $name Internal name, used to stop the measure - */ - function stop_measure($name) - { - debugbar()->stopMeasure($name); - } -} - -if (!function_exists('add_measure')) { - /** - * Adds a measure - * - * @param string $label - * @param float $start - * @param float $end - */ - function add_measure($label, $start, $end) - { - debugbar()->addMeasure($label, $start, $end); - } -} - -if (!function_exists('measure')) { - /** - * Utility function to measure the execution of a Closure - * - * @param string $label - * @param \Closure $closure - */ - function measure($label, \Closure $closure) - { - debugbar()->measure($label, $closure); - } -} diff --git a/vendor/barryvdh/laravel-debugbar/src/migrations/2014_12_01_120000_create_phpdebugbar_storage_table.php b/vendor/barryvdh/laravel-debugbar/src/migrations/2014_12_01_120000_create_phpdebugbar_storage_table.php deleted file mode 100644 index cb648707..00000000 --- a/vendor/barryvdh/laravel-debugbar/src/migrations/2014_12_01_120000_create_phpdebugbar_storage_table.php +++ /dev/null @@ -1,41 +0,0 @@ -string('id'); - $table->longText('data'); - $table->string('meta_utime'); - $table->dateTime('meta_datetime'); - $table->string('meta_uri'); - $table->string('meta_ip'); - $table->string('meta_method'); - - $table->primary('id'); - $table->index('meta_utime'); - $table->index('meta_datetime'); - $table->index('meta_uri'); - $table->index('meta_ip'); - $table->index('meta_method'); - }); - } - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::drop('phpdebugbar'); - } -} diff --git a/vendor/bin/php-parse b/vendor/bin/php-parse deleted file mode 120000 index c4bd3e7a..00000000 --- a/vendor/bin/php-parse +++ /dev/null @@ -1,10 +0,0 @@ -#!/usr/bin/env sh - -dir=$(cd "${0%[/\\]*}" > /dev/null; cd "../nikic/php-parser/bin" && pwd) - -if [ -d /proc/cygdrive ] && [[ $(which php) == $(readlink -n /proc/cygdrive)/* ]]; then - # We are in Cgywin using Windows php, so the path must be translated - dir=$(cygpath -m "$dir"); -fi - -"${dir}/php-parse" "$@" diff --git a/vendor/bin/php-parse.bat b/vendor/bin/php-parse.bat deleted file mode 100644 index a5baa4ed..00000000 --- a/vendor/bin/php-parse.bat +++ /dev/null @@ -1,4 +0,0 @@ -@ECHO OFF -setlocal DISABLEDELAYEDEXPANSION -SET BIN_TARGET=%~dp0/../nikic/php-parser/bin/php-parse -php "%BIN_TARGET%" %* diff --git a/vendor/bin/phpunit b/vendor/bin/phpunit deleted file mode 120000 index 378c127d..00000000 --- a/vendor/bin/phpunit +++ /dev/null @@ -1,10 +0,0 @@ -#!/usr/bin/env sh - -dir=$(cd "${0%[/\\]*}" > /dev/null; cd "../phpunit/phpunit" && pwd) - -if [ -d /proc/cygdrive ] && [[ $(which php) == $(readlink -n /proc/cygdrive)/* ]]; then - # We are in Cgywin using Windows php, so the path must be translated - dir=$(cygpath -m "$dir"); -fi - -"${dir}/phpunit" "$@" diff --git a/vendor/bin/phpunit.bat b/vendor/bin/phpunit.bat deleted file mode 100644 index b1779234..00000000 --- a/vendor/bin/phpunit.bat +++ /dev/null @@ -1,4 +0,0 @@ -@ECHO OFF -setlocal DISABLEDELAYEDEXPANSION -SET BIN_TARGET=%~dp0/../phpunit/phpunit/phpunit -php "%BIN_TARGET%" %* diff --git a/vendor/bin/psysh b/vendor/bin/psysh deleted file mode 120000 index 3c06b1ae..00000000 --- a/vendor/bin/psysh +++ /dev/null @@ -1 +0,0 @@ -../psy/psysh/bin/psysh \ No newline at end of file diff --git a/vendor/bin/var-dump-server b/vendor/bin/var-dump-server deleted file mode 120000 index 6bd4e93d..00000000 --- a/vendor/bin/var-dump-server +++ /dev/null @@ -1 +0,0 @@ -../symfony/var-dumper/Resources/bin/var-dump-server \ No newline at end of file diff --git a/vendor/cocur/slugify/.appveyor.yml b/vendor/cocur/slugify/.appveyor.yml deleted file mode 100644 index 471e9af1..00000000 --- a/vendor/cocur/slugify/.appveyor.yml +++ /dev/null @@ -1,42 +0,0 @@ -build: false -shallow_clone: true -platform: x86 -clone_folder: c:\projects\cocur\slugify - -cache: - - '%LOCALAPPDATA%\Composer\files' - -init: - - SET PATH=C:\Program Files\OpenSSL;c:\tools\php71;%PATH% - -environment: - matrix: - - COMPOSER_FLAGS: "" - -install: - - cinst -y OpenSSL.Light - - sc config wuauserv start= auto - - net start wuauserv - - cinst -y php - - cd c:\tools\php71 - - copy php.ini-production php.ini /Y - - echo date.timezone="UTC" >> php.ini - - echo extension_dir=ext >> php.ini - - echo extension=php_openssl.dll >> php.ini - - echo extension=php_mbstring.dll >> php.ini - - echo extension=php_fileinfo.dll >> php.ini - - echo memory_limit=1G >> php.ini - - cd c:\projects\cocur\slugify - - php -r "readfile('http://getcomposer.org/installer');" | php - - php composer.phar update %COMPOSER_FLAGS% --no-interaction --no-progress - -test_script: - - cd c:\projects\cocur\slugify - - vendor\bin\phpunit.bat --verbose - -notifications: - - provider: Webhook - url: https://webhooks.gitter.im/e/aaf55568e4629e650616 - on_build_success: false - on_build_failure: true - on_build_status_changed: true diff --git a/vendor/cocur/slugify/.editorconfig b/vendor/cocur/slugify/.editorconfig deleted file mode 100644 index 5f0c68ce..00000000 --- a/vendor/cocur/slugify/.editorconfig +++ /dev/null @@ -1,13 +0,0 @@ -root = true - -[*] -indent_style = space -indent_size = 4 -charset = utf-8 -end_of_line = lf -insert_final_newline = true -trim_trailing_whitespace = true - -[*.yml] -indent_style = space -indent_size = 2 diff --git a/vendor/cocur/slugify/.scrutinizer.yml b/vendor/cocur/slugify/.scrutinizer.yml deleted file mode 100644 index f71b79c6..00000000 --- a/vendor/cocur/slugify/.scrutinizer.yml +++ /dev/null @@ -1,162 +0,0 @@ -tools: - external_code_coverage: true - php_sim: true - php_pdepend: true - php_analyzer: true - -filter: - excluded_paths: - - 'tests/*' - - 'examples/*' - -checks: - php: - verify_property_names: true - verify_argument_usable_as_reference: true - verify_access_scope_valid: true - variable_existence: true - useless_calls: true - use_statement_alias_conflict: true - use_self_instead_of_fqcn: true - uppercase_constants: true - unused_variables: true - unused_properties: true - unused_parameters: true - unused_methods: true - unreachable_code: true - too_many_arguments: true - symfony_request_injection: true - switch_fallthrough_commented: true - sql_injection_vulnerabilities: true - spacing_of_function_arguments: true - spacing_around_non_conditional_operators: true - spacing_around_conditional_operators: true - space_after_cast: true - single_namespace_per_use: true - simplify_boolean_return: true - side_effects_or_types: true - security_vulnerabilities: true - scope_indentation: - spaces_per_level: '4' - return_doc_comments: true - return_doc_comment_if_not_inferrable: true - require_scope_for_properties: true - require_scope_for_methods: true - require_php_tag_first: true - require_braces_around_control_structures: true - remove_trailing_whitespace: true - remove_php_closing_tag: true - remove_extra_empty_lines: true - psr2_switch_declaration: true - psr2_control_structure_declaration: true - psr2_class_declaration: true - property_assignments: true - properties_in_camelcaps: true - prefer_while_loop_over_for_loop: true - prefer_unix_line_ending: true - prefer_sapi_constant: true - precedence_mistakes: true - precedence_in_conditions: true - phpunit_assertions: true - php5_style_constructor: true - parameters_in_camelcaps: true - parameter_non_unique: true - parameter_doc_comments: true - param_doc_comment_if_not_inferrable: true - overriding_private_members: true - optional_parameters_at_the_end: true - one_class_per_file: true - non_commented_empty_catch_block: true - no_unnecessary_if: true - no_unnecessary_function_call_in_for_loop: true - no_unnecessary_final_modifier: true - no_underscore_prefix_in_properties: true - no_underscore_prefix_in_methods: true - no_trait_type_hints: true - no_trailing_whitespace: true - no_space_inside_cast_operator: true - no_space_between_concatenation_operator: true - no_space_before_semicolon: true - no_space_around_object_operator: true - no_space_after_cast: true - no_short_open_tag: true - no_property_on_interface: true - no_non_implemented_abstract_methods: true - code_rating: true - duplication: true - deprecated_code_usage: true - closure_use_not_conflicting: true - closure_use_modifiable: true - avoid_useless_overridden_methods: true - avoid_conflicting_incrementers: true - assignment_of_null_return: true - no_goto: true - no_global_keyword: true - no_exit: true - no_eval: true - no_error_suppression: true - no_empty_statements: true - no_elseif_statements: true - no_duplicate_arguments: true - no_debug_code: true - no_commented_out_code: true - newline_at_end_of_file: true - naming_conventions: - local_variable: '^[a-z][a-zA-Z0-9]*$' - abstract_class_name: ^Abstract|Factory$ - utility_class_name: 'Utils?$' - constant_name: '^[A-Z][A-Z0-9]*(?:_[A-Z0-9]+)*$' - property_name: '^[a-z][a-zA-Z0-9]*$' - method_name: '^(?:[a-z]|__)[a-zA-Z0-9]*$' - parameter_name: '^[a-z][a-zA-Z0-9]*$' - interface_name: '^[A-Z][a-zA-Z0-9]*Interface$' - type_name: '^[A-Z][a-zA-Z0-9]*$' - exception_name: '^[A-Z][a-zA-Z0-9]*Exception$' - isser_method_name: '^(?:is|has|should|may|supports|filter)' - more_specific_types_in_doc_comments: true - missing_arguments: true - method_calls_on_non_object: true - lowercase_php_keywords: true - lowercase_basic_constants: true - instanceof_class_exists: true - function_in_camel_caps: true - function_body_start_on_new_line: true - foreach_usable_as_reference: true - foreach_traversable: true - fix_use_statements: - remove_unused: true - preserve_multiple: false - preserve_blanklines: false - order_alphabetically: true - fix_php_opening_tag: true - fix_linefeed: true - fix_line_ending: true - fix_identation_4spaces: true - fix_doc_comments: true - ensure_lower_case_builtin_functions: true - encourage_single_quotes: true - encourage_shallow_comparison: true - encourage_postdec_operator: true - deadlock_detection_in_loops: true - classes_in_camel_caps: true - catch_class_exists: true - blank_line_after_namespace_declaration: true - avoid_usage_of_logical_operators: true - avoid_unnecessary_concatenation: true - avoid_todo_comments: true - avoid_tab_indentation: true - avoid_superglobals: true - avoid_perl_style_comments: true - avoid_fixme_comments: true - avoid_length_functions_in_loops: true - avoid_multiple_statements_on_same_line: true - avoid_entity_manager_injection: true - avoid_duplicate_types: true - avoid_corrupting_byteorder_marks: true - avoid_closing_tag: true - avoid_aliased_php_functions: true - align_assignments: true - argument_type_checks: true - no_mixed_inline_html: true - no_long_variable_names: - maximum: '20' diff --git a/vendor/cocur/slugify/.travis.yml b/vendor/cocur/slugify/.travis.yml deleted file mode 100644 index 32521cf4..00000000 --- a/vendor/cocur/slugify/.travis.yml +++ /dev/null @@ -1,47 +0,0 @@ -language: php - -sudo: false - -matrix: - include: - - php: 5.5.9 - - php: 5.5 - - php: 5.5 - env: COMPOSER_FLAGS='--prefer-lowest --prefer-stable' - - php: 5.6 - - php: 5.6 - env: COMPOSER_FLAGS='--prefer-lowest --prefer-stable' - - php: 7.0 - - php: 7.0 - env: COMPOSER_FLAGS='--prefer-lowest --prefer-stable' - - php: 7.1 - - php: 7.1 - env: COMPOSER_FLAGS='--prefer-lowest --prefer-stable' - - php: 7.2 - - php: nightly - allow_failures: - - php: nightly - fast_finish: true - -cache: - directories: - - $HOME/.composer/cache - -before_install: - - travis_retry composer self-update && composer --version - -install: - - travis_retry composer update $COMPOSER_FLAGS --prefer-source -n - -script: vendor/bin/phpunit --verbose --coverage-clover=coverage.clover - -after_script: - - sh -c 'if [ "$TRAVIS_PHP_VERSION" != "hhvm" ]; then wget https://scrutinizer-ci.com/ocular.phar && php ocular.phar code-coverage:upload --format=php-clover coverage.clover; fi;' - -notifications: - webhooks: - urls: - - https://webhooks.gitter.im/e/fc8ccb3e96abeb0fdc95 - on_success: change - on_failure: always - on_start: never diff --git a/vendor/cocur/slugify/CODE_OF_CONDUCT.md b/vendor/cocur/slugify/CODE_OF_CONDUCT.md deleted file mode 100644 index 2cb29512..00000000 --- a/vendor/cocur/slugify/CODE_OF_CONDUCT.md +++ /dev/null @@ -1,74 +0,0 @@ -# Contributor Covenant Code of Conduct - -## Our Pledge - -In the interest of fostering an open and welcoming environment, we as -contributors and maintainers pledge to making participation in our project and -our community a harassment-free experience for everyone, regardless of age, body -size, disability, ethnicity, gender identity and expression, level of experience, -nationality, personal appearance, race, religion, or sexual identity and -orientation. - -## Our Standards - -Examples of behavior that contributes to creating a positive environment -include: - -* Using welcoming and inclusive language -* Being respectful of differing viewpoints and experiences -* Gracefully accepting constructive criticism -* Focusing on what is best for the community -* Showing empathy towards other community members - -Examples of unacceptable behavior by participants include: - -* The use of sexualized language or imagery and unwelcome sexual attention or -advances -* Trolling, insulting/derogatory comments, and personal or political attacks -* Public or private harassment -* Publishing others' private information, such as a physical or electronic - address, without explicit permission -* Other conduct which could reasonably be considered inappropriate in a - professional setting - -## Our Responsibilities - -Project maintainers are responsible for clarifying the standards of acceptable -behavior and are expected to take appropriate and fair corrective action in -response to any instances of unacceptable behavior. - -Project maintainers have the right and responsibility to remove, edit, or -reject comments, commits, code, wiki edits, issues, and other contributions -that are not aligned to this Code of Conduct, or to ban temporarily or -permanently any contributor for other behaviors that they deem inappropriate, -threatening, offensive, or harmful. - -## Scope - -This Code of Conduct applies both within project spaces and in public spaces -when an individual is representing the project or its community. Examples of -representing a project or community include using an official project e-mail -address, posting via an official social media account, or acting as an appointed -representative at an online or offline event. Representation of a project may be -further defined and clarified by project maintainers. - -## Enforcement - -Instances of abusive, harassing, or otherwise unacceptable behavior may be -reported by contacting the project team at florian@eckerstorfer.net. All -complaints will be reviewed and investigated and will result in a response that -is deemed necessary and appropriate to the circumstances. The project team is -obligated to maintain confidentiality with regard to the reporter of an incident. -Further details of specific enforcement policies may be posted separately. - -Project maintainers who do not follow or enforce the Code of Conduct in good -faith may face temporary or permanent repercussions as determined by other -members of the project's leadership. - -## Attribution - -This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, -available at [http://contributor-covenant.org/version/1/4][version] - -[homepage]: http://contributor-covenant.org -[version]: http://contributor-covenant.org/version/1/4/ diff --git a/vendor/cocur/slugify/LICENSE b/vendor/cocur/slugify/LICENSE deleted file mode 100644 index 36c3036c..00000000 --- a/vendor/cocur/slugify/LICENSE +++ /dev/null @@ -1,9 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2012-217 Florian Eckerstorfer - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/vendor/cocur/slugify/README.md b/vendor/cocur/slugify/README.md deleted file mode 100644 index 73196e36..00000000 --- a/vendor/cocur/slugify/README.md +++ /dev/null @@ -1,747 +0,0 @@ -cocur/slugify -============= - -> Converts a string into a slug. - -[![Build Status](https://img.shields.io/travis/cocur/slugify.svg?style=flat)](https://travis-ci.org/cocur/slugify) -[![Windows Build status](https://ci.appveyor.com/api/projects/status/9yv498ff61byp742?svg=true)](https://ci.appveyor.com/project/florianeckerstorfer/slugify) -[![Scrutinizer Quality Score](https://img.shields.io/scrutinizer/g/cocur/slugify.svg?style=flat)](https://scrutinizer-ci.com/g/cocur/slugify/) -[![Code Coverage](https://scrutinizer-ci.com/g/cocur/slugify/badges/coverage.png?b=master&style=flat-square)](https://scrutinizer-ci.com/g/cocur/slugify/?branch=master) - -[![Latest Release](https://img.shields.io/packagist/v/cocur/slugify.svg)](https://packagist.org/packages/cocur/slugify) -[![MIT License](https://img.shields.io/packagist/l/cocur/slugify.svg)](http://opensource.org/licenses/MIT) -[![Total Downloads](https://img.shields.io/packagist/dt/cocur/slugify.svg)](https://packagist.org/packages/cocur/slugify) - -Developed by [Florian Eckerstorfer](https://florian.ec) in Vienna, Europe with the help of -[many great contributors](https://github.com/cocur/slugify/graphs/contributors). - - -Features --------- - -- Removes all special characters from a string. -- Provides custom replacements for Arabic, Austrian, Azerbaijani, Brazilian Portuguese, Bulgarian, Burmese, Chinese, Croatian, -Czech, Esperanto, Estonian, Finnish, French, Georgian, German, Greek, Hindi, Hungarian, Italian, Latvian, Lithuanian, -Macedonian, Norwegian, Polish, Romanian, Russian, Serbian, Spanish, Swedish, Turkish, Ukrainian and Vietnamese special -characters. Instead of removing these characters, Slugify approximates them (e.g., `ae` replaces `ä`). -- No external dependencies. -- PSR-4 compatible. -- Compatible with PHP >= 5.5.9 and PHP 7. -- Integrations for [Symfony (2 and 3)](http://symfony.com), [Silex (1 and 2)](http://silex.sensiolabs.org), [Laravel](http://laravel.com), -[Twig (1 and 2)](http://twig.sensiolabs.org), [Zend Framework 2](http://framework.zend.com/), [Nette Framework](http://nette.org/), -[Latte](http://latte.nette.org/) and [Plum](https://github.com/plumphp/plum). - - -Installation ------------- - -You can install Slugify through [Composer](https://getcomposer.org): - -```shell -$ composer require cocur/slugify -``` - -Slugify requires the Multibyte String extension from PHP. Typically you can use the configure option `--enable-mbstring` while compiling PHP. More information can be found in the [PHP documentation](http://php.net/manual/en/mbstring.installation.php). - - -Further steps may be needed for [integrations](#integrations). - -Usage ------ - -Generate a slug: - -```php -use Cocur\Slugify\Slugify; - -$slugify = new Slugify(); -echo $slugify->slugify('Hello World!'); // hello-world -``` - -You can also change the separator used by `Slugify`: - -```php -echo $slugify->slugify('Hello World!', '_'); // hello_world -``` - -The library also contains `Cocur\Slugify\SlugifyInterface`. Use this interface whenever you need to type hint an -instance of `Slugify`. - -To add additional transliteration rules you can use the `addRule()` method. - -```php -$slugify->addRule('i', 'ey'); -echo $slugify->slugify('Hi'); // hey -``` - -### Rulesets - -Many of the transliterations rules used in Slugify are specific to a language. These rules are therefore categorized -using rulesets. Rules for the most popular are activated by default in a specific order. You can change which rulesets -are activated and the order in which they are activated. The order is important when there are conflicting rules in -different languages. For example, in German `ä` is transliterated with `ae`, in Turkish the correct transliteration is -`a`. By default the German transliteration is used since German is used more often on the internet. If you want to use -prefer the Turkish transliteration you have to possibilities. You can activate it after creating the constructor: - -```php -$slugify = new Slugify(); -$slugify->slugify('ä'); // -> "ae" -$slugify->activateRuleSet('turkish'); -$slugify->slugify('ä'); // -> "a" -``` - -An alternative way would be to pass the rulesets and their order to the constructor. - -```php -$slugify = new Slugify(['rulesets' => ['default', 'turkish']]); -$slugify->slugify('ä'); // -> "a" -``` - -You can find a list of the available rulesets in [Resources/rules](https://github.com/cocur/slugify/tree/master/Resources/rules). - -### More options - -The constructor takes an options array, you have already seen the `rulesets` options above. You can also change the -regular expression that is used to replace characters with the separator. - -```php -$slugify = new Slugify(['regexp' => '/([^A-Za-z0-9]|-)+/']); -``` - -*(The regular expression used in the example above is the default one.)* - -By default Slugify will convert the slug to lowercase. If you want to preserve the case of the string you can set the -`lowercase` option to false. - -```php -$slugify = new Slugify(['lowercase' => false]); -$slugify->slugify('Hello World'); // -> "Hello-World" -``` - -By default Slugify will use dashes as separators. If you want to use a different default separator, you can set the -`separator` option. - -```php -$slugify = new Slugify(['separator' => '_']); -$slugify->slugify('Hello World'); // -> "hello_world" -``` - -By default Slugify will remove leading and trailing separators before returning the slug. If you do not want the slug to -be trimmed you can set the `trim` option to false. - -```php -$slugify = new Slugify(['trim' => false]); -$slugify->slugify('Hello World '); // -> "hello-world-" -``` - -### Changing options on the fly - -You can overwrite any of the above options on the fly by passing an options array as second argument to the `slugify()` -method. For example: - -```php -$slugify = new Slugify(); -$slugify->slugify('Hello World', ['lowercase' => false]); // -> "Hello-World" -``` - -You can also modify the separator this way: - -```php -$slugify = new Slugify(); -$slugify->slugify('Hello World', ['separator' => '_']); // -> "hello_world" -``` - -You can even activate a custom ruleset without touching the default rules: - -```php -$slugify = new Slugify(); -$slugify->slugify('für', ['ruleset' => 'turkish']); // -> "fur" -$slugify->slugify('für'); // -> "fuer" -``` - -### Contributing - -We really appreciate if you report bugs and errors in the transliteration, especially if you are a native speaker of -the language and question. Feel free to ask for additional languages in the issues, but please note that the -maintainer of this repository does not speak all languages. If you can provide a Pull Request with rules for -a new language or extend the rules for an existing language that would be amazing. - -To add a new language you need to: - -1. Create a `[language].json` in `Resources/rules` -2. If you believe the language should be a default ruleset you can add the language to -`Cocur\Slugify\Slugify::$options`. If you add the language there all existing tests still have to pass -3. Run `php bin/generate-default.php` -4. Add tests for the language in `tests/SlugifyTest.php`. If the language is in the default ruleset add your -test cases to `defaultRuleProvider()`, otherwise to `customRulesProvider()`. - -Submit PR. Thank you very much. 💚 - -### Code of Conduct - -In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, race, religion, or sexual identity and orientation. - -The full Code of Conduct can be found [here](https://github.com/cocur/slugify/blob/master/CODE_OF_CONDUCT.md). - -This project is no place for hate. If you have any problems please contact Florian: [florian@eckerstorfer.net](mailto:florian@eckerstorfer.net) ✌ðŸ»ðŸ³ï¸â€ðŸŒˆ - -### Further information - -- [API docs](http://cocur.co/slugify/api/master/) - - -Integrations ------------- - -### Symfony - -Slugify contains a Symfony bundle and service definition that allow you to use it as a service in your Symfony -application. The code resides in the `Cocur\Slugify\Bridge\Symfony` namespace and you only need to add the bundle class -to your `AppKernel.php`: - -```php -# app/AppKernel.php - -class AppKernel extends Kernel -{ - public function registerBundles() - { - $bundles = array( - // ... - new Cocur\Slugify\Bridge\Symfony\CocurSlugifyBundle(), - ); - // ... - } - - // ... -} -``` - -You can now use the `cocur_slugify` service everywhere in your application, for example, in your controller: - -```php -$slug = $this->get('cocur_slugify')->slugify('Hello World!'); -``` - -The bundle also provides an alias `slugify` for the `cocur_slugify` service: - -```php -$slug = $this->get('slugify')->slugify('Hello World!'); -``` - -If you use `autowire` (Symfony >=3.3), you can inject it into your services like this: - -```php -public function __construct(\Cocur\Slugify\SlugifyInterface $slugify) -``` - -You can set the following configuration settings in `config.yml` to adjust the slugify service: - -```yaml -cocur_slugify: - lowercase: - separator: - regexp: - rulesets: { } # List of rulesets: https://github.com/cocur/slugify/tree/master/Resources/rules -``` - -### Twig - -If you use the Symfony framework with Twig you can use the Twig filter `slugify` in your templates after you have setup -Symfony integrations (see above). - -```twig -{{ 'Hällo Wörld'|slugify }} -``` - -If you use Twig outside of the Symfony framework you first need to add the extension to your environment: - -```php -use Cocur\Slugify\Bridge\Twig\SlugifyExtension; -use Cocur\Slugify\Slugify; - -$twig = new Twig_Environment($loader); -$twig->addExtension(new SlugifyExtension(Slugify::create())); -``` - -To use the Twig filter with [TwigBridge](https://github.com/rcrowe/TwigBridge) for Laravel, you'll need to add the -Slugify extension using a closure: - -```php -// laravel/app/config/packages/rcrowe/twigbridge/config.php - -'extensions' => array( - //... - function () { - return new \Cocur\Slugify\Bridge\Twig\SlugifyExtension(\Cocur\Slugify\Slugify::create()); - }, -), -``` - -You can find more information about registering extensions in the -[Twig documentation](http://twig.sensiolabs.org/doc/advanced.html#creating-an-extension). - -### Silex - -Slugify also provides a service provider to integrate into Silex. - -```php -// For Silex version 1 -$app->register(new Cocur\Slugify\Bridge\Silex\SlugifyServiceProvider()); -``` - -```php -// For Silex version 2 -$app->register(new Cocur\Slugify\Bridge\Silex2\SlugifyServiceProvider()); -``` - -You can use the `slugify` method in your controllers: - -```php -$app->get('/', function () { - return $app['slugify']->slugify('welcome to the homepage'); -}); -``` - -And if you use Silex in combination with Twig register the `SlugifyServiceProvider` after the `Silex\Provider\TwigServiceProvider` to add the Twig extension to your environment and use the `slugify` filter in your templates. - -```twig -{{ 'welcome to the homepage'|slugify }} -``` - -### Mustache.php - -We don't need an additional integration to use Slugify in [Mustache.php](https://github.com/bobthecow/mustache.php). -If you want to use Slugify in Mustache, just add a helper: - -```php -use Cocur\Slugify\Slugify; - -$mustache = new Mustache_Engine(array( - // ... - 'helpers' => array('slugify' => function($string, $separator = null) { - return Slugify::create()->slugify($string, $separator); - }), -)); -``` - -### Laravel - -Slugify also provides a service provider to integrate into Laravel (versions 4.1 and later). - -In your Laravel project's `app/config/app.php` file, add the service provider into the "providers" array: - -```php -'providers' => array( - "Cocur\Slugify\Bridge\Laravel\SlugifyServiceProvider", -) -``` - -And add the facade into the "aliases" array: - -```php -'aliases' => array( - "Slugify" => "Cocur\Slugify\Bridge\Laravel\SlugifyFacade", -) -``` - -You can then use the `Slugify::slugify()` method in your controllers: - -```php -$url = Slugify::slugify('welcome to the homepage'); -``` - -### Zend Framework 2 - -Slugify can be easely used in Zend Framework 2 applications. Included bridge provides a service and a view helper -already registered for you. - -Just enable the module in your configuration like this. - -```php -return array( - //... - - 'modules' => array( - 'Application', - 'ZfcBase', - 'Cocur\Slugify\Bridge\ZF2' // <- Add this line - //... - ) - - //... -); -``` - -After that you can retrieve the `Cocur\Slugify\Slugify` service (or the `slugify` alias) and generate a slug. - -```php -/** @var \Zend\ServiceManager\ServiceManager $sm */ -$slugify = $sm->get('Cocur\Slugify\Slugify'); -$slug = $slugify->slugify('Hällo Wörld'); -$anotherSlug = $slugify->slugify('Hällo Wörld', '_'); -``` - -In your view templates use the `slugify` helper to generate slugs. - -```php -slugify('Hällo Wörld') ?> -slugify('Hällo Wörld', '_') ?> -``` - -The service (which is also used in the view helper) can be customized by defining this configuration key. - -```php -return array( - 'cocur_slugify' => array( - 'reg_exp' => '/([^a-zA-Z0-9]|-)+/' - ) -); -``` - -### Nette Framework - -Slugify contains a Nette extension that allows you to use it as a service in your Nette application. You only need to -register it in your `config.neon`: - -```yml -# app/config/config.neon - -extensions: - slugify: Cocur\Slugify\Bridge\Nette\SlugifyExtension -``` - -You can now use the `Cocur\Slugify\SlugifyInterface` service everywhere in your application, for example in your -presenter: - -```php -class MyPresenter extends \Nette\Application\UI\Presenter -{ - /** @var \Cocur\Slugify\SlugifyInterface @inject */ - public $slugify; - - public function renderDefault() - { - $this->template->hello = $this->slugify->slugify('Hällo Wörld'); - } -} -``` - -### Latte - -If you use the Nette Framework with it's native Latte templating engine, you can use the Latte filter `slugify` in your -templates after you have setup Nette extension (see above). - -```smarty -{$hello|slugify} -``` - -If you use Latte outside of the Nette Framework you first need to add the filter to your engine: - -```php -use Cocur\Slugify\Bridge\Latte\SlugifyHelper; -use Cocur\Slugify\Slugify; -use Latte; - -$latte = new Latte\Engine(); -$latte->addFilter('slugify', array(new SlugifyHelper(Slugify::create()), 'slugify')); -``` - -### Slim 3 - -Slugify does not need a specific bridge to work with [Slim 3](http://www.slimframework.com), just add the following configuration: - -```php -$container['view'] = function ($c) { - $settings = $c->get('settings'); - $view = new \Slim\Views\Twig($settings['view']['template_path'], $settings['view']['twig']); - $view->addExtension(new Slim\Views\TwigExtension($c->get('router'), $c->get('request')->getUri())); - $view->addExtension(new Cocur\Slugify\Bridge\Twig\SlugifyExtension(Cocur\Slugify\Slugify::create())); - return $view; -}; -``` - -In a template you can use it like this: - -```twig -
{{ post.title|raw }} -``` - -### League - -Slugify provides a service provider for use with `league/container`: - -```php -use Cocur\Slugify; -use League\Container; - -/* @var Container\ContainerInterface $container */ -$container->addServiceProvider(new Slugify\Bridge\League\SlugifyServiceProvider()); - -/* @var Slugify\Slugify $slugify */ -$slugify = $container->get(Slugify\SlugifyInterface::class); -``` - -You can configure it by sharing the required options: - -```php -use Cocur\Slugify; -use League\Container; - -/* @var Container\ContainerInterface $container */ -$container->share('config.slugify.options', [ - 'lowercase' => false, - 'rulesets' => [ - 'default', - 'german', - ], -]); - -$container->addServiceProvider(new Slugify\Bridge\League\SlugifyServiceProvider()); - -/* @var Slugify\Slugify $slugify */ -$slugify = $container->get(Slugify\SlugifyInterface::class); -``` - -You can configure which rule provider to use by sharing it: - -```php -use Cocur\Slugify; -use League\Container; - -/* @var Container\ContainerInterface $container */ -$container->share(Slugify\RuleProvider\RuleProviderInterface::class, function () { - return new Slugify\RuleProvider\FileRuleProvider(__DIR__ . '/../../rules'); -]); - -$container->addServiceProvider(new Slugify\Bridge\League\SlugifyServiceProvider()); - -/* @var Slugify\Slugify $slugify */ -$slugify = $container->get(Slugify\SlugifyInterface::class); -``` - -Change Log ----------- - -### Version 3.1 (22 January 2018) - -- [#195](https://github.com/cocur/slugify/pull/195) Add support for Chinese (Pinyin) (by [SuN-80](https://github.com/SuN-80), [franmomu](https://github.com/franmomu)) -- [#189](https://github.com/cocur/slugify/pull/189) Add trim option (by [sforsberg](https://github.com/sforsberg)) - -### Version 3.0.1 (24 September 2017) - -- [#183](https://github.com/cocur/slugify/pull/183) Fix invalid JSON ([RusiPapazov](https://github.com/RusiPapazov)) -- [#185](https://github.com/cocur/slugify/pull/185) Fix support for Symfony > 3.3 (by [FabienPapet](https://github.com/FabienPapet)) -- [#186](https://github.com/cocur/slugify/pull/186) Require Multibyte extension in `composer.json` (by [wandersonwhcr](https://github.com/wandersonwhcr)) - -### Version 3.0 (11 August 2017) - -- HHVM is no longer supported -- Bugfix [#165](https://github.com/cocur/slugify/issues/165) Added missing French rules to `DefaultRuleProvider` (by [gsouf](https://github.com/gsouf)) -- [#168](https://github.com/cocur/slugify/pull/168) Add Persian rules (by [mohammad6006](https://github.com/mohammad6006)) -- Bugfix [#169](https://github.com/cocur/slugify/issues/169) Add missing `getName()` to `Cocur\Slugify\Bridge\Twig\SlugifyExtension` (by [TomCan](https://github.com/TomCan)) -- [#172](https://github.com/cocur/slugify/pull/172) Sort rules in `DefaultRuleProvider` alphabetically (by [tbmatuka](https://github.com/tbmatuka)) -- [#174](https://github.com/cocur/slugify/pull/174) Add Hungarian rules (by [rviktor87](https://github.com/rviktor87)) -- [#180](https://github.com/cocur/slugify/pull/180) Add Brazilian Portuguese rules (by [tallesairan](https://github.com/tallesairan)) -- Bugfix [#181](https://github.com/cocur/slugify/pull/181) Add missing French rules (by [FabienPapet](https://github.com/FabienPapet)) - -### Version 2.5 (23 March 2017) - -- [#150](https://github.com/cocur/slugify/pull/150) Add Romanian rules (by [gabiudrescu](https://github.com/gabiudrescu)) -- [#154](https://github.com/cocur/slugify/pull/154) Add French rules (by [SuN-80](https://github.com/SuN-80)) -- [#159](https://github.com/cocur/slugify/pull/159) Add Estonian rules (by [erkimiilberg](https://github.com/erkimiilberg)) -- [#162](https://github.com/cocur/slugify/pull/162) Add support for Twig 2 (by [JakeFr](https://github.com/JakeFr)) - -### Version 2.4 (9 February 2017) - -- [#133](https://github.com/cocur/slugify/pull/133) Allow to modify options without creating a new object (by [leofeyer](https://github.com/leofeyer)) -- [#135](https://github.com/cocur/slugify/pull/135) Add support for Danish (by [izehose](https://github.com/izehose)) -- [#140](https://github.com/cocur/slugify/pull/140) Update Hindi support (by [arunlodhi](https://github.com/arunlodhi)) -- [#146](https://github.com/cocur/slugify/pull/146) Add support for Italien (by [gianiaz](https://github.com/gianiaz)) -- [#151](https://github.com/cocur/slugify/pull/151) Add support for Serbian (by [cvetan](https://github.com/cvetan)) -- [#155](https://github.com/cocur/slugify/pull/155) Update support for Lithuanian (by [s4uliu5](https://github.com/s4uliu5)) - -### Version 2.3 (9 August 2016) - -- [#124](https://github.com/cocur/slugify/issues/124) Fix support for Bulgarian -- [#125](https://github.com/cocur/slugify/pull/125) Update Silex 2 provider (by [JakeFr](https://github.com/JakeFr)) -- [#129](https://github.com/cocur/slugify/pull/129) Add support for Croatian (by [napravicukod](https://github.com/napravicukod)) - -### Version 2.2 (10 July 2016) - -- [#102](https://github.com/cocur/slugify/pull/102) Add transliterations for Azerbaijani (by [seferov](https://github.com/seferov)) -- [#109](https://github.com/cocur/slugify/pull/109) Made integer values into strings (by [JonathanMH](https://github.com/JonathanMH)) -- [#114](https://github.com/cocur/slugify/pull/114) Provide SlugifyServiceProvider for league/container (by [localheinz](https://github.com/localheinz)) -- [#120](https://github.com/cocur/slugify/issues/120) Add compatibility with Silex 2 (by [shamotj](https://github.com/shamotj)) - -### Version 2.1.1 (8 April 2016) - -- Do not activate Swedish rules by default (fixes broken v2.1 release) - -### Version 2.1.0 (8 April 2016) - -- [#104](https://github.com/cocur/slugify/pull/104) Add Symfony configuration (by [estahn](https://github.com/estahn)) -- [#107](https://github.com/cocur/slugify/issues/107) Fix Swedish rules - -### Version 2.0.0 (24 February 2016) - -- [#78](https://github.com/cocur/slugify/pull/78) Use multibyte-safe case convention (by [Koc](https://github.com/Koc)) -- [#81](https://github.com/cocur/slugify/pull/81) Move rules into JSON files (by [florianeckerstorfer](https://github.com/florianeckerstorfer)) -- [#84](https://github.com/cocur/slugify/pull/84) Add tests for very long strings containing umlauts (by [florianeckerstorfer](https://github.com/florianeckerstorfer)) -- [#88](https://github.com/cocur/slugify/pull/88) Add rules for Hindi (by [florianeckerstorfer](https://github.com/florianeckerstorfer)) -- [#89](https://github.com/cocur/slugify/pull/89) Add rules for Norwegian (by [tsmes](https://github.com/tsmes)) -- [#90](https://github.com/cocur/slugify/pull/90) Replace `bindShared` with `singleton` in Laravel bridge (by [sunspikes](https://github.com/sunspikes)) -- [#97](https://github.com/cocur/slugify/pull/97) Set minimum PHP version to 5.5.9 (by [florianeckerstorfer](https://github.com/florianeckerstorfer)) -- [#98](https://github.com/cocur/slugify/pull/98) Add rules for Bulgarian (by [RoumenDamianoff](https://github.com/RoumenDamianoff)) - - -### Version 1.4.1 (11 February 2016) - -- [#90](https://github.com/cocur/slugify/pull/90) Replace `bindShared` with `singleton` in Laravel bridge (by [sunspikes](https://github.com/sunspikes)) - -### Version 1.4 (29 September 2015) - -- [#75](https://github.com/cocur/slugify/pull/75) Remove a duplicate array entry (by [irfanevrens](https://github.com/irfanevrens)) -- [#76](https://github.com/cocur/slugify/pull/76) Add support for Georgian (by [TheGIBSON](https://github.com/TheGIBSON)) -- [#77](https://github.com/cocur/slugify/pull/77) Fix Danish transliterations (by [kafoso](https://github.com/kafoso)) - -### Version 1.3 (2 September 2015) - -- [#70](https://github.com/cocur/slugify/pull/70) Add missing superscript and subscript digits (by [BlueM](https://github.com/BlueM)) -- [#71](https://github.com/cocur/slugify/pull/71) Improve Greek language support (by [kostaspt](https://github.com/kostaspt)) -- [#72](https://github.com/cocur/slugify/pull/72) Improve Silex integration (by [CarsonF](https://github.com/CarsonF)) -- [#73](https://github.com/cocur/slugify/pull/73) Improve Russian language support (by [akost](https://github.com/akost)) - -### Version 1.2 (2 July 2015) - -- Add integration for [Plum](https://github.com/plumphp/plum) (by [florianeckerstorfer](https://github.com/florianeckerstorfer)) -- [#64](https://github.com/cocur/slugify/pull/64) Fix Nette integration (by [lookyman](https://github.com/lookyman)) -- Add option to not convert slug to lowercase (by [florianeckerstorfer](https://github.com/florianeckerstorfer) and [GDmac](https://github.com/GDmac)) - -### Version 1.1 (18 March 2015) - -- [#54](https://github.com/cocur/slugify/pull/54) Add support for Burmese characters (by [lovetostrike](https://github.com/lovetostrike)) -- [#58](https://github.com/cocur/slugify/pull/58) Add Nette and Latte integration (by [lookyman](https://github.com/lookyman)) -- [#50](https://github.com/cocur/slugify/issues/50) Fix transliteration for Vietnamese character Ä (by [mac2000](https://github.com/mac2000)) - -### Version 1.0 (26 November 2014) - -No new features or bugfixes, but it's about time to pump Slugify to v1.0. - -### Version 0.11 (23 November 2014) - -- [#49](https://github.com/cocur/slugify/pull/49) Add Zend Framework 2 integration (by [acelaya](https://github.com/acelaya)) - -### Version 0.10.3 (8 November 2014) - -- [#48](https://github.com/cocur/slugify/pull/48) Add support for Vietnamese (by [mac2000](https://github.com/mac2000)) - -### Version 0.10.2 (18 October 2014) - -- [#44](https://github.com/cocur/slugify/pull/44) Change visibility of properties to `protected` (by [acelaya](https://github.com/acelaya)) -- [#45](https://github.com/cocur/slugify/pull/45) Configure regular expression used to replace characters (by [acelaya](https://github.com/acelaya)) -- Fix type hinting (by [florianeckerstorfer](https://github.com/florianeckerstorfer)) -- Remove duplicate rule (by [florianeckerstorfer](https://github.com/florianeckerstorfer)) - -### Version 0.10.1 (1 September 2014) - -- [#39](https://github.com/cocur/slugify/pull/39) Add support for rulesets (by [florianeckerstorfer](https://github.com/florianeckerstorfer)) - -### Version 0.10.0 (26 August 2014) - -- [#32](https://github.com/cocur/slugify/pull/32) Added Laraval bridge (by [cviebrock](https://github.com/cviebrock)) -- [#35](https://github.com/cocur/slugify/pull/35) Fixed transliteration for `ÄŽ` (by [michalskop](https://github.com/michalskop)) - -### Version 0.9 (29 May 2014) - -- [#28](https://github.com/cocur/slugify/pull/28) Add Symfony2 service alias and make Twig extension private (by [Kevin Bond](https://github.com/kbond)) - -### Version 0.8 (18 April 2014) - -- [#27](https://github.com/cocur/slugify/pull/27) Add support for Arabic characters (by [Davide Bellini](https://github.com/billmn)) -- Added some missing characters -- Improved organisation of characters in `Slugify` class - -### Version 0.7 (4 April 2014) - -This version introduces optional integrations into Symfony2, Silex and Twig. You can still use the library in any other framework. I decided to include these bridges because there exist integrations from other developers, but they use outdated versions of cocur/slugify. Including these small bridge classes in the library makes maintaining them a lot easier for me. - -- [#23](https://github.com/cocur/slugify/pull/23) Added Symfony2 service -- [#24](https://github.com/cocur/slugify/pull/24) Added Twig extension -- [#25](https://github.com/cocur/slugify/pull/25) Added Silex service provider - -### Version 0.6 (2 April 2014) - -- [#22](https://github.com/cocur/slugify/pull/22) Added support for Esperanto characters (by [Michel Petit](https://github.com/malenkiki)) - -### Version 0.5 (28 March 2014) - -- [#21](https://github.com/cocur/slugify/pull/21) Added support for Greek characters (by [Michel Petit](https://github.com/malenkiki)) -- [#20](https://github.com/cocur/slugify/pull/20) Fixed rule for cyrillic letter D (by [Marchenko Alexandr](https://github.com/cocur/slugify/pull/20)) -- Add missing `$separator` parameter to `SlugifyInterface` - -### Version 0.4.1 (9 March 2014) - -- [#19](https://github.com/cocur/slugify/pull/19) Adds soft sign rule (by [Marchenko Alexandr](https://github.com/mac2000)) - -### Version 0.4 (17 January 2014) - -Nearly completely rewritten code, removes `iconv` support because the underlying library is broken. The code is now better and faster. Many thanks to [Marchenko Alexandr](http://mac-blog.org.ua). - -### Version 0.3 (12 January 2014) - -- [#11](https://github.com/cocur/slugify/pull/11) PSR-4 compatible (by [mac2000](https://github.com/mac2000)) -- [#13](https://github.com/cocur/slugify/pull/13) Added editorconfig (by [mac2000](https://github.com/mac2000)) -- [#14](https://github.com/cocur/slugify/pull/14) Return empty slug when input is empty and removed unused parameter (by [mac2000](https://github.com/mac2000)) - - -Authors -------- - -- [Florian Eckerstorfer](http://florian.ec) ([Twitter](http://twitter.com/Florian_)) -- [Ivo Bathke](https://github.com/ivoba) -- [Marchenko Alexandr](http://mac-blog.org.ua) -- And many [great contributors](https://github.com/cocur/slugify/graphs/contributors) - -Support for Chinese is adapted from [jifei/Pinyin](https://github.com/jifei/Pinyin) with permission. - -> Slugify is a project of [Cocur](http://cocur.co). You can contact us on Twitter: -> [**@cocurco**](https://twitter.com/cocurco) - - -Support -------- - -If you need support you can ask on [Twitter](https://twitter.com/cocurco) (well, only if your question is short) or you -can join our chat on Gitter. - -[![Gitter](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/cocur/slugify) - -In case you want to support the development of Slugify you can help us with providing additional transliterations or -inform us if a transliteration is wrong. We would highly appreciate it if you can send us directly a Pull Request on -Github. If you have never contributed to a project on Github we are happy to help you. Just ask on Twitter or directly -join our Gitter. - -You always can help me (Florian, the original developer and maintainer) out by -[sending me an Euro or two](https://paypal.me/florianec/2). - - -License -------- - -The MIT License (MIT) - -Copyright (c) 2012-2017 Florian Eckerstorfer - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated -documentation files (the "Software"), to deal in the Software without restriction, including without limitation the -rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit -persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the -Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE -WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/vendor/cocur/slugify/Resources/rules/arabic.json b/vendor/cocur/slugify/Resources/rules/arabic.json deleted file mode 100644 index e46915f1..00000000 --- a/vendor/cocur/slugify/Resources/rules/arabic.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "Ø£" : "a", - "ب" : "b", - "ت" : "t", - "Ø«" : "th", - "ج" : "g", - "Ø­" : "h", - "Ø®" : "kh", - "د" : "d", - "ذ" : "th", - "ر" : "r", - "ز" : "z", - "س" : "s", - "Ø´" : "sh", - "ص" : "s", - "ض" : "d", - "Ø·" : "t", - "ظ" : "th", - "ع" : "aa", - "غ" : "gh", - "Ù" : "f", - "Ù‚" : "k", - "Ùƒ" : "k", - "Ù„" : "l", - "Ù…" : "m", - "Ù†" : "n", - "Ù‡" : "h", - "Ùˆ" : "o", - "ÙŠ" : "y" -} diff --git a/vendor/cocur/slugify/Resources/rules/austrian.json b/vendor/cocur/slugify/Resources/rules/austrian.json deleted file mode 100644 index 7753dcfc..00000000 --- a/vendor/cocur/slugify/Resources/rules/austrian.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "Ä": "AE", - "Ö": "OE", - "Ü": "UE", - "ß": "sz", - "ä": "ae", - "ö": "oe", - "ü": "ue" -} diff --git a/vendor/cocur/slugify/Resources/rules/azerbaijani.json b/vendor/cocur/slugify/Resources/rules/azerbaijani.json deleted file mode 100644 index ad6e2a98..00000000 --- a/vendor/cocur/slugify/Resources/rules/azerbaijani.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "Æ": "E", - "Ç": "C", - "Äž": "G", - "İ": "I", - "Åž": "S", - "Ö": "O", - "Ü": "U", - "É™": "e", - "ç": "c", - "ÄŸ": "g", - "ı": "i", - "ÅŸ": "s", - "ö": "o", - "ü": "u" -} diff --git a/vendor/cocur/slugify/Resources/rules/bulgarian.json b/vendor/cocur/slugify/Resources/rules/bulgarian.json deleted file mode 100644 index 4c45ca1b..00000000 --- a/vendor/cocur/slugify/Resources/rules/bulgarian.json +++ /dev/null @@ -1,65 +0,0 @@ -{ - "Ð": "A", - "Б": "B", - "Ð’": "V", - "Г": "G", - "Д": "D", - "Е": "E", - "Ж": "J", - "З": "Z", - "И": "I", - "Й": "Y", - "К": "K", - "Л": "L", - "М": "M", - "Ð": "N", - "О": "O", - "П": "P", - "Р": "R", - "С": "S", - "Т": "T", - "У": "U", - "Ф": "F", - "Ð¥": "H", - "Ц": "Ts", - "Ч": "Ch", - "Ш": "Sh", - "Щ": "Sht", - "Ъ": "A", - "Ь": "I", - "Ю": "Iu", - "Я": "Ia", - "а": "a", - "б": "b", - "в": "v", - "г": "g", - "д": "d", - "е": "e", - "ж": "j", - "з": "z", - "и": "i", - "й": "y", - "к": "k", - "л": "l", - "м": "m", - "н": "n", - "о": "o", - "п": "p", - "Ñ€": "r", - "Ñ": "s", - "Ñ‚": "t", - "у": "u", - "Ñ„": "f", - "Ñ…": "h", - "ц": "ts", - "ч": "ch", - "ш": "sh", - "щ": "sht", - "ÑŠ": "a", - "ÑŒ": "i", - "ÑŽ": "iu", - "Ñ": "ia", - "иÑ": "ia", - "йо": "iо", - "ьо": "io" -} diff --git a/vendor/cocur/slugify/Resources/rules/burmese.json b/vendor/cocur/slugify/Resources/rules/burmese.json deleted file mode 100644 index 08f5a0a0..00000000 --- a/vendor/cocur/slugify/Resources/rules/burmese.json +++ /dev/null @@ -1,121 +0,0 @@ -{ - "က": "k", - "á€": "kh", - "ဂ": "g", - "ဃ": "ga", - "င": "ng", - "စ": "s", - "ဆ": "sa", - "ဇ": "z", - "စျ" : "za", - "ည": "ny", - "ဋ": "t", - "ဌ": "ta", - "á€": "d", - "ဎ": "da", - "á€": "na", - "á€": "t", - "ထ": "ta", - "ဒ": "d", - "ဓ": "da", - "န": "n", - "ပ": "p", - "ဖ": "pa", - "ဗ": "b", - "ဘ": "ba", - "မ": "m", - "ယ": "y", - "ရ": "ya", - "လ": "l", - "á€": "w", - "သ": "th", - "ဟ": "h", - "ဠ": "la", - "အ": "a", - - "ြ": "y", - "ျ": "ya", - "ွ": "w", - "ြွ": "yw", - "ျွ": "ywa", - "ှ": "h", - - "ဧ": "e", - "á": "-e", - "ဣ": "i", - "ဤ": "-i", - "ဉ": "u", - "ဦ": "-u", - "ဩ": "aw", - "သြော" : "aw", - "ဪ": "aw", - "á": "ywae", - "áŒ": "hnaik", - - "á€": "0", - "á": "1", - "á‚": "2", - "áƒ": "3", - "á„": "4", - "á…": "5", - "á†": "6", - "á‡": "7", - "áˆ": "8", - "á‰": "9", - - "္": "", - "့": "", - "း": "", - - "ာ": "a", - "ါ": "a", - "ေ": "e", - "ဲ": "e", - "ိ": "i", - "ီ": "i", - "ို": "o", - "ု": "u", - "ူ": "u", - "ေါင်": "aung", - "ော": "aw", - "ော်": "aw", - "ေါ": "aw", - "ေါ်": "aw", - "်": "at", - "က်": "et", - "ိုက်" : "aik", - "ောက်" : "auk", - "င်" : "in", - "ိုင်" : "aing", - "ောင်" : "aung", - "စ်" : "it", - "ည်" : "i", - "á€á€º" : "at", - "ိá€á€º" : "eik", - "ုá€á€º" : "ok", - "ွá€á€º" : "ut", - "ေá€á€º" : "it", - "ဒ်" : "d", - "ိုဒ်" : "ok", - "ုဒ်" : "ait", - "န်" : "an", - "ာန်" : "an", - "ိန်" : "ein", - "ုန်" : "on", - "ွန်" : "un", - "ပ်" : "at", - "ိပ်" : "eik", - "ုပ်" : "ok", - "ွပ်" : "ut", - "န်ုပ်" : "nub", - "မ်" : "an", - "ိမ်" : "ein", - "ုမ်" : "on", - "ွမ်" : "un", - "ယ်" : "e", - "ိုလ်" : "ol", - "ဉ်" : "in", - "ံ": "an", - "ိံ" : "ein", - "ုံ" : "on" -} diff --git a/vendor/cocur/slugify/Resources/rules/chinese.json b/vendor/cocur/slugify/Resources/rules/chinese.json deleted file mode 100644 index 21ec5942..00000000 --- a/vendor/cocur/slugify/Resources/rules/chinese.json +++ /dev/null @@ -1,6937 +0,0 @@ -{ - "è…Œ" : "yan", - "å—„" : "a", - "è¿«" : "po", - "æ±" : "ai", - "艾" : "ai", - "ç‘·" : "ai", - "å—Œ" : "ai", - "犴" : "an", - "鳌" : "ao", - "å»’" : "ao", - "æ‹—" : "niu", - "å²™" : "ao", - "éŠ" : "ao", - "扒" : "ba", - "岜" : "ba", - "耙" : "pa", - "é²…" : "ba", - "ç™" : "ban", - "膀" : "pang", - "磅" : "bang", - "ç‚®" : "pao", - "æ›" : "pu", - "刨" : "pao", - "瀑" : "pu", - "陂" : "bei", - "埤" : "pi", - "鹎" : "bei", - "é‚¶" : "bei", - "å­›" : "bei", - "é¾" : "bei", - "éž´" : "bei", - "畚" : "ben", - "ç”" : "beng", - "舭" : "bi", - "秘" : "mi", - "辟" : "pi", - "泌" : "mi", - "裨" : "bi", - "濞" : "bi", - "庳" : "bi", - "嬖" : "bi", - "ç•€" : "bi", - "ç­š" : "bi", - "ç®…" : "bi", - "襞" : "bi", - "è·¸" : "bi", - "笾" : "bian", - "æ‰" : "bian", - "碥" : "bian", - "窆" : "bian", - "便" : "bian", - "å¼" : "bian", - "ç¼" : "bian", - "骠" : "biao", - "æ“" : "shao", - "飚" : "biao", - "飑" : "biao", - "瘭" : "biao", - "髟" : "biao", - "玢" : "bin", - "è±³" : "bin", - "é•”" : "bin", - "膑" : "bin", - "å±" : "ping", - "泊" : "bo", - "逋" : "bu", - "晡" : "bu", - "é’¸" : "bu", - "醭" : "bu", - "埔" : "pu", - "ç“¿" : "bu", - "礤" : "ca", - "骖" : "can", - "è—" : "cang", - "艚" : "cao", - "ä¾§" : "ce", - "å–³" : "zha", - "刹" : "sha", - "瘥" : "chai", - "禅" : "chan", - "å»›" : "chan", - "é•¡" : "tan", - "æ¾¶" : "chan", - "躔" : "chan", - "阊" : "chang", - "é²³" : "chang", - "é•¿" : "chang", - "苌" : "chang", - "æ°…" : "chang", - "鬯" : "chang", - "焯" : "chao", - "æœ" : "chao", - "车" : "che", - "ç›" : "chen", - "è°¶" : "chen", - "榇" : "chen", - "è›" : "cheng", - "埕" : "cheng", - "枨" : "cheng", - "å¡" : "cheng", - "裎" : "cheng", - "èž­" : "chi", - "眵" : "chi", - "墀" : "chi", - "篪" : "chi", - "å»" : "di", - "瘛" : "chi", - "ç§" : "zhong", - "é‡" : "zhong", - "仇" : "chou", - "帱" : "chou", - "俦" : "chou", - "é› " : "chou", - "臭" : "chou", - "楮" : "chu", - "畜" : "chu", - "嘬" : "zuo", - "膪" : "chuai", - "å·›" : "chuan", - "椎" : "zhui", - "呲" : "ci", - "å…¹" : "zi", - "伺" : "si", - "ç’" : "cong", - "楱" : "cou", - "æ”’" : "zan", - "爨" : "cuan", - "éš¹" : "zhui", - "榱" : "cui", - "æ’®" : "cuo", - "é¹¾" : "cuo", - "å—’" : "da", - "å“’" : "da", - "沓" : "ta", - "骀" : "tai", - "ç»" : "dai", - "埭" : "dai", - "ç”™" : "dai", - "å¼¹" : "dan", - "æ¾¹" : "dan", - "å¨" : "dao", - "纛" : "dao", - "ç°¦" : "deng", - "æ" : "ti", - "翟" : "zhai", - "绨" : "ti", - "丶" : "dian", - "佃" : "dian", - "ç°Ÿ" : "dian", - "癜" : "dian", - "è°ƒ" : "tiao", - "铞" : "diao", - "佚" : "yi", - "å ž" : "die", - "瓞" : "die", - "æ²" : "die", - "垤" : "die", - "ç–”" : "ding", - "å²½" : "dong", - "ç¡" : "dong", - "æ«" : "dong", - "垌" : "dong", - "å³’" : "dong", - "èŠ" : "du", - "ç……" : "duan", - "碓" : "dui", - "镦" : "dui", - "囤" : "tun", - "铎" : "duo", - "ç¼" : "duo", - "é©®" : "tuo", - "æ²²" : "tuo", - "æŸ" : "tuo", - "哦" : "o", - "æ¶" : "e", - "è½­" : "e", - "é”·" : "e", - "é¹—" : "e", - "é˜" : "e", - "诶" : "ea", - "鲕" : "er", - "ç¥" : "er", - "ä½´" : "er", - "番" : "fan", - "å½·" : "pang", - "éœ" : "fei", - "蜚" : "fei", - "é²±" : "fei", - "芾" : "fei", - "瀵" : "fen", - "é²¼" : "fen", - "å¦" : "fou", - "趺" : "fu", - "æ¡´" : "fu", - "莩" : "fu", - "è”" : "fu", - "幞" : "fu", - "郛" : "fu", - "绂" : "fu", - "绋" : "fu", - "祓" : "fu", - "ç ©" : "fu", - "é»»" : "fu", - "罘" : "fu", - "蚨" : "fu", - "脯" : "pu", - "æ»" : "fu", - "黼" : "fu", - "鲋" : "fu", - "鳆" : "fu", - "å’–" : "ka", - "å™¶" : "ga", - "è½§" : "zha", - "é™”" : "gai", - "戤" : "gai", - "扛" : "kang", - "戆" : "gang", - "ç­»" : "gang", - "æ§”" : "gao", - "è—" : "gao", - "缟" : "gao", - "å’¯" : "ge", - "仡" : "yi", - "æ¿" : "ge", - "å¡¥" : "ge", - "鬲" : "ge", - "å“¿" : "ge", - "å¥" : "ju", - "缑" : "gou", - "éž²" : "gou", - "笱" : "gou", - "é˜" : "gou", - "çž½" : "gu", - "罟" : "gu", - "å˜" : "gu", - "牿" : "gu", - "é²´" : "gu", - "æ " : "kuo", - "莞" : "guan", - "纶" : "lun", - "æ¶«" : "guan", - "æ¶¡" : "wo", - "å‘™" : "guo", - "馘" : "guo", - "猓" : "guo", - "å’³" : "ke", - "æ°¦" : "hai", - "颔" : "han", - "å­" : "keng", - "颃" : "hang", - "å··" : "xiang", - "èšµ" : "ke", - "ç¿®" : "he", - "å“" : "xia", - "æ¡" : "heng", - "泓" : "hong", - "è•»" : "hong", - "黉" : "hong", - "後" : "hou", - "唿" : "hu", - "ç…³" : "hu", - "æµ’" : "hu", - "祜" : "hu", - "å²µ" : "hu", - "鬟" : "huan", - "圜" : "huan", - "郇" : "xun", - "锾" : "huan", - "逭" : "huan", - "å’´" : "hui", - "虺" : "hui", - "会" : "hui", - "溃" : "kui", - "å“•" : "hui", - "缋" : "hui", - "锪" : "huo", - "è –" : "huo", - "缉" : "ji", - "稽" : "ji", - "èµ" : "ji", - "丌" : "ji", - "å’­" : "ji", - "亟" : "ji", - "æ®›" : "ji", - "戢" : "ji", - "åµ´" : "ji", - "蕺" : "ji", - "ç³»" : "xi", - "蓟" : "ji", - "éœ" : "ji", - "è " : "qi", - "è·½" : "ji", - "哜" : "ji", - "鲚" : "ji", - "æ´Ž" : "ji", - "芰" : "ji", - "茄" : "qie", - "çˆ" : "jia", - "迦" : "jia", - "笳" : "jia", - "è‘­" : "jia", - "è·" : "jia", - "éƒ" : "jia", - "æ" : "jia", - "é“—" : "jia", - "袷" : "qia", - "è›±" : "jia", - "è§’" : "jiao", - "挢" : "jiao", - "岬" : "jia", - "å¾¼" : "jiao", - "湫" : "qiu", - "æ•«" : "jiao", - "瘕" : "jia", - "æµ…" : "qian", - "è’¹" : "jian", - "æ›" : "jian", - "æ¹”" : "jian", - "ç¼£" : "jian", - "çŠ" : "jian", - "é¹£" : "jian", - "é²£" : "jian", - "鞯" : "jian", - "蹇" : "jian", - "謇" : "jian", - "ç¡·" : "jian", - "æž§" : "jian", - "戬" : "jian", - "è°«" : "jian", - "å›" : "jian", - "裥" : "jian", - "笕" : "jian", - "翦" : "jian", - "è¶¼" : "jian", - "楗" : "jian", - "牮" : "jian", - "踺" : "jian", - "茳" : "jiang", - "礓" : "jiang", - "耩" : "jiang", - "é™" : "jiang", - "ç»›" : "jiang", - "æ´š" : "jiang", - "é²›" : "jiao", - "僬" : "jiao", - "鹪" : "jiao", - "艽" : "jiao", - "茭" : "jiao", - "åš¼" : "jiao", - "峤" : "qiao", - "觉" : "jiao", - "æ ¡" : "xiao", - "å™" : "jiao", - "醮" : "jiao", - "ç––" : "jie", - "å–ˆ" : "jie", - "æ¡”" : "ju", - "æ‹®" : "jie", - "æ¡€" : "jie", - "颉" : "jie", - "å©•" : "jie", - "羯" : "jie", - "é²’" : "jie", - "èš§" : "jie", - "骱" : "jie", - "è¡¿" : "jin", - "馑" : "jin", - "åº" : "jin", - "廑" : "jin", - "å ‡" : "jin", - "æ§¿" : "jin", - "é³" : "jin", - "ç¼™" : "jin", - "è©" : "jin", - "赆" : "jin", - "妗" : "jin", - "æ—Œ" : "jing", - "è…ˆ" : "jing", - "憬" : "jing", - "肼" : "jing", - "迳" : "jing", - "胫" : "jing", - "弪" : "jing", - "ç" : "jing", - "扃" : "jiong", - "é¬" : "jiu", - "ç–š" : "jiu", - "僦" : "jiu", - "æ¡•" : "jiu", - "ç–½" : "ju", - "裾" : "ju", - "è‹´" : "ju", - "æ¤" : "ju", - "é””" : "ju", - "çš" : "ju", - "éž«" : "ju", - "踽" : "ju", - "榉" : "ju", - "莒" : "ju", - "é½" : "ju", - "倨" : "ju", - "é’œ" : "ju", - "犋" : "ju", - "屦" : "ju", - "榘" : "ju", - "窭" : "ju", - "讵" : "ju", - "醵" : "ju", - "è‹£" : "ju", - "圈" : "quan", - "镌" : "juan", - "è ²" : "juan", - "锩" : "juan", - "ç‹·" : "juan", - "桊" : "juan", - "é„„" : "juan", - "ç—" : "jue", - "攫" : "jue", - "å­“" : "jue", - "æ©›" : "jue", - "ç" : "jue", - "æ¡·" : "jue", - "劂" : "jue", - "çˆ" : "jue", - "é•¢" : "jue", - "è§–" : "jue", - "ç­ " : "jun", - "麇" : "jun", - "æƒ" : "jun", - "浚" : "jun", - "å–€" : "ka", - "å¡" : "ka", - "ä½§" : "ka", - "胩" : "ka", - "锎" : "kai", - "è’ˆ" : "kai", - "剀" : "kai", - "åž²" : "kai", - "é”´" : "kai", - "戡" : "kan", - "莰" : "kan", - "é—¶" : "kang", - "é’ª" : "kang", - "å°»" : "kao", - "æ ²" : "kao", - "柯" : "ke", - "ç–´" : "ke", - "é’¶" : "ke", - "é¢" : "ke", - "ç‚" : "ke", - "é«" : "ke", - "壳" : "ke", - "å²¢" : "ke", - "溘" : "ke", - "骒" : "ke", - "缂" : "ke", - "æ°ª" : "ke", - "锞" : "ke", - "裉" : "ken", - "倥" : "kong", - "å´†" : "kong", - "箜" : "kong", - "芤" : "kou", - "çœ" : "kou", - "ç­˜" : "kou", - "刳" : "ku", - "å €" : "ku", - "å–¾" : "ku", - "侉" : "kua", - "è’¯" : "kuai", - "å“™" : "kuai", - "狯" : "kuai", - "éƒ" : "kuai", - "匡" : "kuang", - "夼" : "kuang", - "é‚" : "kuang", - "圹" : "kuang", - "纩" : "kuang", - "è´¶" : "kuang", - "岿" : "kui", - "æ‚" : "kui", - "ç½" : "kui", - "逵" : "kui", - "馗" : "kui", - "夔" : "kui", - "å–¹" : "kui", - "éš—" : "wei", - "暌" : "kui", - "æ†" : "kui", - "è°" : "kui", - "è·¬" : "kui", - "å–Ÿ" : "kui", - "è©" : "kui", - "篑" : "kui", - "è’‰" : "kui", - "愦" : "kui", - "锟" : "kun", - "醌" : "kun", - "ç¨" : "kun", - "é«¡" : "kun", - "悃" : "kun", - "阃" : "kun", - "蛞" : "kuo", - "ç ¬" : "la", - "è½" : "luo", - "剌" : "la", - "瘌" : "la", - "æ¶ž" : "lai", - "å´ƒ" : "lai", - "铼" : "lai", - "赉" : "lai", - "æ¿‘" : "lai", - "æ–“" : "lan", - "é•§" : "lan", - "è°°" : "lan", - "漤" : "lan", - "ç½±" : "lan", - "稂" : "lang", - "阆" : "lang", - "莨" : "liang", - "è’—" : "lang", - "铹" : "lao", - "ç—¨" : "lao", - "醪" : "lao", - "æ ³" : "lao", - "é“‘" : "lao", - "耢" : "lao", - "å‹’" : "le", - "仂" : "le", - "å»" : "le", - "æ³" : "le", - "鳓" : "le", - "了" : "le", - "é•­" : "lei", - "嫘" : "lei", - "ç¼§" : "lei", - "檑" : "lei", - "诔" : "lei", - "耒" : "lei", - "é…¹" : "lei", - "å¡„" : "leng", - "æ„£" : "leng", - "è—œ" : "li", - "骊" : "li", - "é»§" : "li", - "缡" : "li", - "å« " : "li", - "鲡" : "li", - "è“ " : "li", - "æ¾§" : "li", - "锂" : "li", - "醴" : "li", - "é³¢" : "li", - "俪" : "li", - "ç º" : "li", - "郦" : "li", - "詈" : "li", - "çŒ" : "li", - "溧" : "li", - "æ Ž" : "li", - "è½¹" : "li", - "傈" : "li", - "åœ" : "li", - "苈" : "li", - "ç– " : "li", - "ç–¬" : "li", - "篥" : "li", - "ç²" : "li", - "è·ž" : "li", - "ä¿©" : "liang", - "裢" : "lian", - "æ¿‚" : "lian", - "è‡" : "lian", - "å¥" : "lian", - "è Š" : "lian", - "ç" : "lian", - "蔹" : "lian", - "裣" : "lian", - "æ¥" : "lian", - "潋" : "lian", - "椋" : "liang", - "墚" : "liang", - "寮" : "liao", - "鹩" : "liao", - "蓼" : "liao", - "é’Œ" : "liao", - "å»–" : "liao", - "å°¥" : "liao", - "æ´Œ" : "lie", - "æ©" : "lie", - "埒" : "lie", - "èº" : "lie", - "鬣" : "lie", - "辚" : "lin", - "é´" : "lin", - "啉" : "lin", - "çžµ" : "lin", - "懔" : "lin", - "廪" : "lin", - "蔺" : "lin", - "膦" : "lin", - "é…ƒ" : "ling", - "柃" : "ling", - "é²®" : "ling", - "呤" : "ling", - "é•" : "liu", - "æ—’" : "liu", - "éª" : "liu", - "éŽ" : "liu", - "é”" : "liu", - "碌" : "lu", - "鹨" : "liu", - "èŒ" : "long", - "æ Š" : "long", - "æ³·" : "long", - "ç »" : "long", - "癃" : "long", - "åž…" : "long", - "å»" : "lou", - "è¼" : "lou", - "è’Œ" : "lou", - "耧" : "lou", - "åµ" : "lou", - "露" : "lu", - "瘘" : "lou", - "噜" : "lu", - "è½³" : "lu", - "垆" : "lu", - "胪" : "lu", - "舻" : "lu", - "æ Œ" : "lu", - "é•¥" : "lu", - "绿" : "lv", - "辘" : "lu", - "ç°" : "lu", - "潞" : "lu", - "辂" : "lu", - "渌" : "lu", - "æ°‡" : "lu", - "æ‹" : "lv", - "稆" : "lv", - "率" : "lv", - "é—¾" : "lv", - "æ ¾" : "luan", - "銮" : "luan", - "滦" : "luan", - "娈" : "luan", - "è„”" : "luan", - "锊" : "lve", - "猡" : "luo", - "椤" : "luo", - "è„¶" : "luo", - "é•™" : "luo", - "倮" : "luo", - "è ƒ" : "luo", - "瘰" : "luo", - "çž" : "luo", - "泺" : "luo", - "è¦" : "luo", - "é›’" : "luo", - "å‘’" : "mu", - "抹" : "mo", - "å”›" : "mai", - "æ©" : "ma", - "么" : "me", - "埋" : "mai", - "è¬" : "mai", - "脉" : "mai", - "劢" : "mai", - "颟" : "man", - "蔓" : "man", - "é³—" : "man", - "éž”" : "man", - "螨" : "man", - "å¢" : "man", - "缦" : "man", - "熳" : "man", - "镘" : "man", - "é‚™" : "mang", - "ç¡­" : "mang", - "æ—„" : "mao", - "茆" : "mao", - "å³" : "mao", - "æ³–" : "mao", - "昴" : "mao", - "耄" : "mao", - "ç‘" : "mao", - "懋" : "mao", - "瞀" : "mao", - "麽" : "me", - "没" : "mei", - "嵋" : "mei", - "湄" : "mei", - "猸" : "mei", - "é•…" : "mei", - "é¹›" : "mei", - "æµ¼" : "mei", - "é’”" : "men", - "瞢" : "meng", - "ç”" : "meng", - "礞" : "meng", - "艨" : "meng", - "黾" : "mian", - "鳘" : "min", - "溟" : "ming", - "æš" : "ming", - "模" : "mo", - "è°Ÿ" : "mo", - "å««" : "mo", - "镆" : "mo", - "瘼" : "mo", - "耱" : "mo", - "貊" : "mo", - "貘" : "mo", - "牟" : "mou", - "éª" : "mou", - "蛑" : "mou", - "ä¾”" : "mou", - "毪" : "mu", - "å¶" : "mu", - "仫" : "mu", - "å””" : "wu", - "é‚£" : "na", - "镎" : "na", - "哪" : "na", - "å‘¢" : "ne", - "è‚­" : "na", - "艿" : "nai", - "é¼" : "nai", - "è˜" : "nai", - "柰" : "nai", - "è»" : "nan", - "馕" : "nang", - "æ”®" : "nang", - "曩" : "nang", - "猱" : "nao", - "é“™" : "nao", - "硇" : "nao", - "蛲" : "nao", - "åž´" : "nao", - "å­" : "ni", - "猊" : "ni", - "铌" : "ni", - "é²µ" : "ni", - "祢" : "mi", - "ç¨" : "ni", - "æ…" : "te", - "ä¼²" : "ni", - "鲇" : "nian", - "é²¶" : "nian", - "åŸ" : "nian", - "嬲" : "niao", - "茑" : "niao", - "脲" : "niao", - "å•®" : "nie", - "é™§" : "nie", - "颞" : "nie", - "臬" : "nie", - "蘖" : "nie", - "甯" : "ning", - "è" : "ning", - "狃" : "niu", - "侬" : "nong", - "耨" : "nou", - "å­¥" : "nu", - "胬" : "nu", - "é’•" : "nv", - "æ§" : "nv", - "褰" : "qian", - "掮" : "qian", - "è¨" : "xun", - "é’¤" : "qian", - "ç®" : "qian", - "鬈" : "quan", - "ç¼±" : "qian", - "è‚·" : "qian", - "纤" : "xian", - "茜" : "qian", - "æ…Š" : "qian", - "椠" : "qian", - "戗" : "qiang", - "镪" : "qiang", - "é”–" : "qiang", - "樯" : "qiang", - "嫱" : "qiang", - "雀" : "que", - "ç¼²" : "qiao", - "ç¡—" : "qiao", - "åŠ" : "qiao", - "樵" : "qiao", - "è°¯" : "qiao", - "éž’" : "qiao", - "æ„€" : "qiao", - "鞘" : "qiao", - "郄" : "xi", - "ç®§" : "qie", - "亲" : "qin", - "覃" : "tan", - "溱" : "qin", - "檎" : "qin", - "锓" : "qin", - "å—ª" : "qin", - "èž“" : "qin", - "æ¿" : "qin", - "å£" : "qin", - "圊" : "qing", - "é²­" : "qing", - "檠" : "qing", - "黥" : "qing", - "謦" : "qing", - "苘" : "qing", - "磬" : "qing", - "ç®" : "qing", - "ç¶®" : "qi", - "茕" : "qiong", - "é‚›" : "dao", - "蛩" : "tun", - "ç­‡" : "qiong", - "è·«" : "qiong", - "銎" : "qiong", - "楸" : "qiu", - "ä¿…" : "qiu", - "赇" : "qiu", - "逑" : "qiu", - "犰" : "qiu", - "è¤" : "qiu", - "å·¯" : "qiu", - "é¼½" : "qiu", - "ç³—" : "qiu", - "区" : "qu", - "祛" : "qu", - "麴" : "qu", - "诎" : "qu", - "è¡¢" : "qu", - "癯" : "qu", - "劬" : "qu", - "ç’©" : "qu", - "æ°" : "qu", - "æœ" : "qu", - "磲" : "qu", - "鸲" : "qu", - "è•–" : "qu", - "è ¼" : "qu", - "蘧" : "qu", - "阒" : "qu", - "颧" : "quan", - "èƒ" : "quan", - "铨" : "quan", - "è¾" : "quan", - "ç­Œ" : "quan", - "ç»»" : "quan", - "畎" : "quan", - "阕" : "que", - "æ‚«" : "que", - "髯" : "ran", - "禳" : "rang", - "ç©°" : "rang", - "仞" : "ren", - "妊" : "ren", - "轫" : "ren", - "衽" : "ren", - "狨" : "rong", - "肜" : "rong", - "è¾" : "rong", - "åš…" : "ru", - "æ¿¡" : "ru", - "è–·" : "ru", - "襦" : "ru", - "颥" : "ru", - "æ´³" : "ru", - "溽" : "ru", - "è“" : "ru", - "朊" : "ruan", - "蕤" : "rui", - "枘" : "rui", - "箬" : "ruo", - "挲" : "suo", - "脎" : "sa", - "塞" : "sai", - "鳃" : "sai", - "å™»" : "sai", - "毵" : "san", - "馓" : "san", - "ç³" : "san", - "霰" : "xian", - "磉" : "sang", - "颡" : "sang", - "缫" : "sao", - "鳋" : "sao", - "埽" : "sao", - "瘙" : "sao", - "色" : "se", - "æ‰" : "shan", - "鲨" : "sha", - "ç—§" : "sha", - "裟" : "sha", - "é“©" : "sha", - "唼" : "sha", - "é…¾" : "shai", - "æ …" : "zha", - "è·š" : "shan", - "芟" : "shan", - "åŸ" : "shan", - "é’" : "shan", - "舢" : "shan", - "剡" : "yan", - "鄯" : "shan", - "ç–" : "shan", - "蟮" : "shan", - "墒" : "shang", - "åž§" : "shang", - "ç»±" : "shang", - "蛸" : "shao", - "ç­²" : "shao", - "è‹•" : "tiao", - "å¬" : "zhao", - "劭" : "shao", - "猞" : "she", - "畲" : "she", - "折" : "zhe", - "æ» " : "she", - "æ­™" : "xi", - "åŽ" : "she", - "莘" : "shen", - "娠" : "shen", - "诜" : "shen", - "什" : "shen", - "è°‚" : "shen", - "渖" : "shen", - "矧" : "shen", - "胂" : "shen", - "椹" : "shen", - "çœ" : "sheng", - "眚" : "sheng", - "嵊" : "sheng", - "嘘" : "xu", - "è“" : "shi", - "鲺" : "shi", - "识" : "shi", - "拾" : "shi", - "埘" : "shi", - "莳" : "shi", - "ç‚»" : "shi", - "é²¥" : "shi", - "豕" : "shi", - "ä¼¼" : "si", - "噬" : "shi", - "è´³" : "shi", - "铈" : "shi", - "èž«" : "shi", - "ç­®" : "shi", - "æ®–" : "zhi", - "熟" : "shu", - "è‰" : "shou", - "è½" : "shu", - "æ‘…" : "shu", - "纾" : "shu", - "毹" : "shu", - "ç–‹" : "shu", - "æ•°" : "shu", - "属" : "shu", - "术" : "shu", - "æ¾" : "shu", - "æ²­" : "shu", - "丨" : "shu", - "è…§" : "shu", - "说" : "shuo", - "å¦" : "shuo", - "è’´" : "shuo", - "æ§Š" : "shuo", - "æ " : "shuo", - "鸶" : "si", - "澌" : "si", - "缌" : "si", - "é”¶" : "si", - "厶" : "si", - "蛳" : "si", - "é©·" : "si", - "æ³—" : "si", - "汜" : "si", - "å…•" : "si", - "å§’" : "si", - "耜" : "si", - "笥" : "si", - "忪" : "song", - "æ·ž" : "song", - "å´§" : "song", - "凇" : "song", - "è˜" : "song", - "竦" : "song", - "溲" : "sou", - "飕" : "sou", - "蜩" : "tiao", - "èœ" : "tie", - "æ±€" : "ting", - "è‘¶" : "ting", - "莛" : "ting", - "梃" : "ting", - "佟" : "tong", - "é…®" : "tong", - "ä»" : "tong", - "茼" : "tong", - "ç ¼" : "tong", - "é’­" : "dou", - "é…´" : "tu", - "é’" : "tu", - "å " : "tu", - "抟" : "tuan", - "å¿’" : "te", - "ç…º" : "tui", - "æš¾" : "tun", - "æ°½" : "tun", - "乇" : "tuo", - "ç £" : "tuo", - "æ²±" : "tuo", - "è·Ž" : "tuo", - "å¨" : "tuo", - "æ©" : "tuo", - "é…¡" : "tuo", - "é¼" : "tuo", - "庹" : "tuo", - "æ‹“" : "tuo", - "æŸ" : "tuo", - "箨" : "tuo", - "è…½" : "wa", - "å´´" : "wai", - "芄" : "wan", - "畹" : "wan", - "ç¬" : "wan", - "脘" : "wan", - "è€" : "wan", - "å°¢" : "you", - "辋" : "wang", - "é­" : "wang", - "逶" : "wei", - "葳" : "wei", - "隈" : "wei", - "惟" : "wei", - "å¸" : "wei", - "圩" : "wei", - "å›—" : "wei", - "æ½" : "wei", - "嵬" : "wei", - "沩" : "wei", - "æ¶ " : "wei", - "å°¾" : "wei", - "玮" : "wei", - "炜" : "wei", - "韪" : "wei", - "æ´§" : "wei", - "艉" : "wei", - "é²”" : "wei", - "é—" : "yi", - "å°‰" : "wei", - "軎" : "wei", - "ç’º" : "wen", - "阌" : "wen", - "蓊" : "weng", - "蕹" : "weng", - "渥" : "wo", - "硪" : "wo", - "龌" : "wo", - "圬" : "wu", - "å¾" : "wu", - "浯" : "wu", - "鼯" : "wu", - "牾" : "wu", - "è¿•" : "wu", - "庑" : "wu", - "ç—¦" : "wu", - "芴" : "wu", - "æŒ" : "wu", - "ç„" : "wu", - "阢" : "wu", - "婺" : "wu", - "鋈" : "wu", - "樨" : "xi", - "æ –" : "qi", - "郗" : "xi", - "蹊" : "qi", - "æ·…" : "xi", - "熹" : "xi", - "æµ " : "xi", - "僖" : "xi", - "穸" : "xi", - "èž…" : "xi", - "è¥" : "xi", - "舾" : "xi", - "矽" : "xi", - "粞" : "xi", - "ç¡’" : "xi", - "醯" : "xi", - "欷" : "xi", - "é¼·" : "xi", - "檄" : "xi", - "éš°" : "xi", - "è§‹" : "xi", - "å±£" : "xi", - "葸" : "xi", - "è“°" : "xi", - "é“£" : "xi", - "饩" : "xi", - "阋" : "xi", - "禊" : "xi", - "舄" : "xi", - "狎" : "xia", - "ç¡–" : "xia", - "柙" : "xia", - "æš¹" : "xian", - "莶" : "xian", - "祆" : "xian", - "ç±¼" : "xian", - "è·¹" : "xian", - "鹇" : "xian", - "ç—«" : "xian", - "猃" : "xian", - "燹" : "xian", - "蚬" : "xian", - "ç­…" : "xian", - "冼" : "xian", - "岘" : "xian", - "骧" : "xiang", - "è‘™" : "xiang", - "芗" : "xiang", - "缃" : "xiang", - "庠" : "xiang", - "鲞" : "xiang", - "蟓" : "xiang", - "削" : "xue", - "æžµ" : "xiao", - "绡" : "xiao", - "ç­±" : "xiao", - "邪" : "xie", - "å‹°" : "xie", - "缬" : "xie", - "è¡€" : "xue", - "榭" : "xie", - "瀣" : "xie", - "è–¤" : "xie", - "燮" : "xie", - "躞" : "xie", - "廨" : "xie", - "ç»" : "xie", - "渫" : "xie", - "æ¦" : "xie", - "ç¬" : "xie", - "昕" : "xin", - "å¿»" : "xin", - "囟" : "xin", - "陉" : "jing", - "è¥" : "ying", - "饧" : "tang", - "硎" : "xing", - "è‡" : "xing", - "芎" : "xiong", - "é¦" : "xiu", - "庥" : "xiu", - "鸺" : "xiu", - "è²…" : "xiu", - "髹" : "xiu", - "宿" : "xiu", - "岫" : "xiu", - "溴" : "xiu", - "å" : "xu", - "ç›±" : "xu", - "顼" : "xu", - "糈" : "xu", - "醑" : "xu", - "æ´«" : "xu", - "溆" : "xu", - "è“¿" : "xu", - "è±" : "xuan", - "è°–" : "xuan", - "儇" : "xuan", - "ç…Š" : "xuan", - "ç—ƒ" : "xuan", - "铉" : "xuan", - "泫" : "xuan", - "碹" : "xuan", - "楦" : "xuan", - "镟" : "xuan", - "踅" : "xue", - "æ³¶" : "xue", - "鳕" : "xue", - "埙" : "xun", - "æ››" : "xun", - "窨" : "xun", - "ç¯" : "xun", - "峋" : "xun", - "æ´µ" : "xun", - "æ‚" : "xun", - "æµ”" : "xun", - "鲟" : "xun", - "蕈" : "xun", - "åž­" : "ya", - "岈" : "ya", - "çŠ" : "ya", - "ç—–" : "ya", - "è¿“" : "ya", - "ç ‘" : "ya", - "å’½" : "yan", - "é„¢" : "yan", - "è¸" : "yan", - "å´¦" : "yan", - "é“…" : "qian", - "芫" : "yuan", - "å…–" : "yan", - "ç°" : "yan", - "罨" : "yan", - "厣" : "yan", - "焱" : "yan", - "é…½" : "yan", - "è°³" : "yan", - "éž…" : "yang", - "ç‚€" : "yang", - "蛘" : "yang", - "约" : "yue", - "ç§" : "yao", - "轺" : "yao", - "繇" : "yao", - "é³" : "yao", - "å´¾" : "yao", - "é’¥" : "yao", - "曜" : "yao", - "铘" : "ye", - "烨" : "ye", - "邺" : "ye", - "é¥" : "ye", - "æ™”" : "ye", - "猗" : "yi", - "铱" : "yi", - "欹" : "qi", - "黟" : "yi", - "怡" : "yi", - "沂" : "yi", - "圯" : "yi", - "è‘" : "yi", - "诒" : "yi", - "眙" : "yi", - "å¶·" : "yi", - "é’‡" : "yi", - "舣" : "yi", - "é…" : "yi", - "熠" : "yi", - "弋" : "yi", - "懿" : "yi", - "é•’" : "yi", - "峄" : "yi", - "怿" : "yi", - "æ‚’" : "yi", - "ä½¾" : "yi", - "殪" : "yi", - "挹" : "yi", - "埸" : "yi", - "劓" : "yi", - "镱" : "yi", - "瘗" : "yi", - "ç™”" : "yi", - "翊" : "yi", - "蜴" : "yi", - "æ°¤" : "yin", - "å ™" : "yin", - "æ´‡" : "yin", - "鄞" : "yin", - "狺" : "yin", - "夤" : "yin", - "圻" : "qi", - "饮" : "yin", - "å²" : "yin", - "胤" : "yin", - "茚" : "yin", - "ç’Ž" : "ying", - "æ’„" : "ying", - "嬴" : "ying", - "滢" : "ying", - "潆" : "ying", - "è“¥" : "ying", - "瘿" : "ying", - "郢" : "ying", - "媵" : "ying", - "é‚•" : "yong", - "é•›" : "yong", - "墉" : "yong", - "æ…µ" : "yong", - "ç—ˆ" : "yong", - "é³™" : "yong", - "饔" : "yong", - "å–" : "yong", - "ä¿‘" : "yong", - "莸" : "you", - "猷" : "you", - "ç–£" : "you", - "èš°" : "you", - "è£" : "you", - "莜" : "you", - "牖" : "you", - "é“•" : "you", - "å£" : "you", - "宥" : "you", - "侑" : "you", - "èš´" : "you", - "釉" : "you", - "馀" : "yu", - "è¸" : "yu", - "禺" : "yu", - "妤" : "yu", - "欤" : "yu", - "è§Ž" : "yu", - "窬" : "yu", - "è“" : "yu", - "åµ›" : "yu", - "èˆ" : "yu", - "雩" : "yu", - "龉" : "yu", - "ä¼›" : "yu", - "圉" : "yu", - "庾" : "yu", - "ç˜" : "yu", - "窳" : "yu", - "ä¿£" : "yu", - "毓" : "yu", - "峪" : "yu", - "ç…œ" : "yu", - "燠" : "yu", - "è“£" : "yu", - "饫" : "yu", - "阈" : "yu", - "鬻" : "yu", - "è¿" : "yu", - "é’°" : "yu", - "鹆" : "yu", - "蜮" : "yu", - "眢" : "yuan", - "箢" : "yuan", - "员" : "yuan", - "æ²…" : "yuan", - "橼" : "yuan", - "塬" : "yuan", - "爰" : "yuan", - "螈" : "yuan", - "鼋" : "yuan", - "掾" : "yuan", - "垸" : "yuan", - "ç‘—" : "yuan", - "刖" : "yue", - "瀹" : "yue", - "樾" : "yue", - "é¾ " : "yue", - "æ°²" : "yun", - "昀" : "yun", - "郧" : "yun", - "ç‹" : "yun", - "郓" : "yun", - "韫" : "yun", - "æ½" : "yun", - "扎" : "zha", - "æ‹¶" : "za", - "å’‹" : "za", - "ä»”" : "zai", - "æ˜" : "zan", - "ç“’" : "zan", - "è—" : "zang", - "奘" : "zang", - "唣" : "zao", - "æ‹©" : "ze", - "è¿®" : "ze", - "赜" : "ze", - "笮" : "ze", - "箦" : "ze", - "舴" : "ze", - "昃" : "ze", - "缯" : "zeng", - "ç½¾" : "zeng", - "齄" : "zha", - "柞" : "zha", - "ç—„" : "zha", - "瘵" : "zhai", - "æ—ƒ" : "zhan", - "ç’‹" : "zhang", - "æ¼³" : "zhang", - "嫜" : "zhang", - "é„£" : "zhang", - "仉" : "zhang", - "å¹›" : "zhang", - "ç€" : "zhe", - "å•" : "zhou", - "爪" : "zhao", - "棹" : "zhao", - "笊" : "zhao", - "摺" : "zhe", - "磔" : "zhe", - "è¿™" : "zhe", - "柘" : "zhe", - "æ¡¢" : "zhen", - "è“" : "zhen", - "祯" : "zhen", - "浈" : "zhen", - "ç•›" : "zhen", - "轸" : "zhen", - "稹" : "zhen", - "圳" : "zhen", - "å¾µ" : "zhi", - "é’²" : "zheng", - "å®" : "zhi", - "èƒ" : "zhi", - "祗" : "zhi", - "æ‘­" : "zhi", - "çµ·" : "zhi", - "埴" : "zhi", - "è½µ" : "zhi", - "黹" : "zhi", - "帙" : "zhi", - "è½¾" : "zhi", - "è´½" : "zhi", - "陟" : "zhi", - "å¿®" : "zhi", - "彘" : "zhi", - "膣" : "zhi", - "鸷" : "zhi", - "骘" : "zhi", - "踬" : "zhi", - "郅" : "zhi", - "觯" : "zhi", - "锺" : "zhong", - "èž½" : "zhong", - "舯" : "zhong", - "碡" : "zhou", - "绉" : "zhou", - "è®" : "zhou", - "ç±€" : "zhou", - "é…Ž" : "zhou", - "æ´™" : "zhu", - "邾" : "zhu", - "æ½´" : "zhu", - "æ§ " : "zhu", - "æ©¥" : "zhu", - "舳" : "zhu", - "瘃" : "zhu", - "渚" : "zhu", - "麈" : "zhu", - "箸" : "zhu", - "ç‚·" : "zhu", - "æ¼" : "zhu", - "ç¿¥" : "zhu", - "ç–°" : "zhu", - "颛" : "zhuan", - "赚" : "zhuan", - "馔" : "zhuan", - "僮" : "tong", - "ç¼’" : "zhui", - "è‚«" : "zhun", - "窀" : "zhun", - "æ¶¿" : "zhuo", - "倬" : "zhuo", - "濯" : "zhuo", - "诼" : "zhuo", - "禚" : "zhuo", - "浞" : "zhuo", - "è°˜" : "zi", - "æ·„" : "zi", - "é«­" : "zi", - "å­³" : "zi", - "ç²¢" : "zi", - "è¶‘" : "zi", - "è§œ" : "zui", - "ç¼" : "zi", - "é²»" : "zi", - "嵫" : "zi", - "笫" : "zi", - "耔" : "zi", - "è…™" : "zong", - "å¬" : "zong", - "诹" : "zou", - "陬" : "zou", - "鄹" : "zou", - "驺" : "zou", - "é²°" : "zou", - "è¹" : "ju", - "镞" : "zu", - "躜" : "zuan", - "ç¼µ" : "zuan", - "蕞" : "zui", - "æ’™" : "zun", - "胙" : "zuo", - "阿" : "a", - "阿" : "e", - "æŸ" : "bai", - "蚌" : "beng", - "è–„" : "bo", - "å ¡" : "bao", - "å‘—" : "bei", - "è´²" : "ben", - "臂" : "bi", - "瘪" : "bie", - "æ§Ÿ" : "bin", - "剥" : "bo", - "伯" : "bo", - "åœ" : "bu", - "å‚" : "can", - "åš“" : "ca", - "å·®" : "cha", - "å­±" : "chan", - "ç»°" : "chuo", - "ç§°" : "cheng", - "澄" : "cheng", - "大" : "da", - "å•" : "dan", - "å¾—" : "de", - "çš„" : "de", - "地" : "di", - "都" : "dou", - "读" : "du", - "度" : "du", - "è¹²" : "dun", - "ä½›" : "fo", - "ä¼½" : "jia", - "ç›–" : "gai", - "é•" : "hao", - "ç»™" : "gei", - "呱" : "gua", - "æ°¿" : "jiu", - "æ¡§" : "hui", - "掴" : "guo", - "蛤" : "ha", - "还" : "hai", - "å’Œ" : "he", - "æ ¸" : "he", - "哼" : "heng", - "鹄" : "hu", - "划" : "hua", - "夹" : "jia", - "è´¾" : "jia", - "芥" : "jie", - "劲" : "jin", - "è†" : "jing", - "颈" : "jing", - "貉" : "he", - "å–" : "a", - "啊" : "a", - "锕" : "a", - "哎" : "ai", - "å“€" : "ai", - "埃" : "ai", - "唉" : "ai", - "欸" : "ai", - "锿" : "ai", - "挨" : "ai", - "çš‘" : "ai", - "癌" : "ai", - "æ¯" : "ai", - "矮" : "ai", - "蔼" : "ai", - "霭" : "ai", - "ç ¹" : "ai", - "爱" : "ai", - "隘" : "ai", - "ç¢" : "ai", - "å—³" : "ai", - "å«’" : "ai", - "å†" : "ai", - "æš§" : "ai", - "安" : "an", - "桉" : "an", - "æ°¨" : "an", - "庵" : "an", - "è°™" : "an", - "鹌" : "an", - "éž" : "an", - "俺" : "an", - "埯" : "an", - "唵" : "an", - "铵" : "an", - "æž" : "an", - "岸" : "an", - "按" : "an", - "胺" : "an", - "案" : "an", - "æš—" : "an", - "黯" : "an", - "玵" : "an", - "è‚®" : "ang", - "昂" : "ang", - "盎" : "ang", - "凹" : "ao", - "æ•–" : "ao", - "é¨" : "ao", - "å—·" : "ao", - "ç’" : "ao", - "熬" : "ao", - "è±" : "ao", - "螯" : "ao", - "翱" : "ao", - "謷" : "ao", - "é–" : "ao", - "袄" : "ao", - "媪" : "ao", - "å³" : "ao", - "傲" : "ao", - "奥" : "ao", - "骜" : "ao", - "æ¾³" : "ao", - "懊" : "ao", - "å…«" : "ba", - "å·´" : "ba", - "å­" : "ba", - "芭" : "ba", - "ç–¤" : "ba", - "æŒ" : "ba", - "笆" : "ba", - "粑" : "ba", - "æ‹”" : "ba", - "茇" : "ba", - "妭" : "ba", - "è" : "ba", - "è·‹" : "ba", - "é­ƒ" : "ba", - "把" : "ba", - "é¶" : "ba", - "å" : "ba", - "爸" : "ba", - "ç½¢" : "ba", - "霸" : "ba", - "çž" : "ba", - "å§" : "ba", - "é’¯" : "ba", - "掰" : "bai", - "白" : "bai", - "百" : "bai", - "ä½°" : "bai", - "æ­" : "bai", - "摆" : "bai", - "è´¥" : "bai", - "拜" : "bai", - "稗" : "bai", - "扳" : "ban", - "攽" : "ban", - "ç­" : "ban", - "般" : "ban", - "é¢" : "ban", - "æ–‘" : "ban", - "æ¬" : "ban", - "瘢" : "ban", - "阪" : "ban", - "å‚" : "ban", - "æ¿" : "ban", - "版" : "ban", - "é’£" : "ban", - "舨" : "ban", - "办" : "ban", - "åŠ" : "ban", - "ä¼´" : "ban", - "拌" : "ban", - "绊" : "ban", - "ç“£" : "ban", - "扮" : "ban", - "邦" : "bang", - "帮" : "bang", - "梆" : "bang", - "浜" : "bang", - "绑" : "bang", - "榜" : "bang", - "棒" : "bang", - "å‚" : "bang", - "è°¤" : "bang", - "è’¡" : "bang", - "é•‘" : "bang", - "包" : "bao", - "苞" : "bao", - "å­¢" : "bao", - "胞" : "bao", - "é¾…" : "bao", - "ç…²" : "bao", - "褒" : "bao", - "雹" : "bao", - "饱" : "bao", - "å®" : "bao", - "ä¿" : "bao", - "鸨" : "bao", - "葆" : "bao", - "褓" : "bao", - "报" : "bao", - "抱" : "bao", - "è¶µ" : "bao", - "è±¹" : "bao", - "é²" : "bao", - "æš´" : "bao", - "爆" : "bao", - "æž¹" : "bao", - "æ¯" : "bei", - "å‘" : "bei", - "悲" : "bei", - "碑" : "bei", - "北" : "bei", - "è´" : "bei", - "狈" : "bei", - "备" : "bei", - "背" : "bei", - "é’¡" : "bei", - "å€" : "bei", - "æ‚–" : "bei", - "被" : "bei", - "辈" : "bei", - "惫" : "bei", - "ç„™" : "bei", - "è““" : "bei", - "碚" : "bei", - "褙" : "bei", - "别" : "bei", - "蹩" : "bei", - "椑" : "bei", - "奔" : "ben", - "倴" : "ben", - "犇" : "ben", - "é”›" : "ben", - "本" : "ben", - "苯" : "ben", - "åŒ" : "ben", - "笨" : "ben", - "å´©" : "beng", - "ç»·" : "beng", - "嘣" : "beng", - "ç”­" : "beng", - "æ³µ" : "beng", - "迸" : "beng", - "镚" : "beng", - "蹦" : "beng", - "屄" : "bi", - "逼" : "bi", - "è¸" : "bi", - "é¼»" : "bi", - "匕" : "bi", - "比" : "bi", - "å¡" : "bi", - "沘" : "bi", - "妣" : "bi", - "å½¼" : "bi", - "ç§•" : "bi", - "笔" : "bi", - "俾" : "bi", - "é„™" : "bi", - "å¸" : "bi", - "å¿…" : "bi", - "毕" : "bi", - "é—­" : "bi", - "庇" : "bi", - "è¯" : "bi", - "苾" : "bi", - "èœ" : "bi", - "毖" : "bi", - "å“”" : "bi", - "é™›" : "bi", - "毙" : "bi", - "é“‹" : "bi", - "ç‹´" : "bi", - "è†" : "bi", - "æ¢" : "bi", - "æ•" : "bi", - "å©¢" : "bi", - "赑" : "bi", - "愎" : "bi", - "å¼¼" : "bi", - "è“–" : "bi", - "ç—¹" : "bi", - "æ»—" : "bi", - "碧" : "bi", - "蔽" : "bi", - "é¦" : "bi", - "弊" : "bi", - "è–œ" : "bi", - "篦" : "bi", - "å£" : "bi", - "é¿" : "bi", - "é«€" : "bi", - "ç’§" : "bi", - "芘" : "bi", - "è¾¹" : "bian", - "ç ­" : "bian", - "è¹" : "bian", - "ç¼–" : "bian", - "ç…¸" : "bian", - "è™" : "bian", - "鳊" : "bian", - "éž­" : "bian", - "è´¬" : "bian", - "匾" : "bian", - "褊" : "bian", - "è—Š" : "bian", - "åž" : "bian", - "抃" : "bian", - "è‹„" : "bian", - "æ±´" : "bian", - "å¿­" : "bian", - "å˜" : "bian", - "é" : "bian", - "辨" : "bian", - "辩" : "bian", - "辫" : "bian", - "æ ‡" : "biao", - "骉" : "biao", - "彪" : "biao", - "摽" : "biao", - "膘" : "biao", - "飙" : "biao", - "é•–" : "biao", - "瀌" : "biao", - "镳" : "biao", - "表" : "biao", - "婊" : "biao", - "裱" : "biao", - "é³”" : "biao", - "憋" : "bie", - "é³–" : "bie", - "宾" : "bin", - "彬" : "bin", - "å‚§" : "bin", - "滨" : "bin", - "缤" : "bin", - "æ¿’" : "bin", - "摈" : "bin", - "殡" : "bin", - "髌" : "bin", - "鬓" : "bin", - "冰" : "bing", - "å…µ" : "bing", - "丙" : "bing", - "é‚´" : "bing", - "秉" : "bing", - "柄" : "bing", - "饼" : "bing", - "炳" : "bing", - "禀" : "bing", - "å¹¶" : "bing", - "ç—…" : "bing", - "æ‘’" : "bing", - "拨" : "bo", - "æ³¢" : "bo", - "玻" : "bo", - "é’µ" : "bo", - "饽" : "bo", - "袯" : "bo", - "è " : "bo", - "æ’­" : "bo", - "驳" : "bo", - "帛" : "bo", - "勃" : "bo", - "é’¹" : "bo", - "é“‚" : "bo", - "亳" : "bo", - "舶" : "bo", - "è„–" : "bo", - "åš" : "bo", - "é¹" : "bo", - "渤" : "bo", - "æ" : "bo", - "馎" : "bo", - "ç®”" : "bo", - "膊" : "bo", - "踣" : "bo", - "馞" : "bo", - "礴" : "bo", - "è·›" : "bo", - "檗" : "bo", - "擘" : "bo", - "ç°¸" : "bo", - "啵" : "bo", - "蕃" : "bo", - "哱" : "bo", - "åŸ" : "bu", - "è¡¥" : "bu", - "æ•" : "bu", - "哺" : "bu", - "ä¸" : "bu", - "布" : "bu", - "æ­¥" : "bu", - "怖" : "bu", - "é’š" : "bu", - "部" : "bu", - "埠" : "bu", - "ç°¿" : "bu", - "擦" : "ca", - "猜" : "cai", - "æ‰" : "cai", - "æ" : "cai", - "è´¢" : "cai", - "è£" : "cai", - "采" : "cai", - "彩" : "cai", - "ç¬" : "cai", - "踩" : "cai", - "èœ" : "cai", - "蔡" : "cai", - "é¤" : "can", - "残" : "can", - "èš•" : "can", - "惭" : "can", - "惨" : "can", - "黪" : "can", - "ç¿" : "can", - "ç²²" : "can", - "ç’¨" : "can", - "穇" : "can", - "仓" : "cang", - "ä¼§" : "cang", - "è‹" : "cang", - "æ²§" : "cang", - "舱" : "cang", - "æ“" : "cao", - "ç³™" : "cao", - "曹" : "cao", - "嘈" : "cao", - "漕" : "cao", - "æ§½" : "cao", - "螬" : "cao", - "è‰" : "cao", - "册" : "ce", - "厕" : "ce", - "测" : "ce", - "æ»" : "ce", - "ç­–" : "ce", - "岑" : "cen", - "æ¶”" : "cen", - "噌" : "ceng", - "层" : "ceng", - "å¶’" : "ceng", - "è¹­" : "ceng", - "å‰" : "cha", - "æˆ" : "cha", - "æ’" : "cha", - "馇" : "cha", - "锸" : "cha", - "茬" : "cha", - "茶" : "cha", - "æ½" : "cha", - "åµ–" : "cha", - "猹" : "cha", - "æ§Ž" : "cha", - "碴" : "cha", - "察" : "cha", - "檫" : "cha", - "è¡©" : "cha", - "镲" : "cha", - "汊" : "cha", - "å²”" : "cha", - "侘" : "cha", - "诧" : "cha", - "å§¹" : "cha", - "è¹…" : "cha", - "拆" : "chai", - "é’—" : "chai", - "侪" : "chai", - "柴" : "chai", - "豺" : "chai", - "虿" : "chai", - "èŒ" : "chai", - "觇" : "chan", - "掺" : "chan", - "æ€" : "chan", - "襜" : "chan", - "è°—" : "chan", - "婵" : "chan", - "馋" : "chan", - "ç¼ " : "chan", - "è‰" : "chan", - "潺" : "chan", - "蟾" : "chan", - "å·‰" : "chan", - "产" : "chan", - "æµ" : "chan", - "è°„" : "chan", - "铲" : "chan", - "é˜" : "chan", - "è’‡" : "chan", - "骣" : "chan", - "å†" : "chan", - "å¿" : "chan", - "颤" : "chan", - "ç¾¼" : "chan", - "韂" : "chan", - "ä¼¥" : "chang", - "昌" : "chang", - "è–" : "chang", - "猖" : "chang", - "娼" : "chang", - "è‚ " : "chang", - "å°" : "chang", - "常" : "chang", - "å¿" : "chang", - "徜" : "chang", - "嫦" : "chang", - "厂" : "chang", - "场" : "chang", - "昶" : "chang", - "æƒ" : "chang", - "敞" : "chang", - "怅" : "chang", - "ç•…" : "chang", - "倡" : "chang", - "å”±" : "chang", - "裳" : "chang", - "抄" : "chao", - "怊" : "chao", - "é’ž" : "chao", - "è¶…" : "chao", - "æ™" : "chao", - "å·¢" : "chao", - "嘲" : "chao", - "æ½®" : "chao", - "åµ" : "chao", - "ç‚’" : "chao", - "耖" : "chao", - "ç —" : "che", - "扯" : "che", - "å½»" : "che", - "å¼" : "che", - "掣" : "che", - "æ’¤" : "che", - "澈" : "che", - "çž®" : "che", - "抻" : "chen", - "郴" : "chen", - "å—”" : "chen", - "çž‹" : "chen", - "臣" : "chen", - "å°˜" : "chen", - "è¾°" : "chen", - "沉" : "chen", - "忱" : "chen", - "陈" : "chen", - "宸" : "chen", - "晨" : "chen", - "è°Œ" : "chen", - "碜" : "chen", - "衬" : "chen", - "é¾€" : "chen", - "è¶" : "chen", - "柽" : "cheng", - "ç¤" : "cheng", - "æ’‘" : "cheng", - "çž " : "cheng", - "æˆ" : "cheng", - "丞" : "cheng", - "呈" : "cheng", - "诚" : "cheng", - "承" : "cheng", - "城" : "cheng", - "é“–" : "cheng", - "程" : "cheng", - "惩" : "cheng", - "é…²" : "cheng", - "æ©™" : "cheng", - "逞" : "cheng", - "骋" : "cheng", - "秤" : "cheng", - "é“›" : "cheng", - "樘" : "cheng", - "åƒ" : "chi", - "å“§" : "chi", - "鸱" : "chi", - "èš©" : "chi", - "笞" : "chi", - "å—¤" : "chi", - "ç—´" : "chi", - "媸" : "chi", - "é­‘" : "chi", - "æ± " : "chi", - "å¼›" : "chi", - "é©°" : "chi", - "迟" : "chi", - "茌" : "chi", - "æŒ" : "chi", - "踟" : "chi", - "å°º" : "chi", - "齿" : "chi", - "侈" : "chi", - "耻" : "chi", - "豉" : "chi", - "褫" : "chi", - "å½³" : "chi", - "å±" : "chi", - "æ–¥" : "chi", - "赤" : "chi", - "饬" : "chi", - "炽" : "chi", - "ç¿…" : "chi", - "æ••" : "chi", - "å•»" : "chi", - "傺" : "chi", - "匙" : "chi", - "冲" : "chong", - "å……" : "chong", - "å¿¡" : "chong", - "茺" : "chong", - "舂" : "chong", - "憧" : "chong", - "艟" : "chong", - "虫" : "chong", - "å´‡" : "chong", - "å® " : "chong", - "铳" : "chong", - "抽" : "chou", - "瘳" : "chou", - "惆" : "chou", - "绸" : "chou", - "ç•´" : "chou", - "é…¬" : "chou", - "稠" : "chou", - "æ„" : "chou", - "ç­¹" : "chou", - "踌" : "chou", - "丑" : "chou", - "çž…" : "chou", - "出" : "chu", - "åˆ" : "chu", - "樗" : "chu", - "åˆ" : "chu", - "除" : "chu", - "厨" : "chu", - "锄" : "chu", - "æ»" : "chu", - "èœ" : "chu", - "é›" : "chu", - "橱" : "chu", - "躇" : "chu", - "è¹°" : "chu", - "æµ" : "chu", - "ç¡€" : "chu", - "储" : "chu", - "楚" : "chu", - "褚" : "chu", - "äº" : "chu", - "处" : "chu", - "怵" : "chu", - "绌" : "chu", - "æ" : "chu", - "触" : "chu", - "憷" : "chu", - "黜" : "chu", - "矗" : "chu", - "æ£" : "chuai", - "æ‹" : "chuai", - "膗" : "chuai", - "踹" : "chuai", - "å·" : "chuan", - "æ°š" : "chuan", - "ç©¿" : "chuan", - "舡" : "chuan", - "船" : "chuan", - "é„" : "chuan", - "椽" : "chuan", - "舛" : "chuan", - "å–˜" : "chuan", - "串" : "chuan", - "é’" : "chuan", - "ç–®" : "chuang", - "窗" : "chuang", - "床" : "chuang", - "é—¯" : "chuang", - "创" : "chuang", - "怆" : "chuang", - "å¹" : "chui", - "炊" : "chui", - "åž‚" : "chui", - "陲" : "chui", - "æ¶" : "chui", - "棰" : "chui", - "æ§Œ" : "chui", - "锤" : "chui", - "春" : "chun", - "瑃" : "chun", - "椿" : "chun", - "è½" : "chun", - "纯" : "chun", - "莼" : "chun", - "唇" : "chun", - "æ·³" : "chun", - "鹑" : "chun", - "醇" : "chun", - "è ¢" : "chun", - "踔" : "chuo", - "戳" : "chuo", - "啜" : "chuo", - "惙" : "chuo", - "è¾" : "chuo", - "龊" : "chuo", - "æ­ " : "chuo", - "ç–µ" : "ci", - "è¯" : "ci", - "茈" : "ci", - "茨" : "ci", - "祠" : "ci", - "ç“·" : "ci", - "辞" : "ci", - "æ…ˆ" : "ci", - "ç£" : "ci", - "雌" : "ci", - "鹚" : "ci", - "ç³" : "ci", - "æ­¤" : "ci", - "泚" : "ci", - "è·" : "ci", - "次" : "ci", - "刺" : "ci", - "ä½½" : "ci", - "èµ" : "ci", - "匆" : "cong", - "è‹" : "cong", - "å›±" : "cong", - "æžž" : "cong", - "葱" : "cong", - "骢" : "cong", - "èª" : "cong", - "从" : "cong", - "丛" : "cong", - "æ·™" : "cong", - "æ‚°" : "cong", - "ç®" : "cong", - "凑" : "cou", - "è¾" : "cou", - "è… " : "cou", - "ç²—" : "cu", - "徂" : "cu", - "殂" : "cu", - "促" : "cu", - "çŒ" : "cu", - "蔟" : "cu", - "醋" : "cu", - "踧" : "cu", - "ç°‡" : "cu", - "è¹™" : "cu", - "è¹´" : "cu", - "汆" : "cuan", - "æ’º" : "cuan", - "é•©" : "cuan", - "蹿" : "cuan", - "窜" : "cuan", - "篡" : "cuan", - "å´”" : "cui", - "催" : "cui", - "æ‘§" : "cui", - "ç’€" : "cui", - "脆" : "cui", - "èƒ" : "cui", - "å•" : "cui", - "æ·¬" : "cui", - "æ‚´" : "cui", - "毳" : "cui", - "ç˜" : "cui", - "ç²¹" : "cui", - "ç¿ " : "cui", - "æ‘" : "cun", - "çš´" : "cun", - "å­˜" : "cun", - "å¿–" : "cun", - "寸" : "cun", - "å‹" : "cun", - "æ“" : "cuo", - "磋" : "cuo", - "蹉" : "cuo", - "嵯" : "cuo", - "矬" : "cuo", - "ç—¤" : "cuo", - "脞" : "cuo", - "挫" : "cuo", - "èŽ" : "cuo", - "åŽ" : "cuo", - "措" : "cuo", - "锉" : "cuo", - "é”™" : "cuo", - "é…‡" : "cuo", - "å’‘" : "da", - "垯" : "da", - "耷" : "da", - "æ­" : "da", - "褡" : "da", - "è¾¾" : "da", - "怛" : "da", - "妲" : "da", - "è™" : "da", - "笪" : "da", - "ç­”" : "da", - "è·¶" : "da", - "é¼" : "da", - "瘩" : "da", - "éž‘" : "da", - "打" : "da", - "呆" : "dai", - "æ­¹" : "dai", - "逮" : "dai", - "å‚£" : "dai", - "代" : "dai", - "å²±" : "dai", - "迨" : "dai", - "玳" : "dai", - "带" : "dai", - "殆" : "dai", - "è´·" : "dai", - "å¾…" : "dai", - "怠" : "dai", - "袋" : "dai", - "å‡" : "dai", - "戴" : "dai", - "é»›" : "dai", - "襶" : "dai", - "å‘”" : "dai", - "丹" : "dan", - "æ‹…" : "dan", - "眈" : "dan", - "耽" : "dan", - "郸" : "dan", - "èƒ" : "dan", - "殚" : "dan", - "瘅" : "dan", - "箪" : "dan", - "å„‹" : "dan", - "胆" : "dan", - "ç–¸" : "dan", - "掸" : "dan", - "亶" : "dan", - "æ—¦" : "dan", - "但" : "dan", - "诞" : "dan", - "è" : "dan", - "å•–" : "dan", - "æ·¡" : "dan", - "惮" : "dan", - "蛋" : "dan", - "æ°®" : "dan", - "赕" : "dan", - "当" : "dang", - "裆" : "dang", - "挡" : "dang", - "æ¡£" : "dang", - "å…š" : "dang", - "è° " : "dang", - "凼" : "dang", - "ç €" : "dang", - "宕" : "dang", - "è¡" : "dang", - "èª" : "dang", - "刀" : "dao", - "忉" : "dao", - "æ°˜" : "dao", - "舠" : "dao", - "导" : "dao", - "å²›" : "dao", - "æ£" : "dao", - "倒" : "dao", - "æ¯" : "dao", - "祷" : "dao", - "蹈" : "dao", - "到" : "dao", - "ç›—" : "dao", - "悼" : "dao", - "é“" : "dao", - "稻" : "dao", - "焘" : "dao", - "é”" : "de", - "嘚" : "de", - "å¾·" : "de", - "扽" : "den", - "ç¯" : "deng", - "ç™»" : "deng", - "å™”" : "deng", - "蹬" : "deng", - "ç­‰" : "deng", - "戥" : "deng", - "é‚“" : "deng", - "僜" : "deng", - "凳" : "deng", - "å¶" : "deng", - "磴" : "deng", - "瞪" : "deng", - "é•«" : "deng", - "低" : "di", - "ç¾" : "di", - "å ¤" : "di", - "嘀" : "di", - "æ»´" : "di", - "ç‹„" : "di", - "迪" : "di", - "ç±´" : "di", - "è»" : "di", - "敌" : "di", - "涤" : "di", - "笛" : "di", - "è§Œ" : "di", - "å«¡" : "di", - "é•" : "di", - "æ°" : "di", - "邸" : "di", - "诋" : "di", - "抵" : "di", - "底" : "di", - "柢" : "di", - "ç ¥" : "di", - "骶" : "di", - "玓" : "di", - "弟" : "di", - "å¸" : "di", - "递" : "di", - "娣" : "di", - "第" : "di", - "è°›" : "di", - "è’‚" : "di", - "棣" : "di", - "ç‡" : "di", - "ç¼”" : "di", - "碲" : "di", - "å—²" : "dia", - "掂" : "dian", - "滇" : "dian", - "颠" : "dian", - "å·…" : "dian", - "癫" : "dian", - "å…¸" : "dian", - "点" : "dian", - "碘" : "dian", - "踮" : "dian", - "电" : "dian", - "甸" : "dian", - "阽" : "dian", - "å«" : "dian", - "店" : "dian", - "玷" : "dian", - "åž«" : "dian", - "é’¿" : "dian", - "æ·€" : "dian", - "惦" : "dian", - "奠" : "dian", - "殿" : "dian", - "é›" : "dian", - "åˆ" : "diao", - "å¼" : "diao", - "汈" : "diao", - "凋" : "diao", - "貂" : "diao", - "碉" : "diao", - "雕" : "diao", - "é²·" : "diao", - "屌" : "diao", - "åŠ" : "diao", - "é’“" : "diao", - "窎" : "diao", - "掉" : "diao", - "é“«" : "diao", - "爹" : "die", - "è·Œ" : "die", - "è¿­" : "die", - "è°" : "die", - "耋" : "die", - "å–‹" : "die", - "牒" : "die", - "å " : "die", - "碟" : "die", - "åµ½" : "die", - "è¶" : "die", - "è¹€" : "die", - "é²½" : "die", - "仃" : "ding", - "å®" : "ding", - "玎" : "ding", - "盯" : "ding", - "町" : "ding", - "耵" : "ding", - "é¡¶" : "ding", - "é…Š" : "ding", - "鼎" : "ding", - "订" : "ding", - "é’‰" : "ding", - "定" : "ding", - "å•¶" : "ding", - "è…š" : "ding", - "碇" : "ding", - "é”­" : "ding", - "丢" : "diu", - "é“¥" : "diu", - "东" : "dong", - "冬" : "dong", - "å’š" : "dong", - "æ°¡" : "dong", - "鸫" : "dong", - "è‘£" : "dong", - "懂" : "dong", - "动" : "dong", - "冻" : "dong", - "ä¾—" : "dong", - "æ ‹" : "dong", - "胨" : "dong", - "æ´ž" : "dong", - "胴" : "dong", - "å…œ" : "dou", - "蔸" : "dou", - "篼" : "dou", - "抖" : "dou", - "陡" : "dou", - "蚪" : "dou", - "æ–—" : "dou", - "豆" : "dou", - "逗" : "dou", - "ç—˜" : "dou", - "窦" : "dou", - "ç£" : "du", - "嘟" : "du", - "毒" : "du", - "独" : "du", - "渎" : "du", - "椟" : "du", - "犊" : "du", - "ç‰" : "du", - "黩" : "du", - "é«‘" : "du", - "厾" : "du", - "笃" : "du", - "å µ" : "du", - "赌" : "du", - "ç¹" : "du", - "æœ" : "du", - "肚" : "du", - "妒" : "du", - "渡" : "du", - "é•€" : "du", - "è ¹" : "du", - "端" : "duan", - "短" : "duan", - "段" : "duan", - "æ–­" : "duan", - "缎" : "duan", - "椴" : "duan", - "é”»" : "duan", - "ç°–" : "duan", - "å †" : "dui", - "队" : "dui", - "对" : "dui", - "å…‘" : "dui", - "怼" : "dui", - "æ†" : "dui", - "å¨" : "dun", - "惇" : "dun", - "敦" : "dun", - "墩" : "dun", - "礅" : "dun", - "盹" : "dun", - "趸" : "dun", - "沌" : "dun", - "ç‚–" : "dun", - "ç ˜" : "dun", - "é’" : "dun", - "盾" : "dun", - "é¡¿" : "dun", - "é" : "dun", - "多" : "duo", - "å’„" : "duo", - "哆" : "duo", - "掇" : "duo", - "裰" : "duo", - "夺" : "duo", - "踱" : "duo", - "朵" : "duo", - "åž›" : "duo", - "哚" : "duo", - "躲" : "duo", - "亸" : "duo", - "å‰" : "duo", - "舵" : "duo", - "å •" : "duo", - "惰" : "duo", - "è·º" : "duo", - "å±™" : "e", - "å©€" : "e", - "讹" : "e", - "å›®" : "e", - "ä¿„" : "e", - "莪" : "e", - "峨" : "e", - "娥" : "e", - "锇" : "e", - "é¹…" : "e", - "蛾" : "e", - "é¢" : "e", - "厄" : "e", - "扼" : "e", - "苊" : "e", - "呃" : "e", - "åž©" : "e", - "饿" : "e", - "é„‚" : "e", - "è°”" : "e", - "è¼" : "e", - "é" : "e", - "æ„•" : "e", - "è…­" : "e", - "颚" : "e", - "噩" : "e", - "鳄" : "e", - "æ©" : "en", - "è’½" : "en", - "æ‘" : "en", - "鞥" : "eng", - "å„¿" : "er", - "而" : "er", - "鸸" : "er", - "å°”" : "er", - "耳" : "er", - "è¿©" : "er", - "饵" : "er", - "æ´±" : "er", - "é“’" : "er", - "二" : "er", - "è´°" : "er", - "å‘" : "fa", - "ä¹" : "fa", - "ä¼" : "fa", - "罚" : "fa", - "åž¡" : "fa", - "阀" : "fa", - "ç­" : "fa", - "法" : "fa", - "ç " : "fa", - "ç" : "fa", - "帆" : "fan", - "幡" : "fan", - "è—©" : "fan", - "ç¿»" : "fan", - "凡" : "fan", - "矾" : "fan", - "é’’" : "fan", - "烦" : "fan", - "樊" : "fan", - "燔" : "fan", - "ç¹" : "fan", - "蹯" : "fan", - "蘩" : "fan", - "å" : "fan", - "è¿”" : "fan", - "犯" : "fan", - "饭" : "fan", - "æ³›" : "fan", - "范" : "fan", - "è´©" : "fan", - "畈" : "fan", - "梵" : "fan", - "æ–¹" : "fang", - "é‚¡" : "fang", - "åŠ" : "fang", - "芳" : "fang", - "æž‹" : "fang", - "é’«" : "fang", - "防" : "fang", - "妨" : "fang", - "肪" : "fang", - "房" : "fang", - "鲂" : "fang", - "仿" : "fang", - "访" : "fang", - "纺" : "fang", - "舫" : "fang", - "放" : "fang", - "飞" : "fei", - "妃" : "fei", - "éž" : "fei", - "è²" : "fei", - "å•¡" : "fei", - "绯" : "fei", - "扉" : "fei", - "è‚¥" : "fei", - "æ·" : "fei", - "è…“" : "fei", - "匪" : "fei", - "诽" : "fei", - "悱" : "fei", - "æ£" : "fei", - "æ–" : "fei", - "榧" : "fei", - "ç¿¡" : "fei", - "篚" : "fei", - "å " : "fei", - "肺" : "fei", - "ç‹’" : "fei", - "废" : "fei", - "沸" : "fei", - "è´¹" : "fei", - "ç—±" : "fei", - "é•„" : "fei", - "分" : "fen", - "芬" : "fen", - "å©" : "fen", - "纷" : "fen", - "æ°›" : "fen", - "é…š" : "fen", - "åŸ" : "fen", - "æ±¾" : "fen", - "棼" : "fen", - "焚" : "fen", - "é¼¢" : "fen", - "粉" : "fen", - "份" : "fen", - "奋" : "fen", - "å¿¿" : "fen", - "å¾" : "fen", - "粪" : "fen", - "愤" : "fen", - "丰" : "feng", - "风" : "feng", - "æ²£" : "feng", - "æž«" : "feng", - "å°" : "feng", - "ç œ" : "feng", - "ç–¯" : "feng", - "å³°" : "feng", - "烽" : "feng", - "è‘‘" : "feng", - "锋" : "feng", - "蜂" : "feng", - "é…†" : "feng", - "冯" : "feng", - "逢" : "feng", - "ç¼" : "feng", - "讽" : "feng", - "唪" : "feng", - "凤" : "feng", - "奉" : "feng", - "俸" : "feng", - "ç¼¶" : "fou", - "夫" : "fu", - "å‘‹" : "fu", - "肤" : "fu", - "麸" : "fu", - "è·—" : "fu", - "稃" : "fu", - "å­µ" : "fu", - "æ•·" : "fu", - "å¼—" : "fu", - "ä¼" : "fu", - "凫" : "fu", - "扶" : "fu", - "芙" : "fu", - "å­š" : "fu", - "æ‹‚" : "fu", - "è‹»" : "fu", - "æœ" : "fu", - "怫" : "fu", - "茯" : "fu", - "æ°Ÿ" : "fu", - "俘" : "fu", - "æµ®" : "fu", - "符" : "fu", - "åŒ" : "fu", - "涪" : "fu", - "艴" : "fu", - "å¹…" : "fu", - "è¾" : "fu", - "蜉" : "fu", - "ç¦" : "fu", - "è " : "fu", - "抚" : "fu", - "甫" : "fu", - "拊" : "fu", - "æ–§" : "fu", - "府" : "fu", - "俯" : "fu", - "釜" : "fu", - "è¾…" : "fu", - "è…‘" : "fu", - "è…" : "fu", - "父" : "fu", - "讣" : "fu", - "付" : "fu", - "è´Ÿ" : "fu", - "妇" : "fu", - "附" : "fu", - "å’" : "fu", - "阜" : "fu", - "驸" : "fu", - "èµ´" : "fu", - "å¤" : "fu", - "副" : "fu", - "赋" : "fu", - "å‚…" : "fu", - "富" : "fu", - "è…¹" : "fu", - "缚" : "fu", - "èµ™" : "fu", - "è®" : "fu", - "覆" : "fu", - "馥" : "fu", - "袱" : "fu", - "æ—®" : "ga", - "嘎" : "ga", - "é’†" : "ga", - "å°œ" : "ga", - "å°•" : "ga", - "å°¬" : "ga", - "该" : "gai", - "åž“" : "gai", - "è„" : "gai", - "èµ…" : "gai", - "改" : "gai", - "ä¸" : "gai", - "é’™" : "gai", - "溉" : "gai", - "概" : "gai", - "甘" : "gan", - "玕" : "gan", - "è‚" : "gan", - "å©" : "gan", - "è‹·" : "gan", - "矸" : "gan", - "æ³”" : "gan", - "柑" : "gan", - "ç«¿" : "gan", - "é…" : "gan", - "ç–³" : "gan", - "å°´" : "gan", - "æ†" : "gan", - "秆" : "gan", - "èµ¶" : "gan", - "æ•¢" : "gan", - "感" : "gan", - "澉" : "gan", - "æ©„" : "gan", - "æ“€" : "gan", - "å¹²" : "gan", - "æ—°" : "gan", - "绀" : "gan", - "æ·¦" : "gan", - "骭" : "gan", - "èµ£" : "gan", - "冈" : "gang", - "冮" : "gang", - "刚" : "gang", - "è‚›" : "gang", - "纲" : "gang", - "é’¢" : "gang", - "缸" : "gang", - "罡" : "gang", - "å²—" : "gang", - "港" : "gang", - "æ " : "gang", - "çš‹" : "gao", - "高" : "gao", - "ç¾”" : "gao", - "ç¾" : "gao", - "è†" : "gao", - "篙" : "gao", - "糕" : "gao", - "æ²" : "gao", - "æž" : "gao", - "æ§" : "gao", - "稿" : "gao", - "告" : "gao", - "郜" : "gao", - "诰" : "gao", - "锆" : "gao", - "戈" : "ge", - "圪" : "ge", - "纥" : "ge", - "ç–™" : "ge", - "å“¥" : "ge", - "胳" : "ge", - "鸽" : "ge", - "袼" : "ge", - "æ" : "ge", - "割" : "ge", - "æ­Œ" : "ge", - "é©" : "ge", - "é˜" : "ge", - "æ ¼" : "ge", - "éš”" : "ge", - "å—" : "ge", - "膈" : "ge", - "骼" : "ge", - "镉" : "ge", - "舸" : "ge", - "è‘›" : "ge", - "个" : "ge", - "å„" : "ge", - "虼" : "ge", - "硌" : "ge", - "铬" : "ge", - "æ ¹" : "gen", - "è·Ÿ" : "gen", - "å“" : "gen", - "亘" : "gen", - "艮" : "gen", - "茛" : "gen", - "庚" : "geng", - "耕" : "geng", - "æµ­" : "geng", - "赓" : "geng", - "ç¾¹" : "geng", - "埂" : "geng", - "耿" : "geng", - "哽" : "geng", - "ç» " : "geng", - "梗" : "geng", - "é² " : "geng", - "æ›´" : "geng", - "å·¥" : "gong", - "弓" : "gong", - "å…¬" : "gong", - "功" : "gong", - "æ”»" : "gong", - "肱" : "gong", - "宫" : "gong", - "æ­" : "gong", - "蚣" : "gong", - "躬" : "gong", - "龚" : "gong", - "塨" : "gong", - "è§¥" : "gong", - "å·©" : "gong", - "汞" : "gong", - "拱" : "gong", - "ç™" : "gong", - "å…±" : "gong", - "è´¡" : "gong", - "ä¾›" : "gong", - "勾" : "gou", - "ä½" : "gou", - "沟" : "gou", - "é’©" : "gou", - "ç¯" : "gou", - "苟" : "gou", - "å²£" : "gou", - "ç‹—" : "gou", - "枸" : "gou", - "æž„" : "gou", - "è´­" : "gou", - "诟" : "gou", - "垢" : "gou", - "够" : "gou", - "å½€" : "gou", - "媾" : "gou", - "è§" : "gou", - "ä¼°" : "gu", - "å’•" : "gu", - "æ²½" : "gu", - "å­¤" : "gu", - "å§‘" : "gu", - "è½±" : "gu", - "鸪" : "gu", - "è°" : "gu", - "è‡" : "gu", - "蛄" : "gu", - "蓇" : "gu", - "辜" : "gu", - "é…¤" : "gu", - "è§š" : "gu", - "毂" : "gu", - "ç®" : "gu", - "å¤" : "gu", - "è°·" : "gu", - "汩" : "gu", - "诂" : "gu", - "è‚¡" : "gu", - "骨" : "gu", - "牯" : "gu", - "é’´" : "gu", - "ç¾–" : "gu", - "蛊" : "gu", - "鼓" : "gu", - "榾" : "gu", - "鹘" : "gu", - "臌" : "gu", - "瀔" : "gu", - "固" : "gu", - "æ•…" : "gu", - "顾" : "gu", - "æ¢" : "gu", - "å´®" : "gu", - "雇" : "gu", - "锢" : "gu", - "ç—¼" : "gu", - "瓜" : "gua", - "刮" : "gua", - "èƒ" : "gua", - "鸹" : "gua", - "å‰" : "gua", - "寡" : "gua", - "å¦" : "gua", - "诖" : "gua", - "挂" : "gua", - "褂" : "gua", - "ä¹–" : "guai", - "æ‹" : "guai", - "怪" : "guai", - "å…³" : "guan", - "è§‚" : "guan", - "官" : "guan", - "倌" : "guan", - "è’„" : "guan", - "棺" : "guan", - "ç˜" : "guan", - "é³" : "guan", - "馆" : "guan", - "管" : "guan", - "è´¯" : "guan", - "冠" : "guan", - "掼" : "guan", - "惯" : "guan", - "祼" : "guan", - "盥" : "guan", - "çŒ" : "guan", - "瓘" : "guan", - "é¹³" : "guan", - "ç½" : "guan", - "ç¯" : "guan", - "å…‰" : "guang", - "å’£" : "guang", - "胱" : "guang", - "广" : "guang", - "犷" : "guang", - "æ¡„" : "guang", - "逛" : "guang", - "å½’" : "gui", - "圭" : "gui", - "龟" : "gui", - "妫" : "gui", - "è§„" : "gui", - "皈" : "gui", - "é—º" : "gui", - "ç¡…" : "gui", - "ç‘°" : "gui", - "鲑" : "gui", - "宄" : "gui", - "轨" : "gui", - "庋" : "gui", - "匦" : "gui", - "诡" : "gui", - "鬼" : "gui", - "å§½" : "gui", - "癸" : "gui", - "æ™·" : "gui", - "ç°‹" : "gui", - "柜" : "gui", - "ç‚…" : "gui", - "刿" : "gui", - "刽" : "gui", - "è´µ" : "gui", - "æ¡‚" : "gui", - "è·ª" : "gui", - "鳜" : "gui", - "è¡®" : "gun", - "绲" : "gun", - "辊" : "gun", - "滚" : "gun", - "磙" : "gun", - "é²§" : "gun", - "æ£" : "gun", - "埚" : "guo", - "郭" : "guo", - "啯" : "guo", - "å´ž" : "guo", - "è’" : "guo", - "é”…" : "guo", - "èˆ" : "guo", - "国" : "guo", - "帼" : "guo", - "虢" : "guo", - "æžœ" : "guo", - "æ¤" : "guo", - "蜾" : "guo", - "裹" : "guo", - "过" : "guo", - "哈" : "ha", - "铪" : "ha", - "å­©" : "hai", - "骸" : "hai", - "胲" : "hai", - "æµ·" : "hai", - "醢" : "hai", - "亥" : "hai", - "骇" : "hai", - "害" : "hai", - "å—" : "hai", - "å—¨" : "hai", - "顸" : "han", - "èš¶" : "han", - "é…£" : "han", - "憨" : "han", - "é¼¾" : "han", - "é‚—" : "han", - "邯" : "han", - "å«" : "han", - "函" : "han", - "æ™—" : "han", - "ç„“" : "han", - "æ¶µ" : "han", - "韩" : "han", - "寒" : "han", - "罕" : "han", - "å–Š" : "han", - "蔊" : "han", - "汉" : "han", - "æ±—" : "han", - "æ—±" : "han", - "æ" : "han", - "æ‚" : "han", - "è¡" : "han", - "焊" : "han", - "æ’–" : "han", - "æ’¼" : "han", - "ç¿°" : "han", - "憾" : "han", - "瀚" : "han", - "夯" : "hang", - "æ­" : "hang", - "ç»—" : "hang", - "航" : "hang", - "沆" : "hang", - "è’¿" : "hao", - "è–…" : "hao", - "嚆" : "hao", - "èš" : "hao", - "毫" : "hao", - "å—¥" : "hao", - "豪" : "hao", - "壕" : "hao", - "嚎" : "hao", - "æ¿ " : "hao", - "好" : "hao", - "éƒ" : "hao", - "å·" : "hao", - "昊" : "hao", - "耗" : "hao", - "浩" : "hao", - "çš“" : "hao", - "滈" : "hao", - "颢" : "hao", - "ç" : "hao", - "诃" : "he", - "呵" : "he", - "å–" : "he", - "å—¬" : "he", - "禾" : "he", - "åˆ" : "he", - "何" : "he", - "劾" : "he", - "æ²³" : "he", - "æ›·" : "he", - "阂" : "he", - "ç›" : "he", - "è·" : "he", - "è" : "he", - "ç›’" : "he", - "涸" : "he", - "颌" : "he", - "阖" : "he", - "è´º" : "he", - "赫" : "he", - "è¤" : "he", - "鹤" : "he", - "壑" : "he", - "黑" : "hei", - "嘿" : "hei", - "ç—•" : "hen", - "很" : "hen", - "ç‹ " : "hen", - "æ¨" : "hen", - "亨" : "heng", - "æ’" : "heng", - "ç©" : "heng", - "横" : "heng", - "è¡¡" : "heng", - "蘅" : "heng", - "啈" : "heng", - "è½°" : "hong", - "訇" : "hong", - "烘" : "hong", - "è–¨" : "hong", - "弘" : "hong", - "红" : "hong", - "é—³" : "hong", - "å®" : "hong", - "è­" : "hong", - "虹" : "hong", - "ç«‘" : "hong", - "æ´ª" : "hong", - "鸿" : "hong", - "å“„" : "hong", - "è®§" : "hong", - "å½" : "hong", - "é½" : "hou", - "侯" : "hou", - "å–‰" : "hou", - "猴" : "hou", - "瘊" : "hou", - "骺" : "hou", - "篌" : "hou", - "糇" : "hou", - "å¼" : "hou", - "åŽ" : "hou", - "郈" : "hou", - "厚" : "hou", - "åž•" : "hou", - "逅" : "hou", - "候" : "hou", - "å  " : "hou", - "鲎" : "hou", - "乎" : "hu", - "呼" : "hu", - "忽" : "hu", - "è½·" : "hu", - "烀" : "hu", - "惚" : "hu", - "滹" : "hu", - "囫" : "hu", - "ç‹" : "hu", - "å¼§" : "hu", - "胡" : "hu", - "壶" : "hu", - "æ–›" : "hu", - "è‘«" : "hu", - "猢" : "hu", - "æ¹–" : "hu", - "瑚" : "hu", - "鹕" : "hu", - "æ§²" : "hu", - "è´" : "hu", - "糊" : "hu", - "é†" : "hu", - "è§³" : "hu", - "虎" : "hu", - "唬" : "hu", - "ç¥" : "hu", - "互" : "hu", - "户" : "hu", - "冱" : "hu", - "护" : "hu", - "沪" : "hu", - "æž‘" : "hu", - "怙" : "hu", - "戽" : "hu", - "ç¬" : "hu", - "ç“ " : "hu", - "扈" : "hu", - "é¹±" : "hu", - "花" : "hua", - "ç ‰" : "hua", - "åŽ" : "hua", - "å“—" : "hua", - "骅" : "hua", - "é“§" : "hua", - "猾" : "hua", - "滑" : "hua", - "化" : "hua", - "ç”»" : "hua", - "è¯" : "hua", - "桦" : "hua", - "婳" : "hua", - "è§Ÿ" : "hua", - "怀" : "huai", - "徊" : "huai", - "æ·®" : "huai", - "æ§" : "huai", - "è¸" : "huai", - "耲" : "huai", - "å" : "huai", - "欢" : "huan", - "ç¾" : "huan", - "环" : "huan", - "æ´¹" : "huan", - "æ¡“" : "huan", - "è‘" : "huan", - "寰" : "huan", - "ç¼³" : "huan", - "缓" : "huan", - "å¹»" : "huan", - "奂" : "huan", - "宦" : "huan", - "æ¢" : "huan", - "唤" : "huan", - "æ¶£" : "huan", - "æµ£" : "huan", - "æ‚£" : "huan", - "ç„•" : "huan", - "ç—ª" : "huan", - "è±¢" : "huan", - "æ¼¶" : "huan", - "鲩" : "huan", - "æ“" : "huan", - "è‚“" : "huang", - "è’" : "huang", - "塃" : "huang", - "æ…Œ" : "huang", - "皇" : "huang", - "黄" : "huang", - "凰" : "huang", - "éš" : "huang", - "å–¤" : "huang", - "é‘" : "huang", - "徨" : "huang", - "湟" : "huang", - "惶" : "huang", - "媓" : "huang", - "ç…Œ" : "huang", - "锽" : "huang", - "æ½¢" : "huang", - "ç’œ" : "huang", - "è—" : "huang", - "ç¯" : "huang", - "艎" : "huang", - "磺" : "huang", - "癀" : "huang", - "蟥" : "huang", - "ç°§" : "huang", - "鳇" : "huang", - "æ" : "huang", - "晃" : "huang", - "è°Ž" : "huang", - "幌" : "huang", - "滉" : "huang", - "çš" : "huang", - "ç°" : "hui", - "诙" : "hui", - "挥" : "hui", - "æ¢" : "hui", - "æ™–" : "hui", - "辉" : "hui", - "麾" : "hui", - "å¾½" : "hui", - "éš³" : "hui", - "回" : "hui", - "茴" : "hui", - "æ´„" : "hui", - "è›”" : "hui", - "æ‚”" : "hui", - "æ¯" : "hui", - "å‰" : "hui", - "汇" : "hui", - "讳" : "hui", - "èŸ" : "hui", - "æµ" : "hui", - "诲" : "hui", - "绘" : "hui", - "æš" : "hui", - "è´¿" : "hui", - "烩" : "hui", - "å½—" : "hui", - "晦" : "hui", - "ç§½" : "hui", - "惠" : "hui", - "å–™" : "hui", - "æ…§" : "hui", - "è•™" : "hui", - "蟪" : "hui", - "ç²" : "hun", - "æ˜" : "hun", - "è¤" : "hun", - "é˜" : "hun", - "惛" : "hun", - "婚" : "hun", - "浑" : "hun", - "馄" : "hun", - "æ··" : "hun", - "é­‚" : "hun", - "诨" : "hun", - "溷" : "hun", - "耠" : "huo", - "åŠ" : "huo", - "è±" : "huo", - "æ´»" : "huo", - "ç«" : "huo", - "ä¼™" : "huo", - "é’¬" : "huo", - "夥" : "huo", - "或" : "huo", - "è´§" : "huo", - "获" : "huo", - "祸" : "huo", - "惑" : "huo", - "éœ" : "huo", - "镬" : "huo", - "攉" : "huo", - "è—¿" : "huo", - "嚯" : "huo", - "讥" : "ji", - "击" : "ji", - "å½" : "ji", - "饥" : "ji", - "玑" : "ji", - "圾" : "ji", - "芨" : "ji", - "机" : "ji", - "乩" : "ji", - "肌" : "ji", - "矶" : "ji", - "鸡" : "ji", - "剞" : "ji", - "å”§" : "ji", - "积" : "ji", - "笄" : "ji", - "å±" : "ji", - "姬" : "ji", - "基" : "ji", - "犄" : "ji", - "嵇" : "ji", - "畸" : "ji", - "è·»" : "ji", - "箕" : "ji", - "齑" : "ji", - "ç•¿" : "ji", - "墼" : "ji", - "æ¿€" : "ji", - "ç¾" : "ji", - "åŠ" : "ji", - "å‰" : "ji", - "岌" : "ji", - "æ±²" : "ji", - "级" : "ji", - "æž" : "ji", - "å³" : "ji", - "ä½¶" : "ji", - "笈" : "ji", - "急" : "ji", - "ç–¾" : "ji", - "棘" : "ji", - "集" : "ji", - "è’º" : "ji", - "楫" : "ji", - "辑" : "ji", - "嫉" : "ji", - "瘠" : "ji", - "è—‰" : "ji", - "ç±" : "ji", - "几" : "ji", - "å·±" : "ji", - "è™®" : "ji", - "挤" : "ji", - "脊" : "ji", - "掎" : "ji", - "戟" : "ji", - "麂" : "ji", - "计" : "ji", - "è®°" : "ji", - "伎" : "ji", - "纪" : "ji", - "技" : "ji", - "忌" : "ji", - "é™…" : "ji", - "妓" : "ji", - "å­£" : "ji", - "剂" : "ji", - "迹" : "ji", - "济" : "ji", - "æ—¢" : "ji", - "è§Š" : "ji", - "ç»§" : "ji", - "åˆ" : "ji", - "祭" : "ji", - "悸" : "ji", - "寄" : "ji", - "寂" : "ji", - "绩" : "ji", - "暨" : "ji", - "稷" : "ji", - "鲫" : "ji", - "é«»" : "ji", - "冀" : "ji", - "骥" : "ji", - "加" : "jia", - "ä½³" : "jia", - "æž·" : "jia", - "浃" : "jia", - "ç—‚" : "jia", - "å®¶" : "jia", - "袈" : "jia", - "嘉" : "jia", - "é•“" : "jia", - "èš" : "jia", - "戛" : "jia", - "颊" : "jia", - "甲" : "jia", - "胛" : "jia", - "é’¾" : "jia", - "å‡" : "jia", - "ä»·" : "jia", - "驾" : "jia", - "æž¶" : "jia", - "å«" : "jia", - "稼" : "jia", - "戋" : "jian", - "å°–" : "jian", - "奸" : "jian", - "æ­¼" : "jian", - "åš" : "jian", - "é—´" : "jian", - "è‚©" : "jian", - "艰" : "jian", - "监" : "jian", - "å…¼" : "jian", - "è…" : "jian", - "笺" : "jian", - "缄" : "jian", - "ç…Ž" : "jian", - "æ‹£" : "jian", - "茧" : "jian", - "柬" : "jian", - "ä¿­" : "jian", - "æ¡" : "jian", - "检" : "jian", - "å‡" : "jian", - "剪" : "jian", - "ç‘" : "jian", - "简" : "jian", - "碱" : "jian", - "è§" : "jian", - "ä»¶" : "jian", - "饯" : "jian", - "建" : "jian", - "è" : "jian", - "è´±" : "jian", - "剑" : "jian", - "å¥" : "jian", - "舰" : "jian", - "æ¶§" : "jian", - "æ¸" : "jian", - "è°" : "jian", - "è·µ" : "jian", - "é”" : "jian", - "毽" : "jian", - "è…±" : "jian", - "溅" : "jian", - "鉴" : "jian", - "é”®" : "jian", - "僭" : "jian", - "ç®­" : "jian", - "江" : "jiang", - "å°†" : "jiang", - "å§œ" : "jiang", - "豇" : "jiang", - "浆" : "jiang", - "僵" : "jiang", - "ç¼°" : "jiang", - "ç–†" : "jiang", - "讲" : "jiang", - "奖" : "jiang", - "桨" : "jiang", - "è’‹" : "jiang", - "匠" : "jiang", - "é…±" : "jiang", - "犟" : "jiang", - "糨" : "jiang", - "交" : "jiao", - "郊" : "jiao", - "浇" : "jiao", - "娇" : "jiao", - "å§£" : "jiao", - "骄" : "jiao", - "胶" : "jiao", - "椒" : "jiao", - "蛟" : "jiao", - "焦" : "jiao", - "è·¤" : "jiao", - "蕉" : "jiao", - "ç¤" : "jiao", - "ä½¼" : "jiao", - "ç‹¡" : "jiao", - "饺" : "jiao", - "绞" : "jiao", - "é“°" : "jiao", - "矫" : "jiao", - "皎" : "jiao", - "脚" : "jiao", - "æ…" : "jiao", - "剿" : "jiao", - "ç¼´" : "jiao", - "å«" : "jiao", - "轿" : "jiao", - "较" : "jiao", - "æ•™" : "jiao", - "窖" : "jiao", - "é…µ" : "jiao", - "ä¾¥" : "jiao", - "阶" : "jie", - "皆" : "jie", - "接" : "jie", - "秸" : "jie", - "æ­" : "jie", - "å—Ÿ" : "jie", - "è¡—" : "jie", - "å­‘" : "jie", - "节" : "jie", - "讦" : "jie", - "劫" : "jie", - "æ°" : "jie", - "诘" : "jie", - "æ´" : "jie", - "结" : "jie", - "æ·" : "jie", - "ç«" : "jie", - "截" : "jie", - "碣" : "jie", - "ç«­" : "jie", - "å§" : "jie", - "è§£" : "jie", - "介" : "jie", - "戒" : "jie", - "届" : "jie", - "界" : "jie", - "ç–¥" : "jie", - "诫" : "jie", - "借" : "jie", - "å·¾" : "jin", - "æ–¤" : "jin", - "今" : "jin", - "金" : "jin", - "æ´¥" : "jin", - "矜" : "jin", - "ç­‹" : "jin", - "襟" : "jin", - "ä»…" : "jin", - "ç´§" : "jin", - "锦" : "jin", - "è°¨" : "jin", - "å°½" : "jin", - "è¿›" : "jin", - "è¿‘" : "jin", - "晋" : "jin", - "烬" : "jin", - "浸" : "jin", - "ç¦" : "jin", - "è§" : "jin", - "噤" : "jin", - "茎" : "jing", - "京" : "jing", - "æ³¾" : "jing", - "ç»" : "jing", - "è" : "jing", - "惊" : "jing", - "æ™¶" : "jing", - "ç›" : "jing", - "ç²³" : "jing", - "å…¢" : "jing", - "ç²¾" : "jing", - "鲸" : "jing", - "井" : "jing", - "阱" : "jing", - "刭" : "jing", - "景" : "jing", - "儆" : "jing", - "è­¦" : "jing", - "径" : "jing", - "净" : "jing", - "ç—‰" : "jing", - "竞" : "jing", - "竟" : "jing", - "敬" : "jing", - "é–" : "jing", - "é™" : "jing", - "境" : "jing", - "镜" : "jing", - "è¿¥" : "jiong", - "炯" : "jiong", - "窘" : "jiong", - "纠" : "jiu", - "鸠" : "jiu", - "ç©¶" : "jiu", - "èµ³" : "jiu", - "阄" : "jiu", - "æª" : "jiu", - "啾" : "jiu", - "ä¹" : "jiu", - "ä¹…" : "jiu", - "玖" : "jiu", - "ç¸" : "jiu", - "韭" : "jiu", - "é…’" : "jiu", - "æ—§" : "jiu", - "臼" : "jiu", - "å’Ž" : "jiu", - "柩" : "jiu", - "æ•‘" : "jiu", - "厩" : "jiu", - "å°±" : "jiu", - "舅" : "jiu", - "鹫" : "jiu", - "军" : "jun", - "å‡" : "jun", - "å›" : "jun", - "é’§" : "jun", - "èŒ" : "jun", - "çš²" : "jun", - "俊" : "jun", - "郡" : "jun", - "å³»" : "jun", - "éª" : "jun", - "ç«£" : "jun", - "拘" : "ju", - "ç‹™" : "ju", - "å±…" : "ju", - "驹" : "ju", - "掬" : "ju", - "雎" : "ju", - "éž " : "ju", - "å±€" : "ju", - "èŠ" : "ju", - "ç„—" : "ju", - "橘" : "ju", - "å’€" : "ju", - "æ²®" : "ju", - "矩" : "ju", - "举" : "ju", - "龃" : "ju", - "å·¨" : "ju", - "æ‹’" : "ju", - "å…·" : "ju", - "炬" : "ju", - "俱" : "ju", - "剧" : "ju", - "æ®" : "ju", - "è·" : "ju", - "惧" : "ju", - "飓" : "ju", - "锯" : "ju", - "èš" : "ju", - "踞" : "ju", - "æ" : "juan", - "æ¶“" : "juan", - "娟" : "juan", - "鹃" : "juan", - "å·" : "juan", - "倦" : "juan", - "绢" : "juan", - "眷" : "juan", - "éš½" : "juan", - "æ’…" : "jue", - "噘" : "jue", - "决" : "jue", - "诀" : "jue", - "抉" : "jue", - "ç»" : "jue", - "掘" : "jue", - "å´›" : "jue", - "厥" : "jue", - "è°²" : "jue", - "蕨" : "jue", - "爵" : "jue", - "è¹¶" : "jue", - "çŸ" : "jue", - "倔" : "jue", - "å’”" : "ka", - "å¼€" : "kai", - "æ©" : "kai", - "凯" : "kai", - "é“ " : "kai", - "æ…¨" : "kai", - "楷" : "kai", - "忾" : "kai", - "刊" : "kan", - "勘" : "kan", - "é¾›" : "kan", - "å ª" : "kan", - "åŽ" : "kan", - "侃" : "kan", - "ç " : "kan", - "æ§›" : "kan", - "看" : "kan", - "çž°" : "kan", - "康" : "kang", - "æ…·" : "kang", - "ç³ " : "kang", - "亢" : "kang", - "伉" : "kang", - "抗" : "kang", - "ç‚•" : "kang", - "考" : "kao", - "æ‹·" : "kao", - "烤" : "kao", - "é“" : "kao", - "犒" : "kao", - "é " : "kao", - "è‹›" : "ke", - "è½²" : "ke", - "ç§‘" : "ke", - "棵" : "ke", - "æ•" : "ke", - "å—‘" : "ke", - "稞" : "ke", - "窠" : "ke", - "颗" : "ke", - "磕" : "ke", - "瞌" : "ke", - "èŒ" : "ke", - "å¯" : "ke", - "å·" : "ke", - "渴" : "ke", - "å…‹" : "ke", - "刻" : "ke", - "æª" : "ke", - "客" : "ke", - "课" : "ke", - "肯" : "ken", - "垦" : "ken", - "æ³" : "ken", - "啃" : "ken", - "å‘" : "keng", - "é“¿" : "keng", - "空" : "kong", - "å­”" : "kong", - "æ" : "kong", - "控" : "kong", - "抠" : "kou", - "å£" : "kou", - "å©" : "kou", - "扣" : "kou", - "寇" : "kou", - "è”»" : "kou", - "枯" : "ku", - "å“­" : "ku", - "窟" : "ku", - "骷" : "ku", - "苦" : "ku", - "库" : "ku", - "ç»”" : "ku", - "裤" : "ku", - "é…·" : "ku", - "夸" : "kua", - "åž®" : "kua", - "挎" : "kua", - "胯" : "kua", - "è·¨" : "kua", - "å—" : "kuai", - "å¿«" : "kuai", - "侩" : "kuai", - "è„" : "kuai", - "ç­·" : "kuai", - "宽" : "kuan", - "é«‹" : "kuan", - "款" : "kuan", - "诓" : "kuang", - "å“" : "kuang", - "ç­" : "kuang", - "ç‹‚" : "kuang", - "诳" : "kuang", - "æ—·" : "kuang", - "况" : "kuang", - "矿" : "kuang", - "框" : "kuang", - "眶" : "kuang", - "äº" : "kui", - "ç›”" : "kui", - "窥" : "kui", - "葵" : "kui", - "é­" : "kui", - "å‚€" : "kui", - "匮" : "kui", - "馈" : "kui", - "æ„§" : "kui", - "å¤" : "kun", - "昆" : "kun", - "é²²" : "kun", - "æ†" : "kun", - "å›°" : "kun", - "扩" : "kuo", - "括" : "kuo", - "阔" : "kuo", - "廓" : "kuo", - "垃" : "la", - "拉" : "la", - "啦" : "la", - "é‚‹" : "la", - "æ—¯" : "la", - "å–‡" : "la", - "è…Š" : "la", - "蜡" : "la", - "è¾£" : "la", - "æ¥" : "lai", - "莱" : "lai", - "徕" : "lai", - "ç" : "lai", - "èµ–" : "lai", - "癞" : "lai", - "ç±" : "lai", - "å…°" : "lan", - "岚" : "lan", - "拦" : "lan", - "æ " : "lan", - "婪" : "lan", - "阑" : "lan", - "è“" : "lan", - "澜" : "lan", - "褴" : "lan", - "篮" : "lan", - "览" : "lan", - "æ½" : "lan", - "缆" : "lan", - "榄" : "lan", - "懒" : "lan", - "烂" : "lan", - "滥" : "lan", - "å•·" : "lang", - "郎" : "lang", - "狼" : "lang", - "ç…" : "lang", - "廊" : "lang", - "榔" : "lang", - "é”’" : "lang", - "èž‚" : "lang", - "朗" : "lang", - "浪" : "lang", - "æž" : "lao", - "劳" : "lao", - "牢" : "lao", - "å´‚" : "lao", - "è€" : "lao", - "佬" : "lao", - "å§¥" : "lao", - "å” " : "lao", - "烙" : "lao", - "æ¶" : "lao", - "é…ª" : "lao", - "é›·" : "lei", - "羸" : "lei", - "åž’" : "lei", - "磊" : "lei", - "蕾" : "lei", - "å„¡" : "lei", - "è‚‹" : "lei", - "泪" : "lei", - "ç±»" : "lei", - "ç´¯" : "lei", - "æ“‚" : "lei", - "嘞" : "lei", - "棱" : "leng", - "楞" : "leng", - "冷" : "leng", - "ç–" : "leng", - "厘" : "li", - "狸" : "li", - "离" : "li", - "梨" : "li", - "çŠ" : "li", - "鹂" : "li", - "å–±" : "li", - "蜊" : "li", - "漓" : "li", - "ç’ƒ" : "li", - "黎" : "li", - "ç½¹" : "li", - "篱" : "li", - "è ¡" : "li", - "礼" : "li", - "æŽ" : "li", - "里" : "li", - "俚" : "li", - "逦" : "li", - "å“©" : "li", - "娌" : "li", - "ç†" : "li", - "鲤" : "li", - "力" : "li", - "历" : "li", - "厉" : "li", - "ç«‹" : "li", - "å" : "li", - "丽" : "li", - "励" : "li", - "å‘–" : "li", - "利" : "li", - "æ²¥" : "li", - "枥" : "li", - "例" : "li", - "戾" : "li", - "éš¶" : "li", - "è”" : "li", - "ä¿" : "li", - "莉" : "li", - "莅" : "li", - "æ —" : "li", - "ç ¾" : "li", - "蛎" : "li", - "唳" : "li", - "笠" : "li", - "ç²’" : "li", - "雳" : "li", - "ç—¢" : "li", - "连" : "lian", - "怜" : "lian", - "帘" : "lian", - "莲" : "lian", - "æ¶Ÿ" : "lian", - "è”" : "lian", - "廉" : "lian", - "é²¢" : "lian", - "é•°" : "lian", - "æ•›" : "lian", - "脸" : "lian", - "练" : "lian", - "炼" : "lian", - "æ‹" : "lian", - "殓" : "lian", - "链" : "lian", - "良" : "liang", - "凉" : "liang", - "æ¢" : "liang", - "ç²®" : "liang", - "ç²±" : "liang", - "两" : "liang", - "é­‰" : "liang", - "亮" : "liang", - "è°…" : "liang", - "辆" : "liang", - "é“" : "liang", - "é‡" : "liang", - "晾" : "liang", - "踉" : "liang", - "è¾½" : "liao", - "ç–—" : "liao", - "èŠ" : "liao", - "僚" : "liao", - "寥" : "liao", - "æ’©" : "liao", - "嘹" : "liao", - "ç " : "liao", - "潦" : "liao", - "ç¼­" : "liao", - "燎" : "liao", - "æ–™" : "liao", - "æ’‚" : "liao", - "çž­" : "liao", - "é•£" : "liao", - "å’§" : "lie", - "列" : "lie", - "劣" : "lie", - "冽" : "lie", - "烈" : "lie", - "猎" : "lie", - "裂" : "lie", - "è¶”" : "lie", - "拎" : "lin", - "é‚»" : "lin", - "æž—" : "lin", - "临" : "lin", - "æ·‹" : "lin", - "ç³" : "lin", - "ç²¼" : "lin", - "å¶™" : "lin", - "æ½¾" : "lin", - "霖" : "lin", - "磷" : "lin", - "鳞" : "lin", - "麟" : "lin", - "凛" : "lin", - "檩" : "lin", - "å" : "lin", - "èµ" : "lin", - "èº" : "lin", - "ä¼¶" : "ling", - "çµ" : "ling", - "è‹“" : "ling", - "囹" : "ling", - "æ³ " : "ling", - "玲" : "ling", - "ç“´" : "ling", - "铃" : "ling", - "凌" : "ling", - "陵" : "ling", - "è†" : "ling", - "è±" : "ling", - "棂" : "ling", - "蛉" : "ling", - "翎" : "ling", - "羚" : "ling", - "绫" : "ling", - "é›¶" : "ling", - "龄" : "ling", - "å²­" : "ling", - "领" : "ling", - "å¦" : "ling", - "令" : "ling", - "溜" : "liu", - "熘" : "liu", - "刘" : "liu", - "æµ" : "liu", - "ç•™" : "liu", - "æµ" : "liu", - "ç‰" : "liu", - "ç¡«" : "liu", - "é¦" : "liu", - "榴" : "liu", - "瘤" : "liu", - "柳" : "liu", - "绺" : "liu", - "å…­" : "liu", - "é›" : "liu", - "é¾™" : "long", - "å’™" : "long", - "ç‘" : "long", - "胧" : "long", - "è‹" : "long", - "笼" : "long", - "隆" : "long", - "窿" : "long", - "陇" : "long", - "æ‹¢" : "long", - "åž„" : "long", - "娄" : "lou", - "楼" : "lou", - "é«…" : "lou", - "æ‚" : "lou", - "篓" : "lou", - "陋" : "lou", - "é•‚" : "lou", - "æ¼" : "lou", - "å–½" : "lou", - "æ’¸" : "lu", - "å¢" : "lu", - "芦" : "lu", - "åº" : "lu", - "炉" : "lu", - "泸" : "lu", - "鸬" : "lu", - "颅" : "lu", - "鲈" : "lu", - "å¤" : "lu", - "è™" : "lu", - "掳" : "lu", - "é²" : "lu", - "橹" : "lu", - "录" : "lu", - "赂" : "lu", - "鹿" : "lu", - "禄" : "lu", - "è·¯" : "lu", - "箓" : "lu", - "漉" : "lu", - "戮" : "lu", - "é¹­" : "lu", - "麓" : "lu", - "峦" : "luan", - "å­ª" : "luan", - "挛" : "luan", - "鸾" : "luan", - "åµ" : "luan", - "ä¹±" : "luan", - "抡" : "lun", - "仑" : "lun", - "伦" : "lun", - "囵" : "lun", - "沦" : "lun", - "è½®" : "lun", - "论" : "lun", - "å•°" : "luo", - "ç½—" : "luo", - "è" : "luo", - "逻" : "luo", - "锣" : "luo", - "箩" : "luo", - "骡" : "luo", - "螺" : "luo", - "裸" : "luo", - "æ´›" : "luo", - "络" : "luo", - "骆" : "luo", - "摞" : "luo", - "漯" : "luo", - "é©´" : "lv", - "榈" : "lv", - "å•" : "lv", - "ä¾£" : "lv", - "æ—…" : "lv", - "é“" : "lv", - "屡" : "lv", - "缕" : "lv", - "膂" : "lv", - "褛" : "lv", - "å±¥" : "lv", - "律" : "lv", - "虑" : "lv", - "æ°¯" : "lv", - "滤" : "lv", - "掠" : "lve", - "ç•¥" : "lve", - "妈" : "ma", - "麻" : "ma", - "蟆" : "ma", - "马" : "ma", - "犸" : "ma", - "玛" : "ma", - "ç " : "ma", - "èš‚" : "ma", - "骂" : "ma", - "å—" : "ma", - "嘛" : "ma", - "霾" : "mai", - "ä¹°" : "mai", - "迈" : "mai", - "麦" : "mai", - "å–" : "mai", - "霡" : "mai", - "è›®" : "man", - "馒" : "man", - "çž’" : "man", - "满" : "man", - "曼" : "man", - "è°©" : "man", - "å¹”" : "man", - "漫" : "man", - "æ…¢" : "man", - "牤" : "mang", - "芒" : "mang", - "å¿™" : "mang", - "盲" : "mang", - "æ°“" : "mang", - "茫" : "mang", - "莽" : "mang", - "æ¼­" : "mang", - "蟒" : "mang", - "猫" : "mao", - "毛" : "mao", - "矛" : "mao", - "茅" : "mao", - "牦" : "mao", - "锚" : "mao", - "髦" : "mao", - "è¥" : "mao", - "蟊" : "mao", - "冇" : "mao", - "å¯" : "mao", - "铆" : "mao", - "茂" : "mao", - "冒" : "mao", - "è´¸" : "mao", - "袤" : "mao", - "帽" : "mao", - "貌" : "mao", - "玫" : "mei", - "æžš" : "mei", - "眉" : "mei", - "莓" : "mei", - "梅" : "mei", - "媒" : "mei", - "楣" : "mei", - "ç…¤" : "mei", - "é…¶" : "mei", - "霉" : "mei", - "æ¯" : "mei", - "美" : "mei", - "é•" : "mei", - "妹" : "mei", - "昧" : "mei", - "袂" : "mei", - "å¯" : "mei", - "媚" : "mei", - "é­…" : "mei", - "é—¨" : "men", - "扪" : "men", - "é—·" : "men", - "ç„–" : "men", - "懑" : "men", - "们" : "men", - "è™»" : "meng", - "èŒ" : "meng", - "è’™" : "meng", - "盟" : "meng", - "檬" : "meng", - "曚" : "meng", - "朦" : "meng", - "猛" : "meng", - "é”°" : "meng", - "蜢" : "meng", - "懵" : "meng", - "å­Ÿ" : "meng", - "梦" : "meng", - "å’ª" : "mi", - "眯" : "mi", - "å¼¥" : "mi", - "è¿·" : "mi", - "猕" : "mi", - "è°œ" : "mi", - "醚" : "mi", - "糜" : "mi", - "麋" : "mi", - "é¡" : "mi", - "ç±³" : "mi", - "å¼­" : "mi", - "è§…" : "mi", - "密" : "mi", - "幂" : "mi", - "è°§" : "mi", - "蜜" : "mi", - "眠" : "mian", - "绵" : "mian", - "棉" : "mian", - "å…" : "mian", - "勉" : "mian", - "娩" : "mian", - "冕" : "mian", - "渑" : "mian", - "湎" : "mian", - "ç¼…" : "mian", - "è…¼" : "mian", - "é¢" : "mian", - "å–µ" : "miao", - "è‹—" : "miao", - "æ" : "miao", - "çž„" : "miao", - "ç§’" : "miao", - "渺" : "miao", - "è—" : "miao", - "妙" : "miao", - "庙" : "miao", - "ç¼¥" : "miao", - "å’©" : "mie", - "ç­" : "mie", - "蔑" : "mie", - "篾" : "mie", - "乜" : "mie", - "æ°‘" : "min", - "çš¿" : "min", - "抿" : "min", - "泯" : "min", - "é—½" : "min", - "悯" : "min", - "æ•" : "min", - "å" : "ming", - "明" : "ming", - "鸣" : "ming", - "茗" : "ming", - "冥" : "ming", - "é“­" : "ming", - "çž‘" : "ming", - "螟" : "ming", - "é…©" : "ming", - "命" : "ming", - "è°¬" : "miu", - "摸" : "mo", - "é¦" : "mo", - "摹" : "mo", - "膜" : "mo", - "æ‘©" : "mo", - "磨" : "mo", - "蘑" : "mo", - "é­”" : "mo", - "末" : "mo", - "茉" : "mo", - "æ®" : "mo", - "沫" : "mo", - "陌" : "mo", - "莫" : "mo", - "ç§£" : "mo", - "蓦" : "mo", - "æ¼ " : "mo", - "寞" : "mo", - "墨" : "mo", - "默" : "mo", - "嬷" : "mo", - "缪" : "mou", - "哞" : "mou", - "眸" : "mou", - "è°‹" : "mou", - "æŸ" : "mou", - "æ¯" : "mu", - "牡" : "mu", - "亩" : "mu", - "拇" : "mu", - "姆" : "mu", - "木" : "mu", - "ç›®" : "mu", - "æ²" : "mu", - "苜" : "mu", - "牧" : "mu", - "é’¼" : "mu", - "募" : "mu", - "墓" : "mu", - "幕" : "mu", - "ç¦" : "mu", - "æ…•" : "mu", - "æš®" : "mu", - "穆" : "mu", - "æ‹¿" : "na", - "å‘" : "na", - "纳" : "na", - "é’ " : "na", - "衲" : "na", - "æº" : "na", - "乃" : "nai", - "奶" : "nai", - "æ°–" : "nai", - "奈" : "nai", - "è€" : "nai", - "囡" : "nan", - "ç”·" : "nan", - "å—" : "nan", - "éš¾" : "nan", - "å–ƒ" : "nan", - "楠" : "nan", - "èµ§" : "nan", - "è…©" : "nan", - "å›”" : "nang", - "囊" : "nang", - "å­¬" : "nao", - "å‘¶" : "nao", - "挠" : "nao", - "æ¼" : "nao", - "è„‘" : "nao", - "ç‘™" : "nao", - "é—¹" : "nao", - "æ·–" : "nao", - "è®·" : "ne", - "é¦" : "nei", - "内" : "nei", - "å«©" : "nen", - "æ" : "nen", - "能" : "neng", - "å—¯" : "ng", - "妮" : "ni", - "å°¼" : "ni", - "æ³¥" : "ni", - "怩" : "ni", - "倪" : "ni", - "霓" : "ni", - "拟" : "ni", - "ä½ " : "ni", - "æ—Ž" : "ni", - "昵" : "ni", - "逆" : "ni", - "匿" : "ni", - "è…»" : "ni", - "溺" : "ni", - "拈" : "nian", - "蔫" : "nian", - "å¹´" : "nian", - "é»" : "nian", - "æ»" : "nian", - "辇" : "nian", - "æ’µ" : "nian", - "碾" : "nian", - "廿" : "nian", - "念" : "nian", - "娘" : "niang", - "é…¿" : "niang", - "鸟" : "niao", - "袅" : "niao", - "å°¿" : "niao", - "æ" : "nie", - "è‚" : "nie", - "æ¶…" : "nie", - "å—«" : "nie", - "镊" : "nie", - "é•" : "nie", - "蹑" : "nie", - "å­½" : "nie", - "您" : "nin", - "å®" : "ning", - "å’›" : "ning", - "狞" : "ning", - "柠" : "ning", - "å‡" : "ning", - "æ‹§" : "ning", - "佞" : "ning", - "泞" : "ning", - "妞" : "niu", - "牛" : "niu", - "扭" : "niu", - "忸" : "niu", - "纽" : "niu", - "é’®" : "niu", - "农" : "nong", - "å“" : "nong", - "浓" : "nong", - "è„“" : "nong", - "弄" : "nong", - "奴" : "nu", - "驽" : "nu", - "努" : "nu", - "弩" : "nu", - "怒" : "nu", - "æš–" : "nuan", - "ç–Ÿ" : "nue", - "è™" : "nue", - "挪" : "nuo", - "诺" : "nuo", - "å–" : "nuo", - "懦" : "nuo", - "糯" : "nuo", - "女" : "nv", - "噢" : "o", - "è®´" : "ou", - "瓯" : "ou", - "欧" : "ou", - "æ®´" : "ou", - "鸥" : "ou", - "å‘•" : "ou", - "å¶" : "ou", - "è—•" : "ou", - "怄" : "ou", - "è¶´" : "pa", - "啪" : "pa", - "è‘©" : "pa", - "æ·" : "pa", - "爬" : "pa", - "ç¶" : "pa", - "帕" : "pa", - "怕" : "pa", - "æ‹" : "pai", - "排" : "pai", - "徘" : "pai", - "牌" : "pai", - "哌" : "pai", - "æ´¾" : "pai", - "湃" : "pai", - "潘" : "pan", - "攀" : "pan", - "爿" : "pan", - "盘" : "pan", - "ç£" : "pan", - "è¹’" : "pan", - "蟠" : "pan", - "判" : "pan", - "盼" : "pan", - "å›" : "pan", - "ç•”" : "pan", - "乓" : "pang", - "滂" : "pang", - "庞" : "pang", - "æ—" : "pang", - "螃" : "pang", - "耪" : "pang", - "抛" : "pao", - "å’†" : "pao", - "庖" : "pao", - "è¢" : "pao", - "è·‘" : "pao", - "泡" : "pao", - "呸" : "pei", - "胚" : "pei", - "陪" : "pei", - "培" : "pei", - "èµ”" : "pei", - "裴" : "pei", - "æ²›" : "pei", - "佩" : "pei", - "é…" : "pei", - "å–·" : "pen", - "盆" : "pen", - "抨" : "peng", - "怦" : "peng", - "ç °" : "peng", - "烹" : "peng", - "嘭" : "peng", - "朋" : "peng", - "å½­" : "peng", - "棚" : "peng", - "蓬" : "peng", - "硼" : "peng", - "é¹" : "peng", - "澎" : "peng", - "篷" : "peng", - "膨" : "peng", - "æ§" : "peng", - "碰" : "peng", - "丕" : "pi", - "批" : "pi", - "纰" : "pi", - "å¯" : "pi", - "披" : "pi", - "ç ’" : "pi", - "劈" : "pi", - "噼" : "pi", - "霹" : "pi", - "çš®" : "pi", - "枇" : "pi", - "毗" : "pi", - "èš" : "pi", - "ç–²" : "pi", - "啤" : "pi", - "çµ" : "pi", - "脾" : "pi", - "è²”" : "pi", - "匹" : "pi", - "ç—ž" : "pi", - "ç™–" : "pi", - "å±" : "pi", - "ç¥" : "pi", - "媲" : "pi", - "僻" : "pi", - "è­¬" : "pi", - "å" : "pian", - "篇" : "pian", - "ç¿©" : "pian", - "骈" : "pian", - "è¹" : "pian", - "片" : "pian", - "骗" : "pian", - "剽" : "piao", - "漂" : "piao", - "飘" : "piao", - "ç“¢" : "piao", - "æ®" : "piao", - "瞟" : "piao", - "票" : "piao", - "æ°•" : "pie", - "瞥" : "pie", - "æ’‡" : "pie", - "拼" : "pin", - "姘" : "pin", - "è´«" : "pin", - "频" : "pin", - "å«”" : "pin", - "颦" : "pin", - "å“" : "pin", - "è˜" : "pin", - "ä¹’" : "ping", - "娉" : "ping", - "å¹³" : "ping", - "评" : "ping", - "åª" : "ping", - "苹" : "ping", - "凭" : "ping", - "ç“¶" : "ping", - "è" : "ping", - "é’‹" : "po", - "å¡" : "po", - "æ³¼" : "po", - "颇" : "po", - "婆" : "po", - "鄱" : "po", - "åµ" : "po", - "ç€" : "po", - "ç ´" : "po", - "粕" : "po", - "é­„" : "po", - "剖" : "pou", - "抔" : "pou", - "扑" : "pu", - "铺" : "pu", - "å™—" : "pu", - "仆" : "pu", - "åŒ" : "pu", - "è©" : "pu", - "è‘¡" : "pu", - "è’²" : "pu", - "ç’ž" : "pu", - "圃" : "pu", - "浦" : "pu", - "æ™®" : "pu", - "è°±" : "pu", - "è¹¼" : "pu", - "七" : "qi", - "æ²" : "qi", - "妻" : "qi", - "柒" : "qi", - "凄" : "qi", - "è‹" : "qi", - "戚" : "qi", - "期" : "qi", - "欺" : "qi", - "å˜" : "qi", - "漆" : "qi", - "é½" : "qi", - "芪" : "qi", - "å…¶" : "qi", - "æ­§" : "qi", - "祈" : "qi", - "祇" : "qi", - "è„" : "qi", - "畦" : "qi", - "è·‚" : "qi", - "å´Ž" : "qi", - "骑" : "qi", - "çª" : "qi", - "棋" : "qi", - "æ——" : "qi", - "é³" : "qi", - "麒" : "qi", - "乞" : "qi", - "岂" : "qi", - "ä¼" : "qi", - "æž" : "qi", - "å¯" : "qi", - "èµ·" : "qi", - "ç»®" : "qi", - "æ°”" : "qi", - "讫" : "qi", - "è¿„" : "qi", - "弃" : "qi", - "æ±½" : "qi", - "æ³£" : "qi", - "契" : "qi", - "ç Œ" : "qi", - "葺" : "qi", - "器" : "qi", - "憩" : "qi", - "俟" : "qi", - "æŽ" : "qia", - "æ´½" : "qia", - "æ°" : "qia", - "åƒ" : "qian", - "仟" : "qian", - "阡" : "qian", - "芊" : "qian", - "è¿" : "qian", - "é’Ž" : "qian", - "牵" : "qian", - "æ‚­" : "qian", - "è°¦" : "qian", - "ç­¾" : "qian", - "愆" : "qian", - "å‰" : "qian", - "è™”" : "qian", - "é’±" : "qian", - "é’³" : "qian", - "ä¹¾" : "qian", - "潜" : "qian", - "é»”" : "qian", - "é£" : "qian", - "è°´" : "qian", - "欠" : "qian", - "芡" : "qian", - "倩" : "qian", - "å ‘" : "qian", - "嵌" : "qian", - "æ­‰" : "qian", - "羌" : "qiang", - "枪" : "qiang", - "戕" : "qiang", - "è…”" : "qiang", - "蜣" : "qiang", - "锵" : "qiang", - "墙" : "qiang", - "è”·" : "qiang", - "抢" : "qiang", - "羟" : "qiang", - "è¥" : "qiang", - "å‘›" : "qiang", - "ç‚" : "qiang", - "è·„" : "qiang", - "æ‚„" : "qiao", - "è··" : "qiao", - "锹" : "qiao", - "敲" : "qiao", - "橇" : "qiao", - "ä¹”" : "qiao", - "侨" : "qiao", - "èž" : "qiao", - "æ¡¥" : "qiao", - "憔" : "qiao", - "çž§" : "qiao", - "å·§" : "qiao", - "ä¿" : "qiao", - "诮" : "qiao", - "å³­" : "qiao", - "çª" : "qiao", - "翘" : "qiao", - "æ’¬" : "qiao", - "切" : "qie", - "且" : "qie", - "妾" : "qie", - "怯" : "qie", - "窃" : "qie", - "挈" : "qie", - "惬" : "qie", - "è¶„" : "qie", - "锲" : "qie", - "é’¦" : "qin", - "ä¾µ" : "qin", - "衾" : "qin", - "芹" : "qin", - "芩" : "qin", - "秦" : "qin", - "ç´" : "qin", - "禽" : "qin", - "勤" : "qin", - "æ“’" : "qin", - "å™™" : "qin", - "å¯" : "qin", - "æ²" : "qin", - "é’" : "qing", - "è½»" : "qing", - "æ°¢" : "qing", - "倾" : "qing", - "å¿" : "qing", - "清" : "qing", - "蜻" : "qing", - "情" : "qing", - "æ™´" : "qing", - "æ°°" : "qing", - "擎" : "qing", - "é¡·" : "qing", - "请" : "qing", - "庆" : "qing", - "罄" : "qing", - "ç©·" : "qiong", - "穹" : "qiong", - "ç¼" : "qiong", - "丘" : "qiu", - "ç§‹" : "qiu", - "蚯" : "qiu", - "é³…" : "qiu", - "囚" : "qiu", - "求" : "qiu", - "虬" : "qiu", - "æ³…" : "qiu", - "é…‹" : "qiu", - "çƒ" : "qiu", - "é’" : "qiu", - "裘" : "qiu", - "å²–" : "qu", - "驱" : "qu", - "屈" : "qu", - "蛆" : "qu", - "躯" : "qu", - "è¶‹" : "qu", - "è›" : "qu", - "黢" : "qu", - "渠" : "qu", - "çž¿" : "qu", - "曲" : "qu", - "å–" : "qu", - "娶" : "qu", - "龋" : "qu", - "去" : "qu", - "è¶£" : "qu", - "è§‘" : "qu", - "æ‚›" : "quan", - "æƒ" : "quan", - "å…¨" : "quan", - "诠" : "quan", - "泉" : "quan", - "拳" : "quan", - "ç—Š" : "quan", - "蜷" : "quan", - "醛" : "quan", - "犬" : "quan", - "åŠ" : "quan", - "券" : "quan", - "ç‚”" : "que", - "缺" : "que", - "瘸" : "que", - "å´" : "que", - "ç¡®" : "que", - "鹊" : "que", - "阙" : "que", - "榷" : "que", - "逡" : "qun", - "裙" : "qun", - "群" : "qun", - "蚺" : "ran", - "ç„¶" : "ran", - "燃" : "ran", - "冉" : "ran", - "è‹’" : "ran", - "染" : "ran", - "瓤" : "rang", - "壤" : "rang", - "攘" : "rang", - "åš·" : "rang", - "让" : "rang", - "è›" : "rao", - "饶" : "rao", - "娆" : "rao", - "æ¡¡" : "rao", - "扰" : "rao", - "绕" : "rao", - "惹" : "re", - "热" : "re", - "人" : "ren", - "壬" : "ren", - "ä»" : "ren", - "å¿" : "ren", - "è" : "ren", - "稔" : "ren", - "刃" : "ren", - "认" : "ren", - "ä»»" : "ren", - "纫" : "ren", - "韧" : "ren", - "饪" : "ren", - "扔" : "reng", - "ä»" : "reng", - "æ—¥" : "ri", - "戎" : "rong", - "茸" : "rong", - "è£" : "rong", - "ç»’" : "rong", - "容" : "rong", - "嵘" : "rong", - "蓉" : "rong", - "溶" : "rong", - "榕" : "rong", - "熔" : "rong", - "èž" : "rong", - "冗" : "rong", - "æ°„" : "rong", - "柔" : "rou", - "æ‰" : "rou", - "ç³…" : "rou", - "蹂" : "rou", - "鞣" : "rou", - "肉" : "rou", - "如" : "ru", - "茹" : "ru", - "é“·" : "ru", - "å„’" : "ru", - "å­º" : "ru", - "è •" : "ru", - "æ±" : "ru", - "ä¹³" : "ru", - "è¾±" : "ru", - "å…¥" : "ru", - "ç¼›" : "ru", - "褥" : "ru", - "阮" : "ruan", - "软" : "ruan", - "蕊" : "rui", - "èš‹" : "rui", - "é”" : "rui", - "瑞" : "rui", - "ç¿" : "rui", - "é—°" : "run", - "润" : "run", - "è‹¥" : "ruo", - "åŒ" : "ruo", - "å¼±" : "ruo", - "仨" : "sa", - "æ´’" : "sa", - "æ’’" : "sa", - "å…" : "sa", - "飒" : "sa", - "è¨" : "sa", - "è…®" : "sai", - "èµ›" : "sai", - "三" : "san", - "å" : "san", - "伞" : "san", - "æ•£" : "san", - "æ¡‘" : "sang", - "æ¡" : "sang", - "å—“" : "sang", - "丧" : "sang", - "æ”" : "sao", - "骚" : "sao", - "扫" : "sao", - "å«‚" : "sao", - "臊" : "sao", - "æ¶©" : "se", - "啬" : "se", - "铯" : "se", - "瑟" : "se", - "ç©‘" : "se", - "森" : "sen", - "僧" : "seng", - "æ€" : "sha", - "æ²™" : "sha", - "纱" : "sha", - "ç ‚" : "sha", - "å•¥" : "sha", - "å‚»" : "sha", - "厦" : "sha", - "æ­ƒ" : "sha", - "ç…ž" : "sha", - "霎" : "sha", - "ç­›" : "shai", - "æ™’" : "shai", - "å±±" : "shan", - "删" : "shan", - "è‹«" : "shan", - "è¡«" : "shan", - "å§—" : "shan", - "çŠ" : "shan", - "ç…½" : "shan", - "潸" : "shan", - "膻" : "shan", - "é—ª" : "shan", - "陕" : "shan", - "讪" : "shan", - "汕" : "shan", - "扇" : "shan", - "å–„" : "shan", - "骟" : "shan", - "ç¼®" : "shan", - "æ“…" : "shan", - "膳" : "shan", - "嬗" : "shan", - "赡" : "shan", - "é³" : "shan", - "伤" : "shang", - "殇" : "shang", - "商" : "shang", - "è§ž" : "shang", - "熵" : "shang", - "晌" : "shang", - "èµ" : "shang", - "上" : "shang", - "å°š" : "shang", - "æŽ" : "shao", - "烧" : "shao", - "梢" : "shao", - "ç¨" : "shao", - "艄" : "shao", - "勺" : "shao", - "èŠ" : "shao", - "韶" : "shao", - "å°‘" : "shao", - "邵" : "shao", - "ç»" : "shao", - "哨" : "shao", - "æ½²" : "shao", - "奢" : "she", - "赊" : "she", - "舌" : "she", - "佘" : "she", - "蛇" : "she", - "èˆ" : "she", - "设" : "she", - "社" : "she", - "å°„" : "she", - "涉" : "she", - "赦" : "she", - "æ‘„" : "she", - "æ…‘" : "she", - "éº" : "she", - "申" : "shen", - "伸" : "shen", - "身" : "shen", - "å‘»" : "shen", - "ç»…" : "shen", - "ç ·" : "shen", - "æ·±" : "shen", - "神" : "shen", - "沈" : "shen", - "审" : "shen", - "å“‚" : "shen", - "å©¶" : "shen", - "肾" : "shen", - "甚" : "shen", - "渗" : "shen", - "葚" : "shen", - "蜃" : "shen", - "æ…Ž" : "shen", - "å‡" : "sheng", - "生" : "sheng", - "声" : "sheng", - "昇" : "sheng", - "牲" : "sheng", - "笙" : "sheng", - "甥" : "sheng", - "绳" : "sheng", - "圣" : "sheng", - "胜" : "sheng", - "晟" : "sheng", - "剩" : "sheng", - "å°¸" : "shi", - "失" : "shi", - "师" : "shi", - "诗" : "shi", - "è™±" : "shi", - "ç‹®" : "shi", - "æ–½" : "shi", - "湿" : "shi", - "å" : "shi", - "æ—¶" : "shi", - "实" : "shi", - "食" : "shi", - "蚀" : "shi", - "å²" : "shi", - "矢" : "shi", - "使" : "shi", - "å§‹" : "shi", - "é©¶" : "shi", - "屎" : "shi", - "士" : "shi", - "æ°" : "shi", - "示" : "shi", - "世" : "shi", - "仕" : "shi", - "市" : "shi", - "å¼" : "shi", - "势" : "shi", - "事" : "shi", - "ä¾" : "shi", - "饰" : "shi", - "试" : "shi", - "视" : "shi", - "æ‹­" : "shi", - "柿" : "shi", - "是" : "shi", - "适" : "shi", - "æƒ" : "shi", - "室" : "shi", - "é€" : "shi", - "è½¼" : "shi", - "èˆ" : "shi", - "弑" : "shi", - "释" : "shi", - "è°¥" : "shi", - "å—œ" : "shi", - "誓" : "shi", - "æ”¶" : "shou", - "手" : "shou", - "守" : "shou", - "首" : "shou", - "寿" : "shou", - "å—" : "shou", - "ç‹©" : "shou", - "授" : "shou", - "å”®" : "shou", - "å…½" : "shou", - "ç»¶" : "shou", - "瘦" : "shou", - "殳" : "shu", - "书" : "shu", - "抒" : "shu", - "枢" : "shu", - "å”" : "shu", - "å§" : "shu", - "殊" : "shu", - "å€" : "shu", - "梳" : "shu", - "æ·‘" : "shu", - "舒" : "shu", - "ç–" : "shu", - "输" : "shu", - "蔬" : "shu", - "ç§«" : "shu", - "å­°" : "shu", - "赎" : "shu", - "塾" : "shu", - "æš‘" : "shu", - "é»" : "shu", - "ç½²" : "shu", - "蜀" : "shu", - "é¼ " : "shu", - "è–¯" : "shu", - "æ›™" : "shu", - "æˆ" : "shu", - "æŸ" : "shu", - "è¿°" : "shu", - "æ ‘" : "shu", - "ç«–" : "shu", - "æ•" : "shu", - "庶" : "shu", - "墅" : "shu", - "æ¼±" : "shu", - "刷" : "shua", - "å”°" : "shua", - "è€" : "shua", - "è¡°" : "shuai", - "æ‘”" : "shuai", - "甩" : "shuai", - "帅" : "shuai", - "蟀" : "shuai", - "é—©" : "shuan", - "æ‹´" : "shuan", - "æ “" : "shuan", - "æ¶®" : "shuan", - "åŒ" : "shuang", - "霜" : "shuang", - "å­€" : "shuang", - "爽" : "shuang", - "è°" : "shui", - "æ°´" : "shui", - "税" : "shui", - "ç¡" : "shui", - "å®" : "shun", - "顺" : "shun", - "舜" : "shun", - "瞬" : "shun", - "çƒ" : "shuo", - "é“„" : "shuo", - "朔" : "shuo", - "ç¡•" : "shuo", - "å¸" : "si", - "ä¸" : "si", - "ç§" : "si", - "å’" : "si", - "æ€" : "si", - "æ–¯" : "si", - "厮" : "si", - "æ’•" : "si", - "嘶" : "si", - "æ­»" : "si", - "å·³" : "si", - "å››" : "si", - "寺" : "si", - "祀" : "si", - "饲" : "si", - "肆" : "si", - "å—£" : "si", - "æ¾" : "song", - "嵩" : "song", - "怂" : "song", - "耸" : "song", - "悚" : "song", - "讼" : "song", - "宋" : "song", - "é€" : "song", - "诵" : "song", - "颂" : "song", - "æœ" : "sou", - "å—–" : "sou", - "馊" : "sou", - "艘" : "sou", - "åŸ" : "sou", - "擞" : "sou", - "å—½" : "sou", - "è‹" : "su", - "é…¥" : "su", - "ä¿—" : "su", - "夙" : "su", - "诉" : "su", - "肃" : "su", - "ç´ " : "su", - "速" : "su", - "粟" : "su", - "å—‰" : "su", - "å¡‘" : "su", - "溯" : "su", - "ç°Œ" : "su", - "é…¸" : "suan", - "è’œ" : "suan", - "ç®—" : "suan", - "虽" : "sui", - "ç¢" : "sui", - "绥" : "sui", - "éš‹" : "sui", - "éš" : "sui", - "é«“" : "sui", - "å²" : "sui", - "祟" : "sui", - "é‚" : "sui", - "碎" : "sui", - "éš§" : "sui", - "ç©—" : "sui", - "å­™" : "sun", - "æŸ" : "sun", - "笋" : "sun", - "éš¼" : "sun", - "唆" : "suo", - "梭" : "suo", - "è“‘" : "suo", - "ç¾§" : "suo", - "缩" : "suo", - "所" : "suo", - "ç´¢" : "suo", - "唢" : "suo", - "ç" : "suo", - "é”" : "suo", - "ä»–" : "ta", - "它" : "ta", - "她" : "ta", - "铊" : "ta", - "塌" : "ta", - "å¡”" : "ta", - "ç­" : "ta", - "挞" : "ta", - "榻" : "ta", - "è¸" : "ta", - "蹋" : "ta", - "胎" : "tai", - "å°" : "tai", - "é‚°" : "tai", - "抬" : "tai", - "è‹”" : "tai", - "è·†" : "tai", - "太" : "tai", - "æ±°" : "tai", - "æ€" : "tai", - "é’›" : "tai", - "æ³°" : "tai", - "é…ž" : "tai", - "è´ª" : "tan", - "摊" : "tan", - "滩" : "tan", - "瘫" : "tan", - "å›" : "tan", - "昙" : "tan", - "è°ˆ" : "tan", - "ç—°" : "tan", - "è°­" : "tan", - "æ½­" : "tan", - "檀" : "tan", - "å¦" : "tan", - "袒" : "tan", - "毯" : "tan", - "å¹" : "tan", - "ç‚­" : "tan", - "探" : "tan", - "碳" : "tan", - "汤" : "tang", - "嘡" : "tang", - "ç¾°" : "tang", - "å”" : "tang", - "å ‚" : "tang", - "棠" : "tang", - "塘" : "tang", - "æª" : "tang", - "膛" : "tang", - "é•—" : "tang", - "ç³–" : "tang", - "èž³" : "tang", - "倘" : "tang", - "æ·Œ" : "tang", - "躺" : "tang", - "烫" : "tang", - "è¶Ÿ" : "tang", - "æ¶›" : "tao", - "绦" : "tao", - "æŽ" : "tao", - "æ»”" : "tao", - "韬" : "tao", - "饕" : "tao", - "逃" : "tao", - "桃" : "tao", - "é™¶" : "tao", - "è„" : "tao", - "æ·˜" : "tao", - "讨" : "tao", - "套" : "tao", - "特" : "te", - "ç–¼" : "teng", - "è…¾" : "teng", - "誊" : "teng", - "滕" : "teng", - "è—¤" : "teng", - "剔" : "ti", - "梯" : "ti", - "踢" : "ti", - "啼" : "ti", - "题" : "ti", - "é†" : "ti", - "蹄" : "ti", - "体" : "ti", - "屉" : "ti", - "剃" : "ti", - "æ¶•" : "ti", - "悌" : "ti", - "惕" : "ti", - "替" : "ti", - "天" : "tian", - "æ·»" : "tian", - "ç”°" : "tian", - "æ¬" : "tian", - "甜" : "tian", - "å¡«" : "tian", - "å¿" : "tian", - "殄" : "tian", - "舔" : "tian", - "掭" : "tian", - "ä½»" : "tiao", - "挑" : "tiao", - "æ¡" : "tiao", - "è¿¢" : "tiao", - "笤" : "tiao", - "é««" : "tiao", - "窕" : "tiao", - "眺" : "tiao", - "粜" : "tiao", - "è·³" : "tiao", - "帖" : "tie", - "è´´" : "tie", - "é“" : "tie", - "餮" : "tie", - "铤" : "ting", - "厅" : "ting", - "å¬" : "ting", - "烃" : "ting", - "å»·" : "ting", - "亭" : "ting", - "庭" : "ting", - "åœ" : "ting", - "蜓" : "ting", - "å©·" : "ting", - "霆" : "ting", - "挺" : "ting", - "艇" : "ting", - "通" : "tong", - "å—µ" : "tong", - "åŒ" : "tong", - "彤" : "tong", - "æ¡" : "tong", - "铜" : "tong", - "ç«¥" : "tong", - "æ½¼" : "tong", - "çž³" : "tong", - "统" : "tong", - "æ…" : "tong", - "æ¡¶" : "tong", - "ç­’" : "tong", - "æ¸" : "tong", - "ç—›" : "tong", - "å·" : "tou", - "头" : "tou", - "投" : "tou", - "骰" : "tou", - "é€" : "tou", - "凸" : "tu", - "秃" : "tu", - "çª" : "tu", - "图" : "tu", - "è¼" : "tu", - "å¾’" : "tu", - "途" : "tu", - "æ¶‚" : "tu", - "å± " : "tu", - "土" : "tu", - "å" : "tu", - "å…”" : "tu", - "èŸ" : "tu", - "æ¹" : "tuan", - "团" : "tuan", - "ç–ƒ" : "tuan", - "å½–" : "tuan", - "推" : "tui", - "颓" : "tui", - "è…¿" : "tui", - "退" : "tui", - "蜕" : "tui", - "褪" : "tui", - "åž" : "tun", - "屯" : "tun", - "饨" : "tun", - "豚" : "tun", - "臀" : "tun", - "托" : "tuo", - "æ‹–" : "tuo", - "脱" : "tuo", - "ä½—" : "tuo", - "陀" : "tuo", - "驼" : "tuo", - "鸵" : "tuo", - "妥" : "tuo", - "椭" : "tuo", - "唾" : "tuo", - "挖" : "wa", - "哇" : "wa", - "æ´¼" : "wa", - "娲" : "wa", - "è›™" : "wa", - "娃" : "wa", - "瓦" : "wa", - "佤" : "wa", - "袜" : "wa", - "æ­ª" : "wai", - "外" : "wai", - "弯" : "wan", - "剜" : "wan", - "æ¹¾" : "wan", - "蜿" : "wan", - "豌" : "wan", - "丸" : "wan", - "纨" : "wan", - "完" : "wan", - "玩" : "wan", - "顽" : "wan", - "烷" : "wan", - "å®›" : "wan", - "挽" : "wan", - "晚" : "wan", - "惋" : "wan", - "婉" : "wan", - "绾" : "wan", - "çš–" : "wan", - "碗" : "wan", - "万" : "wan", - "è…•" : "wan", - "汪" : "wang", - "亡" : "wang", - "王" : "wang", - "网" : "wang", - "枉" : "wang", - "ç½”" : "wang", - "å¾€" : "wang", - "惘" : "wang", - "妄" : "wang", - "忘" : "wang", - "æ—º" : "wang", - "望" : "wang", - "å±" : "wei", - "å¨" : "wei", - "åŽ" : "wei", - "å¾®" : "wei", - "ç…¨" : "wei", - "è–‡" : "wei", - "å·" : "wei", - "韦" : "wei", - "为" : "wei", - "è¿" : "wei", - "å›´" : "wei", - "é—±" : "wei", - "æ¡…" : "wei", - "唯" : "wei", - "帷" : "wei", - "ç»´" : "wei", - "伟" : "wei", - "伪" : "wei", - "苇" : "wei", - "纬" : "wei", - "å§”" : "wei", - "诿" : "wei", - "娓" : "wei", - "èŽ" : "wei", - "猥" : "wei", - "ç—¿" : "wei", - "å«" : "wei", - "未" : "wei", - "ä½" : "wei", - "味" : "wei", - "ç•" : "wei", - "胃" : "wei", - "è°“" : "wei", - "å–‚" : "wei", - "猬" : "wei", - "渭" : "wei", - "蔚" : "wei", - "æ…°" : "wei", - "é­" : "wei", - "温" : "wen", - "瘟" : "wen", - "æ–‡" : "wen", - "纹" : "wen", - "é—»" : "wen", - "蚊" : "wen", - "雯" : "wen", - "刎" : "wen", - "å»" : "wen", - "ç´Š" : "wen", - "稳" : "wen", - "é—®" : "wen", - "æ±¶" : "wen", - "ç¿" : "weng", - "å—¡" : "weng", - "ç“®" : "weng", - "æŒ" : "wo", - "莴" : "wo", - "倭" : "wo", - "å–”" : "wo", - "çª" : "wo", - "蜗" : "wo", - "我" : "wo", - "肟" : "wo", - "沃" : "wo", - "å§" : "wo", - "æ¡" : "wo", - "幄" : "wo", - "æ–¡" : "wo", - "乌" : "wu", - "邬" : "wu", - "污" : "wu", - "å·«" : "wu", - "呜" : "wu", - "é’¨" : "wu", - "诬" : "wu", - "屋" : "wu", - "æ— " : "wu", - "毋" : "wu", - "芜" : "wu", - "å´" : "wu", - "梧" : "wu", - "蜈" : "wu", - "五" : "wu", - "åˆ" : "wu", - "ä¼" : "wu", - "仵" : "wu", - "怃" : "wu", - "忤" : "wu", - "妩" : "wu", - "æ­¦" : "wu", - "ä¾®" : "wu", - "æ‚" : "wu", - "鹉" : "wu", - "舞" : "wu", - "å…€" : "wu", - "å‹¿" : "wu", - "戊" : "wu", - "务" : "wu", - "åž" : "wu", - "物" : "wu", - "误" : "wu", - "悟" : "wu", - "晤" : "wu", - "骛" : "wu", - "雾" : "wu", - "寤" : "wu", - "鹜" : "wu", - "夕" : "xi", - "å…®" : "xi", - "西" : "xi", - "å¸" : "xi", - "æ±" : "xi", - "希" : "xi", - "昔" : "xi", - "æž" : "xi", - "å”" : "xi", - "牺" : "xi", - "æ¯" : "xi", - "奚" : "xi", - "悉" : "xi", - "烯" : "xi", - "惜" : "xi", - "æ™°" : "xi", - "稀" : "xi", - "ç¿•" : "xi", - "犀" : "xi", - "çš™" : "xi", - "锡" : "xi", - "溪" : "xi", - "熙" : "xi", - "蜥" : "xi", - "熄" : "xi", - "嘻" : "xi", - "è†" : "xi", - "嬉" : "xi", - "ç¾²" : "xi", - "蟋" : "xi", - "曦" : "xi", - "ä¹ " : "xi", - "席" : "xi", - "袭" : "xi", - "媳" : "xi", - "æ´—" : "xi", - "玺" : "xi", - "å¾™" : "xi", - "å–œ" : "xi", - "禧" : "xi", - "æˆ" : "xi", - "细" : "xi", - "éš™" : "xi", - "å‘·" : "xia", - "虾" : "xia", - "瞎" : "xia", - "匣" : "xia", - "ä¾ " : "xia", - "峡" : "xia", - "ç‹­" : "xia", - "é" : "xia", - "ç‘•" : "xia", - "暇" : "xia", - "è¾–" : "xia", - "霞" : "xia", - "é» " : "xia", - "下" : "xia", - "å¤" : "xia", - "ç½…" : "xia", - "ä»™" : "xian", - "å…ˆ" : "xian", - "æ°™" : "xian", - "掀" : "xian", - "é…°" : "xian", - "锨" : "xian", - "鲜" : "xian", - "é—²" : "xian", - "è´¤" : "xian", - "弦" : "xian", - "å’¸" : "xian", - "æ¶Ž" : "xian", - "娴" : "xian", - "è¡”" : "xian", - "舷" : "xian", - "嫌" : "xian", - "显" : "xian", - "险" : "xian", - "è·£" : "xian", - "è—“" : "xian", - "è‹‹" : "xian", - "县" : "xian", - "现" : "xian", - "é™" : "xian", - "线" : "xian", - "宪" : "xian", - "é™·" : "xian", - "馅" : "xian", - "羡" : "xian", - "献" : "xian", - "è…º" : "xian", - "乡" : "xiang", - "相" : "xiang", - "香" : "xiang", - "厢" : "xiang", - "湘" : "xiang", - "ç®±" : "xiang", - "襄" : "xiang", - "é•¶" : "xiang", - "详" : "xiang", - "祥" : "xiang", - "ç¿”" : "xiang", - "享" : "xiang", - "å“" : "xiang", - "饷" : "xiang", - "飨" : "xiang", - "想" : "xiang", - "å‘" : "xiang", - "项" : "xiang", - "象" : "xiang", - "åƒ" : "xiang", - "æ©¡" : "xiang", - "è‚–" : "xiao", - "æž­" : "xiao", - "å““" : "xiao", - "éª" : "xiao", - "é€" : "xiao", - "消" : "xiao", - "宵" : "xiao", - "è§" : "xiao", - "ç¡" : "xiao", - "销" : "xiao", - "箫" : "xiao", - "潇" : "xiao", - "霄" : "xiao", - "é­ˆ" : "xiao", - "嚣" : "xiao", - "å´¤" : "xiao", - "æ·†" : "xiao", - "å°" : "xiao", - "晓" : "xiao", - "å­" : "xiao", - "å“®" : "xiao", - "笑" : "xiao", - "效" : "xiao", - "啸" : "xiao", - "挟" : "xie", - "些" : "xie", - "楔" : "xie", - "æ­‡" : "xie", - "èŽ" : "xie", - "å" : "xie", - "èƒ" : "xie", - "å•" : "xie", - "æ–œ" : "xie", - "è°" : "xie", - "æ³" : "xie", - "æº" : "xie", - "æ’·" : "xie", - "éž‹" : "xie", - "写" : "xie", - "泄" : "xie", - "æ³»" : "xie", - "å¸" : "xie", - "屑" : "xie", - "械" : "xie", - "亵" : "xie", - "è°¢" : "xie", - "é‚‚" : "xie", - "懈" : "xie", - "蟹" : "xie", - "心" : "xin", - "芯" : "xin", - "è¾›" : "xin", - "欣" : "xin", - "锌" : "xin", - "æ–°" : "xin", - "æ­†" : "xin", - "è–ª" : "xin", - "馨" : "xin", - "é‘«" : "xin", - "ä¿¡" : "xin", - "è¡…" : "xin", - "星" : "xing", - "猩" : "xing", - "惺" : "xing", - "è…¥" : "xing", - "刑" : "xing", - "é‚¢" : "xing", - "å½¢" : "xing", - "åž‹" : "xing", - "醒" : "xing", - "擤" : "xing", - "å…´" : "xing", - "æ" : "xing", - "幸" : "xing", - "性" : "xing", - "å§“" : "xing", - "æ‚»" : "xing", - "凶" : "xiong", - "å…„" : "xiong", - "匈" : "xiong", - "è®»" : "xiong", - "æ±¹" : "xiong", - "胸" : "xiong", - "雄" : "xiong", - "熊" : "xiong", - "休" : "xiu", - "å’»" : "xiu", - "ä¿®" : "xiu", - "羞" : "xiu", - "朽" : "xiu", - "ç§€" : "xiu", - "袖" : "xiu", - "绣" : "xiu", - "锈" : "xiu", - "å—…" : "xiu", - "欻" : "xu", - "戌" : "xu", - "é¡»" : "xu", - "胥" : "xu", - "虚" : "xu", - "墟" : "xu", - "需" : "xu", - "é­†" : "xu", - "å¾" : "xu", - "许" : "xu", - "诩" : "xu", - "æ ©" : "xu", - "æ—­" : "xu", - "åº" : "xu", - "å™" : "xu", - "æ¤" : "xu", - "é…—" : "xu", - "å‹–" : "xu", - "绪" : "xu", - "ç»­" : "xu", - "çµ®" : "xu", - "å©¿" : "xu", - "è“„" : "xu", - "ç…¦" : "xu", - "轩" : "xuan", - "宣" : "xuan", - "æŽ" : "xuan", - "å–§" : "xuan", - "æš„" : "xuan", - "玄" : "xuan", - "悬" : "xuan", - "æ—‹" : "xuan", - "漩" : "xuan", - "ç’‡" : "xuan", - "选" : "xuan", - "癣" : "xuan", - "ç‚«" : "xuan", - "绚" : "xuan", - "眩" : "xuan", - "渲" : "xuan", - "é´" : "xue", - "è–›" : "xue", - "ç©´" : "xue", - "å­¦" : "xue", - "å™±" : "xue", - "雪" : "xue", - "è°‘" : "xue", - "å‹‹" : "xun", - "ç†" : "xun", - "è–°" : "xun", - "醺" : "xun", - "æ—¬" : "xun", - "寻" : "xun", - "å·¡" : "xun", - "询" : "xun", - "è€" : "xun", - "循" : "xun", - "è®­" : "xun", - "讯" : "xun", - "æ±›" : "xun", - "è¿…" : "xun", - "驯" : "xun", - "徇" : "xun", - "逊" : "xun", - "殉" : "xun", - "å·½" : "xun", - "丫" : "ya", - "压" : "ya", - "押" : "ya", - "鸦" : "ya", - "æ¡ " : "ya", - "鸭" : "ya", - "牙" : "ya", - "ä¼¢" : "ya", - "芽" : "ya", - "èšœ" : "ya", - "å´–" : "ya", - "涯" : "ya", - "çš" : "ya", - "è¡™" : "ya", - "å“‘" : "ya", - "é›…" : "ya", - "亚" : "ya", - "è®¶" : "ya", - "娅" : "ya", - "æ°©" : "ya", - "æ " : "ya", - "å‘€" : "ya", - "æ¹" : "yan", - "胭" : "yan", - "烟" : "yan", - "焉" : "yan", - "阉" : "yan", - "æ·¹" : "yan", - "æ¹®" : "yan", - "å«£" : "yan", - "å»¶" : "yan", - "é—«" : "yan", - "严" : "yan", - "言" : "yan", - "å¦" : "yan", - "岩" : "yan", - "炎" : "yan", - "沿" : "yan", - "ç ”" : "yan", - "ç›" : "yan", - "阎" : "yan", - "蜒" : "yan", - "ç­µ" : "yan", - "颜" : "yan", - "æª" : "yan", - "奄" : "yan", - "俨" : "yan", - "è¡" : "yan", - "掩" : "yan", - "郾" : "yan", - "眼" : "yan", - "åƒ" : "yan", - "æ¼”" : "yan", - "é­‡" : "yan", - "é¼¹" : "yan", - "厌" : "yan", - "ç š" : "yan", - "彦" : "yan", - "艳" : "yan", - "æ™" : "yan", - "å”" : "yan", - "å®´" : "yan", - "验" : "yan", - "è°š" : "yan", - "å °" : "yan", - "é›" : "yan", - "ç„°" : "yan", - "滟" : "yan", - "é¤" : "yan", - "燕" : "yan", - "èµ" : "yan", - "央" : "yang", - "æ³±" : "yang", - "殃" : "yang", - "鸯" : "yang", - "ç§§" : "yang", - "扬" : "yang", - "羊" : "yang", - "阳" : "yang", - "æ¨" : "yang", - "佯" : "yang", - "ç–¡" : "yang", - "徉" : "yang", - "æ´‹" : "yang", - "ä»°" : "yang", - "å…»" : "yang", - "æ°§" : "yang", - "ç—’" : "yang", - "æ€" : "yang", - "æ ·" : "yang", - "æ™" : "yang", - "烊" : "yang", - "æ¼¾" : "yang", - "幺" : "yao", - "夭" : "yao", - "å†" : "yao", - "妖" : "yao", - "è…°" : "yao", - "é‚€" : "yao", - "爻" : "yao", - "å°§" : "yao", - "è‚´" : "yao", - "å§š" : "yao", - "窑" : "yao", - "è°£" : "yao", - "摇" : "yao", - "å¾­" : "yao", - "é¥" : "yao", - "ç‘¶" : "yao", - "æ³" : "yao", - "å’¬" : "yao", - "舀" : "yao", - "窈" : "yao", - "è¯" : "yao", - "è¦" : "yao", - "鹞" : "yao", - "耀" : "yao", - "耶" : "ye", - "掖" : "ye", - "椰" : "ye", - "噎" : "ye", - "爷" : "ye", - "æ¶" : "ye", - "也" : "ye", - "冶" : "ye", - "野" : "ye", - "业" : "ye", - "å¶" : "ye", - "页" : "ye", - "曳" : "ye", - "夜" : "ye", - "æ¶²" : "ye", - "è°’" : "ye", - "è…‹" : "ye", - "一" : "yi", - "伊" : "yi", - "è¡£" : "yi", - "医" : "yi", - "ä¾" : "yi", - "å’¿" : "yi", - "æ–" : "yi", - "壹" : "yi", - "漪" : "yi", - "噫" : "yi", - "仪" : "yi", - "夷" : "yi", - "饴" : "yi", - "宜" : "yi", - "å’¦" : "yi", - "è´»" : "yi", - "姨" : "yi", - "胰" : "yi", - "ç§»" : "yi", - "ç—" : "yi", - "é¢" : "yi", - "ç–‘" : "yi", - "å½" : "yi", - "ä¹™" : "yi", - "å·²" : "yi", - "以" : "yi", - "è‹¡" : "yi", - "矣" : "yi", - "迤" : "yi", - "èš" : "yi", - "倚" : "yi", - "椅" : "yi", - "æ—–" : "yi", - "乂" : "yi", - "亿" : "yi", - "义" : "yi", - "艺" : "yi", - "刈" : "yi", - "忆" : "yi", - "è®®" : "yi", - "å±¹" : "yi", - "亦" : "yi", - "异" : "yi", - "抑" : "yi", - "å‘“" : "yi", - "é‚‘" : "yi", - "å½¹" : "yi", - "译" : "yi", - "易" : "yi", - "诣" : "yi", - "绎" : "yi", - "é©¿" : "yi", - "è½¶" : "yi", - "弈" : "yi", - "奕" : "yi", - "ç–«" : "yi", - "羿" : "yi", - "益" : "yi", - "è°Š" : "yi", - "逸" : "yi", - "翌" : "yi", - "è‚„" : "yi", - "裔" : "yi", - "æ„" : "yi", - "溢" : "yi", - "ç¼¢" : "yi", - "毅" : "yi", - "è–" : "yi", - "翳" : "yi", - "臆" : "yi", - "翼" : "yi", - "å› " : "yin", - "阴" : "yin", - "茵" : "yin", - "è«" : "yin", - "音" : "yin", - "å§»" : "yin", - "铟" : "yin", - "å–‘" : "yin", - "æ„”" : "yin", - "åŸ" : "yin", - "åž " : "yin", - "é“¶" : "yin", - "æ·«" : "yin", - "寅" : "yin", - "龈" : "yin", - "霪" : "yin", - "å°¹" : "yin", - "引" : "yin", - "èš“" : "yin", - "éš" : "yin", - "瘾" : "yin", - "å°" : "yin", - "英" : "ying", - "莺" : "ying", - "å©´" : "ying", - "嘤" : "ying", - "罂" : "ying", - "缨" : "ying", - "樱" : "ying", - "鹦" : "ying", - "膺" : "ying", - "é¹°" : "ying", - "迎" : "ying", - "茔" : "ying", - "è§" : "ying", - "盈" : "ying", - "莹" : "ying", - "è¤" : "ying", - "è¥" : "ying", - "è¦" : "ying", - "楹" : "ying", - "è‡" : "ying", - "èµ¢" : "ying", - "瀛" : "ying", - "é¢" : "ying", - "颖" : "ying", - "å½±" : "ying", - "应" : "ying", - "映" : "ying", - "硬" : "ying", - "哟" : "yo", - "å”·" : "yo", - "ä½£" : "yong", - "æ‹¥" : "yong", - "庸" : "yong", - "é›" : "yong", - "壅" : "yong", - "臃" : "yong", - "æ°¸" : "yong", - "甬" : "yong", - "å’" : "yong", - "æ³³" : "yong", - "勇" : "yong", - "æ¶Œ" : "yong", - "æ¿" : "yong", - "蛹" : "yong", - "踊" : "yong", - "用" : "yong", - "优" : "you", - "攸" : "you", - "å¿§" : "you", - "呦" : "you", - "å¹½" : "you", - "æ‚ " : "you", - "å°¤" : "you", - "ç”±" : "you", - "é‚®" : "you", - "犹" : "you", - "æ²¹" : "you", - "é“€" : "you", - "鱿" : "you", - "游" : "you", - "å‹" : "you", - "有" : "you", - "é…‰" : "you", - "莠" : "you", - "é»" : "you", - "åˆ" : "you", - "å³" : "you", - "å¹¼" : "you", - "佑" : "you", - "柚" : "you", - "囿" : "you", - "诱" : "you", - "鼬" : "you", - "è¿‚" : "yu", - "纡" : "yu", - "æ–¼" : "yu", - "æ·¤" : "yu", - "瘀" : "yu", - "于" : "yu", - "ä½™" : "yu", - "盂" : "yu", - "臾" : "yu", - "é±¼" : "yu", - "竽" : "yu", - "俞" : "yu", - "狳" : "yu", - "è°€" : "yu", - "娱" : "yu", - "渔" : "yu", - "éš…" : "yu", - "æ„" : "yu", - "逾" : "yu", - "è…´" : "yu", - "æ¸" : "yu", - "愉" : "yu", - "瑜" : "yu", - "榆" : "yu", - "虞" : "yu", - "愚" : "yu", - "舆" : "yu", - "与" : "yu", - "予" : "yu", - "屿" : "yu", - "宇" : "yu", - "ç¾½" : "yu", - "雨" : "yu", - "禹" : "yu", - "语" : "yu", - "圄" : "yu", - "玉" : "yu", - "é©­" : "yu", - "芋" : "yu", - "妪" : "yu", - "éƒ" : "yu", - "育" : "yu", - "狱" : "yu", - "æµ´" : "yu", - "预" : "yu", - "域" : "yu", - "欲" : "yu", - "è°•" : "yu", - "é‡" : "yu", - "å–»" : "yu", - "御" : "yu", - "寓" : "yu", - "裕" : "yu", - "愈" : "yu", - "誉" : "yu", - "豫" : "yu", - "鹬" : "yu", - "鸢" : "yuan", - "鸳" : "yuan", - "冤" : "yuan", - "渊" : "yuan", - "å…ƒ" : "yuan", - "å›­" : "yuan", - "垣" : "yuan", - "è¢" : "yuan", - "原" : "yuan", - "圆" : "yuan", - "æ´" : "yuan", - "媛" : "yuan", - "缘" : "yuan", - "猿" : "yuan", - "æº" : "yuan", - "辕" : "yuan", - "远" : "yuan", - "è‹‘" : "yuan", - "怨" : "yuan", - "院" : "yuan", - "æ„¿" : "yuan", - "æ›°" : "yue", - "月" : "yue", - "å²³" : "yue", - "é’º" : "yue", - "阅" : "yue", - "悦" : "yue", - "è·ƒ" : "yue", - "è¶Š" : "yue", - "粤" : "yue", - "晕" : "yun", - "云" : "yun", - "匀" : "yun", - "芸" : "yun", - "纭" : "yun", - "耘" : "yun", - "å…" : "yun", - "陨" : "yun", - "æ®’" : "yun", - "å­•" : "yun", - "è¿" : "yun", - "é…" : "yun", - "æ„ " : "yun", - "韵" : "yun", - "è•´" : "yun", - "熨" : "yun", - "åŒ" : "za", - "å’‚" : "za", - "æ‚" : "za", - "ç ¸" : "za", - "ç¾" : "zai", - "甾" : "zai", - "哉" : "zai", - "æ ½" : "zai", - "è½½" : "zai", - "å®°" : "zai", - "å´½" : "zai", - "å†" : "zai", - "在" : "zai", - "糌" : "zan", - "ç°ª" : "zan", - "å’±" : "zan", - "è¶±" : "zan", - "æš‚" : "zan", - "錾" : "zan", - "赞" : "zan", - "赃" : "zang", - "è„" : "zang", - "臧" : "zang", - "驵" : "zang", - "葬" : "zang", - "é­" : "zao", - "糟" : "zao", - "凿" : "zao", - "æ—©" : "zao", - "枣" : "zao", - "蚤" : "zao", - "澡" : "zao", - "è—»" : "zao", - "çš‚" : "zao", - "ç¶" : "zao", - "造" : "zao", - "噪" : "zao", - "燥" : "zao", - "èº" : "zao", - "则" : "ze", - "è´£" : "ze", - "æ³½" : "ze", - "å•§" : "ze", - "帻" : "ze", - "仄" : "ze", - "è´¼" : "zei", - "怎" : "zen", - "è°®" : "zen", - "增" : "zeng", - "憎" : "zeng", - "锃" : "zeng", - "èµ " : "zeng", - "甑" : "zeng", - "å’" : "zha", - "挓" : "zha", - "哳" : "zha", - "æ¸" : "zha", - "渣" : "zha", - "楂" : "zha", - "札" : "zha", - "é—¸" : "zha", - "é“¡" : "zha", - "眨" : "zha", - "ç Ÿ" : "zha", - "ä¹" : "zha", - "诈" : "zha", - "å’¤" : "zha", - "炸" : "zha", - "èš±" : "zha", - "榨" : "zha", - "拃" : "zha", - "æ–‹" : "zhai", - "摘" : "zhai", - "å®…" : "zhai", - "窄" : "zhai", - "债" : "zhai", - "ç ¦" : "zhai", - "寨" : "zhai", - "æ²¾" : "zhan", - "毡" : "zhan", - "粘" : "zhan", - "詹" : "zhan", - "è°µ" : "zhan", - "çž»" : "zhan", - "æ–©" : "zhan", - "ç›" : "zhan", - "展" : "zhan", - "å´­" : "zhan", - "æŒ" : "zhan", - "è¾—" : "zhan", - "å " : "zhan", - "æ ˆ" : "zhan", - "战" : "zhan", - "ç«™" : "zhan", - "绽" : "zhan", - "æ¹›" : "zhan", - "蘸" : "zhan", - "å¼ " : "zhang", - "ç« " : "zhang", - "ç" : "zhang", - "å½°" : "zhang", - "樟" : "zhang", - "蟑" : "zhang", - "涨" : "zhang", - "掌" : "zhang", - "丈" : "zhang", - "ä»—" : "zhang", - "æ–" : "zhang", - "å¸" : "zhang", - "è´¦" : "zhang", - "胀" : "zhang", - "éšœ" : "zhang", - "å¶‚" : "zhang", - "瘴" : "zhang", - "é’Š" : "zhao", - "æ‹›" : "zhao", - "昭" : "zhao", - "找" : "zhao", - "æ²¼" : "zhao", - "å…†" : "zhao", - "è¯" : "zhao", - "èµµ" : "zhao", - "ç…§" : "zhao", - "罩" : "zhao", - "肇" : "zhao", - "蜇" : "zhe", - "é®" : "zhe", - "哲" : "zhe", - "辄" : "zhe", - "è›°" : "zhe", - "è°ª" : "zhe", - "è¾™" : "zhe", - "者" : "zhe", - "é”—" : "zhe", - "èµ­" : "zhe", - "褶" : "zhe", - "æµ™" : "zhe", - "è”—" : "zhe", - "é¹§" : "zhe", - "è´ž" : "zhen", - "é’ˆ" : "zhen", - "侦" : "zhen", - "ç" : "zhen", - "帧" : "zhen", - "胗" : "zhen", - "真" : "zhen", - "ç §" : "zhen", - "æ–Ÿ" : "zhen", - "甄" : "zhen", - "榛" : "zhen", - "ç®´" : "zhen", - "臻" : "zhen", - "诊" : "zhen", - "æž•" : "zhen", - "ç–¹" : "zhen", - "缜" : "zhen", - "阵" : "zhen", - "鸩" : "zhen", - "振" : "zhen", - "朕" : "zhen", - "赈" : "zhen", - "震" : "zhen", - "镇" : "zhen", - "争" : "zheng", - "å¾" : "zheng", - "怔" : "zheng", - "å³¥" : "zheng", - "ç‹°" : "zheng", - "ç" : "zheng", - "é“®" : "zheng", - "ç­" : "zheng", - "è’¸" : "zheng", - "拯" : "zheng", - "æ•´" : "zheng", - "æ­£" : "zheng", - "è¯" : "zheng", - "郑" : "zheng", - "诤" : "zheng", - "政" : "zheng", - "挣" : "zheng", - "ç—‡" : "zheng", - "之" : "zhi", - "支" : "zhi", - "åª" : "zhi", - "æ±" : "zhi", - "èŠ" : "zhi", - "å±" : "zhi", - "æž" : "zhi", - "知" : "zhi", - "è‚¢" : "zhi", - "织" : "zhi", - "æ €" : "zhi", - "è„‚" : "zhi", - "蜘" : "zhi", - "执" : "zhi", - "ç›´" : "zhi", - "侄" : "zhi", - "值" : "zhi", - "èŒ" : "zhi", - "æ¤" : "zhi", - "è·–" : "zhi", - "踯" : "zhi", - "æ­¢" : "zhi", - "æ—¨" : "zhi", - "å€" : "zhi", - "芷" : "zhi", - "纸" : "zhi", - "祉" : "zhi", - "指" : "zhi", - "æž³" : "zhi", - "å’«" : "zhi", - "è¶¾" : "zhi", - "é…¯" : "zhi", - "至" : "zhi", - "å¿—" : "zhi", - "豸" : "zhi", - "帜" : "zhi", - "制" : "zhi", - "è´¨" : "zhi", - "ç‚™" : "zhi", - "æ²»" : "zhi", - "æ ‰" : "zhi", - "å³™" : "zhi", - "挚" : "zhi", - "桎" : "zhi", - "致" : "zhi", - "ç§©" : "zhi", - "掷" : "zhi", - "ç—”" : "zhi", - "窒" : "zhi", - "è›­" : "zhi", - "智" : "zhi", - "ç—£" : "zhi", - "滞" : "zhi", - "ç½®" : "zhi", - "雉" : "zhi", - "稚" : "zhi", - "中" : "zhong", - "å¿ " : "zhong", - "终" : "zhong", - "ç›…" : "zhong", - "é’Ÿ" : "zhong", - "è¡·" : "zhong", - "è‚¿" : "zhong", - "冢" : "zhong", - "踵" : "zhong", - "仲" : "zhong", - "ä¼—" : "zhong", - "舟" : "zhou", - "å·ž" : "zhou", - "诌" : "zhou", - "周" : "zhou", - "æ´²" : "zhou", - "ç²¥" : "zhou", - "妯" : "zhou", - "è½´" : "zhou", - "肘" : "zhou", - "纣" : "zhou", - "å’’" : "zhou", - "å®™" : "zhou", - "胄" : "zhou", - "昼" : "zhou", - "çš±" : "zhou", - "骤" : "zhou", - "帚" : "zhou", - "朱" : "zhu", - "ä¾" : "zhu", - "诛" : "zhu", - "茱" : "zhu", - "ç " : "zhu", - "æ ª" : "zhu", - "诸" : "zhu", - "é“¢" : "zhu", - "猪" : "zhu", - "è››" : "zhu", - "竹" : "zhu", - "竺" : "zhu", - "é€" : "zhu", - "烛" : "zhu", - "躅" : "zhu", - "主" : "zhu", - "æ‹„" : "zhu", - "ç…®" : "zhu", - "嘱" : "zhu", - "çž©" : "zhu", - "伫" : "zhu", - "苎" : "zhu", - "助" : "zhu", - "ä½" : "zhu", - "è´®" : "zhu", - "注" : "zhu", - "é©»" : "zhu", - "柱" : "zhu", - "ç¥" : "zhu", - "è‘—" : "zhu", - "蛀" : "zhu", - "铸" : "zhu", - "ç­‘" : "zhu", - "抓" : "zhua", - "è·©" : "zhuai", - "拽" : "zhuai", - "专" : "zhuan", - "ç –" : "zhuan", - "转" : "zhuan", - "å•­" : "zhuan", - "æ’°" : "zhuan", - "篆" : "zhuan", - "妆" : "zhuang", - "庄" : "zhuang", - "æ¡©" : "zhuang", - "装" : "zhuang", - "壮" : "zhuang", - "状" : "zhuang", - "æ’ž" : "zhuang", - "å¹¢" : "zhuang", - "追" : "zhui", - "骓" : "zhui", - "锥" : "zhui", - "å " : "zhui", - "ç¼€" : "zhui", - "惴" : "zhui", - "赘" : "zhui", - "è°†" : "zhun", - "准" : "zhun", - "æ‹™" : "zhuo", - "æ‰" : "zhuo", - "桌" : "zhuo", - "ç¼" : "zhuo", - "èŒ" : "zhuo", - "å“" : "zhuo", - "æ–«" : "zhuo", - "浊" : "zhuo", - "é…Œ" : "zhuo", - "å•„" : "zhuo", - "æ“¢" : "zhuo", - "镯" : "zhuo", - "å­œ" : "zi", - "å’¨" : "zi", - "å§¿" : "zi", - "èµ€" : "zi", - "资" : "zi", - "辎" : "zi", - "å—ž" : "zi", - "滋" : "zi", - "é”±" : "zi", - "龇" : "zi", - "å­" : "zi", - "å§Š" : "zi", - "ç§­" : "zi", - "ç±½" : "zi", - "梓" : "zi", - "ç´«" : "zi", - "訾" : "zi", - "滓" : "zi", - "自" : "zi", - "å­—" : "zi", - "æ£" : "zi", - "眦" : "zi", - "æ¸" : "zi", - "å®—" : "zong", - "综" : "zong", - "棕" : "zong", - "踪" : "zong", - "鬃" : "zong", - "总" : "zong", - "纵" : "zong", - "ç²½" : "zong", - "邹" : "zou", - "èµ°" : "zou", - "å¥" : "zou", - "æ" : "zou", - "ç§Ÿ" : "zu", - "è¶³" : "zu", - "å’" : "zu", - "æ—" : "zu", - "诅" : "zu", - "阻" : "zu", - "组" : "zu", - "俎" : "zu", - "祖" : "zu", - "纂" : "zuan", - "é’»" : "zuan", - "攥" : "zuan", - "嘴" : "zui", - "最" : "zui", - "罪" : "zui", - "醉" : "zui", - "å°Š" : "zun", - "éµ" : "zun", - "樽" : "zun", - "鳟" : "zun", - "昨" : "zuo", - "å·¦" : "zuo", - "ä½" : "zuo", - "作" : "zuo", - "å" : "zuo", - "阼" : "zuo", - "æ€" : "zuo", - "祚" : "zuo", - "唑" : "zuo", - "座" : "zuo", - "åš" : "zuo", - "é…¢" : "zuo", - "æ–Œ" : "bin", - "曾" : "zeng", - "查" : "zha", - "査" : "zha", - "乘" : "cheng", - "ä¼ " : "chuan", - "ä¸" : "ding", - "行" : "xing", - "瑾" : "jin", - "å©§" : "jing", - "æº" : "kai", - "阚" : "kan", - "奎" : "kui", - "ä¹" : "le", - "陆" : "lu", - "逯" : "lv", - "ç’" : "lu", - "æ·¼" : "miao", - "é—µ" : "min", - "娜" : "na", - "奇" : "qi", - "ç¦" : "qi", - "强" : "qiang", - "邱" : "qiu", - "芮" : "rui", - "莎" : "sha", - "ç››" : "sheng", - "石" : "shi", - "祎" : "yi", - "æ®·" : "yin", - "ç‘›" : "ying", - "昱" : "yu", - "眃" : "yun", - "ç¢" : "zhuo", - "æž°" : "ping", - "玟" : "min", - "ç‰" : "min", - "ç£" : "xun", - "æ·‡" : "qi", - "缈" : "miao", - "å½§" : "yu", - "祺" : "qi", - "骞" : "qian", - "åžš" : "yao", - "妸" : "e", - "烜" : "hui", - "ç¥" : "qi", - "å‚¢" : "jia", - "ç®" : "pei", - "æ¿®" : "pu", - "屺" : "qi", - "ç…" : "shen", - "缇" : "ti", - "霈" : "pei", - "晞" : "xi", - "ç’ " : "fan", - "éª" : "qi", - "å§ž" : "ji", - "å²" : "cai", - "é½¼" : "chu", - "宓" : "mi", - "朴" : "pu", - "è" : "qi", - "颀" : "qi", - "阗" : "tian", - "湉" : "tian", - "ç¿€" : "chong", - "å²·" : "min", - "桤" : "qi", - "囯" : "guo", - "æµ›" : "han", - "å‹" : "meng", - "è‹ " : "min", - "å²" : "qian", - "çšž" : "hao", - "å²" : "qi", - "溥" : "pu", - "锘" : "muo", - "渼" : "mei", - "燊" : "shen", - "玚" : "chang", - "亓" : "qi", - "湋" : "wei", - "æ¶´" : "wan", - "沤" : "ou", - "胖" : "pang", - "莆" : "pu", - "扦" : "qian", - "僳" : "su", - "å" : "tan", - "锑" : "ti", - "åš" : "ti", - "è…†" : "tian", - "丿" : "pie", - "é¼—" : "tao", - "芈" : "mi", - "匚" : "fang", - "刂" : "li", - "冂" : "tong", - "亻" : "dan", - "仳" : "pi", - "俜" : "ping", - "俳" : "pai", - "倜" : "ti", - "å‚¥" : "tang", - "å‚©" : "nuo", - "ä½¥" : "qian", - "勹" : "bao", - "亠" : "tou", - "廾" : "gong", - "åŒ" : "pao", - "扌" : "ti", - "拚" : "pin", - "掊" : "pou", - "æ¦" : "nuo", - "æ“—" : "pi", - "å••" : "tao", - "å—¦" : "suo", - "å—" : "suo", - "è¾”" : "pei", - "嘌" : "piao", - "å—¾" : "sou", - "嘧" : "mi", - "帔" : "pei", - "帑" : "tang", - "彡" : "san", - "犭" : "fan", - "ç‹" : "pao", - "狲" : "sun", - "ç‹»" : "jun", - "飧" : "sun", - "夂" : "zhi", - "饣" : "shi", - "庀" : "pi", - "å¿„" : "shu", - "æ„«" : "su", - "é—¼" : "ta", - "丬" : "jiang", - "æ°µ" : "san", - "æ±”" : "qi", - "æ²”" : "mian", - "汨" : "mi", - "æ³®" : "pan", - "æ´®" : "tao", - "æ¶‘" : "su", - "æ· " : "pi", - "湓" : "pen", - "溻" : "ta", - "æº" : "tang", - "濉" : "sui", - "宀" : "bao", - "æ´" : "qian", - "è¾¶" : "zou", - "逄" : "pang", - "逖" : "ti", - "é¢" : "ta", - "邈" : "miao", - "邃" : "sui", - "å½" : "ji", - "å±®" : "cao", - "娑" : "suo", - "å«–" : "piao", - "纟" : "jiao", - "ç¼—" : "min", - "ç‘­" : "tang", - "æª" : "miao", - "æ¡«" : "suo", - "榀" : "pin", - "榫" : "sun", - "æ§­" : "qi", - "甓" : "pi", - "æ”´" : "po", - "耆" : "qi", - "ç‰" : "pin", - "çŠ" : "pian", - "æ°†" : "pu", - "攵" : "fan", - "肽" : "tai", - "胼" : "pian", - "è„’" : "mi", - "脬" : "pao", - "æ—†" : "pei", - "炱" : "tai", - "燧" : "sui", - "ç¬" : "biao", - "礻" : "shi", - "祧" : "tiao", - "å¿‘" : "te", - "å¿" : "tan", - "æ„" : "min", - "è‚€" : "yu", - "碛" : "qi", - "眄" : "mian", - "眇" : "miao", - "眭" : "sui", - "çƒ" : "suo", - "çž" : "sou", - "ç•‹" : "tian", - "ç½´" : "pi", - "è “" : "meng", - "è ›" : "mie", - "笸" : "po", - "ç­¢" : "pa", - "è¡„" : "nv", - "艋" : "meng", - "敉" : "mi", - "糸" : "mi", - "綦" : "qi", - "醅" : "pei", - "醣" : "tang", - "è¶¿" : "ta", - "è§«" : "su", - "龆" : "tiao", - "鲆" : "ping", - "稣" : "su", - "é²" : "tai", - "鲦" : "tiao", - "鳎" : "ta", - "é«‚" : "qia", - "縻" : "mi", - "裒" : "pou", - "冫" : "liang", - "冖" : "tu", - "è® " : "yan", - "è°‡" : "sui", - "è°" : "pian", - "è°¡" : "su", - "å©" : "dan", - "é˜" : "zuo", - "é™´" : "pi", - "邳" : "pi", - "郫" : "pi", - "郯" : "tan", - "å»´" : "yin", - "凵" : "qian", - "圮" : "pi", - "å ‹" : "peng", - "é¼™" : "pi", - "艹" : "cao", - "芑" : "qi", - "苤" : "pie", - "èª" : "sun", - "è½" : "sui", - "葜" : "qia", - "è’Ž" : "pai", - "蔌" : "su", - "蕲" : "qi", - "è–®" : "sou", - "è–¹" : "tai", - "蘼" : "mi", - "é’…" : "jin", - "é’·" : "po", - "é’½" : "tan", - "é“" : "pi", - "é“´" : "tang", - "铽" : "te", - "锫" : "pei", - "锬" : "tan", - "锼" : "sou", - "镤" : "pu", - "镨" : "pu", - "皤" : "po", - "鹈" : "ti", - "鹋" : "miao", - "ç–’" : "bing", - "ç–±" : "pao", - "衤" : "yi", - "袢" : "pan", - "裼" : "ti", - "襻" : "pan", - "耥" : "tang", - "耦" : "ou", - "è™" : "hu", - "è›´" : "qi", - "蜞" : "qi", - "蜱" : "pi", - "èž‹" : "sou", - "èž—" : "tang", - "èžµ" : "piao", - "蟛" : "peng" -} diff --git a/vendor/cocur/slugify/Resources/rules/croatian.json b/vendor/cocur/slugify/Resources/rules/croatian.json deleted file mode 100644 index bf2b10d7..00000000 --- a/vendor/cocur/slugify/Resources/rules/croatian.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "ÄŒ": "C", - "Ć": "C", - "Ž": "Z", - "Å ": "S", - "Ä": "Dj", - "Ä": "c", - "ć": "c", - "ž": "z", - "Å¡": "s", - "Ä‘": "dj" -} \ No newline at end of file diff --git a/vendor/cocur/slugify/Resources/rules/czech.json b/vendor/cocur/slugify/Resources/rules/czech.json deleted file mode 100644 index 549f8054..00000000 --- a/vendor/cocur/slugify/Resources/rules/czech.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "ÄŒ": "C", - "ÄŽ": "D", - "Äš": "E", - "Ň": "N", - "Ř": "R", - "Å ": "S", - "Ť": "T", - "Å®": "U", - "Ž": "Z", - "Ä": "c", - "Ä": "d", - "Ä›": "e", - "ň": "n", - "Å™": "r", - "Å¡": "s", - "Å¥": "t", - "ů": "u", - "ž": "z" -} diff --git a/vendor/cocur/slugify/Resources/rules/danish.json b/vendor/cocur/slugify/Resources/rules/danish.json deleted file mode 100644 index b88c17c7..00000000 --- a/vendor/cocur/slugify/Resources/rules/danish.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "Æ": "Ae", - "æ": "ae", - "Ø": "Oe", - "ø": "oe", - "Ã…": "Aa", - "Ã¥": "aa", - "É": "E", - "é": "e" -} diff --git a/vendor/cocur/slugify/Resources/rules/default.json b/vendor/cocur/slugify/Resources/rules/default.json deleted file mode 100644 index 55574eff..00000000 --- a/vendor/cocur/slugify/Resources/rules/default.json +++ /dev/null @@ -1,186 +0,0 @@ -{ - "°": "0", - "¹": "1", - "²": "2", - "³": "3", - "â´": "4", - "âµ": "5", - "â¶": "6", - "â·": "7", - "â¸": "8", - "â¹": "9", - - "â‚€": "0", - "â‚": "1", - "â‚‚": "2", - "₃": "3", - "â‚„": "4", - "â‚…": "5", - "₆": "6", - "₇": "7", - "₈": "8", - "₉": "9", - - - "æ": "ae", - "ǽ": "ae", - "À": "A", - "Ã": "A", - "Â": "A", - "Ã": "A", - "Ã…": "AA", - "Ǻ": "A", - "Ä‚": "A", - "Ç": "A", - "Æ": "AE", - "Ǽ": "AE", - "à": "a", - "á": "a", - "â": "a", - "ã": "a", - "Ã¥": "aa", - "Ç»": "a", - "ă": "a", - "ÇŽ": "a", - "ª": "a", - "@": "at", - "Ĉ": "C", - "ÄŠ": "C", - "Ç": "C", - "ç": "c", - "ĉ": "c", - "Ä‹": "c", - "©": "c", - "Ã": "Dj", - "Ä": "D", - "ð": "dj", - "Ä‘": "d", - "È": "E", - "É": "E", - "Ê": "E", - "Ë": "E", - "Ä”": "E", - "Ä–": "E", - "è": "e", - "é": "e", - "ê": "e", - "ë": "e", - "Ä•": "e", - "Ä—": "e", - "Æ’": "f", - "Äœ": "G", - "Ä ": "G", - "Ä": "g", - "Ä¡": "g", - "Ĥ": "H", - "Ħ": "H", - "Ä¥": "h", - "ħ": "h", - "ÃŒ": "I", - "Ã": "I", - "ÃŽ": "I", - "Ã": "I", - "Ĩ": "I", - "Ĭ": "I", - "Ç": "I", - "Ä®": "I", - "IJ": "IJ", - "ì": "i", - "í": "i", - "î": "i", - "ï": "i", - "Ä©": "i", - "Ä­": "i", - "Ç": "i", - "į": "i", - "ij": "ij", - "Ä´": "J", - "ĵ": "j", - "Ĺ": "L", - "Ľ": "L", - "Ä¿": "L", - "ĺ": "l", - "ľ": "l", - "Å€": "l", - "Ñ": "N", - "ñ": "n", - "ʼn": "n", - "Ã’": "O", - "Ó": "O", - "Ô": "O", - "Õ": "O", - "ÅŒ": "O", - "ÅŽ": "O", - "Ç‘": "O", - "Å": "O", - "Æ ": "O", - "Ø": "OE", - "Ǿ": "O", - "Å’": "OE", - "ò": "o", - "ó": "o", - "ô": "o", - "õ": "o", - "Å": "o", - "Å": "o", - "Ç’": "o", - "Å‘": "o", - "Æ¡": "o", - "ø": "oe", - "Ç¿": "o", - "º": "o", - "Å“": "oe", - "Å”": "R", - "Å–": "R", - "Å•": "r", - "Å—": "r", - "Åœ": "S", - "Ș": "S", - "Å": "s", - "È™": "s", - "Å¿": "s", - "Å¢": "T", - "Èš": "T", - "Ŧ": "T", - "Þ": "TH", - "Å£": "t", - "È›": "t", - "ŧ": "t", - "þ": "th", - "Ù": "U", - "Ú": "U", - "Û": "U", - "Ü": "U", - "Ũ": "U", - "Ŭ": "U", - "Ű": "U", - "Ų": "U", - "Ư": "U", - "Ç“": "U", - "Ç•": "U", - "Ç—": "U", - "Ç™": "U", - "Ç›": "U", - "ù": "u", - "ú": "u", - "û": "u", - "ü": "u", - "Å©": "u", - "Å­": "u", - "ű": "u", - "ų": "u", - "ư": "u", - "Ç”": "u", - "Ç–": "u", - "ǘ": "u", - "Çš": "u", - "Çœ": "u", - "Å´": "W", - "ŵ": "w", - "Ã": "Y", - "Ÿ": "Y", - "Ŷ": "Y", - "ý": "y", - "ÿ": "y", - "Å·": "y" -} diff --git a/vendor/cocur/slugify/Resources/rules/esperanto.json b/vendor/cocur/slugify/Resources/rules/esperanto.json deleted file mode 100644 index 9a4e6581..00000000 --- a/vendor/cocur/slugify/Resources/rules/esperanto.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "ĉ": "cx", - "Ä": "gx", - "Ä¥": "hx", - "ĵ": "jx", - "Å": "sx", - "Å­": "ux", - "Ĉ": "CX", - "Äœ": "GX", - "Ĥ": "HX", - "Ä´": "JX", - "Åœ": "SX", - "Ŭ": "UX" -} diff --git a/vendor/cocur/slugify/Resources/rules/estonian.json b/vendor/cocur/slugify/Resources/rules/estonian.json deleted file mode 100644 index fcea4696..00000000 --- a/vendor/cocur/slugify/Resources/rules/estonian.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "Å ": "S", - "Ž": "Z", - "Õ": "O", - "Ä": "A", - "Ö": "O", - "Ü": "U", - "Å¡": "s", - "ž": "z", - "õ": "o", - "ä": "a", - "ö": "o", - "ü": "u" -} \ No newline at end of file diff --git a/vendor/cocur/slugify/Resources/rules/finnish.json b/vendor/cocur/slugify/Resources/rules/finnish.json deleted file mode 100644 index fd35423e..00000000 --- a/vendor/cocur/slugify/Resources/rules/finnish.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "Ä": "A", - "Ö": "O", - "ä": "a", - "ö": "o" -} diff --git a/vendor/cocur/slugify/Resources/rules/french.json b/vendor/cocur/slugify/Resources/rules/french.json deleted file mode 100644 index 29c94b99..00000000 --- a/vendor/cocur/slugify/Resources/rules/french.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "À": "A", - "Â": "A", - "Æ": "AE", - "Ç": "C", - "É": "E", - "È": "E", - "Ê": "E", - "Ë": "E", - "Ã": "I", - "ÃŽ": "I", - "Ô": "O", - "Å’": "OE", - "Ù": "U", - "Û": "U", - "Ü": "U", - "à": "a", - "â": "a", - "æ": "ae", - "ç": "c", - "é": "e", - "è": "e", - "ê": "e", - "ë": "e", - "ï": "i", - "î": "i", - "ô": "o", - "Å“": "oe", - "ù": "u", - "û": "u", - "ü": "u", - "ÿ": "y", - "Ÿ": "Y" -} diff --git a/vendor/cocur/slugify/Resources/rules/georgian.json b/vendor/cocur/slugify/Resources/rules/georgian.json deleted file mode 100644 index 2c635737..00000000 --- a/vendor/cocur/slugify/Resources/rules/georgian.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "áƒ": "a", - "ბ": "b", - "გ": "g", - "დ": "d", - "ე": "e", - "ვ": "v", - "ზ": "z", - "თ": "t", - "ი": "i", - "კ": "k", - "ლ": "l", - "მ": "m", - "ნ": "n", - "áƒ": "o", - "პ": "p", - "ჟ": "zh", - "რ": "r", - "ს": "s", - "ტ": "t", - "უ": "u", - "ფ": "f", - "ქ": "k", - "ღ": "gh", - "ყ": "q", - "შ": "sh", - "ჩ": "ch", - "ც": "ts", - "ძ": "dz", - "წ": "ts", - "ჭ": "ch", - "ხ": "kh", - "ჯ": "j", - "ჰ": "h" -} diff --git a/vendor/cocur/slugify/Resources/rules/german.json b/vendor/cocur/slugify/Resources/rules/german.json deleted file mode 100644 index 881b68c1..00000000 --- a/vendor/cocur/slugify/Resources/rules/german.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "Ä": "AE", - "Ö": "OE", - "Ü": "UE", - "ß": "ss", - "ä": "ae", - "ö": "oe", - "ü": "ue" -} diff --git a/vendor/cocur/slugify/Resources/rules/greek.json b/vendor/cocur/slugify/Resources/rules/greek.json deleted file mode 100644 index 767a223b..00000000 --- a/vendor/cocur/slugify/Resources/rules/greek.json +++ /dev/null @@ -1,111 +0,0 @@ -{ - "ΑΥ": "AU", - "Αυ": "Au", - "ΟΥ": "OU", - "Ου": "Ou", - "ΕΥ": "EU", - "Ευ": "Eu", - "ΕΙ": "I", - "Ει": "I", - "ΟΙ": "I", - "Οι": "I", - "ΥΙ": "I", - "Υι": "I", - "ΑΎ": "AU", - "ΑÏ": "Au", - "ΟΎ": "OU", - "ΟÏ": "Ou", - "ΕΎ": "EU", - "ΕÏ": "Eu", - "ΕΊ": "I", - "Εί": "I", - "ΟΊ": "I", - "Οί": "I", - "ΎΙ": "I", - "Ύι": "I", - "ΥΊ": "I", - "Υί": "I", - "αυ": "au", - "ου": "ou", - "ευ": "eu", - "ει": "i", - "οι": "i", - "υι": "i", - "αÏ": "au", - "οÏ": "ou", - "εÏ": "eu", - "εί": "i", - "οί": "i", - "Ïι": "i", - "υί": "i", - "Α": "A", - "Î’": "V", - "Γ": "G", - "Δ": "D", - "Ε": "E", - "Ζ": "Z", - "Η": "I", - "Θ": "Th", - "Ι": "I", - "Κ": "K", - "Λ": "L", - "Μ": "M", - "Î": "N", - "Ξ": "X", - "Ο": "O", - "Π": "P", - "Ρ": "R", - "Σ": "S", - "Τ": "T", - "Î¥": "I", - "Φ": "F", - "Χ": "Ch", - "Ψ": "Ps", - "Ω": "O", - "Ά": "A", - "Έ": "E", - "Ή": "I", - "Ί": "I", - "ÎŒ": "O", - "ÎŽ": "I", - "Ϊ": "I", - "Ϋ": "I", - "Ï’": "I", - "α": "a", - "β": "v", - "γ": "g", - "δ": "d", - "ε": "e", - "ζ": "z", - "η": "i", - "θ": "th", - "ι": "i", - "κ": "k", - "λ": "l", - "μ": "m", - "ν": "n", - "ξ": "x", - "ο": "o", - "Ï€": "p", - "Ï": "r", - "Ï‚": "s", - "σ": "s", - "Ï„": "t", - "Ï…": "i", - "φ": "f", - "χ": "ch", - "ψ": "ps", - "ω": "o", - "ά": "a", - "έ": "e", - "ή": "i", - "ί": "i", - "ÏŒ": "o", - "Ï": "i", - "ÏŠ": "i", - "Ï‹": "i", - "ΰ": "i", - "ÏŽ": "o", - "Ï": "v", - "Ï‘": "th" -} diff --git a/vendor/cocur/slugify/Resources/rules/hindi.json b/vendor/cocur/slugify/Resources/rules/hindi.json deleted file mode 100644 index f653f15a..00000000 --- a/vendor/cocur/slugify/Resources/rules/hindi.json +++ /dev/null @@ -1,66 +0,0 @@ -{ - "अ": "a", - "आ": "aa", - "à¤": "e", - "ई": "ii", - "à¤": "ei", - "ऎ": "ae", - "à¤": "ai", - "इ": "i", - "ओ": "o", - "ऑ": "oi", - "ऒ": "oii", - "ऊ": "uu", - "औ": "ou", - "उ": "u", - "ब": "B", - "भ": "Bha", - "च": "Ca", - "छ": "Chha", - "ड": "Da", - "ढ": "Dha", - "फ": "Fa", - "फ़": "Fi", - "ग": "Ga", - "घ": "Gha", - "ग़": "Ghi", - "ह": "Ha", - "ज": "Ja", - "à¤": "Jha", - "क": "Ka", - "ख": "Kha", - "ख़": "Khi", - "ल": "L", - "ळ": "Li", - "ऌ": "Li", - "ऴ": "Lii", - "ॡ": "Lii", - "म": "Ma", - "न": "Na", - "ङ": "Na", - "ञ": "Nia", - "ण": "Nae", - "ऩ": "Ni", - "à¥": "oms", - "प": "Pa", - "क़": "Qi", - "र": "Ra", - "ऋ": "Ri", - "ॠ": "Ri", - "ऱ": "Ri", - "स": "Sa", - "श": "Sha", - "ष": "Shha", - "ट": "Ta", - "त": "Ta", - "ठ": "Tha", - "द": "Tha", - "थ": "Tha", - "ध": "Thha", - "ड़": "ugDha", - "ढ़": "ugDhha", - "व": "Va", - "य": "Ya", - "य़": "Yi", - "ज़": "Za" -} diff --git a/vendor/cocur/slugify/Resources/rules/hungarian.json b/vendor/cocur/slugify/Resources/rules/hungarian.json deleted file mode 100644 index 2bb2f3a0..00000000 --- a/vendor/cocur/slugify/Resources/rules/hungarian.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "Ã": "a", - "É": "e", - "Ã": "i", - "Ó": "o", - "Ö": "o", - "Å": "o", - "Ú": "u", - "Ü": "u", - "Ű": "u", - "á": "a", - "é": "e", - "í": "i", - "ó": "o", - "ö": "o", - "Å‘": "o", - "ú": "u", - "ü": "u", - "ű": "u" -} diff --git a/vendor/cocur/slugify/Resources/rules/italian.json b/vendor/cocur/slugify/Resources/rules/italian.json deleted file mode 100644 index 647c2cf3..00000000 --- a/vendor/cocur/slugify/Resources/rules/italian.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "À": "a", - "È": "e", - "ÃŒ": "i", - "Ã’": "o", - "Ù": "u", - "à": "a", - "é": "e", - "è": "e", - "ì": "i", - "ò": "o", - "ù": "u" -} diff --git a/vendor/cocur/slugify/Resources/rules/latvian.json b/vendor/cocur/slugify/Resources/rules/latvian.json deleted file mode 100644 index d5b0010d..00000000 --- a/vendor/cocur/slugify/Resources/rules/latvian.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "Ä€": "A", - "Ä’": "E", - "Ä¢": "G", - "Ī": "I", - "Ķ": "K", - "Ä»": "L", - "Å…": "N", - "Ū": "U", - "Ä": "a", - "Ä“": "e", - "Ä£": "g", - "Ä«": "i", - "Ä·": "k", - "ļ": "l", - "ņ": "n", - "Å«": "u" -} diff --git a/vendor/cocur/slugify/Resources/rules/lithuanian.json b/vendor/cocur/slugify/Resources/rules/lithuanian.json deleted file mode 100644 index 23e0d70b..00000000 --- a/vendor/cocur/slugify/Resources/rules/lithuanian.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "Ä„": "A", - "ÄŒ": "C", - "Ę": "E", - "Ä–": "E", - "Ä®": "I", - "Å ": "S", - "Ų": "U", - "Ū": "U", - "Ž": "Z", - "Ä…": "a", - "Ä": "c", - "Ä™": "e", - "Ä—": "e", - "į": "i", - "Å¡": "s", - "ų": "u", - "Å«": "u", - "ž": "z" -} diff --git a/vendor/cocur/slugify/Resources/rules/macedonian.json b/vendor/cocur/slugify/Resources/rules/macedonian.json deleted file mode 100644 index b4c94d33..00000000 --- a/vendor/cocur/slugify/Resources/rules/macedonian.json +++ /dev/null @@ -1,64 +0,0 @@ -{ - "Ð": "A", - "Б": "B", - "Ð’": "V", - "Г": "G", - "Д": "D", - "Ѓ": "Gj", - "Е": "E", - "Ж": "Zh", - "З": "Z", - "S": "Dz", - "И": "I", - "Ј": "J", - "К": "K", - "Л": "L", - "Љ": "Lj", - "М": "M", - "Ð": "N", - "Њ": "Nj", - "О": "O", - "П": "P", - "Р": "R", - "С": "S", - "Т": "T", - "ÐŒ": "Kj", - "У": "U", - "Ф": "F", - "Ð¥": "H", - "Ц": "C", - "Ч": "Ch", - "Ð": "Dj", - "Ш": "Sh", - "а": "a", - "б": "b", - "в": "v", - "г": "g", - "д": "d", - "Ñ“": "gj", - "е": "e", - "ж": "zh", - "з": "z", - "s": "dz", - "и": "i", - "ј": "j", - "к": "k", - "л": "l", - "Ñ™": "lj", - "м": "m", - "н": "n", - "Ñš": "nj", - "о": "o", - "п": "p", - "Ñ€": "r", - "Ñ": "s", - "Ñ‚": "t", - "Ñœ": "kj", - "у": "u", - "Ñ„": "f", - "Ñ…": "h", - "ц": "c", - "ч": "ch", - "ÑŸ": "dj", - "ш": "sh" -} diff --git a/vendor/cocur/slugify/Resources/rules/norwegian.json b/vendor/cocur/slugify/Resources/rules/norwegian.json deleted file mode 100644 index 66000ba1..00000000 --- a/vendor/cocur/slugify/Resources/rules/norwegian.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "Æ": "AE", - "Ø": "OE", - "Ã…": "AA", - "æ": "ae", - "ø": "oe", - "Ã¥": "aa" -} diff --git a/vendor/cocur/slugify/Resources/rules/persian.json b/vendor/cocur/slugify/Resources/rules/persian.json deleted file mode 100644 index 5b591597..00000000 --- a/vendor/cocur/slugify/Resources/rules/persian.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "ا" : "a", - "ب" : "b", - "Ù¾" : "p", - "ت" : "t", - "Ø«" : "th", - "ج" : "j", - "Ú†" : "ch", - "Ø­" : "h", - "Ø®" : "kh", - "د" : "d", - "ذ" : "th", - "ر" : "r", - "ز" : "z", - "Ú˜" : "zh", - "س" : "s", - "Ø´" : "sh", - "ص" : "s", - "ض" : "z", - "Ø·" : "t", - "ظ" : "z", - "ع" : "a", - "غ" : "gh", - "Ù" : "f", - "Ù‚" : "g", - "Ùƒ" : "k", - "Ú¯" : "g", - "Ù„" : "l", - "Ù…" : "m", - "Ù†" : "n", - "Ùˆ" : "o", - "Ù‡" : "h", - "ÛŒ" : "y" -} diff --git a/vendor/cocur/slugify/Resources/rules/polish.json b/vendor/cocur/slugify/Resources/rules/polish.json deleted file mode 100644 index 5d0c123c..00000000 --- a/vendor/cocur/slugify/Resources/rules/polish.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "Ä„": "A", - "Ć": "C", - "Ę": "E", - "Å": "L", - "Ń": "N", - "Ó": "O", - "Åš": "S", - "Ź": "Z", - "Å»": "Z", - "Ä…": "a", - "ć": "c", - "Ä™": "e", - "Å‚": "l", - "Å„": "n", - "ó": "o", - "Å›": "s", - "ź": "z", - "ż": "z" -} diff --git a/vendor/cocur/slugify/Resources/rules/portuguese-brazil.json b/vendor/cocur/slugify/Resources/rules/portuguese-brazil.json deleted file mode 100644 index 39bca6c1..00000000 --- a/vendor/cocur/slugify/Resources/rules/portuguese-brazil.json +++ /dev/null @@ -1,187 +0,0 @@ - -{ - "°": "0", - "¹": "1", - "²": "2", - "³": "3", - "â´": "4", - "âµ": "5", - "â¶": "6", - "â·": "7", - "â¸": "8", - "â¹": "9", - - "â‚€": "0", - "â‚": "1", - "â‚‚": "2", - "₃": "3", - "â‚„": "4", - "â‚…": "5", - "₆": "6", - "₇": "7", - "₈": "8", - "₉": "9", - - - "æ": "ae", - "ǽ": "ae", - "À": "A", - "Ã": "A", - "Â": "A", - "Ã": "A", - "Ã…": "AA", - "Ǻ": "A", - "Ä‚": "A", - "Ç": "A", - "Æ": "AE", - "Ǽ": "AE", - "à": "a", - "á": "a", - "â": "a", - "ã": "a", - "Ã¥": "aa", - "Ç»": "a", - "ă": "a", - "ÇŽ": "a", - "ª": "a", - "@": "at", - "Ĉ": "C", - "ÄŠ": "C", - "Ç": "Ç", - "ç": "ç", - "ĉ": "c", - "Ä‹": "c", - "©": "c", - "Ã": "Dj", - "Ä": "D", - "ð": "dj", - "Ä‘": "d", - "È": "E", - "É": "E", - "Ê": "E", - "Ë": "E", - "Ä”": "E", - "Ä–": "E", - "è": "e", - "é": "é", - "ê": "e", - "ë": "e", - "Ä•": "e", - "Ä—": "e", - "Æ’": "f", - "Äœ": "G", - "Ä ": "G", - "Ä": "g", - "Ä¡": "g", - "Ĥ": "H", - "Ħ": "H", - "Ä¥": "h", - "ħ": "h", - "ÃŒ": "I", - "Ã": "I", - "ÃŽ": "I", - "Ã": "I", - "Ĩ": "I", - "Ĭ": "I", - "Ç": "I", - "Ä®": "I", - "IJ": "IJ", - "ì": "i", - "í": "i", - "î": "i", - "ï": "i", - "Ä©": "i", - "Ä­": "i", - "Ç": "i", - "į": "i", - "ij": "ij", - "Ä´": "J", - "ĵ": "j", - "Ĺ": "L", - "Ľ": "L", - "Ä¿": "L", - "ĺ": "l", - "ľ": "l", - "Å€": "l", - "Ñ": "N", - "ñ": "n", - "ʼn": "n", - "Ã’": "O", - "Ó": "O", - "Ô": "O", - "Õ": "O", - "ÅŒ": "O", - "ÅŽ": "O", - "Ç‘": "O", - "Å": "O", - "Æ ": "O", - "Ø": "OE", - "Ǿ": "O", - "Å’": "OE", - "ò": "o", - "ó": "o", - "ô": "o", - "õ": "o", - "Å": "o", - "Å": "o", - "Ç’": "o", - "Å‘": "o", - "Æ¡": "o", - "ø": "oe", - "Ç¿": "o", - "º": "o", - "Å“": "oe", - "Å”": "R", - "Å–": "R", - "Å•": "r", - "Å—": "r", - "Åœ": "S", - "Ș": "S", - "Å": "s", - "È™": "s", - "Å¿": "s", - "Å¢": "T", - "Èš": "T", - "Ŧ": "T", - "Þ": "TH", - "Å£": "t", - "È›": "t", - "ŧ": "t", - "þ": "th", - "Ù": "U", - "Ú": "U", - "Û": "U", - "Ü": "U", - "Ũ": "U", - "Ŭ": "U", - "Ű": "U", - "Ų": "U", - "Ư": "U", - "Ç“": "U", - "Ç•": "U", - "Ç—": "U", - "Ç™": "U", - "Ç›": "U", - "ù": "u", - "ú": "u", - "û": "u", - "ü": "u", - "Å©": "u", - "Å­": "u", - "ű": "u", - "ų": "u", - "ư": "u", - "Ç”": "u", - "Ç–": "u", - "ǘ": "u", - "Çš": "u", - "Çœ": "u", - "Å´": "W", - "ŵ": "w", - "Ã": "Y", - "Ÿ": "Y", - "Ŷ": "Y", - "ý": "y", - "ÿ": "y", - "Å·": "y" -} diff --git a/vendor/cocur/slugify/Resources/rules/romanian.json b/vendor/cocur/slugify/Resources/rules/romanian.json deleted file mode 100644 index 47b9d9b0..00000000 --- a/vendor/cocur/slugify/Resources/rules/romanian.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "ă": "a", - "î": "i", - "â": "a", - "ÅŸ": "s", - "È™": "s", - "Å£": "t", - "È›": "t", - "Ä‚": "A", - "ÃŽ": "I", - "Â": "A", - "Åž": "S", - "Ș": "S", - "Å¢": "T", - "Èš": "T" -} diff --git a/vendor/cocur/slugify/Resources/rules/russian.json b/vendor/cocur/slugify/Resources/rules/russian.json deleted file mode 100644 index b8b354c8..00000000 --- a/vendor/cocur/slugify/Resources/rules/russian.json +++ /dev/null @@ -1,68 +0,0 @@ -{ - "Ъ": "", - "Ь": "", - "Ð": "A", - "Б": "B", - "Ц": "C", - "Ч": "Ch", - "Д": "D", - "Е": "E", - "Ð": "E", - "Э": "E", - "Ф": "F", - "Г": "G", - "Ð¥": "H", - "И": "I", - "Й": "Y", - "Я": "Ya", - "Ю": "Yu", - "К": "K", - "Л": "L", - "М": "M", - "Ð": "N", - "О": "O", - "П": "P", - "Р": "R", - "С": "S", - "Ш": "Sh", - "Щ": "Shch", - "Т": "T", - "У": "U", - "Ð’": "V", - "Ы": "Y", - "З": "Z", - "Ж": "Zh", - "ÑŠ": "", - "ÑŒ": "", - "а": "a", - "б": "b", - "ц": "c", - "ч": "ch", - "д": "d", - "е": "e", - "Ñ‘": "e", - "Ñ": "e", - "Ñ„": "f", - "г": "g", - "Ñ…": "h", - "и": "i", - "й": "y", - "Ñ": "ya", - "ÑŽ": "yu", - "к": "k", - "л": "l", - "м": "m", - "н": "n", - "о": "o", - "п": "p", - "Ñ€": "r", - "Ñ": "s", - "ш": "sh", - "щ": "shch", - "Ñ‚": "t", - "у": "u", - "в": "v", - "Ñ‹": "y", - "з": "z", - "ж": "zh" -} diff --git a/vendor/cocur/slugify/Resources/rules/serbian.json b/vendor/cocur/slugify/Resources/rules/serbian.json deleted file mode 100644 index f4c11db9..00000000 --- a/vendor/cocur/slugify/Resources/rules/serbian.json +++ /dev/null @@ -1,72 +0,0 @@ -{ - "а": "a", - "б": "b", - "в": "v", - "г": "g", - "д": "d", - "Ñ’": "dj", - "е": "e", - "ж": "z", - "з": "z", - "и": "i", - "ј": "j", - "к": "k", - "л": "l", - "Ñ™": "lj", - "м": "m", - "н": "n", - "Ñš": "nj", - "о": "o", - "п": "p", - "Ñ€": "r", - "Ñ": "s", - "Ñ‚": "t", - "Ñ›": "c", - "у": "u", - "Ñ„": "f", - "Ñ…": "h", - "ц": "c", - "ч": "c", - "ÑŸ": "dz", - "ш": "s", - "Ð": "A", - "Б": "B", - "Ð’": "V", - "Г": "G", - "Д": "D", - "Ђ": "Dj", - "Е": "E", - "Ж": "Z", - "З": "Z", - "И": "I", - "Ј": "J", - "К": "K", - "Л": "L", - "Љ": "Lj", - "М": "M", - "Ð": "N", - "Њ": "Nj", - "О": "O", - "П": "P", - "Р": "R", - "С": "S", - "Т": "T", - "Ћ": "C", - "У": "U", - "Ф": "F", - "Ð¥": "H", - "Ц": "C", - "Ч": "C", - "Ð": "Dz", - "Ш": "S", - "Å¡": "s", - "Ä‘": "dj", - "ž": "z", - "ć": "c", - "Ä": "c", - "Å ": "S", - "Ä": "DJ", - "Ž": "Z", - "Ć": "C", - "ÄŒ": "C" -} \ No newline at end of file diff --git a/vendor/cocur/slugify/Resources/rules/swedish.json b/vendor/cocur/slugify/Resources/rules/swedish.json deleted file mode 100644 index a22f3eb0..00000000 --- a/vendor/cocur/slugify/Resources/rules/swedish.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "Ä": "A", - "Ã…": "a", - "Ö": "O", - "ä": "a", - "Ã¥": "a", - "ö": "o" -} diff --git a/vendor/cocur/slugify/Resources/rules/turkish.json b/vendor/cocur/slugify/Resources/rules/turkish.json deleted file mode 100644 index 07fbae50..00000000 --- a/vendor/cocur/slugify/Resources/rules/turkish.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "Ç": "C", - "Äž": "G", - "İ": "I", - "Åž": "S", - "Ö": "O", - "Ü": "U", - "ç": "c", - "ÄŸ": "g", - "ı": "i", - "ÅŸ": "s", - "ö": "o", - "ü": "u" -} diff --git a/vendor/cocur/slugify/Resources/rules/ukrainian.json b/vendor/cocur/slugify/Resources/rules/ukrainian.json deleted file mode 100644 index 673b7eda..00000000 --- a/vendor/cocur/slugify/Resources/rules/ukrainian.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "Ò": "G", - "І": "I", - "Ї": "Ji", - "Є": "Ye", - "Ò‘": "g", - "Ñ–": "i", - "Ñ—": "ji", - "Ñ”": "ye" -} diff --git a/vendor/cocur/slugify/Resources/rules/vietnamese.json b/vendor/cocur/slugify/Resources/rules/vietnamese.json deleted file mode 100644 index 569298b8..00000000 --- a/vendor/cocur/slugify/Resources/rules/vietnamese.json +++ /dev/null @@ -1,92 +0,0 @@ -{ - "ạ": "a", - "ả": "a", - "ầ": "a", - "ấ": "a", - "ậ": "a", - "ẩ": "a", - "ẫ": "a", - "ằ": "a", - "ắ": "a", - "ặ": "a", - "ẳ": "a", - "ẵ": "a", - "ẹ": "e", - "ẻ": "e", - "ẽ": "e", - "á»": "e", - "ế": "e", - "ệ": "e", - "ể": "e", - "á»…": "e", - "ị": "i", - "ỉ": "i", - "á»": "o", - "á»": "o", - "ồ": "o", - "ố": "o", - "á»™": "o", - "ổ": "o", - "á»—": "o", - "á»": "o", - "á»›": "o", - "ợ": "o", - "ở": "o", - "ỡ": "o", - "ụ": "u", - "á»§": "u", - "ừ": "u", - "ứ": "u", - "á»±": "u", - "á»­": "u", - "ữ": "u", - "ỳ": "y", - "ỵ": "y", - "á»·": "y", - "ỹ": "y", - "Ạ": "A", - "Ả": "A", - "Ầ": "A", - "Ấ": "A", - "Ậ": "A", - "Ẩ": "A", - "Ẫ": "A", - "Ằ": "A", - "Ắ": "A", - "Ặ": "A", - "Ẳ": "A", - "Ẵ": "A", - "Ẹ": "E", - "Ẻ": "E", - "Ẽ": "E", - "Ề": "E", - "Ế": "E", - "Ệ": "E", - "Ể": "E", - "Ễ": "E", - "Ị": "I", - "Ỉ": "I", - "Ọ": "O", - "Ỏ": "O", - "á»’": "O", - "á»": "O", - "Ộ": "O", - "á»”": "O", - "á»–": "O", - "Ờ": "O", - "Ớ": "O", - "Ợ": "O", - "Ở": "O", - "á» ": "O", - "Ụ": "U", - "Ủ": "U", - "Ừ": "U", - "Ứ": "U", - "á»°": "U", - "Ử": "U", - "á»®": "U", - "Ỳ": "Y", - "á»´": "Y", - "á»¶": "Y", - "Ỹ": "Y" -} diff --git a/vendor/cocur/slugify/bin/generate-default.php b/vendor/cocur/slugify/bin/generate-default.php deleted file mode 100644 index d232ce9a..00000000 --- a/vendor/cocur/slugify/bin/generate-default.php +++ /dev/null @@ -1,59 +0,0 @@ -isFile() && $file->getExtension() === 'json') { - $rules[$file->getBasename('.json')] = json_decode(file_get_contents($file->getRealPath()), true); - } - } - - return $rules; -} - -/** - * @param string $fileName - * @param array $rules - * - * @return bool - */ -function insertRules($fileName, array $rules = []) -{ - $startTag = '/*INSERT_START*/'; - $endTag = '/*INSERT_END*/'; - - $content = file_get_contents($fileName); - $content = preg_replace( - $regexp = sprintf('#%s(.*)%s#s', quotemeta($startTag), quotemeta($endTag)), - $startTag.var_export($rules, true).$endTag, - $content - ); - - return false !== file_put_contents($fileName, $content); -} - -$directory = __DIR__.'/../Resources/rules'; -$fileName = __DIR__.'/../src/RuleProvider/DefaultRuleProvider.php'; -$rules = getRules($directory); -ksort($rules); - -$result = insertRules($fileName, $rules); - -$ruleCount = array_reduce($rules, function ($count, $rules) { - return $count + count($rules); -}, 0); - -if ($result) { - printf("Written %d rules into '%s'.\n", $ruleCount, $fileName); -} else { - printf("Error writing rules into '%s'.\n", $fileName); -} - diff --git a/vendor/cocur/slugify/composer.json b/vendor/cocur/slugify/composer.json deleted file mode 100644 index 7c49047c..00000000 --- a/vendor/cocur/slugify/composer.json +++ /dev/null @@ -1,44 +0,0 @@ -{ - "name": "cocur/slugify", - "type": "library", - "description": "Converts a string into a slug.", - "keywords": ["slug", "slugify"], - "license": "MIT", - "authors": [ - { - "name": "Florian Eckerstorfer", - "email": "florian@eckerstorfer.co", - "homepage": "https://florian.ec" - }, - { - "name": "Ivo Bathke", - "email": "ivo.bathke@gmail.com" - } - ], - "require": { - "php": ">=5.5.9", - "ext-mbstring": "*" - }, - "require-dev": { - "laravel/framework": "~5.1", - "latte/latte": "~2.2", - "league/container": "^2.2.0", - "mikey179/vfsStream": "~1.6", - "mockery/mockery": "~0.9", - "nette/di": "~2.2", - "phpunit/phpunit": "~4.8|~5.2", - "pimple/pimple": "~1.1", - "plumphp/plum": "~0.1", - "silex/silex": "~1.3", - "symfony/config": "~2.4|~3.0", - "symfony/dependency-injection": "~2.4|~3.0", - "symfony/http-kernel": "~2.4|~3.0", - "twig/twig": "~1.26|~2.0", - "zendframework/zend-modulemanager": "~2.2", - "zendframework/zend-servicemanager": "~2.2", - "zendframework/zend-view": "~2.2" - }, - "autoload": { - "psr-4": {"Cocur\\Slugify\\": "src"} - } -} diff --git a/vendor/cocur/slugify/phpunit.xml.dist b/vendor/cocur/slugify/phpunit.xml.dist deleted file mode 100644 index 3b7a1d1f..00000000 --- a/vendor/cocur/slugify/phpunit.xml.dist +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - tests - - - - - - src - - - - - - - diff --git a/vendor/cocur/slugify/src/Bridge/Laravel/SlugifyFacade.php b/vendor/cocur/slugify/src/Bridge/Laravel/SlugifyFacade.php deleted file mode 100644 index 7c1b1ac2..00000000 --- a/vendor/cocur/slugify/src/Bridge/Laravel/SlugifyFacade.php +++ /dev/null @@ -1,39 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Cocur\Slugify\Bridge\Laravel; - -use Illuminate\Support\Facades\Facade; - -/** - * SlugifyFacade - * - * @package cocur/slugify - * @subpackage bridge - * @author Florian Eckerstorfer - * @author Colin Viebrock - * @copyright 2012-2014 Florian Eckerstorfer - * @license http://www.opensource.org/licenses/MIT The MIT License - */ -class SlugifyFacade extends Facade -{ - /** - * Get the registered name of the component. - * - * @return string - * - * @codeCoverageIgnore - */ - protected static function getFacadeAccessor() - { - return 'slugify'; - } -} diff --git a/vendor/cocur/slugify/src/Bridge/Laravel/SlugifyServiceProvider.php b/vendor/cocur/slugify/src/Bridge/Laravel/SlugifyServiceProvider.php deleted file mode 100644 index bca16e5b..00000000 --- a/vendor/cocur/slugify/src/Bridge/Laravel/SlugifyServiceProvider.php +++ /dev/null @@ -1,57 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Cocur\Slugify\Bridge\Laravel; - -use Cocur\Slugify\Slugify; -use Illuminate\Support\ServiceProvider as LaravelServiceProvider; - -/** - * SlugifyServiceProvider - * - * @package cocur/slugify - * @subpackage bridge - * @author Florian Eckerstorfer - * @author Colin Viebrock - * @copyright 2012-2014 Florian Eckerstorfer - * @license http://www.opensource.org/licenses/MIT The MIT License - */ -class SlugifyServiceProvider extends LaravelServiceProvider -{ - /** - * Indicates if loading of the provider is deferred. - * - * @var bool - */ - protected $defer = true; - - /** - * Register the service provider. - * - * @return void - */ - public function register() - { - $this->app->singleton('slugify', function () { - return new Slugify(); - }); - } - - /** - * Get the services provided by the provider. - * - * @return string[] - */ - public function provides() - { - return ['slugify']; - } -} diff --git a/vendor/cocur/slugify/src/Bridge/Latte/SlugifyHelper.php b/vendor/cocur/slugify/src/Bridge/Latte/SlugifyHelper.php deleted file mode 100644 index 0730aa41..00000000 --- a/vendor/cocur/slugify/src/Bridge/Latte/SlugifyHelper.php +++ /dev/null @@ -1,38 +0,0 @@ - - * @license http://www.opensource.org/licenses/MIT The MIT License - */ -class SlugifyHelper -{ - /** @var SlugifyInterface */ - private $slugify; - - /** - * @codeCoverageIgnore - */ - public function __construct(SlugifyInterface $slugify) - { - $this->slugify = $slugify; - } - - /** - * @param string $string - * @param string|null $separator - * - * @return string - */ - public function slugify($string, $separator = null) - { - return $this->slugify->slugify($string, $separator); - } -} diff --git a/vendor/cocur/slugify/src/Bridge/League/SlugifyServiceProvider.php b/vendor/cocur/slugify/src/Bridge/League/SlugifyServiceProvider.php deleted file mode 100644 index 6d03f94b..00000000 --- a/vendor/cocur/slugify/src/Bridge/League/SlugifyServiceProvider.php +++ /dev/null @@ -1,37 +0,0 @@ -container->share(SlugifyInterface::class, function () { - $options = []; - if ($this->container->has('config.slugify.options')) { - $options = $this->container->get('config.slugify.options'); - } - - $provider = null; - if ($this->container->has(RuleProviderInterface::class)) { - /* @var RuleProviderInterface $provider */ - $provider = $this->container->get(RuleProviderInterface::class); - } - - return new Slugify( - $options, - $provider - ); - }); - } -} diff --git a/vendor/cocur/slugify/src/Bridge/Nette/SlugifyExtension.php b/vendor/cocur/slugify/src/Bridge/Nette/SlugifyExtension.php deleted file mode 100644 index f1500349..00000000 --- a/vendor/cocur/slugify/src/Bridge/Nette/SlugifyExtension.php +++ /dev/null @@ -1,49 +0,0 @@ - - * @license http://www.opensource.org/licenses/MIT The MIT License - */ -class SlugifyExtension extends CompilerExtension -{ - public function loadConfiguration() - { - $builder = $this->getContainerBuilder(); - - $builder->addDefinition($this->prefix('slugify')) - ->setClass('Cocur\Slugify\SlugifyInterface') - ->setFactory('Cocur\Slugify\Slugify'); - - $builder->addDefinition($this->prefix('helper')) - ->setClass('Cocur\Slugify\Bridge\Latte\SlugifyHelper') - ->setAutowired(false); - } - - public function beforeCompile() - { - $builder = $this->getContainerBuilder(); - - $self = $this; - $registerToLatte = function(ServiceDefinition $def) use ($self) { - $def->addSetup('addFilter', ['slugify', [$self->prefix('@helper'), 'slugify']]); - }; - - $latteFactory = $builder->getByType('Nette\Bridges\ApplicationLatte\ILatteFactory') ?: 'nette.latteFactory'; - if ($builder->hasDefinition($latteFactory)) { - $registerToLatte($builder->getDefinition($latteFactory)); - } - - if ($builder->hasDefinition('nette.latte')) { - $registerToLatte($builder->getDefinition('nette.latte')); - } - } -} diff --git a/vendor/cocur/slugify/src/Bridge/Plum/SlugifyConverter.php b/vendor/cocur/slugify/src/Bridge/Plum/SlugifyConverter.php deleted file mode 100644 index c686bd09..00000000 --- a/vendor/cocur/slugify/src/Bridge/Plum/SlugifyConverter.php +++ /dev/null @@ -1,50 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Cocur\Slugify\Bridge\Plum; - -use Plum\Plum\Converter\ConverterInterface; -use Cocur\Slugify\Slugify; -use Cocur\Slugify\SlugifyInterface; - -/** - * SlugifyConverter - * - * @package Cocur\Slugify\Bridge\Plum - * @author Florian Eckerstorfer - * @copyright 2015 Florian Eckerstorfer - */ -class SlugifyConverter implements ConverterInterface -{ - /** @var Slugify */ - private $slugify; - - /** - * @param SlugifyInterface|null $slugify - */ - public function __construct(SlugifyInterface $slugify = null) - { - if ($slugify === null) { - $slugify = new Slugify(); - } - $this->slugify = $slugify; - } - - /** - * @param string $item - * - * @return string - */ - public function convert($item) - { - return $this->slugify->slugify($item); - } -} diff --git a/vendor/cocur/slugify/src/Bridge/Silex/SlugifyServiceProvider.php b/vendor/cocur/slugify/src/Bridge/Silex/SlugifyServiceProvider.php deleted file mode 100644 index 058a7517..00000000 --- a/vendor/cocur/slugify/src/Bridge/Silex/SlugifyServiceProvider.php +++ /dev/null @@ -1,57 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Cocur\Slugify\Bridge\Silex; - -use Cocur\Slugify\Bridge\Twig\SlugifyExtension; -use Cocur\Slugify\Slugify; -use Silex\Application; -use Silex\ServiceProviderInterface; - -/** - * SlugifyServiceProvider - * - * @package cocur/slugify - * @subpackage bridge - * @author Florian Eckerstorfer - * @copyright 2012-2014 Florian Eckerstorfer - * @license http://www.opensource.org/licenses/MIT The MIT License - */ -class SlugifyServiceProvider implements ServiceProviderInterface -{ - /** - * {@inheritDoc} - */ - public function register(Application $app) - { - $app['slugify.options'] = []; - $app['slugify.provider'] = null; - - $app['slugify'] = $app->share(function ($app) { - return new Slugify($app['slugify.options'], $app['slugify.provider']); - }); - - if (isset($app['twig'])) { - $app['twig'] = $app->share($app->extend('twig', function (\Twig_Environment $twig, $app) { - $twig->addExtension(new SlugifyExtension($app['slugify'])); - - return $twig; - })); - } - } - - /** - * {@inheritDoc} - */ - public function boot(Application $app) - { - } -} diff --git a/vendor/cocur/slugify/src/Bridge/Silex2/SlugifyServiceProvider.php b/vendor/cocur/slugify/src/Bridge/Silex2/SlugifyServiceProvider.php deleted file mode 100644 index edcdfe45..00000000 --- a/vendor/cocur/slugify/src/Bridge/Silex2/SlugifyServiceProvider.php +++ /dev/null @@ -1,48 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Cocur\Slugify\Bridge\Silex2; - -use Cocur\Slugify\Bridge\Twig\SlugifyExtension; -use Cocur\Slugify\Slugify; -use Pimple\Container; -use Pimple\ServiceProviderInterface; - -/** - * SlugifyServiceProvider - * - * @package cocur/slugify - * @subpackage bridge - * @license http://www.opensource.org/licenses/MIT The MIT License - */ -class SlugifyServiceProvider implements ServiceProviderInterface -{ - /** - * {@inheritDoc} - */ - public function register(Container $container) - { - $container['slugify.options'] = []; - $container['slugify.provider'] = null; - - $container['slugify'] = function ($container) { - return new Slugify($container['slugify.options'], $container['slugify.provider']); - }; - - if (isset($container['twig'])) { - $container->extend('twig', function (\Twig_Environment $twig, $container) { - $twig->addExtension(new SlugifyExtension($container['slugify'])); - - return $twig; - }); - } - } -} diff --git a/vendor/cocur/slugify/src/Bridge/Symfony/CocurSlugifyBundle.php b/vendor/cocur/slugify/src/Bridge/Symfony/CocurSlugifyBundle.php deleted file mode 100644 index da93e4a6..00000000 --- a/vendor/cocur/slugify/src/Bridge/Symfony/CocurSlugifyBundle.php +++ /dev/null @@ -1,31 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Cocur\Slugify\Bridge\Symfony; - -use Symfony\Component\HttpKernel\Bundle\Bundle; - -/** - * CourSlugifyBundle - * - * @package cocur/slugify - * @subpackage bridge - * @author Florian Eckerstorfer - * @copyright 2012-2014 Florian Eckerstorfer - * @license http://www.opensource.org/licenses/MIT The MIT License - */ -class CocurSlugifyBundle extends Bundle -{ - public function getContainerExtension() - { - return new CocurSlugifyExtension(); - } -} diff --git a/vendor/cocur/slugify/src/Bridge/Symfony/CocurSlugifyExtension.php b/vendor/cocur/slugify/src/Bridge/Symfony/CocurSlugifyExtension.php deleted file mode 100644 index b891d023..00000000 --- a/vendor/cocur/slugify/src/Bridge/Symfony/CocurSlugifyExtension.php +++ /dev/null @@ -1,67 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Cocur\Slugify\Bridge\Symfony; - -use Symfony\Component\DependencyInjection\ContainerBuilder; -use Symfony\Component\DependencyInjection\Definition; -use Symfony\Component\DependencyInjection\Reference; -use Symfony\Component\HttpKernel\DependencyInjection\Extension; -use Symfony\Component\HttpKernel\Kernel; - -/** - * CocurSlugifyExtension - * - * @package cocur/slugify - * @subpackage bridge - * @author Florian Eckerstorfer - * @copyright 2012-2014 Florian Eckerstorfer - * @license http://www.opensource.org/licenses/MIT The MIT License - */ -class CocurSlugifyExtension extends Extension -{ - /** - * {@inheritDoc} - * - * @param mixed[] $configs - * @param ContainerBuilder $container - */ - public function load(array $configs, ContainerBuilder $container) - { - $configuration = new Configuration(); - $config = $this->processConfiguration($configuration, $configs); - - if (empty($config['rulesets'])) { - unset($config['rulesets']); - } - - // Extract slugify arguments from config - $slugifyArguments = array_intersect_key($config, array_flip(['lowercase', 'separator', 'regexp', 'rulesets'])); - - $container->setDefinition('cocur_slugify', new Definition('Cocur\Slugify\Slugify', [$slugifyArguments])); - $container - ->setDefinition( - 'cocur_slugify.twig.slugify', - new Definition( - 'Cocur\Slugify\Bridge\Twig\SlugifyExtension', - [new Reference('cocur_slugify')] - ) - ) - ->addTag('twig.extension') - ->setPublic(false); - $container->setAlias('slugify', 'cocur_slugify'); - - // for symfony versions >= 3.3 - if (Kernel::VERSION_ID >= 30300) { - $container->setAlias('Cocur\Slugify\SlugifyInterface', 'cocur_slugify'); - } - } -} diff --git a/vendor/cocur/slugify/src/Bridge/Symfony/Configuration.php b/vendor/cocur/slugify/src/Bridge/Symfony/Configuration.php deleted file mode 100644 index d2f30d14..00000000 --- a/vendor/cocur/slugify/src/Bridge/Symfony/Configuration.php +++ /dev/null @@ -1,38 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Cocur\Slugify\Bridge\Symfony; - -use Symfony\Component\Config\Definition\Builder\TreeBuilder; -use Symfony\Component\Config\Definition\ConfigurationInterface; - -class Configuration implements ConfigurationInterface -{ - /** - * {@inheritdoc} - */ - public function getConfigTreeBuilder() - { - $treeBuilder = new TreeBuilder(); - $rootNode = $treeBuilder->root('cocur_slugify'); - - $rootNode - ->children() - ->booleanNode('lowercase')->end() - ->booleanNode('trim')->end() - ->scalarNode('separator')->end() - ->scalarNode('regexp')->end() - ->arrayNode('rulesets')->prototype('scalar')->end() - ->end(); - - return $treeBuilder; - } -} diff --git a/vendor/cocur/slugify/src/Bridge/Twig/SlugifyExtension.php b/vendor/cocur/slugify/src/Bridge/Twig/SlugifyExtension.php deleted file mode 100644 index 559c69af..00000000 --- a/vendor/cocur/slugify/src/Bridge/Twig/SlugifyExtension.php +++ /dev/null @@ -1,80 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Cocur\Slugify\Bridge\Twig; - -use Cocur\Slugify\SlugifyInterface; -use Twig_SimpleFilter; - -/** - * SlugifyExtension - * - * @package cocur/slugify - * @subpackage bridge - * @author Florian Eckerstorfer - * @copyright 2012-2015 Florian Eckerstorfer - * @license http://www.opensource.org/licenses/MIT The MIT License - */ -class SlugifyExtension extends \Twig_Extension -{ - /** - * @var SlugifyInterface - */ - private $slugify; - - /** - * Constructor. - * - * @param SlugifyInterface $slugify - * - * @codeCoverageIgnore - */ - public function __construct(SlugifyInterface $slugify) - { - $this->slugify = $slugify; - } - - /** - * Returns the Twig functions of this extension. - * - * @return Twig_SimpleFilter[] - */ - public function getFilters() - { - return [ - new Twig_SimpleFilter('slugify', [$this, 'slugifyFilter']), - ]; - } - - /** - * Slugify filter. - * - * @param string $string - * @param string|null $separator - * - * @return string - */ - public function slugifyFilter($string, $separator = null) - { - return $this->slugify->slugify($string, $separator); - } - - /** - * get Name - * - * @return string - */ - public function getName() - { - return "SlugifyExtension"; - } - -} diff --git a/vendor/cocur/slugify/src/Bridge/ZF2/Module.php b/vendor/cocur/slugify/src/Bridge/ZF2/Module.php deleted file mode 100644 index 74e2ec87..00000000 --- a/vendor/cocur/slugify/src/Bridge/ZF2/Module.php +++ /dev/null @@ -1,50 +0,0 @@ -> - */ - public function getServiceConfig() - { - return [ - 'factories' => [ - 'Cocur\Slugify\Slugify' => 'Cocur\Slugify\Bridge\ZF2\SlugifyService' - ], - 'aliases' => [ - 'slugify' => 'Cocur\Slugify\Slugify' - ] - ]; - } - - /** - * Expected to return \Zend\ServiceManager\Config object or array to - * seed such an object. - * - * @return array>|\Zend\ServiceManager\Config - */ - public function getViewHelperConfig() - { - return [ - 'factories' => [ - 'slugify' => 'Cocur\Slugify\Bridge\ZF2\SlugifyViewHelperFactory' - ] - ]; - } -} diff --git a/vendor/cocur/slugify/src/Bridge/ZF2/SlugifyService.php b/vendor/cocur/slugify/src/Bridge/ZF2/SlugifyService.php deleted file mode 100644 index 44686b8d..00000000 --- a/vendor/cocur/slugify/src/Bridge/ZF2/SlugifyService.php +++ /dev/null @@ -1,30 +0,0 @@ -get('Config'); - - $options = isset($config[Module::CONFIG_KEY]['options']) ? $config[Module::CONFIG_KEY]['options'] : []; - $provider = isset($config[Module::CONFIG_KEY]['provider']) ? $config[Module::CONFIG_KEY]['provider'] : null; - - return new Slugify($options, $provider); - } -} diff --git a/vendor/cocur/slugify/src/Bridge/ZF2/SlugifyViewHelper.php b/vendor/cocur/slugify/src/Bridge/ZF2/SlugifyViewHelper.php deleted file mode 100644 index d421aeeb..00000000 --- a/vendor/cocur/slugify/src/Bridge/ZF2/SlugifyViewHelper.php +++ /dev/null @@ -1,41 +0,0 @@ -slugify = $slugify; - } - - /** - * @param string $string - * @param string|null $separator - * - * @return string - */ - public function __invoke($string, $separator = null) - { - return $this->slugify->slugify($string, $separator); - } -} diff --git a/vendor/cocur/slugify/src/Bridge/ZF2/SlugifyViewHelperFactory.php b/vendor/cocur/slugify/src/Bridge/ZF2/SlugifyViewHelperFactory.php deleted file mode 100644 index 1929234d..00000000 --- a/vendor/cocur/slugify/src/Bridge/ZF2/SlugifyViewHelperFactory.php +++ /dev/null @@ -1,28 +0,0 @@ -getServiceLocator()->get('Cocur\Slugify\Slugify'); - - return new SlugifyViewHelper($slugify); - } -} diff --git a/vendor/cocur/slugify/src/RuleProvider/DefaultRuleProvider.php b/vendor/cocur/slugify/src/RuleProvider/DefaultRuleProvider.php deleted file mode 100644 index 1e47552e..00000000 --- a/vendor/cocur/slugify/src/RuleProvider/DefaultRuleProvider.php +++ /dev/null @@ -1,8421 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Cocur\Slugify\RuleProvider; - -/** - * DefaultRuleProvider - * - * @package Cocur\Slugify\RuleProvider - * @author Florian Eckerstorfer - * @copyright 2015 Florian Eckerstorfer - */ -class DefaultRuleProvider implements RuleProviderInterface -{ - /** - * DO NOT MODIFY THESE RULES! - * These rules are generated by the script in bin/generate-rules.php based on the JSON files - * in Resources/rules. - * - * @var array - */ - protected $rules = /*INSERT_START*/array ( - 'arabic' => - array ( - 'Ø£' => 'a', - 'ب' => 'b', - 'ت' => 't', - 'Ø«' => 'th', - 'ج' => 'g', - 'Ø­' => 'h', - 'Ø®' => 'kh', - 'د' => 'd', - 'ذ' => 'th', - 'ر' => 'r', - 'ز' => 'z', - 'س' => 's', - 'Ø´' => 'sh', - 'ص' => 's', - 'ض' => 'd', - 'Ø·' => 't', - 'ظ' => 'th', - 'ع' => 'aa', - 'غ' => 'gh', - 'Ù' => 'f', - 'Ù‚' => 'k', - 'Ùƒ' => 'k', - 'Ù„' => 'l', - 'Ù…' => 'm', - 'Ù†' => 'n', - 'Ù‡' => 'h', - 'Ùˆ' => 'o', - 'ÙŠ' => 'y', - ), - 'austrian' => - array ( - 'Ä' => 'AE', - 'Ö' => 'OE', - 'Ü' => 'UE', - 'ß' => 'sz', - 'ä' => 'ae', - 'ö' => 'oe', - 'ü' => 'ue', - ), - 'azerbaijani' => - array ( - 'Æ' => 'E', - 'Ç' => 'C', - 'Äž' => 'G', - 'İ' => 'I', - 'Åž' => 'S', - 'Ö' => 'O', - 'Ü' => 'U', - 'É™' => 'e', - 'ç' => 'c', - 'ÄŸ' => 'g', - 'ı' => 'i', - 'ÅŸ' => 's', - 'ö' => 'o', - 'ü' => 'u', - ), - 'bulgarian' => - array ( - 'Ð' => 'A', - 'Б' => 'B', - 'Ð’' => 'V', - 'Г' => 'G', - 'Д' => 'D', - 'Е' => 'E', - 'Ж' => 'J', - 'З' => 'Z', - 'И' => 'I', - 'Й' => 'Y', - 'К' => 'K', - 'Л' => 'L', - 'М' => 'M', - 'Ð' => 'N', - 'О' => 'O', - 'П' => 'P', - 'Р' => 'R', - 'С' => 'S', - 'Т' => 'T', - 'У' => 'U', - 'Ф' => 'F', - 'Ð¥' => 'H', - 'Ц' => 'Ts', - 'Ч' => 'Ch', - 'Ш' => 'Sh', - 'Щ' => 'Sht', - 'Ъ' => 'A', - 'Ь' => 'I', - 'Ю' => 'Iu', - 'Я' => 'Ia', - 'а' => 'a', - 'б' => 'b', - 'в' => 'v', - 'г' => 'g', - 'д' => 'd', - 'е' => 'e', - 'ж' => 'j', - 'з' => 'z', - 'и' => 'i', - 'й' => 'y', - 'к' => 'k', - 'л' => 'l', - 'м' => 'm', - 'н' => 'n', - 'о' => 'o', - 'п' => 'p', - 'Ñ€' => 'r', - 'Ñ' => 's', - 'Ñ‚' => 't', - 'у' => 'u', - 'Ñ„' => 'f', - 'Ñ…' => 'h', - 'ц' => 'ts', - 'ч' => 'ch', - 'ш' => 'sh', - 'щ' => 'sht', - 'ÑŠ' => 'a', - 'ÑŒ' => 'i', - 'ÑŽ' => 'iu', - 'Ñ' => 'ia', - 'иÑ' => 'ia', - 'йо' => 'iо', - 'ьо' => 'io', - ), - 'burmese' => - array ( - 'က' => 'k', - 'á€' => 'kh', - 'ဂ' => 'g', - 'ဃ' => 'ga', - 'င' => 'ng', - 'စ' => 's', - 'ဆ' => 'sa', - 'ဇ' => 'z', - 'စျ' => 'za', - 'ည' => 'ny', - 'ဋ' => 't', - 'ဌ' => 'ta', - 'á€' => 'd', - 'ဎ' => 'da', - 'á€' => 'na', - 'á€' => 't', - 'ထ' => 'ta', - 'ဒ' => 'd', - 'ဓ' => 'da', - 'န' => 'n', - 'ပ' => 'p', - 'ဖ' => 'pa', - 'ဗ' => 'b', - 'ဘ' => 'ba', - 'မ' => 'm', - 'ယ' => 'y', - 'ရ' => 'ya', - 'လ' => 'l', - 'á€' => 'w', - 'သ' => 'th', - 'ဟ' => 'h', - 'ဠ' => 'la', - 'အ' => 'a', - 'ြ' => 'y', - 'ျ' => 'ya', - 'ွ' => 'w', - 'ြွ' => 'yw', - 'ျွ' => 'ywa', - 'ှ' => 'h', - 'ဧ' => 'e', - 'á' => '-e', - 'ဣ' => 'i', - 'ဤ' => '-i', - 'ဉ' => 'u', - 'ဦ' => '-u', - 'ဩ' => 'aw', - 'သြော' => 'aw', - 'ဪ' => 'aw', - 'á' => 'ywae', - 'áŒ' => 'hnaik', - 'á€' => '0', - 'á' => '1', - 'á‚' => '2', - 'áƒ' => '3', - 'á„' => '4', - 'á…' => '5', - 'á†' => '6', - 'á‡' => '7', - 'áˆ' => '8', - 'á‰' => '9', - '္' => '', - '့' => '', - 'း' => '', - 'ာ' => 'a', - 'ါ' => 'a', - 'ေ' => 'e', - 'ဲ' => 'e', - 'ိ' => 'i', - 'ီ' => 'i', - 'ို' => 'o', - 'ု' => 'u', - 'ူ' => 'u', - 'ေါင်' => 'aung', - 'ော' => 'aw', - 'ော်' => 'aw', - 'ေါ' => 'aw', - 'ေါ်' => 'aw', - '်' => 'at', - 'က်' => 'et', - 'ိုက်' => 'aik', - 'ောက်' => 'auk', - 'င်' => 'in', - 'ိုင်' => 'aing', - 'ောင်' => 'aung', - 'စ်' => 'it', - 'ည်' => 'i', - 'á€á€º' => 'at', - 'ိá€á€º' => 'eik', - 'ုá€á€º' => 'ok', - 'ွá€á€º' => 'ut', - 'ေá€á€º' => 'it', - 'ဒ်' => 'd', - 'ိုဒ်' => 'ok', - 'ုဒ်' => 'ait', - 'န်' => 'an', - 'ာန်' => 'an', - 'ိန်' => 'ein', - 'ုန်' => 'on', - 'ွန်' => 'un', - 'ပ်' => 'at', - 'ိပ်' => 'eik', - 'ုပ်' => 'ok', - 'ွပ်' => 'ut', - 'န်ုပ်' => 'nub', - 'မ်' => 'an', - 'ိမ်' => 'ein', - 'ုမ်' => 'on', - 'ွမ်' => 'un', - 'ယ်' => 'e', - 'ိုလ်' => 'ol', - 'ဉ်' => 'in', - 'ံ' => 'an', - 'ိံ' => 'ein', - 'ုံ' => 'on', - ), - 'chinese' => - array ( - 'è…Œ' => 'yan', - 'å—„' => 'a', - 'è¿«' => 'po', - 'æ±' => 'ai', - '艾' => 'ai', - 'ç‘·' => 'ai', - 'å—Œ' => 'ai', - '犴' => 'an', - '鳌' => 'ao', - 'å»’' => 'ao', - 'æ‹—' => 'niu', - 'å²™' => 'ao', - 'éŠ' => 'ao', - '扒' => 'ba', - '岜' => 'ba', - '耙' => 'pa', - 'é²…' => 'ba', - 'ç™' => 'ban', - '膀' => 'pang', - '磅' => 'bang', - 'ç‚®' => 'pao', - 'æ›' => 'pu', - '刨' => 'pao', - '瀑' => 'pu', - '陂' => 'bei', - '埤' => 'pi', - '鹎' => 'bei', - 'é‚¶' => 'bei', - 'å­›' => 'bei', - 'é¾' => 'bei', - 'éž´' => 'bei', - '畚' => 'ben', - 'ç”' => 'beng', - '舭' => 'bi', - '秘' => 'mi', - '辟' => 'pi', - '泌' => 'mi', - '裨' => 'bi', - '濞' => 'bi', - '庳' => 'bi', - '嬖' => 'bi', - 'ç•€' => 'bi', - 'ç­š' => 'bi', - 'ç®…' => 'bi', - '襞' => 'bi', - 'è·¸' => 'bi', - '笾' => 'bian', - 'æ‰' => 'bian', - '碥' => 'bian', - '窆' => 'bian', - '便' => 'bian', - 'å¼' => 'bian', - 'ç¼' => 'bian', - '骠' => 'biao', - 'æ“' => 'shao', - '飚' => 'biao', - '飑' => 'biao', - '瘭' => 'biao', - '髟' => 'biao', - '玢' => 'bin', - 'è±³' => 'bin', - 'é•”' => 'bin', - '膑' => 'bin', - 'å±' => 'ping', - '泊' => 'bo', - '逋' => 'bu', - '晡' => 'bu', - 'é’¸' => 'bu', - '醭' => 'bu', - '埔' => 'pu', - 'ç“¿' => 'bu', - '礤' => 'ca', - '骖' => 'can', - 'è—' => 'zang', - '艚' => 'cao', - 'ä¾§' => 'ce', - 'å–³' => 'zha', - '刹' => 'sha', - '瘥' => 'chai', - '禅' => 'chan', - 'å»›' => 'chan', - 'é•¡' => 'tan', - 'æ¾¶' => 'chan', - '躔' => 'chan', - '阊' => 'chang', - 'é²³' => 'chang', - 'é•¿' => 'chang', - '苌' => 'chang', - 'æ°…' => 'chang', - '鬯' => 'chang', - '焯' => 'chao', - 'æœ' => 'chao', - '车' => 'che', - 'ç›' => 'chen', - 'è°¶' => 'chen', - '榇' => 'chen', - 'è›' => 'cheng', - '埕' => 'cheng', - '枨' => 'cheng', - 'å¡' => 'cheng', - '裎' => 'cheng', - 'èž­' => 'chi', - '眵' => 'chi', - '墀' => 'chi', - '篪' => 'chi', - 'å»' => 'di', - '瘛' => 'chi', - 'ç§' => 'zhong', - 'é‡' => 'zhong', - '仇' => 'chou', - '帱' => 'chou', - '俦' => 'chou', - 'é› ' => 'chou', - '臭' => 'chou', - '楮' => 'chu', - '畜' => 'chu', - '嘬' => 'zuo', - '膪' => 'chuai', - 'å·›' => 'chuan', - '椎' => 'zhui', - '呲' => 'ci', - 'å…¹' => 'zi', - '伺' => 'si', - 'ç’' => 'cong', - '楱' => 'cou', - 'æ”’' => 'zan', - '爨' => 'cuan', - 'éš¹' => 'zhui', - '榱' => 'cui', - 'æ’®' => 'cuo', - 'é¹¾' => 'cuo', - 'å—’' => 'da', - 'å“’' => 'da', - '沓' => 'ta', - '骀' => 'tai', - 'ç»' => 'dai', - '埭' => 'dai', - 'ç”™' => 'dai', - 'å¼¹' => 'dan', - 'æ¾¹' => 'dan', - 'å¨' => 'dao', - '纛' => 'dao', - 'ç°¦' => 'deng', - 'æ' => 'ti', - '翟' => 'zhai', - '绨' => 'ti', - '丶' => 'dian', - '佃' => 'dian', - 'ç°Ÿ' => 'dian', - '癜' => 'dian', - 'è°ƒ' => 'tiao', - '铞' => 'diao', - '佚' => 'yi', - 'å ž' => 'die', - '瓞' => 'die', - 'æ²' => 'die', - '垤' => 'die', - 'ç–”' => 'ding', - 'å²½' => 'dong', - 'ç¡' => 'dong', - 'æ«' => 'dong', - '垌' => 'dong', - 'å³’' => 'dong', - 'èŠ' => 'du', - 'ç……' => 'duan', - '碓' => 'dui', - '镦' => 'dui', - '囤' => 'tun', - '铎' => 'duo', - 'ç¼' => 'duo', - 'é©®' => 'tuo', - 'æ²²' => 'tuo', - 'æŸ' => 'tuo', - '哦' => 'o', - 'æ¶' => 'e', - 'è½­' => 'e', - 'é”·' => 'e', - 'é¹—' => 'e', - 'é˜' => 'e', - '诶' => 'ea', - '鲕' => 'er', - 'ç¥' => 'er', - 'ä½´' => 'er', - '番' => 'fan', - 'å½·' => 'pang', - 'éœ' => 'fei', - '蜚' => 'fei', - 'é²±' => 'fei', - '芾' => 'fei', - '瀵' => 'fen', - 'é²¼' => 'fen', - 'å¦' => 'fou', - '趺' => 'fu', - 'æ¡´' => 'fu', - '莩' => 'fu', - 'è”' => 'fu', - '幞' => 'fu', - '郛' => 'fu', - '绂' => 'fu', - '绋' => 'fu', - '祓' => 'fu', - 'ç ©' => 'fu', - 'é»»' => 'fu', - '罘' => 'fu', - '蚨' => 'fu', - '脯' => 'pu', - 'æ»' => 'fu', - '黼' => 'fu', - '鲋' => 'fu', - '鳆' => 'fu', - 'å’–' => 'ka', - 'å™¶' => 'ga', - 'è½§' => 'zha', - 'é™”' => 'gai', - '戤' => 'gai', - '扛' => 'kang', - '戆' => 'gang', - 'ç­»' => 'gang', - 'æ§”' => 'gao', - 'è—' => 'gao', - '缟' => 'gao', - 'å’¯' => 'ge', - '仡' => 'yi', - 'æ¿' => 'ge', - 'å¡¥' => 'ge', - '鬲' => 'ge', - 'å“¿' => 'ge', - 'å¥' => 'ju', - '缑' => 'gou', - 'éž²' => 'gou', - '笱' => 'gou', - 'é˜' => 'gou', - 'çž½' => 'gu', - '罟' => 'gu', - 'å˜' => 'gu', - '牿' => 'gu', - 'é²´' => 'gu', - 'æ ' => 'kuo', - '莞' => 'guan', - '纶' => 'lun', - 'æ¶«' => 'guan', - 'æ¶¡' => 'wo', - 'å‘™' => 'guo', - '馘' => 'guo', - '猓' => 'guo', - 'å’³' => 'ke', - 'æ°¦' => 'hai', - '颔' => 'han', - 'å­' => 'keng', - '颃' => 'hang', - 'å··' => 'xiang', - 'èšµ' => 'ke', - 'ç¿®' => 'he', - 'å“' => 'xia', - 'æ¡' => 'heng', - '泓' => 'hong', - 'è•»' => 'hong', - '黉' => 'hong', - '後' => 'hou', - '唿' => 'hu', - 'ç…³' => 'hu', - 'æµ’' => 'hu', - '祜' => 'hu', - 'å²µ' => 'hu', - '鬟' => 'huan', - '圜' => 'huan', - '郇' => 'xun', - '锾' => 'huan', - '逭' => 'huan', - 'å’´' => 'hui', - '虺' => 'hui', - '会' => 'hui', - '溃' => 'kui', - 'å“•' => 'hui', - '缋' => 'hui', - '锪' => 'huo', - 'è –' => 'huo', - '缉' => 'ji', - '稽' => 'ji', - 'èµ' => 'ji', - '丌' => 'ji', - 'å’­' => 'ji', - '亟' => 'ji', - 'æ®›' => 'ji', - '戢' => 'ji', - 'åµ´' => 'ji', - '蕺' => 'ji', - 'ç³»' => 'xi', - '蓟' => 'ji', - 'éœ' => 'ji', - 'è ' => 'qi', - 'è·½' => 'ji', - '哜' => 'ji', - '鲚' => 'ji', - 'æ´Ž' => 'ji', - '芰' => 'ji', - '茄' => 'qie', - 'çˆ' => 'jia', - '迦' => 'jia', - '笳' => 'jia', - 'è‘­' => 'jia', - 'è·' => 'jia', - 'éƒ' => 'jia', - 'æ' => 'jia', - 'é“—' => 'jia', - '袷' => 'qia', - 'è›±' => 'jia', - 'è§’' => 'jiao', - '挢' => 'jiao', - '岬' => 'jia', - 'å¾¼' => 'jiao', - '湫' => 'qiu', - 'æ•«' => 'jiao', - '瘕' => 'jia', - 'æµ…' => 'qian', - 'è’¹' => 'jian', - 'æ›' => 'jian', - 'æ¹”' => 'jian', - 'ç¼£' => 'jian', - 'çŠ' => 'jian', - 'é¹£' => 'jian', - 'é²£' => 'jian', - '鞯' => 'jian', - '蹇' => 'jian', - '謇' => 'jian', - 'ç¡·' => 'jian', - 'æž§' => 'jian', - '戬' => 'jian', - 'è°«' => 'jian', - 'å›' => 'jian', - '裥' => 'jian', - '笕' => 'jian', - '翦' => 'jian', - 'è¶¼' => 'jian', - '楗' => 'jian', - '牮' => 'jian', - '踺' => 'jian', - '茳' => 'jiang', - '礓' => 'jiang', - '耩' => 'jiang', - 'é™' => 'jiang', - 'ç»›' => 'jiang', - 'æ´š' => 'jiang', - 'é²›' => 'jiao', - '僬' => 'jiao', - '鹪' => 'jiao', - '艽' => 'jiao', - '茭' => 'jiao', - 'åš¼' => 'jiao', - '峤' => 'qiao', - '觉' => 'jiao', - 'æ ¡' => 'xiao', - 'å™' => 'jiao', - '醮' => 'jiao', - 'ç––' => 'jie', - 'å–ˆ' => 'jie', - 'æ¡”' => 'ju', - 'æ‹®' => 'jie', - 'æ¡€' => 'jie', - '颉' => 'jie', - 'å©•' => 'jie', - '羯' => 'jie', - 'é²’' => 'jie', - 'èš§' => 'jie', - '骱' => 'jie', - 'è¡¿' => 'jin', - '馑' => 'jin', - 'åº' => 'jin', - '廑' => 'jin', - 'å ‡' => 'jin', - 'æ§¿' => 'jin', - 'é³' => 'jin', - 'ç¼™' => 'jin', - 'è©' => 'jin', - '赆' => 'jin', - '妗' => 'jin', - 'æ—Œ' => 'jing', - 'è…ˆ' => 'jing', - '憬' => 'jing', - '肼' => 'jing', - '迳' => 'jing', - '胫' => 'jing', - '弪' => 'jing', - 'ç' => 'jing', - '扃' => 'jiong', - 'é¬' => 'jiu', - 'ç–š' => 'jiu', - '僦' => 'jiu', - 'æ¡•' => 'jiu', - 'ç–½' => 'ju', - '裾' => 'ju', - 'è‹´' => 'ju', - 'æ¤' => 'ju', - 'é””' => 'ju', - 'çš' => 'ju', - 'éž«' => 'ju', - '踽' => 'ju', - '榉' => 'ju', - '莒' => 'ju', - 'é½' => 'ju', - '倨' => 'ju', - 'é’œ' => 'ju', - '犋' => 'ju', - '屦' => 'ju', - '榘' => 'ju', - '窭' => 'ju', - '讵' => 'ju', - '醵' => 'ju', - 'è‹£' => 'ju', - '圈' => 'quan', - '镌' => 'juan', - 'è ²' => 'juan', - '锩' => 'juan', - 'ç‹·' => 'juan', - '桊' => 'juan', - 'é„„' => 'juan', - 'ç—' => 'jue', - '攫' => 'jue', - 'å­“' => 'jue', - 'æ©›' => 'jue', - 'ç' => 'jue', - 'æ¡·' => 'jue', - '劂' => 'jue', - 'çˆ' => 'jue', - 'é•¢' => 'jue', - 'è§–' => 'jue', - 'ç­ ' => 'jun', - '麇' => 'jun', - 'æƒ' => 'jun', - '浚' => 'jun', - 'å–€' => 'ka', - 'å¡' => 'ka', - 'ä½§' => 'ka', - '胩' => 'ka', - '锎' => 'kai', - 'è’ˆ' => 'kai', - '剀' => 'kai', - 'åž²' => 'kai', - 'é”´' => 'kai', - '戡' => 'kan', - '莰' => 'kan', - 'é—¶' => 'kang', - 'é’ª' => 'kang', - 'å°»' => 'kao', - 'æ ²' => 'kao', - '柯' => 'ke', - 'ç–´' => 'ke', - 'é’¶' => 'ke', - 'é¢' => 'ke', - 'ç‚' => 'ke', - 'é«' => 'ke', - '壳' => 'ke', - 'å²¢' => 'ke', - '溘' => 'ke', - '骒' => 'ke', - '缂' => 'ke', - 'æ°ª' => 'ke', - '锞' => 'ke', - '裉' => 'ken', - '倥' => 'kong', - 'å´†' => 'kong', - '箜' => 'kong', - '芤' => 'kou', - 'çœ' => 'kou', - 'ç­˜' => 'kou', - '刳' => 'ku', - 'å €' => 'ku', - 'å–¾' => 'ku', - '侉' => 'kua', - 'è’¯' => 'kuai', - 'å“™' => 'kuai', - '狯' => 'kuai', - 'éƒ' => 'kuai', - '匡' => 'kuang', - '夼' => 'kuang', - 'é‚' => 'kuang', - '圹' => 'kuang', - '纩' => 'kuang', - 'è´¶' => 'kuang', - '岿' => 'kui', - 'æ‚' => 'kui', - 'ç½' => 'kui', - '逵' => 'kui', - '馗' => 'kui', - '夔' => 'kui', - 'å–¹' => 'kui', - 'éš—' => 'wei', - '暌' => 'kui', - 'æ†' => 'kui', - 'è°' => 'kui', - 'è·¬' => 'kui', - 'å–Ÿ' => 'kui', - 'è©' => 'kui', - '篑' => 'kui', - 'è’‰' => 'kui', - '愦' => 'kui', - '锟' => 'kun', - '醌' => 'kun', - 'ç¨' => 'kun', - 'é«¡' => 'kun', - '悃' => 'kun', - '阃' => 'kun', - '蛞' => 'kuo', - 'ç ¬' => 'la', - 'è½' => 'luo', - '剌' => 'la', - '瘌' => 'la', - 'æ¶ž' => 'lai', - 'å´ƒ' => 'lai', - '铼' => 'lai', - '赉' => 'lai', - 'æ¿‘' => 'lai', - 'æ–“' => 'lan', - 'é•§' => 'lan', - 'è°°' => 'lan', - '漤' => 'lan', - 'ç½±' => 'lan', - '稂' => 'lang', - '阆' => 'lang', - '莨' => 'liang', - 'è’—' => 'lang', - '铹' => 'lao', - 'ç—¨' => 'lao', - '醪' => 'lao', - 'æ ³' => 'lao', - 'é“‘' => 'lao', - '耢' => 'lao', - 'å‹’' => 'le', - '仂' => 'le', - 'å»' => 'le', - 'æ³' => 'le', - '鳓' => 'le', - '了' => 'le', - 'é•­' => 'lei', - '嫘' => 'lei', - 'ç¼§' => 'lei', - '檑' => 'lei', - '诔' => 'lei', - '耒' => 'lei', - 'é…¹' => 'lei', - 'å¡„' => 'leng', - 'æ„£' => 'leng', - 'è—œ' => 'li', - '骊' => 'li', - 'é»§' => 'li', - '缡' => 'li', - 'å« ' => 'li', - '鲡' => 'li', - 'è“ ' => 'li', - 'æ¾§' => 'li', - '锂' => 'li', - '醴' => 'li', - 'é³¢' => 'li', - '俪' => 'li', - 'ç º' => 'li', - '郦' => 'li', - '詈' => 'li', - 'çŒ' => 'li', - '溧' => 'li', - 'æ Ž' => 'li', - 'è½¹' => 'li', - '傈' => 'li', - 'åœ' => 'li', - '苈' => 'li', - 'ç– ' => 'li', - 'ç–¬' => 'li', - '篥' => 'li', - 'ç²' => 'li', - 'è·ž' => 'li', - 'ä¿©' => 'liang', - '裢' => 'lian', - 'æ¿‚' => 'lian', - 'è‡' => 'lian', - 'å¥' => 'lian', - 'è Š' => 'lian', - 'ç' => 'lian', - '蔹' => 'lian', - '裣' => 'lian', - 'æ¥' => 'lian', - '潋' => 'lian', - '椋' => 'liang', - '墚' => 'liang', - '寮' => 'liao', - '鹩' => 'liao', - '蓼' => 'liao', - 'é’Œ' => 'liao', - 'å»–' => 'liao', - 'å°¥' => 'liao', - 'æ´Œ' => 'lie', - 'æ©' => 'lie', - '埒' => 'lie', - 'èº' => 'lie', - '鬣' => 'lie', - '辚' => 'lin', - 'é´' => 'lin', - '啉' => 'lin', - 'çžµ' => 'lin', - '懔' => 'lin', - '廪' => 'lin', - '蔺' => 'lin', - '膦' => 'lin', - 'é…ƒ' => 'ling', - '柃' => 'ling', - 'é²®' => 'ling', - '呤' => 'ling', - 'é•' => 'liu', - 'æ—’' => 'liu', - 'éª' => 'liu', - 'éŽ' => 'liu', - 'é”' => 'liu', - '碌' => 'lu', - '鹨' => 'liu', - 'èŒ' => 'long', - 'æ Š' => 'long', - 'æ³·' => 'long', - 'ç »' => 'long', - '癃' => 'long', - 'åž…' => 'long', - 'å»' => 'lou', - 'è¼' => 'lou', - 'è’Œ' => 'lou', - '耧' => 'lou', - 'åµ' => 'lou', - '露' => 'lu', - '瘘' => 'lou', - '噜' => 'lu', - 'è½³' => 'lu', - '垆' => 'lu', - '胪' => 'lu', - '舻' => 'lu', - 'æ Œ' => 'lu', - 'é•¥' => 'lu', - '绿' => 'lv', - '辘' => 'lu', - 'ç°' => 'lu', - '潞' => 'lu', - '辂' => 'lu', - '渌' => 'lu', - 'æ°‡' => 'lu', - 'æ‹' => 'lv', - '稆' => 'lv', - '率' => 'lv', - 'é—¾' => 'lv', - 'æ ¾' => 'luan', - '銮' => 'luan', - '滦' => 'luan', - '娈' => 'luan', - 'è„”' => 'luan', - '锊' => 'lve', - '猡' => 'luo', - '椤' => 'luo', - 'è„¶' => 'luo', - 'é•™' => 'luo', - '倮' => 'luo', - 'è ƒ' => 'luo', - '瘰' => 'luo', - 'çž' => 'luo', - '泺' => 'luo', - 'è¦' => 'luo', - 'é›’' => 'luo', - 'å‘’' => 'mu', - '抹' => 'mo', - 'å”›' => 'mai', - 'æ©' => 'ma', - '么' => 'me', - '埋' => 'mai', - 'è¬' => 'mai', - '脉' => 'mai', - '劢' => 'mai', - '颟' => 'man', - '蔓' => 'man', - 'é³—' => 'man', - 'éž”' => 'man', - '螨' => 'man', - 'å¢' => 'man', - '缦' => 'man', - '熳' => 'man', - '镘' => 'man', - 'é‚™' => 'mang', - 'ç¡­' => 'mang', - 'æ—„' => 'mao', - '茆' => 'mao', - 'å³' => 'mao', - 'æ³–' => 'mao', - '昴' => 'mao', - '耄' => 'mao', - 'ç‘' => 'mao', - '懋' => 'mao', - '瞀' => 'mao', - '麽' => 'me', - '没' => 'mei', - '嵋' => 'mei', - '湄' => 'mei', - '猸' => 'mei', - 'é•…' => 'mei', - 'é¹›' => 'mei', - 'æµ¼' => 'mei', - 'é’”' => 'men', - '瞢' => 'meng', - 'ç”' => 'meng', - '礞' => 'meng', - '艨' => 'meng', - '黾' => 'mian', - '鳘' => 'min', - '溟' => 'ming', - 'æš' => 'ming', - '模' => 'mo', - 'è°Ÿ' => 'mo', - 'å««' => 'mo', - '镆' => 'mo', - '瘼' => 'mo', - '耱' => 'mo', - '貊' => 'mo', - '貘' => 'mo', - '牟' => 'mou', - 'éª' => 'mou', - '蛑' => 'mou', - 'ä¾”' => 'mou', - '毪' => 'mu', - 'å¶' => 'mu', - '仫' => 'mu', - 'å””' => 'wu', - 'é‚£' => 'na', - '镎' => 'na', - '哪' => 'na', - 'å‘¢' => 'ne', - 'è‚­' => 'na', - '艿' => 'nai', - 'é¼' => 'nai', - 'è˜' => 'nai', - '柰' => 'nai', - 'è»' => 'nan', - '馕' => 'nang', - 'æ”®' => 'nang', - '曩' => 'nang', - '猱' => 'nao', - 'é“™' => 'nao', - '硇' => 'nao', - '蛲' => 'nao', - 'åž´' => 'nao', - 'å­' => 'ni', - '猊' => 'ni', - '铌' => 'ni', - 'é²µ' => 'ni', - '祢' => 'mi', - 'ç¨' => 'ni', - 'æ…' => 'te', - 'ä¼²' => 'ni', - '鲇' => 'nian', - 'é²¶' => 'nian', - 'åŸ' => 'nian', - '嬲' => 'niao', - '茑' => 'niao', - '脲' => 'niao', - 'å•®' => 'nie', - 'é™§' => 'nie', - '颞' => 'nie', - '臬' => 'nie', - '蘖' => 'nie', - '甯' => 'ning', - 'è' => 'ning', - '狃' => 'niu', - '侬' => 'nong', - '耨' => 'nou', - 'å­¥' => 'nu', - '胬' => 'nu', - 'é’•' => 'nv', - 'æ§' => 'nv', - '褰' => 'qian', - '掮' => 'qian', - 'è¨' => 'xun', - 'é’¤' => 'qian', - 'ç®' => 'qian', - '鬈' => 'quan', - 'ç¼±' => 'qian', - 'è‚·' => 'qian', - '纤' => 'xian', - '茜' => 'qian', - 'æ…Š' => 'qian', - '椠' => 'qian', - '戗' => 'qiang', - '镪' => 'qiang', - 'é”–' => 'qiang', - '樯' => 'qiang', - '嫱' => 'qiang', - '雀' => 'que', - 'ç¼²' => 'qiao', - 'ç¡—' => 'qiao', - 'åŠ' => 'qiao', - '樵' => 'qiao', - 'è°¯' => 'qiao', - 'éž’' => 'qiao', - 'æ„€' => 'qiao', - '鞘' => 'qiao', - '郄' => 'xi', - 'ç®§' => 'qie', - '亲' => 'qin', - '覃' => 'tan', - '溱' => 'qin', - '檎' => 'qin', - '锓' => 'qin', - 'å—ª' => 'qin', - 'èž“' => 'qin', - 'æ¿' => 'qin', - 'å£' => 'qin', - '圊' => 'qing', - 'é²­' => 'qing', - '檠' => 'qing', - '黥' => 'qing', - '謦' => 'qing', - '苘' => 'qing', - '磬' => 'qing', - 'ç®' => 'qing', - 'ç¶®' => 'qi', - '茕' => 'qiong', - 'é‚›' => 'dao', - '蛩' => 'tun', - 'ç­‡' => 'qiong', - 'è·«' => 'qiong', - '銎' => 'qiong', - '楸' => 'qiu', - 'ä¿…' => 'qiu', - '赇' => 'qiu', - '逑' => 'qiu', - '犰' => 'qiu', - 'è¤' => 'qiu', - 'å·¯' => 'qiu', - 'é¼½' => 'qiu', - 'ç³—' => 'qiu', - '区' => 'qu', - '祛' => 'qu', - '麴' => 'qu', - '诎' => 'qu', - 'è¡¢' => 'qu', - '癯' => 'qu', - '劬' => 'qu', - 'ç’©' => 'qu', - 'æ°' => 'qu', - 'æœ' => 'qu', - '磲' => 'qu', - '鸲' => 'qu', - 'è•–' => 'qu', - 'è ¼' => 'qu', - '蘧' => 'qu', - '阒' => 'qu', - '颧' => 'quan', - 'èƒ' => 'quan', - '铨' => 'quan', - 'è¾' => 'quan', - 'ç­Œ' => 'quan', - 'ç»»' => 'quan', - '畎' => 'quan', - '阕' => 'que', - 'æ‚«' => 'que', - '髯' => 'ran', - '禳' => 'rang', - 'ç©°' => 'rang', - '仞' => 'ren', - '妊' => 'ren', - '轫' => 'ren', - '衽' => 'ren', - '狨' => 'rong', - '肜' => 'rong', - 'è¾' => 'rong', - 'åš…' => 'ru', - 'æ¿¡' => 'ru', - 'è–·' => 'ru', - '襦' => 'ru', - '颥' => 'ru', - 'æ´³' => 'ru', - '溽' => 'ru', - 'è“' => 'ru', - '朊' => 'ruan', - '蕤' => 'rui', - '枘' => 'rui', - '箬' => 'ruo', - '挲' => 'suo', - '脎' => 'sa', - '塞' => 'sai', - '鳃' => 'sai', - 'å™»' => 'sai', - '毵' => 'san', - '馓' => 'san', - 'ç³' => 'san', - '霰' => 'xian', - '磉' => 'sang', - '颡' => 'sang', - '缫' => 'sao', - '鳋' => 'sao', - '埽' => 'sao', - '瘙' => 'sao', - '色' => 'se', - 'æ‰' => 'shan', - '鲨' => 'sha', - 'ç—§' => 'sha', - '裟' => 'sha', - 'é“©' => 'sha', - '唼' => 'sha', - 'é…¾' => 'shai', - 'æ …' => 'zha', - 'è·š' => 'shan', - '芟' => 'shan', - 'åŸ' => 'shan', - 'é’' => 'shan', - '舢' => 'shan', - '剡' => 'yan', - '鄯' => 'shan', - 'ç–' => 'shan', - '蟮' => 'shan', - '墒' => 'shang', - 'åž§' => 'shang', - 'ç»±' => 'shang', - '蛸' => 'shao', - 'ç­²' => 'shao', - 'è‹•' => 'tiao', - 'å¬' => 'zhao', - '劭' => 'shao', - '猞' => 'she', - '畲' => 'she', - '折' => 'zhe', - 'æ» ' => 'she', - 'æ­™' => 'xi', - 'åŽ' => 'she', - '莘' => 'shen', - '娠' => 'shen', - '诜' => 'shen', - '什' => 'shen', - 'è°‚' => 'shen', - '渖' => 'shen', - '矧' => 'shen', - '胂' => 'shen', - '椹' => 'shen', - 'çœ' => 'sheng', - '眚' => 'sheng', - '嵊' => 'sheng', - '嘘' => 'xu', - 'è“' => 'shi', - '鲺' => 'shi', - '识' => 'shi', - '拾' => 'shi', - '埘' => 'shi', - '莳' => 'shi', - 'ç‚»' => 'shi', - 'é²¥' => 'shi', - '豕' => 'shi', - 'ä¼¼' => 'si', - '噬' => 'shi', - 'è´³' => 'shi', - '铈' => 'shi', - 'èž«' => 'shi', - 'ç­®' => 'shi', - 'æ®–' => 'zhi', - '熟' => 'shu', - 'è‰' => 'shou', - 'è½' => 'shu', - 'æ‘…' => 'shu', - '纾' => 'shu', - '毹' => 'shu', - 'ç–‹' => 'shu', - 'æ•°' => 'shu', - '属' => 'shu', - '术' => 'shu', - 'æ¾' => 'shu', - 'æ²­' => 'shu', - '丨' => 'shu', - 'è…§' => 'shu', - '说' => 'shuo', - 'å¦' => 'shuo', - 'è’´' => 'shuo', - 'æ§Š' => 'shuo', - 'æ ' => 'shuo', - '鸶' => 'si', - '澌' => 'si', - '缌' => 'si', - 'é”¶' => 'si', - '厶' => 'si', - '蛳' => 'si', - 'é©·' => 'si', - 'æ³—' => 'si', - '汜' => 'si', - 'å…•' => 'si', - 'å§’' => 'si', - '耜' => 'si', - '笥' => 'si', - '忪' => 'song', - 'æ·ž' => 'song', - 'å´§' => 'song', - '凇' => 'song', - 'è˜' => 'song', - '竦' => 'song', - '溲' => 'sou', - '飕' => 'sou', - '蜩' => 'tiao', - 'èœ' => 'tie', - 'æ±€' => 'ting', - 'è‘¶' => 'ting', - '莛' => 'ting', - '梃' => 'ting', - '佟' => 'tong', - 'é…®' => 'tong', - 'ä»' => 'tong', - '茼' => 'tong', - 'ç ¼' => 'tong', - 'é’­' => 'dou', - 'é…´' => 'tu', - 'é’' => 'tu', - 'å ' => 'tu', - '抟' => 'tuan', - 'å¿’' => 'te', - 'ç…º' => 'tui', - 'æš¾' => 'tun', - 'æ°½' => 'tun', - '乇' => 'tuo', - 'ç £' => 'tuo', - 'æ²±' => 'tuo', - 'è·Ž' => 'tuo', - 'å¨' => 'tuo', - 'æ©' => 'tuo', - 'é…¡' => 'tuo', - 'é¼' => 'tuo', - '庹' => 'tuo', - 'æ‹“' => 'tuo', - 'æŸ' => 'tuo', - '箨' => 'tuo', - 'è…½' => 'wa', - 'å´´' => 'wai', - '芄' => 'wan', - '畹' => 'wan', - 'ç¬' => 'wan', - '脘' => 'wan', - 'è€' => 'wan', - 'å°¢' => 'you', - '辋' => 'wang', - 'é­' => 'wang', - '逶' => 'wei', - '葳' => 'wei', - '隈' => 'wei', - '惟' => 'wei', - 'å¸' => 'wei', - '圩' => 'wei', - 'å›—' => 'wei', - 'æ½' => 'wei', - '嵬' => 'wei', - '沩' => 'wei', - 'æ¶ ' => 'wei', - 'å°¾' => 'wei', - '玮' => 'wei', - '炜' => 'wei', - '韪' => 'wei', - 'æ´§' => 'wei', - '艉' => 'wei', - 'é²”' => 'wei', - 'é—' => 'yi', - 'å°‰' => 'wei', - '軎' => 'wei', - 'ç’º' => 'wen', - '阌' => 'wen', - '蓊' => 'weng', - '蕹' => 'weng', - '渥' => 'wo', - '硪' => 'wo', - '龌' => 'wo', - '圬' => 'wu', - 'å¾' => 'wu', - '浯' => 'wu', - '鼯' => 'wu', - '牾' => 'wu', - 'è¿•' => 'wu', - '庑' => 'wu', - 'ç—¦' => 'wu', - '芴' => 'wu', - 'æŒ' => 'wu', - 'ç„' => 'wu', - '阢' => 'wu', - '婺' => 'wu', - '鋈' => 'wu', - '樨' => 'xi', - 'æ –' => 'qi', - '郗' => 'xi', - '蹊' => 'qi', - 'æ·…' => 'xi', - '熹' => 'xi', - 'æµ ' => 'xi', - '僖' => 'xi', - '穸' => 'xi', - 'èž…' => 'xi', - 'è¥' => 'xi', - '舾' => 'xi', - '矽' => 'xi', - '粞' => 'xi', - 'ç¡’' => 'xi', - '醯' => 'xi', - '欷' => 'xi', - 'é¼·' => 'xi', - '檄' => 'xi', - 'éš°' => 'xi', - 'è§‹' => 'xi', - 'å±£' => 'xi', - '葸' => 'xi', - 'è“°' => 'xi', - 'é“£' => 'xi', - '饩' => 'xi', - '阋' => 'xi', - '禊' => 'xi', - '舄' => 'xi', - '狎' => 'xia', - 'ç¡–' => 'xia', - '柙' => 'xia', - 'æš¹' => 'xian', - '莶' => 'xian', - '祆' => 'xian', - 'ç±¼' => 'xian', - 'è·¹' => 'xian', - '鹇' => 'xian', - 'ç—«' => 'xian', - '猃' => 'xian', - '燹' => 'xian', - '蚬' => 'xian', - 'ç­…' => 'xian', - '冼' => 'xian', - '岘' => 'xian', - '骧' => 'xiang', - 'è‘™' => 'xiang', - '芗' => 'xiang', - '缃' => 'xiang', - '庠' => 'xiang', - '鲞' => 'xiang', - '蟓' => 'xiang', - '削' => 'xue', - 'æžµ' => 'xiao', - '绡' => 'xiao', - 'ç­±' => 'xiao', - '邪' => 'xie', - 'å‹°' => 'xie', - '缬' => 'xie', - 'è¡€' => 'xue', - '榭' => 'xie', - '瀣' => 'xie', - 'è–¤' => 'xie', - '燮' => 'xie', - '躞' => 'xie', - '廨' => 'xie', - 'ç»' => 'xie', - '渫' => 'xie', - 'æ¦' => 'xie', - 'ç¬' => 'xie', - '昕' => 'xin', - 'å¿»' => 'xin', - '囟' => 'xin', - '陉' => 'jing', - 'è¥' => 'ying', - '饧' => 'tang', - '硎' => 'xing', - 'è‡' => 'xing', - '芎' => 'xiong', - 'é¦' => 'xiu', - '庥' => 'xiu', - '鸺' => 'xiu', - 'è²…' => 'xiu', - '髹' => 'xiu', - '宿' => 'xiu', - '岫' => 'xiu', - '溴' => 'xiu', - 'å' => 'xu', - 'ç›±' => 'xu', - '顼' => 'xu', - '糈' => 'xu', - '醑' => 'xu', - 'æ´«' => 'xu', - '溆' => 'xu', - 'è“¿' => 'xu', - 'è±' => 'xuan', - 'è°–' => 'xuan', - '儇' => 'xuan', - 'ç…Š' => 'xuan', - 'ç—ƒ' => 'xuan', - '铉' => 'xuan', - '泫' => 'xuan', - '碹' => 'xuan', - '楦' => 'xuan', - '镟' => 'xuan', - '踅' => 'xue', - 'æ³¶' => 'xue', - '鳕' => 'xue', - '埙' => 'xun', - 'æ››' => 'xun', - '窨' => 'xun', - 'ç¯' => 'xun', - '峋' => 'xun', - 'æ´µ' => 'xun', - 'æ‚' => 'xun', - 'æµ”' => 'xun', - '鲟' => 'xun', - '蕈' => 'xun', - 'åž­' => 'ya', - '岈' => 'ya', - 'çŠ' => 'ya', - 'ç—–' => 'ya', - 'è¿“' => 'ya', - 'ç ‘' => 'ya', - 'å’½' => 'yan', - 'é„¢' => 'yan', - 'è¸' => 'yan', - 'å´¦' => 'yan', - 'é“…' => 'qian', - '芫' => 'yuan', - 'å…–' => 'yan', - 'ç°' => 'yan', - '罨' => 'yan', - '厣' => 'yan', - '焱' => 'yan', - 'é…½' => 'yan', - 'è°³' => 'yan', - 'éž…' => 'yang', - 'ç‚€' => 'yang', - '蛘' => 'yang', - '约' => 'yue', - 'ç§' => 'yao', - '轺' => 'yao', - '繇' => 'yao', - 'é³' => 'yao', - 'å´¾' => 'yao', - 'é’¥' => 'yao', - '曜' => 'yao', - '铘' => 'ye', - '烨' => 'ye', - '邺' => 'ye', - 'é¥' => 'ye', - 'æ™”' => 'ye', - '猗' => 'yi', - '铱' => 'yi', - '欹' => 'qi', - '黟' => 'yi', - '怡' => 'yi', - '沂' => 'yi', - '圯' => 'yi', - 'è‘' => 'yi', - '诒' => 'yi', - '眙' => 'yi', - 'å¶·' => 'yi', - 'é’‡' => 'yi', - '舣' => 'yi', - 'é…' => 'yi', - '熠' => 'yi', - '弋' => 'yi', - '懿' => 'yi', - 'é•’' => 'yi', - '峄' => 'yi', - '怿' => 'yi', - 'æ‚’' => 'yi', - 'ä½¾' => 'yi', - '殪' => 'yi', - '挹' => 'yi', - '埸' => 'yi', - '劓' => 'yi', - '镱' => 'yi', - '瘗' => 'yi', - 'ç™”' => 'yi', - '翊' => 'yi', - '蜴' => 'yi', - 'æ°¤' => 'yin', - 'å ™' => 'yin', - 'æ´‡' => 'yin', - '鄞' => 'yin', - '狺' => 'yin', - '夤' => 'yin', - '圻' => 'qi', - '饮' => 'yin', - 'å²' => 'yin', - '胤' => 'yin', - '茚' => 'yin', - 'ç’Ž' => 'ying', - 'æ’„' => 'ying', - '嬴' => 'ying', - '滢' => 'ying', - '潆' => 'ying', - 'è“¥' => 'ying', - '瘿' => 'ying', - '郢' => 'ying', - '媵' => 'ying', - 'é‚•' => 'yong', - 'é•›' => 'yong', - '墉' => 'yong', - 'æ…µ' => 'yong', - 'ç—ˆ' => 'yong', - 'é³™' => 'yong', - '饔' => 'yong', - 'å–' => 'yong', - 'ä¿‘' => 'yong', - '莸' => 'you', - '猷' => 'you', - 'ç–£' => 'you', - 'èš°' => 'you', - 'è£' => 'you', - '莜' => 'you', - '牖' => 'you', - 'é“•' => 'you', - 'å£' => 'you', - '宥' => 'you', - '侑' => 'you', - 'èš´' => 'you', - '釉' => 'you', - '馀' => 'yu', - 'è¸' => 'yu', - '禺' => 'yu', - '妤' => 'yu', - '欤' => 'yu', - 'è§Ž' => 'yu', - '窬' => 'yu', - 'è“' => 'yu', - 'åµ›' => 'yu', - 'èˆ' => 'yu', - '雩' => 'yu', - '龉' => 'yu', - 'ä¼›' => 'yu', - '圉' => 'yu', - '庾' => 'yu', - 'ç˜' => 'yu', - '窳' => 'yu', - 'ä¿£' => 'yu', - '毓' => 'yu', - '峪' => 'yu', - 'ç…œ' => 'yu', - '燠' => 'yu', - 'è“£' => 'yu', - '饫' => 'yu', - '阈' => 'yu', - '鬻' => 'yu', - 'è¿' => 'yu', - 'é’°' => 'yu', - '鹆' => 'yu', - '蜮' => 'yu', - '眢' => 'yuan', - '箢' => 'yuan', - '员' => 'yuan', - 'æ²…' => 'yuan', - '橼' => 'yuan', - '塬' => 'yuan', - '爰' => 'yuan', - '螈' => 'yuan', - '鼋' => 'yuan', - '掾' => 'yuan', - '垸' => 'yuan', - 'ç‘—' => 'yuan', - '刖' => 'yue', - '瀹' => 'yue', - '樾' => 'yue', - 'é¾ ' => 'yue', - 'æ°²' => 'yun', - '昀' => 'yun', - '郧' => 'yun', - 'ç‹' => 'yun', - '郓' => 'yun', - '韫' => 'yun', - 'æ½' => 'yun', - '扎' => 'zha', - 'æ‹¶' => 'za', - 'å’‹' => 'za', - 'ä»”' => 'zai', - 'æ˜' => 'zan', - 'ç“’' => 'zan', - '奘' => 'zang', - '唣' => 'zao', - 'æ‹©' => 'ze', - 'è¿®' => 'ze', - '赜' => 'ze', - '笮' => 'ze', - '箦' => 'ze', - '舴' => 'ze', - '昃' => 'ze', - '缯' => 'zeng', - 'ç½¾' => 'zeng', - '齄' => 'zha', - '柞' => 'zha', - 'ç—„' => 'zha', - '瘵' => 'zhai', - 'æ—ƒ' => 'zhan', - 'ç’‹' => 'zhang', - 'æ¼³' => 'zhang', - '嫜' => 'zhang', - 'é„£' => 'zhang', - '仉' => 'zhang', - 'å¹›' => 'zhang', - 'ç€' => 'zhe', - 'å•' => 'zhou', - '爪' => 'zhao', - '棹' => 'zhao', - '笊' => 'zhao', - '摺' => 'zhe', - '磔' => 'zhe', - 'è¿™' => 'zhe', - '柘' => 'zhe', - 'æ¡¢' => 'zhen', - 'è“' => 'zhen', - '祯' => 'zhen', - '浈' => 'zhen', - 'ç•›' => 'zhen', - '轸' => 'zhen', - '稹' => 'zhen', - '圳' => 'zhen', - 'å¾µ' => 'zhi', - 'é’²' => 'zheng', - 'å®' => 'zhi', - 'èƒ' => 'zhi', - '祗' => 'zhi', - 'æ‘­' => 'zhi', - 'çµ·' => 'zhi', - '埴' => 'zhi', - 'è½µ' => 'zhi', - '黹' => 'zhi', - '帙' => 'zhi', - 'è½¾' => 'zhi', - 'è´½' => 'zhi', - '陟' => 'zhi', - 'å¿®' => 'zhi', - '彘' => 'zhi', - '膣' => 'zhi', - '鸷' => 'zhi', - '骘' => 'zhi', - '踬' => 'zhi', - '郅' => 'zhi', - '觯' => 'zhi', - '锺' => 'zhong', - 'èž½' => 'zhong', - '舯' => 'zhong', - '碡' => 'zhou', - '绉' => 'zhou', - 'è®' => 'zhou', - 'ç±€' => 'zhou', - 'é…Ž' => 'zhou', - 'æ´™' => 'zhu', - '邾' => 'zhu', - 'æ½´' => 'zhu', - 'æ§ ' => 'zhu', - 'æ©¥' => 'zhu', - '舳' => 'zhu', - '瘃' => 'zhu', - '渚' => 'zhu', - '麈' => 'zhu', - '箸' => 'zhu', - 'ç‚·' => 'zhu', - 'æ¼' => 'zhu', - 'ç¿¥' => 'zhu', - 'ç–°' => 'zhu', - '颛' => 'zhuan', - '赚' => 'zhuan', - '馔' => 'zhuan', - '僮' => 'tong', - 'ç¼’' => 'zhui', - 'è‚«' => 'zhun', - '窀' => 'zhun', - 'æ¶¿' => 'zhuo', - '倬' => 'zhuo', - '濯' => 'zhuo', - '诼' => 'zhuo', - '禚' => 'zhuo', - '浞' => 'zhuo', - 'è°˜' => 'zi', - 'æ·„' => 'zi', - 'é«­' => 'zi', - 'å­³' => 'zi', - 'ç²¢' => 'zi', - 'è¶‘' => 'zi', - 'è§œ' => 'zui', - 'ç¼' => 'zi', - 'é²»' => 'zi', - '嵫' => 'zi', - '笫' => 'zi', - '耔' => 'zi', - 'è…™' => 'zong', - 'å¬' => 'zong', - '诹' => 'zou', - '陬' => 'zou', - '鄹' => 'zou', - '驺' => 'zou', - 'é²°' => 'zou', - 'è¹' => 'ju', - '镞' => 'zu', - '躜' => 'zuan', - 'ç¼µ' => 'zuan', - '蕞' => 'zui', - 'æ’™' => 'zun', - '胙' => 'zuo', - '阿' => 'e', - 'æŸ' => 'bai', - '蚌' => 'beng', - 'è–„' => 'bo', - 'å ¡' => 'bao', - 'å‘—' => 'bei', - 'è´²' => 'ben', - '臂' => 'bi', - '瘪' => 'bie', - 'æ§Ÿ' => 'bin', - '剥' => 'bo', - '伯' => 'bo', - 'åœ' => 'bu', - 'å‚' => 'can', - 'åš“' => 'ca', - 'å·®' => 'cha', - 'å­±' => 'chan', - 'ç»°' => 'chuo', - 'ç§°' => 'cheng', - '澄' => 'cheng', - '大' => 'da', - 'å•' => 'dan', - 'å¾—' => 'de', - 'çš„' => 'de', - '地' => 'di', - '都' => 'dou', - '读' => 'du', - '度' => 'du', - 'è¹²' => 'dun', - 'ä½›' => 'fo', - 'ä¼½' => 'jia', - 'ç›–' => 'gai', - 'é•' => 'hao', - 'ç»™' => 'gei', - '呱' => 'gua', - 'æ°¿' => 'jiu', - 'æ¡§' => 'hui', - '掴' => 'guo', - '蛤' => 'ha', - '还' => 'hai', - 'å’Œ' => 'he', - 'æ ¸' => 'he', - '哼' => 'heng', - '鹄' => 'hu', - '划' => 'hua', - '夹' => 'jia', - 'è´¾' => 'jia', - '芥' => 'jie', - '劲' => 'jin', - 'è†' => 'jing', - '颈' => 'jing', - '貉' => 'he', - 'å–' => 'a', - '啊' => 'a', - '锕' => 'a', - '哎' => 'ai', - 'å“€' => 'ai', - '埃' => 'ai', - '唉' => 'ai', - '欸' => 'ai', - '锿' => 'ai', - '挨' => 'ai', - 'çš‘' => 'ai', - '癌' => 'ai', - 'æ¯' => 'ai', - '矮' => 'ai', - '蔼' => 'ai', - '霭' => 'ai', - 'ç ¹' => 'ai', - '爱' => 'ai', - '隘' => 'ai', - 'ç¢' => 'ai', - 'å—³' => 'ai', - 'å«’' => 'ai', - 'å†' => 'ai', - 'æš§' => 'ai', - '安' => 'an', - '桉' => 'an', - 'æ°¨' => 'an', - '庵' => 'an', - 'è°™' => 'an', - '鹌' => 'an', - 'éž' => 'an', - '俺' => 'an', - '埯' => 'an', - '唵' => 'an', - '铵' => 'an', - 'æž' => 'an', - '岸' => 'an', - '按' => 'an', - '胺' => 'an', - '案' => 'an', - 'æš—' => 'an', - '黯' => 'an', - '玵' => 'an', - 'è‚®' => 'ang', - '昂' => 'ang', - '盎' => 'ang', - '凹' => 'ao', - 'æ•–' => 'ao', - 'é¨' => 'ao', - 'å—·' => 'ao', - 'ç’' => 'ao', - '熬' => 'ao', - 'è±' => 'ao', - '螯' => 'ao', - '翱' => 'ao', - '謷' => 'ao', - 'é–' => 'ao', - '袄' => 'ao', - '媪' => 'ao', - 'å³' => 'ao', - '傲' => 'ao', - '奥' => 'ao', - '骜' => 'ao', - 'æ¾³' => 'ao', - '懊' => 'ao', - 'å…«' => 'ba', - 'å·´' => 'ba', - 'å­' => 'ba', - '芭' => 'ba', - 'ç–¤' => 'ba', - 'æŒ' => 'ba', - '笆' => 'ba', - '粑' => 'ba', - 'æ‹”' => 'ba', - '茇' => 'ba', - '妭' => 'ba', - 'è' => 'ba', - 'è·‹' => 'ba', - 'é­ƒ' => 'ba', - '把' => 'ba', - 'é¶' => 'ba', - 'å' => 'ba', - '爸' => 'ba', - 'ç½¢' => 'ba', - '霸' => 'ba', - 'çž' => 'ba', - 'å§' => 'ba', - 'é’¯' => 'ba', - '掰' => 'bai', - '白' => 'bai', - '百' => 'bai', - 'ä½°' => 'bai', - 'æ­' => 'bai', - '摆' => 'bai', - 'è´¥' => 'bai', - '拜' => 'bai', - '稗' => 'bai', - '扳' => 'ban', - '攽' => 'ban', - 'ç­' => 'ban', - '般' => 'ban', - 'é¢' => 'ban', - 'æ–‘' => 'ban', - 'æ¬' => 'ban', - '瘢' => 'ban', - '阪' => 'ban', - 'å‚' => 'ban', - 'æ¿' => 'ban', - '版' => 'ban', - 'é’£' => 'ban', - '舨' => 'ban', - '办' => 'ban', - 'åŠ' => 'ban', - 'ä¼´' => 'ban', - '拌' => 'ban', - '绊' => 'ban', - 'ç“£' => 'ban', - '扮' => 'ban', - '邦' => 'bang', - '帮' => 'bang', - '梆' => 'bang', - '浜' => 'bang', - '绑' => 'bang', - '榜' => 'bang', - '棒' => 'bang', - 'å‚' => 'bang', - 'è°¤' => 'bang', - 'è’¡' => 'bang', - 'é•‘' => 'bang', - '包' => 'bao', - '苞' => 'bao', - 'å­¢' => 'bao', - '胞' => 'bao', - 'é¾…' => 'bao', - 'ç…²' => 'bao', - '褒' => 'bao', - '雹' => 'bao', - '饱' => 'bao', - 'å®' => 'bao', - 'ä¿' => 'bao', - '鸨' => 'bao', - '葆' => 'bao', - '褓' => 'bao', - '报' => 'bao', - '抱' => 'bao', - 'è¶µ' => 'bao', - 'è±¹' => 'bao', - 'é²' => 'bao', - 'æš´' => 'bao', - '爆' => 'bao', - 'æž¹' => 'bao', - 'æ¯' => 'bei', - 'å‘' => 'bei', - '悲' => 'bei', - '碑' => 'bei', - '北' => 'bei', - 'è´' => 'bei', - '狈' => 'bei', - '备' => 'bei', - '背' => 'bei', - 'é’¡' => 'bei', - 'å€' => 'bei', - 'æ‚–' => 'bei', - '被' => 'bei', - '辈' => 'bei', - '惫' => 'bei', - 'ç„™' => 'bei', - 'è““' => 'bei', - '碚' => 'bei', - '褙' => 'bei', - '别' => 'bei', - '蹩' => 'bei', - '椑' => 'bei', - '奔' => 'ben', - '倴' => 'ben', - '犇' => 'ben', - 'é”›' => 'ben', - '本' => 'ben', - '苯' => 'ben', - 'åŒ' => 'ben', - '笨' => 'ben', - 'å´©' => 'beng', - 'ç»·' => 'beng', - '嘣' => 'beng', - 'ç”­' => 'beng', - 'æ³µ' => 'beng', - '迸' => 'beng', - '镚' => 'beng', - '蹦' => 'beng', - '屄' => 'bi', - '逼' => 'bi', - 'è¸' => 'bi', - 'é¼»' => 'bi', - '匕' => 'bi', - '比' => 'bi', - 'å¡' => 'bi', - '沘' => 'bi', - '妣' => 'bi', - 'å½¼' => 'bi', - 'ç§•' => 'bi', - '笔' => 'bi', - '俾' => 'bi', - 'é„™' => 'bi', - 'å¸' => 'bi', - 'å¿…' => 'bi', - '毕' => 'bi', - 'é—­' => 'bi', - '庇' => 'bi', - 'è¯' => 'bi', - '苾' => 'bi', - 'èœ' => 'bi', - '毖' => 'bi', - 'å“”' => 'bi', - 'é™›' => 'bi', - '毙' => 'bi', - 'é“‹' => 'bi', - 'ç‹´' => 'bi', - 'è†' => 'bi', - 'æ¢' => 'bi', - 'æ•' => 'bi', - 'å©¢' => 'bi', - '赑' => 'bi', - '愎' => 'bi', - 'å¼¼' => 'bi', - 'è“–' => 'bi', - 'ç—¹' => 'bi', - 'æ»—' => 'bi', - '碧' => 'bi', - '蔽' => 'bi', - 'é¦' => 'bi', - '弊' => 'bi', - 'è–œ' => 'bi', - '篦' => 'bi', - 'å£' => 'bi', - 'é¿' => 'bi', - 'é«€' => 'bi', - 'ç’§' => 'bi', - '芘' => 'bi', - 'è¾¹' => 'bian', - 'ç ­' => 'bian', - 'è¹' => 'bian', - 'ç¼–' => 'bian', - 'ç…¸' => 'bian', - 'è™' => 'bian', - '鳊' => 'bian', - 'éž­' => 'bian', - 'è´¬' => 'bian', - '匾' => 'bian', - '褊' => 'bian', - 'è—Š' => 'bian', - 'åž' => 'bian', - '抃' => 'bian', - 'è‹„' => 'bian', - 'æ±´' => 'bian', - 'å¿­' => 'bian', - 'å˜' => 'bian', - 'é' => 'bian', - '辨' => 'bian', - '辩' => 'bian', - '辫' => 'bian', - 'æ ‡' => 'biao', - '骉' => 'biao', - '彪' => 'biao', - '摽' => 'biao', - '膘' => 'biao', - '飙' => 'biao', - 'é•–' => 'biao', - '瀌' => 'biao', - '镳' => 'biao', - '表' => 'biao', - '婊' => 'biao', - '裱' => 'biao', - 'é³”' => 'biao', - '憋' => 'bie', - 'é³–' => 'bie', - '宾' => 'bin', - '彬' => 'bin', - 'å‚§' => 'bin', - '滨' => 'bin', - '缤' => 'bin', - 'æ¿’' => 'bin', - '摈' => 'bin', - '殡' => 'bin', - '髌' => 'bin', - '鬓' => 'bin', - '冰' => 'bing', - 'å…µ' => 'bing', - '丙' => 'bing', - 'é‚´' => 'bing', - '秉' => 'bing', - '柄' => 'bing', - '饼' => 'bing', - '炳' => 'bing', - '禀' => 'bing', - 'å¹¶' => 'bing', - 'ç—…' => 'bing', - 'æ‘’' => 'bing', - '拨' => 'bo', - 'æ³¢' => 'bo', - '玻' => 'bo', - 'é’µ' => 'bo', - '饽' => 'bo', - '袯' => 'bo', - 'è ' => 'bo', - 'æ’­' => 'bo', - '驳' => 'bo', - '帛' => 'bo', - '勃' => 'bo', - 'é’¹' => 'bo', - 'é“‚' => 'bo', - '亳' => 'bo', - '舶' => 'bo', - 'è„–' => 'bo', - 'åš' => 'bo', - 'é¹' => 'bo', - '渤' => 'bo', - 'æ' => 'bo', - '馎' => 'bo', - 'ç®”' => 'bo', - '膊' => 'bo', - '踣' => 'bo', - '馞' => 'bo', - '礴' => 'bo', - 'è·›' => 'bo', - '檗' => 'bo', - '擘' => 'bo', - 'ç°¸' => 'bo', - '啵' => 'bo', - '蕃' => 'bo', - '哱' => 'bo', - 'åŸ' => 'bu', - 'è¡¥' => 'bu', - 'æ•' => 'bu', - '哺' => 'bu', - 'ä¸' => 'bu', - '布' => 'bu', - 'æ­¥' => 'bu', - '怖' => 'bu', - 'é’š' => 'bu', - '部' => 'bu', - '埠' => 'bu', - 'ç°¿' => 'bu', - '擦' => 'ca', - '猜' => 'cai', - 'æ‰' => 'cai', - 'æ' => 'cai', - 'è´¢' => 'cai', - 'è£' => 'cai', - '采' => 'cai', - '彩' => 'cai', - 'ç¬' => 'cai', - '踩' => 'cai', - 'èœ' => 'cai', - '蔡' => 'cai', - 'é¤' => 'can', - '残' => 'can', - 'èš•' => 'can', - '惭' => 'can', - '惨' => 'can', - '黪' => 'can', - 'ç¿' => 'can', - 'ç²²' => 'can', - 'ç’¨' => 'can', - '穇' => 'can', - '仓' => 'cang', - 'ä¼§' => 'cang', - 'è‹' => 'cang', - 'æ²§' => 'cang', - '舱' => 'cang', - 'æ“' => 'cao', - 'ç³™' => 'cao', - '曹' => 'cao', - '嘈' => 'cao', - '漕' => 'cao', - 'æ§½' => 'cao', - '螬' => 'cao', - 'è‰' => 'cao', - '册' => 'ce', - '厕' => 'ce', - '测' => 'ce', - 'æ»' => 'ce', - 'ç­–' => 'ce', - '岑' => 'cen', - 'æ¶”' => 'cen', - '噌' => 'ceng', - '层' => 'ceng', - 'å¶’' => 'ceng', - 'è¹­' => 'ceng', - 'å‰' => 'cha', - 'æˆ' => 'cha', - 'æ’' => 'cha', - '馇' => 'cha', - '锸' => 'cha', - '茬' => 'cha', - '茶' => 'cha', - 'æ½' => 'cha', - 'åµ–' => 'cha', - '猹' => 'cha', - 'æ§Ž' => 'cha', - '碴' => 'cha', - '察' => 'cha', - '檫' => 'cha', - 'è¡©' => 'cha', - '镲' => 'cha', - '汊' => 'cha', - 'å²”' => 'cha', - '侘' => 'cha', - '诧' => 'cha', - 'å§¹' => 'cha', - 'è¹…' => 'cha', - '拆' => 'chai', - 'é’—' => 'chai', - '侪' => 'chai', - '柴' => 'chai', - '豺' => 'chai', - '虿' => 'chai', - 'èŒ' => 'chai', - '觇' => 'chan', - '掺' => 'chan', - 'æ€' => 'chan', - '襜' => 'chan', - 'è°—' => 'chan', - '婵' => 'chan', - '馋' => 'chan', - 'ç¼ ' => 'chan', - 'è‰' => 'chan', - '潺' => 'chan', - '蟾' => 'chan', - 'å·‰' => 'chan', - '产' => 'chan', - 'æµ' => 'chan', - 'è°„' => 'chan', - '铲' => 'chan', - 'é˜' => 'chan', - 'è’‡' => 'chan', - '骣' => 'chan', - 'å†' => 'chan', - 'å¿' => 'chan', - '颤' => 'chan', - 'ç¾¼' => 'chan', - '韂' => 'chan', - 'ä¼¥' => 'chang', - '昌' => 'chang', - 'è–' => 'chang', - '猖' => 'chang', - '娼' => 'chang', - 'è‚ ' => 'chang', - 'å°' => 'chang', - '常' => 'chang', - 'å¿' => 'chang', - '徜' => 'chang', - '嫦' => 'chang', - '厂' => 'chang', - '场' => 'chang', - '昶' => 'chang', - 'æƒ' => 'chang', - '敞' => 'chang', - '怅' => 'chang', - 'ç•…' => 'chang', - '倡' => 'chang', - 'å”±' => 'chang', - '裳' => 'chang', - '抄' => 'chao', - '怊' => 'chao', - 'é’ž' => 'chao', - 'è¶…' => 'chao', - 'æ™' => 'chao', - 'å·¢' => 'chao', - '嘲' => 'chao', - 'æ½®' => 'chao', - 'åµ' => 'chao', - 'ç‚’' => 'chao', - '耖' => 'chao', - 'ç —' => 'che', - '扯' => 'che', - 'å½»' => 'che', - 'å¼' => 'che', - '掣' => 'che', - 'æ’¤' => 'che', - '澈' => 'che', - 'çž®' => 'che', - '抻' => 'chen', - '郴' => 'chen', - 'å—”' => 'chen', - 'çž‹' => 'chen', - '臣' => 'chen', - 'å°˜' => 'chen', - 'è¾°' => 'chen', - '沉' => 'chen', - '忱' => 'chen', - '陈' => 'chen', - '宸' => 'chen', - '晨' => 'chen', - 'è°Œ' => 'chen', - '碜' => 'chen', - '衬' => 'chen', - 'é¾€' => 'chen', - 'è¶' => 'chen', - '柽' => 'cheng', - 'ç¤' => 'cheng', - 'æ’‘' => 'cheng', - 'çž ' => 'cheng', - 'æˆ' => 'cheng', - '丞' => 'cheng', - '呈' => 'cheng', - '诚' => 'cheng', - '承' => 'cheng', - '城' => 'cheng', - 'é“–' => 'cheng', - '程' => 'cheng', - '惩' => 'cheng', - 'é…²' => 'cheng', - 'æ©™' => 'cheng', - '逞' => 'cheng', - '骋' => 'cheng', - '秤' => 'cheng', - 'é“›' => 'cheng', - '樘' => 'cheng', - 'åƒ' => 'chi', - 'å“§' => 'chi', - '鸱' => 'chi', - 'èš©' => 'chi', - '笞' => 'chi', - 'å—¤' => 'chi', - 'ç—´' => 'chi', - '媸' => 'chi', - 'é­‘' => 'chi', - 'æ± ' => 'chi', - 'å¼›' => 'chi', - 'é©°' => 'chi', - '迟' => 'chi', - '茌' => 'chi', - 'æŒ' => 'chi', - '踟' => 'chi', - 'å°º' => 'chi', - '齿' => 'chi', - '侈' => 'chi', - '耻' => 'chi', - '豉' => 'chi', - '褫' => 'chi', - 'å½³' => 'chi', - 'å±' => 'chi', - 'æ–¥' => 'chi', - '赤' => 'chi', - '饬' => 'chi', - '炽' => 'chi', - 'ç¿…' => 'chi', - 'æ••' => 'chi', - 'å•»' => 'chi', - '傺' => 'chi', - '匙' => 'chi', - '冲' => 'chong', - 'å……' => 'chong', - 'å¿¡' => 'chong', - '茺' => 'chong', - '舂' => 'chong', - '憧' => 'chong', - '艟' => 'chong', - '虫' => 'chong', - 'å´‡' => 'chong', - 'å® ' => 'chong', - '铳' => 'chong', - '抽' => 'chou', - '瘳' => 'chou', - '惆' => 'chou', - '绸' => 'chou', - 'ç•´' => 'chou', - 'é…¬' => 'chou', - '稠' => 'chou', - 'æ„' => 'chou', - 'ç­¹' => 'chou', - '踌' => 'chou', - '丑' => 'chou', - 'çž…' => 'chou', - '出' => 'chu', - 'åˆ' => 'chu', - '樗' => 'chu', - 'åˆ' => 'chu', - '除' => 'chu', - '厨' => 'chu', - '锄' => 'chu', - 'æ»' => 'chu', - 'èœ' => 'chu', - 'é›' => 'chu', - '橱' => 'chu', - '躇' => 'chu', - 'è¹°' => 'chu', - 'æµ' => 'chu', - 'ç¡€' => 'chu', - '储' => 'chu', - '楚' => 'chu', - '褚' => 'chu', - 'äº' => 'chu', - '处' => 'chu', - '怵' => 'chu', - '绌' => 'chu', - 'æ' => 'chu', - '触' => 'chu', - '憷' => 'chu', - '黜' => 'chu', - '矗' => 'chu', - 'æ£' => 'chuai', - 'æ‹' => 'chuai', - '膗' => 'chuai', - '踹' => 'chuai', - 'å·' => 'chuan', - 'æ°š' => 'chuan', - 'ç©¿' => 'chuan', - '舡' => 'chuan', - '船' => 'chuan', - 'é„' => 'chuan', - '椽' => 'chuan', - '舛' => 'chuan', - 'å–˜' => 'chuan', - '串' => 'chuan', - 'é’' => 'chuan', - 'ç–®' => 'chuang', - '窗' => 'chuang', - '床' => 'chuang', - 'é—¯' => 'chuang', - '创' => 'chuang', - '怆' => 'chuang', - 'å¹' => 'chui', - '炊' => 'chui', - 'åž‚' => 'chui', - '陲' => 'chui', - 'æ¶' => 'chui', - '棰' => 'chui', - 'æ§Œ' => 'chui', - '锤' => 'chui', - '春' => 'chun', - '瑃' => 'chun', - '椿' => 'chun', - 'è½' => 'chun', - '纯' => 'chun', - '莼' => 'chun', - '唇' => 'chun', - 'æ·³' => 'chun', - '鹑' => 'chun', - '醇' => 'chun', - 'è ¢' => 'chun', - '踔' => 'chuo', - '戳' => 'chuo', - '啜' => 'chuo', - '惙' => 'chuo', - 'è¾' => 'chuo', - '龊' => 'chuo', - 'æ­ ' => 'chuo', - 'ç–µ' => 'ci', - 'è¯' => 'ci', - '茈' => 'ci', - '茨' => 'ci', - '祠' => 'ci', - 'ç“·' => 'ci', - '辞' => 'ci', - 'æ…ˆ' => 'ci', - 'ç£' => 'ci', - '雌' => 'ci', - '鹚' => 'ci', - 'ç³' => 'ci', - 'æ­¤' => 'ci', - '泚' => 'ci', - 'è·' => 'ci', - '次' => 'ci', - '刺' => 'ci', - 'ä½½' => 'ci', - 'èµ' => 'ci', - '匆' => 'cong', - 'è‹' => 'cong', - 'å›±' => 'cong', - 'æžž' => 'cong', - '葱' => 'cong', - '骢' => 'cong', - 'èª' => 'cong', - '从' => 'cong', - '丛' => 'cong', - 'æ·™' => 'cong', - 'æ‚°' => 'cong', - 'ç®' => 'cong', - '凑' => 'cou', - 'è¾' => 'cou', - 'è… ' => 'cou', - 'ç²—' => 'cu', - '徂' => 'cu', - '殂' => 'cu', - '促' => 'cu', - 'çŒ' => 'cu', - '蔟' => 'cu', - '醋' => 'cu', - '踧' => 'cu', - 'ç°‡' => 'cu', - 'è¹™' => 'cu', - 'è¹´' => 'cu', - '汆' => 'cuan', - 'æ’º' => 'cuan', - 'é•©' => 'cuan', - '蹿' => 'cuan', - '窜' => 'cuan', - '篡' => 'cuan', - 'å´”' => 'cui', - '催' => 'cui', - 'æ‘§' => 'cui', - 'ç’€' => 'cui', - '脆' => 'cui', - 'èƒ' => 'cui', - 'å•' => 'cui', - 'æ·¬' => 'cui', - 'æ‚´' => 'cui', - '毳' => 'cui', - 'ç˜' => 'cui', - 'ç²¹' => 'cui', - 'ç¿ ' => 'cui', - 'æ‘' => 'cun', - 'çš´' => 'cun', - 'å­˜' => 'cun', - 'å¿–' => 'cun', - '寸' => 'cun', - 'å‹' => 'cun', - 'æ“' => 'cuo', - '磋' => 'cuo', - '蹉' => 'cuo', - '嵯' => 'cuo', - '矬' => 'cuo', - 'ç—¤' => 'cuo', - '脞' => 'cuo', - '挫' => 'cuo', - 'èŽ' => 'cuo', - 'åŽ' => 'cuo', - '措' => 'cuo', - '锉' => 'cuo', - 'é”™' => 'cuo', - 'é…‡' => 'cuo', - 'å’‘' => 'da', - '垯' => 'da', - '耷' => 'da', - 'æ­' => 'da', - '褡' => 'da', - 'è¾¾' => 'da', - '怛' => 'da', - '妲' => 'da', - 'è™' => 'da', - '笪' => 'da', - 'ç­”' => 'da', - 'è·¶' => 'da', - 'é¼' => 'da', - '瘩' => 'da', - 'éž‘' => 'da', - '打' => 'da', - '呆' => 'dai', - 'æ­¹' => 'dai', - '逮' => 'dai', - 'å‚£' => 'dai', - '代' => 'dai', - 'å²±' => 'dai', - '迨' => 'dai', - '玳' => 'dai', - '带' => 'dai', - '殆' => 'dai', - 'è´·' => 'dai', - 'å¾…' => 'dai', - '怠' => 'dai', - '袋' => 'dai', - 'å‡' => 'dai', - '戴' => 'dai', - 'é»›' => 'dai', - '襶' => 'dai', - 'å‘”' => 'dai', - '丹' => 'dan', - 'æ‹…' => 'dan', - '眈' => 'dan', - '耽' => 'dan', - '郸' => 'dan', - 'èƒ' => 'dan', - '殚' => 'dan', - '瘅' => 'dan', - '箪' => 'dan', - 'å„‹' => 'dan', - '胆' => 'dan', - 'ç–¸' => 'dan', - '掸' => 'dan', - '亶' => 'dan', - 'æ—¦' => 'dan', - '但' => 'dan', - '诞' => 'dan', - 'è' => 'dan', - 'å•–' => 'dan', - 'æ·¡' => 'dan', - '惮' => 'dan', - '蛋' => 'dan', - 'æ°®' => 'dan', - '赕' => 'dan', - '当' => 'dang', - '裆' => 'dang', - '挡' => 'dang', - 'æ¡£' => 'dang', - 'å…š' => 'dang', - 'è° ' => 'dang', - '凼' => 'dang', - 'ç €' => 'dang', - '宕' => 'dang', - 'è¡' => 'dang', - 'èª' => 'dang', - '刀' => 'dao', - '忉' => 'dao', - 'æ°˜' => 'dao', - '舠' => 'dao', - '导' => 'dao', - 'å²›' => 'dao', - 'æ£' => 'dao', - '倒' => 'dao', - 'æ¯' => 'dao', - '祷' => 'dao', - '蹈' => 'dao', - '到' => 'dao', - 'ç›—' => 'dao', - '悼' => 'dao', - 'é“' => 'dao', - '稻' => 'dao', - '焘' => 'dao', - 'é”' => 'de', - '嘚' => 'de', - 'å¾·' => 'de', - '扽' => 'den', - 'ç¯' => 'deng', - 'ç™»' => 'deng', - 'å™”' => 'deng', - '蹬' => 'deng', - 'ç­‰' => 'deng', - '戥' => 'deng', - 'é‚“' => 'deng', - '僜' => 'deng', - '凳' => 'deng', - 'å¶' => 'deng', - '磴' => 'deng', - '瞪' => 'deng', - 'é•«' => 'deng', - '低' => 'di', - 'ç¾' => 'di', - 'å ¤' => 'di', - '嘀' => 'di', - 'æ»´' => 'di', - 'ç‹„' => 'di', - '迪' => 'di', - 'ç±´' => 'di', - 'è»' => 'di', - '敌' => 'di', - '涤' => 'di', - '笛' => 'di', - 'è§Œ' => 'di', - 'å«¡' => 'di', - 'é•' => 'di', - 'æ°' => 'di', - '邸' => 'di', - '诋' => 'di', - '抵' => 'di', - '底' => 'di', - '柢' => 'di', - 'ç ¥' => 'di', - '骶' => 'di', - '玓' => 'di', - '弟' => 'di', - 'å¸' => 'di', - '递' => 'di', - '娣' => 'di', - '第' => 'di', - 'è°›' => 'di', - 'è’‚' => 'di', - '棣' => 'di', - 'ç‡' => 'di', - 'ç¼”' => 'di', - '碲' => 'di', - 'å—²' => 'dia', - '掂' => 'dian', - '滇' => 'dian', - '颠' => 'dian', - 'å·…' => 'dian', - '癫' => 'dian', - 'å…¸' => 'dian', - '点' => 'dian', - '碘' => 'dian', - '踮' => 'dian', - '电' => 'dian', - '甸' => 'dian', - '阽' => 'dian', - 'å«' => 'dian', - '店' => 'dian', - '玷' => 'dian', - 'åž«' => 'dian', - 'é’¿' => 'dian', - 'æ·€' => 'dian', - '惦' => 'dian', - '奠' => 'dian', - '殿' => 'dian', - 'é›' => 'dian', - 'åˆ' => 'diao', - 'å¼' => 'diao', - '汈' => 'diao', - '凋' => 'diao', - '貂' => 'diao', - '碉' => 'diao', - '雕' => 'diao', - 'é²·' => 'diao', - '屌' => 'diao', - 'åŠ' => 'diao', - 'é’“' => 'diao', - '窎' => 'diao', - '掉' => 'diao', - 'é“«' => 'diao', - '爹' => 'die', - 'è·Œ' => 'die', - 'è¿­' => 'die', - 'è°' => 'die', - '耋' => 'die', - 'å–‹' => 'die', - '牒' => 'die', - 'å ' => 'die', - '碟' => 'die', - 'åµ½' => 'die', - 'è¶' => 'die', - 'è¹€' => 'die', - 'é²½' => 'die', - '仃' => 'ding', - 'å®' => 'ding', - '玎' => 'ding', - '盯' => 'ding', - '町' => 'ding', - '耵' => 'ding', - 'é¡¶' => 'ding', - 'é…Š' => 'ding', - '鼎' => 'ding', - '订' => 'ding', - 'é’‰' => 'ding', - '定' => 'ding', - 'å•¶' => 'ding', - 'è…š' => 'ding', - '碇' => 'ding', - 'é”­' => 'ding', - '丢' => 'diu', - 'é“¥' => 'diu', - '东' => 'dong', - '冬' => 'dong', - 'å’š' => 'dong', - 'æ°¡' => 'dong', - '鸫' => 'dong', - 'è‘£' => 'dong', - '懂' => 'dong', - '动' => 'dong', - '冻' => 'dong', - 'ä¾—' => 'dong', - 'æ ‹' => 'dong', - '胨' => 'dong', - 'æ´ž' => 'dong', - '胴' => 'dong', - 'å…œ' => 'dou', - '蔸' => 'dou', - '篼' => 'dou', - '抖' => 'dou', - '陡' => 'dou', - '蚪' => 'dou', - 'æ–—' => 'dou', - '豆' => 'dou', - '逗' => 'dou', - 'ç—˜' => 'dou', - '窦' => 'dou', - 'ç£' => 'du', - '嘟' => 'du', - '毒' => 'du', - '独' => 'du', - '渎' => 'du', - '椟' => 'du', - '犊' => 'du', - 'ç‰' => 'du', - '黩' => 'du', - 'é«‘' => 'du', - '厾' => 'du', - '笃' => 'du', - 'å µ' => 'du', - '赌' => 'du', - 'ç¹' => 'du', - 'æœ' => 'du', - '肚' => 'du', - '妒' => 'du', - '渡' => 'du', - 'é•€' => 'du', - 'è ¹' => 'du', - '端' => 'duan', - '短' => 'duan', - '段' => 'duan', - 'æ–­' => 'duan', - '缎' => 'duan', - '椴' => 'duan', - 'é”»' => 'duan', - 'ç°–' => 'duan', - 'å †' => 'dui', - '队' => 'dui', - '对' => 'dui', - 'å…‘' => 'dui', - '怼' => 'dui', - 'æ†' => 'dui', - 'å¨' => 'dun', - '惇' => 'dun', - '敦' => 'dun', - '墩' => 'dun', - '礅' => 'dun', - '盹' => 'dun', - '趸' => 'dun', - '沌' => 'dun', - 'ç‚–' => 'dun', - 'ç ˜' => 'dun', - 'é’' => 'dun', - '盾' => 'dun', - 'é¡¿' => 'dun', - 'é' => 'dun', - '多' => 'duo', - 'å’„' => 'duo', - '哆' => 'duo', - '掇' => 'duo', - '裰' => 'duo', - '夺' => 'duo', - '踱' => 'duo', - '朵' => 'duo', - 'åž›' => 'duo', - '哚' => 'duo', - '躲' => 'duo', - '亸' => 'duo', - 'å‰' => 'duo', - '舵' => 'duo', - 'å •' => 'duo', - '惰' => 'duo', - 'è·º' => 'duo', - 'å±™' => 'e', - 'å©€' => 'e', - '讹' => 'e', - 'å›®' => 'e', - 'ä¿„' => 'e', - '莪' => 'e', - '峨' => 'e', - '娥' => 'e', - '锇' => 'e', - 'é¹…' => 'e', - '蛾' => 'e', - 'é¢' => 'e', - '厄' => 'e', - '扼' => 'e', - '苊' => 'e', - '呃' => 'e', - 'åž©' => 'e', - '饿' => 'e', - 'é„‚' => 'e', - 'è°”' => 'e', - 'è¼' => 'e', - 'é' => 'e', - 'æ„•' => 'e', - 'è…­' => 'e', - '颚' => 'e', - '噩' => 'e', - '鳄' => 'e', - 'æ©' => 'en', - 'è’½' => 'en', - 'æ‘' => 'en', - '鞥' => 'eng', - 'å„¿' => 'er', - '而' => 'er', - '鸸' => 'er', - 'å°”' => 'er', - '耳' => 'er', - 'è¿©' => 'er', - '饵' => 'er', - 'æ´±' => 'er', - 'é“’' => 'er', - '二' => 'er', - 'è´°' => 'er', - 'å‘' => 'fa', - 'ä¹' => 'fa', - 'ä¼' => 'fa', - '罚' => 'fa', - 'åž¡' => 'fa', - '阀' => 'fa', - 'ç­' => 'fa', - '法' => 'fa', - 'ç ' => 'fa', - 'ç' => 'fa', - '帆' => 'fan', - '幡' => 'fan', - 'è—©' => 'fan', - 'ç¿»' => 'fan', - '凡' => 'fan', - '矾' => 'fan', - 'é’’' => 'fan', - '烦' => 'fan', - '樊' => 'fan', - '燔' => 'fan', - 'ç¹' => 'fan', - '蹯' => 'fan', - '蘩' => 'fan', - 'å' => 'fan', - 'è¿”' => 'fan', - '犯' => 'fan', - '饭' => 'fan', - 'æ³›' => 'fan', - '范' => 'fan', - 'è´©' => 'fan', - '畈' => 'fan', - '梵' => 'fan', - 'æ–¹' => 'fang', - 'é‚¡' => 'fang', - 'åŠ' => 'fang', - '芳' => 'fang', - 'æž‹' => 'fang', - 'é’«' => 'fang', - '防' => 'fang', - '妨' => 'fang', - '肪' => 'fang', - '房' => 'fang', - '鲂' => 'fang', - '仿' => 'fang', - '访' => 'fang', - '纺' => 'fang', - '舫' => 'fang', - '放' => 'fang', - '飞' => 'fei', - '妃' => 'fei', - 'éž' => 'fei', - 'è²' => 'fei', - 'å•¡' => 'fei', - '绯' => 'fei', - '扉' => 'fei', - 'è‚¥' => 'fei', - 'æ·' => 'fei', - 'è…“' => 'fei', - '匪' => 'fei', - '诽' => 'fei', - '悱' => 'fei', - 'æ£' => 'fei', - 'æ–' => 'fei', - '榧' => 'fei', - 'ç¿¡' => 'fei', - '篚' => 'fei', - 'å ' => 'fei', - '肺' => 'fei', - 'ç‹’' => 'fei', - '废' => 'fei', - '沸' => 'fei', - 'è´¹' => 'fei', - 'ç—±' => 'fei', - 'é•„' => 'fei', - '分' => 'fen', - '芬' => 'fen', - 'å©' => 'fen', - '纷' => 'fen', - 'æ°›' => 'fen', - 'é…š' => 'fen', - 'åŸ' => 'fen', - 'æ±¾' => 'fen', - '棼' => 'fen', - '焚' => 'fen', - 'é¼¢' => 'fen', - '粉' => 'fen', - '份' => 'fen', - '奋' => 'fen', - 'å¿¿' => 'fen', - 'å¾' => 'fen', - '粪' => 'fen', - '愤' => 'fen', - '丰' => 'feng', - '风' => 'feng', - 'æ²£' => 'feng', - 'æž«' => 'feng', - 'å°' => 'feng', - 'ç œ' => 'feng', - 'ç–¯' => 'feng', - 'å³°' => 'feng', - '烽' => 'feng', - 'è‘‘' => 'feng', - '锋' => 'feng', - '蜂' => 'feng', - 'é…†' => 'feng', - '冯' => 'feng', - '逢' => 'feng', - 'ç¼' => 'feng', - '讽' => 'feng', - '唪' => 'feng', - '凤' => 'feng', - '奉' => 'feng', - '俸' => 'feng', - 'ç¼¶' => 'fou', - '夫' => 'fu', - 'å‘‹' => 'fu', - '肤' => 'fu', - '麸' => 'fu', - 'è·—' => 'fu', - '稃' => 'fu', - 'å­µ' => 'fu', - 'æ•·' => 'fu', - 'å¼—' => 'fu', - 'ä¼' => 'fu', - '凫' => 'fu', - '扶' => 'fu', - '芙' => 'fu', - 'å­š' => 'fu', - 'æ‹‚' => 'fu', - 'è‹»' => 'fu', - 'æœ' => 'fu', - '怫' => 'fu', - '茯' => 'fu', - 'æ°Ÿ' => 'fu', - '俘' => 'fu', - 'æµ®' => 'fu', - '符' => 'fu', - 'åŒ' => 'fu', - '涪' => 'fu', - '艴' => 'fu', - 'å¹…' => 'fu', - 'è¾' => 'fu', - '蜉' => 'fu', - 'ç¦' => 'fu', - 'è ' => 'fu', - '抚' => 'fu', - '甫' => 'fu', - '拊' => 'fu', - 'æ–§' => 'fu', - '府' => 'fu', - '俯' => 'fu', - '釜' => 'fu', - 'è¾…' => 'fu', - 'è…‘' => 'fu', - 'è…' => 'fu', - '父' => 'fu', - '讣' => 'fu', - '付' => 'fu', - 'è´Ÿ' => 'fu', - '妇' => 'fu', - '附' => 'fu', - 'å’' => 'fu', - '阜' => 'fu', - '驸' => 'fu', - 'èµ´' => 'fu', - 'å¤' => 'fu', - '副' => 'fu', - '赋' => 'fu', - 'å‚…' => 'fu', - '富' => 'fu', - 'è…¹' => 'fu', - '缚' => 'fu', - 'èµ™' => 'fu', - 'è®' => 'fu', - '覆' => 'fu', - '馥' => 'fu', - '袱' => 'fu', - 'æ—®' => 'ga', - '嘎' => 'ga', - 'é’†' => 'ga', - 'å°œ' => 'ga', - 'å°•' => 'ga', - 'å°¬' => 'ga', - '该' => 'gai', - 'åž“' => 'gai', - 'è„' => 'gai', - 'èµ…' => 'gai', - '改' => 'gai', - 'ä¸' => 'gai', - 'é’™' => 'gai', - '溉' => 'gai', - '概' => 'gai', - '甘' => 'gan', - '玕' => 'gan', - 'è‚' => 'gan', - 'å©' => 'gan', - 'è‹·' => 'gan', - '矸' => 'gan', - 'æ³”' => 'gan', - '柑' => 'gan', - 'ç«¿' => 'gan', - 'é…' => 'gan', - 'ç–³' => 'gan', - 'å°´' => 'gan', - 'æ†' => 'gan', - '秆' => 'gan', - 'èµ¶' => 'gan', - 'æ•¢' => 'gan', - '感' => 'gan', - '澉' => 'gan', - 'æ©„' => 'gan', - 'æ“€' => 'gan', - 'å¹²' => 'gan', - 'æ—°' => 'gan', - '绀' => 'gan', - 'æ·¦' => 'gan', - '骭' => 'gan', - 'èµ£' => 'gan', - '冈' => 'gang', - '冮' => 'gang', - '刚' => 'gang', - 'è‚›' => 'gang', - '纲' => 'gang', - 'é’¢' => 'gang', - '缸' => 'gang', - '罡' => 'gang', - 'å²—' => 'gang', - '港' => 'gang', - 'æ ' => 'gang', - 'çš‹' => 'gao', - '高' => 'gao', - 'ç¾”' => 'gao', - 'ç¾' => 'gao', - 'è†' => 'gao', - '篙' => 'gao', - '糕' => 'gao', - 'æ²' => 'gao', - 'æž' => 'gao', - 'æ§' => 'gao', - '稿' => 'gao', - '告' => 'gao', - '郜' => 'gao', - '诰' => 'gao', - '锆' => 'gao', - '戈' => 'ge', - '圪' => 'ge', - '纥' => 'ge', - 'ç–™' => 'ge', - 'å“¥' => 'ge', - '胳' => 'ge', - '鸽' => 'ge', - '袼' => 'ge', - 'æ' => 'ge', - '割' => 'ge', - 'æ­Œ' => 'ge', - 'é©' => 'ge', - 'é˜' => 'ge', - 'æ ¼' => 'ge', - 'éš”' => 'ge', - 'å—' => 'ge', - '膈' => 'ge', - '骼' => 'ge', - '镉' => 'ge', - '舸' => 'ge', - 'è‘›' => 'ge', - '个' => 'ge', - 'å„' => 'ge', - '虼' => 'ge', - '硌' => 'ge', - '铬' => 'ge', - 'æ ¹' => 'gen', - 'è·Ÿ' => 'gen', - 'å“' => 'gen', - '亘' => 'gen', - '艮' => 'gen', - '茛' => 'gen', - '庚' => 'geng', - '耕' => 'geng', - 'æµ­' => 'geng', - '赓' => 'geng', - 'ç¾¹' => 'geng', - '埂' => 'geng', - '耿' => 'geng', - '哽' => 'geng', - 'ç» ' => 'geng', - '梗' => 'geng', - 'é² ' => 'geng', - 'æ›´' => 'geng', - 'å·¥' => 'gong', - '弓' => 'gong', - 'å…¬' => 'gong', - '功' => 'gong', - 'æ”»' => 'gong', - '肱' => 'gong', - '宫' => 'gong', - 'æ­' => 'gong', - '蚣' => 'gong', - '躬' => 'gong', - '龚' => 'gong', - '塨' => 'gong', - 'è§¥' => 'gong', - 'å·©' => 'gong', - '汞' => 'gong', - '拱' => 'gong', - 'ç™' => 'gong', - 'å…±' => 'gong', - 'è´¡' => 'gong', - 'ä¾›' => 'gong', - '勾' => 'gou', - 'ä½' => 'gou', - '沟' => 'gou', - 'é’©' => 'gou', - 'ç¯' => 'gou', - '苟' => 'gou', - 'å²£' => 'gou', - 'ç‹—' => 'gou', - '枸' => 'gou', - 'æž„' => 'gou', - 'è´­' => 'gou', - '诟' => 'gou', - '垢' => 'gou', - '够' => 'gou', - 'å½€' => 'gou', - '媾' => 'gou', - 'è§' => 'gou', - 'ä¼°' => 'gu', - 'å’•' => 'gu', - 'æ²½' => 'gu', - 'å­¤' => 'gu', - 'å§‘' => 'gu', - 'è½±' => 'gu', - '鸪' => 'gu', - 'è°' => 'gu', - 'è‡' => 'gu', - '蛄' => 'gu', - '蓇' => 'gu', - '辜' => 'gu', - 'é…¤' => 'gu', - 'è§š' => 'gu', - '毂' => 'gu', - 'ç®' => 'gu', - 'å¤' => 'gu', - 'è°·' => 'gu', - '汩' => 'gu', - '诂' => 'gu', - 'è‚¡' => 'gu', - '骨' => 'gu', - '牯' => 'gu', - 'é’´' => 'gu', - 'ç¾–' => 'gu', - '蛊' => 'gu', - '鼓' => 'gu', - '榾' => 'gu', - '鹘' => 'gu', - '臌' => 'gu', - '瀔' => 'gu', - '固' => 'gu', - 'æ•…' => 'gu', - '顾' => 'gu', - 'æ¢' => 'gu', - 'å´®' => 'gu', - '雇' => 'gu', - '锢' => 'gu', - 'ç—¼' => 'gu', - '瓜' => 'gua', - '刮' => 'gua', - 'èƒ' => 'gua', - '鸹' => 'gua', - 'å‰' => 'gua', - '寡' => 'gua', - 'å¦' => 'gua', - '诖' => 'gua', - '挂' => 'gua', - '褂' => 'gua', - 'ä¹–' => 'guai', - 'æ‹' => 'guai', - '怪' => 'guai', - 'å…³' => 'guan', - 'è§‚' => 'guan', - '官' => 'guan', - '倌' => 'guan', - 'è’„' => 'guan', - '棺' => 'guan', - 'ç˜' => 'guan', - 'é³' => 'guan', - '馆' => 'guan', - '管' => 'guan', - 'è´¯' => 'guan', - '冠' => 'guan', - '掼' => 'guan', - '惯' => 'guan', - '祼' => 'guan', - '盥' => 'guan', - 'çŒ' => 'guan', - '瓘' => 'guan', - 'é¹³' => 'guan', - 'ç½' => 'guan', - 'ç¯' => 'guan', - 'å…‰' => 'guang', - 'å’£' => 'guang', - '胱' => 'guang', - '广' => 'guang', - '犷' => 'guang', - 'æ¡„' => 'guang', - '逛' => 'guang', - 'å½’' => 'gui', - '圭' => 'gui', - '龟' => 'gui', - '妫' => 'gui', - 'è§„' => 'gui', - '皈' => 'gui', - 'é—º' => 'gui', - 'ç¡…' => 'gui', - 'ç‘°' => 'gui', - '鲑' => 'gui', - '宄' => 'gui', - '轨' => 'gui', - '庋' => 'gui', - '匦' => 'gui', - '诡' => 'gui', - '鬼' => 'gui', - 'å§½' => 'gui', - '癸' => 'gui', - 'æ™·' => 'gui', - 'ç°‹' => 'gui', - '柜' => 'gui', - 'ç‚…' => 'gui', - '刿' => 'gui', - '刽' => 'gui', - 'è´µ' => 'gui', - 'æ¡‚' => 'gui', - 'è·ª' => 'gui', - '鳜' => 'gui', - 'è¡®' => 'gun', - '绲' => 'gun', - '辊' => 'gun', - '滚' => 'gun', - '磙' => 'gun', - 'é²§' => 'gun', - 'æ£' => 'gun', - '埚' => 'guo', - '郭' => 'guo', - '啯' => 'guo', - 'å´ž' => 'guo', - 'è’' => 'guo', - 'é”…' => 'guo', - 'èˆ' => 'guo', - '国' => 'guo', - '帼' => 'guo', - '虢' => 'guo', - 'æžœ' => 'guo', - 'æ¤' => 'guo', - '蜾' => 'guo', - '裹' => 'guo', - '过' => 'guo', - '哈' => 'ha', - '铪' => 'ha', - 'å­©' => 'hai', - '骸' => 'hai', - '胲' => 'hai', - 'æµ·' => 'hai', - '醢' => 'hai', - '亥' => 'hai', - '骇' => 'hai', - '害' => 'hai', - 'å—' => 'hai', - 'å—¨' => 'hai', - '顸' => 'han', - 'èš¶' => 'han', - 'é…£' => 'han', - '憨' => 'han', - 'é¼¾' => 'han', - 'é‚—' => 'han', - '邯' => 'han', - 'å«' => 'han', - '函' => 'han', - 'æ™—' => 'han', - 'ç„“' => 'han', - 'æ¶µ' => 'han', - '韩' => 'han', - '寒' => 'han', - '罕' => 'han', - 'å–Š' => 'han', - '蔊' => 'han', - '汉' => 'han', - 'æ±—' => 'han', - 'æ—±' => 'han', - 'æ' => 'han', - 'æ‚' => 'han', - 'è¡' => 'han', - '焊' => 'han', - 'æ’–' => 'han', - 'æ’¼' => 'han', - 'ç¿°' => 'han', - '憾' => 'han', - '瀚' => 'han', - '夯' => 'hang', - 'æ­' => 'hang', - 'ç»—' => 'hang', - '航' => 'hang', - '沆' => 'hang', - 'è’¿' => 'hao', - 'è–…' => 'hao', - '嚆' => 'hao', - 'èš' => 'hao', - '毫' => 'hao', - 'å—¥' => 'hao', - '豪' => 'hao', - '壕' => 'hao', - '嚎' => 'hao', - 'æ¿ ' => 'hao', - '好' => 'hao', - 'éƒ' => 'hao', - 'å·' => 'hao', - '昊' => 'hao', - '耗' => 'hao', - '浩' => 'hao', - 'çš“' => 'hao', - '滈' => 'hao', - '颢' => 'hao', - 'ç' => 'hao', - '诃' => 'he', - '呵' => 'he', - 'å–' => 'he', - 'å—¬' => 'he', - '禾' => 'he', - 'åˆ' => 'he', - '何' => 'he', - '劾' => 'he', - 'æ²³' => 'he', - 'æ›·' => 'he', - '阂' => 'he', - 'ç›' => 'he', - 'è·' => 'he', - 'è' => 'he', - 'ç›’' => 'he', - '涸' => 'he', - '颌' => 'he', - '阖' => 'he', - 'è´º' => 'he', - '赫' => 'he', - 'è¤' => 'he', - '鹤' => 'he', - '壑' => 'he', - '黑' => 'hei', - '嘿' => 'hei', - 'ç—•' => 'hen', - '很' => 'hen', - 'ç‹ ' => 'hen', - 'æ¨' => 'hen', - '亨' => 'heng', - 'æ’' => 'heng', - 'ç©' => 'heng', - '横' => 'heng', - 'è¡¡' => 'heng', - '蘅' => 'heng', - '啈' => 'heng', - 'è½°' => 'hong', - '訇' => 'hong', - '烘' => 'hong', - 'è–¨' => 'hong', - '弘' => 'hong', - '红' => 'hong', - 'é—³' => 'hong', - 'å®' => 'hong', - 'è­' => 'hong', - '虹' => 'hong', - 'ç«‘' => 'hong', - 'æ´ª' => 'hong', - '鸿' => 'hong', - 'å“„' => 'hong', - 'è®§' => 'hong', - 'å½' => 'hong', - 'é½' => 'hou', - '侯' => 'hou', - 'å–‰' => 'hou', - '猴' => 'hou', - '瘊' => 'hou', - '骺' => 'hou', - '篌' => 'hou', - '糇' => 'hou', - 'å¼' => 'hou', - 'åŽ' => 'hou', - '郈' => 'hou', - '厚' => 'hou', - 'åž•' => 'hou', - '逅' => 'hou', - '候' => 'hou', - 'å  ' => 'hou', - '鲎' => 'hou', - '乎' => 'hu', - '呼' => 'hu', - '忽' => 'hu', - 'è½·' => 'hu', - '烀' => 'hu', - '惚' => 'hu', - '滹' => 'hu', - '囫' => 'hu', - 'ç‹' => 'hu', - 'å¼§' => 'hu', - '胡' => 'hu', - '壶' => 'hu', - 'æ–›' => 'hu', - 'è‘«' => 'hu', - '猢' => 'hu', - 'æ¹–' => 'hu', - '瑚' => 'hu', - '鹕' => 'hu', - 'æ§²' => 'hu', - 'è´' => 'hu', - '糊' => 'hu', - 'é†' => 'hu', - 'è§³' => 'hu', - '虎' => 'hu', - '唬' => 'hu', - 'ç¥' => 'hu', - '互' => 'hu', - '户' => 'hu', - '冱' => 'hu', - '护' => 'hu', - '沪' => 'hu', - 'æž‘' => 'hu', - '怙' => 'hu', - '戽' => 'hu', - 'ç¬' => 'hu', - 'ç“ ' => 'hu', - '扈' => 'hu', - 'é¹±' => 'hu', - '花' => 'hua', - 'ç ‰' => 'hua', - 'åŽ' => 'hua', - 'å“—' => 'hua', - '骅' => 'hua', - 'é“§' => 'hua', - '猾' => 'hua', - '滑' => 'hua', - '化' => 'hua', - 'ç”»' => 'hua', - 'è¯' => 'hua', - '桦' => 'hua', - '婳' => 'hua', - 'è§Ÿ' => 'hua', - '怀' => 'huai', - '徊' => 'huai', - 'æ·®' => 'huai', - 'æ§' => 'huai', - 'è¸' => 'huai', - '耲' => 'huai', - 'å' => 'huai', - '欢' => 'huan', - 'ç¾' => 'huan', - '环' => 'huan', - 'æ´¹' => 'huan', - 'æ¡“' => 'huan', - 'è‘' => 'huan', - '寰' => 'huan', - 'ç¼³' => 'huan', - '缓' => 'huan', - 'å¹»' => 'huan', - '奂' => 'huan', - '宦' => 'huan', - 'æ¢' => 'huan', - '唤' => 'huan', - 'æ¶£' => 'huan', - 'æµ£' => 'huan', - 'æ‚£' => 'huan', - 'ç„•' => 'huan', - 'ç—ª' => 'huan', - 'è±¢' => 'huan', - 'æ¼¶' => 'huan', - '鲩' => 'huan', - 'æ“' => 'huan', - 'è‚“' => 'huang', - 'è’' => 'huang', - '塃' => 'huang', - 'æ…Œ' => 'huang', - '皇' => 'huang', - '黄' => 'huang', - '凰' => 'huang', - 'éš' => 'huang', - 'å–¤' => 'huang', - 'é‘' => 'huang', - '徨' => 'huang', - '湟' => 'huang', - '惶' => 'huang', - '媓' => 'huang', - 'ç…Œ' => 'huang', - '锽' => 'huang', - 'æ½¢' => 'huang', - 'ç’œ' => 'huang', - 'è—' => 'huang', - 'ç¯' => 'huang', - '艎' => 'huang', - '磺' => 'huang', - '癀' => 'huang', - '蟥' => 'huang', - 'ç°§' => 'huang', - '鳇' => 'huang', - 'æ' => 'huang', - '晃' => 'huang', - 'è°Ž' => 'huang', - '幌' => 'huang', - '滉' => 'huang', - 'çš' => 'huang', - 'ç°' => 'hui', - '诙' => 'hui', - '挥' => 'hui', - 'æ¢' => 'hui', - 'æ™–' => 'hui', - '辉' => 'hui', - '麾' => 'hui', - 'å¾½' => 'hui', - 'éš³' => 'hui', - '回' => 'hui', - '茴' => 'hui', - 'æ´„' => 'hui', - 'è›”' => 'hui', - 'æ‚”' => 'hui', - 'æ¯' => 'hui', - 'å‰' => 'hui', - '汇' => 'hui', - '讳' => 'hui', - 'èŸ' => 'hui', - 'æµ' => 'hui', - '诲' => 'hui', - '绘' => 'hui', - 'æš' => 'hui', - 'è´¿' => 'hui', - '烩' => 'hui', - 'å½—' => 'hui', - '晦' => 'hui', - 'ç§½' => 'hui', - '惠' => 'hui', - 'å–™' => 'hui', - 'æ…§' => 'hui', - 'è•™' => 'hui', - '蟪' => 'hui', - 'ç²' => 'hun', - 'æ˜' => 'hun', - 'è¤' => 'hun', - 'é˜' => 'hun', - '惛' => 'hun', - '婚' => 'hun', - '浑' => 'hun', - '馄' => 'hun', - 'æ··' => 'hun', - 'é­‚' => 'hun', - '诨' => 'hun', - '溷' => 'hun', - '耠' => 'huo', - 'åŠ' => 'huo', - 'è±' => 'huo', - 'æ´»' => 'huo', - 'ç«' => 'huo', - 'ä¼™' => 'huo', - 'é’¬' => 'huo', - '夥' => 'huo', - '或' => 'huo', - 'è´§' => 'huo', - '获' => 'huo', - '祸' => 'huo', - '惑' => 'huo', - 'éœ' => 'huo', - '镬' => 'huo', - '攉' => 'huo', - 'è—¿' => 'huo', - '嚯' => 'huo', - '讥' => 'ji', - '击' => 'ji', - 'å½' => 'ji', - '饥' => 'ji', - '玑' => 'ji', - '圾' => 'ji', - '芨' => 'ji', - '机' => 'ji', - '乩' => 'ji', - '肌' => 'ji', - '矶' => 'ji', - '鸡' => 'ji', - '剞' => 'ji', - 'å”§' => 'ji', - '积' => 'ji', - '笄' => 'ji', - 'å±' => 'ji', - '姬' => 'ji', - '基' => 'ji', - '犄' => 'ji', - '嵇' => 'ji', - '畸' => 'ji', - 'è·»' => 'ji', - '箕' => 'ji', - '齑' => 'ji', - 'ç•¿' => 'ji', - '墼' => 'ji', - 'æ¿€' => 'ji', - 'ç¾' => 'ji', - 'åŠ' => 'ji', - 'å‰' => 'ji', - '岌' => 'ji', - 'æ±²' => 'ji', - '级' => 'ji', - 'æž' => 'ji', - 'å³' => 'ji', - 'ä½¶' => 'ji', - '笈' => 'ji', - '急' => 'ji', - 'ç–¾' => 'ji', - '棘' => 'ji', - '集' => 'ji', - 'è’º' => 'ji', - '楫' => 'ji', - '辑' => 'ji', - '嫉' => 'ji', - '瘠' => 'ji', - 'è—‰' => 'ji', - 'ç±' => 'ji', - '几' => 'ji', - 'å·±' => 'ji', - 'è™®' => 'ji', - '挤' => 'ji', - '脊' => 'ji', - '掎' => 'ji', - '戟' => 'ji', - '麂' => 'ji', - '计' => 'ji', - 'è®°' => 'ji', - '伎' => 'ji', - '纪' => 'ji', - '技' => 'ji', - '忌' => 'ji', - 'é™…' => 'ji', - '妓' => 'ji', - 'å­£' => 'ji', - '剂' => 'ji', - '迹' => 'ji', - '济' => 'ji', - 'æ—¢' => 'ji', - 'è§Š' => 'ji', - 'ç»§' => 'ji', - 'åˆ' => 'ji', - '祭' => 'ji', - '悸' => 'ji', - '寄' => 'ji', - '寂' => 'ji', - '绩' => 'ji', - '暨' => 'ji', - '稷' => 'ji', - '鲫' => 'ji', - 'é«»' => 'ji', - '冀' => 'ji', - '骥' => 'ji', - '加' => 'jia', - 'ä½³' => 'jia', - 'æž·' => 'jia', - '浃' => 'jia', - 'ç—‚' => 'jia', - 'å®¶' => 'jia', - '袈' => 'jia', - '嘉' => 'jia', - 'é•“' => 'jia', - 'èš' => 'jia', - '戛' => 'jia', - '颊' => 'jia', - '甲' => 'jia', - '胛' => 'jia', - 'é’¾' => 'jia', - 'å‡' => 'jia', - 'ä»·' => 'jia', - '驾' => 'jia', - 'æž¶' => 'jia', - 'å«' => 'jia', - '稼' => 'jia', - '戋' => 'jian', - 'å°–' => 'jian', - '奸' => 'jian', - 'æ­¼' => 'jian', - 'åš' => 'jian', - 'é—´' => 'jian', - 'è‚©' => 'jian', - '艰' => 'jian', - '监' => 'jian', - 'å…¼' => 'jian', - 'è…' => 'jian', - '笺' => 'jian', - '缄' => 'jian', - 'ç…Ž' => 'jian', - 'æ‹£' => 'jian', - '茧' => 'jian', - '柬' => 'jian', - 'ä¿­' => 'jian', - 'æ¡' => 'jian', - '检' => 'jian', - 'å‡' => 'jian', - '剪' => 'jian', - 'ç‘' => 'jian', - '简' => 'jian', - '碱' => 'jian', - 'è§' => 'jian', - 'ä»¶' => 'jian', - '饯' => 'jian', - '建' => 'jian', - 'è' => 'jian', - 'è´±' => 'jian', - '剑' => 'jian', - 'å¥' => 'jian', - '舰' => 'jian', - 'æ¶§' => 'jian', - 'æ¸' => 'jian', - 'è°' => 'jian', - 'è·µ' => 'jian', - 'é”' => 'jian', - '毽' => 'jian', - 'è…±' => 'jian', - '溅' => 'jian', - '鉴' => 'jian', - 'é”®' => 'jian', - '僭' => 'jian', - 'ç®­' => 'jian', - '江' => 'jiang', - 'å°†' => 'jiang', - 'å§œ' => 'jiang', - '豇' => 'jiang', - '浆' => 'jiang', - '僵' => 'jiang', - 'ç¼°' => 'jiang', - 'ç–†' => 'jiang', - '讲' => 'jiang', - '奖' => 'jiang', - '桨' => 'jiang', - 'è’‹' => 'jiang', - '匠' => 'jiang', - 'é…±' => 'jiang', - '犟' => 'jiang', - '糨' => 'jiang', - '交' => 'jiao', - '郊' => 'jiao', - '浇' => 'jiao', - '娇' => 'jiao', - 'å§£' => 'jiao', - '骄' => 'jiao', - '胶' => 'jiao', - '椒' => 'jiao', - '蛟' => 'jiao', - '焦' => 'jiao', - 'è·¤' => 'jiao', - '蕉' => 'jiao', - 'ç¤' => 'jiao', - 'ä½¼' => 'jiao', - 'ç‹¡' => 'jiao', - '饺' => 'jiao', - '绞' => 'jiao', - 'é“°' => 'jiao', - '矫' => 'jiao', - '皎' => 'jiao', - '脚' => 'jiao', - 'æ…' => 'jiao', - '剿' => 'jiao', - 'ç¼´' => 'jiao', - 'å«' => 'jiao', - '轿' => 'jiao', - '较' => 'jiao', - 'æ•™' => 'jiao', - '窖' => 'jiao', - 'é…µ' => 'jiao', - 'ä¾¥' => 'jiao', - '阶' => 'jie', - '皆' => 'jie', - '接' => 'jie', - '秸' => 'jie', - 'æ­' => 'jie', - 'å—Ÿ' => 'jie', - 'è¡—' => 'jie', - 'å­‘' => 'jie', - '节' => 'jie', - '讦' => 'jie', - '劫' => 'jie', - 'æ°' => 'jie', - '诘' => 'jie', - 'æ´' => 'jie', - '结' => 'jie', - 'æ·' => 'jie', - 'ç«' => 'jie', - '截' => 'jie', - '碣' => 'jie', - 'ç«­' => 'jie', - 'å§' => 'jie', - 'è§£' => 'jie', - '介' => 'jie', - '戒' => 'jie', - '届' => 'jie', - '界' => 'jie', - 'ç–¥' => 'jie', - '诫' => 'jie', - '借' => 'jie', - 'å·¾' => 'jin', - 'æ–¤' => 'jin', - '今' => 'jin', - '金' => 'jin', - 'æ´¥' => 'jin', - '矜' => 'jin', - 'ç­‹' => 'jin', - '襟' => 'jin', - 'ä»…' => 'jin', - 'ç´§' => 'jin', - '锦' => 'jin', - 'è°¨' => 'jin', - 'å°½' => 'jin', - 'è¿›' => 'jin', - 'è¿‘' => 'jin', - '晋' => 'jin', - '烬' => 'jin', - '浸' => 'jin', - 'ç¦' => 'jin', - 'è§' => 'jin', - '噤' => 'jin', - '茎' => 'jing', - '京' => 'jing', - 'æ³¾' => 'jing', - 'ç»' => 'jing', - 'è' => 'jing', - '惊' => 'jing', - 'æ™¶' => 'jing', - 'ç›' => 'jing', - 'ç²³' => 'jing', - 'å…¢' => 'jing', - 'ç²¾' => 'jing', - '鲸' => 'jing', - '井' => 'jing', - '阱' => 'jing', - '刭' => 'jing', - '景' => 'jing', - '儆' => 'jing', - 'è­¦' => 'jing', - '径' => 'jing', - '净' => 'jing', - 'ç—‰' => 'jing', - '竞' => 'jing', - '竟' => 'jing', - '敬' => 'jing', - 'é–' => 'jing', - 'é™' => 'jing', - '境' => 'jing', - '镜' => 'jing', - 'è¿¥' => 'jiong', - '炯' => 'jiong', - '窘' => 'jiong', - '纠' => 'jiu', - '鸠' => 'jiu', - 'ç©¶' => 'jiu', - 'èµ³' => 'jiu', - '阄' => 'jiu', - 'æª' => 'jiu', - '啾' => 'jiu', - 'ä¹' => 'jiu', - 'ä¹…' => 'jiu', - '玖' => 'jiu', - 'ç¸' => 'jiu', - '韭' => 'jiu', - 'é…’' => 'jiu', - 'æ—§' => 'jiu', - '臼' => 'jiu', - 'å’Ž' => 'jiu', - '柩' => 'jiu', - 'æ•‘' => 'jiu', - '厩' => 'jiu', - 'å°±' => 'jiu', - '舅' => 'jiu', - '鹫' => 'jiu', - '军' => 'jun', - 'å‡' => 'jun', - 'å›' => 'jun', - 'é’§' => 'jun', - 'èŒ' => 'jun', - 'çš²' => 'jun', - '俊' => 'jun', - '郡' => 'jun', - 'å³»' => 'jun', - 'éª' => 'jun', - 'ç«£' => 'jun', - '拘' => 'ju', - 'ç‹™' => 'ju', - 'å±…' => 'ju', - '驹' => 'ju', - '掬' => 'ju', - '雎' => 'ju', - 'éž ' => 'ju', - 'å±€' => 'ju', - 'èŠ' => 'ju', - 'ç„—' => 'ju', - '橘' => 'ju', - 'å’€' => 'ju', - 'æ²®' => 'ju', - '矩' => 'ju', - '举' => 'ju', - '龃' => 'ju', - 'å·¨' => 'ju', - 'æ‹’' => 'ju', - 'å…·' => 'ju', - '炬' => 'ju', - '俱' => 'ju', - '剧' => 'ju', - 'æ®' => 'ju', - 'è·' => 'ju', - '惧' => 'ju', - '飓' => 'ju', - '锯' => 'ju', - 'èš' => 'ju', - '踞' => 'ju', - 'æ' => 'juan', - 'æ¶“' => 'juan', - '娟' => 'juan', - '鹃' => 'juan', - 'å·' => 'juan', - '倦' => 'juan', - '绢' => 'juan', - '眷' => 'juan', - 'éš½' => 'juan', - 'æ’…' => 'jue', - '噘' => 'jue', - '决' => 'jue', - '诀' => 'jue', - '抉' => 'jue', - 'ç»' => 'jue', - '掘' => 'jue', - 'å´›' => 'jue', - '厥' => 'jue', - 'è°²' => 'jue', - '蕨' => 'jue', - '爵' => 'jue', - 'è¹¶' => 'jue', - 'çŸ' => 'jue', - '倔' => 'jue', - 'å’”' => 'ka', - 'å¼€' => 'kai', - 'æ©' => 'kai', - '凯' => 'kai', - 'é“ ' => 'kai', - 'æ…¨' => 'kai', - '楷' => 'kai', - '忾' => 'kai', - '刊' => 'kan', - '勘' => 'kan', - 'é¾›' => 'kan', - 'å ª' => 'kan', - 'åŽ' => 'kan', - '侃' => 'kan', - 'ç ' => 'kan', - 'æ§›' => 'kan', - '看' => 'kan', - 'çž°' => 'kan', - '康' => 'kang', - 'æ…·' => 'kang', - 'ç³ ' => 'kang', - '亢' => 'kang', - '伉' => 'kang', - '抗' => 'kang', - 'ç‚•' => 'kang', - '考' => 'kao', - 'æ‹·' => 'kao', - '烤' => 'kao', - 'é“' => 'kao', - '犒' => 'kao', - 'é ' => 'kao', - 'è‹›' => 'ke', - 'è½²' => 'ke', - 'ç§‘' => 'ke', - '棵' => 'ke', - 'æ•' => 'ke', - 'å—‘' => 'ke', - '稞' => 'ke', - '窠' => 'ke', - '颗' => 'ke', - '磕' => 'ke', - '瞌' => 'ke', - 'èŒ' => 'ke', - 'å¯' => 'ke', - 'å·' => 'ke', - '渴' => 'ke', - 'å…‹' => 'ke', - '刻' => 'ke', - 'æª' => 'ke', - '客' => 'ke', - '课' => 'ke', - '肯' => 'ken', - '垦' => 'ken', - 'æ³' => 'ken', - '啃' => 'ken', - 'å‘' => 'keng', - 'é“¿' => 'keng', - '空' => 'kong', - 'å­”' => 'kong', - 'æ' => 'kong', - '控' => 'kong', - '抠' => 'kou', - 'å£' => 'kou', - 'å©' => 'kou', - '扣' => 'kou', - '寇' => 'kou', - 'è”»' => 'kou', - '枯' => 'ku', - 'å“­' => 'ku', - '窟' => 'ku', - '骷' => 'ku', - '苦' => 'ku', - '库' => 'ku', - 'ç»”' => 'ku', - '裤' => 'ku', - 'é…·' => 'ku', - '夸' => 'kua', - 'åž®' => 'kua', - '挎' => 'kua', - '胯' => 'kua', - 'è·¨' => 'kua', - 'å—' => 'kuai', - 'å¿«' => 'kuai', - '侩' => 'kuai', - 'è„' => 'kuai', - 'ç­·' => 'kuai', - '宽' => 'kuan', - 'é«‹' => 'kuan', - '款' => 'kuan', - '诓' => 'kuang', - 'å“' => 'kuang', - 'ç­' => 'kuang', - 'ç‹‚' => 'kuang', - '诳' => 'kuang', - 'æ—·' => 'kuang', - '况' => 'kuang', - '矿' => 'kuang', - '框' => 'kuang', - '眶' => 'kuang', - 'äº' => 'kui', - 'ç›”' => 'kui', - '窥' => 'kui', - '葵' => 'kui', - 'é­' => 'kui', - 'å‚€' => 'kui', - '匮' => 'kui', - '馈' => 'kui', - 'æ„§' => 'kui', - 'å¤' => 'kun', - '昆' => 'kun', - 'é²²' => 'kun', - 'æ†' => 'kun', - 'å›°' => 'kun', - '扩' => 'kuo', - '括' => 'kuo', - '阔' => 'kuo', - '廓' => 'kuo', - '垃' => 'la', - '拉' => 'la', - '啦' => 'la', - 'é‚‹' => 'la', - 'æ—¯' => 'la', - 'å–‡' => 'la', - 'è…Š' => 'la', - '蜡' => 'la', - 'è¾£' => 'la', - 'æ¥' => 'lai', - '莱' => 'lai', - '徕' => 'lai', - 'ç' => 'lai', - 'èµ–' => 'lai', - '癞' => 'lai', - 'ç±' => 'lai', - 'å…°' => 'lan', - '岚' => 'lan', - '拦' => 'lan', - 'æ ' => 'lan', - '婪' => 'lan', - '阑' => 'lan', - 'è“' => 'lan', - '澜' => 'lan', - '褴' => 'lan', - '篮' => 'lan', - '览' => 'lan', - 'æ½' => 'lan', - '缆' => 'lan', - '榄' => 'lan', - '懒' => 'lan', - '烂' => 'lan', - '滥' => 'lan', - 'å•·' => 'lang', - '郎' => 'lang', - '狼' => 'lang', - 'ç…' => 'lang', - '廊' => 'lang', - '榔' => 'lang', - 'é”’' => 'lang', - 'èž‚' => 'lang', - '朗' => 'lang', - '浪' => 'lang', - 'æž' => 'lao', - '劳' => 'lao', - '牢' => 'lao', - 'å´‚' => 'lao', - 'è€' => 'lao', - '佬' => 'lao', - 'å§¥' => 'lao', - 'å” ' => 'lao', - '烙' => 'lao', - 'æ¶' => 'lao', - 'é…ª' => 'lao', - 'é›·' => 'lei', - '羸' => 'lei', - 'åž’' => 'lei', - '磊' => 'lei', - '蕾' => 'lei', - 'å„¡' => 'lei', - 'è‚‹' => 'lei', - '泪' => 'lei', - 'ç±»' => 'lei', - 'ç´¯' => 'lei', - 'æ“‚' => 'lei', - '嘞' => 'lei', - '棱' => 'leng', - '楞' => 'leng', - '冷' => 'leng', - 'ç–' => 'leng', - '厘' => 'li', - '狸' => 'li', - '离' => 'li', - '梨' => 'li', - 'çŠ' => 'li', - '鹂' => 'li', - 'å–±' => 'li', - '蜊' => 'li', - '漓' => 'li', - 'ç’ƒ' => 'li', - '黎' => 'li', - 'ç½¹' => 'li', - '篱' => 'li', - 'è ¡' => 'li', - '礼' => 'li', - 'æŽ' => 'li', - '里' => 'li', - '俚' => 'li', - '逦' => 'li', - 'å“©' => 'li', - '娌' => 'li', - 'ç†' => 'li', - '鲤' => 'li', - '力' => 'li', - '历' => 'li', - '厉' => 'li', - 'ç«‹' => 'li', - 'å' => 'li', - '丽' => 'li', - '励' => 'li', - 'å‘–' => 'li', - '利' => 'li', - 'æ²¥' => 'li', - '枥' => 'li', - '例' => 'li', - '戾' => 'li', - 'éš¶' => 'li', - 'è”' => 'li', - 'ä¿' => 'li', - '莉' => 'li', - '莅' => 'li', - 'æ —' => 'li', - 'ç ¾' => 'li', - '蛎' => 'li', - '唳' => 'li', - '笠' => 'li', - 'ç²’' => 'li', - '雳' => 'li', - 'ç—¢' => 'li', - '连' => 'lian', - '怜' => 'lian', - '帘' => 'lian', - '莲' => 'lian', - 'æ¶Ÿ' => 'lian', - 'è”' => 'lian', - '廉' => 'lian', - 'é²¢' => 'lian', - 'é•°' => 'lian', - 'æ•›' => 'lian', - '脸' => 'lian', - '练' => 'lian', - '炼' => 'lian', - 'æ‹' => 'lian', - '殓' => 'lian', - '链' => 'lian', - '良' => 'liang', - '凉' => 'liang', - 'æ¢' => 'liang', - 'ç²®' => 'liang', - 'ç²±' => 'liang', - '两' => 'liang', - 'é­‰' => 'liang', - '亮' => 'liang', - 'è°…' => 'liang', - '辆' => 'liang', - 'é“' => 'liang', - 'é‡' => 'liang', - '晾' => 'liang', - '踉' => 'liang', - 'è¾½' => 'liao', - 'ç–—' => 'liao', - 'èŠ' => 'liao', - '僚' => 'liao', - '寥' => 'liao', - 'æ’©' => 'liao', - '嘹' => 'liao', - 'ç ' => 'liao', - '潦' => 'liao', - 'ç¼­' => 'liao', - '燎' => 'liao', - 'æ–™' => 'liao', - 'æ’‚' => 'liao', - 'çž­' => 'liao', - 'é•£' => 'liao', - 'å’§' => 'lie', - '列' => 'lie', - '劣' => 'lie', - '冽' => 'lie', - '烈' => 'lie', - '猎' => 'lie', - '裂' => 'lie', - 'è¶”' => 'lie', - '拎' => 'lin', - 'é‚»' => 'lin', - 'æž—' => 'lin', - '临' => 'lin', - 'æ·‹' => 'lin', - 'ç³' => 'lin', - 'ç²¼' => 'lin', - 'å¶™' => 'lin', - 'æ½¾' => 'lin', - '霖' => 'lin', - '磷' => 'lin', - '鳞' => 'lin', - '麟' => 'lin', - '凛' => 'lin', - '檩' => 'lin', - 'å' => 'lin', - 'èµ' => 'lin', - 'èº' => 'lin', - 'ä¼¶' => 'ling', - 'çµ' => 'ling', - 'è‹“' => 'ling', - '囹' => 'ling', - 'æ³ ' => 'ling', - '玲' => 'ling', - 'ç“´' => 'ling', - '铃' => 'ling', - '凌' => 'ling', - '陵' => 'ling', - 'è†' => 'ling', - 'è±' => 'ling', - '棂' => 'ling', - '蛉' => 'ling', - '翎' => 'ling', - '羚' => 'ling', - '绫' => 'ling', - 'é›¶' => 'ling', - '龄' => 'ling', - 'å²­' => 'ling', - '领' => 'ling', - 'å¦' => 'ling', - '令' => 'ling', - '溜' => 'liu', - '熘' => 'liu', - '刘' => 'liu', - 'æµ' => 'liu', - 'ç•™' => 'liu', - 'æµ' => 'liu', - 'ç‰' => 'liu', - 'ç¡«' => 'liu', - 'é¦' => 'liu', - '榴' => 'liu', - '瘤' => 'liu', - '柳' => 'liu', - '绺' => 'liu', - 'å…­' => 'liu', - 'é›' => 'liu', - 'é¾™' => 'long', - 'å’™' => 'long', - 'ç‘' => 'long', - '胧' => 'long', - 'è‹' => 'long', - '笼' => 'long', - '隆' => 'long', - '窿' => 'long', - '陇' => 'long', - 'æ‹¢' => 'long', - 'åž„' => 'long', - '娄' => 'lou', - '楼' => 'lou', - 'é«…' => 'lou', - 'æ‚' => 'lou', - '篓' => 'lou', - '陋' => 'lou', - 'é•‚' => 'lou', - 'æ¼' => 'lou', - 'å–½' => 'lou', - 'æ’¸' => 'lu', - 'å¢' => 'lu', - '芦' => 'lu', - 'åº' => 'lu', - '炉' => 'lu', - '泸' => 'lu', - '鸬' => 'lu', - '颅' => 'lu', - '鲈' => 'lu', - 'å¤' => 'lu', - 'è™' => 'lu', - '掳' => 'lu', - 'é²' => 'lu', - '橹' => 'lu', - '录' => 'lu', - '赂' => 'lu', - '鹿' => 'lu', - '禄' => 'lu', - 'è·¯' => 'lu', - '箓' => 'lu', - '漉' => 'lu', - '戮' => 'lu', - 'é¹­' => 'lu', - '麓' => 'lu', - '峦' => 'luan', - 'å­ª' => 'luan', - '挛' => 'luan', - '鸾' => 'luan', - 'åµ' => 'luan', - 'ä¹±' => 'luan', - '抡' => 'lun', - '仑' => 'lun', - '伦' => 'lun', - '囵' => 'lun', - '沦' => 'lun', - 'è½®' => 'lun', - '论' => 'lun', - 'å•°' => 'luo', - 'ç½—' => 'luo', - 'è' => 'luo', - '逻' => 'luo', - '锣' => 'luo', - '箩' => 'luo', - '骡' => 'luo', - '螺' => 'luo', - '裸' => 'luo', - 'æ´›' => 'luo', - '络' => 'luo', - '骆' => 'luo', - '摞' => 'luo', - '漯' => 'luo', - 'é©´' => 'lv', - '榈' => 'lv', - 'å•' => 'lv', - 'ä¾£' => 'lv', - 'æ—…' => 'lv', - 'é“' => 'lv', - '屡' => 'lv', - '缕' => 'lv', - '膂' => 'lv', - '褛' => 'lv', - 'å±¥' => 'lv', - '律' => 'lv', - '虑' => 'lv', - 'æ°¯' => 'lv', - '滤' => 'lv', - '掠' => 'lve', - 'ç•¥' => 'lve', - '妈' => 'ma', - '麻' => 'ma', - '蟆' => 'ma', - '马' => 'ma', - '犸' => 'ma', - '玛' => 'ma', - 'ç ' => 'ma', - 'èš‚' => 'ma', - '骂' => 'ma', - 'å—' => 'ma', - '嘛' => 'ma', - '霾' => 'mai', - 'ä¹°' => 'mai', - '迈' => 'mai', - '麦' => 'mai', - 'å–' => 'mai', - '霡' => 'mai', - 'è›®' => 'man', - '馒' => 'man', - 'çž’' => 'man', - '满' => 'man', - '曼' => 'man', - 'è°©' => 'man', - 'å¹”' => 'man', - '漫' => 'man', - 'æ…¢' => 'man', - '牤' => 'mang', - '芒' => 'mang', - 'å¿™' => 'mang', - '盲' => 'mang', - 'æ°“' => 'mang', - '茫' => 'mang', - '莽' => 'mang', - 'æ¼­' => 'mang', - '蟒' => 'mang', - '猫' => 'mao', - '毛' => 'mao', - '矛' => 'mao', - '茅' => 'mao', - '牦' => 'mao', - '锚' => 'mao', - '髦' => 'mao', - 'è¥' => 'mao', - '蟊' => 'mao', - '冇' => 'mao', - 'å¯' => 'mao', - '铆' => 'mao', - '茂' => 'mao', - '冒' => 'mao', - 'è´¸' => 'mao', - '袤' => 'mao', - '帽' => 'mao', - '貌' => 'mao', - '玫' => 'mei', - 'æžš' => 'mei', - '眉' => 'mei', - '莓' => 'mei', - '梅' => 'mei', - '媒' => 'mei', - '楣' => 'mei', - 'ç…¤' => 'mei', - 'é…¶' => 'mei', - '霉' => 'mei', - 'æ¯' => 'mei', - '美' => 'mei', - 'é•' => 'mei', - '妹' => 'mei', - '昧' => 'mei', - '袂' => 'mei', - 'å¯' => 'mei', - '媚' => 'mei', - 'é­…' => 'mei', - 'é—¨' => 'men', - '扪' => 'men', - 'é—·' => 'men', - 'ç„–' => 'men', - '懑' => 'men', - '们' => 'men', - 'è™»' => 'meng', - 'èŒ' => 'meng', - 'è’™' => 'meng', - '盟' => 'meng', - '檬' => 'meng', - '曚' => 'meng', - '朦' => 'meng', - '猛' => 'meng', - 'é”°' => 'meng', - '蜢' => 'meng', - '懵' => 'meng', - 'å­Ÿ' => 'meng', - '梦' => 'meng', - 'å’ª' => 'mi', - '眯' => 'mi', - 'å¼¥' => 'mi', - 'è¿·' => 'mi', - '猕' => 'mi', - 'è°œ' => 'mi', - '醚' => 'mi', - '糜' => 'mi', - '麋' => 'mi', - 'é¡' => 'mi', - 'ç±³' => 'mi', - 'å¼­' => 'mi', - 'è§…' => 'mi', - '密' => 'mi', - '幂' => 'mi', - 'è°§' => 'mi', - '蜜' => 'mi', - '眠' => 'mian', - '绵' => 'mian', - '棉' => 'mian', - 'å…' => 'mian', - '勉' => 'mian', - '娩' => 'mian', - '冕' => 'mian', - '渑' => 'mian', - '湎' => 'mian', - 'ç¼…' => 'mian', - 'è…¼' => 'mian', - 'é¢' => 'mian', - 'å–µ' => 'miao', - 'è‹—' => 'miao', - 'æ' => 'miao', - 'çž„' => 'miao', - 'ç§’' => 'miao', - '渺' => 'miao', - 'è—' => 'miao', - '妙' => 'miao', - '庙' => 'miao', - 'ç¼¥' => 'miao', - 'å’©' => 'mie', - 'ç­' => 'mie', - '蔑' => 'mie', - '篾' => 'mie', - '乜' => 'mie', - 'æ°‘' => 'min', - 'çš¿' => 'min', - '抿' => 'min', - '泯' => 'min', - 'é—½' => 'min', - '悯' => 'min', - 'æ•' => 'min', - 'å' => 'ming', - '明' => 'ming', - '鸣' => 'ming', - '茗' => 'ming', - '冥' => 'ming', - 'é“­' => 'ming', - 'çž‘' => 'ming', - '螟' => 'ming', - 'é…©' => 'ming', - '命' => 'ming', - 'è°¬' => 'miu', - '摸' => 'mo', - 'é¦' => 'mo', - '摹' => 'mo', - '膜' => 'mo', - 'æ‘©' => 'mo', - '磨' => 'mo', - '蘑' => 'mo', - 'é­”' => 'mo', - '末' => 'mo', - '茉' => 'mo', - 'æ®' => 'mo', - '沫' => 'mo', - '陌' => 'mo', - '莫' => 'mo', - 'ç§£' => 'mo', - '蓦' => 'mo', - 'æ¼ ' => 'mo', - '寞' => 'mo', - '墨' => 'mo', - '默' => 'mo', - '嬷' => 'mo', - '缪' => 'mou', - '哞' => 'mou', - '眸' => 'mou', - 'è°‹' => 'mou', - 'æŸ' => 'mou', - 'æ¯' => 'mu', - '牡' => 'mu', - '亩' => 'mu', - '拇' => 'mu', - '姆' => 'mu', - '木' => 'mu', - 'ç›®' => 'mu', - 'æ²' => 'mu', - '苜' => 'mu', - '牧' => 'mu', - 'é’¼' => 'mu', - '募' => 'mu', - '墓' => 'mu', - '幕' => 'mu', - 'ç¦' => 'mu', - 'æ…•' => 'mu', - 'æš®' => 'mu', - '穆' => 'mu', - 'æ‹¿' => 'na', - 'å‘' => 'na', - '纳' => 'na', - 'é’ ' => 'na', - '衲' => 'na', - 'æº' => 'na', - '乃' => 'nai', - '奶' => 'nai', - 'æ°–' => 'nai', - '奈' => 'nai', - 'è€' => 'nai', - '囡' => 'nan', - 'ç”·' => 'nan', - 'å—' => 'nan', - 'éš¾' => 'nan', - 'å–ƒ' => 'nan', - '楠' => 'nan', - 'èµ§' => 'nan', - 'è…©' => 'nan', - 'å›”' => 'nang', - '囊' => 'nang', - 'å­¬' => 'nao', - 'å‘¶' => 'nao', - '挠' => 'nao', - 'æ¼' => 'nao', - 'è„‘' => 'nao', - 'ç‘™' => 'nao', - 'é—¹' => 'nao', - 'æ·–' => 'nao', - 'è®·' => 'ne', - 'é¦' => 'nei', - '内' => 'nei', - 'å«©' => 'nen', - 'æ' => 'nen', - '能' => 'neng', - 'å—¯' => 'ng', - '妮' => 'ni', - 'å°¼' => 'ni', - 'æ³¥' => 'ni', - '怩' => 'ni', - '倪' => 'ni', - '霓' => 'ni', - '拟' => 'ni', - 'ä½ ' => 'ni', - 'æ—Ž' => 'ni', - '昵' => 'ni', - '逆' => 'ni', - '匿' => 'ni', - 'è…»' => 'ni', - '溺' => 'ni', - '拈' => 'nian', - '蔫' => 'nian', - 'å¹´' => 'nian', - 'é»' => 'nian', - 'æ»' => 'nian', - '辇' => 'nian', - 'æ’µ' => 'nian', - '碾' => 'nian', - '廿' => 'nian', - '念' => 'nian', - '娘' => 'niang', - 'é…¿' => 'niang', - '鸟' => 'niao', - '袅' => 'niao', - 'å°¿' => 'niao', - 'æ' => 'nie', - 'è‚' => 'nie', - 'æ¶…' => 'nie', - 'å—«' => 'nie', - '镊' => 'nie', - 'é•' => 'nie', - '蹑' => 'nie', - 'å­½' => 'nie', - '您' => 'nin', - 'å®' => 'ning', - 'å’›' => 'ning', - '狞' => 'ning', - '柠' => 'ning', - 'å‡' => 'ning', - 'æ‹§' => 'ning', - '佞' => 'ning', - '泞' => 'ning', - '妞' => 'niu', - '牛' => 'niu', - '扭' => 'niu', - '忸' => 'niu', - '纽' => 'niu', - 'é’®' => 'niu', - '农' => 'nong', - 'å“' => 'nong', - '浓' => 'nong', - 'è„“' => 'nong', - '弄' => 'nong', - '奴' => 'nu', - '驽' => 'nu', - '努' => 'nu', - '弩' => 'nu', - '怒' => 'nu', - 'æš–' => 'nuan', - 'ç–Ÿ' => 'nue', - 'è™' => 'nue', - '挪' => 'nuo', - '诺' => 'nuo', - 'å–' => 'nuo', - '懦' => 'nuo', - '糯' => 'nuo', - '女' => 'nv', - '噢' => 'o', - 'è®´' => 'ou', - '瓯' => 'ou', - '欧' => 'ou', - 'æ®´' => 'ou', - '鸥' => 'ou', - 'å‘•' => 'ou', - 'å¶' => 'ou', - 'è—•' => 'ou', - '怄' => 'ou', - 'è¶´' => 'pa', - '啪' => 'pa', - 'è‘©' => 'pa', - 'æ·' => 'pa', - '爬' => 'pa', - 'ç¶' => 'pa', - '帕' => 'pa', - '怕' => 'pa', - 'æ‹' => 'pai', - '排' => 'pai', - '徘' => 'pai', - '牌' => 'pai', - '哌' => 'pai', - 'æ´¾' => 'pai', - '湃' => 'pai', - '潘' => 'pan', - '攀' => 'pan', - '爿' => 'pan', - '盘' => 'pan', - 'ç£' => 'pan', - 'è¹’' => 'pan', - '蟠' => 'pan', - '判' => 'pan', - '盼' => 'pan', - 'å›' => 'pan', - 'ç•”' => 'pan', - '乓' => 'pang', - '滂' => 'pang', - '庞' => 'pang', - 'æ—' => 'pang', - '螃' => 'pang', - '耪' => 'pang', - '抛' => 'pao', - 'å’†' => 'pao', - '庖' => 'pao', - 'è¢' => 'pao', - 'è·‘' => 'pao', - '泡' => 'pao', - '呸' => 'pei', - '胚' => 'pei', - '陪' => 'pei', - '培' => 'pei', - 'èµ”' => 'pei', - '裴' => 'pei', - 'æ²›' => 'pei', - '佩' => 'pei', - 'é…' => 'pei', - 'å–·' => 'pen', - '盆' => 'pen', - '抨' => 'peng', - '怦' => 'peng', - 'ç °' => 'peng', - '烹' => 'peng', - '嘭' => 'peng', - '朋' => 'peng', - 'å½­' => 'peng', - '棚' => 'peng', - '蓬' => 'peng', - '硼' => 'peng', - 'é¹' => 'peng', - '澎' => 'peng', - '篷' => 'peng', - '膨' => 'peng', - 'æ§' => 'peng', - '碰' => 'peng', - '丕' => 'pi', - '批' => 'pi', - '纰' => 'pi', - 'å¯' => 'pi', - '披' => 'pi', - 'ç ’' => 'pi', - '劈' => 'pi', - '噼' => 'pi', - '霹' => 'pi', - 'çš®' => 'pi', - '枇' => 'pi', - '毗' => 'pi', - 'èš' => 'pi', - 'ç–²' => 'pi', - '啤' => 'pi', - 'çµ' => 'pi', - '脾' => 'pi', - 'è²”' => 'pi', - '匹' => 'pi', - 'ç—ž' => 'pi', - 'ç™–' => 'pi', - 'å±' => 'pi', - 'ç¥' => 'pi', - '媲' => 'pi', - '僻' => 'pi', - 'è­¬' => 'pi', - 'å' => 'pian', - '篇' => 'pian', - 'ç¿©' => 'pian', - '骈' => 'pian', - 'è¹' => 'pian', - '片' => 'pian', - '骗' => 'pian', - '剽' => 'piao', - '漂' => 'piao', - '飘' => 'piao', - 'ç“¢' => 'piao', - 'æ®' => 'piao', - '瞟' => 'piao', - '票' => 'piao', - 'æ°•' => 'pie', - '瞥' => 'pie', - 'æ’‡' => 'pie', - '拼' => 'pin', - '姘' => 'pin', - 'è´«' => 'pin', - '频' => 'pin', - 'å«”' => 'pin', - '颦' => 'pin', - 'å“' => 'pin', - 'è˜' => 'pin', - 'ä¹’' => 'ping', - '娉' => 'ping', - 'å¹³' => 'ping', - '评' => 'ping', - 'åª' => 'ping', - '苹' => 'ping', - '凭' => 'ping', - 'ç“¶' => 'ping', - 'è' => 'ping', - 'é’‹' => 'po', - 'å¡' => 'po', - 'æ³¼' => 'po', - '颇' => 'po', - '婆' => 'po', - '鄱' => 'po', - 'åµ' => 'po', - 'ç€' => 'po', - 'ç ´' => 'po', - '粕' => 'po', - 'é­„' => 'po', - '剖' => 'pou', - '抔' => 'pou', - '扑' => 'pu', - '铺' => 'pu', - 'å™—' => 'pu', - '仆' => 'pu', - 'åŒ' => 'pu', - 'è©' => 'pu', - 'è‘¡' => 'pu', - 'è’²' => 'pu', - 'ç’ž' => 'pu', - '圃' => 'pu', - '浦' => 'pu', - 'æ™®' => 'pu', - 'è°±' => 'pu', - 'è¹¼' => 'pu', - '七' => 'qi', - 'æ²' => 'qi', - '妻' => 'qi', - '柒' => 'qi', - '凄' => 'qi', - 'è‹' => 'qi', - '戚' => 'qi', - '期' => 'qi', - '欺' => 'qi', - 'å˜' => 'qi', - '漆' => 'qi', - 'é½' => 'qi', - '芪' => 'qi', - 'å…¶' => 'qi', - 'æ­§' => 'qi', - '祈' => 'qi', - '祇' => 'qi', - 'è„' => 'qi', - '畦' => 'qi', - 'è·‚' => 'qi', - 'å´Ž' => 'qi', - '骑' => 'qi', - 'çª' => 'qi', - '棋' => 'qi', - 'æ——' => 'qi', - 'é³' => 'qi', - '麒' => 'qi', - '乞' => 'qi', - '岂' => 'qi', - 'ä¼' => 'qi', - 'æž' => 'qi', - 'å¯' => 'qi', - 'èµ·' => 'qi', - 'ç»®' => 'qi', - 'æ°”' => 'qi', - '讫' => 'qi', - 'è¿„' => 'qi', - '弃' => 'qi', - 'æ±½' => 'qi', - 'æ³£' => 'qi', - '契' => 'qi', - 'ç Œ' => 'qi', - '葺' => 'qi', - '器' => 'qi', - '憩' => 'qi', - '俟' => 'qi', - 'æŽ' => 'qia', - 'æ´½' => 'qia', - 'æ°' => 'qia', - 'åƒ' => 'qian', - '仟' => 'qian', - '阡' => 'qian', - '芊' => 'qian', - 'è¿' => 'qian', - 'é’Ž' => 'qian', - '牵' => 'qian', - 'æ‚­' => 'qian', - 'è°¦' => 'qian', - 'ç­¾' => 'qian', - '愆' => 'qian', - 'å‰' => 'qian', - 'è™”' => 'qian', - 'é’±' => 'qian', - 'é’³' => 'qian', - 'ä¹¾' => 'qian', - '潜' => 'qian', - 'é»”' => 'qian', - 'é£' => 'qian', - 'è°´' => 'qian', - '欠' => 'qian', - '芡' => 'qian', - '倩' => 'qian', - 'å ‘' => 'qian', - '嵌' => 'qian', - 'æ­‰' => 'qian', - '羌' => 'qiang', - '枪' => 'qiang', - '戕' => 'qiang', - 'è…”' => 'qiang', - '蜣' => 'qiang', - '锵' => 'qiang', - '墙' => 'qiang', - 'è”·' => 'qiang', - '抢' => 'qiang', - '羟' => 'qiang', - 'è¥' => 'qiang', - 'å‘›' => 'qiang', - 'ç‚' => 'qiang', - 'è·„' => 'qiang', - 'æ‚„' => 'qiao', - 'è··' => 'qiao', - '锹' => 'qiao', - '敲' => 'qiao', - '橇' => 'qiao', - 'ä¹”' => 'qiao', - '侨' => 'qiao', - 'èž' => 'qiao', - 'æ¡¥' => 'qiao', - '憔' => 'qiao', - 'çž§' => 'qiao', - 'å·§' => 'qiao', - 'ä¿' => 'qiao', - '诮' => 'qiao', - 'å³­' => 'qiao', - 'çª' => 'qiao', - '翘' => 'qiao', - 'æ’¬' => 'qiao', - '切' => 'qie', - '且' => 'qie', - '妾' => 'qie', - '怯' => 'qie', - '窃' => 'qie', - '挈' => 'qie', - '惬' => 'qie', - 'è¶„' => 'qie', - '锲' => 'qie', - 'é’¦' => 'qin', - 'ä¾µ' => 'qin', - '衾' => 'qin', - '芹' => 'qin', - '芩' => 'qin', - '秦' => 'qin', - 'ç´' => 'qin', - '禽' => 'qin', - '勤' => 'qin', - 'æ“’' => 'qin', - 'å™™' => 'qin', - 'å¯' => 'qin', - 'æ²' => 'qin', - 'é’' => 'qing', - 'è½»' => 'qing', - 'æ°¢' => 'qing', - '倾' => 'qing', - 'å¿' => 'qing', - '清' => 'qing', - '蜻' => 'qing', - '情' => 'qing', - 'æ™´' => 'qing', - 'æ°°' => 'qing', - '擎' => 'qing', - 'é¡·' => 'qing', - '请' => 'qing', - '庆' => 'qing', - '罄' => 'qing', - 'ç©·' => 'qiong', - '穹' => 'qiong', - 'ç¼' => 'qiong', - '丘' => 'qiu', - 'ç§‹' => 'qiu', - '蚯' => 'qiu', - 'é³…' => 'qiu', - '囚' => 'qiu', - '求' => 'qiu', - '虬' => 'qiu', - 'æ³…' => 'qiu', - 'é…‹' => 'qiu', - 'çƒ' => 'qiu', - 'é’' => 'qiu', - '裘' => 'qiu', - 'å²–' => 'qu', - '驱' => 'qu', - '屈' => 'qu', - '蛆' => 'qu', - '躯' => 'qu', - 'è¶‹' => 'qu', - 'è›' => 'qu', - '黢' => 'qu', - '渠' => 'qu', - 'çž¿' => 'qu', - '曲' => 'qu', - 'å–' => 'qu', - '娶' => 'qu', - '龋' => 'qu', - '去' => 'qu', - 'è¶£' => 'qu', - 'è§‘' => 'qu', - 'æ‚›' => 'quan', - 'æƒ' => 'quan', - 'å…¨' => 'quan', - '诠' => 'quan', - '泉' => 'quan', - '拳' => 'quan', - 'ç—Š' => 'quan', - '蜷' => 'quan', - '醛' => 'quan', - '犬' => 'quan', - 'åŠ' => 'quan', - '券' => 'quan', - 'ç‚”' => 'que', - '缺' => 'que', - '瘸' => 'que', - 'å´' => 'que', - 'ç¡®' => 'que', - '鹊' => 'que', - '阙' => 'que', - '榷' => 'que', - '逡' => 'qun', - '裙' => 'qun', - '群' => 'qun', - '蚺' => 'ran', - 'ç„¶' => 'ran', - '燃' => 'ran', - '冉' => 'ran', - 'è‹’' => 'ran', - '染' => 'ran', - '瓤' => 'rang', - '壤' => 'rang', - '攘' => 'rang', - 'åš·' => 'rang', - '让' => 'rang', - 'è›' => 'rao', - '饶' => 'rao', - '娆' => 'rao', - 'æ¡¡' => 'rao', - '扰' => 'rao', - '绕' => 'rao', - '惹' => 're', - '热' => 're', - '人' => 'ren', - '壬' => 'ren', - 'ä»' => 'ren', - 'å¿' => 'ren', - 'è' => 'ren', - '稔' => 'ren', - '刃' => 'ren', - '认' => 'ren', - 'ä»»' => 'ren', - '纫' => 'ren', - '韧' => 'ren', - '饪' => 'ren', - '扔' => 'reng', - 'ä»' => 'reng', - 'æ—¥' => 'ri', - '戎' => 'rong', - '茸' => 'rong', - 'è£' => 'rong', - 'ç»’' => 'rong', - '容' => 'rong', - '嵘' => 'rong', - '蓉' => 'rong', - '溶' => 'rong', - '榕' => 'rong', - '熔' => 'rong', - 'èž' => 'rong', - '冗' => 'rong', - 'æ°„' => 'rong', - '柔' => 'rou', - 'æ‰' => 'rou', - 'ç³…' => 'rou', - '蹂' => 'rou', - '鞣' => 'rou', - '肉' => 'rou', - '如' => 'ru', - '茹' => 'ru', - 'é“·' => 'ru', - 'å„’' => 'ru', - 'å­º' => 'ru', - 'è •' => 'ru', - 'æ±' => 'ru', - 'ä¹³' => 'ru', - 'è¾±' => 'ru', - 'å…¥' => 'ru', - 'ç¼›' => 'ru', - '褥' => 'ru', - '阮' => 'ruan', - '软' => 'ruan', - '蕊' => 'rui', - 'èš‹' => 'rui', - 'é”' => 'rui', - '瑞' => 'rui', - 'ç¿' => 'rui', - 'é—°' => 'run', - '润' => 'run', - 'è‹¥' => 'ruo', - 'åŒ' => 'ruo', - 'å¼±' => 'ruo', - '仨' => 'sa', - 'æ´’' => 'sa', - 'æ’’' => 'sa', - 'å…' => 'sa', - '飒' => 'sa', - 'è¨' => 'sa', - 'è…®' => 'sai', - 'èµ›' => 'sai', - '三' => 'san', - 'å' => 'san', - '伞' => 'san', - 'æ•£' => 'san', - 'æ¡‘' => 'sang', - 'æ¡' => 'sang', - 'å—“' => 'sang', - '丧' => 'sang', - 'æ”' => 'sao', - '骚' => 'sao', - '扫' => 'sao', - 'å«‚' => 'sao', - '臊' => 'sao', - 'æ¶©' => 'se', - '啬' => 'se', - '铯' => 'se', - '瑟' => 'se', - 'ç©‘' => 'se', - '森' => 'sen', - '僧' => 'seng', - 'æ€' => 'sha', - 'æ²™' => 'sha', - '纱' => 'sha', - 'ç ‚' => 'sha', - 'å•¥' => 'sha', - 'å‚»' => 'sha', - '厦' => 'sha', - 'æ­ƒ' => 'sha', - 'ç…ž' => 'sha', - '霎' => 'sha', - 'ç­›' => 'shai', - 'æ™’' => 'shai', - 'å±±' => 'shan', - '删' => 'shan', - 'è‹«' => 'shan', - 'è¡«' => 'shan', - 'å§—' => 'shan', - 'çŠ' => 'shan', - 'ç…½' => 'shan', - '潸' => 'shan', - '膻' => 'shan', - 'é—ª' => 'shan', - '陕' => 'shan', - '讪' => 'shan', - '汕' => 'shan', - '扇' => 'shan', - 'å–„' => 'shan', - '骟' => 'shan', - 'ç¼®' => 'shan', - 'æ“…' => 'shan', - '膳' => 'shan', - '嬗' => 'shan', - '赡' => 'shan', - 'é³' => 'shan', - '伤' => 'shang', - '殇' => 'shang', - '商' => 'shang', - 'è§ž' => 'shang', - '熵' => 'shang', - '晌' => 'shang', - 'èµ' => 'shang', - '上' => 'shang', - 'å°š' => 'shang', - 'æŽ' => 'shao', - '烧' => 'shao', - '梢' => 'shao', - 'ç¨' => 'shao', - '艄' => 'shao', - '勺' => 'shao', - 'èŠ' => 'shao', - '韶' => 'shao', - 'å°‘' => 'shao', - '邵' => 'shao', - 'ç»' => 'shao', - '哨' => 'shao', - 'æ½²' => 'shao', - '奢' => 'she', - '赊' => 'she', - '舌' => 'she', - '佘' => 'she', - '蛇' => 'she', - 'èˆ' => 'she', - '设' => 'she', - '社' => 'she', - 'å°„' => 'she', - '涉' => 'she', - '赦' => 'she', - 'æ‘„' => 'she', - 'æ…‘' => 'she', - 'éº' => 'she', - '申' => 'shen', - '伸' => 'shen', - '身' => 'shen', - 'å‘»' => 'shen', - 'ç»…' => 'shen', - 'ç ·' => 'shen', - 'æ·±' => 'shen', - '神' => 'shen', - '沈' => 'shen', - '审' => 'shen', - 'å“‚' => 'shen', - 'å©¶' => 'shen', - '肾' => 'shen', - '甚' => 'shen', - '渗' => 'shen', - '葚' => 'shen', - '蜃' => 'shen', - 'æ…Ž' => 'shen', - 'å‡' => 'sheng', - '生' => 'sheng', - '声' => 'sheng', - '昇' => 'sheng', - '牲' => 'sheng', - '笙' => 'sheng', - '甥' => 'sheng', - '绳' => 'sheng', - '圣' => 'sheng', - '胜' => 'sheng', - '晟' => 'sheng', - '剩' => 'sheng', - 'å°¸' => 'shi', - '失' => 'shi', - '师' => 'shi', - '诗' => 'shi', - 'è™±' => 'shi', - 'ç‹®' => 'shi', - 'æ–½' => 'shi', - '湿' => 'shi', - 'å' => 'shi', - 'æ—¶' => 'shi', - '实' => 'shi', - '食' => 'shi', - '蚀' => 'shi', - 'å²' => 'shi', - '矢' => 'shi', - '使' => 'shi', - 'å§‹' => 'shi', - 'é©¶' => 'shi', - '屎' => 'shi', - '士' => 'shi', - 'æ°' => 'shi', - '示' => 'shi', - '世' => 'shi', - '仕' => 'shi', - '市' => 'shi', - 'å¼' => 'shi', - '势' => 'shi', - '事' => 'shi', - 'ä¾' => 'shi', - '饰' => 'shi', - '试' => 'shi', - '视' => 'shi', - 'æ‹­' => 'shi', - '柿' => 'shi', - '是' => 'shi', - '适' => 'shi', - 'æƒ' => 'shi', - '室' => 'shi', - 'é€' => 'shi', - 'è½¼' => 'shi', - 'èˆ' => 'shi', - '弑' => 'shi', - '释' => 'shi', - 'è°¥' => 'shi', - 'å—œ' => 'shi', - '誓' => 'shi', - 'æ”¶' => 'shou', - '手' => 'shou', - '守' => 'shou', - '首' => 'shou', - '寿' => 'shou', - 'å—' => 'shou', - 'ç‹©' => 'shou', - '授' => 'shou', - 'å”®' => 'shou', - 'å…½' => 'shou', - 'ç»¶' => 'shou', - '瘦' => 'shou', - '殳' => 'shu', - '书' => 'shu', - '抒' => 'shu', - '枢' => 'shu', - 'å”' => 'shu', - 'å§' => 'shu', - '殊' => 'shu', - 'å€' => 'shu', - '梳' => 'shu', - 'æ·‘' => 'shu', - '舒' => 'shu', - 'ç–' => 'shu', - '输' => 'shu', - '蔬' => 'shu', - 'ç§«' => 'shu', - 'å­°' => 'shu', - '赎' => 'shu', - '塾' => 'shu', - 'æš‘' => 'shu', - 'é»' => 'shu', - 'ç½²' => 'shu', - '蜀' => 'shu', - 'é¼ ' => 'shu', - 'è–¯' => 'shu', - 'æ›™' => 'shu', - 'æˆ' => 'shu', - 'æŸ' => 'shu', - 'è¿°' => 'shu', - 'æ ‘' => 'shu', - 'ç«–' => 'shu', - 'æ•' => 'shu', - '庶' => 'shu', - '墅' => 'shu', - 'æ¼±' => 'shu', - '刷' => 'shua', - 'å”°' => 'shua', - 'è€' => 'shua', - 'è¡°' => 'shuai', - 'æ‘”' => 'shuai', - '甩' => 'shuai', - '帅' => 'shuai', - '蟀' => 'shuai', - 'é—©' => 'shuan', - 'æ‹´' => 'shuan', - 'æ “' => 'shuan', - 'æ¶®' => 'shuan', - 'åŒ' => 'shuang', - '霜' => 'shuang', - 'å­€' => 'shuang', - '爽' => 'shuang', - 'è°' => 'shui', - 'æ°´' => 'shui', - '税' => 'shui', - 'ç¡' => 'shui', - 'å®' => 'shun', - '顺' => 'shun', - '舜' => 'shun', - '瞬' => 'shun', - 'çƒ' => 'shuo', - 'é“„' => 'shuo', - '朔' => 'shuo', - 'ç¡•' => 'shuo', - 'å¸' => 'si', - 'ä¸' => 'si', - 'ç§' => 'si', - 'å’' => 'si', - 'æ€' => 'si', - 'æ–¯' => 'si', - '厮' => 'si', - 'æ’•' => 'si', - '嘶' => 'si', - 'æ­»' => 'si', - 'å·³' => 'si', - 'å››' => 'si', - '寺' => 'si', - '祀' => 'si', - '饲' => 'si', - '肆' => 'si', - 'å—£' => 'si', - 'æ¾' => 'song', - '嵩' => 'song', - '怂' => 'song', - '耸' => 'song', - '悚' => 'song', - '讼' => 'song', - '宋' => 'song', - 'é€' => 'song', - '诵' => 'song', - '颂' => 'song', - 'æœ' => 'sou', - 'å—–' => 'sou', - '馊' => 'sou', - '艘' => 'sou', - 'åŸ' => 'sou', - '擞' => 'sou', - 'å—½' => 'sou', - 'è‹' => 'su', - 'é…¥' => 'su', - 'ä¿—' => 'su', - '夙' => 'su', - '诉' => 'su', - '肃' => 'su', - 'ç´ ' => 'su', - '速' => 'su', - '粟' => 'su', - 'å—‰' => 'su', - 'å¡‘' => 'su', - '溯' => 'su', - 'ç°Œ' => 'su', - 'é…¸' => 'suan', - 'è’œ' => 'suan', - 'ç®—' => 'suan', - '虽' => 'sui', - 'ç¢' => 'sui', - '绥' => 'sui', - 'éš‹' => 'sui', - 'éš' => 'sui', - 'é«“' => 'sui', - 'å²' => 'sui', - '祟' => 'sui', - 'é‚' => 'sui', - '碎' => 'sui', - 'éš§' => 'sui', - 'ç©—' => 'sui', - 'å­™' => 'sun', - 'æŸ' => 'sun', - '笋' => 'sun', - 'éš¼' => 'sun', - '唆' => 'suo', - '梭' => 'suo', - 'è“‘' => 'suo', - 'ç¾§' => 'suo', - '缩' => 'suo', - '所' => 'suo', - 'ç´¢' => 'suo', - '唢' => 'suo', - 'ç' => 'suo', - 'é”' => 'suo', - 'ä»–' => 'ta', - '它' => 'ta', - '她' => 'ta', - '铊' => 'ta', - '塌' => 'ta', - 'å¡”' => 'ta', - 'ç­' => 'ta', - '挞' => 'ta', - '榻' => 'ta', - 'è¸' => 'ta', - '蹋' => 'ta', - '胎' => 'tai', - 'å°' => 'tai', - 'é‚°' => 'tai', - '抬' => 'tai', - 'è‹”' => 'tai', - 'è·†' => 'tai', - '太' => 'tai', - 'æ±°' => 'tai', - 'æ€' => 'tai', - 'é’›' => 'tai', - 'æ³°' => 'tai', - 'é…ž' => 'tai', - 'è´ª' => 'tan', - '摊' => 'tan', - '滩' => 'tan', - '瘫' => 'tan', - 'å›' => 'tan', - '昙' => 'tan', - 'è°ˆ' => 'tan', - 'ç—°' => 'tan', - 'è°­' => 'tan', - 'æ½­' => 'tan', - '檀' => 'tan', - 'å¦' => 'tan', - '袒' => 'tan', - '毯' => 'tan', - 'å¹' => 'tan', - 'ç‚­' => 'tan', - '探' => 'tan', - '碳' => 'tan', - '汤' => 'tang', - '嘡' => 'tang', - 'ç¾°' => 'tang', - 'å”' => 'tang', - 'å ‚' => 'tang', - '棠' => 'tang', - '塘' => 'tang', - 'æª' => 'tang', - '膛' => 'tang', - 'é•—' => 'tang', - 'ç³–' => 'tang', - 'èž³' => 'tang', - '倘' => 'tang', - 'æ·Œ' => 'tang', - '躺' => 'tang', - '烫' => 'tang', - 'è¶Ÿ' => 'tang', - 'æ¶›' => 'tao', - '绦' => 'tao', - 'æŽ' => 'tao', - 'æ»”' => 'tao', - '韬' => 'tao', - '饕' => 'tao', - '逃' => 'tao', - '桃' => 'tao', - 'é™¶' => 'tao', - 'è„' => 'tao', - 'æ·˜' => 'tao', - '讨' => 'tao', - '套' => 'tao', - '特' => 'te', - 'ç–¼' => 'teng', - 'è…¾' => 'teng', - '誊' => 'teng', - '滕' => 'teng', - 'è—¤' => 'teng', - '剔' => 'ti', - '梯' => 'ti', - '踢' => 'ti', - '啼' => 'ti', - '题' => 'ti', - 'é†' => 'ti', - '蹄' => 'ti', - '体' => 'ti', - '屉' => 'ti', - '剃' => 'ti', - 'æ¶•' => 'ti', - '悌' => 'ti', - '惕' => 'ti', - '替' => 'ti', - '天' => 'tian', - 'æ·»' => 'tian', - 'ç”°' => 'tian', - 'æ¬' => 'tian', - '甜' => 'tian', - 'å¡«' => 'tian', - 'å¿' => 'tian', - '殄' => 'tian', - '舔' => 'tian', - '掭' => 'tian', - 'ä½»' => 'tiao', - '挑' => 'tiao', - 'æ¡' => 'tiao', - 'è¿¢' => 'tiao', - '笤' => 'tiao', - 'é««' => 'tiao', - '窕' => 'tiao', - '眺' => 'tiao', - '粜' => 'tiao', - 'è·³' => 'tiao', - '帖' => 'tie', - 'è´´' => 'tie', - 'é“' => 'tie', - '餮' => 'tie', - '铤' => 'ting', - '厅' => 'ting', - 'å¬' => 'ting', - '烃' => 'ting', - 'å»·' => 'ting', - '亭' => 'ting', - '庭' => 'ting', - 'åœ' => 'ting', - '蜓' => 'ting', - 'å©·' => 'ting', - '霆' => 'ting', - '挺' => 'ting', - '艇' => 'ting', - '通' => 'tong', - 'å—µ' => 'tong', - 'åŒ' => 'tong', - '彤' => 'tong', - 'æ¡' => 'tong', - '铜' => 'tong', - 'ç«¥' => 'tong', - 'æ½¼' => 'tong', - 'çž³' => 'tong', - '统' => 'tong', - 'æ…' => 'tong', - 'æ¡¶' => 'tong', - 'ç­’' => 'tong', - 'æ¸' => 'tong', - 'ç—›' => 'tong', - 'å·' => 'tou', - '头' => 'tou', - '投' => 'tou', - '骰' => 'tou', - 'é€' => 'tou', - '凸' => 'tu', - '秃' => 'tu', - 'çª' => 'tu', - '图' => 'tu', - 'è¼' => 'tu', - 'å¾’' => 'tu', - '途' => 'tu', - 'æ¶‚' => 'tu', - 'å± ' => 'tu', - '土' => 'tu', - 'å' => 'tu', - 'å…”' => 'tu', - 'èŸ' => 'tu', - 'æ¹' => 'tuan', - '团' => 'tuan', - 'ç–ƒ' => 'tuan', - 'å½–' => 'tuan', - '推' => 'tui', - '颓' => 'tui', - 'è…¿' => 'tui', - '退' => 'tui', - '蜕' => 'tui', - '褪' => 'tui', - 'åž' => 'tun', - '屯' => 'tun', - '饨' => 'tun', - '豚' => 'tun', - '臀' => 'tun', - '托' => 'tuo', - 'æ‹–' => 'tuo', - '脱' => 'tuo', - 'ä½—' => 'tuo', - '陀' => 'tuo', - '驼' => 'tuo', - '鸵' => 'tuo', - '妥' => 'tuo', - '椭' => 'tuo', - '唾' => 'tuo', - '挖' => 'wa', - '哇' => 'wa', - 'æ´¼' => 'wa', - '娲' => 'wa', - 'è›™' => 'wa', - '娃' => 'wa', - '瓦' => 'wa', - '佤' => 'wa', - '袜' => 'wa', - 'æ­ª' => 'wai', - '外' => 'wai', - '弯' => 'wan', - '剜' => 'wan', - 'æ¹¾' => 'wan', - '蜿' => 'wan', - '豌' => 'wan', - '丸' => 'wan', - '纨' => 'wan', - '完' => 'wan', - '玩' => 'wan', - '顽' => 'wan', - '烷' => 'wan', - 'å®›' => 'wan', - '挽' => 'wan', - '晚' => 'wan', - '惋' => 'wan', - '婉' => 'wan', - '绾' => 'wan', - 'çš–' => 'wan', - '碗' => 'wan', - '万' => 'wan', - 'è…•' => 'wan', - '汪' => 'wang', - '亡' => 'wang', - '王' => 'wang', - '网' => 'wang', - '枉' => 'wang', - 'ç½”' => 'wang', - 'å¾€' => 'wang', - '惘' => 'wang', - '妄' => 'wang', - '忘' => 'wang', - 'æ—º' => 'wang', - '望' => 'wang', - 'å±' => 'wei', - 'å¨' => 'wei', - 'åŽ' => 'wei', - 'å¾®' => 'wei', - 'ç…¨' => 'wei', - 'è–‡' => 'wei', - 'å·' => 'wei', - '韦' => 'wei', - '为' => 'wei', - 'è¿' => 'wei', - 'å›´' => 'wei', - 'é—±' => 'wei', - 'æ¡…' => 'wei', - '唯' => 'wei', - '帷' => 'wei', - 'ç»´' => 'wei', - '伟' => 'wei', - '伪' => 'wei', - '苇' => 'wei', - '纬' => 'wei', - 'å§”' => 'wei', - '诿' => 'wei', - '娓' => 'wei', - 'èŽ' => 'wei', - '猥' => 'wei', - 'ç—¿' => 'wei', - 'å«' => 'wei', - '未' => 'wei', - 'ä½' => 'wei', - '味' => 'wei', - 'ç•' => 'wei', - '胃' => 'wei', - 'è°“' => 'wei', - 'å–‚' => 'wei', - '猬' => 'wei', - '渭' => 'wei', - '蔚' => 'wei', - 'æ…°' => 'wei', - 'é­' => 'wei', - '温' => 'wen', - '瘟' => 'wen', - 'æ–‡' => 'wen', - '纹' => 'wen', - 'é—»' => 'wen', - '蚊' => 'wen', - '雯' => 'wen', - '刎' => 'wen', - 'å»' => 'wen', - 'ç´Š' => 'wen', - '稳' => 'wen', - 'é—®' => 'wen', - 'æ±¶' => 'wen', - 'ç¿' => 'weng', - 'å—¡' => 'weng', - 'ç“®' => 'weng', - 'æŒ' => 'wo', - '莴' => 'wo', - '倭' => 'wo', - 'å–”' => 'wo', - 'çª' => 'wo', - '蜗' => 'wo', - '我' => 'wo', - '肟' => 'wo', - '沃' => 'wo', - 'å§' => 'wo', - 'æ¡' => 'wo', - '幄' => 'wo', - 'æ–¡' => 'wo', - '乌' => 'wu', - '邬' => 'wu', - '污' => 'wu', - 'å·«' => 'wu', - '呜' => 'wu', - 'é’¨' => 'wu', - '诬' => 'wu', - '屋' => 'wu', - 'æ— ' => 'wu', - '毋' => 'wu', - '芜' => 'wu', - 'å´' => 'wu', - '梧' => 'wu', - '蜈' => 'wu', - '五' => 'wu', - 'åˆ' => 'wu', - 'ä¼' => 'wu', - '仵' => 'wu', - '怃' => 'wu', - '忤' => 'wu', - '妩' => 'wu', - 'æ­¦' => 'wu', - 'ä¾®' => 'wu', - 'æ‚' => 'wu', - '鹉' => 'wu', - '舞' => 'wu', - 'å…€' => 'wu', - 'å‹¿' => 'wu', - '戊' => 'wu', - '务' => 'wu', - 'åž' => 'wu', - '物' => 'wu', - '误' => 'wu', - '悟' => 'wu', - '晤' => 'wu', - '骛' => 'wu', - '雾' => 'wu', - '寤' => 'wu', - '鹜' => 'wu', - '夕' => 'xi', - 'å…®' => 'xi', - '西' => 'xi', - 'å¸' => 'xi', - 'æ±' => 'xi', - '希' => 'xi', - '昔' => 'xi', - 'æž' => 'xi', - 'å”' => 'xi', - '牺' => 'xi', - 'æ¯' => 'xi', - '奚' => 'xi', - '悉' => 'xi', - '烯' => 'xi', - '惜' => 'xi', - 'æ™°' => 'xi', - '稀' => 'xi', - 'ç¿•' => 'xi', - '犀' => 'xi', - 'çš™' => 'xi', - '锡' => 'xi', - '溪' => 'xi', - '熙' => 'xi', - '蜥' => 'xi', - '熄' => 'xi', - '嘻' => 'xi', - 'è†' => 'xi', - '嬉' => 'xi', - 'ç¾²' => 'xi', - '蟋' => 'xi', - '曦' => 'xi', - 'ä¹ ' => 'xi', - '席' => 'xi', - '袭' => 'xi', - '媳' => 'xi', - 'æ´—' => 'xi', - '玺' => 'xi', - 'å¾™' => 'xi', - 'å–œ' => 'xi', - '禧' => 'xi', - 'æˆ' => 'xi', - '细' => 'xi', - 'éš™' => 'xi', - 'å‘·' => 'xia', - '虾' => 'xia', - '瞎' => 'xia', - '匣' => 'xia', - 'ä¾ ' => 'xia', - '峡' => 'xia', - 'ç‹­' => 'xia', - 'é' => 'xia', - 'ç‘•' => 'xia', - '暇' => 'xia', - 'è¾–' => 'xia', - '霞' => 'xia', - 'é» ' => 'xia', - '下' => 'xia', - 'å¤' => 'xia', - 'ç½…' => 'xia', - 'ä»™' => 'xian', - 'å…ˆ' => 'xian', - 'æ°™' => 'xian', - '掀' => 'xian', - 'é…°' => 'xian', - '锨' => 'xian', - '鲜' => 'xian', - 'é—²' => 'xian', - 'è´¤' => 'xian', - '弦' => 'xian', - 'å’¸' => 'xian', - 'æ¶Ž' => 'xian', - '娴' => 'xian', - 'è¡”' => 'xian', - '舷' => 'xian', - '嫌' => 'xian', - '显' => 'xian', - '险' => 'xian', - 'è·£' => 'xian', - 'è—“' => 'xian', - 'è‹‹' => 'xian', - '县' => 'xian', - '现' => 'xian', - 'é™' => 'xian', - '线' => 'xian', - '宪' => 'xian', - 'é™·' => 'xian', - '馅' => 'xian', - '羡' => 'xian', - '献' => 'xian', - 'è…º' => 'xian', - '乡' => 'xiang', - '相' => 'xiang', - '香' => 'xiang', - '厢' => 'xiang', - '湘' => 'xiang', - 'ç®±' => 'xiang', - '襄' => 'xiang', - 'é•¶' => 'xiang', - '详' => 'xiang', - '祥' => 'xiang', - 'ç¿”' => 'xiang', - '享' => 'xiang', - 'å“' => 'xiang', - '饷' => 'xiang', - '飨' => 'xiang', - '想' => 'xiang', - 'å‘' => 'xiang', - '项' => 'xiang', - '象' => 'xiang', - 'åƒ' => 'xiang', - 'æ©¡' => 'xiang', - 'è‚–' => 'xiao', - 'æž­' => 'xiao', - 'å““' => 'xiao', - 'éª' => 'xiao', - 'é€' => 'xiao', - '消' => 'xiao', - '宵' => 'xiao', - 'è§' => 'xiao', - 'ç¡' => 'xiao', - '销' => 'xiao', - '箫' => 'xiao', - '潇' => 'xiao', - '霄' => 'xiao', - 'é­ˆ' => 'xiao', - '嚣' => 'xiao', - 'å´¤' => 'xiao', - 'æ·†' => 'xiao', - 'å°' => 'xiao', - '晓' => 'xiao', - 'å­' => 'xiao', - 'å“®' => 'xiao', - '笑' => 'xiao', - '效' => 'xiao', - '啸' => 'xiao', - '挟' => 'xie', - '些' => 'xie', - '楔' => 'xie', - 'æ­‡' => 'xie', - 'èŽ' => 'xie', - 'å' => 'xie', - 'èƒ' => 'xie', - 'å•' => 'xie', - 'æ–œ' => 'xie', - 'è°' => 'xie', - 'æ³' => 'xie', - 'æº' => 'xie', - 'æ’·' => 'xie', - 'éž‹' => 'xie', - '写' => 'xie', - '泄' => 'xie', - 'æ³»' => 'xie', - 'å¸' => 'xie', - '屑' => 'xie', - '械' => 'xie', - '亵' => 'xie', - 'è°¢' => 'xie', - 'é‚‚' => 'xie', - '懈' => 'xie', - '蟹' => 'xie', - '心' => 'xin', - '芯' => 'xin', - 'è¾›' => 'xin', - '欣' => 'xin', - '锌' => 'xin', - 'æ–°' => 'xin', - 'æ­†' => 'xin', - 'è–ª' => 'xin', - '馨' => 'xin', - 'é‘«' => 'xin', - 'ä¿¡' => 'xin', - 'è¡…' => 'xin', - '星' => 'xing', - '猩' => 'xing', - '惺' => 'xing', - 'è…¥' => 'xing', - '刑' => 'xing', - 'é‚¢' => 'xing', - 'å½¢' => 'xing', - 'åž‹' => 'xing', - '醒' => 'xing', - '擤' => 'xing', - 'å…´' => 'xing', - 'æ' => 'xing', - '幸' => 'xing', - '性' => 'xing', - 'å§“' => 'xing', - 'æ‚»' => 'xing', - '凶' => 'xiong', - 'å…„' => 'xiong', - '匈' => 'xiong', - 'è®»' => 'xiong', - 'æ±¹' => 'xiong', - '胸' => 'xiong', - '雄' => 'xiong', - '熊' => 'xiong', - '休' => 'xiu', - 'å’»' => 'xiu', - 'ä¿®' => 'xiu', - '羞' => 'xiu', - '朽' => 'xiu', - 'ç§€' => 'xiu', - '袖' => 'xiu', - '绣' => 'xiu', - '锈' => 'xiu', - 'å—…' => 'xiu', - '欻' => 'xu', - '戌' => 'xu', - 'é¡»' => 'xu', - '胥' => 'xu', - '虚' => 'xu', - '墟' => 'xu', - '需' => 'xu', - 'é­†' => 'xu', - 'å¾' => 'xu', - '许' => 'xu', - '诩' => 'xu', - 'æ ©' => 'xu', - 'æ—­' => 'xu', - 'åº' => 'xu', - 'å™' => 'xu', - 'æ¤' => 'xu', - 'é…—' => 'xu', - 'å‹–' => 'xu', - '绪' => 'xu', - 'ç»­' => 'xu', - 'çµ®' => 'xu', - 'å©¿' => 'xu', - 'è“„' => 'xu', - 'ç…¦' => 'xu', - '轩' => 'xuan', - '宣' => 'xuan', - 'æŽ' => 'xuan', - 'å–§' => 'xuan', - 'æš„' => 'xuan', - '玄' => 'xuan', - '悬' => 'xuan', - 'æ—‹' => 'xuan', - '漩' => 'xuan', - 'ç’‡' => 'xuan', - '选' => 'xuan', - '癣' => 'xuan', - 'ç‚«' => 'xuan', - '绚' => 'xuan', - '眩' => 'xuan', - '渲' => 'xuan', - 'é´' => 'xue', - 'è–›' => 'xue', - 'ç©´' => 'xue', - 'å­¦' => 'xue', - 'å™±' => 'xue', - '雪' => 'xue', - 'è°‘' => 'xue', - 'å‹‹' => 'xun', - 'ç†' => 'xun', - 'è–°' => 'xun', - '醺' => 'xun', - 'æ—¬' => 'xun', - '寻' => 'xun', - 'å·¡' => 'xun', - '询' => 'xun', - 'è€' => 'xun', - '循' => 'xun', - 'è®­' => 'xun', - '讯' => 'xun', - 'æ±›' => 'xun', - 'è¿…' => 'xun', - '驯' => 'xun', - '徇' => 'xun', - '逊' => 'xun', - '殉' => 'xun', - 'å·½' => 'xun', - '丫' => 'ya', - '压' => 'ya', - '押' => 'ya', - '鸦' => 'ya', - 'æ¡ ' => 'ya', - '鸭' => 'ya', - '牙' => 'ya', - 'ä¼¢' => 'ya', - '芽' => 'ya', - 'èšœ' => 'ya', - 'å´–' => 'ya', - '涯' => 'ya', - 'çš' => 'ya', - 'è¡™' => 'ya', - 'å“‘' => 'ya', - 'é›…' => 'ya', - '亚' => 'ya', - 'è®¶' => 'ya', - '娅' => 'ya', - 'æ°©' => 'ya', - 'æ ' => 'ya', - 'å‘€' => 'ya', - 'æ¹' => 'yan', - '胭' => 'yan', - '烟' => 'yan', - '焉' => 'yan', - '阉' => 'yan', - 'æ·¹' => 'yan', - 'æ¹®' => 'yan', - 'å«£' => 'yan', - 'å»¶' => 'yan', - 'é—«' => 'yan', - '严' => 'yan', - '言' => 'yan', - 'å¦' => 'yan', - '岩' => 'yan', - '炎' => 'yan', - '沿' => 'yan', - 'ç ”' => 'yan', - 'ç›' => 'yan', - '阎' => 'yan', - '蜒' => 'yan', - 'ç­µ' => 'yan', - '颜' => 'yan', - 'æª' => 'yan', - '奄' => 'yan', - '俨' => 'yan', - 'è¡' => 'yan', - '掩' => 'yan', - '郾' => 'yan', - '眼' => 'yan', - 'åƒ' => 'yan', - 'æ¼”' => 'yan', - 'é­‡' => 'yan', - 'é¼¹' => 'yan', - '厌' => 'yan', - 'ç š' => 'yan', - '彦' => 'yan', - '艳' => 'yan', - 'æ™' => 'yan', - 'å”' => 'yan', - 'å®´' => 'yan', - '验' => 'yan', - 'è°š' => 'yan', - 'å °' => 'yan', - 'é›' => 'yan', - 'ç„°' => 'yan', - '滟' => 'yan', - 'é¤' => 'yan', - '燕' => 'yan', - 'èµ' => 'yan', - '央' => 'yang', - 'æ³±' => 'yang', - '殃' => 'yang', - '鸯' => 'yang', - 'ç§§' => 'yang', - '扬' => 'yang', - '羊' => 'yang', - '阳' => 'yang', - 'æ¨' => 'yang', - '佯' => 'yang', - 'ç–¡' => 'yang', - '徉' => 'yang', - 'æ´‹' => 'yang', - 'ä»°' => 'yang', - 'å…»' => 'yang', - 'æ°§' => 'yang', - 'ç—’' => 'yang', - 'æ€' => 'yang', - 'æ ·' => 'yang', - 'æ™' => 'yang', - '烊' => 'yang', - 'æ¼¾' => 'yang', - '幺' => 'yao', - '夭' => 'yao', - 'å†' => 'yao', - '妖' => 'yao', - 'è…°' => 'yao', - 'é‚€' => 'yao', - '爻' => 'yao', - 'å°§' => 'yao', - 'è‚´' => 'yao', - 'å§š' => 'yao', - '窑' => 'yao', - 'è°£' => 'yao', - '摇' => 'yao', - 'å¾­' => 'yao', - 'é¥' => 'yao', - 'ç‘¶' => 'yao', - 'æ³' => 'yao', - 'å’¬' => 'yao', - '舀' => 'yao', - '窈' => 'yao', - 'è¯' => 'yao', - 'è¦' => 'yao', - '鹞' => 'yao', - '耀' => 'yao', - '耶' => 'ye', - '掖' => 'ye', - '椰' => 'ye', - '噎' => 'ye', - '爷' => 'ye', - 'æ¶' => 'ye', - '也' => 'ye', - '冶' => 'ye', - '野' => 'ye', - '业' => 'ye', - 'å¶' => 'ye', - '页' => 'ye', - '曳' => 'ye', - '夜' => 'ye', - 'æ¶²' => 'ye', - 'è°’' => 'ye', - 'è…‹' => 'ye', - '一' => 'yi', - '伊' => 'yi', - 'è¡£' => 'yi', - '医' => 'yi', - 'ä¾' => 'yi', - 'å’¿' => 'yi', - 'æ–' => 'yi', - '壹' => 'yi', - '漪' => 'yi', - '噫' => 'yi', - '仪' => 'yi', - '夷' => 'yi', - '饴' => 'yi', - '宜' => 'yi', - 'å’¦' => 'yi', - 'è´»' => 'yi', - '姨' => 'yi', - '胰' => 'yi', - 'ç§»' => 'yi', - 'ç—' => 'yi', - 'é¢' => 'yi', - 'ç–‘' => 'yi', - 'å½' => 'yi', - 'ä¹™' => 'yi', - 'å·²' => 'yi', - '以' => 'yi', - 'è‹¡' => 'yi', - '矣' => 'yi', - '迤' => 'yi', - 'èš' => 'yi', - '倚' => 'yi', - '椅' => 'yi', - 'æ—–' => 'yi', - '乂' => 'yi', - '亿' => 'yi', - '义' => 'yi', - '艺' => 'yi', - '刈' => 'yi', - '忆' => 'yi', - 'è®®' => 'yi', - 'å±¹' => 'yi', - '亦' => 'yi', - '异' => 'yi', - '抑' => 'yi', - 'å‘“' => 'yi', - 'é‚‘' => 'yi', - 'å½¹' => 'yi', - '译' => 'yi', - '易' => 'yi', - '诣' => 'yi', - '绎' => 'yi', - 'é©¿' => 'yi', - 'è½¶' => 'yi', - '弈' => 'yi', - '奕' => 'yi', - 'ç–«' => 'yi', - '羿' => 'yi', - '益' => 'yi', - 'è°Š' => 'yi', - '逸' => 'yi', - '翌' => 'yi', - 'è‚„' => 'yi', - '裔' => 'yi', - 'æ„' => 'yi', - '溢' => 'yi', - 'ç¼¢' => 'yi', - '毅' => 'yi', - 'è–' => 'yi', - '翳' => 'yi', - '臆' => 'yi', - '翼' => 'yi', - 'å› ' => 'yin', - '阴' => 'yin', - '茵' => 'yin', - 'è«' => 'yin', - '音' => 'yin', - 'å§»' => 'yin', - '铟' => 'yin', - 'å–‘' => 'yin', - 'æ„”' => 'yin', - 'åŸ' => 'yin', - 'åž ' => 'yin', - 'é“¶' => 'yin', - 'æ·«' => 'yin', - '寅' => 'yin', - '龈' => 'yin', - '霪' => 'yin', - 'å°¹' => 'yin', - '引' => 'yin', - 'èš“' => 'yin', - 'éš' => 'yin', - '瘾' => 'yin', - 'å°' => 'yin', - '英' => 'ying', - '莺' => 'ying', - 'å©´' => 'ying', - '嘤' => 'ying', - '罂' => 'ying', - '缨' => 'ying', - '樱' => 'ying', - '鹦' => 'ying', - '膺' => 'ying', - 'é¹°' => 'ying', - '迎' => 'ying', - '茔' => 'ying', - 'è§' => 'ying', - '盈' => 'ying', - '莹' => 'ying', - 'è¤' => 'ying', - 'è¥' => 'ying', - 'è¦' => 'ying', - '楹' => 'ying', - 'è‡' => 'ying', - 'èµ¢' => 'ying', - '瀛' => 'ying', - 'é¢' => 'ying', - '颖' => 'ying', - 'å½±' => 'ying', - '应' => 'ying', - '映' => 'ying', - '硬' => 'ying', - '哟' => 'yo', - 'å”·' => 'yo', - 'ä½£' => 'yong', - 'æ‹¥' => 'yong', - '庸' => 'yong', - 'é›' => 'yong', - '壅' => 'yong', - '臃' => 'yong', - 'æ°¸' => 'yong', - '甬' => 'yong', - 'å’' => 'yong', - 'æ³³' => 'yong', - '勇' => 'yong', - 'æ¶Œ' => 'yong', - 'æ¿' => 'yong', - '蛹' => 'yong', - '踊' => 'yong', - '用' => 'yong', - '优' => 'you', - '攸' => 'you', - 'å¿§' => 'you', - '呦' => 'you', - 'å¹½' => 'you', - 'æ‚ ' => 'you', - 'å°¤' => 'you', - 'ç”±' => 'you', - 'é‚®' => 'you', - '犹' => 'you', - 'æ²¹' => 'you', - 'é“€' => 'you', - '鱿' => 'you', - '游' => 'you', - 'å‹' => 'you', - '有' => 'you', - 'é…‰' => 'you', - '莠' => 'you', - 'é»' => 'you', - 'åˆ' => 'you', - 'å³' => 'you', - 'å¹¼' => 'you', - '佑' => 'you', - '柚' => 'you', - '囿' => 'you', - '诱' => 'you', - '鼬' => 'you', - 'è¿‚' => 'yu', - '纡' => 'yu', - 'æ–¼' => 'yu', - 'æ·¤' => 'yu', - '瘀' => 'yu', - '于' => 'yu', - 'ä½™' => 'yu', - '盂' => 'yu', - '臾' => 'yu', - 'é±¼' => 'yu', - '竽' => 'yu', - '俞' => 'yu', - '狳' => 'yu', - 'è°€' => 'yu', - '娱' => 'yu', - '渔' => 'yu', - 'éš…' => 'yu', - 'æ„' => 'yu', - '逾' => 'yu', - 'è…´' => 'yu', - 'æ¸' => 'yu', - '愉' => 'yu', - '瑜' => 'yu', - '榆' => 'yu', - '虞' => 'yu', - '愚' => 'yu', - '舆' => 'yu', - '与' => 'yu', - '予' => 'yu', - '屿' => 'yu', - '宇' => 'yu', - 'ç¾½' => 'yu', - '雨' => 'yu', - '禹' => 'yu', - '语' => 'yu', - '圄' => 'yu', - '玉' => 'yu', - 'é©­' => 'yu', - '芋' => 'yu', - '妪' => 'yu', - 'éƒ' => 'yu', - '育' => 'yu', - '狱' => 'yu', - 'æµ´' => 'yu', - '预' => 'yu', - '域' => 'yu', - '欲' => 'yu', - 'è°•' => 'yu', - 'é‡' => 'yu', - 'å–»' => 'yu', - '御' => 'yu', - '寓' => 'yu', - '裕' => 'yu', - '愈' => 'yu', - '誉' => 'yu', - '豫' => 'yu', - '鹬' => 'yu', - '鸢' => 'yuan', - '鸳' => 'yuan', - '冤' => 'yuan', - '渊' => 'yuan', - 'å…ƒ' => 'yuan', - 'å›­' => 'yuan', - '垣' => 'yuan', - 'è¢' => 'yuan', - '原' => 'yuan', - '圆' => 'yuan', - 'æ´' => 'yuan', - '媛' => 'yuan', - '缘' => 'yuan', - '猿' => 'yuan', - 'æº' => 'yuan', - '辕' => 'yuan', - '远' => 'yuan', - 'è‹‘' => 'yuan', - '怨' => 'yuan', - '院' => 'yuan', - 'æ„¿' => 'yuan', - 'æ›°' => 'yue', - '月' => 'yue', - 'å²³' => 'yue', - 'é’º' => 'yue', - '阅' => 'yue', - '悦' => 'yue', - 'è·ƒ' => 'yue', - 'è¶Š' => 'yue', - '粤' => 'yue', - '晕' => 'yun', - '云' => 'yun', - '匀' => 'yun', - '芸' => 'yun', - '纭' => 'yun', - '耘' => 'yun', - 'å…' => 'yun', - '陨' => 'yun', - 'æ®’' => 'yun', - 'å­•' => 'yun', - 'è¿' => 'yun', - 'é…' => 'yun', - 'æ„ ' => 'yun', - '韵' => 'yun', - 'è•´' => 'yun', - '熨' => 'yun', - 'åŒ' => 'za', - 'å’‚' => 'za', - 'æ‚' => 'za', - 'ç ¸' => 'za', - 'ç¾' => 'zai', - '甾' => 'zai', - '哉' => 'zai', - 'æ ½' => 'zai', - 'è½½' => 'zai', - 'å®°' => 'zai', - 'å´½' => 'zai', - 'å†' => 'zai', - '在' => 'zai', - '糌' => 'zan', - 'ç°ª' => 'zan', - 'å’±' => 'zan', - 'è¶±' => 'zan', - 'æš‚' => 'zan', - '錾' => 'zan', - '赞' => 'zan', - '赃' => 'zang', - 'è„' => 'zang', - '臧' => 'zang', - '驵' => 'zang', - '葬' => 'zang', - 'é­' => 'zao', - '糟' => 'zao', - '凿' => 'zao', - 'æ—©' => 'zao', - '枣' => 'zao', - '蚤' => 'zao', - '澡' => 'zao', - 'è—»' => 'zao', - 'çš‚' => 'zao', - 'ç¶' => 'zao', - '造' => 'zao', - '噪' => 'zao', - '燥' => 'zao', - 'èº' => 'zao', - '则' => 'ze', - 'è´£' => 'ze', - 'æ³½' => 'ze', - 'å•§' => 'ze', - '帻' => 'ze', - '仄' => 'ze', - 'è´¼' => 'zei', - '怎' => 'zen', - 'è°®' => 'zen', - '增' => 'zeng', - '憎' => 'zeng', - '锃' => 'zeng', - 'èµ ' => 'zeng', - '甑' => 'zeng', - 'å’' => 'zha', - '挓' => 'zha', - '哳' => 'zha', - 'æ¸' => 'zha', - '渣' => 'zha', - '楂' => 'zha', - '札' => 'zha', - 'é—¸' => 'zha', - 'é“¡' => 'zha', - '眨' => 'zha', - 'ç Ÿ' => 'zha', - 'ä¹' => 'zha', - '诈' => 'zha', - 'å’¤' => 'zha', - '炸' => 'zha', - 'èš±' => 'zha', - '榨' => 'zha', - '拃' => 'zha', - 'æ–‹' => 'zhai', - '摘' => 'zhai', - 'å®…' => 'zhai', - '窄' => 'zhai', - '债' => 'zhai', - 'ç ¦' => 'zhai', - '寨' => 'zhai', - 'æ²¾' => 'zhan', - '毡' => 'zhan', - '粘' => 'zhan', - '詹' => 'zhan', - 'è°µ' => 'zhan', - 'çž»' => 'zhan', - 'æ–©' => 'zhan', - 'ç›' => 'zhan', - '展' => 'zhan', - 'å´­' => 'zhan', - 'æŒ' => 'zhan', - 'è¾—' => 'zhan', - 'å ' => 'zhan', - 'æ ˆ' => 'zhan', - '战' => 'zhan', - 'ç«™' => 'zhan', - '绽' => 'zhan', - 'æ¹›' => 'zhan', - '蘸' => 'zhan', - 'å¼ ' => 'zhang', - 'ç« ' => 'zhang', - 'ç' => 'zhang', - 'å½°' => 'zhang', - '樟' => 'zhang', - '蟑' => 'zhang', - '涨' => 'zhang', - '掌' => 'zhang', - '丈' => 'zhang', - 'ä»—' => 'zhang', - 'æ–' => 'zhang', - 'å¸' => 'zhang', - 'è´¦' => 'zhang', - '胀' => 'zhang', - 'éšœ' => 'zhang', - 'å¶‚' => 'zhang', - '瘴' => 'zhang', - 'é’Š' => 'zhao', - 'æ‹›' => 'zhao', - '昭' => 'zhao', - '找' => 'zhao', - 'æ²¼' => 'zhao', - 'å…†' => 'zhao', - 'è¯' => 'zhao', - 'èµµ' => 'zhao', - 'ç…§' => 'zhao', - '罩' => 'zhao', - '肇' => 'zhao', - '蜇' => 'zhe', - 'é®' => 'zhe', - '哲' => 'zhe', - '辄' => 'zhe', - 'è›°' => 'zhe', - 'è°ª' => 'zhe', - 'è¾™' => 'zhe', - '者' => 'zhe', - 'é”—' => 'zhe', - 'èµ­' => 'zhe', - '褶' => 'zhe', - 'æµ™' => 'zhe', - 'è”—' => 'zhe', - 'é¹§' => 'zhe', - 'è´ž' => 'zhen', - 'é’ˆ' => 'zhen', - '侦' => 'zhen', - 'ç' => 'zhen', - '帧' => 'zhen', - '胗' => 'zhen', - '真' => 'zhen', - 'ç §' => 'zhen', - 'æ–Ÿ' => 'zhen', - '甄' => 'zhen', - '榛' => 'zhen', - 'ç®´' => 'zhen', - '臻' => 'zhen', - '诊' => 'zhen', - 'æž•' => 'zhen', - 'ç–¹' => 'zhen', - '缜' => 'zhen', - '阵' => 'zhen', - '鸩' => 'zhen', - '振' => 'zhen', - '朕' => 'zhen', - '赈' => 'zhen', - '震' => 'zhen', - '镇' => 'zhen', - '争' => 'zheng', - 'å¾' => 'zheng', - '怔' => 'zheng', - 'å³¥' => 'zheng', - 'ç‹°' => 'zheng', - 'ç' => 'zheng', - 'é“®' => 'zheng', - 'ç­' => 'zheng', - 'è’¸' => 'zheng', - '拯' => 'zheng', - 'æ•´' => 'zheng', - 'æ­£' => 'zheng', - 'è¯' => 'zheng', - '郑' => 'zheng', - '诤' => 'zheng', - '政' => 'zheng', - '挣' => 'zheng', - 'ç—‡' => 'zheng', - '之' => 'zhi', - '支' => 'zhi', - 'åª' => 'zhi', - 'æ±' => 'zhi', - 'èŠ' => 'zhi', - 'å±' => 'zhi', - 'æž' => 'zhi', - '知' => 'zhi', - 'è‚¢' => 'zhi', - '织' => 'zhi', - 'æ €' => 'zhi', - 'è„‚' => 'zhi', - '蜘' => 'zhi', - '执' => 'zhi', - 'ç›´' => 'zhi', - '侄' => 'zhi', - '值' => 'zhi', - 'èŒ' => 'zhi', - 'æ¤' => 'zhi', - 'è·–' => 'zhi', - '踯' => 'zhi', - 'æ­¢' => 'zhi', - 'æ—¨' => 'zhi', - 'å€' => 'zhi', - '芷' => 'zhi', - '纸' => 'zhi', - '祉' => 'zhi', - '指' => 'zhi', - 'æž³' => 'zhi', - 'å’«' => 'zhi', - 'è¶¾' => 'zhi', - 'é…¯' => 'zhi', - '至' => 'zhi', - 'å¿—' => 'zhi', - '豸' => 'zhi', - '帜' => 'zhi', - '制' => 'zhi', - 'è´¨' => 'zhi', - 'ç‚™' => 'zhi', - 'æ²»' => 'zhi', - 'æ ‰' => 'zhi', - 'å³™' => 'zhi', - '挚' => 'zhi', - '桎' => 'zhi', - '致' => 'zhi', - 'ç§©' => 'zhi', - '掷' => 'zhi', - 'ç—”' => 'zhi', - '窒' => 'zhi', - 'è›­' => 'zhi', - '智' => 'zhi', - 'ç—£' => 'zhi', - '滞' => 'zhi', - 'ç½®' => 'zhi', - '雉' => 'zhi', - '稚' => 'zhi', - '中' => 'zhong', - 'å¿ ' => 'zhong', - '终' => 'zhong', - 'ç›…' => 'zhong', - 'é’Ÿ' => 'zhong', - 'è¡·' => 'zhong', - 'è‚¿' => 'zhong', - '冢' => 'zhong', - '踵' => 'zhong', - '仲' => 'zhong', - 'ä¼—' => 'zhong', - '舟' => 'zhou', - 'å·ž' => 'zhou', - '诌' => 'zhou', - '周' => 'zhou', - 'æ´²' => 'zhou', - 'ç²¥' => 'zhou', - '妯' => 'zhou', - 'è½´' => 'zhou', - '肘' => 'zhou', - '纣' => 'zhou', - 'å’’' => 'zhou', - 'å®™' => 'zhou', - '胄' => 'zhou', - '昼' => 'zhou', - 'çš±' => 'zhou', - '骤' => 'zhou', - '帚' => 'zhou', - '朱' => 'zhu', - 'ä¾' => 'zhu', - '诛' => 'zhu', - '茱' => 'zhu', - 'ç ' => 'zhu', - 'æ ª' => 'zhu', - '诸' => 'zhu', - 'é“¢' => 'zhu', - '猪' => 'zhu', - 'è››' => 'zhu', - '竹' => 'zhu', - '竺' => 'zhu', - 'é€' => 'zhu', - '烛' => 'zhu', - '躅' => 'zhu', - '主' => 'zhu', - 'æ‹„' => 'zhu', - 'ç…®' => 'zhu', - '嘱' => 'zhu', - 'çž©' => 'zhu', - '伫' => 'zhu', - '苎' => 'zhu', - '助' => 'zhu', - 'ä½' => 'zhu', - 'è´®' => 'zhu', - '注' => 'zhu', - 'é©»' => 'zhu', - '柱' => 'zhu', - 'ç¥' => 'zhu', - 'è‘—' => 'zhu', - '蛀' => 'zhu', - '铸' => 'zhu', - 'ç­‘' => 'zhu', - '抓' => 'zhua', - 'è·©' => 'zhuai', - '拽' => 'zhuai', - '专' => 'zhuan', - 'ç –' => 'zhuan', - '转' => 'zhuan', - 'å•­' => 'zhuan', - 'æ’°' => 'zhuan', - '篆' => 'zhuan', - '妆' => 'zhuang', - '庄' => 'zhuang', - 'æ¡©' => 'zhuang', - '装' => 'zhuang', - '壮' => 'zhuang', - '状' => 'zhuang', - 'æ’ž' => 'zhuang', - 'å¹¢' => 'zhuang', - '追' => 'zhui', - '骓' => 'zhui', - '锥' => 'zhui', - 'å ' => 'zhui', - 'ç¼€' => 'zhui', - '惴' => 'zhui', - '赘' => 'zhui', - 'è°†' => 'zhun', - '准' => 'zhun', - 'æ‹™' => 'zhuo', - 'æ‰' => 'zhuo', - '桌' => 'zhuo', - 'ç¼' => 'zhuo', - 'èŒ' => 'zhuo', - 'å“' => 'zhuo', - 'æ–«' => 'zhuo', - '浊' => 'zhuo', - 'é…Œ' => 'zhuo', - 'å•„' => 'zhuo', - 'æ“¢' => 'zhuo', - '镯' => 'zhuo', - 'å­œ' => 'zi', - 'å’¨' => 'zi', - 'å§¿' => 'zi', - 'èµ€' => 'zi', - '资' => 'zi', - '辎' => 'zi', - 'å—ž' => 'zi', - '滋' => 'zi', - 'é”±' => 'zi', - '龇' => 'zi', - 'å­' => 'zi', - 'å§Š' => 'zi', - 'ç§­' => 'zi', - 'ç±½' => 'zi', - '梓' => 'zi', - 'ç´«' => 'zi', - '訾' => 'zi', - '滓' => 'zi', - '自' => 'zi', - 'å­—' => 'zi', - 'æ£' => 'zi', - '眦' => 'zi', - 'æ¸' => 'zi', - 'å®—' => 'zong', - '综' => 'zong', - '棕' => 'zong', - '踪' => 'zong', - '鬃' => 'zong', - '总' => 'zong', - '纵' => 'zong', - 'ç²½' => 'zong', - '邹' => 'zou', - 'èµ°' => 'zou', - 'å¥' => 'zou', - 'æ' => 'zou', - 'ç§Ÿ' => 'zu', - 'è¶³' => 'zu', - 'å’' => 'zu', - 'æ—' => 'zu', - '诅' => 'zu', - '阻' => 'zu', - '组' => 'zu', - '俎' => 'zu', - '祖' => 'zu', - '纂' => 'zuan', - 'é’»' => 'zuan', - '攥' => 'zuan', - '嘴' => 'zui', - '最' => 'zui', - '罪' => 'zui', - '醉' => 'zui', - 'å°Š' => 'zun', - 'éµ' => 'zun', - '樽' => 'zun', - '鳟' => 'zun', - '昨' => 'zuo', - 'å·¦' => 'zuo', - 'ä½' => 'zuo', - '作' => 'zuo', - 'å' => 'zuo', - '阼' => 'zuo', - 'æ€' => 'zuo', - '祚' => 'zuo', - '唑' => 'zuo', - '座' => 'zuo', - 'åš' => 'zuo', - 'é…¢' => 'zuo', - 'æ–Œ' => 'bin', - '曾' => 'zeng', - '查' => 'zha', - '査' => 'zha', - '乘' => 'cheng', - 'ä¼ ' => 'chuan', - 'ä¸' => 'ding', - '行' => 'xing', - '瑾' => 'jin', - 'å©§' => 'jing', - 'æº' => 'kai', - '阚' => 'kan', - '奎' => 'kui', - 'ä¹' => 'le', - '陆' => 'lu', - '逯' => 'lv', - 'ç’' => 'lu', - 'æ·¼' => 'miao', - 'é—µ' => 'min', - '娜' => 'na', - '奇' => 'qi', - 'ç¦' => 'qi', - '强' => 'qiang', - '邱' => 'qiu', - '芮' => 'rui', - '莎' => 'sha', - 'ç››' => 'sheng', - '石' => 'shi', - '祎' => 'yi', - 'æ®·' => 'yin', - 'ç‘›' => 'ying', - '昱' => 'yu', - '眃' => 'yun', - 'ç¢' => 'zhuo', - 'æž°' => 'ping', - '玟' => 'min', - 'ç‰' => 'min', - 'ç£' => 'xun', - 'æ·‡' => 'qi', - '缈' => 'miao', - 'å½§' => 'yu', - '祺' => 'qi', - '骞' => 'qian', - 'åžš' => 'yao', - '妸' => 'e', - '烜' => 'hui', - 'ç¥' => 'qi', - 'å‚¢' => 'jia', - 'ç®' => 'pei', - 'æ¿®' => 'pu', - '屺' => 'qi', - 'ç…' => 'shen', - '缇' => 'ti', - '霈' => 'pei', - '晞' => 'xi', - 'ç’ ' => 'fan', - 'éª' => 'qi', - 'å§ž' => 'ji', - 'å²' => 'cai', - 'é½¼' => 'chu', - '宓' => 'mi', - '朴' => 'pu', - 'è' => 'qi', - '颀' => 'qi', - '阗' => 'tian', - '湉' => 'tian', - 'ç¿€' => 'chong', - 'å²·' => 'min', - '桤' => 'qi', - '囯' => 'guo', - 'æµ›' => 'han', - 'å‹' => 'meng', - 'è‹ ' => 'min', - 'å²' => 'qian', - 'çšž' => 'hao', - 'å²' => 'qi', - '溥' => 'pu', - '锘' => 'muo', - '渼' => 'mei', - '燊' => 'shen', - '玚' => 'chang', - '亓' => 'qi', - '湋' => 'wei', - 'æ¶´' => 'wan', - '沤' => 'ou', - '胖' => 'pang', - '莆' => 'pu', - '扦' => 'qian', - '僳' => 'su', - 'å' => 'tan', - '锑' => 'ti', - 'åš' => 'ti', - 'è…†' => 'tian', - '丿' => 'pie', - 'é¼—' => 'tao', - '芈' => 'mi', - '匚' => 'fang', - '刂' => 'li', - '冂' => 'tong', - '亻' => 'dan', - '仳' => 'pi', - '俜' => 'ping', - '俳' => 'pai', - '倜' => 'ti', - 'å‚¥' => 'tang', - 'å‚©' => 'nuo', - 'ä½¥' => 'qian', - '勹' => 'bao', - '亠' => 'tou', - '廾' => 'gong', - 'åŒ' => 'pao', - '扌' => 'ti', - '拚' => 'pin', - '掊' => 'pou', - 'æ¦' => 'nuo', - 'æ“—' => 'pi', - 'å••' => 'tao', - 'å—¦' => 'suo', - 'å—' => 'suo', - 'è¾”' => 'pei', - '嘌' => 'piao', - 'å—¾' => 'sou', - '嘧' => 'mi', - '帔' => 'pei', - '帑' => 'tang', - '彡' => 'san', - '犭' => 'fan', - 'ç‹' => 'pao', - '狲' => 'sun', - 'ç‹»' => 'jun', - '飧' => 'sun', - '夂' => 'zhi', - '饣' => 'shi', - '庀' => 'pi', - 'å¿„' => 'shu', - 'æ„«' => 'su', - 'é—¼' => 'ta', - '丬' => 'jiang', - 'æ°µ' => 'san', - 'æ±”' => 'qi', - 'æ²”' => 'mian', - '汨' => 'mi', - 'æ³®' => 'pan', - 'æ´®' => 'tao', - 'æ¶‘' => 'su', - 'æ· ' => 'pi', - '湓' => 'pen', - '溻' => 'ta', - 'æº' => 'tang', - '濉' => 'sui', - '宀' => 'bao', - 'æ´' => 'qian', - 'è¾¶' => 'zou', - '逄' => 'pang', - '逖' => 'ti', - 'é¢' => 'ta', - '邈' => 'miao', - '邃' => 'sui', - 'å½' => 'ji', - 'å±®' => 'cao', - '娑' => 'suo', - 'å«–' => 'piao', - '纟' => 'jiao', - 'ç¼—' => 'min', - 'ç‘­' => 'tang', - 'æª' => 'miao', - 'æ¡«' => 'suo', - '榀' => 'pin', - '榫' => 'sun', - 'æ§­' => 'qi', - '甓' => 'pi', - 'æ”´' => 'po', - '耆' => 'qi', - 'ç‰' => 'pin', - 'çŠ' => 'pian', - 'æ°†' => 'pu', - '攵' => 'fan', - '肽' => 'tai', - '胼' => 'pian', - 'è„’' => 'mi', - '脬' => 'pao', - 'æ—†' => 'pei', - '炱' => 'tai', - '燧' => 'sui', - 'ç¬' => 'biao', - '礻' => 'shi', - '祧' => 'tiao', - 'å¿‘' => 'te', - 'å¿' => 'tan', - 'æ„' => 'min', - 'è‚€' => 'yu', - '碛' => 'qi', - '眄' => 'mian', - '眇' => 'miao', - '眭' => 'sui', - 'çƒ' => 'suo', - 'çž' => 'sou', - 'ç•‹' => 'tian', - 'ç½´' => 'pi', - 'è “' => 'meng', - 'è ›' => 'mie', - '笸' => 'po', - 'ç­¢' => 'pa', - 'è¡„' => 'nv', - '艋' => 'meng', - '敉' => 'mi', - '糸' => 'mi', - '綦' => 'qi', - '醅' => 'pei', - '醣' => 'tang', - 'è¶¿' => 'ta', - 'è§«' => 'su', - '龆' => 'tiao', - '鲆' => 'ping', - '稣' => 'su', - 'é²' => 'tai', - '鲦' => 'tiao', - '鳎' => 'ta', - 'é«‚' => 'qia', - '縻' => 'mi', - '裒' => 'pou', - '冫' => 'liang', - '冖' => 'tu', - 'è® ' => 'yan', - 'è°‡' => 'sui', - 'è°' => 'pian', - 'è°¡' => 'su', - 'å©' => 'dan', - 'é˜' => 'zuo', - 'é™´' => 'pi', - '邳' => 'pi', - '郫' => 'pi', - '郯' => 'tan', - 'å»´' => 'yin', - '凵' => 'qian', - '圮' => 'pi', - 'å ‹' => 'peng', - 'é¼™' => 'pi', - '艹' => 'cao', - '芑' => 'qi', - '苤' => 'pie', - 'èª' => 'sun', - 'è½' => 'sui', - '葜' => 'qia', - 'è’Ž' => 'pai', - '蔌' => 'su', - '蕲' => 'qi', - 'è–®' => 'sou', - 'è–¹' => 'tai', - '蘼' => 'mi', - 'é’…' => 'jin', - 'é’·' => 'po', - 'é’½' => 'tan', - 'é“' => 'pi', - 'é“´' => 'tang', - '铽' => 'te', - '锫' => 'pei', - '锬' => 'tan', - '锼' => 'sou', - '镤' => 'pu', - '镨' => 'pu', - '皤' => 'po', - '鹈' => 'ti', - '鹋' => 'miao', - 'ç–’' => 'bing', - 'ç–±' => 'pao', - '衤' => 'yi', - '袢' => 'pan', - '裼' => 'ti', - '襻' => 'pan', - '耥' => 'tang', - '耦' => 'ou', - 'è™' => 'hu', - 'è›´' => 'qi', - '蜞' => 'qi', - '蜱' => 'pi', - 'èž‹' => 'sou', - 'èž—' => 'tang', - 'èžµ' => 'piao', - '蟛' => 'peng', - ), - 'croatian' => - array ( - 'ÄŒ' => 'C', - 'Ć' => 'C', - 'Ž' => 'Z', - 'Å ' => 'S', - 'Ä' => 'Dj', - 'Ä' => 'c', - 'ć' => 'c', - 'ž' => 'z', - 'Å¡' => 's', - 'Ä‘' => 'dj', - ), - 'czech' => - array ( - 'ÄŒ' => 'C', - 'ÄŽ' => 'D', - 'Äš' => 'E', - 'Ň' => 'N', - 'Ř' => 'R', - 'Å ' => 'S', - 'Ť' => 'T', - 'Å®' => 'U', - 'Ž' => 'Z', - 'Ä' => 'c', - 'Ä' => 'd', - 'Ä›' => 'e', - 'ň' => 'n', - 'Å™' => 'r', - 'Å¡' => 's', - 'Å¥' => 't', - 'ů' => 'u', - 'ž' => 'z', - ), - 'danish' => - array ( - 'Æ' => 'Ae', - 'æ' => 'ae', - 'Ø' => 'Oe', - 'ø' => 'oe', - 'Ã…' => 'Aa', - 'Ã¥' => 'aa', - 'É' => 'E', - 'é' => 'e', - ), - 'default' => - array ( - '°' => '0', - '¹' => '1', - '²' => '2', - '³' => '3', - 'â´' => '4', - 'âµ' => '5', - 'â¶' => '6', - 'â·' => '7', - 'â¸' => '8', - 'â¹' => '9', - 'â‚€' => '0', - 'â‚' => '1', - 'â‚‚' => '2', - '₃' => '3', - 'â‚„' => '4', - 'â‚…' => '5', - '₆' => '6', - '₇' => '7', - '₈' => '8', - '₉' => '9', - 'æ' => 'ae', - 'ǽ' => 'ae', - 'À' => 'A', - 'Ã' => 'A', - 'Â' => 'A', - 'Ã' => 'A', - 'Ã…' => 'AA', - 'Ǻ' => 'A', - 'Ä‚' => 'A', - 'Ç' => 'A', - 'Æ' => 'AE', - 'Ǽ' => 'AE', - 'à' => 'a', - 'á' => 'a', - 'â' => 'a', - 'ã' => 'a', - 'Ã¥' => 'aa', - 'Ç»' => 'a', - 'ă' => 'a', - 'ÇŽ' => 'a', - 'ª' => 'a', - '@' => 'at', - 'Ĉ' => 'C', - 'ÄŠ' => 'C', - 'Ç' => 'C', - 'ç' => 'c', - 'ĉ' => 'c', - 'Ä‹' => 'c', - '©' => 'c', - 'Ã' => 'Dj', - 'Ä' => 'D', - 'ð' => 'dj', - 'Ä‘' => 'd', - 'È' => 'E', - 'É' => 'E', - 'Ê' => 'E', - 'Ë' => 'E', - 'Ä”' => 'E', - 'Ä–' => 'E', - 'è' => 'e', - 'é' => 'e', - 'ê' => 'e', - 'ë' => 'e', - 'Ä•' => 'e', - 'Ä—' => 'e', - 'Æ’' => 'f', - 'Äœ' => 'G', - 'Ä ' => 'G', - 'Ä' => 'g', - 'Ä¡' => 'g', - 'Ĥ' => 'H', - 'Ħ' => 'H', - 'Ä¥' => 'h', - 'ħ' => 'h', - 'ÃŒ' => 'I', - 'Ã' => 'I', - 'ÃŽ' => 'I', - 'Ã' => 'I', - 'Ĩ' => 'I', - 'Ĭ' => 'I', - 'Ç' => 'I', - 'Ä®' => 'I', - 'IJ' => 'IJ', - 'ì' => 'i', - 'í' => 'i', - 'î' => 'i', - 'ï' => 'i', - 'Ä©' => 'i', - 'Ä­' => 'i', - 'Ç' => 'i', - 'į' => 'i', - 'ij' => 'ij', - 'Ä´' => 'J', - 'ĵ' => 'j', - 'Ĺ' => 'L', - 'Ľ' => 'L', - 'Ä¿' => 'L', - 'ĺ' => 'l', - 'ľ' => 'l', - 'Å€' => 'l', - 'Ñ' => 'N', - 'ñ' => 'n', - 'ʼn' => 'n', - 'Ã’' => 'O', - 'Ó' => 'O', - 'Ô' => 'O', - 'Õ' => 'O', - 'ÅŒ' => 'O', - 'ÅŽ' => 'O', - 'Ç‘' => 'O', - 'Å' => 'O', - 'Æ ' => 'O', - 'Ø' => 'OE', - 'Ǿ' => 'O', - 'Å’' => 'OE', - 'ò' => 'o', - 'ó' => 'o', - 'ô' => 'o', - 'õ' => 'o', - 'Å' => 'o', - 'Å' => 'o', - 'Ç’' => 'o', - 'Å‘' => 'o', - 'Æ¡' => 'o', - 'ø' => 'oe', - 'Ç¿' => 'o', - 'º' => 'o', - 'Å“' => 'oe', - 'Å”' => 'R', - 'Å–' => 'R', - 'Å•' => 'r', - 'Å—' => 'r', - 'Åœ' => 'S', - 'Ș' => 'S', - 'Å' => 's', - 'È™' => 's', - 'Å¿' => 's', - 'Å¢' => 'T', - 'Èš' => 'T', - 'Ŧ' => 'T', - 'Þ' => 'TH', - 'Å£' => 't', - 'È›' => 't', - 'ŧ' => 't', - 'þ' => 'th', - 'Ù' => 'U', - 'Ú' => 'U', - 'Û' => 'U', - 'Ü' => 'U', - 'Ũ' => 'U', - 'Ŭ' => 'U', - 'Ű' => 'U', - 'Ų' => 'U', - 'Ư' => 'U', - 'Ç“' => 'U', - 'Ç•' => 'U', - 'Ç—' => 'U', - 'Ç™' => 'U', - 'Ç›' => 'U', - 'ù' => 'u', - 'ú' => 'u', - 'û' => 'u', - 'ü' => 'u', - 'Å©' => 'u', - 'Å­' => 'u', - 'ű' => 'u', - 'ų' => 'u', - 'ư' => 'u', - 'Ç”' => 'u', - 'Ç–' => 'u', - 'ǘ' => 'u', - 'Çš' => 'u', - 'Çœ' => 'u', - 'Å´' => 'W', - 'ŵ' => 'w', - 'Ã' => 'Y', - 'Ÿ' => 'Y', - 'Ŷ' => 'Y', - 'ý' => 'y', - 'ÿ' => 'y', - 'Å·' => 'y', - ), - 'esperanto' => - array ( - 'ĉ' => 'cx', - 'Ä' => 'gx', - 'Ä¥' => 'hx', - 'ĵ' => 'jx', - 'Å' => 'sx', - 'Å­' => 'ux', - 'Ĉ' => 'CX', - 'Äœ' => 'GX', - 'Ĥ' => 'HX', - 'Ä´' => 'JX', - 'Åœ' => 'SX', - 'Ŭ' => 'UX', - ), - 'estonian' => - array ( - 'Å ' => 'S', - 'Ž' => 'Z', - 'Õ' => 'O', - 'Ä' => 'A', - 'Ö' => 'O', - 'Ü' => 'U', - 'Å¡' => 's', - 'ž' => 'z', - 'õ' => 'o', - 'ä' => 'a', - 'ö' => 'o', - 'ü' => 'u', - ), - 'finnish' => - array ( - 'Ä' => 'A', - 'Ö' => 'O', - 'ä' => 'a', - 'ö' => 'o', - ), - 'french' => - array ( - 'À' => 'A', - 'Â' => 'A', - 'Æ' => 'AE', - 'Ç' => 'C', - 'É' => 'E', - 'È' => 'E', - 'Ê' => 'E', - 'Ë' => 'E', - 'Ã' => 'I', - 'ÃŽ' => 'I', - 'Ô' => 'O', - 'Å’' => 'OE', - 'Ù' => 'U', - 'Û' => 'U', - 'Ü' => 'U', - 'à' => 'a', - 'â' => 'a', - 'æ' => 'ae', - 'ç' => 'c', - 'é' => 'e', - 'è' => 'e', - 'ê' => 'e', - 'ë' => 'e', - 'ï' => 'i', - 'î' => 'i', - 'ô' => 'o', - 'Å“' => 'oe', - 'ù' => 'u', - 'û' => 'u', - 'ü' => 'u', - 'ÿ' => 'y', - 'Ÿ' => 'Y', - ), - 'georgian' => - array ( - 'áƒ' => 'a', - 'ბ' => 'b', - 'გ' => 'g', - 'დ' => 'd', - 'ე' => 'e', - 'ვ' => 'v', - 'ზ' => 'z', - 'თ' => 't', - 'ი' => 'i', - 'კ' => 'k', - 'ლ' => 'l', - 'მ' => 'm', - 'ნ' => 'n', - 'áƒ' => 'o', - 'პ' => 'p', - 'ჟ' => 'zh', - 'რ' => 'r', - 'ს' => 's', - 'ტ' => 't', - 'უ' => 'u', - 'ფ' => 'f', - 'ქ' => 'k', - 'ღ' => 'gh', - 'ყ' => 'q', - 'შ' => 'sh', - 'ჩ' => 'ch', - 'ც' => 'ts', - 'ძ' => 'dz', - 'წ' => 'ts', - 'ჭ' => 'ch', - 'ხ' => 'kh', - 'ჯ' => 'j', - 'ჰ' => 'h', - ), - 'german' => - array ( - 'Ä' => 'AE', - 'Ö' => 'OE', - 'Ü' => 'UE', - 'ß' => 'ss', - 'ä' => 'ae', - 'ö' => 'oe', - 'ü' => 'ue', - ), - 'greek' => - array ( - 'ΑΥ' => 'AU', - 'Αυ' => 'Au', - 'ΟΥ' => 'OU', - 'Ου' => 'Ou', - 'ΕΥ' => 'EU', - 'Ευ' => 'Eu', - 'ΕΙ' => 'I', - 'Ει' => 'I', - 'ΟΙ' => 'I', - 'Οι' => 'I', - 'ΥΙ' => 'I', - 'Υι' => 'I', - 'ΑΎ' => 'AU', - 'ΑÏ' => 'Au', - 'ΟΎ' => 'OU', - 'ΟÏ' => 'Ou', - 'ΕΎ' => 'EU', - 'ΕÏ' => 'Eu', - 'ΕΊ' => 'I', - 'Εί' => 'I', - 'ΟΊ' => 'I', - 'Οί' => 'I', - 'ΎΙ' => 'I', - 'Ύι' => 'I', - 'ΥΊ' => 'I', - 'Υί' => 'I', - 'αυ' => 'au', - 'ου' => 'ou', - 'ευ' => 'eu', - 'ει' => 'i', - 'οι' => 'i', - 'υι' => 'i', - 'αÏ' => 'au', - 'οÏ' => 'ou', - 'εÏ' => 'eu', - 'εί' => 'i', - 'οί' => 'i', - 'Ïι' => 'i', - 'υί' => 'i', - 'Α' => 'A', - 'Î’' => 'V', - 'Γ' => 'G', - 'Δ' => 'D', - 'Ε' => 'E', - 'Ζ' => 'Z', - 'Η' => 'I', - 'Θ' => 'Th', - 'Ι' => 'I', - 'Κ' => 'K', - 'Λ' => 'L', - 'Μ' => 'M', - 'Î' => 'N', - 'Ξ' => 'X', - 'Ο' => 'O', - 'Π' => 'P', - 'Ρ' => 'R', - 'Σ' => 'S', - 'Τ' => 'T', - 'Î¥' => 'I', - 'Φ' => 'F', - 'Χ' => 'Ch', - 'Ψ' => 'Ps', - 'Ω' => 'O', - 'Ά' => 'A', - 'Έ' => 'E', - 'Ή' => 'I', - 'Ί' => 'I', - 'ÎŒ' => 'O', - 'ÎŽ' => 'I', - 'Ϊ' => 'I', - 'Ϋ' => 'I', - 'Ï’' => 'I', - 'α' => 'a', - 'β' => 'v', - 'γ' => 'g', - 'δ' => 'd', - 'ε' => 'e', - 'ζ' => 'z', - 'η' => 'i', - 'θ' => 'th', - 'ι' => 'i', - 'κ' => 'k', - 'λ' => 'l', - 'μ' => 'm', - 'ν' => 'n', - 'ξ' => 'x', - 'ο' => 'o', - 'Ï€' => 'p', - 'Ï' => 'r', - 'Ï‚' => 's', - 'σ' => 's', - 'Ï„' => 't', - 'Ï…' => 'i', - 'φ' => 'f', - 'χ' => 'ch', - 'ψ' => 'ps', - 'ω' => 'o', - 'ά' => 'a', - 'έ' => 'e', - 'ή' => 'i', - 'ί' => 'i', - 'ÏŒ' => 'o', - 'Ï' => 'i', - 'ÏŠ' => 'i', - 'Ï‹' => 'i', - 'ΰ' => 'i', - 'ÏŽ' => 'o', - 'Ï' => 'v', - 'Ï‘' => 'th', - ), - 'hindi' => - array ( - 'अ' => 'a', - 'आ' => 'aa', - 'à¤' => 'e', - 'ई' => 'ii', - 'à¤' => 'ei', - 'ऎ' => 'ae', - 'à¤' => 'ai', - 'इ' => 'i', - 'ओ' => 'o', - 'ऑ' => 'oi', - 'ऒ' => 'oii', - 'ऊ' => 'uu', - 'औ' => 'ou', - 'उ' => 'u', - 'ब' => 'B', - 'भ' => 'Bha', - 'च' => 'Ca', - 'छ' => 'Chha', - 'ड' => 'Da', - 'ढ' => 'Dha', - 'फ' => 'Fa', - 'फ़' => 'Fi', - 'ग' => 'Ga', - 'घ' => 'Gha', - 'ग़' => 'Ghi', - 'ह' => 'Ha', - 'ज' => 'Ja', - 'à¤' => 'Jha', - 'क' => 'Ka', - 'ख' => 'Kha', - 'ख़' => 'Khi', - 'ल' => 'L', - 'ळ' => 'Li', - 'ऌ' => 'Li', - 'ऴ' => 'Lii', - 'ॡ' => 'Lii', - 'म' => 'Ma', - 'न' => 'Na', - 'ङ' => 'Na', - 'ञ' => 'Nia', - 'ण' => 'Nae', - 'ऩ' => 'Ni', - 'à¥' => 'oms', - 'प' => 'Pa', - 'क़' => 'Qi', - 'र' => 'Ra', - 'ऋ' => 'Ri', - 'ॠ' => 'Ri', - 'ऱ' => 'Ri', - 'स' => 'Sa', - 'श' => 'Sha', - 'ष' => 'Shha', - 'ट' => 'Ta', - 'त' => 'Ta', - 'ठ' => 'Tha', - 'द' => 'Tha', - 'थ' => 'Tha', - 'ध' => 'Thha', - 'ड़' => 'ugDha', - 'ढ़' => 'ugDhha', - 'व' => 'Va', - 'य' => 'Ya', - 'य़' => 'Yi', - 'ज़' => 'Za', - ), - 'hungarian' => - array ( - 'Ã' => 'a', - 'É' => 'e', - 'Ã' => 'i', - 'Ó' => 'o', - 'Ö' => 'o', - 'Å' => 'o', - 'Ú' => 'u', - 'Ü' => 'u', - 'Ű' => 'u', - 'á' => 'a', - 'é' => 'e', - 'í' => 'i', - 'ó' => 'o', - 'ö' => 'o', - 'Å‘' => 'o', - 'ú' => 'u', - 'ü' => 'u', - 'ű' => 'u', - ), - 'italian' => - array ( - 'À' => 'a', - 'È' => 'e', - 'ÃŒ' => 'i', - 'Ã’' => 'o', - 'Ù' => 'u', - 'à' => 'a', - 'é' => 'e', - 'è' => 'e', - 'ì' => 'i', - 'ò' => 'o', - 'ù' => 'u', - ), - 'latvian' => - array ( - 'Ä€' => 'A', - 'Ä’' => 'E', - 'Ä¢' => 'G', - 'Ī' => 'I', - 'Ķ' => 'K', - 'Ä»' => 'L', - 'Å…' => 'N', - 'Ū' => 'U', - 'Ä' => 'a', - 'Ä“' => 'e', - 'Ä£' => 'g', - 'Ä«' => 'i', - 'Ä·' => 'k', - 'ļ' => 'l', - 'ņ' => 'n', - 'Å«' => 'u', - ), - 'lithuanian' => - array ( - 'Ä„' => 'A', - 'ÄŒ' => 'C', - 'Ę' => 'E', - 'Ä–' => 'E', - 'Ä®' => 'I', - 'Å ' => 'S', - 'Ų' => 'U', - 'Ū' => 'U', - 'Ž' => 'Z', - 'Ä…' => 'a', - 'Ä' => 'c', - 'Ä™' => 'e', - 'Ä—' => 'e', - 'į' => 'i', - 'Å¡' => 's', - 'ų' => 'u', - 'Å«' => 'u', - 'ž' => 'z', - ), - 'macedonian' => - array ( - 'Ð' => 'A', - 'Б' => 'B', - 'Ð’' => 'V', - 'Г' => 'G', - 'Д' => 'D', - 'Ѓ' => 'Gj', - 'Е' => 'E', - 'Ж' => 'Zh', - 'З' => 'Z', - 'S' => 'Dz', - 'И' => 'I', - 'Ј' => 'J', - 'К' => 'K', - 'Л' => 'L', - 'Љ' => 'Lj', - 'М' => 'M', - 'Ð' => 'N', - 'Њ' => 'Nj', - 'О' => 'O', - 'П' => 'P', - 'Р' => 'R', - 'С' => 'S', - 'Т' => 'T', - 'ÐŒ' => 'Kj', - 'У' => 'U', - 'Ф' => 'F', - 'Ð¥' => 'H', - 'Ц' => 'C', - 'Ч' => 'Ch', - 'Ð' => 'Dj', - 'Ш' => 'Sh', - 'а' => 'a', - 'б' => 'b', - 'в' => 'v', - 'г' => 'g', - 'д' => 'd', - 'Ñ“' => 'gj', - 'е' => 'e', - 'ж' => 'zh', - 'з' => 'z', - 's' => 'dz', - 'и' => 'i', - 'ј' => 'j', - 'к' => 'k', - 'л' => 'l', - 'Ñ™' => 'lj', - 'м' => 'm', - 'н' => 'n', - 'Ñš' => 'nj', - 'о' => 'o', - 'п' => 'p', - 'Ñ€' => 'r', - 'Ñ' => 's', - 'Ñ‚' => 't', - 'Ñœ' => 'kj', - 'у' => 'u', - 'Ñ„' => 'f', - 'Ñ…' => 'h', - 'ц' => 'c', - 'ч' => 'ch', - 'ÑŸ' => 'dj', - 'ш' => 'sh', - ), - 'norwegian' => - array ( - 'Æ' => 'AE', - 'Ø' => 'OE', - 'Ã…' => 'AA', - 'æ' => 'ae', - 'ø' => 'oe', - 'Ã¥' => 'aa', - ), - 'persian' => - array ( - 'ا' => 'a', - 'ب' => 'b', - 'Ù¾' => 'p', - 'ت' => 't', - 'Ø«' => 'th', - 'ج' => 'j', - 'Ú†' => 'ch', - 'Ø­' => 'h', - 'Ø®' => 'kh', - 'د' => 'd', - 'ذ' => 'th', - 'ر' => 'r', - 'ز' => 'z', - 'Ú˜' => 'zh', - 'س' => 's', - 'Ø´' => 'sh', - 'ص' => 's', - 'ض' => 'z', - 'Ø·' => 't', - 'ظ' => 'z', - 'ع' => 'a', - 'غ' => 'gh', - 'Ù' => 'f', - 'Ù‚' => 'g', - 'Ùƒ' => 'k', - 'Ú¯' => 'g', - 'Ù„' => 'l', - 'Ù…' => 'm', - 'Ù†' => 'n', - 'Ùˆ' => 'o', - 'Ù‡' => 'h', - 'ÛŒ' => 'y', - ), - 'polish' => - array ( - 'Ä„' => 'A', - 'Ć' => 'C', - 'Ę' => 'E', - 'Å' => 'L', - 'Ń' => 'N', - 'Ó' => 'O', - 'Åš' => 'S', - 'Ź' => 'Z', - 'Å»' => 'Z', - 'Ä…' => 'a', - 'ć' => 'c', - 'Ä™' => 'e', - 'Å‚' => 'l', - 'Å„' => 'n', - 'ó' => 'o', - 'Å›' => 's', - 'ź' => 'z', - 'ż' => 'z', - ), - 'portuguese-brazil' => - array ( - '°' => '0', - '¹' => '1', - '²' => '2', - '³' => '3', - 'â´' => '4', - 'âµ' => '5', - 'â¶' => '6', - 'â·' => '7', - 'â¸' => '8', - 'â¹' => '9', - 'â‚€' => '0', - 'â‚' => '1', - 'â‚‚' => '2', - '₃' => '3', - 'â‚„' => '4', - 'â‚…' => '5', - '₆' => '6', - '₇' => '7', - '₈' => '8', - '₉' => '9', - 'æ' => 'ae', - 'ǽ' => 'ae', - 'À' => 'A', - 'Ã' => 'A', - 'Â' => 'A', - 'Ã' => 'A', - 'Ã…' => 'AA', - 'Ǻ' => 'A', - 'Ä‚' => 'A', - 'Ç' => 'A', - 'Æ' => 'AE', - 'Ǽ' => 'AE', - 'à' => 'a', - 'á' => 'a', - 'â' => 'a', - 'ã' => 'a', - 'Ã¥' => 'aa', - 'Ç»' => 'a', - 'ă' => 'a', - 'ÇŽ' => 'a', - 'ª' => 'a', - '@' => 'at', - 'Ĉ' => 'C', - 'ÄŠ' => 'C', - 'Ç' => 'Ç', - 'ç' => 'ç', - 'ĉ' => 'c', - 'Ä‹' => 'c', - '©' => 'c', - 'Ã' => 'Dj', - 'Ä' => 'D', - 'ð' => 'dj', - 'Ä‘' => 'd', - 'È' => 'E', - 'É' => 'E', - 'Ê' => 'E', - 'Ë' => 'E', - 'Ä”' => 'E', - 'Ä–' => 'E', - 'è' => 'e', - 'é' => 'é', - 'ê' => 'e', - 'ë' => 'e', - 'Ä•' => 'e', - 'Ä—' => 'e', - 'Æ’' => 'f', - 'Äœ' => 'G', - 'Ä ' => 'G', - 'Ä' => 'g', - 'Ä¡' => 'g', - 'Ĥ' => 'H', - 'Ħ' => 'H', - 'Ä¥' => 'h', - 'ħ' => 'h', - 'ÃŒ' => 'I', - 'Ã' => 'I', - 'ÃŽ' => 'I', - 'Ã' => 'I', - 'Ĩ' => 'I', - 'Ĭ' => 'I', - 'Ç' => 'I', - 'Ä®' => 'I', - 'IJ' => 'IJ', - 'ì' => 'i', - 'í' => 'i', - 'î' => 'i', - 'ï' => 'i', - 'Ä©' => 'i', - 'Ä­' => 'i', - 'Ç' => 'i', - 'į' => 'i', - 'ij' => 'ij', - 'Ä´' => 'J', - 'ĵ' => 'j', - 'Ĺ' => 'L', - 'Ľ' => 'L', - 'Ä¿' => 'L', - 'ĺ' => 'l', - 'ľ' => 'l', - 'Å€' => 'l', - 'Ñ' => 'N', - 'ñ' => 'n', - 'ʼn' => 'n', - 'Ã’' => 'O', - 'Ó' => 'O', - 'Ô' => 'O', - 'Õ' => 'O', - 'ÅŒ' => 'O', - 'ÅŽ' => 'O', - 'Ç‘' => 'O', - 'Å' => 'O', - 'Æ ' => 'O', - 'Ø' => 'OE', - 'Ǿ' => 'O', - 'Å’' => 'OE', - 'ò' => 'o', - 'ó' => 'o', - 'ô' => 'o', - 'õ' => 'o', - 'Å' => 'o', - 'Å' => 'o', - 'Ç’' => 'o', - 'Å‘' => 'o', - 'Æ¡' => 'o', - 'ø' => 'oe', - 'Ç¿' => 'o', - 'º' => 'o', - 'Å“' => 'oe', - 'Å”' => 'R', - 'Å–' => 'R', - 'Å•' => 'r', - 'Å—' => 'r', - 'Åœ' => 'S', - 'Ș' => 'S', - 'Å' => 's', - 'È™' => 's', - 'Å¿' => 's', - 'Å¢' => 'T', - 'Èš' => 'T', - 'Ŧ' => 'T', - 'Þ' => 'TH', - 'Å£' => 't', - 'È›' => 't', - 'ŧ' => 't', - 'þ' => 'th', - 'Ù' => 'U', - 'Ú' => 'U', - 'Û' => 'U', - 'Ü' => 'U', - 'Ũ' => 'U', - 'Ŭ' => 'U', - 'Ű' => 'U', - 'Ų' => 'U', - 'Ư' => 'U', - 'Ç“' => 'U', - 'Ç•' => 'U', - 'Ç—' => 'U', - 'Ç™' => 'U', - 'Ç›' => 'U', - 'ù' => 'u', - 'ú' => 'u', - 'û' => 'u', - 'ü' => 'u', - 'Å©' => 'u', - 'Å­' => 'u', - 'ű' => 'u', - 'ų' => 'u', - 'ư' => 'u', - 'Ç”' => 'u', - 'Ç–' => 'u', - 'ǘ' => 'u', - 'Çš' => 'u', - 'Çœ' => 'u', - 'Å´' => 'W', - 'ŵ' => 'w', - 'Ã' => 'Y', - 'Ÿ' => 'Y', - 'Ŷ' => 'Y', - 'ý' => 'y', - 'ÿ' => 'y', - 'Å·' => 'y', - ), - 'romanian' => - array ( - 'ă' => 'a', - 'î' => 'i', - 'â' => 'a', - 'ÅŸ' => 's', - 'È™' => 's', - 'Å£' => 't', - 'È›' => 't', - 'Ä‚' => 'A', - 'ÃŽ' => 'I', - 'Â' => 'A', - 'Åž' => 'S', - 'Ș' => 'S', - 'Å¢' => 'T', - 'Èš' => 'T', - ), - 'russian' => - array ( - 'Ъ' => '', - 'Ь' => '', - 'Ð' => 'A', - 'Б' => 'B', - 'Ц' => 'C', - 'Ч' => 'Ch', - 'Д' => 'D', - 'Е' => 'E', - 'Ð' => 'E', - 'Э' => 'E', - 'Ф' => 'F', - 'Г' => 'G', - 'Ð¥' => 'H', - 'И' => 'I', - 'Й' => 'Y', - 'Я' => 'Ya', - 'Ю' => 'Yu', - 'К' => 'K', - 'Л' => 'L', - 'М' => 'M', - 'Ð' => 'N', - 'О' => 'O', - 'П' => 'P', - 'Р' => 'R', - 'С' => 'S', - 'Ш' => 'Sh', - 'Щ' => 'Shch', - 'Т' => 'T', - 'У' => 'U', - 'Ð’' => 'V', - 'Ы' => 'Y', - 'З' => 'Z', - 'Ж' => 'Zh', - 'ÑŠ' => '', - 'ÑŒ' => '', - 'а' => 'a', - 'б' => 'b', - 'ц' => 'c', - 'ч' => 'ch', - 'д' => 'd', - 'е' => 'e', - 'Ñ‘' => 'e', - 'Ñ' => 'e', - 'Ñ„' => 'f', - 'г' => 'g', - 'Ñ…' => 'h', - 'и' => 'i', - 'й' => 'y', - 'Ñ' => 'ya', - 'ÑŽ' => 'yu', - 'к' => 'k', - 'л' => 'l', - 'м' => 'm', - 'н' => 'n', - 'о' => 'o', - 'п' => 'p', - 'Ñ€' => 'r', - 'Ñ' => 's', - 'ш' => 'sh', - 'щ' => 'shch', - 'Ñ‚' => 't', - 'у' => 'u', - 'в' => 'v', - 'Ñ‹' => 'y', - 'з' => 'z', - 'ж' => 'zh', - ), - 'serbian' => - array ( - 'а' => 'a', - 'б' => 'b', - 'в' => 'v', - 'г' => 'g', - 'д' => 'd', - 'Ñ’' => 'dj', - 'е' => 'e', - 'ж' => 'z', - 'з' => 'z', - 'и' => 'i', - 'ј' => 'j', - 'к' => 'k', - 'л' => 'l', - 'Ñ™' => 'lj', - 'м' => 'm', - 'н' => 'n', - 'Ñš' => 'nj', - 'о' => 'o', - 'п' => 'p', - 'Ñ€' => 'r', - 'Ñ' => 's', - 'Ñ‚' => 't', - 'Ñ›' => 'c', - 'у' => 'u', - 'Ñ„' => 'f', - 'Ñ…' => 'h', - 'ц' => 'c', - 'ч' => 'c', - 'ÑŸ' => 'dz', - 'ш' => 's', - 'Ð' => 'A', - 'Б' => 'B', - 'Ð’' => 'V', - 'Г' => 'G', - 'Д' => 'D', - 'Ђ' => 'Dj', - 'Е' => 'E', - 'Ж' => 'Z', - 'З' => 'Z', - 'И' => 'I', - 'Ј' => 'J', - 'К' => 'K', - 'Л' => 'L', - 'Љ' => 'Lj', - 'М' => 'M', - 'Ð' => 'N', - 'Њ' => 'Nj', - 'О' => 'O', - 'П' => 'P', - 'Р' => 'R', - 'С' => 'S', - 'Т' => 'T', - 'Ћ' => 'C', - 'У' => 'U', - 'Ф' => 'F', - 'Ð¥' => 'H', - 'Ц' => 'C', - 'Ч' => 'C', - 'Ð' => 'Dz', - 'Ш' => 'S', - 'Å¡' => 's', - 'Ä‘' => 'dj', - 'ž' => 'z', - 'ć' => 'c', - 'Ä' => 'c', - 'Å ' => 'S', - 'Ä' => 'DJ', - 'Ž' => 'Z', - 'Ć' => 'C', - 'ÄŒ' => 'C', - ), - 'swedish' => - array ( - 'Ä' => 'A', - 'Ã…' => 'a', - 'Ö' => 'O', - 'ä' => 'a', - 'Ã¥' => 'a', - 'ö' => 'o', - ), - 'turkish' => - array ( - 'Ç' => 'C', - 'Äž' => 'G', - 'İ' => 'I', - 'Åž' => 'S', - 'Ö' => 'O', - 'Ü' => 'U', - 'ç' => 'c', - 'ÄŸ' => 'g', - 'ı' => 'i', - 'ÅŸ' => 's', - 'ö' => 'o', - 'ü' => 'u', - ), - 'ukrainian' => - array ( - 'Ò' => 'G', - 'І' => 'I', - 'Ї' => 'Ji', - 'Є' => 'Ye', - 'Ò‘' => 'g', - 'Ñ–' => 'i', - 'Ñ—' => 'ji', - 'Ñ”' => 'ye', - ), - 'vietnamese' => - array ( - 'ạ' => 'a', - 'ả' => 'a', - 'ầ' => 'a', - 'ấ' => 'a', - 'ậ' => 'a', - 'ẩ' => 'a', - 'ẫ' => 'a', - 'ằ' => 'a', - 'ắ' => 'a', - 'ặ' => 'a', - 'ẳ' => 'a', - 'ẵ' => 'a', - 'ẹ' => 'e', - 'ẻ' => 'e', - 'ẽ' => 'e', - 'á»' => 'e', - 'ế' => 'e', - 'ệ' => 'e', - 'ể' => 'e', - 'á»…' => 'e', - 'ị' => 'i', - 'ỉ' => 'i', - 'á»' => 'o', - 'á»' => 'o', - 'ồ' => 'o', - 'ố' => 'o', - 'á»™' => 'o', - 'ổ' => 'o', - 'á»—' => 'o', - 'á»' => 'o', - 'á»›' => 'o', - 'ợ' => 'o', - 'ở' => 'o', - 'ỡ' => 'o', - 'ụ' => 'u', - 'á»§' => 'u', - 'ừ' => 'u', - 'ứ' => 'u', - 'á»±' => 'u', - 'á»­' => 'u', - 'ữ' => 'u', - 'ỳ' => 'y', - 'ỵ' => 'y', - 'á»·' => 'y', - 'ỹ' => 'y', - 'Ạ' => 'A', - 'Ả' => 'A', - 'Ầ' => 'A', - 'Ấ' => 'A', - 'Ậ' => 'A', - 'Ẩ' => 'A', - 'Ẫ' => 'A', - 'Ằ' => 'A', - 'Ắ' => 'A', - 'Ặ' => 'A', - 'Ẳ' => 'A', - 'Ẵ' => 'A', - 'Ẹ' => 'E', - 'Ẻ' => 'E', - 'Ẽ' => 'E', - 'Ề' => 'E', - 'Ế' => 'E', - 'Ệ' => 'E', - 'Ể' => 'E', - 'Ễ' => 'E', - 'Ị' => 'I', - 'Ỉ' => 'I', - 'Ọ' => 'O', - 'Ỏ' => 'O', - 'á»’' => 'O', - 'á»' => 'O', - 'Ộ' => 'O', - 'á»”' => 'O', - 'á»–' => 'O', - 'Ờ' => 'O', - 'Ớ' => 'O', - 'Ợ' => 'O', - 'Ở' => 'O', - 'á» ' => 'O', - 'Ụ' => 'U', - 'Ủ' => 'U', - 'Ừ' => 'U', - 'Ứ' => 'U', - 'á»°' => 'U', - 'Ử' => 'U', - 'á»®' => 'U', - 'Ỳ' => 'Y', - 'á»´' => 'Y', - 'á»¶' => 'Y', - 'Ỹ' => 'Y', - ), -)/*INSERT_END*/; - - /** - * @param string $ruleset - * - * @return array - */ - public function getRules($ruleset) - { - return $this->rules[$ruleset]; - } -} diff --git a/vendor/cocur/slugify/src/RuleProvider/FileRuleProvider.php b/vendor/cocur/slugify/src/RuleProvider/FileRuleProvider.php deleted file mode 100644 index 60659337..00000000 --- a/vendor/cocur/slugify/src/RuleProvider/FileRuleProvider.php +++ /dev/null @@ -1,47 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Cocur\Slugify\RuleProvider; - -/** - * FileRuleProvider - * - * @package Cocur\Slugify\RuleProvider - * @author Florian Eckerstorfer - * @copyright 2015 Florian Eckerstorfer - */ -class FileRuleProvider implements RuleProviderInterface -{ - /** - * @var string - */ - protected $directoryName; - - /** - * @param string $directoryName - */ - public function __construct($directoryName) - { - $this->directoryName = $directoryName; - } - - /** - * @param $ruleset - * - * @return array - */ - public function getRules($ruleset) - { - $fileName = $this->directoryName.DIRECTORY_SEPARATOR.$ruleset.'.json'; - - return json_decode(file_get_contents($fileName), true); - } -} diff --git a/vendor/cocur/slugify/src/RuleProvider/RuleProviderInterface.php b/vendor/cocur/slugify/src/RuleProvider/RuleProviderInterface.php deleted file mode 100644 index f5648cc7..00000000 --- a/vendor/cocur/slugify/src/RuleProvider/RuleProviderInterface.php +++ /dev/null @@ -1,29 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Cocur\Slugify\RuleProvider; - -/** - * RuleProviderInterface - * - * @package Cocur\Slugify\RuleProvider - * @author Florian Eckerstorfer - * @copyright 2015 Florian Eckerstorfer - */ -interface RuleProviderInterface -{ - /** - * @param $ruleset - * - * @return array - */ - public function getRules($ruleset); -} diff --git a/vendor/cocur/slugify/src/Slugify.php b/vendor/cocur/slugify/src/Slugify.php deleted file mode 100644 index 9e059d67..00000000 --- a/vendor/cocur/slugify/src/Slugify.php +++ /dev/null @@ -1,180 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Cocur\Slugify; - -use Cocur\Slugify\RuleProvider\DefaultRuleProvider; -use Cocur\Slugify\RuleProvider\RuleProviderInterface; - -/** - * Slugify - * - * @package Cocur\Slugify - * @author Florian Eckerstorfer - * @author Ivo Bathke - * @author Marchenko Alexandr - * @copyright 2012-2015 Florian Eckerstorfer - * @license http://www.opensource.org/licenses/MIT The MIT License - */ -class Slugify implements SlugifyInterface -{ - const LOWERCASE_NUMBERS_DASHES = '/([^A-Za-z0-9]|-)+/'; - - /** - * @var array - */ - protected $rules = []; - - /** - * @var RuleProviderInterface - */ - protected $provider; - - /** - * @var array - */ - protected $options = [ - 'regexp' => self::LOWERCASE_NUMBERS_DASHES, - 'separator' => '-', - 'lowercase' => true, - 'trim' => true, - 'rulesets' => [ - 'default', - // Languages are preferred if they appear later, list is ordered by number of - // websites in that language - // https://en.wikipedia.org/wiki/Languages_used_on_the_Internet#Content_languages_for_websites - 'azerbaijani', - 'burmese', - 'hindi', - 'georgian', - 'norwegian', - 'vietnamese', - 'ukrainian', - 'latvian', - 'finnish', - 'greek', - 'czech', - 'arabic', - 'turkish', - 'polish', - 'german', - 'russian', - 'romanian' - ], - ]; - - /** - * @param array $options - * @param RuleProviderInterface $provider - */ - public function __construct(array $options = [], RuleProviderInterface $provider = null) - { - $this->options = array_merge($this->options, $options); - $this->provider = $provider ? $provider : new DefaultRuleProvider(); - - foreach ($this->options['rulesets'] as $ruleSet) { - $this->activateRuleSet($ruleSet); - } - } - - /** - * Returns the slug-version of the string. - * - * @param string $string String to slugify - * @param string|array|null $options Options - * - * @return string Slugified version of the string - */ - public function slugify($string, $options = null) - { - // BC: the second argument used to be the separator - if (is_string($options)) { - $separator = $options; - $options = []; - $options['separator'] = $separator; - } - - $options = array_merge($this->options, (array) $options); - - // Add a custom ruleset without touching the default rules - if (isset($options['ruleset'])) { - $rules = array_merge($this->rules, $this->provider->getRules($options['ruleset'])); - } else { - $rules = $this->rules; - } - - $string = strtr($string, $rules); - unset($rules); - - if ($options['lowercase']) { - $string = mb_strtolower($string); - } - - $string = preg_replace($options['regexp'], $options['separator'], $string); - - return ($options['trim']) - ? trim($string, $options['separator']) - : $string; - } - - /** - * Adds a custom rule to Slugify. - * - * @param string $character Character - * @param string $replacement Replacement character - * - * @return Slugify - */ - public function addRule($character, $replacement) - { - $this->rules[$character] = $replacement; - - return $this; - } - - /** - * Adds multiple rules to Slugify. - * - * @param array $rules - * - * @return Slugify - */ - public function addRules(array $rules) - { - foreach ($rules as $character => $replacement) { - $this->addRule($character, $replacement); - } - - return $this; - } - - /** - * @param string $ruleSet - * - * @return Slugify - */ - public function activateRuleSet($ruleSet) - { - return $this->addRules($this->provider->getRules($ruleSet)); - } - - /** - * Static method to create new instance of {@see Slugify}. - * - * @param array $options - * - * @return Slugify - */ - public static function create(array $options = []) - { - return new static($options); - } -} diff --git a/vendor/cocur/slugify/src/SlugifyInterface.php b/vendor/cocur/slugify/src/SlugifyInterface.php deleted file mode 100644 index 2160bc16..00000000 --- a/vendor/cocur/slugify/src/SlugifyInterface.php +++ /dev/null @@ -1,36 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Cocur\Slugify; - -/** - * SlugifyInterface - * - * @package org.cocur.slugify - * @author Florian Eckerstorfer - * @author Marchenko Alexandr - * @copyright 2012-2014 Florian Eckerstorfer - * @license http://www.opensource.org/licenses/MIT The MIT License - */ -interface SlugifyInterface -{ - /** - * Return a URL safe version of a string. - * - * @param string $string - * @param string|array|null $options - * - * @return string - * - * @api - */ - public function slugify($string, $options = null); -} diff --git a/vendor/cocur/slugify/tests/Bridge/Laravel/SlugifyProviderTest.php b/vendor/cocur/slugify/tests/Bridge/Laravel/SlugifyProviderTest.php deleted file mode 100644 index f991a3a5..00000000 --- a/vendor/cocur/slugify/tests/Bridge/Laravel/SlugifyProviderTest.php +++ /dev/null @@ -1,66 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Cocur\Slugify\Tests\Bridge\Laravel; - -use Cocur\Slugify\Bridge\Laravel\SlugifyServiceProvider; -use Illuminate\Foundation\Application; - -/** - * SlugifyServiceProviderTest - * - * @category test - * @package cocur/slugify - * @subpackage bridge - * @author Florian Eckerstorfer - * @author Colin Viebrock - * @copyright 2012-2014 Florian Eckerstorfer - * @license http://www.opensource.org/licenses/MIT The MIT License - * @group unit - */ -class SlugifyProviderTest extends \PHPUnit_Framework_TestCase -{ - /** @var Application */ - private $app; - - /** @var SlugifyServiceProvider */ - private $provider; - - protected function setUp() - { - $this->app = new Application(); - $this->provider = new SlugifyServiceProvider($this->app); - } - - /** - * @test - * @covers Cocur\Slugify\Bridge\Laravel\SlugifyServiceProvider::register() - */ - public function registerRegistersTheServiceProvider() - { - $this->provider->register(); - - // the service provider is deferred, so this forces it to load - $this->app->make('slugify'); - - $this->assertArrayHasKey('slugify', $this->app); - $this->assertInstanceOf('Cocur\Slugify\Slugify', $this->app['slugify']); - } - - /** - * @test - * @covers Cocur\Slugify\Bridge\Laravel\SlugifyServiceProvider::provides() - */ - public function containsReturnsTheNameOfThProvider() - { - $this->assertContains('slugify', $this->provider->provides()); - } -} diff --git a/vendor/cocur/slugify/tests/Bridge/Latte/SlugifyHelperTest.php b/vendor/cocur/slugify/tests/Bridge/Latte/SlugifyHelperTest.php deleted file mode 100644 index be61e505..00000000 --- a/vendor/cocur/slugify/tests/Bridge/Latte/SlugifyHelperTest.php +++ /dev/null @@ -1,36 +0,0 @@ - - * @license http://www.opensource.org/licenses/MIT The MIT License - * @group unit - */ -class SlugifyHelperTest extends \PHPUnit_Framework_TestCase -{ - protected function setUp() - { - $this->slugify = m::mock('Cocur\Slugify\SlugifyInterface'); - $this->helper = new SlugifyHelper($this->slugify); - } - - /** - * @test - * @covers Cocur\Slugify\Bridge\Latte\SlugifyHelper::slugify() - */ - public function slugify() - { - $this->slugify->shouldReceive('slugify')->with('hällo wörld', '_')->once()->andReturn('haello_woerld'); - - $this->assertEquals('haello_woerld', $this->helper->slugify('hällo wörld', '_')); - } -} diff --git a/vendor/cocur/slugify/tests/Bridge/League/SlugifyServiceProviderTest.php b/vendor/cocur/slugify/tests/Bridge/League/SlugifyServiceProviderTest.php deleted file mode 100644 index 7ce82519..00000000 --- a/vendor/cocur/slugify/tests/Bridge/League/SlugifyServiceProviderTest.php +++ /dev/null @@ -1,85 +0,0 @@ -addServiceProvider(new SlugifyServiceProvider()); - - $slugify = $container->get(SlugifyInterface::class); - - $this->assertInstanceOf(SlugifyInterface::class, $slugify); - $this->assertAttributeInstanceOf(DefaultRuleProvider::class, 'provider', $slugify); - } - - public function testProvidesSlugifyAsSharedService() - { - $container = new Container(); - - $container->addServiceProvider(new SlugifyServiceProvider()); - - $slugify = $container->get(SlugifyInterface::class); - - $this->assertSame($slugify, $container->get(SlugifyInterface::class)); - } - - public function testProvidesSlugifyUsingSharedConfigurationOptions() - { - $container = new Container(); - - $options = [ - 'lowercase' => false, - ]; - - $container->share('config.slugify.options', $options); - $container->addServiceProvider(new SlugifyServiceProvider()); - - /* @var SlugifyInterface $slugify */ - $slugify = $container->get(SlugifyInterface::class); - - $slug = 'Foo-Bar-Baz'; - - $this->assertSame($slug, $slugify->slugify($slug)); - } - - public function testProvidesSlugifyUsingSharedProvider() - { - $container = new Container(); - - $ruleProvider = $this->getRuleProviderMock(); - - $container->share(RuleProviderInterface::class, $ruleProvider); - $container->addServiceProvider(new SlugifyServiceProvider()); - - $slugify = $container->get(SlugifyInterface::class); - - $this->assertAttributeSame($ruleProvider, 'provider', $slugify); - } - - /** - * @return m\Mock|RuleProviderInterface - */ - private function getRuleProviderMock() - { - $ruleProvider = m::mock(RuleProviderInterface::class); - - $ruleProvider - ->shouldReceive('getRules') - ->withAnyArgs() - ->andReturn([]) - ; - - return $ruleProvider; - } -} diff --git a/vendor/cocur/slugify/tests/Bridge/Nette/SlugifyExtensionTest.php b/vendor/cocur/slugify/tests/Bridge/Nette/SlugifyExtensionTest.php deleted file mode 100644 index 5ee605aa..00000000 --- a/vendor/cocur/slugify/tests/Bridge/Nette/SlugifyExtensionTest.php +++ /dev/null @@ -1,133 +0,0 @@ - - * @license http://www.opensource.org/licenses/MIT The MIT License - * @group unit - */ -class SlugifyExtensionTest extends \PHPUnit_Framework_TestCase -{ - protected function setUp() - { - $this->extension = new SlugifyExtension(); - } - - /** - * @test - * @covers Cocur\Slugify\Bridge\Nette\SlugifyExtension::loadConfiguration() - */ - public function loadConfiguration() - { - $slugify = m::mock('Nette\DI\ServiceDefinition'); - $slugify - ->shouldReceive('setClass') - ->with('Cocur\Slugify\SlugifyInterface') - ->once() - ->andReturn($slugify); - $slugify - ->shouldReceive('setFactory') - ->with('Cocur\Slugify\Slugify') - ->once() - ->andReturn($slugify); - - $helper = m::mock('Nette\DI\ServiceDefinition'); - $helper - ->shouldReceive('setClass') - ->with('Cocur\Slugify\Bridge\Latte\SlugifyHelper') - ->once() - ->andReturn($helper); - $helper - ->shouldReceive('setAutowired') - ->with(false) - ->once() - ->andReturn($helper); - - $builder = m::mock('Nette\DI\ContainerBuilder'); - $builder - ->shouldReceive('addDefinition') - ->with('slugify.slugify') - ->once() - ->andReturn($slugify); - $builder - ->shouldReceive('addDefinition') - ->with('slugify.helper') - ->once() - ->andReturn($helper); - - $compiler = m::mock('Nette\DI\Compiler'); - $compiler - ->shouldReceive('getContainerBuilder') - ->once() - ->andReturn($builder); - - $this->extension->setCompiler($compiler, 'slugify'); - $this->extension->loadConfiguration(); - } - - /** - * @test - * @covers Cocur\Slugify\Bridge\Nette\SlugifyExtension::beforeCompile() - */ - public function beforeCompile() - { - $latteFactory = m::mock('Nette\DI\ServiceDefinition'); - $latteFactory - ->shouldReceive('addSetup') - ->with('addFilter', ['slugify', ['@slugify.helper', 'slugify']]) - ->once() - ->andReturn($latteFactory); - - $latte = m::mock('Nette\DI\ServiceDefinition'); - $latte - ->shouldReceive('addSetup') - ->with('addFilter', ['slugify', ['@slugify.helper', 'slugify']]) - ->once() - ->andReturn($latte); - - $builder = m::mock('Nette\DI\ContainerBuilder'); - $builder - ->shouldReceive('getByType') - ->with('Nette\Bridges\ApplicationLatte\ILatteFactory') - ->once() - ->andReturn('latte.latteFactory'); - $builder - ->shouldReceive('hasDefinition') - ->with('latte.latteFactory') - ->once() - ->andReturn(true); - $builder - ->shouldReceive('getDefinition') - ->with('latte.latteFactory') - ->once() - ->andReturn($latteFactory); - $builder - ->shouldReceive('hasDefinition') - ->with('nette.latte') - ->once() - ->andReturn(true); - $builder - ->shouldReceive('getDefinition') - ->with('nette.latte') - ->once() - ->andReturn($latte); - - $compiler = m::mock('Nette\DI\Compiler'); - $compiler - ->shouldReceive('getContainerBuilder') - ->once() - ->andReturn($builder); - - $this->extension->setCompiler($compiler, 'slugify'); - $this->extension->beforeCompile(); - } -} diff --git a/vendor/cocur/slugify/tests/Bridge/Plum/SlugifyConverterTest.php b/vendor/cocur/slugify/tests/Bridge/Plum/SlugifyConverterTest.php deleted file mode 100644 index f449e401..00000000 --- a/vendor/cocur/slugify/tests/Bridge/Plum/SlugifyConverterTest.php +++ /dev/null @@ -1,53 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Cocur\Slugify\Tests\Bridge\Plum; - -use Cocur\Slugify\Bridge\Plum\SlugifyConverter; -use Mockery; -use PHPUnit_Framework_TestCase; - -/** - * SlugifyConverterTest - * - * @package Cocur\Slugify\Bridge\Plum - * @author Florian Eckerstorfer - * @copyright 2012-2015 Florian Eckerstorfer - * @group unit - */ -class SlugifyConverterTest extends PHPUnit_Framework_TestCase -{ - /** - * @test - * @covers Cocur\Slugify\Bridge\Plum\SlugifyConverter::__construct() - * @covers Cocur\Slugify\Bridge\Plum\SlugifyConverter::convert() - */ - public function convertSlugifiesString() - { - $slugify = Mockery::mock('Cocur\Slugify\SlugifyInterface'); - $slugify->shouldReceive('slugify')->with('Hello World')->once()->andReturn('hello_world'); - $converter = new SlugifyConverter($slugify); - - $this->assertSame('hello_world', $converter->convert('Hello World')); - } - - /** - * @test - * @covers Cocur\Slugify\Bridge\Plum\SlugifyConverter::__construct() - * @covers Cocur\Slugify\Bridge\Plum\SlugifyConverter::convert() - */ - public function constructorCreatesSlugifyIfNoneIsProvided() - { - $converter = new SlugifyConverter(); - - $this->assertSame('hello-world', $converter->convert('Hello World')); - } -} diff --git a/vendor/cocur/slugify/tests/Bridge/Silex/SlugifySilexProviderTest.php b/vendor/cocur/slugify/tests/Bridge/Silex/SlugifySilexProviderTest.php deleted file mode 100644 index 2db5eff5..00000000 --- a/vendor/cocur/slugify/tests/Bridge/Silex/SlugifySilexProviderTest.php +++ /dev/null @@ -1,60 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Cocur\Slugify\Tests\Bridge\Silex; - -use Cocur\Slugify\Bridge\Silex\SlugifyServiceProvider; -use Cocur\Slugify\Bridge\Twig\SlugifyExtension; -use Silex\Application; -use Silex\Provider\TwigServiceProvider; - -/** - * SlugifyServiceProviderTest - * - * @category test - * @package cocur/slugify - * @subpackage bridge - * @author Florian Eckerstorfer - * @copyright 2012-2014 Florian Eckerstorfer - * @license http://www.opensource.org/licenses/MIT The MIT License - * @group unit - */ -class SlugifySilexProviderTest extends \PHPUnit_Framework_TestCase -{ - /** - * @test - * @covers Cocur\Slugify\Bridge\Silex\SlugifyServiceProvider - */ - public function register() - { - // it seems like Application is not mockable. - $app = new Application(); - $app->register(new SlugifyServiceProvider()); - $app->boot(); - - $this->assertArrayHasKey('slugify', $app); - $this->assertArrayHasKey('slugify.provider', $app); - $this->assertArrayHasKey('slugify.options', $app); - $this->assertInstanceOf('Cocur\Slugify\Slugify', $app['slugify']); - } - - /** - * @test - */ - public function registerWithTwig() - { - $app = new Application(); - $app->register(new TwigServiceProvider()); - $app->register(new SlugifyServiceProvider()); - - $this->assertTrue($app['twig']->hasExtension(SlugifyExtension::class)); - } -} diff --git a/vendor/cocur/slugify/tests/Bridge/Symfony/CocurSlugifyBundleTest.php b/vendor/cocur/slugify/tests/Bridge/Symfony/CocurSlugifyBundleTest.php deleted file mode 100644 index ba50eb12..00000000 --- a/vendor/cocur/slugify/tests/Bridge/Symfony/CocurSlugifyBundleTest.php +++ /dev/null @@ -1,40 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Cocur\Slugify\Tests\Bridge\Symfony; - -use Cocur\Slugify\Bridge\Symfony\CocurSlugifyBundle; -use Cocur\Slugify\Bridge\Symfony\CocurSlugifyExtension; - -/** - * CocurSlugifyBundleTest - * - * @category test - * @package cocur/slugify - * @subpackage bridge - * @author Florian Eckerstorfer - * @copyright 2012-2014 Florian Eckerstorfer - * @license http://www.opensource.org/licenses/MIT The MIT License - * @group unit - */ -class CocurSlugifyBundleTest extends \PHPUnit_Framework_TestCase -{ - /** - * @covers Cocur\Slugify\Bridge\Symfony\CocurSlugifyBundle::getContainerExtension() - */ - public function testGetContainerExtension() - { - $bundle = new CocurSlugifyBundle(); - - static::assertInstanceOf(CocurSlugifyExtension::class, $bundle->getContainerExtension()); - } -} - diff --git a/vendor/cocur/slugify/tests/Bridge/Symfony/CocurSlugifyExtensionTest.php b/vendor/cocur/slugify/tests/Bridge/Symfony/CocurSlugifyExtensionTest.php deleted file mode 100644 index b43fcf04..00000000 --- a/vendor/cocur/slugify/tests/Bridge/Symfony/CocurSlugifyExtensionTest.php +++ /dev/null @@ -1,70 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Cocur\Slugify\Tests\Bridge\Symfony; - -use Cocur\Slugify\Bridge\Symfony\CocurSlugifyExtension; -use Mockery as m; - -/** - * CocurSlugifyExtensionTest - * - * @category test - * @package cocur/slugify - * @subpackage bridge - * @author Florian Eckerstorfer - * @copyright 2012-2014 Florian Eckerstorfer - * @license http://www.opensource.org/licenses/MIT The MIT License - * @group unit - */ -class CocurSlugifyExtensionTest extends \PHPUnit_Framework_TestCase -{ - protected function setUp() - { - $this->extension = new CocurSlugifyExtension(); - } - - /** - * @test - * @covers Cocur\Slugify\Bridge\Symfony\CocurSlugifyExtension::load() - */ - public function load() - { - $twigDefinition = m::mock('Symfony\Component\DependencyInjection\Definition'); - $twigDefinition - ->shouldReceive('addTag') - ->with('twig.extension') - ->once() - ->andReturn($twigDefinition); - $twigDefinition - ->shouldReceive('setPublic') - ->with(false) - ->once(); - - $container = m::mock('Symfony\Component\DependencyInjection\ContainerBuilder'); - $container - ->shouldReceive('setDefinition') - ->with('cocur_slugify', m::type('Symfony\Component\DependencyInjection\Definition')) - ->once(); - $container - ->shouldReceive('setDefinition') - ->with('cocur_slugify.twig.slugify', m::type('Symfony\Component\DependencyInjection\Definition')) - ->once() - ->andReturn($twigDefinition); - $container - ->shouldReceive('setAlias') - ->with('slugify', 'cocur_slugify') - ->once(); - - $this->extension->load([], $container); - } -} - diff --git a/vendor/cocur/slugify/tests/Bridge/Symfony/ConfigurationTest.php b/vendor/cocur/slugify/tests/Bridge/Symfony/ConfigurationTest.php deleted file mode 100644 index d7bc1945..00000000 --- a/vendor/cocur/slugify/tests/Bridge/Symfony/ConfigurationTest.php +++ /dev/null @@ -1,55 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Cocur\Slugify\Tests\Bridge\Symfony; - -use Cocur\Slugify\Bridge\Symfony\Configuration; -use Symfony\Component\Config\Definition\Processor; - -class ConfigurationTest extends \PHPUnit_Framework_TestCase -{ - public function testAll() - { - $configs = [ - [ - 'lowercase' => true, - 'separator' => '_', - 'regexp' => 'abcd', - 'rulesets' => ['burmese', 'hindi'] - ], - ]; - - $this->process($configs); - } - - /** - * @expectedException \Symfony\Component\Config\Definition\Exception\InvalidTypeException - */ - public function testLowercaseOnlyAcceptsBoolean() - { - $configs = [['lowercase' => 'abc']]; - $this->process($configs); - } - - /** - * Processes an array of configurations and returns a compiled version. - * - * @param array $configs An array of raw configurations - * - * @return array A normalized array - */ - protected function process($configs) - { - $processor = new Processor(); - - return $processor->processConfiguration(new Configuration(), $configs); - } -} diff --git a/vendor/cocur/slugify/tests/Bridge/Twig/SlugifyExtensionTest.php b/vendor/cocur/slugify/tests/Bridge/Twig/SlugifyExtensionTest.php deleted file mode 100644 index ceaa3c18..00000000 --- a/vendor/cocur/slugify/tests/Bridge/Twig/SlugifyExtensionTest.php +++ /dev/null @@ -1,69 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Cocur\Slugify\Tests\Bridge\Twig; - -use Cocur\Slugify\Bridge\Twig\SlugifyExtension; -use Mockery as m; - - -/** - * SlugifyExtensionTest - * - * @category test - * @package cocur/slugify - * @subpackage bridge - * @author Florian Eckerstorfer - * @copyright 2012-2014 Florian Eckerstorfer - * @license http://www.opensource.org/licenses/MIT The MIT License - * @group unit - */ -class SlugifyExtensionTest extends \PHPUnit_Framework_TestCase -{ - /** - * @var \Cocur\Slugify\SlugifyInterface|\Mockery\MockInterface - */ - protected $slugify; - - /** - * @var SlugifyExtension - */ - protected $extension; - - protected function setUp() - { - $this->slugify = m::mock('Cocur\Slugify\SlugifyInterface'); - $this->extension = new SlugifyExtension($this->slugify); - } - - /** - * @test - * @covers Cocur\Slugify\Bridge\Twig\SlugifyExtension::getFilters() - */ - public function getFilters() - { - $filters = $this->extension->getFilters(); - - $this->assertCount(1, $filters); - $this->assertInstanceOf('\Twig_SimpleFilter', $filters[0]); - } - - /** - * @test - * @covers Cocur\Slugify\Bridge\Twig\SlugifyExtension::slugifyFilter() - */ - public function slugifyFilter() - { - $this->slugify->shouldReceive('slugify')->with('hällo wörld', '_')->once()->andReturn('haello_woerld'); - - $this->assertEquals('haello_woerld', $this->extension->slugifyFilter('hällo wörld', '_')); - } -} diff --git a/vendor/cocur/slugify/tests/Bridge/ZF2/ModuleTest.php b/vendor/cocur/slugify/tests/Bridge/ZF2/ModuleTest.php deleted file mode 100644 index 124fccbf..00000000 --- a/vendor/cocur/slugify/tests/Bridge/ZF2/ModuleTest.php +++ /dev/null @@ -1,49 +0,0 @@ -module = new Module(); - } - - /** - * @test - * @covers Cocur\Slugify\Bridge\ZF2\Module::getServiceConfig() - */ - public function getServiceConfig() - { - $smConfig = $this->module->getServiceConfig(); - $this->assertTrue(is_array($smConfig)); - $this->assertArrayHasKey('factories', $smConfig); - $this->assertArrayHasKey('Cocur\Slugify\Slugify', $smConfig['factories']); - $this->assertArrayHasKey('aliases', $smConfig); - $this->assertArrayHasKey('slugify', $smConfig['aliases']); - } - - /** - * @test - * @covers Cocur\Slugify\Bridge\ZF2\Module::getViewHelperConfig() - */ - public function getViewHelperConfig() - { - $vhConfig = $this->module->getViewHelperConfig(); - $this->assertTrue(is_array($vhConfig)); - $this->assertArrayHasKey('factories', $vhConfig); - $this->assertArrayHasKey('slugify', $vhConfig['factories']); - } -} diff --git a/vendor/cocur/slugify/tests/Bridge/ZF2/SlugifyServiceTest.php b/vendor/cocur/slugify/tests/Bridge/ZF2/SlugifyServiceTest.php deleted file mode 100644 index fa1aaac3..00000000 --- a/vendor/cocur/slugify/tests/Bridge/ZF2/SlugifyServiceTest.php +++ /dev/null @@ -1,69 +0,0 @@ -slugifyService = new SlugifyService(); - } - - /** - * @test - * @covers Cocur\Slugify\Bridge\ZF2\SlugifyService::__invoke() - */ - public function invokeWithoutCustomConfig() - { - $sm = $this->createServiceManagerMock(); - $slugify = call_user_func($this->slugifyService, $sm); - $this->assertInstanceOf('Cocur\Slugify\Slugify', $slugify); - - // Make sure reg exp is default one - $actual = 'Hello My Friend.zip'; - $expected = 'hello-my-friend-zip'; - $this->assertEquals($expected, $slugify->slugify($actual)); - } - - /** - * @test - * @covers Cocur\Slugify\Bridge\ZF2\SlugifyService::__invoke() - */ - public function invokeWithCustomConfig() - { - $sm = $this->createServiceManagerMock([ - Module::CONFIG_KEY => [ - 'options' => ['regexp' => '/([^a-z0-9.]|-)+/'] - ] - ]); - $slugify = call_user_func($this->slugifyService, $sm); - $this->assertInstanceOf('Cocur\Slugify\Slugify', $slugify); - - // Make sure reg exp is the one provided and dots are kept - $actual = 'Hello My Friend.zip'; - $expected = 'hello-my-friend.zip'; - $this->assertEquals($expected, $slugify->slugify($actual)); - } - - protected function createServiceManagerMock(array $config = []) - { - $sm = new ServiceManager(); - $sm->setService('Config', $config); - - return $sm; - } -} diff --git a/vendor/cocur/slugify/tests/Bridge/ZF2/SlugifyViewHelperFactoryTest.php b/vendor/cocur/slugify/tests/Bridge/ZF2/SlugifyViewHelperFactoryTest.php deleted file mode 100644 index e965344c..00000000 --- a/vendor/cocur/slugify/tests/Bridge/ZF2/SlugifyViewHelperFactoryTest.php +++ /dev/null @@ -1,41 +0,0 @@ -factory = new SlugifyViewHelperFactory(); - } - - /** - * @test - * @covers Cocur\Slugify\Bridge\ZF2\SlugifyViewHelperFactory::__invoke() - */ - public function createService() - { - $sm = new ServiceManager(); - $sm->setService('Cocur\Slugify\Slugify', new Slugify()); - $vhm = new HelperPluginManager(); - $vhm->setServiceLocator($sm); - - $viewHelper = call_user_func($this->factory, $vhm); - $this->assertInstanceOf('Cocur\Slugify\Bridge\ZF2\SlugifyViewHelper', $viewHelper); - } -} diff --git a/vendor/cocur/slugify/tests/Bridge/ZF2/SlugifyViewHelperTest.php b/vendor/cocur/slugify/tests/Bridge/ZF2/SlugifyViewHelperTest.php deleted file mode 100644 index 4f411edd..00000000 --- a/vendor/cocur/slugify/tests/Bridge/ZF2/SlugifyViewHelperTest.php +++ /dev/null @@ -1,46 +0,0 @@ -slugify = new Slugify(); - $this->viewHelper = new SlugifyViewHelper($this->slugify); - } - - /** - * @test - * @covers Cocur\Slugify\Bridge\ZF2\SlugifyViewHelper::__invoke() - */ - public function invoke() - { - $actual = 'Hällo Wörld'; - $expected = call_user_func($this->viewHelper, $actual); - $this->assertEquals($expected, $this->slugify->slugify($actual)); - - $expected = call_user_func($this->viewHelper, $actual, '_'); - $this->assertEquals($expected, $this->slugify->slugify($actual, '_')); - } -} diff --git a/vendor/cocur/slugify/tests/RuleProvider/FileRuleProviderTest.php b/vendor/cocur/slugify/tests/RuleProvider/FileRuleProviderTest.php deleted file mode 100644 index 03b8bd76..00000000 --- a/vendor/cocur/slugify/tests/RuleProvider/FileRuleProviderTest.php +++ /dev/null @@ -1,45 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Cocur\Slugify\Tests\RuleProvider; - -use Cocur\Slugify\RuleProvider\FileRuleProvider; -use org\bovigo\vfs\vfsStream; -use PHPUnit_Framework_TestCase; - -/** - * FileRuleProviderTest - * - * @package Cocur\Slugify\RuleProvider - * @author Florian Eckerstorfer - * @copyright 2015 Florian Eckerstorfer - * @group unit - */ -class FileRuleProviderTest extends PHPUnit_Framework_TestCase -{ - /** - * @test - * @covers Cocur\Slugify\RuleProvider\FileRuleProvider::__construct() - * @covers Cocur\Slugify\RuleProvider\FileRuleProvider::getRules() - */ - public function getRulesReturnsRulesReadFromJsonFile() - { - vfsStream::setup('fixtures', null, [ - 'german.json' => '{"ä": "a"}', - 'austrian.json' => '{"ß": "sz"}', - ]); - - $provider = new FileRuleProvider(vfsStream::url('fixtures')); - - $this->assertEquals(['ä' => 'a'], $provider->getRules('german')); - $this->assertEquals(['ß' => 'sz'], $provider->getRules('austrian')); - } -} diff --git a/vendor/cocur/slugify/tests/SlugifyTest.php b/vendor/cocur/slugify/tests/SlugifyTest.php deleted file mode 100644 index 69dbe8ae..00000000 --- a/vendor/cocur/slugify/tests/SlugifyTest.php +++ /dev/null @@ -1,269 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Cocur\Slugify\Tests; - -use Cocur\Slugify\Slugify; -use Mockery; - -/** - * SlugifyTest - * - * @category test - * @package org.cocur.slugify - * @author Florian Eckerstorfer - * @author Ivo Bathke - * @author Marchenko Alexandr - * @copyright 2012-2014 Florian Eckerstorfer - * @license http://www.opensource.org/licenses/MIT The MIT License - */ -class SlugifyTest extends \PHPUnit_Framework_TestCase -{ - /** - * @var Slugify - */ - private $slugify; - - /** - * @var \Cocur\Slugify\RuleProvider\RuleProviderInterface|\Mockery\MockInterface - */ - private $provider; - - protected function setUp() - { - $this->provider = Mockery::mock('\Cocur\Slugify\RuleProvider\RuleProviderInterface'); - $this->provider->shouldReceive('getRules')->andReturn([]); - - $this->slugify = new Slugify([], $this->provider); - } - - /** - * @test - * @dataProvider defaultRuleProvider - * @covers Cocur\Slugify\Slugify::slugify() - */ - public function slugifyReturnsSlugifiedStringUsingDefaultProvider($string, $result) - { - $slugify = new Slugify(); - - $this->assertEquals($result, $slugify->slugify($string)); - } - - /** - * @test - * @covers Cocur\Slugify\Slugify::addRule() - * @covers Cocur\Slugify\Slugify::slugify() - */ - public function addRuleAddsRule() - { - $this->assertInstanceOf( - 'Cocur\Slugify\Slugify', - $this->slugify->addRule('X', 'y') - ); - $this->assertEquals('y', $this->slugify->slugify('X')); - } - - /** - * @test - * @covers Cocur\Slugify\Slugify::addRules() - * @covers Cocur\Slugify\Slugify::slugify() - */ - public function addRulesAddsMultipleRules() - { - $this->assertInstanceOf( - 'Cocur\Slugify\Slugify', - $this->slugify->addRules(['x' => 'y', 'a' => 'b']) - ); - $this->assertEquals('yb', $this->slugify->slugify('xa')); - } - - /** - * @test - * @covers Cocur\Slugify\Slugify::activateRuleset() - */ - public function activateRulesetActivatesTheGivenRuleset() - { - $provider = Mockery::mock('\Cocur\Slugify\RuleProvider\RuleProviderInterface'); - $provider->shouldReceive('getRules')->with('esperanto')->once()->andReturn(['ĉ' => 'cx']); - - $slugify = new Slugify(['rulesets' => []], $provider); - $this->assertInstanceOf( - 'Cocur\Slugify\Slugify', - $slugify->activateRuleset('esperanto') - ); - - $this->assertEquals('sercxi', $slugify->slugify('serĉi')); - } - - /** - * @test - * @covers Cocur\Slugify\Slugify::create() - */ - public function createReturnsAnInstance() - { - $this->assertInstanceOf('Cocur\\Slugify\\SlugifyInterface', Slugify::create()); - } - - /** - * @test - * @covers Cocur\Slugify\Slugify::__construct() - */ - public function constructWithOtherRegexp() - { - $this->slugify = new Slugify(['regexp' => '/([^a-z0-9.]|-)+/']); - - $this->assertEquals('file-name.tar.gz', $this->slugify->slugify('File Name.tar.gz')); - } - - /** - * @test - * @covers Cocur\Slugify\Slugify::__construct() - * @covers Cocur\Slugify\Slugify::slugify() - */ - public function doNotConvertToLowercase() - { - $actual = 'File Name'; - $expected = 'File-Name'; - - $this->slugify = new Slugify(['lowercase' => false]); - $this->assertEquals($expected, $this->slugify->slugify($actual)); - } - - /** - * @test - * @dataProvider customRulesProvider - */ - public function customRules($rule, $string, $result) - { - $slugify = new Slugify(); - $slugify->activateRuleSet($rule); - - $this->assertSame($result, $slugify->slugify($string)); - } - - public function customRulesProvider() - { - return [ - ['azerbaijani', 'əöüğşçı', 'eougsci'], - ['azerbaijani', 'FÉ™rhad SÉ™fÉ™rov', 'ferhad-seferov'], - ['croatian', 'ÄŒ Ć Ž Å  Ä Ä Ä‡ ž Å¡ Ä‘', 'c-c-z-s-dj-c-c-z-s-dj'], - ['danish', 'Æ æ Ø ø Ã… Ã¥ É é', 'ae-ae-oe-oe-aa-aa-e-e'], - ['romanian', 'ă î â ÅŸ È™ Å£ È› Ä‚ ÃŽ  Ş Ș Å¢ Èš', 'a-i-a-s-s-t-t-a-i-a-s-s-t-t'], - ['serbian', 'РБ Ð’ Г Д Ђ Е Ж З И Ј К Л Љ М РЊ О П Р С Т Ћ У Ф Ð¥ Ц Ч РШ а б в г д Ñ’ е ж з и ј к л Ñ™ м н Ñš о п Ñ€ Ñ Ñ‚ Ñ› у Ñ„ Ñ… ц ч ÑŸ ш Å  Ä Å½ Ć ÄŒ Å¡ Ä‘ ž ć Ä', 'a-b-v-g-d-dj-e-z-z-i-j-k-l-lj-m-n-nj-o-p-r-s-t-c-u-f-h-c-c-dz-s-a-b-v-g-d-dj-e-z-z-i-j-k-l-lj-m-n-nj-o-p-r-s-t-c-u-f-h-c-c-dz-s-s-dj-z-c-c-s-dj-z-c-c'], - ['lithuanian', 'Ä„ ÄŒ Ę Ä– Ä® Å  Ų Ū Ž Ä… Ä Ä™ Ä— į Å¡ ų Å« ž', 'a-c-e-e-i-s-u-u-z-a-c-e-e-i-s-u-u-z'], - ['estonian', 'Å  Ž Õ Ä Ö Ü Å¡ ž õ ä ö ü', 's-z-o-a-o-u-s-z-o-a-o-u'], - ['hungarian', 'à É à Ó Ö ŠÚ Ü Ű á é í ó ö Å‘ ú ü ű', 'a-e-i-o-o-o-u-u-u-a-e-i-o-o-o-u-u-u'], - ['macedonian', 'Ѓезвето беше полно Ñо црно кафе. ', 'gjezveto-beshe-polno-so-crno-kafe'], - ['chinese', '活动日起', 'huodongriqi'], - ]; - } - - /** - * @test - * @covers Cocur\Slugify\Slugify::__construct() - * @covers Cocur\Slugify\Slugify::slugify() - */ - public function slugifyDefaultsToSeparatorOption() - { - $actual = 'file name'; - $expected = 'file__name'; - - $this->slugify = new Slugify(['separator' => '__']); - $this->assertEquals($expected, $this->slugify->slugify($actual)); - } - - /** - * @test - * @covers Cocur\Slugify\Slugify::__construct() - * @covers Cocur\Slugify\Slugify::slugify() - */ - public function slugifyHonorsSeparatorArgument() - { - $actual = 'file name'; - $expected = 'file__name'; - - $this->slugify = new Slugify(['separator' => 'dummy']); - $this->assertEquals($expected, $this->slugify->slugify($actual, '__')); - } - - /** - * @test - * @covers Cocur\Slugify\Slugify::slugify() - */ - public function slugifyOptionsArray() - { - $this->assertEquals('file-name', $this->slugify->slugify('file name')); - $this->assertEquals('file+name', $this->slugify->slugify('file name', ['separator' => '+'])); - - $this->assertEquals('name-1', $this->slugify->slugify('name(1)')); - $this->assertEquals('name(1)', $this->slugify->slugify('name(1)', ['regexp' => '/([^a-z0-9.()]|-)+/'])); - - $this->assertEquals('file-name', $this->slugify->slugify('FILE NAME')); - $this->assertEquals('FILE-NAME', $this->slugify->slugify('FILE NAME', ['lowercase' => false])); - - $this->assertEquals('file-name', $this->slugify->slugify('file name ')); - $this->assertEquals('file-name-', $this->slugify->slugify('file name ', ['trim' => false])); - } - - /** - * @test - * @covers Cocur\Slugify\Slugify::slugify() - */ - public function slugifyCustomRuleSet() - { - $slugify = new Slugify(); - - $this->assertSame('fur', $slugify->slugify('für', ['ruleset' => 'turkish'])); - $this->assertSame('fuer', $slugify->slugify('für')); - } - - public function defaultRuleProvider() - { - return [ - [' a b ', 'a-b'], - ['Hello', 'hello'], - ['Hello World', 'hello-world'], - ['Привет мир', 'privet-mir'], - ['Привіт Ñвіт', 'privit-svit'], - ['Hello: World', 'hello-world'], - ['H+e#l1l--o/W§o r.l:d)', 'h-e-l1l-o-w-o-r-l-d'], - [': World', 'world'], - ['Hello World!', 'hello-world'], - ['Ä ä Ö ö Ü ü ß', 'ae-ae-oe-oe-ue-ue-ss'], - ['à À á à É È é è Ó Ã’ ó ò Ñ ñ Ú Ù ú ù', 'a-a-a-a-e-e-e-e-o-o-o-o-n-n-u-u-u-u'], - [' â Ê ê Ô ô Û û', 'a-a-e-e-o-o-u-u'], - [' â Ê ê Ô ô Û 1', 'a-a-e-e-o-o-u-1'], - ['°¹²³â´âµâ¶â·â¸â¹@â‚€â‚₂₃₄₅₆₇₈₉', '0123456789at0123456789'], - ['Mórë thÃ¥n wørds', 'more-thaan-woerds'], - ['Блоґ їжачка', 'blog-jizhachka'], - ['фильм', 'film'], - ['драма', 'drama'], - ['ΎπαÏξη Αυτής η ΣκουληκομυÏμηγκότÏυπα', 'iparxi-autis-i-skoulikomirmigkotripa'], - ['Français Å’uf où à', 'francais-oeuf-ou-a'], - ['هذه هي اللغة العربية', 'hthh-hy-llgh-laarby'], - ['مرحبا العالم', 'mrhb-laa-lm'], - ['Één jaar', 'een-jaar'], - ['tiếng việt rất khó', 'tieng-viet-rat-kho'], - ['Nguyá»…n Äăng Khoa', 'nguyen-dang-khoa'], - ['နှစ်သစ်ကူးá€á€½á€„် သá€á€¹á€á€á€«á€á€½á€± စိá€á€ºá€á€»á€™á€ºá€¸á€žá€¬ ကိုယ်ကျန်းမာá ကောင်းá€á€¼á€„်း အနန္á€á€”ှင့် ပြည့်စုံကြပါစေ', 'nhitthitkutwin-thttwatwe-seikkhyaantha-koekyaanmaywae-kaungkhyin-anntnhin-pyisonkypase'], - ['Zażółć żółciÄ… gęślÄ… jaźń', 'zazolc-zolcia-gesla-jazn'], - ['Mężny bÄ…dź chroÅ„ puÅ‚k twój i sześć flag', 'mezny-badz-chron-pulk-twoj-i-szesc-flag'], - ['ერთი áƒáƒ áƒ˜ სáƒáƒ›áƒ˜ áƒáƒ—ხი ხუთი', 'erti-ori-sami-otkhi-khuti'], - ['अ ऒ न द', 'a-oii-na-tha'], - ['Æ Ø Ã… æ ø Ã¥', 'ae-oe-aa-ae-oe-aa'], - [str_repeat('Übergrößenträger', 1000), str_repeat('uebergroessentraeger', 1000)], - [str_repeat('my🎉', 5000), substr(str_repeat('my-', 5000), 0, -1)], - [str_repeat('hi🇦🇹', 5000), substr(str_repeat('hi-', 5000), 0, -1)], - ['ÄŒ Ć Ž Å  Ä Ä Ä‡ ž Å¡ Ä‘', 'c-c-z-s-d-c-c-z-s-d'], - ['Ä„ ÄŒ Ę Ä– Ä® Å  Ų Ū Ž Ä… Ä Ä™ Ä— į Å¡ ų Å« ž', 'a-c-e-e-i-s-u-u-z-a-c-e-e-i-s-u-u-z'], - ]; - } -} diff --git a/vendor/composer/ClassLoader.php b/vendor/composer/ClassLoader.php deleted file mode 100644 index 2c72175e..00000000 --- a/vendor/composer/ClassLoader.php +++ /dev/null @@ -1,445 +0,0 @@ - - * Jordi Boggiano - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Composer\Autoload; - -/** - * ClassLoader implements a PSR-0, PSR-4 and classmap class loader. - * - * $loader = new \Composer\Autoload\ClassLoader(); - * - * // register classes with namespaces - * $loader->add('Symfony\Component', __DIR__.'/component'); - * $loader->add('Symfony', __DIR__.'/framework'); - * - * // activate the autoloader - * $loader->register(); - * - * // to enable searching the include path (eg. for PEAR packages) - * $loader->setUseIncludePath(true); - * - * In this example, if you try to use a class in the Symfony\Component - * namespace or one of its children (Symfony\Component\Console for instance), - * the autoloader will first look for the class under the component/ - * directory, and it will then fallback to the framework/ directory if not - * found before giving up. - * - * This class is loosely based on the Symfony UniversalClassLoader. - * - * @author Fabien Potencier - * @author Jordi Boggiano - * @see http://www.php-fig.org/psr/psr-0/ - * @see http://www.php-fig.org/psr/psr-4/ - */ -class ClassLoader -{ - // PSR-4 - private $prefixLengthsPsr4 = array(); - private $prefixDirsPsr4 = array(); - private $fallbackDirsPsr4 = array(); - - // PSR-0 - private $prefixesPsr0 = array(); - private $fallbackDirsPsr0 = array(); - - private $useIncludePath = false; - private $classMap = array(); - private $classMapAuthoritative = false; - private $missingClasses = array(); - private $apcuPrefix; - - public function getPrefixes() - { - if (!empty($this->prefixesPsr0)) { - return call_user_func_array('array_merge', $this->prefixesPsr0); - } - - return array(); - } - - public function getPrefixesPsr4() - { - return $this->prefixDirsPsr4; - } - - public function getFallbackDirs() - { - return $this->fallbackDirsPsr0; - } - - public function getFallbackDirsPsr4() - { - return $this->fallbackDirsPsr4; - } - - public function getClassMap() - { - return $this->classMap; - } - - /** - * @param array $classMap Class to filename map - */ - public function addClassMap(array $classMap) - { - if ($this->classMap) { - $this->classMap = array_merge($this->classMap, $classMap); - } else { - $this->classMap = $classMap; - } - } - - /** - * Registers a set of PSR-0 directories for a given prefix, either - * appending or prepending to the ones previously set for this prefix. - * - * @param string $prefix The prefix - * @param array|string $paths The PSR-0 root directories - * @param bool $prepend Whether to prepend the directories - */ - public function add($prefix, $paths, $prepend = false) - { - if (!$prefix) { - if ($prepend) { - $this->fallbackDirsPsr0 = array_merge( - (array) $paths, - $this->fallbackDirsPsr0 - ); - } else { - $this->fallbackDirsPsr0 = array_merge( - $this->fallbackDirsPsr0, - (array) $paths - ); - } - - return; - } - - $first = $prefix[0]; - if (!isset($this->prefixesPsr0[$first][$prefix])) { - $this->prefixesPsr0[$first][$prefix] = (array) $paths; - - return; - } - if ($prepend) { - $this->prefixesPsr0[$first][$prefix] = array_merge( - (array) $paths, - $this->prefixesPsr0[$first][$prefix] - ); - } else { - $this->prefixesPsr0[$first][$prefix] = array_merge( - $this->prefixesPsr0[$first][$prefix], - (array) $paths - ); - } - } - - /** - * Registers a set of PSR-4 directories for a given namespace, either - * appending or prepending to the ones previously set for this namespace. - * - * @param string $prefix The prefix/namespace, with trailing '\\' - * @param array|string $paths The PSR-4 base directories - * @param bool $prepend Whether to prepend the directories - * - * @throws \InvalidArgumentException - */ - public function addPsr4($prefix, $paths, $prepend = false) - { - if (!$prefix) { - // Register directories for the root namespace. - if ($prepend) { - $this->fallbackDirsPsr4 = array_merge( - (array) $paths, - $this->fallbackDirsPsr4 - ); - } else { - $this->fallbackDirsPsr4 = array_merge( - $this->fallbackDirsPsr4, - (array) $paths - ); - } - } elseif (!isset($this->prefixDirsPsr4[$prefix])) { - // Register directories for a new namespace. - $length = strlen($prefix); - if ('\\' !== $prefix[$length - 1]) { - throw new \InvalidArgumentException("A non-empty PSR-4 prefix must end with a namespace separator."); - } - $this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length; - $this->prefixDirsPsr4[$prefix] = (array) $paths; - } elseif ($prepend) { - // Prepend directories for an already registered namespace. - $this->prefixDirsPsr4[$prefix] = array_merge( - (array) $paths, - $this->prefixDirsPsr4[$prefix] - ); - } else { - // Append directories for an already registered namespace. - $this->prefixDirsPsr4[$prefix] = array_merge( - $this->prefixDirsPsr4[$prefix], - (array) $paths - ); - } - } - - /** - * Registers a set of PSR-0 directories for a given prefix, - * replacing any others previously set for this prefix. - * - * @param string $prefix The prefix - * @param array|string $paths The PSR-0 base directories - */ - public function set($prefix, $paths) - { - if (!$prefix) { - $this->fallbackDirsPsr0 = (array) $paths; - } else { - $this->prefixesPsr0[$prefix[0]][$prefix] = (array) $paths; - } - } - - /** - * Registers a set of PSR-4 directories for a given namespace, - * replacing any others previously set for this namespace. - * - * @param string $prefix The prefix/namespace, with trailing '\\' - * @param array|string $paths The PSR-4 base directories - * - * @throws \InvalidArgumentException - */ - public function setPsr4($prefix, $paths) - { - if (!$prefix) { - $this->fallbackDirsPsr4 = (array) $paths; - } else { - $length = strlen($prefix); - if ('\\' !== $prefix[$length - 1]) { - throw new \InvalidArgumentException("A non-empty PSR-4 prefix must end with a namespace separator."); - } - $this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length; - $this->prefixDirsPsr4[$prefix] = (array) $paths; - } - } - - /** - * Turns on searching the include path for class files. - * - * @param bool $useIncludePath - */ - public function setUseIncludePath($useIncludePath) - { - $this->useIncludePath = $useIncludePath; - } - - /** - * Can be used to check if the autoloader uses the include path to check - * for classes. - * - * @return bool - */ - public function getUseIncludePath() - { - return $this->useIncludePath; - } - - /** - * Turns off searching the prefix and fallback directories for classes - * that have not been registered with the class map. - * - * @param bool $classMapAuthoritative - */ - public function setClassMapAuthoritative($classMapAuthoritative) - { - $this->classMapAuthoritative = $classMapAuthoritative; - } - - /** - * Should class lookup fail if not found in the current class map? - * - * @return bool - */ - public function isClassMapAuthoritative() - { - return $this->classMapAuthoritative; - } - - /** - * APCu prefix to use to cache found/not-found classes, if the extension is enabled. - * - * @param string|null $apcuPrefix - */ - public function setApcuPrefix($apcuPrefix) - { - $this->apcuPrefix = function_exists('apcu_fetch') && ini_get('apc.enabled') ? $apcuPrefix : null; - } - - /** - * The APCu prefix in use, or null if APCu caching is not enabled. - * - * @return string|null - */ - public function getApcuPrefix() - { - return $this->apcuPrefix; - } - - /** - * Registers this instance as an autoloader. - * - * @param bool $prepend Whether to prepend the autoloader or not - */ - public function register($prepend = false) - { - spl_autoload_register(array($this, 'loadClass'), true, $prepend); - } - - /** - * Unregisters this instance as an autoloader. - */ - public function unregister() - { - spl_autoload_unregister(array($this, 'loadClass')); - } - - /** - * Loads the given class or interface. - * - * @param string $class The name of the class - * @return bool|null True if loaded, null otherwise - */ - public function loadClass($class) - { - if ($file = $this->findFile($class)) { - includeFile($file); - - return true; - } - } - - /** - * Finds the path to the file where the class is defined. - * - * @param string $class The name of the class - * - * @return string|false The path if found, false otherwise - */ - public function findFile($class) - { - // class map lookup - if (isset($this->classMap[$class])) { - return $this->classMap[$class]; - } - if ($this->classMapAuthoritative || isset($this->missingClasses[$class])) { - return false; - } - if (null !== $this->apcuPrefix) { - $file = apcu_fetch($this->apcuPrefix.$class, $hit); - if ($hit) { - return $file; - } - } - - $file = $this->findFileWithExtension($class, '.php'); - - // Search for Hack files if we are running on HHVM - if (false === $file && defined('HHVM_VERSION')) { - $file = $this->findFileWithExtension($class, '.hh'); - } - - if (null !== $this->apcuPrefix) { - apcu_add($this->apcuPrefix.$class, $file); - } - - if (false === $file) { - // Remember that this class does not exist. - $this->missingClasses[$class] = true; - } - - return $file; - } - - private function findFileWithExtension($class, $ext) - { - // PSR-4 lookup - $logicalPathPsr4 = strtr($class, '\\', DIRECTORY_SEPARATOR) . $ext; - - $first = $class[0]; - if (isset($this->prefixLengthsPsr4[$first])) { - $subPath = $class; - while (false !== $lastPos = strrpos($subPath, '\\')) { - $subPath = substr($subPath, 0, $lastPos); - $search = $subPath.'\\'; - if (isset($this->prefixDirsPsr4[$search])) { - foreach ($this->prefixDirsPsr4[$search] as $dir) { - $length = $this->prefixLengthsPsr4[$first][$search]; - if (file_exists($file = $dir . DIRECTORY_SEPARATOR . substr($logicalPathPsr4, $length))) { - return $file; - } - } - } - } - } - - // PSR-4 fallback dirs - foreach ($this->fallbackDirsPsr4 as $dir) { - if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr4)) { - return $file; - } - } - - // PSR-0 lookup - if (false !== $pos = strrpos($class, '\\')) { - // namespaced class name - $logicalPathPsr0 = substr($logicalPathPsr4, 0, $pos + 1) - . strtr(substr($logicalPathPsr4, $pos + 1), '_', DIRECTORY_SEPARATOR); - } else { - // PEAR-like class name - $logicalPathPsr0 = strtr($class, '_', DIRECTORY_SEPARATOR) . $ext; - } - - if (isset($this->prefixesPsr0[$first])) { - foreach ($this->prefixesPsr0[$first] as $prefix => $dirs) { - if (0 === strpos($class, $prefix)) { - foreach ($dirs as $dir) { - if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) { - return $file; - } - } - } - } - } - - // PSR-0 fallback dirs - foreach ($this->fallbackDirsPsr0 as $dir) { - if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) { - return $file; - } - } - - // PSR-0 include paths. - if ($this->useIncludePath && $file = stream_resolve_include_path($logicalPathPsr0)) { - return $file; - } - - return false; - } -} - -/** - * Scope isolated include. - * - * Prevents access to $this/self from included files. - */ -function includeFile($file) -{ - include $file; -} diff --git a/vendor/composer/LICENSE b/vendor/composer/LICENSE deleted file mode 100644 index f27399a0..00000000 --- a/vendor/composer/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ - -Copyright (c) Nils Adermann, Jordi Boggiano - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is furnished -to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. - diff --git a/vendor/composer/autoload_classmap.php b/vendor/composer/autoload_classmap.php deleted file mode 100644 index 6438962f..00000000 --- a/vendor/composer/autoload_classmap.php +++ /dev/null @@ -1,3937 +0,0 @@ - $baseDir . '/app/BreakingNews.php', - 'App\\Console\\Commands\\DebugTest' => $baseDir . '/app/Console/Commands/DebugTest.php', - 'App\\Console\\Commands\\ImportData' => $baseDir . '/app/Console/Commands/ImportData.php', - 'App\\Console\\Commands\\PublishNotify' => $baseDir . '/app/Console/Commands/PublishNotify.php', - 'App\\Console\\Commands\\PublishSocialMedia' => $baseDir . '/app/Console/Commands/PublishSocialMedia.php', - 'App\\Console\\Commands\\PublishStadtanzeiger' => $baseDir . '/app/Console/Commands/PublishStadtanzeiger.php', - 'App\\Console\\Commands\\QueueCheckup' => $baseDir . '/app/Console/Commands/QueueCheckup.php', - 'App\\Console\\Kernel' => $baseDir . '/app/Console/Kernel.php', - 'App\\Exceptions\\Handler' => $baseDir . '/app/Exceptions/Handler.php', - 'App\\Helpers\\AccessHelper' => $baseDir . '/app/Helpers/AccessHelper.php', - 'App\\Helpers\\BreadcrumbHelper' => $baseDir . '/app/Helpers/BreadcrumbHelper.php', - 'App\\Helpers\\DateHelper' => $baseDir . '/app/Helpers/DateHelper.php', - 'App\\Helpers\\MenuHelper' => $baseDir . '/app/Helpers/MenuHelper.php', - 'App\\Helpers\\MigrationHelper' => $baseDir . '/app/Helpers/MigrationHelper.php', - 'App\\Helpers\\PostHelper' => $baseDir . '/app/Helpers/PostHelper.php', - 'App\\Helpers\\PublishHelper' => $baseDir . '/app/Helpers/PublishHelper.php', - 'App\\Helpers\\QuickLoginHelper' => $baseDir . '/app/Helpers/QuickLoginHelper.php', - 'App\\Helpers\\StringHelper' => $baseDir . '/app/Helpers/StringHelper.php', - 'App\\Helpers\\TagHelper' => $baseDir . '/app/Helpers/TagHelper.php', - 'App\\Helpers\\URLHelper' => $baseDir . '/app/Helpers/URLHelper.php', - 'App\\Helpers\\WizardHelper' => $baseDir . '/app/Helpers/WizardHelper.php', - 'App\\Http\\Controllers\\ArticleController' => $baseDir . '/app/Http/Controllers/ArticleController.php', - 'App\\Http\\Controllers\\Auth\\ForgotPasswordController' => $baseDir . '/app/Http/Controllers/Auth/ForgotPasswordController.php', - 'App\\Http\\Controllers\\Auth\\LoginController' => $baseDir . '/app/Http/Controllers/Auth/LoginController.php', - 'App\\Http\\Controllers\\Auth\\RegisterController' => $baseDir . '/app/Http/Controllers/Auth/RegisterController.php', - 'App\\Http\\Controllers\\Auth\\ResetPasswordController' => $baseDir . '/app/Http/Controllers/Auth/ResetPasswordController.php', - 'App\\Http\\Controllers\\ContactController' => $baseDir . '/app/Http/Controllers/ContactController.php', - 'App\\Http\\Controllers\\Controller' => $baseDir . '/app/Http/Controllers/Controller.php', - 'App\\Http\\Controllers\\DashboardController' => $baseDir . '/app/Http/Controllers/DashboardController.php', - 'App\\Http\\Controllers\\DepartmentController' => $baseDir . '/app/Http/Controllers/DepartmentController.php', - 'App\\Http\\Controllers\\DocumentController' => $baseDir . '/app/Http/Controllers/DocumentController.php', - 'App\\Http\\Controllers\\EventController' => $baseDir . '/app/Http/Controllers/EventController.php', - 'App\\Http\\Controllers\\ExtendedController' => $baseDir . '/app/Http/Controllers/ExtendedController.php', - 'App\\Http\\Controllers\\HomeController' => $baseDir . '/app/Http/Controllers/HomeController.php', - 'App\\Http\\Controllers\\InstanceController' => $baseDir . '/app/Http/Controllers/InstanceController.php', - 'App\\Http\\Controllers\\LandingController' => $baseDir . '/app/Http/Controllers/LandingController.php', - 'App\\Http\\Controllers\\MemberController' => $baseDir . '/app/Http/Controllers/MemberController.php', - 'App\\Http\\Controllers\\MembertypeDepartmentController' => $baseDir . '/app/Http/Controllers/MembertypeDepartmentController.php', - 'App\\Http\\Controllers\\MembertypeTotalController' => $baseDir . '/app/Http/Controllers/MembertypeTotalController.php', - 'App\\Http\\Controllers\\MessageController' => $baseDir . '/app/Http/Controllers/MessageController.php', - 'App\\Http\\Controllers\\MessageType' => $baseDir . '/app/Http/Controllers/ExtendedController.php', - 'App\\Http\\Controllers\\OperationController' => $baseDir . '/app/Http/Controllers/OperationController.php', - 'App\\Http\\Controllers\\OperationtypeController' => $baseDir . '/app/Http/Controllers/OperationtypeController.php', - 'App\\Http\\Controllers\\PageCategoryController' => $baseDir . '/app/Http/Controllers/PageCategoryController.php', - 'App\\Http\\Controllers\\PageController' => $baseDir . '/app/Http/Controllers/PageController.php', - 'App\\Http\\Controllers\\PermissionController' => $baseDir . '/app/Http/Controllers/PermissionController.php', - 'App\\Http\\Controllers\\PostController' => $baseDir . '/app/Http/Controllers/PostController.php', - 'App\\Http\\Controllers\\QuickLoginController' => $baseDir . '/app/Http/Controllers/QuickLoginController.php', - 'App\\Http\\Controllers\\RoleController' => $baseDir . '/app/Http/Controllers/RoleController.php', - 'App\\Http\\Controllers\\ServiceController' => $baseDir . '/app/Http/Controllers/ServiceController.php', - 'App\\Http\\Controllers\\ServicetypeController' => $baseDir . '/app/Http/Controllers/ServicetypeController.php', - 'App\\Http\\Controllers\\TagController' => $baseDir . '/app/Http/Controllers/TagController.php', - 'App\\Http\\Controllers\\UserController' => $baseDir . '/app/Http/Controllers/UserController.php', - 'App\\Http\\Controllers\\VehicleController' => $baseDir . '/app/Http/Controllers/VehicleController.php', - 'App\\Http\\Kernel' => $baseDir . '/app/Http/Kernel.php', - 'App\\Http\\Middleware\\Access\\AdminMiddleware' => $baseDir . '/app/Http/Middleware/Access/AdminMiddleware.php', - 'App\\Http\\Middleware\\Access\\ArticleMiddleware' => $baseDir . '/app/Http/Middleware/Access/ArticleMiddleware.php', - 'App\\Http\\Middleware\\Access\\BaseAccess' => $baseDir . '/app/Http/Middleware/Access/BaseAccess.php', - 'App\\Http\\Middleware\\Access\\ContactMiddleware' => $baseDir . '/app/Http/Middleware/Access/ContactMiddleware.php', - 'App\\Http\\Middleware\\Access\\DashboardMiddleware' => $baseDir . '/app/Http/Middleware/Access/DashboardMiddleware.php', - 'App\\Http\\Middleware\\Access\\DepartmentMiddleware' => $baseDir . '/app/Http/Middleware/Access/DepartmentMiddleware.php', - 'App\\Http\\Middleware\\Access\\EventMiddleware' => $baseDir . '/app/Http/Middleware/Access/EventMiddleware.php', - 'App\\Http\\Middleware\\Access\\InstanceMiddleware' => $baseDir . '/app/Http/Middleware/Access/InstanceMiddleware.php', - 'App\\Http\\Middleware\\Access\\MembertypeMiddleware' => $baseDir . '/app/Http/Middleware/Access/MembertypeMiddleware.php', - 'App\\Http\\Middleware\\Access\\OperationMiddleware' => $baseDir . '/app/Http/Middleware/Access/OperationMiddleware.php', - 'App\\Http\\Middleware\\Access\\OperationtypeMiddleware' => $baseDir . '/app/Http/Middleware/Access/OperationtypeMiddleware.php', - 'App\\Http\\Middleware\\Access\\PageCategoryMiddleware' => $baseDir . '/app/Http/Middleware/Access/PageCategoryMiddleware.php', - 'App\\Http\\Middleware\\Access\\PageMiddleware' => $baseDir . '/app/Http/Middleware/Access/PageMiddleware.php', - 'App\\Http\\Middleware\\Access\\ServiceMiddleware' => $baseDir . '/app/Http/Middleware/Access/ServiceMiddleware.php', - 'App\\Http\\Middleware\\Access\\ServicetypeMiddleware' => $baseDir . '/app/Http/Middleware/Access/ServicetypeMiddleware.php', - 'App\\Http\\Middleware\\Access\\UserMiddleware' => $baseDir . '/app/Http/Middleware/Access/UserMiddleware.php', - 'App\\Http\\Middleware\\Access\\VehicleMiddleware' => $baseDir . '/app/Http/Middleware/Access/VehicleMiddleware.php', - 'App\\Http\\Middleware\\ClearanceMiddleware' => $baseDir . '/app/Http/Middleware/ClearanceMiddleware.php', - 'App\\Http\\Middleware\\EncryptCookies' => $baseDir . '/app/Http/Middleware/EncryptCookies.php', - 'App\\Http\\Middleware\\RedirectIfAuthenticated' => $baseDir . '/app/Http/Middleware/RedirectIfAuthenticated.php', - 'App\\Http\\Middleware\\TrimStrings' => $baseDir . '/app/Http/Middleware/TrimStrings.php', - 'App\\Http\\Middleware\\TrustProxies' => $baseDir . '/app/Http/Middleware/TrustProxies.php', - 'App\\Http\\Middleware\\VerifyCsrfToken' => $baseDir . '/app/Http/Middleware/VerifyCsrfToken.php', - 'App\\Jobs\\MailAdminStatistics' => $baseDir . '/app/Jobs/MailAdminStatistics.php', - 'App\\Jobs\\MailDepartmentStatistics' => $baseDir . '/app/Jobs/MailDepartmentStatistics.php', - 'App\\Jobs\\MailStadtanzeiger' => $baseDir . '/app/Jobs/MailStadtanzeiger.php', - 'App\\Jobs\\MailUserMessage' => $baseDir . '/app/Jobs/MailUserMessage.php', - 'App\\Logic\\Document\\DocumentRepository' => $baseDir . '/app/Logic/Document/DocumentRepository.php', - 'App\\Models\\BaseModel' => $baseDir . '/app/Models/BaseModel.php', - 'App\\Models\\Document' => $baseDir . '/app/Models/Document.php', - 'App\\Models\\ExtendedModel' => $baseDir . '/app/Models/ExtendedModel.php', - 'App\\Models\\Message' => $baseDir . '/app/Models/Message.php', - 'App\\Models\\Post' => $baseDir . '/app/Models/Post.php', - 'App\\Models\\PostMigration' => $baseDir . '/app/Models/PostMigration.php', - 'App\\Models\\Publication' => $baseDir . '/app/Models/Publication.php', - 'App\\Models\\QuickLogin' => $baseDir . '/app/Models/QuickLogin.php', - 'App\\Models\\SubscribeChild' => $baseDir . '/app/Models/SubscribeChild.php', - 'App\\Models\\Tag' => $baseDir . '/app/Models/Tag.php', - 'App\\Models\\TagMigration' => $baseDir . '/app/Models/TagMigration.php', - 'App\\Models\\Traits\\Documents' => $baseDir . '/app/Models/Traits/Documents.php', - 'App\\Models\\Traits\\FullTextSearch' => $baseDir . '/app/Models/Traits/FullTextSearch.php', - 'App\\Models\\Traits\\SortableTag' => $baseDir . '/app/Models/Traits/SortableTag.php', - 'App\\Models\\User' => $baseDir . '/app/Models/User.php', - 'App\\Providers\\AppServiceProvider' => $baseDir . '/app/Providers/AppServiceProvider.php', - 'App\\Providers\\AuthServiceProvider' => $baseDir . '/app/Providers/AuthServiceProvider.php', - 'App\\Providers\\BroadcastServiceProvider' => $baseDir . '/app/Providers/BroadcastServiceProvider.php', - 'App\\Providers\\EventServiceProvider' => $baseDir . '/app/Providers/EventServiceProvider.php', - 'App\\Providers\\HelperServiceProvider' => $baseDir . '/app/Providers/HelperServiceProvider.php', - 'App\\Providers\\RouteServiceProvider' => $baseDir . '/app/Providers/RouteServiceProvider.php', - 'App\\Providers\\ValidatorServiceProvider' => $baseDir . '/app/Providers/ValidatorServiceProvider.php', - 'ArticleSeeder' => $baseDir . '/database/seeds/ArticleSeeder.php', - 'BaconQrCode\\Common\\AbstractEnum' => $vendorDir . '/bacon/bacon-qr-code/src/BaconQrCode/Common/AbstractEnum.php', - 'BaconQrCode\\Common\\BitArray' => $vendorDir . '/bacon/bacon-qr-code/src/BaconQrCode/Common/BitArray.php', - 'BaconQrCode\\Common\\BitMatrix' => $vendorDir . '/bacon/bacon-qr-code/src/BaconQrCode/Common/BitMatrix.php', - 'BaconQrCode\\Common\\BitUtils' => $vendorDir . '/bacon/bacon-qr-code/src/BaconQrCode/Common/BitUtils.php', - 'BaconQrCode\\Common\\CharacterSetEci' => $vendorDir . '/bacon/bacon-qr-code/src/BaconQrCode/Common/CharacterSetEci.php', - 'BaconQrCode\\Common\\EcBlock' => $vendorDir . '/bacon/bacon-qr-code/src/BaconQrCode/Common/EcBlock.php', - 'BaconQrCode\\Common\\EcBlocks' => $vendorDir . '/bacon/bacon-qr-code/src/BaconQrCode/Common/EcBlocks.php', - 'BaconQrCode\\Common\\ErrorCorrectionLevel' => $vendorDir . '/bacon/bacon-qr-code/src/BaconQrCode/Common/ErrorCorrectionLevel.php', - 'BaconQrCode\\Common\\FormatInformation' => $vendorDir . '/bacon/bacon-qr-code/src/BaconQrCode/Common/FormatInformation.php', - 'BaconQrCode\\Common\\Mode' => $vendorDir . '/bacon/bacon-qr-code/src/BaconQrCode/Common/Mode.php', - 'BaconQrCode\\Common\\ReedSolomonCodec' => $vendorDir . '/bacon/bacon-qr-code/src/BaconQrCode/Common/ReedSolomonCodec.php', - 'BaconQrCode\\Common\\Version' => $vendorDir . '/bacon/bacon-qr-code/src/BaconQrCode/Common/Version.php', - 'BaconQrCode\\Encoder\\BlockPair' => $vendorDir . '/bacon/bacon-qr-code/src/BaconQrCode/Encoder/BlockPair.php', - 'BaconQrCode\\Encoder\\ByteMatrix' => $vendorDir . '/bacon/bacon-qr-code/src/BaconQrCode/Encoder/ByteMatrix.php', - 'BaconQrCode\\Encoder\\Encoder' => $vendorDir . '/bacon/bacon-qr-code/src/BaconQrCode/Encoder/Encoder.php', - 'BaconQrCode\\Encoder\\MaskUtil' => $vendorDir . '/bacon/bacon-qr-code/src/BaconQrCode/Encoder/MaskUtil.php', - 'BaconQrCode\\Encoder\\MatrixUtil' => $vendorDir . '/bacon/bacon-qr-code/src/BaconQrCode/Encoder/MatrixUtil.php', - 'BaconQrCode\\Encoder\\QrCode' => $vendorDir . '/bacon/bacon-qr-code/src/BaconQrCode/Encoder/QrCode.php', - 'BaconQrCode\\Exception\\ExceptionInterface' => $vendorDir . '/bacon/bacon-qr-code/src/BaconQrCode/Exception/ExceptionInterface.php', - 'BaconQrCode\\Exception\\InvalidArgumentException' => $vendorDir . '/bacon/bacon-qr-code/src/BaconQrCode/Exception/InvalidArgumentException.php', - 'BaconQrCode\\Exception\\OutOfBoundsException' => $vendorDir . '/bacon/bacon-qr-code/src/BaconQrCode/Exception/OutOfBoundsException.php', - 'BaconQrCode\\Exception\\RuntimeException' => $vendorDir . '/bacon/bacon-qr-code/src/BaconQrCode/Exception/RuntimeException.php', - 'BaconQrCode\\Exception\\UnexpectedValueException' => $vendorDir . '/bacon/bacon-qr-code/src/BaconQrCode/Exception/UnexpectedValueException.php', - 'BaconQrCode\\Exception\\WriterException' => $vendorDir . '/bacon/bacon-qr-code/src/BaconQrCode/Exception/WriterException.php', - 'BaconQrCode\\Renderer\\Color\\Cmyk' => $vendorDir . '/bacon/bacon-qr-code/src/BaconQrCode/Renderer/Color/Cmyk.php', - 'BaconQrCode\\Renderer\\Color\\ColorInterface' => $vendorDir . '/bacon/bacon-qr-code/src/BaconQrCode/Renderer/Color/ColorInterface.php', - 'BaconQrCode\\Renderer\\Color\\Gray' => $vendorDir . '/bacon/bacon-qr-code/src/BaconQrCode/Renderer/Color/Gray.php', - 'BaconQrCode\\Renderer\\Color\\Rgb' => $vendorDir . '/bacon/bacon-qr-code/src/BaconQrCode/Renderer/Color/Rgb.php', - 'BaconQrCode\\Renderer\\Image\\AbstractRenderer' => $vendorDir . '/bacon/bacon-qr-code/src/BaconQrCode/Renderer/Image/AbstractRenderer.php', - 'BaconQrCode\\Renderer\\Image\\Decorator\\DecoratorInterface' => $vendorDir . '/bacon/bacon-qr-code/src/BaconQrCode/Renderer/Image/Decorator/DecoratorInterface.php', - 'BaconQrCode\\Renderer\\Image\\Decorator\\FinderPattern' => $vendorDir . '/bacon/bacon-qr-code/src/BaconQrCode/Renderer/Image/Decorator/FinderPattern.php', - 'BaconQrCode\\Renderer\\Image\\Eps' => $vendorDir . '/bacon/bacon-qr-code/src/BaconQrCode/Renderer/Image/Eps.php', - 'BaconQrCode\\Renderer\\Image\\Png' => $vendorDir . '/bacon/bacon-qr-code/src/BaconQrCode/Renderer/Image/Png.php', - 'BaconQrCode\\Renderer\\Image\\RendererInterface' => $vendorDir . '/bacon/bacon-qr-code/src/BaconQrCode/Renderer/Image/RendererInterface.php', - 'BaconQrCode\\Renderer\\Image\\Svg' => $vendorDir . '/bacon/bacon-qr-code/src/BaconQrCode/Renderer/Image/Svg.php', - 'BaconQrCode\\Renderer\\RendererInterface' => $vendorDir . '/bacon/bacon-qr-code/src/BaconQrCode/Renderer/RendererInterface.php', - 'BaconQrCode\\Renderer\\Text\\Html' => $vendorDir . '/bacon/bacon-qr-code/src/BaconQrCode/Renderer/Text/Html.php', - 'BaconQrCode\\Renderer\\Text\\Plain' => $vendorDir . '/bacon/bacon-qr-code/src/BaconQrCode/Renderer/Text/Plain.php', - 'BaconQrCode\\Writer' => $vendorDir . '/bacon/bacon-qr-code/src/BaconQrCode/Writer.php', - 'Barryvdh\\Debugbar\\Console\\ClearCommand' => $vendorDir . '/barryvdh/laravel-debugbar/src/Console/ClearCommand.php', - 'Barryvdh\\Debugbar\\Controllers\\AssetController' => $vendorDir . '/barryvdh/laravel-debugbar/src/Controllers/AssetController.php', - 'Barryvdh\\Debugbar\\Controllers\\BaseController' => $vendorDir . '/barryvdh/laravel-debugbar/src/Controllers/BaseController.php', - 'Barryvdh\\Debugbar\\Controllers\\CacheController' => $vendorDir . '/barryvdh/laravel-debugbar/src/Controllers/CacheController.php', - 'Barryvdh\\Debugbar\\Controllers\\OpenHandlerController' => $vendorDir . '/barryvdh/laravel-debugbar/src/Controllers/OpenHandlerController.php', - 'Barryvdh\\Debugbar\\DataCollector\\CacheCollector' => $vendorDir . '/barryvdh/laravel-debugbar/src/DataCollector/CacheCollector.php', - 'Barryvdh\\Debugbar\\DataCollector\\EventCollector' => $vendorDir . '/barryvdh/laravel-debugbar/src/DataCollector/EventCollector.php', - 'Barryvdh\\Debugbar\\DataCollector\\FilesCollector' => $vendorDir . '/barryvdh/laravel-debugbar/src/DataCollector/FilesCollector.php', - 'Barryvdh\\Debugbar\\DataCollector\\GateCollector' => $vendorDir . '/barryvdh/laravel-debugbar/src/DataCollector/GateCollector.php', - 'Barryvdh\\Debugbar\\DataCollector\\LaravelCollector' => $vendorDir . '/barryvdh/laravel-debugbar/src/DataCollector/LaravelCollector.php', - 'Barryvdh\\Debugbar\\DataCollector\\LogsCollector' => $vendorDir . '/barryvdh/laravel-debugbar/src/DataCollector/LogsCollector.php', - 'Barryvdh\\Debugbar\\DataCollector\\MultiAuthCollector' => $vendorDir . '/barryvdh/laravel-debugbar/src/DataCollector/MultiAuthCollector.php', - 'Barryvdh\\Debugbar\\DataCollector\\QueryCollector' => $vendorDir . '/barryvdh/laravel-debugbar/src/DataCollector/QueryCollector.php', - 'Barryvdh\\Debugbar\\DataCollector\\RequestCollector' => $vendorDir . '/barryvdh/laravel-debugbar/src/DataCollector/RequestCollector.php', - 'Barryvdh\\Debugbar\\DataCollector\\RouteCollector' => $vendorDir . '/barryvdh/laravel-debugbar/src/DataCollector/RouteCollector.php', - 'Barryvdh\\Debugbar\\DataCollector\\SessionCollector' => $vendorDir . '/barryvdh/laravel-debugbar/src/DataCollector/SessionCollector.php', - 'Barryvdh\\Debugbar\\DataCollector\\ViewCollector' => $vendorDir . '/barryvdh/laravel-debugbar/src/DataCollector/ViewCollector.php', - 'Barryvdh\\Debugbar\\DataFormatter\\QueryFormatter' => $vendorDir . '/barryvdh/laravel-debugbar/src/DataFormatter/QueryFormatter.php', - 'Barryvdh\\Debugbar\\DataFormatter\\SimpleFormatter' => $vendorDir . '/barryvdh/laravel-debugbar/src/DataFormatter/SimpleFormatter.php', - 'Barryvdh\\Debugbar\\Facade' => $vendorDir . '/barryvdh/laravel-debugbar/src/Facade.php', - 'Barryvdh\\Debugbar\\JavascriptRenderer' => $vendorDir . '/barryvdh/laravel-debugbar/src/JavascriptRenderer.php', - 'Barryvdh\\Debugbar\\LaravelDebugbar' => $vendorDir . '/barryvdh/laravel-debugbar/src/LaravelDebugbar.php', - 'Barryvdh\\Debugbar\\LumenServiceProvider' => $vendorDir . '/barryvdh/laravel-debugbar/src/LumenServiceProvider.php', - 'Barryvdh\\Debugbar\\Middleware\\DebugbarEnabled' => $vendorDir . '/barryvdh/laravel-debugbar/src/Middleware/DebugbarEnabled.php', - 'Barryvdh\\Debugbar\\Middleware\\InjectDebugbar' => $vendorDir . '/barryvdh/laravel-debugbar/src/Middleware/InjectDebugbar.php', - 'Barryvdh\\Debugbar\\ServiceProvider' => $vendorDir . '/barryvdh/laravel-debugbar/src/ServiceProvider.php', - 'Barryvdh\\Debugbar\\Storage\\FilesystemStorage' => $vendorDir . '/barryvdh/laravel-debugbar/src/Storage/FilesystemStorage.php', - 'Barryvdh\\Debugbar\\Support\\Clockwork\\ClockworkCollector' => $vendorDir . '/barryvdh/laravel-debugbar/src/Support/Clockwork/ClockworkCollector.php', - 'Barryvdh\\Debugbar\\Support\\Clockwork\\Converter' => $vendorDir . '/barryvdh/laravel-debugbar/src/Support/Clockwork/Converter.php', - 'Barryvdh\\Debugbar\\SymfonyHttpDriver' => $vendorDir . '/barryvdh/laravel-debugbar/src/SymfonyHttpDriver.php', - 'Barryvdh\\Debugbar\\Twig\\Extension\\Debug' => $vendorDir . '/barryvdh/laravel-debugbar/src/Twig/Extension/Debug.php', - 'Barryvdh\\Debugbar\\Twig\\Extension\\Dump' => $vendorDir . '/barryvdh/laravel-debugbar/src/Twig/Extension/Dump.php', - 'Barryvdh\\Debugbar\\Twig\\Extension\\Stopwatch' => $vendorDir . '/barryvdh/laravel-debugbar/src/Twig/Extension/Stopwatch.php', - 'Barryvdh\\Debugbar\\Twig\\Node\\StopwatchNode' => $vendorDir . '/barryvdh/laravel-debugbar/src/Twig/Node/StopwatchNode.php', - 'Barryvdh\\Debugbar\\Twig\\TokenParser\\StopwatchTokenParser' => $vendorDir . '/barryvdh/laravel-debugbar/src/Twig/TokenParser/StopwatchTokenParser.php', - 'Carbon\\Carbon' => $vendorDir . '/nesbot/carbon/src/Carbon/Carbon.php', - 'Carbon\\CarbonInterval' => $vendorDir . '/nesbot/carbon/src/Carbon/CarbonInterval.php', - 'Carbon\\Exceptions\\InvalidDateException' => $vendorDir . '/nesbot/carbon/src/Carbon/Exceptions/InvalidDateException.php', - 'Carbon\\Translator' => $vendorDir . '/nesbot/carbon/src/Carbon/Translator.php', - 'Cocur\\Slugify\\Bridge\\Laravel\\SlugifyFacade' => $vendorDir . '/cocur/slugify/src/Bridge/Laravel/SlugifyFacade.php', - 'Cocur\\Slugify\\Bridge\\Laravel\\SlugifyServiceProvider' => $vendorDir . '/cocur/slugify/src/Bridge/Laravel/SlugifyServiceProvider.php', - 'Cocur\\Slugify\\Bridge\\Latte\\SlugifyHelper' => $vendorDir . '/cocur/slugify/src/Bridge/Latte/SlugifyHelper.php', - 'Cocur\\Slugify\\Bridge\\League\\SlugifyServiceProvider' => $vendorDir . '/cocur/slugify/src/Bridge/League/SlugifyServiceProvider.php', - 'Cocur\\Slugify\\Bridge\\Nette\\SlugifyExtension' => $vendorDir . '/cocur/slugify/src/Bridge/Nette/SlugifyExtension.php', - 'Cocur\\Slugify\\Bridge\\Plum\\SlugifyConverter' => $vendorDir . '/cocur/slugify/src/Bridge/Plum/SlugifyConverter.php', - 'Cocur\\Slugify\\Bridge\\Silex2\\SlugifyServiceProvider' => $vendorDir . '/cocur/slugify/src/Bridge/Silex2/SlugifyServiceProvider.php', - 'Cocur\\Slugify\\Bridge\\Silex\\SlugifyServiceProvider' => $vendorDir . '/cocur/slugify/src/Bridge/Silex/SlugifyServiceProvider.php', - 'Cocur\\Slugify\\Bridge\\Symfony\\CocurSlugifyBundle' => $vendorDir . '/cocur/slugify/src/Bridge/Symfony/CocurSlugifyBundle.php', - 'Cocur\\Slugify\\Bridge\\Symfony\\CocurSlugifyExtension' => $vendorDir . '/cocur/slugify/src/Bridge/Symfony/CocurSlugifyExtension.php', - 'Cocur\\Slugify\\Bridge\\Symfony\\Configuration' => $vendorDir . '/cocur/slugify/src/Bridge/Symfony/Configuration.php', - 'Cocur\\Slugify\\Bridge\\Twig\\SlugifyExtension' => $vendorDir . '/cocur/slugify/src/Bridge/Twig/SlugifyExtension.php', - 'Cocur\\Slugify\\Bridge\\ZF2\\Module' => $vendorDir . '/cocur/slugify/src/Bridge/ZF2/Module.php', - 'Cocur\\Slugify\\Bridge\\ZF2\\SlugifyService' => $vendorDir . '/cocur/slugify/src/Bridge/ZF2/SlugifyService.php', - 'Cocur\\Slugify\\Bridge\\ZF2\\SlugifyViewHelper' => $vendorDir . '/cocur/slugify/src/Bridge/ZF2/SlugifyViewHelper.php', - 'Cocur\\Slugify\\Bridge\\ZF2\\SlugifyViewHelperFactory' => $vendorDir . '/cocur/slugify/src/Bridge/ZF2/SlugifyViewHelperFactory.php', - 'Cocur\\Slugify\\RuleProvider\\DefaultRuleProvider' => $vendorDir . '/cocur/slugify/src/RuleProvider/DefaultRuleProvider.php', - 'Cocur\\Slugify\\RuleProvider\\FileRuleProvider' => $vendorDir . '/cocur/slugify/src/RuleProvider/FileRuleProvider.php', - 'Cocur\\Slugify\\RuleProvider\\RuleProviderInterface' => $vendorDir . '/cocur/slugify/src/RuleProvider/RuleProviderInterface.php', - 'Cocur\\Slugify\\Slugify' => $vendorDir . '/cocur/slugify/src/Slugify.php', - 'Cocur\\Slugify\\SlugifyInterface' => $vendorDir . '/cocur/slugify/src/SlugifyInterface.php', - 'Collective\\Html\\Componentable' => $vendorDir . '/laravelcollective/html/src/Componentable.php', - 'Collective\\Html\\Eloquent\\FormAccessible' => $vendorDir . '/laravelcollective/html/src/Eloquent/FormAccessible.php', - 'Collective\\Html\\FormBuilder' => $vendorDir . '/laravelcollective/html/src/FormBuilder.php', - 'Collective\\Html\\FormFacade' => $vendorDir . '/laravelcollective/html/src/FormFacade.php', - 'Collective\\Html\\HtmlBuilder' => $vendorDir . '/laravelcollective/html/src/HtmlBuilder.php', - 'Collective\\Html\\HtmlFacade' => $vendorDir . '/laravelcollective/html/src/HtmlFacade.php', - 'Collective\\Html\\HtmlServiceProvider' => $vendorDir . '/laravelcollective/html/src/HtmlServiceProvider.php', - 'Cron\\AbstractField' => $vendorDir . '/dragonmantank/cron-expression/src/Cron/AbstractField.php', - 'Cron\\CronExpression' => $vendorDir . '/dragonmantank/cron-expression/src/Cron/CronExpression.php', - 'Cron\\DayOfMonthField' => $vendorDir . '/dragonmantank/cron-expression/src/Cron/DayOfMonthField.php', - 'Cron\\DayOfWeekField' => $vendorDir . '/dragonmantank/cron-expression/src/Cron/DayOfWeekField.php', - 'Cron\\FieldFactory' => $vendorDir . '/dragonmantank/cron-expression/src/Cron/FieldFactory.php', - 'Cron\\FieldInterface' => $vendorDir . '/dragonmantank/cron-expression/src/Cron/FieldInterface.php', - 'Cron\\HoursField' => $vendorDir . '/dragonmantank/cron-expression/src/Cron/HoursField.php', - 'Cron\\MinutesField' => $vendorDir . '/dragonmantank/cron-expression/src/Cron/MinutesField.php', - 'Cron\\MonthField' => $vendorDir . '/dragonmantank/cron-expression/src/Cron/MonthField.php', - 'Cviebrock\\EloquentSluggable\\ServiceProvider' => $vendorDir . '/cviebrock/eloquent-sluggable/src/ServiceProvider.php', - 'Cviebrock\\EloquentSluggable\\Services\\SlugService' => $vendorDir . '/cviebrock/eloquent-sluggable/src/Services/SlugService.php', - 'Cviebrock\\EloquentSluggable\\Sluggable' => $vendorDir . '/cviebrock/eloquent-sluggable/src/Sluggable.php', - 'Cviebrock\\EloquentSluggable\\SluggableObserver' => $vendorDir . '/cviebrock/eloquent-sluggable/src/SluggableObserver.php', - 'Cviebrock\\EloquentSluggable\\SluggableScopeHelpers' => $vendorDir . '/cviebrock/eloquent-sluggable/src/SluggableScopeHelpers.php', - 'DatabaseSeeder' => $baseDir . '/database/seeds/DatabaseSeeder.php', - 'DebugBar\\Bridge\\CacheCacheCollector' => $vendorDir . '/maximebf/debugbar/src/DebugBar/Bridge/CacheCacheCollector.php', - 'DebugBar\\Bridge\\DoctrineCollector' => $vendorDir . '/maximebf/debugbar/src/DebugBar/Bridge/DoctrineCollector.php', - 'DebugBar\\Bridge\\MonologCollector' => $vendorDir . '/maximebf/debugbar/src/DebugBar/Bridge/MonologCollector.php', - 'DebugBar\\Bridge\\Propel2Collector' => $vendorDir . '/maximebf/debugbar/src/DebugBar/Bridge/Propel2Collector.php', - 'DebugBar\\Bridge\\PropelCollector' => $vendorDir . '/maximebf/debugbar/src/DebugBar/Bridge/PropelCollector.php', - 'DebugBar\\Bridge\\SlimCollector' => $vendorDir . '/maximebf/debugbar/src/DebugBar/Bridge/SlimCollector.php', - 'DebugBar\\Bridge\\SwiftMailer\\SwiftLogCollector' => $vendorDir . '/maximebf/debugbar/src/DebugBar/Bridge/SwiftMailer/SwiftLogCollector.php', - 'DebugBar\\Bridge\\SwiftMailer\\SwiftMailCollector' => $vendorDir . '/maximebf/debugbar/src/DebugBar/Bridge/SwiftMailer/SwiftMailCollector.php', - 'DebugBar\\Bridge\\TwigProfileCollector' => $vendorDir . '/maximebf/debugbar/src/DebugBar/Bridge/TwigProfileCollector.php', - 'DebugBar\\Bridge\\Twig\\TimeableTwigExtensionProfiler' => $vendorDir . '/maximebf/debugbar/src/DebugBar/Bridge/Twig/TimeableTwigExtensionProfiler.php', - 'DebugBar\\Bridge\\Twig\\TraceableTwigEnvironment' => $vendorDir . '/maximebf/debugbar/src/DebugBar/Bridge/Twig/TraceableTwigEnvironment.php', - 'DebugBar\\Bridge\\Twig\\TraceableTwigTemplate' => $vendorDir . '/maximebf/debugbar/src/DebugBar/Bridge/Twig/TraceableTwigTemplate.php', - 'DebugBar\\Bridge\\Twig\\TwigCollector' => $vendorDir . '/maximebf/debugbar/src/DebugBar/Bridge/Twig/TwigCollector.php', - 'DebugBar\\DataCollector\\AggregatedCollector' => $vendorDir . '/maximebf/debugbar/src/DebugBar/DataCollector/AggregatedCollector.php', - 'DebugBar\\DataCollector\\AssetProvider' => $vendorDir . '/maximebf/debugbar/src/DebugBar/DataCollector/AssetProvider.php', - 'DebugBar\\DataCollector\\ConfigCollector' => $vendorDir . '/maximebf/debugbar/src/DebugBar/DataCollector/ConfigCollector.php', - 'DebugBar\\DataCollector\\DataCollector' => $vendorDir . '/maximebf/debugbar/src/DebugBar/DataCollector/DataCollector.php', - 'DebugBar\\DataCollector\\DataCollectorInterface' => $vendorDir . '/maximebf/debugbar/src/DebugBar/DataCollector/DataCollectorInterface.php', - 'DebugBar\\DataCollector\\ExceptionsCollector' => $vendorDir . '/maximebf/debugbar/src/DebugBar/DataCollector/ExceptionsCollector.php', - 'DebugBar\\DataCollector\\LocalizationCollector' => $vendorDir . '/maximebf/debugbar/src/DebugBar/DataCollector/LocalizationCollector.php', - 'DebugBar\\DataCollector\\MemoryCollector' => $vendorDir . '/maximebf/debugbar/src/DebugBar/DataCollector/MemoryCollector.php', - 'DebugBar\\DataCollector\\MessagesAggregateInterface' => $vendorDir . '/maximebf/debugbar/src/DebugBar/DataCollector/MessagesAggregateInterface.php', - 'DebugBar\\DataCollector\\MessagesCollector' => $vendorDir . '/maximebf/debugbar/src/DebugBar/DataCollector/MessagesCollector.php', - 'DebugBar\\DataCollector\\PDO\\PDOCollector' => $vendorDir . '/maximebf/debugbar/src/DebugBar/DataCollector/PDO/PDOCollector.php', - 'DebugBar\\DataCollector\\PDO\\TraceablePDO' => $vendorDir . '/maximebf/debugbar/src/DebugBar/DataCollector/PDO/TraceablePDO.php', - 'DebugBar\\DataCollector\\PDO\\TraceablePDOStatement' => $vendorDir . '/maximebf/debugbar/src/DebugBar/DataCollector/PDO/TraceablePDOStatement.php', - 'DebugBar\\DataCollector\\PDO\\TracedStatement' => $vendorDir . '/maximebf/debugbar/src/DebugBar/DataCollector/PDO/TracedStatement.php', - 'DebugBar\\DataCollector\\PhpInfoCollector' => $vendorDir . '/maximebf/debugbar/src/DebugBar/DataCollector/PhpInfoCollector.php', - 'DebugBar\\DataCollector\\Renderable' => $vendorDir . '/maximebf/debugbar/src/DebugBar/DataCollector/Renderable.php', - 'DebugBar\\DataCollector\\RequestDataCollector' => $vendorDir . '/maximebf/debugbar/src/DebugBar/DataCollector/RequestDataCollector.php', - 'DebugBar\\DataCollector\\TimeDataCollector' => $vendorDir . '/maximebf/debugbar/src/DebugBar/DataCollector/TimeDataCollector.php', - 'DebugBar\\DataFormatter\\DataFormatter' => $vendorDir . '/maximebf/debugbar/src/DebugBar/DataFormatter/DataFormatter.php', - 'DebugBar\\DataFormatter\\DataFormatterInterface' => $vendorDir . '/maximebf/debugbar/src/DebugBar/DataFormatter/DataFormatterInterface.php', - 'DebugBar\\DataFormatter\\DebugBarVarDumper' => $vendorDir . '/maximebf/debugbar/src/DebugBar/DataFormatter/DebugBarVarDumper.php', - 'DebugBar\\DataFormatter\\VarDumper\\DebugBarHtmlDumper' => $vendorDir . '/maximebf/debugbar/src/DebugBar/DataFormatter/VarDumper/DebugBarHtmlDumper.php', - 'DebugBar\\DataFormatter\\VarDumper\\SeekingData' => $vendorDir . '/maximebf/debugbar/src/DebugBar/DataFormatter/VarDumper/SeekingData.php', - 'DebugBar\\DebugBar' => $vendorDir . '/maximebf/debugbar/src/DebugBar/DebugBar.php', - 'DebugBar\\DebugBarException' => $vendorDir . '/maximebf/debugbar/src/DebugBar/DebugBarException.php', - 'DebugBar\\HttpDriverInterface' => $vendorDir . '/maximebf/debugbar/src/DebugBar/HttpDriverInterface.php', - 'DebugBar\\JavascriptRenderer' => $vendorDir . '/maximebf/debugbar/src/DebugBar/JavascriptRenderer.php', - 'DebugBar\\OpenHandler' => $vendorDir . '/maximebf/debugbar/src/DebugBar/OpenHandler.php', - 'DebugBar\\PhpHttpDriver' => $vendorDir . '/maximebf/debugbar/src/DebugBar/PhpHttpDriver.php', - 'DebugBar\\RequestIdGenerator' => $vendorDir . '/maximebf/debugbar/src/DebugBar/RequestIdGenerator.php', - 'DebugBar\\RequestIdGeneratorInterface' => $vendorDir . '/maximebf/debugbar/src/DebugBar/RequestIdGeneratorInterface.php', - 'DebugBar\\StandardDebugBar' => $vendorDir . '/maximebf/debugbar/src/DebugBar/StandardDebugBar.php', - 'DebugBar\\Storage\\FileStorage' => $vendorDir . '/maximebf/debugbar/src/DebugBar/Storage/FileStorage.php', - 'DebugBar\\Storage\\MemcachedStorage' => $vendorDir . '/maximebf/debugbar/src/DebugBar/Storage/MemcachedStorage.php', - 'DebugBar\\Storage\\PdoStorage' => $vendorDir . '/maximebf/debugbar/src/DebugBar/Storage/PdoStorage.php', - 'DebugBar\\Storage\\RedisStorage' => $vendorDir . '/maximebf/debugbar/src/DebugBar/Storage/RedisStorage.php', - 'DebugBar\\Storage\\StorageInterface' => $vendorDir . '/maximebf/debugbar/src/DebugBar/Storage/StorageInterface.php', - 'DeepCopy\\DeepCopy' => $vendorDir . '/myclabs/deep-copy/src/DeepCopy/DeepCopy.php', - 'DeepCopy\\Exception\\CloneException' => $vendorDir . '/myclabs/deep-copy/src/DeepCopy/Exception/CloneException.php', - 'DeepCopy\\Exception\\PropertyException' => $vendorDir . '/myclabs/deep-copy/src/DeepCopy/Exception/PropertyException.php', - 'DeepCopy\\Filter\\Doctrine\\DoctrineCollectionFilter' => $vendorDir . '/myclabs/deep-copy/src/DeepCopy/Filter/Doctrine/DoctrineCollectionFilter.php', - 'DeepCopy\\Filter\\Doctrine\\DoctrineEmptyCollectionFilter' => $vendorDir . '/myclabs/deep-copy/src/DeepCopy/Filter/Doctrine/DoctrineEmptyCollectionFilter.php', - 'DeepCopy\\Filter\\Doctrine\\DoctrineProxyFilter' => $vendorDir . '/myclabs/deep-copy/src/DeepCopy/Filter/Doctrine/DoctrineProxyFilter.php', - 'DeepCopy\\Filter\\Filter' => $vendorDir . '/myclabs/deep-copy/src/DeepCopy/Filter/Filter.php', - 'DeepCopy\\Filter\\KeepFilter' => $vendorDir . '/myclabs/deep-copy/src/DeepCopy/Filter/KeepFilter.php', - 'DeepCopy\\Filter\\ReplaceFilter' => $vendorDir . '/myclabs/deep-copy/src/DeepCopy/Filter/ReplaceFilter.php', - 'DeepCopy\\Filter\\SetNullFilter' => $vendorDir . '/myclabs/deep-copy/src/DeepCopy/Filter/SetNullFilter.php', - 'DeepCopy\\Matcher\\Doctrine\\DoctrineProxyMatcher' => $vendorDir . '/myclabs/deep-copy/src/DeepCopy/Matcher/Doctrine/DoctrineProxyMatcher.php', - 'DeepCopy\\Matcher\\Matcher' => $vendorDir . '/myclabs/deep-copy/src/DeepCopy/Matcher/Matcher.php', - 'DeepCopy\\Matcher\\PropertyMatcher' => $vendorDir . '/myclabs/deep-copy/src/DeepCopy/Matcher/PropertyMatcher.php', - 'DeepCopy\\Matcher\\PropertyNameMatcher' => $vendorDir . '/myclabs/deep-copy/src/DeepCopy/Matcher/PropertyNameMatcher.php', - 'DeepCopy\\Matcher\\PropertyTypeMatcher' => $vendorDir . '/myclabs/deep-copy/src/DeepCopy/Matcher/PropertyTypeMatcher.php', - 'DeepCopy\\Reflection\\ReflectionHelper' => $vendorDir . '/myclabs/deep-copy/src/DeepCopy/Reflection/ReflectionHelper.php', - 'DeepCopy\\TypeFilter\\Date\\DateIntervalFilter' => $vendorDir . '/myclabs/deep-copy/src/DeepCopy/TypeFilter/Date/DateIntervalFilter.php', - 'DeepCopy\\TypeFilter\\ReplaceFilter' => $vendorDir . '/myclabs/deep-copy/src/DeepCopy/TypeFilter/ReplaceFilter.php', - 'DeepCopy\\TypeFilter\\ShallowCopyFilter' => $vendorDir . '/myclabs/deep-copy/src/DeepCopy/TypeFilter/ShallowCopyFilter.php', - 'DeepCopy\\TypeFilter\\Spl\\SplDoublyLinkedList' => $vendorDir . '/myclabs/deep-copy/src/DeepCopy/TypeFilter/Spl/SplDoublyLinkedList.php', - 'DeepCopy\\TypeFilter\\Spl\\SplDoublyLinkedListFilter' => $vendorDir . '/myclabs/deep-copy/src/DeepCopy/TypeFilter/Spl/SplDoublyLinkedListFilter.php', - 'DeepCopy\\TypeFilter\\TypeFilter' => $vendorDir . '/myclabs/deep-copy/src/DeepCopy/TypeFilter/TypeFilter.php', - 'DeepCopy\\TypeMatcher\\TypeMatcher' => $vendorDir . '/myclabs/deep-copy/src/DeepCopy/TypeMatcher/TypeMatcher.php', - 'DepartmentSeeder' => $baseDir . '/database/seeds/DepartmentSeeder.php', - 'Doctrine\\Common\\Inflector\\Inflector' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Common/Inflector/Inflector.php', - 'Doctrine\\Common\\Lexer\\AbstractLexer' => $vendorDir . '/doctrine/lexer/lib/Doctrine/Common/Lexer/AbstractLexer.php', - 'Doctrine\\Instantiator\\Exception\\ExceptionInterface' => $vendorDir . '/doctrine/instantiator/src/Doctrine/Instantiator/Exception/ExceptionInterface.php', - 'Doctrine\\Instantiator\\Exception\\InvalidArgumentException' => $vendorDir . '/doctrine/instantiator/src/Doctrine/Instantiator/Exception/InvalidArgumentException.php', - 'Doctrine\\Instantiator\\Exception\\UnexpectedValueException' => $vendorDir . '/doctrine/instantiator/src/Doctrine/Instantiator/Exception/UnexpectedValueException.php', - 'Doctrine\\Instantiator\\Instantiator' => $vendorDir . '/doctrine/instantiator/src/Doctrine/Instantiator/Instantiator.php', - 'Doctrine\\Instantiator\\InstantiatorInterface' => $vendorDir . '/doctrine/instantiator/src/Doctrine/Instantiator/InstantiatorInterface.php', - 'Dotenv\\Dotenv' => $vendorDir . '/vlucas/phpdotenv/src/Dotenv.php', - 'Dotenv\\Exception\\ExceptionInterface' => $vendorDir . '/vlucas/phpdotenv/src/Exception/ExceptionInterface.php', - 'Dotenv\\Exception\\InvalidCallbackException' => $vendorDir . '/vlucas/phpdotenv/src/Exception/InvalidCallbackException.php', - 'Dotenv\\Exception\\InvalidFileException' => $vendorDir . '/vlucas/phpdotenv/src/Exception/InvalidFileException.php', - 'Dotenv\\Exception\\InvalidPathException' => $vendorDir . '/vlucas/phpdotenv/src/Exception/InvalidPathException.php', - 'Dotenv\\Exception\\ValidationException' => $vendorDir . '/vlucas/phpdotenv/src/Exception/ValidationException.php', - 'Dotenv\\Loader' => $vendorDir . '/vlucas/phpdotenv/src/Loader.php', - 'Dotenv\\Validator' => $vendorDir . '/vlucas/phpdotenv/src/Validator.php', - 'Egulias\\EmailValidator\\EmailLexer' => $vendorDir . '/egulias/email-validator/EmailValidator/EmailLexer.php', - 'Egulias\\EmailValidator\\EmailParser' => $vendorDir . '/egulias/email-validator/EmailValidator/EmailParser.php', - 'Egulias\\EmailValidator\\EmailValidator' => $vendorDir . '/egulias/email-validator/EmailValidator/EmailValidator.php', - 'Egulias\\EmailValidator\\Exception\\AtextAfterCFWS' => $vendorDir . '/egulias/email-validator/EmailValidator/Exception/AtextAfterCFWS.php', - 'Egulias\\EmailValidator\\Exception\\CRLFAtTheEnd' => $vendorDir . '/egulias/email-validator/EmailValidator/Exception/CRLFAtTheEnd.php', - 'Egulias\\EmailValidator\\Exception\\CRLFX2' => $vendorDir . '/egulias/email-validator/EmailValidator/Exception/CRLFX2.php', - 'Egulias\\EmailValidator\\Exception\\CRNoLF' => $vendorDir . '/egulias/email-validator/EmailValidator/Exception/CRNoLF.php', - 'Egulias\\EmailValidator\\Exception\\CharNotAllowed' => $vendorDir . '/egulias/email-validator/EmailValidator/Exception/CharNotAllowed.php', - 'Egulias\\EmailValidator\\Exception\\CommaInDomain' => $vendorDir . '/egulias/email-validator/EmailValidator/Exception/CommaInDomain.php', - 'Egulias\\EmailValidator\\Exception\\ConsecutiveAt' => $vendorDir . '/egulias/email-validator/EmailValidator/Exception/ConsecutiveAt.php', - 'Egulias\\EmailValidator\\Exception\\ConsecutiveDot' => $vendorDir . '/egulias/email-validator/EmailValidator/Exception/ConsecutiveDot.php', - 'Egulias\\EmailValidator\\Exception\\DomainHyphened' => $vendorDir . '/egulias/email-validator/EmailValidator/Exception/DomainHyphened.php', - 'Egulias\\EmailValidator\\Exception\\DotAtEnd' => $vendorDir . '/egulias/email-validator/EmailValidator/Exception/DotAtEnd.php', - 'Egulias\\EmailValidator\\Exception\\DotAtStart' => $vendorDir . '/egulias/email-validator/EmailValidator/Exception/DotAtStart.php', - 'Egulias\\EmailValidator\\Exception\\ExpectedQPair' => $vendorDir . '/egulias/email-validator/EmailValidator/Exception/ExpectingQPair.php', - 'Egulias\\EmailValidator\\Exception\\ExpectingAT' => $vendorDir . '/egulias/email-validator/EmailValidator/Exception/ExpectingAT.php', - 'Egulias\\EmailValidator\\Exception\\ExpectingATEXT' => $vendorDir . '/egulias/email-validator/EmailValidator/Exception/ExpectingATEXT.php', - 'Egulias\\EmailValidator\\Exception\\ExpectingCTEXT' => $vendorDir . '/egulias/email-validator/EmailValidator/Exception/ExpectingCTEXT.php', - 'Egulias\\EmailValidator\\Exception\\ExpectingDTEXT' => $vendorDir . '/egulias/email-validator/EmailValidator/Exception/ExpectingDTEXT.php', - 'Egulias\\EmailValidator\\Exception\\ExpectingDomainLiteralClose' => $vendorDir . '/egulias/email-validator/EmailValidator/Exception/ExpectingDomainLiteralClose.php', - 'Egulias\\EmailValidator\\Exception\\InvalidEmail' => $vendorDir . '/egulias/email-validator/EmailValidator/Exception/InvalidEmail.php', - 'Egulias\\EmailValidator\\Exception\\NoDNSRecord' => $vendorDir . '/egulias/email-validator/EmailValidator/Exception/NoDNSRecord.php', - 'Egulias\\EmailValidator\\Exception\\NoDomainPart' => $vendorDir . '/egulias/email-validator/EmailValidator/Exception/NoDomainPart.php', - 'Egulias\\EmailValidator\\Exception\\NoLocalPart' => $vendorDir . '/egulias/email-validator/EmailValidator/Exception/NoLocalPart.php', - 'Egulias\\EmailValidator\\Exception\\UnclosedComment' => $vendorDir . '/egulias/email-validator/EmailValidator/Exception/UnclosedComment.php', - 'Egulias\\EmailValidator\\Exception\\UnclosedQuotedString' => $vendorDir . '/egulias/email-validator/EmailValidator/Exception/UnclosedQuotedString.php', - 'Egulias\\EmailValidator\\Exception\\UnopenedComment' => $vendorDir . '/egulias/email-validator/EmailValidator/Exception/UnopenedComment.php', - 'Egulias\\EmailValidator\\Parser\\DomainPart' => $vendorDir . '/egulias/email-validator/EmailValidator/Parser/DomainPart.php', - 'Egulias\\EmailValidator\\Parser\\LocalPart' => $vendorDir . '/egulias/email-validator/EmailValidator/Parser/LocalPart.php', - 'Egulias\\EmailValidator\\Parser\\Parser' => $vendorDir . '/egulias/email-validator/EmailValidator/Parser/Parser.php', - 'Egulias\\EmailValidator\\Validation\\DNSCheckValidation' => $vendorDir . '/egulias/email-validator/EmailValidator/Validation/DNSCheckValidation.php', - 'Egulias\\EmailValidator\\Validation\\EmailValidation' => $vendorDir . '/egulias/email-validator/EmailValidator/Validation/EmailValidation.php', - 'Egulias\\EmailValidator\\Validation\\Error\\RFCWarnings' => $vendorDir . '/egulias/email-validator/EmailValidator/Validation/Error/RFCWarnings.php', - 'Egulias\\EmailValidator\\Validation\\Error\\SpoofEmail' => $vendorDir . '/egulias/email-validator/EmailValidator/Validation/Error/SpoofEmail.php', - 'Egulias\\EmailValidator\\Validation\\Exception\\EmptyValidationList' => $vendorDir . '/egulias/email-validator/EmailValidator/Validation/Exception/EmptyValidationList.php', - 'Egulias\\EmailValidator\\Validation\\MultipleErrors' => $vendorDir . '/egulias/email-validator/EmailValidator/Validation/MultipleErrors.php', - 'Egulias\\EmailValidator\\Validation\\MultipleValidationWithAnd' => $vendorDir . '/egulias/email-validator/EmailValidator/Validation/MultipleValidationWithAnd.php', - 'Egulias\\EmailValidator\\Validation\\NoRFCWarningsValidation' => $vendorDir . '/egulias/email-validator/EmailValidator/Validation/NoRFCWarningsValidation.php', - 'Egulias\\EmailValidator\\Validation\\RFCValidation' => $vendorDir . '/egulias/email-validator/EmailValidator/Validation/RFCValidation.php', - 'Egulias\\EmailValidator\\Validation\\SpoofCheckValidation' => $vendorDir . '/egulias/email-validator/EmailValidator/Validation/SpoofCheckValidation.php', - 'Egulias\\EmailValidator\\Warning\\AddressLiteral' => $vendorDir . '/egulias/email-validator/EmailValidator/Warning/AddressLiteral.php', - 'Egulias\\EmailValidator\\Warning\\CFWSNearAt' => $vendorDir . '/egulias/email-validator/EmailValidator/Warning/CFWSNearAt.php', - 'Egulias\\EmailValidator\\Warning\\CFWSWithFWS' => $vendorDir . '/egulias/email-validator/EmailValidator/Warning/CFWSWithFWS.php', - 'Egulias\\EmailValidator\\Warning\\Comment' => $vendorDir . '/egulias/email-validator/EmailValidator/Warning/Comment.php', - 'Egulias\\EmailValidator\\Warning\\DeprecatedComment' => $vendorDir . '/egulias/email-validator/EmailValidator/Warning/DeprecatedComment.php', - 'Egulias\\EmailValidator\\Warning\\DomainLiteral' => $vendorDir . '/egulias/email-validator/EmailValidator/Warning/DomainLiteral.php', - 'Egulias\\EmailValidator\\Warning\\DomainTooLong' => $vendorDir . '/egulias/email-validator/EmailValidator/Warning/DomainTooLong.php', - 'Egulias\\EmailValidator\\Warning\\EmailTooLong' => $vendorDir . '/egulias/email-validator/EmailValidator/Warning/EmailTooLong.php', - 'Egulias\\EmailValidator\\Warning\\IPV6BadChar' => $vendorDir . '/egulias/email-validator/EmailValidator/Warning/IPV6BadChar.php', - 'Egulias\\EmailValidator\\Warning\\IPV6ColonEnd' => $vendorDir . '/egulias/email-validator/EmailValidator/Warning/IPV6ColonEnd.php', - 'Egulias\\EmailValidator\\Warning\\IPV6ColonStart' => $vendorDir . '/egulias/email-validator/EmailValidator/Warning/IPV6ColonStart.php', - 'Egulias\\EmailValidator\\Warning\\IPV6Deprecated' => $vendorDir . '/egulias/email-validator/EmailValidator/Warning/IPV6Deprecated.php', - 'Egulias\\EmailValidator\\Warning\\IPV6DoubleColon' => $vendorDir . '/egulias/email-validator/EmailValidator/Warning/IPV6DoubleColon.php', - 'Egulias\\EmailValidator\\Warning\\IPV6GroupCount' => $vendorDir . '/egulias/email-validator/EmailValidator/Warning/IPV6GroupCount.php', - 'Egulias\\EmailValidator\\Warning\\IPV6MaxGroups' => $vendorDir . '/egulias/email-validator/EmailValidator/Warning/IPV6MaxGroups.php', - 'Egulias\\EmailValidator\\Warning\\LabelTooLong' => $vendorDir . '/egulias/email-validator/EmailValidator/Warning/LabelTooLong.php', - 'Egulias\\EmailValidator\\Warning\\LocalTooLong' => $vendorDir . '/egulias/email-validator/EmailValidator/Warning/LocalTooLong.php', - 'Egulias\\EmailValidator\\Warning\\NoDNSMXRecord' => $vendorDir . '/egulias/email-validator/EmailValidator/Warning/NoDNSMXRecord.php', - 'Egulias\\EmailValidator\\Warning\\ObsoleteDTEXT' => $vendorDir . '/egulias/email-validator/EmailValidator/Warning/ObsoleteDTEXT.php', - 'Egulias\\EmailValidator\\Warning\\QuotedPart' => $vendorDir . '/egulias/email-validator/EmailValidator/Warning/QuotedPart.php', - 'Egulias\\EmailValidator\\Warning\\QuotedString' => $vendorDir . '/egulias/email-validator/EmailValidator/Warning/QuotedString.php', - 'Egulias\\EmailValidator\\Warning\\TLD' => $vendorDir . '/egulias/email-validator/EmailValidator/Warning/TLD.php', - 'Egulias\\EmailValidator\\Warning\\Warning' => $vendorDir . '/egulias/email-validator/EmailValidator/Warning/Warning.php', - 'EventSeeder' => $baseDir . '/database/seeds/EventSeeder.php', - 'Facebook\\Authentication\\AccessToken' => $vendorDir . '/facebook/graph-sdk/src/Facebook/Authentication/AccessToken.php', - 'Facebook\\Authentication\\AccessTokenMetadata' => $vendorDir . '/facebook/graph-sdk/src/Facebook/Authentication/AccessTokenMetadata.php', - 'Facebook\\Authentication\\OAuth2Client' => $vendorDir . '/facebook/graph-sdk/src/Facebook/Authentication/OAuth2Client.php', - 'Facebook\\Exceptions\\FacebookAuthenticationException' => $vendorDir . '/facebook/graph-sdk/src/Facebook/Exceptions/FacebookAuthenticationException.php', - 'Facebook\\Exceptions\\FacebookAuthorizationException' => $vendorDir . '/facebook/graph-sdk/src/Facebook/Exceptions/FacebookAuthorizationException.php', - 'Facebook\\Exceptions\\FacebookClientException' => $vendorDir . '/facebook/graph-sdk/src/Facebook/Exceptions/FacebookClientException.php', - 'Facebook\\Exceptions\\FacebookOtherException' => $vendorDir . '/facebook/graph-sdk/src/Facebook/Exceptions/FacebookOtherException.php', - 'Facebook\\Exceptions\\FacebookResponseException' => $vendorDir . '/facebook/graph-sdk/src/Facebook/Exceptions/FacebookResponseException.php', - 'Facebook\\Exceptions\\FacebookResumableUploadException' => $vendorDir . '/facebook/graph-sdk/src/Facebook/Exceptions/FacebookResumableUploadException.php', - 'Facebook\\Exceptions\\FacebookSDKException' => $vendorDir . '/facebook/graph-sdk/src/Facebook/Exceptions/FacebookSDKException.php', - 'Facebook\\Exceptions\\FacebookServerException' => $vendorDir . '/facebook/graph-sdk/src/Facebook/Exceptions/FacebookServerException.php', - 'Facebook\\Exceptions\\FacebookThrottleException' => $vendorDir . '/facebook/graph-sdk/src/Facebook/Exceptions/FacebookThrottleException.php', - 'Facebook\\Facebook' => $vendorDir . '/facebook/graph-sdk/src/Facebook/Facebook.php', - 'Facebook\\FacebookApp' => $vendorDir . '/facebook/graph-sdk/src/Facebook/FacebookApp.php', - 'Facebook\\FacebookBatchRequest' => $vendorDir . '/facebook/graph-sdk/src/Facebook/FacebookBatchRequest.php', - 'Facebook\\FacebookBatchResponse' => $vendorDir . '/facebook/graph-sdk/src/Facebook/FacebookBatchResponse.php', - 'Facebook\\FacebookClient' => $vendorDir . '/facebook/graph-sdk/src/Facebook/FacebookClient.php', - 'Facebook\\FacebookRequest' => $vendorDir . '/facebook/graph-sdk/src/Facebook/FacebookRequest.php', - 'Facebook\\FacebookResponse' => $vendorDir . '/facebook/graph-sdk/src/Facebook/FacebookResponse.php', - 'Facebook\\FileUpload\\FacebookFile' => $vendorDir . '/facebook/graph-sdk/src/Facebook/FileUpload/FacebookFile.php', - 'Facebook\\FileUpload\\FacebookResumableUploader' => $vendorDir . '/facebook/graph-sdk/src/Facebook/FileUpload/FacebookResumableUploader.php', - 'Facebook\\FileUpload\\FacebookTransferChunk' => $vendorDir . '/facebook/graph-sdk/src/Facebook/FileUpload/FacebookTransferChunk.php', - 'Facebook\\FileUpload\\FacebookVideo' => $vendorDir . '/facebook/graph-sdk/src/Facebook/FileUpload/FacebookVideo.php', - 'Facebook\\FileUpload\\Mimetypes' => $vendorDir . '/facebook/graph-sdk/src/Facebook/FileUpload/Mimetypes.php', - 'Facebook\\GraphNodes\\Birthday' => $vendorDir . '/facebook/graph-sdk/src/Facebook/GraphNodes/Birthday.php', - 'Facebook\\GraphNodes\\Collection' => $vendorDir . '/facebook/graph-sdk/src/Facebook/GraphNodes/Collection.php', - 'Facebook\\GraphNodes\\GraphAchievement' => $vendorDir . '/facebook/graph-sdk/src/Facebook/GraphNodes/GraphAchievement.php', - 'Facebook\\GraphNodes\\GraphAlbum' => $vendorDir . '/facebook/graph-sdk/src/Facebook/GraphNodes/GraphAlbum.php', - 'Facebook\\GraphNodes\\GraphApplication' => $vendorDir . '/facebook/graph-sdk/src/Facebook/GraphNodes/GraphApplication.php', - 'Facebook\\GraphNodes\\GraphCoverPhoto' => $vendorDir . '/facebook/graph-sdk/src/Facebook/GraphNodes/GraphCoverPhoto.php', - 'Facebook\\GraphNodes\\GraphEdge' => $vendorDir . '/facebook/graph-sdk/src/Facebook/GraphNodes/GraphEdge.php', - 'Facebook\\GraphNodes\\GraphEvent' => $vendorDir . '/facebook/graph-sdk/src/Facebook/GraphNodes/GraphEvent.php', - 'Facebook\\GraphNodes\\GraphGroup' => $vendorDir . '/facebook/graph-sdk/src/Facebook/GraphNodes/GraphGroup.php', - 'Facebook\\GraphNodes\\GraphList' => $vendorDir . '/facebook/graph-sdk/src/Facebook/GraphNodes/GraphList.php', - 'Facebook\\GraphNodes\\GraphLocation' => $vendorDir . '/facebook/graph-sdk/src/Facebook/GraphNodes/GraphLocation.php', - 'Facebook\\GraphNodes\\GraphNode' => $vendorDir . '/facebook/graph-sdk/src/Facebook/GraphNodes/GraphNode.php', - 'Facebook\\GraphNodes\\GraphNodeFactory' => $vendorDir . '/facebook/graph-sdk/src/Facebook/GraphNodes/GraphNodeFactory.php', - 'Facebook\\GraphNodes\\GraphObject' => $vendorDir . '/facebook/graph-sdk/src/Facebook/GraphNodes/GraphObject.php', - 'Facebook\\GraphNodes\\GraphObjectFactory' => $vendorDir . '/facebook/graph-sdk/src/Facebook/GraphNodes/GraphObjectFactory.php', - 'Facebook\\GraphNodes\\GraphPage' => $vendorDir . '/facebook/graph-sdk/src/Facebook/GraphNodes/GraphPage.php', - 'Facebook\\GraphNodes\\GraphPicture' => $vendorDir . '/facebook/graph-sdk/src/Facebook/GraphNodes/GraphPicture.php', - 'Facebook\\GraphNodes\\GraphSessionInfo' => $vendorDir . '/facebook/graph-sdk/src/Facebook/GraphNodes/GraphSessionInfo.php', - 'Facebook\\GraphNodes\\GraphUser' => $vendorDir . '/facebook/graph-sdk/src/Facebook/GraphNodes/GraphUser.php', - 'Facebook\\Helpers\\FacebookCanvasHelper' => $vendorDir . '/facebook/graph-sdk/src/Facebook/Helpers/FacebookCanvasHelper.php', - 'Facebook\\Helpers\\FacebookJavaScriptHelper' => $vendorDir . '/facebook/graph-sdk/src/Facebook/Helpers/FacebookJavaScriptHelper.php', - 'Facebook\\Helpers\\FacebookPageTabHelper' => $vendorDir . '/facebook/graph-sdk/src/Facebook/Helpers/FacebookPageTabHelper.php', - 'Facebook\\Helpers\\FacebookRedirectLoginHelper' => $vendorDir . '/facebook/graph-sdk/src/Facebook/Helpers/FacebookRedirectLoginHelper.php', - 'Facebook\\Helpers\\FacebookSignedRequestFromInputHelper' => $vendorDir . '/facebook/graph-sdk/src/Facebook/Helpers/FacebookSignedRequestFromInputHelper.php', - 'Facebook\\HttpClients\\FacebookCurl' => $vendorDir . '/facebook/graph-sdk/src/Facebook/HttpClients/FacebookCurl.php', - 'Facebook\\HttpClients\\FacebookCurlHttpClient' => $vendorDir . '/facebook/graph-sdk/src/Facebook/HttpClients/FacebookCurlHttpClient.php', - 'Facebook\\HttpClients\\FacebookGuzzleHttpClient' => $vendorDir . '/facebook/graph-sdk/src/Facebook/HttpClients/FacebookGuzzleHttpClient.php', - 'Facebook\\HttpClients\\FacebookHttpClientInterface' => $vendorDir . '/facebook/graph-sdk/src/Facebook/HttpClients/FacebookHttpClientInterface.php', - 'Facebook\\HttpClients\\FacebookStream' => $vendorDir . '/facebook/graph-sdk/src/Facebook/HttpClients/FacebookStream.php', - 'Facebook\\HttpClients\\FacebookStreamHttpClient' => $vendorDir . '/facebook/graph-sdk/src/Facebook/HttpClients/FacebookStreamHttpClient.php', - 'Facebook\\HttpClients\\HttpClientsFactory' => $vendorDir . '/facebook/graph-sdk/src/Facebook/HttpClients/HttpClientsFactory.php', - 'Facebook\\Http\\GraphRawResponse' => $vendorDir . '/facebook/graph-sdk/src/Facebook/Http/GraphRawResponse.php', - 'Facebook\\Http\\RequestBodyInterface' => $vendorDir . '/facebook/graph-sdk/src/Facebook/Http/RequestBodyInterface.php', - 'Facebook\\Http\\RequestBodyMultipart' => $vendorDir . '/facebook/graph-sdk/src/Facebook/Http/RequestBodyMultipart.php', - 'Facebook\\Http\\RequestBodyUrlEncoded' => $vendorDir . '/facebook/graph-sdk/src/Facebook/Http/RequestBodyUrlEncoded.php', - 'Facebook\\PersistentData\\FacebookMemoryPersistentDataHandler' => $vendorDir . '/facebook/graph-sdk/src/Facebook/PersistentData/FacebookMemoryPersistentDataHandler.php', - 'Facebook\\PersistentData\\FacebookSessionPersistentDataHandler' => $vendorDir . '/facebook/graph-sdk/src/Facebook/PersistentData/FacebookSessionPersistentDataHandler.php', - 'Facebook\\PersistentData\\PersistentDataFactory' => $vendorDir . '/facebook/graph-sdk/src/Facebook/PersistentData/PersistentDataFactory.php', - 'Facebook\\PersistentData\\PersistentDataInterface' => $vendorDir . '/facebook/graph-sdk/src/Facebook/PersistentData/PersistentDataInterface.php', - 'Facebook\\PseudoRandomString\\McryptPseudoRandomStringGenerator' => $vendorDir . '/facebook/graph-sdk/src/Facebook/PseudoRandomString/McryptPseudoRandomStringGenerator.php', - 'Facebook\\PseudoRandomString\\OpenSslPseudoRandomStringGenerator' => $vendorDir . '/facebook/graph-sdk/src/Facebook/PseudoRandomString/OpenSslPseudoRandomStringGenerator.php', - 'Facebook\\PseudoRandomString\\PseudoRandomStringGeneratorFactory' => $vendorDir . '/facebook/graph-sdk/src/Facebook/PseudoRandomString/PseudoRandomStringGeneratorFactory.php', - 'Facebook\\PseudoRandomString\\PseudoRandomStringGeneratorInterface' => $vendorDir . '/facebook/graph-sdk/src/Facebook/PseudoRandomString/PseudoRandomStringGeneratorInterface.php', - 'Facebook\\PseudoRandomString\\PseudoRandomStringGeneratorTrait' => $vendorDir . '/facebook/graph-sdk/src/Facebook/PseudoRandomString/PseudoRandomStringGeneratorTrait.php', - 'Facebook\\PseudoRandomString\\RandomBytesPseudoRandomStringGenerator' => $vendorDir . '/facebook/graph-sdk/src/Facebook/PseudoRandomString/RandomBytesPseudoRandomStringGenerator.php', - 'Facebook\\PseudoRandomString\\UrandomPseudoRandomStringGenerator' => $vendorDir . '/facebook/graph-sdk/src/Facebook/PseudoRandomString/UrandomPseudoRandomStringGenerator.php', - 'Facebook\\SignedRequest' => $vendorDir . '/facebook/graph-sdk/src/Facebook/SignedRequest.php', - 'Facebook\\Url\\FacebookUrlDetectionHandler' => $vendorDir . '/facebook/graph-sdk/src/Facebook/Url/FacebookUrlDetectionHandler.php', - 'Facebook\\Url\\FacebookUrlManipulator' => $vendorDir . '/facebook/graph-sdk/src/Facebook/Url/FacebookUrlManipulator.php', - 'Facebook\\Url\\UrlDetectionInterface' => $vendorDir . '/facebook/graph-sdk/src/Facebook/Url/UrlDetectionInterface.php', - 'Faker\\Calculator\\Iban' => $vendorDir . '/fzaninotto/faker/src/Faker/Calculator/Iban.php', - 'Faker\\Calculator\\Inn' => $vendorDir . '/fzaninotto/faker/src/Faker/Calculator/Inn.php', - 'Faker\\Calculator\\Luhn' => $vendorDir . '/fzaninotto/faker/src/Faker/Calculator/Luhn.php', - 'Faker\\Calculator\\TCNo' => $vendorDir . '/fzaninotto/faker/src/Faker/Calculator/TCNo.php', - 'Faker\\DefaultGenerator' => $vendorDir . '/fzaninotto/faker/src/Faker/DefaultGenerator.php', - 'Faker\\Documentor' => $vendorDir . '/fzaninotto/faker/src/Faker/Documentor.php', - 'Faker\\Factory' => $vendorDir . '/fzaninotto/faker/src/Faker/Factory.php', - 'Faker\\Generator' => $vendorDir . '/fzaninotto/faker/src/Faker/Generator.php', - 'Faker\\Guesser\\Name' => $vendorDir . '/fzaninotto/faker/src/Faker/Guesser/Name.php', - 'Faker\\ORM\\CakePHP\\ColumnTypeGuesser' => $vendorDir . '/fzaninotto/faker/src/Faker/ORM/CakePHP/ColumnTypeGuesser.php', - 'Faker\\ORM\\CakePHP\\EntityPopulator' => $vendorDir . '/fzaninotto/faker/src/Faker/ORM/CakePHP/EntityPopulator.php', - 'Faker\\ORM\\CakePHP\\Populator' => $vendorDir . '/fzaninotto/faker/src/Faker/ORM/CakePHP/Populator.php', - 'Faker\\ORM\\Doctrine\\ColumnTypeGuesser' => $vendorDir . '/fzaninotto/faker/src/Faker/ORM/Doctrine/ColumnTypeGuesser.php', - 'Faker\\ORM\\Doctrine\\EntityPopulator' => $vendorDir . '/fzaninotto/faker/src/Faker/ORM/Doctrine/EntityPopulator.php', - 'Faker\\ORM\\Doctrine\\Populator' => $vendorDir . '/fzaninotto/faker/src/Faker/ORM/Doctrine/Populator.php', - 'Faker\\ORM\\Mandango\\ColumnTypeGuesser' => $vendorDir . '/fzaninotto/faker/src/Faker/ORM/Mandango/ColumnTypeGuesser.php', - 'Faker\\ORM\\Mandango\\EntityPopulator' => $vendorDir . '/fzaninotto/faker/src/Faker/ORM/Mandango/EntityPopulator.php', - 'Faker\\ORM\\Mandango\\Populator' => $vendorDir . '/fzaninotto/faker/src/Faker/ORM/Mandango/Populator.php', - 'Faker\\ORM\\Propel2\\ColumnTypeGuesser' => $vendorDir . '/fzaninotto/faker/src/Faker/ORM/Propel2/ColumnTypeGuesser.php', - 'Faker\\ORM\\Propel2\\EntityPopulator' => $vendorDir . '/fzaninotto/faker/src/Faker/ORM/Propel2/EntityPopulator.php', - 'Faker\\ORM\\Propel2\\Populator' => $vendorDir . '/fzaninotto/faker/src/Faker/ORM/Propel2/Populator.php', - 'Faker\\ORM\\Propel\\ColumnTypeGuesser' => $vendorDir . '/fzaninotto/faker/src/Faker/ORM/Propel/ColumnTypeGuesser.php', - 'Faker\\ORM\\Propel\\EntityPopulator' => $vendorDir . '/fzaninotto/faker/src/Faker/ORM/Propel/EntityPopulator.php', - 'Faker\\ORM\\Propel\\Populator' => $vendorDir . '/fzaninotto/faker/src/Faker/ORM/Propel/Populator.php', - 'Faker\\ORM\\Spot\\ColumnTypeGuesser' => $vendorDir . '/fzaninotto/faker/src/Faker/ORM/Spot/ColumnTypeGuesser.php', - 'Faker\\ORM\\Spot\\EntityPopulator' => $vendorDir . '/fzaninotto/faker/src/Faker/ORM/Spot/EntityPopulator.php', - 'Faker\\ORM\\Spot\\Populator' => $vendorDir . '/fzaninotto/faker/src/Faker/ORM/Spot/Populator.php', - 'Faker\\Provider\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/Address.php', - 'Faker\\Provider\\Barcode' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/Barcode.php', - 'Faker\\Provider\\Base' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/Base.php', - 'Faker\\Provider\\Biased' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/Biased.php', - 'Faker\\Provider\\Color' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/Color.php', - 'Faker\\Provider\\Company' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/Company.php', - 'Faker\\Provider\\DateTime' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/DateTime.php', - 'Faker\\Provider\\File' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/File.php', - 'Faker\\Provider\\HtmlLorem' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/HtmlLorem.php', - 'Faker\\Provider\\Image' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/Image.php', - 'Faker\\Provider\\Internet' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/Internet.php', - 'Faker\\Provider\\Lorem' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/Lorem.php', - 'Faker\\Provider\\Miscellaneous' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/Miscellaneous.php', - 'Faker\\Provider\\Payment' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/Payment.php', - 'Faker\\Provider\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/Person.php', - 'Faker\\Provider\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/PhoneNumber.php', - 'Faker\\Provider\\Text' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/Text.php', - 'Faker\\Provider\\UserAgent' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/UserAgent.php', - 'Faker\\Provider\\Uuid' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/Uuid.php', - 'Faker\\Provider\\ar_JO\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ar_JO/Address.php', - 'Faker\\Provider\\ar_JO\\Company' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ar_JO/Company.php', - 'Faker\\Provider\\ar_JO\\Internet' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ar_JO/Internet.php', - 'Faker\\Provider\\ar_JO\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ar_JO/Person.php', - 'Faker\\Provider\\ar_JO\\Text' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ar_JO/Text.php', - 'Faker\\Provider\\ar_SA\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ar_SA/Address.php', - 'Faker\\Provider\\ar_SA\\Color' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ar_SA/Color.php', - 'Faker\\Provider\\ar_SA\\Company' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ar_SA/Company.php', - 'Faker\\Provider\\ar_SA\\Internet' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ar_SA/Internet.php', - 'Faker\\Provider\\ar_SA\\Payment' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ar_SA/Payment.php', - 'Faker\\Provider\\ar_SA\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ar_SA/Person.php', - 'Faker\\Provider\\ar_SA\\Text' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ar_SA/Text.php', - 'Faker\\Provider\\at_AT\\Payment' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/at_AT/Payment.php', - 'Faker\\Provider\\bg_BG\\Internet' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/bg_BG/Internet.php', - 'Faker\\Provider\\bg_BG\\Payment' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/bg_BG/Payment.php', - 'Faker\\Provider\\bg_BG\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/bg_BG/Person.php', - 'Faker\\Provider\\bg_BG\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/bg_BG/PhoneNumber.php', - 'Faker\\Provider\\bn_BD\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/bn_BD/Address.php', - 'Faker\\Provider\\bn_BD\\Company' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/bn_BD/Company.php', - 'Faker\\Provider\\bn_BD\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/bn_BD/Person.php', - 'Faker\\Provider\\bn_BD\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/bn_BD/PhoneNumber.php', - 'Faker\\Provider\\bn_BD\\Utils' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/bn_BD/Utils.php', - 'Faker\\Provider\\cs_CZ\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/cs_CZ/Address.php', - 'Faker\\Provider\\cs_CZ\\Company' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/cs_CZ/Company.php', - 'Faker\\Provider\\cs_CZ\\DateTime' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/cs_CZ/DateTime.php', - 'Faker\\Provider\\cs_CZ\\Internet' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/cs_CZ/Internet.php', - 'Faker\\Provider\\cs_CZ\\Payment' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/cs_CZ/Payment.php', - 'Faker\\Provider\\cs_CZ\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/cs_CZ/Person.php', - 'Faker\\Provider\\cs_CZ\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/cs_CZ/PhoneNumber.php', - 'Faker\\Provider\\cs_CZ\\Text' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/cs_CZ/Text.php', - 'Faker\\Provider\\da_DK\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/da_DK/Address.php', - 'Faker\\Provider\\da_DK\\Company' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/da_DK/Company.php', - 'Faker\\Provider\\da_DK\\Internet' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/da_DK/Internet.php', - 'Faker\\Provider\\da_DK\\Payment' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/da_DK/Payment.php', - 'Faker\\Provider\\da_DK\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/da_DK/Person.php', - 'Faker\\Provider\\da_DK\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/da_DK/PhoneNumber.php', - 'Faker\\Provider\\de_AT\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/de_AT/Address.php', - 'Faker\\Provider\\de_AT\\Company' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/de_AT/Company.php', - 'Faker\\Provider\\de_AT\\Internet' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/de_AT/Internet.php', - 'Faker\\Provider\\de_AT\\Payment' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/de_AT/Payment.php', - 'Faker\\Provider\\de_AT\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/de_AT/Person.php', - 'Faker\\Provider\\de_AT\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/de_AT/PhoneNumber.php', - 'Faker\\Provider\\de_AT\\Text' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/de_AT/Text.php', - 'Faker\\Provider\\de_CH\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/de_CH/Address.php', - 'Faker\\Provider\\de_CH\\Company' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/de_CH/Company.php', - 'Faker\\Provider\\de_CH\\Internet' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/de_CH/Internet.php', - 'Faker\\Provider\\de_CH\\Payment' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/de_CH/Payment.php', - 'Faker\\Provider\\de_CH\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/de_CH/Person.php', - 'Faker\\Provider\\de_CH\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/de_CH/PhoneNumber.php', - 'Faker\\Provider\\de_CH\\Text' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/de_CH/Text.php', - 'Faker\\Provider\\de_DE\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/de_DE/Address.php', - 'Faker\\Provider\\de_DE\\Company' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/de_DE/Company.php', - 'Faker\\Provider\\de_DE\\Internet' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/de_DE/Internet.php', - 'Faker\\Provider\\de_DE\\Payment' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/de_DE/Payment.php', - 'Faker\\Provider\\de_DE\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/de_DE/Person.php', - 'Faker\\Provider\\de_DE\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/de_DE/PhoneNumber.php', - 'Faker\\Provider\\de_DE\\Text' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/de_DE/Text.php', - 'Faker\\Provider\\el_CY\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/el_CY/Address.php', - 'Faker\\Provider\\el_CY\\Company' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/el_CY/Company.php', - 'Faker\\Provider\\el_CY\\Internet' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/el_CY/Internet.php', - 'Faker\\Provider\\el_CY\\Payment' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/el_CY/Payment.php', - 'Faker\\Provider\\el_CY\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/el_CY/Person.php', - 'Faker\\Provider\\el_CY\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/el_CY/PhoneNumber.php', - 'Faker\\Provider\\el_GR\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/el_GR/Address.php', - 'Faker\\Provider\\el_GR\\Company' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/el_GR/Company.php', - 'Faker\\Provider\\el_GR\\Payment' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/el_GR/Payment.php', - 'Faker\\Provider\\el_GR\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/el_GR/Person.php', - 'Faker\\Provider\\el_GR\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/el_GR/PhoneNumber.php', - 'Faker\\Provider\\el_GR\\Text' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/el_GR/Text.php', - 'Faker\\Provider\\en_AU\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/en_AU/Address.php', - 'Faker\\Provider\\en_AU\\Internet' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/en_AU/Internet.php', - 'Faker\\Provider\\en_AU\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/en_AU/PhoneNumber.php', - 'Faker\\Provider\\en_CA\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/en_CA/Address.php', - 'Faker\\Provider\\en_CA\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/en_CA/PhoneNumber.php', - 'Faker\\Provider\\en_GB\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/en_GB/Address.php', - 'Faker\\Provider\\en_GB\\Internet' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/en_GB/Internet.php', - 'Faker\\Provider\\en_GB\\Payment' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/en_GB/Payment.php', - 'Faker\\Provider\\en_GB\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/en_GB/Person.php', - 'Faker\\Provider\\en_GB\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/en_GB/PhoneNumber.php', - 'Faker\\Provider\\en_HK\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/en_HK/Address.php', - 'Faker\\Provider\\en_HK\\Internet' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/en_HK/Internet.php', - 'Faker\\Provider\\en_HK\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/en_HK/PhoneNumber.php', - 'Faker\\Provider\\en_IN\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/en_IN/Address.php', - 'Faker\\Provider\\en_IN\\Internet' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/en_IN/Internet.php', - 'Faker\\Provider\\en_IN\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/en_IN/Person.php', - 'Faker\\Provider\\en_IN\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/en_IN/PhoneNumber.php', - 'Faker\\Provider\\en_NG\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/en_NG/Address.php', - 'Faker\\Provider\\en_NG\\Internet' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/en_NG/Internet.php', - 'Faker\\Provider\\en_NG\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/en_NG/Person.php', - 'Faker\\Provider\\en_NG\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/en_NG/PhoneNumber.php', - 'Faker\\Provider\\en_NZ\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/en_NZ/Address.php', - 'Faker\\Provider\\en_NZ\\Internet' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/en_NZ/Internet.php', - 'Faker\\Provider\\en_NZ\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/en_NZ/PhoneNumber.php', - 'Faker\\Provider\\en_PH\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/en_PH/Address.php', - 'Faker\\Provider\\en_PH\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/en_PH/PhoneNumber.php', - 'Faker\\Provider\\en_SG\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/en_SG/Address.php', - 'Faker\\Provider\\en_SG\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/en_SG/PhoneNumber.php', - 'Faker\\Provider\\en_UG\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/en_UG/Address.php', - 'Faker\\Provider\\en_UG\\Internet' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/en_UG/Internet.php', - 'Faker\\Provider\\en_UG\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/en_UG/Person.php', - 'Faker\\Provider\\en_UG\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/en_UG/PhoneNumber.php', - 'Faker\\Provider\\en_US\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/en_US/Address.php', - 'Faker\\Provider\\en_US\\Company' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/en_US/Company.php', - 'Faker\\Provider\\en_US\\Payment' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/en_US/Payment.php', - 'Faker\\Provider\\en_US\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/en_US/Person.php', - 'Faker\\Provider\\en_US\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/en_US/PhoneNumber.php', - 'Faker\\Provider\\en_US\\Text' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/en_US/Text.php', - 'Faker\\Provider\\en_ZA\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/en_ZA/Address.php', - 'Faker\\Provider\\en_ZA\\Company' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/en_ZA/Company.php', - 'Faker\\Provider\\en_ZA\\Internet' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/en_ZA/Internet.php', - 'Faker\\Provider\\en_ZA\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/en_ZA/Person.php', - 'Faker\\Provider\\en_ZA\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/en_ZA/PhoneNumber.php', - 'Faker\\Provider\\es_AR\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/es_AR/Address.php', - 'Faker\\Provider\\es_AR\\Company' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/es_AR/Company.php', - 'Faker\\Provider\\es_AR\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/es_AR/Person.php', - 'Faker\\Provider\\es_AR\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/es_AR/PhoneNumber.php', - 'Faker\\Provider\\es_ES\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/es_ES/Address.php', - 'Faker\\Provider\\es_ES\\Company' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/es_ES/Company.php', - 'Faker\\Provider\\es_ES\\Internet' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/es_ES/Internet.php', - 'Faker\\Provider\\es_ES\\Payment' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/es_ES/Payment.php', - 'Faker\\Provider\\es_ES\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/es_ES/Person.php', - 'Faker\\Provider\\es_ES\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/es_ES/PhoneNumber.php', - 'Faker\\Provider\\es_ES\\Text' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/es_ES/Text.php', - 'Faker\\Provider\\es_PE\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/es_PE/Address.php', - 'Faker\\Provider\\es_PE\\Company' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/es_PE/Company.php', - 'Faker\\Provider\\es_PE\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/es_PE/Person.php', - 'Faker\\Provider\\es_PE\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/es_PE/PhoneNumber.php', - 'Faker\\Provider\\es_VE\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/es_VE/Address.php', - 'Faker\\Provider\\es_VE\\Company' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/es_VE/Company.php', - 'Faker\\Provider\\es_VE\\Internet' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/es_VE/Internet.php', - 'Faker\\Provider\\es_VE\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/es_VE/Person.php', - 'Faker\\Provider\\es_VE\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/es_VE/PhoneNumber.php', - 'Faker\\Provider\\fa_IR\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/fa_IR/Address.php', - 'Faker\\Provider\\fa_IR\\Company' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/fa_IR/Company.php', - 'Faker\\Provider\\fa_IR\\Internet' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/fa_IR/Internet.php', - 'Faker\\Provider\\fa_IR\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/fa_IR/Person.php', - 'Faker\\Provider\\fa_IR\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/fa_IR/PhoneNumber.php', - 'Faker\\Provider\\fa_IR\\Text' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/fa_IR/Text.php', - 'Faker\\Provider\\fi_FI\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/fi_FI/Address.php', - 'Faker\\Provider\\fi_FI\\Company' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/fi_FI/Company.php', - 'Faker\\Provider\\fi_FI\\Internet' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/fi_FI/Internet.php', - 'Faker\\Provider\\fi_FI\\Payment' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/fi_FI/Payment.php', - 'Faker\\Provider\\fi_FI\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/fi_FI/Person.php', - 'Faker\\Provider\\fi_FI\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/fi_FI/PhoneNumber.php', - 'Faker\\Provider\\fr_BE\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/fr_BE/Address.php', - 'Faker\\Provider\\fr_BE\\Company' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/fr_BE/Company.php', - 'Faker\\Provider\\fr_BE\\Internet' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/fr_BE/Internet.php', - 'Faker\\Provider\\fr_BE\\Payment' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/fr_BE/Payment.php', - 'Faker\\Provider\\fr_BE\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/fr_BE/Person.php', - 'Faker\\Provider\\fr_BE\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/fr_BE/PhoneNumber.php', - 'Faker\\Provider\\fr_CA\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/fr_CA/Address.php', - 'Faker\\Provider\\fr_CA\\Company' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/fr_CA/Company.php', - 'Faker\\Provider\\fr_CA\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/fr_CA/Person.php', - 'Faker\\Provider\\fr_CH\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/fr_CH/Address.php', - 'Faker\\Provider\\fr_CH\\Company' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/fr_CH/Company.php', - 'Faker\\Provider\\fr_CH\\Internet' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/fr_CH/Internet.php', - 'Faker\\Provider\\fr_CH\\Payment' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/fr_CH/Payment.php', - 'Faker\\Provider\\fr_CH\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/fr_CH/Person.php', - 'Faker\\Provider\\fr_CH\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/fr_CH/PhoneNumber.php', - 'Faker\\Provider\\fr_CH\\Text' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/fr_CH/Text.php', - 'Faker\\Provider\\fr_FR\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/fr_FR/Address.php', - 'Faker\\Provider\\fr_FR\\Company' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/fr_FR/Company.php', - 'Faker\\Provider\\fr_FR\\Internet' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/fr_FR/Internet.php', - 'Faker\\Provider\\fr_FR\\Payment' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/fr_FR/Payment.php', - 'Faker\\Provider\\fr_FR\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/fr_FR/Person.php', - 'Faker\\Provider\\fr_FR\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/fr_FR/PhoneNumber.php', - 'Faker\\Provider\\fr_FR\\Text' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/fr_FR/Text.php', - 'Faker\\Provider\\he_IL\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/he_IL/Address.php', - 'Faker\\Provider\\he_IL\\Company' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/he_IL/Company.php', - 'Faker\\Provider\\he_IL\\Payment' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/he_IL/Payment.php', - 'Faker\\Provider\\he_IL\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/he_IL/Person.php', - 'Faker\\Provider\\he_IL\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/he_IL/PhoneNumber.php', - 'Faker\\Provider\\hr_HR\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/hr_HR/Address.php', - 'Faker\\Provider\\hr_HR\\Company' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/hr_HR/Company.php', - 'Faker\\Provider\\hr_HR\\Payment' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/hr_HR/Payment.php', - 'Faker\\Provider\\hr_HR\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/hr_HR/Person.php', - 'Faker\\Provider\\hr_HR\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/hr_HR/PhoneNumber.php', - 'Faker\\Provider\\hu_HU\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/hu_HU/Address.php', - 'Faker\\Provider\\hu_HU\\Company' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/hu_HU/Company.php', - 'Faker\\Provider\\hu_HU\\Payment' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/hu_HU/Payment.php', - 'Faker\\Provider\\hu_HU\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/hu_HU/Person.php', - 'Faker\\Provider\\hu_HU\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/hu_HU/PhoneNumber.php', - 'Faker\\Provider\\hu_HU\\Text' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/hu_HU/Text.php', - 'Faker\\Provider\\hy_AM\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/hy_AM/Address.php', - 'Faker\\Provider\\hy_AM\\Color' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/hy_AM/Color.php', - 'Faker\\Provider\\hy_AM\\Company' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/hy_AM/Company.php', - 'Faker\\Provider\\hy_AM\\Internet' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/hy_AM/Internet.php', - 'Faker\\Provider\\hy_AM\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/hy_AM/Person.php', - 'Faker\\Provider\\hy_AM\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/hy_AM/PhoneNumber.php', - 'Faker\\Provider\\id_ID\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/id_ID/Address.php', - 'Faker\\Provider\\id_ID\\Company' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/id_ID/Company.php', - 'Faker\\Provider\\id_ID\\Internet' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/id_ID/Internet.php', - 'Faker\\Provider\\id_ID\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/id_ID/Person.php', - 'Faker\\Provider\\id_ID\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/id_ID/PhoneNumber.php', - 'Faker\\Provider\\is_IS\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/is_IS/Address.php', - 'Faker\\Provider\\is_IS\\Company' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/is_IS/Company.php', - 'Faker\\Provider\\is_IS\\Internet' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/is_IS/Internet.php', - 'Faker\\Provider\\is_IS\\Payment' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/is_IS/Payment.php', - 'Faker\\Provider\\is_IS\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/is_IS/Person.php', - 'Faker\\Provider\\is_IS\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/is_IS/PhoneNumber.php', - 'Faker\\Provider\\it_CH\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/it_CH/Address.php', - 'Faker\\Provider\\it_CH\\Company' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/it_CH/Company.php', - 'Faker\\Provider\\it_CH\\Internet' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/it_CH/Internet.php', - 'Faker\\Provider\\it_CH\\Payment' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/it_CH/Payment.php', - 'Faker\\Provider\\it_CH\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/it_CH/Person.php', - 'Faker\\Provider\\it_CH\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/it_CH/PhoneNumber.php', - 'Faker\\Provider\\it_CH\\Text' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/it_CH/Text.php', - 'Faker\\Provider\\it_IT\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/it_IT/Address.php', - 'Faker\\Provider\\it_IT\\Company' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/it_IT/Company.php', - 'Faker\\Provider\\it_IT\\Internet' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/it_IT/Internet.php', - 'Faker\\Provider\\it_IT\\Payment' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/it_IT/Payment.php', - 'Faker\\Provider\\it_IT\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/it_IT/Person.php', - 'Faker\\Provider\\it_IT\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/it_IT/PhoneNumber.php', - 'Faker\\Provider\\it_IT\\Text' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/it_IT/Text.php', - 'Faker\\Provider\\ja_JP\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ja_JP/Address.php', - 'Faker\\Provider\\ja_JP\\Company' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ja_JP/Company.php', - 'Faker\\Provider\\ja_JP\\Internet' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ja_JP/Internet.php', - 'Faker\\Provider\\ja_JP\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ja_JP/Person.php', - 'Faker\\Provider\\ja_JP\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ja_JP/PhoneNumber.php', - 'Faker\\Provider\\ja_JP\\Text' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ja_JP/Text.php', - 'Faker\\Provider\\ka_GE\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ka_GE/Address.php', - 'Faker\\Provider\\ka_GE\\Color' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ka_GE/Color.php', - 'Faker\\Provider\\ka_GE\\Company' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ka_GE/Company.php', - 'Faker\\Provider\\ka_GE\\DateTime' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ka_GE/DateTime.php', - 'Faker\\Provider\\ka_GE\\Internet' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ka_GE/Internet.php', - 'Faker\\Provider\\ka_GE\\Payment' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ka_GE/Payment.php', - 'Faker\\Provider\\ka_GE\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ka_GE/Person.php', - 'Faker\\Provider\\ka_GE\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ka_GE/PhoneNumber.php', - 'Faker\\Provider\\ka_GE\\Text' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ka_GE/Text.php', - 'Faker\\Provider\\kk_KZ\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/kk_KZ/Address.php', - 'Faker\\Provider\\kk_KZ\\Color' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/kk_KZ/Color.php', - 'Faker\\Provider\\kk_KZ\\Company' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/kk_KZ/Company.php', - 'Faker\\Provider\\kk_KZ\\Internet' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/kk_KZ/Internet.php', - 'Faker\\Provider\\kk_KZ\\Payment' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/kk_KZ/Payment.php', - 'Faker\\Provider\\kk_KZ\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/kk_KZ/Person.php', - 'Faker\\Provider\\kk_KZ\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/kk_KZ/PhoneNumber.php', - 'Faker\\Provider\\kk_KZ\\Text' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/kk_KZ/Text.php', - 'Faker\\Provider\\ko_KR\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ko_KR/Address.php', - 'Faker\\Provider\\ko_KR\\Company' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ko_KR/Company.php', - 'Faker\\Provider\\ko_KR\\Internet' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ko_KR/Internet.php', - 'Faker\\Provider\\ko_KR\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ko_KR/Person.php', - 'Faker\\Provider\\ko_KR\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ko_KR/PhoneNumber.php', - 'Faker\\Provider\\ko_KR\\Text' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ko_KR/Text.php', - 'Faker\\Provider\\lt_LT\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/lt_LT/Address.php', - 'Faker\\Provider\\lt_LT\\Company' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/lt_LT/Company.php', - 'Faker\\Provider\\lt_LT\\Internet' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/lt_LT/Internet.php', - 'Faker\\Provider\\lt_LT\\Payment' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/lt_LT/Payment.php', - 'Faker\\Provider\\lt_LT\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/lt_LT/Person.php', - 'Faker\\Provider\\lt_LT\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/lt_LT/PhoneNumber.php', - 'Faker\\Provider\\lv_LV\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/lv_LV/Address.php', - 'Faker\\Provider\\lv_LV\\Color' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/lv_LV/Color.php', - 'Faker\\Provider\\lv_LV\\Internet' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/lv_LV/Internet.php', - 'Faker\\Provider\\lv_LV\\Payment' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/lv_LV/Payment.php', - 'Faker\\Provider\\lv_LV\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/lv_LV/Person.php', - 'Faker\\Provider\\lv_LV\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/lv_LV/PhoneNumber.php', - 'Faker\\Provider\\me_ME\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/me_ME/Address.php', - 'Faker\\Provider\\me_ME\\Company' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/me_ME/Company.php', - 'Faker\\Provider\\me_ME\\Payment' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/me_ME/Payment.php', - 'Faker\\Provider\\me_ME\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/me_ME/Person.php', - 'Faker\\Provider\\me_ME\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/me_ME/PhoneNumber.php', - 'Faker\\Provider\\mn_MN\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/mn_MN/Person.php', - 'Faker\\Provider\\mn_MN\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/mn_MN/PhoneNumber.php', - 'Faker\\Provider\\ms_MY\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ms_MY/Address.php', - 'Faker\\Provider\\ms_MY\\Company' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ms_MY/Company.php', - 'Faker\\Provider\\ms_MY\\Miscellaneous' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ms_MY/Miscellaneous.php', - 'Faker\\Provider\\ms_MY\\Payment' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ms_MY/Payment.php', - 'Faker\\Provider\\ms_MY\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ms_MY/Person.php', - 'Faker\\Provider\\ms_MY\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ms_MY/PhoneNumber.php', - 'Faker\\Provider\\nb_NO\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/nb_NO/Address.php', - 'Faker\\Provider\\nb_NO\\Company' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/nb_NO/Company.php', - 'Faker\\Provider\\nb_NO\\Payment' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/nb_NO/Payment.php', - 'Faker\\Provider\\nb_NO\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/nb_NO/Person.php', - 'Faker\\Provider\\nb_NO\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/nb_NO/PhoneNumber.php', - 'Faker\\Provider\\ne_NP\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ne_NP/Address.php', - 'Faker\\Provider\\ne_NP\\Internet' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ne_NP/Internet.php', - 'Faker\\Provider\\ne_NP\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ne_NP/Person.php', - 'Faker\\Provider\\ne_NP\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ne_NP/PhoneNumber.php', - 'Faker\\Provider\\nl_BE\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/nl_BE/Address.php', - 'Faker\\Provider\\nl_BE\\Company' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/nl_BE/Company.php', - 'Faker\\Provider\\nl_BE\\Internet' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/nl_BE/Internet.php', - 'Faker\\Provider\\nl_BE\\Payment' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/nl_BE/Payment.php', - 'Faker\\Provider\\nl_BE\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/nl_BE/Person.php', - 'Faker\\Provider\\nl_BE\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/nl_BE/PhoneNumber.php', - 'Faker\\Provider\\nl_NL\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/nl_NL/Address.php', - 'Faker\\Provider\\nl_NL\\Color' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/nl_NL/Color.php', - 'Faker\\Provider\\nl_NL\\Company' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/nl_NL/Company.php', - 'Faker\\Provider\\nl_NL\\Internet' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/nl_NL/Internet.php', - 'Faker\\Provider\\nl_NL\\Payment' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/nl_NL/Payment.php', - 'Faker\\Provider\\nl_NL\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/nl_NL/Person.php', - 'Faker\\Provider\\nl_NL\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/nl_NL/PhoneNumber.php', - 'Faker\\Provider\\nl_NL\\Text' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/nl_NL/Text.php', - 'Faker\\Provider\\pl_PL\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/pl_PL/Address.php', - 'Faker\\Provider\\pl_PL\\Company' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/pl_PL/Company.php', - 'Faker\\Provider\\pl_PL\\Internet' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/pl_PL/Internet.php', - 'Faker\\Provider\\pl_PL\\Payment' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/pl_PL/Payment.php', - 'Faker\\Provider\\pl_PL\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/pl_PL/Person.php', - 'Faker\\Provider\\pl_PL\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/pl_PL/PhoneNumber.php', - 'Faker\\Provider\\pl_PL\\Text' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/pl_PL/Text.php', - 'Faker\\Provider\\pt_BR\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/pt_BR/Address.php', - 'Faker\\Provider\\pt_BR\\Company' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/pt_BR/Company.php', - 'Faker\\Provider\\pt_BR\\Internet' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/pt_BR/Internet.php', - 'Faker\\Provider\\pt_BR\\Payment' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/pt_BR/Payment.php', - 'Faker\\Provider\\pt_BR\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/pt_BR/Person.php', - 'Faker\\Provider\\pt_BR\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/pt_BR/PhoneNumber.php', - 'Faker\\Provider\\pt_PT\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/pt_PT/Address.php', - 'Faker\\Provider\\pt_PT\\Payment' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/pt_PT/Payment.php', - 'Faker\\Provider\\pt_PT\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/pt_PT/Person.php', - 'Faker\\Provider\\pt_PT\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/pt_PT/PhoneNumber.php', - 'Faker\\Provider\\ro_MD\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ro_MD/Address.php', - 'Faker\\Provider\\ro_MD\\Payment' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ro_MD/Payment.php', - 'Faker\\Provider\\ro_MD\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ro_MD/Person.php', - 'Faker\\Provider\\ro_MD\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ro_MD/PhoneNumber.php', - 'Faker\\Provider\\ro_MD\\Text' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ro_MD/Text.php', - 'Faker\\Provider\\ro_RO\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ro_RO/Address.php', - 'Faker\\Provider\\ro_RO\\Payment' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ro_RO/Payment.php', - 'Faker\\Provider\\ro_RO\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ro_RO/Person.php', - 'Faker\\Provider\\ro_RO\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ro_RO/PhoneNumber.php', - 'Faker\\Provider\\ro_RO\\Text' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ro_RO/Text.php', - 'Faker\\Provider\\ru_RU\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ru_RU/Address.php', - 'Faker\\Provider\\ru_RU\\Color' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ru_RU/Color.php', - 'Faker\\Provider\\ru_RU\\Company' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ru_RU/Company.php', - 'Faker\\Provider\\ru_RU\\Internet' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ru_RU/Internet.php', - 'Faker\\Provider\\ru_RU\\Payment' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ru_RU/Payment.php', - 'Faker\\Provider\\ru_RU\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ru_RU/Person.php', - 'Faker\\Provider\\ru_RU\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ru_RU/PhoneNumber.php', - 'Faker\\Provider\\ru_RU\\Text' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ru_RU/Text.php', - 'Faker\\Provider\\sk_SK\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/sk_SK/Address.php', - 'Faker\\Provider\\sk_SK\\Company' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/sk_SK/Company.php', - 'Faker\\Provider\\sk_SK\\Internet' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/sk_SK/Internet.php', - 'Faker\\Provider\\sk_SK\\Payment' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/sk_SK/Payment.php', - 'Faker\\Provider\\sk_SK\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/sk_SK/Person.php', - 'Faker\\Provider\\sk_SK\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/sk_SK/PhoneNumber.php', - 'Faker\\Provider\\sl_SI\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/sl_SI/Address.php', - 'Faker\\Provider\\sl_SI\\Company' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/sl_SI/Company.php', - 'Faker\\Provider\\sl_SI\\Internet' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/sl_SI/Internet.php', - 'Faker\\Provider\\sl_SI\\Payment' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/sl_SI/Payment.php', - 'Faker\\Provider\\sl_SI\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/sl_SI/Person.php', - 'Faker\\Provider\\sl_SI\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/sl_SI/PhoneNumber.php', - 'Faker\\Provider\\sr_Cyrl_RS\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/sr_Cyrl_RS/Address.php', - 'Faker\\Provider\\sr_Cyrl_RS\\Payment' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/sr_Cyrl_RS/Payment.php', - 'Faker\\Provider\\sr_Cyrl_RS\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/sr_Cyrl_RS/Person.php', - 'Faker\\Provider\\sr_Latn_RS\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/sr_Latn_RS/Address.php', - 'Faker\\Provider\\sr_Latn_RS\\Payment' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/sr_Latn_RS/Payment.php', - 'Faker\\Provider\\sr_Latn_RS\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/sr_Latn_RS/Person.php', - 'Faker\\Provider\\sr_RS\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/sr_RS/Address.php', - 'Faker\\Provider\\sr_RS\\Payment' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/sr_RS/Payment.php', - 'Faker\\Provider\\sr_RS\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/sr_RS/Person.php', - 'Faker\\Provider\\sv_SE\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/sv_SE/Address.php', - 'Faker\\Provider\\sv_SE\\Company' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/sv_SE/Company.php', - 'Faker\\Provider\\sv_SE\\Payment' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/sv_SE/Payment.php', - 'Faker\\Provider\\sv_SE\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/sv_SE/Person.php', - 'Faker\\Provider\\sv_SE\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/sv_SE/PhoneNumber.php', - 'Faker\\Provider\\th_TH\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/th_TH/Address.php', - 'Faker\\Provider\\th_TH\\Color' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/th_TH/Color.php', - 'Faker\\Provider\\th_TH\\Company' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/th_TH/Company.php', - 'Faker\\Provider\\th_TH\\Internet' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/th_TH/Internet.php', - 'Faker\\Provider\\th_TH\\Payment' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/th_TH/Payment.php', - 'Faker\\Provider\\th_TH\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/th_TH/PhoneNumber.php', - 'Faker\\Provider\\tr_TR\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/tr_TR/Address.php', - 'Faker\\Provider\\tr_TR\\Color' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/tr_TR/Color.php', - 'Faker\\Provider\\tr_TR\\Company' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/tr_TR/Company.php', - 'Faker\\Provider\\tr_TR\\DateTime' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/tr_TR/DateTime.php', - 'Faker\\Provider\\tr_TR\\Internet' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/tr_TR/Internet.php', - 'Faker\\Provider\\tr_TR\\Payment' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/tr_TR/Payment.php', - 'Faker\\Provider\\tr_TR\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/tr_TR/Person.php', - 'Faker\\Provider\\tr_TR\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/tr_TR/PhoneNumber.php', - 'Faker\\Provider\\uk_UA\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/uk_UA/Address.php', - 'Faker\\Provider\\uk_UA\\Color' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/uk_UA/Color.php', - 'Faker\\Provider\\uk_UA\\Company' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/uk_UA/Company.php', - 'Faker\\Provider\\uk_UA\\Internet' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/uk_UA/Internet.php', - 'Faker\\Provider\\uk_UA\\Payment' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/uk_UA/Payment.php', - 'Faker\\Provider\\uk_UA\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/uk_UA/Person.php', - 'Faker\\Provider\\uk_UA\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/uk_UA/PhoneNumber.php', - 'Faker\\Provider\\uk_UA\\Text' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/uk_UA/Text.php', - 'Faker\\Provider\\vi_VN\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/vi_VN/Address.php', - 'Faker\\Provider\\vi_VN\\Color' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/vi_VN/Color.php', - 'Faker\\Provider\\vi_VN\\Internet' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/vi_VN/Internet.php', - 'Faker\\Provider\\vi_VN\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/vi_VN/Person.php', - 'Faker\\Provider\\vi_VN\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/vi_VN/PhoneNumber.php', - 'Faker\\Provider\\zh_CN\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/zh_CN/Address.php', - 'Faker\\Provider\\zh_CN\\Color' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/zh_CN/Color.php', - 'Faker\\Provider\\zh_CN\\Company' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/zh_CN/Company.php', - 'Faker\\Provider\\zh_CN\\DateTime' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/zh_CN/DateTime.php', - 'Faker\\Provider\\zh_CN\\Internet' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/zh_CN/Internet.php', - 'Faker\\Provider\\zh_CN\\Payment' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/zh_CN/Payment.php', - 'Faker\\Provider\\zh_CN\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/zh_CN/Person.php', - 'Faker\\Provider\\zh_CN\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/zh_CN/PhoneNumber.php', - 'Faker\\Provider\\zh_TW\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/zh_TW/Address.php', - 'Faker\\Provider\\zh_TW\\Color' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/zh_TW/Color.php', - 'Faker\\Provider\\zh_TW\\Company' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/zh_TW/Company.php', - 'Faker\\Provider\\zh_TW\\DateTime' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/zh_TW/DateTime.php', - 'Faker\\Provider\\zh_TW\\Internet' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/zh_TW/Internet.php', - 'Faker\\Provider\\zh_TW\\Payment' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/zh_TW/Payment.php', - 'Faker\\Provider\\zh_TW\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/zh_TW/Person.php', - 'Faker\\Provider\\zh_TW\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/zh_TW/PhoneNumber.php', - 'Faker\\Provider\\zh_TW\\Text' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/zh_TW/Text.php', - 'Faker\\UniqueGenerator' => $vendorDir . '/fzaninotto/faker/src/Faker/UniqueGenerator.php', - 'Faker\\ValidGenerator' => $vendorDir . '/fzaninotto/faker/src/Faker/ValidGenerator.php', - 'Ffw\\SocialMediaManager\\Facebook\\Api' => $baseDir . '/packages/ffw/social-media-manager/src/Facebook/Api.php', - 'Ffw\\SocialMediaManager\\SocialMediaManager' => $baseDir . '/packages/ffw/social-media-manager/src/SocialMediaManager.php', - 'Ffw\\SocialMediaManager\\SocialMediaManagerServiceProvider' => $baseDir . '/packages/ffw/social-media-manager/src/SocialMediaManagerServiceProvider.php', - 'Ffw\\SocialMediaManager\\Twitter\\Api' => $baseDir . '/packages/ffw/social-media-manager/src/Twitter/Api.php', - 'Ffw\\SocialMediaManager\\Twitter\\TwitterException' => $baseDir . '/packages/ffw/social-media-manager/src/Twitter/Api.php', - 'Ffw\\SocialMediaManager\\Twitter\\Twitter_OAuthConsumer' => $baseDir . '/packages/ffw/social-media-manager/src/Twitter/OAuth.php', - 'Ffw\\SocialMediaManager\\Twitter\\Twitter_OAuthDataStore' => $baseDir . '/packages/ffw/social-media-manager/src/Twitter/OAuth.php', - 'Ffw\\SocialMediaManager\\Twitter\\Twitter_OAuthException' => $baseDir . '/packages/ffw/social-media-manager/src/Twitter/OAuth.php', - 'Ffw\\SocialMediaManager\\Twitter\\Twitter_OAuthRequest' => $baseDir . '/packages/ffw/social-media-manager/src/Twitter/OAuth.php', - 'Ffw\\SocialMediaManager\\Twitter\\Twitter_OAuthServer' => $baseDir . '/packages/ffw/social-media-manager/src/Twitter/OAuth.php', - 'Ffw\\SocialMediaManager\\Twitter\\Twitter_OAuthSignatureMethod' => $baseDir . '/packages/ffw/social-media-manager/src/Twitter/OAuth.php', - 'Ffw\\SocialMediaManager\\Twitter\\Twitter_OAuthSignatureMethod_HMAC_SHA1' => $baseDir . '/packages/ffw/social-media-manager/src/Twitter/OAuth.php', - 'Ffw\\SocialMediaManager\\Twitter\\Twitter_OAuthSignatureMethod_PLAINTEXT' => $baseDir . '/packages/ffw/social-media-manager/src/Twitter/OAuth.php', - 'Ffw\\SocialMediaManager\\Twitter\\Twitter_OAuthSignatureMethod_RSA_SHA1' => $baseDir . '/packages/ffw/social-media-manager/src/Twitter/OAuth.php', - 'Ffw\\SocialMediaManager\\Twitter\\Twitter_OAuthToken' => $baseDir . '/packages/ffw/social-media-manager/src/Twitter/OAuth.php', - 'Ffw\\SocialMediaManager\\Twitter\\Twitter_OAuthUtil' => $baseDir . '/packages/ffw/social-media-manager/src/Twitter/OAuth.php', - 'Fideloper\\Proxy\\TrustProxies' => $vendorDir . '/fideloper/proxy/src/TrustProxies.php', - 'Fideloper\\Proxy\\TrustedProxyServiceProvider' => $vendorDir . '/fideloper/proxy/src/TrustedProxyServiceProvider.php', - 'GuzzleHttp\\Psr7\\AppendStream' => $vendorDir . '/guzzlehttp/psr7/src/AppendStream.php', - 'GuzzleHttp\\Psr7\\BufferStream' => $vendorDir . '/guzzlehttp/psr7/src/BufferStream.php', - 'GuzzleHttp\\Psr7\\CachingStream' => $vendorDir . '/guzzlehttp/psr7/src/CachingStream.php', - 'GuzzleHttp\\Psr7\\DroppingStream' => $vendorDir . '/guzzlehttp/psr7/src/DroppingStream.php', - 'GuzzleHttp\\Psr7\\FnStream' => $vendorDir . '/guzzlehttp/psr7/src/FnStream.php', - 'GuzzleHttp\\Psr7\\InflateStream' => $vendorDir . '/guzzlehttp/psr7/src/InflateStream.php', - 'GuzzleHttp\\Psr7\\LazyOpenStream' => $vendorDir . '/guzzlehttp/psr7/src/LazyOpenStream.php', - 'GuzzleHttp\\Psr7\\LimitStream' => $vendorDir . '/guzzlehttp/psr7/src/LimitStream.php', - 'GuzzleHttp\\Psr7\\MessageTrait' => $vendorDir . '/guzzlehttp/psr7/src/MessageTrait.php', - 'GuzzleHttp\\Psr7\\MultipartStream' => $vendorDir . '/guzzlehttp/psr7/src/MultipartStream.php', - 'GuzzleHttp\\Psr7\\NoSeekStream' => $vendorDir . '/guzzlehttp/psr7/src/NoSeekStream.php', - 'GuzzleHttp\\Psr7\\PumpStream' => $vendorDir . '/guzzlehttp/psr7/src/PumpStream.php', - 'GuzzleHttp\\Psr7\\Request' => $vendorDir . '/guzzlehttp/psr7/src/Request.php', - 'GuzzleHttp\\Psr7\\Response' => $vendorDir . '/guzzlehttp/psr7/src/Response.php', - 'GuzzleHttp\\Psr7\\ServerRequest' => $vendorDir . '/guzzlehttp/psr7/src/ServerRequest.php', - 'GuzzleHttp\\Psr7\\Stream' => $vendorDir . '/guzzlehttp/psr7/src/Stream.php', - 'GuzzleHttp\\Psr7\\StreamDecoratorTrait' => $vendorDir . '/guzzlehttp/psr7/src/StreamDecoratorTrait.php', - 'GuzzleHttp\\Psr7\\StreamWrapper' => $vendorDir . '/guzzlehttp/psr7/src/StreamWrapper.php', - 'GuzzleHttp\\Psr7\\UploadedFile' => $vendorDir . '/guzzlehttp/psr7/src/UploadedFile.php', - 'GuzzleHttp\\Psr7\\Uri' => $vendorDir . '/guzzlehttp/psr7/src/Uri.php', - 'GuzzleHttp\\Psr7\\UriNormalizer' => $vendorDir . '/guzzlehttp/psr7/src/UriNormalizer.php', - 'GuzzleHttp\\Psr7\\UriResolver' => $vendorDir . '/guzzlehttp/psr7/src/UriResolver.php', - 'Hamcrest\\Arrays\\IsArray' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/IsArray.php', - 'Hamcrest\\Arrays\\IsArrayContaining' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/IsArrayContaining.php', - 'Hamcrest\\Arrays\\IsArrayContainingInAnyOrder' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/IsArrayContainingInAnyOrder.php', - 'Hamcrest\\Arrays\\IsArrayContainingInOrder' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/IsArrayContainingInOrder.php', - 'Hamcrest\\Arrays\\IsArrayContainingKey' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/IsArrayContainingKey.php', - 'Hamcrest\\Arrays\\IsArrayContainingKeyValuePair' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/IsArrayContainingKeyValuePair.php', - 'Hamcrest\\Arrays\\IsArrayWithSize' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/IsArrayWithSize.php', - 'Hamcrest\\Arrays\\MatchingOnce' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/MatchingOnce.php', - 'Hamcrest\\Arrays\\SeriesMatchingOnce' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/SeriesMatchingOnce.php', - 'Hamcrest\\AssertionError' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/AssertionError.php', - 'Hamcrest\\BaseDescription' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/BaseDescription.php', - 'Hamcrest\\BaseMatcher' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/BaseMatcher.php', - 'Hamcrest\\Collection\\IsEmptyTraversable' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Collection/IsEmptyTraversable.php', - 'Hamcrest\\Collection\\IsTraversableWithSize' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Collection/IsTraversableWithSize.php', - 'Hamcrest\\Core\\AllOf' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/AllOf.php', - 'Hamcrest\\Core\\AnyOf' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/AnyOf.php', - 'Hamcrest\\Core\\CombinableMatcher' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/CombinableMatcher.php', - 'Hamcrest\\Core\\DescribedAs' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/DescribedAs.php', - 'Hamcrest\\Core\\Every' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/Every.php', - 'Hamcrest\\Core\\HasToString' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/HasToString.php', - 'Hamcrest\\Core\\Is' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/Is.php', - 'Hamcrest\\Core\\IsAnything' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsAnything.php', - 'Hamcrest\\Core\\IsCollectionContaining' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsCollectionContaining.php', - 'Hamcrest\\Core\\IsEqual' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsEqual.php', - 'Hamcrest\\Core\\IsIdentical' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsIdentical.php', - 'Hamcrest\\Core\\IsInstanceOf' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsInstanceOf.php', - 'Hamcrest\\Core\\IsNot' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsNot.php', - 'Hamcrest\\Core\\IsNull' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsNull.php', - 'Hamcrest\\Core\\IsSame' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsSame.php', - 'Hamcrest\\Core\\IsTypeOf' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsTypeOf.php', - 'Hamcrest\\Core\\Set' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/Set.php', - 'Hamcrest\\Core\\ShortcutCombination' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/ShortcutCombination.php', - 'Hamcrest\\Description' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Description.php', - 'Hamcrest\\DiagnosingMatcher' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/DiagnosingMatcher.php', - 'Hamcrest\\FeatureMatcher' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/FeatureMatcher.php', - 'Hamcrest\\Internal\\SelfDescribingValue' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Internal/SelfDescribingValue.php', - 'Hamcrest\\Matcher' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Matcher.php', - 'Hamcrest\\MatcherAssert' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/MatcherAssert.php', - 'Hamcrest\\Matchers' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Matchers.php', - 'Hamcrest\\NullDescription' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/NullDescription.php', - 'Hamcrest\\Number\\IsCloseTo' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Number/IsCloseTo.php', - 'Hamcrest\\Number\\OrderingComparison' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Number/OrderingComparison.php', - 'Hamcrest\\SelfDescribing' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/SelfDescribing.php', - 'Hamcrest\\StringDescription' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/StringDescription.php', - 'Hamcrest\\Text\\IsEmptyString' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/IsEmptyString.php', - 'Hamcrest\\Text\\IsEqualIgnoringCase' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/IsEqualIgnoringCase.php', - 'Hamcrest\\Text\\IsEqualIgnoringWhiteSpace' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/IsEqualIgnoringWhiteSpace.php', - 'Hamcrest\\Text\\MatchesPattern' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/MatchesPattern.php', - 'Hamcrest\\Text\\StringContains' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/StringContains.php', - 'Hamcrest\\Text\\StringContainsIgnoringCase' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/StringContainsIgnoringCase.php', - 'Hamcrest\\Text\\StringContainsInOrder' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/StringContainsInOrder.php', - 'Hamcrest\\Text\\StringEndsWith' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/StringEndsWith.php', - 'Hamcrest\\Text\\StringStartsWith' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/StringStartsWith.php', - 'Hamcrest\\Text\\SubstringMatcher' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/SubstringMatcher.php', - 'Hamcrest\\TypeSafeDiagnosingMatcher' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/TypeSafeDiagnosingMatcher.php', - 'Hamcrest\\TypeSafeMatcher' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/TypeSafeMatcher.php', - 'Hamcrest\\Type\\IsArray' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Type/IsArray.php', - 'Hamcrest\\Type\\IsBoolean' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Type/IsBoolean.php', - 'Hamcrest\\Type\\IsCallable' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Type/IsCallable.php', - 'Hamcrest\\Type\\IsDouble' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Type/IsDouble.php', - 'Hamcrest\\Type\\IsInteger' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Type/IsInteger.php', - 'Hamcrest\\Type\\IsNumeric' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Type/IsNumeric.php', - 'Hamcrest\\Type\\IsObject' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Type/IsObject.php', - 'Hamcrest\\Type\\IsResource' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Type/IsResource.php', - 'Hamcrest\\Type\\IsScalar' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Type/IsScalar.php', - 'Hamcrest\\Type\\IsString' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Type/IsString.php', - 'Hamcrest\\Util' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Util.php', - 'Hamcrest\\Xml\\HasXPath' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Xml/HasXPath.php', - 'Illuminate\\Auth\\Access\\AuthorizationException' => $vendorDir . '/laravel/framework/src/Illuminate/Auth/Access/AuthorizationException.php', - 'Illuminate\\Auth\\Access\\Gate' => $vendorDir . '/laravel/framework/src/Illuminate/Auth/Access/Gate.php', - 'Illuminate\\Auth\\Access\\HandlesAuthorization' => $vendorDir . '/laravel/framework/src/Illuminate/Auth/Access/HandlesAuthorization.php', - 'Illuminate\\Auth\\Access\\Response' => $vendorDir . '/laravel/framework/src/Illuminate/Auth/Access/Response.php', - 'Illuminate\\Auth\\AuthManager' => $vendorDir . '/laravel/framework/src/Illuminate/Auth/AuthManager.php', - 'Illuminate\\Auth\\AuthServiceProvider' => $vendorDir . '/laravel/framework/src/Illuminate/Auth/AuthServiceProvider.php', - 'Illuminate\\Auth\\Authenticatable' => $vendorDir . '/laravel/framework/src/Illuminate/Auth/Authenticatable.php', - 'Illuminate\\Auth\\AuthenticationException' => $vendorDir . '/laravel/framework/src/Illuminate/Auth/AuthenticationException.php', - 'Illuminate\\Auth\\Console\\AuthMakeCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Auth/Console/AuthMakeCommand.php', - 'Illuminate\\Auth\\Console\\ClearResetsCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Auth/Console/ClearResetsCommand.php', - 'Illuminate\\Auth\\CreatesUserProviders' => $vendorDir . '/laravel/framework/src/Illuminate/Auth/CreatesUserProviders.php', - 'Illuminate\\Auth\\DatabaseUserProvider' => $vendorDir . '/laravel/framework/src/Illuminate/Auth/DatabaseUserProvider.php', - 'Illuminate\\Auth\\EloquentUserProvider' => $vendorDir . '/laravel/framework/src/Illuminate/Auth/EloquentUserProvider.php', - 'Illuminate\\Auth\\Events\\Attempting' => $vendorDir . '/laravel/framework/src/Illuminate/Auth/Events/Attempting.php', - 'Illuminate\\Auth\\Events\\Authenticated' => $vendorDir . '/laravel/framework/src/Illuminate/Auth/Events/Authenticated.php', - 'Illuminate\\Auth\\Events\\Failed' => $vendorDir . '/laravel/framework/src/Illuminate/Auth/Events/Failed.php', - 'Illuminate\\Auth\\Events\\Lockout' => $vendorDir . '/laravel/framework/src/Illuminate/Auth/Events/Lockout.php', - 'Illuminate\\Auth\\Events\\Login' => $vendorDir . '/laravel/framework/src/Illuminate/Auth/Events/Login.php', - 'Illuminate\\Auth\\Events\\Logout' => $vendorDir . '/laravel/framework/src/Illuminate/Auth/Events/Logout.php', - 'Illuminate\\Auth\\Events\\PasswordReset' => $vendorDir . '/laravel/framework/src/Illuminate/Auth/Events/PasswordReset.php', - 'Illuminate\\Auth\\Events\\Registered' => $vendorDir . '/laravel/framework/src/Illuminate/Auth/Events/Registered.php', - 'Illuminate\\Auth\\GenericUser' => $vendorDir . '/laravel/framework/src/Illuminate/Auth/GenericUser.php', - 'Illuminate\\Auth\\GuardHelpers' => $vendorDir . '/laravel/framework/src/Illuminate/Auth/GuardHelpers.php', - 'Illuminate\\Auth\\Middleware\\Authenticate' => $vendorDir . '/laravel/framework/src/Illuminate/Auth/Middleware/Authenticate.php', - 'Illuminate\\Auth\\Middleware\\AuthenticateWithBasicAuth' => $vendorDir . '/laravel/framework/src/Illuminate/Auth/Middleware/AuthenticateWithBasicAuth.php', - 'Illuminate\\Auth\\Middleware\\Authorize' => $vendorDir . '/laravel/framework/src/Illuminate/Auth/Middleware/Authorize.php', - 'Illuminate\\Auth\\Notifications\\ResetPassword' => $vendorDir . '/laravel/framework/src/Illuminate/Auth/Notifications/ResetPassword.php', - 'Illuminate\\Auth\\Passwords\\CanResetPassword' => $vendorDir . '/laravel/framework/src/Illuminate/Auth/Passwords/CanResetPassword.php', - 'Illuminate\\Auth\\Passwords\\DatabaseTokenRepository' => $vendorDir . '/laravel/framework/src/Illuminate/Auth/Passwords/DatabaseTokenRepository.php', - 'Illuminate\\Auth\\Passwords\\PasswordBroker' => $vendorDir . '/laravel/framework/src/Illuminate/Auth/Passwords/PasswordBroker.php', - 'Illuminate\\Auth\\Passwords\\PasswordBrokerManager' => $vendorDir . '/laravel/framework/src/Illuminate/Auth/Passwords/PasswordBrokerManager.php', - 'Illuminate\\Auth\\Passwords\\PasswordResetServiceProvider' => $vendorDir . '/laravel/framework/src/Illuminate/Auth/Passwords/PasswordResetServiceProvider.php', - 'Illuminate\\Auth\\Passwords\\TokenRepositoryInterface' => $vendorDir . '/laravel/framework/src/Illuminate/Auth/Passwords/TokenRepositoryInterface.php', - 'Illuminate\\Auth\\Recaller' => $vendorDir . '/laravel/framework/src/Illuminate/Auth/Recaller.php', - 'Illuminate\\Auth\\RequestGuard' => $vendorDir . '/laravel/framework/src/Illuminate/Auth/RequestGuard.php', - 'Illuminate\\Auth\\SessionGuard' => $vendorDir . '/laravel/framework/src/Illuminate/Auth/SessionGuard.php', - 'Illuminate\\Auth\\TokenGuard' => $vendorDir . '/laravel/framework/src/Illuminate/Auth/TokenGuard.php', - 'Illuminate\\Broadcasting\\BroadcastController' => $vendorDir . '/laravel/framework/src/Illuminate/Broadcasting/BroadcastController.php', - 'Illuminate\\Broadcasting\\BroadcastEvent' => $vendorDir . '/laravel/framework/src/Illuminate/Broadcasting/BroadcastEvent.php', - 'Illuminate\\Broadcasting\\BroadcastException' => $vendorDir . '/laravel/framework/src/Illuminate/Broadcasting/BroadcastException.php', - 'Illuminate\\Broadcasting\\BroadcastManager' => $vendorDir . '/laravel/framework/src/Illuminate/Broadcasting/BroadcastManager.php', - 'Illuminate\\Broadcasting\\BroadcastServiceProvider' => $vendorDir . '/laravel/framework/src/Illuminate/Broadcasting/BroadcastServiceProvider.php', - 'Illuminate\\Broadcasting\\Broadcasters\\Broadcaster' => $vendorDir . '/laravel/framework/src/Illuminate/Broadcasting/Broadcasters/Broadcaster.php', - 'Illuminate\\Broadcasting\\Broadcasters\\LogBroadcaster' => $vendorDir . '/laravel/framework/src/Illuminate/Broadcasting/Broadcasters/LogBroadcaster.php', - 'Illuminate\\Broadcasting\\Broadcasters\\NullBroadcaster' => $vendorDir . '/laravel/framework/src/Illuminate/Broadcasting/Broadcasters/NullBroadcaster.php', - 'Illuminate\\Broadcasting\\Broadcasters\\PusherBroadcaster' => $vendorDir . '/laravel/framework/src/Illuminate/Broadcasting/Broadcasters/PusherBroadcaster.php', - 'Illuminate\\Broadcasting\\Broadcasters\\RedisBroadcaster' => $vendorDir . '/laravel/framework/src/Illuminate/Broadcasting/Broadcasters/RedisBroadcaster.php', - 'Illuminate\\Broadcasting\\Channel' => $vendorDir . '/laravel/framework/src/Illuminate/Broadcasting/Channel.php', - 'Illuminate\\Broadcasting\\InteractsWithSockets' => $vendorDir . '/laravel/framework/src/Illuminate/Broadcasting/InteractsWithSockets.php', - 'Illuminate\\Broadcasting\\PendingBroadcast' => $vendorDir . '/laravel/framework/src/Illuminate/Broadcasting/PendingBroadcast.php', - 'Illuminate\\Broadcasting\\PresenceChannel' => $vendorDir . '/laravel/framework/src/Illuminate/Broadcasting/PresenceChannel.php', - 'Illuminate\\Broadcasting\\PrivateChannel' => $vendorDir . '/laravel/framework/src/Illuminate/Broadcasting/PrivateChannel.php', - 'Illuminate\\Bus\\BusServiceProvider' => $vendorDir . '/laravel/framework/src/Illuminate/Bus/BusServiceProvider.php', - 'Illuminate\\Bus\\Dispatcher' => $vendorDir . '/laravel/framework/src/Illuminate/Bus/Dispatcher.php', - 'Illuminate\\Bus\\Queueable' => $vendorDir . '/laravel/framework/src/Illuminate/Bus/Queueable.php', - 'Illuminate\\Cache\\ApcStore' => $vendorDir . '/laravel/framework/src/Illuminate/Cache/ApcStore.php', - 'Illuminate\\Cache\\ApcWrapper' => $vendorDir . '/laravel/framework/src/Illuminate/Cache/ApcWrapper.php', - 'Illuminate\\Cache\\ArrayStore' => $vendorDir . '/laravel/framework/src/Illuminate/Cache/ArrayStore.php', - 'Illuminate\\Cache\\CacheManager' => $vendorDir . '/laravel/framework/src/Illuminate/Cache/CacheManager.php', - 'Illuminate\\Cache\\CacheServiceProvider' => $vendorDir . '/laravel/framework/src/Illuminate/Cache/CacheServiceProvider.php', - 'Illuminate\\Cache\\Console\\CacheTableCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Cache/Console/CacheTableCommand.php', - 'Illuminate\\Cache\\Console\\ClearCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Cache/Console/ClearCommand.php', - 'Illuminate\\Cache\\Console\\ForgetCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Cache/Console/ForgetCommand.php', - 'Illuminate\\Cache\\DatabaseStore' => $vendorDir . '/laravel/framework/src/Illuminate/Cache/DatabaseStore.php', - 'Illuminate\\Cache\\Events\\CacheEvent' => $vendorDir . '/laravel/framework/src/Illuminate/Cache/Events/CacheEvent.php', - 'Illuminate\\Cache\\Events\\CacheHit' => $vendorDir . '/laravel/framework/src/Illuminate/Cache/Events/CacheHit.php', - 'Illuminate\\Cache\\Events\\CacheMissed' => $vendorDir . '/laravel/framework/src/Illuminate/Cache/Events/CacheMissed.php', - 'Illuminate\\Cache\\Events\\KeyForgotten' => $vendorDir . '/laravel/framework/src/Illuminate/Cache/Events/KeyForgotten.php', - 'Illuminate\\Cache\\Events\\KeyWritten' => $vendorDir . '/laravel/framework/src/Illuminate/Cache/Events/KeyWritten.php', - 'Illuminate\\Cache\\FileStore' => $vendorDir . '/laravel/framework/src/Illuminate/Cache/FileStore.php', - 'Illuminate\\Cache\\Lock' => $vendorDir . '/laravel/framework/src/Illuminate/Cache/Lock.php', - 'Illuminate\\Cache\\MemcachedConnector' => $vendorDir . '/laravel/framework/src/Illuminate/Cache/MemcachedConnector.php', - 'Illuminate\\Cache\\MemcachedLock' => $vendorDir . '/laravel/framework/src/Illuminate/Cache/MemcachedLock.php', - 'Illuminate\\Cache\\MemcachedStore' => $vendorDir . '/laravel/framework/src/Illuminate/Cache/MemcachedStore.php', - 'Illuminate\\Cache\\NullStore' => $vendorDir . '/laravel/framework/src/Illuminate/Cache/NullStore.php', - 'Illuminate\\Cache\\RateLimiter' => $vendorDir . '/laravel/framework/src/Illuminate/Cache/RateLimiter.php', - 'Illuminate\\Cache\\RedisLock' => $vendorDir . '/laravel/framework/src/Illuminate/Cache/RedisLock.php', - 'Illuminate\\Cache\\RedisStore' => $vendorDir . '/laravel/framework/src/Illuminate/Cache/RedisStore.php', - 'Illuminate\\Cache\\RedisTaggedCache' => $vendorDir . '/laravel/framework/src/Illuminate/Cache/RedisTaggedCache.php', - 'Illuminate\\Cache\\Repository' => $vendorDir . '/laravel/framework/src/Illuminate/Cache/Repository.php', - 'Illuminate\\Cache\\RetrievesMultipleKeys' => $vendorDir . '/laravel/framework/src/Illuminate/Cache/RetrievesMultipleKeys.php', - 'Illuminate\\Cache\\TagSet' => $vendorDir . '/laravel/framework/src/Illuminate/Cache/TagSet.php', - 'Illuminate\\Cache\\TaggableStore' => $vendorDir . '/laravel/framework/src/Illuminate/Cache/TaggableStore.php', - 'Illuminate\\Cache\\TaggedCache' => $vendorDir . '/laravel/framework/src/Illuminate/Cache/TaggedCache.php', - 'Illuminate\\Config\\Repository' => $vendorDir . '/laravel/framework/src/Illuminate/Config/Repository.php', - 'Illuminate\\Console\\Application' => $vendorDir . '/laravel/framework/src/Illuminate/Console/Application.php', - 'Illuminate\\Console\\Command' => $vendorDir . '/laravel/framework/src/Illuminate/Console/Command.php', - 'Illuminate\\Console\\ConfirmableTrait' => $vendorDir . '/laravel/framework/src/Illuminate/Console/ConfirmableTrait.php', - 'Illuminate\\Console\\DetectsApplicationNamespace' => $vendorDir . '/laravel/framework/src/Illuminate/Console/DetectsApplicationNamespace.php', - 'Illuminate\\Console\\Events\\ArtisanStarting' => $vendorDir . '/laravel/framework/src/Illuminate/Console/Events/ArtisanStarting.php', - 'Illuminate\\Console\\Events\\CommandFinished' => $vendorDir . '/laravel/framework/src/Illuminate/Console/Events/CommandFinished.php', - 'Illuminate\\Console\\Events\\CommandStarting' => $vendorDir . '/laravel/framework/src/Illuminate/Console/Events/CommandStarting.php', - 'Illuminate\\Console\\GeneratorCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Console/GeneratorCommand.php', - 'Illuminate\\Console\\OutputStyle' => $vendorDir . '/laravel/framework/src/Illuminate/Console/OutputStyle.php', - 'Illuminate\\Console\\Parser' => $vendorDir . '/laravel/framework/src/Illuminate/Console/Parser.php', - 'Illuminate\\Console\\Scheduling\\CacheEventMutex' => $vendorDir . '/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php', - 'Illuminate\\Console\\Scheduling\\CacheSchedulingMutex' => $vendorDir . '/laravel/framework/src/Illuminate/Console/Scheduling/CacheSchedulingMutex.php', - 'Illuminate\\Console\\Scheduling\\CallbackEvent' => $vendorDir . '/laravel/framework/src/Illuminate/Console/Scheduling/CallbackEvent.php', - 'Illuminate\\Console\\Scheduling\\CommandBuilder' => $vendorDir . '/laravel/framework/src/Illuminate/Console/Scheduling/CommandBuilder.php', - 'Illuminate\\Console\\Scheduling\\Event' => $vendorDir . '/laravel/framework/src/Illuminate/Console/Scheduling/Event.php', - 'Illuminate\\Console\\Scheduling\\EventMutex' => $vendorDir . '/laravel/framework/src/Illuminate/Console/Scheduling/EventMutex.php', - 'Illuminate\\Console\\Scheduling\\ManagesFrequencies' => $vendorDir . '/laravel/framework/src/Illuminate/Console/Scheduling/ManagesFrequencies.php', - 'Illuminate\\Console\\Scheduling\\Schedule' => $vendorDir . '/laravel/framework/src/Illuminate/Console/Scheduling/Schedule.php', - 'Illuminate\\Console\\Scheduling\\ScheduleFinishCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleFinishCommand.php', - 'Illuminate\\Console\\Scheduling\\ScheduleRunCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php', - 'Illuminate\\Console\\Scheduling\\SchedulingMutex' => $vendorDir . '/laravel/framework/src/Illuminate/Console/Scheduling/SchedulingMutex.php', - 'Illuminate\\Container\\BoundMethod' => $vendorDir . '/laravel/framework/src/Illuminate/Container/BoundMethod.php', - 'Illuminate\\Container\\Container' => $vendorDir . '/laravel/framework/src/Illuminate/Container/Container.php', - 'Illuminate\\Container\\ContextualBindingBuilder' => $vendorDir . '/laravel/framework/src/Illuminate/Container/ContextualBindingBuilder.php', - 'Illuminate\\Container\\EntryNotFoundException' => $vendorDir . '/laravel/framework/src/Illuminate/Container/EntryNotFoundException.php', - 'Illuminate\\Contracts\\Auth\\Access\\Authorizable' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Auth/Access/Authorizable.php', - 'Illuminate\\Contracts\\Auth\\Access\\Gate' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Auth/Access/Gate.php', - 'Illuminate\\Contracts\\Auth\\Authenticatable' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Auth/Authenticatable.php', - 'Illuminate\\Contracts\\Auth\\CanResetPassword' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Auth/CanResetPassword.php', - 'Illuminate\\Contracts\\Auth\\Factory' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Auth/Factory.php', - 'Illuminate\\Contracts\\Auth\\Guard' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Auth/Guard.php', - 'Illuminate\\Contracts\\Auth\\PasswordBroker' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Auth/PasswordBroker.php', - 'Illuminate\\Contracts\\Auth\\PasswordBrokerFactory' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Auth/PasswordBrokerFactory.php', - 'Illuminate\\Contracts\\Auth\\StatefulGuard' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Auth/StatefulGuard.php', - 'Illuminate\\Contracts\\Auth\\SupportsBasicAuth' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Auth/SupportsBasicAuth.php', - 'Illuminate\\Contracts\\Auth\\UserProvider' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Auth/UserProvider.php', - 'Illuminate\\Contracts\\Broadcasting\\Broadcaster' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Broadcasting/Broadcaster.php', - 'Illuminate\\Contracts\\Broadcasting\\Factory' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Broadcasting/Factory.php', - 'Illuminate\\Contracts\\Broadcasting\\ShouldBroadcast' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Broadcasting/ShouldBroadcast.php', - 'Illuminate\\Contracts\\Broadcasting\\ShouldBroadcastNow' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Broadcasting/ShouldBroadcastNow.php', - 'Illuminate\\Contracts\\Bus\\Dispatcher' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Bus/Dispatcher.php', - 'Illuminate\\Contracts\\Bus\\QueueingDispatcher' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Bus/QueueingDispatcher.php', - 'Illuminate\\Contracts\\Cache\\Factory' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Cache/Factory.php', - 'Illuminate\\Contracts\\Cache\\Lock' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Cache/Lock.php', - 'Illuminate\\Contracts\\Cache\\LockProvider' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Cache/LockProvider.php', - 'Illuminate\\Contracts\\Cache\\LockTimeoutException' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Cache/LockTimeoutException.php', - 'Illuminate\\Contracts\\Cache\\Repository' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Cache/Repository.php', - 'Illuminate\\Contracts\\Cache\\Store' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Cache/Store.php', - 'Illuminate\\Contracts\\Config\\Repository' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Config/Repository.php', - 'Illuminate\\Contracts\\Console\\Application' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Console/Application.php', - 'Illuminate\\Contracts\\Console\\Kernel' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Console/Kernel.php', - 'Illuminate\\Contracts\\Container\\BindingResolutionException' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Container/BindingResolutionException.php', - 'Illuminate\\Contracts\\Container\\Container' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Container/Container.php', - 'Illuminate\\Contracts\\Container\\ContextualBindingBuilder' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Container/ContextualBindingBuilder.php', - 'Illuminate\\Contracts\\Cookie\\Factory' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Cookie/Factory.php', - 'Illuminate\\Contracts\\Cookie\\QueueingFactory' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Cookie/QueueingFactory.php', - 'Illuminate\\Contracts\\Database\\ModelIdentifier' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Database/ModelIdentifier.php', - 'Illuminate\\Contracts\\Debug\\ExceptionHandler' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Debug/ExceptionHandler.php', - 'Illuminate\\Contracts\\Encryption\\DecryptException' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Encryption/DecryptException.php', - 'Illuminate\\Contracts\\Encryption\\EncryptException' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Encryption/EncryptException.php', - 'Illuminate\\Contracts\\Encryption\\Encrypter' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Encryption/Encrypter.php', - 'Illuminate\\Contracts\\Events\\Dispatcher' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Events/Dispatcher.php', - 'Illuminate\\Contracts\\Filesystem\\Cloud' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Filesystem/Cloud.php', - 'Illuminate\\Contracts\\Filesystem\\Factory' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Filesystem/Factory.php', - 'Illuminate\\Contracts\\Filesystem\\FileNotFoundException' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Filesystem/FileNotFoundException.php', - 'Illuminate\\Contracts\\Filesystem\\Filesystem' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Filesystem/Filesystem.php', - 'Illuminate\\Contracts\\Foundation\\Application' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Foundation/Application.php', - 'Illuminate\\Contracts\\Hashing\\Hasher' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Hashing/Hasher.php', - 'Illuminate\\Contracts\\Http\\Kernel' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Http/Kernel.php', - 'Illuminate\\Contracts\\Mail\\MailQueue' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Mail/MailQueue.php', - 'Illuminate\\Contracts\\Mail\\Mailable' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Mail/Mailable.php', - 'Illuminate\\Contracts\\Mail\\Mailer' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Mail/Mailer.php', - 'Illuminate\\Contracts\\Notifications\\Dispatcher' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Notifications/Dispatcher.php', - 'Illuminate\\Contracts\\Notifications\\Factory' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Notifications/Factory.php', - 'Illuminate\\Contracts\\Pagination\\LengthAwarePaginator' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Pagination/LengthAwarePaginator.php', - 'Illuminate\\Contracts\\Pagination\\Paginator' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Pagination/Paginator.php', - 'Illuminate\\Contracts\\Pipeline\\Hub' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Pipeline/Hub.php', - 'Illuminate\\Contracts\\Pipeline\\Pipeline' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Pipeline/Pipeline.php', - 'Illuminate\\Contracts\\Queue\\EntityNotFoundException' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Queue/EntityNotFoundException.php', - 'Illuminate\\Contracts\\Queue\\EntityResolver' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Queue/EntityResolver.php', - 'Illuminate\\Contracts\\Queue\\Factory' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Queue/Factory.php', - 'Illuminate\\Contracts\\Queue\\Job' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Queue/Job.php', - 'Illuminate\\Contracts\\Queue\\Monitor' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Queue/Monitor.php', - 'Illuminate\\Contracts\\Queue\\Queue' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Queue/Queue.php', - 'Illuminate\\Contracts\\Queue\\QueueableCollection' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Queue/QueueableCollection.php', - 'Illuminate\\Contracts\\Queue\\QueueableEntity' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Queue/QueueableEntity.php', - 'Illuminate\\Contracts\\Queue\\ShouldQueue' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Queue/ShouldQueue.php', - 'Illuminate\\Contracts\\Redis\\Connection' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Redis/Connection.php', - 'Illuminate\\Contracts\\Redis\\Factory' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Redis/Factory.php', - 'Illuminate\\Contracts\\Redis\\LimiterTimeoutException' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Redis/LimiterTimeoutException.php', - 'Illuminate\\Contracts\\Routing\\BindingRegistrar' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Routing/BindingRegistrar.php', - 'Illuminate\\Contracts\\Routing\\Registrar' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Routing/Registrar.php', - 'Illuminate\\Contracts\\Routing\\ResponseFactory' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Routing/ResponseFactory.php', - 'Illuminate\\Contracts\\Routing\\UrlGenerator' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Routing/UrlGenerator.php', - 'Illuminate\\Contracts\\Routing\\UrlRoutable' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Routing/UrlRoutable.php', - 'Illuminate\\Contracts\\Session\\Session' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Session/Session.php', - 'Illuminate\\Contracts\\Support\\Arrayable' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Support/Arrayable.php', - 'Illuminate\\Contracts\\Support\\Htmlable' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Support/Htmlable.php', - 'Illuminate\\Contracts\\Support\\Jsonable' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Support/Jsonable.php', - 'Illuminate\\Contracts\\Support\\MessageBag' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Support/MessageBag.php', - 'Illuminate\\Contracts\\Support\\MessageProvider' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Support/MessageProvider.php', - 'Illuminate\\Contracts\\Support\\Renderable' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Support/Renderable.php', - 'Illuminate\\Contracts\\Support\\Responsable' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Support/Responsable.php', - 'Illuminate\\Contracts\\Translation\\Loader' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Translation/Loader.php', - 'Illuminate\\Contracts\\Translation\\Translator' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Translation/Translator.php', - 'Illuminate\\Contracts\\Validation\\Factory' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Validation/Factory.php', - 'Illuminate\\Contracts\\Validation\\ImplicitRule' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Validation/ImplicitRule.php', - 'Illuminate\\Contracts\\Validation\\Rule' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Validation/Rule.php', - 'Illuminate\\Contracts\\Validation\\ValidatesWhenResolved' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Validation/ValidatesWhenResolved.php', - 'Illuminate\\Contracts\\Validation\\Validator' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Validation/Validator.php', - 'Illuminate\\Contracts\\View\\Engine' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/View/Engine.php', - 'Illuminate\\Contracts\\View\\Factory' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/View/Factory.php', - 'Illuminate\\Contracts\\View\\View' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/View/View.php', - 'Illuminate\\Cookie\\CookieJar' => $vendorDir . '/laravel/framework/src/Illuminate/Cookie/CookieJar.php', - 'Illuminate\\Cookie\\CookieServiceProvider' => $vendorDir . '/laravel/framework/src/Illuminate/Cookie/CookieServiceProvider.php', - 'Illuminate\\Cookie\\Middleware\\AddQueuedCookiesToResponse' => $vendorDir . '/laravel/framework/src/Illuminate/Cookie/Middleware/AddQueuedCookiesToResponse.php', - 'Illuminate\\Cookie\\Middleware\\EncryptCookies' => $vendorDir . '/laravel/framework/src/Illuminate/Cookie/Middleware/EncryptCookies.php', - 'Illuminate\\Database\\Capsule\\Manager' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Capsule/Manager.php', - 'Illuminate\\Database\\Concerns\\BuildsQueries' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Concerns/BuildsQueries.php', - 'Illuminate\\Database\\Concerns\\ManagesTransactions' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Concerns/ManagesTransactions.php', - 'Illuminate\\Database\\Connection' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Connection.php', - 'Illuminate\\Database\\ConnectionInterface' => $vendorDir . '/laravel/framework/src/Illuminate/Database/ConnectionInterface.php', - 'Illuminate\\Database\\ConnectionResolver' => $vendorDir . '/laravel/framework/src/Illuminate/Database/ConnectionResolver.php', - 'Illuminate\\Database\\ConnectionResolverInterface' => $vendorDir . '/laravel/framework/src/Illuminate/Database/ConnectionResolverInterface.php', - 'Illuminate\\Database\\Connectors\\ConnectionFactory' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php', - 'Illuminate\\Database\\Connectors\\Connector' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Connectors/Connector.php', - 'Illuminate\\Database\\Connectors\\ConnectorInterface' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Connectors/ConnectorInterface.php', - 'Illuminate\\Database\\Connectors\\MySqlConnector' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Connectors/MySqlConnector.php', - 'Illuminate\\Database\\Connectors\\PostgresConnector' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php', - 'Illuminate\\Database\\Connectors\\SQLiteConnector' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Connectors/SQLiteConnector.php', - 'Illuminate\\Database\\Connectors\\SqlServerConnector' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Connectors/SqlServerConnector.php', - 'Illuminate\\Database\\Console\\Factories\\FactoryMakeCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Console/Factories/FactoryMakeCommand.php', - 'Illuminate\\Database\\Console\\Migrations\\BaseCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Console/Migrations/BaseCommand.php', - 'Illuminate\\Database\\Console\\Migrations\\FreshCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Console/Migrations/FreshCommand.php', - 'Illuminate\\Database\\Console\\Migrations\\InstallCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Console/Migrations/InstallCommand.php', - 'Illuminate\\Database\\Console\\Migrations\\MigrateCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Console/Migrations/MigrateCommand.php', - 'Illuminate\\Database\\Console\\Migrations\\MigrateMakeCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Console/Migrations/MigrateMakeCommand.php', - 'Illuminate\\Database\\Console\\Migrations\\RefreshCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Console/Migrations/RefreshCommand.php', - 'Illuminate\\Database\\Console\\Migrations\\ResetCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Console/Migrations/ResetCommand.php', - 'Illuminate\\Database\\Console\\Migrations\\RollbackCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Console/Migrations/RollbackCommand.php', - 'Illuminate\\Database\\Console\\Migrations\\StatusCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Console/Migrations/StatusCommand.php', - 'Illuminate\\Database\\Console\\Migrations\\TableGuesser' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Console/Migrations/TableGuesser.php', - 'Illuminate\\Database\\Console\\Seeds\\SeedCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Console/Seeds/SeedCommand.php', - 'Illuminate\\Database\\Console\\Seeds\\SeederMakeCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Console/Seeds/SeederMakeCommand.php', - 'Illuminate\\Database\\DatabaseManager' => $vendorDir . '/laravel/framework/src/Illuminate/Database/DatabaseManager.php', - 'Illuminate\\Database\\DatabaseServiceProvider' => $vendorDir . '/laravel/framework/src/Illuminate/Database/DatabaseServiceProvider.php', - 'Illuminate\\Database\\DetectsDeadlocks' => $vendorDir . '/laravel/framework/src/Illuminate/Database/DetectsDeadlocks.php', - 'Illuminate\\Database\\DetectsLostConnections' => $vendorDir . '/laravel/framework/src/Illuminate/Database/DetectsLostConnections.php', - 'Illuminate\\Database\\Eloquent\\Builder' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Eloquent/Builder.php', - 'Illuminate\\Database\\Eloquent\\Collection' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Eloquent/Collection.php', - 'Illuminate\\Database\\Eloquent\\Concerns\\GuardsAttributes' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/GuardsAttributes.php', - 'Illuminate\\Database\\Eloquent\\Concerns\\HasAttributes' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/HasAttributes.php', - 'Illuminate\\Database\\Eloquent\\Concerns\\HasEvents' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/HasEvents.php', - 'Illuminate\\Database\\Eloquent\\Concerns\\HasGlobalScopes' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/HasGlobalScopes.php', - 'Illuminate\\Database\\Eloquent\\Concerns\\HasRelationships' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/HasRelationships.php', - 'Illuminate\\Database\\Eloquent\\Concerns\\HasTimestamps' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/HasTimestamps.php', - 'Illuminate\\Database\\Eloquent\\Concerns\\HidesAttributes' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/HidesAttributes.php', - 'Illuminate\\Database\\Eloquent\\Concerns\\QueriesRelationships' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/QueriesRelationships.php', - 'Illuminate\\Database\\Eloquent\\Factory' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Eloquent/Factory.php', - 'Illuminate\\Database\\Eloquent\\FactoryBuilder' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Eloquent/FactoryBuilder.php', - 'Illuminate\\Database\\Eloquent\\JsonEncodingException' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Eloquent/JsonEncodingException.php', - 'Illuminate\\Database\\Eloquent\\MassAssignmentException' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Eloquent/MassAssignmentException.php', - 'Illuminate\\Database\\Eloquent\\Model' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Eloquent/Model.php', - 'Illuminate\\Database\\Eloquent\\ModelNotFoundException' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Eloquent/ModelNotFoundException.php', - 'Illuminate\\Database\\Eloquent\\QueueEntityResolver' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Eloquent/QueueEntityResolver.php', - 'Illuminate\\Database\\Eloquent\\RelationNotFoundException' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Eloquent/RelationNotFoundException.php', - 'Illuminate\\Database\\Eloquent\\Relations\\BelongsTo' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Eloquent/Relations/BelongsTo.php', - 'Illuminate\\Database\\Eloquent\\Relations\\BelongsToMany' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Eloquent/Relations/BelongsToMany.php', - 'Illuminate\\Database\\Eloquent\\Relations\\Concerns\\InteractsWithPivotTable' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Eloquent/Relations/Concerns/InteractsWithPivotTable.php', - 'Illuminate\\Database\\Eloquent\\Relations\\Concerns\\SupportsDefaultModels' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Eloquent/Relations/Concerns/SupportsDefaultModels.php', - 'Illuminate\\Database\\Eloquent\\Relations\\HasMany' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Eloquent/Relations/HasMany.php', - 'Illuminate\\Database\\Eloquent\\Relations\\HasManyThrough' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Eloquent/Relations/HasManyThrough.php', - 'Illuminate\\Database\\Eloquent\\Relations\\HasOne' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Eloquent/Relations/HasOne.php', - 'Illuminate\\Database\\Eloquent\\Relations\\HasOneOrMany' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Eloquent/Relations/HasOneOrMany.php', - 'Illuminate\\Database\\Eloquent\\Relations\\MorphMany' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Eloquent/Relations/MorphMany.php', - 'Illuminate\\Database\\Eloquent\\Relations\\MorphOne' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Eloquent/Relations/MorphOne.php', - 'Illuminate\\Database\\Eloquent\\Relations\\MorphOneOrMany' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Eloquent/Relations/MorphOneOrMany.php', - 'Illuminate\\Database\\Eloquent\\Relations\\MorphPivot' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Eloquent/Relations/MorphPivot.php', - 'Illuminate\\Database\\Eloquent\\Relations\\MorphTo' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Eloquent/Relations/MorphTo.php', - 'Illuminate\\Database\\Eloquent\\Relations\\MorphToMany' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Eloquent/Relations/MorphToMany.php', - 'Illuminate\\Database\\Eloquent\\Relations\\Pivot' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Eloquent/Relations/Pivot.php', - 'Illuminate\\Database\\Eloquent\\Relations\\Relation' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Eloquent/Relations/Relation.php', - 'Illuminate\\Database\\Eloquent\\Scope' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Eloquent/Scope.php', - 'Illuminate\\Database\\Eloquent\\SoftDeletes' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Eloquent/SoftDeletes.php', - 'Illuminate\\Database\\Eloquent\\SoftDeletingScope' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Eloquent/SoftDeletingScope.php', - 'Illuminate\\Database\\Events\\ConnectionEvent' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Events/ConnectionEvent.php', - 'Illuminate\\Database\\Events\\QueryExecuted' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Events/QueryExecuted.php', - 'Illuminate\\Database\\Events\\StatementPrepared' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Events/StatementPrepared.php', - 'Illuminate\\Database\\Events\\TransactionBeginning' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Events/TransactionBeginning.php', - 'Illuminate\\Database\\Events\\TransactionCommitted' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Events/TransactionCommitted.php', - 'Illuminate\\Database\\Events\\TransactionRolledBack' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Events/TransactionRolledBack.php', - 'Illuminate\\Database\\Grammar' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Grammar.php', - 'Illuminate\\Database\\MigrationServiceProvider' => $vendorDir . '/laravel/framework/src/Illuminate/Database/MigrationServiceProvider.php', - 'Illuminate\\Database\\Migrations\\DatabaseMigrationRepository' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Migrations/DatabaseMigrationRepository.php', - 'Illuminate\\Database\\Migrations\\Migration' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Migrations/Migration.php', - 'Illuminate\\Database\\Migrations\\MigrationCreator' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Migrations/MigrationCreator.php', - 'Illuminate\\Database\\Migrations\\MigrationRepositoryInterface' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Migrations/MigrationRepositoryInterface.php', - 'Illuminate\\Database\\Migrations\\Migrator' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Migrations/Migrator.php', - 'Illuminate\\Database\\MySqlConnection' => $vendorDir . '/laravel/framework/src/Illuminate/Database/MySqlConnection.php', - 'Illuminate\\Database\\PostgresConnection' => $vendorDir . '/laravel/framework/src/Illuminate/Database/PostgresConnection.php', - 'Illuminate\\Database\\QueryException' => $vendorDir . '/laravel/framework/src/Illuminate/Database/QueryException.php', - 'Illuminate\\Database\\Query\\Builder' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Query/Builder.php', - 'Illuminate\\Database\\Query\\Expression' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Query/Expression.php', - 'Illuminate\\Database\\Query\\Grammars\\Grammar' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Query/Grammars/Grammar.php', - 'Illuminate\\Database\\Query\\Grammars\\MySqlGrammar' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Query/Grammars/MySqlGrammar.php', - 'Illuminate\\Database\\Query\\Grammars\\PostgresGrammar' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Query/Grammars/PostgresGrammar.php', - 'Illuminate\\Database\\Query\\Grammars\\SQLiteGrammar' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Query/Grammars/SQLiteGrammar.php', - 'Illuminate\\Database\\Query\\Grammars\\SqlServerGrammar' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Query/Grammars/SqlServerGrammar.php', - 'Illuminate\\Database\\Query\\JoinClause' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Query/JoinClause.php', - 'Illuminate\\Database\\Query\\JsonExpression' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Query/JsonExpression.php', - 'Illuminate\\Database\\Query\\Processors\\MySqlProcessor' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Query/Processors/MySqlProcessor.php', - 'Illuminate\\Database\\Query\\Processors\\PostgresProcessor' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Query/Processors/PostgresProcessor.php', - 'Illuminate\\Database\\Query\\Processors\\Processor' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Query/Processors/Processor.php', - 'Illuminate\\Database\\Query\\Processors\\SQLiteProcessor' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Query/Processors/SQLiteProcessor.php', - 'Illuminate\\Database\\Query\\Processors\\SqlServerProcessor' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Query/Processors/SqlServerProcessor.php', - 'Illuminate\\Database\\SQLiteConnection' => $vendorDir . '/laravel/framework/src/Illuminate/Database/SQLiteConnection.php', - 'Illuminate\\Database\\Schema\\Blueprint' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Schema/Blueprint.php', - 'Illuminate\\Database\\Schema\\Builder' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Schema/Builder.php', - 'Illuminate\\Database\\Schema\\Grammars\\ChangeColumn' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Schema/Grammars/ChangeColumn.php', - 'Illuminate\\Database\\Schema\\Grammars\\Grammar' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Schema/Grammars/Grammar.php', - 'Illuminate\\Database\\Schema\\Grammars\\MySqlGrammar' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Schema/Grammars/MySqlGrammar.php', - 'Illuminate\\Database\\Schema\\Grammars\\PostgresGrammar' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Schema/Grammars/PostgresGrammar.php', - 'Illuminate\\Database\\Schema\\Grammars\\RenameColumn' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Schema/Grammars/RenameColumn.php', - 'Illuminate\\Database\\Schema\\Grammars\\SQLiteGrammar' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Schema/Grammars/SQLiteGrammar.php', - 'Illuminate\\Database\\Schema\\Grammars\\SqlServerGrammar' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Schema/Grammars/SqlServerGrammar.php', - 'Illuminate\\Database\\Schema\\MySqlBuilder' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Schema/MySqlBuilder.php', - 'Illuminate\\Database\\Schema\\PostgresBuilder' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Schema/PostgresBuilder.php', - 'Illuminate\\Database\\Schema\\SQLiteBuilder' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Schema/SQLiteBuilder.php', - 'Illuminate\\Database\\Schema\\SqlServerBuilder' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Schema/SqlServerBuilder.php', - 'Illuminate\\Database\\Seeder' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Seeder.php', - 'Illuminate\\Database\\SqlServerConnection' => $vendorDir . '/laravel/framework/src/Illuminate/Database/SqlServerConnection.php', - 'Illuminate\\Encryption\\Encrypter' => $vendorDir . '/laravel/framework/src/Illuminate/Encryption/Encrypter.php', - 'Illuminate\\Encryption\\EncryptionServiceProvider' => $vendorDir . '/laravel/framework/src/Illuminate/Encryption/EncryptionServiceProvider.php', - 'Illuminate\\Events\\CallQueuedListener' => $vendorDir . '/laravel/framework/src/Illuminate/Events/CallQueuedListener.php', - 'Illuminate\\Events\\Dispatcher' => $vendorDir . '/laravel/framework/src/Illuminate/Events/Dispatcher.php', - 'Illuminate\\Events\\EventServiceProvider' => $vendorDir . '/laravel/framework/src/Illuminate/Events/EventServiceProvider.php', - 'Illuminate\\Filesystem\\Cache' => $vendorDir . '/laravel/framework/src/Illuminate/Filesystem/Cache.php', - 'Illuminate\\Filesystem\\Filesystem' => $vendorDir . '/laravel/framework/src/Illuminate/Filesystem/Filesystem.php', - 'Illuminate\\Filesystem\\FilesystemAdapter' => $vendorDir . '/laravel/framework/src/Illuminate/Filesystem/FilesystemAdapter.php', - 'Illuminate\\Filesystem\\FilesystemManager' => $vendorDir . '/laravel/framework/src/Illuminate/Filesystem/FilesystemManager.php', - 'Illuminate\\Filesystem\\FilesystemServiceProvider' => $vendorDir . '/laravel/framework/src/Illuminate/Filesystem/FilesystemServiceProvider.php', - 'Illuminate\\Foundation\\AliasLoader' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/AliasLoader.php', - 'Illuminate\\Foundation\\Application' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Application.php', - 'Illuminate\\Foundation\\Auth\\Access\\Authorizable' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Auth/Access/Authorizable.php', - 'Illuminate\\Foundation\\Auth\\Access\\AuthorizesRequests' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Auth/Access/AuthorizesRequests.php', - 'Illuminate\\Foundation\\Auth\\AuthenticatesUsers' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Auth/AuthenticatesUsers.php', - 'Illuminate\\Foundation\\Auth\\RedirectsUsers' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Auth/RedirectsUsers.php', - 'Illuminate\\Foundation\\Auth\\RegistersUsers' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Auth/RegistersUsers.php', - 'Illuminate\\Foundation\\Auth\\ResetsPasswords' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Auth/ResetsPasswords.php', - 'Illuminate\\Foundation\\Auth\\SendsPasswordResetEmails' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Auth/SendsPasswordResetEmails.php', - 'Illuminate\\Foundation\\Auth\\ThrottlesLogins' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Auth/ThrottlesLogins.php', - 'Illuminate\\Foundation\\Auth\\User' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Auth/User.php', - 'Illuminate\\Foundation\\Bootstrap\\BootProviders' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Bootstrap/BootProviders.php', - 'Illuminate\\Foundation\\Bootstrap\\HandleExceptions' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Bootstrap/HandleExceptions.php', - 'Illuminate\\Foundation\\Bootstrap\\LoadConfiguration' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Bootstrap/LoadConfiguration.php', - 'Illuminate\\Foundation\\Bootstrap\\LoadEnvironmentVariables' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Bootstrap/LoadEnvironmentVariables.php', - 'Illuminate\\Foundation\\Bootstrap\\RegisterFacades' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Bootstrap/RegisterFacades.php', - 'Illuminate\\Foundation\\Bootstrap\\RegisterProviders' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Bootstrap/RegisterProviders.php', - 'Illuminate\\Foundation\\Bootstrap\\SetRequestForConsole' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Bootstrap/SetRequestForConsole.php', - 'Illuminate\\Foundation\\Bus\\Dispatchable' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Bus/Dispatchable.php', - 'Illuminate\\Foundation\\Bus\\DispatchesJobs' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Bus/DispatchesJobs.php', - 'Illuminate\\Foundation\\Bus\\PendingChain' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Bus/PendingChain.php', - 'Illuminate\\Foundation\\Bus\\PendingDispatch' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Bus/PendingDispatch.php', - 'Illuminate\\Foundation\\ComposerScripts' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/ComposerScripts.php', - 'Illuminate\\Foundation\\Console\\AppNameCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Console/AppNameCommand.php', - 'Illuminate\\Foundation\\Console\\ChannelMakeCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Console/ChannelMakeCommand.php', - 'Illuminate\\Foundation\\Console\\ClearCompiledCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Console/ClearCompiledCommand.php', - 'Illuminate\\Foundation\\Console\\ClosureCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Console/ClosureCommand.php', - 'Illuminate\\Foundation\\Console\\ConfigCacheCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Console/ConfigCacheCommand.php', - 'Illuminate\\Foundation\\Console\\ConfigClearCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Console/ConfigClearCommand.php', - 'Illuminate\\Foundation\\Console\\ConsoleMakeCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Console/ConsoleMakeCommand.php', - 'Illuminate\\Foundation\\Console\\DownCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Console/DownCommand.php', - 'Illuminate\\Foundation\\Console\\EnvironmentCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Console/EnvironmentCommand.php', - 'Illuminate\\Foundation\\Console\\EventGenerateCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Console/EventGenerateCommand.php', - 'Illuminate\\Foundation\\Console\\EventMakeCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Console/EventMakeCommand.php', - 'Illuminate\\Foundation\\Console\\ExceptionMakeCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Console/ExceptionMakeCommand.php', - 'Illuminate\\Foundation\\Console\\JobMakeCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Console/JobMakeCommand.php', - 'Illuminate\\Foundation\\Console\\Kernel' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php', - 'Illuminate\\Foundation\\Console\\KeyGenerateCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Console/KeyGenerateCommand.php', - 'Illuminate\\Foundation\\Console\\ListenerMakeCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Console/ListenerMakeCommand.php', - 'Illuminate\\Foundation\\Console\\MailMakeCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Console/MailMakeCommand.php', - 'Illuminate\\Foundation\\Console\\ModelMakeCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Console/ModelMakeCommand.php', - 'Illuminate\\Foundation\\Console\\NotificationMakeCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Console/NotificationMakeCommand.php', - 'Illuminate\\Foundation\\Console\\ObserverMakeCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Console/ObserverMakeCommand.php', - 'Illuminate\\Foundation\\Console\\PackageDiscoverCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Console/PackageDiscoverCommand.php', - 'Illuminate\\Foundation\\Console\\PolicyMakeCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Console/PolicyMakeCommand.php', - 'Illuminate\\Foundation\\Console\\PresetCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Console/PresetCommand.php', - 'Illuminate\\Foundation\\Console\\Presets\\Bootstrap' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Console/Presets/Bootstrap.php', - 'Illuminate\\Foundation\\Console\\Presets\\None' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Console/Presets/None.php', - 'Illuminate\\Foundation\\Console\\Presets\\Preset' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Console/Presets/Preset.php', - 'Illuminate\\Foundation\\Console\\Presets\\React' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Console/Presets/React.php', - 'Illuminate\\Foundation\\Console\\Presets\\Vue' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Console/Presets/Vue.php', - 'Illuminate\\Foundation\\Console\\ProviderMakeCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Console/ProviderMakeCommand.php', - 'Illuminate\\Foundation\\Console\\QueuedCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Console/QueuedCommand.php', - 'Illuminate\\Foundation\\Console\\RequestMakeCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Console/RequestMakeCommand.php', - 'Illuminate\\Foundation\\Console\\ResourceMakeCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Console/ResourceMakeCommand.php', - 'Illuminate\\Foundation\\Console\\RouteCacheCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Console/RouteCacheCommand.php', - 'Illuminate\\Foundation\\Console\\RouteClearCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Console/RouteClearCommand.php', - 'Illuminate\\Foundation\\Console\\RouteListCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Console/RouteListCommand.php', - 'Illuminate\\Foundation\\Console\\RuleMakeCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Console/RuleMakeCommand.php', - 'Illuminate\\Foundation\\Console\\ServeCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Console/ServeCommand.php', - 'Illuminate\\Foundation\\Console\\StorageLinkCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Console/StorageLinkCommand.php', - 'Illuminate\\Foundation\\Console\\TestMakeCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Console/TestMakeCommand.php', - 'Illuminate\\Foundation\\Console\\UpCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Console/UpCommand.php', - 'Illuminate\\Foundation\\Console\\VendorPublishCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Console/VendorPublishCommand.php', - 'Illuminate\\Foundation\\Console\\ViewCacheCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Console/ViewCacheCommand.php', - 'Illuminate\\Foundation\\Console\\ViewClearCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Console/ViewClearCommand.php', - 'Illuminate\\Foundation\\EnvironmentDetector' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/EnvironmentDetector.php', - 'Illuminate\\Foundation\\Events\\Dispatchable' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Events/Dispatchable.php', - 'Illuminate\\Foundation\\Events\\LocaleUpdated' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Events/LocaleUpdated.php', - 'Illuminate\\Foundation\\Exceptions\\Handler' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Exceptions/Handler.php', - 'Illuminate\\Foundation\\Exceptions\\WhoopsHandler' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Exceptions/WhoopsHandler.php', - 'Illuminate\\Foundation\\Http\\Events\\RequestHandled' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Http/Events/RequestHandled.php', - 'Illuminate\\Foundation\\Http\\Exceptions\\MaintenanceModeException' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Http/Exceptions/MaintenanceModeException.php', - 'Illuminate\\Foundation\\Http\\FormRequest' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Http/FormRequest.php', - 'Illuminate\\Foundation\\Http\\Kernel' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php', - 'Illuminate\\Foundation\\Http\\Middleware\\CheckForMaintenanceMode' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Http/Middleware/CheckForMaintenanceMode.php', - 'Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ConvertEmptyStringsToNull.php', - 'Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php', - 'Illuminate\\Foundation\\Http\\Middleware\\TrimStrings' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TrimStrings.php', - 'Illuminate\\Foundation\\Http\\Middleware\\ValidatePostSize' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ValidatePostSize.php', - 'Illuminate\\Foundation\\Http\\Middleware\\VerifyCsrfToken' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Http/Middleware/VerifyCsrfToken.php', - 'Illuminate\\Foundation\\Inspiring' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Inspiring.php', - 'Illuminate\\Foundation\\PackageManifest' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/PackageManifest.php', - 'Illuminate\\Foundation\\ProviderRepository' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/ProviderRepository.php', - 'Illuminate\\Foundation\\Providers\\ArtisanServiceProvider' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Providers/ArtisanServiceProvider.php', - 'Illuminate\\Foundation\\Providers\\ComposerServiceProvider' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Providers/ComposerServiceProvider.php', - 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Providers/ConsoleSupportServiceProvider.php', - 'Illuminate\\Foundation\\Providers\\FormRequestServiceProvider' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Providers/FormRequestServiceProvider.php', - 'Illuminate\\Foundation\\Providers\\FoundationServiceProvider' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Providers/FoundationServiceProvider.php', - 'Illuminate\\Foundation\\Support\\Providers\\AuthServiceProvider' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Support/Providers/AuthServiceProvider.php', - 'Illuminate\\Foundation\\Support\\Providers\\EventServiceProvider' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Support/Providers/EventServiceProvider.php', - 'Illuminate\\Foundation\\Support\\Providers\\RouteServiceProvider' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Support/Providers/RouteServiceProvider.php', - 'Illuminate\\Foundation\\Testing\\Concerns\\InteractsWithAuthentication' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/InteractsWithAuthentication.php', - 'Illuminate\\Foundation\\Testing\\Concerns\\InteractsWithConsole' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/InteractsWithConsole.php', - 'Illuminate\\Foundation\\Testing\\Concerns\\InteractsWithContainer' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/InteractsWithContainer.php', - 'Illuminate\\Foundation\\Testing\\Concerns\\InteractsWithDatabase' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/InteractsWithDatabase.php', - 'Illuminate\\Foundation\\Testing\\Concerns\\InteractsWithExceptionHandling' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/InteractsWithExceptionHandling.php', - 'Illuminate\\Foundation\\Testing\\Concerns\\InteractsWithRedis' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/InteractsWithRedis.php', - 'Illuminate\\Foundation\\Testing\\Concerns\\InteractsWithSession' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/InteractsWithSession.php', - 'Illuminate\\Foundation\\Testing\\Concerns\\MakesHttpRequests' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/MakesHttpRequests.php', - 'Illuminate\\Foundation\\Testing\\Concerns\\MocksApplicationServices' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/MocksApplicationServices.php', - 'Illuminate\\Foundation\\Testing\\Constraints\\HasInDatabase' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Testing/Constraints/HasInDatabase.php', - 'Illuminate\\Foundation\\Testing\\Constraints\\SeeInOrder' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Testing/Constraints/SeeInOrder.php', - 'Illuminate\\Foundation\\Testing\\Constraints\\SoftDeletedInDatabase' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Testing/Constraints/SoftDeletedInDatabase.php', - 'Illuminate\\Foundation\\Testing\\DatabaseMigrations' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Testing/DatabaseMigrations.php', - 'Illuminate\\Foundation\\Testing\\DatabaseTransactions' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Testing/DatabaseTransactions.php', - 'Illuminate\\Foundation\\Testing\\HttpException' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Testing/HttpException.php', - 'Illuminate\\Foundation\\Testing\\RefreshDatabase' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Testing/RefreshDatabase.php', - 'Illuminate\\Foundation\\Testing\\RefreshDatabaseState' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Testing/RefreshDatabaseState.php', - 'Illuminate\\Foundation\\Testing\\TestCase' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Testing/TestCase.php', - 'Illuminate\\Foundation\\Testing\\TestResponse' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Testing/TestResponse.php', - 'Illuminate\\Foundation\\Testing\\WithFaker' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Testing/WithFaker.php', - 'Illuminate\\Foundation\\Testing\\WithoutEvents' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Testing/WithoutEvents.php', - 'Illuminate\\Foundation\\Testing\\WithoutMiddleware' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Testing/WithoutMiddleware.php', - 'Illuminate\\Foundation\\Validation\\ValidatesRequests' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Validation/ValidatesRequests.php', - 'Illuminate\\Hashing\\AbstractHasher' => $vendorDir . '/laravel/framework/src/Illuminate/Hashing/AbstractHasher.php', - 'Illuminate\\Hashing\\ArgonHasher' => $vendorDir . '/laravel/framework/src/Illuminate/Hashing/ArgonHasher.php', - 'Illuminate\\Hashing\\BcryptHasher' => $vendorDir . '/laravel/framework/src/Illuminate/Hashing/BcryptHasher.php', - 'Illuminate\\Hashing\\HashManager' => $vendorDir . '/laravel/framework/src/Illuminate/Hashing/HashManager.php', - 'Illuminate\\Hashing\\HashServiceProvider' => $vendorDir . '/laravel/framework/src/Illuminate/Hashing/HashServiceProvider.php', - 'Illuminate\\Http\\Concerns\\InteractsWithContentTypes' => $vendorDir . '/laravel/framework/src/Illuminate/Http/Concerns/InteractsWithContentTypes.php', - 'Illuminate\\Http\\Concerns\\InteractsWithFlashData' => $vendorDir . '/laravel/framework/src/Illuminate/Http/Concerns/InteractsWithFlashData.php', - 'Illuminate\\Http\\Concerns\\InteractsWithInput' => $vendorDir . '/laravel/framework/src/Illuminate/Http/Concerns/InteractsWithInput.php', - 'Illuminate\\Http\\Exceptions\\HttpResponseException' => $vendorDir . '/laravel/framework/src/Illuminate/Http/Exceptions/HttpResponseException.php', - 'Illuminate\\Http\\Exceptions\\PostTooLargeException' => $vendorDir . '/laravel/framework/src/Illuminate/Http/Exceptions/PostTooLargeException.php', - 'Illuminate\\Http\\Exceptions\\ThrottleRequestsException' => $vendorDir . '/laravel/framework/src/Illuminate/Http/Exceptions/ThrottleRequestsException.php', - 'Illuminate\\Http\\File' => $vendorDir . '/laravel/framework/src/Illuminate/Http/File.php', - 'Illuminate\\Http\\FileHelpers' => $vendorDir . '/laravel/framework/src/Illuminate/Http/FileHelpers.php', - 'Illuminate\\Http\\JsonResponse' => $vendorDir . '/laravel/framework/src/Illuminate/Http/JsonResponse.php', - 'Illuminate\\Http\\Middleware\\CheckResponseForModifications' => $vendorDir . '/laravel/framework/src/Illuminate/Http/Middleware/CheckResponseForModifications.php', - 'Illuminate\\Http\\Middleware\\FrameGuard' => $vendorDir . '/laravel/framework/src/Illuminate/Http/Middleware/FrameGuard.php', - 'Illuminate\\Http\\Middleware\\SetCacheHeaders' => $vendorDir . '/laravel/framework/src/Illuminate/Http/Middleware/SetCacheHeaders.php', - 'Illuminate\\Http\\RedirectResponse' => $vendorDir . '/laravel/framework/src/Illuminate/Http/RedirectResponse.php', - 'Illuminate\\Http\\Request' => $vendorDir . '/laravel/framework/src/Illuminate/Http/Request.php', - 'Illuminate\\Http\\Resources\\CollectsResources' => $vendorDir . '/laravel/framework/src/Illuminate/Http/Resources/CollectsResources.php', - 'Illuminate\\Http\\Resources\\ConditionallyLoadsAttributes' => $vendorDir . '/laravel/framework/src/Illuminate/Http/Resources/ConditionallyLoadsAttributes.php', - 'Illuminate\\Http\\Resources\\DelegatesToResource' => $vendorDir . '/laravel/framework/src/Illuminate/Http/Resources/DelegatesToResource.php', - 'Illuminate\\Http\\Resources\\Json\\AnonymousResourceCollection' => $vendorDir . '/laravel/framework/src/Illuminate/Http/Resources/Json/AnonymousResourceCollection.php', - 'Illuminate\\Http\\Resources\\Json\\JsonResource' => $vendorDir . '/laravel/framework/src/Illuminate/Http/Resources/Json/JsonResource.php', - 'Illuminate\\Http\\Resources\\Json\\PaginatedResourceResponse' => $vendorDir . '/laravel/framework/src/Illuminate/Http/Resources/Json/PaginatedResourceResponse.php', - 'Illuminate\\Http\\Resources\\Json\\Resource' => $vendorDir . '/laravel/framework/src/Illuminate/Http/Resources/Json/Resource.php', - 'Illuminate\\Http\\Resources\\Json\\ResourceCollection' => $vendorDir . '/laravel/framework/src/Illuminate/Http/Resources/Json/ResourceCollection.php', - 'Illuminate\\Http\\Resources\\Json\\ResourceResponse' => $vendorDir . '/laravel/framework/src/Illuminate/Http/Resources/Json/ResourceResponse.php', - 'Illuminate\\Http\\Resources\\MergeValue' => $vendorDir . '/laravel/framework/src/Illuminate/Http/Resources/MergeValue.php', - 'Illuminate\\Http\\Resources\\MissingValue' => $vendorDir . '/laravel/framework/src/Illuminate/Http/Resources/MissingValue.php', - 'Illuminate\\Http\\Resources\\PotentiallyMissing' => $vendorDir . '/laravel/framework/src/Illuminate/Http/Resources/PotentiallyMissing.php', - 'Illuminate\\Http\\Response' => $vendorDir . '/laravel/framework/src/Illuminate/Http/Response.php', - 'Illuminate\\Http\\ResponseTrait' => $vendorDir . '/laravel/framework/src/Illuminate/Http/ResponseTrait.php', - 'Illuminate\\Http\\Testing\\File' => $vendorDir . '/laravel/framework/src/Illuminate/Http/Testing/File.php', - 'Illuminate\\Http\\Testing\\FileFactory' => $vendorDir . '/laravel/framework/src/Illuminate/Http/Testing/FileFactory.php', - 'Illuminate\\Http\\Testing\\MimeType' => $vendorDir . '/laravel/framework/src/Illuminate/Http/Testing/MimeType.php', - 'Illuminate\\Http\\UploadedFile' => $vendorDir . '/laravel/framework/src/Illuminate/Http/UploadedFile.php', - 'Illuminate\\Log\\Events\\MessageLogged' => $vendorDir . '/laravel/framework/src/Illuminate/Log/Events/MessageLogged.php', - 'Illuminate\\Log\\LogManager' => $vendorDir . '/laravel/framework/src/Illuminate/Log/LogManager.php', - 'Illuminate\\Log\\LogServiceProvider' => $vendorDir . '/laravel/framework/src/Illuminate/Log/LogServiceProvider.php', - 'Illuminate\\Log\\Logger' => $vendorDir . '/laravel/framework/src/Illuminate/Log/Logger.php', - 'Illuminate\\Mail\\Events\\MessageSending' => $vendorDir . '/laravel/framework/src/Illuminate/Mail/Events/MessageSending.php', - 'Illuminate\\Mail\\Events\\MessageSent' => $vendorDir . '/laravel/framework/src/Illuminate/Mail/Events/MessageSent.php', - 'Illuminate\\Mail\\MailServiceProvider' => $vendorDir . '/laravel/framework/src/Illuminate/Mail/MailServiceProvider.php', - 'Illuminate\\Mail\\Mailable' => $vendorDir . '/laravel/framework/src/Illuminate/Mail/Mailable.php', - 'Illuminate\\Mail\\Mailer' => $vendorDir . '/laravel/framework/src/Illuminate/Mail/Mailer.php', - 'Illuminate\\Mail\\Markdown' => $vendorDir . '/laravel/framework/src/Illuminate/Mail/Markdown.php', - 'Illuminate\\Mail\\Message' => $vendorDir . '/laravel/framework/src/Illuminate/Mail/Message.php', - 'Illuminate\\Mail\\PendingMail' => $vendorDir . '/laravel/framework/src/Illuminate/Mail/PendingMail.php', - 'Illuminate\\Mail\\SendQueuedMailable' => $vendorDir . '/laravel/framework/src/Illuminate/Mail/SendQueuedMailable.php', - 'Illuminate\\Mail\\TransportManager' => $vendorDir . '/laravel/framework/src/Illuminate/Mail/TransportManager.php', - 'Illuminate\\Mail\\Transport\\ArrayTransport' => $vendorDir . '/laravel/framework/src/Illuminate/Mail/Transport/ArrayTransport.php', - 'Illuminate\\Mail\\Transport\\LogTransport' => $vendorDir . '/laravel/framework/src/Illuminate/Mail/Transport/LogTransport.php', - 'Illuminate\\Mail\\Transport\\MailgunTransport' => $vendorDir . '/laravel/framework/src/Illuminate/Mail/Transport/MailgunTransport.php', - 'Illuminate\\Mail\\Transport\\MandrillTransport' => $vendorDir . '/laravel/framework/src/Illuminate/Mail/Transport/MandrillTransport.php', - 'Illuminate\\Mail\\Transport\\SesTransport' => $vendorDir . '/laravel/framework/src/Illuminate/Mail/Transport/SesTransport.php', - 'Illuminate\\Mail\\Transport\\SparkPostTransport' => $vendorDir . '/laravel/framework/src/Illuminate/Mail/Transport/SparkPostTransport.php', - 'Illuminate\\Mail\\Transport\\Transport' => $vendorDir . '/laravel/framework/src/Illuminate/Mail/Transport/Transport.php', - 'Illuminate\\Notifications\\Action' => $vendorDir . '/laravel/framework/src/Illuminate/Notifications/Action.php', - 'Illuminate\\Notifications\\AnonymousNotifiable' => $vendorDir . '/laravel/framework/src/Illuminate/Notifications/AnonymousNotifiable.php', - 'Illuminate\\Notifications\\ChannelManager' => $vendorDir . '/laravel/framework/src/Illuminate/Notifications/ChannelManager.php', - 'Illuminate\\Notifications\\Channels\\BroadcastChannel' => $vendorDir . '/laravel/framework/src/Illuminate/Notifications/Channels/BroadcastChannel.php', - 'Illuminate\\Notifications\\Channels\\DatabaseChannel' => $vendorDir . '/laravel/framework/src/Illuminate/Notifications/Channels/DatabaseChannel.php', - 'Illuminate\\Notifications\\Channels\\MailChannel' => $vendorDir . '/laravel/framework/src/Illuminate/Notifications/Channels/MailChannel.php', - 'Illuminate\\Notifications\\Channels\\NexmoSmsChannel' => $vendorDir . '/laravel/framework/src/Illuminate/Notifications/Channels/NexmoSmsChannel.php', - 'Illuminate\\Notifications\\Channels\\SlackWebhookChannel' => $vendorDir . '/laravel/framework/src/Illuminate/Notifications/Channels/SlackWebhookChannel.php', - 'Illuminate\\Notifications\\Console\\NotificationTableCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Notifications/Console/NotificationTableCommand.php', - 'Illuminate\\Notifications\\DatabaseNotification' => $vendorDir . '/laravel/framework/src/Illuminate/Notifications/DatabaseNotification.php', - 'Illuminate\\Notifications\\DatabaseNotificationCollection' => $vendorDir . '/laravel/framework/src/Illuminate/Notifications/DatabaseNotificationCollection.php', - 'Illuminate\\Notifications\\Events\\BroadcastNotificationCreated' => $vendorDir . '/laravel/framework/src/Illuminate/Notifications/Events/BroadcastNotificationCreated.php', - 'Illuminate\\Notifications\\Events\\NotificationFailed' => $vendorDir . '/laravel/framework/src/Illuminate/Notifications/Events/NotificationFailed.php', - 'Illuminate\\Notifications\\Events\\NotificationSending' => $vendorDir . '/laravel/framework/src/Illuminate/Notifications/Events/NotificationSending.php', - 'Illuminate\\Notifications\\Events\\NotificationSent' => $vendorDir . '/laravel/framework/src/Illuminate/Notifications/Events/NotificationSent.php', - 'Illuminate\\Notifications\\HasDatabaseNotifications' => $vendorDir . '/laravel/framework/src/Illuminate/Notifications/HasDatabaseNotifications.php', - 'Illuminate\\Notifications\\Messages\\BroadcastMessage' => $vendorDir . '/laravel/framework/src/Illuminate/Notifications/Messages/BroadcastMessage.php', - 'Illuminate\\Notifications\\Messages\\DatabaseMessage' => $vendorDir . '/laravel/framework/src/Illuminate/Notifications/Messages/DatabaseMessage.php', - 'Illuminate\\Notifications\\Messages\\MailMessage' => $vendorDir . '/laravel/framework/src/Illuminate/Notifications/Messages/MailMessage.php', - 'Illuminate\\Notifications\\Messages\\NexmoMessage' => $vendorDir . '/laravel/framework/src/Illuminate/Notifications/Messages/NexmoMessage.php', - 'Illuminate\\Notifications\\Messages\\SimpleMessage' => $vendorDir . '/laravel/framework/src/Illuminate/Notifications/Messages/SimpleMessage.php', - 'Illuminate\\Notifications\\Messages\\SlackAttachment' => $vendorDir . '/laravel/framework/src/Illuminate/Notifications/Messages/SlackAttachment.php', - 'Illuminate\\Notifications\\Messages\\SlackAttachmentField' => $vendorDir . '/laravel/framework/src/Illuminate/Notifications/Messages/SlackAttachmentField.php', - 'Illuminate\\Notifications\\Messages\\SlackMessage' => $vendorDir . '/laravel/framework/src/Illuminate/Notifications/Messages/SlackMessage.php', - 'Illuminate\\Notifications\\Notifiable' => $vendorDir . '/laravel/framework/src/Illuminate/Notifications/Notifiable.php', - 'Illuminate\\Notifications\\Notification' => $vendorDir . '/laravel/framework/src/Illuminate/Notifications/Notification.php', - 'Illuminate\\Notifications\\NotificationSender' => $vendorDir . '/laravel/framework/src/Illuminate/Notifications/NotificationSender.php', - 'Illuminate\\Notifications\\NotificationServiceProvider' => $vendorDir . '/laravel/framework/src/Illuminate/Notifications/NotificationServiceProvider.php', - 'Illuminate\\Notifications\\RoutesNotifications' => $vendorDir . '/laravel/framework/src/Illuminate/Notifications/RoutesNotifications.php', - 'Illuminate\\Notifications\\SendQueuedNotifications' => $vendorDir . '/laravel/framework/src/Illuminate/Notifications/SendQueuedNotifications.php', - 'Illuminate\\Pagination\\AbstractPaginator' => $vendorDir . '/laravel/framework/src/Illuminate/Pagination/AbstractPaginator.php', - 'Illuminate\\Pagination\\LengthAwarePaginator' => $vendorDir . '/laravel/framework/src/Illuminate/Pagination/LengthAwarePaginator.php', - 'Illuminate\\Pagination\\PaginationServiceProvider' => $vendorDir . '/laravel/framework/src/Illuminate/Pagination/PaginationServiceProvider.php', - 'Illuminate\\Pagination\\Paginator' => $vendorDir . '/laravel/framework/src/Illuminate/Pagination/Paginator.php', - 'Illuminate\\Pagination\\UrlWindow' => $vendorDir . '/laravel/framework/src/Illuminate/Pagination/UrlWindow.php', - 'Illuminate\\Pipeline\\Hub' => $vendorDir . '/laravel/framework/src/Illuminate/Pipeline/Hub.php', - 'Illuminate\\Pipeline\\Pipeline' => $vendorDir . '/laravel/framework/src/Illuminate/Pipeline/Pipeline.php', - 'Illuminate\\Pipeline\\PipelineServiceProvider' => $vendorDir . '/laravel/framework/src/Illuminate/Pipeline/PipelineServiceProvider.php', - 'Illuminate\\Queue\\BeanstalkdQueue' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/BeanstalkdQueue.php', - 'Illuminate\\Queue\\CallQueuedHandler' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/CallQueuedHandler.php', - 'Illuminate\\Queue\\Capsule\\Manager' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/Capsule/Manager.php', - 'Illuminate\\Queue\\Connectors\\BeanstalkdConnector' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/Connectors/BeanstalkdConnector.php', - 'Illuminate\\Queue\\Connectors\\ConnectorInterface' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/Connectors/ConnectorInterface.php', - 'Illuminate\\Queue\\Connectors\\DatabaseConnector' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/Connectors/DatabaseConnector.php', - 'Illuminate\\Queue\\Connectors\\NullConnector' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/Connectors/NullConnector.php', - 'Illuminate\\Queue\\Connectors\\RedisConnector' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/Connectors/RedisConnector.php', - 'Illuminate\\Queue\\Connectors\\SqsConnector' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/Connectors/SqsConnector.php', - 'Illuminate\\Queue\\Connectors\\SyncConnector' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/Connectors/SyncConnector.php', - 'Illuminate\\Queue\\Console\\FailedTableCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/Console/FailedTableCommand.php', - 'Illuminate\\Queue\\Console\\FlushFailedCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/Console/FlushFailedCommand.php', - 'Illuminate\\Queue\\Console\\ForgetFailedCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/Console/ForgetFailedCommand.php', - 'Illuminate\\Queue\\Console\\ListFailedCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/Console/ListFailedCommand.php', - 'Illuminate\\Queue\\Console\\ListenCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/Console/ListenCommand.php', - 'Illuminate\\Queue\\Console\\RestartCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/Console/RestartCommand.php', - 'Illuminate\\Queue\\Console\\RetryCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/Console/RetryCommand.php', - 'Illuminate\\Queue\\Console\\TableCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/Console/TableCommand.php', - 'Illuminate\\Queue\\Console\\WorkCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/Console/WorkCommand.php', - 'Illuminate\\Queue\\DatabaseQueue' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/DatabaseQueue.php', - 'Illuminate\\Queue\\Events\\JobExceptionOccurred' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/Events/JobExceptionOccurred.php', - 'Illuminate\\Queue\\Events\\JobFailed' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/Events/JobFailed.php', - 'Illuminate\\Queue\\Events\\JobProcessed' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/Events/JobProcessed.php', - 'Illuminate\\Queue\\Events\\JobProcessing' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/Events/JobProcessing.php', - 'Illuminate\\Queue\\Events\\Looping' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/Events/Looping.php', - 'Illuminate\\Queue\\Events\\WorkerStopping' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/Events/WorkerStopping.php', - 'Illuminate\\Queue\\Failed\\DatabaseFailedJobProvider' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/Failed/DatabaseFailedJobProvider.php', - 'Illuminate\\Queue\\Failed\\FailedJobProviderInterface' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/Failed/FailedJobProviderInterface.php', - 'Illuminate\\Queue\\Failed\\NullFailedJobProvider' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/Failed/NullFailedJobProvider.php', - 'Illuminate\\Queue\\FailingJob' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/FailingJob.php', - 'Illuminate\\Queue\\InteractsWithQueue' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/InteractsWithQueue.php', - 'Illuminate\\Queue\\InvalidPayloadException' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/InvalidPayloadException.php', - 'Illuminate\\Queue\\Jobs\\BeanstalkdJob' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/Jobs/BeanstalkdJob.php', - 'Illuminate\\Queue\\Jobs\\DatabaseJob' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/Jobs/DatabaseJob.php', - 'Illuminate\\Queue\\Jobs\\DatabaseJobRecord' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/Jobs/DatabaseJobRecord.php', - 'Illuminate\\Queue\\Jobs\\Job' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/Jobs/Job.php', - 'Illuminate\\Queue\\Jobs\\JobName' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/Jobs/JobName.php', - 'Illuminate\\Queue\\Jobs\\RedisJob' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/Jobs/RedisJob.php', - 'Illuminate\\Queue\\Jobs\\SqsJob' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/Jobs/SqsJob.php', - 'Illuminate\\Queue\\Jobs\\SyncJob' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/Jobs/SyncJob.php', - 'Illuminate\\Queue\\Listener' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/Listener.php', - 'Illuminate\\Queue\\ListenerOptions' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/ListenerOptions.php', - 'Illuminate\\Queue\\LuaScripts' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/LuaScripts.php', - 'Illuminate\\Queue\\ManuallyFailedException' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/ManuallyFailedException.php', - 'Illuminate\\Queue\\MaxAttemptsExceededException' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/MaxAttemptsExceededException.php', - 'Illuminate\\Queue\\NullQueue' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/NullQueue.php', - 'Illuminate\\Queue\\Queue' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/Queue.php', - 'Illuminate\\Queue\\QueueManager' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/QueueManager.php', - 'Illuminate\\Queue\\QueueServiceProvider' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/QueueServiceProvider.php', - 'Illuminate\\Queue\\RedisQueue' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/RedisQueue.php', - 'Illuminate\\Queue\\SerializesAndRestoresModelIdentifiers' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/SerializesAndRestoresModelIdentifiers.php', - 'Illuminate\\Queue\\SerializesModels' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/SerializesModels.php', - 'Illuminate\\Queue\\SqsQueue' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/SqsQueue.php', - 'Illuminate\\Queue\\SyncQueue' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/SyncQueue.php', - 'Illuminate\\Queue\\Worker' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/Worker.php', - 'Illuminate\\Queue\\WorkerOptions' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/WorkerOptions.php', - 'Illuminate\\Redis\\Connections\\Connection' => $vendorDir . '/laravel/framework/src/Illuminate/Redis/Connections/Connection.php', - 'Illuminate\\Redis\\Connections\\PhpRedisClusterConnection' => $vendorDir . '/laravel/framework/src/Illuminate/Redis/Connections/PhpRedisClusterConnection.php', - 'Illuminate\\Redis\\Connections\\PhpRedisConnection' => $vendorDir . '/laravel/framework/src/Illuminate/Redis/Connections/PhpRedisConnection.php', - 'Illuminate\\Redis\\Connections\\PredisClusterConnection' => $vendorDir . '/laravel/framework/src/Illuminate/Redis/Connections/PredisClusterConnection.php', - 'Illuminate\\Redis\\Connections\\PredisConnection' => $vendorDir . '/laravel/framework/src/Illuminate/Redis/Connections/PredisConnection.php', - 'Illuminate\\Redis\\Connectors\\PhpRedisConnector' => $vendorDir . '/laravel/framework/src/Illuminate/Redis/Connectors/PhpRedisConnector.php', - 'Illuminate\\Redis\\Connectors\\PredisConnector' => $vendorDir . '/laravel/framework/src/Illuminate/Redis/Connectors/PredisConnector.php', - 'Illuminate\\Redis\\Limiters\\ConcurrencyLimiter' => $vendorDir . '/laravel/framework/src/Illuminate/Redis/Limiters/ConcurrencyLimiter.php', - 'Illuminate\\Redis\\Limiters\\ConcurrencyLimiterBuilder' => $vendorDir . '/laravel/framework/src/Illuminate/Redis/Limiters/ConcurrencyLimiterBuilder.php', - 'Illuminate\\Redis\\Limiters\\DurationLimiter' => $vendorDir . '/laravel/framework/src/Illuminate/Redis/Limiters/DurationLimiter.php', - 'Illuminate\\Redis\\Limiters\\DurationLimiterBuilder' => $vendorDir . '/laravel/framework/src/Illuminate/Redis/Limiters/DurationLimiterBuilder.php', - 'Illuminate\\Redis\\RedisManager' => $vendorDir . '/laravel/framework/src/Illuminate/Redis/RedisManager.php', - 'Illuminate\\Redis\\RedisServiceProvider' => $vendorDir . '/laravel/framework/src/Illuminate/Redis/RedisServiceProvider.php', - 'Illuminate\\Routing\\Console\\ControllerMakeCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Routing/Console/ControllerMakeCommand.php', - 'Illuminate\\Routing\\Console\\MiddlewareMakeCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Routing/Console/MiddlewareMakeCommand.php', - 'Illuminate\\Routing\\Contracts\\ControllerDispatcher' => $vendorDir . '/laravel/framework/src/Illuminate/Routing/Contracts/ControllerDispatcher.php', - 'Illuminate\\Routing\\Controller' => $vendorDir . '/laravel/framework/src/Illuminate/Routing/Controller.php', - 'Illuminate\\Routing\\ControllerDispatcher' => $vendorDir . '/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php', - 'Illuminate\\Routing\\ControllerMiddlewareOptions' => $vendorDir . '/laravel/framework/src/Illuminate/Routing/ControllerMiddlewareOptions.php', - 'Illuminate\\Routing\\Events\\RouteMatched' => $vendorDir . '/laravel/framework/src/Illuminate/Routing/Events/RouteMatched.php', - 'Illuminate\\Routing\\Exceptions\\InvalidSignatureException' => $vendorDir . '/laravel/framework/src/Illuminate/Routing/Exceptions/InvalidSignatureException.php', - 'Illuminate\\Routing\\Exceptions\\UrlGenerationException' => $vendorDir . '/laravel/framework/src/Illuminate/Routing/Exceptions/UrlGenerationException.php', - 'Illuminate\\Routing\\ImplicitRouteBinding' => $vendorDir . '/laravel/framework/src/Illuminate/Routing/ImplicitRouteBinding.php', - 'Illuminate\\Routing\\Matching\\HostValidator' => $vendorDir . '/laravel/framework/src/Illuminate/Routing/Matching/HostValidator.php', - 'Illuminate\\Routing\\Matching\\MethodValidator' => $vendorDir . '/laravel/framework/src/Illuminate/Routing/Matching/MethodValidator.php', - 'Illuminate\\Routing\\Matching\\SchemeValidator' => $vendorDir . '/laravel/framework/src/Illuminate/Routing/Matching/SchemeValidator.php', - 'Illuminate\\Routing\\Matching\\UriValidator' => $vendorDir . '/laravel/framework/src/Illuminate/Routing/Matching/UriValidator.php', - 'Illuminate\\Routing\\Matching\\ValidatorInterface' => $vendorDir . '/laravel/framework/src/Illuminate/Routing/Matching/ValidatorInterface.php', - 'Illuminate\\Routing\\MiddlewareNameResolver' => $vendorDir . '/laravel/framework/src/Illuminate/Routing/MiddlewareNameResolver.php', - 'Illuminate\\Routing\\Middleware\\SubstituteBindings' => $vendorDir . '/laravel/framework/src/Illuminate/Routing/Middleware/SubstituteBindings.php', - 'Illuminate\\Routing\\Middleware\\ThrottleRequests' => $vendorDir . '/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequests.php', - 'Illuminate\\Routing\\Middleware\\ThrottleRequestsWithRedis' => $vendorDir . '/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequestsWithRedis.php', - 'Illuminate\\Routing\\Middleware\\ValidateSignature' => $vendorDir . '/laravel/framework/src/Illuminate/Routing/Middleware/ValidateSignature.php', - 'Illuminate\\Routing\\PendingResourceRegistration' => $vendorDir . '/laravel/framework/src/Illuminate/Routing/PendingResourceRegistration.php', - 'Illuminate\\Routing\\Pipeline' => $vendorDir . '/laravel/framework/src/Illuminate/Routing/Pipeline.php', - 'Illuminate\\Routing\\RedirectController' => $vendorDir . '/laravel/framework/src/Illuminate/Routing/RedirectController.php', - 'Illuminate\\Routing\\Redirector' => $vendorDir . '/laravel/framework/src/Illuminate/Routing/Redirector.php', - 'Illuminate\\Routing\\ResourceRegistrar' => $vendorDir . '/laravel/framework/src/Illuminate/Routing/ResourceRegistrar.php', - 'Illuminate\\Routing\\ResponseFactory' => $vendorDir . '/laravel/framework/src/Illuminate/Routing/ResponseFactory.php', - 'Illuminate\\Routing\\Route' => $vendorDir . '/laravel/framework/src/Illuminate/Routing/Route.php', - 'Illuminate\\Routing\\RouteAction' => $vendorDir . '/laravel/framework/src/Illuminate/Routing/RouteAction.php', - 'Illuminate\\Routing\\RouteBinding' => $vendorDir . '/laravel/framework/src/Illuminate/Routing/RouteBinding.php', - 'Illuminate\\Routing\\RouteCollection' => $vendorDir . '/laravel/framework/src/Illuminate/Routing/RouteCollection.php', - 'Illuminate\\Routing\\RouteCompiler' => $vendorDir . '/laravel/framework/src/Illuminate/Routing/RouteCompiler.php', - 'Illuminate\\Routing\\RouteDependencyResolverTrait' => $vendorDir . '/laravel/framework/src/Illuminate/Routing/RouteDependencyResolverTrait.php', - 'Illuminate\\Routing\\RouteGroup' => $vendorDir . '/laravel/framework/src/Illuminate/Routing/RouteGroup.php', - 'Illuminate\\Routing\\RouteParameterBinder' => $vendorDir . '/laravel/framework/src/Illuminate/Routing/RouteParameterBinder.php', - 'Illuminate\\Routing\\RouteRegistrar' => $vendorDir . '/laravel/framework/src/Illuminate/Routing/RouteRegistrar.php', - 'Illuminate\\Routing\\RouteSignatureParameters' => $vendorDir . '/laravel/framework/src/Illuminate/Routing/RouteSignatureParameters.php', - 'Illuminate\\Routing\\RouteUrlGenerator' => $vendorDir . '/laravel/framework/src/Illuminate/Routing/RouteUrlGenerator.php', - 'Illuminate\\Routing\\Router' => $vendorDir . '/laravel/framework/src/Illuminate/Routing/Router.php', - 'Illuminate\\Routing\\RoutingServiceProvider' => $vendorDir . '/laravel/framework/src/Illuminate/Routing/RoutingServiceProvider.php', - 'Illuminate\\Routing\\SortedMiddleware' => $vendorDir . '/laravel/framework/src/Illuminate/Routing/SortedMiddleware.php', - 'Illuminate\\Routing\\UrlGenerator' => $vendorDir . '/laravel/framework/src/Illuminate/Routing/UrlGenerator.php', - 'Illuminate\\Routing\\ViewController' => $vendorDir . '/laravel/framework/src/Illuminate/Routing/ViewController.php', - 'Illuminate\\Session\\CacheBasedSessionHandler' => $vendorDir . '/laravel/framework/src/Illuminate/Session/CacheBasedSessionHandler.php', - 'Illuminate\\Session\\Console\\SessionTableCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Session/Console/SessionTableCommand.php', - 'Illuminate\\Session\\CookieSessionHandler' => $vendorDir . '/laravel/framework/src/Illuminate/Session/CookieSessionHandler.php', - 'Illuminate\\Session\\DatabaseSessionHandler' => $vendorDir . '/laravel/framework/src/Illuminate/Session/DatabaseSessionHandler.php', - 'Illuminate\\Session\\EncryptedStore' => $vendorDir . '/laravel/framework/src/Illuminate/Session/EncryptedStore.php', - 'Illuminate\\Session\\ExistenceAwareInterface' => $vendorDir . '/laravel/framework/src/Illuminate/Session/ExistenceAwareInterface.php', - 'Illuminate\\Session\\FileSessionHandler' => $vendorDir . '/laravel/framework/src/Illuminate/Session/FileSessionHandler.php', - 'Illuminate\\Session\\Middleware\\AuthenticateSession' => $vendorDir . '/laravel/framework/src/Illuminate/Session/Middleware/AuthenticateSession.php', - 'Illuminate\\Session\\Middleware\\StartSession' => $vendorDir . '/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php', - 'Illuminate\\Session\\NullSessionHandler' => $vendorDir . '/laravel/framework/src/Illuminate/Session/NullSessionHandler.php', - 'Illuminate\\Session\\SessionManager' => $vendorDir . '/laravel/framework/src/Illuminate/Session/SessionManager.php', - 'Illuminate\\Session\\SessionServiceProvider' => $vendorDir . '/laravel/framework/src/Illuminate/Session/SessionServiceProvider.php', - 'Illuminate\\Session\\Store' => $vendorDir . '/laravel/framework/src/Illuminate/Session/Store.php', - 'Illuminate\\Session\\TokenMismatchException' => $vendorDir . '/laravel/framework/src/Illuminate/Session/TokenMismatchException.php', - 'Illuminate\\Support\\AggregateServiceProvider' => $vendorDir . '/laravel/framework/src/Illuminate/Support/AggregateServiceProvider.php', - 'Illuminate\\Support\\Arr' => $vendorDir . '/laravel/framework/src/Illuminate/Support/Arr.php', - 'Illuminate\\Support\\Carbon' => $vendorDir . '/laravel/framework/src/Illuminate/Support/Carbon.php', - 'Illuminate\\Support\\Collection' => $vendorDir . '/laravel/framework/src/Illuminate/Support/Collection.php', - 'Illuminate\\Support\\Composer' => $vendorDir . '/laravel/framework/src/Illuminate/Support/Composer.php', - 'Illuminate\\Support\\Debug\\Dumper' => $vendorDir . '/laravel/framework/src/Illuminate/Support/Debug/Dumper.php', - 'Illuminate\\Support\\Debug\\HtmlDumper' => $vendorDir . '/laravel/framework/src/Illuminate/Support/Debug/HtmlDumper.php', - 'Illuminate\\Support\\Facades\\App' => $vendorDir . '/laravel/framework/src/Illuminate/Support/Facades/App.php', - 'Illuminate\\Support\\Facades\\Artisan' => $vendorDir . '/laravel/framework/src/Illuminate/Support/Facades/Artisan.php', - 'Illuminate\\Support\\Facades\\Auth' => $vendorDir . '/laravel/framework/src/Illuminate/Support/Facades/Auth.php', - 'Illuminate\\Support\\Facades\\Blade' => $vendorDir . '/laravel/framework/src/Illuminate/Support/Facades/Blade.php', - 'Illuminate\\Support\\Facades\\Broadcast' => $vendorDir . '/laravel/framework/src/Illuminate/Support/Facades/Broadcast.php', - 'Illuminate\\Support\\Facades\\Bus' => $vendorDir . '/laravel/framework/src/Illuminate/Support/Facades/Bus.php', - 'Illuminate\\Support\\Facades\\Cache' => $vendorDir . '/laravel/framework/src/Illuminate/Support/Facades/Cache.php', - 'Illuminate\\Support\\Facades\\Config' => $vendorDir . '/laravel/framework/src/Illuminate/Support/Facades/Config.php', - 'Illuminate\\Support\\Facades\\Cookie' => $vendorDir . '/laravel/framework/src/Illuminate/Support/Facades/Cookie.php', - 'Illuminate\\Support\\Facades\\Crypt' => $vendorDir . '/laravel/framework/src/Illuminate/Support/Facades/Crypt.php', - 'Illuminate\\Support\\Facades\\DB' => $vendorDir . '/laravel/framework/src/Illuminate/Support/Facades/DB.php', - 'Illuminate\\Support\\Facades\\Event' => $vendorDir . '/laravel/framework/src/Illuminate/Support/Facades/Event.php', - 'Illuminate\\Support\\Facades\\Facade' => $vendorDir . '/laravel/framework/src/Illuminate/Support/Facades/Facade.php', - 'Illuminate\\Support\\Facades\\File' => $vendorDir . '/laravel/framework/src/Illuminate/Support/Facades/File.php', - 'Illuminate\\Support\\Facades\\Gate' => $vendorDir . '/laravel/framework/src/Illuminate/Support/Facades/Gate.php', - 'Illuminate\\Support\\Facades\\Hash' => $vendorDir . '/laravel/framework/src/Illuminate/Support/Facades/Hash.php', - 'Illuminate\\Support\\Facades\\Input' => $vendorDir . '/laravel/framework/src/Illuminate/Support/Facades/Input.php', - 'Illuminate\\Support\\Facades\\Lang' => $vendorDir . '/laravel/framework/src/Illuminate/Support/Facades/Lang.php', - 'Illuminate\\Support\\Facades\\Log' => $vendorDir . '/laravel/framework/src/Illuminate/Support/Facades/Log.php', - 'Illuminate\\Support\\Facades\\Mail' => $vendorDir . '/laravel/framework/src/Illuminate/Support/Facades/Mail.php', - 'Illuminate\\Support\\Facades\\Notification' => $vendorDir . '/laravel/framework/src/Illuminate/Support/Facades/Notification.php', - 'Illuminate\\Support\\Facades\\Password' => $vendorDir . '/laravel/framework/src/Illuminate/Support/Facades/Password.php', - 'Illuminate\\Support\\Facades\\Queue' => $vendorDir . '/laravel/framework/src/Illuminate/Support/Facades/Queue.php', - 'Illuminate\\Support\\Facades\\Redirect' => $vendorDir . '/laravel/framework/src/Illuminate/Support/Facades/Redirect.php', - 'Illuminate\\Support\\Facades\\Redis' => $vendorDir . '/laravel/framework/src/Illuminate/Support/Facades/Redis.php', - 'Illuminate\\Support\\Facades\\Request' => $vendorDir . '/laravel/framework/src/Illuminate/Support/Facades/Request.php', - 'Illuminate\\Support\\Facades\\Response' => $vendorDir . '/laravel/framework/src/Illuminate/Support/Facades/Response.php', - 'Illuminate\\Support\\Facades\\Route' => $vendorDir . '/laravel/framework/src/Illuminate/Support/Facades/Route.php', - 'Illuminate\\Support\\Facades\\Schema' => $vendorDir . '/laravel/framework/src/Illuminate/Support/Facades/Schema.php', - 'Illuminate\\Support\\Facades\\Session' => $vendorDir . '/laravel/framework/src/Illuminate/Support/Facades/Session.php', - 'Illuminate\\Support\\Facades\\Storage' => $vendorDir . '/laravel/framework/src/Illuminate/Support/Facades/Storage.php', - 'Illuminate\\Support\\Facades\\URL' => $vendorDir . '/laravel/framework/src/Illuminate/Support/Facades/URL.php', - 'Illuminate\\Support\\Facades\\Validator' => $vendorDir . '/laravel/framework/src/Illuminate/Support/Facades/Validator.php', - 'Illuminate\\Support\\Facades\\View' => $vendorDir . '/laravel/framework/src/Illuminate/Support/Facades/View.php', - 'Illuminate\\Support\\Fluent' => $vendorDir . '/laravel/framework/src/Illuminate/Support/Fluent.php', - 'Illuminate\\Support\\HigherOrderCollectionProxy' => $vendorDir . '/laravel/framework/src/Illuminate/Support/HigherOrderCollectionProxy.php', - 'Illuminate\\Support\\HigherOrderTapProxy' => $vendorDir . '/laravel/framework/src/Illuminate/Support/HigherOrderTapProxy.php', - 'Illuminate\\Support\\HtmlString' => $vendorDir . '/laravel/framework/src/Illuminate/Support/HtmlString.php', - 'Illuminate\\Support\\InteractsWithTime' => $vendorDir . '/laravel/framework/src/Illuminate/Support/InteractsWithTime.php', - 'Illuminate\\Support\\Manager' => $vendorDir . '/laravel/framework/src/Illuminate/Support/Manager.php', - 'Illuminate\\Support\\MessageBag' => $vendorDir . '/laravel/framework/src/Illuminate/Support/MessageBag.php', - 'Illuminate\\Support\\NamespacedItemResolver' => $vendorDir . '/laravel/framework/src/Illuminate/Support/NamespacedItemResolver.php', - 'Illuminate\\Support\\Optional' => $vendorDir . '/laravel/framework/src/Illuminate/Support/Optional.php', - 'Illuminate\\Support\\Pluralizer' => $vendorDir . '/laravel/framework/src/Illuminate/Support/Pluralizer.php', - 'Illuminate\\Support\\ProcessUtils' => $vendorDir . '/laravel/framework/src/Illuminate/Support/ProcessUtils.php', - 'Illuminate\\Support\\ServiceProvider' => $vendorDir . '/laravel/framework/src/Illuminate/Support/ServiceProvider.php', - 'Illuminate\\Support\\Str' => $vendorDir . '/laravel/framework/src/Illuminate/Support/Str.php', - 'Illuminate\\Support\\Testing\\Fakes\\BusFake' => $vendorDir . '/laravel/framework/src/Illuminate/Support/Testing/Fakes/BusFake.php', - 'Illuminate\\Support\\Testing\\Fakes\\EventFake' => $vendorDir . '/laravel/framework/src/Illuminate/Support/Testing/Fakes/EventFake.php', - 'Illuminate\\Support\\Testing\\Fakes\\MailFake' => $vendorDir . '/laravel/framework/src/Illuminate/Support/Testing/Fakes/MailFake.php', - 'Illuminate\\Support\\Testing\\Fakes\\NotificationFake' => $vendorDir . '/laravel/framework/src/Illuminate/Support/Testing/Fakes/NotificationFake.php', - 'Illuminate\\Support\\Testing\\Fakes\\PendingMailFake' => $vendorDir . '/laravel/framework/src/Illuminate/Support/Testing/Fakes/PendingMailFake.php', - 'Illuminate\\Support\\Testing\\Fakes\\QueueFake' => $vendorDir . '/laravel/framework/src/Illuminate/Support/Testing/Fakes/QueueFake.php', - 'Illuminate\\Support\\Traits\\CapsuleManagerTrait' => $vendorDir . '/laravel/framework/src/Illuminate/Support/Traits/CapsuleManagerTrait.php', - 'Illuminate\\Support\\Traits\\Localizable' => $vendorDir . '/laravel/framework/src/Illuminate/Support/Traits/Localizable.php', - 'Illuminate\\Support\\Traits\\Macroable' => $vendorDir . '/laravel/framework/src/Illuminate/Support/Traits/Macroable.php', - 'Illuminate\\Support\\ViewErrorBag' => $vendorDir . '/laravel/framework/src/Illuminate/Support/ViewErrorBag.php', - 'Illuminate\\Translation\\ArrayLoader' => $vendorDir . '/laravel/framework/src/Illuminate/Translation/ArrayLoader.php', - 'Illuminate\\Translation\\FileLoader' => $vendorDir . '/laravel/framework/src/Illuminate/Translation/FileLoader.php', - 'Illuminate\\Translation\\MessageSelector' => $vendorDir . '/laravel/framework/src/Illuminate/Translation/MessageSelector.php', - 'Illuminate\\Translation\\TranslationServiceProvider' => $vendorDir . '/laravel/framework/src/Illuminate/Translation/TranslationServiceProvider.php', - 'Illuminate\\Translation\\Translator' => $vendorDir . '/laravel/framework/src/Illuminate/Translation/Translator.php', - 'Illuminate\\Validation\\ClosureValidationRule' => $vendorDir . '/laravel/framework/src/Illuminate/Validation/ClosureValidationRule.php', - 'Illuminate\\Validation\\Concerns\\FormatsMessages' => $vendorDir . '/laravel/framework/src/Illuminate/Validation/Concerns/FormatsMessages.php', - 'Illuminate\\Validation\\Concerns\\ReplacesAttributes' => $vendorDir . '/laravel/framework/src/Illuminate/Validation/Concerns/ReplacesAttributes.php', - 'Illuminate\\Validation\\Concerns\\ValidatesAttributes' => $vendorDir . '/laravel/framework/src/Illuminate/Validation/Concerns/ValidatesAttributes.php', - 'Illuminate\\Validation\\DatabasePresenceVerifier' => $vendorDir . '/laravel/framework/src/Illuminate/Validation/DatabasePresenceVerifier.php', - 'Illuminate\\Validation\\Factory' => $vendorDir . '/laravel/framework/src/Illuminate/Validation/Factory.php', - 'Illuminate\\Validation\\PresenceVerifierInterface' => $vendorDir . '/laravel/framework/src/Illuminate/Validation/PresenceVerifierInterface.php', - 'Illuminate\\Validation\\Rule' => $vendorDir . '/laravel/framework/src/Illuminate/Validation/Rule.php', - 'Illuminate\\Validation\\Rules\\DatabaseRule' => $vendorDir . '/laravel/framework/src/Illuminate/Validation/Rules/DatabaseRule.php', - 'Illuminate\\Validation\\Rules\\Dimensions' => $vendorDir . '/laravel/framework/src/Illuminate/Validation/Rules/Dimensions.php', - 'Illuminate\\Validation\\Rules\\Exists' => $vendorDir . '/laravel/framework/src/Illuminate/Validation/Rules/Exists.php', - 'Illuminate\\Validation\\Rules\\In' => $vendorDir . '/laravel/framework/src/Illuminate/Validation/Rules/In.php', - 'Illuminate\\Validation\\Rules\\NotIn' => $vendorDir . '/laravel/framework/src/Illuminate/Validation/Rules/NotIn.php', - 'Illuminate\\Validation\\Rules\\Unique' => $vendorDir . '/laravel/framework/src/Illuminate/Validation/Rules/Unique.php', - 'Illuminate\\Validation\\UnauthorizedException' => $vendorDir . '/laravel/framework/src/Illuminate/Validation/UnauthorizedException.php', - 'Illuminate\\Validation\\ValidatesWhenResolvedTrait' => $vendorDir . '/laravel/framework/src/Illuminate/Validation/ValidatesWhenResolvedTrait.php', - 'Illuminate\\Validation\\ValidationData' => $vendorDir . '/laravel/framework/src/Illuminate/Validation/ValidationData.php', - 'Illuminate\\Validation\\ValidationException' => $vendorDir . '/laravel/framework/src/Illuminate/Validation/ValidationException.php', - 'Illuminate\\Validation\\ValidationRuleParser' => $vendorDir . '/laravel/framework/src/Illuminate/Validation/ValidationRuleParser.php', - 'Illuminate\\Validation\\ValidationServiceProvider' => $vendorDir . '/laravel/framework/src/Illuminate/Validation/ValidationServiceProvider.php', - 'Illuminate\\Validation\\Validator' => $vendorDir . '/laravel/framework/src/Illuminate/Validation/Validator.php', - 'Illuminate\\View\\Compilers\\BladeCompiler' => $vendorDir . '/laravel/framework/src/Illuminate/View/Compilers/BladeCompiler.php', - 'Illuminate\\View\\Compilers\\Compiler' => $vendorDir . '/laravel/framework/src/Illuminate/View/Compilers/Compiler.php', - 'Illuminate\\View\\Compilers\\CompilerInterface' => $vendorDir . '/laravel/framework/src/Illuminate/View/Compilers/CompilerInterface.php', - 'Illuminate\\View\\Compilers\\Concerns\\CompilesAuthorizations' => $vendorDir . '/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesAuthorizations.php', - 'Illuminate\\View\\Compilers\\Concerns\\CompilesComments' => $vendorDir . '/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesComments.php', - 'Illuminate\\View\\Compilers\\Concerns\\CompilesComponents' => $vendorDir . '/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesComponents.php', - 'Illuminate\\View\\Compilers\\Concerns\\CompilesConditionals' => $vendorDir . '/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesConditionals.php', - 'Illuminate\\View\\Compilers\\Concerns\\CompilesEchos' => $vendorDir . '/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesEchos.php', - 'Illuminate\\View\\Compilers\\Concerns\\CompilesHelpers' => $vendorDir . '/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesHelpers.php', - 'Illuminate\\View\\Compilers\\Concerns\\CompilesIncludes' => $vendorDir . '/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesIncludes.php', - 'Illuminate\\View\\Compilers\\Concerns\\CompilesInjections' => $vendorDir . '/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesInjections.php', - 'Illuminate\\View\\Compilers\\Concerns\\CompilesJson' => $vendorDir . '/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesJson.php', - 'Illuminate\\View\\Compilers\\Concerns\\CompilesLayouts' => $vendorDir . '/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesLayouts.php', - 'Illuminate\\View\\Compilers\\Concerns\\CompilesLoops' => $vendorDir . '/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesLoops.php', - 'Illuminate\\View\\Compilers\\Concerns\\CompilesRawPhp' => $vendorDir . '/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesRawPhp.php', - 'Illuminate\\View\\Compilers\\Concerns\\CompilesStacks' => $vendorDir . '/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesStacks.php', - 'Illuminate\\View\\Compilers\\Concerns\\CompilesTranslations' => $vendorDir . '/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesTranslations.php', - 'Illuminate\\View\\Concerns\\ManagesComponents' => $vendorDir . '/laravel/framework/src/Illuminate/View/Concerns/ManagesComponents.php', - 'Illuminate\\View\\Concerns\\ManagesEvents' => $vendorDir . '/laravel/framework/src/Illuminate/View/Concerns/ManagesEvents.php', - 'Illuminate\\View\\Concerns\\ManagesLayouts' => $vendorDir . '/laravel/framework/src/Illuminate/View/Concerns/ManagesLayouts.php', - 'Illuminate\\View\\Concerns\\ManagesLoops' => $vendorDir . '/laravel/framework/src/Illuminate/View/Concerns/ManagesLoops.php', - 'Illuminate\\View\\Concerns\\ManagesStacks' => $vendorDir . '/laravel/framework/src/Illuminate/View/Concerns/ManagesStacks.php', - 'Illuminate\\View\\Concerns\\ManagesTranslations' => $vendorDir . '/laravel/framework/src/Illuminate/View/Concerns/ManagesTranslations.php', - 'Illuminate\\View\\Engines\\CompilerEngine' => $vendorDir . '/laravel/framework/src/Illuminate/View/Engines/CompilerEngine.php', - 'Illuminate\\View\\Engines\\Engine' => $vendorDir . '/laravel/framework/src/Illuminate/View/Engines/Engine.php', - 'Illuminate\\View\\Engines\\EngineResolver' => $vendorDir . '/laravel/framework/src/Illuminate/View/Engines/EngineResolver.php', - 'Illuminate\\View\\Engines\\FileEngine' => $vendorDir . '/laravel/framework/src/Illuminate/View/Engines/FileEngine.php', - 'Illuminate\\View\\Engines\\PhpEngine' => $vendorDir . '/laravel/framework/src/Illuminate/View/Engines/PhpEngine.php', - 'Illuminate\\View\\Factory' => $vendorDir . '/laravel/framework/src/Illuminate/View/Factory.php', - 'Illuminate\\View\\FileViewFinder' => $vendorDir . '/laravel/framework/src/Illuminate/View/FileViewFinder.php', - 'Illuminate\\View\\Middleware\\ShareErrorsFromSession' => $vendorDir . '/laravel/framework/src/Illuminate/View/Middleware/ShareErrorsFromSession.php', - 'Illuminate\\View\\View' => $vendorDir . '/laravel/framework/src/Illuminate/View/View.php', - 'Illuminate\\View\\ViewFinderInterface' => $vendorDir . '/laravel/framework/src/Illuminate/View/ViewFinderInterface.php', - 'Illuminate\\View\\ViewName' => $vendorDir . '/laravel/framework/src/Illuminate/View/ViewName.php', - 'Illuminate\\View\\ViewServiceProvider' => $vendorDir . '/laravel/framework/src/Illuminate/View/ViewServiceProvider.php', - 'InstanceSeeder' => $baseDir . '/database/seeds/InstanceSeeder.php', - 'Intervention\\Image\\AbstractColor' => $vendorDir . '/intervention/image/src/Intervention/Image/AbstractColor.php', - 'Intervention\\Image\\AbstractDecoder' => $vendorDir . '/intervention/image/src/Intervention/Image/AbstractDecoder.php', - 'Intervention\\Image\\AbstractDriver' => $vendorDir . '/intervention/image/src/Intervention/Image/AbstractDriver.php', - 'Intervention\\Image\\AbstractEncoder' => $vendorDir . '/intervention/image/src/Intervention/Image/AbstractEncoder.php', - 'Intervention\\Image\\AbstractFont' => $vendorDir . '/intervention/image/src/Intervention/Image/AbstractFont.php', - 'Intervention\\Image\\AbstractShape' => $vendorDir . '/intervention/image/src/Intervention/Image/AbstractShape.php', - 'Intervention\\Image\\Commands\\AbstractCommand' => $vendorDir . '/intervention/image/src/Intervention/Image/Commands/AbstractCommand.php', - 'Intervention\\Image\\Commands\\Argument' => $vendorDir . '/intervention/image/src/Intervention/Image/Commands/Argument.php', - 'Intervention\\Image\\Commands\\ChecksumCommand' => $vendorDir . '/intervention/image/src/Intervention/Image/Commands/ChecksumCommand.php', - 'Intervention\\Image\\Commands\\CircleCommand' => $vendorDir . '/intervention/image/src/Intervention/Image/Commands/CircleCommand.php', - 'Intervention\\Image\\Commands\\EllipseCommand' => $vendorDir . '/intervention/image/src/Intervention/Image/Commands/EllipseCommand.php', - 'Intervention\\Image\\Commands\\ExifCommand' => $vendorDir . '/intervention/image/src/Intervention/Image/Commands/ExifCommand.php', - 'Intervention\\Image\\Commands\\IptcCommand' => $vendorDir . '/intervention/image/src/Intervention/Image/Commands/IptcCommand.php', - 'Intervention\\Image\\Commands\\LineCommand' => $vendorDir . '/intervention/image/src/Intervention/Image/Commands/LineCommand.php', - 'Intervention\\Image\\Commands\\OrientateCommand' => $vendorDir . '/intervention/image/src/Intervention/Image/Commands/OrientateCommand.php', - 'Intervention\\Image\\Commands\\PolygonCommand' => $vendorDir . '/intervention/image/src/Intervention/Image/Commands/PolygonCommand.php', - 'Intervention\\Image\\Commands\\PsrResponseCommand' => $vendorDir . '/intervention/image/src/Intervention/Image/Commands/PsrResponseCommand.php', - 'Intervention\\Image\\Commands\\RectangleCommand' => $vendorDir . '/intervention/image/src/Intervention/Image/Commands/RectangleCommand.php', - 'Intervention\\Image\\Commands\\ResponseCommand' => $vendorDir . '/intervention/image/src/Intervention/Image/Commands/ResponseCommand.php', - 'Intervention\\Image\\Commands\\StreamCommand' => $vendorDir . '/intervention/image/src/Intervention/Image/Commands/StreamCommand.php', - 'Intervention\\Image\\Commands\\TextCommand' => $vendorDir . '/intervention/image/src/Intervention/Image/Commands/TextCommand.php', - 'Intervention\\Image\\Constraint' => $vendorDir . '/intervention/image/src/Intervention/Image/Constraint.php', - 'Intervention\\Image\\Exception\\ImageException' => $vendorDir . '/intervention/image/src/Intervention/Image/Exception/ImageException.php', - 'Intervention\\Image\\Exception\\InvalidArgumentException' => $vendorDir . '/intervention/image/src/Intervention/Image/Exception/InvalidArgumentException.php', - 'Intervention\\Image\\Exception\\MissingDependencyException' => $vendorDir . '/intervention/image/src/Intervention/Image/Exception/MissingDependencyException.php', - 'Intervention\\Image\\Exception\\NotFoundException' => $vendorDir . '/intervention/image/src/Intervention/Image/Exception/NotFoundException.php', - 'Intervention\\Image\\Exception\\NotReadableException' => $vendorDir . '/intervention/image/src/Intervention/Image/Exception/NotReadableException.php', - 'Intervention\\Image\\Exception\\NotSupportedException' => $vendorDir . '/intervention/image/src/Intervention/Image/Exception/NotSupportedException.php', - 'Intervention\\Image\\Exception\\NotWritableException' => $vendorDir . '/intervention/image/src/Intervention/Image/Exception/NotWritableException.php', - 'Intervention\\Image\\Exception\\RuntimeException' => $vendorDir . '/intervention/image/src/Intervention/Image/Exception/RuntimeException.php', - 'Intervention\\Image\\Facades\\Image' => $vendorDir . '/intervention/image/src/Intervention/Image/Facades/Image.php', - 'Intervention\\Image\\File' => $vendorDir . '/intervention/image/src/Intervention/Image/File.php', - 'Intervention\\Image\\Filters\\DemoFilter' => $vendorDir . '/intervention/image/src/Intervention/Image/Filters/DemoFilter.php', - 'Intervention\\Image\\Filters\\FilterInterface' => $vendorDir . '/intervention/image/src/Intervention/Image/Filters/FilterInterface.php', - 'Intervention\\Image\\Gd\\Color' => $vendorDir . '/intervention/image/src/Intervention/Image/Gd/Color.php', - 'Intervention\\Image\\Gd\\Commands\\BackupCommand' => $vendorDir . '/intervention/image/src/Intervention/Image/Gd/Commands/BackupCommand.php', - 'Intervention\\Image\\Gd\\Commands\\BlurCommand' => $vendorDir . '/intervention/image/src/Intervention/Image/Gd/Commands/BlurCommand.php', - 'Intervention\\Image\\Gd\\Commands\\BrightnessCommand' => $vendorDir . '/intervention/image/src/Intervention/Image/Gd/Commands/BrightnessCommand.php', - 'Intervention\\Image\\Gd\\Commands\\ColorizeCommand' => $vendorDir . '/intervention/image/src/Intervention/Image/Gd/Commands/ColorizeCommand.php', - 'Intervention\\Image\\Gd\\Commands\\ContrastCommand' => $vendorDir . '/intervention/image/src/Intervention/Image/Gd/Commands/ContrastCommand.php', - 'Intervention\\Image\\Gd\\Commands\\CropCommand' => $vendorDir . '/intervention/image/src/Intervention/Image/Gd/Commands/CropCommand.php', - 'Intervention\\Image\\Gd\\Commands\\DestroyCommand' => $vendorDir . '/intervention/image/src/Intervention/Image/Gd/Commands/DestroyCommand.php', - 'Intervention\\Image\\Gd\\Commands\\FillCommand' => $vendorDir . '/intervention/image/src/Intervention/Image/Gd/Commands/FillCommand.php', - 'Intervention\\Image\\Gd\\Commands\\FitCommand' => $vendorDir . '/intervention/image/src/Intervention/Image/Gd/Commands/FitCommand.php', - 'Intervention\\Image\\Gd\\Commands\\FlipCommand' => $vendorDir . '/intervention/image/src/Intervention/Image/Gd/Commands/FlipCommand.php', - 'Intervention\\Image\\Gd\\Commands\\GammaCommand' => $vendorDir . '/intervention/image/src/Intervention/Image/Gd/Commands/GammaCommand.php', - 'Intervention\\Image\\Gd\\Commands\\GetSizeCommand' => $vendorDir . '/intervention/image/src/Intervention/Image/Gd/Commands/GetSizeCommand.php', - 'Intervention\\Image\\Gd\\Commands\\GreyscaleCommand' => $vendorDir . '/intervention/image/src/Intervention/Image/Gd/Commands/GreyscaleCommand.php', - 'Intervention\\Image\\Gd\\Commands\\HeightenCommand' => $vendorDir . '/intervention/image/src/Intervention/Image/Gd/Commands/HeightenCommand.php', - 'Intervention\\Image\\Gd\\Commands\\InsertCommand' => $vendorDir . '/intervention/image/src/Intervention/Image/Gd/Commands/InsertCommand.php', - 'Intervention\\Image\\Gd\\Commands\\InterlaceCommand' => $vendorDir . '/intervention/image/src/Intervention/Image/Gd/Commands/InterlaceCommand.php', - 'Intervention\\Image\\Gd\\Commands\\InvertCommand' => $vendorDir . '/intervention/image/src/Intervention/Image/Gd/Commands/InvertCommand.php', - 'Intervention\\Image\\Gd\\Commands\\LimitColorsCommand' => $vendorDir . '/intervention/image/src/Intervention/Image/Gd/Commands/LimitColorsCommand.php', - 'Intervention\\Image\\Gd\\Commands\\MaskCommand' => $vendorDir . '/intervention/image/src/Intervention/Image/Gd/Commands/MaskCommand.php', - 'Intervention\\Image\\Gd\\Commands\\OpacityCommand' => $vendorDir . '/intervention/image/src/Intervention/Image/Gd/Commands/OpacityCommand.php', - 'Intervention\\Image\\Gd\\Commands\\PickColorCommand' => $vendorDir . '/intervention/image/src/Intervention/Image/Gd/Commands/PickColorCommand.php', - 'Intervention\\Image\\Gd\\Commands\\PixelCommand' => $vendorDir . '/intervention/image/src/Intervention/Image/Gd/Commands/PixelCommand.php', - 'Intervention\\Image\\Gd\\Commands\\PixelateCommand' => $vendorDir . '/intervention/image/src/Intervention/Image/Gd/Commands/PixelateCommand.php', - 'Intervention\\Image\\Gd\\Commands\\ResetCommand' => $vendorDir . '/intervention/image/src/Intervention/Image/Gd/Commands/ResetCommand.php', - 'Intervention\\Image\\Gd\\Commands\\ResizeCanvasCommand' => $vendorDir . '/intervention/image/src/Intervention/Image/Gd/Commands/ResizeCanvasCommand.php', - 'Intervention\\Image\\Gd\\Commands\\ResizeCommand' => $vendorDir . '/intervention/image/src/Intervention/Image/Gd/Commands/ResizeCommand.php', - 'Intervention\\Image\\Gd\\Commands\\RotateCommand' => $vendorDir . '/intervention/image/src/Intervention/Image/Gd/Commands/RotateCommand.php', - 'Intervention\\Image\\Gd\\Commands\\SharpenCommand' => $vendorDir . '/intervention/image/src/Intervention/Image/Gd/Commands/SharpenCommand.php', - 'Intervention\\Image\\Gd\\Commands\\TrimCommand' => $vendorDir . '/intervention/image/src/Intervention/Image/Gd/Commands/TrimCommand.php', - 'Intervention\\Image\\Gd\\Commands\\WidenCommand' => $vendorDir . '/intervention/image/src/Intervention/Image/Gd/Commands/WidenCommand.php', - 'Intervention\\Image\\Gd\\Decoder' => $vendorDir . '/intervention/image/src/Intervention/Image/Gd/Decoder.php', - 'Intervention\\Image\\Gd\\Driver' => $vendorDir . '/intervention/image/src/Intervention/Image/Gd/Driver.php', - 'Intervention\\Image\\Gd\\Encoder' => $vendorDir . '/intervention/image/src/Intervention/Image/Gd/Encoder.php', - 'Intervention\\Image\\Gd\\Font' => $vendorDir . '/intervention/image/src/Intervention/Image/Gd/Font.php', - 'Intervention\\Image\\Gd\\Shapes\\CircleShape' => $vendorDir . '/intervention/image/src/Intervention/Image/Gd/Shapes/CircleShape.php', - 'Intervention\\Image\\Gd\\Shapes\\EllipseShape' => $vendorDir . '/intervention/image/src/Intervention/Image/Gd/Shapes/EllipseShape.php', - 'Intervention\\Image\\Gd\\Shapes\\LineShape' => $vendorDir . '/intervention/image/src/Intervention/Image/Gd/Shapes/LineShape.php', - 'Intervention\\Image\\Gd\\Shapes\\PolygonShape' => $vendorDir . '/intervention/image/src/Intervention/Image/Gd/Shapes/PolygonShape.php', - 'Intervention\\Image\\Gd\\Shapes\\RectangleShape' => $vendorDir . '/intervention/image/src/Intervention/Image/Gd/Shapes/RectangleShape.php', - 'Intervention\\Image\\Image' => $vendorDir . '/intervention/image/src/Intervention/Image/Image.php', - 'Intervention\\Image\\ImageManager' => $vendorDir . '/intervention/image/src/Intervention/Image/ImageManager.php', - 'Intervention\\Image\\ImageManagerStatic' => $vendorDir . '/intervention/image/src/Intervention/Image/ImageManagerStatic.php', - 'Intervention\\Image\\ImageServiceProvider' => $vendorDir . '/intervention/image/src/Intervention/Image/ImageServiceProvider.php', - 'Intervention\\Image\\ImageServiceProviderLaravel4' => $vendorDir . '/intervention/image/src/Intervention/Image/ImageServiceProviderLaravel4.php', - 'Intervention\\Image\\ImageServiceProviderLaravel5' => $vendorDir . '/intervention/image/src/Intervention/Image/ImageServiceProviderLaravel5.php', - 'Intervention\\Image\\ImageServiceProviderLeague' => $vendorDir . '/intervention/image/src/Intervention/Image/ImageServiceProviderLeague.php', - 'Intervention\\Image\\ImageServiceProviderLumen' => $vendorDir . '/intervention/image/src/Intervention/Image/ImageServiceProviderLumen.php', - 'Intervention\\Image\\Imagick\\Color' => $vendorDir . '/intervention/image/src/Intervention/Image/Imagick/Color.php', - 'Intervention\\Image\\Imagick\\Commands\\BackupCommand' => $vendorDir . '/intervention/image/src/Intervention/Image/Imagick/Commands/BackupCommand.php', - 'Intervention\\Image\\Imagick\\Commands\\BlurCommand' => $vendorDir . '/intervention/image/src/Intervention/Image/Imagick/Commands/BlurCommand.php', - 'Intervention\\Image\\Imagick\\Commands\\BrightnessCommand' => $vendorDir . '/intervention/image/src/Intervention/Image/Imagick/Commands/BrightnessCommand.php', - 'Intervention\\Image\\Imagick\\Commands\\ColorizeCommand' => $vendorDir . '/intervention/image/src/Intervention/Image/Imagick/Commands/ColorizeCommand.php', - 'Intervention\\Image\\Imagick\\Commands\\ContrastCommand' => $vendorDir . '/intervention/image/src/Intervention/Image/Imagick/Commands/ContrastCommand.php', - 'Intervention\\Image\\Imagick\\Commands\\CropCommand' => $vendorDir . '/intervention/image/src/Intervention/Image/Imagick/Commands/CropCommand.php', - 'Intervention\\Image\\Imagick\\Commands\\DestroyCommand' => $vendorDir . '/intervention/image/src/Intervention/Image/Imagick/Commands/DestroyCommand.php', - 'Intervention\\Image\\Imagick\\Commands\\ExifCommand' => $vendorDir . '/intervention/image/src/Intervention/Image/Imagick/Commands/ExifCommand.php', - 'Intervention\\Image\\Imagick\\Commands\\FillCommand' => $vendorDir . '/intervention/image/src/Intervention/Image/Imagick/Commands/FillCommand.php', - 'Intervention\\Image\\Imagick\\Commands\\FitCommand' => $vendorDir . '/intervention/image/src/Intervention/Image/Imagick/Commands/FitCommand.php', - 'Intervention\\Image\\Imagick\\Commands\\FlipCommand' => $vendorDir . '/intervention/image/src/Intervention/Image/Imagick/Commands/FlipCommand.php', - 'Intervention\\Image\\Imagick\\Commands\\GammaCommand' => $vendorDir . '/intervention/image/src/Intervention/Image/Imagick/Commands/GammaCommand.php', - 'Intervention\\Image\\Imagick\\Commands\\GetSizeCommand' => $vendorDir . '/intervention/image/src/Intervention/Image/Imagick/Commands/GetSizeCommand.php', - 'Intervention\\Image\\Imagick\\Commands\\GreyscaleCommand' => $vendorDir . '/intervention/image/src/Intervention/Image/Imagick/Commands/GreyscaleCommand.php', - 'Intervention\\Image\\Imagick\\Commands\\HeightenCommand' => $vendorDir . '/intervention/image/src/Intervention/Image/Imagick/Commands/HeightenCommand.php', - 'Intervention\\Image\\Imagick\\Commands\\InsertCommand' => $vendorDir . '/intervention/image/src/Intervention/Image/Imagick/Commands/InsertCommand.php', - 'Intervention\\Image\\Imagick\\Commands\\InterlaceCommand' => $vendorDir . '/intervention/image/src/Intervention/Image/Imagick/Commands/InterlaceCommand.php', - 'Intervention\\Image\\Imagick\\Commands\\InvertCommand' => $vendorDir . '/intervention/image/src/Intervention/Image/Imagick/Commands/InvertCommand.php', - 'Intervention\\Image\\Imagick\\Commands\\LimitColorsCommand' => $vendorDir . '/intervention/image/src/Intervention/Image/Imagick/Commands/LimitColorsCommand.php', - 'Intervention\\Image\\Imagick\\Commands\\MaskCommand' => $vendorDir . '/intervention/image/src/Intervention/Image/Imagick/Commands/MaskCommand.php', - 'Intervention\\Image\\Imagick\\Commands\\OpacityCommand' => $vendorDir . '/intervention/image/src/Intervention/Image/Imagick/Commands/OpacityCommand.php', - 'Intervention\\Image\\Imagick\\Commands\\PickColorCommand' => $vendorDir . '/intervention/image/src/Intervention/Image/Imagick/Commands/PickColorCommand.php', - 'Intervention\\Image\\Imagick\\Commands\\PixelCommand' => $vendorDir . '/intervention/image/src/Intervention/Image/Imagick/Commands/PixelCommand.php', - 'Intervention\\Image\\Imagick\\Commands\\PixelateCommand' => $vendorDir . '/intervention/image/src/Intervention/Image/Imagick/Commands/PixelateCommand.php', - 'Intervention\\Image\\Imagick\\Commands\\ResetCommand' => $vendorDir . '/intervention/image/src/Intervention/Image/Imagick/Commands/ResetCommand.php', - 'Intervention\\Image\\Imagick\\Commands\\ResizeCanvasCommand' => $vendorDir . '/intervention/image/src/Intervention/Image/Imagick/Commands/ResizeCanvasCommand.php', - 'Intervention\\Image\\Imagick\\Commands\\ResizeCommand' => $vendorDir . '/intervention/image/src/Intervention/Image/Imagick/Commands/ResizeCommand.php', - 'Intervention\\Image\\Imagick\\Commands\\RotateCommand' => $vendorDir . '/intervention/image/src/Intervention/Image/Imagick/Commands/RotateCommand.php', - 'Intervention\\Image\\Imagick\\Commands\\SharpenCommand' => $vendorDir . '/intervention/image/src/Intervention/Image/Imagick/Commands/SharpenCommand.php', - 'Intervention\\Image\\Imagick\\Commands\\TrimCommand' => $vendorDir . '/intervention/image/src/Intervention/Image/Imagick/Commands/TrimCommand.php', - 'Intervention\\Image\\Imagick\\Commands\\WidenCommand' => $vendorDir . '/intervention/image/src/Intervention/Image/Imagick/Commands/WidenCommand.php', - 'Intervention\\Image\\Imagick\\Decoder' => $vendorDir . '/intervention/image/src/Intervention/Image/Imagick/Decoder.php', - 'Intervention\\Image\\Imagick\\Driver' => $vendorDir . '/intervention/image/src/Intervention/Image/Imagick/Driver.php', - 'Intervention\\Image\\Imagick\\Encoder' => $vendorDir . '/intervention/image/src/Intervention/Image/Imagick/Encoder.php', - 'Intervention\\Image\\Imagick\\Font' => $vendorDir . '/intervention/image/src/Intervention/Image/Imagick/Font.php', - 'Intervention\\Image\\Imagick\\Shapes\\CircleShape' => $vendorDir . '/intervention/image/src/Intervention/Image/Imagick/Shapes/CircleShape.php', - 'Intervention\\Image\\Imagick\\Shapes\\EllipseShape' => $vendorDir . '/intervention/image/src/Intervention/Image/Imagick/Shapes/EllipseShape.php', - 'Intervention\\Image\\Imagick\\Shapes\\LineShape' => $vendorDir . '/intervention/image/src/Intervention/Image/Imagick/Shapes/LineShape.php', - 'Intervention\\Image\\Imagick\\Shapes\\PolygonShape' => $vendorDir . '/intervention/image/src/Intervention/Image/Imagick/Shapes/PolygonShape.php', - 'Intervention\\Image\\Imagick\\Shapes\\RectangleShape' => $vendorDir . '/intervention/image/src/Intervention/Image/Imagick/Shapes/RectangleShape.php', - 'Intervention\\Image\\Point' => $vendorDir . '/intervention/image/src/Intervention/Image/Point.php', - 'Intervention\\Image\\Response' => $vendorDir . '/intervention/image/src/Intervention/Image/Response.php', - 'Intervention\\Image\\Size' => $vendorDir . '/intervention/image/src/Intervention/Image/Size.php', - 'JakubOnderka\\PhpConsoleColor\\ConsoleColor' => $vendorDir . '/jakub-onderka/php-console-color/src/JakubOnderka/PhpConsoleColor/ConsoleColor.php', - 'JakubOnderka\\PhpConsoleColor\\InvalidStyleException' => $vendorDir . '/jakub-onderka/php-console-color/src/JakubOnderka/PhpConsoleColor/InvalidStyleException.php', - 'JakubOnderka\\PhpConsoleHighlighter\\Highlighter' => $vendorDir . '/jakub-onderka/php-console-highlighter/src/JakubOnderka/PhpConsoleHighlighter/Highlighter.php', - 'Laravel\\Tinker\\ClassAliasAutoloader' => $vendorDir . '/laravel/tinker/src/ClassAliasAutoloader.php', - 'Laravel\\Tinker\\Console\\TinkerCommand' => $vendorDir . '/laravel/tinker/src/Console/TinkerCommand.php', - 'Laravel\\Tinker\\TinkerCaster' => $vendorDir . '/laravel/tinker/src/TinkerCaster.php', - 'Laravel\\Tinker\\TinkerServiceProvider' => $vendorDir . '/laravel/tinker/src/TinkerServiceProvider.php', - 'Laravelista\\LumenVendorPublish\\VendorPublishCommand' => $vendorDir . '/laravelista/lumen-vendor-publish/src/VendorPublishCommand.php', - 'League\\Flysystem\\AdapterInterface' => $vendorDir . '/league/flysystem/src/AdapterInterface.php', - 'League\\Flysystem\\Adapter\\AbstractAdapter' => $vendorDir . '/league/flysystem/src/Adapter/AbstractAdapter.php', - 'League\\Flysystem\\Adapter\\AbstractFtpAdapter' => $vendorDir . '/league/flysystem/src/Adapter/AbstractFtpAdapter.php', - 'League\\Flysystem\\Adapter\\CanOverwriteFiles' => $vendorDir . '/league/flysystem/src/Adapter/CanOverwriteFiles.php', - 'League\\Flysystem\\Adapter\\Ftp' => $vendorDir . '/league/flysystem/src/Adapter/Ftp.php', - 'League\\Flysystem\\Adapter\\Ftpd' => $vendorDir . '/league/flysystem/src/Adapter/Ftpd.php', - 'League\\Flysystem\\Adapter\\Local' => $vendorDir . '/league/flysystem/src/Adapter/Local.php', - 'League\\Flysystem\\Adapter\\NullAdapter' => $vendorDir . '/league/flysystem/src/Adapter/NullAdapter.php', - 'League\\Flysystem\\Adapter\\Polyfill\\NotSupportingVisibilityTrait' => $vendorDir . '/league/flysystem/src/Adapter/Polyfill/NotSupportingVisibilityTrait.php', - 'League\\Flysystem\\Adapter\\Polyfill\\StreamedCopyTrait' => $vendorDir . '/league/flysystem/src/Adapter/Polyfill/StreamedCopyTrait.php', - 'League\\Flysystem\\Adapter\\Polyfill\\StreamedReadingTrait' => $vendorDir . '/league/flysystem/src/Adapter/Polyfill/StreamedReadingTrait.php', - 'League\\Flysystem\\Adapter\\Polyfill\\StreamedTrait' => $vendorDir . '/league/flysystem/src/Adapter/Polyfill/StreamedTrait.php', - 'League\\Flysystem\\Adapter\\Polyfill\\StreamedWritingTrait' => $vendorDir . '/league/flysystem/src/Adapter/Polyfill/StreamedWritingTrait.php', - 'League\\Flysystem\\Adapter\\SynologyFtp' => $vendorDir . '/league/flysystem/src/Adapter/SynologyFtp.php', - 'League\\Flysystem\\Config' => $vendorDir . '/league/flysystem/src/Config.php', - 'League\\Flysystem\\ConfigAwareTrait' => $vendorDir . '/league/flysystem/src/ConfigAwareTrait.php', - 'League\\Flysystem\\Directory' => $vendorDir . '/league/flysystem/src/Directory.php', - 'League\\Flysystem\\Exception' => $vendorDir . '/league/flysystem/src/Exception.php', - 'League\\Flysystem\\File' => $vendorDir . '/league/flysystem/src/File.php', - 'League\\Flysystem\\FileExistsException' => $vendorDir . '/league/flysystem/src/FileExistsException.php', - 'League\\Flysystem\\FileNotFoundException' => $vendorDir . '/league/flysystem/src/FileNotFoundException.php', - 'League\\Flysystem\\Filesystem' => $vendorDir . '/league/flysystem/src/Filesystem.php', - 'League\\Flysystem\\FilesystemInterface' => $vendorDir . '/league/flysystem/src/FilesystemInterface.php', - 'League\\Flysystem\\FilesystemNotFoundException' => $vendorDir . '/league/flysystem/src/FilesystemNotFoundException.php', - 'League\\Flysystem\\Handler' => $vendorDir . '/league/flysystem/src/Handler.php', - 'League\\Flysystem\\MountManager' => $vendorDir . '/league/flysystem/src/MountManager.php', - 'League\\Flysystem\\NotSupportedException' => $vendorDir . '/league/flysystem/src/NotSupportedException.php', - 'League\\Flysystem\\PluginInterface' => $vendorDir . '/league/flysystem/src/PluginInterface.php', - 'League\\Flysystem\\Plugin\\AbstractPlugin' => $vendorDir . '/league/flysystem/src/Plugin/AbstractPlugin.php', - 'League\\Flysystem\\Plugin\\EmptyDir' => $vendorDir . '/league/flysystem/src/Plugin/EmptyDir.php', - 'League\\Flysystem\\Plugin\\ForcedCopy' => $vendorDir . '/league/flysystem/src/Plugin/ForcedCopy.php', - 'League\\Flysystem\\Plugin\\ForcedRename' => $vendorDir . '/league/flysystem/src/Plugin/ForcedRename.php', - 'League\\Flysystem\\Plugin\\GetWithMetadata' => $vendorDir . '/league/flysystem/src/Plugin/GetWithMetadata.php', - 'League\\Flysystem\\Plugin\\ListFiles' => $vendorDir . '/league/flysystem/src/Plugin/ListFiles.php', - 'League\\Flysystem\\Plugin\\ListPaths' => $vendorDir . '/league/flysystem/src/Plugin/ListPaths.php', - 'League\\Flysystem\\Plugin\\ListWith' => $vendorDir . '/league/flysystem/src/Plugin/ListWith.php', - 'League\\Flysystem\\Plugin\\PluggableTrait' => $vendorDir . '/league/flysystem/src/Plugin/PluggableTrait.php', - 'League\\Flysystem\\Plugin\\PluginNotFoundException' => $vendorDir . '/league/flysystem/src/Plugin/PluginNotFoundException.php', - 'League\\Flysystem\\ReadInterface' => $vendorDir . '/league/flysystem/src/ReadInterface.php', - 'League\\Flysystem\\RootViolationException' => $vendorDir . '/league/flysystem/src/RootViolationException.php', - 'League\\Flysystem\\SafeStorage' => $vendorDir . '/league/flysystem/src/SafeStorage.php', - 'League\\Flysystem\\UnreadableFileException' => $vendorDir . '/league/flysystem/src/UnreadableFileException.php', - 'League\\Flysystem\\Util' => $vendorDir . '/league/flysystem/src/Util.php', - 'League\\Flysystem\\Util\\ContentListingFormatter' => $vendorDir . '/league/flysystem/src/Util/ContentListingFormatter.php', - 'League\\Flysystem\\Util\\MimeType' => $vendorDir . '/league/flysystem/src/Util/MimeType.php', - 'League\\Flysystem\\Util\\StreamHasher' => $vendorDir . '/league/flysystem/src/Util/StreamHasher.php', - 'Mockery' => $vendorDir . '/mockery/mockery/library/Mockery.php', - 'Mockery\\Adapter\\Phpunit\\MockeryPHPUnitIntegration' => $vendorDir . '/mockery/mockery/library/Mockery/Adapter/Phpunit/MockeryPHPUnitIntegration.php', - 'Mockery\\Adapter\\Phpunit\\MockeryTestCase' => $vendorDir . '/mockery/mockery/library/Mockery/Adapter/Phpunit/MockeryTestCase.php', - 'Mockery\\Adapter\\Phpunit\\TestListener' => $vendorDir . '/mockery/mockery/library/Mockery/Adapter/Phpunit/TestListener.php', - 'Mockery\\CompositeExpectation' => $vendorDir . '/mockery/mockery/library/Mockery/CompositeExpectation.php', - 'Mockery\\Configuration' => $vendorDir . '/mockery/mockery/library/Mockery/Configuration.php', - 'Mockery\\Container' => $vendorDir . '/mockery/mockery/library/Mockery/Container.php', - 'Mockery\\CountValidator\\AtLeast' => $vendorDir . '/mockery/mockery/library/Mockery/CountValidator/AtLeast.php', - 'Mockery\\CountValidator\\AtMost' => $vendorDir . '/mockery/mockery/library/Mockery/CountValidator/AtMost.php', - 'Mockery\\CountValidator\\CountValidatorAbstract' => $vendorDir . '/mockery/mockery/library/Mockery/CountValidator/CountValidatorAbstract.php', - 'Mockery\\CountValidator\\Exact' => $vendorDir . '/mockery/mockery/library/Mockery/CountValidator/Exact.php', - 'Mockery\\CountValidator\\Exception' => $vendorDir . '/mockery/mockery/library/Mockery/CountValidator/Exception.php', - 'Mockery\\Exception' => $vendorDir . '/mockery/mockery/library/Mockery/Exception.php', - 'Mockery\\Exception\\InvalidCountException' => $vendorDir . '/mockery/mockery/library/Mockery/Exception/InvalidCountException.php', - 'Mockery\\Exception\\InvalidOrderException' => $vendorDir . '/mockery/mockery/library/Mockery/Exception/InvalidOrderException.php', - 'Mockery\\Exception\\NoMatchingExpectationException' => $vendorDir . '/mockery/mockery/library/Mockery/Exception/NoMatchingExpectationException.php', - 'Mockery\\Exception\\RuntimeException' => $vendorDir . '/mockery/mockery/library/Mockery/Exception/RuntimeException.php', - 'Mockery\\Expectation' => $vendorDir . '/mockery/mockery/library/Mockery/Expectation.php', - 'Mockery\\ExpectationDirector' => $vendorDir . '/mockery/mockery/library/Mockery/ExpectationDirector.php', - 'Mockery\\ExpectationInterface' => $vendorDir . '/mockery/mockery/library/Mockery/ExpectationInterface.php', - 'Mockery\\Generator\\CachingGenerator' => $vendorDir . '/mockery/mockery/library/Mockery/Generator/CachingGenerator.php', - 'Mockery\\Generator\\DefinedTargetClass' => $vendorDir . '/mockery/mockery/library/Mockery/Generator/DefinedTargetClass.php', - 'Mockery\\Generator\\Generator' => $vendorDir . '/mockery/mockery/library/Mockery/Generator/Generator.php', - 'Mockery\\Generator\\Method' => $vendorDir . '/mockery/mockery/library/Mockery/Generator/Method.php', - 'Mockery\\Generator\\MockConfiguration' => $vendorDir . '/mockery/mockery/library/Mockery/Generator/MockConfiguration.php', - 'Mockery\\Generator\\MockConfigurationBuilder' => $vendorDir . '/mockery/mockery/library/Mockery/Generator/MockConfigurationBuilder.php', - 'Mockery\\Generator\\MockDefinition' => $vendorDir . '/mockery/mockery/library/Mockery/Generator/MockDefinition.php', - 'Mockery\\Generator\\Parameter' => $vendorDir . '/mockery/mockery/library/Mockery/Generator/Parameter.php', - 'Mockery\\Generator\\StringManipulationGenerator' => $vendorDir . '/mockery/mockery/library/Mockery/Generator/StringManipulationGenerator.php', - 'Mockery\\Generator\\StringManipulation\\Pass\\CallTypeHintPass' => $vendorDir . '/mockery/mockery/library/Mockery/Generator/StringManipulation/Pass/CallTypeHintPass.php', - 'Mockery\\Generator\\StringManipulation\\Pass\\ClassNamePass' => $vendorDir . '/mockery/mockery/library/Mockery/Generator/StringManipulation/Pass/ClassNamePass.php', - 'Mockery\\Generator\\StringManipulation\\Pass\\ClassPass' => $vendorDir . '/mockery/mockery/library/Mockery/Generator/StringManipulation/Pass/ClassPass.php', - 'Mockery\\Generator\\StringManipulation\\Pass\\InstanceMockPass' => $vendorDir . '/mockery/mockery/library/Mockery/Generator/StringManipulation/Pass/InstanceMockPass.php', - 'Mockery\\Generator\\StringManipulation\\Pass\\InterfacePass' => $vendorDir . '/mockery/mockery/library/Mockery/Generator/StringManipulation/Pass/InterfacePass.php', - 'Mockery\\Generator\\StringManipulation\\Pass\\MethodDefinitionPass' => $vendorDir . '/mockery/mockery/library/Mockery/Generator/StringManipulation/Pass/MethodDefinitionPass.php', - 'Mockery\\Generator\\StringManipulation\\Pass\\Pass' => $vendorDir . '/mockery/mockery/library/Mockery/Generator/StringManipulation/Pass/Pass.php', - 'Mockery\\Generator\\StringManipulation\\Pass\\RemoveBuiltinMethodsThatAreFinalPass' => $vendorDir . '/mockery/mockery/library/Mockery/Generator/StringManipulation/Pass/RemoveBuiltinMethodsThatAreFinalPass.php', - 'Mockery\\Generator\\StringManipulation\\Pass\\RemoveUnserializeForInternalSerializableClassesPass' => $vendorDir . '/mockery/mockery/library/Mockery/Generator/StringManipulation/Pass/RemoveUnserializeForInternalSerializableClassesPass.php', - 'Mockery\\Generator\\TargetClass' => $vendorDir . '/mockery/mockery/library/Mockery/Generator/TargetClass.php', - 'Mockery\\Generator\\UndefinedTargetClass' => $vendorDir . '/mockery/mockery/library/Mockery/Generator/UndefinedTargetClass.php', - 'Mockery\\Instantiator' => $vendorDir . '/mockery/mockery/library/Mockery/Instantiator.php', - 'Mockery\\Loader' => $vendorDir . '/mockery/mockery/library/Mockery/Loader.php', - 'Mockery\\Loader\\EvalLoader' => $vendorDir . '/mockery/mockery/library/Mockery/Loader/EvalLoader.php', - 'Mockery\\Loader\\Loader' => $vendorDir . '/mockery/mockery/library/Mockery/Loader/Loader.php', - 'Mockery\\Loader\\RequireLoader' => $vendorDir . '/mockery/mockery/library/Mockery/Loader/RequireLoader.php', - 'Mockery\\Matcher\\Any' => $vendorDir . '/mockery/mockery/library/Mockery/Matcher/Any.php', - 'Mockery\\Matcher\\AnyOf' => $vendorDir . '/mockery/mockery/library/Mockery/Matcher/AnyOf.php', - 'Mockery\\Matcher\\Closure' => $vendorDir . '/mockery/mockery/library/Mockery/Matcher/Closure.php', - 'Mockery\\Matcher\\Contains' => $vendorDir . '/mockery/mockery/library/Mockery/Matcher/Contains.php', - 'Mockery\\Matcher\\Ducktype' => $vendorDir . '/mockery/mockery/library/Mockery/Matcher/Ducktype.php', - 'Mockery\\Matcher\\HasKey' => $vendorDir . '/mockery/mockery/library/Mockery/Matcher/HasKey.php', - 'Mockery\\Matcher\\HasValue' => $vendorDir . '/mockery/mockery/library/Mockery/Matcher/HasValue.php', - 'Mockery\\Matcher\\MatcherAbstract' => $vendorDir . '/mockery/mockery/library/Mockery/Matcher/MatcherAbstract.php', - 'Mockery\\Matcher\\MustBe' => $vendorDir . '/mockery/mockery/library/Mockery/Matcher/MustBe.php', - 'Mockery\\Matcher\\Not' => $vendorDir . '/mockery/mockery/library/Mockery/Matcher/Not.php', - 'Mockery\\Matcher\\NotAnyOf' => $vendorDir . '/mockery/mockery/library/Mockery/Matcher/NotAnyOf.php', - 'Mockery\\Matcher\\Subset' => $vendorDir . '/mockery/mockery/library/Mockery/Matcher/Subset.php', - 'Mockery\\Matcher\\Type' => $vendorDir . '/mockery/mockery/library/Mockery/Matcher/Type.php', - 'Mockery\\MethodCall' => $vendorDir . '/mockery/mockery/library/Mockery/MethodCall.php', - 'Mockery\\Mock' => $vendorDir . '/mockery/mockery/library/Mockery/Mock.php', - 'Mockery\\MockInterface' => $vendorDir . '/mockery/mockery/library/Mockery/MockInterface.php', - 'Mockery\\ReceivedMethodCalls' => $vendorDir . '/mockery/mockery/library/Mockery/ReceivedMethodCalls.php', - 'Mockery\\Recorder' => $vendorDir . '/mockery/mockery/library/Mockery/Recorder.php', - 'Mockery\\Undefined' => $vendorDir . '/mockery/mockery/library/Mockery/Undefined.php', - 'Mockery\\VerificationDirector' => $vendorDir . '/mockery/mockery/library/Mockery/VerificationDirector.php', - 'Mockery\\VerificationExpectation' => $vendorDir . '/mockery/mockery/library/Mockery/VerificationExpectation.php', - 'Monolog\\ErrorHandler' => $vendorDir . '/monolog/monolog/src/Monolog/ErrorHandler.php', - 'Monolog\\Formatter\\ChromePHPFormatter' => $vendorDir . '/monolog/monolog/src/Monolog/Formatter/ChromePHPFormatter.php', - 'Monolog\\Formatter\\ElasticaFormatter' => $vendorDir . '/monolog/monolog/src/Monolog/Formatter/ElasticaFormatter.php', - 'Monolog\\Formatter\\FlowdockFormatter' => $vendorDir . '/monolog/monolog/src/Monolog/Formatter/FlowdockFormatter.php', - 'Monolog\\Formatter\\FluentdFormatter' => $vendorDir . '/monolog/monolog/src/Monolog/Formatter/FluentdFormatter.php', - 'Monolog\\Formatter\\FormatterInterface' => $vendorDir . '/monolog/monolog/src/Monolog/Formatter/FormatterInterface.php', - 'Monolog\\Formatter\\GelfMessageFormatter' => $vendorDir . '/monolog/monolog/src/Monolog/Formatter/GelfMessageFormatter.php', - 'Monolog\\Formatter\\HtmlFormatter' => $vendorDir . '/monolog/monolog/src/Monolog/Formatter/HtmlFormatter.php', - 'Monolog\\Formatter\\JsonFormatter' => $vendorDir . '/monolog/monolog/src/Monolog/Formatter/JsonFormatter.php', - 'Monolog\\Formatter\\LineFormatter' => $vendorDir . '/monolog/monolog/src/Monolog/Formatter/LineFormatter.php', - 'Monolog\\Formatter\\LogglyFormatter' => $vendorDir . '/monolog/monolog/src/Monolog/Formatter/LogglyFormatter.php', - 'Monolog\\Formatter\\LogstashFormatter' => $vendorDir . '/monolog/monolog/src/Monolog/Formatter/LogstashFormatter.php', - 'Monolog\\Formatter\\MongoDBFormatter' => $vendorDir . '/monolog/monolog/src/Monolog/Formatter/MongoDBFormatter.php', - 'Monolog\\Formatter\\NormalizerFormatter' => $vendorDir . '/monolog/monolog/src/Monolog/Formatter/NormalizerFormatter.php', - 'Monolog\\Formatter\\ScalarFormatter' => $vendorDir . '/monolog/monolog/src/Monolog/Formatter/ScalarFormatter.php', - 'Monolog\\Formatter\\WildfireFormatter' => $vendorDir . '/monolog/monolog/src/Monolog/Formatter/WildfireFormatter.php', - 'Monolog\\Handler\\AbstractHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/AbstractHandler.php', - 'Monolog\\Handler\\AbstractProcessingHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/AbstractProcessingHandler.php', - 'Monolog\\Handler\\AbstractSyslogHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/AbstractSyslogHandler.php', - 'Monolog\\Handler\\AmqpHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/AmqpHandler.php', - 'Monolog\\Handler\\BrowserConsoleHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/BrowserConsoleHandler.php', - 'Monolog\\Handler\\BufferHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/BufferHandler.php', - 'Monolog\\Handler\\ChromePHPHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/ChromePHPHandler.php', - 'Monolog\\Handler\\CouchDBHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/CouchDBHandler.php', - 'Monolog\\Handler\\CubeHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/CubeHandler.php', - 'Monolog\\Handler\\Curl\\Util' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/Curl/Util.php', - 'Monolog\\Handler\\DeduplicationHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/DeduplicationHandler.php', - 'Monolog\\Handler\\DoctrineCouchDBHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/DoctrineCouchDBHandler.php', - 'Monolog\\Handler\\DynamoDbHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/DynamoDbHandler.php', - 'Monolog\\Handler\\ElasticSearchHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/ElasticSearchHandler.php', - 'Monolog\\Handler\\ErrorLogHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/ErrorLogHandler.php', - 'Monolog\\Handler\\FilterHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/FilterHandler.php', - 'Monolog\\Handler\\FingersCrossedHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/FingersCrossedHandler.php', - 'Monolog\\Handler\\FingersCrossed\\ActivationStrategyInterface' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/FingersCrossed/ActivationStrategyInterface.php', - 'Monolog\\Handler\\FingersCrossed\\ChannelLevelActivationStrategy' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/FingersCrossed/ChannelLevelActivationStrategy.php', - 'Monolog\\Handler\\FingersCrossed\\ErrorLevelActivationStrategy' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/FingersCrossed/ErrorLevelActivationStrategy.php', - 'Monolog\\Handler\\FirePHPHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/FirePHPHandler.php', - 'Monolog\\Handler\\FleepHookHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/FleepHookHandler.php', - 'Monolog\\Handler\\FlowdockHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/FlowdockHandler.php', - 'Monolog\\Handler\\GelfHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/GelfHandler.php', - 'Monolog\\Handler\\GroupHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/GroupHandler.php', - 'Monolog\\Handler\\HandlerInterface' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/HandlerInterface.php', - 'Monolog\\Handler\\HandlerWrapper' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/HandlerWrapper.php', - 'Monolog\\Handler\\HipChatHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/HipChatHandler.php', - 'Monolog\\Handler\\IFTTTHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/IFTTTHandler.php', - 'Monolog\\Handler\\LogEntriesHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/LogEntriesHandler.php', - 'Monolog\\Handler\\LogglyHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/LogglyHandler.php', - 'Monolog\\Handler\\MailHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/MailHandler.php', - 'Monolog\\Handler\\MandrillHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/MandrillHandler.php', - 'Monolog\\Handler\\MissingExtensionException' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/MissingExtensionException.php', - 'Monolog\\Handler\\MongoDBHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/MongoDBHandler.php', - 'Monolog\\Handler\\NativeMailerHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/NativeMailerHandler.php', - 'Monolog\\Handler\\NewRelicHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/NewRelicHandler.php', - 'Monolog\\Handler\\NullHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/NullHandler.php', - 'Monolog\\Handler\\PHPConsoleHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/PHPConsoleHandler.php', - 'Monolog\\Handler\\PsrHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/PsrHandler.php', - 'Monolog\\Handler\\PushoverHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/PushoverHandler.php', - 'Monolog\\Handler\\RavenHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/RavenHandler.php', - 'Monolog\\Handler\\RedisHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/RedisHandler.php', - 'Monolog\\Handler\\RollbarHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/RollbarHandler.php', - 'Monolog\\Handler\\RotatingFileHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/RotatingFileHandler.php', - 'Monolog\\Handler\\SamplingHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/SamplingHandler.php', - 'Monolog\\Handler\\SlackHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/SlackHandler.php', - 'Monolog\\Handler\\SlackWebhookHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/SlackWebhookHandler.php', - 'Monolog\\Handler\\Slack\\SlackRecord' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/Slack/SlackRecord.php', - 'Monolog\\Handler\\SlackbotHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/SlackbotHandler.php', - 'Monolog\\Handler\\SocketHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/SocketHandler.php', - 'Monolog\\Handler\\StreamHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/StreamHandler.php', - 'Monolog\\Handler\\SwiftMailerHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/SwiftMailerHandler.php', - 'Monolog\\Handler\\SyslogHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/SyslogHandler.php', - 'Monolog\\Handler\\SyslogUdpHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/SyslogUdpHandler.php', - 'Monolog\\Handler\\SyslogUdp\\UdpSocket' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/SyslogUdp/UdpSocket.php', - 'Monolog\\Handler\\TestHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/TestHandler.php', - 'Monolog\\Handler\\WhatFailureGroupHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/WhatFailureGroupHandler.php', - 'Monolog\\Handler\\ZendMonitorHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/ZendMonitorHandler.php', - 'Monolog\\Logger' => $vendorDir . '/monolog/monolog/src/Monolog/Logger.php', - 'Monolog\\Processor\\GitProcessor' => $vendorDir . '/monolog/monolog/src/Monolog/Processor/GitProcessor.php', - 'Monolog\\Processor\\IntrospectionProcessor' => $vendorDir . '/monolog/monolog/src/Monolog/Processor/IntrospectionProcessor.php', - 'Monolog\\Processor\\MemoryPeakUsageProcessor' => $vendorDir . '/monolog/monolog/src/Monolog/Processor/MemoryPeakUsageProcessor.php', - 'Monolog\\Processor\\MemoryProcessor' => $vendorDir . '/monolog/monolog/src/Monolog/Processor/MemoryProcessor.php', - 'Monolog\\Processor\\MemoryUsageProcessor' => $vendorDir . '/monolog/monolog/src/Monolog/Processor/MemoryUsageProcessor.php', - 'Monolog\\Processor\\MercurialProcessor' => $vendorDir . '/monolog/monolog/src/Monolog/Processor/MercurialProcessor.php', - 'Monolog\\Processor\\ProcessIdProcessor' => $vendorDir . '/monolog/monolog/src/Monolog/Processor/ProcessIdProcessor.php', - 'Monolog\\Processor\\PsrLogMessageProcessor' => $vendorDir . '/monolog/monolog/src/Monolog/Processor/PsrLogMessageProcessor.php', - 'Monolog\\Processor\\TagProcessor' => $vendorDir . '/monolog/monolog/src/Monolog/Processor/TagProcessor.php', - 'Monolog\\Processor\\UidProcessor' => $vendorDir . '/monolog/monolog/src/Monolog/Processor/UidProcessor.php', - 'Monolog\\Processor\\WebProcessor' => $vendorDir . '/monolog/monolog/src/Monolog/Processor/WebProcessor.php', - 'Monolog\\Registry' => $vendorDir . '/monolog/monolog/src/Monolog/Registry.php', - 'OperationSeeder' => $baseDir . '/database/seeds/OperationSeeder.php', - 'OwenIt\\Auditing\\Audit' => $vendorDir . '/owen-it/laravel-auditing/src/Audit.php', - 'OwenIt\\Auditing\\Auditable' => $vendorDir . '/owen-it/laravel-auditing/src/Auditable.php', - 'OwenIt\\Auditing\\AuditableObserver' => $vendorDir . '/owen-it/laravel-auditing/src/AuditableObserver.php', - 'OwenIt\\Auditing\\AuditingServiceProvider' => $vendorDir . '/owen-it/laravel-auditing/src/AuditingServiceProvider.php', - 'OwenIt\\Auditing\\Auditor' => $vendorDir . '/owen-it/laravel-auditing/src/Auditor.php', - 'OwenIt\\Auditing\\Console\\AuditDriverMakeCommand' => $vendorDir . '/owen-it/laravel-auditing/src/Console/AuditDriverMakeCommand.php', - 'OwenIt\\Auditing\\Console\\AuditTableCommand' => $vendorDir . '/owen-it/laravel-auditing/src/Console/AuditTableCommand.php', - 'OwenIt\\Auditing\\Console\\InstallCommand' => $vendorDir . '/owen-it/laravel-auditing/src/Console/InstallCommand.php', - 'OwenIt\\Auditing\\Contracts\\Audit' => $vendorDir . '/owen-it/laravel-auditing/src/Contracts/Audit.php', - 'OwenIt\\Auditing\\Contracts\\AuditDriver' => $vendorDir . '/owen-it/laravel-auditing/src/Contracts/AuditDriver.php', - 'OwenIt\\Auditing\\Contracts\\AuditRedactor' => $vendorDir . '/owen-it/laravel-auditing/src/Contracts/AuditRedactor.php', - 'OwenIt\\Auditing\\Contracts\\Auditable' => $vendorDir . '/owen-it/laravel-auditing/src/Contracts/Auditable.php', - 'OwenIt\\Auditing\\Contracts\\Auditor' => $vendorDir . '/owen-it/laravel-auditing/src/Contracts/Auditor.php', - 'OwenIt\\Auditing\\Contracts\\IpAddressResolver' => $vendorDir . '/owen-it/laravel-auditing/src/Contracts/IpAddressResolver.php', - 'OwenIt\\Auditing\\Contracts\\UrlResolver' => $vendorDir . '/owen-it/laravel-auditing/src/Contracts/UrlResolver.php', - 'OwenIt\\Auditing\\Contracts\\UserAgentResolver' => $vendorDir . '/owen-it/laravel-auditing/src/Contracts/UserAgentResolver.php', - 'OwenIt\\Auditing\\Contracts\\UserResolver' => $vendorDir . '/owen-it/laravel-auditing/src/Contracts/UserResolver.php', - 'OwenIt\\Auditing\\Drivers\\Database' => $vendorDir . '/owen-it/laravel-auditing/src/Drivers/Database.php', - 'OwenIt\\Auditing\\Events\\Audited' => $vendorDir . '/owen-it/laravel-auditing/src/Events/Audited.php', - 'OwenIt\\Auditing\\Events\\Auditing' => $vendorDir . '/owen-it/laravel-auditing/src/Events/Auditing.php', - 'OwenIt\\Auditing\\Exceptions\\AuditableTransitionException' => $vendorDir . '/owen-it/laravel-auditing/src/Exceptions/AuditableTransitionException.php', - 'OwenIt\\Auditing\\Exceptions\\AuditingException' => $vendorDir . '/owen-it/laravel-auditing/src/Exceptions/AuditingException.php', - 'OwenIt\\Auditing\\Facades\\Auditor' => $vendorDir . '/owen-it/laravel-auditing/src/Facades/Auditor.php', - 'OwenIt\\Auditing\\Models\\Audit' => $vendorDir . '/owen-it/laravel-auditing/src/Models/Audit.php', - 'OwenIt\\Auditing\\Redactors\\LeftRedactor' => $vendorDir . '/owen-it/laravel-auditing/src/Redactors/LeftRedactor.php', - 'OwenIt\\Auditing\\Redactors\\RightRedactor' => $vendorDir . '/owen-it/laravel-auditing/src/Redactors/RightRedactor.php', - 'OwenIt\\Auditing\\Resolvers\\IpAddressResolver' => $vendorDir . '/owen-it/laravel-auditing/src/Resolvers/IpAddressResolver.php', - 'OwenIt\\Auditing\\Resolvers\\UrlResolver' => $vendorDir . '/owen-it/laravel-auditing/src/Resolvers/UrlResolver.php', - 'OwenIt\\Auditing\\Resolvers\\UserAgentResolver' => $vendorDir . '/owen-it/laravel-auditing/src/Resolvers/UserAgentResolver.php', - 'OwenIt\\Auditing\\Resolvers\\UserResolver' => $vendorDir . '/owen-it/laravel-auditing/src/Resolvers/UserResolver.php', - 'PHPUnit\\Exception' => $vendorDir . '/phpunit/phpunit/src/Exception.php', - 'PHPUnit\\Framework\\Assert' => $vendorDir . '/phpunit/phpunit/src/Framework/Assert.php', - 'PHPUnit\\Framework\\AssertionFailedError' => $vendorDir . '/phpunit/phpunit/src/Framework/AssertionFailedError.php', - 'PHPUnit\\Framework\\CodeCoverageException' => $vendorDir . '/phpunit/phpunit/src/Framework/CodeCoverageException.php', - 'PHPUnit\\Framework\\Constraint\\ArrayHasKey' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/ArrayHasKey.php', - 'PHPUnit\\Framework\\Constraint\\ArraySubset' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/ArraySubset.php', - 'PHPUnit\\Framework\\Constraint\\Attribute' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/Attribute.php', - 'PHPUnit\\Framework\\Constraint\\Callback' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/Callback.php', - 'PHPUnit\\Framework\\Constraint\\ClassHasAttribute' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/ClassHasAttribute.php', - 'PHPUnit\\Framework\\Constraint\\ClassHasStaticAttribute' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/ClassHasStaticAttribute.php', - 'PHPUnit\\Framework\\Constraint\\Composite' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/Composite.php', - 'PHPUnit\\Framework\\Constraint\\Constraint' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/Constraint.php', - 'PHPUnit\\Framework\\Constraint\\Count' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/Count.php', - 'PHPUnit\\Framework\\Constraint\\DirectoryExists' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/DirectoryExists.php', - 'PHPUnit\\Framework\\Constraint\\Exception' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/Exception.php', - 'PHPUnit\\Framework\\Constraint\\ExceptionCode' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/ExceptionCode.php', - 'PHPUnit\\Framework\\Constraint\\ExceptionMessage' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/ExceptionMessage.php', - 'PHPUnit\\Framework\\Constraint\\ExceptionMessageRegularExpression' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/ExceptionMessageRegularExpression.php', - 'PHPUnit\\Framework\\Constraint\\FileExists' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/FileExists.php', - 'PHPUnit\\Framework\\Constraint\\GreaterThan' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/GreaterThan.php', - 'PHPUnit\\Framework\\Constraint\\IsAnything' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/IsAnything.php', - 'PHPUnit\\Framework\\Constraint\\IsEmpty' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/IsEmpty.php', - 'PHPUnit\\Framework\\Constraint\\IsEqual' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/IsEqual.php', - 'PHPUnit\\Framework\\Constraint\\IsFalse' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/IsFalse.php', - 'PHPUnit\\Framework\\Constraint\\IsFinite' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/IsFinite.php', - 'PHPUnit\\Framework\\Constraint\\IsIdentical' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/IsIdentical.php', - 'PHPUnit\\Framework\\Constraint\\IsInfinite' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/IsInfinite.php', - 'PHPUnit\\Framework\\Constraint\\IsInstanceOf' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/IsInstanceOf.php', - 'PHPUnit\\Framework\\Constraint\\IsJson' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/IsJson.php', - 'PHPUnit\\Framework\\Constraint\\IsNan' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/IsNan.php', - 'PHPUnit\\Framework\\Constraint\\IsNull' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/IsNull.php', - 'PHPUnit\\Framework\\Constraint\\IsReadable' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/IsReadable.php', - 'PHPUnit\\Framework\\Constraint\\IsTrue' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/IsTrue.php', - 'PHPUnit\\Framework\\Constraint\\IsType' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/IsType.php', - 'PHPUnit\\Framework\\Constraint\\IsWritable' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/IsWritable.php', - 'PHPUnit\\Framework\\Constraint\\JsonMatches' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/JsonMatches.php', - 'PHPUnit\\Framework\\Constraint\\JsonMatchesErrorMessageProvider' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/JsonMatchesErrorMessageProvider.php', - 'PHPUnit\\Framework\\Constraint\\LessThan' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/LessThan.php', - 'PHPUnit\\Framework\\Constraint\\LogicalAnd' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/LogicalAnd.php', - 'PHPUnit\\Framework\\Constraint\\LogicalNot' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/LogicalNot.php', - 'PHPUnit\\Framework\\Constraint\\LogicalOr' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/LogicalOr.php', - 'PHPUnit\\Framework\\Constraint\\LogicalXor' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/LogicalXor.php', - 'PHPUnit\\Framework\\Constraint\\ObjectHasAttribute' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/ObjectHasAttribute.php', - 'PHPUnit\\Framework\\Constraint\\RegularExpression' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/RegularExpression.php', - 'PHPUnit\\Framework\\Constraint\\SameSize' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/SameSize.php', - 'PHPUnit\\Framework\\Constraint\\StringContains' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/StringContains.php', - 'PHPUnit\\Framework\\Constraint\\StringEndsWith' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/StringEndsWith.php', - 'PHPUnit\\Framework\\Constraint\\StringMatchesFormatDescription' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/StringMatchesFormatDescription.php', - 'PHPUnit\\Framework\\Constraint\\StringStartsWith' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/StringStartsWith.php', - 'PHPUnit\\Framework\\Constraint\\TraversableContains' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/TraversableContains.php', - 'PHPUnit\\Framework\\Constraint\\TraversableContainsOnly' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/TraversableContainsOnly.php', - 'PHPUnit\\Framework\\CoveredCodeNotExecutedException' => $vendorDir . '/phpunit/phpunit/src/Framework/CoveredCodeNotExecutedException.php', - 'PHPUnit\\Framework\\DataProviderTestSuite' => $vendorDir . '/phpunit/phpunit/src/Framework/DataProviderTestSuite.php', - 'PHPUnit\\Framework\\Error\\Deprecated' => $vendorDir . '/phpunit/phpunit/src/Framework/Error/Deprecated.php', - 'PHPUnit\\Framework\\Error\\Error' => $vendorDir . '/phpunit/phpunit/src/Framework/Error/Error.php', - 'PHPUnit\\Framework\\Error\\Notice' => $vendorDir . '/phpunit/phpunit/src/Framework/Error/Notice.php', - 'PHPUnit\\Framework\\Error\\Warning' => $vendorDir . '/phpunit/phpunit/src/Framework/Error/Warning.php', - 'PHPUnit\\Framework\\Exception' => $vendorDir . '/phpunit/phpunit/src/Framework/Exception.php', - 'PHPUnit\\Framework\\ExceptionWrapper' => $vendorDir . '/phpunit/phpunit/src/Framework/ExceptionWrapper.php', - 'PHPUnit\\Framework\\ExpectationFailedException' => $vendorDir . '/phpunit/phpunit/src/Framework/ExpectationFailedException.php', - 'PHPUnit\\Framework\\IncompleteTest' => $vendorDir . '/phpunit/phpunit/src/Framework/IncompleteTest.php', - 'PHPUnit\\Framework\\IncompleteTestCase' => $vendorDir . '/phpunit/phpunit/src/Framework/IncompleteTestCase.php', - 'PHPUnit\\Framework\\IncompleteTestError' => $vendorDir . '/phpunit/phpunit/src/Framework/IncompleteTestError.php', - 'PHPUnit\\Framework\\InvalidCoversTargetException' => $vendorDir . '/phpunit/phpunit/src/Framework/InvalidCoversTargetException.php', - 'PHPUnit\\Framework\\MissingCoversAnnotationException' => $vendorDir . '/phpunit/phpunit/src/Framework/MissingCoversAnnotationException.php', - 'PHPUnit\\Framework\\MockObject\\BadMethodCallException' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Exception/BadMethodCallException.php', - 'PHPUnit\\Framework\\MockObject\\Builder\\Identity' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Builder/Identity.php', - 'PHPUnit\\Framework\\MockObject\\Builder\\InvocationMocker' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Builder/InvocationMocker.php', - 'PHPUnit\\Framework\\MockObject\\Builder\\Match' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Builder/Match.php', - 'PHPUnit\\Framework\\MockObject\\Builder\\MethodNameMatch' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Builder/MethodNameMatch.php', - 'PHPUnit\\Framework\\MockObject\\Builder\\NamespaceMatch' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Builder/NamespaceMatch.php', - 'PHPUnit\\Framework\\MockObject\\Builder\\ParametersMatch' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Builder/ParametersMatch.php', - 'PHPUnit\\Framework\\MockObject\\Builder\\Stub' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Builder/Stub.php', - 'PHPUnit\\Framework\\MockObject\\Exception' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Exception/Exception.php', - 'PHPUnit\\Framework\\MockObject\\Generator' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Generator.php', - 'PHPUnit\\Framework\\MockObject\\Invocation' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Invocation/Invocation.php', - 'PHPUnit\\Framework\\MockObject\\InvocationMocker' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/InvocationMocker.php', - 'PHPUnit\\Framework\\MockObject\\Invocation\\ObjectInvocation' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Invocation/ObjectInvocation.php', - 'PHPUnit\\Framework\\MockObject\\Invocation\\StaticInvocation' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Invocation/StaticInvocation.php', - 'PHPUnit\\Framework\\MockObject\\Invokable' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Invokable.php', - 'PHPUnit\\Framework\\MockObject\\Matcher' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Matcher.php', - 'PHPUnit\\Framework\\MockObject\\Matcher\\AnyInvokedCount' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Matcher/AnyInvokedCount.php', - 'PHPUnit\\Framework\\MockObject\\Matcher\\AnyParameters' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Matcher/AnyParameters.php', - 'PHPUnit\\Framework\\MockObject\\Matcher\\ConsecutiveParameters' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Matcher/ConsecutiveParameters.php', - 'PHPUnit\\Framework\\MockObject\\Matcher\\DeferredError' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Matcher/DeferredError.php', - 'PHPUnit\\Framework\\MockObject\\Matcher\\Invocation' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Matcher/Invocation.php', - 'PHPUnit\\Framework\\MockObject\\Matcher\\InvokedAtIndex' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Matcher/InvokedAtIndex.php', - 'PHPUnit\\Framework\\MockObject\\Matcher\\InvokedAtLeastCount' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Matcher/InvokedAtLeastCount.php', - 'PHPUnit\\Framework\\MockObject\\Matcher\\InvokedAtLeastOnce' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Matcher/InvokedAtLeastOnce.php', - 'PHPUnit\\Framework\\MockObject\\Matcher\\InvokedAtMostCount' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Matcher/InvokedAtMostCount.php', - 'PHPUnit\\Framework\\MockObject\\Matcher\\InvokedCount' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Matcher/InvokedCount.php', - 'PHPUnit\\Framework\\MockObject\\Matcher\\InvokedRecorder' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Matcher/InvokedRecorder.php', - 'PHPUnit\\Framework\\MockObject\\Matcher\\MethodName' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Matcher/MethodName.php', - 'PHPUnit\\Framework\\MockObject\\Matcher\\Parameters' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Matcher/Parameters.php', - 'PHPUnit\\Framework\\MockObject\\Matcher\\StatelessInvocation' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Matcher/StatelessInvocation.php', - 'PHPUnit\\Framework\\MockObject\\MockBuilder' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/MockBuilder.php', - 'PHPUnit\\Framework\\MockObject\\MockObject' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/ForwardCompatibility/MockObject.php', - 'PHPUnit\\Framework\\MockObject\\RuntimeException' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Exception/RuntimeException.php', - 'PHPUnit\\Framework\\MockObject\\Stub' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Stub.php', - 'PHPUnit\\Framework\\MockObject\\Stub\\ConsecutiveCalls' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Stub/ConsecutiveCalls.php', - 'PHPUnit\\Framework\\MockObject\\Stub\\Exception' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Stub/Exception.php', - 'PHPUnit\\Framework\\MockObject\\Stub\\MatcherCollection' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Stub/MatcherCollection.php', - 'PHPUnit\\Framework\\MockObject\\Stub\\ReturnArgument' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Stub/ReturnArgument.php', - 'PHPUnit\\Framework\\MockObject\\Stub\\ReturnCallback' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Stub/ReturnCallback.php', - 'PHPUnit\\Framework\\MockObject\\Stub\\ReturnReference' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Stub/ReturnReference.php', - 'PHPUnit\\Framework\\MockObject\\Stub\\ReturnSelf' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Stub/ReturnSelf.php', - 'PHPUnit\\Framework\\MockObject\\Stub\\ReturnStub' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Stub/ReturnStub.php', - 'PHPUnit\\Framework\\MockObject\\Stub\\ReturnValueMap' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Stub/ReturnValueMap.php', - 'PHPUnit\\Framework\\MockObject\\Verifiable' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Verifiable.php', - 'PHPUnit\\Framework\\OutputError' => $vendorDir . '/phpunit/phpunit/src/Framework/OutputError.php', - 'PHPUnit\\Framework\\RiskyTest' => $vendorDir . '/phpunit/phpunit/src/Framework/RiskyTest.php', - 'PHPUnit\\Framework\\RiskyTestError' => $vendorDir . '/phpunit/phpunit/src/Framework/RiskyTestError.php', - 'PHPUnit\\Framework\\SelfDescribing' => $vendorDir . '/phpunit/phpunit/src/Framework/SelfDescribing.php', - 'PHPUnit\\Framework\\SkippedTest' => $vendorDir . '/phpunit/phpunit/src/Framework/SkippedTest.php', - 'PHPUnit\\Framework\\SkippedTestCase' => $vendorDir . '/phpunit/phpunit/src/Framework/SkippedTestCase.php', - 'PHPUnit\\Framework\\SkippedTestError' => $vendorDir . '/phpunit/phpunit/src/Framework/SkippedTestError.php', - 'PHPUnit\\Framework\\SkippedTestSuiteError' => $vendorDir . '/phpunit/phpunit/src/Framework/SkippedTestSuiteError.php', - 'PHPUnit\\Framework\\SyntheticError' => $vendorDir . '/phpunit/phpunit/src/Framework/SyntheticError.php', - 'PHPUnit\\Framework\\Test' => $vendorDir . '/phpunit/phpunit/src/Framework/Test.php', - 'PHPUnit\\Framework\\TestCase' => $vendorDir . '/phpunit/phpunit/src/Framework/TestCase.php', - 'PHPUnit\\Framework\\TestFailure' => $vendorDir . '/phpunit/phpunit/src/Framework/TestFailure.php', - 'PHPUnit\\Framework\\TestListener' => $vendorDir . '/phpunit/phpunit/src/Framework/TestListener.php', - 'PHPUnit\\Framework\\TestListenerDefaultImplementation' => $vendorDir . '/phpunit/phpunit/src/Framework/TestListenerDefaultImplementation.php', - 'PHPUnit\\Framework\\TestResult' => $vendorDir . '/phpunit/phpunit/src/Framework/TestResult.php', - 'PHPUnit\\Framework\\TestSuite' => $vendorDir . '/phpunit/phpunit/src/Framework/TestSuite.php', - 'PHPUnit\\Framework\\TestSuiteIterator' => $vendorDir . '/phpunit/phpunit/src/Framework/TestSuiteIterator.php', - 'PHPUnit\\Framework\\UnintentionallyCoveredCodeError' => $vendorDir . '/phpunit/phpunit/src/Framework/UnintentionallyCoveredCodeError.php', - 'PHPUnit\\Framework\\Warning' => $vendorDir . '/phpunit/phpunit/src/Framework/Warning.php', - 'PHPUnit\\Framework\\WarningTestCase' => $vendorDir . '/phpunit/phpunit/src/Framework/WarningTestCase.php', - 'PHPUnit\\Runner\\AfterIncompleteTestHook' => $vendorDir . '/phpunit/phpunit/src/Runner/Hook/AfterIncompleteTestHook.php', - 'PHPUnit\\Runner\\AfterLastTestHook' => $vendorDir . '/phpunit/phpunit/src/Runner/Hook/AfterLastTestHook.php', - 'PHPUnit\\Runner\\AfterRiskyTestHook' => $vendorDir . '/phpunit/phpunit/src/Runner/Hook/AfterRiskyTestHook.php', - 'PHPUnit\\Runner\\AfterSkippedTestHook' => $vendorDir . '/phpunit/phpunit/src/Runner/Hook/AfterSkippedTestHook.php', - 'PHPUnit\\Runner\\AfterSuccessfulTestHook' => $vendorDir . '/phpunit/phpunit/src/Runner/Hook/AfterSuccessfulTestHook.php', - 'PHPUnit\\Runner\\AfterTestErrorHook' => $vendorDir . '/phpunit/phpunit/src/Runner/Hook/AfterTestErrorHook.php', - 'PHPUnit\\Runner\\AfterTestFailureHook' => $vendorDir . '/phpunit/phpunit/src/Runner/Hook/AfterTestFailureHook.php', - 'PHPUnit\\Runner\\AfterTestWarningHook' => $vendorDir . '/phpunit/phpunit/src/Runner/Hook/AfterTestWarningHook.php', - 'PHPUnit\\Runner\\BaseTestRunner' => $vendorDir . '/phpunit/phpunit/src/Runner/BaseTestRunner.php', - 'PHPUnit\\Runner\\BeforeFirstTestHook' => $vendorDir . '/phpunit/phpunit/src/Runner/Hook/BeforeFirstTestHook.php', - 'PHPUnit\\Runner\\BeforeTestHook' => $vendorDir . '/phpunit/phpunit/src/Runner/Hook/BeforeTestHook.php', - 'PHPUnit\\Runner\\Exception' => $vendorDir . '/phpunit/phpunit/src/Runner/Exception.php', - 'PHPUnit\\Runner\\Filter\\ExcludeGroupFilterIterator' => $vendorDir . '/phpunit/phpunit/src/Runner/Filter/ExcludeGroupFilterIterator.php', - 'PHPUnit\\Runner\\Filter\\Factory' => $vendorDir . '/phpunit/phpunit/src/Runner/Filter/Factory.php', - 'PHPUnit\\Runner\\Filter\\GroupFilterIterator' => $vendorDir . '/phpunit/phpunit/src/Runner/Filter/GroupFilterIterator.php', - 'PHPUnit\\Runner\\Filter\\IncludeGroupFilterIterator' => $vendorDir . '/phpunit/phpunit/src/Runner/Filter/IncludeGroupFilterIterator.php', - 'PHPUnit\\Runner\\Filter\\NameFilterIterator' => $vendorDir . '/phpunit/phpunit/src/Runner/Filter/NameFilterIterator.php', - 'PHPUnit\\Runner\\Hook' => $vendorDir . '/phpunit/phpunit/src/Runner/Hook/Hook.php', - 'PHPUnit\\Runner\\PhptTestCase' => $vendorDir . '/phpunit/phpunit/src/Runner/PhptTestCase.php', - 'PHPUnit\\Runner\\StandardTestSuiteLoader' => $vendorDir . '/phpunit/phpunit/src/Runner/StandardTestSuiteLoader.php', - 'PHPUnit\\Runner\\TestHook' => $vendorDir . '/phpunit/phpunit/src/Runner/Hook/TestHook.php', - 'PHPUnit\\Runner\\TestListenerAdapter' => $vendorDir . '/phpunit/phpunit/src/Runner/Hook/TestListenerAdapter.php', - 'PHPUnit\\Runner\\TestSuiteLoader' => $vendorDir . '/phpunit/phpunit/src/Runner/TestSuiteLoader.php', - 'PHPUnit\\Runner\\TestSuiteSorter' => $vendorDir . '/phpunit/phpunit/src/Runner/TestSuiteSorter.php', - 'PHPUnit\\Runner\\Version' => $vendorDir . '/phpunit/phpunit/src/Runner/Version.php', - 'PHPUnit\\TextUI\\Command' => $vendorDir . '/phpunit/phpunit/src/TextUI/Command.php', - 'PHPUnit\\TextUI\\ResultPrinter' => $vendorDir . '/phpunit/phpunit/src/TextUI/ResultPrinter.php', - 'PHPUnit\\TextUI\\TestRunner' => $vendorDir . '/phpunit/phpunit/src/TextUI/TestRunner.php', - 'PHPUnit\\Util\\Blacklist' => $vendorDir . '/phpunit/phpunit/src/Util/Blacklist.php', - 'PHPUnit\\Util\\Configuration' => $vendorDir . '/phpunit/phpunit/src/Util/Configuration.php', - 'PHPUnit\\Util\\ConfigurationGenerator' => $vendorDir . '/phpunit/phpunit/src/Util/ConfigurationGenerator.php', - 'PHPUnit\\Util\\ErrorHandler' => $vendorDir . '/phpunit/phpunit/src/Util/ErrorHandler.php', - 'PHPUnit\\Util\\FileLoader' => $vendorDir . '/phpunit/phpunit/src/Util/FileLoader.php', - 'PHPUnit\\Util\\Filesystem' => $vendorDir . '/phpunit/phpunit/src/Util/Filesystem.php', - 'PHPUnit\\Util\\Filter' => $vendorDir . '/phpunit/phpunit/src/Util/Filter.php', - 'PHPUnit\\Util\\Getopt' => $vendorDir . '/phpunit/phpunit/src/Util/Getopt.php', - 'PHPUnit\\Util\\GlobalState' => $vendorDir . '/phpunit/phpunit/src/Util/GlobalState.php', - 'PHPUnit\\Util\\InvalidArgumentHelper' => $vendorDir . '/phpunit/phpunit/src/Util/InvalidArgumentHelper.php', - 'PHPUnit\\Util\\Json' => $vendorDir . '/phpunit/phpunit/src/Util/Json.php', - 'PHPUnit\\Util\\Log\\JUnit' => $vendorDir . '/phpunit/phpunit/src/Util/Log/JUnit.php', - 'PHPUnit\\Util\\Log\\TeamCity' => $vendorDir . '/phpunit/phpunit/src/Util/Log/TeamCity.php', - 'PHPUnit\\Util\\PHP\\AbstractPhpProcess' => $vendorDir . '/phpunit/phpunit/src/Util/PHP/AbstractPhpProcess.php', - 'PHPUnit\\Util\\PHP\\DefaultPhpProcess' => $vendorDir . '/phpunit/phpunit/src/Util/PHP/DefaultPhpProcess.php', - 'PHPUnit\\Util\\PHP\\WindowsPhpProcess' => $vendorDir . '/phpunit/phpunit/src/Util/PHP/WindowsPhpProcess.php', - 'PHPUnit\\Util\\Printer' => $vendorDir . '/phpunit/phpunit/src/Util/Printer.php', - 'PHPUnit\\Util\\RegularExpression' => $vendorDir . '/phpunit/phpunit/src/Util/RegularExpression.php', - 'PHPUnit\\Util\\Test' => $vendorDir . '/phpunit/phpunit/src/Util/Test.php', - 'PHPUnit\\Util\\TestDox\\CliTestDoxPrinter' => $vendorDir . '/phpunit/phpunit/src/Util/TestDox/CliTestDoxPrinter.php', - 'PHPUnit\\Util\\TestDox\\HtmlResultPrinter' => $vendorDir . '/phpunit/phpunit/src/Util/TestDox/HtmlResultPrinter.php', - 'PHPUnit\\Util\\TestDox\\NamePrettifier' => $vendorDir . '/phpunit/phpunit/src/Util/TestDox/NamePrettifier.php', - 'PHPUnit\\Util\\TestDox\\ResultPrinter' => $vendorDir . '/phpunit/phpunit/src/Util/TestDox/ResultPrinter.php', - 'PHPUnit\\Util\\TestDox\\TestResult' => $vendorDir . '/phpunit/phpunit/src/Util/TestDox/TestResult.php', - 'PHPUnit\\Util\\TestDox\\TextResultPrinter' => $vendorDir . '/phpunit/phpunit/src/Util/TestDox/TextResultPrinter.php', - 'PHPUnit\\Util\\TestDox\\XmlResultPrinter' => $vendorDir . '/phpunit/phpunit/src/Util/TestDox/XmlResultPrinter.php', - 'PHPUnit\\Util\\TextTestListRenderer' => $vendorDir . '/phpunit/phpunit/src/Util/TextTestListRenderer.php', - 'PHPUnit\\Util\\Type' => $vendorDir . '/phpunit/phpunit/src/Util/Type.php', - 'PHPUnit\\Util\\Xml' => $vendorDir . '/phpunit/phpunit/src/Util/Xml.php', - 'PHPUnit\\Util\\XmlTestListRenderer' => $vendorDir . '/phpunit/phpunit/src/Util/XmlTestListRenderer.php', - 'PHPUnit_Framework_MockObject_MockObject' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/MockObject.php', - 'PHP_Token' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_TokenWithScope' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_TokenWithScopeAndVisibility' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_ABSTRACT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_AMPERSAND' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_AND_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_ARRAY' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_ARRAY_CAST' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_AS' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_AT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_BACKTICK' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_BAD_CHARACTER' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_BOOLEAN_AND' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_BOOLEAN_OR' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_BOOL_CAST' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_BREAK' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_CALLABLE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_CARET' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_CASE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_CATCH' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_CHARACTER' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_CLASS' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_CLASS_C' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_CLASS_NAME_CONSTANT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_CLONE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_CLOSE_BRACKET' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_CLOSE_CURLY' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_CLOSE_SQUARE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_CLOSE_TAG' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_COALESCE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_COLON' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_COMMA' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_COMMENT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_CONCAT_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_CONST' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_CONSTANT_ENCAPSED_STRING' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_CONTINUE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_CURLY_OPEN' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_DEC' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_DECLARE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_DEFAULT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_DIR' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_DIV' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_DIV_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_DNUMBER' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_DO' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_DOC_COMMENT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_DOLLAR' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_DOLLAR_OPEN_CURLY_BRACES' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_DOT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_DOUBLE_ARROW' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_DOUBLE_CAST' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_DOUBLE_COLON' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_DOUBLE_QUOTES' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_ECHO' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_ELLIPSIS' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_ELSE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_ELSEIF' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_EMPTY' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_ENCAPSED_AND_WHITESPACE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_ENDDECLARE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_ENDFOR' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_ENDFOREACH' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_ENDIF' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_ENDSWITCH' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_ENDWHILE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_END_HEREDOC' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_EVAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_EXCLAMATION_MARK' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_EXIT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_EXTENDS' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_FILE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_FINAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_FINALLY' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_FOR' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_FOREACH' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_FUNCTION' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_FUNC_C' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_GLOBAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_GOTO' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_GT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_HALT_COMPILER' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_IF' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_IMPLEMENTS' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_INC' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_INCLUDE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_INCLUDE_ONCE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_INLINE_HTML' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_INSTANCEOF' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_INSTEADOF' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_INTERFACE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_INT_CAST' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_ISSET' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_IS_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_IS_GREATER_OR_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_IS_IDENTICAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_IS_NOT_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_IS_NOT_IDENTICAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_IS_SMALLER_OR_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_Includes' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_LINE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_LIST' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_LNUMBER' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_LOGICAL_AND' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_LOGICAL_OR' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_LOGICAL_XOR' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_LT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_METHOD_C' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_MINUS' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_MINUS_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_MOD_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_MULT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_MUL_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_NAMESPACE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_NEW' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_NS_C' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_NS_SEPARATOR' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_NUM_STRING' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_OBJECT_CAST' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_OBJECT_OPERATOR' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_OPEN_BRACKET' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_OPEN_CURLY' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_OPEN_SQUARE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_OPEN_TAG' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_OPEN_TAG_WITH_ECHO' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_OR_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_PAAMAYIM_NEKUDOTAYIM' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_PERCENT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_PIPE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_PLUS' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_PLUS_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_POW' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_POW_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_PRINT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_PRIVATE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_PROTECTED' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_PUBLIC' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_QUESTION_MARK' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_REQUIRE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_REQUIRE_ONCE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_RETURN' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_SEMICOLON' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_SL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_SL_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_SPACESHIP' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_SR' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_SR_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_START_HEREDOC' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_STATIC' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_STRING' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_STRING_CAST' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_STRING_VARNAME' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_SWITCH' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_Stream' => $vendorDir . '/phpunit/php-token-stream/src/Token/Stream.php', - 'PHP_Token_Stream_CachingFactory' => $vendorDir . '/phpunit/php-token-stream/src/Token/Stream/CachingFactory.php', - 'PHP_Token_THROW' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_TILDE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_TRAIT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_TRAIT_C' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_TRY' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_UNSET' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_UNSET_CAST' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_USE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_USE_FUNCTION' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_VAR' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_VARIABLE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_WHILE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_WHITESPACE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_XOR_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_YIELD' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_YIELD_FROM' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'Parsedown' => $vendorDir . '/erusev/parsedown/Parsedown.php', - 'PermissionSeeder' => $baseDir . '/database/seeds/PermissionSeeder.php', - 'PharIo\\Manifest\\Application' => $vendorDir . '/phar-io/manifest/src/values/Application.php', - 'PharIo\\Manifest\\ApplicationName' => $vendorDir . '/phar-io/manifest/src/values/ApplicationName.php', - 'PharIo\\Manifest\\Author' => $vendorDir . '/phar-io/manifest/src/values/Author.php', - 'PharIo\\Manifest\\AuthorCollection' => $vendorDir . '/phar-io/manifest/src/values/AuthorCollection.php', - 'PharIo\\Manifest\\AuthorCollectionIterator' => $vendorDir . '/phar-io/manifest/src/values/AuthorCollectionIterator.php', - 'PharIo\\Manifest\\AuthorElement' => $vendorDir . '/phar-io/manifest/src/xml/AuthorElement.php', - 'PharIo\\Manifest\\AuthorElementCollection' => $vendorDir . '/phar-io/manifest/src/xml/AuthorElementCollection.php', - 'PharIo\\Manifest\\BundledComponent' => $vendorDir . '/phar-io/manifest/src/values/BundledComponent.php', - 'PharIo\\Manifest\\BundledComponentCollection' => $vendorDir . '/phar-io/manifest/src/values/BundledComponentCollection.php', - 'PharIo\\Manifest\\BundledComponentCollectionIterator' => $vendorDir . '/phar-io/manifest/src/values/BundledComponentCollectionIterator.php', - 'PharIo\\Manifest\\BundlesElement' => $vendorDir . '/phar-io/manifest/src/xml/BundlesElement.php', - 'PharIo\\Manifest\\ComponentElement' => $vendorDir . '/phar-io/manifest/src/xml/ComponentElement.php', - 'PharIo\\Manifest\\ComponentElementCollection' => $vendorDir . '/phar-io/manifest/src/xml/ComponentElementCollection.php', - 'PharIo\\Manifest\\ContainsElement' => $vendorDir . '/phar-io/manifest/src/xml/ContainsElement.php', - 'PharIo\\Manifest\\CopyrightElement' => $vendorDir . '/phar-io/manifest/src/xml/CopyrightElement.php', - 'PharIo\\Manifest\\CopyrightInformation' => $vendorDir . '/phar-io/manifest/src/values/CopyrightInformation.php', - 'PharIo\\Manifest\\ElementCollection' => $vendorDir . '/phar-io/manifest/src/xml/ElementCollection.php', - 'PharIo\\Manifest\\Email' => $vendorDir . '/phar-io/manifest/src/values/Email.php', - 'PharIo\\Manifest\\Exception' => $vendorDir . '/phar-io/manifest/src/exceptions/Exception.php', - 'PharIo\\Manifest\\ExtElement' => $vendorDir . '/phar-io/manifest/src/xml/ExtElement.php', - 'PharIo\\Manifest\\ExtElementCollection' => $vendorDir . '/phar-io/manifest/src/xml/ExtElementCollection.php', - 'PharIo\\Manifest\\Extension' => $vendorDir . '/phar-io/manifest/src/values/Extension.php', - 'PharIo\\Manifest\\ExtensionElement' => $vendorDir . '/phar-io/manifest/src/xml/ExtensionElement.php', - 'PharIo\\Manifest\\InvalidApplicationNameException' => $vendorDir . '/phar-io/manifest/src/exceptions/InvalidApplicationNameException.php', - 'PharIo\\Manifest\\InvalidEmailException' => $vendorDir . '/phar-io/manifest/src/exceptions/InvalidEmailException.php', - 'PharIo\\Manifest\\InvalidUrlException' => $vendorDir . '/phar-io/manifest/src/exceptions/InvalidUrlException.php', - 'PharIo\\Manifest\\Library' => $vendorDir . '/phar-io/manifest/src/values/Library.php', - 'PharIo\\Manifest\\License' => $vendorDir . '/phar-io/manifest/src/values/License.php', - 'PharIo\\Manifest\\LicenseElement' => $vendorDir . '/phar-io/manifest/src/xml/LicenseElement.php', - 'PharIo\\Manifest\\Manifest' => $vendorDir . '/phar-io/manifest/src/values/Manifest.php', - 'PharIo\\Manifest\\ManifestDocument' => $vendorDir . '/phar-io/manifest/src/xml/ManifestDocument.php', - 'PharIo\\Manifest\\ManifestDocumentException' => $vendorDir . '/phar-io/manifest/src/exceptions/ManifestDocumentException.php', - 'PharIo\\Manifest\\ManifestDocumentLoadingException' => $vendorDir . '/phar-io/manifest/src/xml/ManifestDocumentLoadingException.php', - 'PharIo\\Manifest\\ManifestDocumentMapper' => $vendorDir . '/phar-io/manifest/src/ManifestDocumentMapper.php', - 'PharIo\\Manifest\\ManifestDocumentMapperException' => $vendorDir . '/phar-io/manifest/src/exceptions/ManifestDocumentMapperException.php', - 'PharIo\\Manifest\\ManifestElement' => $vendorDir . '/phar-io/manifest/src/xml/ManifestElement.php', - 'PharIo\\Manifest\\ManifestElementException' => $vendorDir . '/phar-io/manifest/src/exceptions/ManifestElementException.php', - 'PharIo\\Manifest\\ManifestLoader' => $vendorDir . '/phar-io/manifest/src/ManifestLoader.php', - 'PharIo\\Manifest\\ManifestLoaderException' => $vendorDir . '/phar-io/manifest/src/exceptions/ManifestLoaderException.php', - 'PharIo\\Manifest\\ManifestSerializer' => $vendorDir . '/phar-io/manifest/src/ManifestSerializer.php', - 'PharIo\\Manifest\\PhpElement' => $vendorDir . '/phar-io/manifest/src/xml/PhpElement.php', - 'PharIo\\Manifest\\PhpExtensionRequirement' => $vendorDir . '/phar-io/manifest/src/values/PhpExtensionRequirement.php', - 'PharIo\\Manifest\\PhpVersionRequirement' => $vendorDir . '/phar-io/manifest/src/values/PhpVersionRequirement.php', - 'PharIo\\Manifest\\Requirement' => $vendorDir . '/phar-io/manifest/src/values/Requirement.php', - 'PharIo\\Manifest\\RequirementCollection' => $vendorDir . '/phar-io/manifest/src/values/RequirementCollection.php', - 'PharIo\\Manifest\\RequirementCollectionIterator' => $vendorDir . '/phar-io/manifest/src/values/RequirementCollectionIterator.php', - 'PharIo\\Manifest\\RequiresElement' => $vendorDir . '/phar-io/manifest/src/xml/RequiresElement.php', - 'PharIo\\Manifest\\Type' => $vendorDir . '/phar-io/manifest/src/values/Type.php', - 'PharIo\\Manifest\\Url' => $vendorDir . '/phar-io/manifest/src/values/Url.php', - 'PharIo\\Version\\AbstractVersionConstraint' => $vendorDir . '/phar-io/version/src/constraints/AbstractVersionConstraint.php', - 'PharIo\\Version\\AndVersionConstraintGroup' => $vendorDir . '/phar-io/version/src/constraints/AndVersionConstraintGroup.php', - 'PharIo\\Version\\AnyVersionConstraint' => $vendorDir . '/phar-io/version/src/constraints/AnyVersionConstraint.php', - 'PharIo\\Version\\ExactVersionConstraint' => $vendorDir . '/phar-io/version/src/constraints/ExactVersionConstraint.php', - 'PharIo\\Version\\Exception' => $vendorDir . '/phar-io/version/src/exceptions/Exception.php', - 'PharIo\\Version\\GreaterThanOrEqualToVersionConstraint' => $vendorDir . '/phar-io/version/src/constraints/GreaterThanOrEqualToVersionConstraint.php', - 'PharIo\\Version\\InvalidPreReleaseSuffixException' => $vendorDir . '/phar-io/version/src/exceptions/InvalidPreReleaseSuffixException.php', - 'PharIo\\Version\\InvalidVersionException' => $vendorDir . '/phar-io/version/src/exceptions/InvalidVersionException.php', - 'PharIo\\Version\\OrVersionConstraintGroup' => $vendorDir . '/phar-io/version/src/constraints/OrVersionConstraintGroup.php', - 'PharIo\\Version\\PreReleaseSuffix' => $vendorDir . '/phar-io/version/src/PreReleaseSuffix.php', - 'PharIo\\Version\\SpecificMajorAndMinorVersionConstraint' => $vendorDir . '/phar-io/version/src/constraints/SpecificMajorAndMinorVersionConstraint.php', - 'PharIo\\Version\\SpecificMajorVersionConstraint' => $vendorDir . '/phar-io/version/src/constraints/SpecificMajorVersionConstraint.php', - 'PharIo\\Version\\UnsupportedVersionConstraintException' => $vendorDir . '/phar-io/version/src/exceptions/UnsupportedVersionConstraintException.php', - 'PharIo\\Version\\Version' => $vendorDir . '/phar-io/version/src/Version.php', - 'PharIo\\Version\\VersionConstraint' => $vendorDir . '/phar-io/version/src/constraints/VersionConstraint.php', - 'PharIo\\Version\\VersionConstraintParser' => $vendorDir . '/phar-io/version/src/VersionConstraintParser.php', - 'PharIo\\Version\\VersionConstraintValue' => $vendorDir . '/phar-io/version/src/VersionConstraintValue.php', - 'PharIo\\Version\\VersionNumber' => $vendorDir . '/phar-io/version/src/VersionNumber.php', - 'PhpParser\\Builder' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Builder.php', - 'PhpParser\\BuilderFactory' => $vendorDir . '/nikic/php-parser/lib/PhpParser/BuilderFactory.php', - 'PhpParser\\BuilderHelpers' => $vendorDir . '/nikic/php-parser/lib/PhpParser/BuilderHelpers.php', - 'PhpParser\\Builder\\Class_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Builder/Class_.php', - 'PhpParser\\Builder\\Declaration' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Builder/Declaration.php', - 'PhpParser\\Builder\\FunctionLike' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Builder/FunctionLike.php', - 'PhpParser\\Builder\\Function_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Builder/Function_.php', - 'PhpParser\\Builder\\Interface_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Builder/Interface_.php', - 'PhpParser\\Builder\\Method' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Builder/Method.php', - 'PhpParser\\Builder\\Namespace_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Builder/Namespace_.php', - 'PhpParser\\Builder\\Param' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Builder/Param.php', - 'PhpParser\\Builder\\Property' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Builder/Property.php', - 'PhpParser\\Builder\\Trait_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Builder/Trait_.php', - 'PhpParser\\Builder\\Use_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Builder/Use_.php', - 'PhpParser\\Comment' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Comment.php', - 'PhpParser\\Comment\\Doc' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Comment/Doc.php', - 'PhpParser\\ConstExprEvaluationException' => $vendorDir . '/nikic/php-parser/lib/PhpParser/ConstExprEvaluationException.php', - 'PhpParser\\ConstExprEvaluator' => $vendorDir . '/nikic/php-parser/lib/PhpParser/ConstExprEvaluator.php', - 'PhpParser\\Error' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Error.php', - 'PhpParser\\ErrorHandler' => $vendorDir . '/nikic/php-parser/lib/PhpParser/ErrorHandler.php', - 'PhpParser\\ErrorHandler\\Collecting' => $vendorDir . '/nikic/php-parser/lib/PhpParser/ErrorHandler/Collecting.php', - 'PhpParser\\ErrorHandler\\Throwing' => $vendorDir . '/nikic/php-parser/lib/PhpParser/ErrorHandler/Throwing.php', - 'PhpParser\\Internal\\DiffElem' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Internal/DiffElem.php', - 'PhpParser\\Internal\\Differ' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Internal/Differ.php', - 'PhpParser\\Internal\\PrintableNewAnonClassNode' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Internal/PrintableNewAnonClassNode.php', - 'PhpParser\\Internal\\TokenStream' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Internal/TokenStream.php', - 'PhpParser\\JsonDecoder' => $vendorDir . '/nikic/php-parser/lib/PhpParser/JsonDecoder.php', - 'PhpParser\\Lexer' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Lexer.php', - 'PhpParser\\Lexer\\Emulative' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Lexer/Emulative.php', - 'PhpParser\\NameContext' => $vendorDir . '/nikic/php-parser/lib/PhpParser/NameContext.php', - 'PhpParser\\Node' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node.php', - 'PhpParser\\NodeAbstract' => $vendorDir . '/nikic/php-parser/lib/PhpParser/NodeAbstract.php', - 'PhpParser\\NodeDumper' => $vendorDir . '/nikic/php-parser/lib/PhpParser/NodeDumper.php', - 'PhpParser\\NodeFinder' => $vendorDir . '/nikic/php-parser/lib/PhpParser/NodeFinder.php', - 'PhpParser\\NodeTraverser' => $vendorDir . '/nikic/php-parser/lib/PhpParser/NodeTraverser.php', - 'PhpParser\\NodeTraverserInterface' => $vendorDir . '/nikic/php-parser/lib/PhpParser/NodeTraverserInterface.php', - 'PhpParser\\NodeVisitor' => $vendorDir . '/nikic/php-parser/lib/PhpParser/NodeVisitor.php', - 'PhpParser\\NodeVisitorAbstract' => $vendorDir . '/nikic/php-parser/lib/PhpParser/NodeVisitorAbstract.php', - 'PhpParser\\NodeVisitor\\CloningVisitor' => $vendorDir . '/nikic/php-parser/lib/PhpParser/NodeVisitor/CloningVisitor.php', - 'PhpParser\\NodeVisitor\\FindingVisitor' => $vendorDir . '/nikic/php-parser/lib/PhpParser/NodeVisitor/FindingVisitor.php', - 'PhpParser\\NodeVisitor\\FirstFindingVisitor' => $vendorDir . '/nikic/php-parser/lib/PhpParser/NodeVisitor/FirstFindingVisitor.php', - 'PhpParser\\NodeVisitor\\NameResolver' => $vendorDir . '/nikic/php-parser/lib/PhpParser/NodeVisitor/NameResolver.php', - 'PhpParser\\Node\\Arg' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Arg.php', - 'PhpParser\\Node\\Const_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Const_.php', - 'PhpParser\\Node\\Expr' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr.php', - 'PhpParser\\Node\\Expr\\ArrayDimFetch' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/ArrayDimFetch.php', - 'PhpParser\\Node\\Expr\\ArrayItem' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/ArrayItem.php', - 'PhpParser\\Node\\Expr\\Array_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/Array_.php', - 'PhpParser\\Node\\Expr\\Assign' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/Assign.php', - 'PhpParser\\Node\\Expr\\AssignOp' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp.php', - 'PhpParser\\Node\\Expr\\AssignOp\\BitwiseAnd' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/BitwiseAnd.php', - 'PhpParser\\Node\\Expr\\AssignOp\\BitwiseOr' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/BitwiseOr.php', - 'PhpParser\\Node\\Expr\\AssignOp\\BitwiseXor' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/BitwiseXor.php', - 'PhpParser\\Node\\Expr\\AssignOp\\Concat' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/Concat.php', - 'PhpParser\\Node\\Expr\\AssignOp\\Div' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/Div.php', - 'PhpParser\\Node\\Expr\\AssignOp\\Minus' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/Minus.php', - 'PhpParser\\Node\\Expr\\AssignOp\\Mod' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/Mod.php', - 'PhpParser\\Node\\Expr\\AssignOp\\Mul' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/Mul.php', - 'PhpParser\\Node\\Expr\\AssignOp\\Plus' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/Plus.php', - 'PhpParser\\Node\\Expr\\AssignOp\\Pow' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/Pow.php', - 'PhpParser\\Node\\Expr\\AssignOp\\ShiftLeft' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/ShiftLeft.php', - 'PhpParser\\Node\\Expr\\AssignOp\\ShiftRight' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/ShiftRight.php', - 'PhpParser\\Node\\Expr\\AssignRef' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/AssignRef.php', - 'PhpParser\\Node\\Expr\\BinaryOp' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp.php', - 'PhpParser\\Node\\Expr\\BinaryOp\\BitwiseAnd' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/BitwiseAnd.php', - 'PhpParser\\Node\\Expr\\BinaryOp\\BitwiseOr' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/BitwiseOr.php', - 'PhpParser\\Node\\Expr\\BinaryOp\\BitwiseXor' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/BitwiseXor.php', - 'PhpParser\\Node\\Expr\\BinaryOp\\BooleanAnd' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/BooleanAnd.php', - 'PhpParser\\Node\\Expr\\BinaryOp\\BooleanOr' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/BooleanOr.php', - 'PhpParser\\Node\\Expr\\BinaryOp\\Coalesce' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Coalesce.php', - 'PhpParser\\Node\\Expr\\BinaryOp\\Concat' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Concat.php', - 'PhpParser\\Node\\Expr\\BinaryOp\\Div' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Div.php', - 'PhpParser\\Node\\Expr\\BinaryOp\\Equal' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Equal.php', - 'PhpParser\\Node\\Expr\\BinaryOp\\Greater' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Greater.php', - 'PhpParser\\Node\\Expr\\BinaryOp\\GreaterOrEqual' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/GreaterOrEqual.php', - 'PhpParser\\Node\\Expr\\BinaryOp\\Identical' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Identical.php', - 'PhpParser\\Node\\Expr\\BinaryOp\\LogicalAnd' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/LogicalAnd.php', - 'PhpParser\\Node\\Expr\\BinaryOp\\LogicalOr' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/LogicalOr.php', - 'PhpParser\\Node\\Expr\\BinaryOp\\LogicalXor' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/LogicalXor.php', - 'PhpParser\\Node\\Expr\\BinaryOp\\Minus' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Minus.php', - 'PhpParser\\Node\\Expr\\BinaryOp\\Mod' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Mod.php', - 'PhpParser\\Node\\Expr\\BinaryOp\\Mul' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Mul.php', - 'PhpParser\\Node\\Expr\\BinaryOp\\NotEqual' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/NotEqual.php', - 'PhpParser\\Node\\Expr\\BinaryOp\\NotIdentical' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/NotIdentical.php', - 'PhpParser\\Node\\Expr\\BinaryOp\\Plus' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Plus.php', - 'PhpParser\\Node\\Expr\\BinaryOp\\Pow' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Pow.php', - 'PhpParser\\Node\\Expr\\BinaryOp\\ShiftLeft' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/ShiftLeft.php', - 'PhpParser\\Node\\Expr\\BinaryOp\\ShiftRight' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/ShiftRight.php', - 'PhpParser\\Node\\Expr\\BinaryOp\\Smaller' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Smaller.php', - 'PhpParser\\Node\\Expr\\BinaryOp\\SmallerOrEqual' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/SmallerOrEqual.php', - 'PhpParser\\Node\\Expr\\BinaryOp\\Spaceship' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Spaceship.php', - 'PhpParser\\Node\\Expr\\BitwiseNot' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/BitwiseNot.php', - 'PhpParser\\Node\\Expr\\BooleanNot' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/BooleanNot.php', - 'PhpParser\\Node\\Expr\\Cast' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/Cast.php', - 'PhpParser\\Node\\Expr\\Cast\\Array_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/Cast/Array_.php', - 'PhpParser\\Node\\Expr\\Cast\\Bool_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/Cast/Bool_.php', - 'PhpParser\\Node\\Expr\\Cast\\Double' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/Cast/Double.php', - 'PhpParser\\Node\\Expr\\Cast\\Int_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/Cast/Int_.php', - 'PhpParser\\Node\\Expr\\Cast\\Object_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/Cast/Object_.php', - 'PhpParser\\Node\\Expr\\Cast\\String_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/Cast/String_.php', - 'PhpParser\\Node\\Expr\\Cast\\Unset_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/Cast/Unset_.php', - 'PhpParser\\Node\\Expr\\ClassConstFetch' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/ClassConstFetch.php', - 'PhpParser\\Node\\Expr\\Clone_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/Clone_.php', - 'PhpParser\\Node\\Expr\\Closure' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/Closure.php', - 'PhpParser\\Node\\Expr\\ClosureUse' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/ClosureUse.php', - 'PhpParser\\Node\\Expr\\ConstFetch' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/ConstFetch.php', - 'PhpParser\\Node\\Expr\\Empty_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/Empty_.php', - 'PhpParser\\Node\\Expr\\Error' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/Error.php', - 'PhpParser\\Node\\Expr\\ErrorSuppress' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/ErrorSuppress.php', - 'PhpParser\\Node\\Expr\\Eval_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/Eval_.php', - 'PhpParser\\Node\\Expr\\Exit_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/Exit_.php', - 'PhpParser\\Node\\Expr\\FuncCall' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/FuncCall.php', - 'PhpParser\\Node\\Expr\\Include_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/Include_.php', - 'PhpParser\\Node\\Expr\\Instanceof_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/Instanceof_.php', - 'PhpParser\\Node\\Expr\\Isset_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/Isset_.php', - 'PhpParser\\Node\\Expr\\List_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/List_.php', - 'PhpParser\\Node\\Expr\\MethodCall' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/MethodCall.php', - 'PhpParser\\Node\\Expr\\New_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/New_.php', - 'PhpParser\\Node\\Expr\\PostDec' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/PostDec.php', - 'PhpParser\\Node\\Expr\\PostInc' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/PostInc.php', - 'PhpParser\\Node\\Expr\\PreDec' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/PreDec.php', - 'PhpParser\\Node\\Expr\\PreInc' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/PreInc.php', - 'PhpParser\\Node\\Expr\\Print_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/Print_.php', - 'PhpParser\\Node\\Expr\\PropertyFetch' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/PropertyFetch.php', - 'PhpParser\\Node\\Expr\\ShellExec' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/ShellExec.php', - 'PhpParser\\Node\\Expr\\StaticCall' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/StaticCall.php', - 'PhpParser\\Node\\Expr\\StaticPropertyFetch' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/StaticPropertyFetch.php', - 'PhpParser\\Node\\Expr\\Ternary' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/Ternary.php', - 'PhpParser\\Node\\Expr\\UnaryMinus' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/UnaryMinus.php', - 'PhpParser\\Node\\Expr\\UnaryPlus' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/UnaryPlus.php', - 'PhpParser\\Node\\Expr\\Variable' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/Variable.php', - 'PhpParser\\Node\\Expr\\YieldFrom' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/YieldFrom.php', - 'PhpParser\\Node\\Expr\\Yield_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/Yield_.php', - 'PhpParser\\Node\\FunctionLike' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/FunctionLike.php', - 'PhpParser\\Node\\Identifier' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Identifier.php', - 'PhpParser\\Node\\Name' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Name.php', - 'PhpParser\\Node\\Name\\FullyQualified' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Name/FullyQualified.php', - 'PhpParser\\Node\\Name\\Relative' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Name/Relative.php', - 'PhpParser\\Node\\NullableType' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/NullableType.php', - 'PhpParser\\Node\\Param' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Param.php', - 'PhpParser\\Node\\Scalar' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Scalar.php', - 'PhpParser\\Node\\Scalar\\DNumber' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Scalar/DNumber.php', - 'PhpParser\\Node\\Scalar\\Encapsed' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Scalar/Encapsed.php', - 'PhpParser\\Node\\Scalar\\EncapsedStringPart' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Scalar/EncapsedStringPart.php', - 'PhpParser\\Node\\Scalar\\LNumber' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Scalar/LNumber.php', - 'PhpParser\\Node\\Scalar\\MagicConst' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst.php', - 'PhpParser\\Node\\Scalar\\MagicConst\\Class_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/Class_.php', - 'PhpParser\\Node\\Scalar\\MagicConst\\Dir' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/Dir.php', - 'PhpParser\\Node\\Scalar\\MagicConst\\File' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/File.php', - 'PhpParser\\Node\\Scalar\\MagicConst\\Function_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/Function_.php', - 'PhpParser\\Node\\Scalar\\MagicConst\\Line' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/Line.php', - 'PhpParser\\Node\\Scalar\\MagicConst\\Method' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/Method.php', - 'PhpParser\\Node\\Scalar\\MagicConst\\Namespace_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/Namespace_.php', - 'PhpParser\\Node\\Scalar\\MagicConst\\Trait_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/Trait_.php', - 'PhpParser\\Node\\Scalar\\String_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Scalar/String_.php', - 'PhpParser\\Node\\Stmt' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt.php', - 'PhpParser\\Node\\Stmt\\Break_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Break_.php', - 'PhpParser\\Node\\Stmt\\Case_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Case_.php', - 'PhpParser\\Node\\Stmt\\Catch_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Catch_.php', - 'PhpParser\\Node\\Stmt\\ClassConst' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/ClassConst.php', - 'PhpParser\\Node\\Stmt\\ClassLike' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/ClassLike.php', - 'PhpParser\\Node\\Stmt\\ClassMethod' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/ClassMethod.php', - 'PhpParser\\Node\\Stmt\\Class_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Class_.php', - 'PhpParser\\Node\\Stmt\\Const_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Const_.php', - 'PhpParser\\Node\\Stmt\\Continue_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Continue_.php', - 'PhpParser\\Node\\Stmt\\DeclareDeclare' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/DeclareDeclare.php', - 'PhpParser\\Node\\Stmt\\Declare_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Declare_.php', - 'PhpParser\\Node\\Stmt\\Do_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Do_.php', - 'PhpParser\\Node\\Stmt\\Echo_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Echo_.php', - 'PhpParser\\Node\\Stmt\\ElseIf_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/ElseIf_.php', - 'PhpParser\\Node\\Stmt\\Else_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Else_.php', - 'PhpParser\\Node\\Stmt\\Expression' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Expression.php', - 'PhpParser\\Node\\Stmt\\Finally_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Finally_.php', - 'PhpParser\\Node\\Stmt\\For_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/For_.php', - 'PhpParser\\Node\\Stmt\\Foreach_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Foreach_.php', - 'PhpParser\\Node\\Stmt\\Function_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Function_.php', - 'PhpParser\\Node\\Stmt\\Global_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Global_.php', - 'PhpParser\\Node\\Stmt\\Goto_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Goto_.php', - 'PhpParser\\Node\\Stmt\\GroupUse' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/GroupUse.php', - 'PhpParser\\Node\\Stmt\\HaltCompiler' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/HaltCompiler.php', - 'PhpParser\\Node\\Stmt\\If_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/If_.php', - 'PhpParser\\Node\\Stmt\\InlineHTML' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/InlineHTML.php', - 'PhpParser\\Node\\Stmt\\Interface_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Interface_.php', - 'PhpParser\\Node\\Stmt\\Label' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Label.php', - 'PhpParser\\Node\\Stmt\\Namespace_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Namespace_.php', - 'PhpParser\\Node\\Stmt\\Nop' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Nop.php', - 'PhpParser\\Node\\Stmt\\Property' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Property.php', - 'PhpParser\\Node\\Stmt\\PropertyProperty' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/PropertyProperty.php', - 'PhpParser\\Node\\Stmt\\Return_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Return_.php', - 'PhpParser\\Node\\Stmt\\StaticVar' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/StaticVar.php', - 'PhpParser\\Node\\Stmt\\Static_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Static_.php', - 'PhpParser\\Node\\Stmt\\Switch_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Switch_.php', - 'PhpParser\\Node\\Stmt\\Throw_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Throw_.php', - 'PhpParser\\Node\\Stmt\\TraitUse' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/TraitUse.php', - 'PhpParser\\Node\\Stmt\\TraitUseAdaptation' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/TraitUseAdaptation.php', - 'PhpParser\\Node\\Stmt\\TraitUseAdaptation\\Alias' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/TraitUseAdaptation/Alias.php', - 'PhpParser\\Node\\Stmt\\TraitUseAdaptation\\Precedence' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/TraitUseAdaptation/Precedence.php', - 'PhpParser\\Node\\Stmt\\Trait_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Trait_.php', - 'PhpParser\\Node\\Stmt\\TryCatch' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/TryCatch.php', - 'PhpParser\\Node\\Stmt\\Unset_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Unset_.php', - 'PhpParser\\Node\\Stmt\\UseUse' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/UseUse.php', - 'PhpParser\\Node\\Stmt\\Use_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Use_.php', - 'PhpParser\\Node\\Stmt\\While_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/While_.php', - 'PhpParser\\Node\\VarLikeIdentifier' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/VarLikeIdentifier.php', - 'PhpParser\\Parser' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Parser.php', - 'PhpParser\\ParserAbstract' => $vendorDir . '/nikic/php-parser/lib/PhpParser/ParserAbstract.php', - 'PhpParser\\ParserFactory' => $vendorDir . '/nikic/php-parser/lib/PhpParser/ParserFactory.php', - 'PhpParser\\Parser\\Multiple' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Parser/Multiple.php', - 'PhpParser\\Parser\\Php5' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Parser/Php5.php', - 'PhpParser\\Parser\\Php7' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Parser/Php7.php', - 'PhpParser\\Parser\\Tokens' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Parser/Tokens.php', - 'PhpParser\\PrettyPrinterAbstract' => $vendorDir . '/nikic/php-parser/lib/PhpParser/PrettyPrinterAbstract.php', - 'PhpParser\\PrettyPrinter\\Standard' => $vendorDir . '/nikic/php-parser/lib/PhpParser/PrettyPrinter/Standard.php', - 'Prophecy\\Argument' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Argument.php', - 'Prophecy\\Argument\\ArgumentsWildcard' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Argument/ArgumentsWildcard.php', - 'Prophecy\\Argument\\Token\\AnyValueToken' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Argument/Token/AnyValueToken.php', - 'Prophecy\\Argument\\Token\\AnyValuesToken' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Argument/Token/AnyValuesToken.php', - 'Prophecy\\Argument\\Token\\ApproximateValueToken' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Argument/Token/ApproximateValueToken.php', - 'Prophecy\\Argument\\Token\\ArrayCountToken' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Argument/Token/ArrayCountToken.php', - 'Prophecy\\Argument\\Token\\ArrayEntryToken' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Argument/Token/ArrayEntryToken.php', - 'Prophecy\\Argument\\Token\\ArrayEveryEntryToken' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Argument/Token/ArrayEveryEntryToken.php', - 'Prophecy\\Argument\\Token\\CallbackToken' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Argument/Token/CallbackToken.php', - 'Prophecy\\Argument\\Token\\ExactValueToken' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Argument/Token/ExactValueToken.php', - 'Prophecy\\Argument\\Token\\IdenticalValueToken' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Argument/Token/IdenticalValueToken.php', - 'Prophecy\\Argument\\Token\\LogicalAndToken' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Argument/Token/LogicalAndToken.php', - 'Prophecy\\Argument\\Token\\LogicalNotToken' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Argument/Token/LogicalNotToken.php', - 'Prophecy\\Argument\\Token\\ObjectStateToken' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Argument/Token/ObjectStateToken.php', - 'Prophecy\\Argument\\Token\\StringContainsToken' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Argument/Token/StringContainsToken.php', - 'Prophecy\\Argument\\Token\\TokenInterface' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Argument/Token/TokenInterface.php', - 'Prophecy\\Argument\\Token\\TypeToken' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Argument/Token/TypeToken.php', - 'Prophecy\\Call\\Call' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Call/Call.php', - 'Prophecy\\Call\\CallCenter' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Call/CallCenter.php', - 'Prophecy\\Comparator\\ClosureComparator' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Comparator/ClosureComparator.php', - 'Prophecy\\Comparator\\Factory' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Comparator/Factory.php', - 'Prophecy\\Comparator\\ProphecyComparator' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Comparator/ProphecyComparator.php', - 'Prophecy\\Doubler\\CachedDoubler' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Doubler/CachedDoubler.php', - 'Prophecy\\Doubler\\ClassPatch\\ClassPatchInterface' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/ClassPatchInterface.php', - 'Prophecy\\Doubler\\ClassPatch\\DisableConstructorPatch' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/DisableConstructorPatch.php', - 'Prophecy\\Doubler\\ClassPatch\\HhvmExceptionPatch' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/HhvmExceptionPatch.php', - 'Prophecy\\Doubler\\ClassPatch\\KeywordPatch' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/KeywordPatch.php', - 'Prophecy\\Doubler\\ClassPatch\\MagicCallPatch' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/MagicCallPatch.php', - 'Prophecy\\Doubler\\ClassPatch\\ProphecySubjectPatch' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/ProphecySubjectPatch.php', - 'Prophecy\\Doubler\\ClassPatch\\ReflectionClassNewInstancePatch' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/ReflectionClassNewInstancePatch.php', - 'Prophecy\\Doubler\\ClassPatch\\SplFileInfoPatch' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/SplFileInfoPatch.php', - 'Prophecy\\Doubler\\ClassPatch\\TraversablePatch' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/TraversablePatch.php', - 'Prophecy\\Doubler\\DoubleInterface' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Doubler/DoubleInterface.php', - 'Prophecy\\Doubler\\Doubler' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Doubler/Doubler.php', - 'Prophecy\\Doubler\\Generator\\ClassCodeGenerator' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Doubler/Generator/ClassCodeGenerator.php', - 'Prophecy\\Doubler\\Generator\\ClassCreator' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Doubler/Generator/ClassCreator.php', - 'Prophecy\\Doubler\\Generator\\ClassMirror' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Doubler/Generator/ClassMirror.php', - 'Prophecy\\Doubler\\Generator\\Node\\ArgumentNode' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Doubler/Generator/Node/ArgumentNode.php', - 'Prophecy\\Doubler\\Generator\\Node\\ClassNode' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Doubler/Generator/Node/ClassNode.php', - 'Prophecy\\Doubler\\Generator\\Node\\MethodNode' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Doubler/Generator/Node/MethodNode.php', - 'Prophecy\\Doubler\\Generator\\ReflectionInterface' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Doubler/Generator/ReflectionInterface.php', - 'Prophecy\\Doubler\\Generator\\TypeHintReference' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Doubler/Generator/TypeHintReference.php', - 'Prophecy\\Doubler\\LazyDouble' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Doubler/LazyDouble.php', - 'Prophecy\\Doubler\\NameGenerator' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Doubler/NameGenerator.php', - 'Prophecy\\Exception\\Call\\UnexpectedCallException' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Exception/Call/UnexpectedCallException.php', - 'Prophecy\\Exception\\Doubler\\ClassCreatorException' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Exception/Doubler/ClassCreatorException.php', - 'Prophecy\\Exception\\Doubler\\ClassMirrorException' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Exception/Doubler/ClassMirrorException.php', - 'Prophecy\\Exception\\Doubler\\ClassNotFoundException' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Exception/Doubler/ClassNotFoundException.php', - 'Prophecy\\Exception\\Doubler\\DoubleException' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Exception/Doubler/DoubleException.php', - 'Prophecy\\Exception\\Doubler\\DoublerException' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Exception/Doubler/DoublerException.php', - 'Prophecy\\Exception\\Doubler\\InterfaceNotFoundException' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Exception/Doubler/InterfaceNotFoundException.php', - 'Prophecy\\Exception\\Doubler\\MethodNotExtendableException' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Exception/Doubler/MethodNotExtendableException.php', - 'Prophecy\\Exception\\Doubler\\MethodNotFoundException' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Exception/Doubler/MethodNotFoundException.php', - 'Prophecy\\Exception\\Doubler\\ReturnByReferenceException' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Exception/Doubler/ReturnByReferenceException.php', - 'Prophecy\\Exception\\Exception' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Exception/Exception.php', - 'Prophecy\\Exception\\InvalidArgumentException' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Exception/InvalidArgumentException.php', - 'Prophecy\\Exception\\Prediction\\AggregateException' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Exception/Prediction/AggregateException.php', - 'Prophecy\\Exception\\Prediction\\FailedPredictionException' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Exception/Prediction/FailedPredictionException.php', - 'Prophecy\\Exception\\Prediction\\NoCallsException' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Exception/Prediction/NoCallsException.php', - 'Prophecy\\Exception\\Prediction\\PredictionException' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Exception/Prediction/PredictionException.php', - 'Prophecy\\Exception\\Prediction\\UnexpectedCallsCountException' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Exception/Prediction/UnexpectedCallsCountException.php', - 'Prophecy\\Exception\\Prediction\\UnexpectedCallsException' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Exception/Prediction/UnexpectedCallsException.php', - 'Prophecy\\Exception\\Prophecy\\MethodProphecyException' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Exception/Prophecy/MethodProphecyException.php', - 'Prophecy\\Exception\\Prophecy\\ObjectProphecyException' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Exception/Prophecy/ObjectProphecyException.php', - 'Prophecy\\Exception\\Prophecy\\ProphecyException' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Exception/Prophecy/ProphecyException.php', - 'Prophecy\\PhpDocumentor\\ClassAndInterfaceTagRetriever' => $vendorDir . '/phpspec/prophecy/src/Prophecy/PhpDocumentor/ClassAndInterfaceTagRetriever.php', - 'Prophecy\\PhpDocumentor\\ClassTagRetriever' => $vendorDir . '/phpspec/prophecy/src/Prophecy/PhpDocumentor/ClassTagRetriever.php', - 'Prophecy\\PhpDocumentor\\LegacyClassTagRetriever' => $vendorDir . '/phpspec/prophecy/src/Prophecy/PhpDocumentor/LegacyClassTagRetriever.php', - 'Prophecy\\PhpDocumentor\\MethodTagRetrieverInterface' => $vendorDir . '/phpspec/prophecy/src/Prophecy/PhpDocumentor/MethodTagRetrieverInterface.php', - 'Prophecy\\Prediction\\CallPrediction' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Prediction/CallPrediction.php', - 'Prophecy\\Prediction\\CallTimesPrediction' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Prediction/CallTimesPrediction.php', - 'Prophecy\\Prediction\\CallbackPrediction' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Prediction/CallbackPrediction.php', - 'Prophecy\\Prediction\\NoCallsPrediction' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Prediction/NoCallsPrediction.php', - 'Prophecy\\Prediction\\PredictionInterface' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Prediction/PredictionInterface.php', - 'Prophecy\\Promise\\CallbackPromise' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Promise/CallbackPromise.php', - 'Prophecy\\Promise\\PromiseInterface' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Promise/PromiseInterface.php', - 'Prophecy\\Promise\\ReturnArgumentPromise' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Promise/ReturnArgumentPromise.php', - 'Prophecy\\Promise\\ReturnPromise' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Promise/ReturnPromise.php', - 'Prophecy\\Promise\\ThrowPromise' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Promise/ThrowPromise.php', - 'Prophecy\\Prophecy\\MethodProphecy' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Prophecy/MethodProphecy.php', - 'Prophecy\\Prophecy\\ObjectProphecy' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Prophecy/ObjectProphecy.php', - 'Prophecy\\Prophecy\\ProphecyInterface' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Prophecy/ProphecyInterface.php', - 'Prophecy\\Prophecy\\ProphecySubjectInterface' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Prophecy/ProphecySubjectInterface.php', - 'Prophecy\\Prophecy\\Revealer' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Prophecy/Revealer.php', - 'Prophecy\\Prophecy\\RevealerInterface' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Prophecy/RevealerInterface.php', - 'Prophecy\\Prophet' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Prophet.php', - 'Prophecy\\Util\\ExportUtil' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Util/ExportUtil.php', - 'Prophecy\\Util\\StringUtil' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Util/StringUtil.php', - 'Psr\\Container\\ContainerExceptionInterface' => $vendorDir . '/psr/container/src/ContainerExceptionInterface.php', - 'Psr\\Container\\ContainerInterface' => $vendorDir . '/psr/container/src/ContainerInterface.php', - 'Psr\\Container\\NotFoundExceptionInterface' => $vendorDir . '/psr/container/src/NotFoundExceptionInterface.php', - 'Psr\\Http\\Message\\MessageInterface' => $vendorDir . '/psr/http-message/src/MessageInterface.php', - 'Psr\\Http\\Message\\RequestInterface' => $vendorDir . '/psr/http-message/src/RequestInterface.php', - 'Psr\\Http\\Message\\ResponseInterface' => $vendorDir . '/psr/http-message/src/ResponseInterface.php', - 'Psr\\Http\\Message\\ServerRequestInterface' => $vendorDir . '/psr/http-message/src/ServerRequestInterface.php', - 'Psr\\Http\\Message\\StreamInterface' => $vendorDir . '/psr/http-message/src/StreamInterface.php', - 'Psr\\Http\\Message\\UploadedFileInterface' => $vendorDir . '/psr/http-message/src/UploadedFileInterface.php', - 'Psr\\Http\\Message\\UriInterface' => $vendorDir . '/psr/http-message/src/UriInterface.php', - 'Psr\\Log\\AbstractLogger' => $vendorDir . '/psr/log/Psr/Log/AbstractLogger.php', - 'Psr\\Log\\InvalidArgumentException' => $vendorDir . '/psr/log/Psr/Log/InvalidArgumentException.php', - 'Psr\\Log\\LogLevel' => $vendorDir . '/psr/log/Psr/Log/LogLevel.php', - 'Psr\\Log\\LoggerAwareInterface' => $vendorDir . '/psr/log/Psr/Log/LoggerAwareInterface.php', - 'Psr\\Log\\LoggerAwareTrait' => $vendorDir . '/psr/log/Psr/Log/LoggerAwareTrait.php', - 'Psr\\Log\\LoggerInterface' => $vendorDir . '/psr/log/Psr/Log/LoggerInterface.php', - 'Psr\\Log\\LoggerTrait' => $vendorDir . '/psr/log/Psr/Log/LoggerTrait.php', - 'Psr\\Log\\NullLogger' => $vendorDir . '/psr/log/Psr/Log/NullLogger.php', - 'Psr\\Log\\Test\\DummyTest' => $vendorDir . '/psr/log/Psr/Log/Test/LoggerInterfaceTest.php', - 'Psr\\Log\\Test\\LoggerInterfaceTest' => $vendorDir . '/psr/log/Psr/Log/Test/LoggerInterfaceTest.php', - 'Psr\\SimpleCache\\CacheException' => $vendorDir . '/psr/simple-cache/src/CacheException.php', - 'Psr\\SimpleCache\\CacheInterface' => $vendorDir . '/psr/simple-cache/src/CacheInterface.php', - 'Psr\\SimpleCache\\InvalidArgumentException' => $vendorDir . '/psr/simple-cache/src/InvalidArgumentException.php', - 'Psy\\CodeCleaner' => $vendorDir . '/psy/psysh/src/CodeCleaner.php', - 'Psy\\CodeCleaner\\AbstractClassPass' => $vendorDir . '/psy/psysh/src/CodeCleaner/AbstractClassPass.php', - 'Psy\\CodeCleaner\\AssignThisVariablePass' => $vendorDir . '/psy/psysh/src/CodeCleaner/AssignThisVariablePass.php', - 'Psy\\CodeCleaner\\CallTimePassByReferencePass' => $vendorDir . '/psy/psysh/src/CodeCleaner/CallTimePassByReferencePass.php', - 'Psy\\CodeCleaner\\CalledClassPass' => $vendorDir . '/psy/psysh/src/CodeCleaner/CalledClassPass.php', - 'Psy\\CodeCleaner\\CodeCleanerPass' => $vendorDir . '/psy/psysh/src/CodeCleaner/CodeCleanerPass.php', - 'Psy\\CodeCleaner\\ExitPass' => $vendorDir . '/psy/psysh/src/CodeCleaner/ExitPass.php', - 'Psy\\CodeCleaner\\FinalClassPass' => $vendorDir . '/psy/psysh/src/CodeCleaner/FinalClassPass.php', - 'Psy\\CodeCleaner\\FunctionContextPass' => $vendorDir . '/psy/psysh/src/CodeCleaner/FunctionContextPass.php', - 'Psy\\CodeCleaner\\FunctionReturnInWriteContextPass' => $vendorDir . '/psy/psysh/src/CodeCleaner/FunctionReturnInWriteContextPass.php', - 'Psy\\CodeCleaner\\ImplicitReturnPass' => $vendorDir . '/psy/psysh/src/CodeCleaner/ImplicitReturnPass.php', - 'Psy\\CodeCleaner\\InstanceOfPass' => $vendorDir . '/psy/psysh/src/CodeCleaner/InstanceOfPass.php', - 'Psy\\CodeCleaner\\LeavePsyshAlonePass' => $vendorDir . '/psy/psysh/src/CodeCleaner/LeavePsyshAlonePass.php', - 'Psy\\CodeCleaner\\LegacyEmptyPass' => $vendorDir . '/psy/psysh/src/CodeCleaner/LegacyEmptyPass.php', - 'Psy\\CodeCleaner\\ListPass' => $vendorDir . '/psy/psysh/src/CodeCleaner/ListPass.php', - 'Psy\\CodeCleaner\\LoopContextPass' => $vendorDir . '/psy/psysh/src/CodeCleaner/LoopContextPass.php', - 'Psy\\CodeCleaner\\MagicConstantsPass' => $vendorDir . '/psy/psysh/src/CodeCleaner/MagicConstantsPass.php', - 'Psy\\CodeCleaner\\NamespaceAwarePass' => $vendorDir . '/psy/psysh/src/CodeCleaner/NamespaceAwarePass.php', - 'Psy\\CodeCleaner\\NamespacePass' => $vendorDir . '/psy/psysh/src/CodeCleaner/NamespacePass.php', - 'Psy\\CodeCleaner\\NoReturnValue' => $vendorDir . '/psy/psysh/src/CodeCleaner/NoReturnValue.php', - 'Psy\\CodeCleaner\\PassableByReferencePass' => $vendorDir . '/psy/psysh/src/CodeCleaner/PassableByReferencePass.php', - 'Psy\\CodeCleaner\\RequirePass' => $vendorDir . '/psy/psysh/src/CodeCleaner/RequirePass.php', - 'Psy\\CodeCleaner\\StrictTypesPass' => $vendorDir . '/psy/psysh/src/CodeCleaner/StrictTypesPass.php', - 'Psy\\CodeCleaner\\UseStatementPass' => $vendorDir . '/psy/psysh/src/CodeCleaner/UseStatementPass.php', - 'Psy\\CodeCleaner\\ValidClassNamePass' => $vendorDir . '/psy/psysh/src/CodeCleaner/ValidClassNamePass.php', - 'Psy\\CodeCleaner\\ValidConstantPass' => $vendorDir . '/psy/psysh/src/CodeCleaner/ValidConstantPass.php', - 'Psy\\CodeCleaner\\ValidConstructorPass' => $vendorDir . '/psy/psysh/src/CodeCleaner/ValidConstructorPass.php', - 'Psy\\CodeCleaner\\ValidFunctionNamePass' => $vendorDir . '/psy/psysh/src/CodeCleaner/ValidFunctionNamePass.php', - 'Psy\\Command\\BufferCommand' => $vendorDir . '/psy/psysh/src/Command/BufferCommand.php', - 'Psy\\Command\\ClearCommand' => $vendorDir . '/psy/psysh/src/Command/ClearCommand.php', - 'Psy\\Command\\Command' => $vendorDir . '/psy/psysh/src/Command/Command.php', - 'Psy\\Command\\DocCommand' => $vendorDir . '/psy/psysh/src/Command/DocCommand.php', - 'Psy\\Command\\DumpCommand' => $vendorDir . '/psy/psysh/src/Command/DumpCommand.php', - 'Psy\\Command\\EditCommand' => $vendorDir . '/psy/psysh/src/Command/EditCommand.php', - 'Psy\\Command\\ExitCommand' => $vendorDir . '/psy/psysh/src/Command/ExitCommand.php', - 'Psy\\Command\\HelpCommand' => $vendorDir . '/psy/psysh/src/Command/HelpCommand.php', - 'Psy\\Command\\HistoryCommand' => $vendorDir . '/psy/psysh/src/Command/HistoryCommand.php', - 'Psy\\Command\\ListCommand' => $vendorDir . '/psy/psysh/src/Command/ListCommand.php', - 'Psy\\Command\\ListCommand\\ClassConstantEnumerator' => $vendorDir . '/psy/psysh/src/Command/ListCommand/ClassConstantEnumerator.php', - 'Psy\\Command\\ListCommand\\ClassEnumerator' => $vendorDir . '/psy/psysh/src/Command/ListCommand/ClassEnumerator.php', - 'Psy\\Command\\ListCommand\\ConstantEnumerator' => $vendorDir . '/psy/psysh/src/Command/ListCommand/ConstantEnumerator.php', - 'Psy\\Command\\ListCommand\\Enumerator' => $vendorDir . '/psy/psysh/src/Command/ListCommand/Enumerator.php', - 'Psy\\Command\\ListCommand\\FunctionEnumerator' => $vendorDir . '/psy/psysh/src/Command/ListCommand/FunctionEnumerator.php', - 'Psy\\Command\\ListCommand\\GlobalVariableEnumerator' => $vendorDir . '/psy/psysh/src/Command/ListCommand/GlobalVariableEnumerator.php', - 'Psy\\Command\\ListCommand\\InterfaceEnumerator' => $vendorDir . '/psy/psysh/src/Command/ListCommand/InterfaceEnumerator.php', - 'Psy\\Command\\ListCommand\\MethodEnumerator' => $vendorDir . '/psy/psysh/src/Command/ListCommand/MethodEnumerator.php', - 'Psy\\Command\\ListCommand\\PropertyEnumerator' => $vendorDir . '/psy/psysh/src/Command/ListCommand/PropertyEnumerator.php', - 'Psy\\Command\\ListCommand\\TraitEnumerator' => $vendorDir . '/psy/psysh/src/Command/ListCommand/TraitEnumerator.php', - 'Psy\\Command\\ListCommand\\VariableEnumerator' => $vendorDir . '/psy/psysh/src/Command/ListCommand/VariableEnumerator.php', - 'Psy\\Command\\ParseCommand' => $vendorDir . '/psy/psysh/src/Command/ParseCommand.php', - 'Psy\\Command\\PsyVersionCommand' => $vendorDir . '/psy/psysh/src/Command/PsyVersionCommand.php', - 'Psy\\Command\\ReflectingCommand' => $vendorDir . '/psy/psysh/src/Command/ReflectingCommand.php', - 'Psy\\Command\\ShowCommand' => $vendorDir . '/psy/psysh/src/Command/ShowCommand.php', - 'Psy\\Command\\SudoCommand' => $vendorDir . '/psy/psysh/src/Command/SudoCommand.php', - 'Psy\\Command\\ThrowUpCommand' => $vendorDir . '/psy/psysh/src/Command/ThrowUpCommand.php', - 'Psy\\Command\\TimeitCommand' => $vendorDir . '/psy/psysh/src/Command/TimeitCommand.php', - 'Psy\\Command\\TimeitCommand\\TimeitVisitor' => $vendorDir . '/psy/psysh/src/Command/TimeitCommand/TimeitVisitor.php', - 'Psy\\Command\\TraceCommand' => $vendorDir . '/psy/psysh/src/Command/TraceCommand.php', - 'Psy\\Command\\WhereamiCommand' => $vendorDir . '/psy/psysh/src/Command/WhereamiCommand.php', - 'Psy\\Command\\WtfCommand' => $vendorDir . '/psy/psysh/src/Command/WtfCommand.php', - 'Psy\\ConfigPaths' => $vendorDir . '/psy/psysh/src/ConfigPaths.php', - 'Psy\\Configuration' => $vendorDir . '/psy/psysh/src/Configuration.php', - 'Psy\\ConsoleColorFactory' => $vendorDir . '/psy/psysh/src/ConsoleColorFactory.php', - 'Psy\\Context' => $vendorDir . '/psy/psysh/src/Context.php', - 'Psy\\ContextAware' => $vendorDir . '/psy/psysh/src/ContextAware.php', - 'Psy\\Exception\\BreakException' => $vendorDir . '/psy/psysh/src/Exception/BreakException.php', - 'Psy\\Exception\\DeprecatedException' => $vendorDir . '/psy/psysh/src/Exception/DeprecatedException.php', - 'Psy\\Exception\\ErrorException' => $vendorDir . '/psy/psysh/src/Exception/ErrorException.php', - 'Psy\\Exception\\Exception' => $vendorDir . '/psy/psysh/src/Exception/Exception.php', - 'Psy\\Exception\\FatalErrorException' => $vendorDir . '/psy/psysh/src/Exception/FatalErrorException.php', - 'Psy\\Exception\\ParseErrorException' => $vendorDir . '/psy/psysh/src/Exception/ParseErrorException.php', - 'Psy\\Exception\\RuntimeException' => $vendorDir . '/psy/psysh/src/Exception/RuntimeException.php', - 'Psy\\Exception\\ThrowUpException' => $vendorDir . '/psy/psysh/src/Exception/ThrowUpException.php', - 'Psy\\Exception\\TypeErrorException' => $vendorDir . '/psy/psysh/src/Exception/TypeErrorException.php', - 'Psy\\ExecutionClosure' => $vendorDir . '/psy/psysh/src/ExecutionClosure.php', - 'Psy\\ExecutionLoop' => $vendorDir . '/psy/psysh/src/ExecutionLoop.php', - 'Psy\\ExecutionLoopClosure' => $vendorDir . '/psy/psysh/src/ExecutionLoopClosure.php', - 'Psy\\ExecutionLoop\\AbstractListener' => $vendorDir . '/psy/psysh/src/ExecutionLoop/AbstractListener.php', - 'Psy\\ExecutionLoop\\Listener' => $vendorDir . '/psy/psysh/src/ExecutionLoop/Listener.php', - 'Psy\\ExecutionLoop\\ProcessForker' => $vendorDir . '/psy/psysh/src/ExecutionLoop/ProcessForker.php', - 'Psy\\ExecutionLoop\\RunkitReloader' => $vendorDir . '/psy/psysh/src/ExecutionLoop/RunkitReloader.php', - 'Psy\\Formatter\\CodeFormatter' => $vendorDir . '/psy/psysh/src/Formatter/CodeFormatter.php', - 'Psy\\Formatter\\DocblockFormatter' => $vendorDir . '/psy/psysh/src/Formatter/DocblockFormatter.php', - 'Psy\\Formatter\\Formatter' => $vendorDir . '/psy/psysh/src/Formatter/Formatter.php', - 'Psy\\Formatter\\SignatureFormatter' => $vendorDir . '/psy/psysh/src/Formatter/SignatureFormatter.php', - 'Psy\\Input\\CodeArgument' => $vendorDir . '/psy/psysh/src/Input/CodeArgument.php', - 'Psy\\Input\\FilterOptions' => $vendorDir . '/psy/psysh/src/Input/FilterOptions.php', - 'Psy\\Input\\ShellInput' => $vendorDir . '/psy/psysh/src/Input/ShellInput.php', - 'Psy\\Input\\SilentInput' => $vendorDir . '/psy/psysh/src/Input/SilentInput.php', - 'Psy\\Output\\OutputPager' => $vendorDir . '/psy/psysh/src/Output/OutputPager.php', - 'Psy\\Output\\PassthruPager' => $vendorDir . '/psy/psysh/src/Output/PassthruPager.php', - 'Psy\\Output\\ProcOutputPager' => $vendorDir . '/psy/psysh/src/Output/ProcOutputPager.php', - 'Psy\\Output\\ShellOutput' => $vendorDir . '/psy/psysh/src/Output/ShellOutput.php', - 'Psy\\ParserFactory' => $vendorDir . '/psy/psysh/src/ParserFactory.php', - 'Psy\\Readline\\GNUReadline' => $vendorDir . '/psy/psysh/src/Readline/GNUReadline.php', - 'Psy\\Readline\\HoaConsole' => $vendorDir . '/psy/psysh/src/Readline/HoaConsole.php', - 'Psy\\Readline\\Libedit' => $vendorDir . '/psy/psysh/src/Readline/Libedit.php', - 'Psy\\Readline\\Readline' => $vendorDir . '/psy/psysh/src/Readline/Readline.php', - 'Psy\\Readline\\Transient' => $vendorDir . '/psy/psysh/src/Readline/Transient.php', - 'Psy\\Reflection\\ReflectionClassConstant' => $vendorDir . '/psy/psysh/src/Reflection/ReflectionClassConstant.php', - 'Psy\\Reflection\\ReflectionConstant' => $vendorDir . '/psy/psysh/src/Reflection/ReflectionConstant.php', - 'Psy\\Reflection\\ReflectionConstant_' => $vendorDir . '/psy/psysh/src/Reflection/ReflectionConstant_.php', - 'Psy\\Reflection\\ReflectionLanguageConstruct' => $vendorDir . '/psy/psysh/src/Reflection/ReflectionLanguageConstruct.php', - 'Psy\\Reflection\\ReflectionLanguageConstructParameter' => $vendorDir . '/psy/psysh/src/Reflection/ReflectionLanguageConstructParameter.php', - 'Psy\\Shell' => $vendorDir . '/psy/psysh/src/Shell.php', - 'Psy\\Sudo' => $vendorDir . '/psy/psysh/src/Sudo.php', - 'Psy\\Sudo\\SudoVisitor' => $vendorDir . '/psy/psysh/src/Sudo/SudoVisitor.php', - 'Psy\\TabCompletion\\AutoCompleter' => $vendorDir . '/psy/psysh/src/TabCompletion/AutoCompleter.php', - 'Psy\\TabCompletion\\Matcher\\AbstractContextAwareMatcher' => $vendorDir . '/psy/psysh/src/TabCompletion/Matcher/AbstractContextAwareMatcher.php', - 'Psy\\TabCompletion\\Matcher\\AbstractDefaultParametersMatcher' => $vendorDir . '/psy/psysh/src/TabCompletion/Matcher/AbstractDefaultParametersMatcher.php', - 'Psy\\TabCompletion\\Matcher\\AbstractMatcher' => $vendorDir . '/psy/psysh/src/TabCompletion/Matcher/AbstractMatcher.php', - 'Psy\\TabCompletion\\Matcher\\ClassAttributesMatcher' => $vendorDir . '/psy/psysh/src/TabCompletion/Matcher/ClassAttributesMatcher.php', - 'Psy\\TabCompletion\\Matcher\\ClassMethodDefaultParametersMatcher' => $vendorDir . '/psy/psysh/src/TabCompletion/Matcher/ClassMethodDefaultParametersMatcher.php', - 'Psy\\TabCompletion\\Matcher\\ClassMethodsMatcher' => $vendorDir . '/psy/psysh/src/TabCompletion/Matcher/ClassMethodsMatcher.php', - 'Psy\\TabCompletion\\Matcher\\ClassNamesMatcher' => $vendorDir . '/psy/psysh/src/TabCompletion/Matcher/ClassNamesMatcher.php', - 'Psy\\TabCompletion\\Matcher\\CommandsMatcher' => $vendorDir . '/psy/psysh/src/TabCompletion/Matcher/CommandsMatcher.php', - 'Psy\\TabCompletion\\Matcher\\ConstantsMatcher' => $vendorDir . '/psy/psysh/src/TabCompletion/Matcher/ConstantsMatcher.php', - 'Psy\\TabCompletion\\Matcher\\FunctionDefaultParametersMatcher' => $vendorDir . '/psy/psysh/src/TabCompletion/Matcher/FunctionDefaultParametersMatcher.php', - 'Psy\\TabCompletion\\Matcher\\FunctionsMatcher' => $vendorDir . '/psy/psysh/src/TabCompletion/Matcher/FunctionsMatcher.php', - 'Psy\\TabCompletion\\Matcher\\KeywordsMatcher' => $vendorDir . '/psy/psysh/src/TabCompletion/Matcher/KeywordsMatcher.php', - 'Psy\\TabCompletion\\Matcher\\MongoClientMatcher' => $vendorDir . '/psy/psysh/src/TabCompletion/Matcher/MongoClientMatcher.php', - 'Psy\\TabCompletion\\Matcher\\MongoDatabaseMatcher' => $vendorDir . '/psy/psysh/src/TabCompletion/Matcher/MongoDatabaseMatcher.php', - 'Psy\\TabCompletion\\Matcher\\ObjectAttributesMatcher' => $vendorDir . '/psy/psysh/src/TabCompletion/Matcher/ObjectAttributesMatcher.php', - 'Psy\\TabCompletion\\Matcher\\ObjectMethodDefaultParametersMatcher' => $vendorDir . '/psy/psysh/src/TabCompletion/Matcher/ObjectMethodDefaultParametersMatcher.php', - 'Psy\\TabCompletion\\Matcher\\ObjectMethodsMatcher' => $vendorDir . '/psy/psysh/src/TabCompletion/Matcher/ObjectMethodsMatcher.php', - 'Psy\\TabCompletion\\Matcher\\VariablesMatcher' => $vendorDir . '/psy/psysh/src/TabCompletion/Matcher/VariablesMatcher.php', - 'Psy\\Util\\Docblock' => $vendorDir . '/psy/psysh/src/Util/Docblock.php', - 'Psy\\Util\\Json' => $vendorDir . '/psy/psysh/src/Util/Json.php', - 'Psy\\Util\\Mirror' => $vendorDir . '/psy/psysh/src/Util/Mirror.php', - 'Psy\\Util\\Str' => $vendorDir . '/psy/psysh/src/Util/Str.php', - 'Psy\\VarDumper\\Cloner' => $vendorDir . '/psy/psysh/src/VarDumper/Cloner.php', - 'Psy\\VarDumper\\Dumper' => $vendorDir . '/psy/psysh/src/VarDumper/Dumper.php', - 'Psy\\VarDumper\\Presenter' => $vendorDir . '/psy/psysh/src/VarDumper/Presenter.php', - 'Psy\\VarDumper\\PresenterAware' => $vendorDir . '/psy/psysh/src/VarDumper/PresenterAware.php', - 'Psy\\VersionUpdater\\Checker' => $vendorDir . '/psy/psysh/src/VersionUpdater/Checker.php', - 'Psy\\VersionUpdater\\GitHubChecker' => $vendorDir . '/psy/psysh/src/VersionUpdater/GitHubChecker.php', - 'Psy\\VersionUpdater\\IntervalChecker' => $vendorDir . '/psy/psysh/src/VersionUpdater/IntervalChecker.php', - 'Psy\\VersionUpdater\\NoopChecker' => $vendorDir . '/psy/psysh/src/VersionUpdater/NoopChecker.php', - 'Ramsey\\Uuid\\BinaryUtils' => $vendorDir . '/ramsey/uuid/src/BinaryUtils.php', - 'Ramsey\\Uuid\\Builder\\DefaultUuidBuilder' => $vendorDir . '/ramsey/uuid/src/Builder/DefaultUuidBuilder.php', - 'Ramsey\\Uuid\\Builder\\DegradedUuidBuilder' => $vendorDir . '/ramsey/uuid/src/Builder/DegradedUuidBuilder.php', - 'Ramsey\\Uuid\\Builder\\UuidBuilderInterface' => $vendorDir . '/ramsey/uuid/src/Builder/UuidBuilderInterface.php', - 'Ramsey\\Uuid\\Codec\\CodecInterface' => $vendorDir . '/ramsey/uuid/src/Codec/CodecInterface.php', - 'Ramsey\\Uuid\\Codec\\GuidStringCodec' => $vendorDir . '/ramsey/uuid/src/Codec/GuidStringCodec.php', - 'Ramsey\\Uuid\\Codec\\OrderedTimeCodec' => $vendorDir . '/ramsey/uuid/src/Codec/OrderedTimeCodec.php', - 'Ramsey\\Uuid\\Codec\\StringCodec' => $vendorDir . '/ramsey/uuid/src/Codec/StringCodec.php', - 'Ramsey\\Uuid\\Codec\\TimestampFirstCombCodec' => $vendorDir . '/ramsey/uuid/src/Codec/TimestampFirstCombCodec.php', - 'Ramsey\\Uuid\\Codec\\TimestampLastCombCodec' => $vendorDir . '/ramsey/uuid/src/Codec/TimestampLastCombCodec.php', - 'Ramsey\\Uuid\\Converter\\NumberConverterInterface' => $vendorDir . '/ramsey/uuid/src/Converter/NumberConverterInterface.php', - 'Ramsey\\Uuid\\Converter\\Number\\BigNumberConverter' => $vendorDir . '/ramsey/uuid/src/Converter/Number/BigNumberConverter.php', - 'Ramsey\\Uuid\\Converter\\Number\\DegradedNumberConverter' => $vendorDir . '/ramsey/uuid/src/Converter/Number/DegradedNumberConverter.php', - 'Ramsey\\Uuid\\Converter\\TimeConverterInterface' => $vendorDir . '/ramsey/uuid/src/Converter/TimeConverterInterface.php', - 'Ramsey\\Uuid\\Converter\\Time\\BigNumberTimeConverter' => $vendorDir . '/ramsey/uuid/src/Converter/Time/BigNumberTimeConverter.php', - 'Ramsey\\Uuid\\Converter\\Time\\DegradedTimeConverter' => $vendorDir . '/ramsey/uuid/src/Converter/Time/DegradedTimeConverter.php', - 'Ramsey\\Uuid\\Converter\\Time\\PhpTimeConverter' => $vendorDir . '/ramsey/uuid/src/Converter/Time/PhpTimeConverter.php', - 'Ramsey\\Uuid\\DegradedUuid' => $vendorDir . '/ramsey/uuid/src/DegradedUuid.php', - 'Ramsey\\Uuid\\Exception\\InvalidUuidStringException' => $vendorDir . '/ramsey/uuid/src/Exception/InvalidUuidStringException.php', - 'Ramsey\\Uuid\\Exception\\UnsatisfiedDependencyException' => $vendorDir . '/ramsey/uuid/src/Exception/UnsatisfiedDependencyException.php', - 'Ramsey\\Uuid\\Exception\\UnsupportedOperationException' => $vendorDir . '/ramsey/uuid/src/Exception/UnsupportedOperationException.php', - 'Ramsey\\Uuid\\FeatureSet' => $vendorDir . '/ramsey/uuid/src/FeatureSet.php', - 'Ramsey\\Uuid\\Generator\\CombGenerator' => $vendorDir . '/ramsey/uuid/src/Generator/CombGenerator.php', - 'Ramsey\\Uuid\\Generator\\DefaultTimeGenerator' => $vendorDir . '/ramsey/uuid/src/Generator/DefaultTimeGenerator.php', - 'Ramsey\\Uuid\\Generator\\MtRandGenerator' => $vendorDir . '/ramsey/uuid/src/Generator/MtRandGenerator.php', - 'Ramsey\\Uuid\\Generator\\OpenSslGenerator' => $vendorDir . '/ramsey/uuid/src/Generator/OpenSslGenerator.php', - 'Ramsey\\Uuid\\Generator\\PeclUuidRandomGenerator' => $vendorDir . '/ramsey/uuid/src/Generator/PeclUuidRandomGenerator.php', - 'Ramsey\\Uuid\\Generator\\PeclUuidTimeGenerator' => $vendorDir . '/ramsey/uuid/src/Generator/PeclUuidTimeGenerator.php', - 'Ramsey\\Uuid\\Generator\\RandomBytesGenerator' => $vendorDir . '/ramsey/uuid/src/Generator/RandomBytesGenerator.php', - 'Ramsey\\Uuid\\Generator\\RandomGeneratorFactory' => $vendorDir . '/ramsey/uuid/src/Generator/RandomGeneratorFactory.php', - 'Ramsey\\Uuid\\Generator\\RandomGeneratorInterface' => $vendorDir . '/ramsey/uuid/src/Generator/RandomGeneratorInterface.php', - 'Ramsey\\Uuid\\Generator\\RandomLibAdapter' => $vendorDir . '/ramsey/uuid/src/Generator/RandomLibAdapter.php', - 'Ramsey\\Uuid\\Generator\\SodiumRandomGenerator' => $vendorDir . '/ramsey/uuid/src/Generator/SodiumRandomGenerator.php', - 'Ramsey\\Uuid\\Generator\\TimeGeneratorFactory' => $vendorDir . '/ramsey/uuid/src/Generator/TimeGeneratorFactory.php', - 'Ramsey\\Uuid\\Generator\\TimeGeneratorInterface' => $vendorDir . '/ramsey/uuid/src/Generator/TimeGeneratorInterface.php', - 'Ramsey\\Uuid\\Provider\\NodeProviderInterface' => $vendorDir . '/ramsey/uuid/src/Provider/NodeProviderInterface.php', - 'Ramsey\\Uuid\\Provider\\Node\\FallbackNodeProvider' => $vendorDir . '/ramsey/uuid/src/Provider/Node/FallbackNodeProvider.php', - 'Ramsey\\Uuid\\Provider\\Node\\RandomNodeProvider' => $vendorDir . '/ramsey/uuid/src/Provider/Node/RandomNodeProvider.php', - 'Ramsey\\Uuid\\Provider\\Node\\SystemNodeProvider' => $vendorDir . '/ramsey/uuid/src/Provider/Node/SystemNodeProvider.php', - 'Ramsey\\Uuid\\Provider\\TimeProviderInterface' => $vendorDir . '/ramsey/uuid/src/Provider/TimeProviderInterface.php', - 'Ramsey\\Uuid\\Provider\\Time\\FixedTimeProvider' => $vendorDir . '/ramsey/uuid/src/Provider/Time/FixedTimeProvider.php', - 'Ramsey\\Uuid\\Provider\\Time\\SystemTimeProvider' => $vendorDir . '/ramsey/uuid/src/Provider/Time/SystemTimeProvider.php', - 'Ramsey\\Uuid\\Uuid' => $vendorDir . '/ramsey/uuid/src/Uuid.php', - 'Ramsey\\Uuid\\UuidFactory' => $vendorDir . '/ramsey/uuid/src/UuidFactory.php', - 'Ramsey\\Uuid\\UuidFactoryInterface' => $vendorDir . '/ramsey/uuid/src/UuidFactoryInterface.php', - 'Ramsey\\Uuid\\UuidInterface' => $vendorDir . '/ramsey/uuid/src/UuidInterface.php', - 'SebastianBergmann\\CodeCoverage\\CodeCoverage' => $vendorDir . '/phpunit/php-code-coverage/src/CodeCoverage.php', - 'SebastianBergmann\\CodeCoverage\\CoveredCodeNotExecutedException' => $vendorDir . '/phpunit/php-code-coverage/src/Exception/CoveredCodeNotExecutedException.php', - 'SebastianBergmann\\CodeCoverage\\Driver\\Driver' => $vendorDir . '/phpunit/php-code-coverage/src/Driver/Driver.php', - 'SebastianBergmann\\CodeCoverage\\Driver\\PHPDBG' => $vendorDir . '/phpunit/php-code-coverage/src/Driver/PHPDBG.php', - 'SebastianBergmann\\CodeCoverage\\Driver\\Xdebug' => $vendorDir . '/phpunit/php-code-coverage/src/Driver/Xdebug.php', - 'SebastianBergmann\\CodeCoverage\\Exception' => $vendorDir . '/phpunit/php-code-coverage/src/Exception/Exception.php', - 'SebastianBergmann\\CodeCoverage\\Filter' => $vendorDir . '/phpunit/php-code-coverage/src/Filter.php', - 'SebastianBergmann\\CodeCoverage\\InvalidArgumentException' => $vendorDir . '/phpunit/php-code-coverage/src/Exception/InvalidArgumentException.php', - 'SebastianBergmann\\CodeCoverage\\MissingCoversAnnotationException' => $vendorDir . '/phpunit/php-code-coverage/src/Exception/MissingCoversAnnotationException.php', - 'SebastianBergmann\\CodeCoverage\\Node\\AbstractNode' => $vendorDir . '/phpunit/php-code-coverage/src/Node/AbstractNode.php', - 'SebastianBergmann\\CodeCoverage\\Node\\Builder' => $vendorDir . '/phpunit/php-code-coverage/src/Node/Builder.php', - 'SebastianBergmann\\CodeCoverage\\Node\\Directory' => $vendorDir . '/phpunit/php-code-coverage/src/Node/Directory.php', - 'SebastianBergmann\\CodeCoverage\\Node\\File' => $vendorDir . '/phpunit/php-code-coverage/src/Node/File.php', - 'SebastianBergmann\\CodeCoverage\\Node\\Iterator' => $vendorDir . '/phpunit/php-code-coverage/src/Node/Iterator.php', - 'SebastianBergmann\\CodeCoverage\\Report\\Clover' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Clover.php', - 'SebastianBergmann\\CodeCoverage\\Report\\Crap4j' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Crap4j.php', - 'SebastianBergmann\\CodeCoverage\\Report\\Html\\Dashboard' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Html/Renderer/Dashboard.php', - 'SebastianBergmann\\CodeCoverage\\Report\\Html\\Directory' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Html/Renderer/Directory.php', - 'SebastianBergmann\\CodeCoverage\\Report\\Html\\Facade' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Html/Facade.php', - 'SebastianBergmann\\CodeCoverage\\Report\\Html\\File' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Html/Renderer/File.php', - 'SebastianBergmann\\CodeCoverage\\Report\\Html\\Renderer' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Html/Renderer.php', - 'SebastianBergmann\\CodeCoverage\\Report\\PHP' => $vendorDir . '/phpunit/php-code-coverage/src/Report/PHP.php', - 'SebastianBergmann\\CodeCoverage\\Report\\Text' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Text.php', - 'SebastianBergmann\\CodeCoverage\\Report\\Xml\\BuildInformation' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Xml/BuildInformation.php', - 'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Coverage' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Xml/Coverage.php', - 'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Directory' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Xml/Directory.php', - 'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Facade' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Xml/Facade.php', - 'SebastianBergmann\\CodeCoverage\\Report\\Xml\\File' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Xml/File.php', - 'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Method' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Xml/Method.php', - 'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Node' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Xml/Node.php', - 'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Project' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Xml/Project.php', - 'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Report' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Xml/Report.php', - 'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Source' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Xml/Source.php', - 'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Tests' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Xml/Tests.php', - 'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Totals' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Xml/Totals.php', - 'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Unit' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Xml/Unit.php', - 'SebastianBergmann\\CodeCoverage\\RuntimeException' => $vendorDir . '/phpunit/php-code-coverage/src/Exception/RuntimeException.php', - 'SebastianBergmann\\CodeCoverage\\UnintentionallyCoveredCodeException' => $vendorDir . '/phpunit/php-code-coverage/src/Exception/UnintentionallyCoveredCodeException.php', - 'SebastianBergmann\\CodeCoverage\\Util' => $vendorDir . '/phpunit/php-code-coverage/src/Util.php', - 'SebastianBergmann\\CodeCoverage\\Version' => $vendorDir . '/phpunit/php-code-coverage/src/Version.php', - 'SebastianBergmann\\CodeUnitReverseLookup\\Wizard' => $vendorDir . '/sebastian/code-unit-reverse-lookup/src/Wizard.php', - 'SebastianBergmann\\Comparator\\ArrayComparator' => $vendorDir . '/sebastian/comparator/src/ArrayComparator.php', - 'SebastianBergmann\\Comparator\\Comparator' => $vendorDir . '/sebastian/comparator/src/Comparator.php', - 'SebastianBergmann\\Comparator\\ComparisonFailure' => $vendorDir . '/sebastian/comparator/src/ComparisonFailure.php', - 'SebastianBergmann\\Comparator\\DOMNodeComparator' => $vendorDir . '/sebastian/comparator/src/DOMNodeComparator.php', - 'SebastianBergmann\\Comparator\\DateTimeComparator' => $vendorDir . '/sebastian/comparator/src/DateTimeComparator.php', - 'SebastianBergmann\\Comparator\\DoubleComparator' => $vendorDir . '/sebastian/comparator/src/DoubleComparator.php', - 'SebastianBergmann\\Comparator\\ExceptionComparator' => $vendorDir . '/sebastian/comparator/src/ExceptionComparator.php', - 'SebastianBergmann\\Comparator\\Factory' => $vendorDir . '/sebastian/comparator/src/Factory.php', - 'SebastianBergmann\\Comparator\\MockObjectComparator' => $vendorDir . '/sebastian/comparator/src/MockObjectComparator.php', - 'SebastianBergmann\\Comparator\\NumericComparator' => $vendorDir . '/sebastian/comparator/src/NumericComparator.php', - 'SebastianBergmann\\Comparator\\ObjectComparator' => $vendorDir . '/sebastian/comparator/src/ObjectComparator.php', - 'SebastianBergmann\\Comparator\\ResourceComparator' => $vendorDir . '/sebastian/comparator/src/ResourceComparator.php', - 'SebastianBergmann\\Comparator\\ScalarComparator' => $vendorDir . '/sebastian/comparator/src/ScalarComparator.php', - 'SebastianBergmann\\Comparator\\SplObjectStorageComparator' => $vendorDir . '/sebastian/comparator/src/SplObjectStorageComparator.php', - 'SebastianBergmann\\Comparator\\TypeComparator' => $vendorDir . '/sebastian/comparator/src/TypeComparator.php', - 'SebastianBergmann\\Diff\\Chunk' => $vendorDir . '/sebastian/diff/src/Chunk.php', - 'SebastianBergmann\\Diff\\ConfigurationException' => $vendorDir . '/sebastian/diff/src/Exception/ConfigurationException.php', - 'SebastianBergmann\\Diff\\Diff' => $vendorDir . '/sebastian/diff/src/Diff.php', - 'SebastianBergmann\\Diff\\Differ' => $vendorDir . '/sebastian/diff/src/Differ.php', - 'SebastianBergmann\\Diff\\Exception' => $vendorDir . '/sebastian/diff/src/Exception/Exception.php', - 'SebastianBergmann\\Diff\\InvalidArgumentException' => $vendorDir . '/sebastian/diff/src/Exception/InvalidArgumentException.php', - 'SebastianBergmann\\Diff\\Line' => $vendorDir . '/sebastian/diff/src/Line.php', - 'SebastianBergmann\\Diff\\LongestCommonSubsequenceCalculator' => $vendorDir . '/sebastian/diff/src/LongestCommonSubsequenceCalculator.php', - 'SebastianBergmann\\Diff\\MemoryEfficientLongestCommonSubsequenceCalculator' => $vendorDir . '/sebastian/diff/src/MemoryEfficientLongestCommonSubsequenceCalculator.php', - 'SebastianBergmann\\Diff\\Output\\AbstractChunkOutputBuilder' => $vendorDir . '/sebastian/diff/src/Output/AbstractChunkOutputBuilder.php', - 'SebastianBergmann\\Diff\\Output\\DiffOnlyOutputBuilder' => $vendorDir . '/sebastian/diff/src/Output/DiffOnlyOutputBuilder.php', - 'SebastianBergmann\\Diff\\Output\\DiffOutputBuilderInterface' => $vendorDir . '/sebastian/diff/src/Output/DiffOutputBuilderInterface.php', - 'SebastianBergmann\\Diff\\Output\\StrictUnifiedDiffOutputBuilder' => $vendorDir . '/sebastian/diff/src/Output/StrictUnifiedDiffOutputBuilder.php', - 'SebastianBergmann\\Diff\\Output\\UnifiedDiffOutputBuilder' => $vendorDir . '/sebastian/diff/src/Output/UnifiedDiffOutputBuilder.php', - 'SebastianBergmann\\Diff\\Parser' => $vendorDir . '/sebastian/diff/src/Parser.php', - 'SebastianBergmann\\Diff\\TimeEfficientLongestCommonSubsequenceCalculator' => $vendorDir . '/sebastian/diff/src/TimeEfficientLongestCommonSubsequenceCalculator.php', - 'SebastianBergmann\\Environment\\Console' => $vendorDir . '/sebastian/environment/src/Console.php', - 'SebastianBergmann\\Environment\\OperatingSystem' => $vendorDir . '/sebastian/environment/src/OperatingSystem.php', - 'SebastianBergmann\\Environment\\Runtime' => $vendorDir . '/sebastian/environment/src/Runtime.php', - 'SebastianBergmann\\Exporter\\Exporter' => $vendorDir . '/sebastian/exporter/src/Exporter.php', - 'SebastianBergmann\\FileIterator\\Facade' => $vendorDir . '/phpunit/php-file-iterator/src/Facade.php', - 'SebastianBergmann\\FileIterator\\Factory' => $vendorDir . '/phpunit/php-file-iterator/src/Factory.php', - 'SebastianBergmann\\FileIterator\\Iterator' => $vendorDir . '/phpunit/php-file-iterator/src/Iterator.php', - 'SebastianBergmann\\GlobalState\\Blacklist' => $vendorDir . '/sebastian/global-state/src/Blacklist.php', - 'SebastianBergmann\\GlobalState\\CodeExporter' => $vendorDir . '/sebastian/global-state/src/CodeExporter.php', - 'SebastianBergmann\\GlobalState\\Exception' => $vendorDir . '/sebastian/global-state/src/exceptions/Exception.php', - 'SebastianBergmann\\GlobalState\\Restorer' => $vendorDir . '/sebastian/global-state/src/Restorer.php', - 'SebastianBergmann\\GlobalState\\RuntimeException' => $vendorDir . '/sebastian/global-state/src/exceptions/RuntimeException.php', - 'SebastianBergmann\\GlobalState\\Snapshot' => $vendorDir . '/sebastian/global-state/src/Snapshot.php', - 'SebastianBergmann\\ObjectEnumerator\\Enumerator' => $vendorDir . '/sebastian/object-enumerator/src/Enumerator.php', - 'SebastianBergmann\\ObjectEnumerator\\Exception' => $vendorDir . '/sebastian/object-enumerator/src/Exception.php', - 'SebastianBergmann\\ObjectEnumerator\\InvalidArgumentException' => $vendorDir . '/sebastian/object-enumerator/src/InvalidArgumentException.php', - 'SebastianBergmann\\ObjectReflector\\Exception' => $vendorDir . '/sebastian/object-reflector/src/Exception.php', - 'SebastianBergmann\\ObjectReflector\\InvalidArgumentException' => $vendorDir . '/sebastian/object-reflector/src/InvalidArgumentException.php', - 'SebastianBergmann\\ObjectReflector\\ObjectReflector' => $vendorDir . '/sebastian/object-reflector/src/ObjectReflector.php', - 'SebastianBergmann\\RecursionContext\\Context' => $vendorDir . '/sebastian/recursion-context/src/Context.php', - 'SebastianBergmann\\RecursionContext\\Exception' => $vendorDir . '/sebastian/recursion-context/src/Exception.php', - 'SebastianBergmann\\RecursionContext\\InvalidArgumentException' => $vendorDir . '/sebastian/recursion-context/src/InvalidArgumentException.php', - 'SebastianBergmann\\ResourceOperations\\ResourceOperations' => $vendorDir . '/sebastian/resource-operations/src/ResourceOperations.php', - 'SebastianBergmann\\Timer\\Exception' => $vendorDir . '/phpunit/php-timer/src/Exception.php', - 'SebastianBergmann\\Timer\\RuntimeException' => $vendorDir . '/phpunit/php-timer/src/RuntimeException.php', - 'SebastianBergmann\\Timer\\Timer' => $vendorDir . '/phpunit/php-timer/src/Timer.php', - 'SebastianBergmann\\Version' => $vendorDir . '/sebastian/version/src/Version.php', - 'ServiceSeeder' => $baseDir . '/database/seeds/ServiceSeeder.php', - 'SimpleSoftwareIO\\QrCode\\BaconQrCodeGenerator' => $vendorDir . '/simplesoftwareio/simple-qrcode/src/SimpleSoftwareIO/QrCode/BaconQrCodeGenerator.php', - 'SimpleSoftwareIO\\QrCode\\DataTypes\\BTC' => $vendorDir . '/simplesoftwareio/simple-qrcode/src/SimpleSoftwareIO/QrCode/DataTypes/BTC.php', - 'SimpleSoftwareIO\\QrCode\\DataTypes\\DataTypeInterface' => $vendorDir . '/simplesoftwareio/simple-qrcode/src/SimpleSoftwareIO/QrCode/DataTypes/DataTypeInterface.php', - 'SimpleSoftwareIO\\QrCode\\DataTypes\\Email' => $vendorDir . '/simplesoftwareio/simple-qrcode/src/SimpleSoftwareIO/QrCode/DataTypes/Email.php', - 'SimpleSoftwareIO\\QrCode\\DataTypes\\Geo' => $vendorDir . '/simplesoftwareio/simple-qrcode/src/SimpleSoftwareIO/QrCode/DataTypes/Geo.php', - 'SimpleSoftwareIO\\QrCode\\DataTypes\\PhoneNumber' => $vendorDir . '/simplesoftwareio/simple-qrcode/src/SimpleSoftwareIO/QrCode/DataTypes/PhoneNumber.php', - 'SimpleSoftwareIO\\QrCode\\DataTypes\\SMS' => $vendorDir . '/simplesoftwareio/simple-qrcode/src/SimpleSoftwareIO/QrCode/DataTypes/SMS.php', - 'SimpleSoftwareIO\\QrCode\\DataTypes\\WiFi' => $vendorDir . '/simplesoftwareio/simple-qrcode/src/SimpleSoftwareIO/QrCode/DataTypes/WiFi.php', - 'SimpleSoftwareIO\\QrCode\\Facades\\QrCode' => $vendorDir . '/simplesoftwareio/simple-qrcode/src/SimpleSoftwareIO/QrCode/Facades/QrCode.php', - 'SimpleSoftwareIO\\QrCode\\Image' => $vendorDir . '/simplesoftwareio/simple-qrcode/src/SimpleSoftwareIO/QrCode/Image.php', - 'SimpleSoftwareIO\\QrCode\\ImageInterface' => $vendorDir . '/simplesoftwareio/simple-qrcode/src/SimpleSoftwareIO/QrCode/ImageInterface.php', - 'SimpleSoftwareIO\\QrCode\\ImageMerge' => $vendorDir . '/simplesoftwareio/simple-qrcode/src/SimpleSoftwareIO/QrCode/ImageMerge.php', - 'SimpleSoftwareIO\\QrCode\\ImageMergeInterface' => $vendorDir . '/simplesoftwareio/simple-qrcode/src/SimpleSoftwareIO/QrCode/ImageMergeInterface.php', - 'SimpleSoftwareIO\\QrCode\\QrCodeInterface' => $vendorDir . '/simplesoftwareio/simple-qrcode/src/SimpleSoftwareIO/QrCode/QrCodeInterface.php', - 'SimpleSoftwareIO\\QrCode\\QrCodeServiceProvider' => $vendorDir . '/simplesoftwareio/simple-qrcode/src/SimpleSoftwareIO/QrCode/QrCodeServiceProvider.php', - 'Spatie\\Permission\\Commands\\CreatePermission' => $vendorDir . '/spatie/laravel-permission/src/Commands/CreatePermission.php', - 'Spatie\\Permission\\Commands\\CreateRole' => $vendorDir . '/spatie/laravel-permission/src/Commands/CreateRole.php', - 'Spatie\\Permission\\Contracts\\Permission' => $vendorDir . '/spatie/laravel-permission/src/Contracts/Permission.php', - 'Spatie\\Permission\\Contracts\\Role' => $vendorDir . '/spatie/laravel-permission/src/Contracts/Role.php', - 'Spatie\\Permission\\Exceptions\\GuardDoesNotMatch' => $vendorDir . '/spatie/laravel-permission/src/Exceptions/GuardDoesNotMatch.php', - 'Spatie\\Permission\\Exceptions\\PermissionAlreadyExists' => $vendorDir . '/spatie/laravel-permission/src/Exceptions/PermissionAlreadyExists.php', - 'Spatie\\Permission\\Exceptions\\PermissionDoesNotExist' => $vendorDir . '/spatie/laravel-permission/src/Exceptions/PermissionDoesNotExist.php', - 'Spatie\\Permission\\Exceptions\\RoleAlreadyExists' => $vendorDir . '/spatie/laravel-permission/src/Exceptions/RoleAlreadyExists.php', - 'Spatie\\Permission\\Exceptions\\RoleDoesNotExist' => $vendorDir . '/spatie/laravel-permission/src/Exceptions/RoleDoesNotExist.php', - 'Spatie\\Permission\\Exceptions\\UnauthorizedException' => $vendorDir . '/spatie/laravel-permission/src/Exceptions/UnauthorizedException.php', - 'Spatie\\Permission\\Guard' => $vendorDir . '/spatie/laravel-permission/src/Guard.php', - 'Spatie\\Permission\\Middlewares\\PermissionMiddleware' => $vendorDir . '/spatie/laravel-permission/src/Middlewares/PermissionMiddleware.php', - 'Spatie\\Permission\\Middlewares\\RoleMiddleware' => $vendorDir . '/spatie/laravel-permission/src/Middlewares/RoleMiddleware.php', - 'Spatie\\Permission\\Models\\Permission' => $vendorDir . '/spatie/laravel-permission/src/Models/Permission.php', - 'Spatie\\Permission\\Models\\Role' => $vendorDir . '/spatie/laravel-permission/src/Models/Role.php', - 'Spatie\\Permission\\PermissionRegistrar' => $vendorDir . '/spatie/laravel-permission/src/PermissionRegistrar.php', - 'Spatie\\Permission\\PermissionServiceProvider' => $vendorDir . '/spatie/laravel-permission/src/PermissionServiceProvider.php', - 'Spatie\\Permission\\Traits\\HasPermissions' => $vendorDir . '/spatie/laravel-permission/src/Traits/HasPermissions.php', - 'Spatie\\Permission\\Traits\\HasRoles' => $vendorDir . '/spatie/laravel-permission/src/Traits/HasRoles.php', - 'Spatie\\Permission\\Traits\\RefreshesPermissionCache' => $vendorDir . '/spatie/laravel-permission/src/Traits/RefreshesPermissionCache.php', - 'Symfony\\Component\\Console\\Application' => $vendorDir . '/symfony/console/Application.php', - 'Symfony\\Component\\Console\\CommandLoader\\CommandLoaderInterface' => $vendorDir . '/symfony/console/CommandLoader/CommandLoaderInterface.php', - 'Symfony\\Component\\Console\\CommandLoader\\ContainerCommandLoader' => $vendorDir . '/symfony/console/CommandLoader/ContainerCommandLoader.php', - 'Symfony\\Component\\Console\\CommandLoader\\FactoryCommandLoader' => $vendorDir . '/symfony/console/CommandLoader/FactoryCommandLoader.php', - 'Symfony\\Component\\Console\\Command\\Command' => $vendorDir . '/symfony/console/Command/Command.php', - 'Symfony\\Component\\Console\\Command\\HelpCommand' => $vendorDir . '/symfony/console/Command/HelpCommand.php', - 'Symfony\\Component\\Console\\Command\\ListCommand' => $vendorDir . '/symfony/console/Command/ListCommand.php', - 'Symfony\\Component\\Console\\Command\\LockableTrait' => $vendorDir . '/symfony/console/Command/LockableTrait.php', - 'Symfony\\Component\\Console\\ConsoleEvents' => $vendorDir . '/symfony/console/ConsoleEvents.php', - 'Symfony\\Component\\Console\\DependencyInjection\\AddConsoleCommandPass' => $vendorDir . '/symfony/console/DependencyInjection/AddConsoleCommandPass.php', - 'Symfony\\Component\\Console\\Descriptor\\ApplicationDescription' => $vendorDir . '/symfony/console/Descriptor/ApplicationDescription.php', - 'Symfony\\Component\\Console\\Descriptor\\Descriptor' => $vendorDir . '/symfony/console/Descriptor/Descriptor.php', - 'Symfony\\Component\\Console\\Descriptor\\DescriptorInterface' => $vendorDir . '/symfony/console/Descriptor/DescriptorInterface.php', - 'Symfony\\Component\\Console\\Descriptor\\JsonDescriptor' => $vendorDir . '/symfony/console/Descriptor/JsonDescriptor.php', - 'Symfony\\Component\\Console\\Descriptor\\MarkdownDescriptor' => $vendorDir . '/symfony/console/Descriptor/MarkdownDescriptor.php', - 'Symfony\\Component\\Console\\Descriptor\\TextDescriptor' => $vendorDir . '/symfony/console/Descriptor/TextDescriptor.php', - 'Symfony\\Component\\Console\\Descriptor\\XmlDescriptor' => $vendorDir . '/symfony/console/Descriptor/XmlDescriptor.php', - 'Symfony\\Component\\Console\\EventListener\\ErrorListener' => $vendorDir . '/symfony/console/EventListener/ErrorListener.php', - 'Symfony\\Component\\Console\\Event\\ConsoleCommandEvent' => $vendorDir . '/symfony/console/Event/ConsoleCommandEvent.php', - 'Symfony\\Component\\Console\\Event\\ConsoleErrorEvent' => $vendorDir . '/symfony/console/Event/ConsoleErrorEvent.php', - 'Symfony\\Component\\Console\\Event\\ConsoleEvent' => $vendorDir . '/symfony/console/Event/ConsoleEvent.php', - 'Symfony\\Component\\Console\\Event\\ConsoleTerminateEvent' => $vendorDir . '/symfony/console/Event/ConsoleTerminateEvent.php', - 'Symfony\\Component\\Console\\Exception\\CommandNotFoundException' => $vendorDir . '/symfony/console/Exception/CommandNotFoundException.php', - 'Symfony\\Component\\Console\\Exception\\ExceptionInterface' => $vendorDir . '/symfony/console/Exception/ExceptionInterface.php', - 'Symfony\\Component\\Console\\Exception\\InvalidArgumentException' => $vendorDir . '/symfony/console/Exception/InvalidArgumentException.php', - 'Symfony\\Component\\Console\\Exception\\InvalidOptionException' => $vendorDir . '/symfony/console/Exception/InvalidOptionException.php', - 'Symfony\\Component\\Console\\Exception\\LogicException' => $vendorDir . '/symfony/console/Exception/LogicException.php', - 'Symfony\\Component\\Console\\Exception\\NamespaceNotFoundException' => $vendorDir . '/symfony/console/Exception/NamespaceNotFoundException.php', - 'Symfony\\Component\\Console\\Exception\\RuntimeException' => $vendorDir . '/symfony/console/Exception/RuntimeException.php', - 'Symfony\\Component\\Console\\Formatter\\OutputFormatter' => $vendorDir . '/symfony/console/Formatter/OutputFormatter.php', - 'Symfony\\Component\\Console\\Formatter\\OutputFormatterInterface' => $vendorDir . '/symfony/console/Formatter/OutputFormatterInterface.php', - 'Symfony\\Component\\Console\\Formatter\\OutputFormatterStyle' => $vendorDir . '/symfony/console/Formatter/OutputFormatterStyle.php', - 'Symfony\\Component\\Console\\Formatter\\OutputFormatterStyleInterface' => $vendorDir . '/symfony/console/Formatter/OutputFormatterStyleInterface.php', - 'Symfony\\Component\\Console\\Formatter\\OutputFormatterStyleStack' => $vendorDir . '/symfony/console/Formatter/OutputFormatterStyleStack.php', - 'Symfony\\Component\\Console\\Helper\\DebugFormatterHelper' => $vendorDir . '/symfony/console/Helper/DebugFormatterHelper.php', - 'Symfony\\Component\\Console\\Helper\\DescriptorHelper' => $vendorDir . '/symfony/console/Helper/DescriptorHelper.php', - 'Symfony\\Component\\Console\\Helper\\FormatterHelper' => $vendorDir . '/symfony/console/Helper/FormatterHelper.php', - 'Symfony\\Component\\Console\\Helper\\Helper' => $vendorDir . '/symfony/console/Helper/Helper.php', - 'Symfony\\Component\\Console\\Helper\\HelperInterface' => $vendorDir . '/symfony/console/Helper/HelperInterface.php', - 'Symfony\\Component\\Console\\Helper\\HelperSet' => $vendorDir . '/symfony/console/Helper/HelperSet.php', - 'Symfony\\Component\\Console\\Helper\\InputAwareHelper' => $vendorDir . '/symfony/console/Helper/InputAwareHelper.php', - 'Symfony\\Component\\Console\\Helper\\ProcessHelper' => $vendorDir . '/symfony/console/Helper/ProcessHelper.php', - 'Symfony\\Component\\Console\\Helper\\ProgressBar' => $vendorDir . '/symfony/console/Helper/ProgressBar.php', - 'Symfony\\Component\\Console\\Helper\\ProgressIndicator' => $vendorDir . '/symfony/console/Helper/ProgressIndicator.php', - 'Symfony\\Component\\Console\\Helper\\QuestionHelper' => $vendorDir . '/symfony/console/Helper/QuestionHelper.php', - 'Symfony\\Component\\Console\\Helper\\SymfonyQuestionHelper' => $vendorDir . '/symfony/console/Helper/SymfonyQuestionHelper.php', - 'Symfony\\Component\\Console\\Helper\\Table' => $vendorDir . '/symfony/console/Helper/Table.php', - 'Symfony\\Component\\Console\\Helper\\TableCell' => $vendorDir . '/symfony/console/Helper/TableCell.php', - 'Symfony\\Component\\Console\\Helper\\TableRows' => $vendorDir . '/symfony/console/Helper/TableRows.php', - 'Symfony\\Component\\Console\\Helper\\TableSeparator' => $vendorDir . '/symfony/console/Helper/TableSeparator.php', - 'Symfony\\Component\\Console\\Helper\\TableStyle' => $vendorDir . '/symfony/console/Helper/TableStyle.php', - 'Symfony\\Component\\Console\\Input\\ArgvInput' => $vendorDir . '/symfony/console/Input/ArgvInput.php', - 'Symfony\\Component\\Console\\Input\\ArrayInput' => $vendorDir . '/symfony/console/Input/ArrayInput.php', - 'Symfony\\Component\\Console\\Input\\Input' => $vendorDir . '/symfony/console/Input/Input.php', - 'Symfony\\Component\\Console\\Input\\InputArgument' => $vendorDir . '/symfony/console/Input/InputArgument.php', - 'Symfony\\Component\\Console\\Input\\InputAwareInterface' => $vendorDir . '/symfony/console/Input/InputAwareInterface.php', - 'Symfony\\Component\\Console\\Input\\InputDefinition' => $vendorDir . '/symfony/console/Input/InputDefinition.php', - 'Symfony\\Component\\Console\\Input\\InputInterface' => $vendorDir . '/symfony/console/Input/InputInterface.php', - 'Symfony\\Component\\Console\\Input\\InputOption' => $vendorDir . '/symfony/console/Input/InputOption.php', - 'Symfony\\Component\\Console\\Input\\StreamableInputInterface' => $vendorDir . '/symfony/console/Input/StreamableInputInterface.php', - 'Symfony\\Component\\Console\\Input\\StringInput' => $vendorDir . '/symfony/console/Input/StringInput.php', - 'Symfony\\Component\\Console\\Logger\\ConsoleLogger' => $vendorDir . '/symfony/console/Logger/ConsoleLogger.php', - 'Symfony\\Component\\Console\\Output\\BufferedOutput' => $vendorDir . '/symfony/console/Output/BufferedOutput.php', - 'Symfony\\Component\\Console\\Output\\ConsoleOutput' => $vendorDir . '/symfony/console/Output/ConsoleOutput.php', - 'Symfony\\Component\\Console\\Output\\ConsoleOutputInterface' => $vendorDir . '/symfony/console/Output/ConsoleOutputInterface.php', - 'Symfony\\Component\\Console\\Output\\ConsoleSectionOutput' => $vendorDir . '/symfony/console/Output/ConsoleSectionOutput.php', - 'Symfony\\Component\\Console\\Output\\NullOutput' => $vendorDir . '/symfony/console/Output/NullOutput.php', - 'Symfony\\Component\\Console\\Output\\Output' => $vendorDir . '/symfony/console/Output/Output.php', - 'Symfony\\Component\\Console\\Output\\OutputInterface' => $vendorDir . '/symfony/console/Output/OutputInterface.php', - 'Symfony\\Component\\Console\\Output\\StreamOutput' => $vendorDir . '/symfony/console/Output/StreamOutput.php', - 'Symfony\\Component\\Console\\Question\\ChoiceQuestion' => $vendorDir . '/symfony/console/Question/ChoiceQuestion.php', - 'Symfony\\Component\\Console\\Question\\ConfirmationQuestion' => $vendorDir . '/symfony/console/Question/ConfirmationQuestion.php', - 'Symfony\\Component\\Console\\Question\\Question' => $vendorDir . '/symfony/console/Question/Question.php', - 'Symfony\\Component\\Console\\Style\\OutputStyle' => $vendorDir . '/symfony/console/Style/OutputStyle.php', - 'Symfony\\Component\\Console\\Style\\StyleInterface' => $vendorDir . '/symfony/console/Style/StyleInterface.php', - 'Symfony\\Component\\Console\\Style\\SymfonyStyle' => $vendorDir . '/symfony/console/Style/SymfonyStyle.php', - 'Symfony\\Component\\Console\\Terminal' => $vendorDir . '/symfony/console/Terminal.php', - 'Symfony\\Component\\Console\\Tester\\ApplicationTester' => $vendorDir . '/symfony/console/Tester/ApplicationTester.php', - 'Symfony\\Component\\Console\\Tester\\CommandTester' => $vendorDir . '/symfony/console/Tester/CommandTester.php', - 'Symfony\\Component\\Console\\Tester\\TesterTrait' => $vendorDir . '/symfony/console/Tester/TesterTrait.php', - 'Symfony\\Component\\CssSelector\\CssSelectorConverter' => $vendorDir . '/symfony/css-selector/CssSelectorConverter.php', - 'Symfony\\Component\\CssSelector\\Exception\\ExceptionInterface' => $vendorDir . '/symfony/css-selector/Exception/ExceptionInterface.php', - 'Symfony\\Component\\CssSelector\\Exception\\ExpressionErrorException' => $vendorDir . '/symfony/css-selector/Exception/ExpressionErrorException.php', - 'Symfony\\Component\\CssSelector\\Exception\\InternalErrorException' => $vendorDir . '/symfony/css-selector/Exception/InternalErrorException.php', - 'Symfony\\Component\\CssSelector\\Exception\\ParseException' => $vendorDir . '/symfony/css-selector/Exception/ParseException.php', - 'Symfony\\Component\\CssSelector\\Exception\\SyntaxErrorException' => $vendorDir . '/symfony/css-selector/Exception/SyntaxErrorException.php', - 'Symfony\\Component\\CssSelector\\Node\\AbstractNode' => $vendorDir . '/symfony/css-selector/Node/AbstractNode.php', - 'Symfony\\Component\\CssSelector\\Node\\AttributeNode' => $vendorDir . '/symfony/css-selector/Node/AttributeNode.php', - 'Symfony\\Component\\CssSelector\\Node\\ClassNode' => $vendorDir . '/symfony/css-selector/Node/ClassNode.php', - 'Symfony\\Component\\CssSelector\\Node\\CombinedSelectorNode' => $vendorDir . '/symfony/css-selector/Node/CombinedSelectorNode.php', - 'Symfony\\Component\\CssSelector\\Node\\ElementNode' => $vendorDir . '/symfony/css-selector/Node/ElementNode.php', - 'Symfony\\Component\\CssSelector\\Node\\FunctionNode' => $vendorDir . '/symfony/css-selector/Node/FunctionNode.php', - 'Symfony\\Component\\CssSelector\\Node\\HashNode' => $vendorDir . '/symfony/css-selector/Node/HashNode.php', - 'Symfony\\Component\\CssSelector\\Node\\NegationNode' => $vendorDir . '/symfony/css-selector/Node/NegationNode.php', - 'Symfony\\Component\\CssSelector\\Node\\NodeInterface' => $vendorDir . '/symfony/css-selector/Node/NodeInterface.php', - 'Symfony\\Component\\CssSelector\\Node\\PseudoNode' => $vendorDir . '/symfony/css-selector/Node/PseudoNode.php', - 'Symfony\\Component\\CssSelector\\Node\\SelectorNode' => $vendorDir . '/symfony/css-selector/Node/SelectorNode.php', - 'Symfony\\Component\\CssSelector\\Node\\Specificity' => $vendorDir . '/symfony/css-selector/Node/Specificity.php', - 'Symfony\\Component\\CssSelector\\Parser\\Handler\\CommentHandler' => $vendorDir . '/symfony/css-selector/Parser/Handler/CommentHandler.php', - 'Symfony\\Component\\CssSelector\\Parser\\Handler\\HandlerInterface' => $vendorDir . '/symfony/css-selector/Parser/Handler/HandlerInterface.php', - 'Symfony\\Component\\CssSelector\\Parser\\Handler\\HashHandler' => $vendorDir . '/symfony/css-selector/Parser/Handler/HashHandler.php', - 'Symfony\\Component\\CssSelector\\Parser\\Handler\\IdentifierHandler' => $vendorDir . '/symfony/css-selector/Parser/Handler/IdentifierHandler.php', - 'Symfony\\Component\\CssSelector\\Parser\\Handler\\NumberHandler' => $vendorDir . '/symfony/css-selector/Parser/Handler/NumberHandler.php', - 'Symfony\\Component\\CssSelector\\Parser\\Handler\\StringHandler' => $vendorDir . '/symfony/css-selector/Parser/Handler/StringHandler.php', - 'Symfony\\Component\\CssSelector\\Parser\\Handler\\WhitespaceHandler' => $vendorDir . '/symfony/css-selector/Parser/Handler/WhitespaceHandler.php', - 'Symfony\\Component\\CssSelector\\Parser\\Parser' => $vendorDir . '/symfony/css-selector/Parser/Parser.php', - 'Symfony\\Component\\CssSelector\\Parser\\ParserInterface' => $vendorDir . '/symfony/css-selector/Parser/ParserInterface.php', - 'Symfony\\Component\\CssSelector\\Parser\\Reader' => $vendorDir . '/symfony/css-selector/Parser/Reader.php', - 'Symfony\\Component\\CssSelector\\Parser\\Shortcut\\ClassParser' => $vendorDir . '/symfony/css-selector/Parser/Shortcut/ClassParser.php', - 'Symfony\\Component\\CssSelector\\Parser\\Shortcut\\ElementParser' => $vendorDir . '/symfony/css-selector/Parser/Shortcut/ElementParser.php', - 'Symfony\\Component\\CssSelector\\Parser\\Shortcut\\EmptyStringParser' => $vendorDir . '/symfony/css-selector/Parser/Shortcut/EmptyStringParser.php', - 'Symfony\\Component\\CssSelector\\Parser\\Shortcut\\HashParser' => $vendorDir . '/symfony/css-selector/Parser/Shortcut/HashParser.php', - 'Symfony\\Component\\CssSelector\\Parser\\Token' => $vendorDir . '/symfony/css-selector/Parser/Token.php', - 'Symfony\\Component\\CssSelector\\Parser\\TokenStream' => $vendorDir . '/symfony/css-selector/Parser/TokenStream.php', - 'Symfony\\Component\\CssSelector\\Parser\\Tokenizer\\Tokenizer' => $vendorDir . '/symfony/css-selector/Parser/Tokenizer/Tokenizer.php', - 'Symfony\\Component\\CssSelector\\Parser\\Tokenizer\\TokenizerEscaping' => $vendorDir . '/symfony/css-selector/Parser/Tokenizer/TokenizerEscaping.php', - 'Symfony\\Component\\CssSelector\\Parser\\Tokenizer\\TokenizerPatterns' => $vendorDir . '/symfony/css-selector/Parser/Tokenizer/TokenizerPatterns.php', - 'Symfony\\Component\\CssSelector\\XPath\\Extension\\AbstractExtension' => $vendorDir . '/symfony/css-selector/XPath/Extension/AbstractExtension.php', - 'Symfony\\Component\\CssSelector\\XPath\\Extension\\AttributeMatchingExtension' => $vendorDir . '/symfony/css-selector/XPath/Extension/AttributeMatchingExtension.php', - 'Symfony\\Component\\CssSelector\\XPath\\Extension\\CombinationExtension' => $vendorDir . '/symfony/css-selector/XPath/Extension/CombinationExtension.php', - 'Symfony\\Component\\CssSelector\\XPath\\Extension\\ExtensionInterface' => $vendorDir . '/symfony/css-selector/XPath/Extension/ExtensionInterface.php', - 'Symfony\\Component\\CssSelector\\XPath\\Extension\\FunctionExtension' => $vendorDir . '/symfony/css-selector/XPath/Extension/FunctionExtension.php', - 'Symfony\\Component\\CssSelector\\XPath\\Extension\\HtmlExtension' => $vendorDir . '/symfony/css-selector/XPath/Extension/HtmlExtension.php', - 'Symfony\\Component\\CssSelector\\XPath\\Extension\\NodeExtension' => $vendorDir . '/symfony/css-selector/XPath/Extension/NodeExtension.php', - 'Symfony\\Component\\CssSelector\\XPath\\Extension\\PseudoClassExtension' => $vendorDir . '/symfony/css-selector/XPath/Extension/PseudoClassExtension.php', - 'Symfony\\Component\\CssSelector\\XPath\\Translator' => $vendorDir . '/symfony/css-selector/XPath/Translator.php', - 'Symfony\\Component\\CssSelector\\XPath\\TranslatorInterface' => $vendorDir . '/symfony/css-selector/XPath/TranslatorInterface.php', - 'Symfony\\Component\\CssSelector\\XPath\\XPathExpr' => $vendorDir . '/symfony/css-selector/XPath/XPathExpr.php', - 'Symfony\\Component\\Debug\\BufferingLogger' => $vendorDir . '/symfony/debug/BufferingLogger.php', - 'Symfony\\Component\\Debug\\Debug' => $vendorDir . '/symfony/debug/Debug.php', - 'Symfony\\Component\\Debug\\DebugClassLoader' => $vendorDir . '/symfony/debug/DebugClassLoader.php', - 'Symfony\\Component\\Debug\\ErrorHandler' => $vendorDir . '/symfony/debug/ErrorHandler.php', - 'Symfony\\Component\\Debug\\ExceptionHandler' => $vendorDir . '/symfony/debug/ExceptionHandler.php', - 'Symfony\\Component\\Debug\\Exception\\ClassNotFoundException' => $vendorDir . '/symfony/debug/Exception/ClassNotFoundException.php', - 'Symfony\\Component\\Debug\\Exception\\FatalErrorException' => $vendorDir . '/symfony/debug/Exception/FatalErrorException.php', - 'Symfony\\Component\\Debug\\Exception\\FatalThrowableError' => $vendorDir . '/symfony/debug/Exception/FatalThrowableError.php', - 'Symfony\\Component\\Debug\\Exception\\FlattenException' => $vendorDir . '/symfony/debug/Exception/FlattenException.php', - 'Symfony\\Component\\Debug\\Exception\\OutOfMemoryException' => $vendorDir . '/symfony/debug/Exception/OutOfMemoryException.php', - 'Symfony\\Component\\Debug\\Exception\\SilencedErrorContext' => $vendorDir . '/symfony/debug/Exception/SilencedErrorContext.php', - 'Symfony\\Component\\Debug\\Exception\\UndefinedFunctionException' => $vendorDir . '/symfony/debug/Exception/UndefinedFunctionException.php', - 'Symfony\\Component\\Debug\\Exception\\UndefinedMethodException' => $vendorDir . '/symfony/debug/Exception/UndefinedMethodException.php', - 'Symfony\\Component\\Debug\\FatalErrorHandler\\ClassNotFoundFatalErrorHandler' => $vendorDir . '/symfony/debug/FatalErrorHandler/ClassNotFoundFatalErrorHandler.php', - 'Symfony\\Component\\Debug\\FatalErrorHandler\\FatalErrorHandlerInterface' => $vendorDir . '/symfony/debug/FatalErrorHandler/FatalErrorHandlerInterface.php', - 'Symfony\\Component\\Debug\\FatalErrorHandler\\UndefinedFunctionFatalErrorHandler' => $vendorDir . '/symfony/debug/FatalErrorHandler/UndefinedFunctionFatalErrorHandler.php', - 'Symfony\\Component\\Debug\\FatalErrorHandler\\UndefinedMethodFatalErrorHandler' => $vendorDir . '/symfony/debug/FatalErrorHandler/UndefinedMethodFatalErrorHandler.php', - 'Symfony\\Component\\EventDispatcher\\Debug\\TraceableEventDispatcher' => $vendorDir . '/symfony/event-dispatcher/Debug/TraceableEventDispatcher.php', - 'Symfony\\Component\\EventDispatcher\\Debug\\TraceableEventDispatcherInterface' => $vendorDir . '/symfony/event-dispatcher/Debug/TraceableEventDispatcherInterface.php', - 'Symfony\\Component\\EventDispatcher\\Debug\\WrappedListener' => $vendorDir . '/symfony/event-dispatcher/Debug/WrappedListener.php', - 'Symfony\\Component\\EventDispatcher\\DependencyInjection\\ExtractingEventDispatcher' => $vendorDir . '/symfony/event-dispatcher/DependencyInjection/RegisterListenersPass.php', - 'Symfony\\Component\\EventDispatcher\\DependencyInjection\\RegisterListenersPass' => $vendorDir . '/symfony/event-dispatcher/DependencyInjection/RegisterListenersPass.php', - 'Symfony\\Component\\EventDispatcher\\Event' => $vendorDir . '/symfony/event-dispatcher/Event.php', - 'Symfony\\Component\\EventDispatcher\\EventDispatcher' => $vendorDir . '/symfony/event-dispatcher/EventDispatcher.php', - 'Symfony\\Component\\EventDispatcher\\EventDispatcherInterface' => $vendorDir . '/symfony/event-dispatcher/EventDispatcherInterface.php', - 'Symfony\\Component\\EventDispatcher\\EventSubscriberInterface' => $vendorDir . '/symfony/event-dispatcher/EventSubscriberInterface.php', - 'Symfony\\Component\\EventDispatcher\\GenericEvent' => $vendorDir . '/symfony/event-dispatcher/GenericEvent.php', - 'Symfony\\Component\\EventDispatcher\\ImmutableEventDispatcher' => $vendorDir . '/symfony/event-dispatcher/ImmutableEventDispatcher.php', - 'Symfony\\Component\\Finder\\Comparator\\Comparator' => $vendorDir . '/symfony/finder/Comparator/Comparator.php', - 'Symfony\\Component\\Finder\\Comparator\\DateComparator' => $vendorDir . '/symfony/finder/Comparator/DateComparator.php', - 'Symfony\\Component\\Finder\\Comparator\\NumberComparator' => $vendorDir . '/symfony/finder/Comparator/NumberComparator.php', - 'Symfony\\Component\\Finder\\Exception\\AccessDeniedException' => $vendorDir . '/symfony/finder/Exception/AccessDeniedException.php', - 'Symfony\\Component\\Finder\\Finder' => $vendorDir . '/symfony/finder/Finder.php', - 'Symfony\\Component\\Finder\\Glob' => $vendorDir . '/symfony/finder/Glob.php', - 'Symfony\\Component\\Finder\\Iterator\\CustomFilterIterator' => $vendorDir . '/symfony/finder/Iterator/CustomFilterIterator.php', - 'Symfony\\Component\\Finder\\Iterator\\DateRangeFilterIterator' => $vendorDir . '/symfony/finder/Iterator/DateRangeFilterIterator.php', - 'Symfony\\Component\\Finder\\Iterator\\DepthRangeFilterIterator' => $vendorDir . '/symfony/finder/Iterator/DepthRangeFilterIterator.php', - 'Symfony\\Component\\Finder\\Iterator\\ExcludeDirectoryFilterIterator' => $vendorDir . '/symfony/finder/Iterator/ExcludeDirectoryFilterIterator.php', - 'Symfony\\Component\\Finder\\Iterator\\FileTypeFilterIterator' => $vendorDir . '/symfony/finder/Iterator/FileTypeFilterIterator.php', - 'Symfony\\Component\\Finder\\Iterator\\FilecontentFilterIterator' => $vendorDir . '/symfony/finder/Iterator/FilecontentFilterIterator.php', - 'Symfony\\Component\\Finder\\Iterator\\FilenameFilterIterator' => $vendorDir . '/symfony/finder/Iterator/FilenameFilterIterator.php', - 'Symfony\\Component\\Finder\\Iterator\\MultiplePcreFilterIterator' => $vendorDir . '/symfony/finder/Iterator/MultiplePcreFilterIterator.php', - 'Symfony\\Component\\Finder\\Iterator\\PathFilterIterator' => $vendorDir . '/symfony/finder/Iterator/PathFilterIterator.php', - 'Symfony\\Component\\Finder\\Iterator\\RecursiveDirectoryIterator' => $vendorDir . '/symfony/finder/Iterator/RecursiveDirectoryIterator.php', - 'Symfony\\Component\\Finder\\Iterator\\SizeRangeFilterIterator' => $vendorDir . '/symfony/finder/Iterator/SizeRangeFilterIterator.php', - 'Symfony\\Component\\Finder\\Iterator\\SortableIterator' => $vendorDir . '/symfony/finder/Iterator/SortableIterator.php', - 'Symfony\\Component\\Finder\\SplFileInfo' => $vendorDir . '/symfony/finder/SplFileInfo.php', - 'Symfony\\Component\\HttpFoundation\\AcceptHeader' => $vendorDir . '/symfony/http-foundation/AcceptHeader.php', - 'Symfony\\Component\\HttpFoundation\\AcceptHeaderItem' => $vendorDir . '/symfony/http-foundation/AcceptHeaderItem.php', - 'Symfony\\Component\\HttpFoundation\\ApacheRequest' => $vendorDir . '/symfony/http-foundation/ApacheRequest.php', - 'Symfony\\Component\\HttpFoundation\\BinaryFileResponse' => $vendorDir . '/symfony/http-foundation/BinaryFileResponse.php', - 'Symfony\\Component\\HttpFoundation\\Cookie' => $vendorDir . '/symfony/http-foundation/Cookie.php', - 'Symfony\\Component\\HttpFoundation\\Exception\\ConflictingHeadersException' => $vendorDir . '/symfony/http-foundation/Exception/ConflictingHeadersException.php', - 'Symfony\\Component\\HttpFoundation\\Exception\\RequestExceptionInterface' => $vendorDir . '/symfony/http-foundation/Exception/RequestExceptionInterface.php', - 'Symfony\\Component\\HttpFoundation\\Exception\\SuspiciousOperationException' => $vendorDir . '/symfony/http-foundation/Exception/SuspiciousOperationException.php', - 'Symfony\\Component\\HttpFoundation\\ExpressionRequestMatcher' => $vendorDir . '/symfony/http-foundation/ExpressionRequestMatcher.php', - 'Symfony\\Component\\HttpFoundation\\FileBag' => $vendorDir . '/symfony/http-foundation/FileBag.php', - 'Symfony\\Component\\HttpFoundation\\File\\Exception\\AccessDeniedException' => $vendorDir . '/symfony/http-foundation/File/Exception/AccessDeniedException.php', - 'Symfony\\Component\\HttpFoundation\\File\\Exception\\CannotWriteFileException' => $vendorDir . '/symfony/http-foundation/File/Exception/CannotWriteFileException.php', - 'Symfony\\Component\\HttpFoundation\\File\\Exception\\ExtensionFileException' => $vendorDir . '/symfony/http-foundation/File/Exception/ExtensionFileException.php', - 'Symfony\\Component\\HttpFoundation\\File\\Exception\\FileException' => $vendorDir . '/symfony/http-foundation/File/Exception/FileException.php', - 'Symfony\\Component\\HttpFoundation\\File\\Exception\\FileNotFoundException' => $vendorDir . '/symfony/http-foundation/File/Exception/FileNotFoundException.php', - 'Symfony\\Component\\HttpFoundation\\File\\Exception\\FormSizeFileException' => $vendorDir . '/symfony/http-foundation/File/Exception/FormSizeFileException.php', - 'Symfony\\Component\\HttpFoundation\\File\\Exception\\IniSizeFileException' => $vendorDir . '/symfony/http-foundation/File/Exception/IniSizeFileException.php', - 'Symfony\\Component\\HttpFoundation\\File\\Exception\\NoFileException' => $vendorDir . '/symfony/http-foundation/File/Exception/NoFileException.php', - 'Symfony\\Component\\HttpFoundation\\File\\Exception\\NoTmpDirFileException' => $vendorDir . '/symfony/http-foundation/File/Exception/NoTmpDirFileException.php', - 'Symfony\\Component\\HttpFoundation\\File\\Exception\\PartialFileException' => $vendorDir . '/symfony/http-foundation/File/Exception/PartialFileException.php', - 'Symfony\\Component\\HttpFoundation\\File\\Exception\\UnexpectedTypeException' => $vendorDir . '/symfony/http-foundation/File/Exception/UnexpectedTypeException.php', - 'Symfony\\Component\\HttpFoundation\\File\\Exception\\UploadException' => $vendorDir . '/symfony/http-foundation/File/Exception/UploadException.php', - 'Symfony\\Component\\HttpFoundation\\File\\File' => $vendorDir . '/symfony/http-foundation/File/File.php', - 'Symfony\\Component\\HttpFoundation\\File\\MimeType\\ExtensionGuesser' => $vendorDir . '/symfony/http-foundation/File/MimeType/ExtensionGuesser.php', - 'Symfony\\Component\\HttpFoundation\\File\\MimeType\\ExtensionGuesserInterface' => $vendorDir . '/symfony/http-foundation/File/MimeType/ExtensionGuesserInterface.php', - 'Symfony\\Component\\HttpFoundation\\File\\MimeType\\FileBinaryMimeTypeGuesser' => $vendorDir . '/symfony/http-foundation/File/MimeType/FileBinaryMimeTypeGuesser.php', - 'Symfony\\Component\\HttpFoundation\\File\\MimeType\\FileinfoMimeTypeGuesser' => $vendorDir . '/symfony/http-foundation/File/MimeType/FileinfoMimeTypeGuesser.php', - 'Symfony\\Component\\HttpFoundation\\File\\MimeType\\MimeTypeExtensionGuesser' => $vendorDir . '/symfony/http-foundation/File/MimeType/MimeTypeExtensionGuesser.php', - 'Symfony\\Component\\HttpFoundation\\File\\MimeType\\MimeTypeGuesser' => $vendorDir . '/symfony/http-foundation/File/MimeType/MimeTypeGuesser.php', - 'Symfony\\Component\\HttpFoundation\\File\\MimeType\\MimeTypeGuesserInterface' => $vendorDir . '/symfony/http-foundation/File/MimeType/MimeTypeGuesserInterface.php', - 'Symfony\\Component\\HttpFoundation\\File\\Stream' => $vendorDir . '/symfony/http-foundation/File/Stream.php', - 'Symfony\\Component\\HttpFoundation\\File\\UploadedFile' => $vendorDir . '/symfony/http-foundation/File/UploadedFile.php', - 'Symfony\\Component\\HttpFoundation\\HeaderBag' => $vendorDir . '/symfony/http-foundation/HeaderBag.php', - 'Symfony\\Component\\HttpFoundation\\HeaderUtils' => $vendorDir . '/symfony/http-foundation/HeaderUtils.php', - 'Symfony\\Component\\HttpFoundation\\IpUtils' => $vendorDir . '/symfony/http-foundation/IpUtils.php', - 'Symfony\\Component\\HttpFoundation\\JsonResponse' => $vendorDir . '/symfony/http-foundation/JsonResponse.php', - 'Symfony\\Component\\HttpFoundation\\ParameterBag' => $vendorDir . '/symfony/http-foundation/ParameterBag.php', - 'Symfony\\Component\\HttpFoundation\\RedirectResponse' => $vendorDir . '/symfony/http-foundation/RedirectResponse.php', - 'Symfony\\Component\\HttpFoundation\\Request' => $vendorDir . '/symfony/http-foundation/Request.php', - 'Symfony\\Component\\HttpFoundation\\RequestMatcher' => $vendorDir . '/symfony/http-foundation/RequestMatcher.php', - 'Symfony\\Component\\HttpFoundation\\RequestMatcherInterface' => $vendorDir . '/symfony/http-foundation/RequestMatcherInterface.php', - 'Symfony\\Component\\HttpFoundation\\RequestStack' => $vendorDir . '/symfony/http-foundation/RequestStack.php', - 'Symfony\\Component\\HttpFoundation\\Response' => $vendorDir . '/symfony/http-foundation/Response.php', - 'Symfony\\Component\\HttpFoundation\\ResponseHeaderBag' => $vendorDir . '/symfony/http-foundation/ResponseHeaderBag.php', - 'Symfony\\Component\\HttpFoundation\\ServerBag' => $vendorDir . '/symfony/http-foundation/ServerBag.php', - 'Symfony\\Component\\HttpFoundation\\Session\\Attribute\\AttributeBag' => $vendorDir . '/symfony/http-foundation/Session/Attribute/AttributeBag.php', - 'Symfony\\Component\\HttpFoundation\\Session\\Attribute\\AttributeBagInterface' => $vendorDir . '/symfony/http-foundation/Session/Attribute/AttributeBagInterface.php', - 'Symfony\\Component\\HttpFoundation\\Session\\Attribute\\NamespacedAttributeBag' => $vendorDir . '/symfony/http-foundation/Session/Attribute/NamespacedAttributeBag.php', - 'Symfony\\Component\\HttpFoundation\\Session\\Flash\\AutoExpireFlashBag' => $vendorDir . '/symfony/http-foundation/Session/Flash/AutoExpireFlashBag.php', - 'Symfony\\Component\\HttpFoundation\\Session\\Flash\\FlashBag' => $vendorDir . '/symfony/http-foundation/Session/Flash/FlashBag.php', - 'Symfony\\Component\\HttpFoundation\\Session\\Flash\\FlashBagInterface' => $vendorDir . '/symfony/http-foundation/Session/Flash/FlashBagInterface.php', - 'Symfony\\Component\\HttpFoundation\\Session\\Session' => $vendorDir . '/symfony/http-foundation/Session/Session.php', - 'Symfony\\Component\\HttpFoundation\\Session\\SessionBagInterface' => $vendorDir . '/symfony/http-foundation/Session/SessionBagInterface.php', - 'Symfony\\Component\\HttpFoundation\\Session\\SessionBagProxy' => $vendorDir . '/symfony/http-foundation/Session/SessionBagProxy.php', - 'Symfony\\Component\\HttpFoundation\\Session\\SessionInterface' => $vendorDir . '/symfony/http-foundation/Session/SessionInterface.php', - 'Symfony\\Component\\HttpFoundation\\Session\\Storage\\Handler\\AbstractSessionHandler' => $vendorDir . '/symfony/http-foundation/Session/Storage/Handler/AbstractSessionHandler.php', - 'Symfony\\Component\\HttpFoundation\\Session\\Storage\\Handler\\MemcachedSessionHandler' => $vendorDir . '/symfony/http-foundation/Session/Storage/Handler/MemcachedSessionHandler.php', - 'Symfony\\Component\\HttpFoundation\\Session\\Storage\\Handler\\MigratingSessionHandler' => $vendorDir . '/symfony/http-foundation/Session/Storage/Handler/MigratingSessionHandler.php', - 'Symfony\\Component\\HttpFoundation\\Session\\Storage\\Handler\\MongoDbSessionHandler' => $vendorDir . '/symfony/http-foundation/Session/Storage/Handler/MongoDbSessionHandler.php', - 'Symfony\\Component\\HttpFoundation\\Session\\Storage\\Handler\\NativeFileSessionHandler' => $vendorDir . '/symfony/http-foundation/Session/Storage/Handler/NativeFileSessionHandler.php', - 'Symfony\\Component\\HttpFoundation\\Session\\Storage\\Handler\\NullSessionHandler' => $vendorDir . '/symfony/http-foundation/Session/Storage/Handler/NullSessionHandler.php', - 'Symfony\\Component\\HttpFoundation\\Session\\Storage\\Handler\\PdoSessionHandler' => $vendorDir . '/symfony/http-foundation/Session/Storage/Handler/PdoSessionHandler.php', - 'Symfony\\Component\\HttpFoundation\\Session\\Storage\\Handler\\RedisSessionHandler' => $vendorDir . '/symfony/http-foundation/Session/Storage/Handler/RedisSessionHandler.php', - 'Symfony\\Component\\HttpFoundation\\Session\\Storage\\Handler\\StrictSessionHandler' => $vendorDir . '/symfony/http-foundation/Session/Storage/Handler/StrictSessionHandler.php', - 'Symfony\\Component\\HttpFoundation\\Session\\Storage\\MetadataBag' => $vendorDir . '/symfony/http-foundation/Session/Storage/MetadataBag.php', - 'Symfony\\Component\\HttpFoundation\\Session\\Storage\\MockArraySessionStorage' => $vendorDir . '/symfony/http-foundation/Session/Storage/MockArraySessionStorage.php', - 'Symfony\\Component\\HttpFoundation\\Session\\Storage\\MockFileSessionStorage' => $vendorDir . '/symfony/http-foundation/Session/Storage/MockFileSessionStorage.php', - 'Symfony\\Component\\HttpFoundation\\Session\\Storage\\NativeSessionStorage' => $vendorDir . '/symfony/http-foundation/Session/Storage/NativeSessionStorage.php', - 'Symfony\\Component\\HttpFoundation\\Session\\Storage\\PhpBridgeSessionStorage' => $vendorDir . '/symfony/http-foundation/Session/Storage/PhpBridgeSessionStorage.php', - 'Symfony\\Component\\HttpFoundation\\Session\\Storage\\Proxy\\AbstractProxy' => $vendorDir . '/symfony/http-foundation/Session/Storage/Proxy/AbstractProxy.php', - 'Symfony\\Component\\HttpFoundation\\Session\\Storage\\Proxy\\SessionHandlerProxy' => $vendorDir . '/symfony/http-foundation/Session/Storage/Proxy/SessionHandlerProxy.php', - 'Symfony\\Component\\HttpFoundation\\Session\\Storage\\SessionStorageInterface' => $vendorDir . '/symfony/http-foundation/Session/Storage/SessionStorageInterface.php', - 'Symfony\\Component\\HttpFoundation\\StreamedResponse' => $vendorDir . '/symfony/http-foundation/StreamedResponse.php', - 'Symfony\\Component\\HttpKernel\\Bundle\\Bundle' => $vendorDir . '/symfony/http-kernel/Bundle/Bundle.php', - 'Symfony\\Component\\HttpKernel\\Bundle\\BundleInterface' => $vendorDir . '/symfony/http-kernel/Bundle/BundleInterface.php', - 'Symfony\\Component\\HttpKernel\\CacheClearer\\CacheClearerInterface' => $vendorDir . '/symfony/http-kernel/CacheClearer/CacheClearerInterface.php', - 'Symfony\\Component\\HttpKernel\\CacheClearer\\ChainCacheClearer' => $vendorDir . '/symfony/http-kernel/CacheClearer/ChainCacheClearer.php', - 'Symfony\\Component\\HttpKernel\\CacheClearer\\Psr6CacheClearer' => $vendorDir . '/symfony/http-kernel/CacheClearer/Psr6CacheClearer.php', - 'Symfony\\Component\\HttpKernel\\CacheWarmer\\CacheWarmer' => $vendorDir . '/symfony/http-kernel/CacheWarmer/CacheWarmer.php', - 'Symfony\\Component\\HttpKernel\\CacheWarmer\\CacheWarmerAggregate' => $vendorDir . '/symfony/http-kernel/CacheWarmer/CacheWarmerAggregate.php', - 'Symfony\\Component\\HttpKernel\\CacheWarmer\\CacheWarmerInterface' => $vendorDir . '/symfony/http-kernel/CacheWarmer/CacheWarmerInterface.php', - 'Symfony\\Component\\HttpKernel\\CacheWarmer\\WarmableInterface' => $vendorDir . '/symfony/http-kernel/CacheWarmer/WarmableInterface.php', - 'Symfony\\Component\\HttpKernel\\Client' => $vendorDir . '/symfony/http-kernel/Client.php', - 'Symfony\\Component\\HttpKernel\\Config\\FileLocator' => $vendorDir . '/symfony/http-kernel/Config/FileLocator.php', - 'Symfony\\Component\\HttpKernel\\ControllerMetadata\\ArgumentMetadata' => $vendorDir . '/symfony/http-kernel/ControllerMetadata/ArgumentMetadata.php', - 'Symfony\\Component\\HttpKernel\\ControllerMetadata\\ArgumentMetadataFactory' => $vendorDir . '/symfony/http-kernel/ControllerMetadata/ArgumentMetadataFactory.php', - 'Symfony\\Component\\HttpKernel\\ControllerMetadata\\ArgumentMetadataFactoryInterface' => $vendorDir . '/symfony/http-kernel/ControllerMetadata/ArgumentMetadataFactoryInterface.php', - 'Symfony\\Component\\HttpKernel\\Controller\\ArgumentResolver' => $vendorDir . '/symfony/http-kernel/Controller/ArgumentResolver.php', - 'Symfony\\Component\\HttpKernel\\Controller\\ArgumentResolverInterface' => $vendorDir . '/symfony/http-kernel/Controller/ArgumentResolverInterface.php', - 'Symfony\\Component\\HttpKernel\\Controller\\ArgumentResolver\\DefaultValueResolver' => $vendorDir . '/symfony/http-kernel/Controller/ArgumentResolver/DefaultValueResolver.php', - 'Symfony\\Component\\HttpKernel\\Controller\\ArgumentResolver\\RequestAttributeValueResolver' => $vendorDir . '/symfony/http-kernel/Controller/ArgumentResolver/RequestAttributeValueResolver.php', - 'Symfony\\Component\\HttpKernel\\Controller\\ArgumentResolver\\RequestValueResolver' => $vendorDir . '/symfony/http-kernel/Controller/ArgumentResolver/RequestValueResolver.php', - 'Symfony\\Component\\HttpKernel\\Controller\\ArgumentResolver\\ServiceValueResolver' => $vendorDir . '/symfony/http-kernel/Controller/ArgumentResolver/ServiceValueResolver.php', - 'Symfony\\Component\\HttpKernel\\Controller\\ArgumentResolver\\SessionValueResolver' => $vendorDir . '/symfony/http-kernel/Controller/ArgumentResolver/SessionValueResolver.php', - 'Symfony\\Component\\HttpKernel\\Controller\\ArgumentResolver\\TraceableValueResolver' => $vendorDir . '/symfony/http-kernel/Controller/ArgumentResolver/TraceableValueResolver.php', - 'Symfony\\Component\\HttpKernel\\Controller\\ArgumentResolver\\VariadicValueResolver' => $vendorDir . '/symfony/http-kernel/Controller/ArgumentResolver/VariadicValueResolver.php', - 'Symfony\\Component\\HttpKernel\\Controller\\ArgumentValueResolverInterface' => $vendorDir . '/symfony/http-kernel/Controller/ArgumentValueResolverInterface.php', - 'Symfony\\Component\\HttpKernel\\Controller\\ContainerControllerResolver' => $vendorDir . '/symfony/http-kernel/Controller/ContainerControllerResolver.php', - 'Symfony\\Component\\HttpKernel\\Controller\\ControllerReference' => $vendorDir . '/symfony/http-kernel/Controller/ControllerReference.php', - 'Symfony\\Component\\HttpKernel\\Controller\\ControllerResolver' => $vendorDir . '/symfony/http-kernel/Controller/ControllerResolver.php', - 'Symfony\\Component\\HttpKernel\\Controller\\ControllerResolverInterface' => $vendorDir . '/symfony/http-kernel/Controller/ControllerResolverInterface.php', - 'Symfony\\Component\\HttpKernel\\Controller\\TraceableArgumentResolver' => $vendorDir . '/symfony/http-kernel/Controller/TraceableArgumentResolver.php', - 'Symfony\\Component\\HttpKernel\\Controller\\TraceableControllerResolver' => $vendorDir . '/symfony/http-kernel/Controller/TraceableControllerResolver.php', - 'Symfony\\Component\\HttpKernel\\DataCollector\\AjaxDataCollector' => $vendorDir . '/symfony/http-kernel/DataCollector/AjaxDataCollector.php', - 'Symfony\\Component\\HttpKernel\\DataCollector\\ConfigDataCollector' => $vendorDir . '/symfony/http-kernel/DataCollector/ConfigDataCollector.php', - 'Symfony\\Component\\HttpKernel\\DataCollector\\DataCollector' => $vendorDir . '/symfony/http-kernel/DataCollector/DataCollector.php', - 'Symfony\\Component\\HttpKernel\\DataCollector\\DataCollectorInterface' => $vendorDir . '/symfony/http-kernel/DataCollector/DataCollectorInterface.php', - 'Symfony\\Component\\HttpKernel\\DataCollector\\DumpDataCollector' => $vendorDir . '/symfony/http-kernel/DataCollector/DumpDataCollector.php', - 'Symfony\\Component\\HttpKernel\\DataCollector\\EventDataCollector' => $vendorDir . '/symfony/http-kernel/DataCollector/EventDataCollector.php', - 'Symfony\\Component\\HttpKernel\\DataCollector\\ExceptionDataCollector' => $vendorDir . '/symfony/http-kernel/DataCollector/ExceptionDataCollector.php', - 'Symfony\\Component\\HttpKernel\\DataCollector\\LateDataCollectorInterface' => $vendorDir . '/symfony/http-kernel/DataCollector/LateDataCollectorInterface.php', - 'Symfony\\Component\\HttpKernel\\DataCollector\\LoggerDataCollector' => $vendorDir . '/symfony/http-kernel/DataCollector/LoggerDataCollector.php', - 'Symfony\\Component\\HttpKernel\\DataCollector\\MemoryDataCollector' => $vendorDir . '/symfony/http-kernel/DataCollector/MemoryDataCollector.php', - 'Symfony\\Component\\HttpKernel\\DataCollector\\RequestDataCollector' => $vendorDir . '/symfony/http-kernel/DataCollector/RequestDataCollector.php', - 'Symfony\\Component\\HttpKernel\\DataCollector\\RouterDataCollector' => $vendorDir . '/symfony/http-kernel/DataCollector/RouterDataCollector.php', - 'Symfony\\Component\\HttpKernel\\DataCollector\\TimeDataCollector' => $vendorDir . '/symfony/http-kernel/DataCollector/TimeDataCollector.php', - 'Symfony\\Component\\HttpKernel\\Debug\\FileLinkFormatter' => $vendorDir . '/symfony/http-kernel/Debug/FileLinkFormatter.php', - 'Symfony\\Component\\HttpKernel\\Debug\\TraceableEventDispatcher' => $vendorDir . '/symfony/http-kernel/Debug/TraceableEventDispatcher.php', - 'Symfony\\Component\\HttpKernel\\DependencyInjection\\AddAnnotatedClassesToCachePass' => $vendorDir . '/symfony/http-kernel/DependencyInjection/AddAnnotatedClassesToCachePass.php', - 'Symfony\\Component\\HttpKernel\\DependencyInjection\\ConfigurableExtension' => $vendorDir . '/symfony/http-kernel/DependencyInjection/ConfigurableExtension.php', - 'Symfony\\Component\\HttpKernel\\DependencyInjection\\ControllerArgumentValueResolverPass' => $vendorDir . '/symfony/http-kernel/DependencyInjection/ControllerArgumentValueResolverPass.php', - 'Symfony\\Component\\HttpKernel\\DependencyInjection\\Extension' => $vendorDir . '/symfony/http-kernel/DependencyInjection/Extension.php', - 'Symfony\\Component\\HttpKernel\\DependencyInjection\\FragmentRendererPass' => $vendorDir . '/symfony/http-kernel/DependencyInjection/FragmentRendererPass.php', - 'Symfony\\Component\\HttpKernel\\DependencyInjection\\LazyLoadingFragmentHandler' => $vendorDir . '/symfony/http-kernel/DependencyInjection/LazyLoadingFragmentHandler.php', - 'Symfony\\Component\\HttpKernel\\DependencyInjection\\LoggerPass' => $vendorDir . '/symfony/http-kernel/DependencyInjection/LoggerPass.php', - 'Symfony\\Component\\HttpKernel\\DependencyInjection\\MergeExtensionConfigurationPass' => $vendorDir . '/symfony/http-kernel/DependencyInjection/MergeExtensionConfigurationPass.php', - 'Symfony\\Component\\HttpKernel\\DependencyInjection\\RegisterControllerArgumentLocatorsPass' => $vendorDir . '/symfony/http-kernel/DependencyInjection/RegisterControllerArgumentLocatorsPass.php', - 'Symfony\\Component\\HttpKernel\\DependencyInjection\\RemoveEmptyControllerArgumentLocatorsPass' => $vendorDir . '/symfony/http-kernel/DependencyInjection/RemoveEmptyControllerArgumentLocatorsPass.php', - 'Symfony\\Component\\HttpKernel\\DependencyInjection\\ResettableServicePass' => $vendorDir . '/symfony/http-kernel/DependencyInjection/ResettableServicePass.php', - 'Symfony\\Component\\HttpKernel\\DependencyInjection\\ServicesResetter' => $vendorDir . '/symfony/http-kernel/DependencyInjection/ServicesResetter.php', - 'Symfony\\Component\\HttpKernel\\EventListener\\AbstractSessionListener' => $vendorDir . '/symfony/http-kernel/EventListener/AbstractSessionListener.php', - 'Symfony\\Component\\HttpKernel\\EventListener\\AbstractTestSessionListener' => $vendorDir . '/symfony/http-kernel/EventListener/AbstractTestSessionListener.php', - 'Symfony\\Component\\HttpKernel\\EventListener\\AddRequestFormatsListener' => $vendorDir . '/symfony/http-kernel/EventListener/AddRequestFormatsListener.php', - 'Symfony\\Component\\HttpKernel\\EventListener\\DebugHandlersListener' => $vendorDir . '/symfony/http-kernel/EventListener/DebugHandlersListener.php', - 'Symfony\\Component\\HttpKernel\\EventListener\\DumpListener' => $vendorDir . '/symfony/http-kernel/EventListener/DumpListener.php', - 'Symfony\\Component\\HttpKernel\\EventListener\\ExceptionListener' => $vendorDir . '/symfony/http-kernel/EventListener/ExceptionListener.php', - 'Symfony\\Component\\HttpKernel\\EventListener\\FragmentListener' => $vendorDir . '/symfony/http-kernel/EventListener/FragmentListener.php', - 'Symfony\\Component\\HttpKernel\\EventListener\\LocaleListener' => $vendorDir . '/symfony/http-kernel/EventListener/LocaleListener.php', - 'Symfony\\Component\\HttpKernel\\EventListener\\ProfilerListener' => $vendorDir . '/symfony/http-kernel/EventListener/ProfilerListener.php', - 'Symfony\\Component\\HttpKernel\\EventListener\\ResponseListener' => $vendorDir . '/symfony/http-kernel/EventListener/ResponseListener.php', - 'Symfony\\Component\\HttpKernel\\EventListener\\RouterListener' => $vendorDir . '/symfony/http-kernel/EventListener/RouterListener.php', - 'Symfony\\Component\\HttpKernel\\EventListener\\SaveSessionListener' => $vendorDir . '/symfony/http-kernel/EventListener/SaveSessionListener.php', - 'Symfony\\Component\\HttpKernel\\EventListener\\SessionListener' => $vendorDir . '/symfony/http-kernel/EventListener/SessionListener.php', - 'Symfony\\Component\\HttpKernel\\EventListener\\StreamedResponseListener' => $vendorDir . '/symfony/http-kernel/EventListener/StreamedResponseListener.php', - 'Symfony\\Component\\HttpKernel\\EventListener\\SurrogateListener' => $vendorDir . '/symfony/http-kernel/EventListener/SurrogateListener.php', - 'Symfony\\Component\\HttpKernel\\EventListener\\TestSessionListener' => $vendorDir . '/symfony/http-kernel/EventListener/TestSessionListener.php', - 'Symfony\\Component\\HttpKernel\\EventListener\\TranslatorListener' => $vendorDir . '/symfony/http-kernel/EventListener/TranslatorListener.php', - 'Symfony\\Component\\HttpKernel\\EventListener\\ValidateRequestListener' => $vendorDir . '/symfony/http-kernel/EventListener/ValidateRequestListener.php', - 'Symfony\\Component\\HttpKernel\\Event\\FilterControllerArgumentsEvent' => $vendorDir . '/symfony/http-kernel/Event/FilterControllerArgumentsEvent.php', - 'Symfony\\Component\\HttpKernel\\Event\\FilterControllerEvent' => $vendorDir . '/symfony/http-kernel/Event/FilterControllerEvent.php', - 'Symfony\\Component\\HttpKernel\\Event\\FilterResponseEvent' => $vendorDir . '/symfony/http-kernel/Event/FilterResponseEvent.php', - 'Symfony\\Component\\HttpKernel\\Event\\FinishRequestEvent' => $vendorDir . '/symfony/http-kernel/Event/FinishRequestEvent.php', - 'Symfony\\Component\\HttpKernel\\Event\\GetResponseEvent' => $vendorDir . '/symfony/http-kernel/Event/GetResponseEvent.php', - 'Symfony\\Component\\HttpKernel\\Event\\GetResponseForControllerResultEvent' => $vendorDir . '/symfony/http-kernel/Event/GetResponseForControllerResultEvent.php', - 'Symfony\\Component\\HttpKernel\\Event\\GetResponseForExceptionEvent' => $vendorDir . '/symfony/http-kernel/Event/GetResponseForExceptionEvent.php', - 'Symfony\\Component\\HttpKernel\\Event\\KernelEvent' => $vendorDir . '/symfony/http-kernel/Event/KernelEvent.php', - 'Symfony\\Component\\HttpKernel\\Event\\PostResponseEvent' => $vendorDir . '/symfony/http-kernel/Event/PostResponseEvent.php', - 'Symfony\\Component\\HttpKernel\\Exception\\AccessDeniedHttpException' => $vendorDir . '/symfony/http-kernel/Exception/AccessDeniedHttpException.php', - 'Symfony\\Component\\HttpKernel\\Exception\\BadRequestHttpException' => $vendorDir . '/symfony/http-kernel/Exception/BadRequestHttpException.php', - 'Symfony\\Component\\HttpKernel\\Exception\\ConflictHttpException' => $vendorDir . '/symfony/http-kernel/Exception/ConflictHttpException.php', - 'Symfony\\Component\\HttpKernel\\Exception\\GoneHttpException' => $vendorDir . '/symfony/http-kernel/Exception/GoneHttpException.php', - 'Symfony\\Component\\HttpKernel\\Exception\\HttpException' => $vendorDir . '/symfony/http-kernel/Exception/HttpException.php', - 'Symfony\\Component\\HttpKernel\\Exception\\HttpExceptionInterface' => $vendorDir . '/symfony/http-kernel/Exception/HttpExceptionInterface.php', - 'Symfony\\Component\\HttpKernel\\Exception\\LengthRequiredHttpException' => $vendorDir . '/symfony/http-kernel/Exception/LengthRequiredHttpException.php', - 'Symfony\\Component\\HttpKernel\\Exception\\MethodNotAllowedHttpException' => $vendorDir . '/symfony/http-kernel/Exception/MethodNotAllowedHttpException.php', - 'Symfony\\Component\\HttpKernel\\Exception\\NotAcceptableHttpException' => $vendorDir . '/symfony/http-kernel/Exception/NotAcceptableHttpException.php', - 'Symfony\\Component\\HttpKernel\\Exception\\NotFoundHttpException' => $vendorDir . '/symfony/http-kernel/Exception/NotFoundHttpException.php', - 'Symfony\\Component\\HttpKernel\\Exception\\PreconditionFailedHttpException' => $vendorDir . '/symfony/http-kernel/Exception/PreconditionFailedHttpException.php', - 'Symfony\\Component\\HttpKernel\\Exception\\PreconditionRequiredHttpException' => $vendorDir . '/symfony/http-kernel/Exception/PreconditionRequiredHttpException.php', - 'Symfony\\Component\\HttpKernel\\Exception\\ServiceUnavailableHttpException' => $vendorDir . '/symfony/http-kernel/Exception/ServiceUnavailableHttpException.php', - 'Symfony\\Component\\HttpKernel\\Exception\\TooManyRequestsHttpException' => $vendorDir . '/symfony/http-kernel/Exception/TooManyRequestsHttpException.php', - 'Symfony\\Component\\HttpKernel\\Exception\\UnauthorizedHttpException' => $vendorDir . '/symfony/http-kernel/Exception/UnauthorizedHttpException.php', - 'Symfony\\Component\\HttpKernel\\Exception\\UnprocessableEntityHttpException' => $vendorDir . '/symfony/http-kernel/Exception/UnprocessableEntityHttpException.php', - 'Symfony\\Component\\HttpKernel\\Exception\\UnsupportedMediaTypeHttpException' => $vendorDir . '/symfony/http-kernel/Exception/UnsupportedMediaTypeHttpException.php', - 'Symfony\\Component\\HttpKernel\\Fragment\\AbstractSurrogateFragmentRenderer' => $vendorDir . '/symfony/http-kernel/Fragment/AbstractSurrogateFragmentRenderer.php', - 'Symfony\\Component\\HttpKernel\\Fragment\\EsiFragmentRenderer' => $vendorDir . '/symfony/http-kernel/Fragment/EsiFragmentRenderer.php', - 'Symfony\\Component\\HttpKernel\\Fragment\\FragmentHandler' => $vendorDir . '/symfony/http-kernel/Fragment/FragmentHandler.php', - 'Symfony\\Component\\HttpKernel\\Fragment\\FragmentRendererInterface' => $vendorDir . '/symfony/http-kernel/Fragment/FragmentRendererInterface.php', - 'Symfony\\Component\\HttpKernel\\Fragment\\HIncludeFragmentRenderer' => $vendorDir . '/symfony/http-kernel/Fragment/HIncludeFragmentRenderer.php', - 'Symfony\\Component\\HttpKernel\\Fragment\\InlineFragmentRenderer' => $vendorDir . '/symfony/http-kernel/Fragment/InlineFragmentRenderer.php', - 'Symfony\\Component\\HttpKernel\\Fragment\\RoutableFragmentRenderer' => $vendorDir . '/symfony/http-kernel/Fragment/RoutableFragmentRenderer.php', - 'Symfony\\Component\\HttpKernel\\Fragment\\SsiFragmentRenderer' => $vendorDir . '/symfony/http-kernel/Fragment/SsiFragmentRenderer.php', - 'Symfony\\Component\\HttpKernel\\HttpCache\\AbstractSurrogate' => $vendorDir . '/symfony/http-kernel/HttpCache/AbstractSurrogate.php', - 'Symfony\\Component\\HttpKernel\\HttpCache\\Esi' => $vendorDir . '/symfony/http-kernel/HttpCache/Esi.php', - 'Symfony\\Component\\HttpKernel\\HttpCache\\HttpCache' => $vendorDir . '/symfony/http-kernel/HttpCache/HttpCache.php', - 'Symfony\\Component\\HttpKernel\\HttpCache\\ResponseCacheStrategy' => $vendorDir . '/symfony/http-kernel/HttpCache/ResponseCacheStrategy.php', - 'Symfony\\Component\\HttpKernel\\HttpCache\\ResponseCacheStrategyInterface' => $vendorDir . '/symfony/http-kernel/HttpCache/ResponseCacheStrategyInterface.php', - 'Symfony\\Component\\HttpKernel\\HttpCache\\Ssi' => $vendorDir . '/symfony/http-kernel/HttpCache/Ssi.php', - 'Symfony\\Component\\HttpKernel\\HttpCache\\Store' => $vendorDir . '/symfony/http-kernel/HttpCache/Store.php', - 'Symfony\\Component\\HttpKernel\\HttpCache\\StoreInterface' => $vendorDir . '/symfony/http-kernel/HttpCache/StoreInterface.php', - 'Symfony\\Component\\HttpKernel\\HttpCache\\SurrogateInterface' => $vendorDir . '/symfony/http-kernel/HttpCache/SurrogateInterface.php', - 'Symfony\\Component\\HttpKernel\\HttpKernel' => $vendorDir . '/symfony/http-kernel/HttpKernel.php', - 'Symfony\\Component\\HttpKernel\\HttpKernelInterface' => $vendorDir . '/symfony/http-kernel/HttpKernelInterface.php', - 'Symfony\\Component\\HttpKernel\\Kernel' => $vendorDir . '/symfony/http-kernel/Kernel.php', - 'Symfony\\Component\\HttpKernel\\KernelEvents' => $vendorDir . '/symfony/http-kernel/KernelEvents.php', - 'Symfony\\Component\\HttpKernel\\KernelInterface' => $vendorDir . '/symfony/http-kernel/KernelInterface.php', - 'Symfony\\Component\\HttpKernel\\Log\\DebugLoggerInterface' => $vendorDir . '/symfony/http-kernel/Log/DebugLoggerInterface.php', - 'Symfony\\Component\\HttpKernel\\Log\\Logger' => $vendorDir . '/symfony/http-kernel/Log/Logger.php', - 'Symfony\\Component\\HttpKernel\\Profiler\\FileProfilerStorage' => $vendorDir . '/symfony/http-kernel/Profiler/FileProfilerStorage.php', - 'Symfony\\Component\\HttpKernel\\Profiler\\Profile' => $vendorDir . '/symfony/http-kernel/Profiler/Profile.php', - 'Symfony\\Component\\HttpKernel\\Profiler\\Profiler' => $vendorDir . '/symfony/http-kernel/Profiler/Profiler.php', - 'Symfony\\Component\\HttpKernel\\Profiler\\ProfilerStorageInterface' => $vendorDir . '/symfony/http-kernel/Profiler/ProfilerStorageInterface.php', - 'Symfony\\Component\\HttpKernel\\RebootableInterface' => $vendorDir . '/symfony/http-kernel/RebootableInterface.php', - 'Symfony\\Component\\HttpKernel\\TerminableInterface' => $vendorDir . '/symfony/http-kernel/TerminableInterface.php', - 'Symfony\\Component\\HttpKernel\\UriSigner' => $vendorDir . '/symfony/http-kernel/UriSigner.php', - 'Symfony\\Component\\Process\\Exception\\ExceptionInterface' => $vendorDir . '/symfony/process/Exception/ExceptionInterface.php', - 'Symfony\\Component\\Process\\Exception\\InvalidArgumentException' => $vendorDir . '/symfony/process/Exception/InvalidArgumentException.php', - 'Symfony\\Component\\Process\\Exception\\LogicException' => $vendorDir . '/symfony/process/Exception/LogicException.php', - 'Symfony\\Component\\Process\\Exception\\ProcessFailedException' => $vendorDir . '/symfony/process/Exception/ProcessFailedException.php', - 'Symfony\\Component\\Process\\Exception\\ProcessSignaledException' => $vendorDir . '/symfony/process/Exception/ProcessSignaledException.php', - 'Symfony\\Component\\Process\\Exception\\ProcessTimedOutException' => $vendorDir . '/symfony/process/Exception/ProcessTimedOutException.php', - 'Symfony\\Component\\Process\\Exception\\RuntimeException' => $vendorDir . '/symfony/process/Exception/RuntimeException.php', - 'Symfony\\Component\\Process\\ExecutableFinder' => $vendorDir . '/symfony/process/ExecutableFinder.php', - 'Symfony\\Component\\Process\\InputStream' => $vendorDir . '/symfony/process/InputStream.php', - 'Symfony\\Component\\Process\\PhpExecutableFinder' => $vendorDir . '/symfony/process/PhpExecutableFinder.php', - 'Symfony\\Component\\Process\\PhpProcess' => $vendorDir . '/symfony/process/PhpProcess.php', - 'Symfony\\Component\\Process\\Pipes\\AbstractPipes' => $vendorDir . '/symfony/process/Pipes/AbstractPipes.php', - 'Symfony\\Component\\Process\\Pipes\\PipesInterface' => $vendorDir . '/symfony/process/Pipes/PipesInterface.php', - 'Symfony\\Component\\Process\\Pipes\\UnixPipes' => $vendorDir . '/symfony/process/Pipes/UnixPipes.php', - 'Symfony\\Component\\Process\\Pipes\\WindowsPipes' => $vendorDir . '/symfony/process/Pipes/WindowsPipes.php', - 'Symfony\\Component\\Process\\Process' => $vendorDir . '/symfony/process/Process.php', - 'Symfony\\Component\\Process\\ProcessUtils' => $vendorDir . '/symfony/process/ProcessUtils.php', - 'Symfony\\Component\\Routing\\Annotation\\Route' => $vendorDir . '/symfony/routing/Annotation/Route.php', - 'Symfony\\Component\\Routing\\CompiledRoute' => $vendorDir . '/symfony/routing/CompiledRoute.php', - 'Symfony\\Component\\Routing\\DependencyInjection\\RoutingResolverPass' => $vendorDir . '/symfony/routing/DependencyInjection/RoutingResolverPass.php', - 'Symfony\\Component\\Routing\\Exception\\ExceptionInterface' => $vendorDir . '/symfony/routing/Exception/ExceptionInterface.php', - 'Symfony\\Component\\Routing\\Exception\\InvalidParameterException' => $vendorDir . '/symfony/routing/Exception/InvalidParameterException.php', - 'Symfony\\Component\\Routing\\Exception\\MethodNotAllowedException' => $vendorDir . '/symfony/routing/Exception/MethodNotAllowedException.php', - 'Symfony\\Component\\Routing\\Exception\\MissingMandatoryParametersException' => $vendorDir . '/symfony/routing/Exception/MissingMandatoryParametersException.php', - 'Symfony\\Component\\Routing\\Exception\\NoConfigurationException' => $vendorDir . '/symfony/routing/Exception/NoConfigurationException.php', - 'Symfony\\Component\\Routing\\Exception\\ResourceNotFoundException' => $vendorDir . '/symfony/routing/Exception/ResourceNotFoundException.php', - 'Symfony\\Component\\Routing\\Exception\\RouteNotFoundException' => $vendorDir . '/symfony/routing/Exception/RouteNotFoundException.php', - 'Symfony\\Component\\Routing\\Generator\\ConfigurableRequirementsInterface' => $vendorDir . '/symfony/routing/Generator/ConfigurableRequirementsInterface.php', - 'Symfony\\Component\\Routing\\Generator\\Dumper\\GeneratorDumper' => $vendorDir . '/symfony/routing/Generator/Dumper/GeneratorDumper.php', - 'Symfony\\Component\\Routing\\Generator\\Dumper\\GeneratorDumperInterface' => $vendorDir . '/symfony/routing/Generator/Dumper/GeneratorDumperInterface.php', - 'Symfony\\Component\\Routing\\Generator\\Dumper\\PhpGeneratorDumper' => $vendorDir . '/symfony/routing/Generator/Dumper/PhpGeneratorDumper.php', - 'Symfony\\Component\\Routing\\Generator\\UrlGenerator' => $vendorDir . '/symfony/routing/Generator/UrlGenerator.php', - 'Symfony\\Component\\Routing\\Generator\\UrlGeneratorInterface' => $vendorDir . '/symfony/routing/Generator/UrlGeneratorInterface.php', - 'Symfony\\Component\\Routing\\Loader\\AnnotationClassLoader' => $vendorDir . '/symfony/routing/Loader/AnnotationClassLoader.php', - 'Symfony\\Component\\Routing\\Loader\\AnnotationDirectoryLoader' => $vendorDir . '/symfony/routing/Loader/AnnotationDirectoryLoader.php', - 'Symfony\\Component\\Routing\\Loader\\AnnotationFileLoader' => $vendorDir . '/symfony/routing/Loader/AnnotationFileLoader.php', - 'Symfony\\Component\\Routing\\Loader\\ClosureLoader' => $vendorDir . '/symfony/routing/Loader/ClosureLoader.php', - 'Symfony\\Component\\Routing\\Loader\\Configurator\\CollectionConfigurator' => $vendorDir . '/symfony/routing/Loader/Configurator/CollectionConfigurator.php', - 'Symfony\\Component\\Routing\\Loader\\Configurator\\ImportConfigurator' => $vendorDir . '/symfony/routing/Loader/Configurator/ImportConfigurator.php', - 'Symfony\\Component\\Routing\\Loader\\Configurator\\RouteConfigurator' => $vendorDir . '/symfony/routing/Loader/Configurator/RouteConfigurator.php', - 'Symfony\\Component\\Routing\\Loader\\Configurator\\RoutingConfigurator' => $vendorDir . '/symfony/routing/Loader/Configurator/RoutingConfigurator.php', - 'Symfony\\Component\\Routing\\Loader\\Configurator\\Traits\\AddTrait' => $vendorDir . '/symfony/routing/Loader/Configurator/Traits/AddTrait.php', - 'Symfony\\Component\\Routing\\Loader\\Configurator\\Traits\\RouteTrait' => $vendorDir . '/symfony/routing/Loader/Configurator/Traits/RouteTrait.php', - 'Symfony\\Component\\Routing\\Loader\\DependencyInjection\\ServiceRouterLoader' => $vendorDir . '/symfony/routing/Loader/DependencyInjection/ServiceRouterLoader.php', - 'Symfony\\Component\\Routing\\Loader\\DirectoryLoader' => $vendorDir . '/symfony/routing/Loader/DirectoryLoader.php', - 'Symfony\\Component\\Routing\\Loader\\GlobFileLoader' => $vendorDir . '/symfony/routing/Loader/GlobFileLoader.php', - 'Symfony\\Component\\Routing\\Loader\\ObjectRouteLoader' => $vendorDir . '/symfony/routing/Loader/ObjectRouteLoader.php', - 'Symfony\\Component\\Routing\\Loader\\PhpFileLoader' => $vendorDir . '/symfony/routing/Loader/PhpFileLoader.php', - 'Symfony\\Component\\Routing\\Loader\\ProtectedPhpFileLoader' => $vendorDir . '/symfony/routing/Loader/PhpFileLoader.php', - 'Symfony\\Component\\Routing\\Loader\\XmlFileLoader' => $vendorDir . '/symfony/routing/Loader/XmlFileLoader.php', - 'Symfony\\Component\\Routing\\Loader\\YamlFileLoader' => $vendorDir . '/symfony/routing/Loader/YamlFileLoader.php', - 'Symfony\\Component\\Routing\\Matcher\\Dumper\\MatcherDumper' => $vendorDir . '/symfony/routing/Matcher/Dumper/MatcherDumper.php', - 'Symfony\\Component\\Routing\\Matcher\\Dumper\\MatcherDumperInterface' => $vendorDir . '/symfony/routing/Matcher/Dumper/MatcherDumperInterface.php', - 'Symfony\\Component\\Routing\\Matcher\\Dumper\\PhpMatcherDumper' => $vendorDir . '/symfony/routing/Matcher/Dumper/PhpMatcherDumper.php', - 'Symfony\\Component\\Routing\\Matcher\\Dumper\\StaticPrefixCollection' => $vendorDir . '/symfony/routing/Matcher/Dumper/StaticPrefixCollection.php', - 'Symfony\\Component\\Routing\\Matcher\\RedirectableUrlMatcher' => $vendorDir . '/symfony/routing/Matcher/RedirectableUrlMatcher.php', - 'Symfony\\Component\\Routing\\Matcher\\RedirectableUrlMatcherInterface' => $vendorDir . '/symfony/routing/Matcher/RedirectableUrlMatcherInterface.php', - 'Symfony\\Component\\Routing\\Matcher\\RequestMatcherInterface' => $vendorDir . '/symfony/routing/Matcher/RequestMatcherInterface.php', - 'Symfony\\Component\\Routing\\Matcher\\TraceableUrlMatcher' => $vendorDir . '/symfony/routing/Matcher/TraceableUrlMatcher.php', - 'Symfony\\Component\\Routing\\Matcher\\UrlMatcher' => $vendorDir . '/symfony/routing/Matcher/UrlMatcher.php', - 'Symfony\\Component\\Routing\\Matcher\\UrlMatcherInterface' => $vendorDir . '/symfony/routing/Matcher/UrlMatcherInterface.php', - 'Symfony\\Component\\Routing\\RequestContext' => $vendorDir . '/symfony/routing/RequestContext.php', - 'Symfony\\Component\\Routing\\RequestContextAwareInterface' => $vendorDir . '/symfony/routing/RequestContextAwareInterface.php', - 'Symfony\\Component\\Routing\\Route' => $vendorDir . '/symfony/routing/Route.php', - 'Symfony\\Component\\Routing\\RouteCollection' => $vendorDir . '/symfony/routing/RouteCollection.php', - 'Symfony\\Component\\Routing\\RouteCollectionBuilder' => $vendorDir . '/symfony/routing/RouteCollectionBuilder.php', - 'Symfony\\Component\\Routing\\RouteCompiler' => $vendorDir . '/symfony/routing/RouteCompiler.php', - 'Symfony\\Component\\Routing\\RouteCompilerInterface' => $vendorDir . '/symfony/routing/RouteCompilerInterface.php', - 'Symfony\\Component\\Routing\\Router' => $vendorDir . '/symfony/routing/Router.php', - 'Symfony\\Component\\Routing\\RouterInterface' => $vendorDir . '/symfony/routing/RouterInterface.php', - 'Symfony\\Component\\Translation\\Catalogue\\AbstractOperation' => $vendorDir . '/symfony/translation/Catalogue/AbstractOperation.php', - 'Symfony\\Component\\Translation\\Catalogue\\MergeOperation' => $vendorDir . '/symfony/translation/Catalogue/MergeOperation.php', - 'Symfony\\Component\\Translation\\Catalogue\\OperationInterface' => $vendorDir . '/symfony/translation/Catalogue/OperationInterface.php', - 'Symfony\\Component\\Translation\\Catalogue\\TargetOperation' => $vendorDir . '/symfony/translation/Catalogue/TargetOperation.php', - 'Symfony\\Component\\Translation\\Command\\XliffLintCommand' => $vendorDir . '/symfony/translation/Command/XliffLintCommand.php', - 'Symfony\\Component\\Translation\\DataCollectorTranslator' => $vendorDir . '/symfony/translation/DataCollectorTranslator.php', - 'Symfony\\Component\\Translation\\DataCollector\\TranslationDataCollector' => $vendorDir . '/symfony/translation/DataCollector/TranslationDataCollector.php', - 'Symfony\\Component\\Translation\\DependencyInjection\\TranslationDumperPass' => $vendorDir . '/symfony/translation/DependencyInjection/TranslationDumperPass.php', - 'Symfony\\Component\\Translation\\DependencyInjection\\TranslationExtractorPass' => $vendorDir . '/symfony/translation/DependencyInjection/TranslationExtractorPass.php', - 'Symfony\\Component\\Translation\\DependencyInjection\\TranslatorPass' => $vendorDir . '/symfony/translation/DependencyInjection/TranslatorPass.php', - 'Symfony\\Component\\Translation\\Dumper\\CsvFileDumper' => $vendorDir . '/symfony/translation/Dumper/CsvFileDumper.php', - 'Symfony\\Component\\Translation\\Dumper\\DumperInterface' => $vendorDir . '/symfony/translation/Dumper/DumperInterface.php', - 'Symfony\\Component\\Translation\\Dumper\\FileDumper' => $vendorDir . '/symfony/translation/Dumper/FileDumper.php', - 'Symfony\\Component\\Translation\\Dumper\\IcuResFileDumper' => $vendorDir . '/symfony/translation/Dumper/IcuResFileDumper.php', - 'Symfony\\Component\\Translation\\Dumper\\IniFileDumper' => $vendorDir . '/symfony/translation/Dumper/IniFileDumper.php', - 'Symfony\\Component\\Translation\\Dumper\\JsonFileDumper' => $vendorDir . '/symfony/translation/Dumper/JsonFileDumper.php', - 'Symfony\\Component\\Translation\\Dumper\\MoFileDumper' => $vendorDir . '/symfony/translation/Dumper/MoFileDumper.php', - 'Symfony\\Component\\Translation\\Dumper\\PhpFileDumper' => $vendorDir . '/symfony/translation/Dumper/PhpFileDumper.php', - 'Symfony\\Component\\Translation\\Dumper\\PoFileDumper' => $vendorDir . '/symfony/translation/Dumper/PoFileDumper.php', - 'Symfony\\Component\\Translation\\Dumper\\QtFileDumper' => $vendorDir . '/symfony/translation/Dumper/QtFileDumper.php', - 'Symfony\\Component\\Translation\\Dumper\\XliffFileDumper' => $vendorDir . '/symfony/translation/Dumper/XliffFileDumper.php', - 'Symfony\\Component\\Translation\\Dumper\\YamlFileDumper' => $vendorDir . '/symfony/translation/Dumper/YamlFileDumper.php', - 'Symfony\\Component\\Translation\\Exception\\ExceptionInterface' => $vendorDir . '/symfony/translation/Exception/ExceptionInterface.php', - 'Symfony\\Component\\Translation\\Exception\\InvalidArgumentException' => $vendorDir . '/symfony/translation/Exception/InvalidArgumentException.php', - 'Symfony\\Component\\Translation\\Exception\\InvalidResourceException' => $vendorDir . '/symfony/translation/Exception/InvalidResourceException.php', - 'Symfony\\Component\\Translation\\Exception\\LogicException' => $vendorDir . '/symfony/translation/Exception/LogicException.php', - 'Symfony\\Component\\Translation\\Exception\\NotFoundResourceException' => $vendorDir . '/symfony/translation/Exception/NotFoundResourceException.php', - 'Symfony\\Component\\Translation\\Exception\\RuntimeException' => $vendorDir . '/symfony/translation/Exception/RuntimeException.php', - 'Symfony\\Component\\Translation\\Extractor\\AbstractFileExtractor' => $vendorDir . '/symfony/translation/Extractor/AbstractFileExtractor.php', - 'Symfony\\Component\\Translation\\Extractor\\ChainExtractor' => $vendorDir . '/symfony/translation/Extractor/ChainExtractor.php', - 'Symfony\\Component\\Translation\\Extractor\\ExtractorInterface' => $vendorDir . '/symfony/translation/Extractor/ExtractorInterface.php', - 'Symfony\\Component\\Translation\\Extractor\\PhpExtractor' => $vendorDir . '/symfony/translation/Extractor/PhpExtractor.php', - 'Symfony\\Component\\Translation\\Extractor\\PhpStringTokenParser' => $vendorDir . '/symfony/translation/Extractor/PhpStringTokenParser.php', - 'Symfony\\Component\\Translation\\Formatter\\ChoiceMessageFormatterInterface' => $vendorDir . '/symfony/translation/Formatter/ChoiceMessageFormatterInterface.php', - 'Symfony\\Component\\Translation\\Formatter\\MessageFormatter' => $vendorDir . '/symfony/translation/Formatter/MessageFormatter.php', - 'Symfony\\Component\\Translation\\Formatter\\MessageFormatterInterface' => $vendorDir . '/symfony/translation/Formatter/MessageFormatterInterface.php', - 'Symfony\\Component\\Translation\\IdentityTranslator' => $vendorDir . '/symfony/translation/IdentityTranslator.php', - 'Symfony\\Component\\Translation\\Interval' => $vendorDir . '/symfony/translation/Interval.php', - 'Symfony\\Component\\Translation\\Loader\\ArrayLoader' => $vendorDir . '/symfony/translation/Loader/ArrayLoader.php', - 'Symfony\\Component\\Translation\\Loader\\CsvFileLoader' => $vendorDir . '/symfony/translation/Loader/CsvFileLoader.php', - 'Symfony\\Component\\Translation\\Loader\\FileLoader' => $vendorDir . '/symfony/translation/Loader/FileLoader.php', - 'Symfony\\Component\\Translation\\Loader\\IcuDatFileLoader' => $vendorDir . '/symfony/translation/Loader/IcuDatFileLoader.php', - 'Symfony\\Component\\Translation\\Loader\\IcuResFileLoader' => $vendorDir . '/symfony/translation/Loader/IcuResFileLoader.php', - 'Symfony\\Component\\Translation\\Loader\\IniFileLoader' => $vendorDir . '/symfony/translation/Loader/IniFileLoader.php', - 'Symfony\\Component\\Translation\\Loader\\JsonFileLoader' => $vendorDir . '/symfony/translation/Loader/JsonFileLoader.php', - 'Symfony\\Component\\Translation\\Loader\\LoaderInterface' => $vendorDir . '/symfony/translation/Loader/LoaderInterface.php', - 'Symfony\\Component\\Translation\\Loader\\MoFileLoader' => $vendorDir . '/symfony/translation/Loader/MoFileLoader.php', - 'Symfony\\Component\\Translation\\Loader\\PhpFileLoader' => $vendorDir . '/symfony/translation/Loader/PhpFileLoader.php', - 'Symfony\\Component\\Translation\\Loader\\PoFileLoader' => $vendorDir . '/symfony/translation/Loader/PoFileLoader.php', - 'Symfony\\Component\\Translation\\Loader\\QtFileLoader' => $vendorDir . '/symfony/translation/Loader/QtFileLoader.php', - 'Symfony\\Component\\Translation\\Loader\\XliffFileLoader' => $vendorDir . '/symfony/translation/Loader/XliffFileLoader.php', - 'Symfony\\Component\\Translation\\Loader\\YamlFileLoader' => $vendorDir . '/symfony/translation/Loader/YamlFileLoader.php', - 'Symfony\\Component\\Translation\\LoggingTranslator' => $vendorDir . '/symfony/translation/LoggingTranslator.php', - 'Symfony\\Component\\Translation\\MessageCatalogue' => $vendorDir . '/symfony/translation/MessageCatalogue.php', - 'Symfony\\Component\\Translation\\MessageCatalogueInterface' => $vendorDir . '/symfony/translation/MessageCatalogueInterface.php', - 'Symfony\\Component\\Translation\\MessageSelector' => $vendorDir . '/symfony/translation/MessageSelector.php', - 'Symfony\\Component\\Translation\\MetadataAwareInterface' => $vendorDir . '/symfony/translation/MetadataAwareInterface.php', - 'Symfony\\Component\\Translation\\PluralizationRules' => $vendorDir . '/symfony/translation/PluralizationRules.php', - 'Symfony\\Component\\Translation\\Reader\\TranslationReader' => $vendorDir . '/symfony/translation/Reader/TranslationReader.php', - 'Symfony\\Component\\Translation\\Reader\\TranslationReaderInterface' => $vendorDir . '/symfony/translation/Reader/TranslationReaderInterface.php', - 'Symfony\\Component\\Translation\\Translator' => $vendorDir . '/symfony/translation/Translator.php', - 'Symfony\\Component\\Translation\\TranslatorBagInterface' => $vendorDir . '/symfony/translation/TranslatorBagInterface.php', - 'Symfony\\Component\\Translation\\TranslatorInterface' => $vendorDir . '/symfony/translation/TranslatorInterface.php', - 'Symfony\\Component\\Translation\\Util\\ArrayConverter' => $vendorDir . '/symfony/translation/Util/ArrayConverter.php', - 'Symfony\\Component\\Translation\\Writer\\TranslationWriter' => $vendorDir . '/symfony/translation/Writer/TranslationWriter.php', - 'Symfony\\Component\\Translation\\Writer\\TranslationWriterInterface' => $vendorDir . '/symfony/translation/Writer/TranslationWriterInterface.php', - 'Symfony\\Component\\VarDumper\\Caster\\AmqpCaster' => $vendorDir . '/symfony/var-dumper/Caster/AmqpCaster.php', - 'Symfony\\Component\\VarDumper\\Caster\\ArgsStub' => $vendorDir . '/symfony/var-dumper/Caster/ArgsStub.php', - 'Symfony\\Component\\VarDumper\\Caster\\Caster' => $vendorDir . '/symfony/var-dumper/Caster/Caster.php', - 'Symfony\\Component\\VarDumper\\Caster\\ClassStub' => $vendorDir . '/symfony/var-dumper/Caster/ClassStub.php', - 'Symfony\\Component\\VarDumper\\Caster\\ConstStub' => $vendorDir . '/symfony/var-dumper/Caster/ConstStub.php', - 'Symfony\\Component\\VarDumper\\Caster\\CutArrayStub' => $vendorDir . '/symfony/var-dumper/Caster/CutArrayStub.php', - 'Symfony\\Component\\VarDumper\\Caster\\CutStub' => $vendorDir . '/symfony/var-dumper/Caster/CutStub.php', - 'Symfony\\Component\\VarDumper\\Caster\\DOMCaster' => $vendorDir . '/symfony/var-dumper/Caster/DOMCaster.php', - 'Symfony\\Component\\VarDumper\\Caster\\DateCaster' => $vendorDir . '/symfony/var-dumper/Caster/DateCaster.php', - 'Symfony\\Component\\VarDumper\\Caster\\DoctrineCaster' => $vendorDir . '/symfony/var-dumper/Caster/DoctrineCaster.php', - 'Symfony\\Component\\VarDumper\\Caster\\EnumStub' => $vendorDir . '/symfony/var-dumper/Caster/EnumStub.php', - 'Symfony\\Component\\VarDumper\\Caster\\ExceptionCaster' => $vendorDir . '/symfony/var-dumper/Caster/ExceptionCaster.php', - 'Symfony\\Component\\VarDumper\\Caster\\FrameStub' => $vendorDir . '/symfony/var-dumper/Caster/FrameStub.php', - 'Symfony\\Component\\VarDumper\\Caster\\GmpCaster' => $vendorDir . '/symfony/var-dumper/Caster/GmpCaster.php', - 'Symfony\\Component\\VarDumper\\Caster\\LinkStub' => $vendorDir . '/symfony/var-dumper/Caster/LinkStub.php', - 'Symfony\\Component\\VarDumper\\Caster\\PdoCaster' => $vendorDir . '/symfony/var-dumper/Caster/PdoCaster.php', - 'Symfony\\Component\\VarDumper\\Caster\\PgSqlCaster' => $vendorDir . '/symfony/var-dumper/Caster/PgSqlCaster.php', - 'Symfony\\Component\\VarDumper\\Caster\\RedisCaster' => $vendorDir . '/symfony/var-dumper/Caster/RedisCaster.php', - 'Symfony\\Component\\VarDumper\\Caster\\ReflectionCaster' => $vendorDir . '/symfony/var-dumper/Caster/ReflectionCaster.php', - 'Symfony\\Component\\VarDumper\\Caster\\ResourceCaster' => $vendorDir . '/symfony/var-dumper/Caster/ResourceCaster.php', - 'Symfony\\Component\\VarDumper\\Caster\\SplCaster' => $vendorDir . '/symfony/var-dumper/Caster/SplCaster.php', - 'Symfony\\Component\\VarDumper\\Caster\\StubCaster' => $vendorDir . '/symfony/var-dumper/Caster/StubCaster.php', - 'Symfony\\Component\\VarDumper\\Caster\\SymfonyCaster' => $vendorDir . '/symfony/var-dumper/Caster/SymfonyCaster.php', - 'Symfony\\Component\\VarDumper\\Caster\\TraceStub' => $vendorDir . '/symfony/var-dumper/Caster/TraceStub.php', - 'Symfony\\Component\\VarDumper\\Caster\\XmlReaderCaster' => $vendorDir . '/symfony/var-dumper/Caster/XmlReaderCaster.php', - 'Symfony\\Component\\VarDumper\\Caster\\XmlResourceCaster' => $vendorDir . '/symfony/var-dumper/Caster/XmlResourceCaster.php', - 'Symfony\\Component\\VarDumper\\Cloner\\AbstractCloner' => $vendorDir . '/symfony/var-dumper/Cloner/AbstractCloner.php', - 'Symfony\\Component\\VarDumper\\Cloner\\ClonerInterface' => $vendorDir . '/symfony/var-dumper/Cloner/ClonerInterface.php', - 'Symfony\\Component\\VarDumper\\Cloner\\Cursor' => $vendorDir . '/symfony/var-dumper/Cloner/Cursor.php', - 'Symfony\\Component\\VarDumper\\Cloner\\Data' => $vendorDir . '/symfony/var-dumper/Cloner/Data.php', - 'Symfony\\Component\\VarDumper\\Cloner\\DumperInterface' => $vendorDir . '/symfony/var-dumper/Cloner/DumperInterface.php', - 'Symfony\\Component\\VarDumper\\Cloner\\Stub' => $vendorDir . '/symfony/var-dumper/Cloner/Stub.php', - 'Symfony\\Component\\VarDumper\\Cloner\\VarCloner' => $vendorDir . '/symfony/var-dumper/Cloner/VarCloner.php', - 'Symfony\\Component\\VarDumper\\Command\\Descriptor\\CliDescriptor' => $vendorDir . '/symfony/var-dumper/Command/Descriptor/CliDescriptor.php', - 'Symfony\\Component\\VarDumper\\Command\\Descriptor\\DumpDescriptorInterface' => $vendorDir . '/symfony/var-dumper/Command/Descriptor/DumpDescriptorInterface.php', - 'Symfony\\Component\\VarDumper\\Command\\Descriptor\\HtmlDescriptor' => $vendorDir . '/symfony/var-dumper/Command/Descriptor/HtmlDescriptor.php', - 'Symfony\\Component\\VarDumper\\Command\\ServerDumpCommand' => $vendorDir . '/symfony/var-dumper/Command/ServerDumpCommand.php', - 'Symfony\\Component\\VarDumper\\Dumper\\AbstractDumper' => $vendorDir . '/symfony/var-dumper/Dumper/AbstractDumper.php', - 'Symfony\\Component\\VarDumper\\Dumper\\CliDumper' => $vendorDir . '/symfony/var-dumper/Dumper/CliDumper.php', - 'Symfony\\Component\\VarDumper\\Dumper\\ContextProvider\\CliContextProvider' => $vendorDir . '/symfony/var-dumper/Dumper/ContextProvider/CliContextProvider.php', - 'Symfony\\Component\\VarDumper\\Dumper\\ContextProvider\\ContextProviderInterface' => $vendorDir . '/symfony/var-dumper/Dumper/ContextProvider/ContextProviderInterface.php', - 'Symfony\\Component\\VarDumper\\Dumper\\ContextProvider\\RequestContextProvider' => $vendorDir . '/symfony/var-dumper/Dumper/ContextProvider/RequestContextProvider.php', - 'Symfony\\Component\\VarDumper\\Dumper\\ContextProvider\\SourceContextProvider' => $vendorDir . '/symfony/var-dumper/Dumper/ContextProvider/SourceContextProvider.php', - 'Symfony\\Component\\VarDumper\\Dumper\\DataDumperInterface' => $vendorDir . '/symfony/var-dumper/Dumper/DataDumperInterface.php', - 'Symfony\\Component\\VarDumper\\Dumper\\HtmlDumper' => $vendorDir . '/symfony/var-dumper/Dumper/HtmlDumper.php', - 'Symfony\\Component\\VarDumper\\Dumper\\ServerDumper' => $vendorDir . '/symfony/var-dumper/Dumper/ServerDumper.php', - 'Symfony\\Component\\VarDumper\\Exception\\ThrowingCasterException' => $vendorDir . '/symfony/var-dumper/Exception/ThrowingCasterException.php', - 'Symfony\\Component\\VarDumper\\Server\\Connection' => $vendorDir . '/symfony/var-dumper/Server/Connection.php', - 'Symfony\\Component\\VarDumper\\Server\\DumpServer' => $vendorDir . '/symfony/var-dumper/Server/DumpServer.php', - 'Symfony\\Component\\VarDumper\\Test\\VarDumperTestTrait' => $vendorDir . '/symfony/var-dumper/Test/VarDumperTestTrait.php', - 'Symfony\\Component\\VarDumper\\VarDumper' => $vendorDir . '/symfony/var-dumper/VarDumper.php', - 'Symfony\\Polyfill\\Ctype\\Ctype' => $vendorDir . '/symfony/polyfill-ctype/Ctype.php', - 'Symfony\\Polyfill\\Mbstring\\Mbstring' => $vendorDir . '/symfony/polyfill-mbstring/Mbstring.php', - 'Symfony\\Polyfill\\Php72\\Php72' => $vendorDir . '/symfony/polyfill-php72/Php72.php', - 'TagSeeder' => $baseDir . '/database/seeds/TagSeeder.php', - 'Tests\\CreatesApplication' => $baseDir . '/tests/CreatesApplication.php', - 'Tests\\Feature\\ExampleTest' => $baseDir . '/tests/Feature/ExampleTest.php', - 'Tests\\TestCase' => $baseDir . '/tests/TestCase.php', - 'Tests\\Unit\\ExampleTest' => $baseDir . '/tests/Unit/ExampleTest.php', - 'Text_Template' => $vendorDir . '/phpunit/php-text-template/src/Template.php', - 'TheSeer\\Tokenizer\\Exception' => $vendorDir . '/theseer/tokenizer/src/Exception.php', - 'TheSeer\\Tokenizer\\NamespaceUri' => $vendorDir . '/theseer/tokenizer/src/NamespaceUri.php', - 'TheSeer\\Tokenizer\\NamespaceUriException' => $vendorDir . '/theseer/tokenizer/src/NamespaceUriException.php', - 'TheSeer\\Tokenizer\\Token' => $vendorDir . '/theseer/tokenizer/src/Token.php', - 'TheSeer\\Tokenizer\\TokenCollection' => $vendorDir . '/theseer/tokenizer/src/TokenCollection.php', - 'TheSeer\\Tokenizer\\TokenCollectionException' => $vendorDir . '/theseer/tokenizer/src/TokenCollectionException.php', - 'TheSeer\\Tokenizer\\Tokenizer' => $vendorDir . '/theseer/tokenizer/src/Tokenizer.php', - 'TheSeer\\Tokenizer\\XMLSerializer' => $vendorDir . '/theseer/tokenizer/src/XMLSerializer.php', - 'TijsVerkoyen\\CssToInlineStyles\\CssToInlineStyles' => $vendorDir . '/tijsverkoyen/css-to-inline-styles/src/CssToInlineStyles.php', - 'TijsVerkoyen\\CssToInlineStyles\\Css\\Processor' => $vendorDir . '/tijsverkoyen/css-to-inline-styles/src/Css/Processor.php', - 'TijsVerkoyen\\CssToInlineStyles\\Css\\Property\\Processor' => $vendorDir . '/tijsverkoyen/css-to-inline-styles/src/Css/Property/Processor.php', - 'TijsVerkoyen\\CssToInlineStyles\\Css\\Property\\Property' => $vendorDir . '/tijsverkoyen/css-to-inline-styles/src/Css/Property/Property.php', - 'TijsVerkoyen\\CssToInlineStyles\\Css\\Rule\\Processor' => $vendorDir . '/tijsverkoyen/css-to-inline-styles/src/Css/Rule/Processor.php', - 'TijsVerkoyen\\CssToInlineStyles\\Css\\Rule\\Rule' => $vendorDir . '/tijsverkoyen/css-to-inline-styles/src/Css/Rule/Rule.php', - 'Toolkito\\Larasap\\Facebook\\Api' => $vendorDir . '/toolkito/larasap/src/Facebook/Api.php', - 'Toolkito\\Larasap\\LarasapServiceProvider' => $vendorDir . '/toolkito/larasap/src/LarasapServiceProvider.php', - 'Toolkito\\Larasap\\SendTo' => $vendorDir . '/toolkito/larasap/src/SendTo.php', - 'Toolkito\\Larasap\\Telegram\\Api' => $vendorDir . '/toolkito/larasap/src/Telegram/Api.php', - 'Toolkito\\Larasap\\Twitter\\Api' => $vendorDir . '/toolkito/larasap/src/Twitter/Api.php', - 'Toolkito\\Larasap\\Twitter\\TwitterException' => $vendorDir . '/toolkito/larasap/src/Twitter/Api.php', - 'Toolkito\\Larasap\\Twitter\\Twitter_OAuthConsumer' => $vendorDir . '/toolkito/larasap/src/Twitter/OAuth.php', - 'Toolkito\\Larasap\\Twitter\\Twitter_OAuthDataStore' => $vendorDir . '/toolkito/larasap/src/Twitter/OAuth.php', - 'Toolkito\\Larasap\\Twitter\\Twitter_OAuthException' => $vendorDir . '/toolkito/larasap/src/Twitter/OAuth.php', - 'Toolkito\\Larasap\\Twitter\\Twitter_OAuthRequest' => $vendorDir . '/toolkito/larasap/src/Twitter/OAuth.php', - 'Toolkito\\Larasap\\Twitter\\Twitter_OAuthServer' => $vendorDir . '/toolkito/larasap/src/Twitter/OAuth.php', - 'Toolkito\\Larasap\\Twitter\\Twitter_OAuthSignatureMethod' => $vendorDir . '/toolkito/larasap/src/Twitter/OAuth.php', - 'Toolkito\\Larasap\\Twitter\\Twitter_OAuthSignatureMethod_HMAC_SHA1' => $vendorDir . '/toolkito/larasap/src/Twitter/OAuth.php', - 'Toolkito\\Larasap\\Twitter\\Twitter_OAuthSignatureMethod_PLAINTEXT' => $vendorDir . '/toolkito/larasap/src/Twitter/OAuth.php', - 'Toolkito\\Larasap\\Twitter\\Twitter_OAuthSignatureMethod_RSA_SHA1' => $vendorDir . '/toolkito/larasap/src/Twitter/OAuth.php', - 'Toolkito\\Larasap\\Twitter\\Twitter_OAuthToken' => $vendorDir . '/toolkito/larasap/src/Twitter/OAuth.php', - 'Toolkito\\Larasap\\Twitter\\Twitter_OAuthUtil' => $vendorDir . '/toolkito/larasap/src/Twitter/OAuth.php', - 'UserSeeder' => $baseDir . '/database/seeds/UserSeeder.php', - 'VehicleSeeder' => $baseDir . '/database/seeds/VehicleSeeder.php', - 'Webmozart\\Assert\\Assert' => $vendorDir . '/webmozart/assert/src/Assert.php', - 'Whoops\\Exception\\ErrorException' => $vendorDir . '/filp/whoops/src/Whoops/Exception/ErrorException.php', - 'Whoops\\Exception\\Formatter' => $vendorDir . '/filp/whoops/src/Whoops/Exception/Formatter.php', - 'Whoops\\Exception\\Frame' => $vendorDir . '/filp/whoops/src/Whoops/Exception/Frame.php', - 'Whoops\\Exception\\FrameCollection' => $vendorDir . '/filp/whoops/src/Whoops/Exception/FrameCollection.php', - 'Whoops\\Exception\\Inspector' => $vendorDir . '/filp/whoops/src/Whoops/Exception/Inspector.php', - 'Whoops\\Handler\\CallbackHandler' => $vendorDir . '/filp/whoops/src/Whoops/Handler/CallbackHandler.php', - 'Whoops\\Handler\\Handler' => $vendorDir . '/filp/whoops/src/Whoops/Handler/Handler.php', - 'Whoops\\Handler\\HandlerInterface' => $vendorDir . '/filp/whoops/src/Whoops/Handler/HandlerInterface.php', - 'Whoops\\Handler\\JsonResponseHandler' => $vendorDir . '/filp/whoops/src/Whoops/Handler/JsonResponseHandler.php', - 'Whoops\\Handler\\PlainTextHandler' => $vendorDir . '/filp/whoops/src/Whoops/Handler/PlainTextHandler.php', - 'Whoops\\Handler\\PrettyPageHandler' => $vendorDir . '/filp/whoops/src/Whoops/Handler/PrettyPageHandler.php', - 'Whoops\\Handler\\XmlResponseHandler' => $vendorDir . '/filp/whoops/src/Whoops/Handler/XmlResponseHandler.php', - 'Whoops\\Run' => $vendorDir . '/filp/whoops/src/Whoops/Run.php', - 'Whoops\\RunInterface' => $vendorDir . '/filp/whoops/src/Whoops/RunInterface.php', - 'Whoops\\Util\\HtmlDumperOutput' => $vendorDir . '/filp/whoops/src/Whoops/Util/HtmlDumperOutput.php', - 'Whoops\\Util\\Misc' => $vendorDir . '/filp/whoops/src/Whoops/Util/Misc.php', - 'Whoops\\Util\\SystemFacade' => $vendorDir . '/filp/whoops/src/Whoops/Util/SystemFacade.php', - 'Whoops\\Util\\TemplateHelper' => $vendorDir . '/filp/whoops/src/Whoops/Util/TemplateHelper.php', - 'XdgBaseDir\\Xdg' => $vendorDir . '/dnoegel/php-xdg-base-dir/src/Xdg.php', - 'phpDocumentor\\Reflection\\DocBlock' => $vendorDir . '/phpdocumentor/reflection-docblock/src/DocBlock.php', - 'phpDocumentor\\Reflection\\DocBlockFactory' => $vendorDir . '/phpdocumentor/reflection-docblock/src/DocBlockFactory.php', - 'phpDocumentor\\Reflection\\DocBlockFactoryInterface' => $vendorDir . '/phpdocumentor/reflection-docblock/src/DocBlockFactoryInterface.php', - 'phpDocumentor\\Reflection\\DocBlock\\Description' => $vendorDir . '/phpdocumentor/reflection-docblock/src/DocBlock/Description.php', - 'phpDocumentor\\Reflection\\DocBlock\\DescriptionFactory' => $vendorDir . '/phpdocumentor/reflection-docblock/src/DocBlock/DescriptionFactory.php', - 'phpDocumentor\\Reflection\\DocBlock\\ExampleFinder' => $vendorDir . '/phpdocumentor/reflection-docblock/src/DocBlock/ExampleFinder.php', - 'phpDocumentor\\Reflection\\DocBlock\\Serializer' => $vendorDir . '/phpdocumentor/reflection-docblock/src/DocBlock/Serializer.php', - 'phpDocumentor\\Reflection\\DocBlock\\StandardTagFactory' => $vendorDir . '/phpdocumentor/reflection-docblock/src/DocBlock/StandardTagFactory.php', - 'phpDocumentor\\Reflection\\DocBlock\\Tag' => $vendorDir . '/phpdocumentor/reflection-docblock/src/DocBlock/Tag.php', - 'phpDocumentor\\Reflection\\DocBlock\\TagFactory' => $vendorDir . '/phpdocumentor/reflection-docblock/src/DocBlock/TagFactory.php', - 'phpDocumentor\\Reflection\\DocBlock\\Tags\\Author' => $vendorDir . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Author.php', - 'phpDocumentor\\Reflection\\DocBlock\\Tags\\BaseTag' => $vendorDir . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/BaseTag.php', - 'phpDocumentor\\Reflection\\DocBlock\\Tags\\Covers' => $vendorDir . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Covers.php', - 'phpDocumentor\\Reflection\\DocBlock\\Tags\\Deprecated' => $vendorDir . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Deprecated.php', - 'phpDocumentor\\Reflection\\DocBlock\\Tags\\Example' => $vendorDir . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Example.php', - 'phpDocumentor\\Reflection\\DocBlock\\Tags\\Factory\\StaticMethod' => $vendorDir . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Factory/StaticMethod.php', - 'phpDocumentor\\Reflection\\DocBlock\\Tags\\Factory\\Strategy' => $vendorDir . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Factory/Strategy.php', - 'phpDocumentor\\Reflection\\DocBlock\\Tags\\Formatter' => $vendorDir . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Formatter.php', - 'phpDocumentor\\Reflection\\DocBlock\\Tags\\Formatter\\AlignFormatter' => $vendorDir . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Formatter/AlignFormatter.php', - 'phpDocumentor\\Reflection\\DocBlock\\Tags\\Formatter\\PassthroughFormatter' => $vendorDir . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Formatter/PassthroughFormatter.php', - 'phpDocumentor\\Reflection\\DocBlock\\Tags\\Generic' => $vendorDir . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Generic.php', - 'phpDocumentor\\Reflection\\DocBlock\\Tags\\Link' => $vendorDir . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Link.php', - 'phpDocumentor\\Reflection\\DocBlock\\Tags\\Method' => $vendorDir . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Method.php', - 'phpDocumentor\\Reflection\\DocBlock\\Tags\\Param' => $vendorDir . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Param.php', - 'phpDocumentor\\Reflection\\DocBlock\\Tags\\Property' => $vendorDir . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Property.php', - 'phpDocumentor\\Reflection\\DocBlock\\Tags\\PropertyRead' => $vendorDir . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/PropertyRead.php', - 'phpDocumentor\\Reflection\\DocBlock\\Tags\\PropertyWrite' => $vendorDir . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/PropertyWrite.php', - 'phpDocumentor\\Reflection\\DocBlock\\Tags\\Reference\\Fqsen' => $vendorDir . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Reference/Fqsen.php', - 'phpDocumentor\\Reflection\\DocBlock\\Tags\\Reference\\Reference' => $vendorDir . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Reference/Reference.php', - 'phpDocumentor\\Reflection\\DocBlock\\Tags\\Reference\\Url' => $vendorDir . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Reference/Url.php', - 'phpDocumentor\\Reflection\\DocBlock\\Tags\\Return_' => $vendorDir . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Return_.php', - 'phpDocumentor\\Reflection\\DocBlock\\Tags\\See' => $vendorDir . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/See.php', - 'phpDocumentor\\Reflection\\DocBlock\\Tags\\Since' => $vendorDir . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Since.php', - 'phpDocumentor\\Reflection\\DocBlock\\Tags\\Source' => $vendorDir . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Source.php', - 'phpDocumentor\\Reflection\\DocBlock\\Tags\\Throws' => $vendorDir . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Throws.php', - 'phpDocumentor\\Reflection\\DocBlock\\Tags\\Uses' => $vendorDir . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Uses.php', - 'phpDocumentor\\Reflection\\DocBlock\\Tags\\Var_' => $vendorDir . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Var_.php', - 'phpDocumentor\\Reflection\\DocBlock\\Tags\\Version' => $vendorDir . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Version.php', - 'phpDocumentor\\Reflection\\Element' => $vendorDir . '/phpdocumentor/reflection-common/src/Element.php', - 'phpDocumentor\\Reflection\\File' => $vendorDir . '/phpdocumentor/reflection-common/src/File.php', - 'phpDocumentor\\Reflection\\Fqsen' => $vendorDir . '/phpdocumentor/reflection-common/src/Fqsen.php', - 'phpDocumentor\\Reflection\\FqsenResolver' => $vendorDir . '/phpdocumentor/type-resolver/src/FqsenResolver.php', - 'phpDocumentor\\Reflection\\Location' => $vendorDir . '/phpdocumentor/reflection-common/src/Location.php', - 'phpDocumentor\\Reflection\\Project' => $vendorDir . '/phpdocumentor/reflection-common/src/Project.php', - 'phpDocumentor\\Reflection\\ProjectFactory' => $vendorDir . '/phpdocumentor/reflection-common/src/ProjectFactory.php', - 'phpDocumentor\\Reflection\\Type' => $vendorDir . '/phpdocumentor/type-resolver/src/Type.php', - 'phpDocumentor\\Reflection\\TypeResolver' => $vendorDir . '/phpdocumentor/type-resolver/src/TypeResolver.php', - 'phpDocumentor\\Reflection\\Types\\Array_' => $vendorDir . '/phpdocumentor/type-resolver/src/Types/Array_.php', - 'phpDocumentor\\Reflection\\Types\\Boolean' => $vendorDir . '/phpdocumentor/type-resolver/src/Types/Boolean.php', - 'phpDocumentor\\Reflection\\Types\\Callable_' => $vendorDir . '/phpdocumentor/type-resolver/src/Types/Callable_.php', - 'phpDocumentor\\Reflection\\Types\\Compound' => $vendorDir . '/phpdocumentor/type-resolver/src/Types/Compound.php', - 'phpDocumentor\\Reflection\\Types\\Context' => $vendorDir . '/phpdocumentor/type-resolver/src/Types/Context.php', - 'phpDocumentor\\Reflection\\Types\\ContextFactory' => $vendorDir . '/phpdocumentor/type-resolver/src/Types/ContextFactory.php', - 'phpDocumentor\\Reflection\\Types\\Float_' => $vendorDir . '/phpdocumentor/type-resolver/src/Types/Float_.php', - 'phpDocumentor\\Reflection\\Types\\Integer' => $vendorDir . '/phpdocumentor/type-resolver/src/Types/Integer.php', - 'phpDocumentor\\Reflection\\Types\\Iterable_' => $vendorDir . '/phpdocumentor/type-resolver/src/Types/Iterable_.php', - 'phpDocumentor\\Reflection\\Types\\Mixed_' => $vendorDir . '/phpdocumentor/type-resolver/src/Types/Mixed_.php', - 'phpDocumentor\\Reflection\\Types\\Null_' => $vendorDir . '/phpdocumentor/type-resolver/src/Types/Null_.php', - 'phpDocumentor\\Reflection\\Types\\Nullable' => $vendorDir . '/phpdocumentor/type-resolver/src/Types/Nullable.php', - 'phpDocumentor\\Reflection\\Types\\Object_' => $vendorDir . '/phpdocumentor/type-resolver/src/Types/Object_.php', - 'phpDocumentor\\Reflection\\Types\\Parent_' => $vendorDir . '/phpdocumentor/type-resolver/src/Types/Parent_.php', - 'phpDocumentor\\Reflection\\Types\\Resource_' => $vendorDir . '/phpdocumentor/type-resolver/src/Types/Resource_.php', - 'phpDocumentor\\Reflection\\Types\\Scalar' => $vendorDir . '/phpdocumentor/type-resolver/src/Types/Scalar.php', - 'phpDocumentor\\Reflection\\Types\\Self_' => $vendorDir . '/phpdocumentor/type-resolver/src/Types/Self_.php', - 'phpDocumentor\\Reflection\\Types\\Static_' => $vendorDir . '/phpdocumentor/type-resolver/src/Types/Static_.php', - 'phpDocumentor\\Reflection\\Types\\String_' => $vendorDir . '/phpdocumentor/type-resolver/src/Types/String_.php', - 'phpDocumentor\\Reflection\\Types\\This' => $vendorDir . '/phpdocumentor/type-resolver/src/Types/This.php', - 'phpDocumentor\\Reflection\\Types\\Void_' => $vendorDir . '/phpdocumentor/type-resolver/src/Types/Void_.php', -); diff --git a/vendor/composer/autoload_files.php b/vendor/composer/autoload_files.php deleted file mode 100644 index 16b4c286..00000000 --- a/vendor/composer/autoload_files.php +++ /dev/null @@ -1,24 +0,0 @@ - $vendorDir . '/symfony/polyfill-mbstring/bootstrap.php', - '1d1b89d124cc9cb8219922c9d5569199' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest.php', - '25072dd6e2470089de65ae7bf11d3109' => $vendorDir . '/symfony/polyfill-php72/bootstrap.php', - '667aeda72477189d0494fecd327c3641' => $vendorDir . '/symfony/var-dumper/Resources/functions/dump.php', - '320cde22f66dd4f5d3fd621d3e88b98f' => $vendorDir . '/symfony/polyfill-ctype/bootstrap.php', - '2c102faa651ef8ea5874edb585946bce' => $vendorDir . '/swiftmailer/swiftmailer/lib/swift_required.php', - 'f0906e6318348a765ffb6eb24e0d0938' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/helpers.php', - '58571171fd5812e6e447dce228f52f4d' => $vendorDir . '/laravel/framework/src/Illuminate/Support/helpers.php', - 'c65d09b6820da036953a371c8c73a9b1' => $vendorDir . '/facebook/graph-sdk/src/Facebook/polyfills.php', - 'a0edc8309cc5e1d60e3047b5df6b7052' => $vendorDir . '/guzzlehttp/psr7/src/functions_include.php', - '6124b4c8570aa390c21fafd04a26c69f' => $vendorDir . '/myclabs/deep-copy/src/DeepCopy/deep_copy.php', - '801c31d8ed748cfa537fa45402288c95' => $vendorDir . '/psy/psysh/src/functions.php', - '4a1f389d6ce373bda9e57857d3b61c84' => $vendorDir . '/barryvdh/laravel-debugbar/src/helpers.php', - 'f18cc91337d49233e5754e93f3ed9ec3' => $vendorDir . '/laravelcollective/html/src/helpers.php', - '377b22b161c09ed6e5152de788ca020a' => $vendorDir . '/spatie/laravel-permission/src/helpers.php', -); diff --git a/vendor/composer/autoload_namespaces.php b/vendor/composer/autoload_namespaces.php deleted file mode 100644 index c76ab55a..00000000 --- a/vendor/composer/autoload_namespaces.php +++ /dev/null @@ -1,17 +0,0 @@ - array($vendorDir . '/simplesoftwareio/simple-qrcode/src'), - 'Prophecy\\' => array($vendorDir . '/phpspec/prophecy/src'), - 'Parsedown' => array($vendorDir . '/erusev/parsedown'), - 'Mockery' => array($vendorDir . '/mockery/mockery/library'), - 'JakubOnderka\\PhpConsoleHighlighter' => array($vendorDir . '/jakub-onderka/php-console-highlighter/src'), - 'JakubOnderka\\PhpConsoleColor' => array($vendorDir . '/jakub-onderka/php-console-color/src'), - 'Doctrine\\Common\\Lexer\\' => array($vendorDir . '/doctrine/lexer/lib'), - 'BaconQrCode' => array($vendorDir . '/bacon/bacon-qr-code/src'), -); diff --git a/vendor/composer/autoload_psr4.php b/vendor/composer/autoload_psr4.php deleted file mode 100644 index 9c752e84..00000000 --- a/vendor/composer/autoload_psr4.php +++ /dev/null @@ -1,63 +0,0 @@ - array($vendorDir . '/phpdocumentor/reflection-common/src', $vendorDir . '/phpdocumentor/reflection-docblock/src', $vendorDir . '/phpdocumentor/type-resolver/src'), - 'XdgBaseDir\\' => array($vendorDir . '/dnoegel/php-xdg-base-dir/src'), - 'Whoops\\' => array($vendorDir . '/filp/whoops/src/Whoops'), - 'Webmozart\\Assert\\' => array($vendorDir . '/webmozart/assert/src'), - 'Toolkito\\Larasap\\' => array($vendorDir . '/toolkito/larasap/src'), - 'TijsVerkoyen\\CssToInlineStyles\\' => array($vendorDir . '/tijsverkoyen/css-to-inline-styles/src'), - 'Tests\\' => array($baseDir . '/tests'), - 'Symfony\\Polyfill\\Php72\\' => array($vendorDir . '/symfony/polyfill-php72'), - 'Symfony\\Polyfill\\Mbstring\\' => array($vendorDir . '/symfony/polyfill-mbstring'), - 'Symfony\\Polyfill\\Ctype\\' => array($vendorDir . '/symfony/polyfill-ctype'), - 'Symfony\\Component\\VarDumper\\' => array($vendorDir . '/symfony/var-dumper'), - 'Symfony\\Component\\Translation\\' => array($vendorDir . '/symfony/translation'), - 'Symfony\\Component\\Routing\\' => array($vendorDir . '/symfony/routing'), - 'Symfony\\Component\\Process\\' => array($vendorDir . '/symfony/process'), - 'Symfony\\Component\\HttpKernel\\' => array($vendorDir . '/symfony/http-kernel'), - 'Symfony\\Component\\HttpFoundation\\' => array($vendorDir . '/symfony/http-foundation'), - 'Symfony\\Component\\Finder\\' => array($vendorDir . '/symfony/finder'), - 'Symfony\\Component\\EventDispatcher\\' => array($vendorDir . '/symfony/event-dispatcher'), - 'Symfony\\Component\\Debug\\' => array($vendorDir . '/symfony/debug'), - 'Symfony\\Component\\CssSelector\\' => array($vendorDir . '/symfony/css-selector'), - 'Symfony\\Component\\Console\\' => array($vendorDir . '/symfony/console'), - 'Spatie\\Permission\\' => array($vendorDir . '/spatie/laravel-permission/src'), - 'Ramsey\\Uuid\\' => array($vendorDir . '/ramsey/uuid/src'), - 'Psy\\' => array($vendorDir . '/psy/psysh/src'), - 'Psr\\SimpleCache\\' => array($vendorDir . '/psr/simple-cache/src'), - 'Psr\\Log\\' => array($vendorDir . '/psr/log/Psr/Log'), - 'Psr\\Http\\Message\\' => array($vendorDir . '/psr/http-message/src'), - 'Psr\\Container\\' => array($vendorDir . '/psr/container/src'), - 'PhpParser\\' => array($vendorDir . '/nikic/php-parser/lib/PhpParser'), - 'OwenIt\\Auditing\\' => array($vendorDir . '/owen-it/laravel-auditing/src'), - 'Monolog\\' => array($vendorDir . '/monolog/monolog/src/Monolog'), - 'League\\Flysystem\\' => array($vendorDir . '/league/flysystem/src'), - 'Laravelista\\LumenVendorPublish\\' => array($vendorDir . '/laravelista/lumen-vendor-publish/src'), - 'Laravel\\Tinker\\' => array($vendorDir . '/laravel/tinker/src'), - 'Intervention\\Image\\' => array($vendorDir . '/intervention/image/src/Intervention/Image'), - 'Illuminate\\' => array($vendorDir . '/laravel/framework/src/Illuminate'), - 'GuzzleHttp\\Psr7\\' => array($vendorDir . '/guzzlehttp/psr7/src'), - 'Fideloper\\Proxy\\' => array($vendorDir . '/fideloper/proxy/src'), - 'Ffw\\SocialMediaManager\\' => array($baseDir . '/packages/ffw/social-media-manager/src', $baseDir . '/packages/ffw/social-media-manager/src'), - 'Faker\\' => array($vendorDir . '/fzaninotto/faker/src/Faker'), - 'Facebook\\' => array($vendorDir . '/facebook/graph-sdk/src/Facebook'), - 'Egulias\\EmailValidator\\' => array($vendorDir . '/egulias/email-validator/EmailValidator'), - 'Dotenv\\' => array($vendorDir . '/vlucas/phpdotenv/src'), - 'Doctrine\\Instantiator\\' => array($vendorDir . '/doctrine/instantiator/src/Doctrine/Instantiator'), - 'Doctrine\\Common\\Inflector\\' => array($vendorDir . '/doctrine/inflector/lib/Doctrine/Common/Inflector'), - 'DeepCopy\\' => array($vendorDir . '/myclabs/deep-copy/src/DeepCopy'), - 'DebugBar\\' => array($vendorDir . '/maximebf/debugbar/src/DebugBar'), - 'Cviebrock\\EloquentSluggable\\' => array($vendorDir . '/cviebrock/eloquent-sluggable/src'), - 'Cron\\' => array($vendorDir . '/dragonmantank/cron-expression/src/Cron'), - 'Collective\\Html\\' => array($vendorDir . '/laravelcollective/html/src'), - 'Cocur\\Slugify\\' => array($vendorDir . '/cocur/slugify/src'), - 'Carbon\\' => array($vendorDir . '/nesbot/carbon/src/Carbon'), - 'Barryvdh\\Debugbar\\' => array($vendorDir . '/barryvdh/laravel-debugbar/src'), - 'App\\' => array($baseDir . '/app'), -); diff --git a/vendor/composer/autoload_real.php b/vendor/composer/autoload_real.php deleted file mode 100644 index 8a6b67e8..00000000 --- a/vendor/composer/autoload_real.php +++ /dev/null @@ -1,70 +0,0 @@ -= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded()); - if ($useStaticLoader) { - require_once __DIR__ . '/autoload_static.php'; - - call_user_func(\Composer\Autoload\ComposerStaticInitb64cb0db53578212da4056f651da37a1::getInitializer($loader)); - } else { - $map = require __DIR__ . '/autoload_namespaces.php'; - foreach ($map as $namespace => $path) { - $loader->set($namespace, $path); - } - - $map = require __DIR__ . '/autoload_psr4.php'; - foreach ($map as $namespace => $path) { - $loader->setPsr4($namespace, $path); - } - - $classMap = require __DIR__ . '/autoload_classmap.php'; - if ($classMap) { - $loader->addClassMap($classMap); - } - } - - $loader->register(true); - - if ($useStaticLoader) { - $includeFiles = Composer\Autoload\ComposerStaticInitb64cb0db53578212da4056f651da37a1::$files; - } else { - $includeFiles = require __DIR__ . '/autoload_files.php'; - } - foreach ($includeFiles as $fileIdentifier => $file) { - composerRequireb64cb0db53578212da4056f651da37a1($fileIdentifier, $file); - } - - return $loader; - } -} - -function composerRequireb64cb0db53578212da4056f651da37a1($fileIdentifier, $file) -{ - if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) { - require $file; - - $GLOBALS['__composer_autoload_files'][$fileIdentifier] = true; - } -} diff --git a/vendor/composer/autoload_static.php b/vendor/composer/autoload_static.php deleted file mode 100644 index dfc91bd8..00000000 --- a/vendor/composer/autoload_static.php +++ /dev/null @@ -1,4354 +0,0 @@ - __DIR__ . '/..' . '/symfony/polyfill-mbstring/bootstrap.php', - '1d1b89d124cc9cb8219922c9d5569199' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest.php', - '25072dd6e2470089de65ae7bf11d3109' => __DIR__ . '/..' . '/symfony/polyfill-php72/bootstrap.php', - '667aeda72477189d0494fecd327c3641' => __DIR__ . '/..' . '/symfony/var-dumper/Resources/functions/dump.php', - '320cde22f66dd4f5d3fd621d3e88b98f' => __DIR__ . '/..' . '/symfony/polyfill-ctype/bootstrap.php', - '2c102faa651ef8ea5874edb585946bce' => __DIR__ . '/..' . '/swiftmailer/swiftmailer/lib/swift_required.php', - 'f0906e6318348a765ffb6eb24e0d0938' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/helpers.php', - '58571171fd5812e6e447dce228f52f4d' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/helpers.php', - 'c65d09b6820da036953a371c8c73a9b1' => __DIR__ . '/..' . '/facebook/graph-sdk/src/Facebook/polyfills.php', - 'a0edc8309cc5e1d60e3047b5df6b7052' => __DIR__ . '/..' . '/guzzlehttp/psr7/src/functions_include.php', - '6124b4c8570aa390c21fafd04a26c69f' => __DIR__ . '/..' . '/myclabs/deep-copy/src/DeepCopy/deep_copy.php', - '801c31d8ed748cfa537fa45402288c95' => __DIR__ . '/..' . '/psy/psysh/src/functions.php', - '4a1f389d6ce373bda9e57857d3b61c84' => __DIR__ . '/..' . '/barryvdh/laravel-debugbar/src/helpers.php', - 'f18cc91337d49233e5754e93f3ed9ec3' => __DIR__ . '/..' . '/laravelcollective/html/src/helpers.php', - '377b22b161c09ed6e5152de788ca020a' => __DIR__ . '/..' . '/spatie/laravel-permission/src/helpers.php', - ); - - public static $prefixLengthsPsr4 = array ( - 'p' => - array ( - 'phpDocumentor\\Reflection\\' => 25, - ), - 'X' => - array ( - 'XdgBaseDir\\' => 11, - ), - 'W' => - array ( - 'Whoops\\' => 7, - 'Webmozart\\Assert\\' => 17, - ), - 'T' => - array ( - 'Toolkito\\Larasap\\' => 17, - 'TijsVerkoyen\\CssToInlineStyles\\' => 31, - 'Tests\\' => 6, - ), - 'S' => - array ( - 'Symfony\\Polyfill\\Php72\\' => 23, - 'Symfony\\Polyfill\\Mbstring\\' => 26, - 'Symfony\\Polyfill\\Ctype\\' => 23, - 'Symfony\\Component\\VarDumper\\' => 28, - 'Symfony\\Component\\Translation\\' => 30, - 'Symfony\\Component\\Routing\\' => 26, - 'Symfony\\Component\\Process\\' => 26, - 'Symfony\\Component\\HttpKernel\\' => 29, - 'Symfony\\Component\\HttpFoundation\\' => 33, - 'Symfony\\Component\\Finder\\' => 25, - 'Symfony\\Component\\EventDispatcher\\' => 34, - 'Symfony\\Component\\Debug\\' => 24, - 'Symfony\\Component\\CssSelector\\' => 30, - 'Symfony\\Component\\Console\\' => 26, - 'Spatie\\Permission\\' => 18, - ), - 'R' => - array ( - 'Ramsey\\Uuid\\' => 12, - ), - 'P' => - array ( - 'Psy\\' => 4, - 'Psr\\SimpleCache\\' => 16, - 'Psr\\Log\\' => 8, - 'Psr\\Http\\Message\\' => 17, - 'Psr\\Container\\' => 14, - 'PhpParser\\' => 10, - ), - 'O' => - array ( - 'OwenIt\\Auditing\\' => 16, - ), - 'M' => - array ( - 'Monolog\\' => 8, - ), - 'L' => - array ( - 'League\\Flysystem\\' => 17, - 'Laravelista\\LumenVendorPublish\\' => 31, - 'Laravel\\Tinker\\' => 15, - ), - 'I' => - array ( - 'Intervention\\Image\\' => 19, - 'Illuminate\\' => 11, - ), - 'G' => - array ( - 'GuzzleHttp\\Psr7\\' => 16, - ), - 'F' => - array ( - 'Fideloper\\Proxy\\' => 16, - 'Ffw\\SocialMediaManager\\' => 23, - 'Faker\\' => 6, - 'Facebook\\' => 9, - ), - 'E' => - array ( - 'Egulias\\EmailValidator\\' => 23, - ), - 'D' => - array ( - 'Dotenv\\' => 7, - 'Doctrine\\Instantiator\\' => 22, - 'Doctrine\\Common\\Inflector\\' => 26, - 'DeepCopy\\' => 9, - 'DebugBar\\' => 9, - ), - 'C' => - array ( - 'Cviebrock\\EloquentSluggable\\' => 28, - 'Cron\\' => 5, - 'Collective\\Html\\' => 16, - 'Cocur\\Slugify\\' => 14, - 'Carbon\\' => 7, - ), - 'B' => - array ( - 'Barryvdh\\Debugbar\\' => 18, - ), - 'A' => - array ( - 'App\\' => 4, - ), - ); - - public static $prefixDirsPsr4 = array ( - 'phpDocumentor\\Reflection\\' => - array ( - 0 => __DIR__ . '/..' . '/phpdocumentor/reflection-common/src', - 1 => __DIR__ . '/..' . '/phpdocumentor/reflection-docblock/src', - 2 => __DIR__ . '/..' . '/phpdocumentor/type-resolver/src', - ), - 'XdgBaseDir\\' => - array ( - 0 => __DIR__ . '/..' . '/dnoegel/php-xdg-base-dir/src', - ), - 'Whoops\\' => - array ( - 0 => __DIR__ . '/..' . '/filp/whoops/src/Whoops', - ), - 'Webmozart\\Assert\\' => - array ( - 0 => __DIR__ . '/..' . '/webmozart/assert/src', - ), - 'Toolkito\\Larasap\\' => - array ( - 0 => __DIR__ . '/..' . '/toolkito/larasap/src', - ), - 'TijsVerkoyen\\CssToInlineStyles\\' => - array ( - 0 => __DIR__ . '/..' . '/tijsverkoyen/css-to-inline-styles/src', - ), - 'Tests\\' => - array ( - 0 => __DIR__ . '/../..' . '/tests', - ), - 'Symfony\\Polyfill\\Php72\\' => - array ( - 0 => __DIR__ . '/..' . '/symfony/polyfill-php72', - ), - 'Symfony\\Polyfill\\Mbstring\\' => - array ( - 0 => __DIR__ . '/..' . '/symfony/polyfill-mbstring', - ), - 'Symfony\\Polyfill\\Ctype\\' => - array ( - 0 => __DIR__ . '/..' . '/symfony/polyfill-ctype', - ), - 'Symfony\\Component\\VarDumper\\' => - array ( - 0 => __DIR__ . '/..' . '/symfony/var-dumper', - ), - 'Symfony\\Component\\Translation\\' => - array ( - 0 => __DIR__ . '/..' . '/symfony/translation', - ), - 'Symfony\\Component\\Routing\\' => - array ( - 0 => __DIR__ . '/..' . '/symfony/routing', - ), - 'Symfony\\Component\\Process\\' => - array ( - 0 => __DIR__ . '/..' . '/symfony/process', - ), - 'Symfony\\Component\\HttpKernel\\' => - array ( - 0 => __DIR__ . '/..' . '/symfony/http-kernel', - ), - 'Symfony\\Component\\HttpFoundation\\' => - array ( - 0 => __DIR__ . '/..' . '/symfony/http-foundation', - ), - 'Symfony\\Component\\Finder\\' => - array ( - 0 => __DIR__ . '/..' . '/symfony/finder', - ), - 'Symfony\\Component\\EventDispatcher\\' => - array ( - 0 => __DIR__ . '/..' . '/symfony/event-dispatcher', - ), - 'Symfony\\Component\\Debug\\' => - array ( - 0 => __DIR__ . '/..' . '/symfony/debug', - ), - 'Symfony\\Component\\CssSelector\\' => - array ( - 0 => __DIR__ . '/..' . '/symfony/css-selector', - ), - 'Symfony\\Component\\Console\\' => - array ( - 0 => __DIR__ . '/..' . '/symfony/console', - ), - 'Spatie\\Permission\\' => - array ( - 0 => __DIR__ . '/..' . '/spatie/laravel-permission/src', - ), - 'Ramsey\\Uuid\\' => - array ( - 0 => __DIR__ . '/..' . '/ramsey/uuid/src', - ), - 'Psy\\' => - array ( - 0 => __DIR__ . '/..' . '/psy/psysh/src', - ), - 'Psr\\SimpleCache\\' => - array ( - 0 => __DIR__ . '/..' . '/psr/simple-cache/src', - ), - 'Psr\\Log\\' => - array ( - 0 => __DIR__ . '/..' . '/psr/log/Psr/Log', - ), - 'Psr\\Http\\Message\\' => - array ( - 0 => __DIR__ . '/..' . '/psr/http-message/src', - ), - 'Psr\\Container\\' => - array ( - 0 => __DIR__ . '/..' . '/psr/container/src', - ), - 'PhpParser\\' => - array ( - 0 => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser', - ), - 'OwenIt\\Auditing\\' => - array ( - 0 => __DIR__ . '/..' . '/owen-it/laravel-auditing/src', - ), - 'Monolog\\' => - array ( - 0 => __DIR__ . '/..' . '/monolog/monolog/src/Monolog', - ), - 'League\\Flysystem\\' => - array ( - 0 => __DIR__ . '/..' . '/league/flysystem/src', - ), - 'Laravelista\\LumenVendorPublish\\' => - array ( - 0 => __DIR__ . '/..' . '/laravelista/lumen-vendor-publish/src', - ), - 'Laravel\\Tinker\\' => - array ( - 0 => __DIR__ . '/..' . '/laravel/tinker/src', - ), - 'Intervention\\Image\\' => - array ( - 0 => __DIR__ . '/..' . '/intervention/image/src/Intervention/Image', - ), - 'Illuminate\\' => - array ( - 0 => __DIR__ . '/..' . '/laravel/framework/src/Illuminate', - ), - 'GuzzleHttp\\Psr7\\' => - array ( - 0 => __DIR__ . '/..' . '/guzzlehttp/psr7/src', - ), - 'Fideloper\\Proxy\\' => - array ( - 0 => __DIR__ . '/..' . '/fideloper/proxy/src', - ), - 'Ffw\\SocialMediaManager\\' => - array ( - 0 => __DIR__ . '/../..' . '/packages/ffw/social-media-manager/src', - 1 => __DIR__ . '/../..' . '/packages/ffw/social-media-manager/src', - ), - 'Faker\\' => - array ( - 0 => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker', - ), - 'Facebook\\' => - array ( - 0 => __DIR__ . '/..' . '/facebook/graph-sdk/src/Facebook', - ), - 'Egulias\\EmailValidator\\' => - array ( - 0 => __DIR__ . '/..' . '/egulias/email-validator/EmailValidator', - ), - 'Dotenv\\' => - array ( - 0 => __DIR__ . '/..' . '/vlucas/phpdotenv/src', - ), - 'Doctrine\\Instantiator\\' => - array ( - 0 => __DIR__ . '/..' . '/doctrine/instantiator/src/Doctrine/Instantiator', - ), - 'Doctrine\\Common\\Inflector\\' => - array ( - 0 => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Common/Inflector', - ), - 'DeepCopy\\' => - array ( - 0 => __DIR__ . '/..' . '/myclabs/deep-copy/src/DeepCopy', - ), - 'DebugBar\\' => - array ( - 0 => __DIR__ . '/..' . '/maximebf/debugbar/src/DebugBar', - ), - 'Cviebrock\\EloquentSluggable\\' => - array ( - 0 => __DIR__ . '/..' . '/cviebrock/eloquent-sluggable/src', - ), - 'Cron\\' => - array ( - 0 => __DIR__ . '/..' . '/dragonmantank/cron-expression/src/Cron', - ), - 'Collective\\Html\\' => - array ( - 0 => __DIR__ . '/..' . '/laravelcollective/html/src', - ), - 'Cocur\\Slugify\\' => - array ( - 0 => __DIR__ . '/..' . '/cocur/slugify/src', - ), - 'Carbon\\' => - array ( - 0 => __DIR__ . '/..' . '/nesbot/carbon/src/Carbon', - ), - 'Barryvdh\\Debugbar\\' => - array ( - 0 => __DIR__ . '/..' . '/barryvdh/laravel-debugbar/src', - ), - 'App\\' => - array ( - 0 => __DIR__ . '/../..' . '/app', - ), - ); - - public static $prefixesPsr0 = array ( - 'S' => - array ( - 'SimpleSoftwareIO\\QrCode\\' => - array ( - 0 => __DIR__ . '/..' . '/simplesoftwareio/simple-qrcode/src', - ), - ), - 'P' => - array ( - 'Prophecy\\' => - array ( - 0 => __DIR__ . '/..' . '/phpspec/prophecy/src', - ), - 'Parsedown' => - array ( - 0 => __DIR__ . '/..' . '/erusev/parsedown', - ), - ), - 'M' => - array ( - 'Mockery' => - array ( - 0 => __DIR__ . '/..' . '/mockery/mockery/library', - ), - ), - 'J' => - array ( - 'JakubOnderka\\PhpConsoleHighlighter' => - array ( - 0 => __DIR__ . '/..' . '/jakub-onderka/php-console-highlighter/src', - ), - 'JakubOnderka\\PhpConsoleColor' => - array ( - 0 => __DIR__ . '/..' . '/jakub-onderka/php-console-color/src', - ), - ), - 'D' => - array ( - 'Doctrine\\Common\\Lexer\\' => - array ( - 0 => __DIR__ . '/..' . '/doctrine/lexer/lib', - ), - ), - 'B' => - array ( - 'BaconQrCode' => - array ( - 0 => __DIR__ . '/..' . '/bacon/bacon-qr-code/src', - ), - ), - ); - - public static $classMap = array ( - 'App\\BreakingNews' => __DIR__ . '/../..' . '/app/BreakingNews.php', - 'App\\Console\\Commands\\DebugTest' => __DIR__ . '/../..' . '/app/Console/Commands/DebugTest.php', - 'App\\Console\\Commands\\ImportData' => __DIR__ . '/../..' . '/app/Console/Commands/ImportData.php', - 'App\\Console\\Commands\\PublishNotify' => __DIR__ . '/../..' . '/app/Console/Commands/PublishNotify.php', - 'App\\Console\\Commands\\PublishSocialMedia' => __DIR__ . '/../..' . '/app/Console/Commands/PublishSocialMedia.php', - 'App\\Console\\Commands\\PublishStadtanzeiger' => __DIR__ . '/../..' . '/app/Console/Commands/PublishStadtanzeiger.php', - 'App\\Console\\Commands\\QueueCheckup' => __DIR__ . '/../..' . '/app/Console/Commands/QueueCheckup.php', - 'App\\Console\\Kernel' => __DIR__ . '/../..' . '/app/Console/Kernel.php', - 'App\\Exceptions\\Handler' => __DIR__ . '/../..' . '/app/Exceptions/Handler.php', - 'App\\Helpers\\AccessHelper' => __DIR__ . '/../..' . '/app/Helpers/AccessHelper.php', - 'App\\Helpers\\BreadcrumbHelper' => __DIR__ . '/../..' . '/app/Helpers/BreadcrumbHelper.php', - 'App\\Helpers\\DateHelper' => __DIR__ . '/../..' . '/app/Helpers/DateHelper.php', - 'App\\Helpers\\MenuHelper' => __DIR__ . '/../..' . '/app/Helpers/MenuHelper.php', - 'App\\Helpers\\MigrationHelper' => __DIR__ . '/../..' . '/app/Helpers/MigrationHelper.php', - 'App\\Helpers\\PostHelper' => __DIR__ . '/../..' . '/app/Helpers/PostHelper.php', - 'App\\Helpers\\PublishHelper' => __DIR__ . '/../..' . '/app/Helpers/PublishHelper.php', - 'App\\Helpers\\QuickLoginHelper' => __DIR__ . '/../..' . '/app/Helpers/QuickLoginHelper.php', - 'App\\Helpers\\StringHelper' => __DIR__ . '/../..' . '/app/Helpers/StringHelper.php', - 'App\\Helpers\\TagHelper' => __DIR__ . '/../..' . '/app/Helpers/TagHelper.php', - 'App\\Helpers\\URLHelper' => __DIR__ . '/../..' . '/app/Helpers/URLHelper.php', - 'App\\Helpers\\WizardHelper' => __DIR__ . '/../..' . '/app/Helpers/WizardHelper.php', - 'App\\Http\\Controllers\\ArticleController' => __DIR__ . '/../..' . '/app/Http/Controllers/ArticleController.php', - 'App\\Http\\Controllers\\Auth\\ForgotPasswordController' => __DIR__ . '/../..' . '/app/Http/Controllers/Auth/ForgotPasswordController.php', - 'App\\Http\\Controllers\\Auth\\LoginController' => __DIR__ . '/../..' . '/app/Http/Controllers/Auth/LoginController.php', - 'App\\Http\\Controllers\\Auth\\RegisterController' => __DIR__ . '/../..' . '/app/Http/Controllers/Auth/RegisterController.php', - 'App\\Http\\Controllers\\Auth\\ResetPasswordController' => __DIR__ . '/../..' . '/app/Http/Controllers/Auth/ResetPasswordController.php', - 'App\\Http\\Controllers\\ContactController' => __DIR__ . '/../..' . '/app/Http/Controllers/ContactController.php', - 'App\\Http\\Controllers\\Controller' => __DIR__ . '/../..' . '/app/Http/Controllers/Controller.php', - 'App\\Http\\Controllers\\DashboardController' => __DIR__ . '/../..' . '/app/Http/Controllers/DashboardController.php', - 'App\\Http\\Controllers\\DepartmentController' => __DIR__ . '/../..' . '/app/Http/Controllers/DepartmentController.php', - 'App\\Http\\Controllers\\DocumentController' => __DIR__ . '/../..' . '/app/Http/Controllers/DocumentController.php', - 'App\\Http\\Controllers\\EventController' => __DIR__ . '/../..' . '/app/Http/Controllers/EventController.php', - 'App\\Http\\Controllers\\ExtendedController' => __DIR__ . '/../..' . '/app/Http/Controllers/ExtendedController.php', - 'App\\Http\\Controllers\\HomeController' => __DIR__ . '/../..' . '/app/Http/Controllers/HomeController.php', - 'App\\Http\\Controllers\\InstanceController' => __DIR__ . '/../..' . '/app/Http/Controllers/InstanceController.php', - 'App\\Http\\Controllers\\LandingController' => __DIR__ . '/../..' . '/app/Http/Controllers/LandingController.php', - 'App\\Http\\Controllers\\MemberController' => __DIR__ . '/../..' . '/app/Http/Controllers/MemberController.php', - 'App\\Http\\Controllers\\MembertypeDepartmentController' => __DIR__ . '/../..' . '/app/Http/Controllers/MembertypeDepartmentController.php', - 'App\\Http\\Controllers\\MembertypeTotalController' => __DIR__ . '/../..' . '/app/Http/Controllers/MembertypeTotalController.php', - 'App\\Http\\Controllers\\MessageController' => __DIR__ . '/../..' . '/app/Http/Controllers/MessageController.php', - 'App\\Http\\Controllers\\MessageType' => __DIR__ . '/../..' . '/app/Http/Controllers/ExtendedController.php', - 'App\\Http\\Controllers\\OperationController' => __DIR__ . '/../..' . '/app/Http/Controllers/OperationController.php', - 'App\\Http\\Controllers\\OperationtypeController' => __DIR__ . '/../..' . '/app/Http/Controllers/OperationtypeController.php', - 'App\\Http\\Controllers\\PageCategoryController' => __DIR__ . '/../..' . '/app/Http/Controllers/PageCategoryController.php', - 'App\\Http\\Controllers\\PageController' => __DIR__ . '/../..' . '/app/Http/Controllers/PageController.php', - 'App\\Http\\Controllers\\PermissionController' => __DIR__ . '/../..' . '/app/Http/Controllers/PermissionController.php', - 'App\\Http\\Controllers\\PostController' => __DIR__ . '/../..' . '/app/Http/Controllers/PostController.php', - 'App\\Http\\Controllers\\QuickLoginController' => __DIR__ . '/../..' . '/app/Http/Controllers/QuickLoginController.php', - 'App\\Http\\Controllers\\RoleController' => __DIR__ . '/../..' . '/app/Http/Controllers/RoleController.php', - 'App\\Http\\Controllers\\ServiceController' => __DIR__ . '/../..' . '/app/Http/Controllers/ServiceController.php', - 'App\\Http\\Controllers\\ServicetypeController' => __DIR__ . '/../..' . '/app/Http/Controllers/ServicetypeController.php', - 'App\\Http\\Controllers\\TagController' => __DIR__ . '/../..' . '/app/Http/Controllers/TagController.php', - 'App\\Http\\Controllers\\UserController' => __DIR__ . '/../..' . '/app/Http/Controllers/UserController.php', - 'App\\Http\\Controllers\\VehicleController' => __DIR__ . '/../..' . '/app/Http/Controllers/VehicleController.php', - 'App\\Http\\Kernel' => __DIR__ . '/../..' . '/app/Http/Kernel.php', - 'App\\Http\\Middleware\\Access\\AdminMiddleware' => __DIR__ . '/../..' . '/app/Http/Middleware/Access/AdminMiddleware.php', - 'App\\Http\\Middleware\\Access\\ArticleMiddleware' => __DIR__ . '/../..' . '/app/Http/Middleware/Access/ArticleMiddleware.php', - 'App\\Http\\Middleware\\Access\\BaseAccess' => __DIR__ . '/../..' . '/app/Http/Middleware/Access/BaseAccess.php', - 'App\\Http\\Middleware\\Access\\ContactMiddleware' => __DIR__ . '/../..' . '/app/Http/Middleware/Access/ContactMiddleware.php', - 'App\\Http\\Middleware\\Access\\DashboardMiddleware' => __DIR__ . '/../..' . '/app/Http/Middleware/Access/DashboardMiddleware.php', - 'App\\Http\\Middleware\\Access\\DepartmentMiddleware' => __DIR__ . '/../..' . '/app/Http/Middleware/Access/DepartmentMiddleware.php', - 'App\\Http\\Middleware\\Access\\EventMiddleware' => __DIR__ . '/../..' . '/app/Http/Middleware/Access/EventMiddleware.php', - 'App\\Http\\Middleware\\Access\\InstanceMiddleware' => __DIR__ . '/../..' . '/app/Http/Middleware/Access/InstanceMiddleware.php', - 'App\\Http\\Middleware\\Access\\MembertypeMiddleware' => __DIR__ . '/../..' . '/app/Http/Middleware/Access/MembertypeMiddleware.php', - 'App\\Http\\Middleware\\Access\\OperationMiddleware' => __DIR__ . '/../..' . '/app/Http/Middleware/Access/OperationMiddleware.php', - 'App\\Http\\Middleware\\Access\\OperationtypeMiddleware' => __DIR__ . '/../..' . '/app/Http/Middleware/Access/OperationtypeMiddleware.php', - 'App\\Http\\Middleware\\Access\\PageCategoryMiddleware' => __DIR__ . '/../..' . '/app/Http/Middleware/Access/PageCategoryMiddleware.php', - 'App\\Http\\Middleware\\Access\\PageMiddleware' => __DIR__ . '/../..' . '/app/Http/Middleware/Access/PageMiddleware.php', - 'App\\Http\\Middleware\\Access\\ServiceMiddleware' => __DIR__ . '/../..' . '/app/Http/Middleware/Access/ServiceMiddleware.php', - 'App\\Http\\Middleware\\Access\\ServicetypeMiddleware' => __DIR__ . '/../..' . '/app/Http/Middleware/Access/ServicetypeMiddleware.php', - 'App\\Http\\Middleware\\Access\\UserMiddleware' => __DIR__ . '/../..' . '/app/Http/Middleware/Access/UserMiddleware.php', - 'App\\Http\\Middleware\\Access\\VehicleMiddleware' => __DIR__ . '/../..' . '/app/Http/Middleware/Access/VehicleMiddleware.php', - 'App\\Http\\Middleware\\ClearanceMiddleware' => __DIR__ . '/../..' . '/app/Http/Middleware/ClearanceMiddleware.php', - 'App\\Http\\Middleware\\EncryptCookies' => __DIR__ . '/../..' . '/app/Http/Middleware/EncryptCookies.php', - 'App\\Http\\Middleware\\RedirectIfAuthenticated' => __DIR__ . '/../..' . '/app/Http/Middleware/RedirectIfAuthenticated.php', - 'App\\Http\\Middleware\\TrimStrings' => __DIR__ . '/../..' . '/app/Http/Middleware/TrimStrings.php', - 'App\\Http\\Middleware\\TrustProxies' => __DIR__ . '/../..' . '/app/Http/Middleware/TrustProxies.php', - 'App\\Http\\Middleware\\VerifyCsrfToken' => __DIR__ . '/../..' . '/app/Http/Middleware/VerifyCsrfToken.php', - 'App\\Jobs\\MailAdminStatistics' => __DIR__ . '/../..' . '/app/Jobs/MailAdminStatistics.php', - 'App\\Jobs\\MailDepartmentStatistics' => __DIR__ . '/../..' . '/app/Jobs/MailDepartmentStatistics.php', - 'App\\Jobs\\MailStadtanzeiger' => __DIR__ . '/../..' . '/app/Jobs/MailStadtanzeiger.php', - 'App\\Jobs\\MailUserMessage' => __DIR__ . '/../..' . '/app/Jobs/MailUserMessage.php', - 'App\\Logic\\Document\\DocumentRepository' => __DIR__ . '/../..' . '/app/Logic/Document/DocumentRepository.php', - 'App\\Models\\BaseModel' => __DIR__ . '/../..' . '/app/Models/BaseModel.php', - 'App\\Models\\Document' => __DIR__ . '/../..' . '/app/Models/Document.php', - 'App\\Models\\ExtendedModel' => __DIR__ . '/../..' . '/app/Models/ExtendedModel.php', - 'App\\Models\\Message' => __DIR__ . '/../..' . '/app/Models/Message.php', - 'App\\Models\\Post' => __DIR__ . '/../..' . '/app/Models/Post.php', - 'App\\Models\\PostMigration' => __DIR__ . '/../..' . '/app/Models/PostMigration.php', - 'App\\Models\\Publication' => __DIR__ . '/../..' . '/app/Models/Publication.php', - 'App\\Models\\QuickLogin' => __DIR__ . '/../..' . '/app/Models/QuickLogin.php', - 'App\\Models\\SubscribeChild' => __DIR__ . '/../..' . '/app/Models/SubscribeChild.php', - 'App\\Models\\Tag' => __DIR__ . '/../..' . '/app/Models/Tag.php', - 'App\\Models\\TagMigration' => __DIR__ . '/../..' . '/app/Models/TagMigration.php', - 'App\\Models\\Traits\\Documents' => __DIR__ . '/../..' . '/app/Models/Traits/Documents.php', - 'App\\Models\\Traits\\FullTextSearch' => __DIR__ . '/../..' . '/app/Models/Traits/FullTextSearch.php', - 'App\\Models\\Traits\\SortableTag' => __DIR__ . '/../..' . '/app/Models/Traits/SortableTag.php', - 'App\\Models\\User' => __DIR__ . '/../..' . '/app/Models/User.php', - 'App\\Providers\\AppServiceProvider' => __DIR__ . '/../..' . '/app/Providers/AppServiceProvider.php', - 'App\\Providers\\AuthServiceProvider' => __DIR__ . '/../..' . '/app/Providers/AuthServiceProvider.php', - 'App\\Providers\\BroadcastServiceProvider' => __DIR__ . '/../..' . '/app/Providers/BroadcastServiceProvider.php', - 'App\\Providers\\EventServiceProvider' => __DIR__ . '/../..' . '/app/Providers/EventServiceProvider.php', - 'App\\Providers\\HelperServiceProvider' => __DIR__ . '/../..' . '/app/Providers/HelperServiceProvider.php', - 'App\\Providers\\RouteServiceProvider' => __DIR__ . '/../..' . '/app/Providers/RouteServiceProvider.php', - 'App\\Providers\\ValidatorServiceProvider' => __DIR__ . '/../..' . '/app/Providers/ValidatorServiceProvider.php', - 'ArticleSeeder' => __DIR__ . '/../..' . '/database/seeds/ArticleSeeder.php', - 'BaconQrCode\\Common\\AbstractEnum' => __DIR__ . '/..' . '/bacon/bacon-qr-code/src/BaconQrCode/Common/AbstractEnum.php', - 'BaconQrCode\\Common\\BitArray' => __DIR__ . '/..' . '/bacon/bacon-qr-code/src/BaconQrCode/Common/BitArray.php', - 'BaconQrCode\\Common\\BitMatrix' => __DIR__ . '/..' . '/bacon/bacon-qr-code/src/BaconQrCode/Common/BitMatrix.php', - 'BaconQrCode\\Common\\BitUtils' => __DIR__ . '/..' . '/bacon/bacon-qr-code/src/BaconQrCode/Common/BitUtils.php', - 'BaconQrCode\\Common\\CharacterSetEci' => __DIR__ . '/..' . '/bacon/bacon-qr-code/src/BaconQrCode/Common/CharacterSetEci.php', - 'BaconQrCode\\Common\\EcBlock' => __DIR__ . '/..' . '/bacon/bacon-qr-code/src/BaconQrCode/Common/EcBlock.php', - 'BaconQrCode\\Common\\EcBlocks' => __DIR__ . '/..' . '/bacon/bacon-qr-code/src/BaconQrCode/Common/EcBlocks.php', - 'BaconQrCode\\Common\\ErrorCorrectionLevel' => __DIR__ . '/..' . '/bacon/bacon-qr-code/src/BaconQrCode/Common/ErrorCorrectionLevel.php', - 'BaconQrCode\\Common\\FormatInformation' => __DIR__ . '/..' . '/bacon/bacon-qr-code/src/BaconQrCode/Common/FormatInformation.php', - 'BaconQrCode\\Common\\Mode' => __DIR__ . '/..' . '/bacon/bacon-qr-code/src/BaconQrCode/Common/Mode.php', - 'BaconQrCode\\Common\\ReedSolomonCodec' => __DIR__ . '/..' . '/bacon/bacon-qr-code/src/BaconQrCode/Common/ReedSolomonCodec.php', - 'BaconQrCode\\Common\\Version' => __DIR__ . '/..' . '/bacon/bacon-qr-code/src/BaconQrCode/Common/Version.php', - 'BaconQrCode\\Encoder\\BlockPair' => __DIR__ . '/..' . '/bacon/bacon-qr-code/src/BaconQrCode/Encoder/BlockPair.php', - 'BaconQrCode\\Encoder\\ByteMatrix' => __DIR__ . '/..' . '/bacon/bacon-qr-code/src/BaconQrCode/Encoder/ByteMatrix.php', - 'BaconQrCode\\Encoder\\Encoder' => __DIR__ . '/..' . '/bacon/bacon-qr-code/src/BaconQrCode/Encoder/Encoder.php', - 'BaconQrCode\\Encoder\\MaskUtil' => __DIR__ . '/..' . '/bacon/bacon-qr-code/src/BaconQrCode/Encoder/MaskUtil.php', - 'BaconQrCode\\Encoder\\MatrixUtil' => __DIR__ . '/..' . '/bacon/bacon-qr-code/src/BaconQrCode/Encoder/MatrixUtil.php', - 'BaconQrCode\\Encoder\\QrCode' => __DIR__ . '/..' . '/bacon/bacon-qr-code/src/BaconQrCode/Encoder/QrCode.php', - 'BaconQrCode\\Exception\\ExceptionInterface' => __DIR__ . '/..' . '/bacon/bacon-qr-code/src/BaconQrCode/Exception/ExceptionInterface.php', - 'BaconQrCode\\Exception\\InvalidArgumentException' => __DIR__ . '/..' . '/bacon/bacon-qr-code/src/BaconQrCode/Exception/InvalidArgumentException.php', - 'BaconQrCode\\Exception\\OutOfBoundsException' => __DIR__ . '/..' . '/bacon/bacon-qr-code/src/BaconQrCode/Exception/OutOfBoundsException.php', - 'BaconQrCode\\Exception\\RuntimeException' => __DIR__ . '/..' . '/bacon/bacon-qr-code/src/BaconQrCode/Exception/RuntimeException.php', - 'BaconQrCode\\Exception\\UnexpectedValueException' => __DIR__ . '/..' . '/bacon/bacon-qr-code/src/BaconQrCode/Exception/UnexpectedValueException.php', - 'BaconQrCode\\Exception\\WriterException' => __DIR__ . '/..' . '/bacon/bacon-qr-code/src/BaconQrCode/Exception/WriterException.php', - 'BaconQrCode\\Renderer\\Color\\Cmyk' => __DIR__ . '/..' . '/bacon/bacon-qr-code/src/BaconQrCode/Renderer/Color/Cmyk.php', - 'BaconQrCode\\Renderer\\Color\\ColorInterface' => __DIR__ . '/..' . '/bacon/bacon-qr-code/src/BaconQrCode/Renderer/Color/ColorInterface.php', - 'BaconQrCode\\Renderer\\Color\\Gray' => __DIR__ . '/..' . '/bacon/bacon-qr-code/src/BaconQrCode/Renderer/Color/Gray.php', - 'BaconQrCode\\Renderer\\Color\\Rgb' => __DIR__ . '/..' . '/bacon/bacon-qr-code/src/BaconQrCode/Renderer/Color/Rgb.php', - 'BaconQrCode\\Renderer\\Image\\AbstractRenderer' => __DIR__ . '/..' . '/bacon/bacon-qr-code/src/BaconQrCode/Renderer/Image/AbstractRenderer.php', - 'BaconQrCode\\Renderer\\Image\\Decorator\\DecoratorInterface' => __DIR__ . '/..' . '/bacon/bacon-qr-code/src/BaconQrCode/Renderer/Image/Decorator/DecoratorInterface.php', - 'BaconQrCode\\Renderer\\Image\\Decorator\\FinderPattern' => __DIR__ . '/..' . '/bacon/bacon-qr-code/src/BaconQrCode/Renderer/Image/Decorator/FinderPattern.php', - 'BaconQrCode\\Renderer\\Image\\Eps' => __DIR__ . '/..' . '/bacon/bacon-qr-code/src/BaconQrCode/Renderer/Image/Eps.php', - 'BaconQrCode\\Renderer\\Image\\Png' => __DIR__ . '/..' . '/bacon/bacon-qr-code/src/BaconQrCode/Renderer/Image/Png.php', - 'BaconQrCode\\Renderer\\Image\\RendererInterface' => __DIR__ . '/..' . '/bacon/bacon-qr-code/src/BaconQrCode/Renderer/Image/RendererInterface.php', - 'BaconQrCode\\Renderer\\Image\\Svg' => __DIR__ . '/..' . '/bacon/bacon-qr-code/src/BaconQrCode/Renderer/Image/Svg.php', - 'BaconQrCode\\Renderer\\RendererInterface' => __DIR__ . '/..' . '/bacon/bacon-qr-code/src/BaconQrCode/Renderer/RendererInterface.php', - 'BaconQrCode\\Renderer\\Text\\Html' => __DIR__ . '/..' . '/bacon/bacon-qr-code/src/BaconQrCode/Renderer/Text/Html.php', - 'BaconQrCode\\Renderer\\Text\\Plain' => __DIR__ . '/..' . '/bacon/bacon-qr-code/src/BaconQrCode/Renderer/Text/Plain.php', - 'BaconQrCode\\Writer' => __DIR__ . '/..' . '/bacon/bacon-qr-code/src/BaconQrCode/Writer.php', - 'Barryvdh\\Debugbar\\Console\\ClearCommand' => __DIR__ . '/..' . '/barryvdh/laravel-debugbar/src/Console/ClearCommand.php', - 'Barryvdh\\Debugbar\\Controllers\\AssetController' => __DIR__ . '/..' . '/barryvdh/laravel-debugbar/src/Controllers/AssetController.php', - 'Barryvdh\\Debugbar\\Controllers\\BaseController' => __DIR__ . '/..' . '/barryvdh/laravel-debugbar/src/Controllers/BaseController.php', - 'Barryvdh\\Debugbar\\Controllers\\CacheController' => __DIR__ . '/..' . '/barryvdh/laravel-debugbar/src/Controllers/CacheController.php', - 'Barryvdh\\Debugbar\\Controllers\\OpenHandlerController' => __DIR__ . '/..' . '/barryvdh/laravel-debugbar/src/Controllers/OpenHandlerController.php', - 'Barryvdh\\Debugbar\\DataCollector\\CacheCollector' => __DIR__ . '/..' . '/barryvdh/laravel-debugbar/src/DataCollector/CacheCollector.php', - 'Barryvdh\\Debugbar\\DataCollector\\EventCollector' => __DIR__ . '/..' . '/barryvdh/laravel-debugbar/src/DataCollector/EventCollector.php', - 'Barryvdh\\Debugbar\\DataCollector\\FilesCollector' => __DIR__ . '/..' . '/barryvdh/laravel-debugbar/src/DataCollector/FilesCollector.php', - 'Barryvdh\\Debugbar\\DataCollector\\GateCollector' => __DIR__ . '/..' . '/barryvdh/laravel-debugbar/src/DataCollector/GateCollector.php', - 'Barryvdh\\Debugbar\\DataCollector\\LaravelCollector' => __DIR__ . '/..' . '/barryvdh/laravel-debugbar/src/DataCollector/LaravelCollector.php', - 'Barryvdh\\Debugbar\\DataCollector\\LogsCollector' => __DIR__ . '/..' . '/barryvdh/laravel-debugbar/src/DataCollector/LogsCollector.php', - 'Barryvdh\\Debugbar\\DataCollector\\MultiAuthCollector' => __DIR__ . '/..' . '/barryvdh/laravel-debugbar/src/DataCollector/MultiAuthCollector.php', - 'Barryvdh\\Debugbar\\DataCollector\\QueryCollector' => __DIR__ . '/..' . '/barryvdh/laravel-debugbar/src/DataCollector/QueryCollector.php', - 'Barryvdh\\Debugbar\\DataCollector\\RequestCollector' => __DIR__ . '/..' . '/barryvdh/laravel-debugbar/src/DataCollector/RequestCollector.php', - 'Barryvdh\\Debugbar\\DataCollector\\RouteCollector' => __DIR__ . '/..' . '/barryvdh/laravel-debugbar/src/DataCollector/RouteCollector.php', - 'Barryvdh\\Debugbar\\DataCollector\\SessionCollector' => __DIR__ . '/..' . '/barryvdh/laravel-debugbar/src/DataCollector/SessionCollector.php', - 'Barryvdh\\Debugbar\\DataCollector\\ViewCollector' => __DIR__ . '/..' . '/barryvdh/laravel-debugbar/src/DataCollector/ViewCollector.php', - 'Barryvdh\\Debugbar\\DataFormatter\\QueryFormatter' => __DIR__ . '/..' . '/barryvdh/laravel-debugbar/src/DataFormatter/QueryFormatter.php', - 'Barryvdh\\Debugbar\\DataFormatter\\SimpleFormatter' => __DIR__ . '/..' . '/barryvdh/laravel-debugbar/src/DataFormatter/SimpleFormatter.php', - 'Barryvdh\\Debugbar\\Facade' => __DIR__ . '/..' . '/barryvdh/laravel-debugbar/src/Facade.php', - 'Barryvdh\\Debugbar\\JavascriptRenderer' => __DIR__ . '/..' . '/barryvdh/laravel-debugbar/src/JavascriptRenderer.php', - 'Barryvdh\\Debugbar\\LaravelDebugbar' => __DIR__ . '/..' . '/barryvdh/laravel-debugbar/src/LaravelDebugbar.php', - 'Barryvdh\\Debugbar\\LumenServiceProvider' => __DIR__ . '/..' . '/barryvdh/laravel-debugbar/src/LumenServiceProvider.php', - 'Barryvdh\\Debugbar\\Middleware\\DebugbarEnabled' => __DIR__ . '/..' . '/barryvdh/laravel-debugbar/src/Middleware/DebugbarEnabled.php', - 'Barryvdh\\Debugbar\\Middleware\\InjectDebugbar' => __DIR__ . '/..' . '/barryvdh/laravel-debugbar/src/Middleware/InjectDebugbar.php', - 'Barryvdh\\Debugbar\\ServiceProvider' => __DIR__ . '/..' . '/barryvdh/laravel-debugbar/src/ServiceProvider.php', - 'Barryvdh\\Debugbar\\Storage\\FilesystemStorage' => __DIR__ . '/..' . '/barryvdh/laravel-debugbar/src/Storage/FilesystemStorage.php', - 'Barryvdh\\Debugbar\\Support\\Clockwork\\ClockworkCollector' => __DIR__ . '/..' . '/barryvdh/laravel-debugbar/src/Support/Clockwork/ClockworkCollector.php', - 'Barryvdh\\Debugbar\\Support\\Clockwork\\Converter' => __DIR__ . '/..' . '/barryvdh/laravel-debugbar/src/Support/Clockwork/Converter.php', - 'Barryvdh\\Debugbar\\SymfonyHttpDriver' => __DIR__ . '/..' . '/barryvdh/laravel-debugbar/src/SymfonyHttpDriver.php', - 'Barryvdh\\Debugbar\\Twig\\Extension\\Debug' => __DIR__ . '/..' . '/barryvdh/laravel-debugbar/src/Twig/Extension/Debug.php', - 'Barryvdh\\Debugbar\\Twig\\Extension\\Dump' => __DIR__ . '/..' . '/barryvdh/laravel-debugbar/src/Twig/Extension/Dump.php', - 'Barryvdh\\Debugbar\\Twig\\Extension\\Stopwatch' => __DIR__ . '/..' . '/barryvdh/laravel-debugbar/src/Twig/Extension/Stopwatch.php', - 'Barryvdh\\Debugbar\\Twig\\Node\\StopwatchNode' => __DIR__ . '/..' . '/barryvdh/laravel-debugbar/src/Twig/Node/StopwatchNode.php', - 'Barryvdh\\Debugbar\\Twig\\TokenParser\\StopwatchTokenParser' => __DIR__ . '/..' . '/barryvdh/laravel-debugbar/src/Twig/TokenParser/StopwatchTokenParser.php', - 'Carbon\\Carbon' => __DIR__ . '/..' . '/nesbot/carbon/src/Carbon/Carbon.php', - 'Carbon\\CarbonInterval' => __DIR__ . '/..' . '/nesbot/carbon/src/Carbon/CarbonInterval.php', - 'Carbon\\Exceptions\\InvalidDateException' => __DIR__ . '/..' . '/nesbot/carbon/src/Carbon/Exceptions/InvalidDateException.php', - 'Carbon\\Translator' => __DIR__ . '/..' . '/nesbot/carbon/src/Carbon/Translator.php', - 'Cocur\\Slugify\\Bridge\\Laravel\\SlugifyFacade' => __DIR__ . '/..' . '/cocur/slugify/src/Bridge/Laravel/SlugifyFacade.php', - 'Cocur\\Slugify\\Bridge\\Laravel\\SlugifyServiceProvider' => __DIR__ . '/..' . '/cocur/slugify/src/Bridge/Laravel/SlugifyServiceProvider.php', - 'Cocur\\Slugify\\Bridge\\Latte\\SlugifyHelper' => __DIR__ . '/..' . '/cocur/slugify/src/Bridge/Latte/SlugifyHelper.php', - 'Cocur\\Slugify\\Bridge\\League\\SlugifyServiceProvider' => __DIR__ . '/..' . '/cocur/slugify/src/Bridge/League/SlugifyServiceProvider.php', - 'Cocur\\Slugify\\Bridge\\Nette\\SlugifyExtension' => __DIR__ . '/..' . '/cocur/slugify/src/Bridge/Nette/SlugifyExtension.php', - 'Cocur\\Slugify\\Bridge\\Plum\\SlugifyConverter' => __DIR__ . '/..' . '/cocur/slugify/src/Bridge/Plum/SlugifyConverter.php', - 'Cocur\\Slugify\\Bridge\\Silex2\\SlugifyServiceProvider' => __DIR__ . '/..' . '/cocur/slugify/src/Bridge/Silex2/SlugifyServiceProvider.php', - 'Cocur\\Slugify\\Bridge\\Silex\\SlugifyServiceProvider' => __DIR__ . '/..' . '/cocur/slugify/src/Bridge/Silex/SlugifyServiceProvider.php', - 'Cocur\\Slugify\\Bridge\\Symfony\\CocurSlugifyBundle' => __DIR__ . '/..' . '/cocur/slugify/src/Bridge/Symfony/CocurSlugifyBundle.php', - 'Cocur\\Slugify\\Bridge\\Symfony\\CocurSlugifyExtension' => __DIR__ . '/..' . '/cocur/slugify/src/Bridge/Symfony/CocurSlugifyExtension.php', - 'Cocur\\Slugify\\Bridge\\Symfony\\Configuration' => __DIR__ . '/..' . '/cocur/slugify/src/Bridge/Symfony/Configuration.php', - 'Cocur\\Slugify\\Bridge\\Twig\\SlugifyExtension' => __DIR__ . '/..' . '/cocur/slugify/src/Bridge/Twig/SlugifyExtension.php', - 'Cocur\\Slugify\\Bridge\\ZF2\\Module' => __DIR__ . '/..' . '/cocur/slugify/src/Bridge/ZF2/Module.php', - 'Cocur\\Slugify\\Bridge\\ZF2\\SlugifyService' => __DIR__ . '/..' . '/cocur/slugify/src/Bridge/ZF2/SlugifyService.php', - 'Cocur\\Slugify\\Bridge\\ZF2\\SlugifyViewHelper' => __DIR__ . '/..' . '/cocur/slugify/src/Bridge/ZF2/SlugifyViewHelper.php', - 'Cocur\\Slugify\\Bridge\\ZF2\\SlugifyViewHelperFactory' => __DIR__ . '/..' . '/cocur/slugify/src/Bridge/ZF2/SlugifyViewHelperFactory.php', - 'Cocur\\Slugify\\RuleProvider\\DefaultRuleProvider' => __DIR__ . '/..' . '/cocur/slugify/src/RuleProvider/DefaultRuleProvider.php', - 'Cocur\\Slugify\\RuleProvider\\FileRuleProvider' => __DIR__ . '/..' . '/cocur/slugify/src/RuleProvider/FileRuleProvider.php', - 'Cocur\\Slugify\\RuleProvider\\RuleProviderInterface' => __DIR__ . '/..' . '/cocur/slugify/src/RuleProvider/RuleProviderInterface.php', - 'Cocur\\Slugify\\Slugify' => __DIR__ . '/..' . '/cocur/slugify/src/Slugify.php', - 'Cocur\\Slugify\\SlugifyInterface' => __DIR__ . '/..' . '/cocur/slugify/src/SlugifyInterface.php', - 'Collective\\Html\\Componentable' => __DIR__ . '/..' . '/laravelcollective/html/src/Componentable.php', - 'Collective\\Html\\Eloquent\\FormAccessible' => __DIR__ . '/..' . '/laravelcollective/html/src/Eloquent/FormAccessible.php', - 'Collective\\Html\\FormBuilder' => __DIR__ . '/..' . '/laravelcollective/html/src/FormBuilder.php', - 'Collective\\Html\\FormFacade' => __DIR__ . '/..' . '/laravelcollective/html/src/FormFacade.php', - 'Collective\\Html\\HtmlBuilder' => __DIR__ . '/..' . '/laravelcollective/html/src/HtmlBuilder.php', - 'Collective\\Html\\HtmlFacade' => __DIR__ . '/..' . '/laravelcollective/html/src/HtmlFacade.php', - 'Collective\\Html\\HtmlServiceProvider' => __DIR__ . '/..' . '/laravelcollective/html/src/HtmlServiceProvider.php', - 'Cron\\AbstractField' => __DIR__ . '/..' . '/dragonmantank/cron-expression/src/Cron/AbstractField.php', - 'Cron\\CronExpression' => __DIR__ . '/..' . '/dragonmantank/cron-expression/src/Cron/CronExpression.php', - 'Cron\\DayOfMonthField' => __DIR__ . '/..' . '/dragonmantank/cron-expression/src/Cron/DayOfMonthField.php', - 'Cron\\DayOfWeekField' => __DIR__ . '/..' . '/dragonmantank/cron-expression/src/Cron/DayOfWeekField.php', - 'Cron\\FieldFactory' => __DIR__ . '/..' . '/dragonmantank/cron-expression/src/Cron/FieldFactory.php', - 'Cron\\FieldInterface' => __DIR__ . '/..' . '/dragonmantank/cron-expression/src/Cron/FieldInterface.php', - 'Cron\\HoursField' => __DIR__ . '/..' . '/dragonmantank/cron-expression/src/Cron/HoursField.php', - 'Cron\\MinutesField' => __DIR__ . '/..' . '/dragonmantank/cron-expression/src/Cron/MinutesField.php', - 'Cron\\MonthField' => __DIR__ . '/..' . '/dragonmantank/cron-expression/src/Cron/MonthField.php', - 'Cviebrock\\EloquentSluggable\\ServiceProvider' => __DIR__ . '/..' . '/cviebrock/eloquent-sluggable/src/ServiceProvider.php', - 'Cviebrock\\EloquentSluggable\\Services\\SlugService' => __DIR__ . '/..' . '/cviebrock/eloquent-sluggable/src/Services/SlugService.php', - 'Cviebrock\\EloquentSluggable\\Sluggable' => __DIR__ . '/..' . '/cviebrock/eloquent-sluggable/src/Sluggable.php', - 'Cviebrock\\EloquentSluggable\\SluggableObserver' => __DIR__ . '/..' . '/cviebrock/eloquent-sluggable/src/SluggableObserver.php', - 'Cviebrock\\EloquentSluggable\\SluggableScopeHelpers' => __DIR__ . '/..' . '/cviebrock/eloquent-sluggable/src/SluggableScopeHelpers.php', - 'DatabaseSeeder' => __DIR__ . '/../..' . '/database/seeds/DatabaseSeeder.php', - 'DebugBar\\Bridge\\CacheCacheCollector' => __DIR__ . '/..' . '/maximebf/debugbar/src/DebugBar/Bridge/CacheCacheCollector.php', - 'DebugBar\\Bridge\\DoctrineCollector' => __DIR__ . '/..' . '/maximebf/debugbar/src/DebugBar/Bridge/DoctrineCollector.php', - 'DebugBar\\Bridge\\MonologCollector' => __DIR__ . '/..' . '/maximebf/debugbar/src/DebugBar/Bridge/MonologCollector.php', - 'DebugBar\\Bridge\\Propel2Collector' => __DIR__ . '/..' . '/maximebf/debugbar/src/DebugBar/Bridge/Propel2Collector.php', - 'DebugBar\\Bridge\\PropelCollector' => __DIR__ . '/..' . '/maximebf/debugbar/src/DebugBar/Bridge/PropelCollector.php', - 'DebugBar\\Bridge\\SlimCollector' => __DIR__ . '/..' . '/maximebf/debugbar/src/DebugBar/Bridge/SlimCollector.php', - 'DebugBar\\Bridge\\SwiftMailer\\SwiftLogCollector' => __DIR__ . '/..' . '/maximebf/debugbar/src/DebugBar/Bridge/SwiftMailer/SwiftLogCollector.php', - 'DebugBar\\Bridge\\SwiftMailer\\SwiftMailCollector' => __DIR__ . '/..' . '/maximebf/debugbar/src/DebugBar/Bridge/SwiftMailer/SwiftMailCollector.php', - 'DebugBar\\Bridge\\TwigProfileCollector' => __DIR__ . '/..' . '/maximebf/debugbar/src/DebugBar/Bridge/TwigProfileCollector.php', - 'DebugBar\\Bridge\\Twig\\TimeableTwigExtensionProfiler' => __DIR__ . '/..' . '/maximebf/debugbar/src/DebugBar/Bridge/Twig/TimeableTwigExtensionProfiler.php', - 'DebugBar\\Bridge\\Twig\\TraceableTwigEnvironment' => __DIR__ . '/..' . '/maximebf/debugbar/src/DebugBar/Bridge/Twig/TraceableTwigEnvironment.php', - 'DebugBar\\Bridge\\Twig\\TraceableTwigTemplate' => __DIR__ . '/..' . '/maximebf/debugbar/src/DebugBar/Bridge/Twig/TraceableTwigTemplate.php', - 'DebugBar\\Bridge\\Twig\\TwigCollector' => __DIR__ . '/..' . '/maximebf/debugbar/src/DebugBar/Bridge/Twig/TwigCollector.php', - 'DebugBar\\DataCollector\\AggregatedCollector' => __DIR__ . '/..' . '/maximebf/debugbar/src/DebugBar/DataCollector/AggregatedCollector.php', - 'DebugBar\\DataCollector\\AssetProvider' => __DIR__ . '/..' . '/maximebf/debugbar/src/DebugBar/DataCollector/AssetProvider.php', - 'DebugBar\\DataCollector\\ConfigCollector' => __DIR__ . '/..' . '/maximebf/debugbar/src/DebugBar/DataCollector/ConfigCollector.php', - 'DebugBar\\DataCollector\\DataCollector' => __DIR__ . '/..' . '/maximebf/debugbar/src/DebugBar/DataCollector/DataCollector.php', - 'DebugBar\\DataCollector\\DataCollectorInterface' => __DIR__ . '/..' . '/maximebf/debugbar/src/DebugBar/DataCollector/DataCollectorInterface.php', - 'DebugBar\\DataCollector\\ExceptionsCollector' => __DIR__ . '/..' . '/maximebf/debugbar/src/DebugBar/DataCollector/ExceptionsCollector.php', - 'DebugBar\\DataCollector\\LocalizationCollector' => __DIR__ . '/..' . '/maximebf/debugbar/src/DebugBar/DataCollector/LocalizationCollector.php', - 'DebugBar\\DataCollector\\MemoryCollector' => __DIR__ . '/..' . '/maximebf/debugbar/src/DebugBar/DataCollector/MemoryCollector.php', - 'DebugBar\\DataCollector\\MessagesAggregateInterface' => __DIR__ . '/..' . '/maximebf/debugbar/src/DebugBar/DataCollector/MessagesAggregateInterface.php', - 'DebugBar\\DataCollector\\MessagesCollector' => __DIR__ . '/..' . '/maximebf/debugbar/src/DebugBar/DataCollector/MessagesCollector.php', - 'DebugBar\\DataCollector\\PDO\\PDOCollector' => __DIR__ . '/..' . '/maximebf/debugbar/src/DebugBar/DataCollector/PDO/PDOCollector.php', - 'DebugBar\\DataCollector\\PDO\\TraceablePDO' => __DIR__ . '/..' . '/maximebf/debugbar/src/DebugBar/DataCollector/PDO/TraceablePDO.php', - 'DebugBar\\DataCollector\\PDO\\TraceablePDOStatement' => __DIR__ . '/..' . '/maximebf/debugbar/src/DebugBar/DataCollector/PDO/TraceablePDOStatement.php', - 'DebugBar\\DataCollector\\PDO\\TracedStatement' => __DIR__ . '/..' . '/maximebf/debugbar/src/DebugBar/DataCollector/PDO/TracedStatement.php', - 'DebugBar\\DataCollector\\PhpInfoCollector' => __DIR__ . '/..' . '/maximebf/debugbar/src/DebugBar/DataCollector/PhpInfoCollector.php', - 'DebugBar\\DataCollector\\Renderable' => __DIR__ . '/..' . '/maximebf/debugbar/src/DebugBar/DataCollector/Renderable.php', - 'DebugBar\\DataCollector\\RequestDataCollector' => __DIR__ . '/..' . '/maximebf/debugbar/src/DebugBar/DataCollector/RequestDataCollector.php', - 'DebugBar\\DataCollector\\TimeDataCollector' => __DIR__ . '/..' . '/maximebf/debugbar/src/DebugBar/DataCollector/TimeDataCollector.php', - 'DebugBar\\DataFormatter\\DataFormatter' => __DIR__ . '/..' . '/maximebf/debugbar/src/DebugBar/DataFormatter/DataFormatter.php', - 'DebugBar\\DataFormatter\\DataFormatterInterface' => __DIR__ . '/..' . '/maximebf/debugbar/src/DebugBar/DataFormatter/DataFormatterInterface.php', - 'DebugBar\\DataFormatter\\DebugBarVarDumper' => __DIR__ . '/..' . '/maximebf/debugbar/src/DebugBar/DataFormatter/DebugBarVarDumper.php', - 'DebugBar\\DataFormatter\\VarDumper\\DebugBarHtmlDumper' => __DIR__ . '/..' . '/maximebf/debugbar/src/DebugBar/DataFormatter/VarDumper/DebugBarHtmlDumper.php', - 'DebugBar\\DataFormatter\\VarDumper\\SeekingData' => __DIR__ . '/..' . '/maximebf/debugbar/src/DebugBar/DataFormatter/VarDumper/SeekingData.php', - 'DebugBar\\DebugBar' => __DIR__ . '/..' . '/maximebf/debugbar/src/DebugBar/DebugBar.php', - 'DebugBar\\DebugBarException' => __DIR__ . '/..' . '/maximebf/debugbar/src/DebugBar/DebugBarException.php', - 'DebugBar\\HttpDriverInterface' => __DIR__ . '/..' . '/maximebf/debugbar/src/DebugBar/HttpDriverInterface.php', - 'DebugBar\\JavascriptRenderer' => __DIR__ . '/..' . '/maximebf/debugbar/src/DebugBar/JavascriptRenderer.php', - 'DebugBar\\OpenHandler' => __DIR__ . '/..' . '/maximebf/debugbar/src/DebugBar/OpenHandler.php', - 'DebugBar\\PhpHttpDriver' => __DIR__ . '/..' . '/maximebf/debugbar/src/DebugBar/PhpHttpDriver.php', - 'DebugBar\\RequestIdGenerator' => __DIR__ . '/..' . '/maximebf/debugbar/src/DebugBar/RequestIdGenerator.php', - 'DebugBar\\RequestIdGeneratorInterface' => __DIR__ . '/..' . '/maximebf/debugbar/src/DebugBar/RequestIdGeneratorInterface.php', - 'DebugBar\\StandardDebugBar' => __DIR__ . '/..' . '/maximebf/debugbar/src/DebugBar/StandardDebugBar.php', - 'DebugBar\\Storage\\FileStorage' => __DIR__ . '/..' . '/maximebf/debugbar/src/DebugBar/Storage/FileStorage.php', - 'DebugBar\\Storage\\MemcachedStorage' => __DIR__ . '/..' . '/maximebf/debugbar/src/DebugBar/Storage/MemcachedStorage.php', - 'DebugBar\\Storage\\PdoStorage' => __DIR__ . '/..' . '/maximebf/debugbar/src/DebugBar/Storage/PdoStorage.php', - 'DebugBar\\Storage\\RedisStorage' => __DIR__ . '/..' . '/maximebf/debugbar/src/DebugBar/Storage/RedisStorage.php', - 'DebugBar\\Storage\\StorageInterface' => __DIR__ . '/..' . '/maximebf/debugbar/src/DebugBar/Storage/StorageInterface.php', - 'DeepCopy\\DeepCopy' => __DIR__ . '/..' . '/myclabs/deep-copy/src/DeepCopy/DeepCopy.php', - 'DeepCopy\\Exception\\CloneException' => __DIR__ . '/..' . '/myclabs/deep-copy/src/DeepCopy/Exception/CloneException.php', - 'DeepCopy\\Exception\\PropertyException' => __DIR__ . '/..' . '/myclabs/deep-copy/src/DeepCopy/Exception/PropertyException.php', - 'DeepCopy\\Filter\\Doctrine\\DoctrineCollectionFilter' => __DIR__ . '/..' . '/myclabs/deep-copy/src/DeepCopy/Filter/Doctrine/DoctrineCollectionFilter.php', - 'DeepCopy\\Filter\\Doctrine\\DoctrineEmptyCollectionFilter' => __DIR__ . '/..' . '/myclabs/deep-copy/src/DeepCopy/Filter/Doctrine/DoctrineEmptyCollectionFilter.php', - 'DeepCopy\\Filter\\Doctrine\\DoctrineProxyFilter' => __DIR__ . '/..' . '/myclabs/deep-copy/src/DeepCopy/Filter/Doctrine/DoctrineProxyFilter.php', - 'DeepCopy\\Filter\\Filter' => __DIR__ . '/..' . '/myclabs/deep-copy/src/DeepCopy/Filter/Filter.php', - 'DeepCopy\\Filter\\KeepFilter' => __DIR__ . '/..' . '/myclabs/deep-copy/src/DeepCopy/Filter/KeepFilter.php', - 'DeepCopy\\Filter\\ReplaceFilter' => __DIR__ . '/..' . '/myclabs/deep-copy/src/DeepCopy/Filter/ReplaceFilter.php', - 'DeepCopy\\Filter\\SetNullFilter' => __DIR__ . '/..' . '/myclabs/deep-copy/src/DeepCopy/Filter/SetNullFilter.php', - 'DeepCopy\\Matcher\\Doctrine\\DoctrineProxyMatcher' => __DIR__ . '/..' . '/myclabs/deep-copy/src/DeepCopy/Matcher/Doctrine/DoctrineProxyMatcher.php', - 'DeepCopy\\Matcher\\Matcher' => __DIR__ . '/..' . '/myclabs/deep-copy/src/DeepCopy/Matcher/Matcher.php', - 'DeepCopy\\Matcher\\PropertyMatcher' => __DIR__ . '/..' . '/myclabs/deep-copy/src/DeepCopy/Matcher/PropertyMatcher.php', - 'DeepCopy\\Matcher\\PropertyNameMatcher' => __DIR__ . '/..' . '/myclabs/deep-copy/src/DeepCopy/Matcher/PropertyNameMatcher.php', - 'DeepCopy\\Matcher\\PropertyTypeMatcher' => __DIR__ . '/..' . '/myclabs/deep-copy/src/DeepCopy/Matcher/PropertyTypeMatcher.php', - 'DeepCopy\\Reflection\\ReflectionHelper' => __DIR__ . '/..' . '/myclabs/deep-copy/src/DeepCopy/Reflection/ReflectionHelper.php', - 'DeepCopy\\TypeFilter\\Date\\DateIntervalFilter' => __DIR__ . '/..' . '/myclabs/deep-copy/src/DeepCopy/TypeFilter/Date/DateIntervalFilter.php', - 'DeepCopy\\TypeFilter\\ReplaceFilter' => __DIR__ . '/..' . '/myclabs/deep-copy/src/DeepCopy/TypeFilter/ReplaceFilter.php', - 'DeepCopy\\TypeFilter\\ShallowCopyFilter' => __DIR__ . '/..' . '/myclabs/deep-copy/src/DeepCopy/TypeFilter/ShallowCopyFilter.php', - 'DeepCopy\\TypeFilter\\Spl\\SplDoublyLinkedList' => __DIR__ . '/..' . '/myclabs/deep-copy/src/DeepCopy/TypeFilter/Spl/SplDoublyLinkedList.php', - 'DeepCopy\\TypeFilter\\Spl\\SplDoublyLinkedListFilter' => __DIR__ . '/..' . '/myclabs/deep-copy/src/DeepCopy/TypeFilter/Spl/SplDoublyLinkedListFilter.php', - 'DeepCopy\\TypeFilter\\TypeFilter' => __DIR__ . '/..' . '/myclabs/deep-copy/src/DeepCopy/TypeFilter/TypeFilter.php', - 'DeepCopy\\TypeMatcher\\TypeMatcher' => __DIR__ . '/..' . '/myclabs/deep-copy/src/DeepCopy/TypeMatcher/TypeMatcher.php', - 'DepartmentSeeder' => __DIR__ . '/../..' . '/database/seeds/DepartmentSeeder.php', - 'Doctrine\\Common\\Inflector\\Inflector' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Common/Inflector/Inflector.php', - 'Doctrine\\Common\\Lexer\\AbstractLexer' => __DIR__ . '/..' . '/doctrine/lexer/lib/Doctrine/Common/Lexer/AbstractLexer.php', - 'Doctrine\\Instantiator\\Exception\\ExceptionInterface' => __DIR__ . '/..' . '/doctrine/instantiator/src/Doctrine/Instantiator/Exception/ExceptionInterface.php', - 'Doctrine\\Instantiator\\Exception\\InvalidArgumentException' => __DIR__ . '/..' . '/doctrine/instantiator/src/Doctrine/Instantiator/Exception/InvalidArgumentException.php', - 'Doctrine\\Instantiator\\Exception\\UnexpectedValueException' => __DIR__ . '/..' . '/doctrine/instantiator/src/Doctrine/Instantiator/Exception/UnexpectedValueException.php', - 'Doctrine\\Instantiator\\Instantiator' => __DIR__ . '/..' . '/doctrine/instantiator/src/Doctrine/Instantiator/Instantiator.php', - 'Doctrine\\Instantiator\\InstantiatorInterface' => __DIR__ . '/..' . '/doctrine/instantiator/src/Doctrine/Instantiator/InstantiatorInterface.php', - 'Dotenv\\Dotenv' => __DIR__ . '/..' . '/vlucas/phpdotenv/src/Dotenv.php', - 'Dotenv\\Exception\\ExceptionInterface' => __DIR__ . '/..' . '/vlucas/phpdotenv/src/Exception/ExceptionInterface.php', - 'Dotenv\\Exception\\InvalidCallbackException' => __DIR__ . '/..' . '/vlucas/phpdotenv/src/Exception/InvalidCallbackException.php', - 'Dotenv\\Exception\\InvalidFileException' => __DIR__ . '/..' . '/vlucas/phpdotenv/src/Exception/InvalidFileException.php', - 'Dotenv\\Exception\\InvalidPathException' => __DIR__ . '/..' . '/vlucas/phpdotenv/src/Exception/InvalidPathException.php', - 'Dotenv\\Exception\\ValidationException' => __DIR__ . '/..' . '/vlucas/phpdotenv/src/Exception/ValidationException.php', - 'Dotenv\\Loader' => __DIR__ . '/..' . '/vlucas/phpdotenv/src/Loader.php', - 'Dotenv\\Validator' => __DIR__ . '/..' . '/vlucas/phpdotenv/src/Validator.php', - 'Egulias\\EmailValidator\\EmailLexer' => __DIR__ . '/..' . '/egulias/email-validator/EmailValidator/EmailLexer.php', - 'Egulias\\EmailValidator\\EmailParser' => __DIR__ . '/..' . '/egulias/email-validator/EmailValidator/EmailParser.php', - 'Egulias\\EmailValidator\\EmailValidator' => __DIR__ . '/..' . '/egulias/email-validator/EmailValidator/EmailValidator.php', - 'Egulias\\EmailValidator\\Exception\\AtextAfterCFWS' => __DIR__ . '/..' . '/egulias/email-validator/EmailValidator/Exception/AtextAfterCFWS.php', - 'Egulias\\EmailValidator\\Exception\\CRLFAtTheEnd' => __DIR__ . '/..' . '/egulias/email-validator/EmailValidator/Exception/CRLFAtTheEnd.php', - 'Egulias\\EmailValidator\\Exception\\CRLFX2' => __DIR__ . '/..' . '/egulias/email-validator/EmailValidator/Exception/CRLFX2.php', - 'Egulias\\EmailValidator\\Exception\\CRNoLF' => __DIR__ . '/..' . '/egulias/email-validator/EmailValidator/Exception/CRNoLF.php', - 'Egulias\\EmailValidator\\Exception\\CharNotAllowed' => __DIR__ . '/..' . '/egulias/email-validator/EmailValidator/Exception/CharNotAllowed.php', - 'Egulias\\EmailValidator\\Exception\\CommaInDomain' => __DIR__ . '/..' . '/egulias/email-validator/EmailValidator/Exception/CommaInDomain.php', - 'Egulias\\EmailValidator\\Exception\\ConsecutiveAt' => __DIR__ . '/..' . '/egulias/email-validator/EmailValidator/Exception/ConsecutiveAt.php', - 'Egulias\\EmailValidator\\Exception\\ConsecutiveDot' => __DIR__ . '/..' . '/egulias/email-validator/EmailValidator/Exception/ConsecutiveDot.php', - 'Egulias\\EmailValidator\\Exception\\DomainHyphened' => __DIR__ . '/..' . '/egulias/email-validator/EmailValidator/Exception/DomainHyphened.php', - 'Egulias\\EmailValidator\\Exception\\DotAtEnd' => __DIR__ . '/..' . '/egulias/email-validator/EmailValidator/Exception/DotAtEnd.php', - 'Egulias\\EmailValidator\\Exception\\DotAtStart' => __DIR__ . '/..' . '/egulias/email-validator/EmailValidator/Exception/DotAtStart.php', - 'Egulias\\EmailValidator\\Exception\\ExpectedQPair' => __DIR__ . '/..' . '/egulias/email-validator/EmailValidator/Exception/ExpectingQPair.php', - 'Egulias\\EmailValidator\\Exception\\ExpectingAT' => __DIR__ . '/..' . '/egulias/email-validator/EmailValidator/Exception/ExpectingAT.php', - 'Egulias\\EmailValidator\\Exception\\ExpectingATEXT' => __DIR__ . '/..' . '/egulias/email-validator/EmailValidator/Exception/ExpectingATEXT.php', - 'Egulias\\EmailValidator\\Exception\\ExpectingCTEXT' => __DIR__ . '/..' . '/egulias/email-validator/EmailValidator/Exception/ExpectingCTEXT.php', - 'Egulias\\EmailValidator\\Exception\\ExpectingDTEXT' => __DIR__ . '/..' . '/egulias/email-validator/EmailValidator/Exception/ExpectingDTEXT.php', - 'Egulias\\EmailValidator\\Exception\\ExpectingDomainLiteralClose' => __DIR__ . '/..' . '/egulias/email-validator/EmailValidator/Exception/ExpectingDomainLiteralClose.php', - 'Egulias\\EmailValidator\\Exception\\InvalidEmail' => __DIR__ . '/..' . '/egulias/email-validator/EmailValidator/Exception/InvalidEmail.php', - 'Egulias\\EmailValidator\\Exception\\NoDNSRecord' => __DIR__ . '/..' . '/egulias/email-validator/EmailValidator/Exception/NoDNSRecord.php', - 'Egulias\\EmailValidator\\Exception\\NoDomainPart' => __DIR__ . '/..' . '/egulias/email-validator/EmailValidator/Exception/NoDomainPart.php', - 'Egulias\\EmailValidator\\Exception\\NoLocalPart' => __DIR__ . '/..' . '/egulias/email-validator/EmailValidator/Exception/NoLocalPart.php', - 'Egulias\\EmailValidator\\Exception\\UnclosedComment' => __DIR__ . '/..' . '/egulias/email-validator/EmailValidator/Exception/UnclosedComment.php', - 'Egulias\\EmailValidator\\Exception\\UnclosedQuotedString' => __DIR__ . '/..' . '/egulias/email-validator/EmailValidator/Exception/UnclosedQuotedString.php', - 'Egulias\\EmailValidator\\Exception\\UnopenedComment' => __DIR__ . '/..' . '/egulias/email-validator/EmailValidator/Exception/UnopenedComment.php', - 'Egulias\\EmailValidator\\Parser\\DomainPart' => __DIR__ . '/..' . '/egulias/email-validator/EmailValidator/Parser/DomainPart.php', - 'Egulias\\EmailValidator\\Parser\\LocalPart' => __DIR__ . '/..' . '/egulias/email-validator/EmailValidator/Parser/LocalPart.php', - 'Egulias\\EmailValidator\\Parser\\Parser' => __DIR__ . '/..' . '/egulias/email-validator/EmailValidator/Parser/Parser.php', - 'Egulias\\EmailValidator\\Validation\\DNSCheckValidation' => __DIR__ . '/..' . '/egulias/email-validator/EmailValidator/Validation/DNSCheckValidation.php', - 'Egulias\\EmailValidator\\Validation\\EmailValidation' => __DIR__ . '/..' . '/egulias/email-validator/EmailValidator/Validation/EmailValidation.php', - 'Egulias\\EmailValidator\\Validation\\Error\\RFCWarnings' => __DIR__ . '/..' . '/egulias/email-validator/EmailValidator/Validation/Error/RFCWarnings.php', - 'Egulias\\EmailValidator\\Validation\\Error\\SpoofEmail' => __DIR__ . '/..' . '/egulias/email-validator/EmailValidator/Validation/Error/SpoofEmail.php', - 'Egulias\\EmailValidator\\Validation\\Exception\\EmptyValidationList' => __DIR__ . '/..' . '/egulias/email-validator/EmailValidator/Validation/Exception/EmptyValidationList.php', - 'Egulias\\EmailValidator\\Validation\\MultipleErrors' => __DIR__ . '/..' . '/egulias/email-validator/EmailValidator/Validation/MultipleErrors.php', - 'Egulias\\EmailValidator\\Validation\\MultipleValidationWithAnd' => __DIR__ . '/..' . '/egulias/email-validator/EmailValidator/Validation/MultipleValidationWithAnd.php', - 'Egulias\\EmailValidator\\Validation\\NoRFCWarningsValidation' => __DIR__ . '/..' . '/egulias/email-validator/EmailValidator/Validation/NoRFCWarningsValidation.php', - 'Egulias\\EmailValidator\\Validation\\RFCValidation' => __DIR__ . '/..' . '/egulias/email-validator/EmailValidator/Validation/RFCValidation.php', - 'Egulias\\EmailValidator\\Validation\\SpoofCheckValidation' => __DIR__ . '/..' . '/egulias/email-validator/EmailValidator/Validation/SpoofCheckValidation.php', - 'Egulias\\EmailValidator\\Warning\\AddressLiteral' => __DIR__ . '/..' . '/egulias/email-validator/EmailValidator/Warning/AddressLiteral.php', - 'Egulias\\EmailValidator\\Warning\\CFWSNearAt' => __DIR__ . '/..' . '/egulias/email-validator/EmailValidator/Warning/CFWSNearAt.php', - 'Egulias\\EmailValidator\\Warning\\CFWSWithFWS' => __DIR__ . '/..' . '/egulias/email-validator/EmailValidator/Warning/CFWSWithFWS.php', - 'Egulias\\EmailValidator\\Warning\\Comment' => __DIR__ . '/..' . '/egulias/email-validator/EmailValidator/Warning/Comment.php', - 'Egulias\\EmailValidator\\Warning\\DeprecatedComment' => __DIR__ . '/..' . '/egulias/email-validator/EmailValidator/Warning/DeprecatedComment.php', - 'Egulias\\EmailValidator\\Warning\\DomainLiteral' => __DIR__ . '/..' . '/egulias/email-validator/EmailValidator/Warning/DomainLiteral.php', - 'Egulias\\EmailValidator\\Warning\\DomainTooLong' => __DIR__ . '/..' . '/egulias/email-validator/EmailValidator/Warning/DomainTooLong.php', - 'Egulias\\EmailValidator\\Warning\\EmailTooLong' => __DIR__ . '/..' . '/egulias/email-validator/EmailValidator/Warning/EmailTooLong.php', - 'Egulias\\EmailValidator\\Warning\\IPV6BadChar' => __DIR__ . '/..' . '/egulias/email-validator/EmailValidator/Warning/IPV6BadChar.php', - 'Egulias\\EmailValidator\\Warning\\IPV6ColonEnd' => __DIR__ . '/..' . '/egulias/email-validator/EmailValidator/Warning/IPV6ColonEnd.php', - 'Egulias\\EmailValidator\\Warning\\IPV6ColonStart' => __DIR__ . '/..' . '/egulias/email-validator/EmailValidator/Warning/IPV6ColonStart.php', - 'Egulias\\EmailValidator\\Warning\\IPV6Deprecated' => __DIR__ . '/..' . '/egulias/email-validator/EmailValidator/Warning/IPV6Deprecated.php', - 'Egulias\\EmailValidator\\Warning\\IPV6DoubleColon' => __DIR__ . '/..' . '/egulias/email-validator/EmailValidator/Warning/IPV6DoubleColon.php', - 'Egulias\\EmailValidator\\Warning\\IPV6GroupCount' => __DIR__ . '/..' . '/egulias/email-validator/EmailValidator/Warning/IPV6GroupCount.php', - 'Egulias\\EmailValidator\\Warning\\IPV6MaxGroups' => __DIR__ . '/..' . '/egulias/email-validator/EmailValidator/Warning/IPV6MaxGroups.php', - 'Egulias\\EmailValidator\\Warning\\LabelTooLong' => __DIR__ . '/..' . '/egulias/email-validator/EmailValidator/Warning/LabelTooLong.php', - 'Egulias\\EmailValidator\\Warning\\LocalTooLong' => __DIR__ . '/..' . '/egulias/email-validator/EmailValidator/Warning/LocalTooLong.php', - 'Egulias\\EmailValidator\\Warning\\NoDNSMXRecord' => __DIR__ . '/..' . '/egulias/email-validator/EmailValidator/Warning/NoDNSMXRecord.php', - 'Egulias\\EmailValidator\\Warning\\ObsoleteDTEXT' => __DIR__ . '/..' . '/egulias/email-validator/EmailValidator/Warning/ObsoleteDTEXT.php', - 'Egulias\\EmailValidator\\Warning\\QuotedPart' => __DIR__ . '/..' . '/egulias/email-validator/EmailValidator/Warning/QuotedPart.php', - 'Egulias\\EmailValidator\\Warning\\QuotedString' => __DIR__ . '/..' . '/egulias/email-validator/EmailValidator/Warning/QuotedString.php', - 'Egulias\\EmailValidator\\Warning\\TLD' => __DIR__ . '/..' . '/egulias/email-validator/EmailValidator/Warning/TLD.php', - 'Egulias\\EmailValidator\\Warning\\Warning' => __DIR__ . '/..' . '/egulias/email-validator/EmailValidator/Warning/Warning.php', - 'EventSeeder' => __DIR__ . '/../..' . '/database/seeds/EventSeeder.php', - 'Facebook\\Authentication\\AccessToken' => __DIR__ . '/..' . '/facebook/graph-sdk/src/Facebook/Authentication/AccessToken.php', - 'Facebook\\Authentication\\AccessTokenMetadata' => __DIR__ . '/..' . '/facebook/graph-sdk/src/Facebook/Authentication/AccessTokenMetadata.php', - 'Facebook\\Authentication\\OAuth2Client' => __DIR__ . '/..' . '/facebook/graph-sdk/src/Facebook/Authentication/OAuth2Client.php', - 'Facebook\\Exceptions\\FacebookAuthenticationException' => __DIR__ . '/..' . '/facebook/graph-sdk/src/Facebook/Exceptions/FacebookAuthenticationException.php', - 'Facebook\\Exceptions\\FacebookAuthorizationException' => __DIR__ . '/..' . '/facebook/graph-sdk/src/Facebook/Exceptions/FacebookAuthorizationException.php', - 'Facebook\\Exceptions\\FacebookClientException' => __DIR__ . '/..' . '/facebook/graph-sdk/src/Facebook/Exceptions/FacebookClientException.php', - 'Facebook\\Exceptions\\FacebookOtherException' => __DIR__ . '/..' . '/facebook/graph-sdk/src/Facebook/Exceptions/FacebookOtherException.php', - 'Facebook\\Exceptions\\FacebookResponseException' => __DIR__ . '/..' . '/facebook/graph-sdk/src/Facebook/Exceptions/FacebookResponseException.php', - 'Facebook\\Exceptions\\FacebookResumableUploadException' => __DIR__ . '/..' . '/facebook/graph-sdk/src/Facebook/Exceptions/FacebookResumableUploadException.php', - 'Facebook\\Exceptions\\FacebookSDKException' => __DIR__ . '/..' . '/facebook/graph-sdk/src/Facebook/Exceptions/FacebookSDKException.php', - 'Facebook\\Exceptions\\FacebookServerException' => __DIR__ . '/..' . '/facebook/graph-sdk/src/Facebook/Exceptions/FacebookServerException.php', - 'Facebook\\Exceptions\\FacebookThrottleException' => __DIR__ . '/..' . '/facebook/graph-sdk/src/Facebook/Exceptions/FacebookThrottleException.php', - 'Facebook\\Facebook' => __DIR__ . '/..' . '/facebook/graph-sdk/src/Facebook/Facebook.php', - 'Facebook\\FacebookApp' => __DIR__ . '/..' . '/facebook/graph-sdk/src/Facebook/FacebookApp.php', - 'Facebook\\FacebookBatchRequest' => __DIR__ . '/..' . '/facebook/graph-sdk/src/Facebook/FacebookBatchRequest.php', - 'Facebook\\FacebookBatchResponse' => __DIR__ . '/..' . '/facebook/graph-sdk/src/Facebook/FacebookBatchResponse.php', - 'Facebook\\FacebookClient' => __DIR__ . '/..' . '/facebook/graph-sdk/src/Facebook/FacebookClient.php', - 'Facebook\\FacebookRequest' => __DIR__ . '/..' . '/facebook/graph-sdk/src/Facebook/FacebookRequest.php', - 'Facebook\\FacebookResponse' => __DIR__ . '/..' . '/facebook/graph-sdk/src/Facebook/FacebookResponse.php', - 'Facebook\\FileUpload\\FacebookFile' => __DIR__ . '/..' . '/facebook/graph-sdk/src/Facebook/FileUpload/FacebookFile.php', - 'Facebook\\FileUpload\\FacebookResumableUploader' => __DIR__ . '/..' . '/facebook/graph-sdk/src/Facebook/FileUpload/FacebookResumableUploader.php', - 'Facebook\\FileUpload\\FacebookTransferChunk' => __DIR__ . '/..' . '/facebook/graph-sdk/src/Facebook/FileUpload/FacebookTransferChunk.php', - 'Facebook\\FileUpload\\FacebookVideo' => __DIR__ . '/..' . '/facebook/graph-sdk/src/Facebook/FileUpload/FacebookVideo.php', - 'Facebook\\FileUpload\\Mimetypes' => __DIR__ . '/..' . '/facebook/graph-sdk/src/Facebook/FileUpload/Mimetypes.php', - 'Facebook\\GraphNodes\\Birthday' => __DIR__ . '/..' . '/facebook/graph-sdk/src/Facebook/GraphNodes/Birthday.php', - 'Facebook\\GraphNodes\\Collection' => __DIR__ . '/..' . '/facebook/graph-sdk/src/Facebook/GraphNodes/Collection.php', - 'Facebook\\GraphNodes\\GraphAchievement' => __DIR__ . '/..' . '/facebook/graph-sdk/src/Facebook/GraphNodes/GraphAchievement.php', - 'Facebook\\GraphNodes\\GraphAlbum' => __DIR__ . '/..' . '/facebook/graph-sdk/src/Facebook/GraphNodes/GraphAlbum.php', - 'Facebook\\GraphNodes\\GraphApplication' => __DIR__ . '/..' . '/facebook/graph-sdk/src/Facebook/GraphNodes/GraphApplication.php', - 'Facebook\\GraphNodes\\GraphCoverPhoto' => __DIR__ . '/..' . '/facebook/graph-sdk/src/Facebook/GraphNodes/GraphCoverPhoto.php', - 'Facebook\\GraphNodes\\GraphEdge' => __DIR__ . '/..' . '/facebook/graph-sdk/src/Facebook/GraphNodes/GraphEdge.php', - 'Facebook\\GraphNodes\\GraphEvent' => __DIR__ . '/..' . '/facebook/graph-sdk/src/Facebook/GraphNodes/GraphEvent.php', - 'Facebook\\GraphNodes\\GraphGroup' => __DIR__ . '/..' . '/facebook/graph-sdk/src/Facebook/GraphNodes/GraphGroup.php', - 'Facebook\\GraphNodes\\GraphList' => __DIR__ . '/..' . '/facebook/graph-sdk/src/Facebook/GraphNodes/GraphList.php', - 'Facebook\\GraphNodes\\GraphLocation' => __DIR__ . '/..' . '/facebook/graph-sdk/src/Facebook/GraphNodes/GraphLocation.php', - 'Facebook\\GraphNodes\\GraphNode' => __DIR__ . '/..' . '/facebook/graph-sdk/src/Facebook/GraphNodes/GraphNode.php', - 'Facebook\\GraphNodes\\GraphNodeFactory' => __DIR__ . '/..' . '/facebook/graph-sdk/src/Facebook/GraphNodes/GraphNodeFactory.php', - 'Facebook\\GraphNodes\\GraphObject' => __DIR__ . '/..' . '/facebook/graph-sdk/src/Facebook/GraphNodes/GraphObject.php', - 'Facebook\\GraphNodes\\GraphObjectFactory' => __DIR__ . '/..' . '/facebook/graph-sdk/src/Facebook/GraphNodes/GraphObjectFactory.php', - 'Facebook\\GraphNodes\\GraphPage' => __DIR__ . '/..' . '/facebook/graph-sdk/src/Facebook/GraphNodes/GraphPage.php', - 'Facebook\\GraphNodes\\GraphPicture' => __DIR__ . '/..' . '/facebook/graph-sdk/src/Facebook/GraphNodes/GraphPicture.php', - 'Facebook\\GraphNodes\\GraphSessionInfo' => __DIR__ . '/..' . '/facebook/graph-sdk/src/Facebook/GraphNodes/GraphSessionInfo.php', - 'Facebook\\GraphNodes\\GraphUser' => __DIR__ . '/..' . '/facebook/graph-sdk/src/Facebook/GraphNodes/GraphUser.php', - 'Facebook\\Helpers\\FacebookCanvasHelper' => __DIR__ . '/..' . '/facebook/graph-sdk/src/Facebook/Helpers/FacebookCanvasHelper.php', - 'Facebook\\Helpers\\FacebookJavaScriptHelper' => __DIR__ . '/..' . '/facebook/graph-sdk/src/Facebook/Helpers/FacebookJavaScriptHelper.php', - 'Facebook\\Helpers\\FacebookPageTabHelper' => __DIR__ . '/..' . '/facebook/graph-sdk/src/Facebook/Helpers/FacebookPageTabHelper.php', - 'Facebook\\Helpers\\FacebookRedirectLoginHelper' => __DIR__ . '/..' . '/facebook/graph-sdk/src/Facebook/Helpers/FacebookRedirectLoginHelper.php', - 'Facebook\\Helpers\\FacebookSignedRequestFromInputHelper' => __DIR__ . '/..' . '/facebook/graph-sdk/src/Facebook/Helpers/FacebookSignedRequestFromInputHelper.php', - 'Facebook\\HttpClients\\FacebookCurl' => __DIR__ . '/..' . '/facebook/graph-sdk/src/Facebook/HttpClients/FacebookCurl.php', - 'Facebook\\HttpClients\\FacebookCurlHttpClient' => __DIR__ . '/..' . '/facebook/graph-sdk/src/Facebook/HttpClients/FacebookCurlHttpClient.php', - 'Facebook\\HttpClients\\FacebookGuzzleHttpClient' => __DIR__ . '/..' . '/facebook/graph-sdk/src/Facebook/HttpClients/FacebookGuzzleHttpClient.php', - 'Facebook\\HttpClients\\FacebookHttpClientInterface' => __DIR__ . '/..' . '/facebook/graph-sdk/src/Facebook/HttpClients/FacebookHttpClientInterface.php', - 'Facebook\\HttpClients\\FacebookStream' => __DIR__ . '/..' . '/facebook/graph-sdk/src/Facebook/HttpClients/FacebookStream.php', - 'Facebook\\HttpClients\\FacebookStreamHttpClient' => __DIR__ . '/..' . '/facebook/graph-sdk/src/Facebook/HttpClients/FacebookStreamHttpClient.php', - 'Facebook\\HttpClients\\HttpClientsFactory' => __DIR__ . '/..' . '/facebook/graph-sdk/src/Facebook/HttpClients/HttpClientsFactory.php', - 'Facebook\\Http\\GraphRawResponse' => __DIR__ . '/..' . '/facebook/graph-sdk/src/Facebook/Http/GraphRawResponse.php', - 'Facebook\\Http\\RequestBodyInterface' => __DIR__ . '/..' . '/facebook/graph-sdk/src/Facebook/Http/RequestBodyInterface.php', - 'Facebook\\Http\\RequestBodyMultipart' => __DIR__ . '/..' . '/facebook/graph-sdk/src/Facebook/Http/RequestBodyMultipart.php', - 'Facebook\\Http\\RequestBodyUrlEncoded' => __DIR__ . '/..' . '/facebook/graph-sdk/src/Facebook/Http/RequestBodyUrlEncoded.php', - 'Facebook\\PersistentData\\FacebookMemoryPersistentDataHandler' => __DIR__ . '/..' . '/facebook/graph-sdk/src/Facebook/PersistentData/FacebookMemoryPersistentDataHandler.php', - 'Facebook\\PersistentData\\FacebookSessionPersistentDataHandler' => __DIR__ . '/..' . '/facebook/graph-sdk/src/Facebook/PersistentData/FacebookSessionPersistentDataHandler.php', - 'Facebook\\PersistentData\\PersistentDataFactory' => __DIR__ . '/..' . '/facebook/graph-sdk/src/Facebook/PersistentData/PersistentDataFactory.php', - 'Facebook\\PersistentData\\PersistentDataInterface' => __DIR__ . '/..' . '/facebook/graph-sdk/src/Facebook/PersistentData/PersistentDataInterface.php', - 'Facebook\\PseudoRandomString\\McryptPseudoRandomStringGenerator' => __DIR__ . '/..' . '/facebook/graph-sdk/src/Facebook/PseudoRandomString/McryptPseudoRandomStringGenerator.php', - 'Facebook\\PseudoRandomString\\OpenSslPseudoRandomStringGenerator' => __DIR__ . '/..' . '/facebook/graph-sdk/src/Facebook/PseudoRandomString/OpenSslPseudoRandomStringGenerator.php', - 'Facebook\\PseudoRandomString\\PseudoRandomStringGeneratorFactory' => __DIR__ . '/..' . '/facebook/graph-sdk/src/Facebook/PseudoRandomString/PseudoRandomStringGeneratorFactory.php', - 'Facebook\\PseudoRandomString\\PseudoRandomStringGeneratorInterface' => __DIR__ . '/..' . '/facebook/graph-sdk/src/Facebook/PseudoRandomString/PseudoRandomStringGeneratorInterface.php', - 'Facebook\\PseudoRandomString\\PseudoRandomStringGeneratorTrait' => __DIR__ . '/..' . '/facebook/graph-sdk/src/Facebook/PseudoRandomString/PseudoRandomStringGeneratorTrait.php', - 'Facebook\\PseudoRandomString\\RandomBytesPseudoRandomStringGenerator' => __DIR__ . '/..' . '/facebook/graph-sdk/src/Facebook/PseudoRandomString/RandomBytesPseudoRandomStringGenerator.php', - 'Facebook\\PseudoRandomString\\UrandomPseudoRandomStringGenerator' => __DIR__ . '/..' . '/facebook/graph-sdk/src/Facebook/PseudoRandomString/UrandomPseudoRandomStringGenerator.php', - 'Facebook\\SignedRequest' => __DIR__ . '/..' . '/facebook/graph-sdk/src/Facebook/SignedRequest.php', - 'Facebook\\Url\\FacebookUrlDetectionHandler' => __DIR__ . '/..' . '/facebook/graph-sdk/src/Facebook/Url/FacebookUrlDetectionHandler.php', - 'Facebook\\Url\\FacebookUrlManipulator' => __DIR__ . '/..' . '/facebook/graph-sdk/src/Facebook/Url/FacebookUrlManipulator.php', - 'Facebook\\Url\\UrlDetectionInterface' => __DIR__ . '/..' . '/facebook/graph-sdk/src/Facebook/Url/UrlDetectionInterface.php', - 'Faker\\Calculator\\Iban' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Calculator/Iban.php', - 'Faker\\Calculator\\Inn' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Calculator/Inn.php', - 'Faker\\Calculator\\Luhn' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Calculator/Luhn.php', - 'Faker\\Calculator\\TCNo' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Calculator/TCNo.php', - 'Faker\\DefaultGenerator' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/DefaultGenerator.php', - 'Faker\\Documentor' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Documentor.php', - 'Faker\\Factory' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Factory.php', - 'Faker\\Generator' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Generator.php', - 'Faker\\Guesser\\Name' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Guesser/Name.php', - 'Faker\\ORM\\CakePHP\\ColumnTypeGuesser' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/ORM/CakePHP/ColumnTypeGuesser.php', - 'Faker\\ORM\\CakePHP\\EntityPopulator' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/ORM/CakePHP/EntityPopulator.php', - 'Faker\\ORM\\CakePHP\\Populator' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/ORM/CakePHP/Populator.php', - 'Faker\\ORM\\Doctrine\\ColumnTypeGuesser' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/ORM/Doctrine/ColumnTypeGuesser.php', - 'Faker\\ORM\\Doctrine\\EntityPopulator' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/ORM/Doctrine/EntityPopulator.php', - 'Faker\\ORM\\Doctrine\\Populator' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/ORM/Doctrine/Populator.php', - 'Faker\\ORM\\Mandango\\ColumnTypeGuesser' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/ORM/Mandango/ColumnTypeGuesser.php', - 'Faker\\ORM\\Mandango\\EntityPopulator' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/ORM/Mandango/EntityPopulator.php', - 'Faker\\ORM\\Mandango\\Populator' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/ORM/Mandango/Populator.php', - 'Faker\\ORM\\Propel2\\ColumnTypeGuesser' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/ORM/Propel2/ColumnTypeGuesser.php', - 'Faker\\ORM\\Propel2\\EntityPopulator' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/ORM/Propel2/EntityPopulator.php', - 'Faker\\ORM\\Propel2\\Populator' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/ORM/Propel2/Populator.php', - 'Faker\\ORM\\Propel\\ColumnTypeGuesser' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/ORM/Propel/ColumnTypeGuesser.php', - 'Faker\\ORM\\Propel\\EntityPopulator' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/ORM/Propel/EntityPopulator.php', - 'Faker\\ORM\\Propel\\Populator' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/ORM/Propel/Populator.php', - 'Faker\\ORM\\Spot\\ColumnTypeGuesser' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/ORM/Spot/ColumnTypeGuesser.php', - 'Faker\\ORM\\Spot\\EntityPopulator' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/ORM/Spot/EntityPopulator.php', - 'Faker\\ORM\\Spot\\Populator' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/ORM/Spot/Populator.php', - 'Faker\\Provider\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/Address.php', - 'Faker\\Provider\\Barcode' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/Barcode.php', - 'Faker\\Provider\\Base' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/Base.php', - 'Faker\\Provider\\Biased' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/Biased.php', - 'Faker\\Provider\\Color' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/Color.php', - 'Faker\\Provider\\Company' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/Company.php', - 'Faker\\Provider\\DateTime' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/DateTime.php', - 'Faker\\Provider\\File' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/File.php', - 'Faker\\Provider\\HtmlLorem' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/HtmlLorem.php', - 'Faker\\Provider\\Image' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/Image.php', - 'Faker\\Provider\\Internet' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/Internet.php', - 'Faker\\Provider\\Lorem' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/Lorem.php', - 'Faker\\Provider\\Miscellaneous' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/Miscellaneous.php', - 'Faker\\Provider\\Payment' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/Payment.php', - 'Faker\\Provider\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/Person.php', - 'Faker\\Provider\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/PhoneNumber.php', - 'Faker\\Provider\\Text' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/Text.php', - 'Faker\\Provider\\UserAgent' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/UserAgent.php', - 'Faker\\Provider\\Uuid' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/Uuid.php', - 'Faker\\Provider\\ar_JO\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ar_JO/Address.php', - 'Faker\\Provider\\ar_JO\\Company' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ar_JO/Company.php', - 'Faker\\Provider\\ar_JO\\Internet' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ar_JO/Internet.php', - 'Faker\\Provider\\ar_JO\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ar_JO/Person.php', - 'Faker\\Provider\\ar_JO\\Text' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ar_JO/Text.php', - 'Faker\\Provider\\ar_SA\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ar_SA/Address.php', - 'Faker\\Provider\\ar_SA\\Color' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ar_SA/Color.php', - 'Faker\\Provider\\ar_SA\\Company' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ar_SA/Company.php', - 'Faker\\Provider\\ar_SA\\Internet' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ar_SA/Internet.php', - 'Faker\\Provider\\ar_SA\\Payment' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ar_SA/Payment.php', - 'Faker\\Provider\\ar_SA\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ar_SA/Person.php', - 'Faker\\Provider\\ar_SA\\Text' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ar_SA/Text.php', - 'Faker\\Provider\\at_AT\\Payment' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/at_AT/Payment.php', - 'Faker\\Provider\\bg_BG\\Internet' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/bg_BG/Internet.php', - 'Faker\\Provider\\bg_BG\\Payment' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/bg_BG/Payment.php', - 'Faker\\Provider\\bg_BG\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/bg_BG/Person.php', - 'Faker\\Provider\\bg_BG\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/bg_BG/PhoneNumber.php', - 'Faker\\Provider\\bn_BD\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/bn_BD/Address.php', - 'Faker\\Provider\\bn_BD\\Company' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/bn_BD/Company.php', - 'Faker\\Provider\\bn_BD\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/bn_BD/Person.php', - 'Faker\\Provider\\bn_BD\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/bn_BD/PhoneNumber.php', - 'Faker\\Provider\\bn_BD\\Utils' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/bn_BD/Utils.php', - 'Faker\\Provider\\cs_CZ\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/cs_CZ/Address.php', - 'Faker\\Provider\\cs_CZ\\Company' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/cs_CZ/Company.php', - 'Faker\\Provider\\cs_CZ\\DateTime' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/cs_CZ/DateTime.php', - 'Faker\\Provider\\cs_CZ\\Internet' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/cs_CZ/Internet.php', - 'Faker\\Provider\\cs_CZ\\Payment' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/cs_CZ/Payment.php', - 'Faker\\Provider\\cs_CZ\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/cs_CZ/Person.php', - 'Faker\\Provider\\cs_CZ\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/cs_CZ/PhoneNumber.php', - 'Faker\\Provider\\cs_CZ\\Text' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/cs_CZ/Text.php', - 'Faker\\Provider\\da_DK\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/da_DK/Address.php', - 'Faker\\Provider\\da_DK\\Company' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/da_DK/Company.php', - 'Faker\\Provider\\da_DK\\Internet' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/da_DK/Internet.php', - 'Faker\\Provider\\da_DK\\Payment' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/da_DK/Payment.php', - 'Faker\\Provider\\da_DK\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/da_DK/Person.php', - 'Faker\\Provider\\da_DK\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/da_DK/PhoneNumber.php', - 'Faker\\Provider\\de_AT\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/de_AT/Address.php', - 'Faker\\Provider\\de_AT\\Company' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/de_AT/Company.php', - 'Faker\\Provider\\de_AT\\Internet' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/de_AT/Internet.php', - 'Faker\\Provider\\de_AT\\Payment' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/de_AT/Payment.php', - 'Faker\\Provider\\de_AT\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/de_AT/Person.php', - 'Faker\\Provider\\de_AT\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/de_AT/PhoneNumber.php', - 'Faker\\Provider\\de_AT\\Text' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/de_AT/Text.php', - 'Faker\\Provider\\de_CH\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/de_CH/Address.php', - 'Faker\\Provider\\de_CH\\Company' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/de_CH/Company.php', - 'Faker\\Provider\\de_CH\\Internet' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/de_CH/Internet.php', - 'Faker\\Provider\\de_CH\\Payment' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/de_CH/Payment.php', - 'Faker\\Provider\\de_CH\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/de_CH/Person.php', - 'Faker\\Provider\\de_CH\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/de_CH/PhoneNumber.php', - 'Faker\\Provider\\de_CH\\Text' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/de_CH/Text.php', - 'Faker\\Provider\\de_DE\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/de_DE/Address.php', - 'Faker\\Provider\\de_DE\\Company' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/de_DE/Company.php', - 'Faker\\Provider\\de_DE\\Internet' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/de_DE/Internet.php', - 'Faker\\Provider\\de_DE\\Payment' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/de_DE/Payment.php', - 'Faker\\Provider\\de_DE\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/de_DE/Person.php', - 'Faker\\Provider\\de_DE\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/de_DE/PhoneNumber.php', - 'Faker\\Provider\\de_DE\\Text' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/de_DE/Text.php', - 'Faker\\Provider\\el_CY\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/el_CY/Address.php', - 'Faker\\Provider\\el_CY\\Company' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/el_CY/Company.php', - 'Faker\\Provider\\el_CY\\Internet' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/el_CY/Internet.php', - 'Faker\\Provider\\el_CY\\Payment' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/el_CY/Payment.php', - 'Faker\\Provider\\el_CY\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/el_CY/Person.php', - 'Faker\\Provider\\el_CY\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/el_CY/PhoneNumber.php', - 'Faker\\Provider\\el_GR\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/el_GR/Address.php', - 'Faker\\Provider\\el_GR\\Company' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/el_GR/Company.php', - 'Faker\\Provider\\el_GR\\Payment' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/el_GR/Payment.php', - 'Faker\\Provider\\el_GR\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/el_GR/Person.php', - 'Faker\\Provider\\el_GR\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/el_GR/PhoneNumber.php', - 'Faker\\Provider\\el_GR\\Text' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/el_GR/Text.php', - 'Faker\\Provider\\en_AU\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/en_AU/Address.php', - 'Faker\\Provider\\en_AU\\Internet' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/en_AU/Internet.php', - 'Faker\\Provider\\en_AU\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/en_AU/PhoneNumber.php', - 'Faker\\Provider\\en_CA\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/en_CA/Address.php', - 'Faker\\Provider\\en_CA\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/en_CA/PhoneNumber.php', - 'Faker\\Provider\\en_GB\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/en_GB/Address.php', - 'Faker\\Provider\\en_GB\\Internet' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/en_GB/Internet.php', - 'Faker\\Provider\\en_GB\\Payment' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/en_GB/Payment.php', - 'Faker\\Provider\\en_GB\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/en_GB/Person.php', - 'Faker\\Provider\\en_GB\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/en_GB/PhoneNumber.php', - 'Faker\\Provider\\en_HK\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/en_HK/Address.php', - 'Faker\\Provider\\en_HK\\Internet' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/en_HK/Internet.php', - 'Faker\\Provider\\en_HK\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/en_HK/PhoneNumber.php', - 'Faker\\Provider\\en_IN\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/en_IN/Address.php', - 'Faker\\Provider\\en_IN\\Internet' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/en_IN/Internet.php', - 'Faker\\Provider\\en_IN\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/en_IN/Person.php', - 'Faker\\Provider\\en_IN\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/en_IN/PhoneNumber.php', - 'Faker\\Provider\\en_NG\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/en_NG/Address.php', - 'Faker\\Provider\\en_NG\\Internet' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/en_NG/Internet.php', - 'Faker\\Provider\\en_NG\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/en_NG/Person.php', - 'Faker\\Provider\\en_NG\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/en_NG/PhoneNumber.php', - 'Faker\\Provider\\en_NZ\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/en_NZ/Address.php', - 'Faker\\Provider\\en_NZ\\Internet' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/en_NZ/Internet.php', - 'Faker\\Provider\\en_NZ\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/en_NZ/PhoneNumber.php', - 'Faker\\Provider\\en_PH\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/en_PH/Address.php', - 'Faker\\Provider\\en_PH\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/en_PH/PhoneNumber.php', - 'Faker\\Provider\\en_SG\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/en_SG/Address.php', - 'Faker\\Provider\\en_SG\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/en_SG/PhoneNumber.php', - 'Faker\\Provider\\en_UG\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/en_UG/Address.php', - 'Faker\\Provider\\en_UG\\Internet' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/en_UG/Internet.php', - 'Faker\\Provider\\en_UG\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/en_UG/Person.php', - 'Faker\\Provider\\en_UG\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/en_UG/PhoneNumber.php', - 'Faker\\Provider\\en_US\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/en_US/Address.php', - 'Faker\\Provider\\en_US\\Company' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/en_US/Company.php', - 'Faker\\Provider\\en_US\\Payment' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/en_US/Payment.php', - 'Faker\\Provider\\en_US\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/en_US/Person.php', - 'Faker\\Provider\\en_US\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/en_US/PhoneNumber.php', - 'Faker\\Provider\\en_US\\Text' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/en_US/Text.php', - 'Faker\\Provider\\en_ZA\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/en_ZA/Address.php', - 'Faker\\Provider\\en_ZA\\Company' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/en_ZA/Company.php', - 'Faker\\Provider\\en_ZA\\Internet' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/en_ZA/Internet.php', - 'Faker\\Provider\\en_ZA\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/en_ZA/Person.php', - 'Faker\\Provider\\en_ZA\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/en_ZA/PhoneNumber.php', - 'Faker\\Provider\\es_AR\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/es_AR/Address.php', - 'Faker\\Provider\\es_AR\\Company' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/es_AR/Company.php', - 'Faker\\Provider\\es_AR\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/es_AR/Person.php', - 'Faker\\Provider\\es_AR\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/es_AR/PhoneNumber.php', - 'Faker\\Provider\\es_ES\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/es_ES/Address.php', - 'Faker\\Provider\\es_ES\\Company' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/es_ES/Company.php', - 'Faker\\Provider\\es_ES\\Internet' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/es_ES/Internet.php', - 'Faker\\Provider\\es_ES\\Payment' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/es_ES/Payment.php', - 'Faker\\Provider\\es_ES\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/es_ES/Person.php', - 'Faker\\Provider\\es_ES\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/es_ES/PhoneNumber.php', - 'Faker\\Provider\\es_ES\\Text' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/es_ES/Text.php', - 'Faker\\Provider\\es_PE\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/es_PE/Address.php', - 'Faker\\Provider\\es_PE\\Company' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/es_PE/Company.php', - 'Faker\\Provider\\es_PE\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/es_PE/Person.php', - 'Faker\\Provider\\es_PE\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/es_PE/PhoneNumber.php', - 'Faker\\Provider\\es_VE\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/es_VE/Address.php', - 'Faker\\Provider\\es_VE\\Company' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/es_VE/Company.php', - 'Faker\\Provider\\es_VE\\Internet' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/es_VE/Internet.php', - 'Faker\\Provider\\es_VE\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/es_VE/Person.php', - 'Faker\\Provider\\es_VE\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/es_VE/PhoneNumber.php', - 'Faker\\Provider\\fa_IR\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/fa_IR/Address.php', - 'Faker\\Provider\\fa_IR\\Company' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/fa_IR/Company.php', - 'Faker\\Provider\\fa_IR\\Internet' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/fa_IR/Internet.php', - 'Faker\\Provider\\fa_IR\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/fa_IR/Person.php', - 'Faker\\Provider\\fa_IR\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/fa_IR/PhoneNumber.php', - 'Faker\\Provider\\fa_IR\\Text' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/fa_IR/Text.php', - 'Faker\\Provider\\fi_FI\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/fi_FI/Address.php', - 'Faker\\Provider\\fi_FI\\Company' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/fi_FI/Company.php', - 'Faker\\Provider\\fi_FI\\Internet' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/fi_FI/Internet.php', - 'Faker\\Provider\\fi_FI\\Payment' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/fi_FI/Payment.php', - 'Faker\\Provider\\fi_FI\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/fi_FI/Person.php', - 'Faker\\Provider\\fi_FI\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/fi_FI/PhoneNumber.php', - 'Faker\\Provider\\fr_BE\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/fr_BE/Address.php', - 'Faker\\Provider\\fr_BE\\Company' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/fr_BE/Company.php', - 'Faker\\Provider\\fr_BE\\Internet' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/fr_BE/Internet.php', - 'Faker\\Provider\\fr_BE\\Payment' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/fr_BE/Payment.php', - 'Faker\\Provider\\fr_BE\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/fr_BE/Person.php', - 'Faker\\Provider\\fr_BE\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/fr_BE/PhoneNumber.php', - 'Faker\\Provider\\fr_CA\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/fr_CA/Address.php', - 'Faker\\Provider\\fr_CA\\Company' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/fr_CA/Company.php', - 'Faker\\Provider\\fr_CA\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/fr_CA/Person.php', - 'Faker\\Provider\\fr_CH\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/fr_CH/Address.php', - 'Faker\\Provider\\fr_CH\\Company' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/fr_CH/Company.php', - 'Faker\\Provider\\fr_CH\\Internet' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/fr_CH/Internet.php', - 'Faker\\Provider\\fr_CH\\Payment' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/fr_CH/Payment.php', - 'Faker\\Provider\\fr_CH\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/fr_CH/Person.php', - 'Faker\\Provider\\fr_CH\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/fr_CH/PhoneNumber.php', - 'Faker\\Provider\\fr_CH\\Text' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/fr_CH/Text.php', - 'Faker\\Provider\\fr_FR\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/fr_FR/Address.php', - 'Faker\\Provider\\fr_FR\\Company' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/fr_FR/Company.php', - 'Faker\\Provider\\fr_FR\\Internet' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/fr_FR/Internet.php', - 'Faker\\Provider\\fr_FR\\Payment' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/fr_FR/Payment.php', - 'Faker\\Provider\\fr_FR\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/fr_FR/Person.php', - 'Faker\\Provider\\fr_FR\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/fr_FR/PhoneNumber.php', - 'Faker\\Provider\\fr_FR\\Text' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/fr_FR/Text.php', - 'Faker\\Provider\\he_IL\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/he_IL/Address.php', - 'Faker\\Provider\\he_IL\\Company' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/he_IL/Company.php', - 'Faker\\Provider\\he_IL\\Payment' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/he_IL/Payment.php', - 'Faker\\Provider\\he_IL\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/he_IL/Person.php', - 'Faker\\Provider\\he_IL\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/he_IL/PhoneNumber.php', - 'Faker\\Provider\\hr_HR\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/hr_HR/Address.php', - 'Faker\\Provider\\hr_HR\\Company' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/hr_HR/Company.php', - 'Faker\\Provider\\hr_HR\\Payment' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/hr_HR/Payment.php', - 'Faker\\Provider\\hr_HR\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/hr_HR/Person.php', - 'Faker\\Provider\\hr_HR\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/hr_HR/PhoneNumber.php', - 'Faker\\Provider\\hu_HU\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/hu_HU/Address.php', - 'Faker\\Provider\\hu_HU\\Company' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/hu_HU/Company.php', - 'Faker\\Provider\\hu_HU\\Payment' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/hu_HU/Payment.php', - 'Faker\\Provider\\hu_HU\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/hu_HU/Person.php', - 'Faker\\Provider\\hu_HU\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/hu_HU/PhoneNumber.php', - 'Faker\\Provider\\hu_HU\\Text' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/hu_HU/Text.php', - 'Faker\\Provider\\hy_AM\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/hy_AM/Address.php', - 'Faker\\Provider\\hy_AM\\Color' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/hy_AM/Color.php', - 'Faker\\Provider\\hy_AM\\Company' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/hy_AM/Company.php', - 'Faker\\Provider\\hy_AM\\Internet' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/hy_AM/Internet.php', - 'Faker\\Provider\\hy_AM\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/hy_AM/Person.php', - 'Faker\\Provider\\hy_AM\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/hy_AM/PhoneNumber.php', - 'Faker\\Provider\\id_ID\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/id_ID/Address.php', - 'Faker\\Provider\\id_ID\\Company' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/id_ID/Company.php', - 'Faker\\Provider\\id_ID\\Internet' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/id_ID/Internet.php', - 'Faker\\Provider\\id_ID\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/id_ID/Person.php', - 'Faker\\Provider\\id_ID\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/id_ID/PhoneNumber.php', - 'Faker\\Provider\\is_IS\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/is_IS/Address.php', - 'Faker\\Provider\\is_IS\\Company' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/is_IS/Company.php', - 'Faker\\Provider\\is_IS\\Internet' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/is_IS/Internet.php', - 'Faker\\Provider\\is_IS\\Payment' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/is_IS/Payment.php', - 'Faker\\Provider\\is_IS\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/is_IS/Person.php', - 'Faker\\Provider\\is_IS\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/is_IS/PhoneNumber.php', - 'Faker\\Provider\\it_CH\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/it_CH/Address.php', - 'Faker\\Provider\\it_CH\\Company' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/it_CH/Company.php', - 'Faker\\Provider\\it_CH\\Internet' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/it_CH/Internet.php', - 'Faker\\Provider\\it_CH\\Payment' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/it_CH/Payment.php', - 'Faker\\Provider\\it_CH\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/it_CH/Person.php', - 'Faker\\Provider\\it_CH\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/it_CH/PhoneNumber.php', - 'Faker\\Provider\\it_CH\\Text' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/it_CH/Text.php', - 'Faker\\Provider\\it_IT\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/it_IT/Address.php', - 'Faker\\Provider\\it_IT\\Company' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/it_IT/Company.php', - 'Faker\\Provider\\it_IT\\Internet' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/it_IT/Internet.php', - 'Faker\\Provider\\it_IT\\Payment' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/it_IT/Payment.php', - 'Faker\\Provider\\it_IT\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/it_IT/Person.php', - 'Faker\\Provider\\it_IT\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/it_IT/PhoneNumber.php', - 'Faker\\Provider\\it_IT\\Text' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/it_IT/Text.php', - 'Faker\\Provider\\ja_JP\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ja_JP/Address.php', - 'Faker\\Provider\\ja_JP\\Company' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ja_JP/Company.php', - 'Faker\\Provider\\ja_JP\\Internet' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ja_JP/Internet.php', - 'Faker\\Provider\\ja_JP\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ja_JP/Person.php', - 'Faker\\Provider\\ja_JP\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ja_JP/PhoneNumber.php', - 'Faker\\Provider\\ja_JP\\Text' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ja_JP/Text.php', - 'Faker\\Provider\\ka_GE\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ka_GE/Address.php', - 'Faker\\Provider\\ka_GE\\Color' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ka_GE/Color.php', - 'Faker\\Provider\\ka_GE\\Company' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ka_GE/Company.php', - 'Faker\\Provider\\ka_GE\\DateTime' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ka_GE/DateTime.php', - 'Faker\\Provider\\ka_GE\\Internet' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ka_GE/Internet.php', - 'Faker\\Provider\\ka_GE\\Payment' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ka_GE/Payment.php', - 'Faker\\Provider\\ka_GE\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ka_GE/Person.php', - 'Faker\\Provider\\ka_GE\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ka_GE/PhoneNumber.php', - 'Faker\\Provider\\ka_GE\\Text' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ka_GE/Text.php', - 'Faker\\Provider\\kk_KZ\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/kk_KZ/Address.php', - 'Faker\\Provider\\kk_KZ\\Color' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/kk_KZ/Color.php', - 'Faker\\Provider\\kk_KZ\\Company' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/kk_KZ/Company.php', - 'Faker\\Provider\\kk_KZ\\Internet' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/kk_KZ/Internet.php', - 'Faker\\Provider\\kk_KZ\\Payment' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/kk_KZ/Payment.php', - 'Faker\\Provider\\kk_KZ\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/kk_KZ/Person.php', - 'Faker\\Provider\\kk_KZ\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/kk_KZ/PhoneNumber.php', - 'Faker\\Provider\\kk_KZ\\Text' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/kk_KZ/Text.php', - 'Faker\\Provider\\ko_KR\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ko_KR/Address.php', - 'Faker\\Provider\\ko_KR\\Company' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ko_KR/Company.php', - 'Faker\\Provider\\ko_KR\\Internet' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ko_KR/Internet.php', - 'Faker\\Provider\\ko_KR\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ko_KR/Person.php', - 'Faker\\Provider\\ko_KR\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ko_KR/PhoneNumber.php', - 'Faker\\Provider\\ko_KR\\Text' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ko_KR/Text.php', - 'Faker\\Provider\\lt_LT\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/lt_LT/Address.php', - 'Faker\\Provider\\lt_LT\\Company' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/lt_LT/Company.php', - 'Faker\\Provider\\lt_LT\\Internet' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/lt_LT/Internet.php', - 'Faker\\Provider\\lt_LT\\Payment' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/lt_LT/Payment.php', - 'Faker\\Provider\\lt_LT\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/lt_LT/Person.php', - 'Faker\\Provider\\lt_LT\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/lt_LT/PhoneNumber.php', - 'Faker\\Provider\\lv_LV\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/lv_LV/Address.php', - 'Faker\\Provider\\lv_LV\\Color' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/lv_LV/Color.php', - 'Faker\\Provider\\lv_LV\\Internet' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/lv_LV/Internet.php', - 'Faker\\Provider\\lv_LV\\Payment' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/lv_LV/Payment.php', - 'Faker\\Provider\\lv_LV\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/lv_LV/Person.php', - 'Faker\\Provider\\lv_LV\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/lv_LV/PhoneNumber.php', - 'Faker\\Provider\\me_ME\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/me_ME/Address.php', - 'Faker\\Provider\\me_ME\\Company' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/me_ME/Company.php', - 'Faker\\Provider\\me_ME\\Payment' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/me_ME/Payment.php', - 'Faker\\Provider\\me_ME\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/me_ME/Person.php', - 'Faker\\Provider\\me_ME\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/me_ME/PhoneNumber.php', - 'Faker\\Provider\\mn_MN\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/mn_MN/Person.php', - 'Faker\\Provider\\mn_MN\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/mn_MN/PhoneNumber.php', - 'Faker\\Provider\\ms_MY\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ms_MY/Address.php', - 'Faker\\Provider\\ms_MY\\Company' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ms_MY/Company.php', - 'Faker\\Provider\\ms_MY\\Miscellaneous' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ms_MY/Miscellaneous.php', - 'Faker\\Provider\\ms_MY\\Payment' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ms_MY/Payment.php', - 'Faker\\Provider\\ms_MY\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ms_MY/Person.php', - 'Faker\\Provider\\ms_MY\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ms_MY/PhoneNumber.php', - 'Faker\\Provider\\nb_NO\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/nb_NO/Address.php', - 'Faker\\Provider\\nb_NO\\Company' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/nb_NO/Company.php', - 'Faker\\Provider\\nb_NO\\Payment' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/nb_NO/Payment.php', - 'Faker\\Provider\\nb_NO\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/nb_NO/Person.php', - 'Faker\\Provider\\nb_NO\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/nb_NO/PhoneNumber.php', - 'Faker\\Provider\\ne_NP\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ne_NP/Address.php', - 'Faker\\Provider\\ne_NP\\Internet' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ne_NP/Internet.php', - 'Faker\\Provider\\ne_NP\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ne_NP/Person.php', - 'Faker\\Provider\\ne_NP\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ne_NP/PhoneNumber.php', - 'Faker\\Provider\\nl_BE\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/nl_BE/Address.php', - 'Faker\\Provider\\nl_BE\\Company' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/nl_BE/Company.php', - 'Faker\\Provider\\nl_BE\\Internet' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/nl_BE/Internet.php', - 'Faker\\Provider\\nl_BE\\Payment' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/nl_BE/Payment.php', - 'Faker\\Provider\\nl_BE\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/nl_BE/Person.php', - 'Faker\\Provider\\nl_BE\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/nl_BE/PhoneNumber.php', - 'Faker\\Provider\\nl_NL\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/nl_NL/Address.php', - 'Faker\\Provider\\nl_NL\\Color' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/nl_NL/Color.php', - 'Faker\\Provider\\nl_NL\\Company' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/nl_NL/Company.php', - 'Faker\\Provider\\nl_NL\\Internet' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/nl_NL/Internet.php', - 'Faker\\Provider\\nl_NL\\Payment' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/nl_NL/Payment.php', - 'Faker\\Provider\\nl_NL\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/nl_NL/Person.php', - 'Faker\\Provider\\nl_NL\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/nl_NL/PhoneNumber.php', - 'Faker\\Provider\\nl_NL\\Text' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/nl_NL/Text.php', - 'Faker\\Provider\\pl_PL\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/pl_PL/Address.php', - 'Faker\\Provider\\pl_PL\\Company' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/pl_PL/Company.php', - 'Faker\\Provider\\pl_PL\\Internet' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/pl_PL/Internet.php', - 'Faker\\Provider\\pl_PL\\Payment' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/pl_PL/Payment.php', - 'Faker\\Provider\\pl_PL\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/pl_PL/Person.php', - 'Faker\\Provider\\pl_PL\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/pl_PL/PhoneNumber.php', - 'Faker\\Provider\\pl_PL\\Text' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/pl_PL/Text.php', - 'Faker\\Provider\\pt_BR\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/pt_BR/Address.php', - 'Faker\\Provider\\pt_BR\\Company' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/pt_BR/Company.php', - 'Faker\\Provider\\pt_BR\\Internet' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/pt_BR/Internet.php', - 'Faker\\Provider\\pt_BR\\Payment' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/pt_BR/Payment.php', - 'Faker\\Provider\\pt_BR\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/pt_BR/Person.php', - 'Faker\\Provider\\pt_BR\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/pt_BR/PhoneNumber.php', - 'Faker\\Provider\\pt_PT\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/pt_PT/Address.php', - 'Faker\\Provider\\pt_PT\\Payment' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/pt_PT/Payment.php', - 'Faker\\Provider\\pt_PT\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/pt_PT/Person.php', - 'Faker\\Provider\\pt_PT\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/pt_PT/PhoneNumber.php', - 'Faker\\Provider\\ro_MD\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ro_MD/Address.php', - 'Faker\\Provider\\ro_MD\\Payment' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ro_MD/Payment.php', - 'Faker\\Provider\\ro_MD\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ro_MD/Person.php', - 'Faker\\Provider\\ro_MD\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ro_MD/PhoneNumber.php', - 'Faker\\Provider\\ro_MD\\Text' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ro_MD/Text.php', - 'Faker\\Provider\\ro_RO\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ro_RO/Address.php', - 'Faker\\Provider\\ro_RO\\Payment' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ro_RO/Payment.php', - 'Faker\\Provider\\ro_RO\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ro_RO/Person.php', - 'Faker\\Provider\\ro_RO\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ro_RO/PhoneNumber.php', - 'Faker\\Provider\\ro_RO\\Text' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ro_RO/Text.php', - 'Faker\\Provider\\ru_RU\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ru_RU/Address.php', - 'Faker\\Provider\\ru_RU\\Color' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ru_RU/Color.php', - 'Faker\\Provider\\ru_RU\\Company' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ru_RU/Company.php', - 'Faker\\Provider\\ru_RU\\Internet' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ru_RU/Internet.php', - 'Faker\\Provider\\ru_RU\\Payment' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ru_RU/Payment.php', - 'Faker\\Provider\\ru_RU\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ru_RU/Person.php', - 'Faker\\Provider\\ru_RU\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ru_RU/PhoneNumber.php', - 'Faker\\Provider\\ru_RU\\Text' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ru_RU/Text.php', - 'Faker\\Provider\\sk_SK\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/sk_SK/Address.php', - 'Faker\\Provider\\sk_SK\\Company' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/sk_SK/Company.php', - 'Faker\\Provider\\sk_SK\\Internet' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/sk_SK/Internet.php', - 'Faker\\Provider\\sk_SK\\Payment' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/sk_SK/Payment.php', - 'Faker\\Provider\\sk_SK\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/sk_SK/Person.php', - 'Faker\\Provider\\sk_SK\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/sk_SK/PhoneNumber.php', - 'Faker\\Provider\\sl_SI\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/sl_SI/Address.php', - 'Faker\\Provider\\sl_SI\\Company' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/sl_SI/Company.php', - 'Faker\\Provider\\sl_SI\\Internet' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/sl_SI/Internet.php', - 'Faker\\Provider\\sl_SI\\Payment' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/sl_SI/Payment.php', - 'Faker\\Provider\\sl_SI\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/sl_SI/Person.php', - 'Faker\\Provider\\sl_SI\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/sl_SI/PhoneNumber.php', - 'Faker\\Provider\\sr_Cyrl_RS\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/sr_Cyrl_RS/Address.php', - 'Faker\\Provider\\sr_Cyrl_RS\\Payment' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/sr_Cyrl_RS/Payment.php', - 'Faker\\Provider\\sr_Cyrl_RS\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/sr_Cyrl_RS/Person.php', - 'Faker\\Provider\\sr_Latn_RS\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/sr_Latn_RS/Address.php', - 'Faker\\Provider\\sr_Latn_RS\\Payment' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/sr_Latn_RS/Payment.php', - 'Faker\\Provider\\sr_Latn_RS\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/sr_Latn_RS/Person.php', - 'Faker\\Provider\\sr_RS\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/sr_RS/Address.php', - 'Faker\\Provider\\sr_RS\\Payment' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/sr_RS/Payment.php', - 'Faker\\Provider\\sr_RS\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/sr_RS/Person.php', - 'Faker\\Provider\\sv_SE\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/sv_SE/Address.php', - 'Faker\\Provider\\sv_SE\\Company' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/sv_SE/Company.php', - 'Faker\\Provider\\sv_SE\\Payment' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/sv_SE/Payment.php', - 'Faker\\Provider\\sv_SE\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/sv_SE/Person.php', - 'Faker\\Provider\\sv_SE\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/sv_SE/PhoneNumber.php', - 'Faker\\Provider\\th_TH\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/th_TH/Address.php', - 'Faker\\Provider\\th_TH\\Color' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/th_TH/Color.php', - 'Faker\\Provider\\th_TH\\Company' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/th_TH/Company.php', - 'Faker\\Provider\\th_TH\\Internet' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/th_TH/Internet.php', - 'Faker\\Provider\\th_TH\\Payment' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/th_TH/Payment.php', - 'Faker\\Provider\\th_TH\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/th_TH/PhoneNumber.php', - 'Faker\\Provider\\tr_TR\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/tr_TR/Address.php', - 'Faker\\Provider\\tr_TR\\Color' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/tr_TR/Color.php', - 'Faker\\Provider\\tr_TR\\Company' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/tr_TR/Company.php', - 'Faker\\Provider\\tr_TR\\DateTime' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/tr_TR/DateTime.php', - 'Faker\\Provider\\tr_TR\\Internet' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/tr_TR/Internet.php', - 'Faker\\Provider\\tr_TR\\Payment' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/tr_TR/Payment.php', - 'Faker\\Provider\\tr_TR\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/tr_TR/Person.php', - 'Faker\\Provider\\tr_TR\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/tr_TR/PhoneNumber.php', - 'Faker\\Provider\\uk_UA\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/uk_UA/Address.php', - 'Faker\\Provider\\uk_UA\\Color' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/uk_UA/Color.php', - 'Faker\\Provider\\uk_UA\\Company' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/uk_UA/Company.php', - 'Faker\\Provider\\uk_UA\\Internet' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/uk_UA/Internet.php', - 'Faker\\Provider\\uk_UA\\Payment' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/uk_UA/Payment.php', - 'Faker\\Provider\\uk_UA\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/uk_UA/Person.php', - 'Faker\\Provider\\uk_UA\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/uk_UA/PhoneNumber.php', - 'Faker\\Provider\\uk_UA\\Text' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/uk_UA/Text.php', - 'Faker\\Provider\\vi_VN\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/vi_VN/Address.php', - 'Faker\\Provider\\vi_VN\\Color' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/vi_VN/Color.php', - 'Faker\\Provider\\vi_VN\\Internet' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/vi_VN/Internet.php', - 'Faker\\Provider\\vi_VN\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/vi_VN/Person.php', - 'Faker\\Provider\\vi_VN\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/vi_VN/PhoneNumber.php', - 'Faker\\Provider\\zh_CN\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/zh_CN/Address.php', - 'Faker\\Provider\\zh_CN\\Color' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/zh_CN/Color.php', - 'Faker\\Provider\\zh_CN\\Company' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/zh_CN/Company.php', - 'Faker\\Provider\\zh_CN\\DateTime' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/zh_CN/DateTime.php', - 'Faker\\Provider\\zh_CN\\Internet' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/zh_CN/Internet.php', - 'Faker\\Provider\\zh_CN\\Payment' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/zh_CN/Payment.php', - 'Faker\\Provider\\zh_CN\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/zh_CN/Person.php', - 'Faker\\Provider\\zh_CN\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/zh_CN/PhoneNumber.php', - 'Faker\\Provider\\zh_TW\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/zh_TW/Address.php', - 'Faker\\Provider\\zh_TW\\Color' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/zh_TW/Color.php', - 'Faker\\Provider\\zh_TW\\Company' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/zh_TW/Company.php', - 'Faker\\Provider\\zh_TW\\DateTime' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/zh_TW/DateTime.php', - 'Faker\\Provider\\zh_TW\\Internet' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/zh_TW/Internet.php', - 'Faker\\Provider\\zh_TW\\Payment' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/zh_TW/Payment.php', - 'Faker\\Provider\\zh_TW\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/zh_TW/Person.php', - 'Faker\\Provider\\zh_TW\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/zh_TW/PhoneNumber.php', - 'Faker\\Provider\\zh_TW\\Text' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/zh_TW/Text.php', - 'Faker\\UniqueGenerator' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/UniqueGenerator.php', - 'Faker\\ValidGenerator' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/ValidGenerator.php', - 'Ffw\\SocialMediaManager\\Facebook\\Api' => __DIR__ . '/../..' . '/packages/ffw/social-media-manager/src/Facebook/Api.php', - 'Ffw\\SocialMediaManager\\SocialMediaManager' => __DIR__ . '/../..' . '/packages/ffw/social-media-manager/src/SocialMediaManager.php', - 'Ffw\\SocialMediaManager\\SocialMediaManagerServiceProvider' => __DIR__ . '/../..' . '/packages/ffw/social-media-manager/src/SocialMediaManagerServiceProvider.php', - 'Ffw\\SocialMediaManager\\Twitter\\Api' => __DIR__ . '/../..' . '/packages/ffw/social-media-manager/src/Twitter/Api.php', - 'Ffw\\SocialMediaManager\\Twitter\\TwitterException' => __DIR__ . '/../..' . '/packages/ffw/social-media-manager/src/Twitter/Api.php', - 'Ffw\\SocialMediaManager\\Twitter\\Twitter_OAuthConsumer' => __DIR__ . '/../..' . '/packages/ffw/social-media-manager/src/Twitter/OAuth.php', - 'Ffw\\SocialMediaManager\\Twitter\\Twitter_OAuthDataStore' => __DIR__ . '/../..' . '/packages/ffw/social-media-manager/src/Twitter/OAuth.php', - 'Ffw\\SocialMediaManager\\Twitter\\Twitter_OAuthException' => __DIR__ . '/../..' . '/packages/ffw/social-media-manager/src/Twitter/OAuth.php', - 'Ffw\\SocialMediaManager\\Twitter\\Twitter_OAuthRequest' => __DIR__ . '/../..' . '/packages/ffw/social-media-manager/src/Twitter/OAuth.php', - 'Ffw\\SocialMediaManager\\Twitter\\Twitter_OAuthServer' => __DIR__ . '/../..' . '/packages/ffw/social-media-manager/src/Twitter/OAuth.php', - 'Ffw\\SocialMediaManager\\Twitter\\Twitter_OAuthSignatureMethod' => __DIR__ . '/../..' . '/packages/ffw/social-media-manager/src/Twitter/OAuth.php', - 'Ffw\\SocialMediaManager\\Twitter\\Twitter_OAuthSignatureMethod_HMAC_SHA1' => __DIR__ . '/../..' . '/packages/ffw/social-media-manager/src/Twitter/OAuth.php', - 'Ffw\\SocialMediaManager\\Twitter\\Twitter_OAuthSignatureMethod_PLAINTEXT' => __DIR__ . '/../..' . '/packages/ffw/social-media-manager/src/Twitter/OAuth.php', - 'Ffw\\SocialMediaManager\\Twitter\\Twitter_OAuthSignatureMethod_RSA_SHA1' => __DIR__ . '/../..' . '/packages/ffw/social-media-manager/src/Twitter/OAuth.php', - 'Ffw\\SocialMediaManager\\Twitter\\Twitter_OAuthToken' => __DIR__ . '/../..' . '/packages/ffw/social-media-manager/src/Twitter/OAuth.php', - 'Ffw\\SocialMediaManager\\Twitter\\Twitter_OAuthUtil' => __DIR__ . '/../..' . '/packages/ffw/social-media-manager/src/Twitter/OAuth.php', - 'Fideloper\\Proxy\\TrustProxies' => __DIR__ . '/..' . '/fideloper/proxy/src/TrustProxies.php', - 'Fideloper\\Proxy\\TrustedProxyServiceProvider' => __DIR__ . '/..' . '/fideloper/proxy/src/TrustedProxyServiceProvider.php', - 'GuzzleHttp\\Psr7\\AppendStream' => __DIR__ . '/..' . '/guzzlehttp/psr7/src/AppendStream.php', - 'GuzzleHttp\\Psr7\\BufferStream' => __DIR__ . '/..' . '/guzzlehttp/psr7/src/BufferStream.php', - 'GuzzleHttp\\Psr7\\CachingStream' => __DIR__ . '/..' . '/guzzlehttp/psr7/src/CachingStream.php', - 'GuzzleHttp\\Psr7\\DroppingStream' => __DIR__ . '/..' . '/guzzlehttp/psr7/src/DroppingStream.php', - 'GuzzleHttp\\Psr7\\FnStream' => __DIR__ . '/..' . '/guzzlehttp/psr7/src/FnStream.php', - 'GuzzleHttp\\Psr7\\InflateStream' => __DIR__ . '/..' . '/guzzlehttp/psr7/src/InflateStream.php', - 'GuzzleHttp\\Psr7\\LazyOpenStream' => __DIR__ . '/..' . '/guzzlehttp/psr7/src/LazyOpenStream.php', - 'GuzzleHttp\\Psr7\\LimitStream' => __DIR__ . '/..' . '/guzzlehttp/psr7/src/LimitStream.php', - 'GuzzleHttp\\Psr7\\MessageTrait' => __DIR__ . '/..' . '/guzzlehttp/psr7/src/MessageTrait.php', - 'GuzzleHttp\\Psr7\\MultipartStream' => __DIR__ . '/..' . '/guzzlehttp/psr7/src/MultipartStream.php', - 'GuzzleHttp\\Psr7\\NoSeekStream' => __DIR__ . '/..' . '/guzzlehttp/psr7/src/NoSeekStream.php', - 'GuzzleHttp\\Psr7\\PumpStream' => __DIR__ . '/..' . '/guzzlehttp/psr7/src/PumpStream.php', - 'GuzzleHttp\\Psr7\\Request' => __DIR__ . '/..' . '/guzzlehttp/psr7/src/Request.php', - 'GuzzleHttp\\Psr7\\Response' => __DIR__ . '/..' . '/guzzlehttp/psr7/src/Response.php', - 'GuzzleHttp\\Psr7\\ServerRequest' => __DIR__ . '/..' . '/guzzlehttp/psr7/src/ServerRequest.php', - 'GuzzleHttp\\Psr7\\Stream' => __DIR__ . '/..' . '/guzzlehttp/psr7/src/Stream.php', - 'GuzzleHttp\\Psr7\\StreamDecoratorTrait' => __DIR__ . '/..' . '/guzzlehttp/psr7/src/StreamDecoratorTrait.php', - 'GuzzleHttp\\Psr7\\StreamWrapper' => __DIR__ . '/..' . '/guzzlehttp/psr7/src/StreamWrapper.php', - 'GuzzleHttp\\Psr7\\UploadedFile' => __DIR__ . '/..' . '/guzzlehttp/psr7/src/UploadedFile.php', - 'GuzzleHttp\\Psr7\\Uri' => __DIR__ . '/..' . '/guzzlehttp/psr7/src/Uri.php', - 'GuzzleHttp\\Psr7\\UriNormalizer' => __DIR__ . '/..' . '/guzzlehttp/psr7/src/UriNormalizer.php', - 'GuzzleHttp\\Psr7\\UriResolver' => __DIR__ . '/..' . '/guzzlehttp/psr7/src/UriResolver.php', - 'Hamcrest\\Arrays\\IsArray' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/IsArray.php', - 'Hamcrest\\Arrays\\IsArrayContaining' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/IsArrayContaining.php', - 'Hamcrest\\Arrays\\IsArrayContainingInAnyOrder' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/IsArrayContainingInAnyOrder.php', - 'Hamcrest\\Arrays\\IsArrayContainingInOrder' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/IsArrayContainingInOrder.php', - 'Hamcrest\\Arrays\\IsArrayContainingKey' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/IsArrayContainingKey.php', - 'Hamcrest\\Arrays\\IsArrayContainingKeyValuePair' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/IsArrayContainingKeyValuePair.php', - 'Hamcrest\\Arrays\\IsArrayWithSize' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/IsArrayWithSize.php', - 'Hamcrest\\Arrays\\MatchingOnce' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/MatchingOnce.php', - 'Hamcrest\\Arrays\\SeriesMatchingOnce' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/SeriesMatchingOnce.php', - 'Hamcrest\\AssertionError' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/AssertionError.php', - 'Hamcrest\\BaseDescription' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/BaseDescription.php', - 'Hamcrest\\BaseMatcher' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/BaseMatcher.php', - 'Hamcrest\\Collection\\IsEmptyTraversable' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Collection/IsEmptyTraversable.php', - 'Hamcrest\\Collection\\IsTraversableWithSize' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Collection/IsTraversableWithSize.php', - 'Hamcrest\\Core\\AllOf' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/AllOf.php', - 'Hamcrest\\Core\\AnyOf' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/AnyOf.php', - 'Hamcrest\\Core\\CombinableMatcher' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/CombinableMatcher.php', - 'Hamcrest\\Core\\DescribedAs' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/DescribedAs.php', - 'Hamcrest\\Core\\Every' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/Every.php', - 'Hamcrest\\Core\\HasToString' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/HasToString.php', - 'Hamcrest\\Core\\Is' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/Is.php', - 'Hamcrest\\Core\\IsAnything' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsAnything.php', - 'Hamcrest\\Core\\IsCollectionContaining' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsCollectionContaining.php', - 'Hamcrest\\Core\\IsEqual' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsEqual.php', - 'Hamcrest\\Core\\IsIdentical' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsIdentical.php', - 'Hamcrest\\Core\\IsInstanceOf' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsInstanceOf.php', - 'Hamcrest\\Core\\IsNot' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsNot.php', - 'Hamcrest\\Core\\IsNull' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsNull.php', - 'Hamcrest\\Core\\IsSame' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsSame.php', - 'Hamcrest\\Core\\IsTypeOf' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsTypeOf.php', - 'Hamcrest\\Core\\Set' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/Set.php', - 'Hamcrest\\Core\\ShortcutCombination' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/ShortcutCombination.php', - 'Hamcrest\\Description' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Description.php', - 'Hamcrest\\DiagnosingMatcher' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/DiagnosingMatcher.php', - 'Hamcrest\\FeatureMatcher' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/FeatureMatcher.php', - 'Hamcrest\\Internal\\SelfDescribingValue' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Internal/SelfDescribingValue.php', - 'Hamcrest\\Matcher' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Matcher.php', - 'Hamcrest\\MatcherAssert' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/MatcherAssert.php', - 'Hamcrest\\Matchers' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Matchers.php', - 'Hamcrest\\NullDescription' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/NullDescription.php', - 'Hamcrest\\Number\\IsCloseTo' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Number/IsCloseTo.php', - 'Hamcrest\\Number\\OrderingComparison' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Number/OrderingComparison.php', - 'Hamcrest\\SelfDescribing' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/SelfDescribing.php', - 'Hamcrest\\StringDescription' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/StringDescription.php', - 'Hamcrest\\Text\\IsEmptyString' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/IsEmptyString.php', - 'Hamcrest\\Text\\IsEqualIgnoringCase' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/IsEqualIgnoringCase.php', - 'Hamcrest\\Text\\IsEqualIgnoringWhiteSpace' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/IsEqualIgnoringWhiteSpace.php', - 'Hamcrest\\Text\\MatchesPattern' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/MatchesPattern.php', - 'Hamcrest\\Text\\StringContains' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/StringContains.php', - 'Hamcrest\\Text\\StringContainsIgnoringCase' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/StringContainsIgnoringCase.php', - 'Hamcrest\\Text\\StringContainsInOrder' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/StringContainsInOrder.php', - 'Hamcrest\\Text\\StringEndsWith' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/StringEndsWith.php', - 'Hamcrest\\Text\\StringStartsWith' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/StringStartsWith.php', - 'Hamcrest\\Text\\SubstringMatcher' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/SubstringMatcher.php', - 'Hamcrest\\TypeSafeDiagnosingMatcher' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/TypeSafeDiagnosingMatcher.php', - 'Hamcrest\\TypeSafeMatcher' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/TypeSafeMatcher.php', - 'Hamcrest\\Type\\IsArray' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Type/IsArray.php', - 'Hamcrest\\Type\\IsBoolean' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Type/IsBoolean.php', - 'Hamcrest\\Type\\IsCallable' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Type/IsCallable.php', - 'Hamcrest\\Type\\IsDouble' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Type/IsDouble.php', - 'Hamcrest\\Type\\IsInteger' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Type/IsInteger.php', - 'Hamcrest\\Type\\IsNumeric' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Type/IsNumeric.php', - 'Hamcrest\\Type\\IsObject' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Type/IsObject.php', - 'Hamcrest\\Type\\IsResource' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Type/IsResource.php', - 'Hamcrest\\Type\\IsScalar' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Type/IsScalar.php', - 'Hamcrest\\Type\\IsString' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Type/IsString.php', - 'Hamcrest\\Util' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Util.php', - 'Hamcrest\\Xml\\HasXPath' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Xml/HasXPath.php', - 'Illuminate\\Auth\\Access\\AuthorizationException' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Auth/Access/AuthorizationException.php', - 'Illuminate\\Auth\\Access\\Gate' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Auth/Access/Gate.php', - 'Illuminate\\Auth\\Access\\HandlesAuthorization' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Auth/Access/HandlesAuthorization.php', - 'Illuminate\\Auth\\Access\\Response' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Auth/Access/Response.php', - 'Illuminate\\Auth\\AuthManager' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Auth/AuthManager.php', - 'Illuminate\\Auth\\AuthServiceProvider' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Auth/AuthServiceProvider.php', - 'Illuminate\\Auth\\Authenticatable' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Auth/Authenticatable.php', - 'Illuminate\\Auth\\AuthenticationException' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Auth/AuthenticationException.php', - 'Illuminate\\Auth\\Console\\AuthMakeCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Auth/Console/AuthMakeCommand.php', - 'Illuminate\\Auth\\Console\\ClearResetsCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Auth/Console/ClearResetsCommand.php', - 'Illuminate\\Auth\\CreatesUserProviders' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Auth/CreatesUserProviders.php', - 'Illuminate\\Auth\\DatabaseUserProvider' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Auth/DatabaseUserProvider.php', - 'Illuminate\\Auth\\EloquentUserProvider' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Auth/EloquentUserProvider.php', - 'Illuminate\\Auth\\Events\\Attempting' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Auth/Events/Attempting.php', - 'Illuminate\\Auth\\Events\\Authenticated' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Auth/Events/Authenticated.php', - 'Illuminate\\Auth\\Events\\Failed' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Auth/Events/Failed.php', - 'Illuminate\\Auth\\Events\\Lockout' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Auth/Events/Lockout.php', - 'Illuminate\\Auth\\Events\\Login' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Auth/Events/Login.php', - 'Illuminate\\Auth\\Events\\Logout' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Auth/Events/Logout.php', - 'Illuminate\\Auth\\Events\\PasswordReset' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Auth/Events/PasswordReset.php', - 'Illuminate\\Auth\\Events\\Registered' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Auth/Events/Registered.php', - 'Illuminate\\Auth\\GenericUser' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Auth/GenericUser.php', - 'Illuminate\\Auth\\GuardHelpers' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Auth/GuardHelpers.php', - 'Illuminate\\Auth\\Middleware\\Authenticate' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Auth/Middleware/Authenticate.php', - 'Illuminate\\Auth\\Middleware\\AuthenticateWithBasicAuth' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Auth/Middleware/AuthenticateWithBasicAuth.php', - 'Illuminate\\Auth\\Middleware\\Authorize' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Auth/Middleware/Authorize.php', - 'Illuminate\\Auth\\Notifications\\ResetPassword' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Auth/Notifications/ResetPassword.php', - 'Illuminate\\Auth\\Passwords\\CanResetPassword' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Auth/Passwords/CanResetPassword.php', - 'Illuminate\\Auth\\Passwords\\DatabaseTokenRepository' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Auth/Passwords/DatabaseTokenRepository.php', - 'Illuminate\\Auth\\Passwords\\PasswordBroker' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Auth/Passwords/PasswordBroker.php', - 'Illuminate\\Auth\\Passwords\\PasswordBrokerManager' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Auth/Passwords/PasswordBrokerManager.php', - 'Illuminate\\Auth\\Passwords\\PasswordResetServiceProvider' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Auth/Passwords/PasswordResetServiceProvider.php', - 'Illuminate\\Auth\\Passwords\\TokenRepositoryInterface' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Auth/Passwords/TokenRepositoryInterface.php', - 'Illuminate\\Auth\\Recaller' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Auth/Recaller.php', - 'Illuminate\\Auth\\RequestGuard' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Auth/RequestGuard.php', - 'Illuminate\\Auth\\SessionGuard' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Auth/SessionGuard.php', - 'Illuminate\\Auth\\TokenGuard' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Auth/TokenGuard.php', - 'Illuminate\\Broadcasting\\BroadcastController' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Broadcasting/BroadcastController.php', - 'Illuminate\\Broadcasting\\BroadcastEvent' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Broadcasting/BroadcastEvent.php', - 'Illuminate\\Broadcasting\\BroadcastException' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Broadcasting/BroadcastException.php', - 'Illuminate\\Broadcasting\\BroadcastManager' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Broadcasting/BroadcastManager.php', - 'Illuminate\\Broadcasting\\BroadcastServiceProvider' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Broadcasting/BroadcastServiceProvider.php', - 'Illuminate\\Broadcasting\\Broadcasters\\Broadcaster' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Broadcasting/Broadcasters/Broadcaster.php', - 'Illuminate\\Broadcasting\\Broadcasters\\LogBroadcaster' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Broadcasting/Broadcasters/LogBroadcaster.php', - 'Illuminate\\Broadcasting\\Broadcasters\\NullBroadcaster' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Broadcasting/Broadcasters/NullBroadcaster.php', - 'Illuminate\\Broadcasting\\Broadcasters\\PusherBroadcaster' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Broadcasting/Broadcasters/PusherBroadcaster.php', - 'Illuminate\\Broadcasting\\Broadcasters\\RedisBroadcaster' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Broadcasting/Broadcasters/RedisBroadcaster.php', - 'Illuminate\\Broadcasting\\Channel' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Broadcasting/Channel.php', - 'Illuminate\\Broadcasting\\InteractsWithSockets' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Broadcasting/InteractsWithSockets.php', - 'Illuminate\\Broadcasting\\PendingBroadcast' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Broadcasting/PendingBroadcast.php', - 'Illuminate\\Broadcasting\\PresenceChannel' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Broadcasting/PresenceChannel.php', - 'Illuminate\\Broadcasting\\PrivateChannel' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Broadcasting/PrivateChannel.php', - 'Illuminate\\Bus\\BusServiceProvider' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Bus/BusServiceProvider.php', - 'Illuminate\\Bus\\Dispatcher' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Bus/Dispatcher.php', - 'Illuminate\\Bus\\Queueable' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Bus/Queueable.php', - 'Illuminate\\Cache\\ApcStore' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Cache/ApcStore.php', - 'Illuminate\\Cache\\ApcWrapper' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Cache/ApcWrapper.php', - 'Illuminate\\Cache\\ArrayStore' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Cache/ArrayStore.php', - 'Illuminate\\Cache\\CacheManager' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Cache/CacheManager.php', - 'Illuminate\\Cache\\CacheServiceProvider' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Cache/CacheServiceProvider.php', - 'Illuminate\\Cache\\Console\\CacheTableCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Cache/Console/CacheTableCommand.php', - 'Illuminate\\Cache\\Console\\ClearCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Cache/Console/ClearCommand.php', - 'Illuminate\\Cache\\Console\\ForgetCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Cache/Console/ForgetCommand.php', - 'Illuminate\\Cache\\DatabaseStore' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Cache/DatabaseStore.php', - 'Illuminate\\Cache\\Events\\CacheEvent' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Cache/Events/CacheEvent.php', - 'Illuminate\\Cache\\Events\\CacheHit' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Cache/Events/CacheHit.php', - 'Illuminate\\Cache\\Events\\CacheMissed' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Cache/Events/CacheMissed.php', - 'Illuminate\\Cache\\Events\\KeyForgotten' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Cache/Events/KeyForgotten.php', - 'Illuminate\\Cache\\Events\\KeyWritten' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Cache/Events/KeyWritten.php', - 'Illuminate\\Cache\\FileStore' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Cache/FileStore.php', - 'Illuminate\\Cache\\Lock' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Cache/Lock.php', - 'Illuminate\\Cache\\MemcachedConnector' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Cache/MemcachedConnector.php', - 'Illuminate\\Cache\\MemcachedLock' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Cache/MemcachedLock.php', - 'Illuminate\\Cache\\MemcachedStore' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Cache/MemcachedStore.php', - 'Illuminate\\Cache\\NullStore' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Cache/NullStore.php', - 'Illuminate\\Cache\\RateLimiter' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Cache/RateLimiter.php', - 'Illuminate\\Cache\\RedisLock' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Cache/RedisLock.php', - 'Illuminate\\Cache\\RedisStore' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Cache/RedisStore.php', - 'Illuminate\\Cache\\RedisTaggedCache' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Cache/RedisTaggedCache.php', - 'Illuminate\\Cache\\Repository' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Cache/Repository.php', - 'Illuminate\\Cache\\RetrievesMultipleKeys' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Cache/RetrievesMultipleKeys.php', - 'Illuminate\\Cache\\TagSet' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Cache/TagSet.php', - 'Illuminate\\Cache\\TaggableStore' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Cache/TaggableStore.php', - 'Illuminate\\Cache\\TaggedCache' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Cache/TaggedCache.php', - 'Illuminate\\Config\\Repository' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Config/Repository.php', - 'Illuminate\\Console\\Application' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Console/Application.php', - 'Illuminate\\Console\\Command' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Console/Command.php', - 'Illuminate\\Console\\ConfirmableTrait' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Console/ConfirmableTrait.php', - 'Illuminate\\Console\\DetectsApplicationNamespace' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Console/DetectsApplicationNamespace.php', - 'Illuminate\\Console\\Events\\ArtisanStarting' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Console/Events/ArtisanStarting.php', - 'Illuminate\\Console\\Events\\CommandFinished' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Console/Events/CommandFinished.php', - 'Illuminate\\Console\\Events\\CommandStarting' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Console/Events/CommandStarting.php', - 'Illuminate\\Console\\GeneratorCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Console/GeneratorCommand.php', - 'Illuminate\\Console\\OutputStyle' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Console/OutputStyle.php', - 'Illuminate\\Console\\Parser' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Console/Parser.php', - 'Illuminate\\Console\\Scheduling\\CacheEventMutex' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php', - 'Illuminate\\Console\\Scheduling\\CacheSchedulingMutex' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Console/Scheduling/CacheSchedulingMutex.php', - 'Illuminate\\Console\\Scheduling\\CallbackEvent' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Console/Scheduling/CallbackEvent.php', - 'Illuminate\\Console\\Scheduling\\CommandBuilder' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Console/Scheduling/CommandBuilder.php', - 'Illuminate\\Console\\Scheduling\\Event' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Console/Scheduling/Event.php', - 'Illuminate\\Console\\Scheduling\\EventMutex' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Console/Scheduling/EventMutex.php', - 'Illuminate\\Console\\Scheduling\\ManagesFrequencies' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Console/Scheduling/ManagesFrequencies.php', - 'Illuminate\\Console\\Scheduling\\Schedule' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Console/Scheduling/Schedule.php', - 'Illuminate\\Console\\Scheduling\\ScheduleFinishCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleFinishCommand.php', - 'Illuminate\\Console\\Scheduling\\ScheduleRunCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php', - 'Illuminate\\Console\\Scheduling\\SchedulingMutex' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Console/Scheduling/SchedulingMutex.php', - 'Illuminate\\Container\\BoundMethod' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Container/BoundMethod.php', - 'Illuminate\\Container\\Container' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Container/Container.php', - 'Illuminate\\Container\\ContextualBindingBuilder' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Container/ContextualBindingBuilder.php', - 'Illuminate\\Container\\EntryNotFoundException' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Container/EntryNotFoundException.php', - 'Illuminate\\Contracts\\Auth\\Access\\Authorizable' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Auth/Access/Authorizable.php', - 'Illuminate\\Contracts\\Auth\\Access\\Gate' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Auth/Access/Gate.php', - 'Illuminate\\Contracts\\Auth\\Authenticatable' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Auth/Authenticatable.php', - 'Illuminate\\Contracts\\Auth\\CanResetPassword' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Auth/CanResetPassword.php', - 'Illuminate\\Contracts\\Auth\\Factory' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Auth/Factory.php', - 'Illuminate\\Contracts\\Auth\\Guard' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Auth/Guard.php', - 'Illuminate\\Contracts\\Auth\\PasswordBroker' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Auth/PasswordBroker.php', - 'Illuminate\\Contracts\\Auth\\PasswordBrokerFactory' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Auth/PasswordBrokerFactory.php', - 'Illuminate\\Contracts\\Auth\\StatefulGuard' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Auth/StatefulGuard.php', - 'Illuminate\\Contracts\\Auth\\SupportsBasicAuth' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Auth/SupportsBasicAuth.php', - 'Illuminate\\Contracts\\Auth\\UserProvider' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Auth/UserProvider.php', - 'Illuminate\\Contracts\\Broadcasting\\Broadcaster' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Broadcasting/Broadcaster.php', - 'Illuminate\\Contracts\\Broadcasting\\Factory' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Broadcasting/Factory.php', - 'Illuminate\\Contracts\\Broadcasting\\ShouldBroadcast' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Broadcasting/ShouldBroadcast.php', - 'Illuminate\\Contracts\\Broadcasting\\ShouldBroadcastNow' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Broadcasting/ShouldBroadcastNow.php', - 'Illuminate\\Contracts\\Bus\\Dispatcher' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Bus/Dispatcher.php', - 'Illuminate\\Contracts\\Bus\\QueueingDispatcher' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Bus/QueueingDispatcher.php', - 'Illuminate\\Contracts\\Cache\\Factory' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Cache/Factory.php', - 'Illuminate\\Contracts\\Cache\\Lock' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Cache/Lock.php', - 'Illuminate\\Contracts\\Cache\\LockProvider' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Cache/LockProvider.php', - 'Illuminate\\Contracts\\Cache\\LockTimeoutException' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Cache/LockTimeoutException.php', - 'Illuminate\\Contracts\\Cache\\Repository' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Cache/Repository.php', - 'Illuminate\\Contracts\\Cache\\Store' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Cache/Store.php', - 'Illuminate\\Contracts\\Config\\Repository' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Config/Repository.php', - 'Illuminate\\Contracts\\Console\\Application' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Console/Application.php', - 'Illuminate\\Contracts\\Console\\Kernel' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Console/Kernel.php', - 'Illuminate\\Contracts\\Container\\BindingResolutionException' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Container/BindingResolutionException.php', - 'Illuminate\\Contracts\\Container\\Container' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Container/Container.php', - 'Illuminate\\Contracts\\Container\\ContextualBindingBuilder' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Container/ContextualBindingBuilder.php', - 'Illuminate\\Contracts\\Cookie\\Factory' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Cookie/Factory.php', - 'Illuminate\\Contracts\\Cookie\\QueueingFactory' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Cookie/QueueingFactory.php', - 'Illuminate\\Contracts\\Database\\ModelIdentifier' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Database/ModelIdentifier.php', - 'Illuminate\\Contracts\\Debug\\ExceptionHandler' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Debug/ExceptionHandler.php', - 'Illuminate\\Contracts\\Encryption\\DecryptException' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Encryption/DecryptException.php', - 'Illuminate\\Contracts\\Encryption\\EncryptException' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Encryption/EncryptException.php', - 'Illuminate\\Contracts\\Encryption\\Encrypter' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Encryption/Encrypter.php', - 'Illuminate\\Contracts\\Events\\Dispatcher' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Events/Dispatcher.php', - 'Illuminate\\Contracts\\Filesystem\\Cloud' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Filesystem/Cloud.php', - 'Illuminate\\Contracts\\Filesystem\\Factory' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Filesystem/Factory.php', - 'Illuminate\\Contracts\\Filesystem\\FileNotFoundException' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Filesystem/FileNotFoundException.php', - 'Illuminate\\Contracts\\Filesystem\\Filesystem' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Filesystem/Filesystem.php', - 'Illuminate\\Contracts\\Foundation\\Application' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Foundation/Application.php', - 'Illuminate\\Contracts\\Hashing\\Hasher' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Hashing/Hasher.php', - 'Illuminate\\Contracts\\Http\\Kernel' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Http/Kernel.php', - 'Illuminate\\Contracts\\Mail\\MailQueue' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Mail/MailQueue.php', - 'Illuminate\\Contracts\\Mail\\Mailable' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Mail/Mailable.php', - 'Illuminate\\Contracts\\Mail\\Mailer' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Mail/Mailer.php', - 'Illuminate\\Contracts\\Notifications\\Dispatcher' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Notifications/Dispatcher.php', - 'Illuminate\\Contracts\\Notifications\\Factory' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Notifications/Factory.php', - 'Illuminate\\Contracts\\Pagination\\LengthAwarePaginator' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Pagination/LengthAwarePaginator.php', - 'Illuminate\\Contracts\\Pagination\\Paginator' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Pagination/Paginator.php', - 'Illuminate\\Contracts\\Pipeline\\Hub' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Pipeline/Hub.php', - 'Illuminate\\Contracts\\Pipeline\\Pipeline' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Pipeline/Pipeline.php', - 'Illuminate\\Contracts\\Queue\\EntityNotFoundException' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Queue/EntityNotFoundException.php', - 'Illuminate\\Contracts\\Queue\\EntityResolver' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Queue/EntityResolver.php', - 'Illuminate\\Contracts\\Queue\\Factory' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Queue/Factory.php', - 'Illuminate\\Contracts\\Queue\\Job' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Queue/Job.php', - 'Illuminate\\Contracts\\Queue\\Monitor' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Queue/Monitor.php', - 'Illuminate\\Contracts\\Queue\\Queue' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Queue/Queue.php', - 'Illuminate\\Contracts\\Queue\\QueueableCollection' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Queue/QueueableCollection.php', - 'Illuminate\\Contracts\\Queue\\QueueableEntity' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Queue/QueueableEntity.php', - 'Illuminate\\Contracts\\Queue\\ShouldQueue' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Queue/ShouldQueue.php', - 'Illuminate\\Contracts\\Redis\\Connection' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Redis/Connection.php', - 'Illuminate\\Contracts\\Redis\\Factory' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Redis/Factory.php', - 'Illuminate\\Contracts\\Redis\\LimiterTimeoutException' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Redis/LimiterTimeoutException.php', - 'Illuminate\\Contracts\\Routing\\BindingRegistrar' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Routing/BindingRegistrar.php', - 'Illuminate\\Contracts\\Routing\\Registrar' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Routing/Registrar.php', - 'Illuminate\\Contracts\\Routing\\ResponseFactory' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Routing/ResponseFactory.php', - 'Illuminate\\Contracts\\Routing\\UrlGenerator' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Routing/UrlGenerator.php', - 'Illuminate\\Contracts\\Routing\\UrlRoutable' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Routing/UrlRoutable.php', - 'Illuminate\\Contracts\\Session\\Session' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Session/Session.php', - 'Illuminate\\Contracts\\Support\\Arrayable' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Support/Arrayable.php', - 'Illuminate\\Contracts\\Support\\Htmlable' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Support/Htmlable.php', - 'Illuminate\\Contracts\\Support\\Jsonable' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Support/Jsonable.php', - 'Illuminate\\Contracts\\Support\\MessageBag' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Support/MessageBag.php', - 'Illuminate\\Contracts\\Support\\MessageProvider' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Support/MessageProvider.php', - 'Illuminate\\Contracts\\Support\\Renderable' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Support/Renderable.php', - 'Illuminate\\Contracts\\Support\\Responsable' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Support/Responsable.php', - 'Illuminate\\Contracts\\Translation\\Loader' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Translation/Loader.php', - 'Illuminate\\Contracts\\Translation\\Translator' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Translation/Translator.php', - 'Illuminate\\Contracts\\Validation\\Factory' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Validation/Factory.php', - 'Illuminate\\Contracts\\Validation\\ImplicitRule' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Validation/ImplicitRule.php', - 'Illuminate\\Contracts\\Validation\\Rule' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Validation/Rule.php', - 'Illuminate\\Contracts\\Validation\\ValidatesWhenResolved' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Validation/ValidatesWhenResolved.php', - 'Illuminate\\Contracts\\Validation\\Validator' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Validation/Validator.php', - 'Illuminate\\Contracts\\View\\Engine' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/View/Engine.php', - 'Illuminate\\Contracts\\View\\Factory' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/View/Factory.php', - 'Illuminate\\Contracts\\View\\View' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/View/View.php', - 'Illuminate\\Cookie\\CookieJar' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Cookie/CookieJar.php', - 'Illuminate\\Cookie\\CookieServiceProvider' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Cookie/CookieServiceProvider.php', - 'Illuminate\\Cookie\\Middleware\\AddQueuedCookiesToResponse' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Cookie/Middleware/AddQueuedCookiesToResponse.php', - 'Illuminate\\Cookie\\Middleware\\EncryptCookies' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Cookie/Middleware/EncryptCookies.php', - 'Illuminate\\Database\\Capsule\\Manager' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Capsule/Manager.php', - 'Illuminate\\Database\\Concerns\\BuildsQueries' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Concerns/BuildsQueries.php', - 'Illuminate\\Database\\Concerns\\ManagesTransactions' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Concerns/ManagesTransactions.php', - 'Illuminate\\Database\\Connection' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Connection.php', - 'Illuminate\\Database\\ConnectionInterface' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/ConnectionInterface.php', - 'Illuminate\\Database\\ConnectionResolver' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/ConnectionResolver.php', - 'Illuminate\\Database\\ConnectionResolverInterface' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/ConnectionResolverInterface.php', - 'Illuminate\\Database\\Connectors\\ConnectionFactory' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php', - 'Illuminate\\Database\\Connectors\\Connector' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Connectors/Connector.php', - 'Illuminate\\Database\\Connectors\\ConnectorInterface' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Connectors/ConnectorInterface.php', - 'Illuminate\\Database\\Connectors\\MySqlConnector' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Connectors/MySqlConnector.php', - 'Illuminate\\Database\\Connectors\\PostgresConnector' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php', - 'Illuminate\\Database\\Connectors\\SQLiteConnector' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Connectors/SQLiteConnector.php', - 'Illuminate\\Database\\Connectors\\SqlServerConnector' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Connectors/SqlServerConnector.php', - 'Illuminate\\Database\\Console\\Factories\\FactoryMakeCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Console/Factories/FactoryMakeCommand.php', - 'Illuminate\\Database\\Console\\Migrations\\BaseCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Console/Migrations/BaseCommand.php', - 'Illuminate\\Database\\Console\\Migrations\\FreshCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Console/Migrations/FreshCommand.php', - 'Illuminate\\Database\\Console\\Migrations\\InstallCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Console/Migrations/InstallCommand.php', - 'Illuminate\\Database\\Console\\Migrations\\MigrateCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Console/Migrations/MigrateCommand.php', - 'Illuminate\\Database\\Console\\Migrations\\MigrateMakeCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Console/Migrations/MigrateMakeCommand.php', - 'Illuminate\\Database\\Console\\Migrations\\RefreshCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Console/Migrations/RefreshCommand.php', - 'Illuminate\\Database\\Console\\Migrations\\ResetCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Console/Migrations/ResetCommand.php', - 'Illuminate\\Database\\Console\\Migrations\\RollbackCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Console/Migrations/RollbackCommand.php', - 'Illuminate\\Database\\Console\\Migrations\\StatusCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Console/Migrations/StatusCommand.php', - 'Illuminate\\Database\\Console\\Migrations\\TableGuesser' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Console/Migrations/TableGuesser.php', - 'Illuminate\\Database\\Console\\Seeds\\SeedCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Console/Seeds/SeedCommand.php', - 'Illuminate\\Database\\Console\\Seeds\\SeederMakeCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Console/Seeds/SeederMakeCommand.php', - 'Illuminate\\Database\\DatabaseManager' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/DatabaseManager.php', - 'Illuminate\\Database\\DatabaseServiceProvider' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/DatabaseServiceProvider.php', - 'Illuminate\\Database\\DetectsDeadlocks' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/DetectsDeadlocks.php', - 'Illuminate\\Database\\DetectsLostConnections' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/DetectsLostConnections.php', - 'Illuminate\\Database\\Eloquent\\Builder' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Eloquent/Builder.php', - 'Illuminate\\Database\\Eloquent\\Collection' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Eloquent/Collection.php', - 'Illuminate\\Database\\Eloquent\\Concerns\\GuardsAttributes' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/GuardsAttributes.php', - 'Illuminate\\Database\\Eloquent\\Concerns\\HasAttributes' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/HasAttributes.php', - 'Illuminate\\Database\\Eloquent\\Concerns\\HasEvents' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/HasEvents.php', - 'Illuminate\\Database\\Eloquent\\Concerns\\HasGlobalScopes' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/HasGlobalScopes.php', - 'Illuminate\\Database\\Eloquent\\Concerns\\HasRelationships' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/HasRelationships.php', - 'Illuminate\\Database\\Eloquent\\Concerns\\HasTimestamps' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/HasTimestamps.php', - 'Illuminate\\Database\\Eloquent\\Concerns\\HidesAttributes' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/HidesAttributes.php', - 'Illuminate\\Database\\Eloquent\\Concerns\\QueriesRelationships' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/QueriesRelationships.php', - 'Illuminate\\Database\\Eloquent\\Factory' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Eloquent/Factory.php', - 'Illuminate\\Database\\Eloquent\\FactoryBuilder' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Eloquent/FactoryBuilder.php', - 'Illuminate\\Database\\Eloquent\\JsonEncodingException' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Eloquent/JsonEncodingException.php', - 'Illuminate\\Database\\Eloquent\\MassAssignmentException' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Eloquent/MassAssignmentException.php', - 'Illuminate\\Database\\Eloquent\\Model' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Eloquent/Model.php', - 'Illuminate\\Database\\Eloquent\\ModelNotFoundException' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Eloquent/ModelNotFoundException.php', - 'Illuminate\\Database\\Eloquent\\QueueEntityResolver' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Eloquent/QueueEntityResolver.php', - 'Illuminate\\Database\\Eloquent\\RelationNotFoundException' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Eloquent/RelationNotFoundException.php', - 'Illuminate\\Database\\Eloquent\\Relations\\BelongsTo' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Eloquent/Relations/BelongsTo.php', - 'Illuminate\\Database\\Eloquent\\Relations\\BelongsToMany' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Eloquent/Relations/BelongsToMany.php', - 'Illuminate\\Database\\Eloquent\\Relations\\Concerns\\InteractsWithPivotTable' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Eloquent/Relations/Concerns/InteractsWithPivotTable.php', - 'Illuminate\\Database\\Eloquent\\Relations\\Concerns\\SupportsDefaultModels' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Eloquent/Relations/Concerns/SupportsDefaultModels.php', - 'Illuminate\\Database\\Eloquent\\Relations\\HasMany' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Eloquent/Relations/HasMany.php', - 'Illuminate\\Database\\Eloquent\\Relations\\HasManyThrough' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Eloquent/Relations/HasManyThrough.php', - 'Illuminate\\Database\\Eloquent\\Relations\\HasOne' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Eloquent/Relations/HasOne.php', - 'Illuminate\\Database\\Eloquent\\Relations\\HasOneOrMany' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Eloquent/Relations/HasOneOrMany.php', - 'Illuminate\\Database\\Eloquent\\Relations\\MorphMany' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Eloquent/Relations/MorphMany.php', - 'Illuminate\\Database\\Eloquent\\Relations\\MorphOne' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Eloquent/Relations/MorphOne.php', - 'Illuminate\\Database\\Eloquent\\Relations\\MorphOneOrMany' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Eloquent/Relations/MorphOneOrMany.php', - 'Illuminate\\Database\\Eloquent\\Relations\\MorphPivot' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Eloquent/Relations/MorphPivot.php', - 'Illuminate\\Database\\Eloquent\\Relations\\MorphTo' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Eloquent/Relations/MorphTo.php', - 'Illuminate\\Database\\Eloquent\\Relations\\MorphToMany' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Eloquent/Relations/MorphToMany.php', - 'Illuminate\\Database\\Eloquent\\Relations\\Pivot' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Eloquent/Relations/Pivot.php', - 'Illuminate\\Database\\Eloquent\\Relations\\Relation' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Eloquent/Relations/Relation.php', - 'Illuminate\\Database\\Eloquent\\Scope' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Eloquent/Scope.php', - 'Illuminate\\Database\\Eloquent\\SoftDeletes' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Eloquent/SoftDeletes.php', - 'Illuminate\\Database\\Eloquent\\SoftDeletingScope' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Eloquent/SoftDeletingScope.php', - 'Illuminate\\Database\\Events\\ConnectionEvent' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Events/ConnectionEvent.php', - 'Illuminate\\Database\\Events\\QueryExecuted' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Events/QueryExecuted.php', - 'Illuminate\\Database\\Events\\StatementPrepared' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Events/StatementPrepared.php', - 'Illuminate\\Database\\Events\\TransactionBeginning' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Events/TransactionBeginning.php', - 'Illuminate\\Database\\Events\\TransactionCommitted' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Events/TransactionCommitted.php', - 'Illuminate\\Database\\Events\\TransactionRolledBack' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Events/TransactionRolledBack.php', - 'Illuminate\\Database\\Grammar' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Grammar.php', - 'Illuminate\\Database\\MigrationServiceProvider' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/MigrationServiceProvider.php', - 'Illuminate\\Database\\Migrations\\DatabaseMigrationRepository' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Migrations/DatabaseMigrationRepository.php', - 'Illuminate\\Database\\Migrations\\Migration' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Migrations/Migration.php', - 'Illuminate\\Database\\Migrations\\MigrationCreator' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Migrations/MigrationCreator.php', - 'Illuminate\\Database\\Migrations\\MigrationRepositoryInterface' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Migrations/MigrationRepositoryInterface.php', - 'Illuminate\\Database\\Migrations\\Migrator' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Migrations/Migrator.php', - 'Illuminate\\Database\\MySqlConnection' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/MySqlConnection.php', - 'Illuminate\\Database\\PostgresConnection' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/PostgresConnection.php', - 'Illuminate\\Database\\QueryException' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/QueryException.php', - 'Illuminate\\Database\\Query\\Builder' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Query/Builder.php', - 'Illuminate\\Database\\Query\\Expression' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Query/Expression.php', - 'Illuminate\\Database\\Query\\Grammars\\Grammar' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Query/Grammars/Grammar.php', - 'Illuminate\\Database\\Query\\Grammars\\MySqlGrammar' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Query/Grammars/MySqlGrammar.php', - 'Illuminate\\Database\\Query\\Grammars\\PostgresGrammar' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Query/Grammars/PostgresGrammar.php', - 'Illuminate\\Database\\Query\\Grammars\\SQLiteGrammar' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Query/Grammars/SQLiteGrammar.php', - 'Illuminate\\Database\\Query\\Grammars\\SqlServerGrammar' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Query/Grammars/SqlServerGrammar.php', - 'Illuminate\\Database\\Query\\JoinClause' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Query/JoinClause.php', - 'Illuminate\\Database\\Query\\JsonExpression' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Query/JsonExpression.php', - 'Illuminate\\Database\\Query\\Processors\\MySqlProcessor' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Query/Processors/MySqlProcessor.php', - 'Illuminate\\Database\\Query\\Processors\\PostgresProcessor' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Query/Processors/PostgresProcessor.php', - 'Illuminate\\Database\\Query\\Processors\\Processor' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Query/Processors/Processor.php', - 'Illuminate\\Database\\Query\\Processors\\SQLiteProcessor' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Query/Processors/SQLiteProcessor.php', - 'Illuminate\\Database\\Query\\Processors\\SqlServerProcessor' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Query/Processors/SqlServerProcessor.php', - 'Illuminate\\Database\\SQLiteConnection' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/SQLiteConnection.php', - 'Illuminate\\Database\\Schema\\Blueprint' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Schema/Blueprint.php', - 'Illuminate\\Database\\Schema\\Builder' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Schema/Builder.php', - 'Illuminate\\Database\\Schema\\Grammars\\ChangeColumn' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Schema/Grammars/ChangeColumn.php', - 'Illuminate\\Database\\Schema\\Grammars\\Grammar' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Schema/Grammars/Grammar.php', - 'Illuminate\\Database\\Schema\\Grammars\\MySqlGrammar' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Schema/Grammars/MySqlGrammar.php', - 'Illuminate\\Database\\Schema\\Grammars\\PostgresGrammar' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Schema/Grammars/PostgresGrammar.php', - 'Illuminate\\Database\\Schema\\Grammars\\RenameColumn' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Schema/Grammars/RenameColumn.php', - 'Illuminate\\Database\\Schema\\Grammars\\SQLiteGrammar' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Schema/Grammars/SQLiteGrammar.php', - 'Illuminate\\Database\\Schema\\Grammars\\SqlServerGrammar' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Schema/Grammars/SqlServerGrammar.php', - 'Illuminate\\Database\\Schema\\MySqlBuilder' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Schema/MySqlBuilder.php', - 'Illuminate\\Database\\Schema\\PostgresBuilder' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Schema/PostgresBuilder.php', - 'Illuminate\\Database\\Schema\\SQLiteBuilder' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Schema/SQLiteBuilder.php', - 'Illuminate\\Database\\Schema\\SqlServerBuilder' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Schema/SqlServerBuilder.php', - 'Illuminate\\Database\\Seeder' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Seeder.php', - 'Illuminate\\Database\\SqlServerConnection' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/SqlServerConnection.php', - 'Illuminate\\Encryption\\Encrypter' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Encryption/Encrypter.php', - 'Illuminate\\Encryption\\EncryptionServiceProvider' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Encryption/EncryptionServiceProvider.php', - 'Illuminate\\Events\\CallQueuedListener' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Events/CallQueuedListener.php', - 'Illuminate\\Events\\Dispatcher' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Events/Dispatcher.php', - 'Illuminate\\Events\\EventServiceProvider' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Events/EventServiceProvider.php', - 'Illuminate\\Filesystem\\Cache' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Filesystem/Cache.php', - 'Illuminate\\Filesystem\\Filesystem' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Filesystem/Filesystem.php', - 'Illuminate\\Filesystem\\FilesystemAdapter' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Filesystem/FilesystemAdapter.php', - 'Illuminate\\Filesystem\\FilesystemManager' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Filesystem/FilesystemManager.php', - 'Illuminate\\Filesystem\\FilesystemServiceProvider' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Filesystem/FilesystemServiceProvider.php', - 'Illuminate\\Foundation\\AliasLoader' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/AliasLoader.php', - 'Illuminate\\Foundation\\Application' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Application.php', - 'Illuminate\\Foundation\\Auth\\Access\\Authorizable' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Auth/Access/Authorizable.php', - 'Illuminate\\Foundation\\Auth\\Access\\AuthorizesRequests' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Auth/Access/AuthorizesRequests.php', - 'Illuminate\\Foundation\\Auth\\AuthenticatesUsers' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Auth/AuthenticatesUsers.php', - 'Illuminate\\Foundation\\Auth\\RedirectsUsers' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Auth/RedirectsUsers.php', - 'Illuminate\\Foundation\\Auth\\RegistersUsers' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Auth/RegistersUsers.php', - 'Illuminate\\Foundation\\Auth\\ResetsPasswords' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Auth/ResetsPasswords.php', - 'Illuminate\\Foundation\\Auth\\SendsPasswordResetEmails' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Auth/SendsPasswordResetEmails.php', - 'Illuminate\\Foundation\\Auth\\ThrottlesLogins' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Auth/ThrottlesLogins.php', - 'Illuminate\\Foundation\\Auth\\User' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Auth/User.php', - 'Illuminate\\Foundation\\Bootstrap\\BootProviders' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Bootstrap/BootProviders.php', - 'Illuminate\\Foundation\\Bootstrap\\HandleExceptions' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Bootstrap/HandleExceptions.php', - 'Illuminate\\Foundation\\Bootstrap\\LoadConfiguration' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Bootstrap/LoadConfiguration.php', - 'Illuminate\\Foundation\\Bootstrap\\LoadEnvironmentVariables' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Bootstrap/LoadEnvironmentVariables.php', - 'Illuminate\\Foundation\\Bootstrap\\RegisterFacades' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Bootstrap/RegisterFacades.php', - 'Illuminate\\Foundation\\Bootstrap\\RegisterProviders' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Bootstrap/RegisterProviders.php', - 'Illuminate\\Foundation\\Bootstrap\\SetRequestForConsole' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Bootstrap/SetRequestForConsole.php', - 'Illuminate\\Foundation\\Bus\\Dispatchable' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Bus/Dispatchable.php', - 'Illuminate\\Foundation\\Bus\\DispatchesJobs' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Bus/DispatchesJobs.php', - 'Illuminate\\Foundation\\Bus\\PendingChain' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Bus/PendingChain.php', - 'Illuminate\\Foundation\\Bus\\PendingDispatch' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Bus/PendingDispatch.php', - 'Illuminate\\Foundation\\ComposerScripts' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/ComposerScripts.php', - 'Illuminate\\Foundation\\Console\\AppNameCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Console/AppNameCommand.php', - 'Illuminate\\Foundation\\Console\\ChannelMakeCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Console/ChannelMakeCommand.php', - 'Illuminate\\Foundation\\Console\\ClearCompiledCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Console/ClearCompiledCommand.php', - 'Illuminate\\Foundation\\Console\\ClosureCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Console/ClosureCommand.php', - 'Illuminate\\Foundation\\Console\\ConfigCacheCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Console/ConfigCacheCommand.php', - 'Illuminate\\Foundation\\Console\\ConfigClearCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Console/ConfigClearCommand.php', - 'Illuminate\\Foundation\\Console\\ConsoleMakeCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Console/ConsoleMakeCommand.php', - 'Illuminate\\Foundation\\Console\\DownCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Console/DownCommand.php', - 'Illuminate\\Foundation\\Console\\EnvironmentCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Console/EnvironmentCommand.php', - 'Illuminate\\Foundation\\Console\\EventGenerateCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Console/EventGenerateCommand.php', - 'Illuminate\\Foundation\\Console\\EventMakeCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Console/EventMakeCommand.php', - 'Illuminate\\Foundation\\Console\\ExceptionMakeCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Console/ExceptionMakeCommand.php', - 'Illuminate\\Foundation\\Console\\JobMakeCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Console/JobMakeCommand.php', - 'Illuminate\\Foundation\\Console\\Kernel' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php', - 'Illuminate\\Foundation\\Console\\KeyGenerateCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Console/KeyGenerateCommand.php', - 'Illuminate\\Foundation\\Console\\ListenerMakeCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Console/ListenerMakeCommand.php', - 'Illuminate\\Foundation\\Console\\MailMakeCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Console/MailMakeCommand.php', - 'Illuminate\\Foundation\\Console\\ModelMakeCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Console/ModelMakeCommand.php', - 'Illuminate\\Foundation\\Console\\NotificationMakeCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Console/NotificationMakeCommand.php', - 'Illuminate\\Foundation\\Console\\ObserverMakeCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Console/ObserverMakeCommand.php', - 'Illuminate\\Foundation\\Console\\PackageDiscoverCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Console/PackageDiscoverCommand.php', - 'Illuminate\\Foundation\\Console\\PolicyMakeCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Console/PolicyMakeCommand.php', - 'Illuminate\\Foundation\\Console\\PresetCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Console/PresetCommand.php', - 'Illuminate\\Foundation\\Console\\Presets\\Bootstrap' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Console/Presets/Bootstrap.php', - 'Illuminate\\Foundation\\Console\\Presets\\None' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Console/Presets/None.php', - 'Illuminate\\Foundation\\Console\\Presets\\Preset' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Console/Presets/Preset.php', - 'Illuminate\\Foundation\\Console\\Presets\\React' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Console/Presets/React.php', - 'Illuminate\\Foundation\\Console\\Presets\\Vue' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Console/Presets/Vue.php', - 'Illuminate\\Foundation\\Console\\ProviderMakeCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Console/ProviderMakeCommand.php', - 'Illuminate\\Foundation\\Console\\QueuedCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Console/QueuedCommand.php', - 'Illuminate\\Foundation\\Console\\RequestMakeCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Console/RequestMakeCommand.php', - 'Illuminate\\Foundation\\Console\\ResourceMakeCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Console/ResourceMakeCommand.php', - 'Illuminate\\Foundation\\Console\\RouteCacheCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Console/RouteCacheCommand.php', - 'Illuminate\\Foundation\\Console\\RouteClearCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Console/RouteClearCommand.php', - 'Illuminate\\Foundation\\Console\\RouteListCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Console/RouteListCommand.php', - 'Illuminate\\Foundation\\Console\\RuleMakeCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Console/RuleMakeCommand.php', - 'Illuminate\\Foundation\\Console\\ServeCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Console/ServeCommand.php', - 'Illuminate\\Foundation\\Console\\StorageLinkCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Console/StorageLinkCommand.php', - 'Illuminate\\Foundation\\Console\\TestMakeCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Console/TestMakeCommand.php', - 'Illuminate\\Foundation\\Console\\UpCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Console/UpCommand.php', - 'Illuminate\\Foundation\\Console\\VendorPublishCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Console/VendorPublishCommand.php', - 'Illuminate\\Foundation\\Console\\ViewCacheCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Console/ViewCacheCommand.php', - 'Illuminate\\Foundation\\Console\\ViewClearCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Console/ViewClearCommand.php', - 'Illuminate\\Foundation\\EnvironmentDetector' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/EnvironmentDetector.php', - 'Illuminate\\Foundation\\Events\\Dispatchable' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Events/Dispatchable.php', - 'Illuminate\\Foundation\\Events\\LocaleUpdated' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Events/LocaleUpdated.php', - 'Illuminate\\Foundation\\Exceptions\\Handler' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Exceptions/Handler.php', - 'Illuminate\\Foundation\\Exceptions\\WhoopsHandler' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Exceptions/WhoopsHandler.php', - 'Illuminate\\Foundation\\Http\\Events\\RequestHandled' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Http/Events/RequestHandled.php', - 'Illuminate\\Foundation\\Http\\Exceptions\\MaintenanceModeException' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Http/Exceptions/MaintenanceModeException.php', - 'Illuminate\\Foundation\\Http\\FormRequest' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Http/FormRequest.php', - 'Illuminate\\Foundation\\Http\\Kernel' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php', - 'Illuminate\\Foundation\\Http\\Middleware\\CheckForMaintenanceMode' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Http/Middleware/CheckForMaintenanceMode.php', - 'Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ConvertEmptyStringsToNull.php', - 'Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php', - 'Illuminate\\Foundation\\Http\\Middleware\\TrimStrings' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TrimStrings.php', - 'Illuminate\\Foundation\\Http\\Middleware\\ValidatePostSize' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ValidatePostSize.php', - 'Illuminate\\Foundation\\Http\\Middleware\\VerifyCsrfToken' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Http/Middleware/VerifyCsrfToken.php', - 'Illuminate\\Foundation\\Inspiring' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Inspiring.php', - 'Illuminate\\Foundation\\PackageManifest' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/PackageManifest.php', - 'Illuminate\\Foundation\\ProviderRepository' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/ProviderRepository.php', - 'Illuminate\\Foundation\\Providers\\ArtisanServiceProvider' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Providers/ArtisanServiceProvider.php', - 'Illuminate\\Foundation\\Providers\\ComposerServiceProvider' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Providers/ComposerServiceProvider.php', - 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Providers/ConsoleSupportServiceProvider.php', - 'Illuminate\\Foundation\\Providers\\FormRequestServiceProvider' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Providers/FormRequestServiceProvider.php', - 'Illuminate\\Foundation\\Providers\\FoundationServiceProvider' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Providers/FoundationServiceProvider.php', - 'Illuminate\\Foundation\\Support\\Providers\\AuthServiceProvider' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Support/Providers/AuthServiceProvider.php', - 'Illuminate\\Foundation\\Support\\Providers\\EventServiceProvider' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Support/Providers/EventServiceProvider.php', - 'Illuminate\\Foundation\\Support\\Providers\\RouteServiceProvider' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Support/Providers/RouteServiceProvider.php', - 'Illuminate\\Foundation\\Testing\\Concerns\\InteractsWithAuthentication' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/InteractsWithAuthentication.php', - 'Illuminate\\Foundation\\Testing\\Concerns\\InteractsWithConsole' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/InteractsWithConsole.php', - 'Illuminate\\Foundation\\Testing\\Concerns\\InteractsWithContainer' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/InteractsWithContainer.php', - 'Illuminate\\Foundation\\Testing\\Concerns\\InteractsWithDatabase' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/InteractsWithDatabase.php', - 'Illuminate\\Foundation\\Testing\\Concerns\\InteractsWithExceptionHandling' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/InteractsWithExceptionHandling.php', - 'Illuminate\\Foundation\\Testing\\Concerns\\InteractsWithRedis' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/InteractsWithRedis.php', - 'Illuminate\\Foundation\\Testing\\Concerns\\InteractsWithSession' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/InteractsWithSession.php', - 'Illuminate\\Foundation\\Testing\\Concerns\\MakesHttpRequests' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/MakesHttpRequests.php', - 'Illuminate\\Foundation\\Testing\\Concerns\\MocksApplicationServices' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/MocksApplicationServices.php', - 'Illuminate\\Foundation\\Testing\\Constraints\\HasInDatabase' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Testing/Constraints/HasInDatabase.php', - 'Illuminate\\Foundation\\Testing\\Constraints\\SeeInOrder' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Testing/Constraints/SeeInOrder.php', - 'Illuminate\\Foundation\\Testing\\Constraints\\SoftDeletedInDatabase' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Testing/Constraints/SoftDeletedInDatabase.php', - 'Illuminate\\Foundation\\Testing\\DatabaseMigrations' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Testing/DatabaseMigrations.php', - 'Illuminate\\Foundation\\Testing\\DatabaseTransactions' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Testing/DatabaseTransactions.php', - 'Illuminate\\Foundation\\Testing\\HttpException' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Testing/HttpException.php', - 'Illuminate\\Foundation\\Testing\\RefreshDatabase' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Testing/RefreshDatabase.php', - 'Illuminate\\Foundation\\Testing\\RefreshDatabaseState' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Testing/RefreshDatabaseState.php', - 'Illuminate\\Foundation\\Testing\\TestCase' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Testing/TestCase.php', - 'Illuminate\\Foundation\\Testing\\TestResponse' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Testing/TestResponse.php', - 'Illuminate\\Foundation\\Testing\\WithFaker' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Testing/WithFaker.php', - 'Illuminate\\Foundation\\Testing\\WithoutEvents' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Testing/WithoutEvents.php', - 'Illuminate\\Foundation\\Testing\\WithoutMiddleware' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Testing/WithoutMiddleware.php', - 'Illuminate\\Foundation\\Validation\\ValidatesRequests' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Validation/ValidatesRequests.php', - 'Illuminate\\Hashing\\AbstractHasher' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Hashing/AbstractHasher.php', - 'Illuminate\\Hashing\\ArgonHasher' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Hashing/ArgonHasher.php', - 'Illuminate\\Hashing\\BcryptHasher' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Hashing/BcryptHasher.php', - 'Illuminate\\Hashing\\HashManager' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Hashing/HashManager.php', - 'Illuminate\\Hashing\\HashServiceProvider' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Hashing/HashServiceProvider.php', - 'Illuminate\\Http\\Concerns\\InteractsWithContentTypes' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Http/Concerns/InteractsWithContentTypes.php', - 'Illuminate\\Http\\Concerns\\InteractsWithFlashData' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Http/Concerns/InteractsWithFlashData.php', - 'Illuminate\\Http\\Concerns\\InteractsWithInput' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Http/Concerns/InteractsWithInput.php', - 'Illuminate\\Http\\Exceptions\\HttpResponseException' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Http/Exceptions/HttpResponseException.php', - 'Illuminate\\Http\\Exceptions\\PostTooLargeException' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Http/Exceptions/PostTooLargeException.php', - 'Illuminate\\Http\\Exceptions\\ThrottleRequestsException' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Http/Exceptions/ThrottleRequestsException.php', - 'Illuminate\\Http\\File' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Http/File.php', - 'Illuminate\\Http\\FileHelpers' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Http/FileHelpers.php', - 'Illuminate\\Http\\JsonResponse' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Http/JsonResponse.php', - 'Illuminate\\Http\\Middleware\\CheckResponseForModifications' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Http/Middleware/CheckResponseForModifications.php', - 'Illuminate\\Http\\Middleware\\FrameGuard' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Http/Middleware/FrameGuard.php', - 'Illuminate\\Http\\Middleware\\SetCacheHeaders' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Http/Middleware/SetCacheHeaders.php', - 'Illuminate\\Http\\RedirectResponse' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Http/RedirectResponse.php', - 'Illuminate\\Http\\Request' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Http/Request.php', - 'Illuminate\\Http\\Resources\\CollectsResources' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Http/Resources/CollectsResources.php', - 'Illuminate\\Http\\Resources\\ConditionallyLoadsAttributes' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Http/Resources/ConditionallyLoadsAttributes.php', - 'Illuminate\\Http\\Resources\\DelegatesToResource' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Http/Resources/DelegatesToResource.php', - 'Illuminate\\Http\\Resources\\Json\\AnonymousResourceCollection' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Http/Resources/Json/AnonymousResourceCollection.php', - 'Illuminate\\Http\\Resources\\Json\\JsonResource' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Http/Resources/Json/JsonResource.php', - 'Illuminate\\Http\\Resources\\Json\\PaginatedResourceResponse' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Http/Resources/Json/PaginatedResourceResponse.php', - 'Illuminate\\Http\\Resources\\Json\\Resource' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Http/Resources/Json/Resource.php', - 'Illuminate\\Http\\Resources\\Json\\ResourceCollection' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Http/Resources/Json/ResourceCollection.php', - 'Illuminate\\Http\\Resources\\Json\\ResourceResponse' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Http/Resources/Json/ResourceResponse.php', - 'Illuminate\\Http\\Resources\\MergeValue' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Http/Resources/MergeValue.php', - 'Illuminate\\Http\\Resources\\MissingValue' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Http/Resources/MissingValue.php', - 'Illuminate\\Http\\Resources\\PotentiallyMissing' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Http/Resources/PotentiallyMissing.php', - 'Illuminate\\Http\\Response' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Http/Response.php', - 'Illuminate\\Http\\ResponseTrait' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Http/ResponseTrait.php', - 'Illuminate\\Http\\Testing\\File' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Http/Testing/File.php', - 'Illuminate\\Http\\Testing\\FileFactory' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Http/Testing/FileFactory.php', - 'Illuminate\\Http\\Testing\\MimeType' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Http/Testing/MimeType.php', - 'Illuminate\\Http\\UploadedFile' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Http/UploadedFile.php', - 'Illuminate\\Log\\Events\\MessageLogged' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Log/Events/MessageLogged.php', - 'Illuminate\\Log\\LogManager' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Log/LogManager.php', - 'Illuminate\\Log\\LogServiceProvider' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Log/LogServiceProvider.php', - 'Illuminate\\Log\\Logger' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Log/Logger.php', - 'Illuminate\\Mail\\Events\\MessageSending' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Mail/Events/MessageSending.php', - 'Illuminate\\Mail\\Events\\MessageSent' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Mail/Events/MessageSent.php', - 'Illuminate\\Mail\\MailServiceProvider' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Mail/MailServiceProvider.php', - 'Illuminate\\Mail\\Mailable' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Mail/Mailable.php', - 'Illuminate\\Mail\\Mailer' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Mail/Mailer.php', - 'Illuminate\\Mail\\Markdown' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Mail/Markdown.php', - 'Illuminate\\Mail\\Message' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Mail/Message.php', - 'Illuminate\\Mail\\PendingMail' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Mail/PendingMail.php', - 'Illuminate\\Mail\\SendQueuedMailable' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Mail/SendQueuedMailable.php', - 'Illuminate\\Mail\\TransportManager' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Mail/TransportManager.php', - 'Illuminate\\Mail\\Transport\\ArrayTransport' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Mail/Transport/ArrayTransport.php', - 'Illuminate\\Mail\\Transport\\LogTransport' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Mail/Transport/LogTransport.php', - 'Illuminate\\Mail\\Transport\\MailgunTransport' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Mail/Transport/MailgunTransport.php', - 'Illuminate\\Mail\\Transport\\MandrillTransport' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Mail/Transport/MandrillTransport.php', - 'Illuminate\\Mail\\Transport\\SesTransport' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Mail/Transport/SesTransport.php', - 'Illuminate\\Mail\\Transport\\SparkPostTransport' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Mail/Transport/SparkPostTransport.php', - 'Illuminate\\Mail\\Transport\\Transport' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Mail/Transport/Transport.php', - 'Illuminate\\Notifications\\Action' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Notifications/Action.php', - 'Illuminate\\Notifications\\AnonymousNotifiable' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Notifications/AnonymousNotifiable.php', - 'Illuminate\\Notifications\\ChannelManager' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Notifications/ChannelManager.php', - 'Illuminate\\Notifications\\Channels\\BroadcastChannel' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Notifications/Channels/BroadcastChannel.php', - 'Illuminate\\Notifications\\Channels\\DatabaseChannel' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Notifications/Channels/DatabaseChannel.php', - 'Illuminate\\Notifications\\Channels\\MailChannel' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Notifications/Channels/MailChannel.php', - 'Illuminate\\Notifications\\Channels\\NexmoSmsChannel' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Notifications/Channels/NexmoSmsChannel.php', - 'Illuminate\\Notifications\\Channels\\SlackWebhookChannel' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Notifications/Channels/SlackWebhookChannel.php', - 'Illuminate\\Notifications\\Console\\NotificationTableCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Notifications/Console/NotificationTableCommand.php', - 'Illuminate\\Notifications\\DatabaseNotification' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Notifications/DatabaseNotification.php', - 'Illuminate\\Notifications\\DatabaseNotificationCollection' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Notifications/DatabaseNotificationCollection.php', - 'Illuminate\\Notifications\\Events\\BroadcastNotificationCreated' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Notifications/Events/BroadcastNotificationCreated.php', - 'Illuminate\\Notifications\\Events\\NotificationFailed' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Notifications/Events/NotificationFailed.php', - 'Illuminate\\Notifications\\Events\\NotificationSending' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Notifications/Events/NotificationSending.php', - 'Illuminate\\Notifications\\Events\\NotificationSent' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Notifications/Events/NotificationSent.php', - 'Illuminate\\Notifications\\HasDatabaseNotifications' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Notifications/HasDatabaseNotifications.php', - 'Illuminate\\Notifications\\Messages\\BroadcastMessage' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Notifications/Messages/BroadcastMessage.php', - 'Illuminate\\Notifications\\Messages\\DatabaseMessage' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Notifications/Messages/DatabaseMessage.php', - 'Illuminate\\Notifications\\Messages\\MailMessage' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Notifications/Messages/MailMessage.php', - 'Illuminate\\Notifications\\Messages\\NexmoMessage' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Notifications/Messages/NexmoMessage.php', - 'Illuminate\\Notifications\\Messages\\SimpleMessage' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Notifications/Messages/SimpleMessage.php', - 'Illuminate\\Notifications\\Messages\\SlackAttachment' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Notifications/Messages/SlackAttachment.php', - 'Illuminate\\Notifications\\Messages\\SlackAttachmentField' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Notifications/Messages/SlackAttachmentField.php', - 'Illuminate\\Notifications\\Messages\\SlackMessage' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Notifications/Messages/SlackMessage.php', - 'Illuminate\\Notifications\\Notifiable' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Notifications/Notifiable.php', - 'Illuminate\\Notifications\\Notification' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Notifications/Notification.php', - 'Illuminate\\Notifications\\NotificationSender' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Notifications/NotificationSender.php', - 'Illuminate\\Notifications\\NotificationServiceProvider' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Notifications/NotificationServiceProvider.php', - 'Illuminate\\Notifications\\RoutesNotifications' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Notifications/RoutesNotifications.php', - 'Illuminate\\Notifications\\SendQueuedNotifications' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Notifications/SendQueuedNotifications.php', - 'Illuminate\\Pagination\\AbstractPaginator' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Pagination/AbstractPaginator.php', - 'Illuminate\\Pagination\\LengthAwarePaginator' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Pagination/LengthAwarePaginator.php', - 'Illuminate\\Pagination\\PaginationServiceProvider' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Pagination/PaginationServiceProvider.php', - 'Illuminate\\Pagination\\Paginator' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Pagination/Paginator.php', - 'Illuminate\\Pagination\\UrlWindow' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Pagination/UrlWindow.php', - 'Illuminate\\Pipeline\\Hub' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Pipeline/Hub.php', - 'Illuminate\\Pipeline\\Pipeline' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Pipeline/Pipeline.php', - 'Illuminate\\Pipeline\\PipelineServiceProvider' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Pipeline/PipelineServiceProvider.php', - 'Illuminate\\Queue\\BeanstalkdQueue' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/BeanstalkdQueue.php', - 'Illuminate\\Queue\\CallQueuedHandler' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/CallQueuedHandler.php', - 'Illuminate\\Queue\\Capsule\\Manager' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/Capsule/Manager.php', - 'Illuminate\\Queue\\Connectors\\BeanstalkdConnector' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/Connectors/BeanstalkdConnector.php', - 'Illuminate\\Queue\\Connectors\\ConnectorInterface' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/Connectors/ConnectorInterface.php', - 'Illuminate\\Queue\\Connectors\\DatabaseConnector' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/Connectors/DatabaseConnector.php', - 'Illuminate\\Queue\\Connectors\\NullConnector' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/Connectors/NullConnector.php', - 'Illuminate\\Queue\\Connectors\\RedisConnector' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/Connectors/RedisConnector.php', - 'Illuminate\\Queue\\Connectors\\SqsConnector' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/Connectors/SqsConnector.php', - 'Illuminate\\Queue\\Connectors\\SyncConnector' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/Connectors/SyncConnector.php', - 'Illuminate\\Queue\\Console\\FailedTableCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/Console/FailedTableCommand.php', - 'Illuminate\\Queue\\Console\\FlushFailedCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/Console/FlushFailedCommand.php', - 'Illuminate\\Queue\\Console\\ForgetFailedCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/Console/ForgetFailedCommand.php', - 'Illuminate\\Queue\\Console\\ListFailedCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/Console/ListFailedCommand.php', - 'Illuminate\\Queue\\Console\\ListenCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/Console/ListenCommand.php', - 'Illuminate\\Queue\\Console\\RestartCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/Console/RestartCommand.php', - 'Illuminate\\Queue\\Console\\RetryCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/Console/RetryCommand.php', - 'Illuminate\\Queue\\Console\\TableCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/Console/TableCommand.php', - 'Illuminate\\Queue\\Console\\WorkCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/Console/WorkCommand.php', - 'Illuminate\\Queue\\DatabaseQueue' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/DatabaseQueue.php', - 'Illuminate\\Queue\\Events\\JobExceptionOccurred' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/Events/JobExceptionOccurred.php', - 'Illuminate\\Queue\\Events\\JobFailed' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/Events/JobFailed.php', - 'Illuminate\\Queue\\Events\\JobProcessed' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/Events/JobProcessed.php', - 'Illuminate\\Queue\\Events\\JobProcessing' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/Events/JobProcessing.php', - 'Illuminate\\Queue\\Events\\Looping' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/Events/Looping.php', - 'Illuminate\\Queue\\Events\\WorkerStopping' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/Events/WorkerStopping.php', - 'Illuminate\\Queue\\Failed\\DatabaseFailedJobProvider' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/Failed/DatabaseFailedJobProvider.php', - 'Illuminate\\Queue\\Failed\\FailedJobProviderInterface' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/Failed/FailedJobProviderInterface.php', - 'Illuminate\\Queue\\Failed\\NullFailedJobProvider' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/Failed/NullFailedJobProvider.php', - 'Illuminate\\Queue\\FailingJob' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/FailingJob.php', - 'Illuminate\\Queue\\InteractsWithQueue' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/InteractsWithQueue.php', - 'Illuminate\\Queue\\InvalidPayloadException' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/InvalidPayloadException.php', - 'Illuminate\\Queue\\Jobs\\BeanstalkdJob' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/Jobs/BeanstalkdJob.php', - 'Illuminate\\Queue\\Jobs\\DatabaseJob' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/Jobs/DatabaseJob.php', - 'Illuminate\\Queue\\Jobs\\DatabaseJobRecord' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/Jobs/DatabaseJobRecord.php', - 'Illuminate\\Queue\\Jobs\\Job' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/Jobs/Job.php', - 'Illuminate\\Queue\\Jobs\\JobName' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/Jobs/JobName.php', - 'Illuminate\\Queue\\Jobs\\RedisJob' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/Jobs/RedisJob.php', - 'Illuminate\\Queue\\Jobs\\SqsJob' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/Jobs/SqsJob.php', - 'Illuminate\\Queue\\Jobs\\SyncJob' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/Jobs/SyncJob.php', - 'Illuminate\\Queue\\Listener' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/Listener.php', - 'Illuminate\\Queue\\ListenerOptions' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/ListenerOptions.php', - 'Illuminate\\Queue\\LuaScripts' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/LuaScripts.php', - 'Illuminate\\Queue\\ManuallyFailedException' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/ManuallyFailedException.php', - 'Illuminate\\Queue\\MaxAttemptsExceededException' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/MaxAttemptsExceededException.php', - 'Illuminate\\Queue\\NullQueue' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/NullQueue.php', - 'Illuminate\\Queue\\Queue' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/Queue.php', - 'Illuminate\\Queue\\QueueManager' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/QueueManager.php', - 'Illuminate\\Queue\\QueueServiceProvider' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/QueueServiceProvider.php', - 'Illuminate\\Queue\\RedisQueue' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/RedisQueue.php', - 'Illuminate\\Queue\\SerializesAndRestoresModelIdentifiers' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/SerializesAndRestoresModelIdentifiers.php', - 'Illuminate\\Queue\\SerializesModels' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/SerializesModels.php', - 'Illuminate\\Queue\\SqsQueue' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/SqsQueue.php', - 'Illuminate\\Queue\\SyncQueue' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/SyncQueue.php', - 'Illuminate\\Queue\\Worker' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/Worker.php', - 'Illuminate\\Queue\\WorkerOptions' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/WorkerOptions.php', - 'Illuminate\\Redis\\Connections\\Connection' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Redis/Connections/Connection.php', - 'Illuminate\\Redis\\Connections\\PhpRedisClusterConnection' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Redis/Connections/PhpRedisClusterConnection.php', - 'Illuminate\\Redis\\Connections\\PhpRedisConnection' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Redis/Connections/PhpRedisConnection.php', - 'Illuminate\\Redis\\Connections\\PredisClusterConnection' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Redis/Connections/PredisClusterConnection.php', - 'Illuminate\\Redis\\Connections\\PredisConnection' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Redis/Connections/PredisConnection.php', - 'Illuminate\\Redis\\Connectors\\PhpRedisConnector' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Redis/Connectors/PhpRedisConnector.php', - 'Illuminate\\Redis\\Connectors\\PredisConnector' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Redis/Connectors/PredisConnector.php', - 'Illuminate\\Redis\\Limiters\\ConcurrencyLimiter' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Redis/Limiters/ConcurrencyLimiter.php', - 'Illuminate\\Redis\\Limiters\\ConcurrencyLimiterBuilder' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Redis/Limiters/ConcurrencyLimiterBuilder.php', - 'Illuminate\\Redis\\Limiters\\DurationLimiter' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Redis/Limiters/DurationLimiter.php', - 'Illuminate\\Redis\\Limiters\\DurationLimiterBuilder' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Redis/Limiters/DurationLimiterBuilder.php', - 'Illuminate\\Redis\\RedisManager' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Redis/RedisManager.php', - 'Illuminate\\Redis\\RedisServiceProvider' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Redis/RedisServiceProvider.php', - 'Illuminate\\Routing\\Console\\ControllerMakeCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Routing/Console/ControllerMakeCommand.php', - 'Illuminate\\Routing\\Console\\MiddlewareMakeCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Routing/Console/MiddlewareMakeCommand.php', - 'Illuminate\\Routing\\Contracts\\ControllerDispatcher' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Routing/Contracts/ControllerDispatcher.php', - 'Illuminate\\Routing\\Controller' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Routing/Controller.php', - 'Illuminate\\Routing\\ControllerDispatcher' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php', - 'Illuminate\\Routing\\ControllerMiddlewareOptions' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Routing/ControllerMiddlewareOptions.php', - 'Illuminate\\Routing\\Events\\RouteMatched' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Routing/Events/RouteMatched.php', - 'Illuminate\\Routing\\Exceptions\\InvalidSignatureException' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Routing/Exceptions/InvalidSignatureException.php', - 'Illuminate\\Routing\\Exceptions\\UrlGenerationException' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Routing/Exceptions/UrlGenerationException.php', - 'Illuminate\\Routing\\ImplicitRouteBinding' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Routing/ImplicitRouteBinding.php', - 'Illuminate\\Routing\\Matching\\HostValidator' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Routing/Matching/HostValidator.php', - 'Illuminate\\Routing\\Matching\\MethodValidator' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Routing/Matching/MethodValidator.php', - 'Illuminate\\Routing\\Matching\\SchemeValidator' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Routing/Matching/SchemeValidator.php', - 'Illuminate\\Routing\\Matching\\UriValidator' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Routing/Matching/UriValidator.php', - 'Illuminate\\Routing\\Matching\\ValidatorInterface' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Routing/Matching/ValidatorInterface.php', - 'Illuminate\\Routing\\MiddlewareNameResolver' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Routing/MiddlewareNameResolver.php', - 'Illuminate\\Routing\\Middleware\\SubstituteBindings' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Routing/Middleware/SubstituteBindings.php', - 'Illuminate\\Routing\\Middleware\\ThrottleRequests' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequests.php', - 'Illuminate\\Routing\\Middleware\\ThrottleRequestsWithRedis' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequestsWithRedis.php', - 'Illuminate\\Routing\\Middleware\\ValidateSignature' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Routing/Middleware/ValidateSignature.php', - 'Illuminate\\Routing\\PendingResourceRegistration' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Routing/PendingResourceRegistration.php', - 'Illuminate\\Routing\\Pipeline' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Routing/Pipeline.php', - 'Illuminate\\Routing\\RedirectController' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Routing/RedirectController.php', - 'Illuminate\\Routing\\Redirector' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Routing/Redirector.php', - 'Illuminate\\Routing\\ResourceRegistrar' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Routing/ResourceRegistrar.php', - 'Illuminate\\Routing\\ResponseFactory' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Routing/ResponseFactory.php', - 'Illuminate\\Routing\\Route' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Routing/Route.php', - 'Illuminate\\Routing\\RouteAction' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Routing/RouteAction.php', - 'Illuminate\\Routing\\RouteBinding' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Routing/RouteBinding.php', - 'Illuminate\\Routing\\RouteCollection' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Routing/RouteCollection.php', - 'Illuminate\\Routing\\RouteCompiler' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Routing/RouteCompiler.php', - 'Illuminate\\Routing\\RouteDependencyResolverTrait' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Routing/RouteDependencyResolverTrait.php', - 'Illuminate\\Routing\\RouteGroup' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Routing/RouteGroup.php', - 'Illuminate\\Routing\\RouteParameterBinder' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Routing/RouteParameterBinder.php', - 'Illuminate\\Routing\\RouteRegistrar' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Routing/RouteRegistrar.php', - 'Illuminate\\Routing\\RouteSignatureParameters' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Routing/RouteSignatureParameters.php', - 'Illuminate\\Routing\\RouteUrlGenerator' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Routing/RouteUrlGenerator.php', - 'Illuminate\\Routing\\Router' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Routing/Router.php', - 'Illuminate\\Routing\\RoutingServiceProvider' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Routing/RoutingServiceProvider.php', - 'Illuminate\\Routing\\SortedMiddleware' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Routing/SortedMiddleware.php', - 'Illuminate\\Routing\\UrlGenerator' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Routing/UrlGenerator.php', - 'Illuminate\\Routing\\ViewController' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Routing/ViewController.php', - 'Illuminate\\Session\\CacheBasedSessionHandler' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Session/CacheBasedSessionHandler.php', - 'Illuminate\\Session\\Console\\SessionTableCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Session/Console/SessionTableCommand.php', - 'Illuminate\\Session\\CookieSessionHandler' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Session/CookieSessionHandler.php', - 'Illuminate\\Session\\DatabaseSessionHandler' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Session/DatabaseSessionHandler.php', - 'Illuminate\\Session\\EncryptedStore' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Session/EncryptedStore.php', - 'Illuminate\\Session\\ExistenceAwareInterface' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Session/ExistenceAwareInterface.php', - 'Illuminate\\Session\\FileSessionHandler' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Session/FileSessionHandler.php', - 'Illuminate\\Session\\Middleware\\AuthenticateSession' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Session/Middleware/AuthenticateSession.php', - 'Illuminate\\Session\\Middleware\\StartSession' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php', - 'Illuminate\\Session\\NullSessionHandler' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Session/NullSessionHandler.php', - 'Illuminate\\Session\\SessionManager' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Session/SessionManager.php', - 'Illuminate\\Session\\SessionServiceProvider' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Session/SessionServiceProvider.php', - 'Illuminate\\Session\\Store' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Session/Store.php', - 'Illuminate\\Session\\TokenMismatchException' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Session/TokenMismatchException.php', - 'Illuminate\\Support\\AggregateServiceProvider' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/AggregateServiceProvider.php', - 'Illuminate\\Support\\Arr' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/Arr.php', - 'Illuminate\\Support\\Carbon' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/Carbon.php', - 'Illuminate\\Support\\Collection' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/Collection.php', - 'Illuminate\\Support\\Composer' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/Composer.php', - 'Illuminate\\Support\\Debug\\Dumper' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/Debug/Dumper.php', - 'Illuminate\\Support\\Debug\\HtmlDumper' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/Debug/HtmlDumper.php', - 'Illuminate\\Support\\Facades\\App' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/Facades/App.php', - 'Illuminate\\Support\\Facades\\Artisan' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/Facades/Artisan.php', - 'Illuminate\\Support\\Facades\\Auth' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/Facades/Auth.php', - 'Illuminate\\Support\\Facades\\Blade' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/Facades/Blade.php', - 'Illuminate\\Support\\Facades\\Broadcast' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/Facades/Broadcast.php', - 'Illuminate\\Support\\Facades\\Bus' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/Facades/Bus.php', - 'Illuminate\\Support\\Facades\\Cache' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/Facades/Cache.php', - 'Illuminate\\Support\\Facades\\Config' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/Facades/Config.php', - 'Illuminate\\Support\\Facades\\Cookie' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/Facades/Cookie.php', - 'Illuminate\\Support\\Facades\\Crypt' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/Facades/Crypt.php', - 'Illuminate\\Support\\Facades\\DB' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/Facades/DB.php', - 'Illuminate\\Support\\Facades\\Event' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/Facades/Event.php', - 'Illuminate\\Support\\Facades\\Facade' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/Facades/Facade.php', - 'Illuminate\\Support\\Facades\\File' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/Facades/File.php', - 'Illuminate\\Support\\Facades\\Gate' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/Facades/Gate.php', - 'Illuminate\\Support\\Facades\\Hash' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/Facades/Hash.php', - 'Illuminate\\Support\\Facades\\Input' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/Facades/Input.php', - 'Illuminate\\Support\\Facades\\Lang' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/Facades/Lang.php', - 'Illuminate\\Support\\Facades\\Log' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/Facades/Log.php', - 'Illuminate\\Support\\Facades\\Mail' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/Facades/Mail.php', - 'Illuminate\\Support\\Facades\\Notification' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/Facades/Notification.php', - 'Illuminate\\Support\\Facades\\Password' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/Facades/Password.php', - 'Illuminate\\Support\\Facades\\Queue' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/Facades/Queue.php', - 'Illuminate\\Support\\Facades\\Redirect' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/Facades/Redirect.php', - 'Illuminate\\Support\\Facades\\Redis' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/Facades/Redis.php', - 'Illuminate\\Support\\Facades\\Request' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/Facades/Request.php', - 'Illuminate\\Support\\Facades\\Response' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/Facades/Response.php', - 'Illuminate\\Support\\Facades\\Route' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/Facades/Route.php', - 'Illuminate\\Support\\Facades\\Schema' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/Facades/Schema.php', - 'Illuminate\\Support\\Facades\\Session' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/Facades/Session.php', - 'Illuminate\\Support\\Facades\\Storage' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/Facades/Storage.php', - 'Illuminate\\Support\\Facades\\URL' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/Facades/URL.php', - 'Illuminate\\Support\\Facades\\Validator' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/Facades/Validator.php', - 'Illuminate\\Support\\Facades\\View' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/Facades/View.php', - 'Illuminate\\Support\\Fluent' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/Fluent.php', - 'Illuminate\\Support\\HigherOrderCollectionProxy' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/HigherOrderCollectionProxy.php', - 'Illuminate\\Support\\HigherOrderTapProxy' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/HigherOrderTapProxy.php', - 'Illuminate\\Support\\HtmlString' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/HtmlString.php', - 'Illuminate\\Support\\InteractsWithTime' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/InteractsWithTime.php', - 'Illuminate\\Support\\Manager' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/Manager.php', - 'Illuminate\\Support\\MessageBag' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/MessageBag.php', - 'Illuminate\\Support\\NamespacedItemResolver' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/NamespacedItemResolver.php', - 'Illuminate\\Support\\Optional' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/Optional.php', - 'Illuminate\\Support\\Pluralizer' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/Pluralizer.php', - 'Illuminate\\Support\\ProcessUtils' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/ProcessUtils.php', - 'Illuminate\\Support\\ServiceProvider' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/ServiceProvider.php', - 'Illuminate\\Support\\Str' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/Str.php', - 'Illuminate\\Support\\Testing\\Fakes\\BusFake' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/Testing/Fakes/BusFake.php', - 'Illuminate\\Support\\Testing\\Fakes\\EventFake' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/Testing/Fakes/EventFake.php', - 'Illuminate\\Support\\Testing\\Fakes\\MailFake' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/Testing/Fakes/MailFake.php', - 'Illuminate\\Support\\Testing\\Fakes\\NotificationFake' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/Testing/Fakes/NotificationFake.php', - 'Illuminate\\Support\\Testing\\Fakes\\PendingMailFake' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/Testing/Fakes/PendingMailFake.php', - 'Illuminate\\Support\\Testing\\Fakes\\QueueFake' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/Testing/Fakes/QueueFake.php', - 'Illuminate\\Support\\Traits\\CapsuleManagerTrait' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/Traits/CapsuleManagerTrait.php', - 'Illuminate\\Support\\Traits\\Localizable' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/Traits/Localizable.php', - 'Illuminate\\Support\\Traits\\Macroable' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/Traits/Macroable.php', - 'Illuminate\\Support\\ViewErrorBag' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/ViewErrorBag.php', - 'Illuminate\\Translation\\ArrayLoader' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Translation/ArrayLoader.php', - 'Illuminate\\Translation\\FileLoader' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Translation/FileLoader.php', - 'Illuminate\\Translation\\MessageSelector' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Translation/MessageSelector.php', - 'Illuminate\\Translation\\TranslationServiceProvider' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Translation/TranslationServiceProvider.php', - 'Illuminate\\Translation\\Translator' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Translation/Translator.php', - 'Illuminate\\Validation\\ClosureValidationRule' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Validation/ClosureValidationRule.php', - 'Illuminate\\Validation\\Concerns\\FormatsMessages' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Validation/Concerns/FormatsMessages.php', - 'Illuminate\\Validation\\Concerns\\ReplacesAttributes' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Validation/Concerns/ReplacesAttributes.php', - 'Illuminate\\Validation\\Concerns\\ValidatesAttributes' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Validation/Concerns/ValidatesAttributes.php', - 'Illuminate\\Validation\\DatabasePresenceVerifier' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Validation/DatabasePresenceVerifier.php', - 'Illuminate\\Validation\\Factory' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Validation/Factory.php', - 'Illuminate\\Validation\\PresenceVerifierInterface' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Validation/PresenceVerifierInterface.php', - 'Illuminate\\Validation\\Rule' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Validation/Rule.php', - 'Illuminate\\Validation\\Rules\\DatabaseRule' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Validation/Rules/DatabaseRule.php', - 'Illuminate\\Validation\\Rules\\Dimensions' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Validation/Rules/Dimensions.php', - 'Illuminate\\Validation\\Rules\\Exists' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Validation/Rules/Exists.php', - 'Illuminate\\Validation\\Rules\\In' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Validation/Rules/In.php', - 'Illuminate\\Validation\\Rules\\NotIn' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Validation/Rules/NotIn.php', - 'Illuminate\\Validation\\Rules\\Unique' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Validation/Rules/Unique.php', - 'Illuminate\\Validation\\UnauthorizedException' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Validation/UnauthorizedException.php', - 'Illuminate\\Validation\\ValidatesWhenResolvedTrait' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Validation/ValidatesWhenResolvedTrait.php', - 'Illuminate\\Validation\\ValidationData' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Validation/ValidationData.php', - 'Illuminate\\Validation\\ValidationException' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Validation/ValidationException.php', - 'Illuminate\\Validation\\ValidationRuleParser' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Validation/ValidationRuleParser.php', - 'Illuminate\\Validation\\ValidationServiceProvider' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Validation/ValidationServiceProvider.php', - 'Illuminate\\Validation\\Validator' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Validation/Validator.php', - 'Illuminate\\View\\Compilers\\BladeCompiler' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/View/Compilers/BladeCompiler.php', - 'Illuminate\\View\\Compilers\\Compiler' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/View/Compilers/Compiler.php', - 'Illuminate\\View\\Compilers\\CompilerInterface' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/View/Compilers/CompilerInterface.php', - 'Illuminate\\View\\Compilers\\Concerns\\CompilesAuthorizations' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesAuthorizations.php', - 'Illuminate\\View\\Compilers\\Concerns\\CompilesComments' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesComments.php', - 'Illuminate\\View\\Compilers\\Concerns\\CompilesComponents' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesComponents.php', - 'Illuminate\\View\\Compilers\\Concerns\\CompilesConditionals' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesConditionals.php', - 'Illuminate\\View\\Compilers\\Concerns\\CompilesEchos' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesEchos.php', - 'Illuminate\\View\\Compilers\\Concerns\\CompilesHelpers' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesHelpers.php', - 'Illuminate\\View\\Compilers\\Concerns\\CompilesIncludes' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesIncludes.php', - 'Illuminate\\View\\Compilers\\Concerns\\CompilesInjections' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesInjections.php', - 'Illuminate\\View\\Compilers\\Concerns\\CompilesJson' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesJson.php', - 'Illuminate\\View\\Compilers\\Concerns\\CompilesLayouts' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesLayouts.php', - 'Illuminate\\View\\Compilers\\Concerns\\CompilesLoops' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesLoops.php', - 'Illuminate\\View\\Compilers\\Concerns\\CompilesRawPhp' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesRawPhp.php', - 'Illuminate\\View\\Compilers\\Concerns\\CompilesStacks' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesStacks.php', - 'Illuminate\\View\\Compilers\\Concerns\\CompilesTranslations' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesTranslations.php', - 'Illuminate\\View\\Concerns\\ManagesComponents' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/View/Concerns/ManagesComponents.php', - 'Illuminate\\View\\Concerns\\ManagesEvents' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/View/Concerns/ManagesEvents.php', - 'Illuminate\\View\\Concerns\\ManagesLayouts' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/View/Concerns/ManagesLayouts.php', - 'Illuminate\\View\\Concerns\\ManagesLoops' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/View/Concerns/ManagesLoops.php', - 'Illuminate\\View\\Concerns\\ManagesStacks' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/View/Concerns/ManagesStacks.php', - 'Illuminate\\View\\Concerns\\ManagesTranslations' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/View/Concerns/ManagesTranslations.php', - 'Illuminate\\View\\Engines\\CompilerEngine' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/View/Engines/CompilerEngine.php', - 'Illuminate\\View\\Engines\\Engine' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/View/Engines/Engine.php', - 'Illuminate\\View\\Engines\\EngineResolver' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/View/Engines/EngineResolver.php', - 'Illuminate\\View\\Engines\\FileEngine' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/View/Engines/FileEngine.php', - 'Illuminate\\View\\Engines\\PhpEngine' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/View/Engines/PhpEngine.php', - 'Illuminate\\View\\Factory' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/View/Factory.php', - 'Illuminate\\View\\FileViewFinder' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/View/FileViewFinder.php', - 'Illuminate\\View\\Middleware\\ShareErrorsFromSession' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/View/Middleware/ShareErrorsFromSession.php', - 'Illuminate\\View\\View' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/View/View.php', - 'Illuminate\\View\\ViewFinderInterface' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/View/ViewFinderInterface.php', - 'Illuminate\\View\\ViewName' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/View/ViewName.php', - 'Illuminate\\View\\ViewServiceProvider' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/View/ViewServiceProvider.php', - 'InstanceSeeder' => __DIR__ . '/../..' . '/database/seeds/InstanceSeeder.php', - 'Intervention\\Image\\AbstractColor' => __DIR__ . '/..' . '/intervention/image/src/Intervention/Image/AbstractColor.php', - 'Intervention\\Image\\AbstractDecoder' => __DIR__ . '/..' . '/intervention/image/src/Intervention/Image/AbstractDecoder.php', - 'Intervention\\Image\\AbstractDriver' => __DIR__ . '/..' . '/intervention/image/src/Intervention/Image/AbstractDriver.php', - 'Intervention\\Image\\AbstractEncoder' => __DIR__ . '/..' . '/intervention/image/src/Intervention/Image/AbstractEncoder.php', - 'Intervention\\Image\\AbstractFont' => __DIR__ . '/..' . '/intervention/image/src/Intervention/Image/AbstractFont.php', - 'Intervention\\Image\\AbstractShape' => __DIR__ . '/..' . '/intervention/image/src/Intervention/Image/AbstractShape.php', - 'Intervention\\Image\\Commands\\AbstractCommand' => __DIR__ . '/..' . '/intervention/image/src/Intervention/Image/Commands/AbstractCommand.php', - 'Intervention\\Image\\Commands\\Argument' => __DIR__ . '/..' . '/intervention/image/src/Intervention/Image/Commands/Argument.php', - 'Intervention\\Image\\Commands\\ChecksumCommand' => __DIR__ . '/..' . '/intervention/image/src/Intervention/Image/Commands/ChecksumCommand.php', - 'Intervention\\Image\\Commands\\CircleCommand' => __DIR__ . '/..' . '/intervention/image/src/Intervention/Image/Commands/CircleCommand.php', - 'Intervention\\Image\\Commands\\EllipseCommand' => __DIR__ . '/..' . '/intervention/image/src/Intervention/Image/Commands/EllipseCommand.php', - 'Intervention\\Image\\Commands\\ExifCommand' => __DIR__ . '/..' . '/intervention/image/src/Intervention/Image/Commands/ExifCommand.php', - 'Intervention\\Image\\Commands\\IptcCommand' => __DIR__ . '/..' . '/intervention/image/src/Intervention/Image/Commands/IptcCommand.php', - 'Intervention\\Image\\Commands\\LineCommand' => __DIR__ . '/..' . '/intervention/image/src/Intervention/Image/Commands/LineCommand.php', - 'Intervention\\Image\\Commands\\OrientateCommand' => __DIR__ . '/..' . '/intervention/image/src/Intervention/Image/Commands/OrientateCommand.php', - 'Intervention\\Image\\Commands\\PolygonCommand' => __DIR__ . '/..' . '/intervention/image/src/Intervention/Image/Commands/PolygonCommand.php', - 'Intervention\\Image\\Commands\\PsrResponseCommand' => __DIR__ . '/..' . '/intervention/image/src/Intervention/Image/Commands/PsrResponseCommand.php', - 'Intervention\\Image\\Commands\\RectangleCommand' => __DIR__ . '/..' . '/intervention/image/src/Intervention/Image/Commands/RectangleCommand.php', - 'Intervention\\Image\\Commands\\ResponseCommand' => __DIR__ . '/..' . '/intervention/image/src/Intervention/Image/Commands/ResponseCommand.php', - 'Intervention\\Image\\Commands\\StreamCommand' => __DIR__ . '/..' . '/intervention/image/src/Intervention/Image/Commands/StreamCommand.php', - 'Intervention\\Image\\Commands\\TextCommand' => __DIR__ . '/..' . '/intervention/image/src/Intervention/Image/Commands/TextCommand.php', - 'Intervention\\Image\\Constraint' => __DIR__ . '/..' . '/intervention/image/src/Intervention/Image/Constraint.php', - 'Intervention\\Image\\Exception\\ImageException' => __DIR__ . '/..' . '/intervention/image/src/Intervention/Image/Exception/ImageException.php', - 'Intervention\\Image\\Exception\\InvalidArgumentException' => __DIR__ . '/..' . '/intervention/image/src/Intervention/Image/Exception/InvalidArgumentException.php', - 'Intervention\\Image\\Exception\\MissingDependencyException' => __DIR__ . '/..' . '/intervention/image/src/Intervention/Image/Exception/MissingDependencyException.php', - 'Intervention\\Image\\Exception\\NotFoundException' => __DIR__ . '/..' . '/intervention/image/src/Intervention/Image/Exception/NotFoundException.php', - 'Intervention\\Image\\Exception\\NotReadableException' => __DIR__ . '/..' . '/intervention/image/src/Intervention/Image/Exception/NotReadableException.php', - 'Intervention\\Image\\Exception\\NotSupportedException' => __DIR__ . '/..' . '/intervention/image/src/Intervention/Image/Exception/NotSupportedException.php', - 'Intervention\\Image\\Exception\\NotWritableException' => __DIR__ . '/..' . '/intervention/image/src/Intervention/Image/Exception/NotWritableException.php', - 'Intervention\\Image\\Exception\\RuntimeException' => __DIR__ . '/..' . '/intervention/image/src/Intervention/Image/Exception/RuntimeException.php', - 'Intervention\\Image\\Facades\\Image' => __DIR__ . '/..' . '/intervention/image/src/Intervention/Image/Facades/Image.php', - 'Intervention\\Image\\File' => __DIR__ . '/..' . '/intervention/image/src/Intervention/Image/File.php', - 'Intervention\\Image\\Filters\\DemoFilter' => __DIR__ . '/..' . '/intervention/image/src/Intervention/Image/Filters/DemoFilter.php', - 'Intervention\\Image\\Filters\\FilterInterface' => __DIR__ . '/..' . '/intervention/image/src/Intervention/Image/Filters/FilterInterface.php', - 'Intervention\\Image\\Gd\\Color' => __DIR__ . '/..' . '/intervention/image/src/Intervention/Image/Gd/Color.php', - 'Intervention\\Image\\Gd\\Commands\\BackupCommand' => __DIR__ . '/..' . '/intervention/image/src/Intervention/Image/Gd/Commands/BackupCommand.php', - 'Intervention\\Image\\Gd\\Commands\\BlurCommand' => __DIR__ . '/..' . '/intervention/image/src/Intervention/Image/Gd/Commands/BlurCommand.php', - 'Intervention\\Image\\Gd\\Commands\\BrightnessCommand' => __DIR__ . '/..' . '/intervention/image/src/Intervention/Image/Gd/Commands/BrightnessCommand.php', - 'Intervention\\Image\\Gd\\Commands\\ColorizeCommand' => __DIR__ . '/..' . '/intervention/image/src/Intervention/Image/Gd/Commands/ColorizeCommand.php', - 'Intervention\\Image\\Gd\\Commands\\ContrastCommand' => __DIR__ . '/..' . '/intervention/image/src/Intervention/Image/Gd/Commands/ContrastCommand.php', - 'Intervention\\Image\\Gd\\Commands\\CropCommand' => __DIR__ . '/..' . '/intervention/image/src/Intervention/Image/Gd/Commands/CropCommand.php', - 'Intervention\\Image\\Gd\\Commands\\DestroyCommand' => __DIR__ . '/..' . '/intervention/image/src/Intervention/Image/Gd/Commands/DestroyCommand.php', - 'Intervention\\Image\\Gd\\Commands\\FillCommand' => __DIR__ . '/..' . '/intervention/image/src/Intervention/Image/Gd/Commands/FillCommand.php', - 'Intervention\\Image\\Gd\\Commands\\FitCommand' => __DIR__ . '/..' . '/intervention/image/src/Intervention/Image/Gd/Commands/FitCommand.php', - 'Intervention\\Image\\Gd\\Commands\\FlipCommand' => __DIR__ . '/..' . '/intervention/image/src/Intervention/Image/Gd/Commands/FlipCommand.php', - 'Intervention\\Image\\Gd\\Commands\\GammaCommand' => __DIR__ . '/..' . '/intervention/image/src/Intervention/Image/Gd/Commands/GammaCommand.php', - 'Intervention\\Image\\Gd\\Commands\\GetSizeCommand' => __DIR__ . '/..' . '/intervention/image/src/Intervention/Image/Gd/Commands/GetSizeCommand.php', - 'Intervention\\Image\\Gd\\Commands\\GreyscaleCommand' => __DIR__ . '/..' . '/intervention/image/src/Intervention/Image/Gd/Commands/GreyscaleCommand.php', - 'Intervention\\Image\\Gd\\Commands\\HeightenCommand' => __DIR__ . '/..' . '/intervention/image/src/Intervention/Image/Gd/Commands/HeightenCommand.php', - 'Intervention\\Image\\Gd\\Commands\\InsertCommand' => __DIR__ . '/..' . '/intervention/image/src/Intervention/Image/Gd/Commands/InsertCommand.php', - 'Intervention\\Image\\Gd\\Commands\\InterlaceCommand' => __DIR__ . '/..' . '/intervention/image/src/Intervention/Image/Gd/Commands/InterlaceCommand.php', - 'Intervention\\Image\\Gd\\Commands\\InvertCommand' => __DIR__ . '/..' . '/intervention/image/src/Intervention/Image/Gd/Commands/InvertCommand.php', - 'Intervention\\Image\\Gd\\Commands\\LimitColorsCommand' => __DIR__ . '/..' . '/intervention/image/src/Intervention/Image/Gd/Commands/LimitColorsCommand.php', - 'Intervention\\Image\\Gd\\Commands\\MaskCommand' => __DIR__ . '/..' . '/intervention/image/src/Intervention/Image/Gd/Commands/MaskCommand.php', - 'Intervention\\Image\\Gd\\Commands\\OpacityCommand' => __DIR__ . '/..' . '/intervention/image/src/Intervention/Image/Gd/Commands/OpacityCommand.php', - 'Intervention\\Image\\Gd\\Commands\\PickColorCommand' => __DIR__ . '/..' . '/intervention/image/src/Intervention/Image/Gd/Commands/PickColorCommand.php', - 'Intervention\\Image\\Gd\\Commands\\PixelCommand' => __DIR__ . '/..' . '/intervention/image/src/Intervention/Image/Gd/Commands/PixelCommand.php', - 'Intervention\\Image\\Gd\\Commands\\PixelateCommand' => __DIR__ . '/..' . '/intervention/image/src/Intervention/Image/Gd/Commands/PixelateCommand.php', - 'Intervention\\Image\\Gd\\Commands\\ResetCommand' => __DIR__ . '/..' . '/intervention/image/src/Intervention/Image/Gd/Commands/ResetCommand.php', - 'Intervention\\Image\\Gd\\Commands\\ResizeCanvasCommand' => __DIR__ . '/..' . '/intervention/image/src/Intervention/Image/Gd/Commands/ResizeCanvasCommand.php', - 'Intervention\\Image\\Gd\\Commands\\ResizeCommand' => __DIR__ . '/..' . '/intervention/image/src/Intervention/Image/Gd/Commands/ResizeCommand.php', - 'Intervention\\Image\\Gd\\Commands\\RotateCommand' => __DIR__ . '/..' . '/intervention/image/src/Intervention/Image/Gd/Commands/RotateCommand.php', - 'Intervention\\Image\\Gd\\Commands\\SharpenCommand' => __DIR__ . '/..' . '/intervention/image/src/Intervention/Image/Gd/Commands/SharpenCommand.php', - 'Intervention\\Image\\Gd\\Commands\\TrimCommand' => __DIR__ . '/..' . '/intervention/image/src/Intervention/Image/Gd/Commands/TrimCommand.php', - 'Intervention\\Image\\Gd\\Commands\\WidenCommand' => __DIR__ . '/..' . '/intervention/image/src/Intervention/Image/Gd/Commands/WidenCommand.php', - 'Intervention\\Image\\Gd\\Decoder' => __DIR__ . '/..' . '/intervention/image/src/Intervention/Image/Gd/Decoder.php', - 'Intervention\\Image\\Gd\\Driver' => __DIR__ . '/..' . '/intervention/image/src/Intervention/Image/Gd/Driver.php', - 'Intervention\\Image\\Gd\\Encoder' => __DIR__ . '/..' . '/intervention/image/src/Intervention/Image/Gd/Encoder.php', - 'Intervention\\Image\\Gd\\Font' => __DIR__ . '/..' . '/intervention/image/src/Intervention/Image/Gd/Font.php', - 'Intervention\\Image\\Gd\\Shapes\\CircleShape' => __DIR__ . '/..' . '/intervention/image/src/Intervention/Image/Gd/Shapes/CircleShape.php', - 'Intervention\\Image\\Gd\\Shapes\\EllipseShape' => __DIR__ . '/..' . '/intervention/image/src/Intervention/Image/Gd/Shapes/EllipseShape.php', - 'Intervention\\Image\\Gd\\Shapes\\LineShape' => __DIR__ . '/..' . '/intervention/image/src/Intervention/Image/Gd/Shapes/LineShape.php', - 'Intervention\\Image\\Gd\\Shapes\\PolygonShape' => __DIR__ . '/..' . '/intervention/image/src/Intervention/Image/Gd/Shapes/PolygonShape.php', - 'Intervention\\Image\\Gd\\Shapes\\RectangleShape' => __DIR__ . '/..' . '/intervention/image/src/Intervention/Image/Gd/Shapes/RectangleShape.php', - 'Intervention\\Image\\Image' => __DIR__ . '/..' . '/intervention/image/src/Intervention/Image/Image.php', - 'Intervention\\Image\\ImageManager' => __DIR__ . '/..' . '/intervention/image/src/Intervention/Image/ImageManager.php', - 'Intervention\\Image\\ImageManagerStatic' => __DIR__ . '/..' . '/intervention/image/src/Intervention/Image/ImageManagerStatic.php', - 'Intervention\\Image\\ImageServiceProvider' => __DIR__ . '/..' . '/intervention/image/src/Intervention/Image/ImageServiceProvider.php', - 'Intervention\\Image\\ImageServiceProviderLaravel4' => __DIR__ . '/..' . '/intervention/image/src/Intervention/Image/ImageServiceProviderLaravel4.php', - 'Intervention\\Image\\ImageServiceProviderLaravel5' => __DIR__ . '/..' . '/intervention/image/src/Intervention/Image/ImageServiceProviderLaravel5.php', - 'Intervention\\Image\\ImageServiceProviderLeague' => __DIR__ . '/..' . '/intervention/image/src/Intervention/Image/ImageServiceProviderLeague.php', - 'Intervention\\Image\\ImageServiceProviderLumen' => __DIR__ . '/..' . '/intervention/image/src/Intervention/Image/ImageServiceProviderLumen.php', - 'Intervention\\Image\\Imagick\\Color' => __DIR__ . '/..' . '/intervention/image/src/Intervention/Image/Imagick/Color.php', - 'Intervention\\Image\\Imagick\\Commands\\BackupCommand' => __DIR__ . '/..' . '/intervention/image/src/Intervention/Image/Imagick/Commands/BackupCommand.php', - 'Intervention\\Image\\Imagick\\Commands\\BlurCommand' => __DIR__ . '/..' . '/intervention/image/src/Intervention/Image/Imagick/Commands/BlurCommand.php', - 'Intervention\\Image\\Imagick\\Commands\\BrightnessCommand' => __DIR__ . '/..' . '/intervention/image/src/Intervention/Image/Imagick/Commands/BrightnessCommand.php', - 'Intervention\\Image\\Imagick\\Commands\\ColorizeCommand' => __DIR__ . '/..' . '/intervention/image/src/Intervention/Image/Imagick/Commands/ColorizeCommand.php', - 'Intervention\\Image\\Imagick\\Commands\\ContrastCommand' => __DIR__ . '/..' . '/intervention/image/src/Intervention/Image/Imagick/Commands/ContrastCommand.php', - 'Intervention\\Image\\Imagick\\Commands\\CropCommand' => __DIR__ . '/..' . '/intervention/image/src/Intervention/Image/Imagick/Commands/CropCommand.php', - 'Intervention\\Image\\Imagick\\Commands\\DestroyCommand' => __DIR__ . '/..' . '/intervention/image/src/Intervention/Image/Imagick/Commands/DestroyCommand.php', - 'Intervention\\Image\\Imagick\\Commands\\ExifCommand' => __DIR__ . '/..' . '/intervention/image/src/Intervention/Image/Imagick/Commands/ExifCommand.php', - 'Intervention\\Image\\Imagick\\Commands\\FillCommand' => __DIR__ . '/..' . '/intervention/image/src/Intervention/Image/Imagick/Commands/FillCommand.php', - 'Intervention\\Image\\Imagick\\Commands\\FitCommand' => __DIR__ . '/..' . '/intervention/image/src/Intervention/Image/Imagick/Commands/FitCommand.php', - 'Intervention\\Image\\Imagick\\Commands\\FlipCommand' => __DIR__ . '/..' . '/intervention/image/src/Intervention/Image/Imagick/Commands/FlipCommand.php', - 'Intervention\\Image\\Imagick\\Commands\\GammaCommand' => __DIR__ . '/..' . '/intervention/image/src/Intervention/Image/Imagick/Commands/GammaCommand.php', - 'Intervention\\Image\\Imagick\\Commands\\GetSizeCommand' => __DIR__ . '/..' . '/intervention/image/src/Intervention/Image/Imagick/Commands/GetSizeCommand.php', - 'Intervention\\Image\\Imagick\\Commands\\GreyscaleCommand' => __DIR__ . '/..' . '/intervention/image/src/Intervention/Image/Imagick/Commands/GreyscaleCommand.php', - 'Intervention\\Image\\Imagick\\Commands\\HeightenCommand' => __DIR__ . '/..' . '/intervention/image/src/Intervention/Image/Imagick/Commands/HeightenCommand.php', - 'Intervention\\Image\\Imagick\\Commands\\InsertCommand' => __DIR__ . '/..' . '/intervention/image/src/Intervention/Image/Imagick/Commands/InsertCommand.php', - 'Intervention\\Image\\Imagick\\Commands\\InterlaceCommand' => __DIR__ . '/..' . '/intervention/image/src/Intervention/Image/Imagick/Commands/InterlaceCommand.php', - 'Intervention\\Image\\Imagick\\Commands\\InvertCommand' => __DIR__ . '/..' . '/intervention/image/src/Intervention/Image/Imagick/Commands/InvertCommand.php', - 'Intervention\\Image\\Imagick\\Commands\\LimitColorsCommand' => __DIR__ . '/..' . '/intervention/image/src/Intervention/Image/Imagick/Commands/LimitColorsCommand.php', - 'Intervention\\Image\\Imagick\\Commands\\MaskCommand' => __DIR__ . '/..' . '/intervention/image/src/Intervention/Image/Imagick/Commands/MaskCommand.php', - 'Intervention\\Image\\Imagick\\Commands\\OpacityCommand' => __DIR__ . '/..' . '/intervention/image/src/Intervention/Image/Imagick/Commands/OpacityCommand.php', - 'Intervention\\Image\\Imagick\\Commands\\PickColorCommand' => __DIR__ . '/..' . '/intervention/image/src/Intervention/Image/Imagick/Commands/PickColorCommand.php', - 'Intervention\\Image\\Imagick\\Commands\\PixelCommand' => __DIR__ . '/..' . '/intervention/image/src/Intervention/Image/Imagick/Commands/PixelCommand.php', - 'Intervention\\Image\\Imagick\\Commands\\PixelateCommand' => __DIR__ . '/..' . '/intervention/image/src/Intervention/Image/Imagick/Commands/PixelateCommand.php', - 'Intervention\\Image\\Imagick\\Commands\\ResetCommand' => __DIR__ . '/..' . '/intervention/image/src/Intervention/Image/Imagick/Commands/ResetCommand.php', - 'Intervention\\Image\\Imagick\\Commands\\ResizeCanvasCommand' => __DIR__ . '/..' . '/intervention/image/src/Intervention/Image/Imagick/Commands/ResizeCanvasCommand.php', - 'Intervention\\Image\\Imagick\\Commands\\ResizeCommand' => __DIR__ . '/..' . '/intervention/image/src/Intervention/Image/Imagick/Commands/ResizeCommand.php', - 'Intervention\\Image\\Imagick\\Commands\\RotateCommand' => __DIR__ . '/..' . '/intervention/image/src/Intervention/Image/Imagick/Commands/RotateCommand.php', - 'Intervention\\Image\\Imagick\\Commands\\SharpenCommand' => __DIR__ . '/..' . '/intervention/image/src/Intervention/Image/Imagick/Commands/SharpenCommand.php', - 'Intervention\\Image\\Imagick\\Commands\\TrimCommand' => __DIR__ . '/..' . '/intervention/image/src/Intervention/Image/Imagick/Commands/TrimCommand.php', - 'Intervention\\Image\\Imagick\\Commands\\WidenCommand' => __DIR__ . '/..' . '/intervention/image/src/Intervention/Image/Imagick/Commands/WidenCommand.php', - 'Intervention\\Image\\Imagick\\Decoder' => __DIR__ . '/..' . '/intervention/image/src/Intervention/Image/Imagick/Decoder.php', - 'Intervention\\Image\\Imagick\\Driver' => __DIR__ . '/..' . '/intervention/image/src/Intervention/Image/Imagick/Driver.php', - 'Intervention\\Image\\Imagick\\Encoder' => __DIR__ . '/..' . '/intervention/image/src/Intervention/Image/Imagick/Encoder.php', - 'Intervention\\Image\\Imagick\\Font' => __DIR__ . '/..' . '/intervention/image/src/Intervention/Image/Imagick/Font.php', - 'Intervention\\Image\\Imagick\\Shapes\\CircleShape' => __DIR__ . '/..' . '/intervention/image/src/Intervention/Image/Imagick/Shapes/CircleShape.php', - 'Intervention\\Image\\Imagick\\Shapes\\EllipseShape' => __DIR__ . '/..' . '/intervention/image/src/Intervention/Image/Imagick/Shapes/EllipseShape.php', - 'Intervention\\Image\\Imagick\\Shapes\\LineShape' => __DIR__ . '/..' . '/intervention/image/src/Intervention/Image/Imagick/Shapes/LineShape.php', - 'Intervention\\Image\\Imagick\\Shapes\\PolygonShape' => __DIR__ . '/..' . '/intervention/image/src/Intervention/Image/Imagick/Shapes/PolygonShape.php', - 'Intervention\\Image\\Imagick\\Shapes\\RectangleShape' => __DIR__ . '/..' . '/intervention/image/src/Intervention/Image/Imagick/Shapes/RectangleShape.php', - 'Intervention\\Image\\Point' => __DIR__ . '/..' . '/intervention/image/src/Intervention/Image/Point.php', - 'Intervention\\Image\\Response' => __DIR__ . '/..' . '/intervention/image/src/Intervention/Image/Response.php', - 'Intervention\\Image\\Size' => __DIR__ . '/..' . '/intervention/image/src/Intervention/Image/Size.php', - 'JakubOnderka\\PhpConsoleColor\\ConsoleColor' => __DIR__ . '/..' . '/jakub-onderka/php-console-color/src/JakubOnderka/PhpConsoleColor/ConsoleColor.php', - 'JakubOnderka\\PhpConsoleColor\\InvalidStyleException' => __DIR__ . '/..' . '/jakub-onderka/php-console-color/src/JakubOnderka/PhpConsoleColor/InvalidStyleException.php', - 'JakubOnderka\\PhpConsoleHighlighter\\Highlighter' => __DIR__ . '/..' . '/jakub-onderka/php-console-highlighter/src/JakubOnderka/PhpConsoleHighlighter/Highlighter.php', - 'Laravel\\Tinker\\ClassAliasAutoloader' => __DIR__ . '/..' . '/laravel/tinker/src/ClassAliasAutoloader.php', - 'Laravel\\Tinker\\Console\\TinkerCommand' => __DIR__ . '/..' . '/laravel/tinker/src/Console/TinkerCommand.php', - 'Laravel\\Tinker\\TinkerCaster' => __DIR__ . '/..' . '/laravel/tinker/src/TinkerCaster.php', - 'Laravel\\Tinker\\TinkerServiceProvider' => __DIR__ . '/..' . '/laravel/tinker/src/TinkerServiceProvider.php', - 'Laravelista\\LumenVendorPublish\\VendorPublishCommand' => __DIR__ . '/..' . '/laravelista/lumen-vendor-publish/src/VendorPublishCommand.php', - 'League\\Flysystem\\AdapterInterface' => __DIR__ . '/..' . '/league/flysystem/src/AdapterInterface.php', - 'League\\Flysystem\\Adapter\\AbstractAdapter' => __DIR__ . '/..' . '/league/flysystem/src/Adapter/AbstractAdapter.php', - 'League\\Flysystem\\Adapter\\AbstractFtpAdapter' => __DIR__ . '/..' . '/league/flysystem/src/Adapter/AbstractFtpAdapter.php', - 'League\\Flysystem\\Adapter\\CanOverwriteFiles' => __DIR__ . '/..' . '/league/flysystem/src/Adapter/CanOverwriteFiles.php', - 'League\\Flysystem\\Adapter\\Ftp' => __DIR__ . '/..' . '/league/flysystem/src/Adapter/Ftp.php', - 'League\\Flysystem\\Adapter\\Ftpd' => __DIR__ . '/..' . '/league/flysystem/src/Adapter/Ftpd.php', - 'League\\Flysystem\\Adapter\\Local' => __DIR__ . '/..' . '/league/flysystem/src/Adapter/Local.php', - 'League\\Flysystem\\Adapter\\NullAdapter' => __DIR__ . '/..' . '/league/flysystem/src/Adapter/NullAdapter.php', - 'League\\Flysystem\\Adapter\\Polyfill\\NotSupportingVisibilityTrait' => __DIR__ . '/..' . '/league/flysystem/src/Adapter/Polyfill/NotSupportingVisibilityTrait.php', - 'League\\Flysystem\\Adapter\\Polyfill\\StreamedCopyTrait' => __DIR__ . '/..' . '/league/flysystem/src/Adapter/Polyfill/StreamedCopyTrait.php', - 'League\\Flysystem\\Adapter\\Polyfill\\StreamedReadingTrait' => __DIR__ . '/..' . '/league/flysystem/src/Adapter/Polyfill/StreamedReadingTrait.php', - 'League\\Flysystem\\Adapter\\Polyfill\\StreamedTrait' => __DIR__ . '/..' . '/league/flysystem/src/Adapter/Polyfill/StreamedTrait.php', - 'League\\Flysystem\\Adapter\\Polyfill\\StreamedWritingTrait' => __DIR__ . '/..' . '/league/flysystem/src/Adapter/Polyfill/StreamedWritingTrait.php', - 'League\\Flysystem\\Adapter\\SynologyFtp' => __DIR__ . '/..' . '/league/flysystem/src/Adapter/SynologyFtp.php', - 'League\\Flysystem\\Config' => __DIR__ . '/..' . '/league/flysystem/src/Config.php', - 'League\\Flysystem\\ConfigAwareTrait' => __DIR__ . '/..' . '/league/flysystem/src/ConfigAwareTrait.php', - 'League\\Flysystem\\Directory' => __DIR__ . '/..' . '/league/flysystem/src/Directory.php', - 'League\\Flysystem\\Exception' => __DIR__ . '/..' . '/league/flysystem/src/Exception.php', - 'League\\Flysystem\\File' => __DIR__ . '/..' . '/league/flysystem/src/File.php', - 'League\\Flysystem\\FileExistsException' => __DIR__ . '/..' . '/league/flysystem/src/FileExistsException.php', - 'League\\Flysystem\\FileNotFoundException' => __DIR__ . '/..' . '/league/flysystem/src/FileNotFoundException.php', - 'League\\Flysystem\\Filesystem' => __DIR__ . '/..' . '/league/flysystem/src/Filesystem.php', - 'League\\Flysystem\\FilesystemInterface' => __DIR__ . '/..' . '/league/flysystem/src/FilesystemInterface.php', - 'League\\Flysystem\\FilesystemNotFoundException' => __DIR__ . '/..' . '/league/flysystem/src/FilesystemNotFoundException.php', - 'League\\Flysystem\\Handler' => __DIR__ . '/..' . '/league/flysystem/src/Handler.php', - 'League\\Flysystem\\MountManager' => __DIR__ . '/..' . '/league/flysystem/src/MountManager.php', - 'League\\Flysystem\\NotSupportedException' => __DIR__ . '/..' . '/league/flysystem/src/NotSupportedException.php', - 'League\\Flysystem\\PluginInterface' => __DIR__ . '/..' . '/league/flysystem/src/PluginInterface.php', - 'League\\Flysystem\\Plugin\\AbstractPlugin' => __DIR__ . '/..' . '/league/flysystem/src/Plugin/AbstractPlugin.php', - 'League\\Flysystem\\Plugin\\EmptyDir' => __DIR__ . '/..' . '/league/flysystem/src/Plugin/EmptyDir.php', - 'League\\Flysystem\\Plugin\\ForcedCopy' => __DIR__ . '/..' . '/league/flysystem/src/Plugin/ForcedCopy.php', - 'League\\Flysystem\\Plugin\\ForcedRename' => __DIR__ . '/..' . '/league/flysystem/src/Plugin/ForcedRename.php', - 'League\\Flysystem\\Plugin\\GetWithMetadata' => __DIR__ . '/..' . '/league/flysystem/src/Plugin/GetWithMetadata.php', - 'League\\Flysystem\\Plugin\\ListFiles' => __DIR__ . '/..' . '/league/flysystem/src/Plugin/ListFiles.php', - 'League\\Flysystem\\Plugin\\ListPaths' => __DIR__ . '/..' . '/league/flysystem/src/Plugin/ListPaths.php', - 'League\\Flysystem\\Plugin\\ListWith' => __DIR__ . '/..' . '/league/flysystem/src/Plugin/ListWith.php', - 'League\\Flysystem\\Plugin\\PluggableTrait' => __DIR__ . '/..' . '/league/flysystem/src/Plugin/PluggableTrait.php', - 'League\\Flysystem\\Plugin\\PluginNotFoundException' => __DIR__ . '/..' . '/league/flysystem/src/Plugin/PluginNotFoundException.php', - 'League\\Flysystem\\ReadInterface' => __DIR__ . '/..' . '/league/flysystem/src/ReadInterface.php', - 'League\\Flysystem\\RootViolationException' => __DIR__ . '/..' . '/league/flysystem/src/RootViolationException.php', - 'League\\Flysystem\\SafeStorage' => __DIR__ . '/..' . '/league/flysystem/src/SafeStorage.php', - 'League\\Flysystem\\UnreadableFileException' => __DIR__ . '/..' . '/league/flysystem/src/UnreadableFileException.php', - 'League\\Flysystem\\Util' => __DIR__ . '/..' . '/league/flysystem/src/Util.php', - 'League\\Flysystem\\Util\\ContentListingFormatter' => __DIR__ . '/..' . '/league/flysystem/src/Util/ContentListingFormatter.php', - 'League\\Flysystem\\Util\\MimeType' => __DIR__ . '/..' . '/league/flysystem/src/Util/MimeType.php', - 'League\\Flysystem\\Util\\StreamHasher' => __DIR__ . '/..' . '/league/flysystem/src/Util/StreamHasher.php', - 'Mockery' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery.php', - 'Mockery\\Adapter\\Phpunit\\MockeryPHPUnitIntegration' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Adapter/Phpunit/MockeryPHPUnitIntegration.php', - 'Mockery\\Adapter\\Phpunit\\MockeryTestCase' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Adapter/Phpunit/MockeryTestCase.php', - 'Mockery\\Adapter\\Phpunit\\TestListener' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Adapter/Phpunit/TestListener.php', - 'Mockery\\CompositeExpectation' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/CompositeExpectation.php', - 'Mockery\\Configuration' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Configuration.php', - 'Mockery\\Container' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Container.php', - 'Mockery\\CountValidator\\AtLeast' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/CountValidator/AtLeast.php', - 'Mockery\\CountValidator\\AtMost' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/CountValidator/AtMost.php', - 'Mockery\\CountValidator\\CountValidatorAbstract' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/CountValidator/CountValidatorAbstract.php', - 'Mockery\\CountValidator\\Exact' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/CountValidator/Exact.php', - 'Mockery\\CountValidator\\Exception' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/CountValidator/Exception.php', - 'Mockery\\Exception' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Exception.php', - 'Mockery\\Exception\\InvalidCountException' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Exception/InvalidCountException.php', - 'Mockery\\Exception\\InvalidOrderException' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Exception/InvalidOrderException.php', - 'Mockery\\Exception\\NoMatchingExpectationException' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Exception/NoMatchingExpectationException.php', - 'Mockery\\Exception\\RuntimeException' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Exception/RuntimeException.php', - 'Mockery\\Expectation' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Expectation.php', - 'Mockery\\ExpectationDirector' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/ExpectationDirector.php', - 'Mockery\\ExpectationInterface' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/ExpectationInterface.php', - 'Mockery\\Generator\\CachingGenerator' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Generator/CachingGenerator.php', - 'Mockery\\Generator\\DefinedTargetClass' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Generator/DefinedTargetClass.php', - 'Mockery\\Generator\\Generator' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Generator/Generator.php', - 'Mockery\\Generator\\Method' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Generator/Method.php', - 'Mockery\\Generator\\MockConfiguration' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Generator/MockConfiguration.php', - 'Mockery\\Generator\\MockConfigurationBuilder' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Generator/MockConfigurationBuilder.php', - 'Mockery\\Generator\\MockDefinition' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Generator/MockDefinition.php', - 'Mockery\\Generator\\Parameter' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Generator/Parameter.php', - 'Mockery\\Generator\\StringManipulationGenerator' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Generator/StringManipulationGenerator.php', - 'Mockery\\Generator\\StringManipulation\\Pass\\CallTypeHintPass' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Generator/StringManipulation/Pass/CallTypeHintPass.php', - 'Mockery\\Generator\\StringManipulation\\Pass\\ClassNamePass' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Generator/StringManipulation/Pass/ClassNamePass.php', - 'Mockery\\Generator\\StringManipulation\\Pass\\ClassPass' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Generator/StringManipulation/Pass/ClassPass.php', - 'Mockery\\Generator\\StringManipulation\\Pass\\InstanceMockPass' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Generator/StringManipulation/Pass/InstanceMockPass.php', - 'Mockery\\Generator\\StringManipulation\\Pass\\InterfacePass' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Generator/StringManipulation/Pass/InterfacePass.php', - 'Mockery\\Generator\\StringManipulation\\Pass\\MethodDefinitionPass' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Generator/StringManipulation/Pass/MethodDefinitionPass.php', - 'Mockery\\Generator\\StringManipulation\\Pass\\Pass' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Generator/StringManipulation/Pass/Pass.php', - 'Mockery\\Generator\\StringManipulation\\Pass\\RemoveBuiltinMethodsThatAreFinalPass' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Generator/StringManipulation/Pass/RemoveBuiltinMethodsThatAreFinalPass.php', - 'Mockery\\Generator\\StringManipulation\\Pass\\RemoveUnserializeForInternalSerializableClassesPass' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Generator/StringManipulation/Pass/RemoveUnserializeForInternalSerializableClassesPass.php', - 'Mockery\\Generator\\TargetClass' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Generator/TargetClass.php', - 'Mockery\\Generator\\UndefinedTargetClass' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Generator/UndefinedTargetClass.php', - 'Mockery\\Instantiator' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Instantiator.php', - 'Mockery\\Loader' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Loader.php', - 'Mockery\\Loader\\EvalLoader' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Loader/EvalLoader.php', - 'Mockery\\Loader\\Loader' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Loader/Loader.php', - 'Mockery\\Loader\\RequireLoader' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Loader/RequireLoader.php', - 'Mockery\\Matcher\\Any' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Matcher/Any.php', - 'Mockery\\Matcher\\AnyOf' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Matcher/AnyOf.php', - 'Mockery\\Matcher\\Closure' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Matcher/Closure.php', - 'Mockery\\Matcher\\Contains' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Matcher/Contains.php', - 'Mockery\\Matcher\\Ducktype' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Matcher/Ducktype.php', - 'Mockery\\Matcher\\HasKey' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Matcher/HasKey.php', - 'Mockery\\Matcher\\HasValue' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Matcher/HasValue.php', - 'Mockery\\Matcher\\MatcherAbstract' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Matcher/MatcherAbstract.php', - 'Mockery\\Matcher\\MustBe' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Matcher/MustBe.php', - 'Mockery\\Matcher\\Not' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Matcher/Not.php', - 'Mockery\\Matcher\\NotAnyOf' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Matcher/NotAnyOf.php', - 'Mockery\\Matcher\\Subset' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Matcher/Subset.php', - 'Mockery\\Matcher\\Type' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Matcher/Type.php', - 'Mockery\\MethodCall' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/MethodCall.php', - 'Mockery\\Mock' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Mock.php', - 'Mockery\\MockInterface' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/MockInterface.php', - 'Mockery\\ReceivedMethodCalls' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/ReceivedMethodCalls.php', - 'Mockery\\Recorder' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Recorder.php', - 'Mockery\\Undefined' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Undefined.php', - 'Mockery\\VerificationDirector' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/VerificationDirector.php', - 'Mockery\\VerificationExpectation' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/VerificationExpectation.php', - 'Monolog\\ErrorHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/ErrorHandler.php', - 'Monolog\\Formatter\\ChromePHPFormatter' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Formatter/ChromePHPFormatter.php', - 'Monolog\\Formatter\\ElasticaFormatter' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Formatter/ElasticaFormatter.php', - 'Monolog\\Formatter\\FlowdockFormatter' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Formatter/FlowdockFormatter.php', - 'Monolog\\Formatter\\FluentdFormatter' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Formatter/FluentdFormatter.php', - 'Monolog\\Formatter\\FormatterInterface' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Formatter/FormatterInterface.php', - 'Monolog\\Formatter\\GelfMessageFormatter' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Formatter/GelfMessageFormatter.php', - 'Monolog\\Formatter\\HtmlFormatter' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Formatter/HtmlFormatter.php', - 'Monolog\\Formatter\\JsonFormatter' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Formatter/JsonFormatter.php', - 'Monolog\\Formatter\\LineFormatter' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Formatter/LineFormatter.php', - 'Monolog\\Formatter\\LogglyFormatter' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Formatter/LogglyFormatter.php', - 'Monolog\\Formatter\\LogstashFormatter' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Formatter/LogstashFormatter.php', - 'Monolog\\Formatter\\MongoDBFormatter' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Formatter/MongoDBFormatter.php', - 'Monolog\\Formatter\\NormalizerFormatter' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Formatter/NormalizerFormatter.php', - 'Monolog\\Formatter\\ScalarFormatter' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Formatter/ScalarFormatter.php', - 'Monolog\\Formatter\\WildfireFormatter' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Formatter/WildfireFormatter.php', - 'Monolog\\Handler\\AbstractHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/AbstractHandler.php', - 'Monolog\\Handler\\AbstractProcessingHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/AbstractProcessingHandler.php', - 'Monolog\\Handler\\AbstractSyslogHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/AbstractSyslogHandler.php', - 'Monolog\\Handler\\AmqpHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/AmqpHandler.php', - 'Monolog\\Handler\\BrowserConsoleHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/BrowserConsoleHandler.php', - 'Monolog\\Handler\\BufferHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/BufferHandler.php', - 'Monolog\\Handler\\ChromePHPHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/ChromePHPHandler.php', - 'Monolog\\Handler\\CouchDBHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/CouchDBHandler.php', - 'Monolog\\Handler\\CubeHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/CubeHandler.php', - 'Monolog\\Handler\\Curl\\Util' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/Curl/Util.php', - 'Monolog\\Handler\\DeduplicationHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/DeduplicationHandler.php', - 'Monolog\\Handler\\DoctrineCouchDBHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/DoctrineCouchDBHandler.php', - 'Monolog\\Handler\\DynamoDbHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/DynamoDbHandler.php', - 'Monolog\\Handler\\ElasticSearchHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/ElasticSearchHandler.php', - 'Monolog\\Handler\\ErrorLogHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/ErrorLogHandler.php', - 'Monolog\\Handler\\FilterHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/FilterHandler.php', - 'Monolog\\Handler\\FingersCrossedHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/FingersCrossedHandler.php', - 'Monolog\\Handler\\FingersCrossed\\ActivationStrategyInterface' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/FingersCrossed/ActivationStrategyInterface.php', - 'Monolog\\Handler\\FingersCrossed\\ChannelLevelActivationStrategy' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/FingersCrossed/ChannelLevelActivationStrategy.php', - 'Monolog\\Handler\\FingersCrossed\\ErrorLevelActivationStrategy' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/FingersCrossed/ErrorLevelActivationStrategy.php', - 'Monolog\\Handler\\FirePHPHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/FirePHPHandler.php', - 'Monolog\\Handler\\FleepHookHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/FleepHookHandler.php', - 'Monolog\\Handler\\FlowdockHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/FlowdockHandler.php', - 'Monolog\\Handler\\GelfHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/GelfHandler.php', - 'Monolog\\Handler\\GroupHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/GroupHandler.php', - 'Monolog\\Handler\\HandlerInterface' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/HandlerInterface.php', - 'Monolog\\Handler\\HandlerWrapper' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/HandlerWrapper.php', - 'Monolog\\Handler\\HipChatHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/HipChatHandler.php', - 'Monolog\\Handler\\IFTTTHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/IFTTTHandler.php', - 'Monolog\\Handler\\LogEntriesHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/LogEntriesHandler.php', - 'Monolog\\Handler\\LogglyHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/LogglyHandler.php', - 'Monolog\\Handler\\MailHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/MailHandler.php', - 'Monolog\\Handler\\MandrillHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/MandrillHandler.php', - 'Monolog\\Handler\\MissingExtensionException' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/MissingExtensionException.php', - 'Monolog\\Handler\\MongoDBHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/MongoDBHandler.php', - 'Monolog\\Handler\\NativeMailerHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/NativeMailerHandler.php', - 'Monolog\\Handler\\NewRelicHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/NewRelicHandler.php', - 'Monolog\\Handler\\NullHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/NullHandler.php', - 'Monolog\\Handler\\PHPConsoleHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/PHPConsoleHandler.php', - 'Monolog\\Handler\\PsrHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/PsrHandler.php', - 'Monolog\\Handler\\PushoverHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/PushoverHandler.php', - 'Monolog\\Handler\\RavenHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/RavenHandler.php', - 'Monolog\\Handler\\RedisHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/RedisHandler.php', - 'Monolog\\Handler\\RollbarHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/RollbarHandler.php', - 'Monolog\\Handler\\RotatingFileHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/RotatingFileHandler.php', - 'Monolog\\Handler\\SamplingHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/SamplingHandler.php', - 'Monolog\\Handler\\SlackHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/SlackHandler.php', - 'Monolog\\Handler\\SlackWebhookHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/SlackWebhookHandler.php', - 'Monolog\\Handler\\Slack\\SlackRecord' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/Slack/SlackRecord.php', - 'Monolog\\Handler\\SlackbotHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/SlackbotHandler.php', - 'Monolog\\Handler\\SocketHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/SocketHandler.php', - 'Monolog\\Handler\\StreamHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/StreamHandler.php', - 'Monolog\\Handler\\SwiftMailerHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/SwiftMailerHandler.php', - 'Monolog\\Handler\\SyslogHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/SyslogHandler.php', - 'Monolog\\Handler\\SyslogUdpHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/SyslogUdpHandler.php', - 'Monolog\\Handler\\SyslogUdp\\UdpSocket' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/SyslogUdp/UdpSocket.php', - 'Monolog\\Handler\\TestHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/TestHandler.php', - 'Monolog\\Handler\\WhatFailureGroupHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/WhatFailureGroupHandler.php', - 'Monolog\\Handler\\ZendMonitorHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/ZendMonitorHandler.php', - 'Monolog\\Logger' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Logger.php', - 'Monolog\\Processor\\GitProcessor' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Processor/GitProcessor.php', - 'Monolog\\Processor\\IntrospectionProcessor' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Processor/IntrospectionProcessor.php', - 'Monolog\\Processor\\MemoryPeakUsageProcessor' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Processor/MemoryPeakUsageProcessor.php', - 'Monolog\\Processor\\MemoryProcessor' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Processor/MemoryProcessor.php', - 'Monolog\\Processor\\MemoryUsageProcessor' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Processor/MemoryUsageProcessor.php', - 'Monolog\\Processor\\MercurialProcessor' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Processor/MercurialProcessor.php', - 'Monolog\\Processor\\ProcessIdProcessor' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Processor/ProcessIdProcessor.php', - 'Monolog\\Processor\\PsrLogMessageProcessor' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Processor/PsrLogMessageProcessor.php', - 'Monolog\\Processor\\TagProcessor' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Processor/TagProcessor.php', - 'Monolog\\Processor\\UidProcessor' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Processor/UidProcessor.php', - 'Monolog\\Processor\\WebProcessor' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Processor/WebProcessor.php', - 'Monolog\\Registry' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Registry.php', - 'OperationSeeder' => __DIR__ . '/../..' . '/database/seeds/OperationSeeder.php', - 'OwenIt\\Auditing\\Audit' => __DIR__ . '/..' . '/owen-it/laravel-auditing/src/Audit.php', - 'OwenIt\\Auditing\\Auditable' => __DIR__ . '/..' . '/owen-it/laravel-auditing/src/Auditable.php', - 'OwenIt\\Auditing\\AuditableObserver' => __DIR__ . '/..' . '/owen-it/laravel-auditing/src/AuditableObserver.php', - 'OwenIt\\Auditing\\AuditingServiceProvider' => __DIR__ . '/..' . '/owen-it/laravel-auditing/src/AuditingServiceProvider.php', - 'OwenIt\\Auditing\\Auditor' => __DIR__ . '/..' . '/owen-it/laravel-auditing/src/Auditor.php', - 'OwenIt\\Auditing\\Console\\AuditDriverMakeCommand' => __DIR__ . '/..' . '/owen-it/laravel-auditing/src/Console/AuditDriverMakeCommand.php', - 'OwenIt\\Auditing\\Console\\AuditTableCommand' => __DIR__ . '/..' . '/owen-it/laravel-auditing/src/Console/AuditTableCommand.php', - 'OwenIt\\Auditing\\Console\\InstallCommand' => __DIR__ . '/..' . '/owen-it/laravel-auditing/src/Console/InstallCommand.php', - 'OwenIt\\Auditing\\Contracts\\Audit' => __DIR__ . '/..' . '/owen-it/laravel-auditing/src/Contracts/Audit.php', - 'OwenIt\\Auditing\\Contracts\\AuditDriver' => __DIR__ . '/..' . '/owen-it/laravel-auditing/src/Contracts/AuditDriver.php', - 'OwenIt\\Auditing\\Contracts\\AuditRedactor' => __DIR__ . '/..' . '/owen-it/laravel-auditing/src/Contracts/AuditRedactor.php', - 'OwenIt\\Auditing\\Contracts\\Auditable' => __DIR__ . '/..' . '/owen-it/laravel-auditing/src/Contracts/Auditable.php', - 'OwenIt\\Auditing\\Contracts\\Auditor' => __DIR__ . '/..' . '/owen-it/laravel-auditing/src/Contracts/Auditor.php', - 'OwenIt\\Auditing\\Contracts\\IpAddressResolver' => __DIR__ . '/..' . '/owen-it/laravel-auditing/src/Contracts/IpAddressResolver.php', - 'OwenIt\\Auditing\\Contracts\\UrlResolver' => __DIR__ . '/..' . '/owen-it/laravel-auditing/src/Contracts/UrlResolver.php', - 'OwenIt\\Auditing\\Contracts\\UserAgentResolver' => __DIR__ . '/..' . '/owen-it/laravel-auditing/src/Contracts/UserAgentResolver.php', - 'OwenIt\\Auditing\\Contracts\\UserResolver' => __DIR__ . '/..' . '/owen-it/laravel-auditing/src/Contracts/UserResolver.php', - 'OwenIt\\Auditing\\Drivers\\Database' => __DIR__ . '/..' . '/owen-it/laravel-auditing/src/Drivers/Database.php', - 'OwenIt\\Auditing\\Events\\Audited' => __DIR__ . '/..' . '/owen-it/laravel-auditing/src/Events/Audited.php', - 'OwenIt\\Auditing\\Events\\Auditing' => __DIR__ . '/..' . '/owen-it/laravel-auditing/src/Events/Auditing.php', - 'OwenIt\\Auditing\\Exceptions\\AuditableTransitionException' => __DIR__ . '/..' . '/owen-it/laravel-auditing/src/Exceptions/AuditableTransitionException.php', - 'OwenIt\\Auditing\\Exceptions\\AuditingException' => __DIR__ . '/..' . '/owen-it/laravel-auditing/src/Exceptions/AuditingException.php', - 'OwenIt\\Auditing\\Facades\\Auditor' => __DIR__ . '/..' . '/owen-it/laravel-auditing/src/Facades/Auditor.php', - 'OwenIt\\Auditing\\Models\\Audit' => __DIR__ . '/..' . '/owen-it/laravel-auditing/src/Models/Audit.php', - 'OwenIt\\Auditing\\Redactors\\LeftRedactor' => __DIR__ . '/..' . '/owen-it/laravel-auditing/src/Redactors/LeftRedactor.php', - 'OwenIt\\Auditing\\Redactors\\RightRedactor' => __DIR__ . '/..' . '/owen-it/laravel-auditing/src/Redactors/RightRedactor.php', - 'OwenIt\\Auditing\\Resolvers\\IpAddressResolver' => __DIR__ . '/..' . '/owen-it/laravel-auditing/src/Resolvers/IpAddressResolver.php', - 'OwenIt\\Auditing\\Resolvers\\UrlResolver' => __DIR__ . '/..' . '/owen-it/laravel-auditing/src/Resolvers/UrlResolver.php', - 'OwenIt\\Auditing\\Resolvers\\UserAgentResolver' => __DIR__ . '/..' . '/owen-it/laravel-auditing/src/Resolvers/UserAgentResolver.php', - 'OwenIt\\Auditing\\Resolvers\\UserResolver' => __DIR__ . '/..' . '/owen-it/laravel-auditing/src/Resolvers/UserResolver.php', - 'PHPUnit\\Exception' => __DIR__ . '/..' . '/phpunit/phpunit/src/Exception.php', - 'PHPUnit\\Framework\\Assert' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Assert.php', - 'PHPUnit\\Framework\\AssertionFailedError' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/AssertionFailedError.php', - 'PHPUnit\\Framework\\CodeCoverageException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/CodeCoverageException.php', - 'PHPUnit\\Framework\\Constraint\\ArrayHasKey' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/ArrayHasKey.php', - 'PHPUnit\\Framework\\Constraint\\ArraySubset' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/ArraySubset.php', - 'PHPUnit\\Framework\\Constraint\\Attribute' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/Attribute.php', - 'PHPUnit\\Framework\\Constraint\\Callback' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/Callback.php', - 'PHPUnit\\Framework\\Constraint\\ClassHasAttribute' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/ClassHasAttribute.php', - 'PHPUnit\\Framework\\Constraint\\ClassHasStaticAttribute' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/ClassHasStaticAttribute.php', - 'PHPUnit\\Framework\\Constraint\\Composite' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/Composite.php', - 'PHPUnit\\Framework\\Constraint\\Constraint' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/Constraint.php', - 'PHPUnit\\Framework\\Constraint\\Count' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/Count.php', - 'PHPUnit\\Framework\\Constraint\\DirectoryExists' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/DirectoryExists.php', - 'PHPUnit\\Framework\\Constraint\\Exception' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/Exception.php', - 'PHPUnit\\Framework\\Constraint\\ExceptionCode' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/ExceptionCode.php', - 'PHPUnit\\Framework\\Constraint\\ExceptionMessage' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/ExceptionMessage.php', - 'PHPUnit\\Framework\\Constraint\\ExceptionMessageRegularExpression' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/ExceptionMessageRegularExpression.php', - 'PHPUnit\\Framework\\Constraint\\FileExists' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/FileExists.php', - 'PHPUnit\\Framework\\Constraint\\GreaterThan' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/GreaterThan.php', - 'PHPUnit\\Framework\\Constraint\\IsAnything' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/IsAnything.php', - 'PHPUnit\\Framework\\Constraint\\IsEmpty' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/IsEmpty.php', - 'PHPUnit\\Framework\\Constraint\\IsEqual' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/IsEqual.php', - 'PHPUnit\\Framework\\Constraint\\IsFalse' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/IsFalse.php', - 'PHPUnit\\Framework\\Constraint\\IsFinite' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/IsFinite.php', - 'PHPUnit\\Framework\\Constraint\\IsIdentical' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/IsIdentical.php', - 'PHPUnit\\Framework\\Constraint\\IsInfinite' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/IsInfinite.php', - 'PHPUnit\\Framework\\Constraint\\IsInstanceOf' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/IsInstanceOf.php', - 'PHPUnit\\Framework\\Constraint\\IsJson' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/IsJson.php', - 'PHPUnit\\Framework\\Constraint\\IsNan' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/IsNan.php', - 'PHPUnit\\Framework\\Constraint\\IsNull' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/IsNull.php', - 'PHPUnit\\Framework\\Constraint\\IsReadable' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/IsReadable.php', - 'PHPUnit\\Framework\\Constraint\\IsTrue' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/IsTrue.php', - 'PHPUnit\\Framework\\Constraint\\IsType' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/IsType.php', - 'PHPUnit\\Framework\\Constraint\\IsWritable' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/IsWritable.php', - 'PHPUnit\\Framework\\Constraint\\JsonMatches' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/JsonMatches.php', - 'PHPUnit\\Framework\\Constraint\\JsonMatchesErrorMessageProvider' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/JsonMatchesErrorMessageProvider.php', - 'PHPUnit\\Framework\\Constraint\\LessThan' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/LessThan.php', - 'PHPUnit\\Framework\\Constraint\\LogicalAnd' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/LogicalAnd.php', - 'PHPUnit\\Framework\\Constraint\\LogicalNot' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/LogicalNot.php', - 'PHPUnit\\Framework\\Constraint\\LogicalOr' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/LogicalOr.php', - 'PHPUnit\\Framework\\Constraint\\LogicalXor' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/LogicalXor.php', - 'PHPUnit\\Framework\\Constraint\\ObjectHasAttribute' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/ObjectHasAttribute.php', - 'PHPUnit\\Framework\\Constraint\\RegularExpression' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/RegularExpression.php', - 'PHPUnit\\Framework\\Constraint\\SameSize' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/SameSize.php', - 'PHPUnit\\Framework\\Constraint\\StringContains' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/StringContains.php', - 'PHPUnit\\Framework\\Constraint\\StringEndsWith' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/StringEndsWith.php', - 'PHPUnit\\Framework\\Constraint\\StringMatchesFormatDescription' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/StringMatchesFormatDescription.php', - 'PHPUnit\\Framework\\Constraint\\StringStartsWith' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/StringStartsWith.php', - 'PHPUnit\\Framework\\Constraint\\TraversableContains' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/TraversableContains.php', - 'PHPUnit\\Framework\\Constraint\\TraversableContainsOnly' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/TraversableContainsOnly.php', - 'PHPUnit\\Framework\\CoveredCodeNotExecutedException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/CoveredCodeNotExecutedException.php', - 'PHPUnit\\Framework\\DataProviderTestSuite' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/DataProviderTestSuite.php', - 'PHPUnit\\Framework\\Error\\Deprecated' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Error/Deprecated.php', - 'PHPUnit\\Framework\\Error\\Error' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Error/Error.php', - 'PHPUnit\\Framework\\Error\\Notice' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Error/Notice.php', - 'PHPUnit\\Framework\\Error\\Warning' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Error/Warning.php', - 'PHPUnit\\Framework\\Exception' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Exception.php', - 'PHPUnit\\Framework\\ExceptionWrapper' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/ExceptionWrapper.php', - 'PHPUnit\\Framework\\ExpectationFailedException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/ExpectationFailedException.php', - 'PHPUnit\\Framework\\IncompleteTest' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/IncompleteTest.php', - 'PHPUnit\\Framework\\IncompleteTestCase' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/IncompleteTestCase.php', - 'PHPUnit\\Framework\\IncompleteTestError' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/IncompleteTestError.php', - 'PHPUnit\\Framework\\InvalidCoversTargetException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/InvalidCoversTargetException.php', - 'PHPUnit\\Framework\\MissingCoversAnnotationException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MissingCoversAnnotationException.php', - 'PHPUnit\\Framework\\MockObject\\BadMethodCallException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Exception/BadMethodCallException.php', - 'PHPUnit\\Framework\\MockObject\\Builder\\Identity' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Builder/Identity.php', - 'PHPUnit\\Framework\\MockObject\\Builder\\InvocationMocker' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Builder/InvocationMocker.php', - 'PHPUnit\\Framework\\MockObject\\Builder\\Match' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Builder/Match.php', - 'PHPUnit\\Framework\\MockObject\\Builder\\MethodNameMatch' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Builder/MethodNameMatch.php', - 'PHPUnit\\Framework\\MockObject\\Builder\\NamespaceMatch' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Builder/NamespaceMatch.php', - 'PHPUnit\\Framework\\MockObject\\Builder\\ParametersMatch' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Builder/ParametersMatch.php', - 'PHPUnit\\Framework\\MockObject\\Builder\\Stub' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Builder/Stub.php', - 'PHPUnit\\Framework\\MockObject\\Exception' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Exception/Exception.php', - 'PHPUnit\\Framework\\MockObject\\Generator' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Generator.php', - 'PHPUnit\\Framework\\MockObject\\Invocation' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Invocation/Invocation.php', - 'PHPUnit\\Framework\\MockObject\\InvocationMocker' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/InvocationMocker.php', - 'PHPUnit\\Framework\\MockObject\\Invocation\\ObjectInvocation' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Invocation/ObjectInvocation.php', - 'PHPUnit\\Framework\\MockObject\\Invocation\\StaticInvocation' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Invocation/StaticInvocation.php', - 'PHPUnit\\Framework\\MockObject\\Invokable' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Invokable.php', - 'PHPUnit\\Framework\\MockObject\\Matcher' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Matcher.php', - 'PHPUnit\\Framework\\MockObject\\Matcher\\AnyInvokedCount' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Matcher/AnyInvokedCount.php', - 'PHPUnit\\Framework\\MockObject\\Matcher\\AnyParameters' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Matcher/AnyParameters.php', - 'PHPUnit\\Framework\\MockObject\\Matcher\\ConsecutiveParameters' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Matcher/ConsecutiveParameters.php', - 'PHPUnit\\Framework\\MockObject\\Matcher\\DeferredError' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Matcher/DeferredError.php', - 'PHPUnit\\Framework\\MockObject\\Matcher\\Invocation' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Matcher/Invocation.php', - 'PHPUnit\\Framework\\MockObject\\Matcher\\InvokedAtIndex' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Matcher/InvokedAtIndex.php', - 'PHPUnit\\Framework\\MockObject\\Matcher\\InvokedAtLeastCount' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Matcher/InvokedAtLeastCount.php', - 'PHPUnit\\Framework\\MockObject\\Matcher\\InvokedAtLeastOnce' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Matcher/InvokedAtLeastOnce.php', - 'PHPUnit\\Framework\\MockObject\\Matcher\\InvokedAtMostCount' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Matcher/InvokedAtMostCount.php', - 'PHPUnit\\Framework\\MockObject\\Matcher\\InvokedCount' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Matcher/InvokedCount.php', - 'PHPUnit\\Framework\\MockObject\\Matcher\\InvokedRecorder' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Matcher/InvokedRecorder.php', - 'PHPUnit\\Framework\\MockObject\\Matcher\\MethodName' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Matcher/MethodName.php', - 'PHPUnit\\Framework\\MockObject\\Matcher\\Parameters' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Matcher/Parameters.php', - 'PHPUnit\\Framework\\MockObject\\Matcher\\StatelessInvocation' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Matcher/StatelessInvocation.php', - 'PHPUnit\\Framework\\MockObject\\MockBuilder' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/MockBuilder.php', - 'PHPUnit\\Framework\\MockObject\\MockObject' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/ForwardCompatibility/MockObject.php', - 'PHPUnit\\Framework\\MockObject\\RuntimeException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Exception/RuntimeException.php', - 'PHPUnit\\Framework\\MockObject\\Stub' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Stub.php', - 'PHPUnit\\Framework\\MockObject\\Stub\\ConsecutiveCalls' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Stub/ConsecutiveCalls.php', - 'PHPUnit\\Framework\\MockObject\\Stub\\Exception' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Stub/Exception.php', - 'PHPUnit\\Framework\\MockObject\\Stub\\MatcherCollection' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Stub/MatcherCollection.php', - 'PHPUnit\\Framework\\MockObject\\Stub\\ReturnArgument' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Stub/ReturnArgument.php', - 'PHPUnit\\Framework\\MockObject\\Stub\\ReturnCallback' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Stub/ReturnCallback.php', - 'PHPUnit\\Framework\\MockObject\\Stub\\ReturnReference' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Stub/ReturnReference.php', - 'PHPUnit\\Framework\\MockObject\\Stub\\ReturnSelf' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Stub/ReturnSelf.php', - 'PHPUnit\\Framework\\MockObject\\Stub\\ReturnStub' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Stub/ReturnStub.php', - 'PHPUnit\\Framework\\MockObject\\Stub\\ReturnValueMap' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Stub/ReturnValueMap.php', - 'PHPUnit\\Framework\\MockObject\\Verifiable' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Verifiable.php', - 'PHPUnit\\Framework\\OutputError' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/OutputError.php', - 'PHPUnit\\Framework\\RiskyTest' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/RiskyTest.php', - 'PHPUnit\\Framework\\RiskyTestError' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/RiskyTestError.php', - 'PHPUnit\\Framework\\SelfDescribing' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/SelfDescribing.php', - 'PHPUnit\\Framework\\SkippedTest' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/SkippedTest.php', - 'PHPUnit\\Framework\\SkippedTestCase' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/SkippedTestCase.php', - 'PHPUnit\\Framework\\SkippedTestError' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/SkippedTestError.php', - 'PHPUnit\\Framework\\SkippedTestSuiteError' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/SkippedTestSuiteError.php', - 'PHPUnit\\Framework\\SyntheticError' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/SyntheticError.php', - 'PHPUnit\\Framework\\Test' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Test.php', - 'PHPUnit\\Framework\\TestCase' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/TestCase.php', - 'PHPUnit\\Framework\\TestFailure' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/TestFailure.php', - 'PHPUnit\\Framework\\TestListener' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/TestListener.php', - 'PHPUnit\\Framework\\TestListenerDefaultImplementation' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/TestListenerDefaultImplementation.php', - 'PHPUnit\\Framework\\TestResult' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/TestResult.php', - 'PHPUnit\\Framework\\TestSuite' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/TestSuite.php', - 'PHPUnit\\Framework\\TestSuiteIterator' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/TestSuiteIterator.php', - 'PHPUnit\\Framework\\UnintentionallyCoveredCodeError' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/UnintentionallyCoveredCodeError.php', - 'PHPUnit\\Framework\\Warning' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Warning.php', - 'PHPUnit\\Framework\\WarningTestCase' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/WarningTestCase.php', - 'PHPUnit\\Runner\\AfterIncompleteTestHook' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Hook/AfterIncompleteTestHook.php', - 'PHPUnit\\Runner\\AfterLastTestHook' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Hook/AfterLastTestHook.php', - 'PHPUnit\\Runner\\AfterRiskyTestHook' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Hook/AfterRiskyTestHook.php', - 'PHPUnit\\Runner\\AfterSkippedTestHook' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Hook/AfterSkippedTestHook.php', - 'PHPUnit\\Runner\\AfterSuccessfulTestHook' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Hook/AfterSuccessfulTestHook.php', - 'PHPUnit\\Runner\\AfterTestErrorHook' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Hook/AfterTestErrorHook.php', - 'PHPUnit\\Runner\\AfterTestFailureHook' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Hook/AfterTestFailureHook.php', - 'PHPUnit\\Runner\\AfterTestWarningHook' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Hook/AfterTestWarningHook.php', - 'PHPUnit\\Runner\\BaseTestRunner' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/BaseTestRunner.php', - 'PHPUnit\\Runner\\BeforeFirstTestHook' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Hook/BeforeFirstTestHook.php', - 'PHPUnit\\Runner\\BeforeTestHook' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Hook/BeforeTestHook.php', - 'PHPUnit\\Runner\\Exception' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Exception.php', - 'PHPUnit\\Runner\\Filter\\ExcludeGroupFilterIterator' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Filter/ExcludeGroupFilterIterator.php', - 'PHPUnit\\Runner\\Filter\\Factory' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Filter/Factory.php', - 'PHPUnit\\Runner\\Filter\\GroupFilterIterator' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Filter/GroupFilterIterator.php', - 'PHPUnit\\Runner\\Filter\\IncludeGroupFilterIterator' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Filter/IncludeGroupFilterIterator.php', - 'PHPUnit\\Runner\\Filter\\NameFilterIterator' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Filter/NameFilterIterator.php', - 'PHPUnit\\Runner\\Hook' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Hook/Hook.php', - 'PHPUnit\\Runner\\PhptTestCase' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/PhptTestCase.php', - 'PHPUnit\\Runner\\StandardTestSuiteLoader' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/StandardTestSuiteLoader.php', - 'PHPUnit\\Runner\\TestHook' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Hook/TestHook.php', - 'PHPUnit\\Runner\\TestListenerAdapter' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Hook/TestListenerAdapter.php', - 'PHPUnit\\Runner\\TestSuiteLoader' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/TestSuiteLoader.php', - 'PHPUnit\\Runner\\TestSuiteSorter' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/TestSuiteSorter.php', - 'PHPUnit\\Runner\\Version' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Version.php', - 'PHPUnit\\TextUI\\Command' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/Command.php', - 'PHPUnit\\TextUI\\ResultPrinter' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/ResultPrinter.php', - 'PHPUnit\\TextUI\\TestRunner' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/TestRunner.php', - 'PHPUnit\\Util\\Blacklist' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Blacklist.php', - 'PHPUnit\\Util\\Configuration' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Configuration.php', - 'PHPUnit\\Util\\ConfigurationGenerator' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/ConfigurationGenerator.php', - 'PHPUnit\\Util\\ErrorHandler' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/ErrorHandler.php', - 'PHPUnit\\Util\\FileLoader' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/FileLoader.php', - 'PHPUnit\\Util\\Filesystem' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Filesystem.php', - 'PHPUnit\\Util\\Filter' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Filter.php', - 'PHPUnit\\Util\\Getopt' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Getopt.php', - 'PHPUnit\\Util\\GlobalState' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/GlobalState.php', - 'PHPUnit\\Util\\InvalidArgumentHelper' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/InvalidArgumentHelper.php', - 'PHPUnit\\Util\\Json' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Json.php', - 'PHPUnit\\Util\\Log\\JUnit' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Log/JUnit.php', - 'PHPUnit\\Util\\Log\\TeamCity' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Log/TeamCity.php', - 'PHPUnit\\Util\\PHP\\AbstractPhpProcess' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/PHP/AbstractPhpProcess.php', - 'PHPUnit\\Util\\PHP\\DefaultPhpProcess' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/PHP/DefaultPhpProcess.php', - 'PHPUnit\\Util\\PHP\\WindowsPhpProcess' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/PHP/WindowsPhpProcess.php', - 'PHPUnit\\Util\\Printer' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Printer.php', - 'PHPUnit\\Util\\RegularExpression' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/RegularExpression.php', - 'PHPUnit\\Util\\Test' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Test.php', - 'PHPUnit\\Util\\TestDox\\CliTestDoxPrinter' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/TestDox/CliTestDoxPrinter.php', - 'PHPUnit\\Util\\TestDox\\HtmlResultPrinter' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/TestDox/HtmlResultPrinter.php', - 'PHPUnit\\Util\\TestDox\\NamePrettifier' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/TestDox/NamePrettifier.php', - 'PHPUnit\\Util\\TestDox\\ResultPrinter' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/TestDox/ResultPrinter.php', - 'PHPUnit\\Util\\TestDox\\TestResult' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/TestDox/TestResult.php', - 'PHPUnit\\Util\\TestDox\\TextResultPrinter' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/TestDox/TextResultPrinter.php', - 'PHPUnit\\Util\\TestDox\\XmlResultPrinter' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/TestDox/XmlResultPrinter.php', - 'PHPUnit\\Util\\TextTestListRenderer' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/TextTestListRenderer.php', - 'PHPUnit\\Util\\Type' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Type.php', - 'PHPUnit\\Util\\Xml' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Xml.php', - 'PHPUnit\\Util\\XmlTestListRenderer' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/XmlTestListRenderer.php', - 'PHPUnit_Framework_MockObject_MockObject' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/MockObject.php', - 'PHP_Token' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_TokenWithScope' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_TokenWithScopeAndVisibility' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_ABSTRACT' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_AMPERSAND' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_AND_EQUAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_ARRAY' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_ARRAY_CAST' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_AS' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_AT' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_BACKTICK' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_BAD_CHARACTER' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_BOOLEAN_AND' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_BOOLEAN_OR' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_BOOL_CAST' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_BREAK' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_CALLABLE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_CARET' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_CASE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_CATCH' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_CHARACTER' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_CLASS' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_CLASS_C' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_CLASS_NAME_CONSTANT' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_CLONE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_CLOSE_BRACKET' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_CLOSE_CURLY' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_CLOSE_SQUARE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_CLOSE_TAG' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_COALESCE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_COLON' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_COMMA' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_COMMENT' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_CONCAT_EQUAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_CONST' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_CONSTANT_ENCAPSED_STRING' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_CONTINUE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_CURLY_OPEN' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_DEC' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_DECLARE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_DEFAULT' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_DIR' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_DIV' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_DIV_EQUAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_DNUMBER' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_DO' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_DOC_COMMENT' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_DOLLAR' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_DOLLAR_OPEN_CURLY_BRACES' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_DOT' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_DOUBLE_ARROW' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_DOUBLE_CAST' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_DOUBLE_COLON' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_DOUBLE_QUOTES' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_ECHO' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_ELLIPSIS' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_ELSE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_ELSEIF' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_EMPTY' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_ENCAPSED_AND_WHITESPACE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_ENDDECLARE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_ENDFOR' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_ENDFOREACH' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_ENDIF' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_ENDSWITCH' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_ENDWHILE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_END_HEREDOC' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_EQUAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_EVAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_EXCLAMATION_MARK' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_EXIT' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_EXTENDS' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_FILE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_FINAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_FINALLY' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_FOR' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_FOREACH' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_FUNCTION' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_FUNC_C' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_GLOBAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_GOTO' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_GT' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_HALT_COMPILER' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_IF' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_IMPLEMENTS' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_INC' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_INCLUDE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_INCLUDE_ONCE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_INLINE_HTML' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_INSTANCEOF' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_INSTEADOF' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_INTERFACE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_INT_CAST' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_ISSET' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_IS_EQUAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_IS_GREATER_OR_EQUAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_IS_IDENTICAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_IS_NOT_EQUAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_IS_NOT_IDENTICAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_IS_SMALLER_OR_EQUAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_Includes' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_LINE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_LIST' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_LNUMBER' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_LOGICAL_AND' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_LOGICAL_OR' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_LOGICAL_XOR' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_LT' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_METHOD_C' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_MINUS' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_MINUS_EQUAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_MOD_EQUAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_MULT' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_MUL_EQUAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_NAMESPACE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_NEW' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_NS_C' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_NS_SEPARATOR' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_NUM_STRING' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_OBJECT_CAST' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_OBJECT_OPERATOR' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_OPEN_BRACKET' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_OPEN_CURLY' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_OPEN_SQUARE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_OPEN_TAG' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_OPEN_TAG_WITH_ECHO' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_OR_EQUAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_PAAMAYIM_NEKUDOTAYIM' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_PERCENT' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_PIPE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_PLUS' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_PLUS_EQUAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_POW' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_POW_EQUAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_PRINT' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_PRIVATE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_PROTECTED' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_PUBLIC' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_QUESTION_MARK' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_REQUIRE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_REQUIRE_ONCE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_RETURN' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_SEMICOLON' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_SL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_SL_EQUAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_SPACESHIP' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_SR' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_SR_EQUAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_START_HEREDOC' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_STATIC' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_STRING' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_STRING_CAST' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_STRING_VARNAME' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_SWITCH' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_Stream' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token/Stream.php', - 'PHP_Token_Stream_CachingFactory' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token/Stream/CachingFactory.php', - 'PHP_Token_THROW' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_TILDE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_TRAIT' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_TRAIT_C' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_TRY' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_UNSET' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_UNSET_CAST' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_USE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_USE_FUNCTION' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_VAR' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_VARIABLE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_WHILE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_WHITESPACE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_XOR_EQUAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_YIELD' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_YIELD_FROM' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'Parsedown' => __DIR__ . '/..' . '/erusev/parsedown/Parsedown.php', - 'PermissionSeeder' => __DIR__ . '/../..' . '/database/seeds/PermissionSeeder.php', - 'PharIo\\Manifest\\Application' => __DIR__ . '/..' . '/phar-io/manifest/src/values/Application.php', - 'PharIo\\Manifest\\ApplicationName' => __DIR__ . '/..' . '/phar-io/manifest/src/values/ApplicationName.php', - 'PharIo\\Manifest\\Author' => __DIR__ . '/..' . '/phar-io/manifest/src/values/Author.php', - 'PharIo\\Manifest\\AuthorCollection' => __DIR__ . '/..' . '/phar-io/manifest/src/values/AuthorCollection.php', - 'PharIo\\Manifest\\AuthorCollectionIterator' => __DIR__ . '/..' . '/phar-io/manifest/src/values/AuthorCollectionIterator.php', - 'PharIo\\Manifest\\AuthorElement' => __DIR__ . '/..' . '/phar-io/manifest/src/xml/AuthorElement.php', - 'PharIo\\Manifest\\AuthorElementCollection' => __DIR__ . '/..' . '/phar-io/manifest/src/xml/AuthorElementCollection.php', - 'PharIo\\Manifest\\BundledComponent' => __DIR__ . '/..' . '/phar-io/manifest/src/values/BundledComponent.php', - 'PharIo\\Manifest\\BundledComponentCollection' => __DIR__ . '/..' . '/phar-io/manifest/src/values/BundledComponentCollection.php', - 'PharIo\\Manifest\\BundledComponentCollectionIterator' => __DIR__ . '/..' . '/phar-io/manifest/src/values/BundledComponentCollectionIterator.php', - 'PharIo\\Manifest\\BundlesElement' => __DIR__ . '/..' . '/phar-io/manifest/src/xml/BundlesElement.php', - 'PharIo\\Manifest\\ComponentElement' => __DIR__ . '/..' . '/phar-io/manifest/src/xml/ComponentElement.php', - 'PharIo\\Manifest\\ComponentElementCollection' => __DIR__ . '/..' . '/phar-io/manifest/src/xml/ComponentElementCollection.php', - 'PharIo\\Manifest\\ContainsElement' => __DIR__ . '/..' . '/phar-io/manifest/src/xml/ContainsElement.php', - 'PharIo\\Manifest\\CopyrightElement' => __DIR__ . '/..' . '/phar-io/manifest/src/xml/CopyrightElement.php', - 'PharIo\\Manifest\\CopyrightInformation' => __DIR__ . '/..' . '/phar-io/manifest/src/values/CopyrightInformation.php', - 'PharIo\\Manifest\\ElementCollection' => __DIR__ . '/..' . '/phar-io/manifest/src/xml/ElementCollection.php', - 'PharIo\\Manifest\\Email' => __DIR__ . '/..' . '/phar-io/manifest/src/values/Email.php', - 'PharIo\\Manifest\\Exception' => __DIR__ . '/..' . '/phar-io/manifest/src/exceptions/Exception.php', - 'PharIo\\Manifest\\ExtElement' => __DIR__ . '/..' . '/phar-io/manifest/src/xml/ExtElement.php', - 'PharIo\\Manifest\\ExtElementCollection' => __DIR__ . '/..' . '/phar-io/manifest/src/xml/ExtElementCollection.php', - 'PharIo\\Manifest\\Extension' => __DIR__ . '/..' . '/phar-io/manifest/src/values/Extension.php', - 'PharIo\\Manifest\\ExtensionElement' => __DIR__ . '/..' . '/phar-io/manifest/src/xml/ExtensionElement.php', - 'PharIo\\Manifest\\InvalidApplicationNameException' => __DIR__ . '/..' . '/phar-io/manifest/src/exceptions/InvalidApplicationNameException.php', - 'PharIo\\Manifest\\InvalidEmailException' => __DIR__ . '/..' . '/phar-io/manifest/src/exceptions/InvalidEmailException.php', - 'PharIo\\Manifest\\InvalidUrlException' => __DIR__ . '/..' . '/phar-io/manifest/src/exceptions/InvalidUrlException.php', - 'PharIo\\Manifest\\Library' => __DIR__ . '/..' . '/phar-io/manifest/src/values/Library.php', - 'PharIo\\Manifest\\License' => __DIR__ . '/..' . '/phar-io/manifest/src/values/License.php', - 'PharIo\\Manifest\\LicenseElement' => __DIR__ . '/..' . '/phar-io/manifest/src/xml/LicenseElement.php', - 'PharIo\\Manifest\\Manifest' => __DIR__ . '/..' . '/phar-io/manifest/src/values/Manifest.php', - 'PharIo\\Manifest\\ManifestDocument' => __DIR__ . '/..' . '/phar-io/manifest/src/xml/ManifestDocument.php', - 'PharIo\\Manifest\\ManifestDocumentException' => __DIR__ . '/..' . '/phar-io/manifest/src/exceptions/ManifestDocumentException.php', - 'PharIo\\Manifest\\ManifestDocumentLoadingException' => __DIR__ . '/..' . '/phar-io/manifest/src/xml/ManifestDocumentLoadingException.php', - 'PharIo\\Manifest\\ManifestDocumentMapper' => __DIR__ . '/..' . '/phar-io/manifest/src/ManifestDocumentMapper.php', - 'PharIo\\Manifest\\ManifestDocumentMapperException' => __DIR__ . '/..' . '/phar-io/manifest/src/exceptions/ManifestDocumentMapperException.php', - 'PharIo\\Manifest\\ManifestElement' => __DIR__ . '/..' . '/phar-io/manifest/src/xml/ManifestElement.php', - 'PharIo\\Manifest\\ManifestElementException' => __DIR__ . '/..' . '/phar-io/manifest/src/exceptions/ManifestElementException.php', - 'PharIo\\Manifest\\ManifestLoader' => __DIR__ . '/..' . '/phar-io/manifest/src/ManifestLoader.php', - 'PharIo\\Manifest\\ManifestLoaderException' => __DIR__ . '/..' . '/phar-io/manifest/src/exceptions/ManifestLoaderException.php', - 'PharIo\\Manifest\\ManifestSerializer' => __DIR__ . '/..' . '/phar-io/manifest/src/ManifestSerializer.php', - 'PharIo\\Manifest\\PhpElement' => __DIR__ . '/..' . '/phar-io/manifest/src/xml/PhpElement.php', - 'PharIo\\Manifest\\PhpExtensionRequirement' => __DIR__ . '/..' . '/phar-io/manifest/src/values/PhpExtensionRequirement.php', - 'PharIo\\Manifest\\PhpVersionRequirement' => __DIR__ . '/..' . '/phar-io/manifest/src/values/PhpVersionRequirement.php', - 'PharIo\\Manifest\\Requirement' => __DIR__ . '/..' . '/phar-io/manifest/src/values/Requirement.php', - 'PharIo\\Manifest\\RequirementCollection' => __DIR__ . '/..' . '/phar-io/manifest/src/values/RequirementCollection.php', - 'PharIo\\Manifest\\RequirementCollectionIterator' => __DIR__ . '/..' . '/phar-io/manifest/src/values/RequirementCollectionIterator.php', - 'PharIo\\Manifest\\RequiresElement' => __DIR__ . '/..' . '/phar-io/manifest/src/xml/RequiresElement.php', - 'PharIo\\Manifest\\Type' => __DIR__ . '/..' . '/phar-io/manifest/src/values/Type.php', - 'PharIo\\Manifest\\Url' => __DIR__ . '/..' . '/phar-io/manifest/src/values/Url.php', - 'PharIo\\Version\\AbstractVersionConstraint' => __DIR__ . '/..' . '/phar-io/version/src/constraints/AbstractVersionConstraint.php', - 'PharIo\\Version\\AndVersionConstraintGroup' => __DIR__ . '/..' . '/phar-io/version/src/constraints/AndVersionConstraintGroup.php', - 'PharIo\\Version\\AnyVersionConstraint' => __DIR__ . '/..' . '/phar-io/version/src/constraints/AnyVersionConstraint.php', - 'PharIo\\Version\\ExactVersionConstraint' => __DIR__ . '/..' . '/phar-io/version/src/constraints/ExactVersionConstraint.php', - 'PharIo\\Version\\Exception' => __DIR__ . '/..' . '/phar-io/version/src/exceptions/Exception.php', - 'PharIo\\Version\\GreaterThanOrEqualToVersionConstraint' => __DIR__ . '/..' . '/phar-io/version/src/constraints/GreaterThanOrEqualToVersionConstraint.php', - 'PharIo\\Version\\InvalidPreReleaseSuffixException' => __DIR__ . '/..' . '/phar-io/version/src/exceptions/InvalidPreReleaseSuffixException.php', - 'PharIo\\Version\\InvalidVersionException' => __DIR__ . '/..' . '/phar-io/version/src/exceptions/InvalidVersionException.php', - 'PharIo\\Version\\OrVersionConstraintGroup' => __DIR__ . '/..' . '/phar-io/version/src/constraints/OrVersionConstraintGroup.php', - 'PharIo\\Version\\PreReleaseSuffix' => __DIR__ . '/..' . '/phar-io/version/src/PreReleaseSuffix.php', - 'PharIo\\Version\\SpecificMajorAndMinorVersionConstraint' => __DIR__ . '/..' . '/phar-io/version/src/constraints/SpecificMajorAndMinorVersionConstraint.php', - 'PharIo\\Version\\SpecificMajorVersionConstraint' => __DIR__ . '/..' . '/phar-io/version/src/constraints/SpecificMajorVersionConstraint.php', - 'PharIo\\Version\\UnsupportedVersionConstraintException' => __DIR__ . '/..' . '/phar-io/version/src/exceptions/UnsupportedVersionConstraintException.php', - 'PharIo\\Version\\Version' => __DIR__ . '/..' . '/phar-io/version/src/Version.php', - 'PharIo\\Version\\VersionConstraint' => __DIR__ . '/..' . '/phar-io/version/src/constraints/VersionConstraint.php', - 'PharIo\\Version\\VersionConstraintParser' => __DIR__ . '/..' . '/phar-io/version/src/VersionConstraintParser.php', - 'PharIo\\Version\\VersionConstraintValue' => __DIR__ . '/..' . '/phar-io/version/src/VersionConstraintValue.php', - 'PharIo\\Version\\VersionNumber' => __DIR__ . '/..' . '/phar-io/version/src/VersionNumber.php', - 'PhpParser\\Builder' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Builder.php', - 'PhpParser\\BuilderFactory' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/BuilderFactory.php', - 'PhpParser\\BuilderHelpers' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/BuilderHelpers.php', - 'PhpParser\\Builder\\Class_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Builder/Class_.php', - 'PhpParser\\Builder\\Declaration' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Builder/Declaration.php', - 'PhpParser\\Builder\\FunctionLike' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Builder/FunctionLike.php', - 'PhpParser\\Builder\\Function_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Builder/Function_.php', - 'PhpParser\\Builder\\Interface_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Builder/Interface_.php', - 'PhpParser\\Builder\\Method' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Builder/Method.php', - 'PhpParser\\Builder\\Namespace_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Builder/Namespace_.php', - 'PhpParser\\Builder\\Param' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Builder/Param.php', - 'PhpParser\\Builder\\Property' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Builder/Property.php', - 'PhpParser\\Builder\\Trait_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Builder/Trait_.php', - 'PhpParser\\Builder\\Use_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Builder/Use_.php', - 'PhpParser\\Comment' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Comment.php', - 'PhpParser\\Comment\\Doc' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Comment/Doc.php', - 'PhpParser\\ConstExprEvaluationException' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/ConstExprEvaluationException.php', - 'PhpParser\\ConstExprEvaluator' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/ConstExprEvaluator.php', - 'PhpParser\\Error' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Error.php', - 'PhpParser\\ErrorHandler' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/ErrorHandler.php', - 'PhpParser\\ErrorHandler\\Collecting' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/ErrorHandler/Collecting.php', - 'PhpParser\\ErrorHandler\\Throwing' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/ErrorHandler/Throwing.php', - 'PhpParser\\Internal\\DiffElem' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Internal/DiffElem.php', - 'PhpParser\\Internal\\Differ' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Internal/Differ.php', - 'PhpParser\\Internal\\PrintableNewAnonClassNode' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Internal/PrintableNewAnonClassNode.php', - 'PhpParser\\Internal\\TokenStream' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Internal/TokenStream.php', - 'PhpParser\\JsonDecoder' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/JsonDecoder.php', - 'PhpParser\\Lexer' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Lexer.php', - 'PhpParser\\Lexer\\Emulative' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Lexer/Emulative.php', - 'PhpParser\\NameContext' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/NameContext.php', - 'PhpParser\\Node' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node.php', - 'PhpParser\\NodeAbstract' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/NodeAbstract.php', - 'PhpParser\\NodeDumper' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/NodeDumper.php', - 'PhpParser\\NodeFinder' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/NodeFinder.php', - 'PhpParser\\NodeTraverser' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/NodeTraverser.php', - 'PhpParser\\NodeTraverserInterface' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/NodeTraverserInterface.php', - 'PhpParser\\NodeVisitor' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/NodeVisitor.php', - 'PhpParser\\NodeVisitorAbstract' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/NodeVisitorAbstract.php', - 'PhpParser\\NodeVisitor\\CloningVisitor' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/NodeVisitor/CloningVisitor.php', - 'PhpParser\\NodeVisitor\\FindingVisitor' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/NodeVisitor/FindingVisitor.php', - 'PhpParser\\NodeVisitor\\FirstFindingVisitor' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/NodeVisitor/FirstFindingVisitor.php', - 'PhpParser\\NodeVisitor\\NameResolver' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/NodeVisitor/NameResolver.php', - 'PhpParser\\Node\\Arg' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Arg.php', - 'PhpParser\\Node\\Const_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Const_.php', - 'PhpParser\\Node\\Expr' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr.php', - 'PhpParser\\Node\\Expr\\ArrayDimFetch' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/ArrayDimFetch.php', - 'PhpParser\\Node\\Expr\\ArrayItem' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/ArrayItem.php', - 'PhpParser\\Node\\Expr\\Array_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/Array_.php', - 'PhpParser\\Node\\Expr\\Assign' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/Assign.php', - 'PhpParser\\Node\\Expr\\AssignOp' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp.php', - 'PhpParser\\Node\\Expr\\AssignOp\\BitwiseAnd' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/BitwiseAnd.php', - 'PhpParser\\Node\\Expr\\AssignOp\\BitwiseOr' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/BitwiseOr.php', - 'PhpParser\\Node\\Expr\\AssignOp\\BitwiseXor' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/BitwiseXor.php', - 'PhpParser\\Node\\Expr\\AssignOp\\Concat' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/Concat.php', - 'PhpParser\\Node\\Expr\\AssignOp\\Div' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/Div.php', - 'PhpParser\\Node\\Expr\\AssignOp\\Minus' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/Minus.php', - 'PhpParser\\Node\\Expr\\AssignOp\\Mod' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/Mod.php', - 'PhpParser\\Node\\Expr\\AssignOp\\Mul' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/Mul.php', - 'PhpParser\\Node\\Expr\\AssignOp\\Plus' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/Plus.php', - 'PhpParser\\Node\\Expr\\AssignOp\\Pow' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/Pow.php', - 'PhpParser\\Node\\Expr\\AssignOp\\ShiftLeft' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/ShiftLeft.php', - 'PhpParser\\Node\\Expr\\AssignOp\\ShiftRight' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/ShiftRight.php', - 'PhpParser\\Node\\Expr\\AssignRef' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/AssignRef.php', - 'PhpParser\\Node\\Expr\\BinaryOp' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp.php', - 'PhpParser\\Node\\Expr\\BinaryOp\\BitwiseAnd' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/BitwiseAnd.php', - 'PhpParser\\Node\\Expr\\BinaryOp\\BitwiseOr' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/BitwiseOr.php', - 'PhpParser\\Node\\Expr\\BinaryOp\\BitwiseXor' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/BitwiseXor.php', - 'PhpParser\\Node\\Expr\\BinaryOp\\BooleanAnd' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/BooleanAnd.php', - 'PhpParser\\Node\\Expr\\BinaryOp\\BooleanOr' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/BooleanOr.php', - 'PhpParser\\Node\\Expr\\BinaryOp\\Coalesce' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Coalesce.php', - 'PhpParser\\Node\\Expr\\BinaryOp\\Concat' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Concat.php', - 'PhpParser\\Node\\Expr\\BinaryOp\\Div' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Div.php', - 'PhpParser\\Node\\Expr\\BinaryOp\\Equal' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Equal.php', - 'PhpParser\\Node\\Expr\\BinaryOp\\Greater' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Greater.php', - 'PhpParser\\Node\\Expr\\BinaryOp\\GreaterOrEqual' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/GreaterOrEqual.php', - 'PhpParser\\Node\\Expr\\BinaryOp\\Identical' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Identical.php', - 'PhpParser\\Node\\Expr\\BinaryOp\\LogicalAnd' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/LogicalAnd.php', - 'PhpParser\\Node\\Expr\\BinaryOp\\LogicalOr' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/LogicalOr.php', - 'PhpParser\\Node\\Expr\\BinaryOp\\LogicalXor' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/LogicalXor.php', - 'PhpParser\\Node\\Expr\\BinaryOp\\Minus' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Minus.php', - 'PhpParser\\Node\\Expr\\BinaryOp\\Mod' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Mod.php', - 'PhpParser\\Node\\Expr\\BinaryOp\\Mul' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Mul.php', - 'PhpParser\\Node\\Expr\\BinaryOp\\NotEqual' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/NotEqual.php', - 'PhpParser\\Node\\Expr\\BinaryOp\\NotIdentical' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/NotIdentical.php', - 'PhpParser\\Node\\Expr\\BinaryOp\\Plus' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Plus.php', - 'PhpParser\\Node\\Expr\\BinaryOp\\Pow' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Pow.php', - 'PhpParser\\Node\\Expr\\BinaryOp\\ShiftLeft' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/ShiftLeft.php', - 'PhpParser\\Node\\Expr\\BinaryOp\\ShiftRight' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/ShiftRight.php', - 'PhpParser\\Node\\Expr\\BinaryOp\\Smaller' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Smaller.php', - 'PhpParser\\Node\\Expr\\BinaryOp\\SmallerOrEqual' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/SmallerOrEqual.php', - 'PhpParser\\Node\\Expr\\BinaryOp\\Spaceship' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Spaceship.php', - 'PhpParser\\Node\\Expr\\BitwiseNot' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/BitwiseNot.php', - 'PhpParser\\Node\\Expr\\BooleanNot' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/BooleanNot.php', - 'PhpParser\\Node\\Expr\\Cast' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/Cast.php', - 'PhpParser\\Node\\Expr\\Cast\\Array_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/Cast/Array_.php', - 'PhpParser\\Node\\Expr\\Cast\\Bool_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/Cast/Bool_.php', - 'PhpParser\\Node\\Expr\\Cast\\Double' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/Cast/Double.php', - 'PhpParser\\Node\\Expr\\Cast\\Int_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/Cast/Int_.php', - 'PhpParser\\Node\\Expr\\Cast\\Object_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/Cast/Object_.php', - 'PhpParser\\Node\\Expr\\Cast\\String_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/Cast/String_.php', - 'PhpParser\\Node\\Expr\\Cast\\Unset_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/Cast/Unset_.php', - 'PhpParser\\Node\\Expr\\ClassConstFetch' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/ClassConstFetch.php', - 'PhpParser\\Node\\Expr\\Clone_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/Clone_.php', - 'PhpParser\\Node\\Expr\\Closure' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/Closure.php', - 'PhpParser\\Node\\Expr\\ClosureUse' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/ClosureUse.php', - 'PhpParser\\Node\\Expr\\ConstFetch' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/ConstFetch.php', - 'PhpParser\\Node\\Expr\\Empty_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/Empty_.php', - 'PhpParser\\Node\\Expr\\Error' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/Error.php', - 'PhpParser\\Node\\Expr\\ErrorSuppress' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/ErrorSuppress.php', - 'PhpParser\\Node\\Expr\\Eval_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/Eval_.php', - 'PhpParser\\Node\\Expr\\Exit_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/Exit_.php', - 'PhpParser\\Node\\Expr\\FuncCall' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/FuncCall.php', - 'PhpParser\\Node\\Expr\\Include_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/Include_.php', - 'PhpParser\\Node\\Expr\\Instanceof_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/Instanceof_.php', - 'PhpParser\\Node\\Expr\\Isset_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/Isset_.php', - 'PhpParser\\Node\\Expr\\List_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/List_.php', - 'PhpParser\\Node\\Expr\\MethodCall' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/MethodCall.php', - 'PhpParser\\Node\\Expr\\New_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/New_.php', - 'PhpParser\\Node\\Expr\\PostDec' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/PostDec.php', - 'PhpParser\\Node\\Expr\\PostInc' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/PostInc.php', - 'PhpParser\\Node\\Expr\\PreDec' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/PreDec.php', - 'PhpParser\\Node\\Expr\\PreInc' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/PreInc.php', - 'PhpParser\\Node\\Expr\\Print_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/Print_.php', - 'PhpParser\\Node\\Expr\\PropertyFetch' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/PropertyFetch.php', - 'PhpParser\\Node\\Expr\\ShellExec' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/ShellExec.php', - 'PhpParser\\Node\\Expr\\StaticCall' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/StaticCall.php', - 'PhpParser\\Node\\Expr\\StaticPropertyFetch' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/StaticPropertyFetch.php', - 'PhpParser\\Node\\Expr\\Ternary' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/Ternary.php', - 'PhpParser\\Node\\Expr\\UnaryMinus' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/UnaryMinus.php', - 'PhpParser\\Node\\Expr\\UnaryPlus' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/UnaryPlus.php', - 'PhpParser\\Node\\Expr\\Variable' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/Variable.php', - 'PhpParser\\Node\\Expr\\YieldFrom' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/YieldFrom.php', - 'PhpParser\\Node\\Expr\\Yield_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/Yield_.php', - 'PhpParser\\Node\\FunctionLike' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/FunctionLike.php', - 'PhpParser\\Node\\Identifier' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Identifier.php', - 'PhpParser\\Node\\Name' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Name.php', - 'PhpParser\\Node\\Name\\FullyQualified' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Name/FullyQualified.php', - 'PhpParser\\Node\\Name\\Relative' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Name/Relative.php', - 'PhpParser\\Node\\NullableType' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/NullableType.php', - 'PhpParser\\Node\\Param' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Param.php', - 'PhpParser\\Node\\Scalar' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Scalar.php', - 'PhpParser\\Node\\Scalar\\DNumber' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Scalar/DNumber.php', - 'PhpParser\\Node\\Scalar\\Encapsed' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Scalar/Encapsed.php', - 'PhpParser\\Node\\Scalar\\EncapsedStringPart' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Scalar/EncapsedStringPart.php', - 'PhpParser\\Node\\Scalar\\LNumber' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Scalar/LNumber.php', - 'PhpParser\\Node\\Scalar\\MagicConst' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst.php', - 'PhpParser\\Node\\Scalar\\MagicConst\\Class_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/Class_.php', - 'PhpParser\\Node\\Scalar\\MagicConst\\Dir' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/Dir.php', - 'PhpParser\\Node\\Scalar\\MagicConst\\File' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/File.php', - 'PhpParser\\Node\\Scalar\\MagicConst\\Function_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/Function_.php', - 'PhpParser\\Node\\Scalar\\MagicConst\\Line' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/Line.php', - 'PhpParser\\Node\\Scalar\\MagicConst\\Method' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/Method.php', - 'PhpParser\\Node\\Scalar\\MagicConst\\Namespace_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/Namespace_.php', - 'PhpParser\\Node\\Scalar\\MagicConst\\Trait_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/Trait_.php', - 'PhpParser\\Node\\Scalar\\String_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Scalar/String_.php', - 'PhpParser\\Node\\Stmt' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt.php', - 'PhpParser\\Node\\Stmt\\Break_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Break_.php', - 'PhpParser\\Node\\Stmt\\Case_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Case_.php', - 'PhpParser\\Node\\Stmt\\Catch_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Catch_.php', - 'PhpParser\\Node\\Stmt\\ClassConst' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/ClassConst.php', - 'PhpParser\\Node\\Stmt\\ClassLike' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/ClassLike.php', - 'PhpParser\\Node\\Stmt\\ClassMethod' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/ClassMethod.php', - 'PhpParser\\Node\\Stmt\\Class_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Class_.php', - 'PhpParser\\Node\\Stmt\\Const_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Const_.php', - 'PhpParser\\Node\\Stmt\\Continue_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Continue_.php', - 'PhpParser\\Node\\Stmt\\DeclareDeclare' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/DeclareDeclare.php', - 'PhpParser\\Node\\Stmt\\Declare_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Declare_.php', - 'PhpParser\\Node\\Stmt\\Do_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Do_.php', - 'PhpParser\\Node\\Stmt\\Echo_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Echo_.php', - 'PhpParser\\Node\\Stmt\\ElseIf_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/ElseIf_.php', - 'PhpParser\\Node\\Stmt\\Else_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Else_.php', - 'PhpParser\\Node\\Stmt\\Expression' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Expression.php', - 'PhpParser\\Node\\Stmt\\Finally_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Finally_.php', - 'PhpParser\\Node\\Stmt\\For_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/For_.php', - 'PhpParser\\Node\\Stmt\\Foreach_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Foreach_.php', - 'PhpParser\\Node\\Stmt\\Function_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Function_.php', - 'PhpParser\\Node\\Stmt\\Global_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Global_.php', - 'PhpParser\\Node\\Stmt\\Goto_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Goto_.php', - 'PhpParser\\Node\\Stmt\\GroupUse' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/GroupUse.php', - 'PhpParser\\Node\\Stmt\\HaltCompiler' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/HaltCompiler.php', - 'PhpParser\\Node\\Stmt\\If_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/If_.php', - 'PhpParser\\Node\\Stmt\\InlineHTML' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/InlineHTML.php', - 'PhpParser\\Node\\Stmt\\Interface_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Interface_.php', - 'PhpParser\\Node\\Stmt\\Label' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Label.php', - 'PhpParser\\Node\\Stmt\\Namespace_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Namespace_.php', - 'PhpParser\\Node\\Stmt\\Nop' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Nop.php', - 'PhpParser\\Node\\Stmt\\Property' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Property.php', - 'PhpParser\\Node\\Stmt\\PropertyProperty' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/PropertyProperty.php', - 'PhpParser\\Node\\Stmt\\Return_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Return_.php', - 'PhpParser\\Node\\Stmt\\StaticVar' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/StaticVar.php', - 'PhpParser\\Node\\Stmt\\Static_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Static_.php', - 'PhpParser\\Node\\Stmt\\Switch_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Switch_.php', - 'PhpParser\\Node\\Stmt\\Throw_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Throw_.php', - 'PhpParser\\Node\\Stmt\\TraitUse' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/TraitUse.php', - 'PhpParser\\Node\\Stmt\\TraitUseAdaptation' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/TraitUseAdaptation.php', - 'PhpParser\\Node\\Stmt\\TraitUseAdaptation\\Alias' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/TraitUseAdaptation/Alias.php', - 'PhpParser\\Node\\Stmt\\TraitUseAdaptation\\Precedence' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/TraitUseAdaptation/Precedence.php', - 'PhpParser\\Node\\Stmt\\Trait_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Trait_.php', - 'PhpParser\\Node\\Stmt\\TryCatch' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/TryCatch.php', - 'PhpParser\\Node\\Stmt\\Unset_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Unset_.php', - 'PhpParser\\Node\\Stmt\\UseUse' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/UseUse.php', - 'PhpParser\\Node\\Stmt\\Use_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Use_.php', - 'PhpParser\\Node\\Stmt\\While_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/While_.php', - 'PhpParser\\Node\\VarLikeIdentifier' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/VarLikeIdentifier.php', - 'PhpParser\\Parser' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Parser.php', - 'PhpParser\\ParserAbstract' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/ParserAbstract.php', - 'PhpParser\\ParserFactory' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/ParserFactory.php', - 'PhpParser\\Parser\\Multiple' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Parser/Multiple.php', - 'PhpParser\\Parser\\Php5' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Parser/Php5.php', - 'PhpParser\\Parser\\Php7' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Parser/Php7.php', - 'PhpParser\\Parser\\Tokens' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Parser/Tokens.php', - 'PhpParser\\PrettyPrinterAbstract' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/PrettyPrinterAbstract.php', - 'PhpParser\\PrettyPrinter\\Standard' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/PrettyPrinter/Standard.php', - 'Prophecy\\Argument' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Argument.php', - 'Prophecy\\Argument\\ArgumentsWildcard' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Argument/ArgumentsWildcard.php', - 'Prophecy\\Argument\\Token\\AnyValueToken' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Argument/Token/AnyValueToken.php', - 'Prophecy\\Argument\\Token\\AnyValuesToken' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Argument/Token/AnyValuesToken.php', - 'Prophecy\\Argument\\Token\\ApproximateValueToken' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Argument/Token/ApproximateValueToken.php', - 'Prophecy\\Argument\\Token\\ArrayCountToken' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Argument/Token/ArrayCountToken.php', - 'Prophecy\\Argument\\Token\\ArrayEntryToken' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Argument/Token/ArrayEntryToken.php', - 'Prophecy\\Argument\\Token\\ArrayEveryEntryToken' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Argument/Token/ArrayEveryEntryToken.php', - 'Prophecy\\Argument\\Token\\CallbackToken' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Argument/Token/CallbackToken.php', - 'Prophecy\\Argument\\Token\\ExactValueToken' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Argument/Token/ExactValueToken.php', - 'Prophecy\\Argument\\Token\\IdenticalValueToken' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Argument/Token/IdenticalValueToken.php', - 'Prophecy\\Argument\\Token\\LogicalAndToken' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Argument/Token/LogicalAndToken.php', - 'Prophecy\\Argument\\Token\\LogicalNotToken' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Argument/Token/LogicalNotToken.php', - 'Prophecy\\Argument\\Token\\ObjectStateToken' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Argument/Token/ObjectStateToken.php', - 'Prophecy\\Argument\\Token\\StringContainsToken' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Argument/Token/StringContainsToken.php', - 'Prophecy\\Argument\\Token\\TokenInterface' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Argument/Token/TokenInterface.php', - 'Prophecy\\Argument\\Token\\TypeToken' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Argument/Token/TypeToken.php', - 'Prophecy\\Call\\Call' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Call/Call.php', - 'Prophecy\\Call\\CallCenter' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Call/CallCenter.php', - 'Prophecy\\Comparator\\ClosureComparator' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Comparator/ClosureComparator.php', - 'Prophecy\\Comparator\\Factory' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Comparator/Factory.php', - 'Prophecy\\Comparator\\ProphecyComparator' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Comparator/ProphecyComparator.php', - 'Prophecy\\Doubler\\CachedDoubler' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Doubler/CachedDoubler.php', - 'Prophecy\\Doubler\\ClassPatch\\ClassPatchInterface' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/ClassPatchInterface.php', - 'Prophecy\\Doubler\\ClassPatch\\DisableConstructorPatch' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/DisableConstructorPatch.php', - 'Prophecy\\Doubler\\ClassPatch\\HhvmExceptionPatch' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/HhvmExceptionPatch.php', - 'Prophecy\\Doubler\\ClassPatch\\KeywordPatch' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/KeywordPatch.php', - 'Prophecy\\Doubler\\ClassPatch\\MagicCallPatch' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/MagicCallPatch.php', - 'Prophecy\\Doubler\\ClassPatch\\ProphecySubjectPatch' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/ProphecySubjectPatch.php', - 'Prophecy\\Doubler\\ClassPatch\\ReflectionClassNewInstancePatch' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/ReflectionClassNewInstancePatch.php', - 'Prophecy\\Doubler\\ClassPatch\\SplFileInfoPatch' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/SplFileInfoPatch.php', - 'Prophecy\\Doubler\\ClassPatch\\TraversablePatch' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/TraversablePatch.php', - 'Prophecy\\Doubler\\DoubleInterface' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Doubler/DoubleInterface.php', - 'Prophecy\\Doubler\\Doubler' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Doubler/Doubler.php', - 'Prophecy\\Doubler\\Generator\\ClassCodeGenerator' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Doubler/Generator/ClassCodeGenerator.php', - 'Prophecy\\Doubler\\Generator\\ClassCreator' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Doubler/Generator/ClassCreator.php', - 'Prophecy\\Doubler\\Generator\\ClassMirror' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Doubler/Generator/ClassMirror.php', - 'Prophecy\\Doubler\\Generator\\Node\\ArgumentNode' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Doubler/Generator/Node/ArgumentNode.php', - 'Prophecy\\Doubler\\Generator\\Node\\ClassNode' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Doubler/Generator/Node/ClassNode.php', - 'Prophecy\\Doubler\\Generator\\Node\\MethodNode' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Doubler/Generator/Node/MethodNode.php', - 'Prophecy\\Doubler\\Generator\\ReflectionInterface' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Doubler/Generator/ReflectionInterface.php', - 'Prophecy\\Doubler\\Generator\\TypeHintReference' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Doubler/Generator/TypeHintReference.php', - 'Prophecy\\Doubler\\LazyDouble' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Doubler/LazyDouble.php', - 'Prophecy\\Doubler\\NameGenerator' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Doubler/NameGenerator.php', - 'Prophecy\\Exception\\Call\\UnexpectedCallException' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Exception/Call/UnexpectedCallException.php', - 'Prophecy\\Exception\\Doubler\\ClassCreatorException' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Exception/Doubler/ClassCreatorException.php', - 'Prophecy\\Exception\\Doubler\\ClassMirrorException' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Exception/Doubler/ClassMirrorException.php', - 'Prophecy\\Exception\\Doubler\\ClassNotFoundException' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Exception/Doubler/ClassNotFoundException.php', - 'Prophecy\\Exception\\Doubler\\DoubleException' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Exception/Doubler/DoubleException.php', - 'Prophecy\\Exception\\Doubler\\DoublerException' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Exception/Doubler/DoublerException.php', - 'Prophecy\\Exception\\Doubler\\InterfaceNotFoundException' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Exception/Doubler/InterfaceNotFoundException.php', - 'Prophecy\\Exception\\Doubler\\MethodNotExtendableException' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Exception/Doubler/MethodNotExtendableException.php', - 'Prophecy\\Exception\\Doubler\\MethodNotFoundException' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Exception/Doubler/MethodNotFoundException.php', - 'Prophecy\\Exception\\Doubler\\ReturnByReferenceException' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Exception/Doubler/ReturnByReferenceException.php', - 'Prophecy\\Exception\\Exception' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Exception/Exception.php', - 'Prophecy\\Exception\\InvalidArgumentException' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Exception/InvalidArgumentException.php', - 'Prophecy\\Exception\\Prediction\\AggregateException' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Exception/Prediction/AggregateException.php', - 'Prophecy\\Exception\\Prediction\\FailedPredictionException' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Exception/Prediction/FailedPredictionException.php', - 'Prophecy\\Exception\\Prediction\\NoCallsException' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Exception/Prediction/NoCallsException.php', - 'Prophecy\\Exception\\Prediction\\PredictionException' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Exception/Prediction/PredictionException.php', - 'Prophecy\\Exception\\Prediction\\UnexpectedCallsCountException' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Exception/Prediction/UnexpectedCallsCountException.php', - 'Prophecy\\Exception\\Prediction\\UnexpectedCallsException' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Exception/Prediction/UnexpectedCallsException.php', - 'Prophecy\\Exception\\Prophecy\\MethodProphecyException' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Exception/Prophecy/MethodProphecyException.php', - 'Prophecy\\Exception\\Prophecy\\ObjectProphecyException' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Exception/Prophecy/ObjectProphecyException.php', - 'Prophecy\\Exception\\Prophecy\\ProphecyException' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Exception/Prophecy/ProphecyException.php', - 'Prophecy\\PhpDocumentor\\ClassAndInterfaceTagRetriever' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/PhpDocumentor/ClassAndInterfaceTagRetriever.php', - 'Prophecy\\PhpDocumentor\\ClassTagRetriever' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/PhpDocumentor/ClassTagRetriever.php', - 'Prophecy\\PhpDocumentor\\LegacyClassTagRetriever' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/PhpDocumentor/LegacyClassTagRetriever.php', - 'Prophecy\\PhpDocumentor\\MethodTagRetrieverInterface' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/PhpDocumentor/MethodTagRetrieverInterface.php', - 'Prophecy\\Prediction\\CallPrediction' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Prediction/CallPrediction.php', - 'Prophecy\\Prediction\\CallTimesPrediction' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Prediction/CallTimesPrediction.php', - 'Prophecy\\Prediction\\CallbackPrediction' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Prediction/CallbackPrediction.php', - 'Prophecy\\Prediction\\NoCallsPrediction' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Prediction/NoCallsPrediction.php', - 'Prophecy\\Prediction\\PredictionInterface' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Prediction/PredictionInterface.php', - 'Prophecy\\Promise\\CallbackPromise' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Promise/CallbackPromise.php', - 'Prophecy\\Promise\\PromiseInterface' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Promise/PromiseInterface.php', - 'Prophecy\\Promise\\ReturnArgumentPromise' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Promise/ReturnArgumentPromise.php', - 'Prophecy\\Promise\\ReturnPromise' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Promise/ReturnPromise.php', - 'Prophecy\\Promise\\ThrowPromise' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Promise/ThrowPromise.php', - 'Prophecy\\Prophecy\\MethodProphecy' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Prophecy/MethodProphecy.php', - 'Prophecy\\Prophecy\\ObjectProphecy' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Prophecy/ObjectProphecy.php', - 'Prophecy\\Prophecy\\ProphecyInterface' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Prophecy/ProphecyInterface.php', - 'Prophecy\\Prophecy\\ProphecySubjectInterface' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Prophecy/ProphecySubjectInterface.php', - 'Prophecy\\Prophecy\\Revealer' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Prophecy/Revealer.php', - 'Prophecy\\Prophecy\\RevealerInterface' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Prophecy/RevealerInterface.php', - 'Prophecy\\Prophet' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Prophet.php', - 'Prophecy\\Util\\ExportUtil' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Util/ExportUtil.php', - 'Prophecy\\Util\\StringUtil' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Util/StringUtil.php', - 'Psr\\Container\\ContainerExceptionInterface' => __DIR__ . '/..' . '/psr/container/src/ContainerExceptionInterface.php', - 'Psr\\Container\\ContainerInterface' => __DIR__ . '/..' . '/psr/container/src/ContainerInterface.php', - 'Psr\\Container\\NotFoundExceptionInterface' => __DIR__ . '/..' . '/psr/container/src/NotFoundExceptionInterface.php', - 'Psr\\Http\\Message\\MessageInterface' => __DIR__ . '/..' . '/psr/http-message/src/MessageInterface.php', - 'Psr\\Http\\Message\\RequestInterface' => __DIR__ . '/..' . '/psr/http-message/src/RequestInterface.php', - 'Psr\\Http\\Message\\ResponseInterface' => __DIR__ . '/..' . '/psr/http-message/src/ResponseInterface.php', - 'Psr\\Http\\Message\\ServerRequestInterface' => __DIR__ . '/..' . '/psr/http-message/src/ServerRequestInterface.php', - 'Psr\\Http\\Message\\StreamInterface' => __DIR__ . '/..' . '/psr/http-message/src/StreamInterface.php', - 'Psr\\Http\\Message\\UploadedFileInterface' => __DIR__ . '/..' . '/psr/http-message/src/UploadedFileInterface.php', - 'Psr\\Http\\Message\\UriInterface' => __DIR__ . '/..' . '/psr/http-message/src/UriInterface.php', - 'Psr\\Log\\AbstractLogger' => __DIR__ . '/..' . '/psr/log/Psr/Log/AbstractLogger.php', - 'Psr\\Log\\InvalidArgumentException' => __DIR__ . '/..' . '/psr/log/Psr/Log/InvalidArgumentException.php', - 'Psr\\Log\\LogLevel' => __DIR__ . '/..' . '/psr/log/Psr/Log/LogLevel.php', - 'Psr\\Log\\LoggerAwareInterface' => __DIR__ . '/..' . '/psr/log/Psr/Log/LoggerAwareInterface.php', - 'Psr\\Log\\LoggerAwareTrait' => __DIR__ . '/..' . '/psr/log/Psr/Log/LoggerAwareTrait.php', - 'Psr\\Log\\LoggerInterface' => __DIR__ . '/..' . '/psr/log/Psr/Log/LoggerInterface.php', - 'Psr\\Log\\LoggerTrait' => __DIR__ . '/..' . '/psr/log/Psr/Log/LoggerTrait.php', - 'Psr\\Log\\NullLogger' => __DIR__ . '/..' . '/psr/log/Psr/Log/NullLogger.php', - 'Psr\\Log\\Test\\DummyTest' => __DIR__ . '/..' . '/psr/log/Psr/Log/Test/LoggerInterfaceTest.php', - 'Psr\\Log\\Test\\LoggerInterfaceTest' => __DIR__ . '/..' . '/psr/log/Psr/Log/Test/LoggerInterfaceTest.php', - 'Psr\\SimpleCache\\CacheException' => __DIR__ . '/..' . '/psr/simple-cache/src/CacheException.php', - 'Psr\\SimpleCache\\CacheInterface' => __DIR__ . '/..' . '/psr/simple-cache/src/CacheInterface.php', - 'Psr\\SimpleCache\\InvalidArgumentException' => __DIR__ . '/..' . '/psr/simple-cache/src/InvalidArgumentException.php', - 'Psy\\CodeCleaner' => __DIR__ . '/..' . '/psy/psysh/src/CodeCleaner.php', - 'Psy\\CodeCleaner\\AbstractClassPass' => __DIR__ . '/..' . '/psy/psysh/src/CodeCleaner/AbstractClassPass.php', - 'Psy\\CodeCleaner\\AssignThisVariablePass' => __DIR__ . '/..' . '/psy/psysh/src/CodeCleaner/AssignThisVariablePass.php', - 'Psy\\CodeCleaner\\CallTimePassByReferencePass' => __DIR__ . '/..' . '/psy/psysh/src/CodeCleaner/CallTimePassByReferencePass.php', - 'Psy\\CodeCleaner\\CalledClassPass' => __DIR__ . '/..' . '/psy/psysh/src/CodeCleaner/CalledClassPass.php', - 'Psy\\CodeCleaner\\CodeCleanerPass' => __DIR__ . '/..' . '/psy/psysh/src/CodeCleaner/CodeCleanerPass.php', - 'Psy\\CodeCleaner\\ExitPass' => __DIR__ . '/..' . '/psy/psysh/src/CodeCleaner/ExitPass.php', - 'Psy\\CodeCleaner\\FinalClassPass' => __DIR__ . '/..' . '/psy/psysh/src/CodeCleaner/FinalClassPass.php', - 'Psy\\CodeCleaner\\FunctionContextPass' => __DIR__ . '/..' . '/psy/psysh/src/CodeCleaner/FunctionContextPass.php', - 'Psy\\CodeCleaner\\FunctionReturnInWriteContextPass' => __DIR__ . '/..' . '/psy/psysh/src/CodeCleaner/FunctionReturnInWriteContextPass.php', - 'Psy\\CodeCleaner\\ImplicitReturnPass' => __DIR__ . '/..' . '/psy/psysh/src/CodeCleaner/ImplicitReturnPass.php', - 'Psy\\CodeCleaner\\InstanceOfPass' => __DIR__ . '/..' . '/psy/psysh/src/CodeCleaner/InstanceOfPass.php', - 'Psy\\CodeCleaner\\LeavePsyshAlonePass' => __DIR__ . '/..' . '/psy/psysh/src/CodeCleaner/LeavePsyshAlonePass.php', - 'Psy\\CodeCleaner\\LegacyEmptyPass' => __DIR__ . '/..' . '/psy/psysh/src/CodeCleaner/LegacyEmptyPass.php', - 'Psy\\CodeCleaner\\ListPass' => __DIR__ . '/..' . '/psy/psysh/src/CodeCleaner/ListPass.php', - 'Psy\\CodeCleaner\\LoopContextPass' => __DIR__ . '/..' . '/psy/psysh/src/CodeCleaner/LoopContextPass.php', - 'Psy\\CodeCleaner\\MagicConstantsPass' => __DIR__ . '/..' . '/psy/psysh/src/CodeCleaner/MagicConstantsPass.php', - 'Psy\\CodeCleaner\\NamespaceAwarePass' => __DIR__ . '/..' . '/psy/psysh/src/CodeCleaner/NamespaceAwarePass.php', - 'Psy\\CodeCleaner\\NamespacePass' => __DIR__ . '/..' . '/psy/psysh/src/CodeCleaner/NamespacePass.php', - 'Psy\\CodeCleaner\\NoReturnValue' => __DIR__ . '/..' . '/psy/psysh/src/CodeCleaner/NoReturnValue.php', - 'Psy\\CodeCleaner\\PassableByReferencePass' => __DIR__ . '/..' . '/psy/psysh/src/CodeCleaner/PassableByReferencePass.php', - 'Psy\\CodeCleaner\\RequirePass' => __DIR__ . '/..' . '/psy/psysh/src/CodeCleaner/RequirePass.php', - 'Psy\\CodeCleaner\\StrictTypesPass' => __DIR__ . '/..' . '/psy/psysh/src/CodeCleaner/StrictTypesPass.php', - 'Psy\\CodeCleaner\\UseStatementPass' => __DIR__ . '/..' . '/psy/psysh/src/CodeCleaner/UseStatementPass.php', - 'Psy\\CodeCleaner\\ValidClassNamePass' => __DIR__ . '/..' . '/psy/psysh/src/CodeCleaner/ValidClassNamePass.php', - 'Psy\\CodeCleaner\\ValidConstantPass' => __DIR__ . '/..' . '/psy/psysh/src/CodeCleaner/ValidConstantPass.php', - 'Psy\\CodeCleaner\\ValidConstructorPass' => __DIR__ . '/..' . '/psy/psysh/src/CodeCleaner/ValidConstructorPass.php', - 'Psy\\CodeCleaner\\ValidFunctionNamePass' => __DIR__ . '/..' . '/psy/psysh/src/CodeCleaner/ValidFunctionNamePass.php', - 'Psy\\Command\\BufferCommand' => __DIR__ . '/..' . '/psy/psysh/src/Command/BufferCommand.php', - 'Psy\\Command\\ClearCommand' => __DIR__ . '/..' . '/psy/psysh/src/Command/ClearCommand.php', - 'Psy\\Command\\Command' => __DIR__ . '/..' . '/psy/psysh/src/Command/Command.php', - 'Psy\\Command\\DocCommand' => __DIR__ . '/..' . '/psy/psysh/src/Command/DocCommand.php', - 'Psy\\Command\\DumpCommand' => __DIR__ . '/..' . '/psy/psysh/src/Command/DumpCommand.php', - 'Psy\\Command\\EditCommand' => __DIR__ . '/..' . '/psy/psysh/src/Command/EditCommand.php', - 'Psy\\Command\\ExitCommand' => __DIR__ . '/..' . '/psy/psysh/src/Command/ExitCommand.php', - 'Psy\\Command\\HelpCommand' => __DIR__ . '/..' . '/psy/psysh/src/Command/HelpCommand.php', - 'Psy\\Command\\HistoryCommand' => __DIR__ . '/..' . '/psy/psysh/src/Command/HistoryCommand.php', - 'Psy\\Command\\ListCommand' => __DIR__ . '/..' . '/psy/psysh/src/Command/ListCommand.php', - 'Psy\\Command\\ListCommand\\ClassConstantEnumerator' => __DIR__ . '/..' . '/psy/psysh/src/Command/ListCommand/ClassConstantEnumerator.php', - 'Psy\\Command\\ListCommand\\ClassEnumerator' => __DIR__ . '/..' . '/psy/psysh/src/Command/ListCommand/ClassEnumerator.php', - 'Psy\\Command\\ListCommand\\ConstantEnumerator' => __DIR__ . '/..' . '/psy/psysh/src/Command/ListCommand/ConstantEnumerator.php', - 'Psy\\Command\\ListCommand\\Enumerator' => __DIR__ . '/..' . '/psy/psysh/src/Command/ListCommand/Enumerator.php', - 'Psy\\Command\\ListCommand\\FunctionEnumerator' => __DIR__ . '/..' . '/psy/psysh/src/Command/ListCommand/FunctionEnumerator.php', - 'Psy\\Command\\ListCommand\\GlobalVariableEnumerator' => __DIR__ . '/..' . '/psy/psysh/src/Command/ListCommand/GlobalVariableEnumerator.php', - 'Psy\\Command\\ListCommand\\InterfaceEnumerator' => __DIR__ . '/..' . '/psy/psysh/src/Command/ListCommand/InterfaceEnumerator.php', - 'Psy\\Command\\ListCommand\\MethodEnumerator' => __DIR__ . '/..' . '/psy/psysh/src/Command/ListCommand/MethodEnumerator.php', - 'Psy\\Command\\ListCommand\\PropertyEnumerator' => __DIR__ . '/..' . '/psy/psysh/src/Command/ListCommand/PropertyEnumerator.php', - 'Psy\\Command\\ListCommand\\TraitEnumerator' => __DIR__ . '/..' . '/psy/psysh/src/Command/ListCommand/TraitEnumerator.php', - 'Psy\\Command\\ListCommand\\VariableEnumerator' => __DIR__ . '/..' . '/psy/psysh/src/Command/ListCommand/VariableEnumerator.php', - 'Psy\\Command\\ParseCommand' => __DIR__ . '/..' . '/psy/psysh/src/Command/ParseCommand.php', - 'Psy\\Command\\PsyVersionCommand' => __DIR__ . '/..' . '/psy/psysh/src/Command/PsyVersionCommand.php', - 'Psy\\Command\\ReflectingCommand' => __DIR__ . '/..' . '/psy/psysh/src/Command/ReflectingCommand.php', - 'Psy\\Command\\ShowCommand' => __DIR__ . '/..' . '/psy/psysh/src/Command/ShowCommand.php', - 'Psy\\Command\\SudoCommand' => __DIR__ . '/..' . '/psy/psysh/src/Command/SudoCommand.php', - 'Psy\\Command\\ThrowUpCommand' => __DIR__ . '/..' . '/psy/psysh/src/Command/ThrowUpCommand.php', - 'Psy\\Command\\TimeitCommand' => __DIR__ . '/..' . '/psy/psysh/src/Command/TimeitCommand.php', - 'Psy\\Command\\TimeitCommand\\TimeitVisitor' => __DIR__ . '/..' . '/psy/psysh/src/Command/TimeitCommand/TimeitVisitor.php', - 'Psy\\Command\\TraceCommand' => __DIR__ . '/..' . '/psy/psysh/src/Command/TraceCommand.php', - 'Psy\\Command\\WhereamiCommand' => __DIR__ . '/..' . '/psy/psysh/src/Command/WhereamiCommand.php', - 'Psy\\Command\\WtfCommand' => __DIR__ . '/..' . '/psy/psysh/src/Command/WtfCommand.php', - 'Psy\\ConfigPaths' => __DIR__ . '/..' . '/psy/psysh/src/ConfigPaths.php', - 'Psy\\Configuration' => __DIR__ . '/..' . '/psy/psysh/src/Configuration.php', - 'Psy\\ConsoleColorFactory' => __DIR__ . '/..' . '/psy/psysh/src/ConsoleColorFactory.php', - 'Psy\\Context' => __DIR__ . '/..' . '/psy/psysh/src/Context.php', - 'Psy\\ContextAware' => __DIR__ . '/..' . '/psy/psysh/src/ContextAware.php', - 'Psy\\Exception\\BreakException' => __DIR__ . '/..' . '/psy/psysh/src/Exception/BreakException.php', - 'Psy\\Exception\\DeprecatedException' => __DIR__ . '/..' . '/psy/psysh/src/Exception/DeprecatedException.php', - 'Psy\\Exception\\ErrorException' => __DIR__ . '/..' . '/psy/psysh/src/Exception/ErrorException.php', - 'Psy\\Exception\\Exception' => __DIR__ . '/..' . '/psy/psysh/src/Exception/Exception.php', - 'Psy\\Exception\\FatalErrorException' => __DIR__ . '/..' . '/psy/psysh/src/Exception/FatalErrorException.php', - 'Psy\\Exception\\ParseErrorException' => __DIR__ . '/..' . '/psy/psysh/src/Exception/ParseErrorException.php', - 'Psy\\Exception\\RuntimeException' => __DIR__ . '/..' . '/psy/psysh/src/Exception/RuntimeException.php', - 'Psy\\Exception\\ThrowUpException' => __DIR__ . '/..' . '/psy/psysh/src/Exception/ThrowUpException.php', - 'Psy\\Exception\\TypeErrorException' => __DIR__ . '/..' . '/psy/psysh/src/Exception/TypeErrorException.php', - 'Psy\\ExecutionClosure' => __DIR__ . '/..' . '/psy/psysh/src/ExecutionClosure.php', - 'Psy\\ExecutionLoop' => __DIR__ . '/..' . '/psy/psysh/src/ExecutionLoop.php', - 'Psy\\ExecutionLoopClosure' => __DIR__ . '/..' . '/psy/psysh/src/ExecutionLoopClosure.php', - 'Psy\\ExecutionLoop\\AbstractListener' => __DIR__ . '/..' . '/psy/psysh/src/ExecutionLoop/AbstractListener.php', - 'Psy\\ExecutionLoop\\Listener' => __DIR__ . '/..' . '/psy/psysh/src/ExecutionLoop/Listener.php', - 'Psy\\ExecutionLoop\\ProcessForker' => __DIR__ . '/..' . '/psy/psysh/src/ExecutionLoop/ProcessForker.php', - 'Psy\\ExecutionLoop\\RunkitReloader' => __DIR__ . '/..' . '/psy/psysh/src/ExecutionLoop/RunkitReloader.php', - 'Psy\\Formatter\\CodeFormatter' => __DIR__ . '/..' . '/psy/psysh/src/Formatter/CodeFormatter.php', - 'Psy\\Formatter\\DocblockFormatter' => __DIR__ . '/..' . '/psy/psysh/src/Formatter/DocblockFormatter.php', - 'Psy\\Formatter\\Formatter' => __DIR__ . '/..' . '/psy/psysh/src/Formatter/Formatter.php', - 'Psy\\Formatter\\SignatureFormatter' => __DIR__ . '/..' . '/psy/psysh/src/Formatter/SignatureFormatter.php', - 'Psy\\Input\\CodeArgument' => __DIR__ . '/..' . '/psy/psysh/src/Input/CodeArgument.php', - 'Psy\\Input\\FilterOptions' => __DIR__ . '/..' . '/psy/psysh/src/Input/FilterOptions.php', - 'Psy\\Input\\ShellInput' => __DIR__ . '/..' . '/psy/psysh/src/Input/ShellInput.php', - 'Psy\\Input\\SilentInput' => __DIR__ . '/..' . '/psy/psysh/src/Input/SilentInput.php', - 'Psy\\Output\\OutputPager' => __DIR__ . '/..' . '/psy/psysh/src/Output/OutputPager.php', - 'Psy\\Output\\PassthruPager' => __DIR__ . '/..' . '/psy/psysh/src/Output/PassthruPager.php', - 'Psy\\Output\\ProcOutputPager' => __DIR__ . '/..' . '/psy/psysh/src/Output/ProcOutputPager.php', - 'Psy\\Output\\ShellOutput' => __DIR__ . '/..' . '/psy/psysh/src/Output/ShellOutput.php', - 'Psy\\ParserFactory' => __DIR__ . '/..' . '/psy/psysh/src/ParserFactory.php', - 'Psy\\Readline\\GNUReadline' => __DIR__ . '/..' . '/psy/psysh/src/Readline/GNUReadline.php', - 'Psy\\Readline\\HoaConsole' => __DIR__ . '/..' . '/psy/psysh/src/Readline/HoaConsole.php', - 'Psy\\Readline\\Libedit' => __DIR__ . '/..' . '/psy/psysh/src/Readline/Libedit.php', - 'Psy\\Readline\\Readline' => __DIR__ . '/..' . '/psy/psysh/src/Readline/Readline.php', - 'Psy\\Readline\\Transient' => __DIR__ . '/..' . '/psy/psysh/src/Readline/Transient.php', - 'Psy\\Reflection\\ReflectionClassConstant' => __DIR__ . '/..' . '/psy/psysh/src/Reflection/ReflectionClassConstant.php', - 'Psy\\Reflection\\ReflectionConstant' => __DIR__ . '/..' . '/psy/psysh/src/Reflection/ReflectionConstant.php', - 'Psy\\Reflection\\ReflectionConstant_' => __DIR__ . '/..' . '/psy/psysh/src/Reflection/ReflectionConstant_.php', - 'Psy\\Reflection\\ReflectionLanguageConstruct' => __DIR__ . '/..' . '/psy/psysh/src/Reflection/ReflectionLanguageConstruct.php', - 'Psy\\Reflection\\ReflectionLanguageConstructParameter' => __DIR__ . '/..' . '/psy/psysh/src/Reflection/ReflectionLanguageConstructParameter.php', - 'Psy\\Shell' => __DIR__ . '/..' . '/psy/psysh/src/Shell.php', - 'Psy\\Sudo' => __DIR__ . '/..' . '/psy/psysh/src/Sudo.php', - 'Psy\\Sudo\\SudoVisitor' => __DIR__ . '/..' . '/psy/psysh/src/Sudo/SudoVisitor.php', - 'Psy\\TabCompletion\\AutoCompleter' => __DIR__ . '/..' . '/psy/psysh/src/TabCompletion/AutoCompleter.php', - 'Psy\\TabCompletion\\Matcher\\AbstractContextAwareMatcher' => __DIR__ . '/..' . '/psy/psysh/src/TabCompletion/Matcher/AbstractContextAwareMatcher.php', - 'Psy\\TabCompletion\\Matcher\\AbstractDefaultParametersMatcher' => __DIR__ . '/..' . '/psy/psysh/src/TabCompletion/Matcher/AbstractDefaultParametersMatcher.php', - 'Psy\\TabCompletion\\Matcher\\AbstractMatcher' => __DIR__ . '/..' . '/psy/psysh/src/TabCompletion/Matcher/AbstractMatcher.php', - 'Psy\\TabCompletion\\Matcher\\ClassAttributesMatcher' => __DIR__ . '/..' . '/psy/psysh/src/TabCompletion/Matcher/ClassAttributesMatcher.php', - 'Psy\\TabCompletion\\Matcher\\ClassMethodDefaultParametersMatcher' => __DIR__ . '/..' . '/psy/psysh/src/TabCompletion/Matcher/ClassMethodDefaultParametersMatcher.php', - 'Psy\\TabCompletion\\Matcher\\ClassMethodsMatcher' => __DIR__ . '/..' . '/psy/psysh/src/TabCompletion/Matcher/ClassMethodsMatcher.php', - 'Psy\\TabCompletion\\Matcher\\ClassNamesMatcher' => __DIR__ . '/..' . '/psy/psysh/src/TabCompletion/Matcher/ClassNamesMatcher.php', - 'Psy\\TabCompletion\\Matcher\\CommandsMatcher' => __DIR__ . '/..' . '/psy/psysh/src/TabCompletion/Matcher/CommandsMatcher.php', - 'Psy\\TabCompletion\\Matcher\\ConstantsMatcher' => __DIR__ . '/..' . '/psy/psysh/src/TabCompletion/Matcher/ConstantsMatcher.php', - 'Psy\\TabCompletion\\Matcher\\FunctionDefaultParametersMatcher' => __DIR__ . '/..' . '/psy/psysh/src/TabCompletion/Matcher/FunctionDefaultParametersMatcher.php', - 'Psy\\TabCompletion\\Matcher\\FunctionsMatcher' => __DIR__ . '/..' . '/psy/psysh/src/TabCompletion/Matcher/FunctionsMatcher.php', - 'Psy\\TabCompletion\\Matcher\\KeywordsMatcher' => __DIR__ . '/..' . '/psy/psysh/src/TabCompletion/Matcher/KeywordsMatcher.php', - 'Psy\\TabCompletion\\Matcher\\MongoClientMatcher' => __DIR__ . '/..' . '/psy/psysh/src/TabCompletion/Matcher/MongoClientMatcher.php', - 'Psy\\TabCompletion\\Matcher\\MongoDatabaseMatcher' => __DIR__ . '/..' . '/psy/psysh/src/TabCompletion/Matcher/MongoDatabaseMatcher.php', - 'Psy\\TabCompletion\\Matcher\\ObjectAttributesMatcher' => __DIR__ . '/..' . '/psy/psysh/src/TabCompletion/Matcher/ObjectAttributesMatcher.php', - 'Psy\\TabCompletion\\Matcher\\ObjectMethodDefaultParametersMatcher' => __DIR__ . '/..' . '/psy/psysh/src/TabCompletion/Matcher/ObjectMethodDefaultParametersMatcher.php', - 'Psy\\TabCompletion\\Matcher\\ObjectMethodsMatcher' => __DIR__ . '/..' . '/psy/psysh/src/TabCompletion/Matcher/ObjectMethodsMatcher.php', - 'Psy\\TabCompletion\\Matcher\\VariablesMatcher' => __DIR__ . '/..' . '/psy/psysh/src/TabCompletion/Matcher/VariablesMatcher.php', - 'Psy\\Util\\Docblock' => __DIR__ . '/..' . '/psy/psysh/src/Util/Docblock.php', - 'Psy\\Util\\Json' => __DIR__ . '/..' . '/psy/psysh/src/Util/Json.php', - 'Psy\\Util\\Mirror' => __DIR__ . '/..' . '/psy/psysh/src/Util/Mirror.php', - 'Psy\\Util\\Str' => __DIR__ . '/..' . '/psy/psysh/src/Util/Str.php', - 'Psy\\VarDumper\\Cloner' => __DIR__ . '/..' . '/psy/psysh/src/VarDumper/Cloner.php', - 'Psy\\VarDumper\\Dumper' => __DIR__ . '/..' . '/psy/psysh/src/VarDumper/Dumper.php', - 'Psy\\VarDumper\\Presenter' => __DIR__ . '/..' . '/psy/psysh/src/VarDumper/Presenter.php', - 'Psy\\VarDumper\\PresenterAware' => __DIR__ . '/..' . '/psy/psysh/src/VarDumper/PresenterAware.php', - 'Psy\\VersionUpdater\\Checker' => __DIR__ . '/..' . '/psy/psysh/src/VersionUpdater/Checker.php', - 'Psy\\VersionUpdater\\GitHubChecker' => __DIR__ . '/..' . '/psy/psysh/src/VersionUpdater/GitHubChecker.php', - 'Psy\\VersionUpdater\\IntervalChecker' => __DIR__ . '/..' . '/psy/psysh/src/VersionUpdater/IntervalChecker.php', - 'Psy\\VersionUpdater\\NoopChecker' => __DIR__ . '/..' . '/psy/psysh/src/VersionUpdater/NoopChecker.php', - 'Ramsey\\Uuid\\BinaryUtils' => __DIR__ . '/..' . '/ramsey/uuid/src/BinaryUtils.php', - 'Ramsey\\Uuid\\Builder\\DefaultUuidBuilder' => __DIR__ . '/..' . '/ramsey/uuid/src/Builder/DefaultUuidBuilder.php', - 'Ramsey\\Uuid\\Builder\\DegradedUuidBuilder' => __DIR__ . '/..' . '/ramsey/uuid/src/Builder/DegradedUuidBuilder.php', - 'Ramsey\\Uuid\\Builder\\UuidBuilderInterface' => __DIR__ . '/..' . '/ramsey/uuid/src/Builder/UuidBuilderInterface.php', - 'Ramsey\\Uuid\\Codec\\CodecInterface' => __DIR__ . '/..' . '/ramsey/uuid/src/Codec/CodecInterface.php', - 'Ramsey\\Uuid\\Codec\\GuidStringCodec' => __DIR__ . '/..' . '/ramsey/uuid/src/Codec/GuidStringCodec.php', - 'Ramsey\\Uuid\\Codec\\OrderedTimeCodec' => __DIR__ . '/..' . '/ramsey/uuid/src/Codec/OrderedTimeCodec.php', - 'Ramsey\\Uuid\\Codec\\StringCodec' => __DIR__ . '/..' . '/ramsey/uuid/src/Codec/StringCodec.php', - 'Ramsey\\Uuid\\Codec\\TimestampFirstCombCodec' => __DIR__ . '/..' . '/ramsey/uuid/src/Codec/TimestampFirstCombCodec.php', - 'Ramsey\\Uuid\\Codec\\TimestampLastCombCodec' => __DIR__ . '/..' . '/ramsey/uuid/src/Codec/TimestampLastCombCodec.php', - 'Ramsey\\Uuid\\Converter\\NumberConverterInterface' => __DIR__ . '/..' . '/ramsey/uuid/src/Converter/NumberConverterInterface.php', - 'Ramsey\\Uuid\\Converter\\Number\\BigNumberConverter' => __DIR__ . '/..' . '/ramsey/uuid/src/Converter/Number/BigNumberConverter.php', - 'Ramsey\\Uuid\\Converter\\Number\\DegradedNumberConverter' => __DIR__ . '/..' . '/ramsey/uuid/src/Converter/Number/DegradedNumberConverter.php', - 'Ramsey\\Uuid\\Converter\\TimeConverterInterface' => __DIR__ . '/..' . '/ramsey/uuid/src/Converter/TimeConverterInterface.php', - 'Ramsey\\Uuid\\Converter\\Time\\BigNumberTimeConverter' => __DIR__ . '/..' . '/ramsey/uuid/src/Converter/Time/BigNumberTimeConverter.php', - 'Ramsey\\Uuid\\Converter\\Time\\DegradedTimeConverter' => __DIR__ . '/..' . '/ramsey/uuid/src/Converter/Time/DegradedTimeConverter.php', - 'Ramsey\\Uuid\\Converter\\Time\\PhpTimeConverter' => __DIR__ . '/..' . '/ramsey/uuid/src/Converter/Time/PhpTimeConverter.php', - 'Ramsey\\Uuid\\DegradedUuid' => __DIR__ . '/..' . '/ramsey/uuid/src/DegradedUuid.php', - 'Ramsey\\Uuid\\Exception\\InvalidUuidStringException' => __DIR__ . '/..' . '/ramsey/uuid/src/Exception/InvalidUuidStringException.php', - 'Ramsey\\Uuid\\Exception\\UnsatisfiedDependencyException' => __DIR__ . '/..' . '/ramsey/uuid/src/Exception/UnsatisfiedDependencyException.php', - 'Ramsey\\Uuid\\Exception\\UnsupportedOperationException' => __DIR__ . '/..' . '/ramsey/uuid/src/Exception/UnsupportedOperationException.php', - 'Ramsey\\Uuid\\FeatureSet' => __DIR__ . '/..' . '/ramsey/uuid/src/FeatureSet.php', - 'Ramsey\\Uuid\\Generator\\CombGenerator' => __DIR__ . '/..' . '/ramsey/uuid/src/Generator/CombGenerator.php', - 'Ramsey\\Uuid\\Generator\\DefaultTimeGenerator' => __DIR__ . '/..' . '/ramsey/uuid/src/Generator/DefaultTimeGenerator.php', - 'Ramsey\\Uuid\\Generator\\MtRandGenerator' => __DIR__ . '/..' . '/ramsey/uuid/src/Generator/MtRandGenerator.php', - 'Ramsey\\Uuid\\Generator\\OpenSslGenerator' => __DIR__ . '/..' . '/ramsey/uuid/src/Generator/OpenSslGenerator.php', - 'Ramsey\\Uuid\\Generator\\PeclUuidRandomGenerator' => __DIR__ . '/..' . '/ramsey/uuid/src/Generator/PeclUuidRandomGenerator.php', - 'Ramsey\\Uuid\\Generator\\PeclUuidTimeGenerator' => __DIR__ . '/..' . '/ramsey/uuid/src/Generator/PeclUuidTimeGenerator.php', - 'Ramsey\\Uuid\\Generator\\RandomBytesGenerator' => __DIR__ . '/..' . '/ramsey/uuid/src/Generator/RandomBytesGenerator.php', - 'Ramsey\\Uuid\\Generator\\RandomGeneratorFactory' => __DIR__ . '/..' . '/ramsey/uuid/src/Generator/RandomGeneratorFactory.php', - 'Ramsey\\Uuid\\Generator\\RandomGeneratorInterface' => __DIR__ . '/..' . '/ramsey/uuid/src/Generator/RandomGeneratorInterface.php', - 'Ramsey\\Uuid\\Generator\\RandomLibAdapter' => __DIR__ . '/..' . '/ramsey/uuid/src/Generator/RandomLibAdapter.php', - 'Ramsey\\Uuid\\Generator\\SodiumRandomGenerator' => __DIR__ . '/..' . '/ramsey/uuid/src/Generator/SodiumRandomGenerator.php', - 'Ramsey\\Uuid\\Generator\\TimeGeneratorFactory' => __DIR__ . '/..' . '/ramsey/uuid/src/Generator/TimeGeneratorFactory.php', - 'Ramsey\\Uuid\\Generator\\TimeGeneratorInterface' => __DIR__ . '/..' . '/ramsey/uuid/src/Generator/TimeGeneratorInterface.php', - 'Ramsey\\Uuid\\Provider\\NodeProviderInterface' => __DIR__ . '/..' . '/ramsey/uuid/src/Provider/NodeProviderInterface.php', - 'Ramsey\\Uuid\\Provider\\Node\\FallbackNodeProvider' => __DIR__ . '/..' . '/ramsey/uuid/src/Provider/Node/FallbackNodeProvider.php', - 'Ramsey\\Uuid\\Provider\\Node\\RandomNodeProvider' => __DIR__ . '/..' . '/ramsey/uuid/src/Provider/Node/RandomNodeProvider.php', - 'Ramsey\\Uuid\\Provider\\Node\\SystemNodeProvider' => __DIR__ . '/..' . '/ramsey/uuid/src/Provider/Node/SystemNodeProvider.php', - 'Ramsey\\Uuid\\Provider\\TimeProviderInterface' => __DIR__ . '/..' . '/ramsey/uuid/src/Provider/TimeProviderInterface.php', - 'Ramsey\\Uuid\\Provider\\Time\\FixedTimeProvider' => __DIR__ . '/..' . '/ramsey/uuid/src/Provider/Time/FixedTimeProvider.php', - 'Ramsey\\Uuid\\Provider\\Time\\SystemTimeProvider' => __DIR__ . '/..' . '/ramsey/uuid/src/Provider/Time/SystemTimeProvider.php', - 'Ramsey\\Uuid\\Uuid' => __DIR__ . '/..' . '/ramsey/uuid/src/Uuid.php', - 'Ramsey\\Uuid\\UuidFactory' => __DIR__ . '/..' . '/ramsey/uuid/src/UuidFactory.php', - 'Ramsey\\Uuid\\UuidFactoryInterface' => __DIR__ . '/..' . '/ramsey/uuid/src/UuidFactoryInterface.php', - 'Ramsey\\Uuid\\UuidInterface' => __DIR__ . '/..' . '/ramsey/uuid/src/UuidInterface.php', - 'SebastianBergmann\\CodeCoverage\\CodeCoverage' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/CodeCoverage.php', - 'SebastianBergmann\\CodeCoverage\\CoveredCodeNotExecutedException' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Exception/CoveredCodeNotExecutedException.php', - 'SebastianBergmann\\CodeCoverage\\Driver\\Driver' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Driver/Driver.php', - 'SebastianBergmann\\CodeCoverage\\Driver\\PHPDBG' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Driver/PHPDBG.php', - 'SebastianBergmann\\CodeCoverage\\Driver\\Xdebug' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Driver/Xdebug.php', - 'SebastianBergmann\\CodeCoverage\\Exception' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Exception/Exception.php', - 'SebastianBergmann\\CodeCoverage\\Filter' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Filter.php', - 'SebastianBergmann\\CodeCoverage\\InvalidArgumentException' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Exception/InvalidArgumentException.php', - 'SebastianBergmann\\CodeCoverage\\MissingCoversAnnotationException' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Exception/MissingCoversAnnotationException.php', - 'SebastianBergmann\\CodeCoverage\\Node\\AbstractNode' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Node/AbstractNode.php', - 'SebastianBergmann\\CodeCoverage\\Node\\Builder' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Node/Builder.php', - 'SebastianBergmann\\CodeCoverage\\Node\\Directory' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Node/Directory.php', - 'SebastianBergmann\\CodeCoverage\\Node\\File' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Node/File.php', - 'SebastianBergmann\\CodeCoverage\\Node\\Iterator' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Node/Iterator.php', - 'SebastianBergmann\\CodeCoverage\\Report\\Clover' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Clover.php', - 'SebastianBergmann\\CodeCoverage\\Report\\Crap4j' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Crap4j.php', - 'SebastianBergmann\\CodeCoverage\\Report\\Html\\Dashboard' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Html/Renderer/Dashboard.php', - 'SebastianBergmann\\CodeCoverage\\Report\\Html\\Directory' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Html/Renderer/Directory.php', - 'SebastianBergmann\\CodeCoverage\\Report\\Html\\Facade' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Html/Facade.php', - 'SebastianBergmann\\CodeCoverage\\Report\\Html\\File' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Html/Renderer/File.php', - 'SebastianBergmann\\CodeCoverage\\Report\\Html\\Renderer' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Html/Renderer.php', - 'SebastianBergmann\\CodeCoverage\\Report\\PHP' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/PHP.php', - 'SebastianBergmann\\CodeCoverage\\Report\\Text' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Text.php', - 'SebastianBergmann\\CodeCoverage\\Report\\Xml\\BuildInformation' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Xml/BuildInformation.php', - 'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Coverage' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Xml/Coverage.php', - 'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Directory' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Xml/Directory.php', - 'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Facade' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Xml/Facade.php', - 'SebastianBergmann\\CodeCoverage\\Report\\Xml\\File' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Xml/File.php', - 'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Method' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Xml/Method.php', - 'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Node' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Xml/Node.php', - 'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Project' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Xml/Project.php', - 'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Report' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Xml/Report.php', - 'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Source' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Xml/Source.php', - 'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Tests' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Xml/Tests.php', - 'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Totals' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Xml/Totals.php', - 'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Unit' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Xml/Unit.php', - 'SebastianBergmann\\CodeCoverage\\RuntimeException' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Exception/RuntimeException.php', - 'SebastianBergmann\\CodeCoverage\\UnintentionallyCoveredCodeException' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Exception/UnintentionallyCoveredCodeException.php', - 'SebastianBergmann\\CodeCoverage\\Util' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Util.php', - 'SebastianBergmann\\CodeCoverage\\Version' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Version.php', - 'SebastianBergmann\\CodeUnitReverseLookup\\Wizard' => __DIR__ . '/..' . '/sebastian/code-unit-reverse-lookup/src/Wizard.php', - 'SebastianBergmann\\Comparator\\ArrayComparator' => __DIR__ . '/..' . '/sebastian/comparator/src/ArrayComparator.php', - 'SebastianBergmann\\Comparator\\Comparator' => __DIR__ . '/..' . '/sebastian/comparator/src/Comparator.php', - 'SebastianBergmann\\Comparator\\ComparisonFailure' => __DIR__ . '/..' . '/sebastian/comparator/src/ComparisonFailure.php', - 'SebastianBergmann\\Comparator\\DOMNodeComparator' => __DIR__ . '/..' . '/sebastian/comparator/src/DOMNodeComparator.php', - 'SebastianBergmann\\Comparator\\DateTimeComparator' => __DIR__ . '/..' . '/sebastian/comparator/src/DateTimeComparator.php', - 'SebastianBergmann\\Comparator\\DoubleComparator' => __DIR__ . '/..' . '/sebastian/comparator/src/DoubleComparator.php', - 'SebastianBergmann\\Comparator\\ExceptionComparator' => __DIR__ . '/..' . '/sebastian/comparator/src/ExceptionComparator.php', - 'SebastianBergmann\\Comparator\\Factory' => __DIR__ . '/..' . '/sebastian/comparator/src/Factory.php', - 'SebastianBergmann\\Comparator\\MockObjectComparator' => __DIR__ . '/..' . '/sebastian/comparator/src/MockObjectComparator.php', - 'SebastianBergmann\\Comparator\\NumericComparator' => __DIR__ . '/..' . '/sebastian/comparator/src/NumericComparator.php', - 'SebastianBergmann\\Comparator\\ObjectComparator' => __DIR__ . '/..' . '/sebastian/comparator/src/ObjectComparator.php', - 'SebastianBergmann\\Comparator\\ResourceComparator' => __DIR__ . '/..' . '/sebastian/comparator/src/ResourceComparator.php', - 'SebastianBergmann\\Comparator\\ScalarComparator' => __DIR__ . '/..' . '/sebastian/comparator/src/ScalarComparator.php', - 'SebastianBergmann\\Comparator\\SplObjectStorageComparator' => __DIR__ . '/..' . '/sebastian/comparator/src/SplObjectStorageComparator.php', - 'SebastianBergmann\\Comparator\\TypeComparator' => __DIR__ . '/..' . '/sebastian/comparator/src/TypeComparator.php', - 'SebastianBergmann\\Diff\\Chunk' => __DIR__ . '/..' . '/sebastian/diff/src/Chunk.php', - 'SebastianBergmann\\Diff\\ConfigurationException' => __DIR__ . '/..' . '/sebastian/diff/src/Exception/ConfigurationException.php', - 'SebastianBergmann\\Diff\\Diff' => __DIR__ . '/..' . '/sebastian/diff/src/Diff.php', - 'SebastianBergmann\\Diff\\Differ' => __DIR__ . '/..' . '/sebastian/diff/src/Differ.php', - 'SebastianBergmann\\Diff\\Exception' => __DIR__ . '/..' . '/sebastian/diff/src/Exception/Exception.php', - 'SebastianBergmann\\Diff\\InvalidArgumentException' => __DIR__ . '/..' . '/sebastian/diff/src/Exception/InvalidArgumentException.php', - 'SebastianBergmann\\Diff\\Line' => __DIR__ . '/..' . '/sebastian/diff/src/Line.php', - 'SebastianBergmann\\Diff\\LongestCommonSubsequenceCalculator' => __DIR__ . '/..' . '/sebastian/diff/src/LongestCommonSubsequenceCalculator.php', - 'SebastianBergmann\\Diff\\MemoryEfficientLongestCommonSubsequenceCalculator' => __DIR__ . '/..' . '/sebastian/diff/src/MemoryEfficientLongestCommonSubsequenceCalculator.php', - 'SebastianBergmann\\Diff\\Output\\AbstractChunkOutputBuilder' => __DIR__ . '/..' . '/sebastian/diff/src/Output/AbstractChunkOutputBuilder.php', - 'SebastianBergmann\\Diff\\Output\\DiffOnlyOutputBuilder' => __DIR__ . '/..' . '/sebastian/diff/src/Output/DiffOnlyOutputBuilder.php', - 'SebastianBergmann\\Diff\\Output\\DiffOutputBuilderInterface' => __DIR__ . '/..' . '/sebastian/diff/src/Output/DiffOutputBuilderInterface.php', - 'SebastianBergmann\\Diff\\Output\\StrictUnifiedDiffOutputBuilder' => __DIR__ . '/..' . '/sebastian/diff/src/Output/StrictUnifiedDiffOutputBuilder.php', - 'SebastianBergmann\\Diff\\Output\\UnifiedDiffOutputBuilder' => __DIR__ . '/..' . '/sebastian/diff/src/Output/UnifiedDiffOutputBuilder.php', - 'SebastianBergmann\\Diff\\Parser' => __DIR__ . '/..' . '/sebastian/diff/src/Parser.php', - 'SebastianBergmann\\Diff\\TimeEfficientLongestCommonSubsequenceCalculator' => __DIR__ . '/..' . '/sebastian/diff/src/TimeEfficientLongestCommonSubsequenceCalculator.php', - 'SebastianBergmann\\Environment\\Console' => __DIR__ . '/..' . '/sebastian/environment/src/Console.php', - 'SebastianBergmann\\Environment\\OperatingSystem' => __DIR__ . '/..' . '/sebastian/environment/src/OperatingSystem.php', - 'SebastianBergmann\\Environment\\Runtime' => __DIR__ . '/..' . '/sebastian/environment/src/Runtime.php', - 'SebastianBergmann\\Exporter\\Exporter' => __DIR__ . '/..' . '/sebastian/exporter/src/Exporter.php', - 'SebastianBergmann\\FileIterator\\Facade' => __DIR__ . '/..' . '/phpunit/php-file-iterator/src/Facade.php', - 'SebastianBergmann\\FileIterator\\Factory' => __DIR__ . '/..' . '/phpunit/php-file-iterator/src/Factory.php', - 'SebastianBergmann\\FileIterator\\Iterator' => __DIR__ . '/..' . '/phpunit/php-file-iterator/src/Iterator.php', - 'SebastianBergmann\\GlobalState\\Blacklist' => __DIR__ . '/..' . '/sebastian/global-state/src/Blacklist.php', - 'SebastianBergmann\\GlobalState\\CodeExporter' => __DIR__ . '/..' . '/sebastian/global-state/src/CodeExporter.php', - 'SebastianBergmann\\GlobalState\\Exception' => __DIR__ . '/..' . '/sebastian/global-state/src/exceptions/Exception.php', - 'SebastianBergmann\\GlobalState\\Restorer' => __DIR__ . '/..' . '/sebastian/global-state/src/Restorer.php', - 'SebastianBergmann\\GlobalState\\RuntimeException' => __DIR__ . '/..' . '/sebastian/global-state/src/exceptions/RuntimeException.php', - 'SebastianBergmann\\GlobalState\\Snapshot' => __DIR__ . '/..' . '/sebastian/global-state/src/Snapshot.php', - 'SebastianBergmann\\ObjectEnumerator\\Enumerator' => __DIR__ . '/..' . '/sebastian/object-enumerator/src/Enumerator.php', - 'SebastianBergmann\\ObjectEnumerator\\Exception' => __DIR__ . '/..' . '/sebastian/object-enumerator/src/Exception.php', - 'SebastianBergmann\\ObjectEnumerator\\InvalidArgumentException' => __DIR__ . '/..' . '/sebastian/object-enumerator/src/InvalidArgumentException.php', - 'SebastianBergmann\\ObjectReflector\\Exception' => __DIR__ . '/..' . '/sebastian/object-reflector/src/Exception.php', - 'SebastianBergmann\\ObjectReflector\\InvalidArgumentException' => __DIR__ . '/..' . '/sebastian/object-reflector/src/InvalidArgumentException.php', - 'SebastianBergmann\\ObjectReflector\\ObjectReflector' => __DIR__ . '/..' . '/sebastian/object-reflector/src/ObjectReflector.php', - 'SebastianBergmann\\RecursionContext\\Context' => __DIR__ . '/..' . '/sebastian/recursion-context/src/Context.php', - 'SebastianBergmann\\RecursionContext\\Exception' => __DIR__ . '/..' . '/sebastian/recursion-context/src/Exception.php', - 'SebastianBergmann\\RecursionContext\\InvalidArgumentException' => __DIR__ . '/..' . '/sebastian/recursion-context/src/InvalidArgumentException.php', - 'SebastianBergmann\\ResourceOperations\\ResourceOperations' => __DIR__ . '/..' . '/sebastian/resource-operations/src/ResourceOperations.php', - 'SebastianBergmann\\Timer\\Exception' => __DIR__ . '/..' . '/phpunit/php-timer/src/Exception.php', - 'SebastianBergmann\\Timer\\RuntimeException' => __DIR__ . '/..' . '/phpunit/php-timer/src/RuntimeException.php', - 'SebastianBergmann\\Timer\\Timer' => __DIR__ . '/..' . '/phpunit/php-timer/src/Timer.php', - 'SebastianBergmann\\Version' => __DIR__ . '/..' . '/sebastian/version/src/Version.php', - 'ServiceSeeder' => __DIR__ . '/../..' . '/database/seeds/ServiceSeeder.php', - 'SimpleSoftwareIO\\QrCode\\BaconQrCodeGenerator' => __DIR__ . '/..' . '/simplesoftwareio/simple-qrcode/src/SimpleSoftwareIO/QrCode/BaconQrCodeGenerator.php', - 'SimpleSoftwareIO\\QrCode\\DataTypes\\BTC' => __DIR__ . '/..' . '/simplesoftwareio/simple-qrcode/src/SimpleSoftwareIO/QrCode/DataTypes/BTC.php', - 'SimpleSoftwareIO\\QrCode\\DataTypes\\DataTypeInterface' => __DIR__ . '/..' . '/simplesoftwareio/simple-qrcode/src/SimpleSoftwareIO/QrCode/DataTypes/DataTypeInterface.php', - 'SimpleSoftwareIO\\QrCode\\DataTypes\\Email' => __DIR__ . '/..' . '/simplesoftwareio/simple-qrcode/src/SimpleSoftwareIO/QrCode/DataTypes/Email.php', - 'SimpleSoftwareIO\\QrCode\\DataTypes\\Geo' => __DIR__ . '/..' . '/simplesoftwareio/simple-qrcode/src/SimpleSoftwareIO/QrCode/DataTypes/Geo.php', - 'SimpleSoftwareIO\\QrCode\\DataTypes\\PhoneNumber' => __DIR__ . '/..' . '/simplesoftwareio/simple-qrcode/src/SimpleSoftwareIO/QrCode/DataTypes/PhoneNumber.php', - 'SimpleSoftwareIO\\QrCode\\DataTypes\\SMS' => __DIR__ . '/..' . '/simplesoftwareio/simple-qrcode/src/SimpleSoftwareIO/QrCode/DataTypes/SMS.php', - 'SimpleSoftwareIO\\QrCode\\DataTypes\\WiFi' => __DIR__ . '/..' . '/simplesoftwareio/simple-qrcode/src/SimpleSoftwareIO/QrCode/DataTypes/WiFi.php', - 'SimpleSoftwareIO\\QrCode\\Facades\\QrCode' => __DIR__ . '/..' . '/simplesoftwareio/simple-qrcode/src/SimpleSoftwareIO/QrCode/Facades/QrCode.php', - 'SimpleSoftwareIO\\QrCode\\Image' => __DIR__ . '/..' . '/simplesoftwareio/simple-qrcode/src/SimpleSoftwareIO/QrCode/Image.php', - 'SimpleSoftwareIO\\QrCode\\ImageInterface' => __DIR__ . '/..' . '/simplesoftwareio/simple-qrcode/src/SimpleSoftwareIO/QrCode/ImageInterface.php', - 'SimpleSoftwareIO\\QrCode\\ImageMerge' => __DIR__ . '/..' . '/simplesoftwareio/simple-qrcode/src/SimpleSoftwareIO/QrCode/ImageMerge.php', - 'SimpleSoftwareIO\\QrCode\\ImageMergeInterface' => __DIR__ . '/..' . '/simplesoftwareio/simple-qrcode/src/SimpleSoftwareIO/QrCode/ImageMergeInterface.php', - 'SimpleSoftwareIO\\QrCode\\QrCodeInterface' => __DIR__ . '/..' . '/simplesoftwareio/simple-qrcode/src/SimpleSoftwareIO/QrCode/QrCodeInterface.php', - 'SimpleSoftwareIO\\QrCode\\QrCodeServiceProvider' => __DIR__ . '/..' . '/simplesoftwareio/simple-qrcode/src/SimpleSoftwareIO/QrCode/QrCodeServiceProvider.php', - 'Spatie\\Permission\\Commands\\CreatePermission' => __DIR__ . '/..' . '/spatie/laravel-permission/src/Commands/CreatePermission.php', - 'Spatie\\Permission\\Commands\\CreateRole' => __DIR__ . '/..' . '/spatie/laravel-permission/src/Commands/CreateRole.php', - 'Spatie\\Permission\\Contracts\\Permission' => __DIR__ . '/..' . '/spatie/laravel-permission/src/Contracts/Permission.php', - 'Spatie\\Permission\\Contracts\\Role' => __DIR__ . '/..' . '/spatie/laravel-permission/src/Contracts/Role.php', - 'Spatie\\Permission\\Exceptions\\GuardDoesNotMatch' => __DIR__ . '/..' . '/spatie/laravel-permission/src/Exceptions/GuardDoesNotMatch.php', - 'Spatie\\Permission\\Exceptions\\PermissionAlreadyExists' => __DIR__ . '/..' . '/spatie/laravel-permission/src/Exceptions/PermissionAlreadyExists.php', - 'Spatie\\Permission\\Exceptions\\PermissionDoesNotExist' => __DIR__ . '/..' . '/spatie/laravel-permission/src/Exceptions/PermissionDoesNotExist.php', - 'Spatie\\Permission\\Exceptions\\RoleAlreadyExists' => __DIR__ . '/..' . '/spatie/laravel-permission/src/Exceptions/RoleAlreadyExists.php', - 'Spatie\\Permission\\Exceptions\\RoleDoesNotExist' => __DIR__ . '/..' . '/spatie/laravel-permission/src/Exceptions/RoleDoesNotExist.php', - 'Spatie\\Permission\\Exceptions\\UnauthorizedException' => __DIR__ . '/..' . '/spatie/laravel-permission/src/Exceptions/UnauthorizedException.php', - 'Spatie\\Permission\\Guard' => __DIR__ . '/..' . '/spatie/laravel-permission/src/Guard.php', - 'Spatie\\Permission\\Middlewares\\PermissionMiddleware' => __DIR__ . '/..' . '/spatie/laravel-permission/src/Middlewares/PermissionMiddleware.php', - 'Spatie\\Permission\\Middlewares\\RoleMiddleware' => __DIR__ . '/..' . '/spatie/laravel-permission/src/Middlewares/RoleMiddleware.php', - 'Spatie\\Permission\\Models\\Permission' => __DIR__ . '/..' . '/spatie/laravel-permission/src/Models/Permission.php', - 'Spatie\\Permission\\Models\\Role' => __DIR__ . '/..' . '/spatie/laravel-permission/src/Models/Role.php', - 'Spatie\\Permission\\PermissionRegistrar' => __DIR__ . '/..' . '/spatie/laravel-permission/src/PermissionRegistrar.php', - 'Spatie\\Permission\\PermissionServiceProvider' => __DIR__ . '/..' . '/spatie/laravel-permission/src/PermissionServiceProvider.php', - 'Spatie\\Permission\\Traits\\HasPermissions' => __DIR__ . '/..' . '/spatie/laravel-permission/src/Traits/HasPermissions.php', - 'Spatie\\Permission\\Traits\\HasRoles' => __DIR__ . '/..' . '/spatie/laravel-permission/src/Traits/HasRoles.php', - 'Spatie\\Permission\\Traits\\RefreshesPermissionCache' => __DIR__ . '/..' . '/spatie/laravel-permission/src/Traits/RefreshesPermissionCache.php', - 'Symfony\\Component\\Console\\Application' => __DIR__ . '/..' . '/symfony/console/Application.php', - 'Symfony\\Component\\Console\\CommandLoader\\CommandLoaderInterface' => __DIR__ . '/..' . '/symfony/console/CommandLoader/CommandLoaderInterface.php', - 'Symfony\\Component\\Console\\CommandLoader\\ContainerCommandLoader' => __DIR__ . '/..' . '/symfony/console/CommandLoader/ContainerCommandLoader.php', - 'Symfony\\Component\\Console\\CommandLoader\\FactoryCommandLoader' => __DIR__ . '/..' . '/symfony/console/CommandLoader/FactoryCommandLoader.php', - 'Symfony\\Component\\Console\\Command\\Command' => __DIR__ . '/..' . '/symfony/console/Command/Command.php', - 'Symfony\\Component\\Console\\Command\\HelpCommand' => __DIR__ . '/..' . '/symfony/console/Command/HelpCommand.php', - 'Symfony\\Component\\Console\\Command\\ListCommand' => __DIR__ . '/..' . '/symfony/console/Command/ListCommand.php', - 'Symfony\\Component\\Console\\Command\\LockableTrait' => __DIR__ . '/..' . '/symfony/console/Command/LockableTrait.php', - 'Symfony\\Component\\Console\\ConsoleEvents' => __DIR__ . '/..' . '/symfony/console/ConsoleEvents.php', - 'Symfony\\Component\\Console\\DependencyInjection\\AddConsoleCommandPass' => __DIR__ . '/..' . '/symfony/console/DependencyInjection/AddConsoleCommandPass.php', - 'Symfony\\Component\\Console\\Descriptor\\ApplicationDescription' => __DIR__ . '/..' . '/symfony/console/Descriptor/ApplicationDescription.php', - 'Symfony\\Component\\Console\\Descriptor\\Descriptor' => __DIR__ . '/..' . '/symfony/console/Descriptor/Descriptor.php', - 'Symfony\\Component\\Console\\Descriptor\\DescriptorInterface' => __DIR__ . '/..' . '/symfony/console/Descriptor/DescriptorInterface.php', - 'Symfony\\Component\\Console\\Descriptor\\JsonDescriptor' => __DIR__ . '/..' . '/symfony/console/Descriptor/JsonDescriptor.php', - 'Symfony\\Component\\Console\\Descriptor\\MarkdownDescriptor' => __DIR__ . '/..' . '/symfony/console/Descriptor/MarkdownDescriptor.php', - 'Symfony\\Component\\Console\\Descriptor\\TextDescriptor' => __DIR__ . '/..' . '/symfony/console/Descriptor/TextDescriptor.php', - 'Symfony\\Component\\Console\\Descriptor\\XmlDescriptor' => __DIR__ . '/..' . '/symfony/console/Descriptor/XmlDescriptor.php', - 'Symfony\\Component\\Console\\EventListener\\ErrorListener' => __DIR__ . '/..' . '/symfony/console/EventListener/ErrorListener.php', - 'Symfony\\Component\\Console\\Event\\ConsoleCommandEvent' => __DIR__ . '/..' . '/symfony/console/Event/ConsoleCommandEvent.php', - 'Symfony\\Component\\Console\\Event\\ConsoleErrorEvent' => __DIR__ . '/..' . '/symfony/console/Event/ConsoleErrorEvent.php', - 'Symfony\\Component\\Console\\Event\\ConsoleEvent' => __DIR__ . '/..' . '/symfony/console/Event/ConsoleEvent.php', - 'Symfony\\Component\\Console\\Event\\ConsoleTerminateEvent' => __DIR__ . '/..' . '/symfony/console/Event/ConsoleTerminateEvent.php', - 'Symfony\\Component\\Console\\Exception\\CommandNotFoundException' => __DIR__ . '/..' . '/symfony/console/Exception/CommandNotFoundException.php', - 'Symfony\\Component\\Console\\Exception\\ExceptionInterface' => __DIR__ . '/..' . '/symfony/console/Exception/ExceptionInterface.php', - 'Symfony\\Component\\Console\\Exception\\InvalidArgumentException' => __DIR__ . '/..' . '/symfony/console/Exception/InvalidArgumentException.php', - 'Symfony\\Component\\Console\\Exception\\InvalidOptionException' => __DIR__ . '/..' . '/symfony/console/Exception/InvalidOptionException.php', - 'Symfony\\Component\\Console\\Exception\\LogicException' => __DIR__ . '/..' . '/symfony/console/Exception/LogicException.php', - 'Symfony\\Component\\Console\\Exception\\NamespaceNotFoundException' => __DIR__ . '/..' . '/symfony/console/Exception/NamespaceNotFoundException.php', - 'Symfony\\Component\\Console\\Exception\\RuntimeException' => __DIR__ . '/..' . '/symfony/console/Exception/RuntimeException.php', - 'Symfony\\Component\\Console\\Formatter\\OutputFormatter' => __DIR__ . '/..' . '/symfony/console/Formatter/OutputFormatter.php', - 'Symfony\\Component\\Console\\Formatter\\OutputFormatterInterface' => __DIR__ . '/..' . '/symfony/console/Formatter/OutputFormatterInterface.php', - 'Symfony\\Component\\Console\\Formatter\\OutputFormatterStyle' => __DIR__ . '/..' . '/symfony/console/Formatter/OutputFormatterStyle.php', - 'Symfony\\Component\\Console\\Formatter\\OutputFormatterStyleInterface' => __DIR__ . '/..' . '/symfony/console/Formatter/OutputFormatterStyleInterface.php', - 'Symfony\\Component\\Console\\Formatter\\OutputFormatterStyleStack' => __DIR__ . '/..' . '/symfony/console/Formatter/OutputFormatterStyleStack.php', - 'Symfony\\Component\\Console\\Helper\\DebugFormatterHelper' => __DIR__ . '/..' . '/symfony/console/Helper/DebugFormatterHelper.php', - 'Symfony\\Component\\Console\\Helper\\DescriptorHelper' => __DIR__ . '/..' . '/symfony/console/Helper/DescriptorHelper.php', - 'Symfony\\Component\\Console\\Helper\\FormatterHelper' => __DIR__ . '/..' . '/symfony/console/Helper/FormatterHelper.php', - 'Symfony\\Component\\Console\\Helper\\Helper' => __DIR__ . '/..' . '/symfony/console/Helper/Helper.php', - 'Symfony\\Component\\Console\\Helper\\HelperInterface' => __DIR__ . '/..' . '/symfony/console/Helper/HelperInterface.php', - 'Symfony\\Component\\Console\\Helper\\HelperSet' => __DIR__ . '/..' . '/symfony/console/Helper/HelperSet.php', - 'Symfony\\Component\\Console\\Helper\\InputAwareHelper' => __DIR__ . '/..' . '/symfony/console/Helper/InputAwareHelper.php', - 'Symfony\\Component\\Console\\Helper\\ProcessHelper' => __DIR__ . '/..' . '/symfony/console/Helper/ProcessHelper.php', - 'Symfony\\Component\\Console\\Helper\\ProgressBar' => __DIR__ . '/..' . '/symfony/console/Helper/ProgressBar.php', - 'Symfony\\Component\\Console\\Helper\\ProgressIndicator' => __DIR__ . '/..' . '/symfony/console/Helper/ProgressIndicator.php', - 'Symfony\\Component\\Console\\Helper\\QuestionHelper' => __DIR__ . '/..' . '/symfony/console/Helper/QuestionHelper.php', - 'Symfony\\Component\\Console\\Helper\\SymfonyQuestionHelper' => __DIR__ . '/..' . '/symfony/console/Helper/SymfonyQuestionHelper.php', - 'Symfony\\Component\\Console\\Helper\\Table' => __DIR__ . '/..' . '/symfony/console/Helper/Table.php', - 'Symfony\\Component\\Console\\Helper\\TableCell' => __DIR__ . '/..' . '/symfony/console/Helper/TableCell.php', - 'Symfony\\Component\\Console\\Helper\\TableRows' => __DIR__ . '/..' . '/symfony/console/Helper/TableRows.php', - 'Symfony\\Component\\Console\\Helper\\TableSeparator' => __DIR__ . '/..' . '/symfony/console/Helper/TableSeparator.php', - 'Symfony\\Component\\Console\\Helper\\TableStyle' => __DIR__ . '/..' . '/symfony/console/Helper/TableStyle.php', - 'Symfony\\Component\\Console\\Input\\ArgvInput' => __DIR__ . '/..' . '/symfony/console/Input/ArgvInput.php', - 'Symfony\\Component\\Console\\Input\\ArrayInput' => __DIR__ . '/..' . '/symfony/console/Input/ArrayInput.php', - 'Symfony\\Component\\Console\\Input\\Input' => __DIR__ . '/..' . '/symfony/console/Input/Input.php', - 'Symfony\\Component\\Console\\Input\\InputArgument' => __DIR__ . '/..' . '/symfony/console/Input/InputArgument.php', - 'Symfony\\Component\\Console\\Input\\InputAwareInterface' => __DIR__ . '/..' . '/symfony/console/Input/InputAwareInterface.php', - 'Symfony\\Component\\Console\\Input\\InputDefinition' => __DIR__ . '/..' . '/symfony/console/Input/InputDefinition.php', - 'Symfony\\Component\\Console\\Input\\InputInterface' => __DIR__ . '/..' . '/symfony/console/Input/InputInterface.php', - 'Symfony\\Component\\Console\\Input\\InputOption' => __DIR__ . '/..' . '/symfony/console/Input/InputOption.php', - 'Symfony\\Component\\Console\\Input\\StreamableInputInterface' => __DIR__ . '/..' . '/symfony/console/Input/StreamableInputInterface.php', - 'Symfony\\Component\\Console\\Input\\StringInput' => __DIR__ . '/..' . '/symfony/console/Input/StringInput.php', - 'Symfony\\Component\\Console\\Logger\\ConsoleLogger' => __DIR__ . '/..' . '/symfony/console/Logger/ConsoleLogger.php', - 'Symfony\\Component\\Console\\Output\\BufferedOutput' => __DIR__ . '/..' . '/symfony/console/Output/BufferedOutput.php', - 'Symfony\\Component\\Console\\Output\\ConsoleOutput' => __DIR__ . '/..' . '/symfony/console/Output/ConsoleOutput.php', - 'Symfony\\Component\\Console\\Output\\ConsoleOutputInterface' => __DIR__ . '/..' . '/symfony/console/Output/ConsoleOutputInterface.php', - 'Symfony\\Component\\Console\\Output\\ConsoleSectionOutput' => __DIR__ . '/..' . '/symfony/console/Output/ConsoleSectionOutput.php', - 'Symfony\\Component\\Console\\Output\\NullOutput' => __DIR__ . '/..' . '/symfony/console/Output/NullOutput.php', - 'Symfony\\Component\\Console\\Output\\Output' => __DIR__ . '/..' . '/symfony/console/Output/Output.php', - 'Symfony\\Component\\Console\\Output\\OutputInterface' => __DIR__ . '/..' . '/symfony/console/Output/OutputInterface.php', - 'Symfony\\Component\\Console\\Output\\StreamOutput' => __DIR__ . '/..' . '/symfony/console/Output/StreamOutput.php', - 'Symfony\\Component\\Console\\Question\\ChoiceQuestion' => __DIR__ . '/..' . '/symfony/console/Question/ChoiceQuestion.php', - 'Symfony\\Component\\Console\\Question\\ConfirmationQuestion' => __DIR__ . '/..' . '/symfony/console/Question/ConfirmationQuestion.php', - 'Symfony\\Component\\Console\\Question\\Question' => __DIR__ . '/..' . '/symfony/console/Question/Question.php', - 'Symfony\\Component\\Console\\Style\\OutputStyle' => __DIR__ . '/..' . '/symfony/console/Style/OutputStyle.php', - 'Symfony\\Component\\Console\\Style\\StyleInterface' => __DIR__ . '/..' . '/symfony/console/Style/StyleInterface.php', - 'Symfony\\Component\\Console\\Style\\SymfonyStyle' => __DIR__ . '/..' . '/symfony/console/Style/SymfonyStyle.php', - 'Symfony\\Component\\Console\\Terminal' => __DIR__ . '/..' . '/symfony/console/Terminal.php', - 'Symfony\\Component\\Console\\Tester\\ApplicationTester' => __DIR__ . '/..' . '/symfony/console/Tester/ApplicationTester.php', - 'Symfony\\Component\\Console\\Tester\\CommandTester' => __DIR__ . '/..' . '/symfony/console/Tester/CommandTester.php', - 'Symfony\\Component\\Console\\Tester\\TesterTrait' => __DIR__ . '/..' . '/symfony/console/Tester/TesterTrait.php', - 'Symfony\\Component\\CssSelector\\CssSelectorConverter' => __DIR__ . '/..' . '/symfony/css-selector/CssSelectorConverter.php', - 'Symfony\\Component\\CssSelector\\Exception\\ExceptionInterface' => __DIR__ . '/..' . '/symfony/css-selector/Exception/ExceptionInterface.php', - 'Symfony\\Component\\CssSelector\\Exception\\ExpressionErrorException' => __DIR__ . '/..' . '/symfony/css-selector/Exception/ExpressionErrorException.php', - 'Symfony\\Component\\CssSelector\\Exception\\InternalErrorException' => __DIR__ . '/..' . '/symfony/css-selector/Exception/InternalErrorException.php', - 'Symfony\\Component\\CssSelector\\Exception\\ParseException' => __DIR__ . '/..' . '/symfony/css-selector/Exception/ParseException.php', - 'Symfony\\Component\\CssSelector\\Exception\\SyntaxErrorException' => __DIR__ . '/..' . '/symfony/css-selector/Exception/SyntaxErrorException.php', - 'Symfony\\Component\\CssSelector\\Node\\AbstractNode' => __DIR__ . '/..' . '/symfony/css-selector/Node/AbstractNode.php', - 'Symfony\\Component\\CssSelector\\Node\\AttributeNode' => __DIR__ . '/..' . '/symfony/css-selector/Node/AttributeNode.php', - 'Symfony\\Component\\CssSelector\\Node\\ClassNode' => __DIR__ . '/..' . '/symfony/css-selector/Node/ClassNode.php', - 'Symfony\\Component\\CssSelector\\Node\\CombinedSelectorNode' => __DIR__ . '/..' . '/symfony/css-selector/Node/CombinedSelectorNode.php', - 'Symfony\\Component\\CssSelector\\Node\\ElementNode' => __DIR__ . '/..' . '/symfony/css-selector/Node/ElementNode.php', - 'Symfony\\Component\\CssSelector\\Node\\FunctionNode' => __DIR__ . '/..' . '/symfony/css-selector/Node/FunctionNode.php', - 'Symfony\\Component\\CssSelector\\Node\\HashNode' => __DIR__ . '/..' . '/symfony/css-selector/Node/HashNode.php', - 'Symfony\\Component\\CssSelector\\Node\\NegationNode' => __DIR__ . '/..' . '/symfony/css-selector/Node/NegationNode.php', - 'Symfony\\Component\\CssSelector\\Node\\NodeInterface' => __DIR__ . '/..' . '/symfony/css-selector/Node/NodeInterface.php', - 'Symfony\\Component\\CssSelector\\Node\\PseudoNode' => __DIR__ . '/..' . '/symfony/css-selector/Node/PseudoNode.php', - 'Symfony\\Component\\CssSelector\\Node\\SelectorNode' => __DIR__ . '/..' . '/symfony/css-selector/Node/SelectorNode.php', - 'Symfony\\Component\\CssSelector\\Node\\Specificity' => __DIR__ . '/..' . '/symfony/css-selector/Node/Specificity.php', - 'Symfony\\Component\\CssSelector\\Parser\\Handler\\CommentHandler' => __DIR__ . '/..' . '/symfony/css-selector/Parser/Handler/CommentHandler.php', - 'Symfony\\Component\\CssSelector\\Parser\\Handler\\HandlerInterface' => __DIR__ . '/..' . '/symfony/css-selector/Parser/Handler/HandlerInterface.php', - 'Symfony\\Component\\CssSelector\\Parser\\Handler\\HashHandler' => __DIR__ . '/..' . '/symfony/css-selector/Parser/Handler/HashHandler.php', - 'Symfony\\Component\\CssSelector\\Parser\\Handler\\IdentifierHandler' => __DIR__ . '/..' . '/symfony/css-selector/Parser/Handler/IdentifierHandler.php', - 'Symfony\\Component\\CssSelector\\Parser\\Handler\\NumberHandler' => __DIR__ . '/..' . '/symfony/css-selector/Parser/Handler/NumberHandler.php', - 'Symfony\\Component\\CssSelector\\Parser\\Handler\\StringHandler' => __DIR__ . '/..' . '/symfony/css-selector/Parser/Handler/StringHandler.php', - 'Symfony\\Component\\CssSelector\\Parser\\Handler\\WhitespaceHandler' => __DIR__ . '/..' . '/symfony/css-selector/Parser/Handler/WhitespaceHandler.php', - 'Symfony\\Component\\CssSelector\\Parser\\Parser' => __DIR__ . '/..' . '/symfony/css-selector/Parser/Parser.php', - 'Symfony\\Component\\CssSelector\\Parser\\ParserInterface' => __DIR__ . '/..' . '/symfony/css-selector/Parser/ParserInterface.php', - 'Symfony\\Component\\CssSelector\\Parser\\Reader' => __DIR__ . '/..' . '/symfony/css-selector/Parser/Reader.php', - 'Symfony\\Component\\CssSelector\\Parser\\Shortcut\\ClassParser' => __DIR__ . '/..' . '/symfony/css-selector/Parser/Shortcut/ClassParser.php', - 'Symfony\\Component\\CssSelector\\Parser\\Shortcut\\ElementParser' => __DIR__ . '/..' . '/symfony/css-selector/Parser/Shortcut/ElementParser.php', - 'Symfony\\Component\\CssSelector\\Parser\\Shortcut\\EmptyStringParser' => __DIR__ . '/..' . '/symfony/css-selector/Parser/Shortcut/EmptyStringParser.php', - 'Symfony\\Component\\CssSelector\\Parser\\Shortcut\\HashParser' => __DIR__ . '/..' . '/symfony/css-selector/Parser/Shortcut/HashParser.php', - 'Symfony\\Component\\CssSelector\\Parser\\Token' => __DIR__ . '/..' . '/symfony/css-selector/Parser/Token.php', - 'Symfony\\Component\\CssSelector\\Parser\\TokenStream' => __DIR__ . '/..' . '/symfony/css-selector/Parser/TokenStream.php', - 'Symfony\\Component\\CssSelector\\Parser\\Tokenizer\\Tokenizer' => __DIR__ . '/..' . '/symfony/css-selector/Parser/Tokenizer/Tokenizer.php', - 'Symfony\\Component\\CssSelector\\Parser\\Tokenizer\\TokenizerEscaping' => __DIR__ . '/..' . '/symfony/css-selector/Parser/Tokenizer/TokenizerEscaping.php', - 'Symfony\\Component\\CssSelector\\Parser\\Tokenizer\\TokenizerPatterns' => __DIR__ . '/..' . '/symfony/css-selector/Parser/Tokenizer/TokenizerPatterns.php', - 'Symfony\\Component\\CssSelector\\XPath\\Extension\\AbstractExtension' => __DIR__ . '/..' . '/symfony/css-selector/XPath/Extension/AbstractExtension.php', - 'Symfony\\Component\\CssSelector\\XPath\\Extension\\AttributeMatchingExtension' => __DIR__ . '/..' . '/symfony/css-selector/XPath/Extension/AttributeMatchingExtension.php', - 'Symfony\\Component\\CssSelector\\XPath\\Extension\\CombinationExtension' => __DIR__ . '/..' . '/symfony/css-selector/XPath/Extension/CombinationExtension.php', - 'Symfony\\Component\\CssSelector\\XPath\\Extension\\ExtensionInterface' => __DIR__ . '/..' . '/symfony/css-selector/XPath/Extension/ExtensionInterface.php', - 'Symfony\\Component\\CssSelector\\XPath\\Extension\\FunctionExtension' => __DIR__ . '/..' . '/symfony/css-selector/XPath/Extension/FunctionExtension.php', - 'Symfony\\Component\\CssSelector\\XPath\\Extension\\HtmlExtension' => __DIR__ . '/..' . '/symfony/css-selector/XPath/Extension/HtmlExtension.php', - 'Symfony\\Component\\CssSelector\\XPath\\Extension\\NodeExtension' => __DIR__ . '/..' . '/symfony/css-selector/XPath/Extension/NodeExtension.php', - 'Symfony\\Component\\CssSelector\\XPath\\Extension\\PseudoClassExtension' => __DIR__ . '/..' . '/symfony/css-selector/XPath/Extension/PseudoClassExtension.php', - 'Symfony\\Component\\CssSelector\\XPath\\Translator' => __DIR__ . '/..' . '/symfony/css-selector/XPath/Translator.php', - 'Symfony\\Component\\CssSelector\\XPath\\TranslatorInterface' => __DIR__ . '/..' . '/symfony/css-selector/XPath/TranslatorInterface.php', - 'Symfony\\Component\\CssSelector\\XPath\\XPathExpr' => __DIR__ . '/..' . '/symfony/css-selector/XPath/XPathExpr.php', - 'Symfony\\Component\\Debug\\BufferingLogger' => __DIR__ . '/..' . '/symfony/debug/BufferingLogger.php', - 'Symfony\\Component\\Debug\\Debug' => __DIR__ . '/..' . '/symfony/debug/Debug.php', - 'Symfony\\Component\\Debug\\DebugClassLoader' => __DIR__ . '/..' . '/symfony/debug/DebugClassLoader.php', - 'Symfony\\Component\\Debug\\ErrorHandler' => __DIR__ . '/..' . '/symfony/debug/ErrorHandler.php', - 'Symfony\\Component\\Debug\\ExceptionHandler' => __DIR__ . '/..' . '/symfony/debug/ExceptionHandler.php', - 'Symfony\\Component\\Debug\\Exception\\ClassNotFoundException' => __DIR__ . '/..' . '/symfony/debug/Exception/ClassNotFoundException.php', - 'Symfony\\Component\\Debug\\Exception\\FatalErrorException' => __DIR__ . '/..' . '/symfony/debug/Exception/FatalErrorException.php', - 'Symfony\\Component\\Debug\\Exception\\FatalThrowableError' => __DIR__ . '/..' . '/symfony/debug/Exception/FatalThrowableError.php', - 'Symfony\\Component\\Debug\\Exception\\FlattenException' => __DIR__ . '/..' . '/symfony/debug/Exception/FlattenException.php', - 'Symfony\\Component\\Debug\\Exception\\OutOfMemoryException' => __DIR__ . '/..' . '/symfony/debug/Exception/OutOfMemoryException.php', - 'Symfony\\Component\\Debug\\Exception\\SilencedErrorContext' => __DIR__ . '/..' . '/symfony/debug/Exception/SilencedErrorContext.php', - 'Symfony\\Component\\Debug\\Exception\\UndefinedFunctionException' => __DIR__ . '/..' . '/symfony/debug/Exception/UndefinedFunctionException.php', - 'Symfony\\Component\\Debug\\Exception\\UndefinedMethodException' => __DIR__ . '/..' . '/symfony/debug/Exception/UndefinedMethodException.php', - 'Symfony\\Component\\Debug\\FatalErrorHandler\\ClassNotFoundFatalErrorHandler' => __DIR__ . '/..' . '/symfony/debug/FatalErrorHandler/ClassNotFoundFatalErrorHandler.php', - 'Symfony\\Component\\Debug\\FatalErrorHandler\\FatalErrorHandlerInterface' => __DIR__ . '/..' . '/symfony/debug/FatalErrorHandler/FatalErrorHandlerInterface.php', - 'Symfony\\Component\\Debug\\FatalErrorHandler\\UndefinedFunctionFatalErrorHandler' => __DIR__ . '/..' . '/symfony/debug/FatalErrorHandler/UndefinedFunctionFatalErrorHandler.php', - 'Symfony\\Component\\Debug\\FatalErrorHandler\\UndefinedMethodFatalErrorHandler' => __DIR__ . '/..' . '/symfony/debug/FatalErrorHandler/UndefinedMethodFatalErrorHandler.php', - 'Symfony\\Component\\EventDispatcher\\Debug\\TraceableEventDispatcher' => __DIR__ . '/..' . '/symfony/event-dispatcher/Debug/TraceableEventDispatcher.php', - 'Symfony\\Component\\EventDispatcher\\Debug\\TraceableEventDispatcherInterface' => __DIR__ . '/..' . '/symfony/event-dispatcher/Debug/TraceableEventDispatcherInterface.php', - 'Symfony\\Component\\EventDispatcher\\Debug\\WrappedListener' => __DIR__ . '/..' . '/symfony/event-dispatcher/Debug/WrappedListener.php', - 'Symfony\\Component\\EventDispatcher\\DependencyInjection\\ExtractingEventDispatcher' => __DIR__ . '/..' . '/symfony/event-dispatcher/DependencyInjection/RegisterListenersPass.php', - 'Symfony\\Component\\EventDispatcher\\DependencyInjection\\RegisterListenersPass' => __DIR__ . '/..' . '/symfony/event-dispatcher/DependencyInjection/RegisterListenersPass.php', - 'Symfony\\Component\\EventDispatcher\\Event' => __DIR__ . '/..' . '/symfony/event-dispatcher/Event.php', - 'Symfony\\Component\\EventDispatcher\\EventDispatcher' => __DIR__ . '/..' . '/symfony/event-dispatcher/EventDispatcher.php', - 'Symfony\\Component\\EventDispatcher\\EventDispatcherInterface' => __DIR__ . '/..' . '/symfony/event-dispatcher/EventDispatcherInterface.php', - 'Symfony\\Component\\EventDispatcher\\EventSubscriberInterface' => __DIR__ . '/..' . '/symfony/event-dispatcher/EventSubscriberInterface.php', - 'Symfony\\Component\\EventDispatcher\\GenericEvent' => __DIR__ . '/..' . '/symfony/event-dispatcher/GenericEvent.php', - 'Symfony\\Component\\EventDispatcher\\ImmutableEventDispatcher' => __DIR__ . '/..' . '/symfony/event-dispatcher/ImmutableEventDispatcher.php', - 'Symfony\\Component\\Finder\\Comparator\\Comparator' => __DIR__ . '/..' . '/symfony/finder/Comparator/Comparator.php', - 'Symfony\\Component\\Finder\\Comparator\\DateComparator' => __DIR__ . '/..' . '/symfony/finder/Comparator/DateComparator.php', - 'Symfony\\Component\\Finder\\Comparator\\NumberComparator' => __DIR__ . '/..' . '/symfony/finder/Comparator/NumberComparator.php', - 'Symfony\\Component\\Finder\\Exception\\AccessDeniedException' => __DIR__ . '/..' . '/symfony/finder/Exception/AccessDeniedException.php', - 'Symfony\\Component\\Finder\\Finder' => __DIR__ . '/..' . '/symfony/finder/Finder.php', - 'Symfony\\Component\\Finder\\Glob' => __DIR__ . '/..' . '/symfony/finder/Glob.php', - 'Symfony\\Component\\Finder\\Iterator\\CustomFilterIterator' => __DIR__ . '/..' . '/symfony/finder/Iterator/CustomFilterIterator.php', - 'Symfony\\Component\\Finder\\Iterator\\DateRangeFilterIterator' => __DIR__ . '/..' . '/symfony/finder/Iterator/DateRangeFilterIterator.php', - 'Symfony\\Component\\Finder\\Iterator\\DepthRangeFilterIterator' => __DIR__ . '/..' . '/symfony/finder/Iterator/DepthRangeFilterIterator.php', - 'Symfony\\Component\\Finder\\Iterator\\ExcludeDirectoryFilterIterator' => __DIR__ . '/..' . '/symfony/finder/Iterator/ExcludeDirectoryFilterIterator.php', - 'Symfony\\Component\\Finder\\Iterator\\FileTypeFilterIterator' => __DIR__ . '/..' . '/symfony/finder/Iterator/FileTypeFilterIterator.php', - 'Symfony\\Component\\Finder\\Iterator\\FilecontentFilterIterator' => __DIR__ . '/..' . '/symfony/finder/Iterator/FilecontentFilterIterator.php', - 'Symfony\\Component\\Finder\\Iterator\\FilenameFilterIterator' => __DIR__ . '/..' . '/symfony/finder/Iterator/FilenameFilterIterator.php', - 'Symfony\\Component\\Finder\\Iterator\\MultiplePcreFilterIterator' => __DIR__ . '/..' . '/symfony/finder/Iterator/MultiplePcreFilterIterator.php', - 'Symfony\\Component\\Finder\\Iterator\\PathFilterIterator' => __DIR__ . '/..' . '/symfony/finder/Iterator/PathFilterIterator.php', - 'Symfony\\Component\\Finder\\Iterator\\RecursiveDirectoryIterator' => __DIR__ . '/..' . '/symfony/finder/Iterator/RecursiveDirectoryIterator.php', - 'Symfony\\Component\\Finder\\Iterator\\SizeRangeFilterIterator' => __DIR__ . '/..' . '/symfony/finder/Iterator/SizeRangeFilterIterator.php', - 'Symfony\\Component\\Finder\\Iterator\\SortableIterator' => __DIR__ . '/..' . '/symfony/finder/Iterator/SortableIterator.php', - 'Symfony\\Component\\Finder\\SplFileInfo' => __DIR__ . '/..' . '/symfony/finder/SplFileInfo.php', - 'Symfony\\Component\\HttpFoundation\\AcceptHeader' => __DIR__ . '/..' . '/symfony/http-foundation/AcceptHeader.php', - 'Symfony\\Component\\HttpFoundation\\AcceptHeaderItem' => __DIR__ . '/..' . '/symfony/http-foundation/AcceptHeaderItem.php', - 'Symfony\\Component\\HttpFoundation\\ApacheRequest' => __DIR__ . '/..' . '/symfony/http-foundation/ApacheRequest.php', - 'Symfony\\Component\\HttpFoundation\\BinaryFileResponse' => __DIR__ . '/..' . '/symfony/http-foundation/BinaryFileResponse.php', - 'Symfony\\Component\\HttpFoundation\\Cookie' => __DIR__ . '/..' . '/symfony/http-foundation/Cookie.php', - 'Symfony\\Component\\HttpFoundation\\Exception\\ConflictingHeadersException' => __DIR__ . '/..' . '/symfony/http-foundation/Exception/ConflictingHeadersException.php', - 'Symfony\\Component\\HttpFoundation\\Exception\\RequestExceptionInterface' => __DIR__ . '/..' . '/symfony/http-foundation/Exception/RequestExceptionInterface.php', - 'Symfony\\Component\\HttpFoundation\\Exception\\SuspiciousOperationException' => __DIR__ . '/..' . '/symfony/http-foundation/Exception/SuspiciousOperationException.php', - 'Symfony\\Component\\HttpFoundation\\ExpressionRequestMatcher' => __DIR__ . '/..' . '/symfony/http-foundation/ExpressionRequestMatcher.php', - 'Symfony\\Component\\HttpFoundation\\FileBag' => __DIR__ . '/..' . '/symfony/http-foundation/FileBag.php', - 'Symfony\\Component\\HttpFoundation\\File\\Exception\\AccessDeniedException' => __DIR__ . '/..' . '/symfony/http-foundation/File/Exception/AccessDeniedException.php', - 'Symfony\\Component\\HttpFoundation\\File\\Exception\\CannotWriteFileException' => __DIR__ . '/..' . '/symfony/http-foundation/File/Exception/CannotWriteFileException.php', - 'Symfony\\Component\\HttpFoundation\\File\\Exception\\ExtensionFileException' => __DIR__ . '/..' . '/symfony/http-foundation/File/Exception/ExtensionFileException.php', - 'Symfony\\Component\\HttpFoundation\\File\\Exception\\FileException' => __DIR__ . '/..' . '/symfony/http-foundation/File/Exception/FileException.php', - 'Symfony\\Component\\HttpFoundation\\File\\Exception\\FileNotFoundException' => __DIR__ . '/..' . '/symfony/http-foundation/File/Exception/FileNotFoundException.php', - 'Symfony\\Component\\HttpFoundation\\File\\Exception\\FormSizeFileException' => __DIR__ . '/..' . '/symfony/http-foundation/File/Exception/FormSizeFileException.php', - 'Symfony\\Component\\HttpFoundation\\File\\Exception\\IniSizeFileException' => __DIR__ . '/..' . '/symfony/http-foundation/File/Exception/IniSizeFileException.php', - 'Symfony\\Component\\HttpFoundation\\File\\Exception\\NoFileException' => __DIR__ . '/..' . '/symfony/http-foundation/File/Exception/NoFileException.php', - 'Symfony\\Component\\HttpFoundation\\File\\Exception\\NoTmpDirFileException' => __DIR__ . '/..' . '/symfony/http-foundation/File/Exception/NoTmpDirFileException.php', - 'Symfony\\Component\\HttpFoundation\\File\\Exception\\PartialFileException' => __DIR__ . '/..' . '/symfony/http-foundation/File/Exception/PartialFileException.php', - 'Symfony\\Component\\HttpFoundation\\File\\Exception\\UnexpectedTypeException' => __DIR__ . '/..' . '/symfony/http-foundation/File/Exception/UnexpectedTypeException.php', - 'Symfony\\Component\\HttpFoundation\\File\\Exception\\UploadException' => __DIR__ . '/..' . '/symfony/http-foundation/File/Exception/UploadException.php', - 'Symfony\\Component\\HttpFoundation\\File\\File' => __DIR__ . '/..' . '/symfony/http-foundation/File/File.php', - 'Symfony\\Component\\HttpFoundation\\File\\MimeType\\ExtensionGuesser' => __DIR__ . '/..' . '/symfony/http-foundation/File/MimeType/ExtensionGuesser.php', - 'Symfony\\Component\\HttpFoundation\\File\\MimeType\\ExtensionGuesserInterface' => __DIR__ . '/..' . '/symfony/http-foundation/File/MimeType/ExtensionGuesserInterface.php', - 'Symfony\\Component\\HttpFoundation\\File\\MimeType\\FileBinaryMimeTypeGuesser' => __DIR__ . '/..' . '/symfony/http-foundation/File/MimeType/FileBinaryMimeTypeGuesser.php', - 'Symfony\\Component\\HttpFoundation\\File\\MimeType\\FileinfoMimeTypeGuesser' => __DIR__ . '/..' . '/symfony/http-foundation/File/MimeType/FileinfoMimeTypeGuesser.php', - 'Symfony\\Component\\HttpFoundation\\File\\MimeType\\MimeTypeExtensionGuesser' => __DIR__ . '/..' . '/symfony/http-foundation/File/MimeType/MimeTypeExtensionGuesser.php', - 'Symfony\\Component\\HttpFoundation\\File\\MimeType\\MimeTypeGuesser' => __DIR__ . '/..' . '/symfony/http-foundation/File/MimeType/MimeTypeGuesser.php', - 'Symfony\\Component\\HttpFoundation\\File\\MimeType\\MimeTypeGuesserInterface' => __DIR__ . '/..' . '/symfony/http-foundation/File/MimeType/MimeTypeGuesserInterface.php', - 'Symfony\\Component\\HttpFoundation\\File\\Stream' => __DIR__ . '/..' . '/symfony/http-foundation/File/Stream.php', - 'Symfony\\Component\\HttpFoundation\\File\\UploadedFile' => __DIR__ . '/..' . '/symfony/http-foundation/File/UploadedFile.php', - 'Symfony\\Component\\HttpFoundation\\HeaderBag' => __DIR__ . '/..' . '/symfony/http-foundation/HeaderBag.php', - 'Symfony\\Component\\HttpFoundation\\HeaderUtils' => __DIR__ . '/..' . '/symfony/http-foundation/HeaderUtils.php', - 'Symfony\\Component\\HttpFoundation\\IpUtils' => __DIR__ . '/..' . '/symfony/http-foundation/IpUtils.php', - 'Symfony\\Component\\HttpFoundation\\JsonResponse' => __DIR__ . '/..' . '/symfony/http-foundation/JsonResponse.php', - 'Symfony\\Component\\HttpFoundation\\ParameterBag' => __DIR__ . '/..' . '/symfony/http-foundation/ParameterBag.php', - 'Symfony\\Component\\HttpFoundation\\RedirectResponse' => __DIR__ . '/..' . '/symfony/http-foundation/RedirectResponse.php', - 'Symfony\\Component\\HttpFoundation\\Request' => __DIR__ . '/..' . '/symfony/http-foundation/Request.php', - 'Symfony\\Component\\HttpFoundation\\RequestMatcher' => __DIR__ . '/..' . '/symfony/http-foundation/RequestMatcher.php', - 'Symfony\\Component\\HttpFoundation\\RequestMatcherInterface' => __DIR__ . '/..' . '/symfony/http-foundation/RequestMatcherInterface.php', - 'Symfony\\Component\\HttpFoundation\\RequestStack' => __DIR__ . '/..' . '/symfony/http-foundation/RequestStack.php', - 'Symfony\\Component\\HttpFoundation\\Response' => __DIR__ . '/..' . '/symfony/http-foundation/Response.php', - 'Symfony\\Component\\HttpFoundation\\ResponseHeaderBag' => __DIR__ . '/..' . '/symfony/http-foundation/ResponseHeaderBag.php', - 'Symfony\\Component\\HttpFoundation\\ServerBag' => __DIR__ . '/..' . '/symfony/http-foundation/ServerBag.php', - 'Symfony\\Component\\HttpFoundation\\Session\\Attribute\\AttributeBag' => __DIR__ . '/..' . '/symfony/http-foundation/Session/Attribute/AttributeBag.php', - 'Symfony\\Component\\HttpFoundation\\Session\\Attribute\\AttributeBagInterface' => __DIR__ . '/..' . '/symfony/http-foundation/Session/Attribute/AttributeBagInterface.php', - 'Symfony\\Component\\HttpFoundation\\Session\\Attribute\\NamespacedAttributeBag' => __DIR__ . '/..' . '/symfony/http-foundation/Session/Attribute/NamespacedAttributeBag.php', - 'Symfony\\Component\\HttpFoundation\\Session\\Flash\\AutoExpireFlashBag' => __DIR__ . '/..' . '/symfony/http-foundation/Session/Flash/AutoExpireFlashBag.php', - 'Symfony\\Component\\HttpFoundation\\Session\\Flash\\FlashBag' => __DIR__ . '/..' . '/symfony/http-foundation/Session/Flash/FlashBag.php', - 'Symfony\\Component\\HttpFoundation\\Session\\Flash\\FlashBagInterface' => __DIR__ . '/..' . '/symfony/http-foundation/Session/Flash/FlashBagInterface.php', - 'Symfony\\Component\\HttpFoundation\\Session\\Session' => __DIR__ . '/..' . '/symfony/http-foundation/Session/Session.php', - 'Symfony\\Component\\HttpFoundation\\Session\\SessionBagInterface' => __DIR__ . '/..' . '/symfony/http-foundation/Session/SessionBagInterface.php', - 'Symfony\\Component\\HttpFoundation\\Session\\SessionBagProxy' => __DIR__ . '/..' . '/symfony/http-foundation/Session/SessionBagProxy.php', - 'Symfony\\Component\\HttpFoundation\\Session\\SessionInterface' => __DIR__ . '/..' . '/symfony/http-foundation/Session/SessionInterface.php', - 'Symfony\\Component\\HttpFoundation\\Session\\Storage\\Handler\\AbstractSessionHandler' => __DIR__ . '/..' . '/symfony/http-foundation/Session/Storage/Handler/AbstractSessionHandler.php', - 'Symfony\\Component\\HttpFoundation\\Session\\Storage\\Handler\\MemcachedSessionHandler' => __DIR__ . '/..' . '/symfony/http-foundation/Session/Storage/Handler/MemcachedSessionHandler.php', - 'Symfony\\Component\\HttpFoundation\\Session\\Storage\\Handler\\MigratingSessionHandler' => __DIR__ . '/..' . '/symfony/http-foundation/Session/Storage/Handler/MigratingSessionHandler.php', - 'Symfony\\Component\\HttpFoundation\\Session\\Storage\\Handler\\MongoDbSessionHandler' => __DIR__ . '/..' . '/symfony/http-foundation/Session/Storage/Handler/MongoDbSessionHandler.php', - 'Symfony\\Component\\HttpFoundation\\Session\\Storage\\Handler\\NativeFileSessionHandler' => __DIR__ . '/..' . '/symfony/http-foundation/Session/Storage/Handler/NativeFileSessionHandler.php', - 'Symfony\\Component\\HttpFoundation\\Session\\Storage\\Handler\\NullSessionHandler' => __DIR__ . '/..' . '/symfony/http-foundation/Session/Storage/Handler/NullSessionHandler.php', - 'Symfony\\Component\\HttpFoundation\\Session\\Storage\\Handler\\PdoSessionHandler' => __DIR__ . '/..' . '/symfony/http-foundation/Session/Storage/Handler/PdoSessionHandler.php', - 'Symfony\\Component\\HttpFoundation\\Session\\Storage\\Handler\\RedisSessionHandler' => __DIR__ . '/..' . '/symfony/http-foundation/Session/Storage/Handler/RedisSessionHandler.php', - 'Symfony\\Component\\HttpFoundation\\Session\\Storage\\Handler\\StrictSessionHandler' => __DIR__ . '/..' . '/symfony/http-foundation/Session/Storage/Handler/StrictSessionHandler.php', - 'Symfony\\Component\\HttpFoundation\\Session\\Storage\\MetadataBag' => __DIR__ . '/..' . '/symfony/http-foundation/Session/Storage/MetadataBag.php', - 'Symfony\\Component\\HttpFoundation\\Session\\Storage\\MockArraySessionStorage' => __DIR__ . '/..' . '/symfony/http-foundation/Session/Storage/MockArraySessionStorage.php', - 'Symfony\\Component\\HttpFoundation\\Session\\Storage\\MockFileSessionStorage' => __DIR__ . '/..' . '/symfony/http-foundation/Session/Storage/MockFileSessionStorage.php', - 'Symfony\\Component\\HttpFoundation\\Session\\Storage\\NativeSessionStorage' => __DIR__ . '/..' . '/symfony/http-foundation/Session/Storage/NativeSessionStorage.php', - 'Symfony\\Component\\HttpFoundation\\Session\\Storage\\PhpBridgeSessionStorage' => __DIR__ . '/..' . '/symfony/http-foundation/Session/Storage/PhpBridgeSessionStorage.php', - 'Symfony\\Component\\HttpFoundation\\Session\\Storage\\Proxy\\AbstractProxy' => __DIR__ . '/..' . '/symfony/http-foundation/Session/Storage/Proxy/AbstractProxy.php', - 'Symfony\\Component\\HttpFoundation\\Session\\Storage\\Proxy\\SessionHandlerProxy' => __DIR__ . '/..' . '/symfony/http-foundation/Session/Storage/Proxy/SessionHandlerProxy.php', - 'Symfony\\Component\\HttpFoundation\\Session\\Storage\\SessionStorageInterface' => __DIR__ . '/..' . '/symfony/http-foundation/Session/Storage/SessionStorageInterface.php', - 'Symfony\\Component\\HttpFoundation\\StreamedResponse' => __DIR__ . '/..' . '/symfony/http-foundation/StreamedResponse.php', - 'Symfony\\Component\\HttpKernel\\Bundle\\Bundle' => __DIR__ . '/..' . '/symfony/http-kernel/Bundle/Bundle.php', - 'Symfony\\Component\\HttpKernel\\Bundle\\BundleInterface' => __DIR__ . '/..' . '/symfony/http-kernel/Bundle/BundleInterface.php', - 'Symfony\\Component\\HttpKernel\\CacheClearer\\CacheClearerInterface' => __DIR__ . '/..' . '/symfony/http-kernel/CacheClearer/CacheClearerInterface.php', - 'Symfony\\Component\\HttpKernel\\CacheClearer\\ChainCacheClearer' => __DIR__ . '/..' . '/symfony/http-kernel/CacheClearer/ChainCacheClearer.php', - 'Symfony\\Component\\HttpKernel\\CacheClearer\\Psr6CacheClearer' => __DIR__ . '/..' . '/symfony/http-kernel/CacheClearer/Psr6CacheClearer.php', - 'Symfony\\Component\\HttpKernel\\CacheWarmer\\CacheWarmer' => __DIR__ . '/..' . '/symfony/http-kernel/CacheWarmer/CacheWarmer.php', - 'Symfony\\Component\\HttpKernel\\CacheWarmer\\CacheWarmerAggregate' => __DIR__ . '/..' . '/symfony/http-kernel/CacheWarmer/CacheWarmerAggregate.php', - 'Symfony\\Component\\HttpKernel\\CacheWarmer\\CacheWarmerInterface' => __DIR__ . '/..' . '/symfony/http-kernel/CacheWarmer/CacheWarmerInterface.php', - 'Symfony\\Component\\HttpKernel\\CacheWarmer\\WarmableInterface' => __DIR__ . '/..' . '/symfony/http-kernel/CacheWarmer/WarmableInterface.php', - 'Symfony\\Component\\HttpKernel\\Client' => __DIR__ . '/..' . '/symfony/http-kernel/Client.php', - 'Symfony\\Component\\HttpKernel\\Config\\FileLocator' => __DIR__ . '/..' . '/symfony/http-kernel/Config/FileLocator.php', - 'Symfony\\Component\\HttpKernel\\ControllerMetadata\\ArgumentMetadata' => __DIR__ . '/..' . '/symfony/http-kernel/ControllerMetadata/ArgumentMetadata.php', - 'Symfony\\Component\\HttpKernel\\ControllerMetadata\\ArgumentMetadataFactory' => __DIR__ . '/..' . '/symfony/http-kernel/ControllerMetadata/ArgumentMetadataFactory.php', - 'Symfony\\Component\\HttpKernel\\ControllerMetadata\\ArgumentMetadataFactoryInterface' => __DIR__ . '/..' . '/symfony/http-kernel/ControllerMetadata/ArgumentMetadataFactoryInterface.php', - 'Symfony\\Component\\HttpKernel\\Controller\\ArgumentResolver' => __DIR__ . '/..' . '/symfony/http-kernel/Controller/ArgumentResolver.php', - 'Symfony\\Component\\HttpKernel\\Controller\\ArgumentResolverInterface' => __DIR__ . '/..' . '/symfony/http-kernel/Controller/ArgumentResolverInterface.php', - 'Symfony\\Component\\HttpKernel\\Controller\\ArgumentResolver\\DefaultValueResolver' => __DIR__ . '/..' . '/symfony/http-kernel/Controller/ArgumentResolver/DefaultValueResolver.php', - 'Symfony\\Component\\HttpKernel\\Controller\\ArgumentResolver\\RequestAttributeValueResolver' => __DIR__ . '/..' . '/symfony/http-kernel/Controller/ArgumentResolver/RequestAttributeValueResolver.php', - 'Symfony\\Component\\HttpKernel\\Controller\\ArgumentResolver\\RequestValueResolver' => __DIR__ . '/..' . '/symfony/http-kernel/Controller/ArgumentResolver/RequestValueResolver.php', - 'Symfony\\Component\\HttpKernel\\Controller\\ArgumentResolver\\ServiceValueResolver' => __DIR__ . '/..' . '/symfony/http-kernel/Controller/ArgumentResolver/ServiceValueResolver.php', - 'Symfony\\Component\\HttpKernel\\Controller\\ArgumentResolver\\SessionValueResolver' => __DIR__ . '/..' . '/symfony/http-kernel/Controller/ArgumentResolver/SessionValueResolver.php', - 'Symfony\\Component\\HttpKernel\\Controller\\ArgumentResolver\\TraceableValueResolver' => __DIR__ . '/..' . '/symfony/http-kernel/Controller/ArgumentResolver/TraceableValueResolver.php', - 'Symfony\\Component\\HttpKernel\\Controller\\ArgumentResolver\\VariadicValueResolver' => __DIR__ . '/..' . '/symfony/http-kernel/Controller/ArgumentResolver/VariadicValueResolver.php', - 'Symfony\\Component\\HttpKernel\\Controller\\ArgumentValueResolverInterface' => __DIR__ . '/..' . '/symfony/http-kernel/Controller/ArgumentValueResolverInterface.php', - 'Symfony\\Component\\HttpKernel\\Controller\\ContainerControllerResolver' => __DIR__ . '/..' . '/symfony/http-kernel/Controller/ContainerControllerResolver.php', - 'Symfony\\Component\\HttpKernel\\Controller\\ControllerReference' => __DIR__ . '/..' . '/symfony/http-kernel/Controller/ControllerReference.php', - 'Symfony\\Component\\HttpKernel\\Controller\\ControllerResolver' => __DIR__ . '/..' . '/symfony/http-kernel/Controller/ControllerResolver.php', - 'Symfony\\Component\\HttpKernel\\Controller\\ControllerResolverInterface' => __DIR__ . '/..' . '/symfony/http-kernel/Controller/ControllerResolverInterface.php', - 'Symfony\\Component\\HttpKernel\\Controller\\TraceableArgumentResolver' => __DIR__ . '/..' . '/symfony/http-kernel/Controller/TraceableArgumentResolver.php', - 'Symfony\\Component\\HttpKernel\\Controller\\TraceableControllerResolver' => __DIR__ . '/..' . '/symfony/http-kernel/Controller/TraceableControllerResolver.php', - 'Symfony\\Component\\HttpKernel\\DataCollector\\AjaxDataCollector' => __DIR__ . '/..' . '/symfony/http-kernel/DataCollector/AjaxDataCollector.php', - 'Symfony\\Component\\HttpKernel\\DataCollector\\ConfigDataCollector' => __DIR__ . '/..' . '/symfony/http-kernel/DataCollector/ConfigDataCollector.php', - 'Symfony\\Component\\HttpKernel\\DataCollector\\DataCollector' => __DIR__ . '/..' . '/symfony/http-kernel/DataCollector/DataCollector.php', - 'Symfony\\Component\\HttpKernel\\DataCollector\\DataCollectorInterface' => __DIR__ . '/..' . '/symfony/http-kernel/DataCollector/DataCollectorInterface.php', - 'Symfony\\Component\\HttpKernel\\DataCollector\\DumpDataCollector' => __DIR__ . '/..' . '/symfony/http-kernel/DataCollector/DumpDataCollector.php', - 'Symfony\\Component\\HttpKernel\\DataCollector\\EventDataCollector' => __DIR__ . '/..' . '/symfony/http-kernel/DataCollector/EventDataCollector.php', - 'Symfony\\Component\\HttpKernel\\DataCollector\\ExceptionDataCollector' => __DIR__ . '/..' . '/symfony/http-kernel/DataCollector/ExceptionDataCollector.php', - 'Symfony\\Component\\HttpKernel\\DataCollector\\LateDataCollectorInterface' => __DIR__ . '/..' . '/symfony/http-kernel/DataCollector/LateDataCollectorInterface.php', - 'Symfony\\Component\\HttpKernel\\DataCollector\\LoggerDataCollector' => __DIR__ . '/..' . '/symfony/http-kernel/DataCollector/LoggerDataCollector.php', - 'Symfony\\Component\\HttpKernel\\DataCollector\\MemoryDataCollector' => __DIR__ . '/..' . '/symfony/http-kernel/DataCollector/MemoryDataCollector.php', - 'Symfony\\Component\\HttpKernel\\DataCollector\\RequestDataCollector' => __DIR__ . '/..' . '/symfony/http-kernel/DataCollector/RequestDataCollector.php', - 'Symfony\\Component\\HttpKernel\\DataCollector\\RouterDataCollector' => __DIR__ . '/..' . '/symfony/http-kernel/DataCollector/RouterDataCollector.php', - 'Symfony\\Component\\HttpKernel\\DataCollector\\TimeDataCollector' => __DIR__ . '/..' . '/symfony/http-kernel/DataCollector/TimeDataCollector.php', - 'Symfony\\Component\\HttpKernel\\Debug\\FileLinkFormatter' => __DIR__ . '/..' . '/symfony/http-kernel/Debug/FileLinkFormatter.php', - 'Symfony\\Component\\HttpKernel\\Debug\\TraceableEventDispatcher' => __DIR__ . '/..' . '/symfony/http-kernel/Debug/TraceableEventDispatcher.php', - 'Symfony\\Component\\HttpKernel\\DependencyInjection\\AddAnnotatedClassesToCachePass' => __DIR__ . '/..' . '/symfony/http-kernel/DependencyInjection/AddAnnotatedClassesToCachePass.php', - 'Symfony\\Component\\HttpKernel\\DependencyInjection\\ConfigurableExtension' => __DIR__ . '/..' . '/symfony/http-kernel/DependencyInjection/ConfigurableExtension.php', - 'Symfony\\Component\\HttpKernel\\DependencyInjection\\ControllerArgumentValueResolverPass' => __DIR__ . '/..' . '/symfony/http-kernel/DependencyInjection/ControllerArgumentValueResolverPass.php', - 'Symfony\\Component\\HttpKernel\\DependencyInjection\\Extension' => __DIR__ . '/..' . '/symfony/http-kernel/DependencyInjection/Extension.php', - 'Symfony\\Component\\HttpKernel\\DependencyInjection\\FragmentRendererPass' => __DIR__ . '/..' . '/symfony/http-kernel/DependencyInjection/FragmentRendererPass.php', - 'Symfony\\Component\\HttpKernel\\DependencyInjection\\LazyLoadingFragmentHandler' => __DIR__ . '/..' . '/symfony/http-kernel/DependencyInjection/LazyLoadingFragmentHandler.php', - 'Symfony\\Component\\HttpKernel\\DependencyInjection\\LoggerPass' => __DIR__ . '/..' . '/symfony/http-kernel/DependencyInjection/LoggerPass.php', - 'Symfony\\Component\\HttpKernel\\DependencyInjection\\MergeExtensionConfigurationPass' => __DIR__ . '/..' . '/symfony/http-kernel/DependencyInjection/MergeExtensionConfigurationPass.php', - 'Symfony\\Component\\HttpKernel\\DependencyInjection\\RegisterControllerArgumentLocatorsPass' => __DIR__ . '/..' . '/symfony/http-kernel/DependencyInjection/RegisterControllerArgumentLocatorsPass.php', - 'Symfony\\Component\\HttpKernel\\DependencyInjection\\RemoveEmptyControllerArgumentLocatorsPass' => __DIR__ . '/..' . '/symfony/http-kernel/DependencyInjection/RemoveEmptyControllerArgumentLocatorsPass.php', - 'Symfony\\Component\\HttpKernel\\DependencyInjection\\ResettableServicePass' => __DIR__ . '/..' . '/symfony/http-kernel/DependencyInjection/ResettableServicePass.php', - 'Symfony\\Component\\HttpKernel\\DependencyInjection\\ServicesResetter' => __DIR__ . '/..' . '/symfony/http-kernel/DependencyInjection/ServicesResetter.php', - 'Symfony\\Component\\HttpKernel\\EventListener\\AbstractSessionListener' => __DIR__ . '/..' . '/symfony/http-kernel/EventListener/AbstractSessionListener.php', - 'Symfony\\Component\\HttpKernel\\EventListener\\AbstractTestSessionListener' => __DIR__ . '/..' . '/symfony/http-kernel/EventListener/AbstractTestSessionListener.php', - 'Symfony\\Component\\HttpKernel\\EventListener\\AddRequestFormatsListener' => __DIR__ . '/..' . '/symfony/http-kernel/EventListener/AddRequestFormatsListener.php', - 'Symfony\\Component\\HttpKernel\\EventListener\\DebugHandlersListener' => __DIR__ . '/..' . '/symfony/http-kernel/EventListener/DebugHandlersListener.php', - 'Symfony\\Component\\HttpKernel\\EventListener\\DumpListener' => __DIR__ . '/..' . '/symfony/http-kernel/EventListener/DumpListener.php', - 'Symfony\\Component\\HttpKernel\\EventListener\\ExceptionListener' => __DIR__ . '/..' . '/symfony/http-kernel/EventListener/ExceptionListener.php', - 'Symfony\\Component\\HttpKernel\\EventListener\\FragmentListener' => __DIR__ . '/..' . '/symfony/http-kernel/EventListener/FragmentListener.php', - 'Symfony\\Component\\HttpKernel\\EventListener\\LocaleListener' => __DIR__ . '/..' . '/symfony/http-kernel/EventListener/LocaleListener.php', - 'Symfony\\Component\\HttpKernel\\EventListener\\ProfilerListener' => __DIR__ . '/..' . '/symfony/http-kernel/EventListener/ProfilerListener.php', - 'Symfony\\Component\\HttpKernel\\EventListener\\ResponseListener' => __DIR__ . '/..' . '/symfony/http-kernel/EventListener/ResponseListener.php', - 'Symfony\\Component\\HttpKernel\\EventListener\\RouterListener' => __DIR__ . '/..' . '/symfony/http-kernel/EventListener/RouterListener.php', - 'Symfony\\Component\\HttpKernel\\EventListener\\SaveSessionListener' => __DIR__ . '/..' . '/symfony/http-kernel/EventListener/SaveSessionListener.php', - 'Symfony\\Component\\HttpKernel\\EventListener\\SessionListener' => __DIR__ . '/..' . '/symfony/http-kernel/EventListener/SessionListener.php', - 'Symfony\\Component\\HttpKernel\\EventListener\\StreamedResponseListener' => __DIR__ . '/..' . '/symfony/http-kernel/EventListener/StreamedResponseListener.php', - 'Symfony\\Component\\HttpKernel\\EventListener\\SurrogateListener' => __DIR__ . '/..' . '/symfony/http-kernel/EventListener/SurrogateListener.php', - 'Symfony\\Component\\HttpKernel\\EventListener\\TestSessionListener' => __DIR__ . '/..' . '/symfony/http-kernel/EventListener/TestSessionListener.php', - 'Symfony\\Component\\HttpKernel\\EventListener\\TranslatorListener' => __DIR__ . '/..' . '/symfony/http-kernel/EventListener/TranslatorListener.php', - 'Symfony\\Component\\HttpKernel\\EventListener\\ValidateRequestListener' => __DIR__ . '/..' . '/symfony/http-kernel/EventListener/ValidateRequestListener.php', - 'Symfony\\Component\\HttpKernel\\Event\\FilterControllerArgumentsEvent' => __DIR__ . '/..' . '/symfony/http-kernel/Event/FilterControllerArgumentsEvent.php', - 'Symfony\\Component\\HttpKernel\\Event\\FilterControllerEvent' => __DIR__ . '/..' . '/symfony/http-kernel/Event/FilterControllerEvent.php', - 'Symfony\\Component\\HttpKernel\\Event\\FilterResponseEvent' => __DIR__ . '/..' . '/symfony/http-kernel/Event/FilterResponseEvent.php', - 'Symfony\\Component\\HttpKernel\\Event\\FinishRequestEvent' => __DIR__ . '/..' . '/symfony/http-kernel/Event/FinishRequestEvent.php', - 'Symfony\\Component\\HttpKernel\\Event\\GetResponseEvent' => __DIR__ . '/..' . '/symfony/http-kernel/Event/GetResponseEvent.php', - 'Symfony\\Component\\HttpKernel\\Event\\GetResponseForControllerResultEvent' => __DIR__ . '/..' . '/symfony/http-kernel/Event/GetResponseForControllerResultEvent.php', - 'Symfony\\Component\\HttpKernel\\Event\\GetResponseForExceptionEvent' => __DIR__ . '/..' . '/symfony/http-kernel/Event/GetResponseForExceptionEvent.php', - 'Symfony\\Component\\HttpKernel\\Event\\KernelEvent' => __DIR__ . '/..' . '/symfony/http-kernel/Event/KernelEvent.php', - 'Symfony\\Component\\HttpKernel\\Event\\PostResponseEvent' => __DIR__ . '/..' . '/symfony/http-kernel/Event/PostResponseEvent.php', - 'Symfony\\Component\\HttpKernel\\Exception\\AccessDeniedHttpException' => __DIR__ . '/..' . '/symfony/http-kernel/Exception/AccessDeniedHttpException.php', - 'Symfony\\Component\\HttpKernel\\Exception\\BadRequestHttpException' => __DIR__ . '/..' . '/symfony/http-kernel/Exception/BadRequestHttpException.php', - 'Symfony\\Component\\HttpKernel\\Exception\\ConflictHttpException' => __DIR__ . '/..' . '/symfony/http-kernel/Exception/ConflictHttpException.php', - 'Symfony\\Component\\HttpKernel\\Exception\\GoneHttpException' => __DIR__ . '/..' . '/symfony/http-kernel/Exception/GoneHttpException.php', - 'Symfony\\Component\\HttpKernel\\Exception\\HttpException' => __DIR__ . '/..' . '/symfony/http-kernel/Exception/HttpException.php', - 'Symfony\\Component\\HttpKernel\\Exception\\HttpExceptionInterface' => __DIR__ . '/..' . '/symfony/http-kernel/Exception/HttpExceptionInterface.php', - 'Symfony\\Component\\HttpKernel\\Exception\\LengthRequiredHttpException' => __DIR__ . '/..' . '/symfony/http-kernel/Exception/LengthRequiredHttpException.php', - 'Symfony\\Component\\HttpKernel\\Exception\\MethodNotAllowedHttpException' => __DIR__ . '/..' . '/symfony/http-kernel/Exception/MethodNotAllowedHttpException.php', - 'Symfony\\Component\\HttpKernel\\Exception\\NotAcceptableHttpException' => __DIR__ . '/..' . '/symfony/http-kernel/Exception/NotAcceptableHttpException.php', - 'Symfony\\Component\\HttpKernel\\Exception\\NotFoundHttpException' => __DIR__ . '/..' . '/symfony/http-kernel/Exception/NotFoundHttpException.php', - 'Symfony\\Component\\HttpKernel\\Exception\\PreconditionFailedHttpException' => __DIR__ . '/..' . '/symfony/http-kernel/Exception/PreconditionFailedHttpException.php', - 'Symfony\\Component\\HttpKernel\\Exception\\PreconditionRequiredHttpException' => __DIR__ . '/..' . '/symfony/http-kernel/Exception/PreconditionRequiredHttpException.php', - 'Symfony\\Component\\HttpKernel\\Exception\\ServiceUnavailableHttpException' => __DIR__ . '/..' . '/symfony/http-kernel/Exception/ServiceUnavailableHttpException.php', - 'Symfony\\Component\\HttpKernel\\Exception\\TooManyRequestsHttpException' => __DIR__ . '/..' . '/symfony/http-kernel/Exception/TooManyRequestsHttpException.php', - 'Symfony\\Component\\HttpKernel\\Exception\\UnauthorizedHttpException' => __DIR__ . '/..' . '/symfony/http-kernel/Exception/UnauthorizedHttpException.php', - 'Symfony\\Component\\HttpKernel\\Exception\\UnprocessableEntityHttpException' => __DIR__ . '/..' . '/symfony/http-kernel/Exception/UnprocessableEntityHttpException.php', - 'Symfony\\Component\\HttpKernel\\Exception\\UnsupportedMediaTypeHttpException' => __DIR__ . '/..' . '/symfony/http-kernel/Exception/UnsupportedMediaTypeHttpException.php', - 'Symfony\\Component\\HttpKernel\\Fragment\\AbstractSurrogateFragmentRenderer' => __DIR__ . '/..' . '/symfony/http-kernel/Fragment/AbstractSurrogateFragmentRenderer.php', - 'Symfony\\Component\\HttpKernel\\Fragment\\EsiFragmentRenderer' => __DIR__ . '/..' . '/symfony/http-kernel/Fragment/EsiFragmentRenderer.php', - 'Symfony\\Component\\HttpKernel\\Fragment\\FragmentHandler' => __DIR__ . '/..' . '/symfony/http-kernel/Fragment/FragmentHandler.php', - 'Symfony\\Component\\HttpKernel\\Fragment\\FragmentRendererInterface' => __DIR__ . '/..' . '/symfony/http-kernel/Fragment/FragmentRendererInterface.php', - 'Symfony\\Component\\HttpKernel\\Fragment\\HIncludeFragmentRenderer' => __DIR__ . '/..' . '/symfony/http-kernel/Fragment/HIncludeFragmentRenderer.php', - 'Symfony\\Component\\HttpKernel\\Fragment\\InlineFragmentRenderer' => __DIR__ . '/..' . '/symfony/http-kernel/Fragment/InlineFragmentRenderer.php', - 'Symfony\\Component\\HttpKernel\\Fragment\\RoutableFragmentRenderer' => __DIR__ . '/..' . '/symfony/http-kernel/Fragment/RoutableFragmentRenderer.php', - 'Symfony\\Component\\HttpKernel\\Fragment\\SsiFragmentRenderer' => __DIR__ . '/..' . '/symfony/http-kernel/Fragment/SsiFragmentRenderer.php', - 'Symfony\\Component\\HttpKernel\\HttpCache\\AbstractSurrogate' => __DIR__ . '/..' . '/symfony/http-kernel/HttpCache/AbstractSurrogate.php', - 'Symfony\\Component\\HttpKernel\\HttpCache\\Esi' => __DIR__ . '/..' . '/symfony/http-kernel/HttpCache/Esi.php', - 'Symfony\\Component\\HttpKernel\\HttpCache\\HttpCache' => __DIR__ . '/..' . '/symfony/http-kernel/HttpCache/HttpCache.php', - 'Symfony\\Component\\HttpKernel\\HttpCache\\ResponseCacheStrategy' => __DIR__ . '/..' . '/symfony/http-kernel/HttpCache/ResponseCacheStrategy.php', - 'Symfony\\Component\\HttpKernel\\HttpCache\\ResponseCacheStrategyInterface' => __DIR__ . '/..' . '/symfony/http-kernel/HttpCache/ResponseCacheStrategyInterface.php', - 'Symfony\\Component\\HttpKernel\\HttpCache\\Ssi' => __DIR__ . '/..' . '/symfony/http-kernel/HttpCache/Ssi.php', - 'Symfony\\Component\\HttpKernel\\HttpCache\\Store' => __DIR__ . '/..' . '/symfony/http-kernel/HttpCache/Store.php', - 'Symfony\\Component\\HttpKernel\\HttpCache\\StoreInterface' => __DIR__ . '/..' . '/symfony/http-kernel/HttpCache/StoreInterface.php', - 'Symfony\\Component\\HttpKernel\\HttpCache\\SurrogateInterface' => __DIR__ . '/..' . '/symfony/http-kernel/HttpCache/SurrogateInterface.php', - 'Symfony\\Component\\HttpKernel\\HttpKernel' => __DIR__ . '/..' . '/symfony/http-kernel/HttpKernel.php', - 'Symfony\\Component\\HttpKernel\\HttpKernelInterface' => __DIR__ . '/..' . '/symfony/http-kernel/HttpKernelInterface.php', - 'Symfony\\Component\\HttpKernel\\Kernel' => __DIR__ . '/..' . '/symfony/http-kernel/Kernel.php', - 'Symfony\\Component\\HttpKernel\\KernelEvents' => __DIR__ . '/..' . '/symfony/http-kernel/KernelEvents.php', - 'Symfony\\Component\\HttpKernel\\KernelInterface' => __DIR__ . '/..' . '/symfony/http-kernel/KernelInterface.php', - 'Symfony\\Component\\HttpKernel\\Log\\DebugLoggerInterface' => __DIR__ . '/..' . '/symfony/http-kernel/Log/DebugLoggerInterface.php', - 'Symfony\\Component\\HttpKernel\\Log\\Logger' => __DIR__ . '/..' . '/symfony/http-kernel/Log/Logger.php', - 'Symfony\\Component\\HttpKernel\\Profiler\\FileProfilerStorage' => __DIR__ . '/..' . '/symfony/http-kernel/Profiler/FileProfilerStorage.php', - 'Symfony\\Component\\HttpKernel\\Profiler\\Profile' => __DIR__ . '/..' . '/symfony/http-kernel/Profiler/Profile.php', - 'Symfony\\Component\\HttpKernel\\Profiler\\Profiler' => __DIR__ . '/..' . '/symfony/http-kernel/Profiler/Profiler.php', - 'Symfony\\Component\\HttpKernel\\Profiler\\ProfilerStorageInterface' => __DIR__ . '/..' . '/symfony/http-kernel/Profiler/ProfilerStorageInterface.php', - 'Symfony\\Component\\HttpKernel\\RebootableInterface' => __DIR__ . '/..' . '/symfony/http-kernel/RebootableInterface.php', - 'Symfony\\Component\\HttpKernel\\TerminableInterface' => __DIR__ . '/..' . '/symfony/http-kernel/TerminableInterface.php', - 'Symfony\\Component\\HttpKernel\\UriSigner' => __DIR__ . '/..' . '/symfony/http-kernel/UriSigner.php', - 'Symfony\\Component\\Process\\Exception\\ExceptionInterface' => __DIR__ . '/..' . '/symfony/process/Exception/ExceptionInterface.php', - 'Symfony\\Component\\Process\\Exception\\InvalidArgumentException' => __DIR__ . '/..' . '/symfony/process/Exception/InvalidArgumentException.php', - 'Symfony\\Component\\Process\\Exception\\LogicException' => __DIR__ . '/..' . '/symfony/process/Exception/LogicException.php', - 'Symfony\\Component\\Process\\Exception\\ProcessFailedException' => __DIR__ . '/..' . '/symfony/process/Exception/ProcessFailedException.php', - 'Symfony\\Component\\Process\\Exception\\ProcessSignaledException' => __DIR__ . '/..' . '/symfony/process/Exception/ProcessSignaledException.php', - 'Symfony\\Component\\Process\\Exception\\ProcessTimedOutException' => __DIR__ . '/..' . '/symfony/process/Exception/ProcessTimedOutException.php', - 'Symfony\\Component\\Process\\Exception\\RuntimeException' => __DIR__ . '/..' . '/symfony/process/Exception/RuntimeException.php', - 'Symfony\\Component\\Process\\ExecutableFinder' => __DIR__ . '/..' . '/symfony/process/ExecutableFinder.php', - 'Symfony\\Component\\Process\\InputStream' => __DIR__ . '/..' . '/symfony/process/InputStream.php', - 'Symfony\\Component\\Process\\PhpExecutableFinder' => __DIR__ . '/..' . '/symfony/process/PhpExecutableFinder.php', - 'Symfony\\Component\\Process\\PhpProcess' => __DIR__ . '/..' . '/symfony/process/PhpProcess.php', - 'Symfony\\Component\\Process\\Pipes\\AbstractPipes' => __DIR__ . '/..' . '/symfony/process/Pipes/AbstractPipes.php', - 'Symfony\\Component\\Process\\Pipes\\PipesInterface' => __DIR__ . '/..' . '/symfony/process/Pipes/PipesInterface.php', - 'Symfony\\Component\\Process\\Pipes\\UnixPipes' => __DIR__ . '/..' . '/symfony/process/Pipes/UnixPipes.php', - 'Symfony\\Component\\Process\\Pipes\\WindowsPipes' => __DIR__ . '/..' . '/symfony/process/Pipes/WindowsPipes.php', - 'Symfony\\Component\\Process\\Process' => __DIR__ . '/..' . '/symfony/process/Process.php', - 'Symfony\\Component\\Process\\ProcessUtils' => __DIR__ . '/..' . '/symfony/process/ProcessUtils.php', - 'Symfony\\Component\\Routing\\Annotation\\Route' => __DIR__ . '/..' . '/symfony/routing/Annotation/Route.php', - 'Symfony\\Component\\Routing\\CompiledRoute' => __DIR__ . '/..' . '/symfony/routing/CompiledRoute.php', - 'Symfony\\Component\\Routing\\DependencyInjection\\RoutingResolverPass' => __DIR__ . '/..' . '/symfony/routing/DependencyInjection/RoutingResolverPass.php', - 'Symfony\\Component\\Routing\\Exception\\ExceptionInterface' => __DIR__ . '/..' . '/symfony/routing/Exception/ExceptionInterface.php', - 'Symfony\\Component\\Routing\\Exception\\InvalidParameterException' => __DIR__ . '/..' . '/symfony/routing/Exception/InvalidParameterException.php', - 'Symfony\\Component\\Routing\\Exception\\MethodNotAllowedException' => __DIR__ . '/..' . '/symfony/routing/Exception/MethodNotAllowedException.php', - 'Symfony\\Component\\Routing\\Exception\\MissingMandatoryParametersException' => __DIR__ . '/..' . '/symfony/routing/Exception/MissingMandatoryParametersException.php', - 'Symfony\\Component\\Routing\\Exception\\NoConfigurationException' => __DIR__ . '/..' . '/symfony/routing/Exception/NoConfigurationException.php', - 'Symfony\\Component\\Routing\\Exception\\ResourceNotFoundException' => __DIR__ . '/..' . '/symfony/routing/Exception/ResourceNotFoundException.php', - 'Symfony\\Component\\Routing\\Exception\\RouteNotFoundException' => __DIR__ . '/..' . '/symfony/routing/Exception/RouteNotFoundException.php', - 'Symfony\\Component\\Routing\\Generator\\ConfigurableRequirementsInterface' => __DIR__ . '/..' . '/symfony/routing/Generator/ConfigurableRequirementsInterface.php', - 'Symfony\\Component\\Routing\\Generator\\Dumper\\GeneratorDumper' => __DIR__ . '/..' . '/symfony/routing/Generator/Dumper/GeneratorDumper.php', - 'Symfony\\Component\\Routing\\Generator\\Dumper\\GeneratorDumperInterface' => __DIR__ . '/..' . '/symfony/routing/Generator/Dumper/GeneratorDumperInterface.php', - 'Symfony\\Component\\Routing\\Generator\\Dumper\\PhpGeneratorDumper' => __DIR__ . '/..' . '/symfony/routing/Generator/Dumper/PhpGeneratorDumper.php', - 'Symfony\\Component\\Routing\\Generator\\UrlGenerator' => __DIR__ . '/..' . '/symfony/routing/Generator/UrlGenerator.php', - 'Symfony\\Component\\Routing\\Generator\\UrlGeneratorInterface' => __DIR__ . '/..' . '/symfony/routing/Generator/UrlGeneratorInterface.php', - 'Symfony\\Component\\Routing\\Loader\\AnnotationClassLoader' => __DIR__ . '/..' . '/symfony/routing/Loader/AnnotationClassLoader.php', - 'Symfony\\Component\\Routing\\Loader\\AnnotationDirectoryLoader' => __DIR__ . '/..' . '/symfony/routing/Loader/AnnotationDirectoryLoader.php', - 'Symfony\\Component\\Routing\\Loader\\AnnotationFileLoader' => __DIR__ . '/..' . '/symfony/routing/Loader/AnnotationFileLoader.php', - 'Symfony\\Component\\Routing\\Loader\\ClosureLoader' => __DIR__ . '/..' . '/symfony/routing/Loader/ClosureLoader.php', - 'Symfony\\Component\\Routing\\Loader\\Configurator\\CollectionConfigurator' => __DIR__ . '/..' . '/symfony/routing/Loader/Configurator/CollectionConfigurator.php', - 'Symfony\\Component\\Routing\\Loader\\Configurator\\ImportConfigurator' => __DIR__ . '/..' . '/symfony/routing/Loader/Configurator/ImportConfigurator.php', - 'Symfony\\Component\\Routing\\Loader\\Configurator\\RouteConfigurator' => __DIR__ . '/..' . '/symfony/routing/Loader/Configurator/RouteConfigurator.php', - 'Symfony\\Component\\Routing\\Loader\\Configurator\\RoutingConfigurator' => __DIR__ . '/..' . '/symfony/routing/Loader/Configurator/RoutingConfigurator.php', - 'Symfony\\Component\\Routing\\Loader\\Configurator\\Traits\\AddTrait' => __DIR__ . '/..' . '/symfony/routing/Loader/Configurator/Traits/AddTrait.php', - 'Symfony\\Component\\Routing\\Loader\\Configurator\\Traits\\RouteTrait' => __DIR__ . '/..' . '/symfony/routing/Loader/Configurator/Traits/RouteTrait.php', - 'Symfony\\Component\\Routing\\Loader\\DependencyInjection\\ServiceRouterLoader' => __DIR__ . '/..' . '/symfony/routing/Loader/DependencyInjection/ServiceRouterLoader.php', - 'Symfony\\Component\\Routing\\Loader\\DirectoryLoader' => __DIR__ . '/..' . '/symfony/routing/Loader/DirectoryLoader.php', - 'Symfony\\Component\\Routing\\Loader\\GlobFileLoader' => __DIR__ . '/..' . '/symfony/routing/Loader/GlobFileLoader.php', - 'Symfony\\Component\\Routing\\Loader\\ObjectRouteLoader' => __DIR__ . '/..' . '/symfony/routing/Loader/ObjectRouteLoader.php', - 'Symfony\\Component\\Routing\\Loader\\PhpFileLoader' => __DIR__ . '/..' . '/symfony/routing/Loader/PhpFileLoader.php', - 'Symfony\\Component\\Routing\\Loader\\ProtectedPhpFileLoader' => __DIR__ . '/..' . '/symfony/routing/Loader/PhpFileLoader.php', - 'Symfony\\Component\\Routing\\Loader\\XmlFileLoader' => __DIR__ . '/..' . '/symfony/routing/Loader/XmlFileLoader.php', - 'Symfony\\Component\\Routing\\Loader\\YamlFileLoader' => __DIR__ . '/..' . '/symfony/routing/Loader/YamlFileLoader.php', - 'Symfony\\Component\\Routing\\Matcher\\Dumper\\MatcherDumper' => __DIR__ . '/..' . '/symfony/routing/Matcher/Dumper/MatcherDumper.php', - 'Symfony\\Component\\Routing\\Matcher\\Dumper\\MatcherDumperInterface' => __DIR__ . '/..' . '/symfony/routing/Matcher/Dumper/MatcherDumperInterface.php', - 'Symfony\\Component\\Routing\\Matcher\\Dumper\\PhpMatcherDumper' => __DIR__ . '/..' . '/symfony/routing/Matcher/Dumper/PhpMatcherDumper.php', - 'Symfony\\Component\\Routing\\Matcher\\Dumper\\StaticPrefixCollection' => __DIR__ . '/..' . '/symfony/routing/Matcher/Dumper/StaticPrefixCollection.php', - 'Symfony\\Component\\Routing\\Matcher\\RedirectableUrlMatcher' => __DIR__ . '/..' . '/symfony/routing/Matcher/RedirectableUrlMatcher.php', - 'Symfony\\Component\\Routing\\Matcher\\RedirectableUrlMatcherInterface' => __DIR__ . '/..' . '/symfony/routing/Matcher/RedirectableUrlMatcherInterface.php', - 'Symfony\\Component\\Routing\\Matcher\\RequestMatcherInterface' => __DIR__ . '/..' . '/symfony/routing/Matcher/RequestMatcherInterface.php', - 'Symfony\\Component\\Routing\\Matcher\\TraceableUrlMatcher' => __DIR__ . '/..' . '/symfony/routing/Matcher/TraceableUrlMatcher.php', - 'Symfony\\Component\\Routing\\Matcher\\UrlMatcher' => __DIR__ . '/..' . '/symfony/routing/Matcher/UrlMatcher.php', - 'Symfony\\Component\\Routing\\Matcher\\UrlMatcherInterface' => __DIR__ . '/..' . '/symfony/routing/Matcher/UrlMatcherInterface.php', - 'Symfony\\Component\\Routing\\RequestContext' => __DIR__ . '/..' . '/symfony/routing/RequestContext.php', - 'Symfony\\Component\\Routing\\RequestContextAwareInterface' => __DIR__ . '/..' . '/symfony/routing/RequestContextAwareInterface.php', - 'Symfony\\Component\\Routing\\Route' => __DIR__ . '/..' . '/symfony/routing/Route.php', - 'Symfony\\Component\\Routing\\RouteCollection' => __DIR__ . '/..' . '/symfony/routing/RouteCollection.php', - 'Symfony\\Component\\Routing\\RouteCollectionBuilder' => __DIR__ . '/..' . '/symfony/routing/RouteCollectionBuilder.php', - 'Symfony\\Component\\Routing\\RouteCompiler' => __DIR__ . '/..' . '/symfony/routing/RouteCompiler.php', - 'Symfony\\Component\\Routing\\RouteCompilerInterface' => __DIR__ . '/..' . '/symfony/routing/RouteCompilerInterface.php', - 'Symfony\\Component\\Routing\\Router' => __DIR__ . '/..' . '/symfony/routing/Router.php', - 'Symfony\\Component\\Routing\\RouterInterface' => __DIR__ . '/..' . '/symfony/routing/RouterInterface.php', - 'Symfony\\Component\\Translation\\Catalogue\\AbstractOperation' => __DIR__ . '/..' . '/symfony/translation/Catalogue/AbstractOperation.php', - 'Symfony\\Component\\Translation\\Catalogue\\MergeOperation' => __DIR__ . '/..' . '/symfony/translation/Catalogue/MergeOperation.php', - 'Symfony\\Component\\Translation\\Catalogue\\OperationInterface' => __DIR__ . '/..' . '/symfony/translation/Catalogue/OperationInterface.php', - 'Symfony\\Component\\Translation\\Catalogue\\TargetOperation' => __DIR__ . '/..' . '/symfony/translation/Catalogue/TargetOperation.php', - 'Symfony\\Component\\Translation\\Command\\XliffLintCommand' => __DIR__ . '/..' . '/symfony/translation/Command/XliffLintCommand.php', - 'Symfony\\Component\\Translation\\DataCollectorTranslator' => __DIR__ . '/..' . '/symfony/translation/DataCollectorTranslator.php', - 'Symfony\\Component\\Translation\\DataCollector\\TranslationDataCollector' => __DIR__ . '/..' . '/symfony/translation/DataCollector/TranslationDataCollector.php', - 'Symfony\\Component\\Translation\\DependencyInjection\\TranslationDumperPass' => __DIR__ . '/..' . '/symfony/translation/DependencyInjection/TranslationDumperPass.php', - 'Symfony\\Component\\Translation\\DependencyInjection\\TranslationExtractorPass' => __DIR__ . '/..' . '/symfony/translation/DependencyInjection/TranslationExtractorPass.php', - 'Symfony\\Component\\Translation\\DependencyInjection\\TranslatorPass' => __DIR__ . '/..' . '/symfony/translation/DependencyInjection/TranslatorPass.php', - 'Symfony\\Component\\Translation\\Dumper\\CsvFileDumper' => __DIR__ . '/..' . '/symfony/translation/Dumper/CsvFileDumper.php', - 'Symfony\\Component\\Translation\\Dumper\\DumperInterface' => __DIR__ . '/..' . '/symfony/translation/Dumper/DumperInterface.php', - 'Symfony\\Component\\Translation\\Dumper\\FileDumper' => __DIR__ . '/..' . '/symfony/translation/Dumper/FileDumper.php', - 'Symfony\\Component\\Translation\\Dumper\\IcuResFileDumper' => __DIR__ . '/..' . '/symfony/translation/Dumper/IcuResFileDumper.php', - 'Symfony\\Component\\Translation\\Dumper\\IniFileDumper' => __DIR__ . '/..' . '/symfony/translation/Dumper/IniFileDumper.php', - 'Symfony\\Component\\Translation\\Dumper\\JsonFileDumper' => __DIR__ . '/..' . '/symfony/translation/Dumper/JsonFileDumper.php', - 'Symfony\\Component\\Translation\\Dumper\\MoFileDumper' => __DIR__ . '/..' . '/symfony/translation/Dumper/MoFileDumper.php', - 'Symfony\\Component\\Translation\\Dumper\\PhpFileDumper' => __DIR__ . '/..' . '/symfony/translation/Dumper/PhpFileDumper.php', - 'Symfony\\Component\\Translation\\Dumper\\PoFileDumper' => __DIR__ . '/..' . '/symfony/translation/Dumper/PoFileDumper.php', - 'Symfony\\Component\\Translation\\Dumper\\QtFileDumper' => __DIR__ . '/..' . '/symfony/translation/Dumper/QtFileDumper.php', - 'Symfony\\Component\\Translation\\Dumper\\XliffFileDumper' => __DIR__ . '/..' . '/symfony/translation/Dumper/XliffFileDumper.php', - 'Symfony\\Component\\Translation\\Dumper\\YamlFileDumper' => __DIR__ . '/..' . '/symfony/translation/Dumper/YamlFileDumper.php', - 'Symfony\\Component\\Translation\\Exception\\ExceptionInterface' => __DIR__ . '/..' . '/symfony/translation/Exception/ExceptionInterface.php', - 'Symfony\\Component\\Translation\\Exception\\InvalidArgumentException' => __DIR__ . '/..' . '/symfony/translation/Exception/InvalidArgumentException.php', - 'Symfony\\Component\\Translation\\Exception\\InvalidResourceException' => __DIR__ . '/..' . '/symfony/translation/Exception/InvalidResourceException.php', - 'Symfony\\Component\\Translation\\Exception\\LogicException' => __DIR__ . '/..' . '/symfony/translation/Exception/LogicException.php', - 'Symfony\\Component\\Translation\\Exception\\NotFoundResourceException' => __DIR__ . '/..' . '/symfony/translation/Exception/NotFoundResourceException.php', - 'Symfony\\Component\\Translation\\Exception\\RuntimeException' => __DIR__ . '/..' . '/symfony/translation/Exception/RuntimeException.php', - 'Symfony\\Component\\Translation\\Extractor\\AbstractFileExtractor' => __DIR__ . '/..' . '/symfony/translation/Extractor/AbstractFileExtractor.php', - 'Symfony\\Component\\Translation\\Extractor\\ChainExtractor' => __DIR__ . '/..' . '/symfony/translation/Extractor/ChainExtractor.php', - 'Symfony\\Component\\Translation\\Extractor\\ExtractorInterface' => __DIR__ . '/..' . '/symfony/translation/Extractor/ExtractorInterface.php', - 'Symfony\\Component\\Translation\\Extractor\\PhpExtractor' => __DIR__ . '/..' . '/symfony/translation/Extractor/PhpExtractor.php', - 'Symfony\\Component\\Translation\\Extractor\\PhpStringTokenParser' => __DIR__ . '/..' . '/symfony/translation/Extractor/PhpStringTokenParser.php', - 'Symfony\\Component\\Translation\\Formatter\\ChoiceMessageFormatterInterface' => __DIR__ . '/..' . '/symfony/translation/Formatter/ChoiceMessageFormatterInterface.php', - 'Symfony\\Component\\Translation\\Formatter\\MessageFormatter' => __DIR__ . '/..' . '/symfony/translation/Formatter/MessageFormatter.php', - 'Symfony\\Component\\Translation\\Formatter\\MessageFormatterInterface' => __DIR__ . '/..' . '/symfony/translation/Formatter/MessageFormatterInterface.php', - 'Symfony\\Component\\Translation\\IdentityTranslator' => __DIR__ . '/..' . '/symfony/translation/IdentityTranslator.php', - 'Symfony\\Component\\Translation\\Interval' => __DIR__ . '/..' . '/symfony/translation/Interval.php', - 'Symfony\\Component\\Translation\\Loader\\ArrayLoader' => __DIR__ . '/..' . '/symfony/translation/Loader/ArrayLoader.php', - 'Symfony\\Component\\Translation\\Loader\\CsvFileLoader' => __DIR__ . '/..' . '/symfony/translation/Loader/CsvFileLoader.php', - 'Symfony\\Component\\Translation\\Loader\\FileLoader' => __DIR__ . '/..' . '/symfony/translation/Loader/FileLoader.php', - 'Symfony\\Component\\Translation\\Loader\\IcuDatFileLoader' => __DIR__ . '/..' . '/symfony/translation/Loader/IcuDatFileLoader.php', - 'Symfony\\Component\\Translation\\Loader\\IcuResFileLoader' => __DIR__ . '/..' . '/symfony/translation/Loader/IcuResFileLoader.php', - 'Symfony\\Component\\Translation\\Loader\\IniFileLoader' => __DIR__ . '/..' . '/symfony/translation/Loader/IniFileLoader.php', - 'Symfony\\Component\\Translation\\Loader\\JsonFileLoader' => __DIR__ . '/..' . '/symfony/translation/Loader/JsonFileLoader.php', - 'Symfony\\Component\\Translation\\Loader\\LoaderInterface' => __DIR__ . '/..' . '/symfony/translation/Loader/LoaderInterface.php', - 'Symfony\\Component\\Translation\\Loader\\MoFileLoader' => __DIR__ . '/..' . '/symfony/translation/Loader/MoFileLoader.php', - 'Symfony\\Component\\Translation\\Loader\\PhpFileLoader' => __DIR__ . '/..' . '/symfony/translation/Loader/PhpFileLoader.php', - 'Symfony\\Component\\Translation\\Loader\\PoFileLoader' => __DIR__ . '/..' . '/symfony/translation/Loader/PoFileLoader.php', - 'Symfony\\Component\\Translation\\Loader\\QtFileLoader' => __DIR__ . '/..' . '/symfony/translation/Loader/QtFileLoader.php', - 'Symfony\\Component\\Translation\\Loader\\XliffFileLoader' => __DIR__ . '/..' . '/symfony/translation/Loader/XliffFileLoader.php', - 'Symfony\\Component\\Translation\\Loader\\YamlFileLoader' => __DIR__ . '/..' . '/symfony/translation/Loader/YamlFileLoader.php', - 'Symfony\\Component\\Translation\\LoggingTranslator' => __DIR__ . '/..' . '/symfony/translation/LoggingTranslator.php', - 'Symfony\\Component\\Translation\\MessageCatalogue' => __DIR__ . '/..' . '/symfony/translation/MessageCatalogue.php', - 'Symfony\\Component\\Translation\\MessageCatalogueInterface' => __DIR__ . '/..' . '/symfony/translation/MessageCatalogueInterface.php', - 'Symfony\\Component\\Translation\\MessageSelector' => __DIR__ . '/..' . '/symfony/translation/MessageSelector.php', - 'Symfony\\Component\\Translation\\MetadataAwareInterface' => __DIR__ . '/..' . '/symfony/translation/MetadataAwareInterface.php', - 'Symfony\\Component\\Translation\\PluralizationRules' => __DIR__ . '/..' . '/symfony/translation/PluralizationRules.php', - 'Symfony\\Component\\Translation\\Reader\\TranslationReader' => __DIR__ . '/..' . '/symfony/translation/Reader/TranslationReader.php', - 'Symfony\\Component\\Translation\\Reader\\TranslationReaderInterface' => __DIR__ . '/..' . '/symfony/translation/Reader/TranslationReaderInterface.php', - 'Symfony\\Component\\Translation\\Translator' => __DIR__ . '/..' . '/symfony/translation/Translator.php', - 'Symfony\\Component\\Translation\\TranslatorBagInterface' => __DIR__ . '/..' . '/symfony/translation/TranslatorBagInterface.php', - 'Symfony\\Component\\Translation\\TranslatorInterface' => __DIR__ . '/..' . '/symfony/translation/TranslatorInterface.php', - 'Symfony\\Component\\Translation\\Util\\ArrayConverter' => __DIR__ . '/..' . '/symfony/translation/Util/ArrayConverter.php', - 'Symfony\\Component\\Translation\\Writer\\TranslationWriter' => __DIR__ . '/..' . '/symfony/translation/Writer/TranslationWriter.php', - 'Symfony\\Component\\Translation\\Writer\\TranslationWriterInterface' => __DIR__ . '/..' . '/symfony/translation/Writer/TranslationWriterInterface.php', - 'Symfony\\Component\\VarDumper\\Caster\\AmqpCaster' => __DIR__ . '/..' . '/symfony/var-dumper/Caster/AmqpCaster.php', - 'Symfony\\Component\\VarDumper\\Caster\\ArgsStub' => __DIR__ . '/..' . '/symfony/var-dumper/Caster/ArgsStub.php', - 'Symfony\\Component\\VarDumper\\Caster\\Caster' => __DIR__ . '/..' . '/symfony/var-dumper/Caster/Caster.php', - 'Symfony\\Component\\VarDumper\\Caster\\ClassStub' => __DIR__ . '/..' . '/symfony/var-dumper/Caster/ClassStub.php', - 'Symfony\\Component\\VarDumper\\Caster\\ConstStub' => __DIR__ . '/..' . '/symfony/var-dumper/Caster/ConstStub.php', - 'Symfony\\Component\\VarDumper\\Caster\\CutArrayStub' => __DIR__ . '/..' . '/symfony/var-dumper/Caster/CutArrayStub.php', - 'Symfony\\Component\\VarDumper\\Caster\\CutStub' => __DIR__ . '/..' . '/symfony/var-dumper/Caster/CutStub.php', - 'Symfony\\Component\\VarDumper\\Caster\\DOMCaster' => __DIR__ . '/..' . '/symfony/var-dumper/Caster/DOMCaster.php', - 'Symfony\\Component\\VarDumper\\Caster\\DateCaster' => __DIR__ . '/..' . '/symfony/var-dumper/Caster/DateCaster.php', - 'Symfony\\Component\\VarDumper\\Caster\\DoctrineCaster' => __DIR__ . '/..' . '/symfony/var-dumper/Caster/DoctrineCaster.php', - 'Symfony\\Component\\VarDumper\\Caster\\EnumStub' => __DIR__ . '/..' . '/symfony/var-dumper/Caster/EnumStub.php', - 'Symfony\\Component\\VarDumper\\Caster\\ExceptionCaster' => __DIR__ . '/..' . '/symfony/var-dumper/Caster/ExceptionCaster.php', - 'Symfony\\Component\\VarDumper\\Caster\\FrameStub' => __DIR__ . '/..' . '/symfony/var-dumper/Caster/FrameStub.php', - 'Symfony\\Component\\VarDumper\\Caster\\GmpCaster' => __DIR__ . '/..' . '/symfony/var-dumper/Caster/GmpCaster.php', - 'Symfony\\Component\\VarDumper\\Caster\\LinkStub' => __DIR__ . '/..' . '/symfony/var-dumper/Caster/LinkStub.php', - 'Symfony\\Component\\VarDumper\\Caster\\PdoCaster' => __DIR__ . '/..' . '/symfony/var-dumper/Caster/PdoCaster.php', - 'Symfony\\Component\\VarDumper\\Caster\\PgSqlCaster' => __DIR__ . '/..' . '/symfony/var-dumper/Caster/PgSqlCaster.php', - 'Symfony\\Component\\VarDumper\\Caster\\RedisCaster' => __DIR__ . '/..' . '/symfony/var-dumper/Caster/RedisCaster.php', - 'Symfony\\Component\\VarDumper\\Caster\\ReflectionCaster' => __DIR__ . '/..' . '/symfony/var-dumper/Caster/ReflectionCaster.php', - 'Symfony\\Component\\VarDumper\\Caster\\ResourceCaster' => __DIR__ . '/..' . '/symfony/var-dumper/Caster/ResourceCaster.php', - 'Symfony\\Component\\VarDumper\\Caster\\SplCaster' => __DIR__ . '/..' . '/symfony/var-dumper/Caster/SplCaster.php', - 'Symfony\\Component\\VarDumper\\Caster\\StubCaster' => __DIR__ . '/..' . '/symfony/var-dumper/Caster/StubCaster.php', - 'Symfony\\Component\\VarDumper\\Caster\\SymfonyCaster' => __DIR__ . '/..' . '/symfony/var-dumper/Caster/SymfonyCaster.php', - 'Symfony\\Component\\VarDumper\\Caster\\TraceStub' => __DIR__ . '/..' . '/symfony/var-dumper/Caster/TraceStub.php', - 'Symfony\\Component\\VarDumper\\Caster\\XmlReaderCaster' => __DIR__ . '/..' . '/symfony/var-dumper/Caster/XmlReaderCaster.php', - 'Symfony\\Component\\VarDumper\\Caster\\XmlResourceCaster' => __DIR__ . '/..' . '/symfony/var-dumper/Caster/XmlResourceCaster.php', - 'Symfony\\Component\\VarDumper\\Cloner\\AbstractCloner' => __DIR__ . '/..' . '/symfony/var-dumper/Cloner/AbstractCloner.php', - 'Symfony\\Component\\VarDumper\\Cloner\\ClonerInterface' => __DIR__ . '/..' . '/symfony/var-dumper/Cloner/ClonerInterface.php', - 'Symfony\\Component\\VarDumper\\Cloner\\Cursor' => __DIR__ . '/..' . '/symfony/var-dumper/Cloner/Cursor.php', - 'Symfony\\Component\\VarDumper\\Cloner\\Data' => __DIR__ . '/..' . '/symfony/var-dumper/Cloner/Data.php', - 'Symfony\\Component\\VarDumper\\Cloner\\DumperInterface' => __DIR__ . '/..' . '/symfony/var-dumper/Cloner/DumperInterface.php', - 'Symfony\\Component\\VarDumper\\Cloner\\Stub' => __DIR__ . '/..' . '/symfony/var-dumper/Cloner/Stub.php', - 'Symfony\\Component\\VarDumper\\Cloner\\VarCloner' => __DIR__ . '/..' . '/symfony/var-dumper/Cloner/VarCloner.php', - 'Symfony\\Component\\VarDumper\\Command\\Descriptor\\CliDescriptor' => __DIR__ . '/..' . '/symfony/var-dumper/Command/Descriptor/CliDescriptor.php', - 'Symfony\\Component\\VarDumper\\Command\\Descriptor\\DumpDescriptorInterface' => __DIR__ . '/..' . '/symfony/var-dumper/Command/Descriptor/DumpDescriptorInterface.php', - 'Symfony\\Component\\VarDumper\\Command\\Descriptor\\HtmlDescriptor' => __DIR__ . '/..' . '/symfony/var-dumper/Command/Descriptor/HtmlDescriptor.php', - 'Symfony\\Component\\VarDumper\\Command\\ServerDumpCommand' => __DIR__ . '/..' . '/symfony/var-dumper/Command/ServerDumpCommand.php', - 'Symfony\\Component\\VarDumper\\Dumper\\AbstractDumper' => __DIR__ . '/..' . '/symfony/var-dumper/Dumper/AbstractDumper.php', - 'Symfony\\Component\\VarDumper\\Dumper\\CliDumper' => __DIR__ . '/..' . '/symfony/var-dumper/Dumper/CliDumper.php', - 'Symfony\\Component\\VarDumper\\Dumper\\ContextProvider\\CliContextProvider' => __DIR__ . '/..' . '/symfony/var-dumper/Dumper/ContextProvider/CliContextProvider.php', - 'Symfony\\Component\\VarDumper\\Dumper\\ContextProvider\\ContextProviderInterface' => __DIR__ . '/..' . '/symfony/var-dumper/Dumper/ContextProvider/ContextProviderInterface.php', - 'Symfony\\Component\\VarDumper\\Dumper\\ContextProvider\\RequestContextProvider' => __DIR__ . '/..' . '/symfony/var-dumper/Dumper/ContextProvider/RequestContextProvider.php', - 'Symfony\\Component\\VarDumper\\Dumper\\ContextProvider\\SourceContextProvider' => __DIR__ . '/..' . '/symfony/var-dumper/Dumper/ContextProvider/SourceContextProvider.php', - 'Symfony\\Component\\VarDumper\\Dumper\\DataDumperInterface' => __DIR__ . '/..' . '/symfony/var-dumper/Dumper/DataDumperInterface.php', - 'Symfony\\Component\\VarDumper\\Dumper\\HtmlDumper' => __DIR__ . '/..' . '/symfony/var-dumper/Dumper/HtmlDumper.php', - 'Symfony\\Component\\VarDumper\\Dumper\\ServerDumper' => __DIR__ . '/..' . '/symfony/var-dumper/Dumper/ServerDumper.php', - 'Symfony\\Component\\VarDumper\\Exception\\ThrowingCasterException' => __DIR__ . '/..' . '/symfony/var-dumper/Exception/ThrowingCasterException.php', - 'Symfony\\Component\\VarDumper\\Server\\Connection' => __DIR__ . '/..' . '/symfony/var-dumper/Server/Connection.php', - 'Symfony\\Component\\VarDumper\\Server\\DumpServer' => __DIR__ . '/..' . '/symfony/var-dumper/Server/DumpServer.php', - 'Symfony\\Component\\VarDumper\\Test\\VarDumperTestTrait' => __DIR__ . '/..' . '/symfony/var-dumper/Test/VarDumperTestTrait.php', - 'Symfony\\Component\\VarDumper\\VarDumper' => __DIR__ . '/..' . '/symfony/var-dumper/VarDumper.php', - 'Symfony\\Polyfill\\Ctype\\Ctype' => __DIR__ . '/..' . '/symfony/polyfill-ctype/Ctype.php', - 'Symfony\\Polyfill\\Mbstring\\Mbstring' => __DIR__ . '/..' . '/symfony/polyfill-mbstring/Mbstring.php', - 'Symfony\\Polyfill\\Php72\\Php72' => __DIR__ . '/..' . '/symfony/polyfill-php72/Php72.php', - 'TagSeeder' => __DIR__ . '/../..' . '/database/seeds/TagSeeder.php', - 'Tests\\CreatesApplication' => __DIR__ . '/../..' . '/tests/CreatesApplication.php', - 'Tests\\Feature\\ExampleTest' => __DIR__ . '/../..' . '/tests/Feature/ExampleTest.php', - 'Tests\\TestCase' => __DIR__ . '/../..' . '/tests/TestCase.php', - 'Tests\\Unit\\ExampleTest' => __DIR__ . '/../..' . '/tests/Unit/ExampleTest.php', - 'Text_Template' => __DIR__ . '/..' . '/phpunit/php-text-template/src/Template.php', - 'TheSeer\\Tokenizer\\Exception' => __DIR__ . '/..' . '/theseer/tokenizer/src/Exception.php', - 'TheSeer\\Tokenizer\\NamespaceUri' => __DIR__ . '/..' . '/theseer/tokenizer/src/NamespaceUri.php', - 'TheSeer\\Tokenizer\\NamespaceUriException' => __DIR__ . '/..' . '/theseer/tokenizer/src/NamespaceUriException.php', - 'TheSeer\\Tokenizer\\Token' => __DIR__ . '/..' . '/theseer/tokenizer/src/Token.php', - 'TheSeer\\Tokenizer\\TokenCollection' => __DIR__ . '/..' . '/theseer/tokenizer/src/TokenCollection.php', - 'TheSeer\\Tokenizer\\TokenCollectionException' => __DIR__ . '/..' . '/theseer/tokenizer/src/TokenCollectionException.php', - 'TheSeer\\Tokenizer\\Tokenizer' => __DIR__ . '/..' . '/theseer/tokenizer/src/Tokenizer.php', - 'TheSeer\\Tokenizer\\XMLSerializer' => __DIR__ . '/..' . '/theseer/tokenizer/src/XMLSerializer.php', - 'TijsVerkoyen\\CssToInlineStyles\\CssToInlineStyles' => __DIR__ . '/..' . '/tijsverkoyen/css-to-inline-styles/src/CssToInlineStyles.php', - 'TijsVerkoyen\\CssToInlineStyles\\Css\\Processor' => __DIR__ . '/..' . '/tijsverkoyen/css-to-inline-styles/src/Css/Processor.php', - 'TijsVerkoyen\\CssToInlineStyles\\Css\\Property\\Processor' => __DIR__ . '/..' . '/tijsverkoyen/css-to-inline-styles/src/Css/Property/Processor.php', - 'TijsVerkoyen\\CssToInlineStyles\\Css\\Property\\Property' => __DIR__ . '/..' . '/tijsverkoyen/css-to-inline-styles/src/Css/Property/Property.php', - 'TijsVerkoyen\\CssToInlineStyles\\Css\\Rule\\Processor' => __DIR__ . '/..' . '/tijsverkoyen/css-to-inline-styles/src/Css/Rule/Processor.php', - 'TijsVerkoyen\\CssToInlineStyles\\Css\\Rule\\Rule' => __DIR__ . '/..' . '/tijsverkoyen/css-to-inline-styles/src/Css/Rule/Rule.php', - 'Toolkito\\Larasap\\Facebook\\Api' => __DIR__ . '/..' . '/toolkito/larasap/src/Facebook/Api.php', - 'Toolkito\\Larasap\\LarasapServiceProvider' => __DIR__ . '/..' . '/toolkito/larasap/src/LarasapServiceProvider.php', - 'Toolkito\\Larasap\\SendTo' => __DIR__ . '/..' . '/toolkito/larasap/src/SendTo.php', - 'Toolkito\\Larasap\\Telegram\\Api' => __DIR__ . '/..' . '/toolkito/larasap/src/Telegram/Api.php', - 'Toolkito\\Larasap\\Twitter\\Api' => __DIR__ . '/..' . '/toolkito/larasap/src/Twitter/Api.php', - 'Toolkito\\Larasap\\Twitter\\TwitterException' => __DIR__ . '/..' . '/toolkito/larasap/src/Twitter/Api.php', - 'Toolkito\\Larasap\\Twitter\\Twitter_OAuthConsumer' => __DIR__ . '/..' . '/toolkito/larasap/src/Twitter/OAuth.php', - 'Toolkito\\Larasap\\Twitter\\Twitter_OAuthDataStore' => __DIR__ . '/..' . '/toolkito/larasap/src/Twitter/OAuth.php', - 'Toolkito\\Larasap\\Twitter\\Twitter_OAuthException' => __DIR__ . '/..' . '/toolkito/larasap/src/Twitter/OAuth.php', - 'Toolkito\\Larasap\\Twitter\\Twitter_OAuthRequest' => __DIR__ . '/..' . '/toolkito/larasap/src/Twitter/OAuth.php', - 'Toolkito\\Larasap\\Twitter\\Twitter_OAuthServer' => __DIR__ . '/..' . '/toolkito/larasap/src/Twitter/OAuth.php', - 'Toolkito\\Larasap\\Twitter\\Twitter_OAuthSignatureMethod' => __DIR__ . '/..' . '/toolkito/larasap/src/Twitter/OAuth.php', - 'Toolkito\\Larasap\\Twitter\\Twitter_OAuthSignatureMethod_HMAC_SHA1' => __DIR__ . '/..' . '/toolkito/larasap/src/Twitter/OAuth.php', - 'Toolkito\\Larasap\\Twitter\\Twitter_OAuthSignatureMethod_PLAINTEXT' => __DIR__ . '/..' . '/toolkito/larasap/src/Twitter/OAuth.php', - 'Toolkito\\Larasap\\Twitter\\Twitter_OAuthSignatureMethod_RSA_SHA1' => __DIR__ . '/..' . '/toolkito/larasap/src/Twitter/OAuth.php', - 'Toolkito\\Larasap\\Twitter\\Twitter_OAuthToken' => __DIR__ . '/..' . '/toolkito/larasap/src/Twitter/OAuth.php', - 'Toolkito\\Larasap\\Twitter\\Twitter_OAuthUtil' => __DIR__ . '/..' . '/toolkito/larasap/src/Twitter/OAuth.php', - 'UserSeeder' => __DIR__ . '/../..' . '/database/seeds/UserSeeder.php', - 'VehicleSeeder' => __DIR__ . '/../..' . '/database/seeds/VehicleSeeder.php', - 'Webmozart\\Assert\\Assert' => __DIR__ . '/..' . '/webmozart/assert/src/Assert.php', - 'Whoops\\Exception\\ErrorException' => __DIR__ . '/..' . '/filp/whoops/src/Whoops/Exception/ErrorException.php', - 'Whoops\\Exception\\Formatter' => __DIR__ . '/..' . '/filp/whoops/src/Whoops/Exception/Formatter.php', - 'Whoops\\Exception\\Frame' => __DIR__ . '/..' . '/filp/whoops/src/Whoops/Exception/Frame.php', - 'Whoops\\Exception\\FrameCollection' => __DIR__ . '/..' . '/filp/whoops/src/Whoops/Exception/FrameCollection.php', - 'Whoops\\Exception\\Inspector' => __DIR__ . '/..' . '/filp/whoops/src/Whoops/Exception/Inspector.php', - 'Whoops\\Handler\\CallbackHandler' => __DIR__ . '/..' . '/filp/whoops/src/Whoops/Handler/CallbackHandler.php', - 'Whoops\\Handler\\Handler' => __DIR__ . '/..' . '/filp/whoops/src/Whoops/Handler/Handler.php', - 'Whoops\\Handler\\HandlerInterface' => __DIR__ . '/..' . '/filp/whoops/src/Whoops/Handler/HandlerInterface.php', - 'Whoops\\Handler\\JsonResponseHandler' => __DIR__ . '/..' . '/filp/whoops/src/Whoops/Handler/JsonResponseHandler.php', - 'Whoops\\Handler\\PlainTextHandler' => __DIR__ . '/..' . '/filp/whoops/src/Whoops/Handler/PlainTextHandler.php', - 'Whoops\\Handler\\PrettyPageHandler' => __DIR__ . '/..' . '/filp/whoops/src/Whoops/Handler/PrettyPageHandler.php', - 'Whoops\\Handler\\XmlResponseHandler' => __DIR__ . '/..' . '/filp/whoops/src/Whoops/Handler/XmlResponseHandler.php', - 'Whoops\\Run' => __DIR__ . '/..' . '/filp/whoops/src/Whoops/Run.php', - 'Whoops\\RunInterface' => __DIR__ . '/..' . '/filp/whoops/src/Whoops/RunInterface.php', - 'Whoops\\Util\\HtmlDumperOutput' => __DIR__ . '/..' . '/filp/whoops/src/Whoops/Util/HtmlDumperOutput.php', - 'Whoops\\Util\\Misc' => __DIR__ . '/..' . '/filp/whoops/src/Whoops/Util/Misc.php', - 'Whoops\\Util\\SystemFacade' => __DIR__ . '/..' . '/filp/whoops/src/Whoops/Util/SystemFacade.php', - 'Whoops\\Util\\TemplateHelper' => __DIR__ . '/..' . '/filp/whoops/src/Whoops/Util/TemplateHelper.php', - 'XdgBaseDir\\Xdg' => __DIR__ . '/..' . '/dnoegel/php-xdg-base-dir/src/Xdg.php', - 'phpDocumentor\\Reflection\\DocBlock' => __DIR__ . '/..' . '/phpdocumentor/reflection-docblock/src/DocBlock.php', - 'phpDocumentor\\Reflection\\DocBlockFactory' => __DIR__ . '/..' . '/phpdocumentor/reflection-docblock/src/DocBlockFactory.php', - 'phpDocumentor\\Reflection\\DocBlockFactoryInterface' => __DIR__ . '/..' . '/phpdocumentor/reflection-docblock/src/DocBlockFactoryInterface.php', - 'phpDocumentor\\Reflection\\DocBlock\\Description' => __DIR__ . '/..' . '/phpdocumentor/reflection-docblock/src/DocBlock/Description.php', - 'phpDocumentor\\Reflection\\DocBlock\\DescriptionFactory' => __DIR__ . '/..' . '/phpdocumentor/reflection-docblock/src/DocBlock/DescriptionFactory.php', - 'phpDocumentor\\Reflection\\DocBlock\\ExampleFinder' => __DIR__ . '/..' . '/phpdocumentor/reflection-docblock/src/DocBlock/ExampleFinder.php', - 'phpDocumentor\\Reflection\\DocBlock\\Serializer' => __DIR__ . '/..' . '/phpdocumentor/reflection-docblock/src/DocBlock/Serializer.php', - 'phpDocumentor\\Reflection\\DocBlock\\StandardTagFactory' => __DIR__ . '/..' . '/phpdocumentor/reflection-docblock/src/DocBlock/StandardTagFactory.php', - 'phpDocumentor\\Reflection\\DocBlock\\Tag' => __DIR__ . '/..' . '/phpdocumentor/reflection-docblock/src/DocBlock/Tag.php', - 'phpDocumentor\\Reflection\\DocBlock\\TagFactory' => __DIR__ . '/..' . '/phpdocumentor/reflection-docblock/src/DocBlock/TagFactory.php', - 'phpDocumentor\\Reflection\\DocBlock\\Tags\\Author' => __DIR__ . '/..' . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Author.php', - 'phpDocumentor\\Reflection\\DocBlock\\Tags\\BaseTag' => __DIR__ . '/..' . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/BaseTag.php', - 'phpDocumentor\\Reflection\\DocBlock\\Tags\\Covers' => __DIR__ . '/..' . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Covers.php', - 'phpDocumentor\\Reflection\\DocBlock\\Tags\\Deprecated' => __DIR__ . '/..' . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Deprecated.php', - 'phpDocumentor\\Reflection\\DocBlock\\Tags\\Example' => __DIR__ . '/..' . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Example.php', - 'phpDocumentor\\Reflection\\DocBlock\\Tags\\Factory\\StaticMethod' => __DIR__ . '/..' . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Factory/StaticMethod.php', - 'phpDocumentor\\Reflection\\DocBlock\\Tags\\Factory\\Strategy' => __DIR__ . '/..' . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Factory/Strategy.php', - 'phpDocumentor\\Reflection\\DocBlock\\Tags\\Formatter' => __DIR__ . '/..' . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Formatter.php', - 'phpDocumentor\\Reflection\\DocBlock\\Tags\\Formatter\\AlignFormatter' => __DIR__ . '/..' . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Formatter/AlignFormatter.php', - 'phpDocumentor\\Reflection\\DocBlock\\Tags\\Formatter\\PassthroughFormatter' => __DIR__ . '/..' . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Formatter/PassthroughFormatter.php', - 'phpDocumentor\\Reflection\\DocBlock\\Tags\\Generic' => __DIR__ . '/..' . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Generic.php', - 'phpDocumentor\\Reflection\\DocBlock\\Tags\\Link' => __DIR__ . '/..' . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Link.php', - 'phpDocumentor\\Reflection\\DocBlock\\Tags\\Method' => __DIR__ . '/..' . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Method.php', - 'phpDocumentor\\Reflection\\DocBlock\\Tags\\Param' => __DIR__ . '/..' . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Param.php', - 'phpDocumentor\\Reflection\\DocBlock\\Tags\\Property' => __DIR__ . '/..' . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Property.php', - 'phpDocumentor\\Reflection\\DocBlock\\Tags\\PropertyRead' => __DIR__ . '/..' . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/PropertyRead.php', - 'phpDocumentor\\Reflection\\DocBlock\\Tags\\PropertyWrite' => __DIR__ . '/..' . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/PropertyWrite.php', - 'phpDocumentor\\Reflection\\DocBlock\\Tags\\Reference\\Fqsen' => __DIR__ . '/..' . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Reference/Fqsen.php', - 'phpDocumentor\\Reflection\\DocBlock\\Tags\\Reference\\Reference' => __DIR__ . '/..' . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Reference/Reference.php', - 'phpDocumentor\\Reflection\\DocBlock\\Tags\\Reference\\Url' => __DIR__ . '/..' . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Reference/Url.php', - 'phpDocumentor\\Reflection\\DocBlock\\Tags\\Return_' => __DIR__ . '/..' . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Return_.php', - 'phpDocumentor\\Reflection\\DocBlock\\Tags\\See' => __DIR__ . '/..' . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/See.php', - 'phpDocumentor\\Reflection\\DocBlock\\Tags\\Since' => __DIR__ . '/..' . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Since.php', - 'phpDocumentor\\Reflection\\DocBlock\\Tags\\Source' => __DIR__ . '/..' . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Source.php', - 'phpDocumentor\\Reflection\\DocBlock\\Tags\\Throws' => __DIR__ . '/..' . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Throws.php', - 'phpDocumentor\\Reflection\\DocBlock\\Tags\\Uses' => __DIR__ . '/..' . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Uses.php', - 'phpDocumentor\\Reflection\\DocBlock\\Tags\\Var_' => __DIR__ . '/..' . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Var_.php', - 'phpDocumentor\\Reflection\\DocBlock\\Tags\\Version' => __DIR__ . '/..' . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Version.php', - 'phpDocumentor\\Reflection\\Element' => __DIR__ . '/..' . '/phpdocumentor/reflection-common/src/Element.php', - 'phpDocumentor\\Reflection\\File' => __DIR__ . '/..' . '/phpdocumentor/reflection-common/src/File.php', - 'phpDocumentor\\Reflection\\Fqsen' => __DIR__ . '/..' . '/phpdocumentor/reflection-common/src/Fqsen.php', - 'phpDocumentor\\Reflection\\FqsenResolver' => __DIR__ . '/..' . '/phpdocumentor/type-resolver/src/FqsenResolver.php', - 'phpDocumentor\\Reflection\\Location' => __DIR__ . '/..' . '/phpdocumentor/reflection-common/src/Location.php', - 'phpDocumentor\\Reflection\\Project' => __DIR__ . '/..' . '/phpdocumentor/reflection-common/src/Project.php', - 'phpDocumentor\\Reflection\\ProjectFactory' => __DIR__ . '/..' . '/phpdocumentor/reflection-common/src/ProjectFactory.php', - 'phpDocumentor\\Reflection\\Type' => __DIR__ . '/..' . '/phpdocumentor/type-resolver/src/Type.php', - 'phpDocumentor\\Reflection\\TypeResolver' => __DIR__ . '/..' . '/phpdocumentor/type-resolver/src/TypeResolver.php', - 'phpDocumentor\\Reflection\\Types\\Array_' => __DIR__ . '/..' . '/phpdocumentor/type-resolver/src/Types/Array_.php', - 'phpDocumentor\\Reflection\\Types\\Boolean' => __DIR__ . '/..' . '/phpdocumentor/type-resolver/src/Types/Boolean.php', - 'phpDocumentor\\Reflection\\Types\\Callable_' => __DIR__ . '/..' . '/phpdocumentor/type-resolver/src/Types/Callable_.php', - 'phpDocumentor\\Reflection\\Types\\Compound' => __DIR__ . '/..' . '/phpdocumentor/type-resolver/src/Types/Compound.php', - 'phpDocumentor\\Reflection\\Types\\Context' => __DIR__ . '/..' . '/phpdocumentor/type-resolver/src/Types/Context.php', - 'phpDocumentor\\Reflection\\Types\\ContextFactory' => __DIR__ . '/..' . '/phpdocumentor/type-resolver/src/Types/ContextFactory.php', - 'phpDocumentor\\Reflection\\Types\\Float_' => __DIR__ . '/..' . '/phpdocumentor/type-resolver/src/Types/Float_.php', - 'phpDocumentor\\Reflection\\Types\\Integer' => __DIR__ . '/..' . '/phpdocumentor/type-resolver/src/Types/Integer.php', - 'phpDocumentor\\Reflection\\Types\\Iterable_' => __DIR__ . '/..' . '/phpdocumentor/type-resolver/src/Types/Iterable_.php', - 'phpDocumentor\\Reflection\\Types\\Mixed_' => __DIR__ . '/..' . '/phpdocumentor/type-resolver/src/Types/Mixed_.php', - 'phpDocumentor\\Reflection\\Types\\Null_' => __DIR__ . '/..' . '/phpdocumentor/type-resolver/src/Types/Null_.php', - 'phpDocumentor\\Reflection\\Types\\Nullable' => __DIR__ . '/..' . '/phpdocumentor/type-resolver/src/Types/Nullable.php', - 'phpDocumentor\\Reflection\\Types\\Object_' => __DIR__ . '/..' . '/phpdocumentor/type-resolver/src/Types/Object_.php', - 'phpDocumentor\\Reflection\\Types\\Parent_' => __DIR__ . '/..' . '/phpdocumentor/type-resolver/src/Types/Parent_.php', - 'phpDocumentor\\Reflection\\Types\\Resource_' => __DIR__ . '/..' . '/phpdocumentor/type-resolver/src/Types/Resource_.php', - 'phpDocumentor\\Reflection\\Types\\Scalar' => __DIR__ . '/..' . '/phpdocumentor/type-resolver/src/Types/Scalar.php', - 'phpDocumentor\\Reflection\\Types\\Self_' => __DIR__ . '/..' . '/phpdocumentor/type-resolver/src/Types/Self_.php', - 'phpDocumentor\\Reflection\\Types\\Static_' => __DIR__ . '/..' . '/phpdocumentor/type-resolver/src/Types/Static_.php', - 'phpDocumentor\\Reflection\\Types\\String_' => __DIR__ . '/..' . '/phpdocumentor/type-resolver/src/Types/String_.php', - 'phpDocumentor\\Reflection\\Types\\This' => __DIR__ . '/..' . '/phpdocumentor/type-resolver/src/Types/This.php', - 'phpDocumentor\\Reflection\\Types\\Void_' => __DIR__ . '/..' . '/phpdocumentor/type-resolver/src/Types/Void_.php', - ); - - public static function getInitializer(ClassLoader $loader) - { - return \Closure::bind(function () use ($loader) { - $loader->prefixLengthsPsr4 = ComposerStaticInitb64cb0db53578212da4056f651da37a1::$prefixLengthsPsr4; - $loader->prefixDirsPsr4 = ComposerStaticInitb64cb0db53578212da4056f651da37a1::$prefixDirsPsr4; - $loader->prefixesPsr0 = ComposerStaticInitb64cb0db53578212da4056f651da37a1::$prefixesPsr0; - $loader->classMap = ComposerStaticInitb64cb0db53578212da4056f651da37a1::$classMap; - - }, null, ClassLoader::class); - } -} diff --git a/vendor/composer/installed.json b/vendor/composer/installed.json deleted file mode 100644 index 6ddc7d07..00000000 --- a/vendor/composer/installed.json +++ /dev/null @@ -1,5005 +0,0 @@ -[ - { - "name": "bacon/bacon-qr-code", - "version": "1.0.3", - "version_normalized": "1.0.3.0", - "source": { - "type": "git", - "url": "https://github.com/Bacon/BaconQrCode.git", - "reference": "5a91b62b9d37cee635bbf8d553f4546057250bee" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/Bacon/BaconQrCode/zipball/5a91b62b9d37cee635bbf8d553f4546057250bee", - "reference": "5a91b62b9d37cee635bbf8d553f4546057250bee", - "shasum": "" - }, - "require": { - "ext-iconv": "*", - "php": "^5.4|^7.0" - }, - "require-dev": { - "phpunit/phpunit": "^4.8" - }, - "suggest": { - "ext-gd": "to generate QR code images" - }, - "time": "2017-10-17T09:59:25+00:00", - "type": "library", - "installation-source": "dist", - "autoload": { - "psr-0": { - "BaconQrCode": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-2-Clause" - ], - "authors": [ - { - "name": "Ben Scholzen 'DASPRiD'", - "email": "mail@dasprids.de", - "homepage": "http://www.dasprids.de", - "role": "Developer" - } - ], - "description": "BaconQrCode is a QR code generator for PHP.", - "homepage": "https://github.com/Bacon/BaconQrCode" - }, - { - "name": "barryvdh/laravel-debugbar", - "version": "v3.1.5", - "version_normalized": "3.1.5.0", - "source": { - "type": "git", - "url": "https://github.com/barryvdh/laravel-debugbar.git", - "reference": "d3cdca2ad6cc6e67735b4a63e7551c690a497f5f" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/barryvdh/laravel-debugbar/zipball/d3cdca2ad6cc6e67735b4a63e7551c690a497f5f", - "reference": "d3cdca2ad6cc6e67735b4a63e7551c690a497f5f", - "shasum": "" - }, - "require": { - "illuminate/routing": "5.5.x|5.6.x", - "illuminate/session": "5.5.x|5.6.x", - "illuminate/support": "5.5.x|5.6.x", - "maximebf/debugbar": "~1.15.0", - "php": ">=7.0", - "symfony/debug": "^3|^4", - "symfony/finder": "^3|^4" - }, - "require-dev": { - "illuminate/framework": "5.5.x" - }, - "time": "2018-05-03T18:27:04+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.2-dev" - }, - "laravel": { - "providers": [ - "Barryvdh\\Debugbar\\ServiceProvider" - ], - "aliases": { - "Debugbar": "Barryvdh\\Debugbar\\Facade" - } - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "Barryvdh\\Debugbar\\": "src/" - }, - "files": [ - "src/helpers.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Barry vd. Heuvel", - "email": "barryvdh@gmail.com" - } - ], - "description": "PHP Debugbar integration for Laravel", - "keywords": [ - "debug", - "debugbar", - "laravel", - "profiler", - "webprofiler" - ] - }, - { - "name": "cocur/slugify", - "version": "v3.1", - "version_normalized": "3.1.0.0", - "source": { - "type": "git", - "url": "https://github.com/cocur/slugify.git", - "reference": "b2ccf7b735f4f3df3979aef2e1ebf8e19ca772f7" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/cocur/slugify/zipball/b2ccf7b735f4f3df3979aef2e1ebf8e19ca772f7", - "reference": "b2ccf7b735f4f3df3979aef2e1ebf8e19ca772f7", - "shasum": "" - }, - "require": { - "ext-mbstring": "*", - "php": ">=5.5.9" - }, - "require-dev": { - "laravel/framework": "~5.1", - "latte/latte": "~2.2", - "league/container": "^2.2.0", - "mikey179/vfsstream": "~1.6", - "mockery/mockery": "~0.9", - "nette/di": "~2.2", - "phpunit/phpunit": "~4.8|~5.2", - "pimple/pimple": "~1.1", - "plumphp/plum": "~0.1", - "silex/silex": "~1.3", - "symfony/config": "~2.4|~3.0", - "symfony/dependency-injection": "~2.4|~3.0", - "symfony/http-kernel": "~2.4|~3.0", - "twig/twig": "~1.26|~2.0", - "zendframework/zend-modulemanager": "~2.2", - "zendframework/zend-servicemanager": "~2.2", - "zendframework/zend-view": "~2.2" - }, - "time": "2018-01-22T09:00:48+00:00", - "type": "library", - "installation-source": "dist", - "autoload": { - "psr-4": { - "Cocur\\Slugify\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Ivo Bathke", - "email": "ivo.bathke@gmail.com" - }, - { - "name": "Florian Eckerstorfer", - "email": "florian@eckerstorfer.co", - "homepage": "https://florian.ec" - } - ], - "description": "Converts a string into a slug.", - "keywords": [ - "slug", - "slugify" - ] - }, - { - "name": "cviebrock/eloquent-sluggable", - "version": "4.5.0", - "version_normalized": "4.5.0.0", - "source": { - "type": "git", - "url": "https://github.com/cviebrock/eloquent-sluggable.git", - "reference": "f3595c9672a063df765d0ac748a02cfaf4257095" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/cviebrock/eloquent-sluggable/zipball/f3595c9672a063df765d0ac748a02cfaf4257095", - "reference": "f3595c9672a063df765d0ac748a02cfaf4257095", - "shasum": "" - }, - "require": { - "cocur/slugify": "^3.0", - "illuminate/config": "~5.6.0", - "illuminate/database": "~5.6.0", - "illuminate/support": "~5.6.0", - "php": "^7.0" - }, - "require-dev": { - "codedungeon/phpunit-result-printer": "^0.6.0", - "mockery/mockery": "^0.9.4", - "orchestra/database": "~3.6.0", - "orchestra/testbench": "~3.6.0", - "phpunit/phpunit": "~7.0" - }, - "time": "2018-02-11T02:19:23+00:00", - "type": "library", - "extra": { - "laravel": { - "providers": [ - "Cviebrock\\EloquentSluggable\\ServiceProvider" - ] - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "Cviebrock\\EloquentSluggable\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Colin Viebrock", - "email": "colin@viebrock.ca" - } - ], - "description": "Easy creation of slugs for your Eloquent models in Laravel 5.", - "homepage": "https://github.com/cviebrock/eloquent-sluggable", - "keywords": [ - "eloquent", - "eloquent-sluggable", - "laravel", - "lumen", - "slug", - "sluggable" - ] - }, - { - "name": "dnoegel/php-xdg-base-dir", - "version": "0.1", - "version_normalized": "0.1.0.0", - "source": { - "type": "git", - "url": "https://github.com/dnoegel/php-xdg-base-dir.git", - "reference": "265b8593498b997dc2d31e75b89f053b5cc9621a" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/dnoegel/php-xdg-base-dir/zipball/265b8593498b997dc2d31e75b89f053b5cc9621a", - "reference": "265b8593498b997dc2d31e75b89f053b5cc9621a", - "shasum": "" - }, - "require": { - "php": ">=5.3.2" - }, - "require-dev": { - "phpunit/phpunit": "@stable" - }, - "time": "2014-10-24T07:27:01+00:00", - "type": "project", - "installation-source": "dist", - "autoload": { - "psr-4": { - "XdgBaseDir\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "description": "implementation of xdg base directory specification for php" - }, - { - "name": "doctrine/inflector", - "version": "v1.3.0", - "version_normalized": "1.3.0.0", - "source": { - "type": "git", - "url": "https://github.com/doctrine/inflector.git", - "reference": "5527a48b7313d15261292c149e55e26eae771b0a" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/doctrine/inflector/zipball/5527a48b7313d15261292c149e55e26eae771b0a", - "reference": "5527a48b7313d15261292c149e55e26eae771b0a", - "shasum": "" - }, - "require": { - "php": "^7.1" - }, - "require-dev": { - "phpunit/phpunit": "^6.2" - }, - "time": "2018-01-09T20:05:19+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.3.x-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "Doctrine\\Common\\Inflector\\": "lib/Doctrine/Common/Inflector" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Roman Borschel", - "email": "roman@code-factory.org" - }, - { - "name": "Benjamin Eberlei", - "email": "kontakt@beberlei.de" - }, - { - "name": "Guilherme Blanco", - "email": "guilhermeblanco@gmail.com" - }, - { - "name": "Jonathan Wage", - "email": "jonwage@gmail.com" - }, - { - "name": "Johannes Schmitt", - "email": "schmittjoh@gmail.com" - } - ], - "description": "Common String Manipulations with regard to casing and singular/plural rules.", - "homepage": "http://www.doctrine-project.org", - "keywords": [ - "inflection", - "pluralize", - "singularize", - "string" - ] - }, - { - "name": "doctrine/instantiator", - "version": "1.1.0", - "version_normalized": "1.1.0.0", - "source": { - "type": "git", - "url": "https://github.com/doctrine/instantiator.git", - "reference": "185b8868aa9bf7159f5f953ed5afb2d7fcdc3bda" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/doctrine/instantiator/zipball/185b8868aa9bf7159f5f953ed5afb2d7fcdc3bda", - "reference": "185b8868aa9bf7159f5f953ed5afb2d7fcdc3bda", - "shasum": "" - }, - "require": { - "php": "^7.1" - }, - "require-dev": { - "athletic/athletic": "~0.1.8", - "ext-pdo": "*", - "ext-phar": "*", - "phpunit/phpunit": "^6.2.3", - "squizlabs/php_codesniffer": "^3.0.2" - }, - "time": "2017-07-22T11:58:36+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.2.x-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Marco Pivetta", - "email": "ocramius@gmail.com", - "homepage": "http://ocramius.github.com/" - } - ], - "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors", - "homepage": "https://github.com/doctrine/instantiator", - "keywords": [ - "constructor", - "instantiate" - ] - }, - { - "name": "doctrine/lexer", - "version": "v1.0.1", - "version_normalized": "1.0.1.0", - "source": { - "type": "git", - "url": "https://github.com/doctrine/lexer.git", - "reference": "83893c552fd2045dd78aef794c31e694c37c0b8c" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/doctrine/lexer/zipball/83893c552fd2045dd78aef794c31e694c37c0b8c", - "reference": "83893c552fd2045dd78aef794c31e694c37c0b8c", - "shasum": "" - }, - "require": { - "php": ">=5.3.2" - }, - "time": "2014-09-09T13:34:57+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-0": { - "Doctrine\\Common\\Lexer\\": "lib/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Roman Borschel", - "email": "roman@code-factory.org" - }, - { - "name": "Guilherme Blanco", - "email": "guilhermeblanco@gmail.com" - }, - { - "name": "Johannes Schmitt", - "email": "schmittjoh@gmail.com" - } - ], - "description": "Base library for a lexer that can be used in Top-Down, Recursive Descent Parsers.", - "homepage": "http://www.doctrine-project.org", - "keywords": [ - "lexer", - "parser" - ] - }, - { - "name": "dragonmantank/cron-expression", - "version": "v2.2.0", - "version_normalized": "2.2.0.0", - "source": { - "type": "git", - "url": "https://github.com/dragonmantank/cron-expression.git", - "reference": "92a2c3768d50e21a1f26a53cb795ce72806266c5" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/dragonmantank/cron-expression/zipball/92a2c3768d50e21a1f26a53cb795ce72806266c5", - "reference": "92a2c3768d50e21a1f26a53cb795ce72806266c5", - "shasum": "" - }, - "require": { - "php": ">=7.0.0" - }, - "require-dev": { - "phpunit/phpunit": "~6.4" - }, - "time": "2018-06-06T03:12:17+00:00", - "type": "library", - "installation-source": "dist", - "autoload": { - "psr-4": { - "Cron\\": "src/Cron/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Michael Dowling", - "email": "mtdowling@gmail.com", - "homepage": "https://github.com/mtdowling" - }, - { - "name": "Chris Tankersley", - "email": "chris@ctankersley.com", - "homepage": "https://github.com/dragonmantank" - } - ], - "description": "CRON for PHP: Calculate the next or previous run date and determine if a CRON expression is due", - "keywords": [ - "cron", - "schedule" - ] - }, - { - "name": "egulias/email-validator", - "version": "2.1.4", - "version_normalized": "2.1.4.0", - "source": { - "type": "git", - "url": "https://github.com/egulias/EmailValidator.git", - "reference": "8790f594151ca6a2010c6218e09d96df67173ad3" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/egulias/EmailValidator/zipball/8790f594151ca6a2010c6218e09d96df67173ad3", - "reference": "8790f594151ca6a2010c6218e09d96df67173ad3", - "shasum": "" - }, - "require": { - "doctrine/lexer": "^1.0.1", - "php": ">= 5.5" - }, - "require-dev": { - "dominicsayers/isemail": "dev-master", - "phpunit/phpunit": "^4.8.35||^5.7||^6.0", - "satooshi/php-coveralls": "^1.0.1" - }, - "suggest": { - "ext-intl": "PHP Internationalization Libraries are required to use the SpoofChecking validation" - }, - "time": "2018-04-10T10:11:19+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.0.x-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "Egulias\\EmailValidator\\": "EmailValidator" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Eduardo Gulias Davis" - } - ], - "description": "A library for validating emails against several RFCs", - "homepage": "https://github.com/egulias/EmailValidator", - "keywords": [ - "email", - "emailvalidation", - "emailvalidator", - "validation", - "validator" - ] - }, - { - "name": "erusev/parsedown", - "version": "1.7.1", - "version_normalized": "1.7.1.0", - "source": { - "type": "git", - "url": "https://github.com/erusev/parsedown.git", - "reference": "92e9c27ba0e74b8b028b111d1b6f956a15c01fc1" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/erusev/parsedown/zipball/92e9c27ba0e74b8b028b111d1b6f956a15c01fc1", - "reference": "92e9c27ba0e74b8b028b111d1b6f956a15c01fc1", - "shasum": "" - }, - "require": { - "ext-mbstring": "*", - "php": ">=5.3.0" - }, - "require-dev": { - "phpunit/phpunit": "^4.8.35" - }, - "time": "2018-03-08T01:11:30+00:00", - "type": "library", - "installation-source": "dist", - "autoload": { - "psr-0": { - "Parsedown": "" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Emanuil Rusev", - "email": "hello@erusev.com", - "homepage": "http://erusev.com" - } - ], - "description": "Parser for Markdown.", - "homepage": "http://parsedown.org", - "keywords": [ - "markdown", - "parser" - ] - }, - { - "name": "facebook/graph-sdk", - "version": "5.6.3", - "version_normalized": "5.6.3.0", - "source": { - "type": "git", - "url": "https://github.com/facebook/php-graph-sdk.git", - "reference": "90e92bd1816fe718e55184ab85910dfcf488432c" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/facebook/php-graph-sdk/zipball/90e92bd1816fe718e55184ab85910dfcf488432c", - "reference": "90e92bd1816fe718e55184ab85910dfcf488432c", - "shasum": "" - }, - "require": { - "php": "^5.4|^7.0" - }, - "require-dev": { - "guzzlehttp/guzzle": "~5.0", - "mockery/mockery": "~0.8", - "phpunit/phpunit": "~4.0" - }, - "suggest": { - "guzzlehttp/guzzle": "Allows for implementation of the Guzzle HTTP client", - "paragonie/random_compat": "Provides a better CSPRNG option in PHP 5" - }, - "time": "2018-07-03T02:25:00+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "5.x-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "Facebook\\": "src/Facebook/" - }, - "files": [ - "src/Facebook/polyfills.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "Facebook Platform" - ], - "authors": [ - { - "name": "Facebook", - "homepage": "https://github.com/facebook/php-graph-sdk/contributors" - } - ], - "description": "Facebook SDK for PHP", - "homepage": "https://github.com/facebook/php-graph-sdk", - "keywords": [ - "facebook", - "sdk" - ] - }, - { - "name": "fideloper/proxy", - "version": "4.0.0", - "version_normalized": "4.0.0.0", - "source": { - "type": "git", - "url": "https://github.com/fideloper/TrustedProxy.git", - "reference": "cf8a0ca4b85659b9557e206c90110a6a4dba980a" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/fideloper/TrustedProxy/zipball/cf8a0ca4b85659b9557e206c90110a6a4dba980a", - "reference": "cf8a0ca4b85659b9557e206c90110a6a4dba980a", - "shasum": "" - }, - "require": { - "illuminate/contracts": "~5.0", - "php": ">=5.4.0" - }, - "require-dev": { - "illuminate/http": "~5.6", - "mockery/mockery": "~1.0", - "phpunit/phpunit": "^6.0" - }, - "time": "2018-02-07T20:20:57+00:00", - "type": "library", - "extra": { - "laravel": { - "providers": [ - "Fideloper\\Proxy\\TrustedProxyServiceProvider" - ] - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "Fideloper\\Proxy\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Chris Fidao", - "email": "fideloper@gmail.com" - } - ], - "description": "Set trusted proxies for Laravel", - "keywords": [ - "load balancing", - "proxy", - "trusted proxy" - ] - }, - { - "name": "filp/whoops", - "version": "2.2.0", - "version_normalized": "2.2.0.0", - "source": { - "type": "git", - "url": "https://github.com/filp/whoops.git", - "reference": "181c4502d8f34db7aed7bfe88d4f87875b8e947a" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/filp/whoops/zipball/181c4502d8f34db7aed7bfe88d4f87875b8e947a", - "reference": "181c4502d8f34db7aed7bfe88d4f87875b8e947a", - "shasum": "" - }, - "require": { - "php": "^5.5.9 || ^7.0", - "psr/log": "^1.0.1" - }, - "require-dev": { - "mockery/mockery": "^0.9 || ^1.0", - "phpunit/phpunit": "^4.8.35 || ^5.7", - "symfony/var-dumper": "^2.6 || ^3.0 || ^4.0" - }, - "suggest": { - "symfony/var-dumper": "Pretty print complex values better with var-dumper available", - "whoops/soap": "Formats errors as SOAP responses" - }, - "time": "2018-03-03T17:56:25+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.1-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "Whoops\\": "src/Whoops/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Filipe Dobreira", - "homepage": "https://github.com/filp", - "role": "Developer" - } - ], - "description": "php error handling for cool kids", - "homepage": "https://filp.github.io/whoops/", - "keywords": [ - "error", - "exception", - "handling", - "library", - "throwable", - "whoops" - ] - }, - { - "name": "fzaninotto/faker", - "version": "v1.8.0", - "version_normalized": "1.8.0.0", - "source": { - "type": "git", - "url": "https://github.com/fzaninotto/Faker.git", - "reference": "f72816b43e74063c8b10357394b6bba8cb1c10de" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/fzaninotto/Faker/zipball/f72816b43e74063c8b10357394b6bba8cb1c10de", - "reference": "f72816b43e74063c8b10357394b6bba8cb1c10de", - "shasum": "" - }, - "require": { - "php": "^5.3.3 || ^7.0" - }, - "require-dev": { - "ext-intl": "*", - "phpunit/phpunit": "^4.8.35 || ^5.7", - "squizlabs/php_codesniffer": "^1.5" - }, - "time": "2018-07-12T10:23:15+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.8-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "Faker\\": "src/Faker/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "François Zaninotto" - } - ], - "description": "Faker is a PHP library that generates fake data for you.", - "keywords": [ - "data", - "faker", - "fixtures" - ] - }, - { - "name": "guzzlehttp/psr7", - "version": "1.4.2", - "version_normalized": "1.4.2.0", - "source": { - "type": "git", - "url": "https://github.com/guzzle/psr7.git", - "reference": "f5b8a8512e2b58b0071a7280e39f14f72e05d87c" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/guzzle/psr7/zipball/f5b8a8512e2b58b0071a7280e39f14f72e05d87c", - "reference": "f5b8a8512e2b58b0071a7280e39f14f72e05d87c", - "shasum": "" - }, - "require": { - "php": ">=5.4.0", - "psr/http-message": "~1.0" - }, - "provide": { - "psr/http-message-implementation": "1.0" - }, - "require-dev": { - "phpunit/phpunit": "~4.0" - }, - "time": "2017-03-20T17:10:46+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.4-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "GuzzleHttp\\Psr7\\": "src/" - }, - "files": [ - "src/functions_include.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Michael Dowling", - "email": "mtdowling@gmail.com", - "homepage": "https://github.com/mtdowling" - }, - { - "name": "Tobias Schultze", - "homepage": "https://github.com/Tobion" - } - ], - "description": "PSR-7 message implementation that also provides common utility methods", - "keywords": [ - "http", - "message", - "request", - "response", - "stream", - "uri", - "url" - ] - }, - { - "name": "hamcrest/hamcrest-php", - "version": "v1.2.2", - "version_normalized": "1.2.2.0", - "source": { - "type": "git", - "url": "https://github.com/hamcrest/hamcrest-php.git", - "reference": "b37020aa976fa52d3de9aa904aa2522dc518f79c" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/hamcrest/hamcrest-php/zipball/b37020aa976fa52d3de9aa904aa2522dc518f79c", - "reference": "b37020aa976fa52d3de9aa904aa2522dc518f79c", - "shasum": "" - }, - "require": { - "php": ">=5.3.2" - }, - "replace": { - "cordoval/hamcrest-php": "*", - "davedevelopment/hamcrest-php": "*", - "kodova/hamcrest-php": "*" - }, - "require-dev": { - "phpunit/php-file-iterator": "1.3.3", - "satooshi/php-coveralls": "dev-master" - }, - "time": "2015-05-11T14:41:42+00:00", - "type": "library", - "installation-source": "dist", - "autoload": { - "classmap": [ - "hamcrest" - ], - "files": [ - "hamcrest/Hamcrest.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD" - ], - "description": "This is the PHP port of Hamcrest Matchers", - "keywords": [ - "test" - ] - }, - { - "name": "intervention/image", - "version": "2.4.2", - "version_normalized": "2.4.2.0", - "source": { - "type": "git", - "url": "https://github.com/Intervention/image.git", - "reference": "e82d274f786e3d4b866a59b173f42e716f0783eb" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/Intervention/image/zipball/e82d274f786e3d4b866a59b173f42e716f0783eb", - "reference": "e82d274f786e3d4b866a59b173f42e716f0783eb", - "shasum": "" - }, - "require": { - "ext-fileinfo": "*", - "guzzlehttp/psr7": "~1.1", - "php": ">=5.4.0" - }, - "require-dev": { - "mockery/mockery": "~0.9.2", - "phpunit/phpunit": "^4.8 || ^5.7" - }, - "suggest": { - "ext-gd": "to use GD library based image processing.", - "ext-imagick": "to use Imagick based image processing.", - "intervention/imagecache": "Caching extension for the Intervention Image library" - }, - "time": "2018-05-29T14:19:03+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.4-dev" - }, - "laravel": { - "providers": [ - "Intervention\\Image\\ImageServiceProvider" - ], - "aliases": { - "Image": "Intervention\\Image\\Facades\\Image" - } - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "Intervention\\Image\\": "src/Intervention/Image" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Oliver Vogel", - "email": "oliver@olivervogel.com", - "homepage": "http://olivervogel.com/" - } - ], - "description": "Image handling and manipulation library with support for Laravel integration", - "homepage": "http://image.intervention.io/", - "keywords": [ - "gd", - "image", - "imagick", - "laravel", - "thumbnail", - "watermark" - ] - }, - { - "name": "jakub-onderka/php-console-color", - "version": "0.1", - "version_normalized": "0.1.0.0", - "source": { - "type": "git", - "url": "https://github.com/JakubOnderka/PHP-Console-Color.git", - "reference": "e0b393dacf7703fc36a4efc3df1435485197e6c1" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/JakubOnderka/PHP-Console-Color/zipball/e0b393dacf7703fc36a4efc3df1435485197e6c1", - "reference": "e0b393dacf7703fc36a4efc3df1435485197e6c1", - "shasum": "" - }, - "require": { - "php": ">=5.3.2" - }, - "require-dev": { - "jakub-onderka/php-code-style": "1.0", - "jakub-onderka/php-parallel-lint": "0.*", - "jakub-onderka/php-var-dump-check": "0.*", - "phpunit/phpunit": "3.7.*", - "squizlabs/php_codesniffer": "1.*" - }, - "time": "2014-04-08T15:00:19+00:00", - "type": "library", - "installation-source": "dist", - "autoload": { - "psr-0": { - "JakubOnderka\\PhpConsoleColor": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-2-Clause" - ], - "authors": [ - { - "name": "Jakub Onderka", - "email": "jakub.onderka@gmail.com", - "homepage": "http://www.acci.cz" - } - ] - }, - { - "name": "jakub-onderka/php-console-highlighter", - "version": "v0.3.2", - "version_normalized": "0.3.2.0", - "source": { - "type": "git", - "url": "https://github.com/JakubOnderka/PHP-Console-Highlighter.git", - "reference": "7daa75df45242c8d5b75a22c00a201e7954e4fb5" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/JakubOnderka/PHP-Console-Highlighter/zipball/7daa75df45242c8d5b75a22c00a201e7954e4fb5", - "reference": "7daa75df45242c8d5b75a22c00a201e7954e4fb5", - "shasum": "" - }, - "require": { - "jakub-onderka/php-console-color": "~0.1", - "php": ">=5.3.0" - }, - "require-dev": { - "jakub-onderka/php-code-style": "~1.0", - "jakub-onderka/php-parallel-lint": "~0.5", - "jakub-onderka/php-var-dump-check": "~0.1", - "phpunit/phpunit": "~4.0", - "squizlabs/php_codesniffer": "~1.5" - }, - "time": "2015-04-20T18:58:01+00:00", - "type": "library", - "installation-source": "dist", - "autoload": { - "psr-0": { - "JakubOnderka\\PhpConsoleHighlighter": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Jakub Onderka", - "email": "acci@acci.cz", - "homepage": "http://www.acci.cz/" - } - ] - }, - { - "name": "laravel/framework", - "version": "v5.6.28", - "version_normalized": "5.6.28.0", - "source": { - "type": "git", - "url": "https://github.com/laravel/framework.git", - "reference": "40ba2ee0e61cb4bc3c9f1dab04908e6acf06b86f" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/laravel/framework/zipball/40ba2ee0e61cb4bc3c9f1dab04908e6acf06b86f", - "reference": "40ba2ee0e61cb4bc3c9f1dab04908e6acf06b86f", - "shasum": "" - }, - "require": { - "doctrine/inflector": "~1.1", - "dragonmantank/cron-expression": "~2.0", - "erusev/parsedown": "~1.7", - "ext-mbstring": "*", - "ext-openssl": "*", - "league/flysystem": "^1.0.8", - "monolog/monolog": "~1.12", - "nesbot/carbon": "1.25.*", - "php": "^7.1.3", - "psr/container": "~1.0", - "psr/simple-cache": "^1.0", - "ramsey/uuid": "^3.7", - "swiftmailer/swiftmailer": "~6.0", - "symfony/console": "~4.0", - "symfony/debug": "~4.0", - "symfony/finder": "~4.0", - "symfony/http-foundation": "~4.0", - "symfony/http-kernel": "~4.0", - "symfony/process": "~4.0", - "symfony/routing": "~4.0", - "symfony/var-dumper": "~4.0", - "tijsverkoyen/css-to-inline-styles": "^2.2.1", - "vlucas/phpdotenv": "~2.2" - }, - "conflict": { - "tightenco/collect": "<5.5.33" - }, - "replace": { - "illuminate/auth": "self.version", - "illuminate/broadcasting": "self.version", - "illuminate/bus": "self.version", - "illuminate/cache": "self.version", - "illuminate/config": "self.version", - "illuminate/console": "self.version", - "illuminate/container": "self.version", - "illuminate/contracts": "self.version", - "illuminate/cookie": "self.version", - "illuminate/database": "self.version", - "illuminate/encryption": "self.version", - "illuminate/events": "self.version", - "illuminate/filesystem": "self.version", - "illuminate/hashing": "self.version", - "illuminate/http": "self.version", - "illuminate/log": "self.version", - "illuminate/mail": "self.version", - "illuminate/notifications": "self.version", - "illuminate/pagination": "self.version", - "illuminate/pipeline": "self.version", - "illuminate/queue": "self.version", - "illuminate/redis": "self.version", - "illuminate/routing": "self.version", - "illuminate/session": "self.version", - "illuminate/support": "self.version", - "illuminate/translation": "self.version", - "illuminate/validation": "self.version", - "illuminate/view": "self.version" - }, - "require-dev": { - "aws/aws-sdk-php": "~3.0", - "doctrine/dbal": "~2.6", - "filp/whoops": "^2.1.4", - "league/flysystem-cached-adapter": "~1.0", - "mockery/mockery": "~1.0", - "moontoast/math": "^1.1", - "orchestra/testbench-core": "3.6.*", - "pda/pheanstalk": "~3.0", - "phpunit/phpunit": "~7.0", - "predis/predis": "^1.1.1", - "symfony/css-selector": "~4.0", - "symfony/dom-crawler": "~4.0" - }, - "suggest": { - "aws/aws-sdk-php": "Required to use the SQS queue driver and SES mail driver (~3.0).", - "doctrine/dbal": "Required to rename columns and drop SQLite columns (~2.6).", - "ext-pcntl": "Required to use all features of the queue worker.", - "ext-posix": "Required to use all features of the queue worker.", - "fzaninotto/faker": "Required to use the eloquent factory builder (~1.4).", - "guzzlehttp/guzzle": "Required to use the Mailgun and Mandrill mail drivers and the ping methods on schedules (~6.0).", - "laravel/tinker": "Required to use the tinker console command (~1.0).", - "league/flysystem-aws-s3-v3": "Required to use the Flysystem S3 driver (~1.0).", - "league/flysystem-cached-adapter": "Required to use the Flysystem cache (~1.0).", - "league/flysystem-rackspace": "Required to use the Flysystem Rackspace driver (~1.0).", - "league/flysystem-sftp": "Required to use the Flysystem SFTP driver (~1.0).", - "nexmo/client": "Required to use the Nexmo transport (~1.0).", - "pda/pheanstalk": "Required to use the beanstalk queue driver (~3.0).", - "predis/predis": "Required to use the redis cache and queue drivers (~1.0).", - "pusher/pusher-php-server": "Required to use the Pusher broadcast driver (~3.0).", - "symfony/css-selector": "Required to use some of the crawler integration testing tools (~4.0).", - "symfony/dom-crawler": "Required to use most of the crawler integration testing tools (~4.0).", - "symfony/psr-http-message-bridge": "Required to psr7 bridging features (~1.0)." - }, - "time": "2018-07-17T14:15:36+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "5.6-dev" - } - }, - "installation-source": "dist", - "autoload": { - "files": [ - "src/Illuminate/Foundation/helpers.php", - "src/Illuminate/Support/helpers.php" - ], - "psr-4": { - "Illuminate\\": "src/Illuminate/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Taylor Otwell", - "email": "taylor@laravel.com" - } - ], - "description": "The Laravel Framework.", - "homepage": "https://laravel.com", - "keywords": [ - "framework", - "laravel" - ] - }, - { - "name": "laravel/tinker", - "version": "v1.0.7", - "version_normalized": "1.0.7.0", - "source": { - "type": "git", - "url": "https://github.com/laravel/tinker.git", - "reference": "e3086ee8cb1f54a39ae8dcb72d1c37d10128997d" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/laravel/tinker/zipball/e3086ee8cb1f54a39ae8dcb72d1c37d10128997d", - "reference": "e3086ee8cb1f54a39ae8dcb72d1c37d10128997d", - "shasum": "" - }, - "require": { - "illuminate/console": "~5.1", - "illuminate/contracts": "~5.1", - "illuminate/support": "~5.1", - "php": ">=5.5.9", - "psy/psysh": "0.7.*|0.8.*|0.9.*", - "symfony/var-dumper": "~3.0|~4.0" - }, - "require-dev": { - "phpunit/phpunit": "~4.0|~5.0" - }, - "suggest": { - "illuminate/database": "The Illuminate Database package (~5.1)." - }, - "time": "2018-05-17T13:42:07+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0-dev" - }, - "laravel": { - "providers": [ - "Laravel\\Tinker\\TinkerServiceProvider" - ] - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "Laravel\\Tinker\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Taylor Otwell", - "email": "taylor@laravel.com" - } - ], - "description": "Powerful REPL for the Laravel framework.", - "keywords": [ - "REPL", - "Tinker", - "laravel", - "psysh" - ] - }, - { - "name": "laravelcollective/html", - "version": "v5.6.10", - "version_normalized": "5.6.10.0", - "source": { - "type": "git", - "url": "https://github.com/LaravelCollective/html.git", - "reference": "974605fcd22a7e4d19f0b2ef635a0d1d7400387d" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/LaravelCollective/html/zipball/974605fcd22a7e4d19f0b2ef635a0d1d7400387d", - "reference": "974605fcd22a7e4d19f0b2ef635a0d1d7400387d", - "shasum": "" - }, - "require": { - "illuminate/http": "5.6.*", - "illuminate/routing": "5.6.*", - "illuminate/session": "5.6.*", - "illuminate/support": "5.6.*", - "illuminate/view": "5.6.*", - "php": ">=7.1.3" - }, - "require-dev": { - "illuminate/database": "5.6.*", - "mockery/mockery": "~1.0", - "phpunit/phpunit": "~7.1" - }, - "time": "2018-06-18T15:04:16+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "5.6-dev" - }, - "laravel": { - "providers": [ - "Collective\\Html\\HtmlServiceProvider" - ], - "aliases": { - "Form": "Collective\\Html\\FormFacade", - "Html": "Collective\\Html\\HtmlFacade" - } - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "Collective\\Html\\": "src/" - }, - "files": [ - "src/helpers.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Taylor Otwell", - "email": "taylorotwell@gmail.com" - }, - { - "name": "Adam Engebretson", - "email": "adam@laravelcollective.com" - } - ], - "description": "HTML and Form Builders for the Laravel Framework", - "homepage": "https://laravelcollective.com" - }, - { - "name": "laravelista/lumen-vendor-publish", - "version": "2.1.0", - "version_normalized": "2.1.0.0", - "source": { - "type": "git", - "url": "https://github.com/laravelista/lumen-vendor-publish.git", - "reference": "7684f731187277ac2ca7747558ec2ce3835bfc91" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/laravelista/lumen-vendor-publish/zipball/7684f731187277ac2ca7747558ec2ce3835bfc91", - "reference": "7684f731187277ac2ca7747558ec2ce3835bfc91", - "shasum": "" - }, - "require": { - "illuminate/console": "^5.0", - "illuminate/filesystem": "^5.0", - "illuminate/support": "^5.0", - "league/flysystem": "^1.0" - }, - "time": "2017-09-26T12:43:31+00:00", - "type": "library", - "installation-source": "dist", - "autoload": { - "psr-4": { - "Laravelista\\LumenVendorPublish\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Mario BaÅ¡ić", - "email": "mario.basic@outlook.com" - } - ], - "description": "vendor:publish for Lumen framework.", - "keywords": [ - "command", - "console", - "lumen", - "publish", - "vendor" - ], - "abandoned": true - }, - { - "name": "league/flysystem", - "version": "1.0.45", - "version_normalized": "1.0.45.0", - "source": { - "type": "git", - "url": "https://github.com/thephpleague/flysystem.git", - "reference": "a99f94e63b512d75f851b181afcdf0ee9ebef7e6" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/a99f94e63b512d75f851b181afcdf0ee9ebef7e6", - "reference": "a99f94e63b512d75f851b181afcdf0ee9ebef7e6", - "shasum": "" - }, - "require": { - "php": ">=5.5.9" - }, - "conflict": { - "league/flysystem-sftp": "<1.0.6" - }, - "require-dev": { - "ext-fileinfo": "*", - "phpspec/phpspec": "^3.4", - "phpunit/phpunit": "^5.7" - }, - "suggest": { - "ext-fileinfo": "Required for MimeType", - "ext-ftp": "Allows you to use FTP server storage", - "ext-openssl": "Allows you to use FTPS server storage", - "league/flysystem-aws-s3-v2": "Allows you to use S3 storage with AWS SDK v2", - "league/flysystem-aws-s3-v3": "Allows you to use S3 storage with AWS SDK v3", - "league/flysystem-azure": "Allows you to use Windows Azure Blob storage", - "league/flysystem-cached-adapter": "Flysystem adapter decorator for metadata caching", - "league/flysystem-eventable-filesystem": "Allows you to use EventableFilesystem", - "league/flysystem-rackspace": "Allows you to use Rackspace Cloud Files", - "league/flysystem-sftp": "Allows you to use SFTP server storage via phpseclib", - "league/flysystem-webdav": "Allows you to use WebDAV storage", - "league/flysystem-ziparchive": "Allows you to use ZipArchive adapter", - "spatie/flysystem-dropbox": "Allows you to use Dropbox storage", - "srmklive/flysystem-dropbox-v2": "Allows you to use Dropbox storage for PHP 5 applications" - }, - "time": "2018-05-07T08:44:23+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.1-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "League\\Flysystem\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Frank de Jonge", - "email": "info@frenky.net" - } - ], - "description": "Filesystem abstraction: Many filesystems, one API.", - "keywords": [ - "Cloud Files", - "WebDAV", - "abstraction", - "aws", - "cloud", - "copy.com", - "dropbox", - "file systems", - "files", - "filesystem", - "filesystems", - "ftp", - "rackspace", - "remote", - "s3", - "sftp", - "storage" - ] - }, - { - "name": "maximebf/debugbar", - "version": "v1.15.0", - "version_normalized": "1.15.0.0", - "source": { - "type": "git", - "url": "https://github.com/maximebf/php-debugbar.git", - "reference": "30e7d60937ee5f1320975ca9bc7bcdd44d500f07" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/maximebf/php-debugbar/zipball/30e7d60937ee5f1320975ca9bc7bcdd44d500f07", - "reference": "30e7d60937ee5f1320975ca9bc7bcdd44d500f07", - "shasum": "" - }, - "require": { - "php": ">=5.3.0", - "psr/log": "^1.0", - "symfony/var-dumper": "^2.6|^3.0|^4.0" - }, - "require-dev": { - "phpunit/phpunit": "^4.0|^5.0" - }, - "suggest": { - "kriswallsmith/assetic": "The best way to manage assets", - "monolog/monolog": "Log using Monolog", - "predis/predis": "Redis storage" - }, - "time": "2017-12-15T11:13:46+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.14-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "DebugBar\\": "src/DebugBar/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Maxime Bouroumeau-Fuseau", - "email": "maxime.bouroumeau@gmail.com", - "homepage": "http://maximebf.com" - }, - { - "name": "Barry vd. Heuvel", - "email": "barryvdh@gmail.com" - } - ], - "description": "Debug bar in the browser for php application", - "homepage": "https://github.com/maximebf/php-debugbar", - "keywords": [ - "debug", - "debugbar" - ] - }, - { - "name": "mockery/mockery", - "version": "0.9.9", - "version_normalized": "0.9.9.0", - "source": { - "type": "git", - "url": "https://github.com/mockery/mockery.git", - "reference": "6fdb61243844dc924071d3404bb23994ea0b6856" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/mockery/mockery/zipball/6fdb61243844dc924071d3404bb23994ea0b6856", - "reference": "6fdb61243844dc924071d3404bb23994ea0b6856", - "shasum": "" - }, - "require": { - "hamcrest/hamcrest-php": "~1.1", - "lib-pcre": ">=7.0", - "php": ">=5.3.2" - }, - "require-dev": { - "phpunit/phpunit": "~4.0" - }, - "time": "2017-02-28T12:52:32+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "0.9.x-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-0": { - "Mockery": "library/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Pádraic Brady", - "email": "padraic.brady@gmail.com", - "homepage": "http://blog.astrumfutura.com" - }, - { - "name": "Dave Marshall", - "email": "dave.marshall@atstsolutions.co.uk", - "homepage": "http://davedevelopment.co.uk" - } - ], - "description": "Mockery is a simple yet flexible PHP mock object framework for use in unit testing with PHPUnit, PHPSpec or any other testing framework. Its core goal is to offer a test double framework with a succinct API capable of clearly defining all possible object operations and interactions using a human readable Domain Specific Language (DSL). Designed as a drop in alternative to PHPUnit's phpunit-mock-objects library, Mockery is easy to integrate with PHPUnit and can operate alongside phpunit-mock-objects without the World ending.", - "homepage": "http://github.com/padraic/mockery", - "keywords": [ - "BDD", - "TDD", - "library", - "mock", - "mock objects", - "mockery", - "stub", - "test", - "test double", - "testing" - ] - }, - { - "name": "monolog/monolog", - "version": "1.23.0", - "version_normalized": "1.23.0.0", - "source": { - "type": "git", - "url": "https://github.com/Seldaek/monolog.git", - "reference": "fd8c787753b3a2ad11bc60c063cff1358a32a3b4" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/Seldaek/monolog/zipball/fd8c787753b3a2ad11bc60c063cff1358a32a3b4", - "reference": "fd8c787753b3a2ad11bc60c063cff1358a32a3b4", - "shasum": "" - }, - "require": { - "php": ">=5.3.0", - "psr/log": "~1.0" - }, - "provide": { - "psr/log-implementation": "1.0.0" - }, - "require-dev": { - "aws/aws-sdk-php": "^2.4.9 || ^3.0", - "doctrine/couchdb": "~1.0@dev", - "graylog2/gelf-php": "~1.0", - "jakub-onderka/php-parallel-lint": "0.9", - "php-amqplib/php-amqplib": "~2.4", - "php-console/php-console": "^3.1.3", - "phpunit/phpunit": "~4.5", - "phpunit/phpunit-mock-objects": "2.3.0", - "ruflin/elastica": ">=0.90 <3.0", - "sentry/sentry": "^0.13", - "swiftmailer/swiftmailer": "^5.3|^6.0" - }, - "suggest": { - "aws/aws-sdk-php": "Allow sending log messages to AWS services like DynamoDB", - "doctrine/couchdb": "Allow sending log messages to a CouchDB server", - "ext-amqp": "Allow sending log messages to an AMQP server (1.0+ required)", - "ext-mongo": "Allow sending log messages to a MongoDB server", - "graylog2/gelf-php": "Allow sending log messages to a GrayLog2 server", - "mongodb/mongodb": "Allow sending log messages to a MongoDB server via PHP Driver", - "php-amqplib/php-amqplib": "Allow sending log messages to an AMQP server using php-amqplib", - "php-console/php-console": "Allow sending log messages to Google Chrome", - "rollbar/rollbar": "Allow sending log messages to Rollbar", - "ruflin/elastica": "Allow sending log messages to an Elastic Search server", - "sentry/sentry": "Allow sending log messages to a Sentry server" - }, - "time": "2017-06-19T01:22:40+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.0.x-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "Monolog\\": "src/Monolog" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Jordi Boggiano", - "email": "j.boggiano@seld.be", - "homepage": "http://seld.be" - } - ], - "description": "Sends your logs to files, sockets, inboxes, databases and various web services", - "homepage": "http://github.com/Seldaek/monolog", - "keywords": [ - "log", - "logging", - "psr-3" - ] - }, - { - "name": "myclabs/deep-copy", - "version": "1.8.1", - "version_normalized": "1.8.1.0", - "source": { - "type": "git", - "url": "https://github.com/myclabs/DeepCopy.git", - "reference": "3e01bdad3e18354c3dce54466b7fbe33a9f9f7f8" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/3e01bdad3e18354c3dce54466b7fbe33a9f9f7f8", - "reference": "3e01bdad3e18354c3dce54466b7fbe33a9f9f7f8", - "shasum": "" - }, - "require": { - "php": "^7.1" - }, - "replace": { - "myclabs/deep-copy": "self.version" - }, - "require-dev": { - "doctrine/collections": "^1.0", - "doctrine/common": "^2.6", - "phpunit/phpunit": "^7.1" - }, - "time": "2018-06-11T23:09:50+00:00", - "type": "library", - "installation-source": "dist", - "autoload": { - "psr-4": { - "DeepCopy\\": "src/DeepCopy/" - }, - "files": [ - "src/DeepCopy/deep_copy.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "description": "Create deep copies (clones) of your objects", - "keywords": [ - "clone", - "copy", - "duplicate", - "object", - "object graph" - ] - }, - { - "name": "nesbot/carbon", - "version": "1.25.0", - "version_normalized": "1.25.0.0", - "source": { - "type": "git", - "url": "https://github.com/briannesbitt/Carbon.git", - "reference": "cbcf13da0b531767e39eb86e9687f5deba9857b4" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/cbcf13da0b531767e39eb86e9687f5deba9857b4", - "reference": "cbcf13da0b531767e39eb86e9687f5deba9857b4", - "shasum": "" - }, - "require": { - "php": ">=5.3.9", - "symfony/translation": "~2.6 || ~3.0 || ~4.0" - }, - "require-dev": { - "friendsofphp/php-cs-fixer": "~2", - "phpunit/phpunit": "^4.8.35 || ^5.7" - }, - "time": "2018-03-19T15:50:49+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.23-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "Carbon\\": "src/Carbon/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Brian Nesbitt", - "email": "brian@nesbot.com", - "homepage": "http://nesbot.com" - } - ], - "description": "A simple API extension for DateTime.", - "homepage": "http://carbon.nesbot.com", - "keywords": [ - "date", - "datetime", - "time" - ] - }, - { - "name": "nikic/php-parser", - "version": "v4.0.3", - "version_normalized": "4.0.3.0", - "source": { - "type": "git", - "url": "https://github.com/nikic/PHP-Parser.git", - "reference": "bd088dc940a418f09cda079a9b5c7c478890fb8d" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/bd088dc940a418f09cda079a9b5c7c478890fb8d", - "reference": "bd088dc940a418f09cda079a9b5c7c478890fb8d", - "shasum": "" - }, - "require": { - "ext-tokenizer": "*", - "php": ">=7.0" - }, - "require-dev": { - "phpunit/phpunit": "^6.5 || ^7.0" - }, - "time": "2018-07-15T17:25:16+00:00", - "bin": [ - "bin/php-parse" - ], - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.0-dev" - } - }, - "installation-source": "dist", - "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" - ] - }, - { - "name": "owen-it/laravel-auditing", - "version": "v6.1.1", - "version_normalized": "6.1.1.0", - "source": { - "type": "git", - "url": "https://github.com/owen-it/laravel-auditing.git", - "reference": "ec2e490d77f4e030f296e90b944c07deb10bef2e" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/owen-it/laravel-auditing/zipball/ec2e490d77f4e030f296e90b944c07deb10bef2e", - "reference": "ec2e490d77f4e030f296e90b944c07deb10bef2e", - "shasum": "" - }, - "require": { - "illuminate/console": "5.2.* || 5.3.* || 5.4.* || 5.5.* || 5.6.*", - "illuminate/database": "5.2.* || 5.3.* || 5.4.* || 5.5.* || 5.6.*", - "illuminate/filesystem": "5.2.* || 5.3.* || 5.4.* || 5.5.* || 5.6.*", - "php": ">=7.0.13" - }, - "require-dev": { - "mockery/mockery": "^1.0", - "orchestra/database": "^3.5", - "orchestra/testbench": "^3.5", - "phpunit/phpunit": "^6.0" - }, - "suggest": { - "laravelista/lumen-vendor-publish": "Needed to publish the package configuration in Lumen" - }, - "time": "2018-04-27T10:42:41+00:00", - "type": "package", - "extra": { - "branch-alias": { - "dev-master": "6.0-dev" - }, - "laravel": { - "providers": [ - "OwenIt\\Auditing\\AuditingServiceProvider" - ] - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "OwenIt\\Auditing\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Quetzy Garcia", - "email": "quetzyg@altek.org" - }, - { - "name": "Antério Vieira", - "email": "anteriovieira@gmail.com" - }, - { - "name": "Raphael França", - "email": "raphaelfrancabsb@gmail.com" - } - ], - "description": "Audit changes of your Eloquent models in Laravel/Lumen", - "homepage": "http://laravel-auditing.com", - "keywords": [ - "Accountability", - "Audit", - "auditing", - "changes", - "eloquent", - "history", - "laravel", - "log", - "logging", - "lumen", - "observer", - "record", - "revision", - "tracking" - ] - }, - { - "name": "paragonie/random_compat", - "version": "v9.99.99", - "version_normalized": "9.99.99.0", - "source": { - "type": "git", - "url": "https://github.com/paragonie/random_compat.git", - "reference": "84b4dfb120c6f9b4ff7b3685f9b8f1aa365a0c95" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/paragonie/random_compat/zipball/84b4dfb120c6f9b4ff7b3685f9b8f1aa365a0c95", - "reference": "84b4dfb120c6f9b4ff7b3685f9b8f1aa365a0c95", - "shasum": "" - }, - "require": { - "php": "^7" - }, - "require-dev": { - "phpunit/phpunit": "4.*|5.*", - "vimeo/psalm": "^1" - }, - "suggest": { - "ext-libsodium": "Provides a modern crypto API that can be used to generate random bytes." - }, - "time": "2018-07-02T15:55:56+00:00", - "type": "library", - "installation-source": "dist", - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Paragon Initiative Enterprises", - "email": "security@paragonie.com", - "homepage": "https://paragonie.com" - } - ], - "description": "PHP 5.x polyfill for random_bytes() and random_int() from PHP 7", - "keywords": [ - "csprng", - "polyfill", - "pseudorandom", - "random" - ] - }, - { - "name": "phar-io/manifest", - "version": "1.0.3", - "version_normalized": "1.0.3.0", - "source": { - "type": "git", - "url": "https://github.com/phar-io/manifest.git", - "reference": "7761fcacf03b4d4f16e7ccb606d4879ca431fcf4" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phar-io/manifest/zipball/7761fcacf03b4d4f16e7ccb606d4879ca431fcf4", - "reference": "7761fcacf03b4d4f16e7ccb606d4879ca431fcf4", - "shasum": "" - }, - "require": { - "ext-dom": "*", - "ext-phar": "*", - "phar-io/version": "^2.0", - "php": "^5.6 || ^7.0" - }, - "time": "2018-07-08T19:23:20+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - }, - "installation-source": "dist", - "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)" - }, - { - "name": "phar-io/version", - "version": "2.0.1", - "version_normalized": "2.0.1.0", - "source": { - "type": "git", - "url": "https://github.com/phar-io/version.git", - "reference": "45a2ec53a73c70ce41d55cedef9063630abaf1b6" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phar-io/version/zipball/45a2ec53a73c70ce41d55cedef9063630abaf1b6", - "reference": "45a2ec53a73c70ce41d55cedef9063630abaf1b6", - "shasum": "" - }, - "require": { - "php": "^5.6 || ^7.0" - }, - "time": "2018-07-08T19:19:57+00:00", - "type": "library", - "installation-source": "dist", - "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" - }, - { - "name": "phpdocumentor/reflection-common", - "version": "1.0.1", - "version_normalized": "1.0.1.0", - "source": { - "type": "git", - "url": "https://github.com/phpDocumentor/ReflectionCommon.git", - "reference": "21bdeb5f65d7ebf9f43b1b25d404f87deab5bfb6" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/21bdeb5f65d7ebf9f43b1b25d404f87deab5bfb6", - "reference": "21bdeb5f65d7ebf9f43b1b25d404f87deab5bfb6", - "shasum": "" - }, - "require": { - "php": ">=5.5" - }, - "require-dev": { - "phpunit/phpunit": "^4.6" - }, - "time": "2017-09-11T18:02:19+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "phpDocumentor\\Reflection\\": [ - "src" - ] - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Jaap van Otterdijk", - "email": "opensource@ijaap.nl" - } - ], - "description": "Common reflection classes used by phpdocumentor to reflect the code structure", - "homepage": "http://www.phpdoc.org", - "keywords": [ - "FQSEN", - "phpDocumentor", - "phpdoc", - "reflection", - "static analysis" - ] - }, - { - "name": "phpdocumentor/reflection-docblock", - "version": "4.3.0", - "version_normalized": "4.3.0.0", - "source": { - "type": "git", - "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git", - "reference": "94fd0001232e47129dd3504189fa1c7225010d08" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/94fd0001232e47129dd3504189fa1c7225010d08", - "reference": "94fd0001232e47129dd3504189fa1c7225010d08", - "shasum": "" - }, - "require": { - "php": "^7.0", - "phpdocumentor/reflection-common": "^1.0.0", - "phpdocumentor/type-resolver": "^0.4.0", - "webmozart/assert": "^1.0" - }, - "require-dev": { - "doctrine/instantiator": "~1.0.5", - "mockery/mockery": "^1.0", - "phpunit/phpunit": "^6.4" - }, - "time": "2017-11-30T07:14:17+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.x-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "phpDocumentor\\Reflection\\": [ - "src/" - ] - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Mike van Riel", - "email": "me@mikevanriel.com" - } - ], - "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock." - }, - { - "name": "phpdocumentor/type-resolver", - "version": "0.4.0", - "version_normalized": "0.4.0.0", - "source": { - "type": "git", - "url": "https://github.com/phpDocumentor/TypeResolver.git", - "reference": "9c977708995954784726e25d0cd1dddf4e65b0f7" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/9c977708995954784726e25d0cd1dddf4e65b0f7", - "reference": "9c977708995954784726e25d0cd1dddf4e65b0f7", - "shasum": "" - }, - "require": { - "php": "^5.5 || ^7.0", - "phpdocumentor/reflection-common": "^1.0" - }, - "require-dev": { - "mockery/mockery": "^0.9.4", - "phpunit/phpunit": "^5.2||^4.8.24" - }, - "time": "2017-07-14T14:27:02+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "phpDocumentor\\Reflection\\": [ - "src/" - ] - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Mike van Riel", - "email": "me@mikevanriel.com" - } - ] - }, - { - "name": "phpspec/prophecy", - "version": "1.7.6", - "version_normalized": "1.7.6.0", - "source": { - "type": "git", - "url": "https://github.com/phpspec/prophecy.git", - "reference": "33a7e3c4fda54e912ff6338c48823bd5c0f0b712" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phpspec/prophecy/zipball/33a7e3c4fda54e912ff6338c48823bd5c0f0b712", - "reference": "33a7e3c4fda54e912ff6338c48823bd5c0f0b712", - "shasum": "" - }, - "require": { - "doctrine/instantiator": "^1.0.2", - "php": "^5.3|^7.0", - "phpdocumentor/reflection-docblock": "^2.0|^3.0.2|^4.0", - "sebastian/comparator": "^1.1|^2.0|^3.0", - "sebastian/recursion-context": "^1.0|^2.0|^3.0" - }, - "require-dev": { - "phpspec/phpspec": "^2.5|^3.2", - "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.5" - }, - "time": "2018-04-18T13:57:24+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.7.x-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-0": { - "Prophecy\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Konstantin Kudryashov", - "email": "ever.zet@gmail.com", - "homepage": "http://everzet.com" - }, - { - "name": "Marcello Duarte", - "email": "marcello.duarte@gmail.com" - } - ], - "description": "Highly opinionated mocking framework for PHP 5.3+", - "homepage": "https://github.com/phpspec/prophecy", - "keywords": [ - "Double", - "Dummy", - "fake", - "mock", - "spy", - "stub" - ] - }, - { - "name": "phpunit/php-code-coverage", - "version": "6.0.7", - "version_normalized": "6.0.7.0", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/php-code-coverage.git", - "reference": "865662550c384bc1db7e51d29aeda1c2c161d69a" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/865662550c384bc1db7e51d29aeda1c2c161d69a", - "reference": "865662550c384bc1db7e51d29aeda1c2c161d69a", - "shasum": "" - }, - "require": { - "ext-dom": "*", - "ext-xmlwriter": "*", - "php": "^7.1", - "phpunit/php-file-iterator": "^2.0", - "phpunit/php-text-template": "^1.2.1", - "phpunit/php-token-stream": "^3.0", - "sebastian/code-unit-reverse-lookup": "^1.0.1", - "sebastian/environment": "^3.1", - "sebastian/version": "^2.0.1", - "theseer/tokenizer": "^1.1" - }, - "require-dev": { - "phpunit/phpunit": "^7.0" - }, - "suggest": { - "ext-xdebug": "^2.6.0" - }, - "time": "2018-06-01T07:51:50+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "6.0-dev" - } - }, - "installation-source": "dist", - "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" - ] - }, - { - "name": "phpunit/php-file-iterator", - "version": "2.0.1", - "version_normalized": "2.0.1.0", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/php-file-iterator.git", - "reference": "cecbc684605bb0cc288828eb5d65d93d5c676d3c" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/cecbc684605bb0cc288828eb5d65d93d5c676d3c", - "reference": "cecbc684605bb0cc288828eb5d65d93d5c676d3c", - "shasum": "" - }, - "require": { - "php": "^7.1" - }, - "time": "2018-06-11T11:44:00+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.0.x-dev" - } - }, - "installation-source": "dist", - "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" - ] - }, - { - "name": "phpunit/php-text-template", - "version": "1.2.1", - "version_normalized": "1.2.1.0", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/php-text-template.git", - "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/31f8b717e51d9a2afca6c9f046f5d69fc27c8686", - "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686", - "shasum": "" - }, - "require": { - "php": ">=5.3.3" - }, - "time": "2015-06-21T13:50:34+00:00", - "type": "library", - "installation-source": "dist", - "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" - ] - }, - { - "name": "phpunit/php-timer", - "version": "2.0.0", - "version_normalized": "2.0.0.0", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/php-timer.git", - "reference": "8b8454ea6958c3dee38453d3bd571e023108c91f" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/8b8454ea6958c3dee38453d3bd571e023108c91f", - "reference": "8b8454ea6958c3dee38453d3bd571e023108c91f", - "shasum": "" - }, - "require": { - "php": "^7.1" - }, - "require-dev": { - "phpunit/phpunit": "^7.0" - }, - "time": "2018-02-01T13:07:23+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.0-dev" - } - }, - "installation-source": "dist", - "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" - ] - }, - { - "name": "phpunit/php-token-stream", - "version": "3.0.0", - "version_normalized": "3.0.0.0", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/php-token-stream.git", - "reference": "21ad88bbba7c3d93530d93994e0a33cd45f02ace" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/21ad88bbba7c3d93530d93994e0a33cd45f02ace", - "reference": "21ad88bbba7c3d93530d93994e0a33cd45f02ace", - "shasum": "" - }, - "require": { - "ext-tokenizer": "*", - "php": "^7.1" - }, - "require-dev": { - "phpunit/phpunit": "^7.0" - }, - "time": "2018-02-01T13:16:43+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.0-dev" - } - }, - "installation-source": "dist", - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - } - ], - "description": "Wrapper around PHP's tokenizer extension.", - "homepage": "https://github.com/sebastianbergmann/php-token-stream/", - "keywords": [ - "tokenizer" - ] - }, - { - "name": "phpunit/phpunit", - "version": "7.2.7", - "version_normalized": "7.2.7.0", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "8e878aff7917ef66e702e03d1359b16eee254e2c" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/8e878aff7917ef66e702e03d1359b16eee254e2c", - "reference": "8e878aff7917ef66e702e03d1359b16eee254e2c", - "shasum": "" - }, - "require": { - "doctrine/instantiator": "^1.1", - "ext-dom": "*", - "ext-json": "*", - "ext-libxml": "*", - "ext-mbstring": "*", - "ext-xml": "*", - "myclabs/deep-copy": "^1.7", - "phar-io/manifest": "^1.0.2", - "phar-io/version": "^2.0", - "php": "^7.1", - "phpspec/prophecy": "^1.7", - "phpunit/php-code-coverage": "^6.0.7", - "phpunit/php-file-iterator": "^2.0.1", - "phpunit/php-text-template": "^1.2.1", - "phpunit/php-timer": "^2.0", - "sebastian/comparator": "^3.0", - "sebastian/diff": "^3.0", - "sebastian/environment": "^3.1", - "sebastian/exporter": "^3.1", - "sebastian/global-state": "^2.0", - "sebastian/object-enumerator": "^3.0.3", - "sebastian/resource-operations": "^1.0", - "sebastian/version": "^2.0.1" - }, - "conflict": { - "phpunit/phpunit-mock-objects": "*" - }, - "require-dev": { - "ext-pdo": "*" - }, - "suggest": { - "ext-soap": "*", - "ext-xdebug": "*", - "phpunit/php-invoker": "^2.0" - }, - "time": "2018-07-15T05:20:50+00:00", - "bin": [ - "phpunit" - ], - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "7.2-dev" - } - }, - "installation-source": "dist", - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "The PHP Unit Testing framework.", - "homepage": "https://phpunit.de/", - "keywords": [ - "phpunit", - "testing", - "xunit" - ] - }, - { - "name": "psr/container", - "version": "1.0.0", - "version_normalized": "1.0.0.0", - "source": { - "type": "git", - "url": "https://github.com/php-fig/container.git", - "reference": "b7ce3b176482dbbc1245ebf52b181af44c2cf55f" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/php-fig/container/zipball/b7ce3b176482dbbc1245ebf52b181af44c2cf55f", - "reference": "b7ce3b176482dbbc1245ebf52b181af44c2cf55f", - "shasum": "" - }, - "require": { - "php": ">=5.3.0" - }, - "time": "2017-02-14T16:28:37+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "Psr\\Container\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "PHP-FIG", - "homepage": "http://www.php-fig.org/" - } - ], - "description": "Common Container Interface (PHP FIG PSR-11)", - "homepage": "https://github.com/php-fig/container", - "keywords": [ - "PSR-11", - "container", - "container-interface", - "container-interop", - "psr" - ] - }, - { - "name": "psr/http-message", - "version": "1.0.1", - "version_normalized": "1.0.1.0", - "source": { - "type": "git", - "url": "https://github.com/php-fig/http-message.git", - "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/php-fig/http-message/zipball/f6561bf28d520154e4b0ec72be95418abe6d9363", - "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363", - "shasum": "" - }, - "require": { - "php": ">=5.3.0" - }, - "time": "2016-08-06T14:39:51+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "Psr\\Http\\Message\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "PHP-FIG", - "homepage": "http://www.php-fig.org/" - } - ], - "description": "Common interface for HTTP messages", - "homepage": "https://github.com/php-fig/http-message", - "keywords": [ - "http", - "http-message", - "psr", - "psr-7", - "request", - "response" - ] - }, - { - "name": "psr/log", - "version": "1.0.2", - "version_normalized": "1.0.2.0", - "source": { - "type": "git", - "url": "https://github.com/php-fig/log.git", - "reference": "4ebe3a8bf773a19edfe0a84b6585ba3d401b724d" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/php-fig/log/zipball/4ebe3a8bf773a19edfe0a84b6585ba3d401b724d", - "reference": "4ebe3a8bf773a19edfe0a84b6585ba3d401b724d", - "shasum": "" - }, - "require": { - "php": ">=5.3.0" - }, - "time": "2016-10-10T12:19:37+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "Psr\\Log\\": "Psr/Log/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "PHP-FIG", - "homepage": "http://www.php-fig.org/" - } - ], - "description": "Common interface for logging libraries", - "homepage": "https://github.com/php-fig/log", - "keywords": [ - "log", - "psr", - "psr-3" - ] - }, - { - "name": "psr/simple-cache", - "version": "1.0.1", - "version_normalized": "1.0.1.0", - "source": { - "type": "git", - "url": "https://github.com/php-fig/simple-cache.git", - "reference": "408d5eafb83c57f6365a3ca330ff23aa4a5fa39b" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/php-fig/simple-cache/zipball/408d5eafb83c57f6365a3ca330ff23aa4a5fa39b", - "reference": "408d5eafb83c57f6365a3ca330ff23aa4a5fa39b", - "shasum": "" - }, - "require": { - "php": ">=5.3.0" - }, - "time": "2017-10-23T01:57:42+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "Psr\\SimpleCache\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "PHP-FIG", - "homepage": "http://www.php-fig.org/" - } - ], - "description": "Common interfaces for simple caching", - "keywords": [ - "cache", - "caching", - "psr", - "psr-16", - "simple-cache" - ] - }, - { - "name": "psy/psysh", - "version": "v0.9.6", - "version_normalized": "0.9.6.0", - "source": { - "type": "git", - "url": "https://github.com/bobthecow/psysh.git", - "reference": "4a2ce86f199d51b6e2524214dc06835e872f4fce" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/bobthecow/psysh/zipball/4a2ce86f199d51b6e2524214dc06835e872f4fce", - "reference": "4a2ce86f199d51b6e2524214dc06835e872f4fce", - "shasum": "" - }, - "require": { - "dnoegel/php-xdg-base-dir": "0.1", - "jakub-onderka/php-console-highlighter": "0.3.*", - "nikic/php-parser": "~1.3|~2.0|~3.0|~4.0", - "php": ">=5.4.0", - "symfony/console": "~2.3.10|^2.4.2|~3.0|~4.0", - "symfony/var-dumper": "~2.7|~3.0|~4.0" - }, - "require-dev": { - "bamarni/composer-bin-plugin": "^1.2", - "hoa/console": "~2.15|~3.16", - "phpunit/phpunit": "~4.8.35|~5.0|~6.0|~7.0" - }, - "suggest": { - "ext-pcntl": "Enabling the PCNTL extension makes PsySH a lot happier :)", - "ext-pdo-sqlite": "The doc command requires SQLite to work.", - "ext-posix": "If you have PCNTL, you'll want the POSIX extension as well.", - "ext-readline": "Enables support for arrow-key history navigation, and showing and manipulating command history.", - "hoa/console": "A pure PHP readline implementation. You'll want this if your PHP install doesn't already support readline or libedit." - }, - "time": "2018-06-10T17:57:20+00:00", - "bin": [ - "bin/psysh" - ], - "type": "library", - "extra": { - "branch-alias": { - "dev-develop": "0.9.x-dev" - } - }, - "installation-source": "dist", - "autoload": { - "files": [ - "src/functions.php" - ], - "psr-4": { - "Psy\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Justin Hileman", - "email": "justin@justinhileman.info", - "homepage": "http://justinhileman.com" - } - ], - "description": "An interactive shell for modern PHP.", - "homepage": "http://psysh.org", - "keywords": [ - "REPL", - "console", - "interactive", - "shell" - ] - }, - { - "name": "ramsey/uuid", - "version": "3.8.0", - "version_normalized": "3.8.0.0", - "source": { - "type": "git", - "url": "https://github.com/ramsey/uuid.git", - "reference": "d09ea80159c1929d75b3f9c60504d613aeb4a1e3" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/ramsey/uuid/zipball/d09ea80159c1929d75b3f9c60504d613aeb4a1e3", - "reference": "d09ea80159c1929d75b3f9c60504d613aeb4a1e3", - "shasum": "" - }, - "require": { - "paragonie/random_compat": "^1.0|^2.0|9.99.99", - "php": "^5.4 || ^7.0", - "symfony/polyfill-ctype": "^1.8" - }, - "replace": { - "rhumsaa/uuid": "self.version" - }, - "require-dev": { - "codeception/aspect-mock": "^1.0 | ~2.0.0", - "doctrine/annotations": "~1.2.0", - "goaop/framework": "1.0.0-alpha.2 | ^1.0 | ~2.1.0", - "ircmaxell/random-lib": "^1.1", - "jakub-onderka/php-parallel-lint": "^0.9.0", - "mockery/mockery": "^0.9.9", - "moontoast/math": "^1.1", - "php-mock/php-mock-phpunit": "^0.3|^1.1", - "phpunit/phpunit": "^4.7|^5.0|^6.5", - "squizlabs/php_codesniffer": "^2.3" - }, - "suggest": { - "ext-ctype": "Provides support for PHP Ctype functions", - "ext-libsodium": "Provides the PECL libsodium extension for use with the SodiumRandomGenerator", - "ext-uuid": "Provides the PECL UUID extension for use with the PeclUuidTimeGenerator and PeclUuidRandomGenerator", - "ircmaxell/random-lib": "Provides RandomLib for use with the RandomLibAdapter", - "moontoast/math": "Provides support for converting UUID to 128-bit integer (in string form).", - "ramsey/uuid-console": "A console application for generating UUIDs with ramsey/uuid", - "ramsey/uuid-doctrine": "Allows the use of Ramsey\\Uuid\\Uuid as Doctrine field type." - }, - "time": "2018-07-19T23:38:55+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.x-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "Ramsey\\Uuid\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Marijn Huizendveld", - "email": "marijn.huizendveld@gmail.com" - }, - { - "name": "Thibaud Fabre", - "email": "thibaud@aztech.io" - }, - { - "name": "Ben Ramsey", - "email": "ben@benramsey.com", - "homepage": "https://benramsey.com" - } - ], - "description": "Formerly rhumsaa/uuid. A PHP 5.4+ library for generating RFC 4122 version 1, 3, 4, and 5 universally unique identifiers (UUID).", - "homepage": "https://github.com/ramsey/uuid", - "keywords": [ - "guid", - "identifier", - "uuid" - ] - }, - { - "name": "sebastian/code-unit-reverse-lookup", - "version": "1.0.1", - "version_normalized": "1.0.1.0", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git", - "reference": "4419fcdb5eabb9caa61a27c7a1db532a6b55dd18" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/4419fcdb5eabb9caa61a27c7a1db532a6b55dd18", - "reference": "4419fcdb5eabb9caa61a27c7a1db532a6b55dd18", - "shasum": "" - }, - "require": { - "php": "^5.6 || ^7.0" - }, - "require-dev": { - "phpunit/phpunit": "^5.7 || ^6.0" - }, - "time": "2017-03-04T06:30:41+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - }, - "installation-source": "dist", - "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/" - }, - { - "name": "sebastian/comparator", - "version": "3.0.2", - "version_normalized": "3.0.2.0", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/comparator.git", - "reference": "5de4fc177adf9bce8df98d8d141a7559d7ccf6da" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/5de4fc177adf9bce8df98d8d141a7559d7ccf6da", - "reference": "5de4fc177adf9bce8df98d8d141a7559d7ccf6da", - "shasum": "" - }, - "require": { - "php": "^7.1", - "sebastian/diff": "^3.0", - "sebastian/exporter": "^3.1" - }, - "require-dev": { - "phpunit/phpunit": "^7.1" - }, - "time": "2018-07-12T15:12:46+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.0-dev" - } - }, - "installation-source": "dist", - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Jeff Welch", - "email": "whatthejeff@gmail.com" - }, - { - "name": "Volker Dusch", - "email": "github@wallbash.com" - }, - { - "name": "Bernhard Schussek", - "email": "bschussek@2bepublished.at" - }, - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - } - ], - "description": "Provides the functionality to compare PHP values for equality", - "homepage": "https://github.com/sebastianbergmann/comparator", - "keywords": [ - "comparator", - "compare", - "equality" - ] - }, - { - "name": "sebastian/diff", - "version": "3.0.1", - "version_normalized": "3.0.1.0", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/diff.git", - "reference": "366541b989927187c4ca70490a35615d3fef2dce" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/366541b989927187c4ca70490a35615d3fef2dce", - "reference": "366541b989927187c4ca70490a35615d3fef2dce", - "shasum": "" - }, - "require": { - "php": "^7.1" - }, - "require-dev": { - "phpunit/phpunit": "^7.0", - "symfony/process": "^2 || ^3.3 || ^4" - }, - "time": "2018-06-10T07:54:39+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.0-dev" - } - }, - "installation-source": "dist", - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Kore Nordmann", - "email": "mail@kore-nordmann.de" - }, - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - } - ], - "description": "Diff implementation", - "homepage": "https://github.com/sebastianbergmann/diff", - "keywords": [ - "diff", - "udiff", - "unidiff", - "unified diff" - ] - }, - { - "name": "sebastian/environment", - "version": "3.1.0", - "version_normalized": "3.1.0.0", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/environment.git", - "reference": "cd0871b3975fb7fc44d11314fd1ee20925fce4f5" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/cd0871b3975fb7fc44d11314fd1ee20925fce4f5", - "reference": "cd0871b3975fb7fc44d11314fd1ee20925fce4f5", - "shasum": "" - }, - "require": { - "php": "^7.0" - }, - "require-dev": { - "phpunit/phpunit": "^6.1" - }, - "time": "2017-07-01T08:51:00+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.1.x-dev" - } - }, - "installation-source": "dist", - "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" - ] - }, - { - "name": "sebastian/exporter", - "version": "3.1.0", - "version_normalized": "3.1.0.0", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/exporter.git", - "reference": "234199f4528de6d12aaa58b612e98f7d36adb937" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/234199f4528de6d12aaa58b612e98f7d36adb937", - "reference": "234199f4528de6d12aaa58b612e98f7d36adb937", - "shasum": "" - }, - "require": { - "php": "^7.0", - "sebastian/recursion-context": "^3.0" - }, - "require-dev": { - "ext-mbstring": "*", - "phpunit/phpunit": "^6.0" - }, - "time": "2017-04-03T13:19:02+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.1.x-dev" - } - }, - "installation-source": "dist", - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Jeff Welch", - "email": "whatthejeff@gmail.com" - }, - { - "name": "Volker Dusch", - "email": "github@wallbash.com" - }, - { - "name": "Bernhard Schussek", - "email": "bschussek@2bepublished.at" - }, - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - }, - { - "name": "Adam Harvey", - "email": "aharvey@php.net" - } - ], - "description": "Provides the functionality to export PHP variables for visualization", - "homepage": "http://www.github.com/sebastianbergmann/exporter", - "keywords": [ - "export", - "exporter" - ] - }, - { - "name": "sebastian/global-state", - "version": "2.0.0", - "version_normalized": "2.0.0.0", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/global-state.git", - "reference": "e8ba02eed7bbbb9e59e43dedd3dddeff4a56b0c4" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/e8ba02eed7bbbb9e59e43dedd3dddeff4a56b0c4", - "reference": "e8ba02eed7bbbb9e59e43dedd3dddeff4a56b0c4", - "shasum": "" - }, - "require": { - "php": "^7.0" - }, - "require-dev": { - "phpunit/phpunit": "^6.0" - }, - "suggest": { - "ext-uopz": "*" - }, - "time": "2017-04-27T15:39:26+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.0-dev" - } - }, - "installation-source": "dist", - "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" - ] - }, - { - "name": "sebastian/object-enumerator", - "version": "3.0.3", - "version_normalized": "3.0.3.0", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/object-enumerator.git", - "reference": "7cfd9e65d11ffb5af41198476395774d4c8a84c5" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/7cfd9e65d11ffb5af41198476395774d4c8a84c5", - "reference": "7cfd9e65d11ffb5af41198476395774d4c8a84c5", - "shasum": "" - }, - "require": { - "php": "^7.0", - "sebastian/object-reflector": "^1.1.1", - "sebastian/recursion-context": "^3.0" - }, - "require-dev": { - "phpunit/phpunit": "^6.0" - }, - "time": "2017-08-03T12:35:26+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.0.x-dev" - } - }, - "installation-source": "dist", - "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/" - }, - { - "name": "sebastian/object-reflector", - "version": "1.1.1", - "version_normalized": "1.1.1.0", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/object-reflector.git", - "reference": "773f97c67f28de00d397be301821b06708fca0be" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/773f97c67f28de00d397be301821b06708fca0be", - "reference": "773f97c67f28de00d397be301821b06708fca0be", - "shasum": "" - }, - "require": { - "php": "^7.0" - }, - "require-dev": { - "phpunit/phpunit": "^6.0" - }, - "time": "2017-03-29T09:07:27+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.1-dev" - } - }, - "installation-source": "dist", - "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/" - }, - { - "name": "sebastian/recursion-context", - "version": "3.0.0", - "version_normalized": "3.0.0.0", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/recursion-context.git", - "reference": "5b0cd723502bac3b006cbf3dbf7a1e3fcefe4fa8" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/5b0cd723502bac3b006cbf3dbf7a1e3fcefe4fa8", - "reference": "5b0cd723502bac3b006cbf3dbf7a1e3fcefe4fa8", - "shasum": "" - }, - "require": { - "php": "^7.0" - }, - "require-dev": { - "phpunit/phpunit": "^6.0" - }, - "time": "2017-03-03T06:23:57+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.0.x-dev" - } - }, - "installation-source": "dist", - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Jeff Welch", - "email": "whatthejeff@gmail.com" - }, - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - }, - { - "name": "Adam Harvey", - "email": "aharvey@php.net" - } - ], - "description": "Provides functionality to recursively process PHP variables", - "homepage": "http://www.github.com/sebastianbergmann/recursion-context" - }, - { - "name": "sebastian/resource-operations", - "version": "1.0.0", - "version_normalized": "1.0.0.0", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/resource-operations.git", - "reference": "ce990bb21759f94aeafd30209e8cfcdfa8bc3f52" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/ce990bb21759f94aeafd30209e8cfcdfa8bc3f52", - "reference": "ce990bb21759f94aeafd30209e8cfcdfa8bc3f52", - "shasum": "" - }, - "require": { - "php": ">=5.6.0" - }, - "time": "2015-07-28T20:34:47+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - }, - "installation-source": "dist", - "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" - }, - { - "name": "sebastian/version", - "version": "2.0.1", - "version_normalized": "2.0.1.0", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/version.git", - "reference": "99732be0ddb3361e16ad77b68ba41efc8e979019" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/99732be0ddb3361e16ad77b68ba41efc8e979019", - "reference": "99732be0ddb3361e16ad77b68ba41efc8e979019", - "shasum": "" - }, - "require": { - "php": ">=5.6" - }, - "time": "2016-10-03T07:35:21+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.0.x-dev" - } - }, - "installation-source": "dist", - "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" - }, - { - "name": "simplesoftwareio/simple-qrcode", - "version": "2.0.0", - "version_normalized": "2.0.0.0", - "source": { - "type": "git", - "url": "https://github.com/SimpleSoftwareIO/simple-qrcode.git", - "reference": "90b2282dd29be1e52565e9832dc23af41610ea07" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/SimpleSoftwareIO/simple-qrcode/zipball/90b2282dd29be1e52565e9832dc23af41610ea07", - "reference": "90b2282dd29be1e52565e9832dc23af41610ea07", - "shasum": "" - }, - "require": { - "bacon/bacon-qr-code": "1.0.*", - "ext-gd": "*", - "illuminate/support": ">=5.0.0", - "php": ">=7.0" - }, - "require-dev": { - "mockery/mockery": "0.9.*", - "phpunit/phpunit": "~6" - }, - "time": "2017-11-26T15:27:12+00:00", - "type": "library", - "extra": { - "laravel": { - "providers": [ - "SimpleSoftwareIO\\QrCode\\QrCodeServiceProvider" - ], - "aliases": { - "QrCode": "SimpleSoftwareIO\\QrCode\\Facades\\QrCode" - } - } - }, - "installation-source": "dist", - "autoload": { - "psr-0": { - "SimpleSoftwareIO\\QrCode\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Simple Software LLC", - "email": "support@simplesoftware.io" - } - ], - "description": "Simple QrCode is a QR code generator made for Laravel.", - "homepage": "http://www.simplesoftware.io", - "keywords": [ - "Simple", - "generator", - "laravel", - "qrcode", - "wrapper" - ] - }, - { - "name": "spatie/laravel-permission", - "version": "2.12.2", - "version_normalized": "2.12.2.0", - "source": { - "type": "git", - "url": "https://github.com/spatie/laravel-permission.git", - "reference": "2affce0021cb9b6f4e249f7c5d94eb68039ffccc" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/spatie/laravel-permission/zipball/2affce0021cb9b6f4e249f7c5d94eb68039ffccc", - "reference": "2affce0021cb9b6f4e249f7c5d94eb68039ffccc", - "shasum": "" - }, - "require": { - "illuminate/auth": "~5.3.0|~5.4.0|~5.5.0|~5.6.0", - "illuminate/container": "~5.3.0|~5.4.0|~5.5.0|~5.6.0", - "illuminate/contracts": "~5.3.0|~5.4.0|~5.5.0|~5.6.0", - "illuminate/database": "~5.4.0|~5.5.0|~5.6.0", - "php": ">=7.0" - }, - "require-dev": { - "orchestra/testbench": "~3.3.0|~3.4.2|^3.5.0", - "phpunit/phpunit": "^5.7|6.2|^7.0" - }, - "time": "2018-06-14T02:52:40+00:00", - "type": "library", - "extra": { - "laravel": { - "providers": [ - "Spatie\\Permission\\PermissionServiceProvider" - ] - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "Spatie\\Permission\\": "src" - }, - "files": [ - "src/helpers.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Freek Van der Herten", - "email": "freek@spatie.be", - "homepage": "https://spatie.be", - "role": "Developer" - } - ], - "description": "Permission handling for Laravel 5.4 and up", - "homepage": "https://github.com/spatie/laravel-permission", - "keywords": [ - "acl", - "laravel", - "permission", - "security", - "spatie" - ] - }, - { - "name": "swiftmailer/swiftmailer", - "version": "v6.1.2", - "version_normalized": "6.1.2.0", - "source": { - "type": "git", - "url": "https://github.com/swiftmailer/swiftmailer.git", - "reference": "7d760881d266d63c5e7a1155cbcf2ac656a31ca8" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/swiftmailer/swiftmailer/zipball/7d760881d266d63c5e7a1155cbcf2ac656a31ca8", - "reference": "7d760881d266d63c5e7a1155cbcf2ac656a31ca8", - "shasum": "" - }, - "require": { - "egulias/email-validator": "~2.0", - "php": ">=7.0.0" - }, - "require-dev": { - "mockery/mockery": "~0.9.1", - "symfony/phpunit-bridge": "~3.3@dev" - }, - "suggest": { - "ext-intl": "Needed to support internationalized email addresses", - "true/punycode": "Needed to support internationalized email addresses, if ext-intl is not installed" - }, - "time": "2018-07-13T07:04:35+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "6.1-dev" - } - }, - "installation-source": "dist", - "autoload": { - "files": [ - "lib/swift_required.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Chris Corbyn" - }, - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - } - ], - "description": "Swiftmailer, free feature-rich PHP mailer", - "homepage": "https://swiftmailer.symfony.com", - "keywords": [ - "email", - "mail", - "mailer" - ] - }, - { - "name": "symfony/console", - "version": "v4.1.1", - "version_normalized": "4.1.1.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/console.git", - "reference": "70591cda56b4b47c55776ac78e157c4bb6c8b43f" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/70591cda56b4b47c55776ac78e157c4bb6c8b43f", - "reference": "70591cda56b4b47c55776ac78e157c4bb6c8b43f", - "shasum": "" - }, - "require": { - "php": "^7.1.3", - "symfony/polyfill-mbstring": "~1.0" - }, - "conflict": { - "symfony/dependency-injection": "<3.4", - "symfony/process": "<3.3" - }, - "require-dev": { - "psr/log": "~1.0", - "symfony/config": "~3.4|~4.0", - "symfony/dependency-injection": "~3.4|~4.0", - "symfony/event-dispatcher": "~3.4|~4.0", - "symfony/lock": "~3.4|~4.0", - "symfony/process": "~3.4|~4.0" - }, - "suggest": { - "psr/log-implementation": "For using the console logger", - "symfony/event-dispatcher": "", - "symfony/lock": "", - "symfony/process": "" - }, - "time": "2018-05-31T10:17:53+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.1-dev" - } - }, - "installation-source": "dist", - "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": "Symfony Console Component", - "homepage": "https://symfony.com" - }, - { - "name": "symfony/css-selector", - "version": "v4.1.1", - "version_normalized": "4.1.1.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/css-selector.git", - "reference": "03ac71606ecb0b0ce792faa17d74cc32c2949ef4" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/css-selector/zipball/03ac71606ecb0b0ce792faa17d74cc32c2949ef4", - "reference": "03ac71606ecb0b0ce792faa17d74cc32c2949ef4", - "shasum": "" - }, - "require": { - "php": "^7.1.3" - }, - "time": "2018-05-30T07:26:09+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.1-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "Symfony\\Component\\CssSelector\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Jean-François Simon", - "email": "jeanfrancois.simon@sensiolabs.com" - }, - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony CssSelector Component", - "homepage": "https://symfony.com" - }, - { - "name": "symfony/debug", - "version": "v4.1.1", - "version_normalized": "4.1.1.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/debug.git", - "reference": "dbe0fad88046a755dcf9379f2964c61a02f5ae3d" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/debug/zipball/dbe0fad88046a755dcf9379f2964c61a02f5ae3d", - "reference": "dbe0fad88046a755dcf9379f2964c61a02f5ae3d", - "shasum": "" - }, - "require": { - "php": "^7.1.3", - "psr/log": "~1.0" - }, - "conflict": { - "symfony/http-kernel": "<3.4" - }, - "require-dev": { - "symfony/http-kernel": "~3.4|~4.0" - }, - "time": "2018-06-08T09:39:36+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.1-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "Symfony\\Component\\Debug\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony Debug Component", - "homepage": "https://symfony.com" - }, - { - "name": "symfony/event-dispatcher", - "version": "v4.1.1", - "version_normalized": "4.1.1.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/event-dispatcher.git", - "reference": "2391ed210a239868e7256eb6921b1bd83f3087b5" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/2391ed210a239868e7256eb6921b1bd83f3087b5", - "reference": "2391ed210a239868e7256eb6921b1bd83f3087b5", - "shasum": "" - }, - "require": { - "php": "^7.1.3" - }, - "conflict": { - "symfony/dependency-injection": "<3.4" - }, - "require-dev": { - "psr/log": "~1.0", - "symfony/config": "~3.4|~4.0", - "symfony/dependency-injection": "~3.4|~4.0", - "symfony/expression-language": "~3.4|~4.0", - "symfony/stopwatch": "~3.4|~4.0" - }, - "suggest": { - "symfony/dependency-injection": "", - "symfony/http-kernel": "" - }, - "time": "2018-04-06T07:35:57+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.1-dev" - } - }, - "installation-source": "dist", - "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": "Symfony EventDispatcher Component", - "homepage": "https://symfony.com" - }, - { - "name": "symfony/finder", - "version": "v4.1.1", - "version_normalized": "4.1.1.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/finder.git", - "reference": "84714b8417d19e4ba02ea78a41a975b3efaafddb" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/84714b8417d19e4ba02ea78a41a975b3efaafddb", - "reference": "84714b8417d19e4ba02ea78a41a975b3efaafddb", - "shasum": "" - }, - "require": { - "php": "^7.1.3" - }, - "time": "2018-06-19T21:38:16+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.1-dev" - } - }, - "installation-source": "dist", - "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": "Symfony Finder Component", - "homepage": "https://symfony.com" - }, - { - "name": "symfony/http-foundation", - "version": "v4.1.1", - "version_normalized": "4.1.1.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/http-foundation.git", - "reference": "4f9c7cf962e635b0b26b14500ac046e07dbef7f3" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/http-foundation/zipball/4f9c7cf962e635b0b26b14500ac046e07dbef7f3", - "reference": "4f9c7cf962e635b0b26b14500ac046e07dbef7f3", - "shasum": "" - }, - "require": { - "php": "^7.1.3", - "symfony/polyfill-mbstring": "~1.1" - }, - "require-dev": { - "predis/predis": "~1.0", - "symfony/expression-language": "~3.4|~4.0" - }, - "time": "2018-06-19T21:38:16+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.1-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "Symfony\\Component\\HttpFoundation\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony HttpFoundation Component", - "homepage": "https://symfony.com" - }, - { - "name": "symfony/http-kernel", - "version": "v4.1.1", - "version_normalized": "4.1.1.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/http-kernel.git", - "reference": "29c094a1c4f8209b7e033f612cbbd69029e38955" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/http-kernel/zipball/29c094a1c4f8209b7e033f612cbbd69029e38955", - "reference": "29c094a1c4f8209b7e033f612cbbd69029e38955", - "shasum": "" - }, - "require": { - "php": "^7.1.3", - "psr/log": "~1.0", - "symfony/debug": "~3.4|~4.0", - "symfony/event-dispatcher": "~4.1", - "symfony/http-foundation": "^4.1.1", - "symfony/polyfill-ctype": "~1.8" - }, - "conflict": { - "symfony/config": "<3.4", - "symfony/dependency-injection": "<4.1", - "symfony/var-dumper": "<4.1.1", - "twig/twig": "<1.34|<2.4,>=2" - }, - "provide": { - "psr/log-implementation": "1.0" - }, - "require-dev": { - "psr/cache": "~1.0", - "symfony/browser-kit": "~3.4|~4.0", - "symfony/config": "~3.4|~4.0", - "symfony/console": "~3.4|~4.0", - "symfony/css-selector": "~3.4|~4.0", - "symfony/dependency-injection": "^4.1", - "symfony/dom-crawler": "~3.4|~4.0", - "symfony/expression-language": "~3.4|~4.0", - "symfony/finder": "~3.4|~4.0", - "symfony/process": "~3.4|~4.0", - "symfony/routing": "~3.4|~4.0", - "symfony/stopwatch": "~3.4|~4.0", - "symfony/templating": "~3.4|~4.0", - "symfony/translation": "~3.4|~4.0", - "symfony/var-dumper": "^4.1.1" - }, - "suggest": { - "symfony/browser-kit": "", - "symfony/config": "", - "symfony/console": "", - "symfony/dependency-injection": "", - "symfony/var-dumper": "" - }, - "time": "2018-06-25T13:06:45+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.1-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "Symfony\\Component\\HttpKernel\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony HttpKernel Component", - "homepage": "https://symfony.com" - }, - { - "name": "symfony/polyfill-ctype", - "version": "v1.8.0", - "version_normalized": "1.8.0.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-ctype.git", - "reference": "7cc359f1b7b80fc25ed7796be7d96adc9b354bae" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/7cc359f1b7b80fc25ed7796be7d96adc9b354bae", - "reference": "7cc359f1b7b80fc25ed7796be7d96adc9b354bae", - "shasum": "" - }, - "require": { - "php": ">=5.3.3" - }, - "time": "2018-04-30T19:57:29+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.8-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "Symfony\\Polyfill\\Ctype\\": "" - }, - "files": [ - "bootstrap.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - }, - { - "name": "Gert de Pagter", - "email": "BackEndTea@gmail.com" - } - ], - "description": "Symfony polyfill for ctype functions", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "ctype", - "polyfill", - "portable" - ] - }, - { - "name": "symfony/polyfill-mbstring", - "version": "v1.8.0", - "version_normalized": "1.8.0.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-mbstring.git", - "reference": "3296adf6a6454a050679cde90f95350ad604b171" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/3296adf6a6454a050679cde90f95350ad604b171", - "reference": "3296adf6a6454a050679cde90f95350ad604b171", - "shasum": "" - }, - "require": { - "php": ">=5.3.3" - }, - "suggest": { - "ext-mbstring": "For best performance" - }, - "time": "2018-04-26T10:06:28+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.8-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "Symfony\\Polyfill\\Mbstring\\": "" - }, - "files": [ - "bootstrap.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony polyfill for the Mbstring extension", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "mbstring", - "polyfill", - "portable", - "shim" - ] - }, - { - "name": "symfony/polyfill-php72", - "version": "v1.8.0", - "version_normalized": "1.8.0.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-php72.git", - "reference": "a4576e282d782ad82397f3e4ec1df8e0f0cafb46" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/a4576e282d782ad82397f3e4ec1df8e0f0cafb46", - "reference": "a4576e282d782ad82397f3e4ec1df8e0f0cafb46", - "shasum": "" - }, - "require": { - "php": ">=5.3.3" - }, - "time": "2018-04-26T10:06:28+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.8-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "Symfony\\Polyfill\\Php72\\": "" - }, - "files": [ - "bootstrap.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony polyfill backporting some PHP 7.2+ features to lower PHP versions", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "polyfill", - "portable", - "shim" - ] - }, - { - "name": "symfony/process", - "version": "v4.1.1", - "version_normalized": "4.1.1.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/process.git", - "reference": "1d1677391ecf00d1c5b9482d6050c0c27aa3ac3a" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/1d1677391ecf00d1c5b9482d6050c0c27aa3ac3a", - "reference": "1d1677391ecf00d1c5b9482d6050c0c27aa3ac3a", - "shasum": "" - }, - "require": { - "php": "^7.1.3" - }, - "time": "2018-05-31T10:17:53+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.1-dev" - } - }, - "installation-source": "dist", - "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": "Symfony Process Component", - "homepage": "https://symfony.com" - }, - { - "name": "symfony/routing", - "version": "v4.1.1", - "version_normalized": "4.1.1.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/routing.git", - "reference": "b38b9797327b26ea2e4146a40e6e2dc9820a6932" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/routing/zipball/b38b9797327b26ea2e4146a40e6e2dc9820a6932", - "reference": "b38b9797327b26ea2e4146a40e6e2dc9820a6932", - "shasum": "" - }, - "require": { - "php": "^7.1.3" - }, - "conflict": { - "symfony/config": "<3.4", - "symfony/dependency-injection": "<3.4", - "symfony/yaml": "<3.4" - }, - "require-dev": { - "doctrine/annotations": "~1.0", - "psr/log": "~1.0", - "symfony/config": "~3.4|~4.0", - "symfony/dependency-injection": "~3.4|~4.0", - "symfony/expression-language": "~3.4|~4.0", - "symfony/http-foundation": "~3.4|~4.0", - "symfony/yaml": "~3.4|~4.0" - }, - "suggest": { - "doctrine/annotations": "For using the annotation loader", - "symfony/config": "For using the all-in-one router or any loader", - "symfony/dependency-injection": "For loading routes from a service", - "symfony/expression-language": "For using expression matching", - "symfony/http-foundation": "For using a Symfony Request object", - "symfony/yaml": "For using the YAML loader" - }, - "time": "2018-06-19T21:38:16+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.1-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "Symfony\\Component\\Routing\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony Routing Component", - "homepage": "https://symfony.com", - "keywords": [ - "router", - "routing", - "uri", - "url" - ] - }, - { - "name": "symfony/translation", - "version": "v4.1.1", - "version_normalized": "4.1.1.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/translation.git", - "reference": "b6d8164085ee0b6debcd1b7a131fd6f63bb04854" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/translation/zipball/b6d8164085ee0b6debcd1b7a131fd6f63bb04854", - "reference": "b6d8164085ee0b6debcd1b7a131fd6f63bb04854", - "shasum": "" - }, - "require": { - "php": "^7.1.3", - "symfony/polyfill-mbstring": "~1.0" - }, - "conflict": { - "symfony/config": "<3.4", - "symfony/dependency-injection": "<3.4", - "symfony/yaml": "<3.4" - }, - "require-dev": { - "psr/log": "~1.0", - "symfony/config": "~3.4|~4.0", - "symfony/console": "~3.4|~4.0", - "symfony/dependency-injection": "~3.4|~4.0", - "symfony/finder": "~2.8|~3.0|~4.0", - "symfony/intl": "~3.4|~4.0", - "symfony/yaml": "~3.4|~4.0" - }, - "suggest": { - "psr/log-implementation": "To use logging capability in translator", - "symfony/config": "", - "symfony/yaml": "" - }, - "time": "2018-06-22T08:59:39+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.1-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "Symfony\\Component\\Translation\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony Translation Component", - "homepage": "https://symfony.com" - }, - { - "name": "symfony/var-dumper", - "version": "v4.1.1", - "version_normalized": "4.1.1.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/var-dumper.git", - "reference": "b2eebaec085d1f2cafbad7644733d494a3bbbc9b" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/var-dumper/zipball/b2eebaec085d1f2cafbad7644733d494a3bbbc9b", - "reference": "b2eebaec085d1f2cafbad7644733d494a3bbbc9b", - "shasum": "" - }, - "require": { - "php": "^7.1.3", - "symfony/polyfill-mbstring": "~1.0", - "symfony/polyfill-php72": "~1.5" - }, - "conflict": { - "phpunit/phpunit": "<4.8.35|<5.4.3,>=5.0", - "symfony/console": "<3.4" - }, - "require-dev": { - "ext-iconv": "*", - "symfony/process": "~3.4|~4.0", - "twig/twig": "~1.34|~2.4" - }, - "suggest": { - "ext-iconv": "To convert non-UTF-8 strings to UTF-8 (or symfony/polyfill-iconv in case ext-iconv cannot be used).", - "ext-intl": "To show region name in time zone dump", - "symfony/console": "To use the ServerDumpCommand and/or the bin/var-dump-server script" - }, - "time": "2018-06-23T12:23:56+00:00", - "bin": [ - "Resources/bin/var-dump-server" - ], - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.1-dev" - } - }, - "installation-source": "dist", - "autoload": { - "files": [ - "Resources/functions/dump.php" - ], - "psr-4": { - "Symfony\\Component\\VarDumper\\": "" - }, - "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 mechanism for exploring and dumping PHP variables", - "homepage": "https://symfony.com", - "keywords": [ - "debug", - "dump" - ] - }, - { - "name": "theseer/tokenizer", - "version": "1.1.0", - "version_normalized": "1.1.0.0", - "source": { - "type": "git", - "url": "https://github.com/theseer/tokenizer.git", - "reference": "cb2f008f3f05af2893a87208fe6a6c4985483f8b" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/theseer/tokenizer/zipball/cb2f008f3f05af2893a87208fe6a6c4985483f8b", - "reference": "cb2f008f3f05af2893a87208fe6a6c4985483f8b", - "shasum": "" - }, - "require": { - "ext-dom": "*", - "ext-tokenizer": "*", - "ext-xmlwriter": "*", - "php": "^7.0" - }, - "time": "2017-04-07T12:08:54+00:00", - "type": "library", - "installation-source": "dist", - "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" - }, - { - "name": "tijsverkoyen/css-to-inline-styles", - "version": "2.2.1", - "version_normalized": "2.2.1.0", - "source": { - "type": "git", - "url": "https://github.com/tijsverkoyen/CssToInlineStyles.git", - "reference": "0ed4a2ea4e0902dac0489e6436ebcd5bbcae9757" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/tijsverkoyen/CssToInlineStyles/zipball/0ed4a2ea4e0902dac0489e6436ebcd5bbcae9757", - "reference": "0ed4a2ea4e0902dac0489e6436ebcd5bbcae9757", - "shasum": "" - }, - "require": { - "php": "^5.5 || ^7.0", - "symfony/css-selector": "^2.7 || ^3.0 || ^4.0" - }, - "require-dev": { - "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0" - }, - "time": "2017-11-27T11:13:29+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.2.x-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "TijsVerkoyen\\CssToInlineStyles\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Tijs Verkoyen", - "email": "css_to_inline_styles@verkoyen.eu", - "role": "Developer" - } - ], - "description": "CssToInlineStyles is a class that enables you to convert HTML-pages/files into HTML-pages/files with inline styles. This is very useful when you're sending emails.", - "homepage": "https://github.com/tijsverkoyen/CssToInlineStyles" - }, - { - "name": "toolkito/larasap", - "version": "V1.2.2", - "version_normalized": "1.2.2.0", - "source": { - "type": "git", - "url": "https://github.com/toolkito/laravel-social-auto-posting.git", - "reference": "b90a4b54564f180cba69c7ab3ee94780a7cdfa69" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/toolkito/laravel-social-auto-posting/zipball/b90a4b54564f180cba69c7ab3ee94780a7cdfa69", - "reference": "b90a4b54564f180cba69c7ab3ee94780a7cdfa69", - "shasum": "" - }, - "require": { - "facebook/graph-sdk": "^5.6.1", - "illuminate/support": "5.5.x|5.6.x", - "php": "~7.0" - }, - "require-dev": { - "phpunit/phpunit": "~4.8" - }, - "time": "2018-03-07T06:40:57+00:00", - "type": "library", - "extra": { - "laravel": { - "providers": [ - "Toolkito\\Larasap\\LarasapServiceProvider" - ] - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "Toolkito\\Larasap\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Ali Hesari", - "email": "alihesari.com@gmail.com", - "homepage": "https://alihesari.com", - "role": "Developer" - } - ], - "description": "Laravel social auto posting (Larasap) lets you automatically post all your content to social networks such as Telegram Channel and Twitter.", - "keywords": [ - "facebook", - "laravel", - "social network", - "telegram", - "twitter" - ] - }, - { - "name": "vlucas/phpdotenv", - "version": "v2.5.0", - "version_normalized": "2.5.0.0", - "source": { - "type": "git", - "url": "https://github.com/vlucas/phpdotenv.git", - "reference": "6ae3e2e6494bb5e58c2decadafc3de7f1453f70a" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/vlucas/phpdotenv/zipball/6ae3e2e6494bb5e58c2decadafc3de7f1453f70a", - "reference": "6ae3e2e6494bb5e58c2decadafc3de7f1453f70a", - "shasum": "" - }, - "require": { - "php": ">=5.3.9" - }, - "require-dev": { - "phpunit/phpunit": "^4.8.35 || ^5.0" - }, - "time": "2018-07-01T10:25:50+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.5-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "Dotenv\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Vance Lucas", - "email": "vance@vancelucas.com", - "homepage": "http://www.vancelucas.com" - } - ], - "description": "Loads environment variables from `.env` to `getenv()`, `$_ENV` and `$_SERVER` automagically.", - "keywords": [ - "dotenv", - "env", - "environment" - ] - }, - { - "name": "webmozart/assert", - "version": "1.3.0", - "version_normalized": "1.3.0.0", - "source": { - "type": "git", - "url": "https://github.com/webmozart/assert.git", - "reference": "0df1908962e7a3071564e857d86874dad1ef204a" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/webmozart/assert/zipball/0df1908962e7a3071564e857d86874dad1ef204a", - "reference": "0df1908962e7a3071564e857d86874dad1ef204a", - "shasum": "" - }, - "require": { - "php": "^5.3.3 || ^7.0" - }, - "require-dev": { - "phpunit/phpunit": "^4.6", - "sebastian/version": "^1.0.1" - }, - "time": "2018-01-29T19:49:41+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.3-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "Webmozart\\Assert\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Bernhard Schussek", - "email": "bschussek@gmail.com" - } - ], - "description": "Assertions to validate method input/output with nice error messages.", - "keywords": [ - "assert", - "check", - "validate" - ] - } -] diff --git a/vendor/cviebrock/eloquent-sluggable/.github/ISSUE_TEMPLATE.md b/vendor/cviebrock/eloquent-sluggable/.github/ISSUE_TEMPLATE.md deleted file mode 100644 index 9efd36ca..00000000 --- a/vendor/cviebrock/eloquent-sluggable/.github/ISSUE_TEMPLATE.md +++ /dev/null @@ -1,14 +0,0 @@ -Please be sure you include all the relevant information in your issue so we can help you: - -- [ ] steps taken to reproduce your issue -- [ ] your configuration file(s), where relevant -- [ ] a copy of your Models that use or extend this package (just the relevant parts!) -- [ ] any other code we might need to help - -Please use a descriptive title for your issue. "Why doesn't this work?" doesn't provide -other users much information if they are scanning the list of issues. - -Also, *please* use [fenced code blocks](https://help.github.com/articles/creating-and-highlighting-code-blocks/) -when pasting more than one line of code. It makes it so much more readable for everyone! - -**Thank you!** diff --git a/vendor/cviebrock/eloquent-sluggable/.github/PULL_REQUEST_TEMPLATE.md b/vendor/cviebrock/eloquent-sluggable/.github/PULL_REQUEST_TEMPLATE.md deleted file mode 100644 index 12f2e2b8..00000000 --- a/vendor/cviebrock/eloquent-sluggable/.github/PULL_REQUEST_TEMPLATE.md +++ /dev/null @@ -1,12 +0,0 @@ -Thank you for helping to make this package better! - -Please make sure you've read [CONTRIBUTING.md](https://github.com/cviebrock/eloquent-sluggable/blob/master/CONTRIBUTING.md) -before submitting your pull request, and that you have: - -- [ ] provided a rationale for your change (I try not to add features that are going to have a limited user-base) -- [ ] used the [PSR-2 Coding Standard](https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-2-coding-style-guide.md) -- [ ] added tests -- [ ] documented any change in behaviour (e.g. updated the `README.md`, etc.) -- [ ] only submitted one pull request per feature - -**Thank you!** diff --git a/vendor/cviebrock/eloquent-sluggable/.nitpick.json b/vendor/cviebrock/eloquent-sluggable/.nitpick.json deleted file mode 100644 index 4a07f488..00000000 --- a/vendor/cviebrock/eloquent-sluggable/.nitpick.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "ignore": [ - "tests/*" - ] -} diff --git a/vendor/cviebrock/eloquent-sluggable/.semver b/vendor/cviebrock/eloquent-sluggable/.semver deleted file mode 100644 index 1074b072..00000000 --- a/vendor/cviebrock/eloquent-sluggable/.semver +++ /dev/null @@ -1,5 +0,0 @@ ---- -:major: 4 -:minor: 5 -:patch: 0 -:special: '' diff --git a/vendor/cviebrock/eloquent-sluggable/.travis.yml b/vendor/cviebrock/eloquent-sluggable/.travis.yml deleted file mode 100644 index bf4dc01b..00000000 --- a/vendor/cviebrock/eloquent-sluggable/.travis.yml +++ /dev/null @@ -1,24 +0,0 @@ -# Travis CI configuration - -language: php - -php: - - 7.1 - - 7.2 - -env: - - COMPOSER_FLAGS="--prefer-stable --prefer-lowest" - - COMPOSER_FLAGS="" - -matrix: - exclude: - - php: 7.2 - env: COMPOSER_FLAGS="--prefer-stable --prefer-lowest" - -before_script: - - travis_retry composer self-update - - travis_retry composer update ${COMPOSER_FLAGS} --no-interaction --prefer-source - - travis_retry composer dump-autoload - -script: - - php vendor/bin/phpunit diff --git a/vendor/cviebrock/eloquent-sluggable/CHANGELOG.md b/vendor/cviebrock/eloquent-sluggable/CHANGELOG.md deleted file mode 100644 index b0217e24..00000000 --- a/vendor/cviebrock/eloquent-sluggable/CHANGELOG.md +++ /dev/null @@ -1,274 +0,0 @@ -# Change Log - -## 4.5.0 - 10-Feb-2018 - -- Laravel 5.6 support - - -## 4.4.1 - 04-Jan-2018 - -- Better exception message when calling `SlugService::createSlug` with an invalid attribute (#402, thanks @lptn) -- Prettier unit test output - - -## 4.4.0 - 12-Dec-2017 - -- Make sure truncated slugs (due to maxLength) don't end in a separator (#398) -- Add `maxLengthKeepWords` configuration option (#398) - - -## 4.3.0 - 31-Aug-2017 - -- Laravel 5.5 support, including auto-registration -- Bumped `cocur/slugify` to `^3.0` - - -## 4.2.5 - 31-Aug-2017 - -- Fixing composer requirements to support Laravel 5.4 only - - -## 4.2.4 - 04-Jul-2017 - -- Documentation change (#374, thanks @fico7489) - - -## 4.2.3 - 18-Apr-2017 - -- Switch to allow extending the class (#356, thanks @haddowg) -- Fix when adding suffixes to reserved slugs (#356, thanks @haddowg) - - -## 4.2.2 - 23-Mar-2017 - -- Better handling of numeric and boolean slug sources (#351, thanks @arturock) - - -## 4.2.1 - 01-Feb-2017 - -- Support Laravel 5.4 (#339, thanks @maddhatter) - - -## 4.1.2 - 09-Nov-2016 - -- Fix in `getExistingSlugs` when using global scopes (#327) -- Update `Cocur\Slugify` to `^2.3`. - - -## 4.1.1 - 12-Oct-2016 - -- Fix for slugs updating when they don't need to, when using `onUpdate` with `unique` (#317) - - -## 4.1.0 - 14-Sep-2016 - -- The goal of the 4.1.x releases will be to focus on support in Laravel 5.3, only providing support for 5.1/5.2 - where it is easy and doesn't affect performance significantly. -- Drop support for PHP <5.6 and HHVM (no longer supported by Laravel 5.3); fixes test build process - - -## 4.0.4 - 13-Sep-2016 - -- Fix `SluggableScopeHelpers` to work when using the short configuration syntax (#314). - - -## 4.0.3 - 15-Jul-2016 - -- Added `$config` argument to `SlugService::createSlug` method for optionally overriding - the configuration for a statically generated slug (#286). - - -## 4.0.2 - 17-Jun-2016 - -- Added `SluggableScopeHelpers` trait which restores some of the scoping and query - functionality of the 3.x version of the package (#280, thanks @unstoppablecarl and @Keoghan). -- Added the `onUpdate` configuration option back to the package. -- Updated the documentation to show usage of the `SluggableScopeHelpers` trait, and - how to use route model binding with slugs. - - -## 4.0.1 - 13-Jun-2016 - -- Fixed several bugs related to Laravel 5.1 and collections (#263, #274). - - -## 4.0.0 - 10-Jun-2016 - -- Fix for Laravel 5.1 (#263 thanks @roshangautam and @andregaldino). -- Update `Cocur\Slugify` to `^2.1` (#269 thanks @shadoWalker89). - - -## 4.0.0-beta - 01-Jun-2016 - -- Major revision - - Model configuration is now handled in a `sluggable()` method. - on the model instead of a property, and configuration options are now camelCase - - Ability to generate more than one slug per model. - - Removed all `findBy...()` scope/methods (can't really be used when a model - has multiple slugs ... plus the code is easy enough to implement in the model). - - Removed `onUpdate` configuration option. If you want to re-generate a slug - on update, then set the model's slug to `null` before saving. Otherwise, existing - slugs will never be overwritten. - - `createSlug()` is no longer a static method on the model, but is a public method - on the _SlugService_ class, with a different method signature (see docs). - - Removed artisan command to add slug column to tables. You will need to do this - (pretty simple) task yourself now. - - Several bug fixes. -- See [UPGRADING.md](UPGRADING.md) for details. - - -## 3.1.4 - 03-Jan-2016 - -- Compatible with Laravel 5.2 (by removing calls to composer from migrate command) - - -## 3.1.3 - 07-Dec-2015 - -- Fix for PostgreSQL and `findBySlugOrId()` (#205 thanks @Jaspur) - - -## 3.1.2 - 07-Nov-2015 - -- Fix some namespacing issues in docblocks (#195) -- Streamline artisan migrate call (#191 thanks @ntzm) -- Fix bug when using magic getters (#188 thanks @ChrisReid) -- Add a static slug generator (#185 thanks @phroggyy) -- Lots of PSR-2 fixes - - -## 3.1.1 - 26-Oct-2015 - -- Fix missing class reference (#192) -- Clean up migration code (#191 thanks @natzim) -- Fix when using magic getters (#188 thanks @ChrisReid) - - -## 3.1.0 - 14-Oct-2015 - -- Convert code-base to PSR-2 -- If the source is empty, then set the slug to `null` (#162 thanks @PallMallShow) -- Ability to use a model's relations in the `build_from` configuration (#171 thanks @blaxxi) -- Added `getSlugEngine()` method so that the Cocur\Slugify class can be configured -- Updated the migration stub for Laravel 5.1's PSR-2 changes (#174 thanks @39digits) -- Added `slugging` and `slugged` Eloquent model events -- Fix for `findBySlugOrId()` methods when the slug is numeric (#161 thanks @canvural) -- Add static method `Model::createSlug('some string')` (#185 thanks @phroggyy) - - -## 3.0.0 - 06-Jul-2015 - -- Don't increment unique suffix if slug is unchanged (#108 thanks @kkiernan) - - -## 3.0.0-beta - 12-Jun-2015 - -- Laravel 5.1 support (#141/#148 thanks @Keoghan, @Bouhnosaure) -- Removed `use_cache` option and support -- Use (Cocur\Slugify)[https://github.com/cocur/slugify] as default slugging method -- Fix for `include_trashed` option not working for models that inherit the SoftDeletes trait (#136 thanks @ramirezd42) -- Added `generateSuffix()` method so you could use different strategies other than integers for making incremental slugs (#129 thanks @EspadaV8) -- Various scope and lookup fixes (thanks @xire28) - - -## 3.0.0-alpha - 11-Feb-2015 - -- Laravel 5.0 support -- Remove Ardent support and tests -- Fix so that `max_length` option only applies to string slugs (#64 thanks @enzomaserati) - - -## 2.0.5 - 13-Nov-2014 - -- Fixed `findBySlug()` to return a model and `getBySlug()` to return a collection (#72 thanks @jaewun and @Jono20202) -- Fixed testbench version requirements (#87 thanks @hannesvdvreken) -- Fixed so that `max_length` option only applies to string slugs (#64 thanks @enzomaserati) -- Cleaned up some redundant code and documentation (thanks @hannesvdvreken, @Anahkiasen, @nimbol) - - -## 2.0.4 - 23-Sep-2014 - -- Fixed softDelete behaviour and tests so Laravel 4.2 and earlier are supported (#56 thanks @hammat). -- Fixed alias for `Illuminate\Support\Str` to prepare for Laravel 4.3/5.0 (#58 thanks @0xMatt). - - -## 2.0.3 - 17-Jul-2014 - -- Don't allow slugs to be empty (#44 thanks @lfbittencourt). - - -## 2.0.2 - 19-Jun-2014 - -- Add `getExistingSlugs()` method to trait (#36 thanks @neilcrookes). - - -## 2.0.1 - 13-May-2014 - -- Fix issue where manually setting the slug field would be overwritten when updating the sluggable fields (#32 thanks @D1kz). - - -## 2.0.0 - 27-Apr-2014 - -- See the [README](https://github.com/cviebrock/eloquent-sluggable/tree/master#upgrading) for all upgrading details. -- Now uses traits, so PHP >= 5.4 is required. -- Configuration and usage is _mostly_ backwards-compatible, although users of Ardent or anyone who force-builds slugs will need to make some changes. -- Use Laravel's cache to speed up unique slug generation (and prevent duplicates in heavy-usage cases). - - -## 1.0.8 - 20-Feb-2014 - -- Fix issue where replicated models couldn't forcibly be re-slugged (#20 thanks @trideout). - - -## 1.0.7 - 03-Dec-2013 - -- Really fix issue #15 -- "not in object context" errors. Previous fix didn't work for PHP 5.3.x (thanks again @mayoz). - - -## 1.0.6 - 02-Dec-2013 - -- Update composer requirements so that the package installs nicely with the upcoming Laravel 4.1. -- Updated docs to show how to use package with [Ardent](http://github.com/laravelbook/ardent) models (thanks to @Flynsarmy for the pointers). - - -## 1.0.5 - 15-Nov-2013 - -- Fix issues where slugs would alternate between "slug" and "slug-1" when `on_update` and `unique` are set (#14, #16, thanks @mikembm, @JoeChilds). -- Make `isIncremented` method static to solve possible "not in object context" error (#15, thanks @mayoz). - - -## 1.0.4 - 05-Nov-2013 - -- Unit testing ... woot! Building this revealed three new bugs: - - Fixed bug where using the default `method` didn't take into account a custom `separator`. - - Proper fix for issue #5. - - `include_trashed` wasn't working because you can't read the protected `softDelete` property of the model. - - -## 1.0.3 - 04-Nov-2013 - -- Fixed PHP warnings about uninitialized variable (#10, thanks @JoeChilds). - - -## 1.0.2 - 03-Nov-2013 - -- Allow reverting to a "smaller" version of a similar slug (#5, thanks @alkin). -- Better collection filtering to prevent duplicate slugs on similar long slugs (#3, #6, thanks @torkiljohnsen, @brandonkboswell). -- `include_trashed` option to include soft-deleted models when checking for uniqueness (#8, thanks @slovenianGooner). -- Fixed "undefined variable reserved" error (#9, thanks @altrim). - - -## 1.0.1 - 02-Jul-2013 - -- `reserved` configuration option prevents generated slugs from being from a list of "reserved" names (e.g. colliding with routes, etc.) (#2, thanks @ceejayoz). - - -## 1.0.0 - 18-Jun-2013 - -- First non-beta release. -- `$sluggable` property of model switched back to static, maintains L3 compatability (thanks @orkhan). -- Updated type hinting in `Sluggable::make()` to better handle extended models (#1, thanks @altrim). - - -## 1.0.0-beta - 11-Jun-2013 - -- Initial beta release. diff --git a/vendor/cviebrock/eloquent-sluggable/CONTRIBUTING.md b/vendor/cviebrock/eloquent-sluggable/CONTRIBUTING.md deleted file mode 100644 index 2fdd1a75..00000000 --- a/vendor/cviebrock/eloquent-sluggable/CONTRIBUTING.md +++ /dev/null @@ -1,44 +0,0 @@ -# Contributing - -Contributions are **welcome** and will be fully **credited**. - -We accept contributions via pull requests via -[Github](https://github.com/cviebrock/eloquent-sluggable). - -1. Fork the project. -2. Create your bugfix/feature branch and write your (well-commented) code. -3. Create unit tests for your code: - - Run `composer install --dev` in the root directory to install required testing packages. - - Add your test classes/methods to the `/tests/` directory. - - Run `vendor/bin/phpunit` and make sure everything passes (new and old tests). -3. Commit your changes (and your tests) and push to your branch. -4. Create a new pull request against this package's `master` branch. - - -## Pull Requests - -- **Use the [PSR-2 Coding Standard](https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-2-coding-style-guide.md).** - The easiest way to apply the conventions is to install [PHP Code Sniffer](http://pear.php.net/package/PHP_CodeSniffer). - -- **Add tests!** Your pull request won't be accepted if it doesn't have tests. - -- **Document any change in behaviour.** Make sure the `README.md` and any other relevant - documentation are kept up-to-date. - -- **Consider our release cycle.** We try to follow [SemVer v2.0.0](http://semver.org/). - Randomly breaking public APIs is not an option. - -- **Create feature branches.** Don't ask us to pull from your master branch. - -- **One pull request per feature.** If you want to do more than one thing, send multiple pull requests. - -- **Send coherent history.** - Make sure each individual commit in your pull request is meaningful. - If you had to make multiple intermediate commits while developing, please - [squash them](http://www.git-scm.com/book/en/v2/Git-Tools-Rewriting-History#Changing-Multiple-Commit-Messages) - before submitting. - -- Don't worry about updating `CHANGELOG.md` or `.semver`. The package administrator - will handle updating those when new releases are created. - - -**Thank you!** diff --git a/vendor/cviebrock/eloquent-sluggable/LICENSE.md b/vendor/cviebrock/eloquent-sluggable/LICENSE.md deleted file mode 100644 index 0be146c1..00000000 --- a/vendor/cviebrock/eloquent-sluggable/LICENSE.md +++ /dev/null @@ -1,21 +0,0 @@ -# The MIT License (MIT) - -Copyright (c) 2013 Colin Viebrock - -> Permission is hereby granted, free of charge, to any person obtaining a copy -> of this software and associated documentation files (the "Software"), to deal -> in the Software without restriction, including without limitation the rights -> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -> copies of the Software, and to permit persons to whom the Software is -> furnished to do so, subject to the following conditions: -> -> The above copyright notice and this permission notice shall be included in all -> copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -> SOFTWARE. diff --git a/vendor/cviebrock/eloquent-sluggable/README.md b/vendor/cviebrock/eloquent-sluggable/README.md deleted file mode 100644 index 6790f253..00000000 --- a/vendor/cviebrock/eloquent-sluggable/README.md +++ /dev/null @@ -1,643 +0,0 @@ -# Eloquent-Sluggable - -Easy creation of slugs for your Eloquent models in Laravel. - -> **NOTE**: These instructions are for Laravel 5.6. If you are using Laravel 5.5, please -> see the [previous version docs](https://github.com/cviebrock/eloquent-sluggable/tree/4.4). - -[![Build Status](https://travis-ci.org/cviebrock/eloquent-sluggable.svg?branch=master&format=flat)](https://travis-ci.org/cviebrock/eloquent-sluggable) -[![Total Downloads](https://poser.pugx.org/cviebrock/eloquent-sluggable/downloads?format=flat)](https://packagist.org/packages/cviebrock/eloquent-sluggable) -[![Latest Stable Version](https://poser.pugx.org/cviebrock/eloquent-sluggable/v/stable?format=flat)](https://packagist.org/packages/cviebrock/eloquent-sluggable) -[![Latest Unstable Version](https://poser.pugx.org/cviebrock/eloquent-sluggable/v/unstable?format=flat)](https://packagist.org/packages/cviebrock/eloquent-sluggable) -[![Scrutinizer Code Quality](https://scrutinizer-ci.com/g/cviebrock/eloquent-sluggable/badges/quality-score.png?format=flat)](https://scrutinizer-ci.com/g/cviebrock/eloquent-sluggable) -[![SensioLabsInsight](https://insight.sensiolabs.com/projects/0b966e13-6a6a-4d17-bcea-61037f04cfe7/mini.png)](https://insight.sensiolabs.com/projects/0b966e13-6a6a-4d17-bcea-61037f04cfe7) -[![License: MIT](https://img.shields.io/badge/License-MIT-brightgreen.svg?style=flat-square)](https://opensource.org/licenses/MIT) - - -* [Background: What is a slug](#background-what-is-a-slug) -* [Installation](#installation) -* [Updating your Eloquent Models](#updating-your-eloquent-models) -* [Usage](#usage) -* [The SlugService Class](#the-slugservice-class) -* [Events](#events) -* [Configuration](#configuration) - * [includeTrashed](#includetrashed) - * [maxLength](#maxlength) - * [maxLengthKeepWords](#maxlengthkeepwords) - * [method](#method) - * [onUpdate](#onupdate) - * [reserved](#reserved) - * [separator](#separator) - * [source](#source) - * [unique](#unique) - * [uniqueSuffix](#uniquesuffix) -* [Extending Sluggable](#extending-sluggable) - * [customizeSlugEngine](#customizeslugengine) - * [scopeWithUniqueSlugConstraints](#scopewithuniqueslugconstraints) - * [scopeFindSimilarSlugs](#scopefindsimilarslugs) -* [SluggableScopeHelpers Trait](#sluggablescopehelpers-trait) -* [Route Model Binding](#route-model-binding) -* [Bugs, Suggestions and Contributions](#bugs-suggestions-and-contributions) -* [Copyright and License](#copyright-and-license) - - -## Background: What is a slug? - -A slug is a simplified version of a string, typically URL-friendly. The act of "slugging" -a string usually involves converting it to one case, and removing any non-URL-friendly -characters (spaces, accented letters, ampersands, etc.). The resulting string can -then be used as an identifier for a particular resource. - -For example, if you have a blog with posts, you could refer to each post via the ID: - - http://example.com/post/1 - http://example.com/post/2 - -... but that's not particularly friendly (especially for -[SEO](http://en.wikipedia.org/wiki/Search_engine_optimization)). You probably would -prefer to use the post's title in the URL, but that becomes a problem if your post -is titled "My Dinner With André & François", because this is pretty ugly too: - - http://example.com/post/My+Dinner+With+Andr%C3%A9+%26+Fran%C3%A7ois - -The solution is to create a slug for the title and use that instead. You might want -to use Laravel's built-in `Str::slug()` method to convert that title into something -friendlier: - - http://example.com/post/my-dinner-with-andre-francois - -A URL like that will make users happier (it's readable, easier to type, etc.). - -For more information, you might want to read -[this](http://en.wikipedia.org/wiki/Slug_(web_publishing)#Slug) description on Wikipedia. - -Slugs tend to be unique as well. So if you write another post with the same title, -you'd want to distinguish between them somehow, typically with an incremental counter -added to the end of the slug: - - http://example.com/post/my-dinner-with-andre-francois - http://example.com/post/my-dinner-with-andre-francois-1 - http://example.com/post/my-dinner-with-andre-francois-2 - -This keeps the URLs unique. - -The **Eloquent-Sluggable** package for Laravel 5 aims to handle all of this for you -automatically, with minimal configuration. - - -## Installation - -> **NOTE**: Depending on your version of Laravel, you should install a different -> version of the package: -> -> | Laravel Version | Package Version | -> |:---------------:|:---------------:| -> | 5.6 | 4.5.* | -> | 5.5 | 4.3.*|4.4.* | -> | 5.4 | 4.2.* | -> -> Older versions of Laravel can use older versions of the package, although they -> are no longer supported or maintained. See [CHANGELOG.md](CHANGELOG.md) and -> [UPGRADING.md](UPGRADING.md) for specifics, and be sure that you are reading -> the correct README.md for your version (Github displays the version in -> the _master_ branch by default, which might not be what you want). - - -1. Install the package via Composer: - - ```sh - $ composer require cviebrock/eloquent-sluggable:^4.5 - ``` - - The package will automatically register itself with Laravel 5.5. - -2. Optionally, publish the configuration file if you want to change any defaults: - - ```sh - php artisan vendor:publish --provider="Cviebrock\EloquentSluggable\ServiceProvider" - ``` - - -## Updating your Eloquent Models - -Your models should use the Sluggable trait, which has an abstract method `sluggable()` -that you need to define. This is where any model-specific configuration is set -(see [Configuration](#configuration) below for details): - -```php -use Cviebrock\EloquentSluggable\Sluggable; - -class Post extends Model -{ - use Sluggable; - - /** - * Return the sluggable configuration array for this model. - * - * @return array - */ - public function sluggable() - { - return [ - 'slug' => [ - 'source' => 'title' - ] - ]; - } -} -``` - -Of course, your model and database will need a column in which to store the slug. -You can use `slug` or any other appropriate name you want; your configuration array -will determine to which field the data will be stored. You will need to add the -column manually via your own migration. - -That's it ... your model is now "sluggable"! - - - -## Usage - -Saving a model is easy: - -```php -$post = new Post([ - 'title' => 'My Awesome Blog Post', -]); - -$post->save(); -``` - -And so is retrieving the slug: - -```php -echo $post->slug; -``` - -Also note that if you are replicating your models using Eloquent's `replicate()` method, -the package will automatically re-slug the model afterwards to ensure uniqueness. - -```php -$post = new Post([ - 'title' => 'My Awesome Blog Post', -]); - -$post->save(); -// $post->slug is "my-awesome-blog-post" - -$newPost = $post->replicate(); -// $newPost->slug is "my-awesome-blog-post-1" -``` - -Note that empty strings, non-strings or other "odd" source values will result in different slugs: - -| Source Value | Resulting Slug | -|--------------|-----------------------| -| string | string | -| empty string | _no slug will be set_ | -| `null` | _no slug will be set_ | -| `0` | `"0"` | -| `1` | `"1"` | -| `false` | `"0"` | -| `true` | `"1"` | - -(The above values would be subject to any unique or other checks as well.) - -## The SlugService Class - -All the logic to generate slugs is handled -by the `\Cviebrock\EloquentSluggable\Services\SlugService` class. - -Generally, you don't need to access this class directly, although there is one -static method that can be used to generate a slug for a given string without actually -creating or saving an associated model. - -```php -use \Cviebrock\EloquentSluggable\Services\SlugService; - -$slug = SlugService::createSlug(Post::class, 'slug', 'My First Post'); -``` - -This would be useful for Ajax-y controllers or the like, where you want to show a -user what the unique slug _would_ be for a given test input, before actually creating -a model. The first two arguments to the method are the model and slug field being -tested, and the third argument is the source string to use for testing the slug. - -You can also pass an optional array of configuration values as the fourth argument. -These will take precedence over the normal configuration values for the slug field -being tested. For example, if your model is configured to use unique slugs, but you -want to generate the "base" version of a slug for some reason, you could do: - -```php -$slug = SlugService::createSlug(Post::class, 'slug', 'My First Post', ['unique' => false]); -``` - - - -## Events - -> **NOTE:** Events should be working but are not fully tested yet. -> [Please help me out!](#bugs-suggestions-and-contributions) - -Sluggable models will fire two Eloquent model events: "slugging" and "slugged". - -The "slugging" event is fired just before the slug is generated. If the callback -from this event returns false, then the slugging is not performed. - -The "slugged" event is fired just after a slug is generated. It won't be called -in the case where the model doesn't need slugging (as determined by the `needsSlugging()` -method). - -You can hook into either of these events just like any other Eloquent model event: - -```php -Post::registerModelEvent('slugging', function($post) { - if ($post->someCondition()) { - // the model won't be slugged - return false; - } -}); - -Post::registerModelEvent('slugged', function($post) { - Log::info('Post slugged: ' . $post->getSlug()); -}); -``` - - - -## Configuration - -Configuration was designed to be as flexible as possible. You can set up defaults -for all of your Eloquent models, and then override those settings for individual -models. - -By default, global configuration is set in the `app/config/sluggable.php` file. -If a configuration isn't set, then the package defaults are used. -Here is an example configuration, with all the default settings shown: - -```php -return [ - 'source' => null, - 'maxLength' => null, - 'maxLengthKeepWords' => true, - 'method' => null, - 'separator' => '-', - 'unique' => true, - 'uniqueSuffix' => null, - 'includeTrashed' => false, - 'reserved' => null, - 'onUpdate' => false, -]; -``` - -For individual models, configuration is handled in the `sluggable()` method that you -need to implement. That method should return an indexed array where the keys represent -the fields where the slug value is stored and the values are the configuration for that -field. This means you can create multiple slugs for the same model, based on different -source strings and with different configuration options. - -```php -public function sluggable() -{ - return [ - 'title-slug' => [ - 'source' => 'title' - ], - 'author-slug' => [ - 'source' => ['author.lastname', 'author.firstname'], - 'separator' => '_' - ], - ]; -} -``` - - -### source - -This is the field or array of fields from which to build the slug. Each `$model->field` -is concatenated (with space separation) to build the sluggable string. These can be -model attributes (i.e. fields in the database), relationship attributes, or custom getters. - -To reference fields from related models, use dot-notation. For example, the -slug for the following book will be generated from its author's name and the book's title: - -```php -class Book extends Eloquent -{ - use Sluggable; - - protected $fillable = ['title']; - - public function sluggable() { - return [ - 'slug' => [ - 'source' => ['author.name', 'title'] - ] - ]; - } - - public function author() { - return $this->belongsTo(Author::class); - } -} -... -class Author extends Eloquent -{ - protected $fillable = ['name']; -} -``` - -An example using a custom getter: - -```php -class Person extends Eloquent -{ - use Sluggable; - - public function sluggable() - { - return [ - 'slug' => [ - 'source' => 'fullname' - ] - ]; - } - - public function getFullnameAttribute() { - return $this->firstname . ' ' . $this->lastname; - } -} -``` - -If `source` is empty, false or null, then the value of `$model->__toString()` is used -as the source for slug generation. - -### maxLength - -Setting this to a positive integer will ensure that your generated slugs are restricted -to a maximum length (e.g. to ensure that they fit within your database fields). By default, -this value is null and no limit is enforced. - -Note: If `unique` is enabled (which it is by default), and you anticipate having -several models with the same slug, then you should set this value to a few characters -less than the length of your database field. The reason why is that the class will -append "-1", "-2", "-3", etc., to subsequent models in order to maintain uniqueness. -These incremental extensions aren't included in part of the `maxLength` calculation. - -### maxLengthKeepWords - -If you are truncating your slugs with the `maxLength` setting, than you probably -want to ensure that your slugs don't get truncated in the middle of a word. For -example, if your source string is "My First Post", and your `maxLength` is 10, -the generated slug would end up being "my-first-p", which isn't ideal. - -By default, the `maxLengthKeepWords` value is set to true which would trim the -partial words off the end of the slug, resulting in "my-first" instead of "my-first-p". - -If you want to keep partial words, then set this configuration to false. - -### method - -Defines the method used to turn the sluggable string into a slug. There are three -possible options for this configuration: - -1. When `method` is null (the default setting), the package uses the default slugging -engine -- [cocur/slugify](https://github.com/cocur/slugify) -- to create the slug. - -2. When `method` is a callable, then that function or class method is used. The function/method -should expect two parameters: the string to process, and a separator string. -For example, to use Laravel's `Str::slug`, you could do: - -```php -'method' => ['Illuminate\\Support\\Str', 'slug'], -``` - -3. You can also define `method` as a closure (again, expecting two parameters): - -```php -'method' => function ($string, $separator) { - return strtolower(preg_replace('/[^a-z]+/i', $separator, $string)); -}, -``` - -Any other values for `method` will throw an exception. - -For more complex slugging requirements, see [Extending Sluggable](#extending-sluggable) below. - -### onUpdate - -By default, updating a model will not try and generate a new slug value. It is assumed -that once your slug is generated, you won't want it to change (this may be especially -true if you are using slugs for URLs and don't want to mess up your SEO mojo). - -If you want to regenerate one or more of your model's slug fields, you can set those -fields to null or an empty string before the update: - -```php -$post->slug = null; -$post->update(['title' => 'My New Title']); -``` - -If this is the behaviour you want every time you update a model, then set the `onUpdate` -option to true. - -### separator - -This defines the separator used when building a slug, and is passed to the `method` -defined above. The default value is a hyphen. - -### unique - -This is a boolean defining whether slugs should be unique among all models of the given type. -For example, if you have two blog posts and both are called "My Blog Post", then they -will both sluggify to "my-blog-post" if `unique` is false. This could be a problem, e.g. -if you use the slug in URLs. - -By setting `unique` to true, then the second Post model will sluggify to "my-blog-post-1". -If there is a third post with the same title, it will sluggify to "my-blog-post-2" -and so on. Each subsequent model will get an incremental value appended to the end -of the slug, ensuring uniqueness. - -### uniqueSuffix - -If you want to use a different way of identifying uniqueness (other than auto-incrementing -integers), you can set the `uniqueSuffix` configuration to a function or callable that -generates the "unique" values for you. - -The function should take three parameters: the base slug (i.e. the non-unique slug), the -separator string, and an `\Illuminate\Support\Collection` of all the other slug strings -that start with the same slug. You can then do whatever you want to create a new suffix -that hasn't been used by any of the slugs in the collection. For example, if you wanted -to use letters instead of numbers as a suffix, this is one way to achieve that: - -```php -'uniqueSuffix' => function ($slug, $separator, Collection $list) { - $size = count($list); - - return chr($size + 96); -} -``` - -### includeTrashed - -Setting this to `true` will also check deleted models when trying to enforce uniqueness. -This only affects Eloquent models that are using the -[softDelete](http://laravel.com/docs/eloquent#soft-deleting) feature. Default is `false`, -so soft-deleted models don't count when checking for uniqueness. - -### reserved - -An array of values that will never be allowed as slugs, e.g. to prevent collisions -with existing routes or controller methods, etc.. This can be an array, or a closure -that returns an array. Defaults to `null`: no reserved slug names. - - - -## Short Configuration - -The package supports a really short configuration syntax, if you are truly lazy: - -```php -public function sluggable() { - return [ - 'slug' - ]; -} -``` - -This will use all the default options from `app/config/sluggable.php`, use the model's -`__toString()` method as the source, and store the slug in the `slug` field. - - - -## Extending Sluggable - -Sometimes the configuration options aren't sufficient for complex needs (e.g. maybe -the uniqueness test needs to take other attributes into account). - -In instances like these, the package offers hooks into the slugging workflow where you -can use your own functions, either on a per-model basis, or in your own trait that extends -the package's trait. - -### customizeSlugEngine - -```php -/** - * @param \Cocur\Slugify\Slugify $engine - * @param string $attribute - * @return \Cocur\Slugify\Slugify - */ -public function customizeSlugEngine(Slugify $engine, $attribute) -{ - ... -} -``` - -If this method exists on your model, the Slugify engine can be customized before slugging occurs. -This might be where you change the character mappings that are used, or alter language files, etc.. - -You can customize the engine on a per-model and per-attribute basis (maybe your model has -two slug fields, and one of them needs customization). - -Take a look at `tests/Models/PostWithCustomEngine.php` for an example. - -### scopeWithUniqueSlugConstraints - -```php -/** - * @param \Illuminate\Database\Eloquent\Builder $query - * @param \Illuminate\Database\Eloquent\Model $model - * @param string $attribute - * @param array $config - * @param string $slug - * @return \Illuminate\Database\Eloquent\Builder - */ -public function scopeWithUniqueSlugConstraints(Builder $query, Model $model, $attribute, $config, $slug) -{ - ... -} -``` - -If this scope exists on your model, then it will also be applied to the query used to determine -if a given slug is unique. The arguments passed to the scope are: - -* `$model` -- the object being slugged -* `$attribute` -- the slug field being generated, -* `$config` -- the configuration array for the given model and attribute -* `$slug` -- the "base" slug (before any unique suffixes are applied) - -Feel free to use these values anyway you like in your query scope. As an example, look at -`tests/Models/PostWithUniqueSlugConstraints.php` where the slug is generated for a post from it's title, but -the slug is scoped to the author. So Bob can have a post with the same title as Pam's post, but both -will have the same slug. - -### scopeFindSimilarSlugs - -```php -/** - * Query scope for finding "similar" slugs, used to determine uniqueness. - * - * @param \Illuminate\Database\Eloquent\Builder $query - * @param string $attribute - * @param array $config - * @param string $slug - * @return \Illuminate\Database\Eloquent\Builder - */ -public function scopeFindSimilarSlugs(Builder $query, $attribute, $config, $slug) -{ - ... -} -``` - -This is the default scope for finding "similar" slugs for a model. Basically, the package looks for existing -slugs that are the same as the `$slug` argument, or that start with `$slug` plus the separator string. -The resulting collection is what is passed to the `uniqueSuffix` handler. - -Generally, this query scope (which is defined in the Sluggable trait) should be left alone. -However, you are free to overload it in your models. - - - -## SluggableScopeHelpers Trait - -Adding the optional `SluggableScopeHelpers` trait to your model allows you to work with models -and their slugs. For example: - -```php -$post = Post::whereSlug($slugString)->get(); - -$post = Post::findBySlug($slugString); - -$post = Post::findBySlugOrFail($slugString); -``` - -Because models can have more than one slug, this requires a bit more configuration. -See [SCOPE-HELPERS.md](SCOPE-HELPERS.md) for all the details. - - - -## Route Model Binding - -See [ROUTE-MODEL-BINDING.md](ROUTE-MODEL-BINDING.md) for details. - - - -## Bugs, Suggestions and Contributions - -Thanks to [everyone](https://github.com/cviebrock/eloquent-taggable/graphs/contributors) -who has contributed to this project! - -Please use [Github](https://github.com/cviebrock/eloquent-sluggable) for reporting bugs, -and making comments or suggestions. - -See [CONTRIBUTING.md](CONTRIBUTING.md) for how to contribute changes. - - - -## Copyright and License - -[eloquent-sluggable](https://github.com/cviebrock/eloquent-sluggable) -was written by [Colin Viebrock](http://viebrock.ca) and is released under the -[MIT License](LICENSE.md). - -Copyright (c) 2013 Colin Viebrock diff --git a/vendor/cviebrock/eloquent-sluggable/ROUTE-MODEL-BINDING.md b/vendor/cviebrock/eloquent-sluggable/ROUTE-MODEL-BINDING.md deleted file mode 100644 index ce06ce19..00000000 --- a/vendor/cviebrock/eloquent-sluggable/ROUTE-MODEL-BINDING.md +++ /dev/null @@ -1,73 +0,0 @@ -# Route Model Binding and Eloquent-Sluggable - -Route Model Binding is easy to implement with only minor configuration to your models. - - -## Implicit Binding - -Implicit binding requires adding a `getRouteKeyName()` method to your model that returns the name -of the slug field: - -```php -use Cviebrock\EloquentSluggable\Sluggable; -use Cviebrock\EloquentSluggable\SluggableScopeHelpers; -use Illuminate\Database\Eloquent\Model; - -class Post extends Model -{ - use Sluggable; - - public function sluggable() { - return [ - 'slug' => [ - 'source' => 'title', - ] - ]; - } - - /** - * Get the route key for the model. - * - * @return string - */ - public function getRouteKeyName() - { - return 'slug'; - } - -} -``` - -From there, you can set up your routes as described in the Eloquent documentation: - -```php -Route::get('api/posts/{post}', function (App\Post $post) { - return $post->title; -}); -``` - -In this example, since the Eloquent type-hinted `$post` variable defined on the route -matches the {post} segment in the route's URI, Laravel will automatically inject the -model instance that has a slug matching the corresponding value from the request URI. - -Further, if you are using the [SluggableScopeHelpers](SCOPE-HELPERS.md) trait, you can bind -the default slug to the route parameter with: - -```php -public function getRouteKeyName() -{ - return $this->getSlugKeyName(); -} -``` - - -## Explicit Binding - -You can also use the `RouteServiceProvider::boot` method as described in the -[Laravel Documentation](https://laravel.com/docs/routing#route-model-binding) to -handle explicit route model binding. - - -- - - - -Copyright (c) 2013 Colin Viebrock diff --git a/vendor/cviebrock/eloquent-sluggable/SCOPE-HELPERS.md b/vendor/cviebrock/eloquent-sluggable/SCOPE-HELPERS.md deleted file mode 100644 index 5512cdb7..00000000 --- a/vendor/cviebrock/eloquent-sluggable/SCOPE-HELPERS.md +++ /dev/null @@ -1,62 +0,0 @@ -# SluggableScopeHelpers Trait - -The `SluggableScopeHelpers` trait adds a query scope and other methods to make finding models with a -matching slug as easy as: - -```php -$post = Post::findBySlug($slugString); -$post = Post::findBySlugOrFail($slugString); -``` - -These two methods have the same signature and functionality as Eloquent's `find()` and `findOrFail()` methods -except that they use the slug field instead of the primary key. - -The helper trait also adds a query scope to help limit searches to a particular slug: - -```php -$post = Post::where('author_id', '=', 3) - ->whereSlug($slug) - ->get(); -``` - -By default, the trait looks at your `sluggable()` method and uses the first slug that's defined in the configuration -array for the helper scopes and methods. If your model has more than one slugged field, you will either need to -put the field to be used for scopes first, or define an additional property on your model which indicates which -slug is the "primary" one: - -```php -use Cviebrock\EloquentSluggable\Sluggable; -use Cviebrock\EloquentSluggable\SluggableScopeHelpers; -use Illuminate\Database\Eloquent\Model; - -class Post extends Model -{ - use Sluggable; - use SluggableScopeHelpers; - - protected $slugKeyName = 'alternate'; - - /** - * Sluggable configuration. - * - * @var array - */ - public function sluggable() { - return [ - 'slug' => [ - 'source' => 'title', - ], - 'alternate' => [ - 'source' => 'subtitle', - ] - ]; - } -} -``` - -In the above case, `Post::findBySlugOrFail($slug)` is the equivalent to `Post::where('alternate,'=',$slug)->firstOrFail()`. - - -- - - - -Copyright (c) 2013 Colin Viebrock diff --git a/vendor/cviebrock/eloquent-sluggable/TODO.md b/vendor/cviebrock/eloquent-sluggable/TODO.md deleted file mode 100644 index adbc1d87..00000000 --- a/vendor/cviebrock/eloquent-sluggable/TODO.md +++ /dev/null @@ -1,21 +0,0 @@ -# Todos - -- [x] Write tests - - [ ] Test events -- [x] Better docblock and inline-commenting -- [x] Make code style consistent -- [x] Drop `develop` branch and just have `master` and tagged releases -- [x] Add check that model uses softDelete trait when using `with_trashed` (see issue #47) - -## Planned changes (possibly BC-breaking) for next major version - 4.0 - -- [x] switch default slugging method from `Str::slug` to an external package/class that can handle transliteration of other languages (e.g. https://github.com/cocur/slugify) - - [x] provide interface into `cocur/slugify` to allow for custom rules, etc. -- [X] convert `findBySlug` into a scope (as suggested by @unitedworks in #40) -- [x] more configurable `unique` options (see issue #53) -- [x] refactor, or remove, caching code (it wasn't really thought out well enough, IMO) -- [x] add events, e.g. `eloquent.slug.created`, `eloquent.slug.changed`, etc. (as suggested in #96 and #101) - -## Planned changes (possibly BC-breaking) for next major version - 4.3 - -- [x] remove unused `$model` argument from `scopeFindSimilarSlugs` diff --git a/vendor/cviebrock/eloquent-sluggable/UPGRADING.md b/vendor/cviebrock/eloquent-sluggable/UPGRADING.md deleted file mode 100644 index 53f3e6a7..00000000 --- a/vendor/cviebrock/eloquent-sluggable/UPGRADING.md +++ /dev/null @@ -1,128 +0,0 @@ -# Upgrading - -## Upgrading from 4.2 to 4.3 - -* The signature for `scopeFindSimilarSlugs()` dropped the unused `$model` parameter: - ```diff - - public function scopeFindSimilarSlugs(Builder $query, Model $model, $attribute, $config, $slug) - + public function scopeFindSimilarSlugs(Builder $query, $attribute, $config, $slug) - ``` - If you use this scope in your application, then remove the first argument passed to the scope. - - -- - - - -## Upgrading from 3.x to 4.x - -### Configuration Changes - -The configuration array has changed slightly between versions: - -* In your `app/config/sluggable.php` configuration file, remove the `save_to` - parameter as it is no longer used. Rename `build_from` to `source`, and convert the other - parameters from snake_case to lower camelCase (e.g. `include_trashed` -> `includeTrashed`). -* Your models no longer need to implement `Cviebrock\EloquentSluggable\SluggableInterface`. -* Your models should now use the trait `Cviebrock\EloquentSluggable\Sluggable` instead of - `Cviebrock\EloquentSluggable\SluggableTrait`, which no longer exists. -* Per-model configuration has been moved from a protect property into a protected method, and - the configuration array is now keyed with the attribute field where the slug is stored (i.e. the - previous value of the `save_to` configuration. -* The service provider name has changed, so update the entry in your project's `config/app.php` - from `Cviebrock\EloquentSluggable\SluggableServiceProvider::class` to - `Cviebrock\EloquentSluggable\ServiceProvider::class`. - -#### Version 3.x Configuration Example: - -```php -use Cviebrock\EloquentSluggable\SluggableInterface; -use Cviebrock\EloquentSluggable\SluggableTrait; -use Illuminate\Database\Eloquent\Model; - -class Post extends Model implements SluggableInterface -{ - use SluggableTrait; - - /** - * Sluggable configuration. - * - * @var array - */ - protected $sluggable = [ - 'build_from' => 'title', - 'save_to' => 'slug', - 'separator' => '-', - 'include_trashed' => true, - ]; -} -``` - -#### Converted Version 4.x Example: - -```php -use Cviebrock\EloquentSluggable\Sluggable; -use Illuminate\Database\Eloquent\Model; - -class Post extends Model -{ - use Sluggable; - - /** - * Sluggable configuration. - * - * @var array - */ - public function sluggable() { - return [ - 'slug' => [ - 'source' => 'title', - 'separator' => '-', - 'includeTrashed' => true, - ] - ]; - } -} -``` - -### Other Changes - -#### Artisan Command - -The `php artisan sluggable:table` command has been deprecated so you will need to make and run your own -migrations if you need to add columns to your database tables to store slug values. - -#### Route Model Binding - -Route Model Binding has been removed from the package. You are encouraged to handle this yourself -in the model's `getRouteKeyName` method, or in a `RootServiceProvider::boot` method as described in -the [Laravel Documentation](https://laravel.com/docs/5.2/routing#route-model-binding). - -See [ROUTE-MODEL-BINDING.md](ROUTE-MODEL-BINDING.md) for details. - -#### Query Scopes - -Because the package now supports multiple slugs per model, the `findBySlug()` and other `findBy*` -methods have been removed from the package by default, as has the `whereSlug()` query scope. You should -just update your code to use standard Eloquent methods to find your models, specifying which -fields to search by: - -```php -// OLD -$posts = Post::whereSlug($input)->get(); -$post = Post::findBySlug($input); -$post = Post::findBySlugOrFail($input); -$post = Post::findBySlugOrIdOrFail($input); - -// NEW -$posts = Post::where('slug',$input)->get(); -$post = Post::where('slug', $input)->first(); -$post = Post::where('slug', $input)->firstOrFail(); -$post = Post::where('slug', $input)->first() ?: Post::findOrFail((int)$input); -``` - -Alternatively, your model can use the `SluggableScopeHelpers` trait. -See [SCOPE-HELPERS.md](SCOPE-HELPERS.md) for details. - - -- - - - -Copyright (c) 2013 Colin Viebrock diff --git a/vendor/cviebrock/eloquent-sluggable/composer.json b/vendor/cviebrock/eloquent-sluggable/composer.json deleted file mode 100644 index 3e711fd5..00000000 --- a/vendor/cviebrock/eloquent-sluggable/composer.json +++ /dev/null @@ -1,56 +0,0 @@ -{ - "name": "cviebrock/eloquent-sluggable", - "description": "Easy creation of slugs for your Eloquent models in Laravel 5.", - "keywords": [ - "eloquent-sluggable", - "eloquent", - "sluggable", - "laravel", - "lumen", - "slug" - ], - "homepage": "https://github.com/cviebrock/eloquent-sluggable", - "license": "MIT", - "authors": [ - { - "name": "Colin Viebrock", - "email": "colin@viebrock.ca" - } - ], - "require": { - "php": "^7.0", - "illuminate/config": "~5.6.0", - "illuminate/database": "~5.6.0", - "illuminate/support": "~5.6.0", - "cocur/slugify": "^3.0" - }, - "require-dev": { - "mockery/mockery": "^0.9.4", - "orchestra/database": "~3.6.0", - "orchestra/testbench": "~3.6.0", - "phpunit/phpunit": "~7.0", - "codedungeon/phpunit-result-printer": "^0.6.0" - }, - "autoload": { - "psr-4": { - "Cviebrock\\EloquentSluggable\\": "src" - } - }, - "autoload-dev": { - "psr-4": { - "Cviebrock\\EloquentSluggable\\Tests\\": "tests" - } - }, - "scripts": { - "test": "./vendor/bin/phpunit" - }, - "extra": { - "laravel": { - "providers": [ - "Cviebrock\\EloquentSluggable\\ServiceProvider" - ] - } - }, - "minimum-stability": "dev", - "prefer-stable": true -} diff --git a/vendor/cviebrock/eloquent-sluggable/phpunit.xml b/vendor/cviebrock/eloquent-sluggable/phpunit.xml deleted file mode 100644 index 9653c8d6..00000000 --- a/vendor/cviebrock/eloquent-sluggable/phpunit.xml +++ /dev/null @@ -1,29 +0,0 @@ - - - - - ./tests/ - - - - - src/ - - - - - - - - - diff --git a/vendor/cviebrock/eloquent-sluggable/resources/config/sluggable.php b/vendor/cviebrock/eloquent-sluggable/resources/config/sluggable.php deleted file mode 100644 index dcbb73b9..00000000 --- a/vendor/cviebrock/eloquent-sluggable/resources/config/sluggable.php +++ /dev/null @@ -1,141 +0,0 @@ -name; - * - * Or it can be an array of fields, like ("name", "company"), which builds a slug from: - * - * $model->name . ' ' . $model->company; - * - * If you've defined custom getters in your model, you can use those too, - * since Eloquent will call them when you request a custom attribute. - * - * Defaults to null, which uses the toString() method on your model. - */ - - 'source' => null, - - /** - * The maximum length of a generated slug. Defaults to "null", which means - * no length restrictions are enforced. Set it to a positive integer if you - * want to make sure your slugs aren't too long. - */ - - 'maxLength' => null, - - /** - * If you are setting a maximum length on your slugs, you may not want the - * truncated string to split a word in half. The default setting of "true" - * will ensure this, e.g. with a maxLength of 12: - * - * "my source string" -> "my-source" - * - * Setting it to "false" will simply truncate the generated slug at the - * desired length, e.g.: - * - * "my source string" -> "my-source-st" - */ - - 'maxLengthKeepWords' => true, - - /** - * If left to "null", then use the cocur/slugify package to generate the slug - * (with the separator defined below). - * - * Set this to a closure that accepts two parameters (string and separator) - * to define a custom slugger. e.g.: - * - * 'method' => function( $string, $sep ) { - * return preg_replace('/[^a-z]+/i', $sep, $string); - * }, - * - * Otherwise, this will be treated as a callable to be used. e.g.: - * - * 'method' => array('Str','slug'), - */ - - 'method' => null, - - /** - * Separator to use when generating slugs. Defaults to a hyphen. - */ - - 'separator' => '-', - - /** - * Enforce uniqueness of slugs? Defaults to true. - * If a generated slug already exists, an incremental numeric - * value will be appended to the end until a unique slug is found. e.g.: - * - * my-slug - * my-slug-1 - * my-slug-2 - */ - - 'unique' => true, - - /** - * If you are enforcing unique slugs, the default is to add an - * incremental value to the end of the base slug. Alternatively, you - * can change this value to a closure that accepts three parameters: - * the base slug, the separator, and a Collection of the other - * "similar" slugs. The closure should return the new unique - * suffix to append to the slug. - */ - - 'uniqueSuffix' => null, - - /** - * Should we include the trashed items when generating a unique slug? - * This only applies if the softDelete property is set for the Eloquent model. - * If set to "false", then a new slug could duplicate one that exists on a trashed model. - * If set to "true", then uniqueness is enforced across trashed and existing models. - */ - - 'includeTrashed' => false, - - /** - * An array of slug names that can never be used for this model, - * e.g. to prevent collisions with existing routes or controller methods, etc.. - * Defaults to null (i.e. no reserved names). - * Can be a static array, e.g.: - * - * 'reserved' => array('add', 'delete'), - * - * or a closure that returns an array of reserved names. - * If using a closure, it will accept one parameter: the model itself, and should - * return an array of reserved names, or null. e.g. - * - * 'reserved' => function( Model $model) { - * return $model->some_method_that_returns_an_array(); - * } - * - * In the case of a slug that gets generated with one of these reserved names, - * we will do: - * - * $slug .= $separator + "1" - * - * and continue from there. - */ - - 'reserved' => null, - - /** - * Whether to update the slug value when a model is being - * re-saved (i.e. already exists). Defaults to false, which - * means slugs are not updated. - * - * Be careful! If you are using slugs to generate URLs, then - * updating your slug automatically might change your URLs which - * is probably not a good idea from an SEO point of view. - * Only set this to true if you understand the possible consequences. - */ - - 'onUpdate' => false, - -]; diff --git a/vendor/cviebrock/eloquent-sluggable/src/ServiceProvider.php b/vendor/cviebrock/eloquent-sluggable/src/ServiceProvider.php deleted file mode 100644 index 40159b32..00000000 --- a/vendor/cviebrock/eloquent-sluggable/src/ServiceProvider.php +++ /dev/null @@ -1,46 +0,0 @@ -setUpConfig(); - } - - /** - * Register the application services. - */ - public function register() - { - $this->app->singleton(SluggableObserver::class, function($app) { - return new SluggableObserver(new SlugService(), $app['events']); - }); - } - - protected function setUpConfig() - { - $source = dirname(__DIR__) . '/resources/config/sluggable.php'; - - if ($this->app instanceof LaravelApplication) { - $this->publishes([$source => config_path('sluggable.php')], 'config'); - } elseif ($this->app instanceof LumenApplication) { - $this->app->configure('sluggable'); - } - - $this->mergeConfigFrom($source, 'sluggable'); - } -} diff --git a/vendor/cviebrock/eloquent-sluggable/src/Services/SlugService.php b/vendor/cviebrock/eloquent-sluggable/src/Services/SlugService.php deleted file mode 100644 index 5ab483f0..00000000 --- a/vendor/cviebrock/eloquent-sluggable/src/Services/SlugService.php +++ /dev/null @@ -1,435 +0,0 @@ -setModel($model); - - $attributes = []; - - foreach ($this->model->sluggable() as $attribute => $config) { - if (is_numeric($attribute)) { - $attribute = $config; - $config = $this->getConfiguration(); - } else { - $config = $this->getConfiguration($config); - } - - $slug = $this->buildSlug($attribute, $config, $force); - - $this->model->setAttribute($attribute, $slug); - - $attributes[] = $attribute; - } - - return $this->model->isDirty($attributes); - } - - /** - * Get the sluggable configuration for the current model, - * including default values where not specified. - * - * @param array $overrides - * - * @return array - */ - public function getConfiguration(array $overrides = []): array - { - $defaultConfig = config('sluggable', []); - - return array_merge($defaultConfig, $overrides); - } - - /** - * Build the slug for the given attribute of the current model. - * - * @param string $attribute - * @param array $config - * @param bool $force - * - * @return null|string - */ - public function buildSlug(string $attribute, array $config, bool $force = null) - { - $slug = $this->model->getAttribute($attribute); - - if ($force || $this->needsSlugging($attribute, $config)) { - $source = $this->getSlugSource($config['source']); - - if ($source || is_numeric($source)) { - $slug = $this->generateSlug($source, $config, $attribute); - $slug = $this->validateSlug($slug, $config, $attribute); - $slug = $this->makeSlugUnique($slug, $config, $attribute); - } - } - - return $slug; - } - - /** - * Determines whether the model needs slugging. - * - * @param string $attribute - * @param array $config - * - * @return bool - */ - protected function needsSlugging(string $attribute, array $config): bool - { - if ( - $config['onUpdate'] === true || - empty($this->model->getAttributeValue($attribute)) - ) { - return true; - } - - if ($this->model->isDirty($attribute)) { - return false; - } - - return (!$this->model->exists); - } - - /** - * Get the source string for the slug. - * - * @param mixed $from - * - * @return string - */ - protected function getSlugSource($from): string - { - if (is_null($from)) { - return $this->model->__toString(); - } - - $sourceStrings = array_map(function($key) { - $value = data_get($this->model, $key); - if (is_bool($value)) { - $value = (int) $value; - } - - return $value; - }, (array) $from); - - return implode($sourceStrings, ' '); - } - - /** - * Generate a slug from the given source string. - * - * @param string $source - * @param array $config - * @param string $attribute - * - * @return string - * @throws \UnexpectedValueException - */ - protected function generateSlug(string $source, array $config, string $attribute): string - { - $separator = $config['separator']; - $method = $config['method']; - $maxLength = $config['maxLength']; - $maxLengthKeepWords = $config['maxLengthKeepWords']; - - if ($method === null) { - $slugEngine = $this->getSlugEngine($attribute); - $slug = $slugEngine->slugify($source, $separator); - } elseif (is_callable($method)) { - $slug = call_user_func($method, $source, $separator); - } else { - throw new \UnexpectedValueException('Sluggable "method" for ' . get_class($this->model) . ':' . $attribute . ' is not callable nor null.'); - } - - $len = mb_strlen($slug); - if (is_string($slug) && $maxLength && $len > $maxLength) { - $reverseOffset = $maxLength - $len; - $lastSeparatorPos = mb_strrpos($slug, $separator, $reverseOffset); - if ($maxLengthKeepWords && $lastSeparatorPos !== false) { - $slug = mb_substr($slug, 0, $lastSeparatorPos); - } else { - $slug = trim(mb_substr($slug, 0, $maxLength), $separator); - } - } - - return $slug; - } - - /** - * Return a class that has a `slugify()` method, used to convert - * strings into slugs. - * - * @param string $attribute - * - * @return \Cocur\Slugify\Slugify - */ - protected function getSlugEngine(string $attribute): Slugify - { - static $slugEngines = []; - - $key = get_class($this->model) . '.' . $attribute; - - if (!array_key_exists($key, $slugEngines)) { - $engine = new Slugify(); - if (method_exists($this->model, 'customizeSlugEngine')) { - $engine = $this->model->customizeSlugEngine($engine, $attribute); - } - - $slugEngines[$key] = $engine; - } - - return $slugEngines[$key]; - } - - /** - * Checks that the given slug is not a reserved word. - * - * @param string $slug - * @param array $config - * @param string $attribute - * - * @return string - * @throws \UnexpectedValueException - */ - protected function validateSlug(string $slug, array $config, string $attribute): string - { - $separator = $config['separator']; - $reserved = $config['reserved']; - - if ($reserved === null) { - return $slug; - } - - // check for reserved names - if ($reserved instanceof \Closure) { - $reserved = $reserved($this->model); - } - - if (is_array($reserved)) { - if (in_array($slug, $reserved)) { - $method = $config['uniqueSuffix']; - if ($method === null) { - $suffix = $this->generateSuffix($slug, $separator, collect($reserved)); - } elseif (is_callable($method)) { - $suffix = $method($slug, $separator, collect($reserved)); - } else { - throw new \UnexpectedValueException('Sluggable "uniqueSuffix" for ' . get_class($this->model) . ':' . $attribute . ' is not null, or a closure.'); - } - - return $slug . $separator . $suffix; - } - - return $slug; - } - - throw new \UnexpectedValueException('Sluggable "reserved" for ' . get_class($this->model) . ':' . $attribute . ' is not null, an array, or a closure that returns null/array.'); - } - - /** - * Checks if the slug should be unique, and makes it so if needed. - * - * @param string $slug - * @param array $config - * @param string $attribute - * - * @return string - * @throws \UnexpectedValueException - */ - protected function makeSlugUnique(string $slug, array $config, string $attribute): string - { - if (!$config['unique']) { - return $slug; - } - - $separator = $config['separator']; - - // find all models where the slug is like the current one - $list = $this->getExistingSlugs($slug, $attribute, $config); - - // if ... - // a) the list is empty, or - // b) our slug isn't in the list - // ... we are okay - if ( - $list->count() === 0 || - $list->contains($slug) === false - ) { - return $slug; - } - - // if our slug is in the list, but - // a) it's for our model, or - // b) it looks like a suffixed version of our slug - // ... we are also okay (use the current slug) - if ($list->has($this->model->getKey())) { - $currentSlug = $list->get($this->model->getKey()); - - if ( - $currentSlug === $slug || - strpos($currentSlug, $slug) === 0 - ) { - return $currentSlug; - } - } - - $method = $config['uniqueSuffix']; - if ($method === null) { - $suffix = $this->generateSuffix($slug, $separator, $list); - } elseif (is_callable($method)) { - $suffix = $method($slug, $separator, $list); - } else { - throw new \UnexpectedValueException('Sluggable "uniqueSuffix" for ' . get_class($this->model) . ':' . $attribute . ' is not null, or a closure.'); - } - - return $slug . $separator . $suffix; - } - - /** - * Generate a unique suffix for the given slug (and list of existing, "similar" slugs. - * - * @param string $slug - * @param string $separator - * @param \Illuminate\Support\Collection $list - * - * @return string - */ - protected function generateSuffix(string $slug, string $separator, Collection $list): string - { - $len = strlen($slug . $separator); - - // If the slug already exists, but belongs to - // our model, return the current suffix. - if ($list->search($slug) === $this->model->getKey()) { - $suffix = explode($separator, $slug); - - return end($suffix); - } - - $list->transform(function($value, $key) use ($len) { - return (int) substr($value, $len); - }); - - // find the highest value and return one greater. - return $list->max() + 1; - } - - /** - * Get all existing slugs that are similar to the given slug. - * - * @param string $slug - * @param string $attribute - * @param array $config - * - * @return \Illuminate\Support\Collection - */ - protected function getExistingSlugs(string $slug, string $attribute, array $config): Collection - { - $includeTrashed = $config['includeTrashed']; - - $query = $this->model->newQuery() - ->findSimilarSlugs($attribute, $config, $slug); - - // use the model scope to find similar slugs - if (method_exists($this->model, 'scopeWithUniqueSlugConstraints')) { - $query->withUniqueSlugConstraints($this->model, $attribute, $config, $slug); - } - - // include trashed models if required - if ($includeTrashed && $this->usesSoftDeleting()) { - $query->withTrashed(); - } - - // get the list of all matching slugs - $results = $query->select([$attribute, $this->model->getQualifiedKeyName()]) - ->get() - ->toBase(); - - // key the results and return - return $results->pluck($attribute, $this->model->getKeyName()); - } - - /** - * Does this model use softDeleting? - * - * @return bool - */ - protected function usesSoftDeleting(): bool - { - return method_exists($this->model, 'bootSoftDeletes'); - } - - /** - * Generate a unique slug for a given string. - * - * @param \Illuminate\Database\Eloquent\Model|string $model - * @param string $attribute - * @param string $fromString - * @param array|null $config - * - * @return string - * @throws \InvalidArgumentException - * @throws \UnexpectedValueException - */ - public static function createSlug($model, string $attribute, string $fromString, array $config = null): string - { - if (is_string($model)) { - $model = new $model; - } - /** @var static $instance */ - $instance = (new static())->setModel($model); - - if ($config === null) { - $config = array_get($model->sluggable(), $attribute); - if ($config === null) { - $modelClass = get_class($model); - throw new \InvalidArgumentException("Argument 2 passed to SlugService::createSlug ['{$attribute}'] is not a valid slug attribute for model {$modelClass}."); - } - } elseif (!is_array($config)) { - throw new \UnexpectedValueException('SlugService::createSlug expects an array or null as the fourth argument; ' . gettype($config) . ' given.'); - } - - $config = $instance->getConfiguration($config); - - $slug = $instance->generateSlug($fromString, $config, $attribute); - $slug = $instance->validateSlug($slug, $config, $attribute); - $slug = $instance->makeSlugUnique($slug, $config, $attribute); - - return $slug; - } - - /** - * @param \Illuminate\Database\Eloquent\Model $model - * - * @return $this - */ - public function setModel(Model $model) - { - $this->model = $model; - - return $this; - } -} diff --git a/vendor/cviebrock/eloquent-sluggable/src/Sluggable.php b/vendor/cviebrock/eloquent-sluggable/src/Sluggable.php deleted file mode 100644 index 1a72f30c..00000000 --- a/vendor/cviebrock/eloquent-sluggable/src/Sluggable.php +++ /dev/null @@ -1,83 +0,0 @@ -slug($instance, true); - - return $instance; - } - - /** - * Query scope for finding "similar" slugs, used to determine uniqueness. - * - * @param \Illuminate\Database\Eloquent\Builder $query - * @param string $attribute - * @param array $config - * @param string $slug - * @return \Illuminate\Database\Eloquent\Builder - */ - public function scopeFindSimilarSlugs(Builder $query, string $attribute, array $config, string $slug): Builder - { - $separator = $config['separator']; - - return $query->where(function(Builder $q) use ($attribute, $slug, $separator) { - $q->where($attribute, '=', $slug) - ->orWhere($attribute, 'LIKE', $slug . $separator . '%'); - }); - } - - /** - * Return the sluggable configuration array for this model. - * - * @return array - */ - abstract public function sluggable(): array; -} diff --git a/vendor/cviebrock/eloquent-sluggable/src/SluggableObserver.php b/vendor/cviebrock/eloquent-sluggable/src/SluggableObserver.php deleted file mode 100644 index 1f403bcb..00000000 --- a/vendor/cviebrock/eloquent-sluggable/src/SluggableObserver.php +++ /dev/null @@ -1,84 +0,0 @@ -slugService = $slugService; - $this->events = $events; - } - - /** - * @param \Illuminate\Database\Eloquent\Model $model - * @return boolean|null - */ - public function saving(Model $model) - { - return $this->generateSlug($model, 'saving'); - } - - /** - * @param \Illuminate\Database\Eloquent\Model $model - * @param string $event - * @return boolean|void - */ - protected function generateSlug(Model $model, string $event) - { - // If the "slugging" event returns a value, abort - if ($this->fireSluggingEvent($model, $event) !== null) { - return; - } - $wasSlugged = $this->slugService->slug($model); - - $this->fireSluggedEvent($model, $wasSlugged); - } - - /** - * Fire the namespaced validating event. - * - * @param \Illuminate\Database\Eloquent\Model $model - * @param string $event - * @return mixed - */ - protected function fireSluggingEvent(Model $model, string $event) - { - return $this->events->until('eloquent.slugging: ' . get_class($model), [$model, $event]); - } - - /** - * Fire the namespaced post-validation event. - * - * @param \Illuminate\Database\Eloquent\Model $model - * @param string $status - */ - protected function fireSluggedEvent(Model $model, string $status) - { - $this->events->dispatch('eloquent.slugged: ' . get_class($model), [$model, $status]); - } -} diff --git a/vendor/cviebrock/eloquent-sluggable/src/SluggableScopeHelpers.php b/vendor/cviebrock/eloquent-sluggable/src/SluggableScopeHelpers.php deleted file mode 100644 index b8664a02..00000000 --- a/vendor/cviebrock/eloquent-sluggable/src/SluggableScopeHelpers.php +++ /dev/null @@ -1,86 +0,0 @@ -slugKeyName; - } - - $config = $this->sluggable(); - $name = reset($config); - $key = key($config); - - // check for short configuration - if ($key === 0) { - return $name; - } - - return $key; - } - - /** - * Primary slug value of this model. - * - * @return string - */ - public function getSlugKey(): string - { - return $this->getAttribute($this->getSlugKeyName()); - } - - /** - * Query scope for finding a model by its primary slug. - * - * @param \Illuminate\Database\Eloquent\Builder $scope - * @param string $slug - * @return \Illuminate\Database\Eloquent\Builder - */ - public function scopeWhereSlug(Builder $scope, string $slug): Builder - { - return $scope->where($this->getSlugKeyName(), $slug); - } - - /** - * Find a model by its primary slug. - * - * @param string $slug - * @param array $columns - * @return \Illuminate\Database\Eloquent\Model|\Illuminate\Database\Eloquent\Collection|static[]|static|null - */ - public static function findBySlug(string $slug, array $columns = ['*']) - { - return static::whereSlug($slug)->first($columns); - } - - /** - * Find a model by its primary slug or throw an exception. - * - * @param string $slug - * @param array $columns - * @return \Illuminate\Database\Eloquent\Model|\Illuminate\Database\Eloquent\Collection - * - * @throws \Illuminate\Database\Eloquent\ModelNotFoundException - */ - public static function findBySlugOrFail(string $slug, array $columns = ['*']) - { - return static::whereSlug($slug)->firstOrFail($columns); - } -} diff --git a/vendor/cviebrock/eloquent-sluggable/tests/BaseTests.php b/vendor/cviebrock/eloquent-sluggable/tests/BaseTests.php deleted file mode 100644 index 61f85cd3..00000000 --- a/vendor/cviebrock/eloquent-sluggable/tests/BaseTests.php +++ /dev/null @@ -1,459 +0,0 @@ - 'My First Post' - ]); - $this->assertEquals('my-first-post', $post->slug); - } - - /** - * Test basic slugging functionality using short configuration syntax. - */ - public function testShortConfig() - { - $post = PostShortConfig::create([ - 'title' => 'My First Post' - ]); - $this->assertEquals('my-first-post', $post->slug); - } - - /** - * Test that accented characters and other stuff is "fixed". - */ - public function testAccentedCharacters() - { - $post = Post::create([ - 'title' => 'My Dinner With André & François' - ]); - $this->assertEquals('my-dinner-with-andre-francois', $post->slug); - } - - /** - * Test building a slug from multiple attributes. - */ - public function testMultipleSource() - { - $post = PostWithMultipleSources::create([ - 'title' => 'A Post Title', - 'subtitle' => 'A Subtitle' - ]); - $this->assertEquals('a-post-title-a-subtitle', $post->slug); - } - - public function testLeadingTrailingSpaces() - { - $post = Post::create([ - 'title' => "\tMy First Post \r\n" - ]); - $this->assertEquals('my-first-post', $post->slug); - } - - /** - * Test building a slug using a custom method. - */ - public function testCustomMethod() - { - $post = PostWithCustomMethod::create([ - 'title' => 'A Post Title', - 'subtitle' => 'A Subtitle' - ]); - $this->assertEquals('eltit-tsop-a', $post->slug); - } - - /** - * Test building a slug using a custom suffix. - */ - public function testCustomSuffix() - { - for ($i = 0; $i < 20; $i++) { - $post = PostWithCustomSuffix::create([ - 'title' => 'A Post Title', - 'subtitle' => 'A Subtitle', - ]); - - if ($i === 0) { - $this->assertEquals('a-post-title', $post->slug); - } else { - $this->assertEquals('a-post-title-' . chr($i + 96), $post->slug); - } - } - } - - /** - * Test building a slug using the __toString method. - */ - public function testToStringMethod() - { - $post = PostWithNoSource::create([ - 'title' => 'A Post Title' - ]); - $this->assertEquals('a-post-title', $post->slug); - } - - /** - * Test using a custom separator. - */ - public function testCustomSeparator() - { - $post = PostWithCustomSeparator::create([ - 'title' => 'A post title' - ]); - $this->assertEquals('a.post.title', $post->slug); - } - - /** - * Test using reserved word blocking. - */ - public function testReservedWord() - { - $post = PostWithReservedSlug::create([ - 'title' => 'Add' - ]); - $this->assertEquals('add-2', $post->slug); - } - - /** - * Test when reverting to a shorter version of a similar slug. - * - * @see https://github.com/cviebrock/eloquent-sluggable/issues/5 - */ - public function testIssue5() - { - $post = Post::create([ - 'title' => 'My first post' - ]); - $this->assertEquals('my-first-post', $post->slug); - - $post->title = 'My first post rocks'; - $post->slug = null; - $post->save(); - $this->assertEquals('my-first-post-rocks', $post->slug); - - $post->title = 'My first post'; - $post->slug = null; - $post->save(); - $this->assertEquals('my-first-post', $post->slug); - } - - /** - * Test model replication. - * - * @see https://github.com/cviebrock/eloquent-sluggable/issues/20 - */ - public function testIssue20() - { - $post1 = Post::create([ - 'title' => 'My first post' - ]); - $this->assertEquals('my-first-post', $post1->slug); - - $post2 = $post1->replicate(); - $this->assertEquals('my-first-post-1', $post2->slug); - } - - /** - * Test that we don't try and slug models that don't implement Sluggable. - */ - public function testNonSluggableModels() - { - $post = new PostNotSluggable([ - 'title' => 'My First Post' - ]); - $post->save(); - $this->assertEquals(null, $post->slug); - } - - /** - * Test for max_length option. - */ - public function testMaxLength() - { - $post = PostWithMaxLength::create([ - 'title' => 'A post with a really long title' - ]); - $this->assertEquals('a-post', $post->slug); - } - - /** - * Test for max_length option with word splitting. - */ - public function testMaxLengthSplitWords() - { - $post = PostWithMaxLengthSplitWords::create([ - 'title' => 'A post with a really long title' - ]); - $this->assertEquals('a-post-wit', $post->slug); - } - - /** - * Test for max_length option with increments. - */ - public function testMaxLengthWithIncrements() - { - for ($i = 0; $i < 20; $i++) { - $post = PostWithMaxLength::create([ - 'title' => 'A post with a really long title' - ]); - if ($i == 0) { - $this->assertEquals('a-post', $post->slug); - } elseif ($i < 10) { - $this->assertEquals('a-post-' . $i, $post->slug); - } - } - } - - /** - * Test for max_length option with increments and word splitting. - */ - public function testMaxLengthSplitWordsWithIncrements() - { - for ($i = 0; $i < 20; $i++) { - $post = PostWithMaxLengthSplitWords::create([ - 'title' => 'A post with a really long title' - ]); - if ($i == 0) { - $this->assertEquals('a-post-wit', $post->slug); - } elseif ($i < 10) { - $this->assertEquals('a-post-wit-' . $i, $post->slug); - } - } - } - - /** - * Test for max_length option with a slug that might end in separator. - */ - public function testMaxLengthDoesNotEndInSeparator() - { - $post = PostWithMaxLengthSplitWords::create([ - 'title' => 'It should work' - ]); - $this->assertEquals('it-should', $post->slug); - } - - /** - * Test that models aren't slugged if the slug field is defined. - * - * @see https://github.com/cviebrock/eloquent-sluggable/issues/32 - */ - public function testDoesNotNeedSluggingWhenSlugIsSet() - { - $post = Post::create([ - 'title' => 'My first post', - 'slug' => 'custom-slug' - ]); - $this->assertEquals('custom-slug', $post->slug); - } - - /** - * Test that models aren't *re*slugged if the slug field is defined. - * - * @see https://github.com/cviebrock/eloquent-sluggable/issues/32 - */ - public function testDoesNotNeedSluggingWithUpdateWhenSlugIsSet() - { - $post = Post::create([ - 'title' => 'My first post', - 'slug' => 'custom-slug' - ]); - $this->assertEquals('custom-slug', $post->slug); - - $post->title = 'A New Title'; - $post->save(); - $this->assertEquals('custom-slug', $post->slug); - - $post->title = 'A Another New Title'; - $post->slug = 'new-custom-slug'; - $post->save(); - $this->assertEquals('new-custom-slug', $post->slug); - } - - /** - * Test generating slug from related model field. - */ - public function testSlugFromRelatedModel() - { - $author = Author::create([ - 'name' => 'Arthur Conan Doyle' - ]); - $post = new PostWithRelation([ - 'title' => 'First' - ]); - $post->author()->associate($author); - $post->save(); - $this->assertEquals('arthur-conan-doyle-first', $post->slug); - } - - /** - * Test generating slug when related model doesn't exists. - */ - public function testSlugFromRelatedModelNotExists() - { - $post = PostWithRelation::create([ - 'title' => 'First' - ]); - $this->assertEquals('first', $post->slug); - } - - /** - * Test that a null slug source creates a null slug. - */ - public function testNullSourceGeneratesEmptySlug() - { - $post = PostWithCustomSource::create([ - 'title' => 'My Test Post' - ]); - $this->assertEquals(null, $post->slug); - } - - /** - * Test that a zero length slug source creates a null slug. - */ - public function testZeroLengthSourceGeneratesEmptySlug() - { - $post = Post::create([ - 'title' => '' - ]); - $this->assertNull($post->slug); - } - - /** - * Test using custom Slugify rules. - */ - public function testCustomEngineRules() - { - $post = new PostWithCustomEngine([ - 'title' => 'The quick brown fox jumps over the lazy dog' - ]); - $post->save(); - $this->assertEquals('tha-qaack-brawn-fax-jamps-avar-tha-lazy-dag', $post->slug); - } - - /** - * Test using a custom Slugify ruleset. - */ - public function testForeignRuleset() - { - $post = PostWithForeignRuleset::create([ - 'title' => 'Mia unua poÅto' - ]); - $this->assertEquals('mia-unua-posxto', $post->slug); - } - - /** - * Test if using an empty separator works. - * - * @see https://github.com/cviebrock/eloquent-sluggable/issues/256 - */ - public function testEmptySeparator() - { - $post = new PostWithEmptySeparator([ - 'title' => 'My Test Post' - ]); - $post->save(); - $this->assertEquals('mytestpost', $post->slug); - } - - /** - * Test models with multiple slug fields. - */ - public function testMultipleSlugs() - { - $post = new PostWithMultipleSlugs([ - 'title' => 'My Test Post', - 'subtitle' => 'My Subtitle', - ]); - $post->save(); - - $this->assertEquals('my-test-post', $post->slug); - $this->assertEquals('my.subtitle', $post->dummy); - } - - /** - * Test subscript characters in slug field - */ - public function testSubscriptCharacters() - { - $post = new Post([ - 'title' => 'RDA-125-15/30/45m³/h CAV' - ]); - $post->save(); - - $this->assertEquals('rda-125-15-30-45m3-h-cav', $post->slug); - } - - /** - * Test that a false-y string slug source creates a slug. - */ - public function testFalsyString() - { - $post = Post::create([ - 'title' => '0' - ]); - $this->assertEquals('0', $post->slug); - } - - /** - * Test that a false-y int slug source creates a slug. - */ - public function testFalsyInt() - { - $post = Post::create([ - 'title' => 0 - ]); - $this->assertEquals('0', $post->slug); - } - - /** - * Test that a boolean true source creates a slug. - */ - public function testTrueSource() - { - $post = Post::create([ - 'title' => true - ]); - $this->assertEquals('1', $post->slug); - } - - /** - * Test that a boolean false slug source creates a slug. - */ - public function testFalseSource() - { - $post = Post::create([ - 'title' => false - ]); - $this->assertEquals('0', $post->slug); - } -} diff --git a/vendor/cviebrock/eloquent-sluggable/tests/EventTests.php b/vendor/cviebrock/eloquent-sluggable/tests/EventTests.php deleted file mode 100644 index ebb2f2e4..00000000 --- a/vendor/cviebrock/eloquent-sluggable/tests/EventTests.php +++ /dev/null @@ -1,75 +0,0 @@ -markTestIncomplete('Event tests are not yet reliable.'); - - Post::create([ - 'title' => 'My Test Post' - ]); - - $this->expectsEvents([ - 'eloquent.slugging: ' . Post::class, - 'eloquent.slugged: ' . Post::class, - ]); - } - - /** - * Test that the "slugging" event can be cancelled. - * - * @todo Figure out how to accurately test Eloquent model events - */ - public function testCancelSluggingEvent() - { - $this->markTestIncomplete('Event tests are not yet reliable.'); - - $this->app['events']->listen('eloquent.slugging: ' . Post::class, AbortSlugging::class); - - $post = Post::create([ - 'title' => 'My Test Post' - ]); - - $this->expectsEvents([ - 'eloquent.slugging: ' . Post::class, - ]); - - $this->doesntExpectEvents([ - 'eloquent.slugged: ' . Post::class, - ]); - - $this->assertEquals(null, $post->slug); - } - - /** - * Test that the "slugged" event is fired. - * - * @todo Figure out how to accurately test Eloquent model events - */ - public function testSluggedEvent() - { - $this->markTestIncomplete('Event tests are not yet reliable.'); - - $post = Post::create([ - 'title' => 'My Test Post' - ]); - - $this->assertEquals('my-test-post', $post->slug); - $this->assertEquals('I have been slugged!', $post->subtitle); - } -} diff --git a/vendor/cviebrock/eloquent-sluggable/tests/Listeners/AbortSlugging.php b/vendor/cviebrock/eloquent-sluggable/tests/Listeners/AbortSlugging.php deleted file mode 100644 index 1244f19e..00000000 --- a/vendor/cviebrock/eloquent-sluggable/tests/Listeners/AbortSlugging.php +++ /dev/null @@ -1,22 +0,0 @@ -title; - } - - /** - * Return the sluggable configuration array for this model. - * - * @return array - */ - public function sluggable() - { - return [ - 'slug' => [ - 'source' => 'title' - ] - ]; - } -} diff --git a/vendor/cviebrock/eloquent-sluggable/tests/Models/PostNotSluggable.php b/vendor/cviebrock/eloquent-sluggable/tests/Models/PostNotSluggable.php deleted file mode 100644 index be116b60..00000000 --- a/vendor/cviebrock/eloquent-sluggable/tests/Models/PostNotSluggable.php +++ /dev/null @@ -1,45 +0,0 @@ -title; - } -} diff --git a/vendor/cviebrock/eloquent-sluggable/tests/Models/PostShortConfig.php b/vendor/cviebrock/eloquent-sluggable/tests/Models/PostShortConfig.php deleted file mode 100644 index 590526a7..00000000 --- a/vendor/cviebrock/eloquent-sluggable/tests/Models/PostShortConfig.php +++ /dev/null @@ -1,22 +0,0 @@ -addRule('e', 'a'); - $engine->addRule('i', 'a'); - $engine->addRule('o', 'a'); - $engine->addRule('u', 'a'); - - return $engine; - } -} diff --git a/vendor/cviebrock/eloquent-sluggable/tests/Models/PostWithCustomMethod.php b/vendor/cviebrock/eloquent-sluggable/tests/Models/PostWithCustomMethod.php deleted file mode 100644 index 026d176c..00000000 --- a/vendor/cviebrock/eloquent-sluggable/tests/Models/PostWithCustomMethod.php +++ /dev/null @@ -1,30 +0,0 @@ - [ - 'source' => 'title', - 'method' => function ($string, $separator) { - return strrev(Str::slug($string, $separator)); - } - ] - ]; - } -} diff --git a/vendor/cviebrock/eloquent-sluggable/tests/Models/PostWithCustomSeparator.php b/vendor/cviebrock/eloquent-sluggable/tests/Models/PostWithCustomSeparator.php deleted file mode 100644 index 9c9ea9c5..00000000 --- a/vendor/cviebrock/eloquent-sluggable/tests/Models/PostWithCustomSeparator.php +++ /dev/null @@ -1,27 +0,0 @@ - [ - 'source' => 'title', - 'separator' => '.' - ] - ]; - } -} diff --git a/vendor/cviebrock/eloquent-sluggable/tests/Models/PostWithCustomSource.php b/vendor/cviebrock/eloquent-sluggable/tests/Models/PostWithCustomSource.php deleted file mode 100644 index cd91e10f..00000000 --- a/vendor/cviebrock/eloquent-sluggable/tests/Models/PostWithCustomSource.php +++ /dev/null @@ -1,26 +0,0 @@ - [ - 'source' => 'subtitle' - ] - ]; - } -} diff --git a/vendor/cviebrock/eloquent-sluggable/tests/Models/PostWithCustomSuffix.php b/vendor/cviebrock/eloquent-sluggable/tests/Models/PostWithCustomSuffix.php deleted file mode 100644 index d06d9909..00000000 --- a/vendor/cviebrock/eloquent-sluggable/tests/Models/PostWithCustomSuffix.php +++ /dev/null @@ -1,34 +0,0 @@ - [ - 'source' => 'title', - 'uniqueSuffix' => function ($slug, $separator, Collection $list) { - $size = count($list); - - return chr($size + 96); - } - ] - ]; - } -} diff --git a/vendor/cviebrock/eloquent-sluggable/tests/Models/PostWithEmptySeparator.php b/vendor/cviebrock/eloquent-sluggable/tests/Models/PostWithEmptySeparator.php deleted file mode 100644 index 3602d0b6..00000000 --- a/vendor/cviebrock/eloquent-sluggable/tests/Models/PostWithEmptySeparator.php +++ /dev/null @@ -1,27 +0,0 @@ - [ - 'source' => 'title', - 'separator' => '', - ] - ]; - } -} diff --git a/vendor/cviebrock/eloquent-sluggable/tests/Models/PostWithForeignRuleset.php b/vendor/cviebrock/eloquent-sluggable/tests/Models/PostWithForeignRuleset.php deleted file mode 100644 index 609fca2a..00000000 --- a/vendor/cviebrock/eloquent-sluggable/tests/Models/PostWithForeignRuleset.php +++ /dev/null @@ -1,26 +0,0 @@ -activateRuleSet('esperanto'); - - return $engine; - } -} diff --git a/vendor/cviebrock/eloquent-sluggable/tests/Models/PostWithIncludeTrashed.php b/vendor/cviebrock/eloquent-sluggable/tests/Models/PostWithIncludeTrashed.php deleted file mode 100644 index 9ce15b72..00000000 --- a/vendor/cviebrock/eloquent-sluggable/tests/Models/PostWithIncludeTrashed.php +++ /dev/null @@ -1,23 +0,0 @@ - [ - 'source' => 'title', - 'includeTrashed' => true - ] - ]; - } -} diff --git a/vendor/cviebrock/eloquent-sluggable/tests/Models/PostWithMaxLength.php b/vendor/cviebrock/eloquent-sluggable/tests/Models/PostWithMaxLength.php deleted file mode 100644 index 05c44b46..00000000 --- a/vendor/cviebrock/eloquent-sluggable/tests/Models/PostWithMaxLength.php +++ /dev/null @@ -1,25 +0,0 @@ - [ - 'source' => 'title', - 'maxLength' => 10, - ] - ]; - } -} diff --git a/vendor/cviebrock/eloquent-sluggable/tests/Models/PostWithMaxLengthSplitWords.php b/vendor/cviebrock/eloquent-sluggable/tests/Models/PostWithMaxLengthSplitWords.php deleted file mode 100644 index 68f860b2..00000000 --- a/vendor/cviebrock/eloquent-sluggable/tests/Models/PostWithMaxLengthSplitWords.php +++ /dev/null @@ -1,26 +0,0 @@ - [ - 'source' => 'title', - 'maxLength' => 10, - 'maxLengthKeepWords' => false, - ], - ]; - } -} diff --git a/vendor/cviebrock/eloquent-sluggable/tests/Models/PostWithMultipleSlugs.php b/vendor/cviebrock/eloquent-sluggable/tests/Models/PostWithMultipleSlugs.php deleted file mode 100644 index fc2120f5..00000000 --- a/vendor/cviebrock/eloquent-sluggable/tests/Models/PostWithMultipleSlugs.php +++ /dev/null @@ -1,28 +0,0 @@ - [ - 'source' => 'title', - ], - 'dummy' => [ - 'source' => 'subtitle', - 'separator' => '.', - ], - ]; - } -} diff --git a/vendor/cviebrock/eloquent-sluggable/tests/Models/PostWithMultipleSlugsAndCustomSlugKey.php b/vendor/cviebrock/eloquent-sluggable/tests/Models/PostWithMultipleSlugsAndCustomSlugKey.php deleted file mode 100644 index 55d5ad21..00000000 --- a/vendor/cviebrock/eloquent-sluggable/tests/Models/PostWithMultipleSlugsAndCustomSlugKey.php +++ /dev/null @@ -1,13 +0,0 @@ - [ - 'source' => ['title', 'subtitle'], - ] - ]; - } -} diff --git a/vendor/cviebrock/eloquent-sluggable/tests/Models/PostWithNoSource.php b/vendor/cviebrock/eloquent-sluggable/tests/Models/PostWithNoSource.php deleted file mode 100644 index bc922dde..00000000 --- a/vendor/cviebrock/eloquent-sluggable/tests/Models/PostWithNoSource.php +++ /dev/null @@ -1,26 +0,0 @@ - [ - 'source' => null - ] - ]; - } -} diff --git a/vendor/cviebrock/eloquent-sluggable/tests/Models/PostWithOnUpdate.php b/vendor/cviebrock/eloquent-sluggable/tests/Models/PostWithOnUpdate.php deleted file mode 100644 index 223cd135..00000000 --- a/vendor/cviebrock/eloquent-sluggable/tests/Models/PostWithOnUpdate.php +++ /dev/null @@ -1,27 +0,0 @@ - [ - 'source' => 'title', - 'onUpdate' => true - ] - ]; - } -} diff --git a/vendor/cviebrock/eloquent-sluggable/tests/Models/PostWithRelation.php b/vendor/cviebrock/eloquent-sluggable/tests/Models/PostWithRelation.php deleted file mode 100644 index 2534adee..00000000 --- a/vendor/cviebrock/eloquent-sluggable/tests/Models/PostWithRelation.php +++ /dev/null @@ -1,38 +0,0 @@ - [ - 'source' => ['author.name', 'title'], - ] - ]; - } - - /** - * Relation to Author model. - * - * @return \Illuminate\Database\Eloquent\Relations\BelongsTo - */ - public function author() - { - return $this->belongsTo(Author::class); - } -} diff --git a/vendor/cviebrock/eloquent-sluggable/tests/Models/PostWithReservedSlug.php b/vendor/cviebrock/eloquent-sluggable/tests/Models/PostWithReservedSlug.php deleted file mode 100644 index b4f837ec..00000000 --- a/vendor/cviebrock/eloquent-sluggable/tests/Models/PostWithReservedSlug.php +++ /dev/null @@ -1,27 +0,0 @@ - [ - 'source' => 'title', - 'reserved' => ['add','add-1'] - ] - ]; - } -} diff --git a/vendor/cviebrock/eloquent-sluggable/tests/Models/PostWithSoftDeleting.php b/vendor/cviebrock/eloquent-sluggable/tests/Models/PostWithSoftDeleting.php deleted file mode 100644 index bc90c363..00000000 --- a/vendor/cviebrock/eloquent-sluggable/tests/Models/PostWithSoftDeleting.php +++ /dev/null @@ -1,16 +0,0 @@ - [ - 'source' => 'title', - 'includeTrashed' => true - ] - ]; - } -} diff --git a/vendor/cviebrock/eloquent-sluggable/tests/Models/PostWithUniqueSlugConstraints.php b/vendor/cviebrock/eloquent-sluggable/tests/Models/PostWithUniqueSlugConstraints.php deleted file mode 100644 index c0ba9106..00000000 --- a/vendor/cviebrock/eloquent-sluggable/tests/Models/PostWithUniqueSlugConstraints.php +++ /dev/null @@ -1,39 +0,0 @@ -belongsTo(Author::class); - } - - /** - * @param \Illuminate\Database\Eloquent\Builder $query - * @param \Illuminate\Database\Eloquent\Model $model - * @param string $attribute - * @param array $config - * @param string $slug - * @return \Illuminate\Database\Eloquent\Builder - */ - public function scopeWithUniqueSlugConstraints(Builder $query, Model $model, $attribute, $config, $slug) - { - $author = $model->author; - - return $query->where('author_id', $author->getKey()); - } - -} diff --git a/vendor/cviebrock/eloquent-sluggable/tests/OnUpdateTests.php b/vendor/cviebrock/eloquent-sluggable/tests/OnUpdateTests.php deleted file mode 100644 index 6d5281f6..00000000 --- a/vendor/cviebrock/eloquent-sluggable/tests/OnUpdateTests.php +++ /dev/null @@ -1,107 +0,0 @@ - 'My First Post' - ]); - $post->save(); - $this->assertEquals('my-first-post', $post->slug); - - $post->update([ - 'title' => 'A New Title' - ]); - $this->assertEquals('my-first-post', $post->slug); - } - - /** - * Test that the slug is regenerated if the field is emptied manually. - */ - public function testSlugDoesChangeWhenEmptiedManually() - { - $post = Post::create([ - 'title' => 'My First Post' - ]); - $post->save(); - $this->assertEquals('my-first-post', $post->slug); - - $post->slug = null; - $post->update([ - 'title' => 'A New Title' - ]); - $this->assertEquals('a-new-title', $post->slug); - } - - /** - * Test that the slug is regenerated if onUpdate is true. - */ - public function testSlugDoesChangeWithOnUpdate() - { - $post = PostWithOnUpdate::create([ - 'title' => 'My First Post' - ]); - $post->save(); - $this->assertEquals('my-first-post', $post->slug); - - $post->update([ - 'title' => 'A New Title' - ]); - $this->assertEquals('a-new-title', $post->slug); - } - - /** - * Test that the slug is not regenerated if onUpdate is true - * but the source fields didn't change. - */ - public function testSlugDoesNotChangeIfSourceDoesNotChange() - { - $post = PostWithOnUpdate::create([ - 'title' => 'My First Post' - ]); - $post->save(); - $this->assertEquals('my-first-post', $post->slug); - - $post->update([ - 'subtitle' => 'A Subtitle' - ]); - $this->assertEquals('my-first-post', $post->slug); - } - - /** - * Test that the slug is not regenerated if onUpdate is true - * but the source fields didn't change, even with multiple - * increments of the same slug. - * - * @see https://github.com/cviebrock/eloquent-sluggable/issues/317 - */ - public function testSlugDoesNotChangeIfSourceDoesNotChangeMultiple() - { - $data = [ - 'title' => 'My First Post' - ]; - $post0 = PostWithOnUpdate::create($data); - $post1 = PostWithOnUpdate::create($data); - $post2 = PostWithOnUpdate::create($data); - $post3 = PostWithOnUpdate::create($data); - $this->assertEquals('my-first-post-3', $post3->slug); - - $post3->update([ - 'subtitle' => 'A Subtitle' - ]); - $this->assertEquals('my-first-post-3', $post3->slug); - } -} diff --git a/vendor/cviebrock/eloquent-sluggable/tests/ScopeHelperTests.php b/vendor/cviebrock/eloquent-sluggable/tests/ScopeHelperTests.php deleted file mode 100644 index 27ed3b23..00000000 --- a/vendor/cviebrock/eloquent-sluggable/tests/ScopeHelperTests.php +++ /dev/null @@ -1,129 +0,0 @@ -slugKeyName when set. - */ - public function testSlugKeyNameProperty() - { - - $post = PostWithMultipleSlugsAndCustomSlugKey::create([ - 'title' => 'A Post Title', - 'subtitle' => 'A Post Subtitle' - ]); - - $this->assertEquals('dummy', $post->getSlugKeyName()); - $this->assertEquals('a.post.subtitle', $post->dummy); - $this->assertEquals('a.post.subtitle', $post->getSlugKey()); - } - - /** - * Test primary slug is set to first defined slug if $model->slugKeyName is not set. - */ - public function testFirstSlugAsFallback() - { - $post = PostWithMultipleSlugsAndHelperTrait::create([ - 'title' => 'A Post Title' - ]); - - $this->assertEquals('slug', $post->getSlugKeyName()); - $this->assertEquals('a-post-title', $post->getSlugKey()); - } - - /** - * Test primary slug query scope. - */ - public function testQueryScope() - { - - PostWithMultipleSlugsAndHelperTrait::create([ - 'title' => 'A Post Title A' - ]); - - $post = PostWithMultipleSlugsAndHelperTrait::create([ - 'title' => 'A Post Title B' - ]); - - PostWithMultipleSlugsAndHelperTrait::create([ - 'title' => 'A Post Title C' - ]); - - $this->assertEquals($post->getKey(), - PostWithMultipleSlugsAndHelperTrait::whereSlug('a-post-title-b')->first()->getKey()); - } - - /** - * Test finding a model by its primary slug. - */ - public function testFindBySlug() - { - - PostWithMultipleSlugsAndHelperTrait::create([ - 'title' => 'A Post Title A' - ]); - - $post = PostWithMultipleSlugsAndHelperTrait::create([ - 'title' => 'A Post Title B' - ]); - - PostWithMultipleSlugsAndHelperTrait::create([ - 'title' => 'A Post Title C' - ]); - - $this->assertEquals($post->getKey(), - PostWithMultipleSlugsAndHelperTrait::findBySlug('a-post-title-b')->getKey()); - } - - /** - * Test finding a model by its primary slug fails if the slug does not exist. - */ - public function testFindBySlugReturnsNullForNoRecord() - { - $this->assertNull(PostWithMultipleSlugsAndHelperTrait::findBySlug('not a real record')); - } - - /** - * Test finding a model by its primary slug throws an exception if the slug does not exist. - * - * @expectedException \Illuminate\Database\Eloquent\ModelNotFoundException - */ - public function testFindBySlugOrFail() - { - PostWithMultipleSlugsAndHelperTrait::create([ - 'title' => 'A Post Title A' - ]); - - $post = PostWithMultipleSlugsAndHelperTrait::create([ - 'title' => 'A Post Title B' - ]); - - PostWithMultipleSlugsAndHelperTrait::create([ - 'title' => 'A Post Title C' - ]); - - $this->assertEquals($post->getKey(), - PostWithMultipleSlugsAndHelperTrait::findBySlugOrFail('a-post-title-b')->getKey()); - - PostWithMultipleSlugsAndHelperTrait::findBySlugOrFail('not a real record'); - } - - /** - * Test that getSlugKeyName() works with the short configuration syntax. - */ - public function testGetSlugKeyNameWithShortConfig() - { - $post = new PostShortConfigWithScopeHelpers(); - $this->assertEquals('slug_field', $post->getSlugKeyName()); - } -} diff --git a/vendor/cviebrock/eloquent-sluggable/tests/SoftDeleteTests.php b/vendor/cviebrock/eloquent-sluggable/tests/SoftDeleteTests.php deleted file mode 100644 index 92a5869e..00000000 --- a/vendor/cviebrock/eloquent-sluggable/tests/SoftDeleteTests.php +++ /dev/null @@ -1,61 +0,0 @@ - 'A Post Title' - ]); - $this->assertEquals('a-post-title', $post1->slug); - - $post1->delete(); - - $post2 = PostWithSoftDeleting::create([ - 'title' => 'A Post Title' - ]); - $this->assertEquals('a-post-title', $post2->slug); - } - - /** - * Test uniqueness with soft deletes when we include trashed models. - */ - public function testSoftDeletesWithTrashed() - { - $post1 = PostWithSoftDeletingIncludeTrashed::create([ - 'title' => 'A Post Title' - ]); - $this->assertEquals('a-post-title', $post1->slug); - - $post1->delete(); - - $post2 = PostWithSoftDeletingIncludeTrashed::create([ - 'title' => 'A Post Title' - ]); - $this->assertEquals('a-post-title-1', $post2->slug); - } - - /** - * Test that include_trashed is ignored if the model doesn't use the softDelete trait. - */ - public function testSoftDeletesWithNonSoftDeleteModel() - { - $post1 = PostWithIncludeTrashed::create([ - 'title' => 'A Post Title' - ]); - $this->assertEquals('a-post-title', $post1->slug); - } -} diff --git a/vendor/cviebrock/eloquent-sluggable/tests/StaticTests.php b/vendor/cviebrock/eloquent-sluggable/tests/StaticTests.php deleted file mode 100644 index d8ae5196..00000000 --- a/vendor/cviebrock/eloquent-sluggable/tests/StaticTests.php +++ /dev/null @@ -1,55 +0,0 @@ -assertEquals('my-test-post', $slug); - } - - /** - * Test that we generate unique slugs in a static context. - */ - public function testStaticSlugGeneratorWhenEntriesExist() - { - $post = Post::create(['title' => 'My Test Post']); - $this->assertEquals('my-test-post', $post->slug); - - $slug = SlugService::createSlug(Post::class, 'slug', 'My Test Post'); - $this->assertEquals('my-test-post-1', $slug); - } - - /** - * Test that we can generate a slug statically with different configuration. - */ - public function testStaticSlugGeneratorWithConfig() - { - $config = [ - 'separator' => '.' - ]; - $slug = SlugService::createSlug(Post::class, 'slug', 'My Test Post', $config); - $this->assertEquals('my.test.post', $slug); - } - - /** - * Test passing an invalid attribute to static method - */ - public function testStaticSlugWithInvalidAttribute() - { - $this->expectException(\InvalidArgumentException::class); - $slug = SlugService::createSlug(Post::class, 'foo', 'My Test Post'); - } -} diff --git a/vendor/cviebrock/eloquent-sluggable/tests/TestCase.php b/vendor/cviebrock/eloquent-sluggable/tests/TestCase.php deleted file mode 100644 index b58d1000..00000000 --- a/vendor/cviebrock/eloquent-sluggable/tests/TestCase.php +++ /dev/null @@ -1,77 +0,0 @@ -artisan('migrate', ['--database' => 'testbench']); - - $this->beforeApplicationDestroyed(function () { - $this->artisan('migrate:rollback'); - }); - } - - /** - * Define environment setup. - * - * @param \Illuminate\Foundation\Application $app - * @return void - */ - protected function getEnvironmentSetUp($app) - { - // set up database configuration - $app['config']->set('database.default', 'testbench'); - $app['config']->set('database.connections.testbench', [ - 'driver' => 'sqlite', - 'database' => ':memory:', - 'prefix' => '', - ]); - } - - /** - * Get Sluggable package providers. - * - * @return array - */ - protected function getPackageProviders($app) - { - return [ - ServiceProvider::class, - TestServiceProvider::class - ]; - } - - /** - * Mock the event dispatcher so all events are silenced and collected. - * - * @return $this - */ - protected function withoutEvents() - { - $mock = Mockery::mock(Dispatcher::class); - - $mock->shouldReceive('fire', 'until'); - - $this->app->instance('events', $mock); - - return $this; - } -} diff --git a/vendor/cviebrock/eloquent-sluggable/tests/TestServiceProvider.php b/vendor/cviebrock/eloquent-sluggable/tests/TestServiceProvider.php deleted file mode 100644 index a1878d42..00000000 --- a/vendor/cviebrock/eloquent-sluggable/tests/TestServiceProvider.php +++ /dev/null @@ -1,31 +0,0 @@ -loadMigrationsFrom( - __DIR__ . '/database/migrations' - ); - } -} diff --git a/vendor/cviebrock/eloquent-sluggable/tests/UniqueTests.php b/vendor/cviebrock/eloquent-sluggable/tests/UniqueTests.php deleted file mode 100644 index adbaef74..00000000 --- a/vendor/cviebrock/eloquent-sluggable/tests/UniqueTests.php +++ /dev/null @@ -1,91 +0,0 @@ - 'A post title' - ]); - if ($i == 0) { - $this->assertEquals('a-post-title', $post->slug); - } else { - $this->assertEquals('a-post-title-' . $i, $post->slug); - } - } - } - - /** - * Test uniqueness after deletion. - */ - public function testUniqueAfterDelete() - { - $post1 = Post::create([ - 'title' => 'A post title' - ]); - $this->assertEquals('a-post-title', $post1->slug); - - $post2 = Post::create([ - 'title' => 'A post title' - ]); - $this->assertEquals('a-post-title-1', $post2->slug); - - $post1->delete(); - - $post3 = Post::create([ - 'title' => 'A post title' - ]); - $this->assertEquals('a-post-title', $post3->slug); - } - - /** - * Test custom unique query scopes. - */ - public function testCustomUniqueQueryScope() - { - $authorBob = Author::create(['name' => 'Bob']); - $authorPam = Author::create(['name' => 'Pam']); - - // Bob's first post - $post = new PostWithUniqueSlugConstraints(['title' => 'My first post']); - $post->author()->associate($authorBob); - $post->save(); - - $this->assertEquals('my-first-post', $post->slug); - - // Bob's second post with same title is made unique - $post = new PostWithUniqueSlugConstraints(['title' => 'My first post']); - $post->author()->associate($authorBob); - $post->save(); - - $this->assertEquals('my-first-post-1', $post->slug); - - // Pam's first post with same title is scoped to her - $post = new PostWithUniqueSlugConstraints(['title' => 'My first post']); - $post->author()->associate($authorPam); - $post->save(); - - $this->assertEquals('my-first-post', $post->slug); - - // Pam's second post with same title is scoped to her and made unique - $post = new PostWithUniqueSlugConstraints(['title' => 'My first post']); - $post->author()->associate($authorPam); - $post->save(); - - $this->assertEquals('my-first-post-1', $post->slug); - } -} diff --git a/vendor/cviebrock/eloquent-sluggable/tests/database/migrations/2013_11_04_163552_posts.php b/vendor/cviebrock/eloquent-sluggable/tests/database/migrations/2013_11_04_163552_posts.php deleted file mode 100644 index 151ae7a3..00000000 --- a/vendor/cviebrock/eloquent-sluggable/tests/database/migrations/2013_11_04_163552_posts.php +++ /dev/null @@ -1,41 +0,0 @@ -increments('id'); - $table->string('title'); - $table->string('subtitle')->nullable(); - $table->string('slug')->nullable(); - $table->string('dummy')->nullable(); - $table->integer('author_id')->nullable(); - $table->softDeletes(); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::drop('posts'); - } - -} diff --git a/vendor/cviebrock/eloquent-sluggable/tests/database/migrations/2015_08_17_185144_authors.php b/vendor/cviebrock/eloquent-sluggable/tests/database/migrations/2015_08_17_185144_authors.php deleted file mode 100644 index e51f5605..00000000 --- a/vendor/cviebrock/eloquent-sluggable/tests/database/migrations/2015_08_17_185144_authors.php +++ /dev/null @@ -1,35 +0,0 @@ -increments('id'); - $table->string('name'); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::drop('authors'); - } -} diff --git a/vendor/dnoegel/php-xdg-base-dir/LICENSE b/vendor/dnoegel/php-xdg-base-dir/LICENSE deleted file mode 100644 index 029a00ab..00000000 --- a/vendor/dnoegel/php-xdg-base-dir/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2014 Daniel Nögel - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/vendor/dnoegel/php-xdg-base-dir/README.md b/vendor/dnoegel/php-xdg-base-dir/README.md deleted file mode 100644 index 9e51bbb5..00000000 --- a/vendor/dnoegel/php-xdg-base-dir/README.md +++ /dev/null @@ -1,38 +0,0 @@ -# XDG Base Directory - -[![Software License](https://img.shields.io/badge/license-MIT-brightgreen.svg?style=flat-square)](LICENSE.md) - -Implementation of XDG Base Directory specification for php - -## Install - -Via Composer - -``` bash -$ composer require dnoegel/php-xdg-base-dir -``` - -## Usage - -``` php -$xdg = \XdgBaseDir\Xdg(); - -echo $xdg->getHomeDir(); -echo $xdg->getHomeConfigDir() -echo $xdg->getHomeDataDir() -echo $xdg->getHomeCacheDir() -echo $xdg->getRuntimeDir() - -$xdg->getDataDirs() // returns array -$xdg->getConfigDirs() // returns array -``` - -## Testing - -``` bash -$ phpunit -``` - -## License - -The MIT License (MIT). Please see [License File](https://github.com/dnoegel/php-xdg-base-dir/blob/master/LICENSE) for more information. diff --git a/vendor/dnoegel/php-xdg-base-dir/composer.json b/vendor/dnoegel/php-xdg-base-dir/composer.json deleted file mode 100644 index f6caf31a..00000000 --- a/vendor/dnoegel/php-xdg-base-dir/composer.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "name": "dnoegel/php-xdg-base-dir", - "description": "implementation of xdg base directory specification for php", - "type": "project", - "license": "MIT", - "require": { - "php": ">=5.3.2" - }, - "require-dev": { - "phpunit/phpunit": "@stable" - }, - "autoload": { - "psr-4": { - "XdgBaseDir\\": "src/" - } - } -} diff --git a/vendor/dnoegel/php-xdg-base-dir/phpunit.xml.dist b/vendor/dnoegel/php-xdg-base-dir/phpunit.xml.dist deleted file mode 100644 index 4000c012..00000000 --- a/vendor/dnoegel/php-xdg-base-dir/phpunit.xml.dist +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - - ./tests/ - - - - - - ./src/ - - - diff --git a/vendor/dnoegel/php-xdg-base-dir/src/Xdg.php b/vendor/dnoegel/php-xdg-base-dir/src/Xdg.php deleted file mode 100644 index e2acda19..00000000 --- a/vendor/dnoegel/php-xdg-base-dir/src/Xdg.php +++ /dev/null @@ -1,121 +0,0 @@ -getHomeDir() . DIRECTORY_SEPARATOR . '.config'; - - return $path; - } - - /** - * @return string - */ - public function getHomeDataDir() - { - $path = getenv('XDG_DATA_HOME') ?: $this->getHomeDir() . DIRECTORY_SEPARATOR . '.local' . DIRECTORY_SEPARATOR . 'share'; - - return $path; - } - - /** - * @return array - */ - public function getConfigDirs() - { - $configDirs = getenv('XDG_CONFIG_DIRS') ? explode(':', getenv('XDG_CONFIG_DIRS')) : array('/etc/xdg'); - - $paths = array_merge(array($this->getHomeConfigDir()), $configDirs); - - return $paths; - } - - /** - * @return array - */ - public function getDataDirs() - { - $dataDirs = getenv('XDG_DATA_DIRS') ? explode(':', getenv('XDG_DATA_DIRS')) : array('/usr/local/share', '/usr/share'); - - $paths = array_merge(array($this->getHomeDataDir()), $dataDirs); - - return $paths; - } - - /** - * @return string - */ - public function getHomeCacheDir() - { - $path = getenv('XDG_CACHE_HOME') ?: $this->getHomeDir() . DIRECTORY_SEPARATOR . '.cache'; - - return $path; - - } - - public function getRuntimeDir($strict=true) - { - if ($runtimeDir = getenv('XDG_RUNTIME_DIR')) { - return $runtimeDir; - } - - if ($strict) { - throw new \RuntimeException('XDG_RUNTIME_DIR was not set'); - } - - $fallback = sys_get_temp_dir() . DIRECTORY_SEPARATOR . self::RUNTIME_DIR_FALLBACK . getenv('USER'); - - $create = false; - - if (!is_dir($fallback)) { - mkdir($fallback, 0700, true); - } - - $st = lstat($fallback); - - # The fallback must be a directory - if (!$st['mode'] & self::S_IFDIR) { - rmdir($fallback); - $create = true; - } elseif ($st['uid'] != getmyuid() || - $st['mode'] & (self::S_IRWXG | self::S_IRWXO) - ) { - rmdir($fallback); - $create = true; - } - - if ($create) { - mkdir($fallback, 0700, true); - } - - return $fallback; - } - -} diff --git a/vendor/dnoegel/php-xdg-base-dir/tests/XdgTest.php b/vendor/dnoegel/php-xdg-base-dir/tests/XdgTest.php deleted file mode 100644 index 92c2e07e..00000000 --- a/vendor/dnoegel/php-xdg-base-dir/tests/XdgTest.php +++ /dev/null @@ -1,116 +0,0 @@ -assertEquals('/fake-dir', $this->getXdg()->getHomeDir()); - } - - public function testGetFallbackHomeDir() - { - putenv('HOME='); - putenv('HOMEDRIVE=C:'); - putenv('HOMEPATH=fake-dir'); - $this->assertEquals('C:/fake-dir', $this->getXdg()->getHomeDir()); - } - - public function testXdgPutCache() - { - putenv('XDG_DATA_HOME=tmp/'); - putenv('XDG_CONFIG_HOME=tmp/'); - putenv('XDG_CACHE_HOME=tmp/'); - $this->assertEquals('tmp/', $this->getXdg()->getHomeCacheDir()); - } - - public function testXdgPutData() - { - putenv('XDG_DATA_HOME=tmp/'); - $this->assertEquals('tmp/', $this->getXdg()->getHomeDataDir()); - } - - public function testXdgPutConfig() - { - putenv('XDG_CONFIG_HOME=tmp/'); - $this->assertEquals('tmp/', $this->getXdg()->getHomeConfigDir()); - } - - public function testXdgDataDirsShouldIncludeHomeDataDir() - { - putenv('XDG_DATA_HOME=tmp/'); - putenv('XDG_CONFIG_HOME=tmp/'); - - $this->assertArrayHasKey('tmp/', array_flip($this->getXdg()->getDataDirs())); - } - - public function testXdgConfigDirsShouldIncludeHomeConfigDir() - { - putenv('XDG_CONFIG_HOME=tmp/'); - - $this->assertArrayHasKey('tmp/', array_flip($this->getXdg()->getConfigDirs())); - } - - /** - * If XDG_RUNTIME_DIR is set, it should be returned - */ - public function testGetRuntimeDir() - { - putenv('XDG_RUNTIME_DIR=/tmp/'); - $runtimeDir = $this->getXdg()->getRuntimeDir(); - - $this->assertEquals(is_dir($runtimeDir), true); - } - - /** - * In strict mode, an exception should be shown if XDG_RUNTIME_DIR does not exist - * - * @expectedException \RuntimeException - */ - public function testGetRuntimeDirShouldThrowException() - { - putenv('XDG_RUNTIME_DIR='); - $this->getXdg()->getRuntimeDir(true); - } - - /** - * In fallback mode a directory should be created - */ - public function testGetRuntimeDirShouldCreateDirectory() - { - putenv('XDG_RUNTIME_DIR='); - $dir = $this->getXdg()->getRuntimeDir(false); - $permission = decoct(fileperms($dir) & 0777); - $this->assertEquals(700, $permission); - } - - /** - * Ensure, that the fallback directories are created with correct permission - */ - public function testGetRuntimeShouldDeleteDirsWithWrongPermission() - { - $runtimeDir = sys_get_temp_dir() . DIRECTORY_SEPARATOR . XdgBaseDir\Xdg::RUNTIME_DIR_FALLBACK . getenv('USER'); - - rmdir($runtimeDir); - mkdir($runtimeDir, 0764, true); - - // Permission should be wrong now - $permission = decoct(fileperms($runtimeDir) & 0777); - $this->assertEquals(764, $permission); - - putenv('XDG_RUNTIME_DIR='); - $dir = $this->getXdg()->getRuntimeDir(false); - - // Permission should be fixed - $permission = decoct(fileperms($dir) & 0777); - $this->assertEquals(700, $permission); - } -} diff --git a/vendor/doctrine/inflector/LICENSE b/vendor/doctrine/inflector/LICENSE deleted file mode 100644 index 8c38cc1b..00000000 --- a/vendor/doctrine/inflector/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2006-2015 Doctrine Project - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies -of the Software, and to permit persons to whom the Software is furnished to do -so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/vendor/doctrine/inflector/README.md b/vendor/doctrine/inflector/README.md deleted file mode 100644 index acb55a01..00000000 --- a/vendor/doctrine/inflector/README.md +++ /dev/null @@ -1,6 +0,0 @@ -# Doctrine Inflector - -Doctrine Inflector is a small library that can perform string manipulations -with regard to upper-/lowercase and singular/plural forms of words. - -[![Build Status](https://travis-ci.org/doctrine/inflector.svg?branch=master)](https://travis-ci.org/doctrine/inflector) diff --git a/vendor/doctrine/inflector/composer.json b/vendor/doctrine/inflector/composer.json deleted file mode 100644 index 2189ff17..00000000 --- a/vendor/doctrine/inflector/composer.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "name": "doctrine/inflector", - "type": "library", - "description": "Common String Manipulations with regard to casing and singular/plural rules.", - "keywords": ["string", "inflection", "singularize", "pluralize"], - "homepage": "http://www.doctrine-project.org", - "license": "MIT", - "authors": [ - {"name": "Guilherme Blanco", "email": "guilhermeblanco@gmail.com"}, - {"name": "Roman Borschel", "email": "roman@code-factory.org"}, - {"name": "Benjamin Eberlei", "email": "kontakt@beberlei.de"}, - {"name": "Jonathan Wage", "email": "jonwage@gmail.com"}, - {"name": "Johannes Schmitt", "email": "schmittjoh@gmail.com"} - ], - "require": { - "php": "^7.1" - }, - "require-dev": { - "phpunit/phpunit": "^6.2" - }, - "autoload": { - "psr-4": { "Doctrine\\Common\\Inflector\\": "lib/Doctrine/Common/Inflector" } - }, - "autoload-dev": { - "psr-4": { "Doctrine\\Tests\\Common\\Inflector\\": "tests/Doctrine/Tests/Common/Inflector" } - }, - "extra": { - "branch-alias": { - "dev-master": "1.3.x-dev" - } - } -} diff --git a/vendor/doctrine/inflector/lib/Doctrine/Common/Inflector/Inflector.php b/vendor/doctrine/inflector/lib/Doctrine/Common/Inflector/Inflector.php deleted file mode 100644 index f9067a02..00000000 --- a/vendor/doctrine/inflector/lib/Doctrine/Common/Inflector/Inflector.php +++ /dev/null @@ -1,490 +0,0 @@ -. - */ - -namespace Doctrine\Common\Inflector; - -/** - * Doctrine inflector has static methods for inflecting text. - * - * The methods in these classes are from several different sources collected - * across several different php projects and several different authors. The - * original author names and emails are not known. - * - * Pluralize & Singularize implementation are borrowed from CakePHP with some modifications. - * - * @link www.doctrine-project.org - * @since 1.0 - * @author Konsta Vesterinen - * @author Jonathan H. Wage - */ -class Inflector -{ - /** - * Plural inflector rules. - * - * @var string[][] - */ - private static $plural = array( - 'rules' => array( - '/(s)tatus$/i' => '\1\2tatuses', - '/(quiz)$/i' => '\1zes', - '/^(ox)$/i' => '\1\2en', - '/([m|l])ouse$/i' => '\1ice', - '/(matr|vert|ind)(ix|ex)$/i' => '\1ices', - '/(x|ch|ss|sh)$/i' => '\1es', - '/([^aeiouy]|qu)y$/i' => '\1ies', - '/(hive|gulf)$/i' => '\1s', - '/(?:([^f])fe|([lr])f)$/i' => '\1\2ves', - '/sis$/i' => 'ses', - '/([ti])um$/i' => '\1a', - '/(c)riterion$/i' => '\1riteria', - '/(p)erson$/i' => '\1eople', - '/(m)an$/i' => '\1en', - '/(c)hild$/i' => '\1hildren', - '/(f)oot$/i' => '\1eet', - '/(buffal|her|potat|tomat|volcan)o$/i' => '\1\2oes', - '/(alumn|bacill|cact|foc|fung|nucle|radi|stimul|syllab|termin|vir)us$/i' => '\1i', - '/us$/i' => 'uses', - '/(alias)$/i' => '\1es', - '/(analys|ax|cris|test|thes)is$/i' => '\1es', - '/s$/' => 's', - '/^$/' => '', - '/$/' => 's', - ), - 'uninflected' => array( - '.*[nrlm]ese', - '.*deer', - '.*fish', - '.*measles', - '.*ois', - '.*pox', - '.*sheep', - 'people', - 'cookie', - 'police', - ), - 'irregular' => array( - 'atlas' => 'atlases', - 'axe' => 'axes', - 'beef' => 'beefs', - 'brother' => 'brothers', - 'cafe' => 'cafes', - 'chateau' => 'chateaux', - 'niveau' => 'niveaux', - 'child' => 'children', - 'cookie' => 'cookies', - 'corpus' => 'corpuses', - 'cow' => 'cows', - 'criterion' => 'criteria', - 'curriculum' => 'curricula', - 'demo' => 'demos', - 'domino' => 'dominoes', - 'echo' => 'echoes', - 'foot' => 'feet', - 'fungus' => 'fungi', - 'ganglion' => 'ganglions', - 'genie' => 'genies', - 'genus' => 'genera', - 'goose' => 'geese', - 'graffito' => 'graffiti', - 'hippopotamus' => 'hippopotami', - 'hoof' => 'hoofs', - 'human' => 'humans', - 'iris' => 'irises', - 'larva' => 'larvae', - 'leaf' => 'leaves', - 'loaf' => 'loaves', - 'man' => 'men', - 'medium' => 'media', - 'memorandum' => 'memoranda', - 'money' => 'monies', - 'mongoose' => 'mongooses', - 'motto' => 'mottoes', - 'move' => 'moves', - 'mythos' => 'mythoi', - 'niche' => 'niches', - 'nucleus' => 'nuclei', - 'numen' => 'numina', - 'occiput' => 'occiputs', - 'octopus' => 'octopuses', - 'opus' => 'opuses', - 'ox' => 'oxen', - 'passerby' => 'passersby', - 'penis' => 'penises', - 'person' => 'people', - 'plateau' => 'plateaux', - 'runner-up' => 'runners-up', - 'sex' => 'sexes', - 'soliloquy' => 'soliloquies', - 'son-in-law' => 'sons-in-law', - 'syllabus' => 'syllabi', - 'testis' => 'testes', - 'thief' => 'thieves', - 'tooth' => 'teeth', - 'tornado' => 'tornadoes', - 'trilby' => 'trilbys', - 'turf' => 'turfs', - 'valve' => 'valves', - 'volcano' => 'volcanoes', - ) - ); - - /** - * Singular inflector rules. - * - * @var string[][] - */ - private static $singular = array( - 'rules' => array( - '/(s)tatuses$/i' => '\1\2tatus', - '/^(.*)(menu)s$/i' => '\1\2', - '/(quiz)zes$/i' => '\\1', - '/(matr)ices$/i' => '\1ix', - '/(vert|ind)ices$/i' => '\1ex', - '/^(ox)en/i' => '\1', - '/(alias)(es)*$/i' => '\1', - '/(buffal|her|potat|tomat|volcan)oes$/i' => '\1o', - '/(alumn|bacill|cact|foc|fung|nucle|radi|stimul|syllab|termin|viri?)i$/i' => '\1us', - '/([ftw]ax)es/i' => '\1', - '/(analys|ax|cris|test|thes)es$/i' => '\1is', - '/(shoe|slave)s$/i' => '\1', - '/(o)es$/i' => '\1', - '/ouses$/' => 'ouse', - '/([^a])uses$/' => '\1us', - '/([m|l])ice$/i' => '\1ouse', - '/(x|ch|ss|sh)es$/i' => '\1', - '/(m)ovies$/i' => '\1\2ovie', - '/(s)eries$/i' => '\1\2eries', - '/([^aeiouy]|qu)ies$/i' => '\1y', - '/([lr])ves$/i' => '\1f', - '/(tive)s$/i' => '\1', - '/(hive)s$/i' => '\1', - '/(drive)s$/i' => '\1', - '/(dive)s$/i' => '\1', - '/(olive)s$/i' => '\1', - '/([^fo])ves$/i' => '\1fe', - '/(^analy)ses$/i' => '\1sis', - '/(analy|diagno|^ba|(p)arenthe|(p)rogno|(s)ynop|(t)he)ses$/i' => '\1\2sis', - '/(c)riteria$/i' => '\1riterion', - '/([ti])a$/i' => '\1um', - '/(p)eople$/i' => '\1\2erson', - '/(m)en$/i' => '\1an', - '/(c)hildren$/i' => '\1\2hild', - '/(f)eet$/i' => '\1oot', - '/(n)ews$/i' => '\1\2ews', - '/eaus$/' => 'eau', - '/^(.*us)$/' => '\\1', - '/s$/i' => '', - ), - 'uninflected' => array( - '.*[nrlm]ese', - '.*deer', - '.*fish', - '.*measles', - '.*ois', - '.*pox', - '.*sheep', - '.*ss', - 'data', - 'police', - 'pants', - 'clothes', - ), - 'irregular' => array( - 'abuses' => 'abuse', - 'avalanches' => 'avalanche', - 'caches' => 'cache', - 'criteria' => 'criterion', - 'curves' => 'curve', - 'emphases' => 'emphasis', - 'foes' => 'foe', - 'geese' => 'goose', - 'graves' => 'grave', - 'hoaxes' => 'hoax', - 'media' => 'medium', - 'neuroses' => 'neurosis', - 'waves' => 'wave', - 'oases' => 'oasis', - 'valves' => 'valve', - ) - ); - - /** - * Words that should not be inflected. - * - * @var array - */ - private static $uninflected = array( - '.*?media', 'Amoyese', 'audio', 'bison', 'Borghese', 'bream', 'breeches', - 'britches', 'buffalo', 'cantus', 'carp', 'chassis', 'clippers', 'cod', 'coitus', 'compensation', 'Congoese', - 'contretemps', 'coreopsis', 'corps', 'data', 'debris', 'deer', 'diabetes', 'djinn', 'education', 'eland', - 'elk', 'emoji', 'equipment', 'evidence', 'Faroese', 'feedback', 'fish', 'flounder', 'Foochowese', - 'Furniture', 'furniture', 'gallows', 'Genevese', 'Genoese', 'Gilbertese', 'gold', - 'headquarters', 'herpes', 'hijinks', 'Hottentotese', 'information', 'innings', 'jackanapes', 'jedi', - 'Kiplingese', 'knowledge', 'Kongoese', 'love', 'Lucchese', 'Luggage', 'mackerel', 'Maltese', 'metadata', - 'mews', 'moose', 'mumps', 'Nankingese', 'news', 'nexus', 'Niasese', 'nutrition', 'offspring', - 'Pekingese', 'Piedmontese', 'pincers', 'Pistoiese', 'plankton', 'pliers', 'pokemon', 'police', 'Portuguese', - 'proceedings', 'rabies', 'rain', 'rhinoceros', 'rice', 'salmon', 'Sarawakese', 'scissors', 'sea[- ]bass', - 'series', 'Shavese', 'shears', 'sheep', 'siemens', 'species', 'staff', 'swine', 'traffic', - 'trousers', 'trout', 'tuna', 'us', 'Vermontese', 'Wenchowese', 'wheat', 'whiting', 'wildebeest', 'Yengeese' - ); - - /** - * Method cache array. - * - * @var array - */ - private static $cache = array(); - - /** - * The initial state of Inflector so reset() works. - * - * @var array - */ - private static $initialState = array(); - - /** - * Converts a word into the format for a Doctrine table name. Converts 'ModelName' to 'model_name'. - */ - public static function tableize(string $word) : string - { - return strtolower(preg_replace('~(?<=\\w)([A-Z])~', '_$1', $word)); - } - - /** - * Converts a word into the format for a Doctrine class name. Converts 'table_name' to 'TableName'. - */ - public static function classify(string $word) : string - { - return str_replace([' ', '_', '-'], '', ucwords($word, ' _-')); - } - - /** - * Camelizes a word. This uses the classify() method and turns the first character to lowercase. - */ - public static function camelize(string $word) : string - { - return lcfirst(self::classify($word)); - } - - /** - * Uppercases words with configurable delimeters between words. - * - * Takes a string and capitalizes all of the words, like PHP's built-in - * ucwords function. This extends that behavior, however, by allowing the - * word delimeters to be configured, rather than only separating on - * whitespace. - * - * Here is an example: - * - * - * - * - * @param string $string The string to operate on. - * @param string $delimiters A list of word separators. - * - * @return string The string with all delimeter-separated words capitalized. - */ - public static function ucwords(string $string, string $delimiters = " \n\t\r\0\x0B-") : string - { - return ucwords($string, $delimiters); - } - - /** - * Clears Inflectors inflected value caches, and resets the inflection - * rules to the initial values. - */ - public static function reset() : void - { - if (empty(self::$initialState)) { - self::$initialState = get_class_vars('Inflector'); - - return; - } - - foreach (self::$initialState as $key => $val) { - if ($key !== 'initialState') { - self::${$key} = $val; - } - } - } - - /** - * Adds custom inflection $rules, of either 'plural' or 'singular' $type. - * - * ### Usage: - * - * {{{ - * Inflector::rules('plural', array('/^(inflect)or$/i' => '\1ables')); - * Inflector::rules('plural', array( - * 'rules' => array('/^(inflect)ors$/i' => '\1ables'), - * 'uninflected' => array('dontinflectme'), - * 'irregular' => array('red' => 'redlings') - * )); - * }}} - * - * @param string $type The type of inflection, either 'plural' or 'singular' - * @param array|iterable $rules An array of rules to be added. - * @param boolean $reset If true, will unset default inflections for all - * new rules that are being defined in $rules. - * - * @return void - */ - public static function rules(string $type, iterable $rules, bool $reset = false) : void - { - foreach ($rules as $rule => $pattern) { - if ( ! is_array($pattern)) { - continue; - } - - if ($reset) { - self::${$type}[$rule] = $pattern; - } else { - self::${$type}[$rule] = ($rule === 'uninflected') - ? array_merge($pattern, self::${$type}[$rule]) - : $pattern + self::${$type}[$rule]; - } - - unset($rules[$rule], self::${$type}['cache' . ucfirst($rule)]); - - if (isset(self::${$type}['merged'][$rule])) { - unset(self::${$type}['merged'][$rule]); - } - - if ($type === 'plural') { - self::$cache['pluralize'] = self::$cache['tableize'] = array(); - } elseif ($type === 'singular') { - self::$cache['singularize'] = array(); - } - } - - self::${$type}['rules'] = $rules + self::${$type}['rules']; - } - - /** - * Returns a word in plural form. - * - * @param string $word The word in singular form. - * - * @return string The word in plural form. - */ - public static function pluralize(string $word) : string - { - if (isset(self::$cache['pluralize'][$word])) { - return self::$cache['pluralize'][$word]; - } - - if (!isset(self::$plural['merged']['irregular'])) { - self::$plural['merged']['irregular'] = self::$plural['irregular']; - } - - if (!isset(self::$plural['merged']['uninflected'])) { - self::$plural['merged']['uninflected'] = array_merge(self::$plural['uninflected'], self::$uninflected); - } - - if (!isset(self::$plural['cacheUninflected']) || !isset(self::$plural['cacheIrregular'])) { - self::$plural['cacheUninflected'] = '(?:' . implode('|', self::$plural['merged']['uninflected']) . ')'; - self::$plural['cacheIrregular'] = '(?:' . implode('|', array_keys(self::$plural['merged']['irregular'])) . ')'; - } - - if (preg_match('/(.*)\\b(' . self::$plural['cacheIrregular'] . ')$/i', $word, $regs)) { - self::$cache['pluralize'][$word] = $regs[1] . $word[0] . substr(self::$plural['merged']['irregular'][strtolower($regs[2])], 1); - - return self::$cache['pluralize'][$word]; - } - - if (preg_match('/^(' . self::$plural['cacheUninflected'] . ')$/i', $word, $regs)) { - self::$cache['pluralize'][$word] = $word; - - return $word; - } - - foreach (self::$plural['rules'] as $rule => $replacement) { - if (preg_match($rule, $word)) { - self::$cache['pluralize'][$word] = preg_replace($rule, $replacement, $word); - - return self::$cache['pluralize'][$word]; - } - } - } - - /** - * Returns a word in singular form. - * - * @param string $word The word in plural form. - * - * @return string The word in singular form. - */ - public static function singularize(string $word) : string - { - if (isset(self::$cache['singularize'][$word])) { - return self::$cache['singularize'][$word]; - } - - if (!isset(self::$singular['merged']['uninflected'])) { - self::$singular['merged']['uninflected'] = array_merge( - self::$singular['uninflected'], - self::$uninflected - ); - } - - if (!isset(self::$singular['merged']['irregular'])) { - self::$singular['merged']['irregular'] = array_merge( - self::$singular['irregular'], - array_flip(self::$plural['irregular']) - ); - } - - if (!isset(self::$singular['cacheUninflected']) || !isset(self::$singular['cacheIrregular'])) { - self::$singular['cacheUninflected'] = '(?:' . implode('|', self::$singular['merged']['uninflected']) . ')'; - self::$singular['cacheIrregular'] = '(?:' . implode('|', array_keys(self::$singular['merged']['irregular'])) . ')'; - } - - if (preg_match('/(.*)\\b(' . self::$singular['cacheIrregular'] . ')$/i', $word, $regs)) { - self::$cache['singularize'][$word] = $regs[1] . $word[0] . substr(self::$singular['merged']['irregular'][strtolower($regs[2])], 1); - - return self::$cache['singularize'][$word]; - } - - if (preg_match('/^(' . self::$singular['cacheUninflected'] . ')$/i', $word, $regs)) { - self::$cache['singularize'][$word] = $word; - - return $word; - } - - foreach (self::$singular['rules'] as $rule => $replacement) { - if (preg_match($rule, $word)) { - self::$cache['singularize'][$word] = preg_replace($rule, $replacement, $word); - - return self::$cache['singularize'][$word]; - } - } - - self::$cache['singularize'][$word] = $word; - - return $word; - } -} diff --git a/vendor/doctrine/instantiator/CONTRIBUTING.md b/vendor/doctrine/instantiator/CONTRIBUTING.md deleted file mode 100644 index 75b84b2a..00000000 --- a/vendor/doctrine/instantiator/CONTRIBUTING.md +++ /dev/null @@ -1,35 +0,0 @@ -# Contributing - - * Coding standard for the project is [PSR-2](https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-2-coding-style-guide.md) - * The project will follow strict [object calisthenics](http://www.slideshare.net/guilhermeblanco/object-calisthenics-applied-to-php) - * Any contribution must provide tests for additional introduced conditions - * Any un-confirmed issue needs a failing test case before being accepted - * Pull requests must be sent from a new hotfix/feature branch, not from `master`. - -## Installation - -To install the project and run the tests, you need to clone it first: - -```sh -$ git clone git://github.com/doctrine/instantiator.git -``` - -You will then need to run a composer installation: - -```sh -$ cd Instantiator -$ curl -s https://getcomposer.org/installer | php -$ php composer.phar update -``` - -## Testing - -The PHPUnit version to be used is the one installed as a dev- dependency via composer: - -```sh -$ ./vendor/bin/phpunit -``` - -Accepted coverage for new contributions is 80%. Any contribution not satisfying this requirement -won't be merged. - diff --git a/vendor/doctrine/instantiator/LICENSE b/vendor/doctrine/instantiator/LICENSE deleted file mode 100644 index 4d983d1a..00000000 --- a/vendor/doctrine/instantiator/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2014 Doctrine Project - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies -of the Software, and to permit persons to whom the Software is furnished to do -so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/vendor/doctrine/instantiator/README.md b/vendor/doctrine/instantiator/README.md deleted file mode 100644 index b66064bf..00000000 --- a/vendor/doctrine/instantiator/README.md +++ /dev/null @@ -1,40 +0,0 @@ -# Instantiator - -This library provides a way of avoiding usage of constructors when instantiating PHP classes. - -[![Build Status](https://travis-ci.org/doctrine/instantiator.svg?branch=master)](https://travis-ci.org/doctrine/instantiator) -[![Code Coverage](https://scrutinizer-ci.com/g/doctrine/instantiator/badges/coverage.png?b=master)](https://scrutinizer-ci.com/g/doctrine/instantiator/?branch=master) -[![Scrutinizer Code Quality](https://scrutinizer-ci.com/g/doctrine/instantiator/badges/quality-score.png?b=master)](https://scrutinizer-ci.com/g/doctrine/instantiator/?branch=master) -[![Dependency Status](https://www.versioneye.com/package/php--doctrine--instantiator/badge.svg)](https://www.versioneye.com/package/php--doctrine--instantiator) -[![HHVM Status](http://hhvm.h4cc.de/badge/doctrine/instantiator.png)](http://hhvm.h4cc.de/package/doctrine/instantiator) - -[![Latest Stable Version](https://poser.pugx.org/doctrine/instantiator/v/stable.png)](https://packagist.org/packages/doctrine/instantiator) -[![Latest Unstable Version](https://poser.pugx.org/doctrine/instantiator/v/unstable.png)](https://packagist.org/packages/doctrine/instantiator) - -## Installation - -The suggested installation method is via [composer](https://getcomposer.org/): - -```sh -php composer.phar require "doctrine/instantiator:~1.0.3" -``` - -## Usage - -The instantiator is able to create new instances of any class without using the constructor or any API of the class -itself: - -```php -$instantiator = new \Doctrine\Instantiator\Instantiator(); - -$instance = $instantiator->instantiate(\My\ClassName\Here::class); -``` - -## Contributing - -Please read the [CONTRIBUTING.md](CONTRIBUTING.md) contents if you wish to help out! - -## Credits - -This library was migrated from [ocramius/instantiator](https://github.com/Ocramius/Instantiator), which -has been donated to the doctrine organization, and which is now deprecated in favour of this package. diff --git a/vendor/doctrine/instantiator/composer.json b/vendor/doctrine/instantiator/composer.json deleted file mode 100644 index 403ee8e6..00000000 --- a/vendor/doctrine/instantiator/composer.json +++ /dev/null @@ -1,45 +0,0 @@ -{ - "name": "doctrine/instantiator", - "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors", - "type": "library", - "license": "MIT", - "homepage": "https://github.com/doctrine/instantiator", - "keywords": [ - "instantiate", - "constructor" - ], - "authors": [ - { - "name": "Marco Pivetta", - "email": "ocramius@gmail.com", - "homepage": "http://ocramius.github.com/" - } - ], - "require": { - "php": "^7.1" - }, - "require-dev": { - "ext-phar": "*", - "ext-pdo": "*", - "phpunit/phpunit": "^6.2.3", - "squizlabs/php_codesniffer": "^3.0.2", - "athletic/athletic": "~0.1.8" - }, - "autoload": { - "psr-4": { - "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/" - } - }, - "autoload-dev": { - "psr-0": { - "DoctrineTest\\InstantiatorPerformance\\": "tests", - "DoctrineTest\\InstantiatorTest\\": "tests", - "DoctrineTest\\InstantiatorTestAsset\\": "tests" - } - }, - "extra": { - "branch-alias": { - "dev-master": "1.2.x-dev" - } - } -} diff --git a/vendor/doctrine/instantiator/src/Doctrine/Instantiator/Exception/ExceptionInterface.php b/vendor/doctrine/instantiator/src/Doctrine/Instantiator/Exception/ExceptionInterface.php deleted file mode 100644 index 3065375a..00000000 --- a/vendor/doctrine/instantiator/src/Doctrine/Instantiator/Exception/ExceptionInterface.php +++ /dev/null @@ -1,29 +0,0 @@ -. - */ - -namespace Doctrine\Instantiator\Exception; - -/** - * Base exception marker interface for the instantiator component - * - * @author Marco Pivetta - */ -interface ExceptionInterface -{ -} diff --git a/vendor/doctrine/instantiator/src/Doctrine/Instantiator/Exception/InvalidArgumentException.php b/vendor/doctrine/instantiator/src/Doctrine/Instantiator/Exception/InvalidArgumentException.php deleted file mode 100644 index cb57aa86..00000000 --- a/vendor/doctrine/instantiator/src/Doctrine/Instantiator/Exception/InvalidArgumentException.php +++ /dev/null @@ -1,52 +0,0 @@ -. - */ - -namespace Doctrine\Instantiator\Exception; - -use InvalidArgumentException as BaseInvalidArgumentException; -use ReflectionClass; - -/** - * Exception for invalid arguments provided to the instantiator - * - * @author Marco Pivetta - */ -class InvalidArgumentException extends BaseInvalidArgumentException implements ExceptionInterface -{ - public static function fromNonExistingClass(string $className) : self - { - if (interface_exists($className)) { - return new self(sprintf('The provided type "%s" is an interface, and can not be instantiated', $className)); - } - - if (PHP_VERSION_ID >= 50400 && trait_exists($className)) { - return new self(sprintf('The provided type "%s" is a trait, and can not be instantiated', $className)); - } - - return new self(sprintf('The provided class "%s" does not exist', $className)); - } - - public static function fromAbstractClass(ReflectionClass $reflectionClass) : self - { - return new self(sprintf( - 'The provided class "%s" is abstract, and can not be instantiated', - $reflectionClass->getName() - )); - } -} diff --git a/vendor/doctrine/instantiator/src/Doctrine/Instantiator/Exception/UnexpectedValueException.php b/vendor/doctrine/instantiator/src/Doctrine/Instantiator/Exception/UnexpectedValueException.php deleted file mode 100644 index 2b704b92..00000000 --- a/vendor/doctrine/instantiator/src/Doctrine/Instantiator/Exception/UnexpectedValueException.php +++ /dev/null @@ -1,66 +0,0 @@ -. - */ - -namespace Doctrine\Instantiator\Exception; - -use Exception; -use ReflectionClass; -use UnexpectedValueException as BaseUnexpectedValueException; - -/** - * Exception for given parameters causing invalid/unexpected state on instantiation - * - * @author Marco Pivetta - */ -class UnexpectedValueException extends BaseUnexpectedValueException implements ExceptionInterface -{ - public static function fromSerializationTriggeredException( - ReflectionClass $reflectionClass, - Exception $exception - ) : self { - return new self( - sprintf( - 'An exception was raised while trying to instantiate an instance of "%s" via un-serialization', - $reflectionClass->getName() - ), - 0, - $exception - ); - } - - public static function fromUncleanUnSerialization( - ReflectionClass $reflectionClass, - string $errorString, - int $errorCode, - string $errorFile, - int $errorLine - ) : self { - return new self( - sprintf( - 'Could not produce an instance of "%s" via un-serialization, since an error was triggered ' - . 'in file "%s" at line "%d"', - $reflectionClass->getName(), - $errorFile, - $errorLine - ), - 0, - new Exception($errorString, $errorCode) - ); - } -} diff --git a/vendor/doctrine/instantiator/src/Doctrine/Instantiator/Instantiator.php b/vendor/doctrine/instantiator/src/Doctrine/Instantiator/Instantiator.php deleted file mode 100644 index 69fe65da..00000000 --- a/vendor/doctrine/instantiator/src/Doctrine/Instantiator/Instantiator.php +++ /dev/null @@ -1,216 +0,0 @@ -. - */ - -namespace Doctrine\Instantiator; - -use Doctrine\Instantiator\Exception\InvalidArgumentException; -use Doctrine\Instantiator\Exception\UnexpectedValueException; -use Exception; -use ReflectionClass; - -/** - * {@inheritDoc} - * - * @author Marco Pivetta - */ -final class Instantiator implements InstantiatorInterface -{ - /** - * Markers used internally by PHP to define whether {@see \unserialize} should invoke - * the method {@see \Serializable::unserialize()} when dealing with classes implementing - * the {@see \Serializable} interface. - */ - const SERIALIZATION_FORMAT_USE_UNSERIALIZER = 'C'; - const SERIALIZATION_FORMAT_AVOID_UNSERIALIZER = 'O'; - - /** - * @var \callable[] used to instantiate specific classes, indexed by class name - */ - private static $cachedInstantiators = []; - - /** - * @var object[] of objects that can directly be cloned, indexed by class name - */ - private static $cachedCloneables = []; - - /** - * {@inheritDoc} - */ - public function instantiate($className) - { - if (isset(self::$cachedCloneables[$className])) { - return clone self::$cachedCloneables[$className]; - } - - if (isset(self::$cachedInstantiators[$className])) { - $factory = self::$cachedInstantiators[$className]; - - return $factory(); - } - - return $this->buildAndCacheFromFactory($className); - } - - /** - * Builds the requested object and caches it in static properties for performance - * - * @return object - */ - private function buildAndCacheFromFactory(string $className) - { - $factory = self::$cachedInstantiators[$className] = $this->buildFactory($className); - $instance = $factory(); - - if ($this->isSafeToClone(new ReflectionClass($instance))) { - self::$cachedCloneables[$className] = clone $instance; - } - - return $instance; - } - - /** - * Builds a callable capable of instantiating the given $className without - * invoking its constructor. - * - * @throws InvalidArgumentException - * @throws UnexpectedValueException - * @throws \ReflectionException - */ - private function buildFactory(string $className) : callable - { - $reflectionClass = $this->getReflectionClass($className); - - if ($this->isInstantiableViaReflection($reflectionClass)) { - return [$reflectionClass, 'newInstanceWithoutConstructor']; - } - - $serializedString = sprintf( - '%s:%d:"%s":0:{}', - self::SERIALIZATION_FORMAT_AVOID_UNSERIALIZER, - strlen($className), - $className - ); - - $this->checkIfUnSerializationIsSupported($reflectionClass, $serializedString); - - return function () use ($serializedString) { - return unserialize($serializedString); - }; - } - - /** - * @param string $className - * - * @return ReflectionClass - * - * @throws InvalidArgumentException - * @throws \ReflectionException - */ - private function getReflectionClass($className) : ReflectionClass - { - if (! class_exists($className)) { - throw InvalidArgumentException::fromNonExistingClass($className); - } - - $reflection = new ReflectionClass($className); - - if ($reflection->isAbstract()) { - throw InvalidArgumentException::fromAbstractClass($reflection); - } - - return $reflection; - } - - /** - * @param ReflectionClass $reflectionClass - * @param string $serializedString - * - * @throws UnexpectedValueException - * - * @return void - */ - private function checkIfUnSerializationIsSupported(ReflectionClass $reflectionClass, $serializedString) : void - { - set_error_handler(function ($code, $message, $file, $line) use ($reflectionClass, & $error) : void { - $error = UnexpectedValueException::fromUncleanUnSerialization( - $reflectionClass, - $message, - $code, - $file, - $line - ); - }); - - $this->attemptInstantiationViaUnSerialization($reflectionClass, $serializedString); - - restore_error_handler(); - - if ($error) { - throw $error; - } - } - - /** - * @param ReflectionClass $reflectionClass - * @param string $serializedString - * - * @throws UnexpectedValueException - * - * @return void - */ - private function attemptInstantiationViaUnSerialization(ReflectionClass $reflectionClass, $serializedString) : void - { - try { - unserialize($serializedString); - } catch (Exception $exception) { - restore_error_handler(); - - throw UnexpectedValueException::fromSerializationTriggeredException($reflectionClass, $exception); - } - } - - private function isInstantiableViaReflection(ReflectionClass $reflectionClass) : bool - { - return ! ($this->hasInternalAncestors($reflectionClass) && $reflectionClass->isFinal()); - } - - /** - * Verifies whether the given class is to be considered internal - */ - private function hasInternalAncestors(ReflectionClass $reflectionClass) : bool - { - do { - if ($reflectionClass->isInternal()) { - return true; - } - } while ($reflectionClass = $reflectionClass->getParentClass()); - - return false; - } - - /** - * Checks if a class is cloneable - * - * Classes implementing `__clone` cannot be safely cloned, as that may cause side-effects. - */ - private function isSafeToClone(ReflectionClass $reflection) : bool - { - return $reflection->isCloneable() && ! $reflection->hasMethod('__clone'); - } -} diff --git a/vendor/doctrine/instantiator/src/Doctrine/Instantiator/InstantiatorInterface.php b/vendor/doctrine/instantiator/src/Doctrine/Instantiator/InstantiatorInterface.php deleted file mode 100644 index b665bea8..00000000 --- a/vendor/doctrine/instantiator/src/Doctrine/Instantiator/InstantiatorInterface.php +++ /dev/null @@ -1,37 +0,0 @@ -. - */ - -namespace Doctrine\Instantiator; - -/** - * Instantiator provides utility methods to build objects without invoking their constructors - * - * @author Marco Pivetta - */ -interface InstantiatorInterface -{ - /** - * @param string $className - * - * @return object - * - * @throws \Doctrine\Instantiator\Exception\ExceptionInterface - */ - public function instantiate($className); -} diff --git a/vendor/doctrine/lexer/LICENSE b/vendor/doctrine/lexer/LICENSE deleted file mode 100644 index 5e781fce..00000000 --- a/vendor/doctrine/lexer/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2006-2013 Doctrine Project - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies -of the Software, and to permit persons to whom the Software is furnished to do -so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/vendor/doctrine/lexer/README.md b/vendor/doctrine/lexer/README.md deleted file mode 100644 index 66f44308..00000000 --- a/vendor/doctrine/lexer/README.md +++ /dev/null @@ -1,5 +0,0 @@ -# Doctrine Lexer - -Base library for a lexer that can be used in Top-Down, Recursive Descent Parsers. - -This lexer is used in Doctrine Annotations and in Doctrine ORM (DQL). diff --git a/vendor/doctrine/lexer/composer.json b/vendor/doctrine/lexer/composer.json deleted file mode 100644 index 8cd694c6..00000000 --- a/vendor/doctrine/lexer/composer.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "name": "doctrine/lexer", - "type": "library", - "description": "Base library for a lexer that can be used in Top-Down, Recursive Descent Parsers.", - "keywords": ["lexer", "parser"], - "homepage": "http://www.doctrine-project.org", - "license": "MIT", - "authors": [ - {"name": "Guilherme Blanco", "email": "guilhermeblanco@gmail.com"}, - {"name": "Roman Borschel", "email": "roman@code-factory.org"}, - {"name": "Johannes Schmitt", "email": "schmittjoh@gmail.com"} - ], - "require": { - "php": ">=5.3.2" - }, - "autoload": { - "psr-0": { "Doctrine\\Common\\Lexer\\": "lib/" } - }, - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - } -} diff --git a/vendor/doctrine/lexer/lib/Doctrine/Common/Lexer/AbstractLexer.php b/vendor/doctrine/lexer/lib/Doctrine/Common/Lexer/AbstractLexer.php deleted file mode 100644 index 399a5523..00000000 --- a/vendor/doctrine/lexer/lib/Doctrine/Common/Lexer/AbstractLexer.php +++ /dev/null @@ -1,327 +0,0 @@ -. - */ - -namespace Doctrine\Common\Lexer; - -/** - * Base class for writing simple lexers, i.e. for creating small DSLs. - * - * @since 2.0 - * @author Guilherme Blanco - * @author Jonathan Wage - * @author Roman Borschel - */ -abstract class AbstractLexer -{ - /** - * Lexer original input string. - * - * @var string - */ - private $input; - - /** - * Array of scanned tokens. - * - * Each token is an associative array containing three items: - * - 'value' : the string value of the token in the input string - * - 'type' : the type of the token (identifier, numeric, string, input - * parameter, none) - * - 'position' : the position of the token in the input string - * - * @var array - */ - private $tokens = array(); - - /** - * Current lexer position in input string. - * - * @var integer - */ - private $position = 0; - - /** - * Current peek of current lexer position. - * - * @var integer - */ - private $peek = 0; - - /** - * The next token in the input. - * - * @var array - */ - public $lookahead; - - /** - * The last matched/seen token. - * - * @var array - */ - public $token; - - /** - * Sets the input data to be tokenized. - * - * The Lexer is immediately reset and the new input tokenized. - * Any unprocessed tokens from any previous input are lost. - * - * @param string $input The input to be tokenized. - * - * @return void - */ - public function setInput($input) - { - $this->input = $input; - $this->tokens = array(); - - $this->reset(); - $this->scan($input); - } - - /** - * Resets the lexer. - * - * @return void - */ - public function reset() - { - $this->lookahead = null; - $this->token = null; - $this->peek = 0; - $this->position = 0; - } - - /** - * Resets the peek pointer to 0. - * - * @return void - */ - public function resetPeek() - { - $this->peek = 0; - } - - /** - * Resets the lexer position on the input to the given position. - * - * @param integer $position Position to place the lexical scanner. - * - * @return void - */ - public function resetPosition($position = 0) - { - $this->position = $position; - } - - /** - * Retrieve the original lexer's input until a given position. - * - * @param integer $position - * - * @return string - */ - public function getInputUntilPosition($position) - { - return substr($this->input, 0, $position); - } - - /** - * Checks whether a given token matches the current lookahead. - * - * @param integer|string $token - * - * @return boolean - */ - public function isNextToken($token) - { - return null !== $this->lookahead && $this->lookahead['type'] === $token; - } - - /** - * Checks whether any of the given tokens matches the current lookahead. - * - * @param array $tokens - * - * @return boolean - */ - public function isNextTokenAny(array $tokens) - { - return null !== $this->lookahead && in_array($this->lookahead['type'], $tokens, true); - } - - /** - * Moves to the next token in the input string. - * - * @return boolean - */ - public function moveNext() - { - $this->peek = 0; - $this->token = $this->lookahead; - $this->lookahead = (isset($this->tokens[$this->position])) - ? $this->tokens[$this->position++] : null; - - return $this->lookahead !== null; - } - - /** - * Tells the lexer to skip input tokens until it sees a token with the given value. - * - * @param string $type The token type to skip until. - * - * @return void - */ - public function skipUntil($type) - { - while ($this->lookahead !== null && $this->lookahead['type'] !== $type) { - $this->moveNext(); - } - } - - /** - * Checks if given value is identical to the given token. - * - * @param mixed $value - * @param integer $token - * - * @return boolean - */ - public function isA($value, $token) - { - return $this->getType($value) === $token; - } - - /** - * Moves the lookahead token forward. - * - * @return array|null The next token or NULL if there are no more tokens ahead. - */ - public function peek() - { - if (isset($this->tokens[$this->position + $this->peek])) { - return $this->tokens[$this->position + $this->peek++]; - } else { - return null; - } - } - - /** - * Peeks at the next token, returns it and immediately resets the peek. - * - * @return array|null The next token or NULL if there are no more tokens ahead. - */ - public function glimpse() - { - $peek = $this->peek(); - $this->peek = 0; - return $peek; - } - - /** - * Scans the input string for tokens. - * - * @param string $input A query string. - * - * @return void - */ - protected function scan($input) - { - static $regex; - - if ( ! isset($regex)) { - $regex = sprintf( - '/(%s)|%s/%s', - implode(')|(', $this->getCatchablePatterns()), - implode('|', $this->getNonCatchablePatterns()), - $this->getModifiers() - ); - } - - $flags = PREG_SPLIT_NO_EMPTY | PREG_SPLIT_DELIM_CAPTURE | PREG_SPLIT_OFFSET_CAPTURE; - $matches = preg_split($regex, $input, -1, $flags); - - foreach ($matches as $match) { - // Must remain before 'value' assignment since it can change content - $type = $this->getType($match[0]); - - $this->tokens[] = array( - 'value' => $match[0], - 'type' => $type, - 'position' => $match[1], - ); - } - } - - /** - * Gets the literal for a given token. - * - * @param integer $token - * - * @return string - */ - public function getLiteral($token) - { - $className = get_class($this); - $reflClass = new \ReflectionClass($className); - $constants = $reflClass->getConstants(); - - foreach ($constants as $name => $value) { - if ($value === $token) { - return $className . '::' . $name; - } - } - - return $token; - } - - /** - * Regex modifiers - * - * @return string - */ - protected function getModifiers() - { - return 'i'; - } - - /** - * Lexical catchable patterns. - * - * @return array - */ - abstract protected function getCatchablePatterns(); - - /** - * Lexical non-catchable patterns. - * - * @return array - */ - abstract protected function getNonCatchablePatterns(); - - /** - * Retrieve token type. Also processes the token value if necessary. - * - * @param string $value - * - * @return integer - */ - abstract protected function getType(&$value); -} diff --git a/vendor/dragonmantank/cron-expression/.editorconfig b/vendor/dragonmantank/cron-expression/.editorconfig deleted file mode 100644 index 1492202b..00000000 --- a/vendor/dragonmantank/cron-expression/.editorconfig +++ /dev/null @@ -1,16 +0,0 @@ -root = true - -[*] -charset = utf-8 -end_of_line = lf -insert_final_newline = true -indent_style = space -indent_size = 4 -trim_trailing_whitespace = true - -[*.md] -trim_trailing_whitespace = false - -[*.yml] -indent_style = space -indent_size = 2 diff --git a/vendor/dragonmantank/cron-expression/CHANGELOG.md b/vendor/dragonmantank/cron-expression/CHANGELOG.md deleted file mode 100644 index 8cb3a084..00000000 --- a/vendor/dragonmantank/cron-expression/CHANGELOG.md +++ /dev/null @@ -1,66 +0,0 @@ -# Change Log - -## [2.2.0] - 2018-06-05 -### Added -- Added support for steps larger than field ranges (#6) -## Changed -- N/A -### Fixed -- Fixed validation for numbers with leading 0s (#12) - -## [2.1.0] - 2018-04-06 -### Added -- N/A -### Changed -- Upgraded to PHPUnit 6 (#2) -### Fixed -- Refactored timezones to deal with some inconsistent behavior (#3) -- Allow ranges and lists in same expression (#5) -- Fixed regression where literals were not converted to their numerical counterpart (#) - -## [2.0.0] - 2017-10-12 -### Added -- N/A - -### Changed -- Dropped support for PHP 5.x -- Dropped support for the YEAR field, as it was not part of the cron standard - -### Fixed -- Reworked validation for all the field types -- Stepping should now work for 1-indexed fields like Month (#153) - -## [1.2.0] - 2017-01-22 -### Added -- Added IDE, CodeSniffer, and StyleCI.IO support - -### Changed -- Switched to PSR-4 Autoloading - -### Fixed -- 0 step expressions are handled better -- Fixed `DayOfMonth` validation to be more strict -- Typos - -## [1.1.0] - 2016-01-26 -### Added -- Support for non-hourly offset timezones -- Checks for valid expressions - -### Changed -- Max Iterations no longer hardcoded for `getRunDate()` -- Supports DateTimeImmutable for newer PHP verions - -### Fixed -- Fixed looping bug for PHP 7 when determining the last specified weekday of a month - -## [1.0.3] - 2013-11-23 -### Added -- Now supports expressions with any number of extra spaces, tabs, or newlines - -### Changed -- Using static instead of self in `CronExpression::factory` - -### Fixed -- Fixes issue [#28](https://github.com/mtdowling/cron-expression/issues/28) where PHP increments of ranges were failing due to PHP casting hyphens to 0 -- Only set default timezone if the given $currentTime is not a DateTime instance ([#34](https://github.com/mtdowling/cron-expression/issues/34)) diff --git a/vendor/dragonmantank/cron-expression/LICENSE b/vendor/dragonmantank/cron-expression/LICENSE deleted file mode 100644 index 3e38bbc8..00000000 --- a/vendor/dragonmantank/cron-expression/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2011 Michael Dowling , 2016 Chris Tankersley , and contributors - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/vendor/dragonmantank/cron-expression/README.md b/vendor/dragonmantank/cron-expression/README.md deleted file mode 100644 index 67992c7d..00000000 --- a/vendor/dragonmantank/cron-expression/README.md +++ /dev/null @@ -1,73 +0,0 @@ -PHP Cron Expression Parser -========================== - -[![Latest Stable Version](https://poser.pugx.org/dragonmantank/cron-expression/v/stable.png)](https://packagist.org/packages/dragonmantank/cron-expression) [![Total Downloads](https://poser.pugx.org/dragonmantank/cron-expression/downloads.png)](https://packagist.org/packages/dragonmantank/cron-expression) [![Build Status](https://secure.travis-ci.org/dragonmantank/cron-expression.png)](http://travis-ci.org/dragonmantank/cron-expression) - -The PHP cron expression parser can parse a CRON expression, determine if it is -due to run, calculate the next run date of the expression, and calculate the previous -run date of the expression. You can calculate dates far into the future or past by -skipping n number of matching dates. - -The parser can handle increments of ranges (e.g. */12, 2-59/3), intervals (e.g. 0-9), -lists (e.g. 1,2,3), W to find the nearest weekday for a given day of the month, L to -find the last day of the month, L to find the last given weekday of a month, and hash -(#) to find the nth weekday of a given month. - -More information about this fork can be found in the blog post [here](http://ctankersley.com/2017/10/12/cron-expression-update/). tl;dr - v2.0.0 is a major breaking change, and @dragonmantank can better take care of the project in a separate fork. - -Installing -========== - -Add the dependency to your project: - -```bash -composer require dragonmantank/cron-expression -``` - -Usage -===== -```php -isDue(); -echo $cron->getNextRunDate()->format('Y-m-d H:i:s'); -echo $cron->getPreviousRunDate()->format('Y-m-d H:i:s'); - -// Works with complex expressions -$cron = Cron\CronExpression::factory('3-59/15 6-12 */15 1 2-5'); -echo $cron->getNextRunDate()->format('Y-m-d H:i:s'); - -// Calculate a run date two iterations into the future -$cron = Cron\CronExpression::factory('@daily'); -echo $cron->getNextRunDate(null, 2)->format('Y-m-d H:i:s'); - -// Calculate a run date relative to a specific time -$cron = Cron\CronExpression::factory('@monthly'); -echo $cron->getNextRunDate('2010-01-12 00:00:00')->format('Y-m-d H:i:s'); -``` - -CRON Expressions -================ - -A CRON expression is a string representing the schedule for a particular command to execute. The parts of a CRON schedule are as follows: - - * * * * * - - - - - - - | | | | | - | | | | | - | | | | +----- day of week (0 - 7) (Sunday=0 or 7) - | | | +---------- month (1 - 12) - | | +--------------- day of month (1 - 31) - | +-------------------- hour (0 - 23) - +------------------------- min (0 - 59) - -Requirements -============ - -- PHP 7.0+ -- PHPUnit is required to run the unit tests -- Composer is required to run the unit tests diff --git a/vendor/dragonmantank/cron-expression/composer.json b/vendor/dragonmantank/cron-expression/composer.json deleted file mode 100644 index d9997ead..00000000 --- a/vendor/dragonmantank/cron-expression/composer.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "name": "dragonmantank/cron-expression", - "type": "library", - "description": "CRON for PHP: Calculate the next or previous run date and determine if a CRON expression is due", - "keywords": ["cron", "schedule"], - "license": "MIT", - "authors": [ - { - "name": "Michael Dowling", - "email": "mtdowling@gmail.com", - "homepage": "https://github.com/mtdowling" - }, - { - "name": "Chris Tankersley", - "email": "chris@ctankersley.com", - "homepage": "https://github.com/dragonmantank" - } - ], - "require": { - "php": ">=7.0.0" - }, - "require-dev": { - "phpunit/phpunit": "~6.4" - }, - "autoload": { - "psr-4": { - "Cron\\": "src/Cron/" - } - }, - "autoload-dev": { - "psr-4": { - "Tests\\": "tests/Cron/" - } - } -} diff --git a/vendor/dragonmantank/cron-expression/src/Cron/AbstractField.php b/vendor/dragonmantank/cron-expression/src/Cron/AbstractField.php deleted file mode 100644 index 262ab63c..00000000 --- a/vendor/dragonmantank/cron-expression/src/Cron/AbstractField.php +++ /dev/null @@ -1,278 +0,0 @@ -fullRange = range($this->rangeStart, $this->rangeEnd); - } - - /** - * Check to see if a field is satisfied by a value - * - * @param string $dateValue Date value to check - * @param string $value Value to test - * - * @return bool - */ - public function isSatisfied($dateValue, $value) - { - if ($this->isIncrementsOfRanges($value)) { - return $this->isInIncrementsOfRanges($dateValue, $value); - } elseif ($this->isRange($value)) { - return $this->isInRange($dateValue, $value); - } - - return $value == '*' || $dateValue == $value; - } - - /** - * Check if a value is a range - * - * @param string $value Value to test - * - * @return bool - */ - public function isRange($value) - { - return strpos($value, '-') !== false; - } - - /** - * Check if a value is an increments of ranges - * - * @param string $value Value to test - * - * @return bool - */ - public function isIncrementsOfRanges($value) - { - return strpos($value, '/') !== false; - } - - /** - * Test if a value is within a range - * - * @param string $dateValue Set date value - * @param string $value Value to test - * - * @return bool - */ - public function isInRange($dateValue, $value) - { - $parts = array_map(function($value) { - $value = trim($value); - $value = $this->convertLiterals($value); - return $value; - }, - explode('-', $value, 2) - ); - - - return $dateValue >= $parts[0] && $dateValue <= $parts[1]; - } - - /** - * Test if a value is within an increments of ranges (offset[-to]/step size) - * - * @param string $dateValue Set date value - * @param string $value Value to test - * - * @return bool - */ - public function isInIncrementsOfRanges($dateValue, $value) - { - $chunks = array_map('trim', explode('/', $value, 2)); - $range = $chunks[0]; - $step = isset($chunks[1]) ? $chunks[1] : 0; - - // No step or 0 steps aren't cool - if (is_null($step) || '0' === $step || 0 === $step) { - return false; - } - - // Expand the * to a full range - if ('*' == $range) { - $range = $this->rangeStart . '-' . $this->rangeEnd; - } - - // Generate the requested small range - $rangeChunks = explode('-', $range, 2); - $rangeStart = $rangeChunks[0]; - $rangeEnd = isset($rangeChunks[1]) ? $rangeChunks[1] : $rangeStart; - - if ($rangeStart < $this->rangeStart || $rangeStart > $this->rangeEnd || $rangeStart > $rangeEnd) { - throw new \OutOfRangeException('Invalid range start requested'); - } - - if ($rangeEnd < $this->rangeStart || $rangeEnd > $this->rangeEnd || $rangeEnd < $rangeStart) { - throw new \OutOfRangeException('Invalid range end requested'); - } - - // Steps larger than the range need to wrap around and be handled slightly differently than smaller steps - if ($step >= $this->rangeEnd) { - $thisRange = [$this->fullRange[$step % count($this->fullRange)]]; - } else { - $thisRange = range($rangeStart, $rangeEnd, $step); - } - - return in_array($dateValue, $thisRange); - } - - /** - * Returns a range of values for the given cron expression - * - * @param string $expression The expression to evaluate - * @param int $max Maximum offset for range - * - * @return array - */ - public function getRangeForExpression($expression, $max) - { - $values = array(); - $expression = $this->convertLiterals($expression); - - if (strpos($expression, ',') !== false) { - $ranges = explode(',', $expression); - $values = []; - foreach ($ranges as $range) { - $expanded = $this->getRangeForExpression($range, $this->rangeEnd); - $values = array_merge($values, $expanded); - } - return $values; - } - - if ($this->isRange($expression) || $this->isIncrementsOfRanges($expression)) { - if (!$this->isIncrementsOfRanges($expression)) { - list ($offset, $to) = explode('-', $expression); - $offset = $this->convertLiterals($offset); - $to = $this->convertLiterals($to); - $stepSize = 1; - } - else { - $range = array_map('trim', explode('/', $expression, 2)); - $stepSize = isset($range[1]) ? $range[1] : 0; - $range = $range[0]; - $range = explode('-', $range, 2); - $offset = $range[0]; - $to = isset($range[1]) ? $range[1] : $max; - } - $offset = $offset == '*' ? $this->rangeStart : $offset; - if ($stepSize >= $this->rangeEnd) { - $values = [$this->fullRange[$stepSize % count($this->fullRange)]]; - } else { - for ($i = $offset; $i <= $to; $i += $stepSize) { - $values[] = (int)$i; - } - } - sort($values); - } - else { - $values = array($expression); - } - - return $values; - } - - protected function convertLiterals($value) - { - if (count($this->literals)) { - $key = array_search($value, $this->literals); - if ($key !== false) { - return $key; - } - } - - return $value; - } - - /** - * Checks to see if a value is valid for the field - * - * @param string $value - * @return bool - */ - public function validate($value) - { - $value = $this->convertLiterals($value); - - // All fields allow * as a valid value - if ('*' === $value) { - return true; - } - - if (strpos($value, '/') !== false) { - list($range, $step) = explode('/', $value); - return $this->validate($range) && filter_var($step, FILTER_VALIDATE_INT); - } - - // Validate each chunk of a list individually - if (strpos($value, ',') !== false) { - foreach (explode(',', $value) as $listItem) { - if (!$this->validate($listItem)) { - return false; - } - } - return true; - } - - if (strpos($value, '-') !== false) { - if (substr_count($value, '-') > 1) { - return false; - } - - $chunks = explode('-', $value); - $chunks[0] = $this->convertLiterals($chunks[0]); - $chunks[1] = $this->convertLiterals($chunks[1]); - - if ('*' == $chunks[0] || '*' == $chunks[1]) { - return false; - } - - return $this->validate($chunks[0]) && $this->validate($chunks[1]); - } - - if (!is_numeric($value)) { - return false; - } - - if (is_float($value) || strpos($value, '.') !== false) { - return false; - } - - // We should have a numeric by now, so coerce this into an integer - $value = (int) $value; - - return in_array($value, $this->fullRange, true); - } -} diff --git a/vendor/dragonmantank/cron-expression/src/Cron/CronExpression.php b/vendor/dragonmantank/cron-expression/src/Cron/CronExpression.php deleted file mode 100644 index b7ba7da0..00000000 --- a/vendor/dragonmantank/cron-expression/src/Cron/CronExpression.php +++ /dev/null @@ -1,411 +0,0 @@ - '0 0 1 1 *', - '@annually' => '0 0 1 1 *', - '@monthly' => '0 0 1 * *', - '@weekly' => '0 0 * * 0', - '@daily' => '0 0 * * *', - '@hourly' => '0 * * * *' - ); - - if (isset($mappings[$expression])) { - $expression = $mappings[$expression]; - } - - return new static($expression, $fieldFactory ?: new FieldFactory()); - } - - /** - * Validate a CronExpression. - * - * @param string $expression The CRON expression to validate. - * - * @return bool True if a valid CRON expression was passed. False if not. - * @see \Cron\CronExpression::factory - */ - public static function isValidExpression($expression) - { - try { - self::factory($expression); - } catch (InvalidArgumentException $e) { - return false; - } - - return true; - } - - /** - * Parse a CRON expression - * - * @param string $expression CRON expression (e.g. '8 * * * *') - * @param FieldFactory $fieldFactory Factory to create cron fields - */ - public function __construct($expression, FieldFactory $fieldFactory) - { - $this->fieldFactory = $fieldFactory; - $this->setExpression($expression); - } - - /** - * Set or change the CRON expression - * - * @param string $value CRON expression (e.g. 8 * * * *) - * - * @return CronExpression - * @throws \InvalidArgumentException if not a valid CRON expression - */ - public function setExpression($value) - { - $this->cronParts = preg_split('/\s/', $value, -1, PREG_SPLIT_NO_EMPTY); - if (count($this->cronParts) < 5) { - throw new InvalidArgumentException( - $value . ' is not a valid CRON expression' - ); - } - - foreach ($this->cronParts as $position => $part) { - $this->setPart($position, $part); - } - - return $this; - } - - /** - * Set part of the CRON expression - * - * @param int $position The position of the CRON expression to set - * @param string $value The value to set - * - * @return CronExpression - * @throws \InvalidArgumentException if the value is not valid for the part - */ - public function setPart($position, $value) - { - if (!$this->fieldFactory->getField($position)->validate($value)) { - throw new InvalidArgumentException( - 'Invalid CRON field value ' . $value . ' at position ' . $position - ); - } - - $this->cronParts[$position] = $value; - - return $this; - } - - /** - * Set max iteration count for searching next run dates - * - * @param int $maxIterationCount Max iteration count when searching for next run date - * - * @return CronExpression - */ - public function setMaxIterationCount($maxIterationCount) - { - $this->maxIterationCount = $maxIterationCount; - - return $this; - } - - /** - * Get a next run date relative to the current date or a specific date - * - * @param string|\DateTime $currentTime Relative calculation date - * @param int $nth Number of matches to skip before returning a - * matching next run date. 0, the default, will return the current - * date and time if the next run date falls on the current date and - * time. Setting this value to 1 will skip the first match and go to - * the second match. Setting this value to 2 will skip the first 2 - * matches and so on. - * @param bool $allowCurrentDate Set to TRUE to return the current date if - * it matches the cron expression. - * @param null|string $timeZone TimeZone to use instead of the system default - * - * @return \DateTime - * @throws \RuntimeException on too many iterations - */ - public function getNextRunDate($currentTime = 'now', $nth = 0, $allowCurrentDate = false, $timeZone = null) - { - return $this->getRunDate($currentTime, $nth, false, $allowCurrentDate, $timeZone); - } - - /** - * Get a previous run date relative to the current date or a specific date - * - * @param string|\DateTime $currentTime Relative calculation date - * @param int $nth Number of matches to skip before returning - * @param bool $allowCurrentDate Set to TRUE to return the - * current date if it matches the cron expression - * @param null|string $timeZone TimeZone to use instead of the system default - * - * @return \DateTime - * @throws \RuntimeException on too many iterations - * @see \Cron\CronExpression::getNextRunDate - */ - public function getPreviousRunDate($currentTime = 'now', $nth = 0, $allowCurrentDate = false, $timeZone = null) - { - return $this->getRunDate($currentTime, $nth, true, $allowCurrentDate, $timeZone); - } - - /** - * Get multiple run dates starting at the current date or a specific date - * - * @param int $total Set the total number of dates to calculate - * @param string|\DateTime $currentTime Relative calculation date - * @param bool $invert Set to TRUE to retrieve previous dates - * @param bool $allowCurrentDate Set to TRUE to return the - * current date if it matches the cron expression - * @param null|string $timeZone TimeZone to use instead of the system default - * - * @return array Returns an array of run dates - */ - public function getMultipleRunDates($total, $currentTime = 'now', $invert = false, $allowCurrentDate = false, $timeZone = null) - { - $matches = array(); - for ($i = 0; $i < max(0, $total); $i++) { - try { - $matches[] = $this->getRunDate($currentTime, $i, $invert, $allowCurrentDate, $timeZone); - } catch (RuntimeException $e) { - break; - } - } - - return $matches; - } - - /** - * Get all or part of the CRON expression - * - * @param string $part Specify the part to retrieve or NULL to get the full - * cron schedule string. - * - * @return string|null Returns the CRON expression, a part of the - * CRON expression, or NULL if the part was specified but not found - */ - public function getExpression($part = null) - { - if (null === $part) { - return implode(' ', $this->cronParts); - } elseif (array_key_exists($part, $this->cronParts)) { - return $this->cronParts[$part]; - } - - return null; - } - - /** - * Helper method to output the full expression. - * - * @return string Full CRON expression - */ - public function __toString() - { - return $this->getExpression(); - } - - /** - * Determine if the cron is due to run based on the current date or a - * specific date. This method assumes that the current number of - * seconds are irrelevant, and should be called once per minute. - * - * @param string|\DateTime $currentTime Relative calculation date - * @param null|string $timeZone TimeZone to use instead of the system default - * - * @return bool Returns TRUE if the cron is due to run or FALSE if not - */ - public function isDue($currentTime = 'now', $timeZone = null) - { - $timeZone = $this->determineTimeZone($currentTime, $timeZone); - - if ('now' === $currentTime) { - $currentTime = new DateTime(); - } elseif ($currentTime instanceof DateTime) { - // - } elseif ($currentTime instanceof DateTimeImmutable) { - $currentTime = DateTime::createFromFormat('U', $currentTime->format('U')); - } else { - $currentTime = new DateTime($currentTime); - } - $currentTime->setTimeZone(new DateTimeZone($timeZone)); - - // drop the seconds to 0 - $currentTime = DateTime::createFromFormat('Y-m-d H:i', $currentTime->format('Y-m-d H:i')); - - try { - return $this->getNextRunDate($currentTime, 0, true)->getTimestamp() === $currentTime->getTimestamp(); - } catch (Exception $e) { - return false; - } - } - - /** - * Get the next or previous run date of the expression relative to a date - * - * @param string|\DateTime $currentTime Relative calculation date - * @param int $nth Number of matches to skip before returning - * @param bool $invert Set to TRUE to go backwards in time - * @param bool $allowCurrentDate Set to TRUE to return the - * current date if it matches the cron expression - * @param string|null $timeZone TimeZone to use instead of the system default - * - * @return \DateTime - * @throws \RuntimeException on too many iterations - */ - protected function getRunDate($currentTime = null, $nth = 0, $invert = false, $allowCurrentDate = false, $timeZone = null) - { - $timeZone = $this->determineTimeZone($currentTime, $timeZone); - - if ($currentTime instanceof DateTime) { - $currentDate = clone $currentTime; - } elseif ($currentTime instanceof DateTimeImmutable) { - $currentDate = DateTime::createFromFormat('U', $currentTime->format('U')); - } else { - $currentDate = new DateTime($currentTime ?: 'now'); - } - - $currentDate->setTimeZone(new DateTimeZone($timeZone)); - $currentDate->setTime($currentDate->format('H'), $currentDate->format('i'), 0); - $nextRun = clone $currentDate; - $nth = (int) $nth; - - // We don't have to satisfy * or null fields - $parts = array(); - $fields = array(); - foreach (self::$order as $position) { - $part = $this->getExpression($position); - if (null === $part || '*' === $part) { - continue; - } - $parts[$position] = $part; - $fields[$position] = $this->fieldFactory->getField($position); - } - - // Set a hard limit to bail on an impossible date - for ($i = 0; $i < $this->maxIterationCount; $i++) { - - foreach ($parts as $position => $part) { - $satisfied = false; - // Get the field object used to validate this part - $field = $fields[$position]; - // Check if this is singular or a list - if (strpos($part, ',') === false) { - $satisfied = $field->isSatisfiedBy($nextRun, $part); - } else { - foreach (array_map('trim', explode(',', $part)) as $listPart) { - if ($field->isSatisfiedBy($nextRun, $listPart)) { - $satisfied = true; - break; - } - } - } - - // If the field is not satisfied, then start over - if (!$satisfied) { - $field->increment($nextRun, $invert, $part); - continue 2; - } - } - - // Skip this match if needed - if ((!$allowCurrentDate && $nextRun == $currentDate) || --$nth > -1) { - $this->fieldFactory->getField(0)->increment($nextRun, $invert, isset($parts[0]) ? $parts[0] : null); - continue; - } - - return $nextRun; - } - - // @codeCoverageIgnoreStart - throw new RuntimeException('Impossible CRON expression'); - // @codeCoverageIgnoreEnd - } - - /** - * Workout what timeZone should be used. - * - * @param string|\DateTime $currentTime Relative calculation date - * @param string|null $timeZone TimeZone to use instead of the system default - * - * @return string - */ - protected function determineTimeZone($currentTime, $timeZone) - { - if (! is_null($timeZone)) { - return $timeZone; - } - - if ($currentTime instanceOf Datetime) { - return $currentTime->getTimeZone()->getName(); - } - - return date_default_timezone_get(); - } -} diff --git a/vendor/dragonmantank/cron-expression/src/Cron/DayOfMonthField.php b/vendor/dragonmantank/cron-expression/src/Cron/DayOfMonthField.php deleted file mode 100644 index abf59690..00000000 --- a/vendor/dragonmantank/cron-expression/src/Cron/DayOfMonthField.php +++ /dev/null @@ -1,131 +0,0 @@ - - */ -class DayOfMonthField extends AbstractField -{ - protected $rangeStart = 1; - protected $rangeEnd = 31; - - /** - * Get the nearest day of the week for a given day in a month - * - * @param int $currentYear Current year - * @param int $currentMonth Current month - * @param int $targetDay Target day of the month - * - * @return \DateTime Returns the nearest date - */ - private static function getNearestWeekday($currentYear, $currentMonth, $targetDay) - { - $tday = str_pad($targetDay, 2, '0', STR_PAD_LEFT); - $target = DateTime::createFromFormat('Y-m-d', "$currentYear-$currentMonth-$tday"); - $currentWeekday = (int) $target->format('N'); - - if ($currentWeekday < 6) { - return $target; - } - - $lastDayOfMonth = $target->format('t'); - - foreach (array(-1, 1, -2, 2) as $i) { - $adjusted = $targetDay + $i; - if ($adjusted > 0 && $adjusted <= $lastDayOfMonth) { - $target->setDate($currentYear, $currentMonth, $adjusted); - if ($target->format('N') < 6 && $target->format('m') == $currentMonth) { - return $target; - } - } - } - } - - public function isSatisfiedBy(DateTime $date, $value) - { - // ? states that the field value is to be skipped - if ($value == '?') { - return true; - } - - $fieldValue = $date->format('d'); - - // Check to see if this is the last day of the month - if ($value == 'L') { - return $fieldValue == $date->format('t'); - } - - // Check to see if this is the nearest weekday to a particular value - if (strpos($value, 'W')) { - // Parse the target day - $targetDay = substr($value, 0, strpos($value, 'W')); - // Find out if the current day is the nearest day of the week - return $date->format('j') == self::getNearestWeekday( - $date->format('Y'), - $date->format('m'), - $targetDay - )->format('j'); - } - - return $this->isSatisfied($date->format('d'), $value); - } - - public function increment(DateTime $date, $invert = false) - { - if ($invert) { - $date->modify('previous day'); - $date->setTime(23, 59); - } else { - $date->modify('next day'); - $date->setTime(0, 0); - } - - return $this; - } - - /** - * @inheritDoc - */ - public function validate($value) - { - $basicChecks = parent::validate($value); - - // Validate that a list don't have W or L - if (strpos($value, ',') !== false && (strpos($value, 'W') !== false || strpos($value, 'L') !== false)) { - return false; - } - - if (!$basicChecks) { - - if ($value === 'L') { - return true; - } - - if (preg_match('/^(.*)W$/', $value, $matches)) { - return $this->validate($matches[1]); - } - - return false; - } - - return $basicChecks; - } -} diff --git a/vendor/dragonmantank/cron-expression/src/Cron/DayOfWeekField.php b/vendor/dragonmantank/cron-expression/src/Cron/DayOfWeekField.php deleted file mode 100644 index e1780134..00000000 --- a/vendor/dragonmantank/cron-expression/src/Cron/DayOfWeekField.php +++ /dev/null @@ -1,170 +0,0 @@ - 'MON', 2 => 'TUE', 3 => 'WED', 4 => 'THU', 5 => 'FRI', 6 => 'SAT', 7 => 'SUN']; - - public function __construct() - { - $this->nthRange = range(1, 5); - parent::__construct(); - } - - public function isSatisfiedBy(DateTime $date, $value) - { - if ($value == '?') { - return true; - } - - // Convert text day of the week values to integers - $value = $this->convertLiterals($value); - - $currentYear = $date->format('Y'); - $currentMonth = $date->format('m'); - $lastDayOfMonth = $date->format('t'); - - // Find out if this is the last specific weekday of the month - if (strpos($value, 'L')) { - $weekday = str_replace('7', '0', substr($value, 0, strpos($value, 'L'))); - $tdate = clone $date; - $tdate->setDate($currentYear, $currentMonth, $lastDayOfMonth); - while ($tdate->format('w') != $weekday) { - $tdateClone = new DateTime(); - $tdate = $tdateClone - ->setTimezone($tdate->getTimezone()) - ->setDate($currentYear, $currentMonth, --$lastDayOfMonth); - } - - return $date->format('j') == $lastDayOfMonth; - } - - // Handle # hash tokens - if (strpos($value, '#')) { - list($weekday, $nth) = explode('#', $value); - - if (!is_numeric($nth)) { - throw new InvalidArgumentException("Hashed weekdays must be numeric, {$nth} given"); - } else { - $nth = (int) $nth; - } - - // 0 and 7 are both Sunday, however 7 matches date('N') format ISO-8601 - if ($weekday === '0') { - $weekday = 7; - } - - $weekday = $this->convertLiterals($weekday); - - // Validate the hash fields - if ($weekday < 0 || $weekday > 7) { - throw new InvalidArgumentException("Weekday must be a value between 0 and 7. {$weekday} given"); - } - - if (!in_array($nth, $this->nthRange)) { - throw new InvalidArgumentException("There are never more than 5 or less than 1 of a given weekday in a month, {$nth} given"); - } - - // The current weekday must match the targeted weekday to proceed - if ($date->format('N') != $weekday) { - return false; - } - - $tdate = clone $date; - $tdate->setDate($currentYear, $currentMonth, 1); - $dayCount = 0; - $currentDay = 1; - while ($currentDay < $lastDayOfMonth + 1) { - if ($tdate->format('N') == $weekday) { - if (++$dayCount >= $nth) { - break; - } - } - $tdate->setDate($currentYear, $currentMonth, ++$currentDay); - } - - return $date->format('j') == $currentDay; - } - - // Handle day of the week values - if (strpos($value, '-')) { - $parts = explode('-', $value); - if ($parts[0] == '7') { - $parts[0] = '0'; - } elseif ($parts[1] == '0') { - $parts[1] = '7'; - } - $value = implode('-', $parts); - } - - // Test to see which Sunday to use -- 0 == 7 == Sunday - $format = in_array(7, str_split($value)) ? 'N' : 'w'; - $fieldValue = $date->format($format); - - return $this->isSatisfied($fieldValue, $value); - } - - public function increment(DateTime $date, $invert = false) - { - if ($invert) { - $date->modify('-1 day'); - $date->setTime(23, 59, 0); - } else { - $date->modify('+1 day'); - $date->setTime(0, 0, 0); - } - - return $this; - } - - /** - * @inheritDoc - */ - public function validate($value) - { - $basicChecks = parent::validate($value); - - if (!$basicChecks) { - // Handle the # value - if (strpos($value, '#') !== false) { - $chunks = explode('#', $value); - $chunks[0] = $this->convertLiterals($chunks[0]); - - if (parent::validate($chunks[0]) && is_numeric($chunks[1]) && in_array($chunks[1], $this->nthRange)) { - return true; - } - } - - if (preg_match('/^(.*)L$/', $value, $matches)) { - return $this->validate($matches[1]); - } - - return false; - } - - return $basicChecks; - } -} diff --git a/vendor/dragonmantank/cron-expression/src/Cron/FieldFactory.php b/vendor/dragonmantank/cron-expression/src/Cron/FieldFactory.php deleted file mode 100644 index fd27352d..00000000 --- a/vendor/dragonmantank/cron-expression/src/Cron/FieldFactory.php +++ /dev/null @@ -1,54 +0,0 @@ -fields[$position])) { - switch ($position) { - case 0: - $this->fields[$position] = new MinutesField(); - break; - case 1: - $this->fields[$position] = new HoursField(); - break; - case 2: - $this->fields[$position] = new DayOfMonthField(); - break; - case 3: - $this->fields[$position] = new MonthField(); - break; - case 4: - $this->fields[$position] = new DayOfWeekField(); - break; - default: - throw new InvalidArgumentException( - $position . ' is not a valid position' - ); - } - } - - return $this->fields[$position]; - } -} diff --git a/vendor/dragonmantank/cron-expression/src/Cron/FieldInterface.php b/vendor/dragonmantank/cron-expression/src/Cron/FieldInterface.php deleted file mode 100644 index be37b938..00000000 --- a/vendor/dragonmantank/cron-expression/src/Cron/FieldInterface.php +++ /dev/null @@ -1,40 +0,0 @@ -isSatisfied($date->format('H'), $value); - } - - public function increment(DateTime $date, $invert = false, $parts = null) - { - // Change timezone to UTC temporarily. This will - // allow us to go back or forwards and hour even - // if DST will be changed between the hours. - if (is_null($parts) || $parts == '*') { - $timezone = $date->getTimezone(); - $date->setTimezone(new DateTimeZone('UTC')); - if ($invert) { - $date->modify('-1 hour'); - } else { - $date->modify('+1 hour'); - } - $date->setTimezone($timezone); - - $date->setTime($date->format('H'), $invert ? 59 : 0); - return $this; - } - - $parts = strpos($parts, ',') !== false ? explode(',', $parts) : array($parts); - $hours = array(); - foreach ($parts as $part) { - $hours = array_merge($hours, $this->getRangeForExpression($part, 23)); - } - - $current_hour = $date->format('H'); - $position = $invert ? count($hours) - 1 : 0; - if (count($hours) > 1) { - for ($i = 0; $i < count($hours) - 1; $i++) { - if ((!$invert && $current_hour >= $hours[$i] && $current_hour < $hours[$i + 1]) || - ($invert && $current_hour > $hours[$i] && $current_hour <= $hours[$i + 1])) { - $position = $invert ? $i : $i + 1; - break; - } - } - } - - $hour = $hours[$position]; - if ((!$invert && $date->format('H') >= $hour) || ($invert && $date->format('H') <= $hour)) { - $date->modify(($invert ? '-' : '+') . '1 day'); - $date->setTime($invert ? 23 : 0, $invert ? 59 : 0); - } - else { - $date->setTime($hour, $invert ? 59 : 0); - } - - return $this; - } -} diff --git a/vendor/dragonmantank/cron-expression/src/Cron/MinutesField.php b/vendor/dragonmantank/cron-expression/src/Cron/MinutesField.php deleted file mode 100644 index 59bb386f..00000000 --- a/vendor/dragonmantank/cron-expression/src/Cron/MinutesField.php +++ /dev/null @@ -1,60 +0,0 @@ -isSatisfied($date->format('i'), $value); - } - - public function increment(DateTime $date, $invert = false, $parts = null) - { - if (is_null($parts)) { - if ($invert) { - $date->modify('-1 minute'); - } else { - $date->modify('+1 minute'); - } - return $this; - } - - $parts = strpos($parts, ',') !== false ? explode(',', $parts) : array($parts); - $minutes = array(); - foreach ($parts as $part) { - $minutes = array_merge($minutes, $this->getRangeForExpression($part, 59)); - } - - $current_minute = $date->format('i'); - $position = $invert ? count($minutes) - 1 : 0; - if (count($minutes) > 1) { - for ($i = 0; $i < count($minutes) - 1; $i++) { - if ((!$invert && $current_minute >= $minutes[$i] && $current_minute < $minutes[$i + 1]) || - ($invert && $current_minute > $minutes[$i] && $current_minute <= $minutes[$i + 1])) { - $position = $invert ? $i : $i + 1; - break; - } - } - } - - if ((!$invert && $current_minute >= $minutes[$position]) || ($invert && $current_minute <= $minutes[$position])) { - $date->modify(($invert ? '-' : '+') . '1 hour'); - $date->setTime($date->format('H'), $invert ? 59 : 0); - } - else { - $date->setTime($date->format('H'), $minutes[$position]); - } - - return $this; - } -} diff --git a/vendor/dragonmantank/cron-expression/src/Cron/MonthField.php b/vendor/dragonmantank/cron-expression/src/Cron/MonthField.php deleted file mode 100644 index 79fdf3cf..00000000 --- a/vendor/dragonmantank/cron-expression/src/Cron/MonthField.php +++ /dev/null @@ -1,38 +0,0 @@ - 'JAN', 2 => 'FEB', 3 => 'MAR', 4 => 'APR', 5 => 'MAY', 6 => 'JUN', 7 => 'JUL', - 8 => 'AUG', 9 => 'SEP', 10 => 'OCT', 11 => 'NOV', 12 => 'DEC']; - - public function isSatisfiedBy(DateTime $date, $value) - { - $value = $this->convertLiterals($value); - - return $this->isSatisfied($date->format('m'), $value); - } - - public function increment(DateTime $date, $invert = false) - { - if ($invert) { - $date->modify('last day of previous month'); - $date->setTime(23, 59); - } else { - $date->modify('first day of next month'); - $date->setTime(0, 0); - } - - return $this; - } - - -} diff --git a/vendor/dragonmantank/cron-expression/tests/Cron/AbstractFieldTest.php b/vendor/dragonmantank/cron-expression/tests/Cron/AbstractFieldTest.php deleted file mode 100644 index 38114392..00000000 --- a/vendor/dragonmantank/cron-expression/tests/Cron/AbstractFieldTest.php +++ /dev/null @@ -1,139 +0,0 @@ - - */ -class AbstractFieldTest extends TestCase -{ - /** - * @covers \Cron\AbstractField::isRange - */ - public function testTestsIfRange() - { - $f = new DayOfWeekField(); - $this->assertTrue($f->isRange('1-2')); - $this->assertFalse($f->isRange('2')); - } - - /** - * @covers \Cron\AbstractField::isIncrementsOfRanges - */ - public function testTestsIfIncrementsOfRanges() - { - $f = new DayOfWeekField(); - $this->assertFalse($f->isIncrementsOfRanges('1-2')); - $this->assertTrue($f->isIncrementsOfRanges('1/2')); - $this->assertTrue($f->isIncrementsOfRanges('*/2')); - $this->assertTrue($f->isIncrementsOfRanges('3-12/2')); - } - - /** - * @covers \Cron\AbstractField::isInRange - */ - public function testTestsIfInRange() - { - $f = new DayOfWeekField(); - $this->assertTrue($f->isInRange('1', '1-2')); - $this->assertTrue($f->isInRange('2', '1-2')); - $this->assertTrue($f->isInRange('5', '4-12')); - $this->assertFalse($f->isInRange('3', '4-12')); - $this->assertFalse($f->isInRange('13', '4-12')); - } - - /** - * @covers \Cron\AbstractField::isInIncrementsOfRanges - */ - public function testTestsIfInIncrementsOfRangesOnZeroStartRange() - { - $f = new MinutesField(); - $this->assertTrue($f->isInIncrementsOfRanges('3', '3-59/2')); - $this->assertTrue($f->isInIncrementsOfRanges('13', '3-59/2')); - $this->assertTrue($f->isInIncrementsOfRanges('15', '3-59/2')); - $this->assertTrue($f->isInIncrementsOfRanges('14', '*/2')); - $this->assertFalse($f->isInIncrementsOfRanges('2', '3-59/13')); - $this->assertFalse($f->isInIncrementsOfRanges('14', '*/13')); - $this->assertFalse($f->isInIncrementsOfRanges('14', '3-59/2')); - $this->assertFalse($f->isInIncrementsOfRanges('3', '2-59')); - $this->assertFalse($f->isInIncrementsOfRanges('3', '2')); - $this->assertFalse($f->isInIncrementsOfRanges('3', '*')); - $this->assertFalse($f->isInIncrementsOfRanges('0', '*/0')); - $this->assertFalse($f->isInIncrementsOfRanges('1', '*/0')); - - $this->assertTrue($f->isInIncrementsOfRanges('4', '4/1')); - $this->assertFalse($f->isInIncrementsOfRanges('14', '4/1')); - $this->assertFalse($f->isInIncrementsOfRanges('34', '4/1')); - } - - /** - * @covers \Cron\AbstractField::isInIncrementsOfRanges - */ - public function testTestsIfInIncrementsOfRangesOnOneStartRange() - { - $f = new MonthField(); - $this->assertTrue($f->isInIncrementsOfRanges('3', '3-12/2')); - $this->assertFalse($f->isInIncrementsOfRanges('13', '3-12/2')); - $this->assertFalse($f->isInIncrementsOfRanges('15', '3-12/2')); - $this->assertTrue($f->isInIncrementsOfRanges('3', '*/2')); - $this->assertFalse($f->isInIncrementsOfRanges('3', '*/3')); - $this->assertTrue($f->isInIncrementsOfRanges('7', '*/3')); - $this->assertFalse($f->isInIncrementsOfRanges('14', '3-12/2')); - $this->assertFalse($f->isInIncrementsOfRanges('3', '2-12')); - $this->assertFalse($f->isInIncrementsOfRanges('3', '2')); - $this->assertFalse($f->isInIncrementsOfRanges('3', '*')); - $this->assertFalse($f->isInIncrementsOfRanges('0', '*/0')); - $this->assertFalse($f->isInIncrementsOfRanges('1', '*/0')); - - $this->assertTrue($f->isInIncrementsOfRanges('4', '4/1')); - $this->assertFalse($f->isInIncrementsOfRanges('14', '4/1')); - $this->assertFalse($f->isInIncrementsOfRanges('34', '4/1')); - } - - /** - * @covers \Cron\AbstractField::isSatisfied - */ - public function testTestsIfSatisfied() - { - $f = new DayOfWeekField(); - $this->assertTrue($f->isSatisfied('12', '3-13')); - $this->assertFalse($f->isSatisfied('15', '3-7/2')); - $this->assertTrue($f->isSatisfied('12', '*')); - $this->assertTrue($f->isSatisfied('12', '12')); - $this->assertFalse($f->isSatisfied('12', '3-11')); - $this->assertFalse($f->isSatisfied('12', '3-7/2')); - $this->assertFalse($f->isSatisfied('12', '11')); - } - - /** - * Allows ranges and lists to coexist in the same expression - * - * @see https://github.com/dragonmantank/cron-expression/issues/5 - */ - public function testAllowRangesAndLists() - { - $expression = '5-7,11-13'; - $f = new HoursField(); - $this->assertTrue($f->validate($expression)); - } - - /** - * Makes sure that various types of ranges expand out properly - * - * @see https://github.com/dragonmantank/cron-expression/issues/5 - */ - public function testGetRangeForExpressionExpandsCorrectly() - { - $f = new HoursField(); - $this->assertSame([5, 6, 7, 11, 12, 13], $f->getRangeForExpression('5-7,11-13', 23)); - $this->assertSame(['5', '6', '7', '11', '12', '13'], $f->getRangeForExpression('5,6,7,11,12,13', 23)); - $this->assertSame([0, 6, 12, 18], $f->getRangeForExpression('*/6', 23)); - $this->assertSame([5, 11], $f->getRangeForExpression('5-13/6', 23)); - } -} diff --git a/vendor/dragonmantank/cron-expression/tests/Cron/CronExpressionTest.php b/vendor/dragonmantank/cron-expression/tests/Cron/CronExpressionTest.php deleted file mode 100644 index 5d46644b..00000000 --- a/vendor/dragonmantank/cron-expression/tests/Cron/CronExpressionTest.php +++ /dev/null @@ -1,560 +0,0 @@ - - */ -class CronExpressionTest extends TestCase -{ - /** - * @covers \Cron\CronExpression::factory - */ - public function testFactoryRecognizesTemplates() - { - $this->assertSame('0 0 1 1 *', CronExpression::factory('@annually')->getExpression()); - $this->assertSame('0 0 1 1 *', CronExpression::factory('@yearly')->getExpression()); - $this->assertSame('0 0 * * 0', CronExpression::factory('@weekly')->getExpression()); - } - - /** - * @covers \Cron\CronExpression::__construct - * @covers \Cron\CronExpression::getExpression - * @covers \Cron\CronExpression::__toString - */ - public function testParsesCronSchedule() - { - // '2010-09-10 12:00:00' - $cron = CronExpression::factory('1 2-4 * 4,5,6 */3'); - $this->assertSame('1', $cron->getExpression(CronExpression::MINUTE)); - $this->assertSame('2-4', $cron->getExpression(CronExpression::HOUR)); - $this->assertSame('*', $cron->getExpression(CronExpression::DAY)); - $this->assertSame('4,5,6', $cron->getExpression(CronExpression::MONTH)); - $this->assertSame('*/3', $cron->getExpression(CronExpression::WEEKDAY)); - $this->assertSame('1 2-4 * 4,5,6 */3', $cron->getExpression()); - $this->assertSame('1 2-4 * 4,5,6 */3', (string) $cron); - $this->assertNull($cron->getExpression('foo')); - } - - /** - * @covers \Cron\CronExpression::__construct - * @covers \Cron\CronExpression::getExpression - * @covers \Cron\CronExpression::__toString - * @expectedException \InvalidArgumentException - * @expectedExceptionMessage Invalid CRON field value A at position 0 - */ - public function testParsesCronScheduleThrowsAnException() - { - CronExpression::factory('A 1 2 3 4'); - } - - /** - * @covers \Cron\CronExpression::__construct - * @covers \Cron\CronExpression::getExpression - * @dataProvider scheduleWithDifferentSeparatorsProvider - */ - public function testParsesCronScheduleWithAnySpaceCharsAsSeparators($schedule, array $expected) - { - $cron = CronExpression::factory($schedule); - $this->assertSame($expected[0], $cron->getExpression(CronExpression::MINUTE)); - $this->assertSame($expected[1], $cron->getExpression(CronExpression::HOUR)); - $this->assertSame($expected[2], $cron->getExpression(CronExpression::DAY)); - $this->assertSame($expected[3], $cron->getExpression(CronExpression::MONTH)); - $this->assertSame($expected[4], $cron->getExpression(CronExpression::WEEKDAY)); - } - - /** - * Data provider for testParsesCronScheduleWithAnySpaceCharsAsSeparators - * - * @return array - */ - public static function scheduleWithDifferentSeparatorsProvider() - { - return array( - array("*\t*\t*\t*\t*\t", array('*', '*', '*', '*', '*', '*')), - array("* * * * * ", array('*', '*', '*', '*', '*', '*')), - array("* \t * \t * \t * \t * \t", array('*', '*', '*', '*', '*', '*')), - array("*\t \t*\t \t*\t \t*\t \t*\t \t", array('*', '*', '*', '*', '*', '*')), - ); - } - - /** - * @covers \Cron\CronExpression::__construct - * @covers \Cron\CronExpression::setExpression - * @covers \Cron\CronExpression::setPart - * @expectedException InvalidArgumentException - */ - public function testInvalidCronsWillFail() - { - // Only four values - $cron = CronExpression::factory('* * * 1'); - } - - /** - * @covers \Cron\CronExpression::setPart - * @expectedException InvalidArgumentException - */ - public function testInvalidPartsWillFail() - { - // Only four values - $cron = CronExpression::factory('* * * * *'); - $cron->setPart(1, 'abc'); - } - - /** - * Data provider for cron schedule - * - * @return array - */ - public function scheduleProvider() - { - return array( - array('*/2 */2 * * *', '2015-08-10 21:47:27', '2015-08-10 22:00:00', false), - array('* * * * *', '2015-08-10 21:50:37', '2015-08-10 21:50:00', true), - array('* 20,21,22 * * *', '2015-08-10 21:50:00', '2015-08-10 21:50:00', true), - // Handles CSV values - array('* 20,22 * * *', '2015-08-10 21:50:00', '2015-08-10 22:00:00', false), - // CSV values can be complex - array('7-9 * */9 * *', '2015-08-10 22:02:33', '2015-08-10 22:07:00', false), - // 15th minute, of the second hour, every 15 days, in January, every Friday - array('1 * * * 7', '2015-08-10 21:47:27', '2015-08-16 00:01:00', false), - // Test with exact times - array('47 21 * * *', strtotime('2015-08-10 21:47:30'), '2015-08-10 21:47:00', true), - // Test Day of the week (issue #1) - // According cron implementation, 0|7 = sunday, 1 => monday, etc - array('* * * * 0', strtotime('2011-06-15 23:09:00'), '2011-06-19 00:00:00', false), - array('* * * * 7', strtotime('2011-06-15 23:09:00'), '2011-06-19 00:00:00', false), - array('* * * * 1', strtotime('2011-06-15 23:09:00'), '2011-06-20 00:00:00', false), - // Should return the sunday date as 7 equals 0 - array('0 0 * * MON,SUN', strtotime('2011-06-15 23:09:00'), '2011-06-19 00:00:00', false), - array('0 0 * * 1,7', strtotime('2011-06-15 23:09:00'), '2011-06-19 00:00:00', false), - array('0 0 * * 0-4', strtotime('2011-06-15 23:09:00'), '2011-06-16 00:00:00', false), - array('0 0 * * 7-4', strtotime('2011-06-15 23:09:00'), '2011-06-16 00:00:00', false), - array('0 0 * * 4-7', strtotime('2011-06-15 23:09:00'), '2011-06-16 00:00:00', false), - array('0 0 * * 7-3', strtotime('2011-06-15 23:09:00'), '2011-06-19 00:00:00', false), - array('0 0 * * 3-7', strtotime('2011-06-15 23:09:00'), '2011-06-16 00:00:00', false), - array('0 0 * * 3-7', strtotime('2011-06-18 23:09:00'), '2011-06-19 00:00:00', false), - // Test lists of values and ranges (Abhoryo) - array('0 0 * * 2-7', strtotime('2011-06-20 23:09:00'), '2011-06-21 00:00:00', false), - array('0 0 * * 2-7', strtotime('2011-06-18 23:09:00'), '2011-06-19 00:00:00', false), - array('0 0 * * 4-7', strtotime('2011-07-19 00:00:00'), '2011-07-21 00:00:00', false), - // Test increments of ranges - array('0-12/4 * * * *', strtotime('2011-06-20 12:04:00'), '2011-06-20 12:04:00', true), - array('4-59/2 * * * *', strtotime('2011-06-20 12:04:00'), '2011-06-20 12:04:00', true), - array('4-59/2 * * * *', strtotime('2011-06-20 12:06:00'), '2011-06-20 12:06:00', true), - array('4-59/3 * * * *', strtotime('2011-06-20 12:06:00'), '2011-06-20 12:07:00', false), - // Test Day of the Week and the Day of the Month (issue #1) - array('0 0 1 1 0', strtotime('2011-06-15 23:09:00'), '2012-01-01 00:00:00', false), - array('0 0 1 JAN 0', strtotime('2011-06-15 23:09:00'), '2012-01-01 00:00:00', false), - array('0 0 1 * 0', strtotime('2011-06-15 23:09:00'), '2012-01-01 00:00:00', false), - // Test the W day of the week modifier for day of the month field - array('0 0 2W * *', strtotime('2011-07-01 00:00:00'), '2011-07-01 00:00:00', true), - array('0 0 1W * *', strtotime('2011-05-01 00:00:00'), '2011-05-02 00:00:00', false), - array('0 0 1W * *', strtotime('2011-07-01 00:00:00'), '2011-07-01 00:00:00', true), - array('0 0 3W * *', strtotime('2011-07-01 00:00:00'), '2011-07-04 00:00:00', false), - array('0 0 16W * *', strtotime('2011-07-01 00:00:00'), '2011-07-15 00:00:00', false), - array('0 0 28W * *', strtotime('2011-07-01 00:00:00'), '2011-07-28 00:00:00', false), - array('0 0 30W * *', strtotime('2011-07-01 00:00:00'), '2011-07-29 00:00:00', false), - array('0 0 31W * *', strtotime('2011-07-01 00:00:00'), '2011-07-29 00:00:00', false), - // Test the last weekday of a month - array('* * * * 5L', strtotime('2011-07-01 00:00:00'), '2011-07-29 00:00:00', false), - array('* * * * 6L', strtotime('2011-07-01 00:00:00'), '2011-07-30 00:00:00', false), - array('* * * * 7L', strtotime('2011-07-01 00:00:00'), '2011-07-31 00:00:00', false), - array('* * * * 1L', strtotime('2011-07-24 00:00:00'), '2011-07-25 00:00:00', false), - array('* * * 1 5L', strtotime('2011-12-25 00:00:00'), '2012-01-27 00:00:00', false), - // Test the hash symbol for the nth weekday of a given month - array('* * * * 5#2', strtotime('2011-07-01 00:00:00'), '2011-07-08 00:00:00', false), - array('* * * * 5#1', strtotime('2011-07-01 00:00:00'), '2011-07-01 00:00:00', true), - array('* * * * 3#4', strtotime('2011-07-01 00:00:00'), '2011-07-27 00:00:00', false), - - // Issue #7, documented example failed - ['3-59/15 6-12 */15 1 2-5', strtotime('2017-01-08 00:00:00'), '2017-01-31 06:03:00', false], - - // https://github.com/laravel/framework/commit/07d160ac3cc9764d5b429734ffce4fa311385403 - ['* * * * MON-FRI', strtotime('2017-01-08 00:00:00'), strtotime('2017-01-09 00:00:00'), false], - ['* * * * TUE', strtotime('2017-01-08 00:00:00'), strtotime('2017-01-10 00:00:00'), false], - ); - } - - /** - * @covers \Cron\CronExpression::isDue - * @covers \Cron\CronExpression::getNextRunDate - * @covers \Cron\DayOfMonthField - * @covers \Cron\DayOfWeekField - * @covers \Cron\MinutesField - * @covers \Cron\HoursField - * @covers \Cron\MonthField - * @covers \Cron\CronExpression::getRunDate - * @dataProvider scheduleProvider - */ - public function testDeterminesIfCronIsDue($schedule, $relativeTime, $nextRun, $isDue) - { - $relativeTimeString = is_int($relativeTime) ? date('Y-m-d H:i:s', $relativeTime) : $relativeTime; - - // Test next run date - $cron = CronExpression::factory($schedule); - if (is_string($relativeTime)) { - $relativeTime = new DateTime($relativeTime); - } elseif (is_int($relativeTime)) { - $relativeTime = date('Y-m-d H:i:s', $relativeTime); - } - - if (is_string($nextRun)) { - $nextRunDate = new DateTime($nextRun); - } elseif (is_int($nextRun)) { - $nextRunDate = new DateTime(); - $nextRunDate->setTimestamp($nextRun); - } - $this->assertSame($isDue, $cron->isDue($relativeTime)); - $next = $cron->getNextRunDate($relativeTime, 0, true); - - $this->assertEquals($nextRunDate, $next); - } - - /** - * @covers \Cron\CronExpression::isDue - */ - public function testIsDueHandlesDifferentDates() - { - $cron = CronExpression::factory('* * * * *'); - $this->assertTrue($cron->isDue()); - $this->assertTrue($cron->isDue('now')); - $this->assertTrue($cron->isDue(new DateTime('now'))); - $this->assertTrue($cron->isDue(date('Y-m-d H:i'))); - } - - /** - * @covers \Cron\CronExpression::isDue - */ - public function testIsDueHandlesDifferentDefaultTimezones() - { - $originalTimezone = date_default_timezone_get(); - $cron = CronExpression::factory('0 15 * * 3'); //Wednesday at 15:00 - $date = '2014-01-01 15:00'; //Wednesday - - date_default_timezone_set('UTC'); - $this->assertTrue($cron->isDue(new DateTime($date), 'UTC')); - $this->assertFalse($cron->isDue(new DateTime($date), 'Europe/Amsterdam')); - $this->assertFalse($cron->isDue(new DateTime($date), 'Asia/Tokyo')); - - date_default_timezone_set('Europe/Amsterdam'); - $this->assertFalse($cron->isDue(new DateTime($date), 'UTC')); - $this->assertTrue($cron->isDue(new DateTime($date), 'Europe/Amsterdam')); - $this->assertFalse($cron->isDue(new DateTime($date), 'Asia/Tokyo')); - - date_default_timezone_set('Asia/Tokyo'); - $this->assertFalse($cron->isDue(new DateTime($date), 'UTC')); - $this->assertFalse($cron->isDue(new DateTime($date), 'Europe/Amsterdam')); - $this->assertTrue($cron->isDue(new DateTime($date), 'Asia/Tokyo')); - - date_default_timezone_set($originalTimezone); - } - - /** - * @covers \Cron\CronExpression::isDue - */ - public function testIsDueHandlesDifferentSuppliedTimezones() - { - $cron = CronExpression::factory('0 15 * * 3'); //Wednesday at 15:00 - $date = '2014-01-01 15:00'; //Wednesday - - $this->assertTrue($cron->isDue(new DateTime($date, new DateTimeZone('UTC')), 'UTC')); - $this->assertFalse($cron->isDue(new DateTime($date, new DateTimeZone('UTC')), 'Europe/Amsterdam')); - $this->assertFalse($cron->isDue(new DateTime($date, new DateTimeZone('UTC')), 'Asia/Tokyo')); - - $this->assertFalse($cron->isDue(new DateTime($date, new DateTimeZone('Europe/Amsterdam')), 'UTC')); - $this->assertTrue($cron->isDue(new DateTime($date, new DateTimeZone('Europe/Amsterdam')), 'Europe/Amsterdam')); - $this->assertFalse($cron->isDue(new DateTime($date, new DateTimeZone('Europe/Amsterdam')), 'Asia/Tokyo')); - - $this->assertFalse($cron->isDue(new DateTime($date, new DateTimeZone('Asia/Tokyo')), 'UTC')); - $this->assertFalse($cron->isDue(new DateTime($date, new DateTimeZone('Asia/Tokyo')), 'Europe/Amsterdam')); - $this->assertTrue($cron->isDue(new DateTime($date, new DateTimeZone('Asia/Tokyo')), 'Asia/Tokyo')); - } - - /** - * @covers Cron\CronExpression::isDue - */ - public function testIsDueHandlesDifferentTimezonesAsArgument() - { - $cron = CronExpression::factory('0 15 * * 3'); //Wednesday at 15:00 - $date = '2014-01-01 15:00'; //Wednesday - $utc = new \DateTimeZone('UTC'); - $amsterdam = new \DateTimeZone('Europe/Amsterdam'); - $tokyo = new \DateTimeZone('Asia/Tokyo'); - $this->assertTrue($cron->isDue(new DateTime($date, $utc), 'UTC')); - $this->assertFalse($cron->isDue(new DateTime($date, $amsterdam), 'UTC')); - $this->assertFalse($cron->isDue(new DateTime($date, $tokyo), 'UTC')); - $this->assertFalse($cron->isDue(new DateTime($date, $utc), 'Europe/Amsterdam')); - $this->assertTrue($cron->isDue(new DateTime($date, $amsterdam), 'Europe/Amsterdam')); - $this->assertFalse($cron->isDue(new DateTime($date, $tokyo), 'Europe/Amsterdam')); - $this->assertFalse($cron->isDue(new DateTime($date, $utc), 'Asia/Tokyo')); - $this->assertFalse($cron->isDue(new DateTime($date, $amsterdam), 'Asia/Tokyo')); - $this->assertTrue($cron->isDue(new DateTime($date, $tokyo), 'Asia/Tokyo')); - } - - /** - * @covers Cron\CronExpression::isDue - */ - public function testRecognisesTimezonesAsPartOfDateTime() - { - $cron = CronExpression::factory("0 7 * * *"); - $tzCron = "America/New_York"; - $tzServer = new \DateTimeZone("Europe/London"); - - $dtCurrent = \DateTime::createFromFormat("!Y-m-d H:i:s", "2017-10-17 10:00:00", $tzServer); - $dtPrev = $cron->getPreviousRunDate($dtCurrent, 0, true, $tzCron); - $this->assertEquals('1508151600 : 2017-10-16T07:00:00-04:00 : America/New_York', $dtPrev->format("U \: c \: e")); - - $dtCurrent = \DateTimeImmutable::createFromFormat("!Y-m-d H:i:s", "2017-10-17 10:00:00", $tzServer); - $dtPrev = $cron->getPreviousRunDate($dtCurrent, 0, true, $tzCron); - $this->assertEquals('1508151600 : 2017-10-16T07:00:00-04:00 : America/New_York', $dtPrev->format("U \: c \: e")); - - $dtCurrent = \DateTimeImmutable::createFromFormat("!Y-m-d H:i:s", "2017-10-17 10:00:00", $tzServer); - $dtPrev = $cron->getPreviousRunDate($dtCurrent->format("c"), 0, true, $tzCron); - $this->assertEquals('1508151600 : 2017-10-16T07:00:00-04:00 : America/New_York', $dtPrev->format("U \: c \: e")); - - $dtCurrent = \DateTimeImmutable::createFromFormat("!Y-m-d H:i:s", "2017-10-17 10:00:00", $tzServer); - $dtPrev = $cron->getPreviousRunDate($dtCurrent->format("\@U"), 0, true, $tzCron); - $this->assertEquals('1508151600 : 2017-10-16T07:00:00-04:00 : America/New_York', $dtPrev->format("U \: c \: e")); - - } - - - /** - * @covers \Cron\CronExpression::getPreviousRunDate - */ - public function testCanGetPreviousRunDates() - { - $cron = CronExpression::factory('* * * * *'); - $next = $cron->getNextRunDate('now'); - $two = $cron->getNextRunDate('now', 1); - $this->assertEquals($next, $cron->getPreviousRunDate($two)); - - $cron = CronExpression::factory('* */2 * * *'); - $next = $cron->getNextRunDate('now'); - $two = $cron->getNextRunDate('now', 1); - $this->assertEquals($next, $cron->getPreviousRunDate($two)); - - $cron = CronExpression::factory('* * * */2 *'); - $next = $cron->getNextRunDate('now'); - $two = $cron->getNextRunDate('now', 1); - $this->assertEquals($next, $cron->getPreviousRunDate($two)); - } - - /** - * @covers \Cron\CronExpression::getMultipleRunDates - */ - public function testProvidesMultipleRunDates() - { - $cron = CronExpression::factory('*/2 * * * *'); - $this->assertEquals(array( - new DateTime('2008-11-09 00:00:00'), - new DateTime('2008-11-09 00:02:00'), - new DateTime('2008-11-09 00:04:00'), - new DateTime('2008-11-09 00:06:00') - ), $cron->getMultipleRunDates(4, '2008-11-09 00:00:00', false, true)); - } - - /** - * @covers \Cron\CronExpression::getMultipleRunDates - * @covers \Cron\CronExpression::setMaxIterationCount - */ - public function testProvidesMultipleRunDatesForTheFarFuture() { - // Fails with the default 1000 iteration limit - $cron = CronExpression::factory('0 0 12 1 *'); - $cron->setMaxIterationCount(2000); - $this->assertEquals(array( - new DateTime('2016-01-12 00:00:00'), - new DateTime('2017-01-12 00:00:00'), - new DateTime('2018-01-12 00:00:00'), - new DateTime('2019-01-12 00:00:00'), - new DateTime('2020-01-12 00:00:00'), - new DateTime('2021-01-12 00:00:00'), - new DateTime('2022-01-12 00:00:00'), - new DateTime('2023-01-12 00:00:00'), - new DateTime('2024-01-12 00:00:00'), - ), $cron->getMultipleRunDates(9, '2015-04-28 00:00:00', false, true)); - } - - /** - * @covers \Cron\CronExpression - */ - public function testCanIterateOverNextRuns() - { - $cron = CronExpression::factory('@weekly'); - $nextRun = $cron->getNextRunDate("2008-11-09 08:00:00"); - $this->assertEquals($nextRun, new DateTime("2008-11-16 00:00:00")); - - // true is cast to 1 - $nextRun = $cron->getNextRunDate("2008-11-09 00:00:00", true, true); - $this->assertEquals($nextRun, new DateTime("2008-11-16 00:00:00")); - - // You can iterate over them - $nextRun = $cron->getNextRunDate($cron->getNextRunDate("2008-11-09 00:00:00", 1, true), 1, true); - $this->assertEquals($nextRun, new DateTime("2008-11-23 00:00:00")); - - // You can skip more than one - $nextRun = $cron->getNextRunDate("2008-11-09 00:00:00", 2, true); - $this->assertEquals($nextRun, new DateTime("2008-11-23 00:00:00")); - $nextRun = $cron->getNextRunDate("2008-11-09 00:00:00", 3, true); - $this->assertEquals($nextRun, new DateTime("2008-11-30 00:00:00")); - } - - /** - * @covers \Cron\CronExpression::getRunDate - */ - public function testSkipsCurrentDateByDefault() - { - $cron = CronExpression::factory('* * * * *'); - $current = new DateTime('now'); - $next = $cron->getNextRunDate($current); - $nextPrev = $cron->getPreviousRunDate($next); - $this->assertSame($current->format('Y-m-d H:i:00'), $nextPrev->format('Y-m-d H:i:s')); - } - - /** - * @covers \Cron\CronExpression::getRunDate - * @ticket 7 - */ - public function testStripsForSeconds() - { - $cron = CronExpression::factory('* * * * *'); - $current = new DateTime('2011-09-27 10:10:54'); - $this->assertSame('2011-09-27 10:11:00', $cron->getNextRunDate($current)->format('Y-m-d H:i:s')); - } - - /** - * @covers \Cron\CronExpression::getRunDate - */ - public function testFixesPhpBugInDateIntervalMonth() - { - $cron = CronExpression::factory('0 0 27 JAN *'); - $this->assertSame('2011-01-27 00:00:00', $cron->getPreviousRunDate('2011-08-22 00:00:00')->format('Y-m-d H:i:s')); - } - - public function testIssue29() - { - $cron = CronExpression::factory('@weekly'); - $this->assertSame( - '2013-03-10 00:00:00', - $cron->getPreviousRunDate('2013-03-17 00:00:00')->format('Y-m-d H:i:s') - ); - } - - /** - * @see https://github.com/mtdowling/cron-expression/issues/20 - */ - public function testIssue20() { - $e = CronExpression::factory('* * * * MON#1'); - $this->assertTrue($e->isDue(new DateTime('2014-04-07 00:00:00'))); - $this->assertFalse($e->isDue(new DateTime('2014-04-14 00:00:00'))); - $this->assertFalse($e->isDue(new DateTime('2014-04-21 00:00:00'))); - - $e = CronExpression::factory('* * * * SAT#2'); - $this->assertFalse($e->isDue(new DateTime('2014-04-05 00:00:00'))); - $this->assertTrue($e->isDue(new DateTime('2014-04-12 00:00:00'))); - $this->assertFalse($e->isDue(new DateTime('2014-04-19 00:00:00'))); - - $e = CronExpression::factory('* * * * SUN#3'); - $this->assertFalse($e->isDue(new DateTime('2014-04-13 00:00:00'))); - $this->assertTrue($e->isDue(new DateTime('2014-04-20 00:00:00'))); - $this->assertFalse($e->isDue(new DateTime('2014-04-27 00:00:00'))); - } - - /** - * @covers \Cron\CronExpression::getRunDate - */ - public function testKeepOriginalTime() - { - $now = new \DateTime; - $strNow = $now->format(DateTime::ISO8601); - $cron = CronExpression::factory('0 0 * * *'); - $cron->getPreviousRunDate($now); - $this->assertSame($strNow, $now->format(DateTime::ISO8601)); - } - - /** - * @covers \Cron\CronExpression::__construct - * @covers \Cron\CronExpression::factory - * @covers \Cron\CronExpression::isValidExpression - * @covers \Cron\CronExpression::setExpression - * @covers \Cron\CronExpression::setPart - */ - public function testValidationWorks() - { - // Invalid. Only four values - $this->assertFalse(CronExpression::isValidExpression('* * * 1')); - // Valid - $this->assertTrue(CronExpression::isValidExpression('* * * * 1')); - - // Issue #156, 13 is an invalid month - $this->assertFalse(CronExpression::isValidExpression("* * * 13 * ")); - - // Issue #155, 90 is an invalid second - $this->assertFalse(CronExpression::isValidExpression('90 * * * *')); - - // Issue #154, 24 is an invalid hour - $this->assertFalse(CronExpression::isValidExpression("0 24 1 12 0")); - - // Issue #125, this is just all sorts of wrong - $this->assertFalse(CronExpression::isValidExpression('990 14 * * mon-fri0345345')); - - // see https://github.com/dragonmantank/cron-expression/issues/5 - $this->assertTrue(CronExpression::isValidExpression('2,17,35,47 5-7,11-13 * * *')); - } - - /** - * Makes sure that 00 is considered a valid value for 0-based fields - * cronie allows numbers with a leading 0, so adding support for this as well - * - * @see https://github.com/dragonmantank/cron-expression/issues/12 - */ - public function testDoubleZeroIsValid() - { - $this->assertTrue(CronExpression::isValidExpression('00 * * * *')); - $this->assertTrue(CronExpression::isValidExpression('01 * * * *')); - $this->assertTrue(CronExpression::isValidExpression('* 00 * * *')); - $this->assertTrue(CronExpression::isValidExpression('* 01 * * *')); - - $e = CronExpression::factory('00 * * * *'); - $this->assertTrue($e->isDue(new DateTime('2014-04-07 00:00:00'))); - $e = CronExpression::factory('01 * * * *'); - $this->assertTrue($e->isDue(new DateTime('2014-04-07 00:01:00'))); - - $e = CronExpression::factory('* 00 * * *'); - $this->assertTrue($e->isDue(new DateTime('2014-04-07 00:00:00'))); - $e = CronExpression::factory('* 01 * * *'); - $this->assertTrue($e->isDue(new DateTime('2014-04-07 01:00:00'))); - } - - - /** - * Ranges with large steps should "wrap around" to the appropriate value - * cronie allows for steps that are larger than the range of a field, with it wrapping around like a ring buffer. We - * should do the same. - * - * @see https://github.com/dragonmantank/cron-expression/issues/6 - */ - public function testRangesWrapAroundWithLargeSteps() - { - $f = new MonthField(); - $this->assertTrue($f->validate('*/123')); - $this->assertSame([4], $f->getRangeForExpression('*/123', 12)); - - $e = CronExpression::factory('* * * */123 *'); - $this->assertTrue($e->isDue(new DateTime('2014-04-07 00:00:00'))); - - $nextRunDate = $e->getNextRunDate(new DateTime('2014-04-07 00:00:00')); - $this->assertSame('2014-04-07 00:01:00', $nextRunDate->format('Y-m-d H:i:s')); - - $nextRunDate = $e->getNextRunDate(new DateTime('2014-05-07 00:00:00')); - $this->assertSame('2015-04-01 00:00:00', $nextRunDate->format('Y-m-d H:i:s')); - } -} diff --git a/vendor/dragonmantank/cron-expression/tests/Cron/DayOfMonthFieldTest.php b/vendor/dragonmantank/cron-expression/tests/Cron/DayOfMonthFieldTest.php deleted file mode 100644 index 0dae4ed6..00000000 --- a/vendor/dragonmantank/cron-expression/tests/Cron/DayOfMonthFieldTest.php +++ /dev/null @@ -1,64 +0,0 @@ - - */ -class DayOfMonthFieldTest extends TestCase -{ - /** - * @covers \Cron\DayOfMonthField::validate - */ - public function testValidatesField() - { - $f = new DayOfMonthField(); - $this->assertTrue($f->validate('1')); - $this->assertTrue($f->validate('*')); - $this->assertTrue($f->validate('L')); - $this->assertTrue($f->validate('5W')); - $this->assertTrue($f->validate('01')); - $this->assertFalse($f->validate('5W,L')); - $this->assertFalse($f->validate('1.')); - } - - /** - * @covers \Cron\DayOfMonthField::isSatisfiedBy - */ - public function testChecksIfSatisfied() - { - $f = new DayOfMonthField(); - $this->assertTrue($f->isSatisfiedBy(new DateTime(), '?')); - } - - /** - * @covers \Cron\DayOfMonthField::increment - */ - public function testIncrementsDate() - { - $d = new DateTime('2011-03-15 11:15:00'); - $f = new DayOfMonthField(); - $f->increment($d); - $this->assertSame('2011-03-16 00:00:00', $d->format('Y-m-d H:i:s')); - - $d = new DateTime('2011-03-15 11:15:00'); - $f->increment($d, true); - $this->assertSame('2011-03-14 23:59:00', $d->format('Y-m-d H:i:s')); - } - - /** - * Day of the month cannot accept a 0 value, it must be between 1 and 31 - * See Github issue #120 - * - * @since 2017-01-22 - */ - public function testDoesNotAccept0Date() - { - $f = new DayOfMonthField(); - $this->assertFalse($f->validate(0)); - } -} diff --git a/vendor/dragonmantank/cron-expression/tests/Cron/DayOfWeekFieldTest.php b/vendor/dragonmantank/cron-expression/tests/Cron/DayOfWeekFieldTest.php deleted file mode 100644 index d27c34df..00000000 --- a/vendor/dragonmantank/cron-expression/tests/Cron/DayOfWeekFieldTest.php +++ /dev/null @@ -1,129 +0,0 @@ - - */ -class DayOfWeekFieldTest extends TestCase -{ - /** - * @covers \Cron\DayOfWeekField::validate - */ - public function testValidatesField() - { - $f = new DayOfWeekField(); - $this->assertTrue($f->validate('1')); - $this->assertTrue($f->validate('01')); - $this->assertTrue($f->validate('00')); - $this->assertTrue($f->validate('*')); - $this->assertFalse($f->validate('*/3,1,1-12')); - $this->assertTrue($f->validate('SUN-2')); - $this->assertFalse($f->validate('1.')); - } - - /** - * @covers \Cron\DayOfWeekField::isSatisfiedBy - */ - public function testChecksIfSatisfied() - { - $f = new DayOfWeekField(); - $this->assertTrue($f->isSatisfiedBy(new DateTime(), '?')); - } - - /** - * @covers \Cron\DayOfWeekField::increment - */ - public function testIncrementsDate() - { - $d = new DateTime('2011-03-15 11:15:00'); - $f = new DayOfWeekField(); - $f->increment($d); - $this->assertSame('2011-03-16 00:00:00', $d->format('Y-m-d H:i:s')); - - $d = new DateTime('2011-03-15 11:15:00'); - $f->increment($d, true); - $this->assertSame('2011-03-14 23:59:00', $d->format('Y-m-d H:i:s')); - } - - /** - * @covers \Cron\DayOfWeekField::isSatisfiedBy - * @expectedException InvalidArgumentException - * @expectedExceptionMessage Weekday must be a value between 0 and 7. 12 given - */ - public function testValidatesHashValueWeekday() - { - $f = new DayOfWeekField(); - $this->assertTrue($f->isSatisfiedBy(new DateTime(), '12#1')); - } - - /** - * @covers \Cron\DayOfWeekField::isSatisfiedBy - * @expectedException InvalidArgumentException - * @expectedExceptionMessage There are never more than 5 or less than 1 of a given weekday in a month - */ - public function testValidatesHashValueNth() - { - $f = new DayOfWeekField(); - $this->assertTrue($f->isSatisfiedBy(new DateTime(), '3#6')); - } - - /** - * @covers \Cron\DayOfWeekField::validate - */ - public function testValidateWeekendHash() - { - $f = new DayOfWeekField(); - $this->assertTrue($f->validate('MON#1')); - $this->assertTrue($f->validate('TUE#2')); - $this->assertTrue($f->validate('WED#3')); - $this->assertTrue($f->validate('THU#4')); - $this->assertTrue($f->validate('FRI#5')); - $this->assertTrue($f->validate('SAT#1')); - $this->assertTrue($f->validate('SUN#3')); - $this->assertTrue($f->validate('MON#1,MON#3')); - } - - /** - * @covers \Cron\DayOfWeekField::isSatisfiedBy - */ - public function testHandlesZeroAndSevenDayOfTheWeekValues() - { - $f = new DayOfWeekField(); - $this->assertTrue($f->isSatisfiedBy(new DateTime('2011-09-04 00:00:00'), '0-2')); - $this->assertTrue($f->isSatisfiedBy(new DateTime('2011-09-04 00:00:00'), '6-0')); - - $this->assertTrue($f->isSatisfiedBy(new DateTime('2014-04-20 00:00:00'), 'SUN')); - $this->assertTrue($f->isSatisfiedBy(new DateTime('2014-04-20 00:00:00'), 'SUN#3')); - $this->assertTrue($f->isSatisfiedBy(new DateTime('2014-04-20 00:00:00'), '0#3')); - $this->assertTrue($f->isSatisfiedBy(new DateTime('2014-04-20 00:00:00'), '7#3')); - } - - /** - * @see https://github.com/mtdowling/cron-expression/issues/47 - */ - public function testIssue47() { - $f = new DayOfWeekField(); - $this->assertFalse($f->validate('mon,')); - $this->assertFalse($f->validate('mon-')); - $this->assertFalse($f->validate('*/2,')); - $this->assertFalse($f->validate('-mon')); - $this->assertFalse($f->validate(',1')); - $this->assertFalse($f->validate('*-')); - $this->assertFalse($f->validate(',-')); - } - - /** - * @see https://github.com/laravel/framework/commit/07d160ac3cc9764d5b429734ffce4fa311385403 - */ - public function testLiteralsExpandProperly() - { - $f = new DayOfWeekField(); - $this->assertTrue($f->validate('MON-FRI')); - $this->assertSame([1,2,3,4,5], $f->getRangeForExpression('MON-FRI', 7)); - } -} diff --git a/vendor/dragonmantank/cron-expression/tests/Cron/FieldFactoryTest.php b/vendor/dragonmantank/cron-expression/tests/Cron/FieldFactoryTest.php deleted file mode 100644 index a6e66b0e..00000000 --- a/vendor/dragonmantank/cron-expression/tests/Cron/FieldFactoryTest.php +++ /dev/null @@ -1,42 +0,0 @@ - - */ -class FieldFactoryTest extends TestCase -{ - /** - * @covers \Cron\FieldFactory::getField - */ - public function testRetrievesFieldInstances() - { - $mappings = array( - 0 => 'Cron\MinutesField', - 1 => 'Cron\HoursField', - 2 => 'Cron\DayOfMonthField', - 3 => 'Cron\MonthField', - 4 => 'Cron\DayOfWeekField', - ); - - $f = new FieldFactory(); - - foreach ($mappings as $position => $class) { - $this->assertSame($class, get_class($f->getField($position))); - } - } - - /** - * @covers \Cron\FieldFactory::getField - * @expectedException InvalidArgumentException - */ - public function testValidatesFieldPosition() - { - $f = new FieldFactory(); - $f->getField(-1); - } -} diff --git a/vendor/dragonmantank/cron-expression/tests/Cron/HoursFieldTest.php b/vendor/dragonmantank/cron-expression/tests/Cron/HoursFieldTest.php deleted file mode 100644 index e936d11a..00000000 --- a/vendor/dragonmantank/cron-expression/tests/Cron/HoursFieldTest.php +++ /dev/null @@ -1,77 +0,0 @@ - - */ -class HoursFieldTest extends TestCase -{ - /** - * @covers \Cron\HoursField::validate - */ - public function testValidatesField() - { - $f = new HoursField(); - $this->assertTrue($f->validate('1')); - $this->assertTrue($f->validate('00')); - $this->assertTrue($f->validate('01')); - $this->assertTrue($f->validate('*')); - $this->assertFalse($f->validate('*/3,1,1-12')); - } - - /** - * @covers \Cron\HoursField::increment - */ - public function testIncrementsDate() - { - $d = new DateTime('2011-03-15 11:15:00'); - $f = new HoursField(); - $f->increment($d); - $this->assertSame('2011-03-15 12:00:00', $d->format('Y-m-d H:i:s')); - - $d->setTime(11, 15, 0); - $f->increment($d, true); - $this->assertSame('2011-03-15 10:59:00', $d->format('Y-m-d H:i:s')); - } - - /** - * @covers \Cron\HoursField::increment - */ - public function testIncrementsDateWithThirtyMinuteOffsetTimezone() - { - $tz = date_default_timezone_get(); - date_default_timezone_set('America/St_Johns'); - $d = new DateTime('2011-03-15 11:15:00'); - $f = new HoursField(); - $f->increment($d); - $this->assertSame('2011-03-15 12:00:00', $d->format('Y-m-d H:i:s')); - - $d->setTime(11, 15, 0); - $f->increment($d, true); - $this->assertSame('2011-03-15 10:59:00', $d->format('Y-m-d H:i:s')); - date_default_timezone_set($tz); - } - - /** - * @covers \Cron\HoursField::increment - */ - public function testIncrementDateWithFifteenMinuteOffsetTimezone() - { - $tz = date_default_timezone_get(); - date_default_timezone_set('Asia/Kathmandu'); - $d = new DateTime('2011-03-15 11:15:00'); - $f = new HoursField(); - $f->increment($d); - $this->assertSame('2011-03-15 12:00:00', $d->format('Y-m-d H:i:s')); - - $d->setTime(11, 15, 0); - $f->increment($d, true); - $this->assertSame('2011-03-15 10:59:00', $d->format('Y-m-d H:i:s')); - date_default_timezone_set($tz); - } -} diff --git a/vendor/dragonmantank/cron-expression/tests/Cron/MinutesFieldTest.php b/vendor/dragonmantank/cron-expression/tests/Cron/MinutesFieldTest.php deleted file mode 100644 index b91bffac..00000000 --- a/vendor/dragonmantank/cron-expression/tests/Cron/MinutesFieldTest.php +++ /dev/null @@ -1,51 +0,0 @@ - - */ -class MinutesFieldTest extends TestCase -{ - /** - * @covers \Cron\MinutesField::validate - */ - public function testValidatesField() - { - $f = new MinutesField(); - $this->assertTrue($f->validate('1')); - $this->assertTrue($f->validate('*')); - $this->assertFalse($f->validate('*/3,1,1-12')); - } - - /** - * @covers \Cron\MinutesField::increment - */ - public function testIncrementsDate() - { - $d = new DateTime('2011-03-15 11:15:00'); - $f = new MinutesField(); - $f->increment($d); - $this->assertSame('2011-03-15 11:16:00', $d->format('Y-m-d H:i:s')); - $f->increment($d, true); - $this->assertSame('2011-03-15 11:15:00', $d->format('Y-m-d H:i:s')); - } - - /** - * Various bad syntaxes that are reported to work, but shouldn't. - * - * @author Chris Tankersley - * @since 2017-08-18 - */ - public function testBadSyntaxesShouldNotValidate() - { - $f = new MinutesField(); - $this->assertFalse($f->validate('*-1')); - $this->assertFalse($f->validate('1-2-3')); - $this->assertFalse($f->validate('-1')); - } -} diff --git a/vendor/dragonmantank/cron-expression/tests/Cron/MonthFieldTest.php b/vendor/dragonmantank/cron-expression/tests/Cron/MonthFieldTest.php deleted file mode 100644 index 83f0f164..00000000 --- a/vendor/dragonmantank/cron-expression/tests/Cron/MonthFieldTest.php +++ /dev/null @@ -1,81 +0,0 @@ - - */ -class MonthFieldTest extends TestCase -{ - /** - * @covers \Cron\MonthField::validate - */ - public function testValidatesField() - { - $f = new MonthField(); - $this->assertTrue($f->validate('12')); - $this->assertTrue($f->validate('*')); - $this->assertFalse($f->validate('*/10,2,1-12')); - $this->assertFalse($f->validate('1.fix-regexp')); - } - - /** - * @covers \Cron\MonthField::increment - */ - public function testIncrementsDate() - { - $d = new DateTime('2011-03-15 11:15:00'); - $f = new MonthField(); - $f->increment($d); - $this->assertSame('2011-04-01 00:00:00', $d->format('Y-m-d H:i:s')); - - $d = new DateTime('2011-03-15 11:15:00'); - $f->increment($d, true); - $this->assertSame('2011-02-28 23:59:00', $d->format('Y-m-d H:i:s')); - } - - /** - * @covers \Cron\MonthField::increment - */ - public function testIncrementsDateWithThirtyMinuteTimezone() - { - $tz = date_default_timezone_get(); - date_default_timezone_set('America/St_Johns'); - $d = new DateTime('2011-03-31 11:59:59'); - $f = new MonthField(); - $f->increment($d); - $this->assertSame('2011-04-01 00:00:00', $d->format('Y-m-d H:i:s')); - - $d = new DateTime('2011-03-15 11:15:00'); - $f->increment($d, true); - $this->assertSame('2011-02-28 23:59:00', $d->format('Y-m-d H:i:s')); - date_default_timezone_set($tz); - } - - - /** - * @covers \Cron\MonthField::increment - */ - public function testIncrementsYearAsNeeded() - { - $f = new MonthField(); - $d = new DateTime('2011-12-15 00:00:00'); - $f->increment($d); - $this->assertSame('2012-01-01 00:00:00', $d->format('Y-m-d H:i:s')); - } - - /** - * @covers \Cron\MonthField::increment - */ - public function testDecrementsYearAsNeeded() - { - $f = new MonthField(); - $d = new DateTime('2011-01-15 00:00:00'); - $f->increment($d, true); - $this->assertSame('2010-12-31 23:59:00', $d->format('Y-m-d H:i:s')); - } -} diff --git a/vendor/egulias/email-validator/EmailValidator/EmailLexer.php b/vendor/egulias/email-validator/EmailValidator/EmailLexer.php deleted file mode 100644 index 882c9681..00000000 --- a/vendor/egulias/email-validator/EmailValidator/EmailLexer.php +++ /dev/null @@ -1,221 +0,0 @@ - self::S_OPENPARENTHESIS, - ')' => self::S_CLOSEPARENTHESIS, - '<' => self::S_LOWERTHAN, - '>' => self::S_GREATERTHAN, - '[' => self::S_OPENBRACKET, - ']' => self::S_CLOSEBRACKET, - ':' => self::S_COLON, - ';' => self::S_SEMICOLON, - '@' => self::S_AT, - '\\' => self::S_BACKSLASH, - '/' => self::S_SLASH, - ',' => self::S_COMMA, - '.' => self::S_DOT, - '"' => self::S_DQUOTE, - '-' => self::S_HYPHEN, - '::' => self::S_DOUBLECOLON, - ' ' => self::S_SP, - "\t" => self::S_HTAB, - "\r" => self::S_CR, - "\n" => self::S_LF, - "\r\n" => self::CRLF, - 'IPv6' => self::S_IPV6TAG, - '{' => self::S_OPENQBRACKET, - '}' => self::S_CLOSEQBRACKET, - '' => self::S_EMPTY, - '\0' => self::C_NUL, - ); - - protected $hasInvalidTokens = false; - - protected $previous; - - public function reset() - { - $this->hasInvalidTokens = false; - parent::reset(); - } - - public function hasInvalidTokens() - { - return $this->hasInvalidTokens; - } - - /** - * @param $type - * @throws \UnexpectedValueException - * @return boolean - */ - public function find($type) - { - $search = clone $this; - $search->skipUntil($type); - - if (!$search->lookahead) { - throw new \UnexpectedValueException($type . ' not found'); - } - return true; - } - - /** - * getPrevious - * - * @return array token - */ - public function getPrevious() - { - return $this->previous; - } - - /** - * moveNext - * - * @return boolean - */ - public function moveNext() - { - $this->previous = $this->token; - - return parent::moveNext(); - } - - /** - * Lexical catchable patterns. - * - * @return string[] - */ - protected function getCatchablePatterns() - { - return array( - '[a-zA-Z_]+[46]?', //ASCII and domain literal - '[^\x00-\x7F]', //UTF-8 - '[0-9]+', - '\r\n', - '::', - '\s+?', - '.', - ); - } - - /** - * Lexical non-catchable patterns. - * - * @return string[] - */ - protected function getNonCatchablePatterns() - { - return array('[\xA0-\xff]+'); - } - - /** - * Retrieve token type. Also processes the token value if necessary. - * - * @param string $value - * @throws \InvalidArgumentException - * @return integer - */ - protected function getType(&$value) - { - if ($this->isNullType($value)) { - return self::C_NUL; - } - - if ($this->isValid($value)) { - return $this->charValue[$value]; - } - - if ($this->isUTF8Invalid($value)) { - $this->hasInvalidTokens = true; - return self::INVALID; - } - - return self::GENERIC; - } - - protected function isValid($value) - { - if (isset($this->charValue[$value])) { - return true; - } - - return false; - } - - /** - * @param $value - * @return bool - */ - protected function isNullType($value) - { - if ($value === "\0") { - return true; - } - - return false; - } - - /** - * @param $value - * @return bool - */ - protected function isUTF8Invalid($value) - { - if (preg_match('/\p{Cc}+/u', $value)) { - return true; - } - - return false; - } - - protected function getModifiers() - { - return 'iu'; - } -} diff --git a/vendor/egulias/email-validator/EmailValidator/EmailParser.php b/vendor/egulias/email-validator/EmailValidator/EmailParser.php deleted file mode 100644 index d0627d82..00000000 --- a/vendor/egulias/email-validator/EmailValidator/EmailParser.php +++ /dev/null @@ -1,104 +0,0 @@ - - */ -class EmailParser -{ - const EMAIL_MAX_LENGTH = 254; - - protected $warnings; - protected $domainPart = ''; - protected $localPart = ''; - protected $lexer; - protected $localPartParser; - protected $domainPartParser; - - public function __construct(EmailLexer $lexer) - { - $this->lexer = $lexer; - $this->localPartParser = new LocalPart($this->lexer); - $this->domainPartParser = new DomainPart($this->lexer); - $this->warnings = new \SplObjectStorage(); - } - - /** - * @param $str - * @return array - */ - public function parse($str) - { - $this->lexer->setInput($str); - - if (!$this->hasAtToken()) { - throw new NoLocalPart(); - } - - - $this->localPartParser->parse($str); - $this->domainPartParser->parse($str); - - $this->setParts($str); - - if ($this->lexer->hasInvalidTokens()) { - throw new ExpectingATEXT(); - } - - return array('local' => $this->localPart, 'domain' => $this->domainPart); - } - - public function getWarnings() - { - $localPartWarnings = $this->localPartParser->getWarnings(); - $domainPartWarnings = $this->domainPartParser->getWarnings(); - $this->warnings = array_merge($localPartWarnings, $domainPartWarnings); - - $this->addLongEmailWarning($this->localPart, $this->domainPart); - - return $this->warnings; - } - - public function getParsedDomainPart() - { - return $this->domainPart; - } - - protected function setParts($email) - { - $parts = explode('@', $email); - $this->domainPart = $this->domainPartParser->getDomainPart(); - $this->localPart = $parts[0]; - } - - protected function hasAtToken() - { - $this->lexer->moveNext(); - $this->lexer->moveNext(); - if ($this->lexer->token['type'] === EmailLexer::S_AT) { - return false; - } - - return true; - } - - /** - * @param string $localPart - * @param string $parsedDomainPart - */ - protected function addLongEmailWarning($localPart, $parsedDomainPart) - { - if (strlen($localPart . '@' . $parsedDomainPart) > self::EMAIL_MAX_LENGTH) { - $this->warnings[EmailTooLong::CODE] = new EmailTooLong(); - } - } -} diff --git a/vendor/egulias/email-validator/EmailValidator/EmailValidator.php b/vendor/egulias/email-validator/EmailValidator/EmailValidator.php deleted file mode 100644 index 44b4b93c..00000000 --- a/vendor/egulias/email-validator/EmailValidator/EmailValidator.php +++ /dev/null @@ -1,67 +0,0 @@ -lexer = new EmailLexer(); - } - - /** - * @param $email - * @param EmailValidation $emailValidation - * @return bool - */ - public function isValid($email, EmailValidation $emailValidation) - { - $isValid = $emailValidation->isValid($email, $this->lexer); - $this->warnings = $emailValidation->getWarnings(); - $this->error = $emailValidation->getError(); - - return $isValid; - } - - /** - * @return boolean - */ - public function hasWarnings() - { - return !empty($this->warnings); - } - - /** - * @return array - */ - public function getWarnings() - { - return $this->warnings; - } - - /** - * @return InvalidEmail - */ - public function getError() - { - return $this->error; - } -} diff --git a/vendor/egulias/email-validator/EmailValidator/Exception/AtextAfterCFWS.php b/vendor/egulias/email-validator/EmailValidator/Exception/AtextAfterCFWS.php deleted file mode 100644 index 97f41a2c..00000000 --- a/vendor/egulias/email-validator/EmailValidator/Exception/AtextAfterCFWS.php +++ /dev/null @@ -1,9 +0,0 @@ -lexer->moveNext(); - - if ($this->lexer->token['type'] === EmailLexer::S_DOT) { - throw new DotAtStart(); - } - - if ($this->lexer->token['type'] === EmailLexer::S_EMPTY) { - throw new NoDomainPart(); - } - if ($this->lexer->token['type'] === EmailLexer::S_HYPHEN) { - throw new DomainHyphened(); - } - - if ($this->lexer->token['type'] === EmailLexer::S_OPENPARENTHESIS) { - $this->warnings[DeprecatedComment::CODE] = new DeprecatedComment(); - $this->parseDomainComments(); - } - - $domain = $this->doParseDomainPart(); - - $prev = $this->lexer->getPrevious(); - $length = strlen($domain); - - if ($prev['type'] === EmailLexer::S_DOT) { - throw new DotAtEnd(); - } - if ($prev['type'] === EmailLexer::S_HYPHEN) { - throw new DomainHyphened(); - } - if ($length > self::DOMAIN_MAX_LENGTH) { - $this->warnings[DomainTooLong::CODE] = new DomainTooLong(); - } - if ($prev['type'] === EmailLexer::S_CR) { - throw new CRLFAtTheEnd(); - } - $this->domainPart = $domain; - } - - public function getDomainPart() - { - return $this->domainPart; - } - - public function checkIPV6Tag($addressLiteral, $maxGroups = 8) - { - $prev = $this->lexer->getPrevious(); - if ($prev['type'] === EmailLexer::S_COLON) { - $this->warnings[IPV6ColonEnd::CODE] = new IPV6ColonEnd(); - } - - $IPv6 = substr($addressLiteral, 5); - //Daniel Marschall's new IPv6 testing strategy - $matchesIP = explode(':', $IPv6); - $groupCount = count($matchesIP); - $colons = strpos($IPv6, '::'); - - if (count(preg_grep('/^[0-9A-Fa-f]{0,4}$/', $matchesIP, PREG_GREP_INVERT)) !== 0) { - $this->warnings[IPV6BadChar::CODE] = new IPV6BadChar(); - } - - if ($colons === false) { - // We need exactly the right number of groups - if ($groupCount !== $maxGroups) { - $this->warnings[IPV6GroupCount::CODE] = new IPV6GroupCount(); - } - return; - } - - if ($colons !== strrpos($IPv6, '::')) { - $this->warnings[IPV6DoubleColon::CODE] = new IPV6DoubleColon(); - return; - } - - if ($colons === 0 || $colons === (strlen($IPv6) - 2)) { - // RFC 4291 allows :: at the start or end of an address - //with 7 other groups in addition - ++$maxGroups; - } - - if ($groupCount > $maxGroups) { - $this->warnings[IPV6MaxGroups::CODE] = new IPV6MaxGroups(); - } elseif ($groupCount === $maxGroups) { - $this->warnings[IPV6Deprecated::CODE] = new IPV6Deprecated(); - } - } - - protected function doParseDomainPart() - { - $domain = ''; - $openedParenthesis = 0; - do { - $prev = $this->lexer->getPrevious(); - - $this->checkNotAllowedChars($this->lexer->token); - - if ($this->lexer->token['type'] === EmailLexer::S_OPENPARENTHESIS) { - $this->parseComments(); - $openedParenthesis += $this->getOpenedParenthesis(); - $this->lexer->moveNext(); - $tmpPrev = $this->lexer->getPrevious(); - if ($tmpPrev['type'] === EmailLexer::S_CLOSEPARENTHESIS) { - $openedParenthesis--; - } - } - if ($this->lexer->token['type'] === EmailLexer::S_CLOSEPARENTHESIS) { - if ($openedParenthesis === 0) { - throw new UnopenedComment(); - } else { - $openedParenthesis--; - } - } - - $this->checkConsecutiveDots(); - $this->checkDomainPartExceptions($prev); - - if ($this->hasBrackets()) { - $this->parseDomainLiteral(); - } - - $this->checkLabelLength($prev); - - if ($this->isFWS()) { - $this->parseFWS(); - } - - $domain .= $this->lexer->token['value']; - $this->lexer->moveNext(); - } while ($this->lexer->token); - - return $domain; - } - - private function checkNotAllowedChars($token) - { - $notAllowed = [EmailLexer::S_BACKSLASH => true, EmailLexer::S_SLASH=> true]; - if (isset($notAllowed[$token['type']])) { - throw new CharNotAllowed(); - } - } - - protected function parseDomainLiteral() - { - if ($this->lexer->isNextToken(EmailLexer::S_COLON)) { - $this->warnings[IPV6ColonStart::CODE] = new IPV6ColonStart(); - } - if ($this->lexer->isNextToken(EmailLexer::S_IPV6TAG)) { - $lexer = clone $this->lexer; - $lexer->moveNext(); - if ($lexer->isNextToken(EmailLexer::S_DOUBLECOLON)) { - $this->warnings[IPV6ColonStart::CODE] = new IPV6ColonStart(); - } - } - - return $this->doParseDomainLiteral(); - } - - protected function doParseDomainLiteral() - { - $IPv6TAG = false; - $addressLiteral = ''; - do { - if ($this->lexer->token['type'] === EmailLexer::C_NUL) { - throw new ExpectingDTEXT(); - } - - if ($this->lexer->token['type'] === EmailLexer::INVALID || - $this->lexer->token['type'] === EmailLexer::C_DEL || - $this->lexer->token['type'] === EmailLexer::S_LF - ) { - $this->warnings[ObsoleteDTEXT::CODE] = new ObsoleteDTEXT(); - } - - if ($this->lexer->isNextTokenAny(array(EmailLexer::S_OPENQBRACKET, EmailLexer::S_OPENBRACKET))) { - throw new ExpectingDTEXT(); - } - - if ($this->lexer->isNextTokenAny( - array(EmailLexer::S_HTAB, EmailLexer::S_SP, $this->lexer->token['type'] === EmailLexer::CRLF) - )) { - $this->warnings[CFWSWithFWS::CODE] = new CFWSWithFWS(); - $this->parseFWS(); - } - - if ($this->lexer->isNextToken(EmailLexer::S_CR)) { - throw new CRNoLF(); - } - - if ($this->lexer->token['type'] === EmailLexer::S_BACKSLASH) { - $this->warnings[ObsoleteDTEXT::CODE] = new ObsoleteDTEXT(); - $addressLiteral .= $this->lexer->token['value']; - $this->lexer->moveNext(); - $this->validateQuotedPair(); - } - if ($this->lexer->token['type'] === EmailLexer::S_IPV6TAG) { - $IPv6TAG = true; - } - if ($this->lexer->token['type'] === EmailLexer::S_CLOSEQBRACKET) { - break; - } - - $addressLiteral .= $this->lexer->token['value']; - - } while ($this->lexer->moveNext()); - - $addressLiteral = str_replace('[', '', $addressLiteral); - $addressLiteral = $this->checkIPV4Tag($addressLiteral); - - if (false === $addressLiteral) { - return $addressLiteral; - } - - if (!$IPv6TAG) { - $this->warnings[DomainLiteral::CODE] = new DomainLiteral(); - return $addressLiteral; - } - - $this->warnings[AddressLiteral::CODE] = new AddressLiteral(); - - $this->checkIPV6Tag($addressLiteral); - - return $addressLiteral; - } - - protected function checkIPV4Tag($addressLiteral) - { - $matchesIP = array(); - - // Extract IPv4 part from the end of the address-literal (if there is one) - if (preg_match( - '/\\b(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/', - $addressLiteral, - $matchesIP - ) > 0 - ) { - $index = strrpos($addressLiteral, $matchesIP[0]); - if ($index === 0) { - $this->warnings[AddressLiteral::CODE] = new AddressLiteral(); - return false; - } - // Convert IPv4 part to IPv6 format for further testing - $addressLiteral = substr($addressLiteral, 0, $index) . '0:0'; - } - - return $addressLiteral; - } - - protected function checkDomainPartExceptions($prev) - { - $invalidDomainTokens = array( - EmailLexer::S_DQUOTE => true, - EmailLexer::S_SEMICOLON => true, - EmailLexer::S_GREATERTHAN => true, - EmailLexer::S_LOWERTHAN => true, - ); - - if (isset($invalidDomainTokens[$this->lexer->token['type']])) { - throw new ExpectingATEXT(); - } - - if ($this->lexer->token['type'] === EmailLexer::S_COMMA) { - throw new CommaInDomain(); - } - - if ($this->lexer->token['type'] === EmailLexer::S_AT) { - throw new ConsecutiveAt(); - } - - if ($this->lexer->token['type'] === EmailLexer::S_OPENQBRACKET && $prev['type'] !== EmailLexer::S_AT) { - throw new ExpectingATEXT(); - } - - if ($this->lexer->token['type'] === EmailLexer::S_HYPHEN && $this->lexer->isNextToken(EmailLexer::S_DOT)) { - throw new DomainHyphened(); - } - - if ($this->lexer->token['type'] === EmailLexer::S_BACKSLASH - && $this->lexer->isNextToken(EmailLexer::GENERIC)) { - throw new ExpectingATEXT(); - } - } - - protected function hasBrackets() - { - if ($this->lexer->token['type'] !== EmailLexer::S_OPENBRACKET) { - return false; - } - - try { - $this->lexer->find(EmailLexer::S_CLOSEBRACKET); - } catch (\RuntimeException $e) { - throw new ExpectingDomainLiteralClose(); - } - - return true; - } - - protected function checkLabelLength($prev) - { - if ($this->lexer->token['type'] === EmailLexer::S_DOT && - $prev['type'] === EmailLexer::GENERIC && - strlen($prev['value']) > 63 - ) { - $this->warnings[LabelTooLong::CODE] = new LabelTooLong(); - } - } - - protected function parseDomainComments() - { - $this->isUnclosedComment(); - while (!$this->lexer->isNextToken(EmailLexer::S_CLOSEPARENTHESIS)) { - $this->warnEscaping(); - $this->lexer->moveNext(); - } - - $this->lexer->moveNext(); - if ($this->lexer->isNextToken(EmailLexer::S_DOT)) { - throw new ExpectingATEXT(); - } - } - - protected function addTLDWarnings() - { - if ($this->warnings[DomainLiteral::CODE]) { - $this->warnings[TLD::CODE] = new TLD(); - } - } -} diff --git a/vendor/egulias/email-validator/EmailValidator/Parser/LocalPart.php b/vendor/egulias/email-validator/EmailValidator/Parser/LocalPart.php deleted file mode 100644 index 8ab16ab4..00000000 --- a/vendor/egulias/email-validator/EmailValidator/Parser/LocalPart.php +++ /dev/null @@ -1,138 +0,0 @@ -lexer->token['type'] !== EmailLexer::S_AT && $this->lexer->token) { - if ($this->lexer->token['type'] === EmailLexer::S_DOT && !$this->lexer->getPrevious()) { - throw new DotAtStart(); - } - - $closingQuote = $this->checkDQUOTE($closingQuote); - if ($closingQuote && $parseDQuote) { - $parseDQuote = $this->parseDoubleQuote(); - } - - if ($this->lexer->token['type'] === EmailLexer::S_OPENPARENTHESIS) { - $this->parseComments(); - $openedParenthesis += $this->getOpenedParenthesis(); - } - if ($this->lexer->token['type'] === EmailLexer::S_CLOSEPARENTHESIS) { - if ($openedParenthesis === 0) { - throw new UnopenedComment(); - } else { - $openedParenthesis--; - } - } - - $this->checkConsecutiveDots(); - - if ($this->lexer->token['type'] === EmailLexer::S_DOT && - $this->lexer->isNextToken(EmailLexer::S_AT) - ) { - throw new DotAtEnd(); - } - - $this->warnEscaping(); - $this->isInvalidToken($this->lexer->token, $closingQuote); - - if ($this->isFWS()) { - $this->parseFWS(); - } - - $this->lexer->moveNext(); - } - - $prev = $this->lexer->getPrevious(); - if (strlen($prev['value']) > LocalTooLong::LOCAL_PART_LENGTH) { - $this->warnings[LocalTooLong::CODE] = new LocalTooLong(); - } - } - - protected function parseDoubleQuote() - { - $parseAgain = true; - $special = array( - EmailLexer::S_CR => true, - EmailLexer::S_HTAB => true, - EmailLexer::S_LF => true - ); - - $invalid = array( - EmailLexer::C_NUL => true, - EmailLexer::S_HTAB => true, - EmailLexer::S_CR => true, - EmailLexer::S_LF => true - ); - $setSpecialsWarning = true; - - $this->lexer->moveNext(); - - while ($this->lexer->token['type'] !== EmailLexer::S_DQUOTE && $this->lexer->token) { - $parseAgain = false; - if (isset($special[$this->lexer->token['type']]) && $setSpecialsWarning) { - $this->warnings[CFWSWithFWS::CODE] = new CFWSWithFWS(); - $setSpecialsWarning = false; - } - if ($this->lexer->token['type'] === EmailLexer::S_BACKSLASH && $this->lexer->isNextToken(EmailLexer::S_DQUOTE)) { - $this->lexer->moveNext(); - } - - $this->lexer->moveNext(); - - if (!$this->escaped() && isset($invalid[$this->lexer->token['type']])) { - throw new ExpectingATEXT(); - } - } - - $prev = $this->lexer->getPrevious(); - - if ($prev['type'] === EmailLexer::S_BACKSLASH) { - if (!$this->checkDQUOTE(false)) { - throw new UnclosedQuotedString(); - } - } - - if (!$this->lexer->isNextToken(EmailLexer::S_AT) && $prev['type'] !== EmailLexer::S_BACKSLASH) { - throw new ExpectingAT(); - } - - return $parseAgain; - } - - protected function isInvalidToken($token, $closingQuote) - { - $forbidden = array( - EmailLexer::S_COMMA, - EmailLexer::S_CLOSEBRACKET, - EmailLexer::S_OPENBRACKET, - EmailLexer::S_GREATERTHAN, - EmailLexer::S_LOWERTHAN, - EmailLexer::S_COLON, - EmailLexer::S_SEMICOLON, - EmailLexer::INVALID - ); - - if (in_array($token['type'], $forbidden) && !$closingQuote) { - throw new ExpectingATEXT(); - } - } -} diff --git a/vendor/egulias/email-validator/EmailValidator/Parser/Parser.php b/vendor/egulias/email-validator/EmailValidator/Parser/Parser.php deleted file mode 100644 index e5042e1a..00000000 --- a/vendor/egulias/email-validator/EmailValidator/Parser/Parser.php +++ /dev/null @@ -1,215 +0,0 @@ -lexer = $lexer; - } - - public function getWarnings() - { - return $this->warnings; - } - - abstract public function parse($str); - - /** @return int */ - public function getOpenedParenthesis() - { - return $this->openedParenthesis; - } - - /** - * validateQuotedPair - */ - protected function validateQuotedPair() - { - if (!($this->lexer->token['type'] === EmailLexer::INVALID - || $this->lexer->token['type'] === EmailLexer::C_DEL)) { - throw new ExpectedQPair(); - } - - $this->warnings[QuotedPart::CODE] = - new QuotedPart($this->lexer->getPrevious()['type'], $this->lexer->token['type']); - } - - protected function parseComments() - { - $this->openedParenthesis = 1; - $this->isUnclosedComment(); - $this->warnings[Comment::CODE] = new Comment(); - while (!$this->lexer->isNextToken(EmailLexer::S_CLOSEPARENTHESIS)) { - if ($this->lexer->isNextToken(EmailLexer::S_OPENPARENTHESIS)) { - $this->openedParenthesis++; - } - $this->warnEscaping(); - $this->lexer->moveNext(); - } - - $this->lexer->moveNext(); - if ($this->lexer->isNextTokenAny(array(EmailLexer::GENERIC, EmailLexer::S_EMPTY))) { - throw new ExpectingATEXT(); - } - - if ($this->lexer->isNextToken(EmailLexer::S_AT)) { - $this->warnings[CFWSNearAt::CODE] = new CFWSNearAt(); - } - } - - protected function isUnclosedComment() - { - try { - $this->lexer->find(EmailLexer::S_CLOSEPARENTHESIS); - return true; - } catch (\RuntimeException $e) { - throw new UnclosedComment(); - } - } - - protected function parseFWS() - { - $previous = $this->lexer->getPrevious(); - - $this->checkCRLFInFWS(); - - if ($this->lexer->token['type'] === EmailLexer::S_CR) { - throw new CRNoLF(); - } - - if ($this->lexer->isNextToken(EmailLexer::GENERIC) && $previous['type'] !== EmailLexer::S_AT) { - throw new AtextAfterCFWS(); - } - - if ($this->lexer->token['type'] === EmailLexer::S_LF || $this->lexer->token['type'] === EmailLexer::C_NUL) { - throw new ExpectingCTEXT(); - } - - if ($this->lexer->isNextToken(EmailLexer::S_AT) || $previous['type'] === EmailLexer::S_AT) { - $this->warnings[CFWSNearAt::CODE] = new CFWSNearAt(); - } else { - $this->warnings[CFWSWithFWS::CODE] = new CFWSWithFWS(); - } - } - - protected function checkConsecutiveDots() - { - if ($this->lexer->token['type'] === EmailLexer::S_DOT && $this->lexer->isNextToken(EmailLexer::S_DOT)) { - throw new ConsecutiveDot(); - } - } - - protected function isFWS() - { - if ($this->escaped()) { - return false; - } - - if ($this->lexer->token['type'] === EmailLexer::S_SP || - $this->lexer->token['type'] === EmailLexer::S_HTAB || - $this->lexer->token['type'] === EmailLexer::S_CR || - $this->lexer->token['type'] === EmailLexer::S_LF || - $this->lexer->token['type'] === EmailLexer::CRLF - ) { - return true; - } - - return false; - } - - protected function escaped() - { - $previous = $this->lexer->getPrevious(); - - if ($previous['type'] === EmailLexer::S_BACKSLASH - && - $this->lexer->token['type'] !== EmailLexer::GENERIC - ) { - return true; - } - - return false; - } - - protected function warnEscaping() - { - if ($this->lexer->token['type'] !== EmailLexer::S_BACKSLASH) { - return false; - } - - if ($this->lexer->isNextToken(EmailLexer::GENERIC)) { - throw new ExpectingATEXT(); - } - - if (!$this->lexer->isNextTokenAny(array(EmailLexer::S_SP, EmailLexer::S_HTAB, EmailLexer::C_DEL))) { - return false; - } - - $this->warnings[QuotedPart::CODE] = - new QuotedPart($this->lexer->getPrevious()['type'], $this->lexer->token['type']); - return true; - - } - - protected function checkDQUOTE($hasClosingQuote) - { - if ($this->lexer->token['type'] !== EmailLexer::S_DQUOTE) { - return $hasClosingQuote; - } - if ($hasClosingQuote) { - return $hasClosingQuote; - } - $previous = $this->lexer->getPrevious(); - if ($this->lexer->isNextToken(EmailLexer::GENERIC) && $previous['type'] === EmailLexer::GENERIC) { - throw new ExpectingATEXT(); - } - - try { - $this->lexer->find(EmailLexer::S_DQUOTE); - $hasClosingQuote = true; - } catch (\Exception $e) { - throw new UnclosedQuotedString(); - } - $this->warnings[QuotedString::CODE] = new QuotedString($previous['value'], $this->lexer->token['value']); - - return $hasClosingQuote; - } - - protected function checkCRLFInFWS() - { - if ($this->lexer->token['type'] !== EmailLexer::CRLF) { - return; - } - - if (!$this->lexer->isNextTokenAny(array(EmailLexer::S_SP, EmailLexer::S_HTAB))) { - throw new CRLFX2(); - } - - if (!$this->lexer->isNextTokenAny(array(EmailLexer::S_SP, EmailLexer::S_HTAB))) { - throw new CRLFAtTheEnd(); - } - } -} diff --git a/vendor/egulias/email-validator/EmailValidator/Validation/DNSCheckValidation.php b/vendor/egulias/email-validator/EmailValidator/Validation/DNSCheckValidation.php deleted file mode 100644 index a03a5874..00000000 --- a/vendor/egulias/email-validator/EmailValidator/Validation/DNSCheckValidation.php +++ /dev/null @@ -1,61 +0,0 @@ -checkDNS($host); - } - - public function getError() - { - return $this->error; - } - - public function getWarnings() - { - return $this->warnings; - } - - protected function checkDNS($host) - { - $host = rtrim(idn_to_ascii($host, IDNA_DEFAULT, INTL_IDNA_VARIANT_UTS46), '.') . '.'; - - $Aresult = true; - $MXresult = checkdnsrr($host, 'MX'); - - if (!$MXresult) { - $this->warnings[NoDNSMXRecord::CODE] = new NoDNSMXRecord(); - $Aresult = checkdnsrr($host, 'A') || checkdnsrr($host, 'AAAA'); - if (!$Aresult) { - $this->error = new NoDNSRecord(); - } - } - return $MXresult || $Aresult; - } -} diff --git a/vendor/egulias/email-validator/EmailValidator/Validation/EmailValidation.php b/vendor/egulias/email-validator/EmailValidator/Validation/EmailValidation.php deleted file mode 100644 index d5a015be..00000000 --- a/vendor/egulias/email-validator/EmailValidator/Validation/EmailValidation.php +++ /dev/null @@ -1,34 +0,0 @@ -errors = $errors; - parent::__construct(); - } - - public function getErrors() - { - return $this->errors; - } -} diff --git a/vendor/egulias/email-validator/EmailValidator/Validation/MultipleValidationWithAnd.php b/vendor/egulias/email-validator/EmailValidator/Validation/MultipleValidationWithAnd.php deleted file mode 100644 index 43fa42a6..00000000 --- a/vendor/egulias/email-validator/EmailValidator/Validation/MultipleValidationWithAnd.php +++ /dev/null @@ -1,110 +0,0 @@ -validations = $validations; - $this->mode = $mode; - } - - /** - * {@inheritdoc} - */ - public function isValid($email, EmailLexer $emailLexer) - { - $result = true; - $errors = []; - foreach ($this->validations as $validation) { - $emailLexer->reset(); - $result = $result && $validation->isValid($email, $emailLexer); - $this->warnings = array_merge($this->warnings, $validation->getWarnings()); - $errors = $this->addNewError($validation->getError(), $errors); - - if ($this->shouldStop($result)) { - break; - } - } - - if (!empty($errors)) { - $this->error = new MultipleErrors($errors); - } - - return $result; - } - - private function addNewError($possibleError, array $errors) - { - if (null !== $possibleError) { - $errors[] = $possibleError; - } - - return $errors; - } - - private function shouldStop($result) - { - return !$result && $this->mode === self::STOP_ON_ERROR; - } - - /** - * {@inheritdoc} - */ - public function getError() - { - return $this->error; - } - - /** - * {@inheritdoc} - */ - public function getWarnings() - { - return $this->warnings; - } -} diff --git a/vendor/egulias/email-validator/EmailValidator/Validation/NoRFCWarningsValidation.php b/vendor/egulias/email-validator/EmailValidator/Validation/NoRFCWarningsValidation.php deleted file mode 100644 index e4bf0cc4..00000000 --- a/vendor/egulias/email-validator/EmailValidator/Validation/NoRFCWarningsValidation.php +++ /dev/null @@ -1,41 +0,0 @@ -getWarnings())) { - return true; - } - - $this->error = new RFCWarnings(); - - return false; - } - - /** - * {@inheritdoc} - */ - public function getError() - { - return $this->error ?: parent::getError(); - } -} diff --git a/vendor/egulias/email-validator/EmailValidator/Validation/RFCValidation.php b/vendor/egulias/email-validator/EmailValidator/Validation/RFCValidation.php deleted file mode 100644 index c4ffe350..00000000 --- a/vendor/egulias/email-validator/EmailValidator/Validation/RFCValidation.php +++ /dev/null @@ -1,49 +0,0 @@ -parser = new EmailParser($emailLexer); - try { - $this->parser->parse((string)$email); - } catch (InvalidEmail $invalid) { - $this->error = $invalid; - return false; - } - - $this->warnings = $this->parser->getWarnings(); - return true; - } - - public function getError() - { - return $this->error; - } - - public function getWarnings() - { - return $this->warnings; - } -} diff --git a/vendor/egulias/email-validator/EmailValidator/Validation/SpoofCheckValidation.php b/vendor/egulias/email-validator/EmailValidator/Validation/SpoofCheckValidation.php deleted file mode 100644 index fe712f08..00000000 --- a/vendor/egulias/email-validator/EmailValidator/Validation/SpoofCheckValidation.php +++ /dev/null @@ -1,45 +0,0 @@ -setChecks(Spoofchecker::SINGLE_SCRIPT); - - if ($checker->isSuspicious($email)) { - $this->error = new SpoofEmail(); - } - - return $this->error === null; - } - - public function getError() - { - return $this->error; - } - - public function getWarnings() - { - return []; - } -} diff --git a/vendor/egulias/email-validator/EmailValidator/Warning/AddressLiteral.php b/vendor/egulias/email-validator/EmailValidator/Warning/AddressLiteral.php deleted file mode 100644 index 77e70f7f..00000000 --- a/vendor/egulias/email-validator/EmailValidator/Warning/AddressLiteral.php +++ /dev/null @@ -1,14 +0,0 @@ -message = 'Address literal in domain part'; - $this->rfcNumber = 5321; - } -} diff --git a/vendor/egulias/email-validator/EmailValidator/Warning/CFWSNearAt.php b/vendor/egulias/email-validator/EmailValidator/Warning/CFWSNearAt.php deleted file mode 100644 index be43bbe6..00000000 --- a/vendor/egulias/email-validator/EmailValidator/Warning/CFWSNearAt.php +++ /dev/null @@ -1,13 +0,0 @@ -message = "Deprecated folding white space near @"; - } -} diff --git a/vendor/egulias/email-validator/EmailValidator/Warning/CFWSWithFWS.php b/vendor/egulias/email-validator/EmailValidator/Warning/CFWSWithFWS.php deleted file mode 100644 index dea3450e..00000000 --- a/vendor/egulias/email-validator/EmailValidator/Warning/CFWSWithFWS.php +++ /dev/null @@ -1,13 +0,0 @@ -message = 'Folding whites space followed by folding white space'; - } -} diff --git a/vendor/egulias/email-validator/EmailValidator/Warning/Comment.php b/vendor/egulias/email-validator/EmailValidator/Warning/Comment.php deleted file mode 100644 index 704c2908..00000000 --- a/vendor/egulias/email-validator/EmailValidator/Warning/Comment.php +++ /dev/null @@ -1,13 +0,0 @@ -message = "Comments found in this email"; - } -} diff --git a/vendor/egulias/email-validator/EmailValidator/Warning/DeprecatedComment.php b/vendor/egulias/email-validator/EmailValidator/Warning/DeprecatedComment.php deleted file mode 100644 index ad43bd7c..00000000 --- a/vendor/egulias/email-validator/EmailValidator/Warning/DeprecatedComment.php +++ /dev/null @@ -1,13 +0,0 @@ -message = 'Deprecated comments'; - } -} diff --git a/vendor/egulias/email-validator/EmailValidator/Warning/DomainLiteral.php b/vendor/egulias/email-validator/EmailValidator/Warning/DomainLiteral.php deleted file mode 100644 index 6f36b5e2..00000000 --- a/vendor/egulias/email-validator/EmailValidator/Warning/DomainLiteral.php +++ /dev/null @@ -1,14 +0,0 @@ -message = 'Domain Literal'; - $this->rfcNumber = 5322; - } -} diff --git a/vendor/egulias/email-validator/EmailValidator/Warning/DomainTooLong.php b/vendor/egulias/email-validator/EmailValidator/Warning/DomainTooLong.php deleted file mode 100644 index 61ff17a7..00000000 --- a/vendor/egulias/email-validator/EmailValidator/Warning/DomainTooLong.php +++ /dev/null @@ -1,14 +0,0 @@ -message = 'Domain is too long, exceeds 255 chars'; - $this->rfcNumber = 5322; - } -} diff --git a/vendor/egulias/email-validator/EmailValidator/Warning/EmailTooLong.php b/vendor/egulias/email-validator/EmailValidator/Warning/EmailTooLong.php deleted file mode 100644 index 497309db..00000000 --- a/vendor/egulias/email-validator/EmailValidator/Warning/EmailTooLong.php +++ /dev/null @@ -1,15 +0,0 @@ -message = 'Email is too long, exceeds ' . EmailParser::EMAIL_MAX_LENGTH; - } -} diff --git a/vendor/egulias/email-validator/EmailValidator/Warning/IPV6BadChar.php b/vendor/egulias/email-validator/EmailValidator/Warning/IPV6BadChar.php deleted file mode 100644 index ba2fcc01..00000000 --- a/vendor/egulias/email-validator/EmailValidator/Warning/IPV6BadChar.php +++ /dev/null @@ -1,14 +0,0 @@ -message = 'Bad char in IPV6 domain literal'; - $this->rfcNumber = 5322; - } -} diff --git a/vendor/egulias/email-validator/EmailValidator/Warning/IPV6ColonEnd.php b/vendor/egulias/email-validator/EmailValidator/Warning/IPV6ColonEnd.php deleted file mode 100644 index 41afa78c..00000000 --- a/vendor/egulias/email-validator/EmailValidator/Warning/IPV6ColonEnd.php +++ /dev/null @@ -1,14 +0,0 @@ -message = ':: found at the end of the domain literal'; - $this->rfcNumber = 5322; - } -} diff --git a/vendor/egulias/email-validator/EmailValidator/Warning/IPV6ColonStart.php b/vendor/egulias/email-validator/EmailValidator/Warning/IPV6ColonStart.php deleted file mode 100644 index 1bf754e3..00000000 --- a/vendor/egulias/email-validator/EmailValidator/Warning/IPV6ColonStart.php +++ /dev/null @@ -1,14 +0,0 @@ -message = ':: found at the start of the domain literal'; - $this->rfcNumber = 5322; - } -} diff --git a/vendor/egulias/email-validator/EmailValidator/Warning/IPV6Deprecated.php b/vendor/egulias/email-validator/EmailValidator/Warning/IPV6Deprecated.php deleted file mode 100644 index d752caaa..00000000 --- a/vendor/egulias/email-validator/EmailValidator/Warning/IPV6Deprecated.php +++ /dev/null @@ -1,14 +0,0 @@ -message = 'Deprecated form of IPV6'; - $this->rfcNumber = 5321; - } -} diff --git a/vendor/egulias/email-validator/EmailValidator/Warning/IPV6DoubleColon.php b/vendor/egulias/email-validator/EmailValidator/Warning/IPV6DoubleColon.php deleted file mode 100644 index 4f823949..00000000 --- a/vendor/egulias/email-validator/EmailValidator/Warning/IPV6DoubleColon.php +++ /dev/null @@ -1,14 +0,0 @@ -message = 'Double colon found after IPV6 tag'; - $this->rfcNumber = 5322; - } -} diff --git a/vendor/egulias/email-validator/EmailValidator/Warning/IPV6GroupCount.php b/vendor/egulias/email-validator/EmailValidator/Warning/IPV6GroupCount.php deleted file mode 100644 index a59d317f..00000000 --- a/vendor/egulias/email-validator/EmailValidator/Warning/IPV6GroupCount.php +++ /dev/null @@ -1,14 +0,0 @@ -message = 'Group count is not IPV6 valid'; - $this->rfcNumber = 5322; - } -} diff --git a/vendor/egulias/email-validator/EmailValidator/Warning/IPV6MaxGroups.php b/vendor/egulias/email-validator/EmailValidator/Warning/IPV6MaxGroups.php deleted file mode 100644 index 936274c1..00000000 --- a/vendor/egulias/email-validator/EmailValidator/Warning/IPV6MaxGroups.php +++ /dev/null @@ -1,14 +0,0 @@ -message = 'Reached the maximum number of IPV6 groups allowed'; - $this->rfcNumber = 5321; - } -} diff --git a/vendor/egulias/email-validator/EmailValidator/Warning/LabelTooLong.php b/vendor/egulias/email-validator/EmailValidator/Warning/LabelTooLong.php deleted file mode 100644 index daf07f40..00000000 --- a/vendor/egulias/email-validator/EmailValidator/Warning/LabelTooLong.php +++ /dev/null @@ -1,14 +0,0 @@ -message = 'Label too long'; - $this->rfcNumber = 5322; - } -} diff --git a/vendor/egulias/email-validator/EmailValidator/Warning/LocalTooLong.php b/vendor/egulias/email-validator/EmailValidator/Warning/LocalTooLong.php deleted file mode 100644 index 0d08d8b3..00000000 --- a/vendor/egulias/email-validator/EmailValidator/Warning/LocalTooLong.php +++ /dev/null @@ -1,15 +0,0 @@ -message = 'Local part is too long, exceeds 64 chars (octets)'; - $this->rfcNumber = 5322; - } -} diff --git a/vendor/egulias/email-validator/EmailValidator/Warning/NoDNSMXRecord.php b/vendor/egulias/email-validator/EmailValidator/Warning/NoDNSMXRecord.php deleted file mode 100644 index b3c21a1f..00000000 --- a/vendor/egulias/email-validator/EmailValidator/Warning/NoDNSMXRecord.php +++ /dev/null @@ -1,14 +0,0 @@ -message = 'No MX DSN record was found for this email'; - $this->rfcNumber = 5321; - } -} diff --git a/vendor/egulias/email-validator/EmailValidator/Warning/ObsoleteDTEXT.php b/vendor/egulias/email-validator/EmailValidator/Warning/ObsoleteDTEXT.php deleted file mode 100644 index 10f19e33..00000000 --- a/vendor/egulias/email-validator/EmailValidator/Warning/ObsoleteDTEXT.php +++ /dev/null @@ -1,14 +0,0 @@ -rfcNumber = 5322; - $this->message = 'Obsolete DTEXT in domain literal'; - } -} diff --git a/vendor/egulias/email-validator/EmailValidator/Warning/QuotedPart.php b/vendor/egulias/email-validator/EmailValidator/Warning/QuotedPart.php deleted file mode 100644 index 7be9e6a3..00000000 --- a/vendor/egulias/email-validator/EmailValidator/Warning/QuotedPart.php +++ /dev/null @@ -1,13 +0,0 @@ -message = "Deprecated Quoted String found between $prevToken and $postToken"; - } -} diff --git a/vendor/egulias/email-validator/EmailValidator/Warning/QuotedString.php b/vendor/egulias/email-validator/EmailValidator/Warning/QuotedString.php deleted file mode 100644 index e9d56e1e..00000000 --- a/vendor/egulias/email-validator/EmailValidator/Warning/QuotedString.php +++ /dev/null @@ -1,13 +0,0 @@ -message = "Quoted String found between $prevToken and $postToken"; - } -} diff --git a/vendor/egulias/email-validator/EmailValidator/Warning/TLD.php b/vendor/egulias/email-validator/EmailValidator/Warning/TLD.php deleted file mode 100644 index 2338b9f4..00000000 --- a/vendor/egulias/email-validator/EmailValidator/Warning/TLD.php +++ /dev/null @@ -1,13 +0,0 @@ -message = "RFC5321, TLD"; - } -} diff --git a/vendor/egulias/email-validator/EmailValidator/Warning/Warning.php b/vendor/egulias/email-validator/EmailValidator/Warning/Warning.php deleted file mode 100644 index ec6a365f..00000000 --- a/vendor/egulias/email-validator/EmailValidator/Warning/Warning.php +++ /dev/null @@ -1,30 +0,0 @@ -message; - } - - public function code() - { - return self::CODE; - } - - public function RFCNumber() - { - return $this->rfcNumber; - } - - public function __toString() - { - return $this->message() . " rfc: " . $this->rfcNumber . "interal code: " . static::CODE; - } -} diff --git a/vendor/egulias/email-validator/LICENSE b/vendor/egulias/email-validator/LICENSE deleted file mode 100644 index c34d2c19..00000000 --- a/vendor/egulias/email-validator/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2013-2016 Eduardo Gulias Davis - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is furnished -to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/vendor/egulias/email-validator/README.md b/vendor/egulias/email-validator/README.md deleted file mode 100644 index 67bb69ab..00000000 --- a/vendor/egulias/email-validator/README.md +++ /dev/null @@ -1,79 +0,0 @@ -# EmailValidator -[![Build Status](https://travis-ci.org/egulias/EmailValidator.png?branch=master)](https://travis-ci.org/egulias/EmailValidator) [![Coverage Status](https://coveralls.io/repos/egulias/EmailValidator/badge.png?branch=master)](https://coveralls.io/r/egulias/EmailValidator?branch=master) [![Scrutinizer Code Quality](https://scrutinizer-ci.com/g/egulias/EmailValidator/badges/quality-score.png?b=master)](https://scrutinizer-ci.com/g/egulias/EmailValidator/?branch=master) [![SensioLabsInsight](https://insight.sensiolabs.com/projects/22ba6692-9c02-42e5-a65d-1c5696bfffc6/small.png)](https://insight.sensiolabs.com/projects/22ba6692-9c02-42e5-a65d-1c5696bfffc6) -============================= -With the help of [PHPStorm](https://www.jetbrains.com/phpstorm/) - -## Requirements ## - - * [Composer](https://getcomposer.org) is required for installation - * [Spoofchecking](https://github.com/egulias/EmailValidator/blob/master/EmailValidator/Validation/SpoofCheckValidation.php) validation requires that your PHP system have the [PHP Internationalization Libraries](https://php.net/manual/en/book.intl.php) (also known as PHP Intl) - -## Installation ## - -Run the command below to install via Composer - -```shell -composer require egulias/email-validator "~2.1" -``` - -## Getting Started ## -`EmailValidator`requires you to decide which (or combination of them) validation/s strategy/ies you'd like to follow for each [validation](#available-validations). - -A basic example with the RFC validation -```php -isValid("example@example.com", new RFCValidation()); //true -``` - - -### Available validations ### - -1. [RFCValidation](https://github.com/egulias/EmailValidator/blob/master/EmailValidator/Validation/RFCValidation.php) -2. [NoRFCWarningsValidation](https://github.com/egulias/EmailValidator/blob/master/EmailValidator/Validation/NoRFCWarningsValidation.php) -3. [DNSCheckValidation](https://github.com/egulias/EmailValidator/blob/master/EmailValidator/Validation/DNSCheckValidation.php) -4. [SpoofCheckValidation](https://github.com/egulias/EmailValidator/blob/master/EmailValidator/Validation/SpoofCheckValidation.php) -5. [MultipleValidationWithAnd](https://github.com/egulias/EmailValidator/blob/master/EmailValidator/Validation/MultipleValidationWithAnd.php) -6. [Your own validation](#how-to-extend) - -`MultipleValidationWithAnd` - -It is a validation that operates over other validations performing a logical and (&&) over the result of each validation. - -```php -isValid("example@example.com", $multipleValidations); //true -``` - -### How to extend ### - -It's easy! You just need to implement [EmailValidation](https://github.com/egulias/EmailValidator/blob/master/EmailValidator/Validation/EmailValidation.php) and you can use your own validation. - - -## Other Contributors ## -(You can find current contributors [here](https://github.com/egulias/EmailValidator/graphs/contributors)) - -As this is a port from another library and work, here are other people related to the previous one: - -* Ricard Clau [@ricardclau](https://github.com/ricardclau): Performance against PHP built-in filter_var -* Josepf Bielawski [@stloyd](https://github.com/stloyd): For its first re-work of Dominic's lib -* Dominic Sayers [@dominicsayers](https://github.com/dominicsayers): The original isemail function - -## License ## -Released under the MIT License attached with this code. - diff --git a/vendor/egulias/email-validator/composer.json b/vendor/egulias/email-validator/composer.json deleted file mode 100644 index 7cc836f0..00000000 --- a/vendor/egulias/email-validator/composer.json +++ /dev/null @@ -1,39 +0,0 @@ -{ - "name": "egulias/email-validator", - "description": "A library for validating emails against several RFCs", - "homepage": "https://github.com/egulias/EmailValidator", - "type": "Library", - "keywords": ["email", "validation", "validator", "emailvalidation", "emailvalidator"], - "license": "MIT", - "authors": [ - {"name": "Eduardo Gulias Davis"} - ], - "extra": { - "branch-alias": { - "dev-master": "2.0.x-dev" - } - }, - "repositories": [ - { - "type": "git", - "url": "https://github.com/dominicsayers/isemail" - } - ], - "require": { - "php": ">= 5.5", - "doctrine/lexer": "^1.0.1" - }, - "require-dev" : { - "satooshi/php-coveralls": "^1.0.1", - "phpunit/phpunit": "^4.8.35||^5.7||^6.0", - "dominicsayers/isemail": "dev-master" - }, - "suggest": { - "ext-intl": "PHP Internationalization Libraries are required to use the SpoofChecking validation" - }, - "autoload": { - "psr-4": { - "Egulias\\EmailValidator\\": "EmailValidator" - } - } -} diff --git a/vendor/egulias/email-validator/phpunit.xml.dist b/vendor/egulias/email-validator/phpunit.xml.dist deleted file mode 100644 index b0812f97..00000000 --- a/vendor/egulias/email-validator/phpunit.xml.dist +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - ./Tests/EmailValidator - ./vendor/ - - - - - - ./vendor - - - diff --git a/vendor/erusev/parsedown/LICENSE.txt b/vendor/erusev/parsedown/LICENSE.txt deleted file mode 100644 index 8e7c764d..00000000 --- a/vendor/erusev/parsedown/LICENSE.txt +++ /dev/null @@ -1,20 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2013-2018 Emanuil Rusev, erusev.com - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/vendor/erusev/parsedown/Parsedown.php b/vendor/erusev/parsedown/Parsedown.php deleted file mode 100644 index 87d612ab..00000000 --- a/vendor/erusev/parsedown/Parsedown.php +++ /dev/null @@ -1,1679 +0,0 @@ -DefinitionData = array(); - - # standardize line breaks - $text = str_replace(array("\r\n", "\r"), "\n", $text); - - # remove surrounding line breaks - $text = trim($text, "\n"); - - # split text into lines - $lines = explode("\n", $text); - - # iterate through lines to identify blocks - $markup = $this->lines($lines); - - # trim line breaks - $markup = trim($markup, "\n"); - - return $markup; - } - - # - # Setters - # - - function setBreaksEnabled($breaksEnabled) - { - $this->breaksEnabled = $breaksEnabled; - - return $this; - } - - protected $breaksEnabled; - - function setMarkupEscaped($markupEscaped) - { - $this->markupEscaped = $markupEscaped; - - return $this; - } - - protected $markupEscaped; - - function setUrlsLinked($urlsLinked) - { - $this->urlsLinked = $urlsLinked; - - return $this; - } - - protected $urlsLinked = true; - - function setSafeMode($safeMode) - { - $this->safeMode = (bool) $safeMode; - - return $this; - } - - protected $safeMode; - - protected $safeLinksWhitelist = array( - 'http://', - 'https://', - 'ftp://', - 'ftps://', - 'mailto:', - 'data:image/png;base64,', - 'data:image/gif;base64,', - 'data:image/jpeg;base64,', - 'irc:', - 'ircs:', - 'git:', - 'ssh:', - 'news:', - 'steam:', - ); - - # - # Lines - # - - protected $BlockTypes = array( - '#' => array('Header'), - '*' => array('Rule', 'List'), - '+' => array('List'), - '-' => array('SetextHeader', 'Table', 'Rule', 'List'), - '0' => array('List'), - '1' => array('List'), - '2' => array('List'), - '3' => array('List'), - '4' => array('List'), - '5' => array('List'), - '6' => array('List'), - '7' => array('List'), - '8' => array('List'), - '9' => array('List'), - ':' => array('Table'), - '<' => array('Comment', 'Markup'), - '=' => array('SetextHeader'), - '>' => array('Quote'), - '[' => array('Reference'), - '_' => array('Rule'), - '`' => array('FencedCode'), - '|' => array('Table'), - '~' => array('FencedCode'), - ); - - # ~ - - protected $unmarkedBlockTypes = array( - 'Code', - ); - - # - # Blocks - # - - protected function lines(array $lines) - { - $CurrentBlock = null; - - foreach ($lines as $line) - { - if (chop($line) === '') - { - if (isset($CurrentBlock)) - { - $CurrentBlock['interrupted'] = true; - } - - continue; - } - - if (strpos($line, "\t") !== false) - { - $parts = explode("\t", $line); - - $line = $parts[0]; - - unset($parts[0]); - - foreach ($parts as $part) - { - $shortage = 4 - mb_strlen($line, 'utf-8') % 4; - - $line .= str_repeat(' ', $shortage); - $line .= $part; - } - } - - $indent = 0; - - while (isset($line[$indent]) and $line[$indent] === ' ') - { - $indent ++; - } - - $text = $indent > 0 ? substr($line, $indent) : $line; - - # ~ - - $Line = array('body' => $line, 'indent' => $indent, 'text' => $text); - - # ~ - - if (isset($CurrentBlock['continuable'])) - { - $Block = $this->{'block'.$CurrentBlock['type'].'Continue'}($Line, $CurrentBlock); - - if (isset($Block)) - { - $CurrentBlock = $Block; - - continue; - } - else - { - if ($this->isBlockCompletable($CurrentBlock['type'])) - { - $CurrentBlock = $this->{'block'.$CurrentBlock['type'].'Complete'}($CurrentBlock); - } - } - } - - # ~ - - $marker = $text[0]; - - # ~ - - $blockTypes = $this->unmarkedBlockTypes; - - if (isset($this->BlockTypes[$marker])) - { - foreach ($this->BlockTypes[$marker] as $blockType) - { - $blockTypes []= $blockType; - } - } - - # - # ~ - - foreach ($blockTypes as $blockType) - { - $Block = $this->{'block'.$blockType}($Line, $CurrentBlock); - - if (isset($Block)) - { - $Block['type'] = $blockType; - - if ( ! isset($Block['identified'])) - { - $Blocks []= $CurrentBlock; - - $Block['identified'] = true; - } - - if ($this->isBlockContinuable($blockType)) - { - $Block['continuable'] = true; - } - - $CurrentBlock = $Block; - - continue 2; - } - } - - # ~ - - if (isset($CurrentBlock) and ! isset($CurrentBlock['type']) and ! isset($CurrentBlock['interrupted'])) - { - $CurrentBlock['element']['text'] .= "\n".$text; - } - else - { - $Blocks []= $CurrentBlock; - - $CurrentBlock = $this->paragraph($Line); - - $CurrentBlock['identified'] = true; - } - } - - # ~ - - if (isset($CurrentBlock['continuable']) and $this->isBlockCompletable($CurrentBlock['type'])) - { - $CurrentBlock = $this->{'block'.$CurrentBlock['type'].'Complete'}($CurrentBlock); - } - - # ~ - - $Blocks []= $CurrentBlock; - - unset($Blocks[0]); - - # ~ - - $markup = ''; - - foreach ($Blocks as $Block) - { - if (isset($Block['hidden'])) - { - continue; - } - - $markup .= "\n"; - $markup .= isset($Block['markup']) ? $Block['markup'] : $this->element($Block['element']); - } - - $markup .= "\n"; - - # ~ - - return $markup; - } - - protected function isBlockContinuable($Type) - { - return method_exists($this, 'block'.$Type.'Continue'); - } - - protected function isBlockCompletable($Type) - { - return method_exists($this, 'block'.$Type.'Complete'); - } - - # - # Code - - protected function blockCode($Line, $Block = null) - { - if (isset($Block) and ! isset($Block['type']) and ! isset($Block['interrupted'])) - { - return; - } - - if ($Line['indent'] >= 4) - { - $text = substr($Line['body'], 4); - - $Block = array( - 'element' => array( - 'name' => 'pre', - 'handler' => 'element', - 'text' => array( - 'name' => 'code', - 'text' => $text, - ), - ), - ); - - return $Block; - } - } - - protected function blockCodeContinue($Line, $Block) - { - if ($Line['indent'] >= 4) - { - if (isset($Block['interrupted'])) - { - $Block['element']['text']['text'] .= "\n"; - - unset($Block['interrupted']); - } - - $Block['element']['text']['text'] .= "\n"; - - $text = substr($Line['body'], 4); - - $Block['element']['text']['text'] .= $text; - - return $Block; - } - } - - protected function blockCodeComplete($Block) - { - $text = $Block['element']['text']['text']; - - $Block['element']['text']['text'] = $text; - - return $Block; - } - - # - # Comment - - protected function blockComment($Line) - { - if ($this->markupEscaped or $this->safeMode) - { - return; - } - - if (isset($Line['text'][3]) and $Line['text'][3] === '-' and $Line['text'][2] === '-' and $Line['text'][1] === '!') - { - $Block = array( - 'markup' => $Line['body'], - ); - - if (preg_match('/-->$/', $Line['text'])) - { - $Block['closed'] = true; - } - - return $Block; - } - } - - protected function blockCommentContinue($Line, array $Block) - { - if (isset($Block['closed'])) - { - return; - } - - $Block['markup'] .= "\n" . $Line['body']; - - if (preg_match('/-->$/', $Line['text'])) - { - $Block['closed'] = true; - } - - return $Block; - } - - # - # Fenced Code - - protected function blockFencedCode($Line) - { - if (preg_match('/^['.$Line['text'][0].']{3,}[ ]*([^`]+)?[ ]*$/', $Line['text'], $matches)) - { - $Element = array( - 'name' => 'code', - 'text' => '', - ); - - if (isset($matches[1])) - { - $class = 'language-'.$matches[1]; - - $Element['attributes'] = array( - 'class' => $class, - ); - } - - $Block = array( - 'char' => $Line['text'][0], - 'element' => array( - 'name' => 'pre', - 'handler' => 'element', - 'text' => $Element, - ), - ); - - return $Block; - } - } - - protected function blockFencedCodeContinue($Line, $Block) - { - if (isset($Block['complete'])) - { - return; - } - - if (isset($Block['interrupted'])) - { - $Block['element']['text']['text'] .= "\n"; - - unset($Block['interrupted']); - } - - if (preg_match('/^'.$Block['char'].'{3,}[ ]*$/', $Line['text'])) - { - $Block['element']['text']['text'] = substr($Block['element']['text']['text'], 1); - - $Block['complete'] = true; - - return $Block; - } - - $Block['element']['text']['text'] .= "\n".$Line['body']; - - return $Block; - } - - protected function blockFencedCodeComplete($Block) - { - $text = $Block['element']['text']['text']; - - $Block['element']['text']['text'] = $text; - - return $Block; - } - - # - # Header - - protected function blockHeader($Line) - { - if (isset($Line['text'][1])) - { - $level = 1; - - while (isset($Line['text'][$level]) and $Line['text'][$level] === '#') - { - $level ++; - } - - if ($level > 6) - { - return; - } - - $text = trim($Line['text'], '# '); - - $Block = array( - 'element' => array( - 'name' => 'h' . min(6, $level), - 'text' => $text, - 'handler' => 'line', - ), - ); - - return $Block; - } - } - - # - # List - - protected function blockList($Line) - { - list($name, $pattern) = $Line['text'][0] <= '-' ? array('ul', '[*+-]') : array('ol', '[0-9]+[.]'); - - if (preg_match('/^('.$pattern.'[ ]+)(.*)/', $Line['text'], $matches)) - { - $Block = array( - 'indent' => $Line['indent'], - 'pattern' => $pattern, - 'element' => array( - 'name' => $name, - 'handler' => 'elements', - ), - ); - - if($name === 'ol') - { - $listStart = stristr($matches[0], '.', true); - - if($listStart !== '1') - { - $Block['element']['attributes'] = array('start' => $listStart); - } - } - - $Block['li'] = array( - 'name' => 'li', - 'handler' => 'li', - 'text' => array( - $matches[2], - ), - ); - - $Block['element']['text'] []= & $Block['li']; - - return $Block; - } - } - - protected function blockListContinue($Line, array $Block) - { - if ($Block['indent'] === $Line['indent'] and preg_match('/^'.$Block['pattern'].'(?:[ ]+(.*)|$)/', $Line['text'], $matches)) - { - if (isset($Block['interrupted'])) - { - $Block['li']['text'] []= ''; - - $Block['loose'] = true; - - unset($Block['interrupted']); - } - - unset($Block['li']); - - $text = isset($matches[1]) ? $matches[1] : ''; - - $Block['li'] = array( - 'name' => 'li', - 'handler' => 'li', - 'text' => array( - $text, - ), - ); - - $Block['element']['text'] []= & $Block['li']; - - return $Block; - } - - if ($Line['text'][0] === '[' and $this->blockReference($Line)) - { - return $Block; - } - - if ( ! isset($Block['interrupted'])) - { - $text = preg_replace('/^[ ]{0,4}/', '', $Line['body']); - - $Block['li']['text'] []= $text; - - return $Block; - } - - if ($Line['indent'] > 0) - { - $Block['li']['text'] []= ''; - - $text = preg_replace('/^[ ]{0,4}/', '', $Line['body']); - - $Block['li']['text'] []= $text; - - unset($Block['interrupted']); - - return $Block; - } - } - - protected function blockListComplete(array $Block) - { - if (isset($Block['loose'])) - { - foreach ($Block['element']['text'] as &$li) - { - if (end($li['text']) !== '') - { - $li['text'] []= ''; - } - } - } - - return $Block; - } - - # - # Quote - - protected function blockQuote($Line) - { - if (preg_match('/^>[ ]?(.*)/', $Line['text'], $matches)) - { - $Block = array( - 'element' => array( - 'name' => 'blockquote', - 'handler' => 'lines', - 'text' => (array) $matches[1], - ), - ); - - return $Block; - } - } - - protected function blockQuoteContinue($Line, array $Block) - { - if ($Line['text'][0] === '>' and preg_match('/^>[ ]?(.*)/', $Line['text'], $matches)) - { - if (isset($Block['interrupted'])) - { - $Block['element']['text'] []= ''; - - unset($Block['interrupted']); - } - - $Block['element']['text'] []= $matches[1]; - - return $Block; - } - - if ( ! isset($Block['interrupted'])) - { - $Block['element']['text'] []= $Line['text']; - - return $Block; - } - } - - # - # Rule - - protected function blockRule($Line) - { - if (preg_match('/^(['.$Line['text'][0].'])([ ]*\1){2,}[ ]*$/', $Line['text'])) - { - $Block = array( - 'element' => array( - 'name' => 'hr' - ), - ); - - return $Block; - } - } - - # - # Setext - - protected function blockSetextHeader($Line, array $Block = null) - { - if ( ! isset($Block) or isset($Block['type']) or isset($Block['interrupted'])) - { - return; - } - - if (chop($Line['text'], $Line['text'][0]) === '') - { - $Block['element']['name'] = $Line['text'][0] === '=' ? 'h1' : 'h2'; - - return $Block; - } - } - - # - # Markup - - protected function blockMarkup($Line) - { - if ($this->markupEscaped or $this->safeMode) - { - return; - } - - if (preg_match('/^<(\w[\w-]*)(?:[ ]*'.$this->regexHtmlAttribute.')*[ ]*(\/)?>/', $Line['text'], $matches)) - { - $element = strtolower($matches[1]); - - if (in_array($element, $this->textLevelElements)) - { - return; - } - - $Block = array( - 'name' => $matches[1], - 'depth' => 0, - 'markup' => $Line['text'], - ); - - $length = strlen($matches[0]); - - $remainder = substr($Line['text'], $length); - - if (trim($remainder) === '') - { - if (isset($matches[2]) or in_array($matches[1], $this->voidElements)) - { - $Block['closed'] = true; - - $Block['void'] = true; - } - } - else - { - if (isset($matches[2]) or in_array($matches[1], $this->voidElements)) - { - return; - } - - if (preg_match('/<\/'.$matches[1].'>[ ]*$/i', $remainder)) - { - $Block['closed'] = true; - } - } - - return $Block; - } - } - - protected function blockMarkupContinue($Line, array $Block) - { - if (isset($Block['closed'])) - { - return; - } - - if (preg_match('/^<'.$Block['name'].'(?:[ ]*'.$this->regexHtmlAttribute.')*[ ]*>/i', $Line['text'])) # open - { - $Block['depth'] ++; - } - - if (preg_match('/(.*?)<\/'.$Block['name'].'>[ ]*$/i', $Line['text'], $matches)) # close - { - if ($Block['depth'] > 0) - { - $Block['depth'] --; - } - else - { - $Block['closed'] = true; - } - } - - if (isset($Block['interrupted'])) - { - $Block['markup'] .= "\n"; - - unset($Block['interrupted']); - } - - $Block['markup'] .= "\n".$Line['body']; - - return $Block; - } - - # - # Reference - - protected function blockReference($Line) - { - if (preg_match('/^\[(.+?)\]:[ ]*?(?:[ ]+["\'(](.+)["\')])?[ ]*$/', $Line['text'], $matches)) - { - $id = strtolower($matches[1]); - - $Data = array( - 'url' => $matches[2], - 'title' => null, - ); - - if (isset($matches[3])) - { - $Data['title'] = $matches[3]; - } - - $this->DefinitionData['Reference'][$id] = $Data; - - $Block = array( - 'hidden' => true, - ); - - return $Block; - } - } - - # - # Table - - protected function blockTable($Line, array $Block = null) - { - if ( ! isset($Block) or isset($Block['type']) or isset($Block['interrupted'])) - { - return; - } - - if (strpos($Block['element']['text'], '|') !== false and chop($Line['text'], ' -:|') === '') - { - $alignments = array(); - - $divider = $Line['text']; - - $divider = trim($divider); - $divider = trim($divider, '|'); - - $dividerCells = explode('|', $divider); - - foreach ($dividerCells as $dividerCell) - { - $dividerCell = trim($dividerCell); - - if ($dividerCell === '') - { - continue; - } - - $alignment = null; - - if ($dividerCell[0] === ':') - { - $alignment = 'left'; - } - - if (substr($dividerCell, - 1) === ':') - { - $alignment = $alignment === 'left' ? 'center' : 'right'; - } - - $alignments []= $alignment; - } - - # ~ - - $HeaderElements = array(); - - $header = $Block['element']['text']; - - $header = trim($header); - $header = trim($header, '|'); - - $headerCells = explode('|', $header); - - foreach ($headerCells as $index => $headerCell) - { - $headerCell = trim($headerCell); - - $HeaderElement = array( - 'name' => 'th', - 'text' => $headerCell, - 'handler' => 'line', - ); - - if (isset($alignments[$index])) - { - $alignment = $alignments[$index]; - - $HeaderElement['attributes'] = array( - 'style' => 'text-align: '.$alignment.';', - ); - } - - $HeaderElements []= $HeaderElement; - } - - # ~ - - $Block = array( - 'alignments' => $alignments, - 'identified' => true, - 'element' => array( - 'name' => 'table', - 'handler' => 'elements', - ), - ); - - $Block['element']['text'] []= array( - 'name' => 'thead', - 'handler' => 'elements', - ); - - $Block['element']['text'] []= array( - 'name' => 'tbody', - 'handler' => 'elements', - 'text' => array(), - ); - - $Block['element']['text'][0]['text'] []= array( - 'name' => 'tr', - 'handler' => 'elements', - 'text' => $HeaderElements, - ); - - return $Block; - } - } - - protected function blockTableContinue($Line, array $Block) - { - if (isset($Block['interrupted'])) - { - return; - } - - if ($Line['text'][0] === '|' or strpos($Line['text'], '|')) - { - $Elements = array(); - - $row = $Line['text']; - - $row = trim($row); - $row = trim($row, '|'); - - preg_match_all('/(?:(\\\\[|])|[^|`]|`[^`]+`|`)+/', $row, $matches); - - foreach ($matches[0] as $index => $cell) - { - $cell = trim($cell); - - $Element = array( - 'name' => 'td', - 'handler' => 'line', - 'text' => $cell, - ); - - if (isset($Block['alignments'][$index])) - { - $Element['attributes'] = array( - 'style' => 'text-align: '.$Block['alignments'][$index].';', - ); - } - - $Elements []= $Element; - } - - $Element = array( - 'name' => 'tr', - 'handler' => 'elements', - 'text' => $Elements, - ); - - $Block['element']['text'][1]['text'] []= $Element; - - return $Block; - } - } - - # - # ~ - # - - protected function paragraph($Line) - { - $Block = array( - 'element' => array( - 'name' => 'p', - 'text' => $Line['text'], - 'handler' => 'line', - ), - ); - - return $Block; - } - - # - # Inline Elements - # - - protected $InlineTypes = array( - '"' => array('SpecialCharacter'), - '!' => array('Image'), - '&' => array('SpecialCharacter'), - '*' => array('Emphasis'), - ':' => array('Url'), - '<' => array('UrlTag', 'EmailTag', 'Markup', 'SpecialCharacter'), - '>' => array('SpecialCharacter'), - '[' => array('Link'), - '_' => array('Emphasis'), - '`' => array('Code'), - '~' => array('Strikethrough'), - '\\' => array('EscapeSequence'), - ); - - # ~ - - protected $inlineMarkerList = '!"*_&[:<>`~\\'; - - # - # ~ - # - - public function line($text, $nonNestables=array()) - { - $markup = ''; - - # $excerpt is based on the first occurrence of a marker - - while ($excerpt = strpbrk($text, $this->inlineMarkerList)) - { - $marker = $excerpt[0]; - - $markerPosition = strpos($text, $marker); - - $Excerpt = array('text' => $excerpt, 'context' => $text); - - foreach ($this->InlineTypes[$marker] as $inlineType) - { - # check to see if the current inline type is nestable in the current context - - if ( ! empty($nonNestables) and in_array($inlineType, $nonNestables)) - { - continue; - } - - $Inline = $this->{'inline'.$inlineType}($Excerpt); - - if ( ! isset($Inline)) - { - continue; - } - - # makes sure that the inline belongs to "our" marker - - if (isset($Inline['position']) and $Inline['position'] > $markerPosition) - { - continue; - } - - # sets a default inline position - - if ( ! isset($Inline['position'])) - { - $Inline['position'] = $markerPosition; - } - - # cause the new element to 'inherit' our non nestables - - foreach ($nonNestables as $non_nestable) - { - $Inline['element']['nonNestables'][] = $non_nestable; - } - - # the text that comes before the inline - $unmarkedText = substr($text, 0, $Inline['position']); - - # compile the unmarked text - $markup .= $this->unmarkedText($unmarkedText); - - # compile the inline - $markup .= isset($Inline['markup']) ? $Inline['markup'] : $this->element($Inline['element']); - - # remove the examined text - $text = substr($text, $Inline['position'] + $Inline['extent']); - - continue 2; - } - - # the marker does not belong to an inline - - $unmarkedText = substr($text, 0, $markerPosition + 1); - - $markup .= $this->unmarkedText($unmarkedText); - - $text = substr($text, $markerPosition + 1); - } - - $markup .= $this->unmarkedText($text); - - return $markup; - } - - # - # ~ - # - - protected function inlineCode($Excerpt) - { - $marker = $Excerpt['text'][0]; - - if (preg_match('/^('.$marker.'+)[ ]*(.+?)[ ]*(? strlen($matches[0]), - 'element' => array( - 'name' => 'code', - 'text' => $text, - ), - ); - } - } - - protected function inlineEmailTag($Excerpt) - { - if (strpos($Excerpt['text'], '>') !== false and preg_match('/^<((mailto:)?\S+?@\S+?)>/i', $Excerpt['text'], $matches)) - { - $url = $matches[1]; - - if ( ! isset($matches[2])) - { - $url = 'mailto:' . $url; - } - - return array( - 'extent' => strlen($matches[0]), - 'element' => array( - 'name' => 'a', - 'text' => $matches[1], - 'attributes' => array( - 'href' => $url, - ), - ), - ); - } - } - - protected function inlineEmphasis($Excerpt) - { - if ( ! isset($Excerpt['text'][1])) - { - return; - } - - $marker = $Excerpt['text'][0]; - - if ($Excerpt['text'][1] === $marker and preg_match($this->StrongRegex[$marker], $Excerpt['text'], $matches)) - { - $emphasis = 'strong'; - } - elseif (preg_match($this->EmRegex[$marker], $Excerpt['text'], $matches)) - { - $emphasis = 'em'; - } - else - { - return; - } - - return array( - 'extent' => strlen($matches[0]), - 'element' => array( - 'name' => $emphasis, - 'handler' => 'line', - 'text' => $matches[1], - ), - ); - } - - protected function inlineEscapeSequence($Excerpt) - { - if (isset($Excerpt['text'][1]) and in_array($Excerpt['text'][1], $this->specialCharacters)) - { - return array( - 'markup' => $Excerpt['text'][1], - 'extent' => 2, - ); - } - } - - protected function inlineImage($Excerpt) - { - if ( ! isset($Excerpt['text'][1]) or $Excerpt['text'][1] !== '[') - { - return; - } - - $Excerpt['text']= substr($Excerpt['text'], 1); - - $Link = $this->inlineLink($Excerpt); - - if ($Link === null) - { - return; - } - - $Inline = array( - 'extent' => $Link['extent'] + 1, - 'element' => array( - 'name' => 'img', - 'attributes' => array( - 'src' => $Link['element']['attributes']['href'], - 'alt' => $Link['element']['text'], - ), - ), - ); - - $Inline['element']['attributes'] += $Link['element']['attributes']; - - unset($Inline['element']['attributes']['href']); - - return $Inline; - } - - protected function inlineLink($Excerpt) - { - $Element = array( - 'name' => 'a', - 'handler' => 'line', - 'nonNestables' => array('Url', 'Link'), - 'text' => null, - 'attributes' => array( - 'href' => null, - 'title' => null, - ), - ); - - $extent = 0; - - $remainder = $Excerpt['text']; - - if (preg_match('/\[((?:[^][]++|(?R))*+)\]/', $remainder, $matches)) - { - $Element['text'] = $matches[1]; - - $extent += strlen($matches[0]); - - $remainder = substr($remainder, $extent); - } - else - { - return; - } - - if (preg_match('/^[(]\s*+((?:[^ ()]++|[(][^ )]+[)])++)(?:[ ]+("[^"]*"|\'[^\']*\'))?\s*[)]/', $remainder, $matches)) - { - $Element['attributes']['href'] = $matches[1]; - - if (isset($matches[2])) - { - $Element['attributes']['title'] = substr($matches[2], 1, - 1); - } - - $extent += strlen($matches[0]); - } - else - { - if (preg_match('/^\s*\[(.*?)\]/', $remainder, $matches)) - { - $definition = strlen($matches[1]) ? $matches[1] : $Element['text']; - $definition = strtolower($definition); - - $extent += strlen($matches[0]); - } - else - { - $definition = strtolower($Element['text']); - } - - if ( ! isset($this->DefinitionData['Reference'][$definition])) - { - return; - } - - $Definition = $this->DefinitionData['Reference'][$definition]; - - $Element['attributes']['href'] = $Definition['url']; - $Element['attributes']['title'] = $Definition['title']; - } - - return array( - 'extent' => $extent, - 'element' => $Element, - ); - } - - protected function inlineMarkup($Excerpt) - { - if ($this->markupEscaped or $this->safeMode or strpos($Excerpt['text'], '>') === false) - { - return; - } - - if ($Excerpt['text'][1] === '/' and preg_match('/^<\/\w[\w-]*[ ]*>/s', $Excerpt['text'], $matches)) - { - return array( - 'markup' => $matches[0], - 'extent' => strlen($matches[0]), - ); - } - - if ($Excerpt['text'][1] === '!' and preg_match('/^/s', $Excerpt['text'], $matches)) - { - return array( - 'markup' => $matches[0], - 'extent' => strlen($matches[0]), - ); - } - - if ($Excerpt['text'][1] !== ' ' and preg_match('/^<\w[\w-]*(?:[ ]*'.$this->regexHtmlAttribute.')*[ ]*\/?>/s', $Excerpt['text'], $matches)) - { - return array( - 'markup' => $matches[0], - 'extent' => strlen($matches[0]), - ); - } - } - - protected function inlineSpecialCharacter($Excerpt) - { - if ($Excerpt['text'][0] === '&' and ! preg_match('/^&#?\w+;/', $Excerpt['text'])) - { - return array( - 'markup' => '&', - 'extent' => 1, - ); - } - - $SpecialCharacter = array('>' => 'gt', '<' => 'lt', '"' => 'quot'); - - if (isset($SpecialCharacter[$Excerpt['text'][0]])) - { - return array( - 'markup' => '&'.$SpecialCharacter[$Excerpt['text'][0]].';', - 'extent' => 1, - ); - } - } - - protected function inlineStrikethrough($Excerpt) - { - if ( ! isset($Excerpt['text'][1])) - { - return; - } - - if ($Excerpt['text'][1] === '~' and preg_match('/^~~(?=\S)(.+?)(?<=\S)~~/', $Excerpt['text'], $matches)) - { - return array( - 'extent' => strlen($matches[0]), - 'element' => array( - 'name' => 'del', - 'text' => $matches[1], - 'handler' => 'line', - ), - ); - } - } - - protected function inlineUrl($Excerpt) - { - if ($this->urlsLinked !== true or ! isset($Excerpt['text'][2]) or $Excerpt['text'][2] !== '/') - { - return; - } - - if (preg_match('/\bhttps?:[\/]{2}[^\s<]+\b\/*/ui', $Excerpt['context'], $matches, PREG_OFFSET_CAPTURE)) - { - $url = $matches[0][0]; - - $Inline = array( - 'extent' => strlen($matches[0][0]), - 'position' => $matches[0][1], - 'element' => array( - 'name' => 'a', - 'text' => $url, - 'attributes' => array( - 'href' => $url, - ), - ), - ); - - return $Inline; - } - } - - protected function inlineUrlTag($Excerpt) - { - if (strpos($Excerpt['text'], '>') !== false and preg_match('/^<(\w+:\/{2}[^ >]+)>/i', $Excerpt['text'], $matches)) - { - $url = $matches[1]; - - return array( - 'extent' => strlen($matches[0]), - 'element' => array( - 'name' => 'a', - 'text' => $url, - 'attributes' => array( - 'href' => $url, - ), - ), - ); - } - } - - # ~ - - protected function unmarkedText($text) - { - if ($this->breaksEnabled) - { - $text = preg_replace('/[ ]*\n/', "
\n", $text); - } - else - { - $text = preg_replace('/(?:[ ][ ]+|[ ]*\\\\)\n/', "
\n", $text); - $text = str_replace(" \n", "\n", $text); - } - - return $text; - } - - # - # Handlers - # - - protected function element(array $Element) - { - if ($this->safeMode) - { - $Element = $this->sanitiseElement($Element); - } - - $markup = '<'.$Element['name']; - - if (isset($Element['attributes'])) - { - foreach ($Element['attributes'] as $name => $value) - { - if ($value === null) - { - continue; - } - - $markup .= ' '.$name.'="'.self::escape($value).'"'; - } - } - - if (isset($Element['text'])) - { - $markup .= '>'; - - if (!isset($Element['nonNestables'])) - { - $Element['nonNestables'] = array(); - } - - if (isset($Element['handler'])) - { - $markup .= $this->{$Element['handler']}($Element['text'], $Element['nonNestables']); - } - else - { - $markup .= self::escape($Element['text'], true); - } - - $markup .= ''; - } - else - { - $markup .= ' />'; - } - - return $markup; - } - - protected function elements(array $Elements) - { - $markup = ''; - - foreach ($Elements as $Element) - { - $markup .= "\n" . $this->element($Element); - } - - $markup .= "\n"; - - return $markup; - } - - # ~ - - protected function li($lines) - { - $markup = $this->lines($lines); - - $trimmedMarkup = trim($markup); - - if ( ! in_array('', $lines) and substr($trimmedMarkup, 0, 3) === '

') - { - $markup = $trimmedMarkup; - $markup = substr($markup, 3); - - $position = strpos($markup, "

"); - - $markup = substr_replace($markup, '', $position, 4); - } - - return $markup; - } - - # - # Deprecated Methods - # - - function parse($text) - { - $markup = $this->text($text); - - return $markup; - } - - protected function sanitiseElement(array $Element) - { - static $goodAttribute = '/^[a-zA-Z0-9][a-zA-Z0-9-_]*+$/'; - static $safeUrlNameToAtt = array( - 'a' => 'href', - 'img' => 'src', - ); - - if (isset($safeUrlNameToAtt[$Element['name']])) - { - $Element = $this->filterUnsafeUrlInAttribute($Element, $safeUrlNameToAtt[$Element['name']]); - } - - if ( ! empty($Element['attributes'])) - { - foreach ($Element['attributes'] as $att => $val) - { - # filter out badly parsed attribute - if ( ! preg_match($goodAttribute, $att)) - { - unset($Element['attributes'][$att]); - } - # dump onevent attribute - elseif (self::striAtStart($att, 'on')) - { - unset($Element['attributes'][$att]); - } - } - } - - return $Element; - } - - protected function filterUnsafeUrlInAttribute(array $Element, $attribute) - { - foreach ($this->safeLinksWhitelist as $scheme) - { - if (self::striAtStart($Element['attributes'][$attribute], $scheme)) - { - return $Element; - } - } - - $Element['attributes'][$attribute] = str_replace(':', '%3A', $Element['attributes'][$attribute]); - - return $Element; - } - - # - # Static Methods - # - - protected static function escape($text, $allowQuotes = false) - { - return htmlspecialchars($text, $allowQuotes ? ENT_NOQUOTES : ENT_QUOTES, 'UTF-8'); - } - - protected static function striAtStart($string, $needle) - { - $len = strlen($needle); - - if ($len > strlen($string)) - { - return false; - } - else - { - return strtolower(substr($string, 0, $len)) === strtolower($needle); - } - } - - static function instance($name = 'default') - { - if (isset(self::$instances[$name])) - { - return self::$instances[$name]; - } - - $instance = new static(); - - self::$instances[$name] = $instance; - - return $instance; - } - - private static $instances = array(); - - # - # Fields - # - - protected $DefinitionData; - - # - # Read-Only - - protected $specialCharacters = array( - '\\', '`', '*', '_', '{', '}', '[', ']', '(', ')', '>', '#', '+', '-', '.', '!', '|', - ); - - protected $StrongRegex = array( - '*' => '/^[*]{2}((?:\\\\\*|[^*]|[*][^*]*[*])+?)[*]{2}(?![*])/s', - '_' => '/^__((?:\\\\_|[^_]|_[^_]*_)+?)__(?!_)/us', - ); - - protected $EmRegex = array( - '*' => '/^[*]((?:\\\\\*|[^*]|[*][*][^*]+?[*][*])+?)[*](?![*])/s', - '_' => '/^_((?:\\\\_|[^_]|__[^_]*__)+?)_(?!_)\b/us', - ); - - protected $regexHtmlAttribute = '[a-zA-Z_:][\w:.-]*(?:\s*=\s*(?:[^"\'=<>`\s]+|"[^"]*"|\'[^\']*\'))?'; - - protected $voidElements = array( - 'area', 'base', 'br', 'col', 'command', 'embed', 'hr', 'img', 'input', 'link', 'meta', 'param', 'source', - ); - - protected $textLevelElements = array( - 'a', 'br', 'bdo', 'abbr', 'blink', 'nextid', 'acronym', 'basefont', - 'b', 'em', 'big', 'cite', 'small', 'spacer', 'listing', - 'i', 'rp', 'del', 'code', 'strike', 'marquee', - 'q', 'rt', 'ins', 'font', 'strong', - 's', 'tt', 'kbd', 'mark', - 'u', 'xm', 'sub', 'nobr', - 'sup', 'ruby', - 'var', 'span', - 'wbr', 'time', - ); -} diff --git a/vendor/erusev/parsedown/README.md b/vendor/erusev/parsedown/README.md deleted file mode 100644 index b5d9ed2e..00000000 --- a/vendor/erusev/parsedown/README.md +++ /dev/null @@ -1,86 +0,0 @@ -> I also make [Caret](https://caret.io?ref=parsedown) - a Markdown editor for Mac and PC. - -## Parsedown - -[![Build Status](https://img.shields.io/travis/erusev/parsedown/master.svg?style=flat-square)](https://travis-ci.org/erusev/parsedown) - - -Better Markdown Parser in PHP - -[Demo](http://parsedown.org/demo) | -[Benchmarks](http://parsedown.org/speed) | -[Tests](http://parsedown.org/tests/) | -[Documentation](https://github.com/erusev/parsedown/wiki/) - -### Features - -* One File -* No Dependencies -* Super Fast -* Extensible -* [GitHub flavored](https://help.github.com/articles/github-flavored-markdown) -* Tested in 5.3 to 7.1 and in HHVM -* [Markdown Extra extension](https://github.com/erusev/parsedown-extra) - -### Installation - -Include `Parsedown.php` or install [the composer package](https://packagist.org/packages/erusev/parsedown). - -### Example - -``` php -$Parsedown = new Parsedown(); - -echo $Parsedown->text('Hello _Parsedown_!'); # prints:

Hello Parsedown!

-``` - -More examples in [the wiki](https://github.com/erusev/parsedown/wiki/) and in [this video tutorial](http://youtu.be/wYZBY8DEikI). - -### Security - -Parsedown is capable of escaping user-input within the HTML that it generates. Additionally Parsedown will apply sanitisation to additional scripting vectors (such as scripting link destinations) that are introduced by the markdown syntax itself. - -To tell Parsedown that it is processing untrusted user-input, use the following: -```php -$parsedown = new Parsedown; -$parsedown->setSafeMode(true); -``` - -If instead, you wish to allow HTML within untrusted user-input, but still want output to be free from XSS it is recommended that you make use of a HTML sanitiser that allows HTML tags to be whitelisted, like [HTML Purifier](http://htmlpurifier.org/). - -In both cases you should strongly consider employing defence-in-depth measures, like [deploying a Content-Security-Policy](https://scotthelme.co.uk/content-security-policy-an-introduction/) (a browser security feature) so that your page is likely to be safe even if an attacker finds a vulnerability in one of the first lines of defence above. - -#### Security of Parsedown Extensions - -Safe mode does not necessarily yield safe results when using extensions to Parsedown. Extensions should be evaluated on their own to determine their specific safety against XSS. - -### Escaping HTML -> âš ï¸Â Â **WARNING:** This method isn't safe from XSS! - -If you wish to escape HTML **in trusted input**, you can use the following: -```php -$parsedown = new Parsedown; -$parsedown->setMarkupEscaped(true); -``` - -Beware that this still allows users to insert unsafe scripting vectors, such as links like `[xss](javascript:alert%281%29)`. - -### Questions - -**How does Parsedown work?** - -It tries to read Markdown like a human. First, it looks at the lines. It’s interested in how the lines start. This helps it recognise blocks. It knows, for example, that if a line starts with a `-` then perhaps it belongs to a list. Once it recognises the blocks, it continues to the content. As it reads, it watches out for special characters. This helps it recognise inline elements (or inlines). - -We call this approach "line based". We believe that Parsedown is the first Markdown parser to use it. Since the release of Parsedown, other developers have used the same approach to develop other Markdown parsers in PHP and in other languages. - -**Is it compliant with CommonMark?** - -It passes most of the CommonMark tests. Most of the tests that don't pass deal with cases that are quite uncommon. Still, as CommonMark matures, compliance should improve. - -**Who uses it?** - -[Laravel Framework](https://laravel.com/), [Bolt CMS](http://bolt.cm/), [Grav CMS](http://getgrav.org/), [Herbie CMS](http://www.getherbie.org/), [Kirby CMS](http://getkirby.com/), [October CMS](http://octobercms.com/), [Pico CMS](http://picocms.org), [Statamic CMS](http://www.statamic.com/), [phpDocumentor](http://www.phpdoc.org/), [RaspberryPi.org](http://www.raspberrypi.org/), [Symfony demo](https://github.com/symfony/symfony-demo) and [more](https://packagist.org/packages/erusev/parsedown/dependents). - -**How can I help?** - -Use it, star it, share it and if you feel generous, [donate](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=528P3NZQMP8N2). diff --git a/vendor/erusev/parsedown/composer.json b/vendor/erusev/parsedown/composer.json deleted file mode 100644 index f8b40f8c..00000000 --- a/vendor/erusev/parsedown/composer.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "name": "erusev/parsedown", - "description": "Parser for Markdown.", - "keywords": ["markdown", "parser"], - "homepage": "http://parsedown.org", - "type": "library", - "license": "MIT", - "authors": [ - { - "name": "Emanuil Rusev", - "email": "hello@erusev.com", - "homepage": "http://erusev.com" - } - ], - "require": { - "php": ">=5.3.0", - "ext-mbstring": "*" - }, - "require-dev": { - "phpunit/phpunit": "^4.8.35" - }, - "autoload": { - "psr-0": {"Parsedown": ""} - }, - "autoload-dev": { - "psr-0": { - "TestParsedown": "test/", - "ParsedownTest": "test/", - "CommonMarkTest": "test/", - "CommonMarkTestWeak": "test/" - } - } -} diff --git a/vendor/facebook/graph-sdk/CODE_OF_CONDUCT.md b/vendor/facebook/graph-sdk/CODE_OF_CONDUCT.md deleted file mode 100644 index 0a45f9bd..00000000 --- a/vendor/facebook/graph-sdk/CODE_OF_CONDUCT.md +++ /dev/null @@ -1,3 +0,0 @@ -# Code of Conduct - -Facebook has adopted a Code of Conduct that we expect project participants to adhere to. Please [read the full text](https://code.facebook.com/codeofconduct) so that you can understand what actions will and will not be tolerated. diff --git a/vendor/facebook/graph-sdk/LICENSE b/vendor/facebook/graph-sdk/LICENSE deleted file mode 100644 index 8b93109a..00000000 --- a/vendor/facebook/graph-sdk/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright 2017 Facebook, Inc. - -You are hereby granted a non-exclusive, worldwide, royalty-free license to -use, copy, modify, and distribute this software in source code or binary -form for use in connection with the web services and APIs provided by -Facebook. - -As with any software that integrates with the Facebook platform, your use -of this software is subject to the Facebook Developer Principles and -Policies [http://developers.facebook.com/policy/]. This copyright notice -shall be included in all copies or substantial portions of the software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL -THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -DEALINGS IN THE SOFTWARE. diff --git a/vendor/facebook/graph-sdk/composer.json b/vendor/facebook/graph-sdk/composer.json deleted file mode 100644 index 9d54abc3..00000000 --- a/vendor/facebook/graph-sdk/composer.json +++ /dev/null @@ -1,42 +0,0 @@ -{ - "name": "facebook/graph-sdk", - "description": "Facebook SDK for PHP", - "keywords": ["facebook", "sdk"], - "type": "library", - "homepage": "https://github.com/facebook/php-graph-sdk", - "license": "Facebook Platform", - "authors": [ - { - "name": "Facebook", - "homepage": "https://github.com/facebook/php-graph-sdk/contributors" - } - ], - "require": { - "php": "^5.4|^7.0" - }, - "require-dev": { - "phpunit/phpunit": "~4.0", - "mockery/mockery": "~0.8", - "guzzlehttp/guzzle": "~5.0" - }, - "suggest": { - "paragonie/random_compat": "Provides a better CSPRNG option in PHP 5", - "guzzlehttp/guzzle": "Allows for implementation of the Guzzle HTTP client" - }, - "autoload": { - "psr-4": { - "Facebook\\": "src/Facebook/" - }, - "files": ["src/Facebook/polyfills.php"] - }, - "autoload-dev": { - "psr-4": { - "Facebook\\Tests\\": "tests/" - } - }, - "extra": { - "branch-alias": { - "dev-master": "5.x-dev" - } - } -} diff --git a/vendor/facebook/graph-sdk/phpcs.xml.dist b/vendor/facebook/graph-sdk/phpcs.xml.dist deleted file mode 100644 index 96c56f88..00000000 --- a/vendor/facebook/graph-sdk/phpcs.xml.dist +++ /dev/null @@ -1,7 +0,0 @@ - - - src/ - tests/ - - - diff --git a/vendor/facebook/graph-sdk/src/Facebook/Authentication/AccessToken.php b/vendor/facebook/graph-sdk/src/Facebook/Authentication/AccessToken.php deleted file mode 100644 index 5d700733..00000000 --- a/vendor/facebook/graph-sdk/src/Facebook/Authentication/AccessToken.php +++ /dev/null @@ -1,160 +0,0 @@ -value = $accessToken; - if ($expiresAt) { - $this->setExpiresAtFromTimeStamp($expiresAt); - } - } - - /** - * Generate an app secret proof to sign a request to Graph. - * - * @param string $appSecret The app secret. - * - * @return string - */ - public function getAppSecretProof($appSecret) - { - return hash_hmac('sha256', $this->value, $appSecret); - } - - /** - * Getter for expiresAt. - * - * @return \DateTime|null - */ - public function getExpiresAt() - { - return $this->expiresAt; - } - - /** - * Determines whether or not this is an app access token. - * - * @return bool - */ - public function isAppAccessToken() - { - return strpos($this->value, '|') !== false; - } - - /** - * Determines whether or not this is a long-lived token. - * - * @return bool - */ - public function isLongLived() - { - if ($this->expiresAt) { - return $this->expiresAt->getTimestamp() > time() + (60 * 60 * 2); - } - - if ($this->isAppAccessToken()) { - return true; - } - - return false; - } - - /** - * Checks the expiration of the access token. - * - * @return boolean|null - */ - public function isExpired() - { - if ($this->getExpiresAt() instanceof \DateTime) { - return $this->getExpiresAt()->getTimestamp() < time(); - } - - if ($this->isAppAccessToken()) { - return false; - } - - return null; - } - - /** - * Returns the access token as a string. - * - * @return string - */ - public function getValue() - { - return $this->value; - } - - /** - * Returns the access token as a string. - * - * @return string - */ - public function __toString() - { - return $this->getValue(); - } - - /** - * Setter for expires_at. - * - * @param int $timeStamp - */ - protected function setExpiresAtFromTimeStamp($timeStamp) - { - $dt = new \DateTime(); - $dt->setTimestamp($timeStamp); - $this->expiresAt = $dt; - } -} diff --git a/vendor/facebook/graph-sdk/src/Facebook/Authentication/AccessTokenMetadata.php b/vendor/facebook/graph-sdk/src/Facebook/Authentication/AccessTokenMetadata.php deleted file mode 100644 index 165433cb..00000000 --- a/vendor/facebook/graph-sdk/src/Facebook/Authentication/AccessTokenMetadata.php +++ /dev/null @@ -1,390 +0,0 @@ -metadata = $metadata['data']; - - $this->castTimestampsToDateTime(); - } - - /** - * Returns a value from the metadata. - * - * @param string $field The property to retrieve. - * @param mixed $default The default to return if the property doesn't exist. - * - * @return mixed - */ - public function getField($field, $default = null) - { - if (isset($this->metadata[$field])) { - return $this->metadata[$field]; - } - - return $default; - } - - /** - * Returns a value from the metadata. - * - * @param string $field The property to retrieve. - * @param mixed $default The default to return if the property doesn't exist. - * - * @return mixed - * - * @deprecated 5.0.0 getProperty() has been renamed to getField() - * @todo v6: Remove this method - */ - public function getProperty($field, $default = null) - { - return $this->getField($field, $default); - } - - /** - * Returns a value from a child property in the metadata. - * - * @param string $parentField The parent property. - * @param string $field The property to retrieve. - * @param mixed $default The default to return if the property doesn't exist. - * - * @return mixed - */ - public function getChildProperty($parentField, $field, $default = null) - { - if (!isset($this->metadata[$parentField])) { - return $default; - } - - if (!isset($this->metadata[$parentField][$field])) { - return $default; - } - - return $this->metadata[$parentField][$field]; - } - - /** - * Returns a value from the error metadata. - * - * @param string $field The property to retrieve. - * @param mixed $default The default to return if the property doesn't exist. - * - * @return mixed - */ - public function getErrorProperty($field, $default = null) - { - return $this->getChildProperty('error', $field, $default); - } - - /** - * Returns a value from the "metadata" metadata. *Brain explodes* - * - * @param string $field The property to retrieve. - * @param mixed $default The default to return if the property doesn't exist. - * - * @return mixed - */ - public function getMetadataProperty($field, $default = null) - { - return $this->getChildProperty('metadata', $field, $default); - } - - /** - * The ID of the application this access token is for. - * - * @return string|null - */ - public function getAppId() - { - return $this->getField('app_id'); - } - - /** - * Name of the application this access token is for. - * - * @return string|null - */ - public function getApplication() - { - return $this->getField('application'); - } - - /** - * Any error that a request to the graph api - * would return due to the access token. - * - * @return bool|null - */ - public function isError() - { - return $this->getField('error') !== null; - } - - /** - * The error code for the error. - * - * @return int|null - */ - public function getErrorCode() - { - return $this->getErrorProperty('code'); - } - - /** - * The error message for the error. - * - * @return string|null - */ - public function getErrorMessage() - { - return $this->getErrorProperty('message'); - } - - /** - * The error subcode for the error. - * - * @return int|null - */ - public function getErrorSubcode() - { - return $this->getErrorProperty('subcode'); - } - - /** - * DateTime when this access token expires. - * - * @return \DateTime|null - */ - public function getExpiresAt() - { - return $this->getField('expires_at'); - } - - /** - * Whether the access token is still valid or not. - * - * @return boolean|null - */ - public function getIsValid() - { - return $this->getField('is_valid'); - } - - /** - * DateTime when this access token was issued. - * - * Note that the issued_at field is not returned - * for short-lived access tokens. - * - * @see https://developers.facebook.com/docs/facebook-login/access-tokens#debug - * - * @return \DateTime|null - */ - public function getIssuedAt() - { - return $this->getField('issued_at'); - } - - /** - * General metadata associated with the access token. - * Can contain data like 'sso', 'auth_type', 'auth_nonce'. - * - * @return array|null - */ - public function getMetadata() - { - return $this->getField('metadata'); - } - - /** - * The 'sso' child property from the 'metadata' parent property. - * - * @return string|null - */ - public function getSso() - { - return $this->getMetadataProperty('sso'); - } - - /** - * The 'auth_type' child property from the 'metadata' parent property. - * - * @return string|null - */ - public function getAuthType() - { - return $this->getMetadataProperty('auth_type'); - } - - /** - * The 'auth_nonce' child property from the 'metadata' parent property. - * - * @return string|null - */ - public function getAuthNonce() - { - return $this->getMetadataProperty('auth_nonce'); - } - - /** - * For impersonated access tokens, the ID of - * the page this token contains. - * - * @return string|null - */ - public function getProfileId() - { - return $this->getField('profile_id'); - } - - /** - * List of permissions that the user has granted for - * the app in this access token. - * - * @return array - */ - public function getScopes() - { - return $this->getField('scopes'); - } - - /** - * The ID of the user this access token is for. - * - * @return string|null - */ - public function getUserId() - { - return $this->getField('user_id'); - } - - /** - * Ensures the app ID from the access token - * metadata is what we expect. - * - * @param string $appId - * - * @throws FacebookSDKException - */ - public function validateAppId($appId) - { - if ($this->getAppId() !== $appId) { - throw new FacebookSDKException('Access token metadata contains unexpected app ID.', 401); - } - } - - /** - * Ensures the user ID from the access token - * metadata is what we expect. - * - * @param string $userId - * - * @throws FacebookSDKException - */ - public function validateUserId($userId) - { - if ($this->getUserId() !== $userId) { - throw new FacebookSDKException('Access token metadata contains unexpected user ID.', 401); - } - } - - /** - * Ensures the access token has not expired yet. - * - * @throws FacebookSDKException - */ - public function validateExpiration() - { - if (!$this->getExpiresAt() instanceof \DateTime) { - return; - } - - if ($this->getExpiresAt()->getTimestamp() < time()) { - throw new FacebookSDKException('Inspection of access token metadata shows that the access token has expired.', 401); - } - } - - /** - * Converts a unix timestamp into a DateTime entity. - * - * @param int $timestamp - * - * @return \DateTime - */ - private function convertTimestampToDateTime($timestamp) - { - $dt = new \DateTime(); - $dt->setTimestamp($timestamp); - - return $dt; - } - - /** - * Casts the unix timestamps as DateTime entities. - */ - private function castTimestampsToDateTime() - { - foreach (static::$dateProperties as $key) { - if (isset($this->metadata[$key]) && $this->metadata[$key] !== 0) { - $this->metadata[$key] = $this->convertTimestampToDateTime($this->metadata[$key]); - } - } - } -} diff --git a/vendor/facebook/graph-sdk/src/Facebook/Authentication/OAuth2Client.php b/vendor/facebook/graph-sdk/src/Facebook/Authentication/OAuth2Client.php deleted file mode 100644 index 94df9b7b..00000000 --- a/vendor/facebook/graph-sdk/src/Facebook/Authentication/OAuth2Client.php +++ /dev/null @@ -1,292 +0,0 @@ -app = $app; - $this->client = $client; - $this->graphVersion = $graphVersion ?: Facebook::DEFAULT_GRAPH_VERSION; - } - - /** - * Returns the last FacebookRequest that was sent. - * Useful for debugging and testing. - * - * @return FacebookRequest|null - */ - public function getLastRequest() - { - return $this->lastRequest; - } - - /** - * Get the metadata associated with the access token. - * - * @param AccessToken|string $accessToken The access token to debug. - * - * @return AccessTokenMetadata - */ - public function debugToken($accessToken) - { - $accessToken = $accessToken instanceof AccessToken ? $accessToken->getValue() : $accessToken; - $params = ['input_token' => $accessToken]; - - $this->lastRequest = new FacebookRequest( - $this->app, - $this->app->getAccessToken(), - 'GET', - '/debug_token', - $params, - null, - $this->graphVersion - ); - $response = $this->client->sendRequest($this->lastRequest); - $metadata = $response->getDecodedBody(); - - return new AccessTokenMetadata($metadata); - } - - /** - * Generates an authorization URL to begin the process of authenticating a user. - * - * @param string $redirectUrl The callback URL to redirect to. - * @param string $state The CSPRNG-generated CSRF value. - * @param array $scope An array of permissions to request. - * @param array $params An array of parameters to generate URL. - * @param string $separator The separator to use in http_build_query(). - * - * @return string - */ - public function getAuthorizationUrl($redirectUrl, $state, array $scope = [], array $params = [], $separator = '&') - { - $params += [ - 'client_id' => $this->app->getId(), - 'state' => $state, - 'response_type' => 'code', - 'sdk' => 'php-sdk-' . Facebook::VERSION, - 'redirect_uri' => $redirectUrl, - 'scope' => implode(',', $scope) - ]; - - return static::BASE_AUTHORIZATION_URL . '/' . $this->graphVersion . '/dialog/oauth?' . http_build_query($params, null, $separator); - } - - /** - * Get a valid access token from a code. - * - * @param string $code - * @param string $redirectUri - * - * @return AccessToken - * - * @throws FacebookSDKException - */ - public function getAccessTokenFromCode($code, $redirectUri = '') - { - $params = [ - 'code' => $code, - 'redirect_uri' => $redirectUri, - ]; - - return $this->requestAnAccessToken($params); - } - - /** - * Exchanges a short-lived access token with a long-lived access token. - * - * @param AccessToken|string $accessToken - * - * @return AccessToken - * - * @throws FacebookSDKException - */ - public function getLongLivedAccessToken($accessToken) - { - $accessToken = $accessToken instanceof AccessToken ? $accessToken->getValue() : $accessToken; - $params = [ - 'grant_type' => 'fb_exchange_token', - 'fb_exchange_token' => $accessToken, - ]; - - return $this->requestAnAccessToken($params); - } - - /** - * Get a valid code from an access token. - * - * @param AccessToken|string $accessToken - * @param string $redirectUri - * - * @return AccessToken - * - * @throws FacebookSDKException - */ - public function getCodeFromLongLivedAccessToken($accessToken, $redirectUri = '') - { - $params = [ - 'redirect_uri' => $redirectUri, - ]; - - $response = $this->sendRequestWithClientParams('/oauth/client_code', $params, $accessToken); - $data = $response->getDecodedBody(); - - if (!isset($data['code'])) { - throw new FacebookSDKException('Code was not returned from Graph.', 401); - } - - return $data['code']; - } - - /** - * Send a request to the OAuth endpoint. - * - * @param array $params - * - * @return AccessToken - * - * @throws FacebookSDKException - */ - protected function requestAnAccessToken(array $params) - { - $response = $this->sendRequestWithClientParams('/oauth/access_token', $params); - $data = $response->getDecodedBody(); - - if (!isset($data['access_token'])) { - throw new FacebookSDKException('Access token was not returned from Graph.', 401); - } - - // Graph returns two different key names for expiration time - // on the same endpoint. Doh! :/ - $expiresAt = 0; - if (isset($data['expires'])) { - // For exchanging a short lived token with a long lived token. - // The expiration time in seconds will be returned as "expires". - $expiresAt = time() + $data['expires']; - } elseif (isset($data['expires_in'])) { - // For exchanging a code for a short lived access token. - // The expiration time in seconds will be returned as "expires_in". - // See: https://developers.facebook.com/docs/facebook-login/access-tokens#long-via-code - $expiresAt = time() + $data['expires_in']; - } - - return new AccessToken($data['access_token'], $expiresAt); - } - - /** - * Send a request to Graph with an app access token. - * - * @param string $endpoint - * @param array $params - * @param AccessToken|string|null $accessToken - * - * @return FacebookResponse - * - * @throws FacebookResponseException - */ - protected function sendRequestWithClientParams($endpoint, array $params, $accessToken = null) - { - $params += $this->getClientParams(); - - $accessToken = $accessToken ?: $this->app->getAccessToken(); - - $this->lastRequest = new FacebookRequest( - $this->app, - $accessToken, - 'GET', - $endpoint, - $params, - null, - $this->graphVersion - ); - - return $this->client->sendRequest($this->lastRequest); - } - - /** - * Returns the client_* params for OAuth requests. - * - * @return array - */ - protected function getClientParams() - { - return [ - 'client_id' => $this->app->getId(), - 'client_secret' => $this->app->getSecret(), - ]; - } -} diff --git a/vendor/facebook/graph-sdk/src/Facebook/Exceptions/FacebookAuthenticationException.php b/vendor/facebook/graph-sdk/src/Facebook/Exceptions/FacebookAuthenticationException.php deleted file mode 100644 index c5e45fa3..00000000 --- a/vendor/facebook/graph-sdk/src/Facebook/Exceptions/FacebookAuthenticationException.php +++ /dev/null @@ -1,33 +0,0 @@ -response = $response; - $this->responseData = $response->getDecodedBody(); - - $errorMessage = $this->get('message', 'Unknown error from Graph.'); - $errorCode = $this->get('code', -1); - - parent::__construct($errorMessage, $errorCode, $previousException); - } - - /** - * A factory for creating the appropriate exception based on the response from Graph. - * - * @param FacebookResponse $response The response that threw the exception. - * - * @return FacebookResponseException - */ - public static function create(FacebookResponse $response) - { - $data = $response->getDecodedBody(); - - if (!isset($data['error']['code']) && isset($data['code'])) { - $data = ['error' => $data]; - } - - $code = isset($data['error']['code']) ? $data['error']['code'] : null; - $message = isset($data['error']['message']) ? $data['error']['message'] : 'Unknown error from Graph.'; - - if (isset($data['error']['error_subcode'])) { - switch ($data['error']['error_subcode']) { - // Other authentication issues - case 458: - case 459: - case 460: - case 463: - case 464: - case 467: - return new static($response, new FacebookAuthenticationException($message, $code)); - // Video upload resumable error - case 1363030: - case 1363019: - case 1363037: - case 1363033: - case 1363021: - case 1363041: - return new static($response, new FacebookResumableUploadException($message, $code)); - } - } - - switch ($code) { - // Login status or token expired, revoked, or invalid - case 100: - case 102: - case 190: - return new static($response, new FacebookAuthenticationException($message, $code)); - - // Server issue, possible downtime - case 1: - case 2: - return new static($response, new FacebookServerException($message, $code)); - - // API Throttling - case 4: - case 17: - case 32: - case 341: - case 613: - return new static($response, new FacebookThrottleException($message, $code)); - - // Duplicate Post - case 506: - return new static($response, new FacebookClientException($message, $code)); - } - - // Missing Permissions - if ($code == 10 || ($code >= 200 && $code <= 299)) { - return new static($response, new FacebookAuthorizationException($message, $code)); - } - - // OAuth authentication error - if (isset($data['error']['type']) && $data['error']['type'] === 'OAuthException') { - return new static($response, new FacebookAuthenticationException($message, $code)); - } - - // All others - return new static($response, new FacebookOtherException($message, $code)); - } - - /** - * Checks isset and returns that or a default value. - * - * @param string $key - * @param mixed $default - * - * @return mixed - */ - private function get($key, $default = null) - { - if (isset($this->responseData['error'][$key])) { - return $this->responseData['error'][$key]; - } - - return $default; - } - - /** - * Returns the HTTP status code - * - * @return int - */ - public function getHttpStatusCode() - { - return $this->response->getHttpStatusCode(); - } - - /** - * Returns the sub-error code - * - * @return int - */ - public function getSubErrorCode() - { - return $this->get('error_subcode', -1); - } - - /** - * Returns the error type - * - * @return string - */ - public function getErrorType() - { - return $this->get('type', ''); - } - - /** - * Returns the raw response used to create the exception. - * - * @return string - */ - public function getRawResponse() - { - return $this->response->getBody(); - } - - /** - * Returns the decoded response used to create the exception. - * - * @return array - */ - public function getResponseData() - { - return $this->responseData; - } - - /** - * Returns the response entity used to create the exception. - * - * @return FacebookResponse - */ - public function getResponse() - { - return $this->response; - } -} diff --git a/vendor/facebook/graph-sdk/src/Facebook/Exceptions/FacebookResumableUploadException.php b/vendor/facebook/graph-sdk/src/Facebook/Exceptions/FacebookResumableUploadException.php deleted file mode 100644 index 6f470662..00000000 --- a/vendor/facebook/graph-sdk/src/Facebook/Exceptions/FacebookResumableUploadException.php +++ /dev/null @@ -1,33 +0,0 @@ - getenv(static::APP_ID_ENV_NAME), - 'app_secret' => getenv(static::APP_SECRET_ENV_NAME), - 'default_graph_version' => static::DEFAULT_GRAPH_VERSION, - 'enable_beta_mode' => false, - 'http_client_handler' => null, - 'persistent_data_handler' => null, - 'pseudo_random_string_generator' => null, - 'url_detection_handler' => null, - ], $config); - - if (!$config['app_id']) { - throw new FacebookSDKException('Required "app_id" key not supplied in config and could not find fallback environment variable "' . static::APP_ID_ENV_NAME . '"'); - } - if (!$config['app_secret']) { - throw new FacebookSDKException('Required "app_secret" key not supplied in config and could not find fallback environment variable "' . static::APP_SECRET_ENV_NAME . '"'); - } - - $this->app = new FacebookApp($config['app_id'], $config['app_secret']); - $this->client = new FacebookClient( - HttpClientsFactory::createHttpClient($config['http_client_handler']), - $config['enable_beta_mode'] - ); - $this->pseudoRandomStringGenerator = PseudoRandomStringGeneratorFactory::createPseudoRandomStringGenerator( - $config['pseudo_random_string_generator'] - ); - $this->setUrlDetectionHandler($config['url_detection_handler'] ?: new FacebookUrlDetectionHandler()); - $this->persistentDataHandler = PersistentDataFactory::createPersistentDataHandler( - $config['persistent_data_handler'] - ); - - if (isset($config['default_access_token'])) { - $this->setDefaultAccessToken($config['default_access_token']); - } - - // @todo v6: Throw an InvalidArgumentException if "default_graph_version" is not set - $this->defaultGraphVersion = $config['default_graph_version']; - } - - /** - * Returns the FacebookApp entity. - * - * @return FacebookApp - */ - public function getApp() - { - return $this->app; - } - - /** - * Returns the FacebookClient service. - * - * @return FacebookClient - */ - public function getClient() - { - return $this->client; - } - - /** - * Returns the OAuth 2.0 client service. - * - * @return OAuth2Client - */ - public function getOAuth2Client() - { - if (!$this->oAuth2Client instanceof OAuth2Client) { - $app = $this->getApp(); - $client = $this->getClient(); - $this->oAuth2Client = new OAuth2Client($app, $client, $this->defaultGraphVersion); - } - - return $this->oAuth2Client; - } - - /** - * Returns the last response returned from Graph. - * - * @return FacebookResponse|FacebookBatchResponse|null - */ - public function getLastResponse() - { - return $this->lastResponse; - } - - /** - * Returns the URL detection handler. - * - * @return UrlDetectionInterface - */ - public function getUrlDetectionHandler() - { - return $this->urlDetectionHandler; - } - - /** - * Changes the URL detection handler. - * - * @param UrlDetectionInterface $urlDetectionHandler - */ - private function setUrlDetectionHandler(UrlDetectionInterface $urlDetectionHandler) - { - $this->urlDetectionHandler = $urlDetectionHandler; - } - - /** - * Returns the default AccessToken entity. - * - * @return AccessToken|null - */ - public function getDefaultAccessToken() - { - return $this->defaultAccessToken; - } - - /** - * Sets the default access token to use with requests. - * - * @param AccessToken|string $accessToken The access token to save. - * - * @throws \InvalidArgumentException - */ - public function setDefaultAccessToken($accessToken) - { - if (is_string($accessToken)) { - $this->defaultAccessToken = new AccessToken($accessToken); - - return; - } - - if ($accessToken instanceof AccessToken) { - $this->defaultAccessToken = $accessToken; - - return; - } - - throw new \InvalidArgumentException('The default access token must be of type "string" or Facebook\AccessToken'); - } - - /** - * Returns the default Graph version. - * - * @return string - */ - public function getDefaultGraphVersion() - { - return $this->defaultGraphVersion; - } - - /** - * Returns the redirect login helper. - * - * @return FacebookRedirectLoginHelper - */ - public function getRedirectLoginHelper() - { - return new FacebookRedirectLoginHelper( - $this->getOAuth2Client(), - $this->persistentDataHandler, - $this->urlDetectionHandler, - $this->pseudoRandomStringGenerator - ); - } - - /** - * Returns the JavaScript helper. - * - * @return FacebookJavaScriptHelper - */ - public function getJavaScriptHelper() - { - return new FacebookJavaScriptHelper($this->app, $this->client, $this->defaultGraphVersion); - } - - /** - * Returns the canvas helper. - * - * @return FacebookCanvasHelper - */ - public function getCanvasHelper() - { - return new FacebookCanvasHelper($this->app, $this->client, $this->defaultGraphVersion); - } - - /** - * Returns the page tab helper. - * - * @return FacebookPageTabHelper - */ - public function getPageTabHelper() - { - return new FacebookPageTabHelper($this->app, $this->client, $this->defaultGraphVersion); - } - - /** - * Sends a GET request to Graph and returns the result. - * - * @param string $endpoint - * @param AccessToken|string|null $accessToken - * @param string|null $eTag - * @param string|null $graphVersion - * - * @return FacebookResponse - * - * @throws FacebookSDKException - */ - public function get($endpoint, $accessToken = null, $eTag = null, $graphVersion = null) - { - return $this->sendRequest( - 'GET', - $endpoint, - $params = [], - $accessToken, - $eTag, - $graphVersion - ); - } - - /** - * Sends a POST request to Graph and returns the result. - * - * @param string $endpoint - * @param array $params - * @param AccessToken|string|null $accessToken - * @param string|null $eTag - * @param string|null $graphVersion - * - * @return FacebookResponse - * - * @throws FacebookSDKException - */ - public function post($endpoint, array $params = [], $accessToken = null, $eTag = null, $graphVersion = null) - { - return $this->sendRequest( - 'POST', - $endpoint, - $params, - $accessToken, - $eTag, - $graphVersion - ); - } - - /** - * Sends a DELETE request to Graph and returns the result. - * - * @param string $endpoint - * @param array $params - * @param AccessToken|string|null $accessToken - * @param string|null $eTag - * @param string|null $graphVersion - * - * @return FacebookResponse - * - * @throws FacebookSDKException - */ - public function delete($endpoint, array $params = [], $accessToken = null, $eTag = null, $graphVersion = null) - { - return $this->sendRequest( - 'DELETE', - $endpoint, - $params, - $accessToken, - $eTag, - $graphVersion - ); - } - - /** - * Sends a request to Graph for the next page of results. - * - * @param GraphEdge $graphEdge The GraphEdge to paginate over. - * - * @return GraphEdge|null - * - * @throws FacebookSDKException - */ - public function next(GraphEdge $graphEdge) - { - return $this->getPaginationResults($graphEdge, 'next'); - } - - /** - * Sends a request to Graph for the previous page of results. - * - * @param GraphEdge $graphEdge The GraphEdge to paginate over. - * - * @return GraphEdge|null - * - * @throws FacebookSDKException - */ - public function previous(GraphEdge $graphEdge) - { - return $this->getPaginationResults($graphEdge, 'previous'); - } - - /** - * Sends a request to Graph for the next page of results. - * - * @param GraphEdge $graphEdge The GraphEdge to paginate over. - * @param string $direction The direction of the pagination: next|previous. - * - * @return GraphEdge|null - * - * @throws FacebookSDKException - */ - public function getPaginationResults(GraphEdge $graphEdge, $direction) - { - $paginationRequest = $graphEdge->getPaginationRequest($direction); - if (!$paginationRequest) { - return null; - } - - $this->lastResponse = $this->client->sendRequest($paginationRequest); - - // Keep the same GraphNode subclass - $subClassName = $graphEdge->getSubClassName(); - $graphEdge = $this->lastResponse->getGraphEdge($subClassName, false); - - return count($graphEdge) > 0 ? $graphEdge : null; - } - - /** - * Sends a request to Graph and returns the result. - * - * @param string $method - * @param string $endpoint - * @param array $params - * @param AccessToken|string|null $accessToken - * @param string|null $eTag - * @param string|null $graphVersion - * - * @return FacebookResponse - * - * @throws FacebookSDKException - */ - public function sendRequest($method, $endpoint, array $params = [], $accessToken = null, $eTag = null, $graphVersion = null) - { - $accessToken = $accessToken ?: $this->defaultAccessToken; - $graphVersion = $graphVersion ?: $this->defaultGraphVersion; - $request = $this->request($method, $endpoint, $params, $accessToken, $eTag, $graphVersion); - - return $this->lastResponse = $this->client->sendRequest($request); - } - - /** - * Sends a batched request to Graph and returns the result. - * - * @param array $requests - * @param AccessToken|string|null $accessToken - * @param string|null $graphVersion - * - * @return FacebookBatchResponse - * - * @throws FacebookSDKException - */ - public function sendBatchRequest(array $requests, $accessToken = null, $graphVersion = null) - { - $accessToken = $accessToken ?: $this->defaultAccessToken; - $graphVersion = $graphVersion ?: $this->defaultGraphVersion; - $batchRequest = new FacebookBatchRequest( - $this->app, - $requests, - $accessToken, - $graphVersion - ); - - return $this->lastResponse = $this->client->sendBatchRequest($batchRequest); - } - - /** - * Instantiates an empty FacebookBatchRequest entity. - * - * @param AccessToken|string|null $accessToken The top-level access token. Requests with no access token - * will fallback to this. - * @param string|null $graphVersion The Graph API version to use. - * @return FacebookBatchRequest - */ - public function newBatchRequest($accessToken = null, $graphVersion = null) - { - $accessToken = $accessToken ?: $this->defaultAccessToken; - $graphVersion = $graphVersion ?: $this->defaultGraphVersion; - - return new FacebookBatchRequest( - $this->app, - [], - $accessToken, - $graphVersion - ); - } - - /** - * Instantiates a new FacebookRequest entity. - * - * @param string $method - * @param string $endpoint - * @param array $params - * @param AccessToken|string|null $accessToken - * @param string|null $eTag - * @param string|null $graphVersion - * - * @return FacebookRequest - * - * @throws FacebookSDKException - */ - public function request($method, $endpoint, array $params = [], $accessToken = null, $eTag = null, $graphVersion = null) - { - $accessToken = $accessToken ?: $this->defaultAccessToken; - $graphVersion = $graphVersion ?: $this->defaultGraphVersion; - - return new FacebookRequest( - $this->app, - $accessToken, - $method, - $endpoint, - $params, - $eTag, - $graphVersion - ); - } - - /** - * Factory to create FacebookFile's. - * - * @param string $pathToFile - * - * @return FacebookFile - * - * @throws FacebookSDKException - */ - public function fileToUpload($pathToFile) - { - return new FacebookFile($pathToFile); - } - - /** - * Factory to create FacebookVideo's. - * - * @param string $pathToFile - * - * @return FacebookVideo - * - * @throws FacebookSDKException - */ - public function videoToUpload($pathToFile) - { - return new FacebookVideo($pathToFile); - } - - /** - * Upload a video in chunks. - * - * @param int $target The id of the target node before the /videos edge. - * @param string $pathToFile The full path to the file. - * @param array $metadata The metadata associated with the video file. - * @param string|null $accessToken The access token. - * @param int $maxTransferTries The max times to retry a failed upload chunk. - * @param string|null $graphVersion The Graph API version to use. - * - * @return array - * - * @throws FacebookSDKException - */ - public function uploadVideo($target, $pathToFile, $metadata = [], $accessToken = null, $maxTransferTries = 5, $graphVersion = null) - { - $accessToken = $accessToken ?: $this->defaultAccessToken; - $graphVersion = $graphVersion ?: $this->defaultGraphVersion; - - $uploader = new FacebookResumableUploader($this->app, $this->client, $accessToken, $graphVersion); - $endpoint = '/'.$target.'/videos'; - $file = $this->videoToUpload($pathToFile); - $chunk = $uploader->start($endpoint, $file); - - do { - $chunk = $this->maxTriesTransfer($uploader, $endpoint, $chunk, $maxTransferTries); - } while (!$chunk->isLastChunk()); - - return [ - 'video_id' => $chunk->getVideoId(), - 'success' => $uploader->finish($endpoint, $chunk->getUploadSessionId(), $metadata), - ]; - } - - /** - * Attempts to upload a chunk of a file in $retryCountdown tries. - * - * @param FacebookResumableUploader $uploader - * @param string $endpoint - * @param FacebookTransferChunk $chunk - * @param int $retryCountdown - * - * @return FacebookTransferChunk - * - * @throws FacebookSDKException - */ - private function maxTriesTransfer(FacebookResumableUploader $uploader, $endpoint, FacebookTransferChunk $chunk, $retryCountdown) - { - $newChunk = $uploader->transfer($endpoint, $chunk, $retryCountdown < 1); - - if ($newChunk !== $chunk) { - return $newChunk; - } - - $retryCountdown--; - - // If transfer() returned the same chunk entity, the transfer failed but is resumable. - return $this->maxTriesTransfer($uploader, $endpoint, $chunk, $retryCountdown); - } -} diff --git a/vendor/facebook/graph-sdk/src/Facebook/FacebookApp.php b/vendor/facebook/graph-sdk/src/Facebook/FacebookApp.php deleted file mode 100644 index 804c9bb5..00000000 --- a/vendor/facebook/graph-sdk/src/Facebook/FacebookApp.php +++ /dev/null @@ -1,110 +0,0 @@ -id = (string) $id; - $this->secret = $secret; - } - - /** - * Returns the app ID. - * - * @return string - */ - public function getId() - { - return $this->id; - } - - /** - * Returns the app secret. - * - * @return string - */ - public function getSecret() - { - return $this->secret; - } - - /** - * Returns an app access token. - * - * @return AccessToken - */ - public function getAccessToken() - { - return new AccessToken($this->id . '|' . $this->secret); - } - - /** - * Serializes the FacebookApp entity as a string. - * - * @return string - */ - public function serialize() - { - return implode('|', [$this->id, $this->secret]); - } - - /** - * Unserializes a string as a FacebookApp entity. - * - * @param string $serialized - */ - public function unserialize($serialized) - { - list($id, $secret) = explode('|', $serialized); - - $this->__construct($id, $secret); - } -} diff --git a/vendor/facebook/graph-sdk/src/Facebook/FacebookBatchRequest.php b/vendor/facebook/graph-sdk/src/Facebook/FacebookBatchRequest.php deleted file mode 100644 index 9297e77d..00000000 --- a/vendor/facebook/graph-sdk/src/Facebook/FacebookBatchRequest.php +++ /dev/null @@ -1,322 +0,0 @@ -add($requests); - } - - /** - * Adds a new request to the array. - * - * @param FacebookRequest|array $request - * @param string|null|array $options Array of batch request options e.g. 'name', 'omit_response_on_success'. - * If a string is given, it is the value of the 'name' option. - * - * @return FacebookBatchRequest - * - * @throws \InvalidArgumentException - */ - public function add($request, $options = null) - { - if (is_array($request)) { - foreach ($request as $key => $req) { - $this->add($req, $key); - } - - return $this; - } - - if (!$request instanceof FacebookRequest) { - throw new \InvalidArgumentException('Argument for add() must be of type array or FacebookRequest.'); - } - - if (null === $options) { - $options = []; - } elseif (!is_array($options)) { - $options = ['name' => $options]; - } - - $this->addFallbackDefaults($request); - - // File uploads - $attachedFiles = $this->extractFileAttachments($request); - - $name = isset($options['name']) ? $options['name'] : null; - - unset($options['name']); - - $requestToAdd = [ - 'name' => $name, - 'request' => $request, - 'options' => $options, - 'attached_files' => $attachedFiles, - ]; - - $this->requests[] = $requestToAdd; - - return $this; - } - - /** - * Ensures that the FacebookApp and access token fall back when missing. - * - * @param FacebookRequest $request - * - * @throws FacebookSDKException - */ - public function addFallbackDefaults(FacebookRequest $request) - { - if (!$request->getApp()) { - $app = $this->getApp(); - if (!$app) { - throw new FacebookSDKException('Missing FacebookApp on FacebookRequest and no fallback detected on FacebookBatchRequest.'); - } - $request->setApp($app); - } - - if (!$request->getAccessToken()) { - $accessToken = $this->getAccessToken(); - if (!$accessToken) { - throw new FacebookSDKException('Missing access token on FacebookRequest and no fallback detected on FacebookBatchRequest.'); - } - $request->setAccessToken($accessToken); - } - } - - /** - * Extracts the files from a request. - * - * @param FacebookRequest $request - * - * @return string|null - * - * @throws FacebookSDKException - */ - public function extractFileAttachments(FacebookRequest $request) - { - if (!$request->containsFileUploads()) { - return null; - } - - $files = $request->getFiles(); - $fileNames = []; - foreach ($files as $file) { - $fileName = uniqid(); - $this->addFile($fileName, $file); - $fileNames[] = $fileName; - } - - $request->resetFiles(); - - // @TODO Does Graph support multiple uploads on one endpoint? - return implode(',', $fileNames); - } - - /** - * Return the FacebookRequest entities. - * - * @return array - */ - public function getRequests() - { - return $this->requests; - } - - /** - * Prepares the requests to be sent as a batch request. - */ - public function prepareRequestsForBatch() - { - $this->validateBatchRequestCount(); - - $params = [ - 'batch' => $this->convertRequestsToJson(), - 'include_headers' => true, - ]; - $this->setParams($params); - } - - /** - * Converts the requests into a JSON(P) string. - * - * @return string - */ - public function convertRequestsToJson() - { - $requests = []; - foreach ($this->requests as $request) { - $options = []; - - if (null !== $request['name']) { - $options['name'] = $request['name']; - } - - $options += $request['options']; - - $requests[] = $this->requestEntityToBatchArray($request['request'], $options, $request['attached_files']); - } - - return json_encode($requests); - } - - /** - * Validate the request count before sending them as a batch. - * - * @throws FacebookSDKException - */ - public function validateBatchRequestCount() - { - $batchCount = count($this->requests); - if ($batchCount === 0) { - throw new FacebookSDKException('There are no batch requests to send.'); - } elseif ($batchCount > 50) { - // Per: https://developers.facebook.com/docs/graph-api/making-multiple-requests#limits - throw new FacebookSDKException('You cannot send more than 50 batch requests at a time.'); - } - } - - /** - * Converts a Request entity into an array that is batch-friendly. - * - * @param FacebookRequest $request The request entity to convert. - * @param string|null|array $options Array of batch request options e.g. 'name', 'omit_response_on_success'. - * If a string is given, it is the value of the 'name' option. - * @param string|null $attachedFiles Names of files associated with the request. - * - * @return array - */ - public function requestEntityToBatchArray(FacebookRequest $request, $options = null, $attachedFiles = null) - { - - if (null === $options) { - $options = []; - } elseif (!is_array($options)) { - $options = ['name' => $options]; - } - - $compiledHeaders = []; - $headers = $request->getHeaders(); - foreach ($headers as $name => $value) { - $compiledHeaders[] = $name . ': ' . $value; - } - - $batch = [ - 'headers' => $compiledHeaders, - 'method' => $request->getMethod(), - 'relative_url' => $request->getUrl(), - ]; - - // Since file uploads are moved to the root request of a batch request, - // the child requests will always be URL-encoded. - $body = $request->getUrlEncodedBody()->getBody(); - if ($body) { - $batch['body'] = $body; - } - - $batch += $options; - - if (null !== $attachedFiles) { - $batch['attached_files'] = $attachedFiles; - } - - return $batch; - } - - /** - * Get an iterator for the items. - * - * @return ArrayIterator - */ - public function getIterator() - { - return new ArrayIterator($this->requests); - } - - /** - * @inheritdoc - */ - public function offsetSet($offset, $value) - { - $this->add($value, $offset); - } - - /** - * @inheritdoc - */ - public function offsetExists($offset) - { - return isset($this->requests[$offset]); - } - - /** - * @inheritdoc - */ - public function offsetUnset($offset) - { - unset($this->requests[$offset]); - } - - /** - * @inheritdoc - */ - public function offsetGet($offset) - { - return isset($this->requests[$offset]) ? $this->requests[$offset] : null; - } -} diff --git a/vendor/facebook/graph-sdk/src/Facebook/FacebookBatchResponse.php b/vendor/facebook/graph-sdk/src/Facebook/FacebookBatchResponse.php deleted file mode 100644 index 8e1464c9..00000000 --- a/vendor/facebook/graph-sdk/src/Facebook/FacebookBatchResponse.php +++ /dev/null @@ -1,174 +0,0 @@ -batchRequest = $batchRequest; - - $request = $response->getRequest(); - $body = $response->getBody(); - $httpStatusCode = $response->getHttpStatusCode(); - $headers = $response->getHeaders(); - parent::__construct($request, $body, $httpStatusCode, $headers); - - $responses = $response->getDecodedBody(); - $this->setResponses($responses); - } - - /** - * Returns an array of FacebookResponse entities. - * - * @return array - */ - public function getResponses() - { - return $this->responses; - } - - /** - * The main batch response will be an array of requests so - * we need to iterate over all the responses. - * - * @param array $responses - */ - public function setResponses(array $responses) - { - $this->responses = []; - - foreach ($responses as $key => $graphResponse) { - $this->addResponse($key, $graphResponse); - } - } - - /** - * Add a response to the list. - * - * @param int $key - * @param array|null $response - */ - public function addResponse($key, $response) - { - $originalRequestName = isset($this->batchRequest[$key]['name']) ? $this->batchRequest[$key]['name'] : $key; - $originalRequest = isset($this->batchRequest[$key]['request']) ? $this->batchRequest[$key]['request'] : null; - - $httpResponseBody = isset($response['body']) ? $response['body'] : null; - $httpResponseCode = isset($response['code']) ? $response['code'] : null; - // @TODO With PHP 5.5 support, this becomes array_column($response['headers'], 'value', 'name') - $httpResponseHeaders = isset($response['headers']) ? $this->normalizeBatchHeaders($response['headers']) : []; - - $this->responses[$originalRequestName] = new FacebookResponse( - $originalRequest, - $httpResponseBody, - $httpResponseCode, - $httpResponseHeaders - ); - } - - /** - * @inheritdoc - */ - public function getIterator() - { - return new ArrayIterator($this->responses); - } - - /** - * @inheritdoc - */ - public function offsetSet($offset, $value) - { - $this->addResponse($offset, $value); - } - - /** - * @inheritdoc - */ - public function offsetExists($offset) - { - return isset($this->responses[$offset]); - } - - /** - * @inheritdoc - */ - public function offsetUnset($offset) - { - unset($this->responses[$offset]); - } - - /** - * @inheritdoc - */ - public function offsetGet($offset) - { - return isset($this->responses[$offset]) ? $this->responses[$offset] : null; - } - - /** - * Converts the batch header array into a standard format. - * @TODO replace with array_column() when PHP 5.5 is supported. - * - * @param array $batchHeaders - * - * @return array - */ - private function normalizeBatchHeaders(array $batchHeaders) - { - $headers = []; - - foreach ($batchHeaders as $header) { - $headers[$header['name']] = $header['value']; - } - - return $headers; - } -} diff --git a/vendor/facebook/graph-sdk/src/Facebook/FacebookClient.php b/vendor/facebook/graph-sdk/src/Facebook/FacebookClient.php deleted file mode 100644 index e11b1aa5..00000000 --- a/vendor/facebook/graph-sdk/src/Facebook/FacebookClient.php +++ /dev/null @@ -1,250 +0,0 @@ -httpClientHandler = $httpClientHandler ?: $this->detectHttpClientHandler(); - $this->enableBetaMode = $enableBeta; - } - - /** - * Sets the HTTP client handler. - * - * @param FacebookHttpClientInterface $httpClientHandler - */ - public function setHttpClientHandler(FacebookHttpClientInterface $httpClientHandler) - { - $this->httpClientHandler = $httpClientHandler; - } - - /** - * Returns the HTTP client handler. - * - * @return FacebookHttpClientInterface - */ - public function getHttpClientHandler() - { - return $this->httpClientHandler; - } - - /** - * Detects which HTTP client handler to use. - * - * @return FacebookHttpClientInterface - */ - public function detectHttpClientHandler() - { - return extension_loaded('curl') ? new FacebookCurlHttpClient() : new FacebookStreamHttpClient(); - } - - /** - * Toggle beta mode. - * - * @param boolean $betaMode - */ - public function enableBetaMode($betaMode = true) - { - $this->enableBetaMode = $betaMode; - } - - /** - * Returns the base Graph URL. - * - * @param boolean $postToVideoUrl Post to the video API if videos are being uploaded. - * - * @return string - */ - public function getBaseGraphUrl($postToVideoUrl = false) - { - if ($postToVideoUrl) { - return $this->enableBetaMode ? static::BASE_GRAPH_VIDEO_URL_BETA : static::BASE_GRAPH_VIDEO_URL; - } - - return $this->enableBetaMode ? static::BASE_GRAPH_URL_BETA : static::BASE_GRAPH_URL; - } - - /** - * Prepares the request for sending to the client handler. - * - * @param FacebookRequest $request - * - * @return array - */ - public function prepareRequestMessage(FacebookRequest $request) - { - $postToVideoUrl = $request->containsVideoUploads(); - $url = $this->getBaseGraphUrl($postToVideoUrl) . $request->getUrl(); - - // If we're sending files they should be sent as multipart/form-data - if ($request->containsFileUploads()) { - $requestBody = $request->getMultipartBody(); - $request->setHeaders([ - 'Content-Type' => 'multipart/form-data; boundary=' . $requestBody->getBoundary(), - ]); - } else { - $requestBody = $request->getUrlEncodedBody(); - $request->setHeaders([ - 'Content-Type' => 'application/x-www-form-urlencoded', - ]); - } - - return [ - $url, - $request->getMethod(), - $request->getHeaders(), - $requestBody->getBody(), - ]; - } - - /** - * Makes the request to Graph and returns the result. - * - * @param FacebookRequest $request - * - * @return FacebookResponse - * - * @throws FacebookSDKException - */ - public function sendRequest(FacebookRequest $request) - { - if (get_class($request) === 'Facebook\FacebookRequest') { - $request->validateAccessToken(); - } - - list($url, $method, $headers, $body) = $this->prepareRequestMessage($request); - - // Since file uploads can take a while, we need to give more time for uploads - $timeOut = static::DEFAULT_REQUEST_TIMEOUT; - if ($request->containsFileUploads()) { - $timeOut = static::DEFAULT_FILE_UPLOAD_REQUEST_TIMEOUT; - } elseif ($request->containsVideoUploads()) { - $timeOut = static::DEFAULT_VIDEO_UPLOAD_REQUEST_TIMEOUT; - } - - // Should throw `FacebookSDKException` exception on HTTP client error. - // Don't catch to allow it to bubble up. - $rawResponse = $this->httpClientHandler->send($url, $method, $body, $headers, $timeOut); - - static::$requestCount++; - - $returnResponse = new FacebookResponse( - $request, - $rawResponse->getBody(), - $rawResponse->getHttpResponseCode(), - $rawResponse->getHeaders() - ); - - if ($returnResponse->isError()) { - throw $returnResponse->getThrownException(); - } - - return $returnResponse; - } - - /** - * Makes a batched request to Graph and returns the result. - * - * @param FacebookBatchRequest $request - * - * @return FacebookBatchResponse - * - * @throws FacebookSDKException - */ - public function sendBatchRequest(FacebookBatchRequest $request) - { - $request->prepareRequestsForBatch(); - $facebookResponse = $this->sendRequest($request); - - return new FacebookBatchResponse($request, $facebookResponse); - } -} diff --git a/vendor/facebook/graph-sdk/src/Facebook/FacebookRequest.php b/vendor/facebook/graph-sdk/src/Facebook/FacebookRequest.php deleted file mode 100644 index 2b100899..00000000 --- a/vendor/facebook/graph-sdk/src/Facebook/FacebookRequest.php +++ /dev/null @@ -1,534 +0,0 @@ -setApp($app); - $this->setAccessToken($accessToken); - $this->setMethod($method); - $this->setEndpoint($endpoint); - $this->setParams($params); - $this->setETag($eTag); - $this->graphVersion = $graphVersion ?: Facebook::DEFAULT_GRAPH_VERSION; - } - - /** - * Set the access token for this request. - * - * @param AccessToken|string|null - * - * @return FacebookRequest - */ - public function setAccessToken($accessToken) - { - $this->accessToken = $accessToken; - if ($accessToken instanceof AccessToken) { - $this->accessToken = $accessToken->getValue(); - } - - return $this; - } - - /** - * Sets the access token with one harvested from a URL or POST params. - * - * @param string $accessToken The access token. - * - * @return FacebookRequest - * - * @throws FacebookSDKException - */ - public function setAccessTokenFromParams($accessToken) - { - $existingAccessToken = $this->getAccessToken(); - if (!$existingAccessToken) { - $this->setAccessToken($accessToken); - } elseif ($accessToken !== $existingAccessToken) { - throw new FacebookSDKException('Access token mismatch. The access token provided in the FacebookRequest and the one provided in the URL or POST params do not match.'); - } - - return $this; - } - - /** - * Return the access token for this request. - * - * @return string|null - */ - public function getAccessToken() - { - return $this->accessToken; - } - - /** - * Return the access token for this request as an AccessToken entity. - * - * @return AccessToken|null - */ - public function getAccessTokenEntity() - { - return $this->accessToken ? new AccessToken($this->accessToken) : null; - } - - /** - * Set the FacebookApp entity used for this request. - * - * @param FacebookApp|null $app - */ - public function setApp(FacebookApp $app = null) - { - $this->app = $app; - } - - /** - * Return the FacebookApp entity used for this request. - * - * @return FacebookApp - */ - public function getApp() - { - return $this->app; - } - - /** - * Generate an app secret proof to sign this request. - * - * @return string|null - */ - public function getAppSecretProof() - { - if (!$accessTokenEntity = $this->getAccessTokenEntity()) { - return null; - } - - return $accessTokenEntity->getAppSecretProof($this->app->getSecret()); - } - - /** - * Validate that an access token exists for this request. - * - * @throws FacebookSDKException - */ - public function validateAccessToken() - { - $accessToken = $this->getAccessToken(); - if (!$accessToken) { - throw new FacebookSDKException('You must provide an access token.'); - } - } - - /** - * Set the HTTP method for this request. - * - * @param string - */ - public function setMethod($method) - { - $this->method = strtoupper($method); - } - - /** - * Return the HTTP method for this request. - * - * @return string - */ - public function getMethod() - { - return $this->method; - } - - /** - * Validate that the HTTP method is set. - * - * @throws FacebookSDKException - */ - public function validateMethod() - { - if (!$this->method) { - throw new FacebookSDKException('HTTP method not specified.'); - } - - if (!in_array($this->method, ['GET', 'POST', 'DELETE'])) { - throw new FacebookSDKException('Invalid HTTP method specified.'); - } - } - - /** - * Set the endpoint for this request. - * - * @param string - * - * @return FacebookRequest - * - * @throws FacebookSDKException - */ - public function setEndpoint($endpoint) - { - // Harvest the access token from the endpoint to keep things in sync - $params = FacebookUrlManipulator::getParamsAsArray($endpoint); - if (isset($params['access_token'])) { - $this->setAccessTokenFromParams($params['access_token']); - } - - // Clean the token & app secret proof from the endpoint. - $filterParams = ['access_token', 'appsecret_proof']; - $this->endpoint = FacebookUrlManipulator::removeParamsFromUrl($endpoint, $filterParams); - - return $this; - } - - /** - * Return the endpoint for this request. - * - * @return string - */ - public function getEndpoint() - { - // For batch requests, this will be empty - return $this->endpoint; - } - - /** - * Generate and return the headers for this request. - * - * @return array - */ - public function getHeaders() - { - $headers = static::getDefaultHeaders(); - - if ($this->eTag) { - $headers['If-None-Match'] = $this->eTag; - } - - return array_merge($this->headers, $headers); - } - - /** - * Set the headers for this request. - * - * @param array $headers - */ - public function setHeaders(array $headers) - { - $this->headers = array_merge($this->headers, $headers); - } - - /** - * Sets the eTag value. - * - * @param string $eTag - */ - public function setETag($eTag) - { - $this->eTag = $eTag; - } - - /** - * Set the params for this request. - * - * @param array $params - * - * @return FacebookRequest - * - * @throws FacebookSDKException - */ - public function setParams(array $params = []) - { - if (isset($params['access_token'])) { - $this->setAccessTokenFromParams($params['access_token']); - } - - // Don't let these buggers slip in. - unset($params['access_token'], $params['appsecret_proof']); - - // @TODO Refactor code above with this - //$params = $this->sanitizeAuthenticationParams($params); - $params = $this->sanitizeFileParams($params); - $this->dangerouslySetParams($params); - - return $this; - } - - /** - * Set the params for this request without filtering them first. - * - * @param array $params - * - * @return FacebookRequest - */ - public function dangerouslySetParams(array $params = []) - { - $this->params = array_merge($this->params, $params); - - return $this; - } - - /** - * Iterate over the params and pull out the file uploads. - * - * @param array $params - * - * @return array - */ - public function sanitizeFileParams(array $params) - { - foreach ($params as $key => $value) { - if ($value instanceof FacebookFile) { - $this->addFile($key, $value); - unset($params[$key]); - } - } - - return $params; - } - - /** - * Add a file to be uploaded. - * - * @param string $key - * @param FacebookFile $file - */ - public function addFile($key, FacebookFile $file) - { - $this->files[$key] = $file; - } - - /** - * Removes all the files from the upload queue. - */ - public function resetFiles() - { - $this->files = []; - } - - /** - * Get the list of files to be uploaded. - * - * @return array - */ - public function getFiles() - { - return $this->files; - } - - /** - * Let's us know if there is a file upload with this request. - * - * @return boolean - */ - public function containsFileUploads() - { - return !empty($this->files); - } - - /** - * Let's us know if there is a video upload with this request. - * - * @return boolean - */ - public function containsVideoUploads() - { - foreach ($this->files as $file) { - if ($file instanceof FacebookVideo) { - return true; - } - } - - return false; - } - - /** - * Returns the body of the request as multipart/form-data. - * - * @return RequestBodyMultipart - */ - public function getMultipartBody() - { - $params = $this->getPostParams(); - - return new RequestBodyMultipart($params, $this->files); - } - - /** - * Returns the body of the request as URL-encoded. - * - * @return RequestBodyUrlEncoded - */ - public function getUrlEncodedBody() - { - $params = $this->getPostParams(); - - return new RequestBodyUrlEncoded($params); - } - - /** - * Generate and return the params for this request. - * - * @return array - */ - public function getParams() - { - $params = $this->params; - - $accessToken = $this->getAccessToken(); - if ($accessToken) { - $params['access_token'] = $accessToken; - $params['appsecret_proof'] = $this->getAppSecretProof(); - } - - return $params; - } - - /** - * Only return params on POST requests. - * - * @return array - */ - public function getPostParams() - { - if ($this->getMethod() === 'POST') { - return $this->getParams(); - } - - return []; - } - - /** - * The graph version used for this request. - * - * @return string - */ - public function getGraphVersion() - { - return $this->graphVersion; - } - - /** - * Generate and return the URL for this request. - * - * @return string - */ - public function getUrl() - { - $this->validateMethod(); - - $graphVersion = FacebookUrlManipulator::forceSlashPrefix($this->graphVersion); - $endpoint = FacebookUrlManipulator::forceSlashPrefix($this->getEndpoint()); - - $url = $graphVersion . $endpoint; - - if ($this->getMethod() !== 'POST') { - $params = $this->getParams(); - $url = FacebookUrlManipulator::appendParamsToUrl($url, $params); - } - - return $url; - } - - /** - * Return the default headers that every request should use. - * - * @return array - */ - public static function getDefaultHeaders() - { - return [ - 'User-Agent' => 'fb-php-' . Facebook::VERSION, - 'Accept-Encoding' => '*', - ]; - } -} diff --git a/vendor/facebook/graph-sdk/src/Facebook/FacebookResponse.php b/vendor/facebook/graph-sdk/src/Facebook/FacebookResponse.php deleted file mode 100644 index 251ca2f7..00000000 --- a/vendor/facebook/graph-sdk/src/Facebook/FacebookResponse.php +++ /dev/null @@ -1,410 +0,0 @@ -request = $request; - $this->body = $body; - $this->httpStatusCode = $httpStatusCode; - $this->headers = $headers; - - $this->decodeBody(); - } - - /** - * Return the original request that returned this response. - * - * @return FacebookRequest - */ - public function getRequest() - { - return $this->request; - } - - /** - * Return the FacebookApp entity used for this response. - * - * @return FacebookApp - */ - public function getApp() - { - return $this->request->getApp(); - } - - /** - * Return the access token that was used for this response. - * - * @return string|null - */ - public function getAccessToken() - { - return $this->request->getAccessToken(); - } - - /** - * Return the HTTP status code for this response. - * - * @return int - */ - public function getHttpStatusCode() - { - return $this->httpStatusCode; - } - - /** - * Return the HTTP headers for this response. - * - * @return array - */ - public function getHeaders() - { - return $this->headers; - } - - /** - * Return the raw body response. - * - * @return string - */ - public function getBody() - { - return $this->body; - } - - /** - * Return the decoded body response. - * - * @return array - */ - public function getDecodedBody() - { - return $this->decodedBody; - } - - /** - * Get the app secret proof that was used for this response. - * - * @return string|null - */ - public function getAppSecretProof() - { - return $this->request->getAppSecretProof(); - } - - /** - * Get the ETag associated with the response. - * - * @return string|null - */ - public function getETag() - { - return isset($this->headers['ETag']) ? $this->headers['ETag'] : null; - } - - /** - * Get the version of Graph that returned this response. - * - * @return string|null - */ - public function getGraphVersion() - { - return isset($this->headers['Facebook-API-Version']) ? $this->headers['Facebook-API-Version'] : null; - } - - /** - * Returns true if Graph returned an error message. - * - * @return boolean - */ - public function isError() - { - return isset($this->decodedBody['error']); - } - - /** - * Throws the exception. - * - * @throws FacebookSDKException - */ - public function throwException() - { - throw $this->thrownException; - } - - /** - * Instantiates an exception to be thrown later. - */ - public function makeException() - { - $this->thrownException = FacebookResponseException::create($this); - } - - /** - * Returns the exception that was thrown for this request. - * - * @return FacebookResponseException|null - */ - public function getThrownException() - { - return $this->thrownException; - } - - /** - * Convert the raw response into an array if possible. - * - * Graph will return 2 types of responses: - * - JSON(P) - * Most responses from Graph are JSON(P) - * - application/x-www-form-urlencoded key/value pairs - * Happens on the `/oauth/access_token` endpoint when exchanging - * a short-lived access token for a long-lived access token - * - And sometimes nothing :/ but that'd be a bug. - */ - public function decodeBody() - { - $this->decodedBody = json_decode($this->body, true); - - if ($this->decodedBody === null) { - $this->decodedBody = []; - parse_str($this->body, $this->decodedBody); - } elseif (is_bool($this->decodedBody)) { - // Backwards compatibility for Graph < 2.1. - // Mimics 2.1 responses. - // @TODO Remove this after Graph 2.0 is no longer supported - $this->decodedBody = ['success' => $this->decodedBody]; - } elseif (is_numeric($this->decodedBody)) { - $this->decodedBody = ['id' => $this->decodedBody]; - } - - if (!is_array($this->decodedBody)) { - $this->decodedBody = []; - } - - if ($this->isError()) { - $this->makeException(); - } - } - - /** - * Instantiate a new GraphObject from response. - * - * @param string|null $subclassName The GraphNode subclass to cast to. - * - * @return \Facebook\GraphNodes\GraphObject - * - * @throws FacebookSDKException - * - * @deprecated 5.0.0 getGraphObject() has been renamed to getGraphNode() - * @todo v6: Remove this method - */ - public function getGraphObject($subclassName = null) - { - return $this->getGraphNode($subclassName); - } - - /** - * Instantiate a new GraphNode from response. - * - * @param string|null $subclassName The GraphNode subclass to cast to. - * - * @return \Facebook\GraphNodes\GraphNode - * - * @throws FacebookSDKException - */ - public function getGraphNode($subclassName = null) - { - $factory = new GraphNodeFactory($this); - - return $factory->makeGraphNode($subclassName); - } - - /** - * Convenience method for creating a GraphAlbum collection. - * - * @return \Facebook\GraphNodes\GraphAlbum - * - * @throws FacebookSDKException - */ - public function getGraphAlbum() - { - $factory = new GraphNodeFactory($this); - - return $factory->makeGraphAlbum(); - } - - /** - * Convenience method for creating a GraphPage collection. - * - * @return \Facebook\GraphNodes\GraphPage - * - * @throws FacebookSDKException - */ - public function getGraphPage() - { - $factory = new GraphNodeFactory($this); - - return $factory->makeGraphPage(); - } - - /** - * Convenience method for creating a GraphSessionInfo collection. - * - * @return \Facebook\GraphNodes\GraphSessionInfo - * - * @throws FacebookSDKException - */ - public function getGraphSessionInfo() - { - $factory = new GraphNodeFactory($this); - - return $factory->makeGraphSessionInfo(); - } - - /** - * Convenience method for creating a GraphUser collection. - * - * @return \Facebook\GraphNodes\GraphUser - * - * @throws FacebookSDKException - */ - public function getGraphUser() - { - $factory = new GraphNodeFactory($this); - - return $factory->makeGraphUser(); - } - - /** - * Convenience method for creating a GraphEvent collection. - * - * @return \Facebook\GraphNodes\GraphEvent - * - * @throws FacebookSDKException - */ - public function getGraphEvent() - { - $factory = new GraphNodeFactory($this); - - return $factory->makeGraphEvent(); - } - - /** - * Convenience method for creating a GraphGroup collection. - * - * @return \Facebook\GraphNodes\GraphGroup - * - * @throws FacebookSDKException - */ - public function getGraphGroup() - { - $factory = new GraphNodeFactory($this); - - return $factory->makeGraphGroup(); - } - - /** - * Instantiate a new GraphList from response. - * - * @param string|null $subclassName The GraphNode subclass to cast list items to. - * @param boolean $auto_prefix Toggle to auto-prefix the subclass name. - * - * @return \Facebook\GraphNodes\GraphList - * - * @throws FacebookSDKException - * - * @deprecated 5.0.0 getGraphList() has been renamed to getGraphEdge() - * @todo v6: Remove this method - */ - public function getGraphList($subclassName = null, $auto_prefix = true) - { - return $this->getGraphEdge($subclassName, $auto_prefix); - } - - /** - * Instantiate a new GraphEdge from response. - * - * @param string|null $subclassName The GraphNode subclass to cast list items to. - * @param boolean $auto_prefix Toggle to auto-prefix the subclass name. - * - * @return \Facebook\GraphNodes\GraphEdge - * - * @throws FacebookSDKException - */ - public function getGraphEdge($subclassName = null, $auto_prefix = true) - { - $factory = new GraphNodeFactory($this); - - return $factory->makeGraphEdge($subclassName, $auto_prefix); - } -} diff --git a/vendor/facebook/graph-sdk/src/Facebook/FileUpload/FacebookFile.php b/vendor/facebook/graph-sdk/src/Facebook/FileUpload/FacebookFile.php deleted file mode 100644 index 3c1536d4..00000000 --- a/vendor/facebook/graph-sdk/src/Facebook/FileUpload/FacebookFile.php +++ /dev/null @@ -1,169 +0,0 @@ -path = $filePath; - $this->maxLength = $maxLength; - $this->offset = $offset; - $this->open(); - } - - /** - * Closes the stream when destructed. - */ - public function __destruct() - { - $this->close(); - } - - /** - * Opens a stream for the file. - * - * @throws FacebookSDKException - */ - public function open() - { - if (!$this->isRemoteFile($this->path) && !is_readable($this->path)) { - throw new FacebookSDKException('Failed to create FacebookFile entity. Unable to read resource: ' . $this->path . '.'); - } - - $this->stream = fopen($this->path, 'r'); - - if (!$this->stream) { - throw new FacebookSDKException('Failed to create FacebookFile entity. Unable to open resource: ' . $this->path . '.'); - } - } - - /** - * Stops the file stream. - */ - public function close() - { - if (is_resource($this->stream)) { - fclose($this->stream); - } - } - - /** - * Return the contents of the file. - * - * @return string - */ - public function getContents() - { - return stream_get_contents($this->stream, $this->maxLength, $this->offset); - } - - /** - * Return the name of the file. - * - * @return string - */ - public function getFileName() - { - return basename($this->path); - } - - /** - * Return the path of the file. - * - * @return string - */ - public function getFilePath() - { - return $this->path; - } - - /** - * Return the size of the file. - * - * @return int - */ - public function getSize() - { - return filesize($this->path); - } - - /** - * Return the mimetype of the file. - * - * @return string - */ - public function getMimetype() - { - return Mimetypes::getInstance()->fromFilename($this->path) ?: 'text/plain'; - } - - /** - * Returns true if the path to the file is remote. - * - * @param string $pathToFile - * - * @return boolean - */ - protected function isRemoteFile($pathToFile) - { - return preg_match('/^(https?|ftp):\/\/.*/', $pathToFile) === 1; - } -} diff --git a/vendor/facebook/graph-sdk/src/Facebook/FileUpload/FacebookResumableUploader.php b/vendor/facebook/graph-sdk/src/Facebook/FileUpload/FacebookResumableUploader.php deleted file mode 100644 index 92a22f14..00000000 --- a/vendor/facebook/graph-sdk/src/Facebook/FileUpload/FacebookResumableUploader.php +++ /dev/null @@ -1,167 +0,0 @@ -app = $app; - $this->client = $client; - $this->accessToken = $accessToken; - $this->graphVersion = $graphVersion; - } - - /** - * Upload by chunks - start phase - * - * @param string $endpoint - * @param FacebookFile $file - * - * @return FacebookTransferChunk - * - * @throws FacebookSDKException - */ - public function start($endpoint, FacebookFile $file) - { - $params = [ - 'upload_phase' => 'start', - 'file_size' => $file->getSize(), - ]; - $response = $this->sendUploadRequest($endpoint, $params); - - return new FacebookTransferChunk($file, $response['upload_session_id'], $response['video_id'], $response['start_offset'], $response['end_offset']); - } - - /** - * Upload by chunks - transfer phase - * - * @param string $endpoint - * @param FacebookTransferChunk $chunk - * @param boolean $allowToThrow - * - * @return FacebookTransferChunk - * - * @throws FacebookResponseException - */ - public function transfer($endpoint, FacebookTransferChunk $chunk, $allowToThrow = false) - { - $params = [ - 'upload_phase' => 'transfer', - 'upload_session_id' => $chunk->getUploadSessionId(), - 'start_offset' => $chunk->getStartOffset(), - 'video_file_chunk' => $chunk->getPartialFile(), - ]; - - try { - $response = $this->sendUploadRequest($endpoint, $params); - } catch (FacebookResponseException $e) { - $preException = $e->getPrevious(); - if ($allowToThrow || !$preException instanceof FacebookResumableUploadException) { - throw $e; - } - - // Return the same chunk entity so it can be retried. - return $chunk; - } - - return new FacebookTransferChunk($chunk->getFile(), $chunk->getUploadSessionId(), $chunk->getVideoId(), $response['start_offset'], $response['end_offset']); - } - - /** - * Upload by chunks - finish phase - * - * @param string $endpoint - * @param string $uploadSessionId - * @param array $metadata The metadata associated with the file. - * - * @return boolean - * - * @throws FacebookSDKException - */ - public function finish($endpoint, $uploadSessionId, $metadata = []) - { - $params = array_merge($metadata, [ - 'upload_phase' => 'finish', - 'upload_session_id' => $uploadSessionId, - ]); - $response = $this->sendUploadRequest($endpoint, $params); - - return $response['success']; - } - - /** - * Helper to make a FacebookRequest and send it. - * - * @param string $endpoint The endpoint to POST to. - * @param array $params The params to send with the request. - * - * @return array - */ - private function sendUploadRequest($endpoint, $params = []) - { - $request = new FacebookRequest($this->app, $this->accessToken, 'POST', $endpoint, $params, null, $this->graphVersion); - - return $this->client->sendRequest($request)->getDecodedBody(); - } -} diff --git a/vendor/facebook/graph-sdk/src/Facebook/FileUpload/FacebookTransferChunk.php b/vendor/facebook/graph-sdk/src/Facebook/FileUpload/FacebookTransferChunk.php deleted file mode 100644 index a909e875..00000000 --- a/vendor/facebook/graph-sdk/src/Facebook/FileUpload/FacebookTransferChunk.php +++ /dev/null @@ -1,133 +0,0 @@ -file = $file; - $this->uploadSessionId = $uploadSessionId; - $this->videoId = $videoId; - $this->startOffset = $startOffset; - $this->endOffset = $endOffset; - } - - /** - * Return the file entity. - * - * @return FacebookFile - */ - public function getFile() - { - return $this->file; - } - - /** - * Return a FacebookFile entity with partial content. - * - * @return FacebookFile - */ - public function getPartialFile() - { - $maxLength = $this->endOffset - $this->startOffset; - - return new FacebookFile($this->file->getFilePath(), $maxLength, $this->startOffset); - } - - /** - * Return upload session Id - * - * @return int - */ - public function getUploadSessionId() - { - return $this->uploadSessionId; - } - - /** - * Check whether is the last chunk - * - * @return bool - */ - public function isLastChunk() - { - return $this->startOffset === $this->endOffset; - } - - /** - * @return int - */ - public function getStartOffset() - { - return $this->startOffset; - } - - /** - * Get uploaded video Id - * - * @return int - */ - public function getVideoId() - { - return $this->videoId; - } -} diff --git a/vendor/facebook/graph-sdk/src/Facebook/FileUpload/FacebookVideo.php b/vendor/facebook/graph-sdk/src/Facebook/FileUpload/FacebookVideo.php deleted file mode 100644 index ee6dd538..00000000 --- a/vendor/facebook/graph-sdk/src/Facebook/FileUpload/FacebookVideo.php +++ /dev/null @@ -1,33 +0,0 @@ - 'text/vnd.in3d.3dml', - '3g2' => 'video/3gpp2', - '3gp' => 'video/3gpp', - '7z' => 'application/x-7z-compressed', - 'aab' => 'application/x-authorware-bin', - 'aac' => 'audio/x-aac', - 'aam' => 'application/x-authorware-map', - 'aas' => 'application/x-authorware-seg', - 'abw' => 'application/x-abiword', - 'ac' => 'application/pkix-attr-cert', - 'acc' => 'application/vnd.americandynamics.acc', - 'ace' => 'application/x-ace-compressed', - 'acu' => 'application/vnd.acucobol', - 'acutc' => 'application/vnd.acucorp', - 'adp' => 'audio/adpcm', - 'aep' => 'application/vnd.audiograph', - 'afm' => 'application/x-font-type1', - 'afp' => 'application/vnd.ibm.modcap', - 'ahead' => 'application/vnd.ahead.space', - 'ai' => 'application/postscript', - 'aif' => 'audio/x-aiff', - 'aifc' => 'audio/x-aiff', - 'aiff' => 'audio/x-aiff', - 'air' => 'application/vnd.adobe.air-application-installer-package+zip', - 'ait' => 'application/vnd.dvb.ait', - 'ami' => 'application/vnd.amiga.ami', - 'apk' => 'application/vnd.android.package-archive', - 'application' => 'application/x-ms-application', - 'apr' => 'application/vnd.lotus-approach', - 'asa' => 'text/plain', - 'asax' => 'application/octet-stream', - 'asc' => 'application/pgp-signature', - 'ascx' => 'text/plain', - 'asf' => 'video/x-ms-asf', - 'ashx' => 'text/plain', - 'asm' => 'text/x-asm', - 'asmx' => 'text/plain', - 'aso' => 'application/vnd.accpac.simply.aso', - 'asp' => 'text/plain', - 'aspx' => 'text/plain', - 'asx' => 'video/x-ms-asf', - 'atc' => 'application/vnd.acucorp', - 'atom' => 'application/atom+xml', - 'atomcat' => 'application/atomcat+xml', - 'atomsvc' => 'application/atomsvc+xml', - 'atx' => 'application/vnd.antix.game-component', - 'au' => 'audio/basic', - 'avi' => 'video/x-msvideo', - 'aw' => 'application/applixware', - 'axd' => 'text/plain', - 'azf' => 'application/vnd.airzip.filesecure.azf', - 'azs' => 'application/vnd.airzip.filesecure.azs', - 'azw' => 'application/vnd.amazon.ebook', - 'bat' => 'application/x-msdownload', - 'bcpio' => 'application/x-bcpio', - 'bdf' => 'application/x-font-bdf', - 'bdm' => 'application/vnd.syncml.dm+wbxml', - 'bed' => 'application/vnd.realvnc.bed', - 'bh2' => 'application/vnd.fujitsu.oasysprs', - 'bin' => 'application/octet-stream', - 'bmi' => 'application/vnd.bmi', - 'bmp' => 'image/bmp', - 'book' => 'application/vnd.framemaker', - 'box' => 'application/vnd.previewsystems.box', - 'boz' => 'application/x-bzip2', - 'bpk' => 'application/octet-stream', - 'btif' => 'image/prs.btif', - 'bz' => 'application/x-bzip', - 'bz2' => 'application/x-bzip2', - 'c' => 'text/x-c', - 'c11amc' => 'application/vnd.cluetrust.cartomobile-config', - 'c11amz' => 'application/vnd.cluetrust.cartomobile-config-pkg', - 'c4d' => 'application/vnd.clonk.c4group', - 'c4f' => 'application/vnd.clonk.c4group', - 'c4g' => 'application/vnd.clonk.c4group', - 'c4p' => 'application/vnd.clonk.c4group', - 'c4u' => 'application/vnd.clonk.c4group', - 'cab' => 'application/vnd.ms-cab-compressed', - 'car' => 'application/vnd.curl.car', - 'cat' => 'application/vnd.ms-pki.seccat', - 'cc' => 'text/x-c', - 'cct' => 'application/x-director', - 'ccxml' => 'application/ccxml+xml', - 'cdbcmsg' => 'application/vnd.contact.cmsg', - 'cdf' => 'application/x-netcdf', - 'cdkey' => 'application/vnd.mediastation.cdkey', - 'cdmia' => 'application/cdmi-capability', - 'cdmic' => 'application/cdmi-container', - 'cdmid' => 'application/cdmi-domain', - 'cdmio' => 'application/cdmi-object', - 'cdmiq' => 'application/cdmi-queue', - 'cdx' => 'chemical/x-cdx', - 'cdxml' => 'application/vnd.chemdraw+xml', - 'cdy' => 'application/vnd.cinderella', - 'cer' => 'application/pkix-cert', - 'cfc' => 'application/x-coldfusion', - 'cfm' => 'application/x-coldfusion', - 'cgm' => 'image/cgm', - 'chat' => 'application/x-chat', - 'chm' => 'application/vnd.ms-htmlhelp', - 'chrt' => 'application/vnd.kde.kchart', - 'cif' => 'chemical/x-cif', - 'cii' => 'application/vnd.anser-web-certificate-issue-initiation', - 'cil' => 'application/vnd.ms-artgalry', - 'cla' => 'application/vnd.claymore', - 'class' => 'application/java-vm', - 'clkk' => 'application/vnd.crick.clicker.keyboard', - 'clkp' => 'application/vnd.crick.clicker.palette', - 'clkt' => 'application/vnd.crick.clicker.template', - 'clkw' => 'application/vnd.crick.clicker.wordbank', - 'clkx' => 'application/vnd.crick.clicker', - 'clp' => 'application/x-msclip', - 'cmc' => 'application/vnd.cosmocaller', - 'cmdf' => 'chemical/x-cmdf', - 'cml' => 'chemical/x-cml', - 'cmp' => 'application/vnd.yellowriver-custom-menu', - 'cmx' => 'image/x-cmx', - 'cod' => 'application/vnd.rim.cod', - 'com' => 'application/x-msdownload', - 'conf' => 'text/plain', - 'cpio' => 'application/x-cpio', - 'cpp' => 'text/x-c', - 'cpt' => 'application/mac-compactpro', - 'crd' => 'application/x-mscardfile', - 'crl' => 'application/pkix-crl', - 'crt' => 'application/x-x509-ca-cert', - 'cryptonote' => 'application/vnd.rig.cryptonote', - 'cs' => 'text/plain', - 'csh' => 'application/x-csh', - 'csml' => 'chemical/x-csml', - 'csp' => 'application/vnd.commonspace', - 'css' => 'text/css', - 'cst' => 'application/x-director', - 'csv' => 'text/csv', - 'cu' => 'application/cu-seeme', - 'curl' => 'text/vnd.curl', - 'cww' => 'application/prs.cww', - 'cxt' => 'application/x-director', - 'cxx' => 'text/x-c', - 'dae' => 'model/vnd.collada+xml', - 'daf' => 'application/vnd.mobius.daf', - 'dataless' => 'application/vnd.fdsn.seed', - 'davmount' => 'application/davmount+xml', - 'dcr' => 'application/x-director', - 'dcurl' => 'text/vnd.curl.dcurl', - 'dd2' => 'application/vnd.oma.dd2+xml', - 'ddd' => 'application/vnd.fujixerox.ddd', - 'deb' => 'application/x-debian-package', - 'def' => 'text/plain', - 'deploy' => 'application/octet-stream', - 'der' => 'application/x-x509-ca-cert', - 'dfac' => 'application/vnd.dreamfactory', - 'dic' => 'text/x-c', - 'dir' => 'application/x-director', - 'dis' => 'application/vnd.mobius.dis', - 'dist' => 'application/octet-stream', - 'distz' => 'application/octet-stream', - 'djv' => 'image/vnd.djvu', - 'djvu' => 'image/vnd.djvu', - 'dll' => 'application/x-msdownload', - 'dmg' => 'application/octet-stream', - 'dms' => 'application/octet-stream', - 'dna' => 'application/vnd.dna', - 'doc' => 'application/msword', - 'docm' => 'application/vnd.ms-word.document.macroenabled.12', - 'docx' => 'application/vnd.openxmlformats-officedocument.wordprocessingml.document', - 'dot' => 'application/msword', - 'dotm' => 'application/vnd.ms-word.template.macroenabled.12', - 'dotx' => 'application/vnd.openxmlformats-officedocument.wordprocessingml.template', - 'dp' => 'application/vnd.osgi.dp', - 'dpg' => 'application/vnd.dpgraph', - 'dra' => 'audio/vnd.dra', - 'dsc' => 'text/prs.lines.tag', - 'dssc' => 'application/dssc+der', - 'dtb' => 'application/x-dtbook+xml', - 'dtd' => 'application/xml-dtd', - 'dts' => 'audio/vnd.dts', - 'dtshd' => 'audio/vnd.dts.hd', - 'dump' => 'application/octet-stream', - 'dvi' => 'application/x-dvi', - 'dwf' => 'model/vnd.dwf', - 'dwg' => 'image/vnd.dwg', - 'dxf' => 'image/vnd.dxf', - 'dxp' => 'application/vnd.spotfire.dxp', - 'dxr' => 'application/x-director', - 'ecelp4800' => 'audio/vnd.nuera.ecelp4800', - 'ecelp7470' => 'audio/vnd.nuera.ecelp7470', - 'ecelp9600' => 'audio/vnd.nuera.ecelp9600', - 'ecma' => 'application/ecmascript', - 'edm' => 'application/vnd.novadigm.edm', - 'edx' => 'application/vnd.novadigm.edx', - 'efif' => 'application/vnd.picsel', - 'ei6' => 'application/vnd.pg.osasli', - 'elc' => 'application/octet-stream', - 'eml' => 'message/rfc822', - 'emma' => 'application/emma+xml', - 'eol' => 'audio/vnd.digital-winds', - 'eot' => 'application/vnd.ms-fontobject', - 'eps' => 'application/postscript', - 'epub' => 'application/epub+zip', - 'es3' => 'application/vnd.eszigno3+xml', - 'esf' => 'application/vnd.epson.esf', - 'et3' => 'application/vnd.eszigno3+xml', - 'etx' => 'text/x-setext', - 'exe' => 'application/x-msdownload', - 'exi' => 'application/exi', - 'ext' => 'application/vnd.novadigm.ext', - 'ez' => 'application/andrew-inset', - 'ez2' => 'application/vnd.ezpix-album', - 'ez3' => 'application/vnd.ezpix-package', - 'f' => 'text/x-fortran', - 'f4v' => 'video/x-f4v', - 'f77' => 'text/x-fortran', - 'f90' => 'text/x-fortran', - 'fbs' => 'image/vnd.fastbidsheet', - 'fcs' => 'application/vnd.isac.fcs', - 'fdf' => 'application/vnd.fdf', - 'fe_launch' => 'application/vnd.denovo.fcselayout-link', - 'fg5' => 'application/vnd.fujitsu.oasysgp', - 'fgd' => 'application/x-director', - 'fh' => 'image/x-freehand', - 'fh4' => 'image/x-freehand', - 'fh5' => 'image/x-freehand', - 'fh7' => 'image/x-freehand', - 'fhc' => 'image/x-freehand', - 'fig' => 'application/x-xfig', - 'fli' => 'video/x-fli', - 'flo' => 'application/vnd.micrografx.flo', - 'flv' => 'video/x-flv', - 'flw' => 'application/vnd.kde.kivio', - 'flx' => 'text/vnd.fmi.flexstor', - 'fly' => 'text/vnd.fly', - 'fm' => 'application/vnd.framemaker', - 'fnc' => 'application/vnd.frogans.fnc', - 'for' => 'text/x-fortran', - 'fpx' => 'image/vnd.fpx', - 'frame' => 'application/vnd.framemaker', - 'fsc' => 'application/vnd.fsc.weblaunch', - 'fst' => 'image/vnd.fst', - 'ftc' => 'application/vnd.fluxtime.clip', - 'fti' => 'application/vnd.anser-web-funds-transfer-initiation', - 'fvt' => 'video/vnd.fvt', - 'fxp' => 'application/vnd.adobe.fxp', - 'fxpl' => 'application/vnd.adobe.fxp', - 'fzs' => 'application/vnd.fuzzysheet', - 'g2w' => 'application/vnd.geoplan', - 'g3' => 'image/g3fax', - 'g3w' => 'application/vnd.geospace', - 'gac' => 'application/vnd.groove-account', - 'gdl' => 'model/vnd.gdl', - 'geo' => 'application/vnd.dynageo', - 'gex' => 'application/vnd.geometry-explorer', - 'ggb' => 'application/vnd.geogebra.file', - 'ggt' => 'application/vnd.geogebra.tool', - 'ghf' => 'application/vnd.groove-help', - 'gif' => 'image/gif', - 'gim' => 'application/vnd.groove-identity-message', - 'gmx' => 'application/vnd.gmx', - 'gnumeric' => 'application/x-gnumeric', - 'gph' => 'application/vnd.flographit', - 'gqf' => 'application/vnd.grafeq', - 'gqs' => 'application/vnd.grafeq', - 'gram' => 'application/srgs', - 'gre' => 'application/vnd.geometry-explorer', - 'grv' => 'application/vnd.groove-injector', - 'grxml' => 'application/srgs+xml', - 'gsf' => 'application/x-font-ghostscript', - 'gtar' => 'application/x-gtar', - 'gtm' => 'application/vnd.groove-tool-message', - 'gtw' => 'model/vnd.gtw', - 'gv' => 'text/vnd.graphviz', - 'gxt' => 'application/vnd.geonext', - 'h' => 'text/x-c', - 'h261' => 'video/h261', - 'h263' => 'video/h263', - 'h264' => 'video/h264', - 'hal' => 'application/vnd.hal+xml', - 'hbci' => 'application/vnd.hbci', - 'hdf' => 'application/x-hdf', - 'hh' => 'text/x-c', - 'hlp' => 'application/winhlp', - 'hpgl' => 'application/vnd.hp-hpgl', - 'hpid' => 'application/vnd.hp-hpid', - 'hps' => 'application/vnd.hp-hps', - 'hqx' => 'application/mac-binhex40', - 'hta' => 'application/octet-stream', - 'htc' => 'text/html', - 'htke' => 'application/vnd.kenameaapp', - 'htm' => 'text/html', - 'html' => 'text/html', - 'hvd' => 'application/vnd.yamaha.hv-dic', - 'hvp' => 'application/vnd.yamaha.hv-voice', - 'hvs' => 'application/vnd.yamaha.hv-script', - 'i2g' => 'application/vnd.intergeo', - 'icc' => 'application/vnd.iccprofile', - 'ice' => 'x-conference/x-cooltalk', - 'icm' => 'application/vnd.iccprofile', - 'ico' => 'image/x-icon', - 'ics' => 'text/calendar', - 'ief' => 'image/ief', - 'ifb' => 'text/calendar', - 'ifm' => 'application/vnd.shana.informed.formdata', - 'iges' => 'model/iges', - 'igl' => 'application/vnd.igloader', - 'igm' => 'application/vnd.insors.igm', - 'igs' => 'model/iges', - 'igx' => 'application/vnd.micrografx.igx', - 'iif' => 'application/vnd.shana.informed.interchange', - 'imp' => 'application/vnd.accpac.simply.imp', - 'ims' => 'application/vnd.ms-ims', - 'in' => 'text/plain', - 'ini' => 'text/plain', - 'ipfix' => 'application/ipfix', - 'ipk' => 'application/vnd.shana.informed.package', - 'irm' => 'application/vnd.ibm.rights-management', - 'irp' => 'application/vnd.irepository.package+xml', - 'iso' => 'application/octet-stream', - 'itp' => 'application/vnd.shana.informed.formtemplate', - 'ivp' => 'application/vnd.immervision-ivp', - 'ivu' => 'application/vnd.immervision-ivu', - 'jad' => 'text/vnd.sun.j2me.app-descriptor', - 'jam' => 'application/vnd.jam', - 'jar' => 'application/java-archive', - 'java' => 'text/x-java-source', - 'jisp' => 'application/vnd.jisp', - 'jlt' => 'application/vnd.hp-jlyt', - 'jnlp' => 'application/x-java-jnlp-file', - 'joda' => 'application/vnd.joost.joda-archive', - 'jpe' => 'image/jpeg', - 'jpeg' => 'image/jpeg', - 'jpg' => 'image/jpeg', - 'jpgm' => 'video/jpm', - 'jpgv' => 'video/jpeg', - 'jpm' => 'video/jpm', - 'js' => 'text/javascript', - 'json' => 'application/json', - 'kar' => 'audio/midi', - 'karbon' => 'application/vnd.kde.karbon', - 'kfo' => 'application/vnd.kde.kformula', - 'kia' => 'application/vnd.kidspiration', - 'kml' => 'application/vnd.google-earth.kml+xml', - 'kmz' => 'application/vnd.google-earth.kmz', - 'kne' => 'application/vnd.kinar', - 'knp' => 'application/vnd.kinar', - 'kon' => 'application/vnd.kde.kontour', - 'kpr' => 'application/vnd.kde.kpresenter', - 'kpt' => 'application/vnd.kde.kpresenter', - 'ksp' => 'application/vnd.kde.kspread', - 'ktr' => 'application/vnd.kahootz', - 'ktx' => 'image/ktx', - 'ktz' => 'application/vnd.kahootz', - 'kwd' => 'application/vnd.kde.kword', - 'kwt' => 'application/vnd.kde.kword', - 'lasxml' => 'application/vnd.las.las+xml', - 'latex' => 'application/x-latex', - 'lbd' => 'application/vnd.llamagraphics.life-balance.desktop', - 'lbe' => 'application/vnd.llamagraphics.life-balance.exchange+xml', - 'les' => 'application/vnd.hhe.lesson-player', - 'lha' => 'application/octet-stream', - 'link66' => 'application/vnd.route66.link66+xml', - 'list' => 'text/plain', - 'list3820' => 'application/vnd.ibm.modcap', - 'listafp' => 'application/vnd.ibm.modcap', - 'log' => 'text/plain', - 'lostxml' => 'application/lost+xml', - 'lrf' => 'application/octet-stream', - 'lrm' => 'application/vnd.ms-lrm', - 'ltf' => 'application/vnd.frogans.ltf', - 'lvp' => 'audio/vnd.lucent.voice', - 'lwp' => 'application/vnd.lotus-wordpro', - 'lzh' => 'application/octet-stream', - 'm13' => 'application/x-msmediaview', - 'm14' => 'application/x-msmediaview', - 'm1v' => 'video/mpeg', - 'm21' => 'application/mp21', - 'm2a' => 'audio/mpeg', - 'm2v' => 'video/mpeg', - 'm3a' => 'audio/mpeg', - 'm3u' => 'audio/x-mpegurl', - 'm3u8' => 'application/vnd.apple.mpegurl', - 'm4a' => 'audio/mp4', - 'm4u' => 'video/vnd.mpegurl', - 'm4v' => 'video/mp4', - 'ma' => 'application/mathematica', - 'mads' => 'application/mads+xml', - 'mag' => 'application/vnd.ecowin.chart', - 'maker' => 'application/vnd.framemaker', - 'man' => 'text/troff', - 'mathml' => 'application/mathml+xml', - 'mb' => 'application/mathematica', - 'mbk' => 'application/vnd.mobius.mbk', - 'mbox' => 'application/mbox', - 'mc1' => 'application/vnd.medcalcdata', - 'mcd' => 'application/vnd.mcd', - 'mcurl' => 'text/vnd.curl.mcurl', - 'mdb' => 'application/x-msaccess', - 'mdi' => 'image/vnd.ms-modi', - 'me' => 'text/troff', - 'mesh' => 'model/mesh', - 'meta4' => 'application/metalink4+xml', - 'mets' => 'application/mets+xml', - 'mfm' => 'application/vnd.mfmp', - 'mgp' => 'application/vnd.osgeo.mapguide.package', - 'mgz' => 'application/vnd.proteus.magazine', - 'mid' => 'audio/midi', - 'midi' => 'audio/midi', - 'mif' => 'application/vnd.mif', - 'mime' => 'message/rfc822', - 'mj2' => 'video/mj2', - 'mjp2' => 'video/mj2', - 'mlp' => 'application/vnd.dolby.mlp', - 'mmd' => 'application/vnd.chipnuts.karaoke-mmd', - 'mmf' => 'application/vnd.smaf', - 'mmr' => 'image/vnd.fujixerox.edmics-mmr', - 'mny' => 'application/x-msmoney', - 'mobi' => 'application/x-mobipocket-ebook', - 'mods' => 'application/mods+xml', - 'mov' => 'video/quicktime', - 'movie' => 'video/x-sgi-movie', - 'mp2' => 'audio/mpeg', - 'mp21' => 'application/mp21', - 'mp2a' => 'audio/mpeg', - 'mp3' => 'audio/mpeg', - 'mp4' => 'video/mp4', - 'mp4a' => 'audio/mp4', - 'mp4s' => 'application/mp4', - 'mp4v' => 'video/mp4', - 'mpc' => 'application/vnd.mophun.certificate', - 'mpe' => 'video/mpeg', - 'mpeg' => 'video/mpeg', - 'mpg' => 'video/mpeg', - 'mpg4' => 'video/mp4', - 'mpga' => 'audio/mpeg', - 'mpkg' => 'application/vnd.apple.installer+xml', - 'mpm' => 'application/vnd.blueice.multipass', - 'mpn' => 'application/vnd.mophun.application', - 'mpp' => 'application/vnd.ms-project', - 'mpt' => 'application/vnd.ms-project', - 'mpy' => 'application/vnd.ibm.minipay', - 'mqy' => 'application/vnd.mobius.mqy', - 'mrc' => 'application/marc', - 'mrcx' => 'application/marcxml+xml', - 'ms' => 'text/troff', - 'mscml' => 'application/mediaservercontrol+xml', - 'mseed' => 'application/vnd.fdsn.mseed', - 'mseq' => 'application/vnd.mseq', - 'msf' => 'application/vnd.epson.msf', - 'msh' => 'model/mesh', - 'msi' => 'application/x-msdownload', - 'msl' => 'application/vnd.mobius.msl', - 'msty' => 'application/vnd.muvee.style', - 'mts' => 'model/vnd.mts', - 'mus' => 'application/vnd.musician', - 'musicxml' => 'application/vnd.recordare.musicxml+xml', - 'mvb' => 'application/x-msmediaview', - 'mwf' => 'application/vnd.mfer', - 'mxf' => 'application/mxf', - 'mxl' => 'application/vnd.recordare.musicxml', - 'mxml' => 'application/xv+xml', - 'mxs' => 'application/vnd.triscape.mxs', - 'mxu' => 'video/vnd.mpegurl', - 'n-gage' => 'application/vnd.nokia.n-gage.symbian.install', - 'n3' => 'text/n3', - 'nb' => 'application/mathematica', - 'nbp' => 'application/vnd.wolfram.player', - 'nc' => 'application/x-netcdf', - 'ncx' => 'application/x-dtbncx+xml', - 'ngdat' => 'application/vnd.nokia.n-gage.data', - 'nlu' => 'application/vnd.neurolanguage.nlu', - 'nml' => 'application/vnd.enliven', - 'nnd' => 'application/vnd.noblenet-directory', - 'nns' => 'application/vnd.noblenet-sealer', - 'nnw' => 'application/vnd.noblenet-web', - 'npx' => 'image/vnd.net-fpx', - 'nsf' => 'application/vnd.lotus-notes', - 'oa2' => 'application/vnd.fujitsu.oasys2', - 'oa3' => 'application/vnd.fujitsu.oasys3', - 'oas' => 'application/vnd.fujitsu.oasys', - 'obd' => 'application/x-msbinder', - 'oda' => 'application/oda', - 'odb' => 'application/vnd.oasis.opendocument.database', - 'odc' => 'application/vnd.oasis.opendocument.chart', - 'odf' => 'application/vnd.oasis.opendocument.formula', - 'odft' => 'application/vnd.oasis.opendocument.formula-template', - 'odg' => 'application/vnd.oasis.opendocument.graphics', - 'odi' => 'application/vnd.oasis.opendocument.image', - 'odm' => 'application/vnd.oasis.opendocument.text-master', - 'odp' => 'application/vnd.oasis.opendocument.presentation', - 'ods' => 'application/vnd.oasis.opendocument.spreadsheet', - 'odt' => 'application/vnd.oasis.opendocument.text', - 'oga' => 'audio/ogg', - 'ogg' => 'audio/ogg', - 'ogv' => 'video/ogg', - 'ogx' => 'application/ogg', - 'onepkg' => 'application/onenote', - 'onetmp' => 'application/onenote', - 'onetoc' => 'application/onenote', - 'onetoc2' => 'application/onenote', - 'opf' => 'application/oebps-package+xml', - 'oprc' => 'application/vnd.palm', - 'org' => 'application/vnd.lotus-organizer', - 'osf' => 'application/vnd.yamaha.openscoreformat', - 'osfpvg' => 'application/vnd.yamaha.openscoreformat.osfpvg+xml', - 'otc' => 'application/vnd.oasis.opendocument.chart-template', - 'otf' => 'application/x-font-otf', - 'otg' => 'application/vnd.oasis.opendocument.graphics-template', - 'oth' => 'application/vnd.oasis.opendocument.text-web', - 'oti' => 'application/vnd.oasis.opendocument.image-template', - 'otp' => 'application/vnd.oasis.opendocument.presentation-template', - 'ots' => 'application/vnd.oasis.opendocument.spreadsheet-template', - 'ott' => 'application/vnd.oasis.opendocument.text-template', - 'oxt' => 'application/vnd.openofficeorg.extension', - 'p' => 'text/x-pascal', - 'p10' => 'application/pkcs10', - 'p12' => 'application/x-pkcs12', - 'p7b' => 'application/x-pkcs7-certificates', - 'p7c' => 'application/pkcs7-mime', - 'p7m' => 'application/pkcs7-mime', - 'p7r' => 'application/x-pkcs7-certreqresp', - 'p7s' => 'application/pkcs7-signature', - 'p8' => 'application/pkcs8', - 'pas' => 'text/x-pascal', - 'paw' => 'application/vnd.pawaafile', - 'pbd' => 'application/vnd.powerbuilder6', - 'pbm' => 'image/x-portable-bitmap', - 'pcf' => 'application/x-font-pcf', - 'pcl' => 'application/vnd.hp-pcl', - 'pclxl' => 'application/vnd.hp-pclxl', - 'pct' => 'image/x-pict', - 'pcurl' => 'application/vnd.curl.pcurl', - 'pcx' => 'image/x-pcx', - 'pdb' => 'application/vnd.palm', - 'pdf' => 'application/pdf', - 'pfa' => 'application/x-font-type1', - 'pfb' => 'application/x-font-type1', - 'pfm' => 'application/x-font-type1', - 'pfr' => 'application/font-tdpfr', - 'pfx' => 'application/x-pkcs12', - 'pgm' => 'image/x-portable-graymap', - 'pgn' => 'application/x-chess-pgn', - 'pgp' => 'application/pgp-encrypted', - 'php' => 'text/x-php', - 'phps' => 'application/x-httpd-phps', - 'pic' => 'image/x-pict', - 'pkg' => 'application/octet-stream', - 'pki' => 'application/pkixcmp', - 'pkipath' => 'application/pkix-pkipath', - 'plb' => 'application/vnd.3gpp.pic-bw-large', - 'plc' => 'application/vnd.mobius.plc', - 'plf' => 'application/vnd.pocketlearn', - 'pls' => 'application/pls+xml', - 'pml' => 'application/vnd.ctc-posml', - 'png' => 'image/png', - 'pnm' => 'image/x-portable-anymap', - 'portpkg' => 'application/vnd.macports.portpkg', - 'pot' => 'application/vnd.ms-powerpoint', - 'potm' => 'application/vnd.ms-powerpoint.template.macroenabled.12', - 'potx' => 'application/vnd.openxmlformats-officedocument.presentationml.template', - 'ppam' => 'application/vnd.ms-powerpoint.addin.macroenabled.12', - 'ppd' => 'application/vnd.cups-ppd', - 'ppm' => 'image/x-portable-pixmap', - 'pps' => 'application/vnd.ms-powerpoint', - 'ppsm' => 'application/vnd.ms-powerpoint.slideshow.macroenabled.12', - 'ppsx' => 'application/vnd.openxmlformats-officedocument.presentationml.slideshow', - 'ppt' => 'application/vnd.ms-powerpoint', - 'pptm' => 'application/vnd.ms-powerpoint.presentation.macroenabled.12', - 'pptx' => 'application/vnd.openxmlformats-officedocument.presentationml.presentation', - 'pqa' => 'application/vnd.palm', - 'prc' => 'application/x-mobipocket-ebook', - 'pre' => 'application/vnd.lotus-freelance', - 'prf' => 'application/pics-rules', - 'ps' => 'application/postscript', - 'psb' => 'application/vnd.3gpp.pic-bw-small', - 'psd' => 'image/vnd.adobe.photoshop', - 'psf' => 'application/x-font-linux-psf', - 'pskcxml' => 'application/pskc+xml', - 'ptid' => 'application/vnd.pvi.ptid1', - 'pub' => 'application/x-mspublisher', - 'pvb' => 'application/vnd.3gpp.pic-bw-var', - 'pwn' => 'application/vnd.3m.post-it-notes', - 'pya' => 'audio/vnd.ms-playready.media.pya', - 'pyv' => 'video/vnd.ms-playready.media.pyv', - 'qam' => 'application/vnd.epson.quickanime', - 'qbo' => 'application/vnd.intu.qbo', - 'qfx' => 'application/vnd.intu.qfx', - 'qps' => 'application/vnd.publishare-delta-tree', - 'qt' => 'video/quicktime', - 'qwd' => 'application/vnd.quark.quarkxpress', - 'qwt' => 'application/vnd.quark.quarkxpress', - 'qxb' => 'application/vnd.quark.quarkxpress', - 'qxd' => 'application/vnd.quark.quarkxpress', - 'qxl' => 'application/vnd.quark.quarkxpress', - 'qxt' => 'application/vnd.quark.quarkxpress', - 'ra' => 'audio/x-pn-realaudio', - 'ram' => 'audio/x-pn-realaudio', - 'rar' => 'application/x-rar-compressed', - 'ras' => 'image/x-cmu-raster', - 'rb' => 'text/plain', - 'rcprofile' => 'application/vnd.ipunplugged.rcprofile', - 'rdf' => 'application/rdf+xml', - 'rdz' => 'application/vnd.data-vision.rdz', - 'rep' => 'application/vnd.businessobjects', - 'res' => 'application/x-dtbresource+xml', - 'resx' => 'text/xml', - 'rgb' => 'image/x-rgb', - 'rif' => 'application/reginfo+xml', - 'rip' => 'audio/vnd.rip', - 'rl' => 'application/resource-lists+xml', - 'rlc' => 'image/vnd.fujixerox.edmics-rlc', - 'rld' => 'application/resource-lists-diff+xml', - 'rm' => 'application/vnd.rn-realmedia', - 'rmi' => 'audio/midi', - 'rmp' => 'audio/x-pn-realaudio-plugin', - 'rms' => 'application/vnd.jcp.javame.midlet-rms', - 'rnc' => 'application/relax-ng-compact-syntax', - 'roff' => 'text/troff', - 'rp9' => 'application/vnd.cloanto.rp9', - 'rpss' => 'application/vnd.nokia.radio-presets', - 'rpst' => 'application/vnd.nokia.radio-preset', - 'rq' => 'application/sparql-query', - 'rs' => 'application/rls-services+xml', - 'rsd' => 'application/rsd+xml', - 'rss' => 'application/rss+xml', - 'rtf' => 'application/rtf', - 'rtx' => 'text/richtext', - 's' => 'text/x-asm', - 'saf' => 'application/vnd.yamaha.smaf-audio', - 'sbml' => 'application/sbml+xml', - 'sc' => 'application/vnd.ibm.secure-container', - 'scd' => 'application/x-msschedule', - 'scm' => 'application/vnd.lotus-screencam', - 'scq' => 'application/scvp-cv-request', - 'scs' => 'application/scvp-cv-response', - 'scurl' => 'text/vnd.curl.scurl', - 'sda' => 'application/vnd.stardivision.draw', - 'sdc' => 'application/vnd.stardivision.calc', - 'sdd' => 'application/vnd.stardivision.impress', - 'sdkd' => 'application/vnd.solent.sdkm+xml', - 'sdkm' => 'application/vnd.solent.sdkm+xml', - 'sdp' => 'application/sdp', - 'sdw' => 'application/vnd.stardivision.writer', - 'see' => 'application/vnd.seemail', - 'seed' => 'application/vnd.fdsn.seed', - 'sema' => 'application/vnd.sema', - 'semd' => 'application/vnd.semd', - 'semf' => 'application/vnd.semf', - 'ser' => 'application/java-serialized-object', - 'setpay' => 'application/set-payment-initiation', - 'setreg' => 'application/set-registration-initiation', - 'sfd-hdstx' => 'application/vnd.hydrostatix.sof-data', - 'sfs' => 'application/vnd.spotfire.sfs', - 'sgl' => 'application/vnd.stardivision.writer-global', - 'sgm' => 'text/sgml', - 'sgml' => 'text/sgml', - 'sh' => 'application/x-sh', - 'shar' => 'application/x-shar', - 'shf' => 'application/shf+xml', - 'sig' => 'application/pgp-signature', - 'silo' => 'model/mesh', - 'sis' => 'application/vnd.symbian.install', - 'sisx' => 'application/vnd.symbian.install', - 'sit' => 'application/x-stuffit', - 'sitx' => 'application/x-stuffitx', - 'skd' => 'application/vnd.koan', - 'skm' => 'application/vnd.koan', - 'skp' => 'application/vnd.koan', - 'skt' => 'application/vnd.koan', - 'sldm' => 'application/vnd.ms-powerpoint.slide.macroenabled.12', - 'sldx' => 'application/vnd.openxmlformats-officedocument.presentationml.slide', - 'slt' => 'application/vnd.epson.salt', - 'sm' => 'application/vnd.stepmania.stepchart', - 'smf' => 'application/vnd.stardivision.math', - 'smi' => 'application/smil+xml', - 'smil' => 'application/smil+xml', - 'snd' => 'audio/basic', - 'snf' => 'application/x-font-snf', - 'so' => 'application/octet-stream', - 'spc' => 'application/x-pkcs7-certificates', - 'spf' => 'application/vnd.yamaha.smaf-phrase', - 'spl' => 'application/x-futuresplash', - 'spot' => 'text/vnd.in3d.spot', - 'spp' => 'application/scvp-vp-response', - 'spq' => 'application/scvp-vp-request', - 'spx' => 'audio/ogg', - 'src' => 'application/x-wais-source', - 'srt' => 'application/octet-stream', - 'sru' => 'application/sru+xml', - 'srx' => 'application/sparql-results+xml', - 'sse' => 'application/vnd.kodak-descriptor', - 'ssf' => 'application/vnd.epson.ssf', - 'ssml' => 'application/ssml+xml', - 'st' => 'application/vnd.sailingtracker.track', - 'stc' => 'application/vnd.sun.xml.calc.template', - 'std' => 'application/vnd.sun.xml.draw.template', - 'stf' => 'application/vnd.wt.stf', - 'sti' => 'application/vnd.sun.xml.impress.template', - 'stk' => 'application/hyperstudio', - 'stl' => 'application/vnd.ms-pki.stl', - 'str' => 'application/vnd.pg.format', - 'stw' => 'application/vnd.sun.xml.writer.template', - 'sub' => 'image/vnd.dvb.subtitle', - 'sus' => 'application/vnd.sus-calendar', - 'susp' => 'application/vnd.sus-calendar', - 'sv4cpio' => 'application/x-sv4cpio', - 'sv4crc' => 'application/x-sv4crc', - 'svc' => 'application/vnd.dvb.service', - 'svd' => 'application/vnd.svd', - 'svg' => 'image/svg+xml', - 'svgz' => 'image/svg+xml', - 'swa' => 'application/x-director', - 'swf' => 'application/x-shockwave-flash', - 'swi' => 'application/vnd.aristanetworks.swi', - 'sxc' => 'application/vnd.sun.xml.calc', - 'sxd' => 'application/vnd.sun.xml.draw', - 'sxg' => 'application/vnd.sun.xml.writer.global', - 'sxi' => 'application/vnd.sun.xml.impress', - 'sxm' => 'application/vnd.sun.xml.math', - 'sxw' => 'application/vnd.sun.xml.writer', - 't' => 'text/troff', - 'tao' => 'application/vnd.tao.intent-module-archive', - 'tar' => 'application/x-tar', - 'tcap' => 'application/vnd.3gpp2.tcap', - 'tcl' => 'application/x-tcl', - 'teacher' => 'application/vnd.smart.teacher', - 'tei' => 'application/tei+xml', - 'teicorpus' => 'application/tei+xml', - 'tex' => 'application/x-tex', - 'texi' => 'application/x-texinfo', - 'texinfo' => 'application/x-texinfo', - 'text' => 'text/plain', - 'tfi' => 'application/thraud+xml', - 'tfm' => 'application/x-tex-tfm', - 'thmx' => 'application/vnd.ms-officetheme', - 'tif' => 'image/tiff', - 'tiff' => 'image/tiff', - 'tmo' => 'application/vnd.tmobile-livetv', - 'torrent' => 'application/x-bittorrent', - 'tpl' => 'application/vnd.groove-tool-template', - 'tpt' => 'application/vnd.trid.tpt', - 'tr' => 'text/troff', - 'tra' => 'application/vnd.trueapp', - 'trm' => 'application/x-msterminal', - 'tsd' => 'application/timestamped-data', - 'tsv' => 'text/tab-separated-values', - 'ttc' => 'application/x-font-ttf', - 'ttf' => 'application/x-font-ttf', - 'ttl' => 'text/turtle', - 'twd' => 'application/vnd.simtech-mindmapper', - 'twds' => 'application/vnd.simtech-mindmapper', - 'txd' => 'application/vnd.genomatix.tuxedo', - 'txf' => 'application/vnd.mobius.txf', - 'txt' => 'text/plain', - 'u32' => 'application/x-authorware-bin', - 'udeb' => 'application/x-debian-package', - 'ufd' => 'application/vnd.ufdl', - 'ufdl' => 'application/vnd.ufdl', - 'umj' => 'application/vnd.umajin', - 'unityweb' => 'application/vnd.unity', - 'uoml' => 'application/vnd.uoml+xml', - 'uri' => 'text/uri-list', - 'uris' => 'text/uri-list', - 'urls' => 'text/uri-list', - 'ustar' => 'application/x-ustar', - 'utz' => 'application/vnd.uiq.theme', - 'uu' => 'text/x-uuencode', - 'uva' => 'audio/vnd.dece.audio', - 'uvd' => 'application/vnd.dece.data', - 'uvf' => 'application/vnd.dece.data', - 'uvg' => 'image/vnd.dece.graphic', - 'uvh' => 'video/vnd.dece.hd', - 'uvi' => 'image/vnd.dece.graphic', - 'uvm' => 'video/vnd.dece.mobile', - 'uvp' => 'video/vnd.dece.pd', - 'uvs' => 'video/vnd.dece.sd', - 'uvt' => 'application/vnd.dece.ttml+xml', - 'uvu' => 'video/vnd.uvvu.mp4', - 'uvv' => 'video/vnd.dece.video', - 'uvva' => 'audio/vnd.dece.audio', - 'uvvd' => 'application/vnd.dece.data', - 'uvvf' => 'application/vnd.dece.data', - 'uvvg' => 'image/vnd.dece.graphic', - 'uvvh' => 'video/vnd.dece.hd', - 'uvvi' => 'image/vnd.dece.graphic', - 'uvvm' => 'video/vnd.dece.mobile', - 'uvvp' => 'video/vnd.dece.pd', - 'uvvs' => 'video/vnd.dece.sd', - 'uvvt' => 'application/vnd.dece.ttml+xml', - 'uvvu' => 'video/vnd.uvvu.mp4', - 'uvvv' => 'video/vnd.dece.video', - 'uvvx' => 'application/vnd.dece.unspecified', - 'uvx' => 'application/vnd.dece.unspecified', - 'vcd' => 'application/x-cdlink', - 'vcf' => 'text/x-vcard', - 'vcg' => 'application/vnd.groove-vcard', - 'vcs' => 'text/x-vcalendar', - 'vcx' => 'application/vnd.vcx', - 'vis' => 'application/vnd.visionary', - 'viv' => 'video/vnd.vivo', - 'vor' => 'application/vnd.stardivision.writer', - 'vox' => 'application/x-authorware-bin', - 'vrml' => 'model/vrml', - 'vsd' => 'application/vnd.visio', - 'vsf' => 'application/vnd.vsf', - 'vss' => 'application/vnd.visio', - 'vst' => 'application/vnd.visio', - 'vsw' => 'application/vnd.visio', - 'vtu' => 'model/vnd.vtu', - 'vxml' => 'application/voicexml+xml', - 'w3d' => 'application/x-director', - 'wad' => 'application/x-doom', - 'wav' => 'audio/x-wav', - 'wax' => 'audio/x-ms-wax', - 'wbmp' => 'image/vnd.wap.wbmp', - 'wbs' => 'application/vnd.criticaltools.wbs+xml', - 'wbxml' => 'application/vnd.wap.wbxml', - 'wcm' => 'application/vnd.ms-works', - 'wdb' => 'application/vnd.ms-works', - 'weba' => 'audio/webm', - 'webm' => 'video/webm', - 'webp' => 'image/webp', - 'wg' => 'application/vnd.pmi.widget', - 'wgt' => 'application/widget', - 'wks' => 'application/vnd.ms-works', - 'wm' => 'video/x-ms-wm', - 'wma' => 'audio/x-ms-wma', - 'wmd' => 'application/x-ms-wmd', - 'wmf' => 'application/x-msmetafile', - 'wml' => 'text/vnd.wap.wml', - 'wmlc' => 'application/vnd.wap.wmlc', - 'wmls' => 'text/vnd.wap.wmlscript', - 'wmlsc' => 'application/vnd.wap.wmlscriptc', - 'wmv' => 'video/x-ms-wmv', - 'wmx' => 'video/x-ms-wmx', - 'wmz' => 'application/x-ms-wmz', - 'woff' => 'application/x-font-woff', - 'wpd' => 'application/vnd.wordperfect', - 'wpl' => 'application/vnd.ms-wpl', - 'wps' => 'application/vnd.ms-works', - 'wqd' => 'application/vnd.wqd', - 'wri' => 'application/x-mswrite', - 'wrl' => 'model/vrml', - 'wsdl' => 'application/wsdl+xml', - 'wspolicy' => 'application/wspolicy+xml', - 'wtb' => 'application/vnd.webturbo', - 'wvx' => 'video/x-ms-wvx', - 'x32' => 'application/x-authorware-bin', - 'x3d' => 'application/vnd.hzn-3d-crossword', - 'xap' => 'application/x-silverlight-app', - 'xar' => 'application/vnd.xara', - 'xbap' => 'application/x-ms-xbap', - 'xbd' => 'application/vnd.fujixerox.docuworks.binder', - 'xbm' => 'image/x-xbitmap', - 'xdf' => 'application/xcap-diff+xml', - 'xdm' => 'application/vnd.syncml.dm+xml', - 'xdp' => 'application/vnd.adobe.xdp+xml', - 'xdssc' => 'application/dssc+xml', - 'xdw' => 'application/vnd.fujixerox.docuworks', - 'xenc' => 'application/xenc+xml', - 'xer' => 'application/patch-ops-error+xml', - 'xfdf' => 'application/vnd.adobe.xfdf', - 'xfdl' => 'application/vnd.xfdl', - 'xht' => 'application/xhtml+xml', - 'xhtml' => 'application/xhtml+xml', - 'xhvml' => 'application/xv+xml', - 'xif' => 'image/vnd.xiff', - 'xla' => 'application/vnd.ms-excel', - 'xlam' => 'application/vnd.ms-excel.addin.macroenabled.12', - 'xlc' => 'application/vnd.ms-excel', - 'xlm' => 'application/vnd.ms-excel', - 'xls' => 'application/vnd.ms-excel', - 'xlsb' => 'application/vnd.ms-excel.sheet.binary.macroenabled.12', - 'xlsm' => 'application/vnd.ms-excel.sheet.macroenabled.12', - 'xlsx' => 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', - 'xlt' => 'application/vnd.ms-excel', - 'xltm' => 'application/vnd.ms-excel.template.macroenabled.12', - 'xltx' => 'application/vnd.openxmlformats-officedocument.spreadsheetml.template', - 'xlw' => 'application/vnd.ms-excel', - 'xml' => 'application/xml', - 'xo' => 'application/vnd.olpc-sugar', - 'xop' => 'application/xop+xml', - 'xpi' => 'application/x-xpinstall', - 'xpm' => 'image/x-xpixmap', - 'xpr' => 'application/vnd.is-xpr', - 'xps' => 'application/vnd.ms-xpsdocument', - 'xpw' => 'application/vnd.intercon.formnet', - 'xpx' => 'application/vnd.intercon.formnet', - 'xsl' => 'application/xml', - 'xslt' => 'application/xslt+xml', - 'xsm' => 'application/vnd.syncml+xml', - 'xspf' => 'application/xspf+xml', - 'xul' => 'application/vnd.mozilla.xul+xml', - 'xvm' => 'application/xv+xml', - 'xvml' => 'application/xv+xml', - 'xwd' => 'image/x-xwindowdump', - 'xyz' => 'chemical/x-xyz', - 'yaml' => 'text/yaml', - 'yang' => 'application/yang', - 'yin' => 'application/yin+xml', - 'yml' => 'text/yaml', - 'zaz' => 'application/vnd.zzazz.deck+xml', - 'zip' => 'application/zip', - 'zir' => 'application/vnd.zul', - 'zirz' => 'application/vnd.zul', - 'zmm' => 'application/vnd.handheld-entertainment+xml' - ]; - - /** - * Get a singleton instance of the class - * - * @return self - * @codeCoverageIgnore - */ - public static function getInstance() - { - if (!self::$instance) { - self::$instance = new self(); - } - - return self::$instance; - } - - /** - * Get a mimetype value from a file extension - * - * @param string $extension File extension - * - * @return string|null - */ - public function fromExtension($extension) - { - $extension = strtolower($extension); - - return isset($this->mimetypes[$extension]) ? $this->mimetypes[$extension] : null; - } - - /** - * Get a mimetype from a filename - * - * @param string $filename Filename to generate a mimetype from - * - * @return string|null - */ - public function fromFilename($filename) - { - return $this->fromExtension(pathinfo($filename, PATHINFO_EXTENSION)); - } -} diff --git a/vendor/facebook/graph-sdk/src/Facebook/GraphNodes/Birthday.php b/vendor/facebook/graph-sdk/src/Facebook/GraphNodes/Birthday.php deleted file mode 100644 index 4338b65e..00000000 --- a/vendor/facebook/graph-sdk/src/Facebook/GraphNodes/Birthday.php +++ /dev/null @@ -1,85 +0,0 @@ -hasYear = count($parts) === 3 || count($parts) === 1; - $this->hasDate = count($parts) === 3 || count($parts) === 2; - - parent::__construct($date); - } - - /** - * Returns whether date object contains birth day and month - * - * @return bool - */ - public function hasDate() - { - return $this->hasDate; - } - - /** - * Returns whether date object contains birth year - * - * @return bool - */ - public function hasYear() - { - return $this->hasYear; - } -} diff --git a/vendor/facebook/graph-sdk/src/Facebook/GraphNodes/Collection.php b/vendor/facebook/graph-sdk/src/Facebook/GraphNodes/Collection.php deleted file mode 100644 index 424b7cf3..00000000 --- a/vendor/facebook/graph-sdk/src/Facebook/GraphNodes/Collection.php +++ /dev/null @@ -1,242 +0,0 @@ -items = $items; - } - - /** - * Gets the value of a field from the Graph node. - * - * @param string $name The field to retrieve. - * @param mixed $default The default to return if the field doesn't exist. - * - * @return mixed - */ - public function getField($name, $default = null) - { - if (isset($this->items[$name])) { - return $this->items[$name]; - } - - return $default; - } - - /** - * Gets the value of the named property for this graph object. - * - * @param string $name The property to retrieve. - * @param mixed $default The default to return if the property doesn't exist. - * - * @return mixed - * - * @deprecated 5.0.0 getProperty() has been renamed to getField() - * @todo v6: Remove this method - */ - public function getProperty($name, $default = null) - { - return $this->getField($name, $default); - } - - /** - * Returns a list of all fields set on the object. - * - * @return array - */ - public function getFieldNames() - { - return array_keys($this->items); - } - - /** - * Returns a list of all properties set on the object. - * - * @return array - * - * @deprecated 5.0.0 getPropertyNames() has been renamed to getFieldNames() - * @todo v6: Remove this method - */ - public function getPropertyNames() - { - return $this->getFieldNames(); - } - - /** - * Get all of the items in the collection. - * - * @return array - */ - public function all() - { - return $this->items; - } - - /** - * Get the collection of items as a plain array. - * - * @return array - */ - public function asArray() - { - return array_map(function ($value) { - return $value instanceof Collection ? $value->asArray() : $value; - }, $this->items); - } - - /** - * Run a map over each of the items. - * - * @param \Closure $callback - * - * @return static - */ - public function map(\Closure $callback) - { - return new static(array_map($callback, $this->items, array_keys($this->items))); - } - - /** - * Get the collection of items as JSON. - * - * @param int $options - * - * @return string - */ - public function asJson($options = 0) - { - return json_encode($this->asArray(), $options); - } - - /** - * Count the number of items in the collection. - * - * @return int - */ - public function count() - { - return count($this->items); - } - - /** - * Get an iterator for the items. - * - * @return ArrayIterator - */ - public function getIterator() - { - return new ArrayIterator($this->items); - } - - /** - * Determine if an item exists at an offset. - * - * @param mixed $key - * - * @return bool - */ - public function offsetExists($key) - { - return array_key_exists($key, $this->items); - } - - /** - * Get an item at a given offset. - * - * @param mixed $key - * - * @return mixed - */ - public function offsetGet($key) - { - return $this->items[$key]; - } - - /** - * Set the item at a given offset. - * - * @param mixed $key - * @param mixed $value - * - * @return void - */ - public function offsetSet($key, $value) - { - if (is_null($key)) { - $this->items[] = $value; - } else { - $this->items[$key] = $value; - } - } - - /** - * Unset the item at a given offset. - * - * @param string $key - * - * @return void - */ - public function offsetUnset($key) - { - unset($this->items[$key]); - } - - /** - * Convert the collection to its string representation. - * - * @return string - */ - public function __toString() - { - return $this->asJson(); - } -} diff --git a/vendor/facebook/graph-sdk/src/Facebook/GraphNodes/GraphAchievement.php b/vendor/facebook/graph-sdk/src/Facebook/GraphNodes/GraphAchievement.php deleted file mode 100644 index 31508ee4..00000000 --- a/vendor/facebook/graph-sdk/src/Facebook/GraphNodes/GraphAchievement.php +++ /dev/null @@ -1,112 +0,0 @@ - '\Facebook\GraphNodes\GraphUser', - 'application' => '\Facebook\GraphNodes\GraphApplication', - ]; - - /** - * Returns the ID for the achievement. - * - * @return string|null - */ - public function getId() - { - return $this->getField('id'); - } - - /** - * Returns the user who achieved this. - * - * @return GraphUser|null - */ - public function getFrom() - { - return $this->getField('from'); - } - - /** - * Returns the time at which this was achieved. - * - * @return \DateTime|null - */ - public function getPublishTime() - { - return $this->getField('publish_time'); - } - - /** - * Returns the app in which the user achieved this. - * - * @return GraphApplication|null - */ - public function getApplication() - { - return $this->getField('application'); - } - - /** - * Returns information about the achievement type this instance is connected with. - * - * @return array|null - */ - public function getData() - { - return $this->getField('data'); - } - - /** - * Returns the type of achievement. - * - * @see https://developers.facebook.com/docs/graph-api/reference/achievement - * - * @return string - */ - public function getType() - { - return 'game.achievement'; - } - - /** - * Indicates whether gaining the achievement published a feed story for the user. - * - * @return boolean|null - */ - public function isNoFeedStory() - { - return $this->getField('no_feed_story'); - } -} diff --git a/vendor/facebook/graph-sdk/src/Facebook/GraphNodes/GraphAlbum.php b/vendor/facebook/graph-sdk/src/Facebook/GraphNodes/GraphAlbum.php deleted file mode 100644 index 52f19b51..00000000 --- a/vendor/facebook/graph-sdk/src/Facebook/GraphNodes/GraphAlbum.php +++ /dev/null @@ -1,183 +0,0 @@ - '\Facebook\GraphNodes\GraphUser', - 'place' => '\Facebook\GraphNodes\GraphPage', - ]; - - /** - * Returns the ID for the album. - * - * @return string|null - */ - public function getId() - { - return $this->getField('id'); - } - - /** - * Returns whether the viewer can upload photos to this album. - * - * @return boolean|null - */ - public function getCanUpload() - { - return $this->getField('can_upload'); - } - - /** - * Returns the number of photos in this album. - * - * @return int|null - */ - public function getCount() - { - return $this->getField('count'); - } - - /** - * Returns the ID of the album's cover photo. - * - * @return string|null - */ - public function getCoverPhoto() - { - return $this->getField('cover_photo'); - } - - /** - * Returns the time the album was initially created. - * - * @return \DateTime|null - */ - public function getCreatedTime() - { - return $this->getField('created_time'); - } - - /** - * Returns the time the album was updated. - * - * @return \DateTime|null - */ - public function getUpdatedTime() - { - return $this->getField('updated_time'); - } - - /** - * Returns the description of the album. - * - * @return string|null - */ - public function getDescription() - { - return $this->getField('description'); - } - - /** - * Returns profile that created the album. - * - * @return GraphUser|null - */ - public function getFrom() - { - return $this->getField('from'); - } - - /** - * Returns profile that created the album. - * - * @return GraphPage|null - */ - public function getPlace() - { - return $this->getField('place'); - } - - /** - * Returns a link to this album on Facebook. - * - * @return string|null - */ - public function getLink() - { - return $this->getField('link'); - } - - /** - * Returns the textual location of the album. - * - * @return string|null - */ - public function getLocation() - { - return $this->getField('location'); - } - - /** - * Returns the title of the album. - * - * @return string|null - */ - public function getName() - { - return $this->getField('name'); - } - - /** - * Returns the privacy settings for the album. - * - * @return string|null - */ - public function getPrivacy() - { - return $this->getField('privacy'); - } - - /** - * Returns the type of the album. - * - * enum{ profile, mobile, wall, normal, album } - * - * @return string|null - */ - public function getType() - { - return $this->getField('type'); - } -} diff --git a/vendor/facebook/graph-sdk/src/Facebook/GraphNodes/GraphApplication.php b/vendor/facebook/graph-sdk/src/Facebook/GraphNodes/GraphApplication.php deleted file mode 100644 index aa07c825..00000000 --- a/vendor/facebook/graph-sdk/src/Facebook/GraphNodes/GraphApplication.php +++ /dev/null @@ -1,43 +0,0 @@ -getField('id'); - } -} diff --git a/vendor/facebook/graph-sdk/src/Facebook/GraphNodes/GraphCoverPhoto.php b/vendor/facebook/graph-sdk/src/Facebook/GraphNodes/GraphCoverPhoto.php deleted file mode 100644 index 824275bb..00000000 --- a/vendor/facebook/graph-sdk/src/Facebook/GraphNodes/GraphCoverPhoto.php +++ /dev/null @@ -1,72 +0,0 @@ -getField('id'); - } - - /** - * Returns the source of cover if it exists - * - * @return string|null - */ - public function getSource() - { - return $this->getField('source'); - } - - /** - * Returns the offset_x of cover if it exists - * - * @return int|null - */ - public function getOffsetX() - { - return $this->getField('offset_x'); - } - - /** - * Returns the offset_y of cover if it exists - * - * @return int|null - */ - public function getOffsetY() - { - return $this->getField('offset_y'); - } -} diff --git a/vendor/facebook/graph-sdk/src/Facebook/GraphNodes/GraphEdge.php b/vendor/facebook/graph-sdk/src/Facebook/GraphNodes/GraphEdge.php deleted file mode 100644 index f6f4970c..00000000 --- a/vendor/facebook/graph-sdk/src/Facebook/GraphNodes/GraphEdge.php +++ /dev/null @@ -1,252 +0,0 @@ -request = $request; - $this->metaData = $metaData; - $this->parentEdgeEndpoint = $parentEdgeEndpoint; - $this->subclassName = $subclassName; - - parent::__construct($data); - } - - /** - * Gets the parent Graph edge endpoint that generated the list. - * - * @return string|null - */ - public function getParentGraphEdge() - { - return $this->parentEdgeEndpoint; - } - - /** - * Gets the subclass name that the child GraphNode's are cast as. - * - * @return string|null - */ - public function getSubClassName() - { - return $this->subclassName; - } - - /** - * Returns the raw meta data associated with this GraphEdge. - * - * @return array - */ - public function getMetaData() - { - return $this->metaData; - } - - /** - * Returns the next cursor if it exists. - * - * @return string|null - */ - public function getNextCursor() - { - return $this->getCursor('after'); - } - - /** - * Returns the previous cursor if it exists. - * - * @return string|null - */ - public function getPreviousCursor() - { - return $this->getCursor('before'); - } - - /** - * Returns the cursor for a specific direction if it exists. - * - * @param string $direction The direction of the page: after|before - * - * @return string|null - */ - public function getCursor($direction) - { - if (isset($this->metaData['paging']['cursors'][$direction])) { - return $this->metaData['paging']['cursors'][$direction]; - } - - return null; - } - - /** - * Generates a pagination URL based on a cursor. - * - * @param string $direction The direction of the page: next|previous - * - * @return string|null - * - * @throws FacebookSDKException - */ - public function getPaginationUrl($direction) - { - $this->validateForPagination(); - - // Do we have a paging URL? - if (!isset($this->metaData['paging'][$direction])) { - return null; - } - - $pageUrl = $this->metaData['paging'][$direction]; - - return FacebookUrlManipulator::baseGraphUrlEndpoint($pageUrl); - } - - /** - * Validates whether or not we can paginate on this request. - * - * @throws FacebookSDKException - */ - public function validateForPagination() - { - if ($this->request->getMethod() !== 'GET') { - throw new FacebookSDKException('You can only paginate on a GET request.', 720); - } - } - - /** - * Gets the request object needed to make a next|previous page request. - * - * @param string $direction The direction of the page: next|previous - * - * @return FacebookRequest|null - * - * @throws FacebookSDKException - */ - public function getPaginationRequest($direction) - { - $pageUrl = $this->getPaginationUrl($direction); - if (!$pageUrl) { - return null; - } - - $newRequest = clone $this->request; - $newRequest->setEndpoint($pageUrl); - - return $newRequest; - } - - /** - * Gets the request object needed to make a "next" page request. - * - * @return FacebookRequest|null - * - * @throws FacebookSDKException - */ - public function getNextPageRequest() - { - return $this->getPaginationRequest('next'); - } - - /** - * Gets the request object needed to make a "previous" page request. - * - * @return FacebookRequest|null - * - * @throws FacebookSDKException - */ - public function getPreviousPageRequest() - { - return $this->getPaginationRequest('previous'); - } - - /** - * The total number of results according to Graph if it exists. - * - * This will be returned if the summary=true modifier is present in the request. - * - * @return int|null - */ - public function getTotalCount() - { - if (isset($this->metaData['summary']['total_count'])) { - return $this->metaData['summary']['total_count']; - } - - return null; - } - - /** - * @inheritDoc - */ - public function map(\Closure $callback) - { - return new static( - $this->request, - array_map($callback, $this->items, array_keys($this->items)), - $this->metaData, - $this->parentEdgeEndpoint, - $this->subclassName - ); - } -} diff --git a/vendor/facebook/graph-sdk/src/Facebook/GraphNodes/GraphEvent.php b/vendor/facebook/graph-sdk/src/Facebook/GraphNodes/GraphEvent.php deleted file mode 100644 index a470d89f..00000000 --- a/vendor/facebook/graph-sdk/src/Facebook/GraphNodes/GraphEvent.php +++ /dev/null @@ -1,242 +0,0 @@ - '\Facebook\GraphNodes\GraphCoverPhoto', - 'place' => '\Facebook\GraphNodes\GraphPage', - 'picture' => '\Facebook\GraphNodes\GraphPicture', - 'parent_group' => '\Facebook\GraphNodes\GraphGroup', - ]; - - /** - * Returns the `id` (The event ID) as string if present. - * - * @return string|null - */ - public function getId() - { - return $this->getField('id'); - } - - /** - * Returns the `cover` (Cover picture) as GraphCoverPhoto if present. - * - * @return GraphCoverPhoto|null - */ - public function getCover() - { - return $this->getField('cover'); - } - - /** - * Returns the `description` (Long-form description) as string if present. - * - * @return string|null - */ - public function getDescription() - { - return $this->getField('description'); - } - - /** - * Returns the `end_time` (End time, if one has been set) as DateTime if present. - * - * @return \DateTime|null - */ - public function getEndTime() - { - return $this->getField('end_time'); - } - - /** - * Returns the `is_date_only` (Whether the event only has a date specified, but no time) as bool if present. - * - * @return bool|null - */ - public function getIsDateOnly() - { - return $this->getField('is_date_only'); - } - - /** - * Returns the `name` (Event name) as string if present. - * - * @return string|null - */ - public function getName() - { - return $this->getField('name'); - } - - /** - * Returns the `owner` (The profile that created the event) as GraphNode if present. - * - * @return GraphNode|null - */ - public function getOwner() - { - return $this->getField('owner'); - } - - /** - * Returns the `parent_group` (The group the event belongs to) as GraphGroup if present. - * - * @return GraphGroup|null - */ - public function getParentGroup() - { - return $this->getField('parent_group'); - } - - /** - * Returns the `place` (Event Place information) as GraphPage if present. - * - * @return GraphPage|null - */ - public function getPlace() - { - return $this->getField('place'); - } - - /** - * Returns the `privacy` (Who can see the event) as string if present. - * - * @return string|null - */ - public function getPrivacy() - { - return $this->getField('privacy'); - } - - /** - * Returns the `start_time` (Start time) as DateTime if present. - * - * @return \DateTime|null - */ - public function getStartTime() - { - return $this->getField('start_time'); - } - - /** - * Returns the `ticket_uri` (The link users can visit to buy a ticket to this event) as string if present. - * - * @return string|null - */ - public function getTicketUri() - { - return $this->getField('ticket_uri'); - } - - /** - * Returns the `timezone` (Timezone) as string if present. - * - * @return string|null - */ - public function getTimezone() - { - return $this->getField('timezone'); - } - - /** - * Returns the `updated_time` (Last update time) as DateTime if present. - * - * @return \DateTime|null - */ - public function getUpdatedTime() - { - return $this->getField('updated_time'); - } - - /** - * Returns the `picture` (Event picture) as GraphPicture if present. - * - * @return GraphPicture|null - */ - public function getPicture() - { - return $this->getField('picture'); - } - - /** - * Returns the `attending_count` (Number of people attending the event) as int if present. - * - * @return int|null - */ - public function getAttendingCount() - { - return $this->getField('attending_count'); - } - - /** - * Returns the `declined_count` (Number of people who declined the event) as int if present. - * - * @return int|null - */ - public function getDeclinedCount() - { - return $this->getField('declined_count'); - } - - /** - * Returns the `maybe_count` (Number of people who maybe going to the event) as int if present. - * - * @return int|null - */ - public function getMaybeCount() - { - return $this->getField('maybe_count'); - } - - /** - * Returns the `noreply_count` (Number of people who did not reply to the event) as int if present. - * - * @return int|null - */ - public function getNoreplyCount() - { - return $this->getField('noreply_count'); - } - - /** - * Returns the `invited_count` (Number of people invited to the event) as int if present. - * - * @return int|null - */ - public function getInvitedCount() - { - return $this->getField('invited_count'); - } -} diff --git a/vendor/facebook/graph-sdk/src/Facebook/GraphNodes/GraphGroup.php b/vendor/facebook/graph-sdk/src/Facebook/GraphNodes/GraphGroup.php deleted file mode 100644 index 6217bd4d..00000000 --- a/vendor/facebook/graph-sdk/src/Facebook/GraphNodes/GraphGroup.php +++ /dev/null @@ -1,170 +0,0 @@ - '\Facebook\GraphNodes\GraphCoverPhoto', - 'venue' => '\Facebook\GraphNodes\GraphLocation', - ]; - - /** - * Returns the `id` (The Group ID) as string if present. - * - * @return string|null - */ - public function getId() - { - return $this->getField('id'); - } - - /** - * Returns the `cover` (The cover photo of the Group) as GraphCoverPhoto if present. - * - * @return GraphCoverPhoto|null - */ - public function getCover() - { - return $this->getField('cover'); - } - - /** - * Returns the `description` (A brief description of the Group) as string if present. - * - * @return string|null - */ - public function getDescription() - { - return $this->getField('description'); - } - - /** - * Returns the `email` (The email address to upload content to the Group. Only current members of the Group can use this) as string if present. - * - * @return string|null - */ - public function getEmail() - { - return $this->getField('email'); - } - - /** - * Returns the `icon` (The URL for the Group's icon) as string if present. - * - * @return string|null - */ - public function getIcon() - { - return $this->getField('icon'); - } - - /** - * Returns the `link` (The Group's website) as string if present. - * - * @return string|null - */ - public function getLink() - { - return $this->getField('link'); - } - - /** - * Returns the `name` (The name of the Group) as string if present. - * - * @return string|null - */ - public function getName() - { - return $this->getField('name'); - } - - /** - * Returns the `member_request_count` (Number of people asking to join the group.) as int if present. - * - * @return int|null - */ - public function getMemberRequestCount() - { - return $this->getField('member_request_count'); - } - - /** - * Returns the `owner` (The profile that created this Group) as GraphNode if present. - * - * @return GraphNode|null - */ - public function getOwner() - { - return $this->getField('owner'); - } - - /** - * Returns the `parent` (The parent Group of this Group, if it exists) as GraphNode if present. - * - * @return GraphNode|null - */ - public function getParent() - { - return $this->getField('parent'); - } - - /** - * Returns the `privacy` (The privacy setting of the Group) as string if present. - * - * @return string|null - */ - public function getPrivacy() - { - return $this->getField('privacy'); - } - - /** - * Returns the `updated_time` (The last time the Group was updated (this includes changes in the Group's properties and changes in posts and comments if user can see them)) as \DateTime if present. - * - * @return \DateTime|null - */ - public function getUpdatedTime() - { - return $this->getField('updated_time'); - } - - /** - * Returns the `venue` (The location for the Group) as GraphLocation if present. - * - * @return GraphLocation|null - */ - public function getVenue() - { - return $this->getField('venue'); - } -} diff --git a/vendor/facebook/graph-sdk/src/Facebook/GraphNodes/GraphList.php b/vendor/facebook/graph-sdk/src/Facebook/GraphNodes/GraphList.php deleted file mode 100644 index 3dfbd497..00000000 --- a/vendor/facebook/graph-sdk/src/Facebook/GraphNodes/GraphList.php +++ /dev/null @@ -1,36 +0,0 @@ -getField('street'); - } - - /** - * Returns the city component of the location - * - * @return string|null - */ - public function getCity() - { - return $this->getField('city'); - } - - /** - * Returns the state component of the location - * - * @return string|null - */ - public function getState() - { - return $this->getField('state'); - } - - /** - * Returns the country component of the location - * - * @return string|null - */ - public function getCountry() - { - return $this->getField('country'); - } - - /** - * Returns the zipcode component of the location - * - * @return string|null - */ - public function getZip() - { - return $this->getField('zip'); - } - - /** - * Returns the latitude component of the location - * - * @return float|null - */ - public function getLatitude() - { - return $this->getField('latitude'); - } - - /** - * Returns the street component of the location - * - * @return float|null - */ - public function getLongitude() - { - return $this->getField('longitude'); - } -} diff --git a/vendor/facebook/graph-sdk/src/Facebook/GraphNodes/GraphNode.php b/vendor/facebook/graph-sdk/src/Facebook/GraphNodes/GraphNode.php deleted file mode 100644 index 061e7449..00000000 --- a/vendor/facebook/graph-sdk/src/Facebook/GraphNodes/GraphNode.php +++ /dev/null @@ -1,197 +0,0 @@ -castItems($data)); - } - - /** - * Iterates over an array and detects the types each node - * should be cast to and returns all the items as an array. - * - * @TODO Add auto-casting to AccessToken entities. - * - * @param array $data The array to iterate over. - * - * @return array - */ - public function castItems(array $data) - { - $items = []; - - foreach ($data as $k => $v) { - if ($this->shouldCastAsDateTime($k) - && (is_numeric($v) - || $this->isIso8601DateString($v)) - ) { - $items[$k] = $this->castToDateTime($v); - } elseif ($k === 'birthday') { - $items[$k] = $this->castToBirthday($v); - } else { - $items[$k] = $v; - } - } - - return $items; - } - - /** - * Uncasts any auto-casted datatypes. - * Basically the reverse of castItems(). - * - * @return array - */ - public function uncastItems() - { - $items = $this->asArray(); - - return array_map(function ($v) { - if ($v instanceof \DateTime) { - return $v->format(\DateTime::ISO8601); - } - - return $v; - }, $items); - } - - /** - * Get the collection of items as JSON. - * - * @param int $options - * - * @return string - */ - public function asJson($options = 0) - { - return json_encode($this->uncastItems(), $options); - } - - /** - * Detects an ISO 8601 formatted string. - * - * @param string $string - * - * @return boolean - * - * @see https://developers.facebook.com/docs/graph-api/using-graph-api/#readmodifiers - * @see http://www.cl.cam.ac.uk/~mgk25/iso-time.html - * @see http://en.wikipedia.org/wiki/ISO_8601 - */ - public function isIso8601DateString($string) - { - // This insane regex was yoinked from here: - // http://www.pelagodesign.com/blog/2009/05/20/iso-8601-date-validation-that-doesnt-suck/ - // ...and I'm all like: - // http://thecodinglove.com/post/95378251969/when-code-works-and-i-dont-know-why - $crazyInsaneRegexThatSomehowDetectsIso8601 = '/^([\+-]?\d{4}(?!\d{2}\b))' - . '((-?)((0[1-9]|1[0-2])(\3([12]\d|0[1-9]|3[01]))?' - . '|W([0-4]\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\d' - . '|[12]\d{2}|3([0-5]\d|6[1-6])))([T\s]((([01]\d|2[0-3])' - . '((:?)[0-5]\d)?|24\:?00)([\.,]\d+(?!:))?)?(\17[0-5]\d' - . '([\.,]\d+)?)?([zZ]|([\+-])([01]\d|2[0-3]):?([0-5]\d)?)?)?)?$/'; - - return preg_match($crazyInsaneRegexThatSomehowDetectsIso8601, $string) === 1; - } - - /** - * Determines if a value from Graph should be cast to DateTime. - * - * @param string $key - * - * @return boolean - */ - public function shouldCastAsDateTime($key) - { - return in_array($key, [ - 'created_time', - 'updated_time', - 'start_time', - 'end_time', - 'backdated_time', - 'issued_at', - 'expires_at', - 'publish_time' - ], true); - } - - /** - * Casts a date value from Graph to DateTime. - * - * @param int|string $value - * - * @return \DateTime - */ - public function castToDateTime($value) - { - if (is_int($value)) { - $dt = new \DateTime(); - $dt->setTimestamp($value); - } else { - $dt = new \DateTime($value); - } - - return $dt; - } - - /** - * Casts a birthday value from Graph to Birthday - * - * @param string $value - * - * @return Birthday - */ - public function castToBirthday($value) - { - return new Birthday($value); - } - - /** - * Getter for $graphObjectMap. - * - * @return array - */ - public static function getObjectMap() - { - return static::$graphObjectMap; - } -} diff --git a/vendor/facebook/graph-sdk/src/Facebook/GraphNodes/GraphNodeFactory.php b/vendor/facebook/graph-sdk/src/Facebook/GraphNodes/GraphNodeFactory.php deleted file mode 100644 index 6a370919..00000000 --- a/vendor/facebook/graph-sdk/src/Facebook/GraphNodes/GraphNodeFactory.php +++ /dev/null @@ -1,392 +0,0 @@ -response = $response; - $this->decodedBody = $response->getDecodedBody(); - } - - /** - * Tries to convert a FacebookResponse entity into a GraphNode. - * - * @param string|null $subclassName The GraphNode sub class to cast to. - * - * @return GraphNode - * - * @throws FacebookSDKException - */ - public function makeGraphNode($subclassName = null) - { - $this->validateResponseAsArray(); - $this->validateResponseCastableAsGraphNode(); - - return $this->castAsGraphNodeOrGraphEdge($this->decodedBody, $subclassName); - } - - /** - * Convenience method for creating a GraphAchievement collection. - * - * @return GraphAchievement - * - * @throws FacebookSDKException - */ - public function makeGraphAchievement() - { - return $this->makeGraphNode(static::BASE_GRAPH_OBJECT_PREFIX . 'GraphAchievement'); - } - - /** - * Convenience method for creating a GraphAlbum collection. - * - * @return GraphAlbum - * - * @throws FacebookSDKException - */ - public function makeGraphAlbum() - { - return $this->makeGraphNode(static::BASE_GRAPH_OBJECT_PREFIX . 'GraphAlbum'); - } - - /** - * Convenience method for creating a GraphPage collection. - * - * @return GraphPage - * - * @throws FacebookSDKException - */ - public function makeGraphPage() - { - return $this->makeGraphNode(static::BASE_GRAPH_OBJECT_PREFIX . 'GraphPage'); - } - - /** - * Convenience method for creating a GraphSessionInfo collection. - * - * @return GraphSessionInfo - * - * @throws FacebookSDKException - */ - public function makeGraphSessionInfo() - { - return $this->makeGraphNode(static::BASE_GRAPH_OBJECT_PREFIX . 'GraphSessionInfo'); - } - - /** - * Convenience method for creating a GraphUser collection. - * - * @return GraphUser - * - * @throws FacebookSDKException - */ - public function makeGraphUser() - { - return $this->makeGraphNode(static::BASE_GRAPH_OBJECT_PREFIX . 'GraphUser'); - } - - /** - * Convenience method for creating a GraphEvent collection. - * - * @return GraphEvent - * - * @throws FacebookSDKException - */ - public function makeGraphEvent() - { - return $this->makeGraphNode(static::BASE_GRAPH_OBJECT_PREFIX . 'GraphEvent'); - } - - /** - * Convenience method for creating a GraphGroup collection. - * - * @return GraphGroup - * - * @throws FacebookSDKException - */ - public function makeGraphGroup() - { - return $this->makeGraphNode(static::BASE_GRAPH_OBJECT_PREFIX . 'GraphGroup'); - } - - /** - * Tries to convert a FacebookResponse entity into a GraphEdge. - * - * @param string|null $subclassName The GraphNode sub class to cast the list items to. - * @param boolean $auto_prefix Toggle to auto-prefix the subclass name. - * - * @return GraphEdge - * - * @throws FacebookSDKException - */ - public function makeGraphEdge($subclassName = null, $auto_prefix = true) - { - $this->validateResponseAsArray(); - $this->validateResponseCastableAsGraphEdge(); - - if ($subclassName && $auto_prefix) { - $subclassName = static::BASE_GRAPH_OBJECT_PREFIX . $subclassName; - } - - return $this->castAsGraphNodeOrGraphEdge($this->decodedBody, $subclassName); - } - - /** - * Validates the decoded body. - * - * @throws FacebookSDKException - */ - public function validateResponseAsArray() - { - if (!is_array($this->decodedBody)) { - throw new FacebookSDKException('Unable to get response from Graph as array.', 620); - } - } - - /** - * Validates that the return data can be cast as a GraphNode. - * - * @throws FacebookSDKException - */ - public function validateResponseCastableAsGraphNode() - { - if (isset($this->decodedBody['data']) && static::isCastableAsGraphEdge($this->decodedBody['data'])) { - throw new FacebookSDKException( - 'Unable to convert response from Graph to a GraphNode because the response looks like a GraphEdge. Try using GraphNodeFactory::makeGraphEdge() instead.', - 620 - ); - } - } - - /** - * Validates that the return data can be cast as a GraphEdge. - * - * @throws FacebookSDKException - */ - public function validateResponseCastableAsGraphEdge() - { - if (!(isset($this->decodedBody['data']) && static::isCastableAsGraphEdge($this->decodedBody['data']))) { - throw new FacebookSDKException( - 'Unable to convert response from Graph to a GraphEdge because the response does not look like a GraphEdge. Try using GraphNodeFactory::makeGraphNode() instead.', - 620 - ); - } - } - - /** - * Safely instantiates a GraphNode of $subclassName. - * - * @param array $data The array of data to iterate over. - * @param string|null $subclassName The subclass to cast this collection to. - * - * @return GraphNode - * - * @throws FacebookSDKException - */ - public function safelyMakeGraphNode(array $data, $subclassName = null) - { - $subclassName = $subclassName ?: static::BASE_GRAPH_NODE_CLASS; - static::validateSubclass($subclassName); - - // Remember the parent node ID - $parentNodeId = isset($data['id']) ? $data['id'] : null; - - $items = []; - - foreach ($data as $k => $v) { - // Array means could be recurable - if (is_array($v)) { - // Detect any smart-casting from the $graphObjectMap array. - // This is always empty on the GraphNode collection, but subclasses can define - // their own array of smart-casting types. - $graphObjectMap = $subclassName::getObjectMap(); - $objectSubClass = isset($graphObjectMap[$k]) - ? $graphObjectMap[$k] - : null; - - // Could be a GraphEdge or GraphNode - $items[$k] = $this->castAsGraphNodeOrGraphEdge($v, $objectSubClass, $k, $parentNodeId); - } else { - $items[$k] = $v; - } - } - - return new $subclassName($items); - } - - /** - * Takes an array of values and determines how to cast each node. - * - * @param array $data The array of data to iterate over. - * @param string|null $subclassName The subclass to cast this collection to. - * @param string|null $parentKey The key of this data (Graph edge). - * @param string|null $parentNodeId The parent Graph node ID. - * - * @return GraphNode|GraphEdge - * - * @throws FacebookSDKException - */ - public function castAsGraphNodeOrGraphEdge(array $data, $subclassName = null, $parentKey = null, $parentNodeId = null) - { - if (isset($data['data'])) { - // Create GraphEdge - if (static::isCastableAsGraphEdge($data['data'])) { - return $this->safelyMakeGraphEdge($data, $subclassName, $parentKey, $parentNodeId); - } - // Sometimes Graph is a weirdo and returns a GraphNode under the "data" key - $data = $data['data']; - } - - // Create GraphNode - return $this->safelyMakeGraphNode($data, $subclassName); - } - - /** - * Return an array of GraphNode's. - * - * @param array $data The array of data to iterate over. - * @param string|null $subclassName The GraphNode subclass to cast each item in the list to. - * @param string|null $parentKey The key of this data (Graph edge). - * @param string|null $parentNodeId The parent Graph node ID. - * - * @return GraphEdge - * - * @throws FacebookSDKException - */ - public function safelyMakeGraphEdge(array $data, $subclassName = null, $parentKey = null, $parentNodeId = null) - { - if (!isset($data['data'])) { - throw new FacebookSDKException('Cannot cast data to GraphEdge. Expected a "data" key.', 620); - } - - $dataList = []; - foreach ($data['data'] as $graphNode) { - $dataList[] = $this->safelyMakeGraphNode($graphNode, $subclassName); - } - - $metaData = $this->getMetaData($data); - - // We'll need to make an edge endpoint for this in case it's a GraphEdge (for cursor pagination) - $parentGraphEdgeEndpoint = $parentNodeId && $parentKey ? '/' . $parentNodeId . '/' . $parentKey : null; - $className = static::BASE_GRAPH_EDGE_CLASS; - - return new $className($this->response->getRequest(), $dataList, $metaData, $parentGraphEdgeEndpoint, $subclassName); - } - - /** - * Get the meta data from a list in a Graph response. - * - * @param array $data The Graph response. - * - * @return array - */ - public function getMetaData(array $data) - { - unset($data['data']); - - return $data; - } - - /** - * Determines whether or not the data should be cast as a GraphEdge. - * - * @param array $data - * - * @return boolean - */ - public static function isCastableAsGraphEdge(array $data) - { - if ($data === []) { - return true; - } - - // Checks for a sequential numeric array which would be a GraphEdge - return array_keys($data) === range(0, count($data) - 1); - } - - /** - * Ensures that the subclass in question is valid. - * - * @param string $subclassName The GraphNode subclass to validate. - * - * @throws FacebookSDKException - */ - public static function validateSubclass($subclassName) - { - if ($subclassName == static::BASE_GRAPH_NODE_CLASS || is_subclass_of($subclassName, static::BASE_GRAPH_NODE_CLASS)) { - return; - } - - throw new FacebookSDKException('The given subclass "' . $subclassName . '" is not valid. Cannot cast to an object that is not a GraphNode subclass.', 620); - } -} diff --git a/vendor/facebook/graph-sdk/src/Facebook/GraphNodes/GraphObject.php b/vendor/facebook/graph-sdk/src/Facebook/GraphNodes/GraphObject.php deleted file mode 100644 index 0633c405..00000000 --- a/vendor/facebook/graph-sdk/src/Facebook/GraphNodes/GraphObject.php +++ /dev/null @@ -1,36 +0,0 @@ -makeGraphNode($subclassName); - } - - /** - * Convenience method for creating a GraphEvent collection. - * - * @return GraphEvent - * - * @throws FacebookSDKException - */ - public function makeGraphEvent() - { - return $this->makeGraphNode(static::BASE_GRAPH_OBJECT_PREFIX . 'GraphEvent'); - } - - /** - * Tries to convert a FacebookResponse entity into a GraphEdge. - * - * @param string|null $subclassName The GraphNode sub class to cast the list items to. - * @param boolean $auto_prefix Toggle to auto-prefix the subclass name. - * - * @return GraphEdge - * - * @deprecated 5.0.0 GraphObjectFactory has been renamed to GraphNodeFactory - */ - public function makeGraphList($subclassName = null, $auto_prefix = true) - { - return $this->makeGraphEdge($subclassName, $auto_prefix); - } -} diff --git a/vendor/facebook/graph-sdk/src/Facebook/GraphNodes/GraphPage.php b/vendor/facebook/graph-sdk/src/Facebook/GraphNodes/GraphPage.php deleted file mode 100644 index 3dfb0e03..00000000 --- a/vendor/facebook/graph-sdk/src/Facebook/GraphNodes/GraphPage.php +++ /dev/null @@ -1,147 +0,0 @@ - '\Facebook\GraphNodes\GraphPage', - 'global_brand_parent_page' => '\Facebook\GraphNodes\GraphPage', - 'location' => '\Facebook\GraphNodes\GraphLocation', - 'cover' => '\Facebook\GraphNodes\GraphCoverPhoto', - 'picture' => '\Facebook\GraphNodes\GraphPicture', - ]; - - /** - * Returns the ID for the user's page as a string if present. - * - * @return string|null - */ - public function getId() - { - return $this->getField('id'); - } - - /** - * Returns the Category for the user's page as a string if present. - * - * @return string|null - */ - public function getCategory() - { - return $this->getField('category'); - } - - /** - * Returns the Name of the user's page as a string if present. - * - * @return string|null - */ - public function getName() - { - return $this->getField('name'); - } - - /** - * Returns the best available Page on Facebook. - * - * @return GraphPage|null - */ - public function getBestPage() - { - return $this->getField('best_page'); - } - - /** - * Returns the brand's global (parent) Page. - * - * @return GraphPage|null - */ - public function getGlobalBrandParentPage() - { - return $this->getField('global_brand_parent_page'); - } - - /** - * Returns the location of this place. - * - * @return GraphLocation|null - */ - public function getLocation() - { - return $this->getField('location'); - } - - /** - * Returns CoverPhoto of the Page. - * - * @return GraphCoverPhoto|null - */ - public function getCover() - { - return $this->getField('cover'); - } - - /** - * Returns Picture of the Page. - * - * @return GraphPicture|null - */ - public function getPicture() - { - return $this->getField('picture'); - } - - /** - * Returns the page access token for the admin user. - * - * Only available in the `/me/accounts` context. - * - * @return string|null - */ - public function getAccessToken() - { - return $this->getField('access_token'); - } - - /** - * Returns the roles of the page admin user. - * - * Only available in the `/me/accounts` context. - * - * @return array|null - */ - public function getPerms() - { - return $this->getField('perms'); - } -} diff --git a/vendor/facebook/graph-sdk/src/Facebook/GraphNodes/GraphPicture.php b/vendor/facebook/graph-sdk/src/Facebook/GraphNodes/GraphPicture.php deleted file mode 100644 index 10274ec5..00000000 --- a/vendor/facebook/graph-sdk/src/Facebook/GraphNodes/GraphPicture.php +++ /dev/null @@ -1,72 +0,0 @@ -getField('is_silhouette'); - } - - /** - * Returns the url of user picture if it exists - * - * @return string|null - */ - public function getUrl() - { - return $this->getField('url'); - } - - /** - * Returns the width of user picture if it exists - * - * @return int|null - */ - public function getWidth() - { - return $this->getField('width'); - } - - /** - * Returns the height of user picture if it exists - * - * @return int|null - */ - public function getHeight() - { - return $this->getField('height'); - } -} diff --git a/vendor/facebook/graph-sdk/src/Facebook/GraphNodes/GraphSessionInfo.php b/vendor/facebook/graph-sdk/src/Facebook/GraphNodes/GraphSessionInfo.php deleted file mode 100644 index df8dd358..00000000 --- a/vendor/facebook/graph-sdk/src/Facebook/GraphNodes/GraphSessionInfo.php +++ /dev/null @@ -1,102 +0,0 @@ -getField('app_id'); - } - - /** - * Returns the application name the token was issued for. - * - * @return string|null - */ - public function getApplication() - { - return $this->getField('application'); - } - - /** - * Returns the date & time that the token expires. - * - * @return \DateTime|null - */ - public function getExpiresAt() - { - return $this->getField('expires_at'); - } - - /** - * Returns whether the token is valid. - * - * @return boolean - */ - public function getIsValid() - { - return $this->getField('is_valid'); - } - - /** - * Returns the date & time the token was issued at. - * - * @return \DateTime|null - */ - public function getIssuedAt() - { - return $this->getField('issued_at'); - } - - /** - * Returns the scope permissions associated with the token. - * - * @return array - */ - public function getScopes() - { - return $this->getField('scopes'); - } - - /** - * Returns the login id of the user associated with the token. - * - * @return string|null - */ - public function getUserId() - { - return $this->getField('user_id'); - } -} diff --git a/vendor/facebook/graph-sdk/src/Facebook/GraphNodes/GraphUser.php b/vendor/facebook/graph-sdk/src/Facebook/GraphNodes/GraphUser.php deleted file mode 100644 index 6e1ed8f5..00000000 --- a/vendor/facebook/graph-sdk/src/Facebook/GraphNodes/GraphUser.php +++ /dev/null @@ -1,172 +0,0 @@ - '\Facebook\GraphNodes\GraphPage', - 'location' => '\Facebook\GraphNodes\GraphPage', - 'significant_other' => '\Facebook\GraphNodes\GraphUser', - 'picture' => '\Facebook\GraphNodes\GraphPicture', - ]; - - /** - * Returns the ID for the user as a string if present. - * - * @return string|null - */ - public function getId() - { - return $this->getField('id'); - } - - /** - * Returns the name for the user as a string if present. - * - * @return string|null - */ - public function getName() - { - return $this->getField('name'); - } - - /** - * Returns the first name for the user as a string if present. - * - * @return string|null - */ - public function getFirstName() - { - return $this->getField('first_name'); - } - - /** - * Returns the middle name for the user as a string if present. - * - * @return string|null - */ - public function getMiddleName() - { - return $this->getField('middle_name'); - } - - /** - * Returns the last name for the user as a string if present. - * - * @return string|null - */ - public function getLastName() - { - return $this->getField('last_name'); - } - - /** - * Returns the email for the user as a string if present. - * - * @return string|null - */ - public function getEmail() - { - return $this->getField('email'); - } - - /** - * Returns the gender for the user as a string if present. - * - * @return string|null - */ - public function getGender() - { - return $this->getField('gender'); - } - - /** - * Returns the Facebook URL for the user as a string if available. - * - * @return string|null - */ - public function getLink() - { - return $this->getField('link'); - } - - /** - * Returns the users birthday, if available. - * - * @return Birthday|null - */ - public function getBirthday() - { - return $this->getField('birthday'); - } - - /** - * Returns the current location of the user as a GraphPage. - * - * @return GraphPage|null - */ - public function getLocation() - { - return $this->getField('location'); - } - - /** - * Returns the current location of the user as a GraphPage. - * - * @return GraphPage|null - */ - public function getHometown() - { - return $this->getField('hometown'); - } - - /** - * Returns the current location of the user as a GraphUser. - * - * @return GraphUser|null - */ - public function getSignificantOther() - { - return $this->getField('significant_other'); - } - - /** - * Returns the picture of the user as a GraphPicture - * - * @return GraphPicture|null - */ - public function getPicture() - { - return $this->getField('picture'); - } -} diff --git a/vendor/facebook/graph-sdk/src/Facebook/Helpers/FacebookCanvasHelper.php b/vendor/facebook/graph-sdk/src/Facebook/Helpers/FacebookCanvasHelper.php deleted file mode 100644 index 7f3466ff..00000000 --- a/vendor/facebook/graph-sdk/src/Facebook/Helpers/FacebookCanvasHelper.php +++ /dev/null @@ -1,52 +0,0 @@ -signedRequest ? $this->signedRequest->get('app_data') : null; - } - - /** - * Get raw signed request from POST. - * - * @return string|null - */ - public function getRawSignedRequest() - { - return $this->getRawSignedRequestFromPost() ?: null; - } -} diff --git a/vendor/facebook/graph-sdk/src/Facebook/Helpers/FacebookJavaScriptHelper.php b/vendor/facebook/graph-sdk/src/Facebook/Helpers/FacebookJavaScriptHelper.php deleted file mode 100644 index 01a76b8b..00000000 --- a/vendor/facebook/graph-sdk/src/Facebook/Helpers/FacebookJavaScriptHelper.php +++ /dev/null @@ -1,42 +0,0 @@ -getRawSignedRequestFromCookie(); - } -} diff --git a/vendor/facebook/graph-sdk/src/Facebook/Helpers/FacebookPageTabHelper.php b/vendor/facebook/graph-sdk/src/Facebook/Helpers/FacebookPageTabHelper.php deleted file mode 100644 index da2c356c..00000000 --- a/vendor/facebook/graph-sdk/src/Facebook/Helpers/FacebookPageTabHelper.php +++ /dev/null @@ -1,95 +0,0 @@ -signedRequest) { - return; - } - - $this->pageData = $this->signedRequest->get('page'); - } - - /** - * Returns a value from the page data. - * - * @param string $key - * @param mixed|null $default - * - * @return mixed|null - */ - public function getPageData($key, $default = null) - { - if (isset($this->pageData[$key])) { - return $this->pageData[$key]; - } - - return $default; - } - - /** - * Returns true if the user is an admin. - * - * @return boolean - */ - public function isAdmin() - { - return $this->getPageData('admin') === true; - } - - /** - * Returns the page id if available. - * - * @return string|null - */ - public function getPageId() - { - return $this->getPageData('id'); - } -} diff --git a/vendor/facebook/graph-sdk/src/Facebook/Helpers/FacebookRedirectLoginHelper.php b/vendor/facebook/graph-sdk/src/Facebook/Helpers/FacebookRedirectLoginHelper.php deleted file mode 100644 index 3240ba81..00000000 --- a/vendor/facebook/graph-sdk/src/Facebook/Helpers/FacebookRedirectLoginHelper.php +++ /dev/null @@ -1,333 +0,0 @@ -oAuth2Client = $oAuth2Client; - $this->persistentDataHandler = $persistentDataHandler ?: new FacebookSessionPersistentDataHandler(); - $this->urlDetectionHandler = $urlHandler ?: new FacebookUrlDetectionHandler(); - $this->pseudoRandomStringGenerator = PseudoRandomStringGeneratorFactory::createPseudoRandomStringGenerator($prsg); - } - - /** - * Returns the persistent data handler. - * - * @return PersistentDataInterface - */ - public function getPersistentDataHandler() - { - return $this->persistentDataHandler; - } - - /** - * Returns the URL detection handler. - * - * @return UrlDetectionInterface - */ - public function getUrlDetectionHandler() - { - return $this->urlDetectionHandler; - } - - /** - * Returns the cryptographically secure pseudo-random string generator. - * - * @return PseudoRandomStringGeneratorInterface - */ - public function getPseudoRandomStringGenerator() - { - return $this->pseudoRandomStringGenerator; - } - - /** - * Stores CSRF state and returns a URL to which the user should be sent to in order to continue the login process with Facebook. - * - * @param string $redirectUrl The URL Facebook should redirect users to after login. - * @param array $scope List of permissions to request during login. - * @param array $params An array of parameters to generate URL. - * @param string $separator The separator to use in http_build_query(). - * - * @return string - */ - private function makeUrl($redirectUrl, array $scope, array $params = [], $separator = '&') - { - $state = $this->persistentDataHandler->get('state') ?: $this->pseudoRandomStringGenerator->getPseudoRandomString(static::CSRF_LENGTH); - $this->persistentDataHandler->set('state', $state); - - return $this->oAuth2Client->getAuthorizationUrl($redirectUrl, $state, $scope, $params, $separator); - } - - /** - * Returns the URL to send the user in order to login to Facebook. - * - * @param string $redirectUrl The URL Facebook should redirect users to after login. - * @param array $scope List of permissions to request during login. - * @param string $separator The separator to use in http_build_query(). - * - * @return string - */ - public function getLoginUrl($redirectUrl, array $scope = [], $separator = '&') - { - return $this->makeUrl($redirectUrl, $scope, [], $separator); - } - - /** - * Returns the URL to send the user in order to log out of Facebook. - * - * @param AccessToken|string $accessToken The access token that will be logged out. - * @param string $next The url Facebook should redirect the user to after a successful logout. - * @param string $separator The separator to use in http_build_query(). - * - * @return string - * - * @throws FacebookSDKException - */ - public function getLogoutUrl($accessToken, $next, $separator = '&') - { - if (!$accessToken instanceof AccessToken) { - $accessToken = new AccessToken($accessToken); - } - - if ($accessToken->isAppAccessToken()) { - throw new FacebookSDKException('Cannot generate a logout URL with an app access token.', 722); - } - - $params = [ - 'next' => $next, - 'access_token' => $accessToken->getValue(), - ]; - - return 'https://www.facebook.com/logout.php?' . http_build_query($params, null, $separator); - } - - /** - * Returns the URL to send the user in order to login to Facebook with permission(s) to be re-asked. - * - * @param string $redirectUrl The URL Facebook should redirect users to after login. - * @param array $scope List of permissions to request during login. - * @param string $separator The separator to use in http_build_query(). - * - * @return string - */ - public function getReRequestUrl($redirectUrl, array $scope = [], $separator = '&') - { - $params = ['auth_type' => 'rerequest']; - - return $this->makeUrl($redirectUrl, $scope, $params, $separator); - } - - /** - * Returns the URL to send the user in order to login to Facebook with user to be re-authenticated. - * - * @param string $redirectUrl The URL Facebook should redirect users to after login. - * @param array $scope List of permissions to request during login. - * @param string $separator The separator to use in http_build_query(). - * - * @return string - */ - public function getReAuthenticationUrl($redirectUrl, array $scope = [], $separator = '&') - { - $params = ['auth_type' => 'reauthenticate']; - - return $this->makeUrl($redirectUrl, $scope, $params, $separator); - } - - /** - * Takes a valid code from a login redirect, and returns an AccessToken entity. - * - * @param string|null $redirectUrl The redirect URL. - * - * @return AccessToken|null - * - * @throws FacebookSDKException - */ - public function getAccessToken($redirectUrl = null) - { - if (!$code = $this->getCode()) { - return null; - } - - $this->validateCsrf(); - $this->resetCsrf(); - - $redirectUrl = $redirectUrl ?: $this->urlDetectionHandler->getCurrentUrl(); - // At minimum we need to remove the 'state' and 'code' params - $redirectUrl = FacebookUrlManipulator::removeParamsFromUrl($redirectUrl, ['code', 'state']); - - return $this->oAuth2Client->getAccessTokenFromCode($code, $redirectUrl); - } - - /** - * Validate the request against a cross-site request forgery. - * - * @throws FacebookSDKException - */ - protected function validateCsrf() - { - $state = $this->getState(); - if (!$state) { - throw new FacebookSDKException('Cross-site request forgery validation failed. Required GET param "state" missing.'); - } - $savedState = $this->persistentDataHandler->get('state'); - if (!$savedState) { - throw new FacebookSDKException('Cross-site request forgery validation failed. Required param "state" missing from persistent data.'); - } - - if (\hash_equals($savedState, $state)) { - return; - } - - throw new FacebookSDKException('Cross-site request forgery validation failed. The "state" param from the URL and session do not match.'); - } - - /** - * Resets the CSRF so that it doesn't get reused. - */ - private function resetCsrf() - { - $this->persistentDataHandler->set('state', null); - } - - /** - * Return the code. - * - * @return string|null - */ - protected function getCode() - { - return $this->getInput('code'); - } - - /** - * Return the state. - * - * @return string|null - */ - protected function getState() - { - return $this->getInput('state'); - } - - /** - * Return the error code. - * - * @return string|null - */ - public function getErrorCode() - { - return $this->getInput('error_code'); - } - - /** - * Returns the error. - * - * @return string|null - */ - public function getError() - { - return $this->getInput('error'); - } - - /** - * Returns the error reason. - * - * @return string|null - */ - public function getErrorReason() - { - return $this->getInput('error_reason'); - } - - /** - * Returns the error description. - * - * @return string|null - */ - public function getErrorDescription() - { - return $this->getInput('error_description'); - } - - /** - * Returns a value from a GET param. - * - * @param string $key - * - * @return string|null - */ - private function getInput($key) - { - return isset($_GET[$key]) ? $_GET[$key] : null; - } -} diff --git a/vendor/facebook/graph-sdk/src/Facebook/Helpers/FacebookSignedRequestFromInputHelper.php b/vendor/facebook/graph-sdk/src/Facebook/Helpers/FacebookSignedRequestFromInputHelper.php deleted file mode 100644 index 4044da10..00000000 --- a/vendor/facebook/graph-sdk/src/Facebook/Helpers/FacebookSignedRequestFromInputHelper.php +++ /dev/null @@ -1,166 +0,0 @@ -app = $app; - $graphVersion = $graphVersion ?: Facebook::DEFAULT_GRAPH_VERSION; - $this->oAuth2Client = new OAuth2Client($this->app, $client, $graphVersion); - - $this->instantiateSignedRequest(); - } - - /** - * Instantiates a new SignedRequest entity. - * - * @param string|null - */ - public function instantiateSignedRequest($rawSignedRequest = null) - { - $rawSignedRequest = $rawSignedRequest ?: $this->getRawSignedRequest(); - - if (!$rawSignedRequest) { - return; - } - - $this->signedRequest = new SignedRequest($this->app, $rawSignedRequest); - } - - /** - * Returns an AccessToken entity from the signed request. - * - * @return AccessToken|null - * - * @throws \Facebook\Exceptions\FacebookSDKException - */ - public function getAccessToken() - { - if ($this->signedRequest && $this->signedRequest->hasOAuthData()) { - $code = $this->signedRequest->get('code'); - $accessToken = $this->signedRequest->get('oauth_token'); - - if ($code && !$accessToken) { - return $this->oAuth2Client->getAccessTokenFromCode($code); - } - - $expiresAt = $this->signedRequest->get('expires', 0); - - return new AccessToken($accessToken, $expiresAt); - } - - return null; - } - - /** - * Returns the SignedRequest entity. - * - * @return SignedRequest|null - */ - public function getSignedRequest() - { - return $this->signedRequest; - } - - /** - * Returns the user_id if available. - * - * @return string|null - */ - public function getUserId() - { - return $this->signedRequest ? $this->signedRequest->getUserId() : null; - } - - /** - * Get raw signed request from input. - * - * @return string|null - */ - abstract public function getRawSignedRequest(); - - /** - * Get raw signed request from POST input. - * - * @return string|null - */ - public function getRawSignedRequestFromPost() - { - if (isset($_POST['signed_request'])) { - return $_POST['signed_request']; - } - - return null; - } - - /** - * Get raw signed request from cookie set from the Javascript SDK. - * - * @return string|null - */ - public function getRawSignedRequestFromCookie() - { - if (isset($_COOKIE['fbsr_' . $this->app->getId()])) { - return $_COOKIE['fbsr_' . $this->app->getId()]; - } - - return null; - } -} diff --git a/vendor/facebook/graph-sdk/src/Facebook/Http/GraphRawResponse.php b/vendor/facebook/graph-sdk/src/Facebook/Http/GraphRawResponse.php deleted file mode 100644 index 7016f103..00000000 --- a/vendor/facebook/graph-sdk/src/Facebook/Http/GraphRawResponse.php +++ /dev/null @@ -1,139 +0,0 @@ -httpResponseCode = (int)$httpStatusCode; - } - - if (is_array($headers)) { - $this->headers = $headers; - } else { - $this->setHeadersFromString($headers); - } - - $this->body = $body; - } - - /** - * Return the response headers. - * - * @return array - */ - public function getHeaders() - { - return $this->headers; - } - - /** - * Return the body of the response. - * - * @return string - */ - public function getBody() - { - return $this->body; - } - - /** - * Return the HTTP response code. - * - * @return int - */ - public function getHttpResponseCode() - { - return $this->httpResponseCode; - } - - /** - * Sets the HTTP response code from a raw header. - * - * @param string $rawResponseHeader - */ - public function setHttpResponseCodeFromHeader($rawResponseHeader) - { -// preg_match('|HTTP/\d\.\d\s+(\d+)\s+.*|', $rawResponseHeader, $match); - preg_match('|HTTP/\d\s+(\d+)\s+.*|', $rawResponseHeader, $match); - $this->httpResponseCode = (int)$match[1]; - } - - /** - * Parse the raw headers and set as an array. - * - * @param string $rawHeaders The raw headers from the response. - */ - protected function setHeadersFromString($rawHeaders) - { - // Normalize line breaks - $rawHeaders = str_replace("\r\n", "\n", $rawHeaders); - - // There will be multiple headers if a 301 was followed - // or a proxy was followed, etc - $headerCollection = explode("\n\n", trim($rawHeaders)); - // We just want the last response (at the end) - $rawHeader = array_pop($headerCollection); - - $headerComponents = explode("\n", $rawHeader); - - foreach ($headerComponents as $line) { - if (strpos($line, ': ') === false) { - $this->setHttpResponseCodeFromHeader($line); - } else { - list($key, $value) = explode(': ', $line, 2); - $this->headers[$key] = $value; - } - } - } -} diff --git a/vendor/facebook/graph-sdk/src/Facebook/Http/RequestBodyInterface.php b/vendor/facebook/graph-sdk/src/Facebook/Http/RequestBodyInterface.php deleted file mode 100644 index 1c03f4fd..00000000 --- a/vendor/facebook/graph-sdk/src/Facebook/Http/RequestBodyInterface.php +++ /dev/null @@ -1,39 +0,0 @@ -params = $params; - $this->files = $files; - $this->boundary = $boundary ?: uniqid(); - } - - /** - * @inheritdoc - */ - public function getBody() - { - $body = ''; - - // Compile normal params - $params = $this->getNestedParams($this->params); - foreach ($params as $k => $v) { - $body .= $this->getParamString($k, $v); - } - - // Compile files - foreach ($this->files as $k => $v) { - $body .= $this->getFileString($k, $v); - } - - // Peace out - $body .= "--{$this->boundary}--\r\n"; - - return $body; - } - - /** - * Get the boundary - * - * @return string - */ - public function getBoundary() - { - return $this->boundary; - } - - /** - * Get the string needed to transfer a file. - * - * @param string $name - * @param FacebookFile $file - * - * @return string - */ - private function getFileString($name, FacebookFile $file) - { - return sprintf( - "--%s\r\nContent-Disposition: form-data; name=\"%s\"; filename=\"%s\"%s\r\n\r\n%s\r\n", - $this->boundary, - $name, - $file->getFileName(), - $this->getFileHeaders($file), - $file->getContents() - ); - } - - /** - * Get the string needed to transfer a POST field. - * - * @param string $name - * @param string $value - * - * @return string - */ - private function getParamString($name, $value) - { - return sprintf( - "--%s\r\nContent-Disposition: form-data; name=\"%s\"\r\n\r\n%s\r\n", - $this->boundary, - $name, - $value - ); - } - - /** - * Returns the params as an array of nested params. - * - * @param array $params - * - * @return array - */ - private function getNestedParams(array $params) - { - $query = http_build_query($params, null, '&'); - $params = explode('&', $query); - $result = []; - - foreach ($params as $param) { - list($key, $value) = explode('=', $param, 2); - $result[urldecode($key)] = urldecode($value); - } - - return $result; - } - - /** - * Get the headers needed before transferring the content of a POST file. - * - * @param FacebookFile $file - * - * @return string - */ - protected function getFileHeaders(FacebookFile $file) - { - return "\r\nContent-Type: {$file->getMimetype()}"; - } -} diff --git a/vendor/facebook/graph-sdk/src/Facebook/Http/RequestBodyUrlEncoded.php b/vendor/facebook/graph-sdk/src/Facebook/Http/RequestBodyUrlEncoded.php deleted file mode 100644 index c1e35f43..00000000 --- a/vendor/facebook/graph-sdk/src/Facebook/Http/RequestBodyUrlEncoded.php +++ /dev/null @@ -1,55 +0,0 @@ -params = $params; - } - - /** - * @inheritdoc - */ - public function getBody() - { - return http_build_query($this->params, null, '&'); - } -} diff --git a/vendor/facebook/graph-sdk/src/Facebook/HttpClients/FacebookCurl.php b/vendor/facebook/graph-sdk/src/Facebook/HttpClients/FacebookCurl.php deleted file mode 100644 index 28e4ba59..00000000 --- a/vendor/facebook/graph-sdk/src/Facebook/HttpClients/FacebookCurl.php +++ /dev/null @@ -1,129 +0,0 @@ -curl = curl_init(); - } - - /** - * Set a curl option - * - * @param $key - * @param $value - */ - public function setopt($key, $value) - { - curl_setopt($this->curl, $key, $value); - } - - /** - * Set an array of options to a curl resource - * - * @param array $options - */ - public function setoptArray(array $options) - { - curl_setopt_array($this->curl, $options); - } - - /** - * Send a curl request - * - * @return mixed - */ - public function exec() - { - return curl_exec($this->curl); - } - - /** - * Return the curl error number - * - * @return int - */ - public function errno() - { - return curl_errno($this->curl); - } - - /** - * Return the curl error message - * - * @return string - */ - public function error() - { - return curl_error($this->curl); - } - - /** - * Get info from a curl reference - * - * @param $type - * - * @return mixed - */ - public function getinfo($type) - { - return curl_getinfo($this->curl, $type); - } - - /** - * Get the currently installed curl version - * - * @return array - */ - public function version() - { - return curl_version(); - } - - /** - * Close the resource connection to curl - */ - public function close() - { - curl_close($this->curl); - } -} diff --git a/vendor/facebook/graph-sdk/src/Facebook/HttpClients/FacebookCurlHttpClient.php b/vendor/facebook/graph-sdk/src/Facebook/HttpClients/FacebookCurlHttpClient.php deleted file mode 100644 index 343e6229..00000000 --- a/vendor/facebook/graph-sdk/src/Facebook/HttpClients/FacebookCurlHttpClient.php +++ /dev/null @@ -1,163 +0,0 @@ -facebookCurl = $facebookCurl ?: new FacebookCurl(); - } - - /** - * @inheritdoc - */ - public function send($url, $method, $body, array $headers, $timeOut) - { - $this->openConnection($url, $method, $body, $headers, $timeOut); - $this->sendRequest(); - - if ($curlErrorCode = $this->facebookCurl->errno()) { - throw new FacebookSDKException($this->facebookCurl->error(), $curlErrorCode); - } - // Separate the raw headers from the raw body - list($rawHeaders, $rawBody) = $this->extractResponseHeadersAndBody(); - - $this->closeConnection(); - $response = new GraphRawResponse($rawHeaders, $rawBody); - - return $response; - } - - /** - * Opens a new curl connection. - * - * @param string $url The endpoint to send the request to. - * @param string $method The request method. - * @param string $body The body of the request. - * @param array $headers The request headers. - * @param int $timeOut The timeout in seconds for the request. - */ - public function openConnection($url, $method, $body, array $headers, $timeOut) - { - $options = [ - CURLOPT_CUSTOMREQUEST => $method, - CURLOPT_HTTPHEADER => $this->compileRequestHeaders($headers), - CURLOPT_URL => $url, - CURLOPT_CONNECTTIMEOUT => 10, - CURLOPT_TIMEOUT => $timeOut, - CURLOPT_RETURNTRANSFER => true, // Return response as string - CURLOPT_HEADER => true, // Enable header processing - CURLOPT_SSL_VERIFYHOST => 2, - CURLOPT_SSL_VERIFYPEER => true, - CURLOPT_CAINFO => __DIR__ . '/certs/DigiCertHighAssuranceEVRootCA.pem', - ]; - - if ($method !== "GET") { - $options[CURLOPT_POSTFIELDS] = $body; - } - - $this->facebookCurl->init(); - $this->facebookCurl->setoptArray($options); - } - - /** - * Closes an existing curl connection - */ - public function closeConnection() - { - $this->facebookCurl->close(); - } - - /** - * Send the request and get the raw response from curl - */ - public function sendRequest() - { - $this->rawResponse = $this->facebookCurl->exec(); - } - - /** - * Compiles the request headers into a curl-friendly format. - * - * @param array $headers The request headers. - * - * @return array - */ - public function compileRequestHeaders(array $headers) - { - $return = []; - - foreach ($headers as $key => $value) { - $return[] = $key . ': ' . $value; - } - - return $return; - } - - /** - * Extracts the headers and the body into a two-part array - * - * @return array - */ - public function extractResponseHeadersAndBody() - { - $parts = explode("\r\n\r\n", $this->rawResponse); - $rawBody = array_pop($parts); - $rawHeaders = implode("\r\n\r\n", $parts); - - return [trim($rawHeaders), trim($rawBody)]; - } -} diff --git a/vendor/facebook/graph-sdk/src/Facebook/HttpClients/FacebookGuzzleHttpClient.php b/vendor/facebook/graph-sdk/src/Facebook/HttpClients/FacebookGuzzleHttpClient.php deleted file mode 100644 index 8feb7cb6..00000000 --- a/vendor/facebook/graph-sdk/src/Facebook/HttpClients/FacebookGuzzleHttpClient.php +++ /dev/null @@ -1,97 +0,0 @@ -guzzleClient = $guzzleClient ?: new Client(); - } - - /** - * @inheritdoc - */ - public function send($url, $method, $body, array $headers, $timeOut) - { - $options = [ - 'headers' => $headers, - 'body' => $body, - 'timeout' => $timeOut, - 'connect_timeout' => 10, - 'verify' => __DIR__ . '/certs/DigiCertHighAssuranceEVRootCA.pem', - ]; - $request = $this->guzzleClient->createRequest($method, $url, $options); - - try { - $rawResponse = $this->guzzleClient->send($request); - } catch (RequestException $e) { - $rawResponse = $e->getResponse(); - - if ($e->getPrevious() instanceof RingException || !$rawResponse instanceof ResponseInterface) { - throw new FacebookSDKException($e->getMessage(), $e->getCode()); - } - } - - $rawHeaders = $this->getHeadersAsString($rawResponse); - $rawBody = $rawResponse->getBody(); - $httpStatusCode = $rawResponse->getStatusCode(); - - return new GraphRawResponse($rawHeaders, $rawBody, $httpStatusCode); - } - - /** - * Returns the Guzzle array of headers as a string. - * - * @param ResponseInterface $response The Guzzle response. - * - * @return string - */ - public function getHeadersAsString(ResponseInterface $response) - { - $headers = $response->getHeaders(); - $rawHeaders = []; - foreach ($headers as $name => $values) { - $rawHeaders[] = $name . ": " . implode(", ", $values); - } - - return implode("\r\n", $rawHeaders); - } -} diff --git a/vendor/facebook/graph-sdk/src/Facebook/HttpClients/FacebookHttpClientInterface.php b/vendor/facebook/graph-sdk/src/Facebook/HttpClients/FacebookHttpClientInterface.php deleted file mode 100644 index 1fbf953d..00000000 --- a/vendor/facebook/graph-sdk/src/Facebook/HttpClients/FacebookHttpClientInterface.php +++ /dev/null @@ -1,47 +0,0 @@ -stream = stream_context_create($options); - } - - /** - * The response headers from the stream wrapper - * - * @return array - */ - public function getResponseHeaders() - { - return $this->responseHeaders; - } - - /** - * Send a stream wrapped request - * - * @param string $url - * - * @return mixed - */ - public function fileGetContents($url) - { - $rawResponse = file_get_contents($url, false, $this->stream); - $this->responseHeaders = $http_response_header ?: []; - - return $rawResponse; - } -} diff --git a/vendor/facebook/graph-sdk/src/Facebook/HttpClients/FacebookStreamHttpClient.php b/vendor/facebook/graph-sdk/src/Facebook/HttpClients/FacebookStreamHttpClient.php deleted file mode 100644 index 1cdfd539..00000000 --- a/vendor/facebook/graph-sdk/src/Facebook/HttpClients/FacebookStreamHttpClient.php +++ /dev/null @@ -1,94 +0,0 @@ -facebookStream = $facebookStream ?: new FacebookStream(); - } - - /** - * @inheritdoc - */ - public function send($url, $method, $body, array $headers, $timeOut) - { - $options = [ - 'http' => [ - 'method' => $method, - 'header' => $this->compileHeader($headers), - 'content' => $body, - 'timeout' => $timeOut, - 'ignore_errors' => true - ], - 'ssl' => [ - 'verify_peer' => true, - 'verify_peer_name' => true, - 'allow_self_signed' => true, // All root certificates are self-signed - 'cafile' => __DIR__ . '/certs/DigiCertHighAssuranceEVRootCA.pem', - ], - ]; - - $this->facebookStream->streamContextCreate($options); - $rawBody = $this->facebookStream->fileGetContents($url); - $rawHeaders = $this->facebookStream->getResponseHeaders(); - - if ($rawBody === false || empty($rawHeaders)) { - throw new FacebookSDKException('Stream returned an empty response', 660); - } - - $rawHeaders = implode("\r\n", $rawHeaders); - - return new GraphRawResponse($rawHeaders, $rawBody); - } - - /** - * Formats the headers for use in the stream wrapper. - * - * @param array $headers The request headers. - * - * @return string - */ - public function compileHeader(array $headers) - { - $header = []; - foreach ($headers as $k => $v) { - $header[] = $k . ': ' . $v; - } - - return implode("\r\n", $header); - } -} diff --git a/vendor/facebook/graph-sdk/src/Facebook/HttpClients/HttpClientsFactory.php b/vendor/facebook/graph-sdk/src/Facebook/HttpClients/HttpClientsFactory.php deleted file mode 100644 index d9f2a8d3..00000000 --- a/vendor/facebook/graph-sdk/src/Facebook/HttpClients/HttpClientsFactory.php +++ /dev/null @@ -1,99 +0,0 @@ -sessionData[$key]) ? $this->sessionData[$key] : null; - } - - /** - * @inheritdoc - */ - public function set($key, $value) - { - $this->sessionData[$key] = $value; - } -} diff --git a/vendor/facebook/graph-sdk/src/Facebook/PersistentData/FacebookSessionPersistentDataHandler.php b/vendor/facebook/graph-sdk/src/Facebook/PersistentData/FacebookSessionPersistentDataHandler.php deleted file mode 100644 index 9123e3dc..00000000 --- a/vendor/facebook/graph-sdk/src/Facebook/PersistentData/FacebookSessionPersistentDataHandler.php +++ /dev/null @@ -1,76 +0,0 @@ -sessionPrefix . $key])) { - return $_SESSION[$this->sessionPrefix . $key]; - } - - return null; - } - - /** - * @inheritdoc - */ - public function set($key, $value) - { - $_SESSION[$this->sessionPrefix . $key] = $value; - } -} diff --git a/vendor/facebook/graph-sdk/src/Facebook/PersistentData/PersistentDataFactory.php b/vendor/facebook/graph-sdk/src/Facebook/PersistentData/PersistentDataFactory.php deleted file mode 100644 index 18fb8fd5..00000000 --- a/vendor/facebook/graph-sdk/src/Facebook/PersistentData/PersistentDataFactory.php +++ /dev/null @@ -1,65 +0,0 @@ -validateLength($length); - - $binaryString = mcrypt_create_iv($length, MCRYPT_DEV_URANDOM); - - if ($binaryString === false) { - throw new FacebookSDKException( - static::ERROR_MESSAGE . - 'mcrypt_create_iv() returned an error.' - ); - } - - return $this->binToHex($binaryString, $length); - } -} diff --git a/vendor/facebook/graph-sdk/src/Facebook/PseudoRandomString/OpenSslPseudoRandomStringGenerator.php b/vendor/facebook/graph-sdk/src/Facebook/PseudoRandomString/OpenSslPseudoRandomStringGenerator.php deleted file mode 100644 index 4b4276dc..00000000 --- a/vendor/facebook/graph-sdk/src/Facebook/PseudoRandomString/OpenSslPseudoRandomStringGenerator.php +++ /dev/null @@ -1,67 +0,0 @@ -validateLength($length); - - $wasCryptographicallyStrong = false; - $binaryString = openssl_random_pseudo_bytes($length, $wasCryptographicallyStrong); - - if ($binaryString === false) { - throw new FacebookSDKException(static::ERROR_MESSAGE . 'openssl_random_pseudo_bytes() returned an unknown error.'); - } - - if ($wasCryptographicallyStrong !== true) { - throw new FacebookSDKException(static::ERROR_MESSAGE . 'openssl_random_pseudo_bytes() returned a pseudo-random string but it was not cryptographically secure and cannot be used.'); - } - - return $this->binToHex($binaryString, $length); - } -} diff --git a/vendor/facebook/graph-sdk/src/Facebook/PseudoRandomString/PseudoRandomStringGeneratorFactory.php b/vendor/facebook/graph-sdk/src/Facebook/PseudoRandomString/PseudoRandomStringGeneratorFactory.php deleted file mode 100644 index 412f4813..00000000 --- a/vendor/facebook/graph-sdk/src/Facebook/PseudoRandomString/PseudoRandomStringGeneratorFactory.php +++ /dev/null @@ -1,101 +0,0 @@ -validateLength($length); - - return $this->binToHex(random_bytes($length), $length); - } -} diff --git a/vendor/facebook/graph-sdk/src/Facebook/PseudoRandomString/UrandomPseudoRandomStringGenerator.php b/vendor/facebook/graph-sdk/src/Facebook/PseudoRandomString/UrandomPseudoRandomStringGenerator.php deleted file mode 100644 index 5ab434e6..00000000 --- a/vendor/facebook/graph-sdk/src/Facebook/PseudoRandomString/UrandomPseudoRandomStringGenerator.php +++ /dev/null @@ -1,89 +0,0 @@ -validateLength($length); - - $stream = fopen('/dev/urandom', 'rb'); - if (!is_resource($stream)) { - throw new FacebookSDKException( - static::ERROR_MESSAGE . - 'Unable to open stream to /dev/urandom.' - ); - } - - if (!defined('HHVM_VERSION')) { - stream_set_read_buffer($stream, 0); - } - - $binaryString = fread($stream, $length); - fclose($stream); - - if (!$binaryString) { - throw new FacebookSDKException( - static::ERROR_MESSAGE . - 'Stream to /dev/urandom returned no data.' - ); - } - - return $this->binToHex($binaryString, $length); - } -} diff --git a/vendor/facebook/graph-sdk/src/Facebook/SignedRequest.php b/vendor/facebook/graph-sdk/src/Facebook/SignedRequest.php deleted file mode 100644 index 6a175a0a..00000000 --- a/vendor/facebook/graph-sdk/src/Facebook/SignedRequest.php +++ /dev/null @@ -1,326 +0,0 @@ -app = $facebookApp; - - if (!$rawSignedRequest) { - return; - } - - $this->rawSignedRequest = $rawSignedRequest; - - $this->parse(); - } - - /** - * Returns the raw signed request data. - * - * @return string|null - */ - public function getRawSignedRequest() - { - return $this->rawSignedRequest; - } - - /** - * Returns the parsed signed request data. - * - * @return array|null - */ - public function getPayload() - { - return $this->payload; - } - - /** - * Returns a property from the signed request data if available. - * - * @param string $key - * @param mixed|null $default - * - * @return mixed|null - */ - public function get($key, $default = null) - { - if (isset($this->payload[$key])) { - return $this->payload[$key]; - } - - return $default; - } - - /** - * Returns user_id from signed request data if available. - * - * @return string|null - */ - public function getUserId() - { - return $this->get('user_id'); - } - - /** - * Checks for OAuth data in the payload. - * - * @return boolean - */ - public function hasOAuthData() - { - return $this->get('oauth_token') || $this->get('code'); - } - - /** - * Creates a signed request from an array of data. - * - * @param array $payload - * - * @return string - */ - public function make(array $payload) - { - $payload['algorithm'] = isset($payload['algorithm']) ? $payload['algorithm'] : 'HMAC-SHA256'; - $payload['issued_at'] = isset($payload['issued_at']) ? $payload['issued_at'] : time(); - $encodedPayload = $this->base64UrlEncode(json_encode($payload)); - - $hashedSig = $this->hashSignature($encodedPayload); - $encodedSig = $this->base64UrlEncode($hashedSig); - - return $encodedSig . '.' . $encodedPayload; - } - - /** - * Validates and decodes a signed request and saves - * the payload to an array. - */ - protected function parse() - { - list($encodedSig, $encodedPayload) = $this->split(); - - // Signature validation - $sig = $this->decodeSignature($encodedSig); - $hashedSig = $this->hashSignature($encodedPayload); - $this->validateSignature($hashedSig, $sig); - - $this->payload = $this->decodePayload($encodedPayload); - - // Payload validation - $this->validateAlgorithm(); - } - - /** - * Splits a raw signed request into signature and payload. - * - * @return array - * - * @throws FacebookSDKException - */ - protected function split() - { - if (strpos($this->rawSignedRequest, '.') === false) { - throw new FacebookSDKException('Malformed signed request.', 606); - } - - return explode('.', $this->rawSignedRequest, 2); - } - - /** - * Decodes the raw signature from a signed request. - * - * @param string $encodedSig - * - * @return string - * - * @throws FacebookSDKException - */ - protected function decodeSignature($encodedSig) - { - $sig = $this->base64UrlDecode($encodedSig); - - if (!$sig) { - throw new FacebookSDKException('Signed request has malformed encoded signature data.', 607); - } - - return $sig; - } - - /** - * Decodes the raw payload from a signed request. - * - * @param string $encodedPayload - * - * @return array - * - * @throws FacebookSDKException - */ - protected function decodePayload($encodedPayload) - { - $payload = $this->base64UrlDecode($encodedPayload); - - if ($payload) { - $payload = json_decode($payload, true); - } - - if (!is_array($payload)) { - throw new FacebookSDKException('Signed request has malformed encoded payload data.', 607); - } - - return $payload; - } - - /** - * Validates the algorithm used in a signed request. - * - * @throws FacebookSDKException - */ - protected function validateAlgorithm() - { - if ($this->get('algorithm') !== 'HMAC-SHA256') { - throw new FacebookSDKException('Signed request is using the wrong algorithm.', 605); - } - } - - /** - * Hashes the signature used in a signed request. - * - * @param string $encodedData - * - * @return string - * - * @throws FacebookSDKException - */ - protected function hashSignature($encodedData) - { - $hashedSig = hash_hmac( - 'sha256', - $encodedData, - $this->app->getSecret(), - $raw_output = true - ); - - if (!$hashedSig) { - throw new FacebookSDKException('Unable to hash signature from encoded payload data.', 602); - } - - return $hashedSig; - } - - /** - * Validates the signature used in a signed request. - * - * @param string $hashedSig - * @param string $sig - * - * @throws FacebookSDKException - */ - protected function validateSignature($hashedSig, $sig) - { - if (\hash_equals($hashedSig, $sig)) { - return; - } - - throw new FacebookSDKException('Signed request has an invalid signature.', 602); - } - - /** - * Base64 decoding which replaces characters: - * + instead of - - * / instead of _ - * - * @link http://en.wikipedia.org/wiki/Base64#URL_applications - * - * @param string $input base64 url encoded input - * - * @return string decoded string - */ - public function base64UrlDecode($input) - { - $urlDecodedBase64 = strtr($input, '-_', '+/'); - $this->validateBase64($urlDecodedBase64); - - return base64_decode($urlDecodedBase64); - } - - /** - * Base64 encoding which replaces characters: - * + instead of - - * / instead of _ - * - * @link http://en.wikipedia.org/wiki/Base64#URL_applications - * - * @param string $input string to encode - * - * @return string base64 url encoded input - */ - public function base64UrlEncode($input) - { - return strtr(base64_encode($input), '+/', '-_'); - } - - /** - * Validates a base64 string. - * - * @param string $input base64 value to validate - * - * @throws FacebookSDKException - */ - protected function validateBase64($input) - { - if (!preg_match('/^[a-zA-Z0-9\/\r\n+]*={0,2}$/', $input)) { - throw new FacebookSDKException('Signed request contains malformed base64 encoding.', 608); - } - } -} diff --git a/vendor/facebook/graph-sdk/src/Facebook/Url/FacebookUrlDetectionHandler.php b/vendor/facebook/graph-sdk/src/Facebook/Url/FacebookUrlDetectionHandler.php deleted file mode 100644 index 1d134ddc..00000000 --- a/vendor/facebook/graph-sdk/src/Facebook/Url/FacebookUrlDetectionHandler.php +++ /dev/null @@ -1,182 +0,0 @@ -getHttpScheme() . '://' . $this->getHostName() . $this->getServerVar('REQUEST_URI'); - } - - /** - * Get the currently active URL scheme. - * - * @return string - */ - protected function getHttpScheme() - { - return $this->isBehindSsl() ? 'https' : 'http'; - } - - /** - * Tries to detect if the server is running behind an SSL. - * - * @return boolean - */ - protected function isBehindSsl() - { - // Check for proxy first - $protocol = $this->getHeader('X_FORWARDED_PROTO'); - if ($protocol) { - return $this->protocolWithActiveSsl($protocol); - } - - $protocol = $this->getServerVar('HTTPS'); - if ($protocol) { - return $this->protocolWithActiveSsl($protocol); - } - - return (string)$this->getServerVar('SERVER_PORT') === '443'; - } - - /** - * Detects an active SSL protocol value. - * - * @param string $protocol - * - * @return boolean - */ - protected function protocolWithActiveSsl($protocol) - { - $protocol = strtolower((string)$protocol); - - return in_array($protocol, ['on', '1', 'https', 'ssl'], true); - } - - /** - * Tries to detect the host name of the server. - * - * Some elements adapted from - * - * @see https://github.com/symfony/HttpFoundation/blob/master/Request.php - * - * @return string - */ - protected function getHostName() - { - // Check for proxy first - $header = $this->getHeader('X_FORWARDED_HOST'); - if ($header && $this->isValidForwardedHost($header)) { - $elements = explode(',', $header); - $host = $elements[count($elements) - 1]; - } elseif (!$host = $this->getHeader('HOST')) { - if (!$host = $this->getServerVar('SERVER_NAME')) { - $host = $this->getServerVar('SERVER_ADDR'); - } - } - - // trim and remove port number from host - // host is lowercase as per RFC 952/2181 - $host = strtolower(preg_replace('/:\d+$/', '', trim($host))); - - // Port number - $scheme = $this->getHttpScheme(); - $port = $this->getCurrentPort(); - $appendPort = ':' . $port; - - // Don't append port number if a normal port. - if (($scheme == 'http' && $port == '80') || ($scheme == 'https' && $port == '443')) { - $appendPort = ''; - } - - return $host . $appendPort; - } - - protected function getCurrentPort() - { - // Check for proxy first - $port = $this->getHeader('X_FORWARDED_PORT'); - if ($port) { - return (string)$port; - } - - $protocol = (string)$this->getHeader('X_FORWARDED_PROTO'); - if ($protocol === 'https') { - return '443'; - } - - return (string)$this->getServerVar('SERVER_PORT'); - } - - /** - * Returns the a value from the $_SERVER super global. - * - * @param string $key - * - * @return string - */ - protected function getServerVar($key) - { - return isset($_SERVER[$key]) ? $_SERVER[$key] : ''; - } - - /** - * Gets a value from the HTTP request headers. - * - * @param string $key - * - * @return string - */ - protected function getHeader($key) - { - return $this->getServerVar('HTTP_' . $key); - } - - /** - * Checks if the value in X_FORWARDED_HOST is a valid hostname - * Could prevent unintended redirections - * - * @param string $header - * - * @return boolean - */ - protected function isValidForwardedHost($header) - { - $elements = explode(',', $header); - $host = $elements[count($elements) - 1]; - - return preg_match("/^([a-z\d](-*[a-z\d])*)(\.([a-z\d](-*[a-z\d])*))*$/i", $host) //valid chars check - && 0 < strlen($host) && strlen($host) < 254 //overall length check - && preg_match("/^[^\.]{1,63}(\.[^\.]{1,63})*$/", $host); //length of each label - } -} diff --git a/vendor/facebook/graph-sdk/src/Facebook/Url/FacebookUrlManipulator.php b/vendor/facebook/graph-sdk/src/Facebook/Url/FacebookUrlManipulator.php deleted file mode 100644 index daeab9c5..00000000 --- a/vendor/facebook/graph-sdk/src/Facebook/Url/FacebookUrlManipulator.php +++ /dev/null @@ -1,167 +0,0 @@ - 0) { - $query = '?' . http_build_query($params, null, '&'); - } - } - - $scheme = isset($parts['scheme']) ? $parts['scheme'] . '://' : ''; - $host = isset($parts['host']) ? $parts['host'] : ''; - $port = isset($parts['port']) ? ':' . $parts['port'] : ''; - $path = isset($parts['path']) ? $parts['path'] : ''; - $fragment = isset($parts['fragment']) ? '#' . $parts['fragment'] : ''; - - return $scheme . $host . $port . $path . $query . $fragment; - } - - /** - * Gracefully appends params to the URL. - * - * @param string $url The URL that will receive the params. - * @param array $newParams The params to append to the URL. - * - * @return string - */ - public static function appendParamsToUrl($url, array $newParams = []) - { - if (empty($newParams)) { - return $url; - } - - if (strpos($url, '?') === false) { - return $url . '?' . http_build_query($newParams, null, '&'); - } - - list($path, $query) = explode('?', $url, 2); - $existingParams = []; - parse_str($query, $existingParams); - - // Favor params from the original URL over $newParams - $newParams = array_merge($newParams, $existingParams); - - // Sort for a predicable order - ksort($newParams); - - return $path . '?' . http_build_query($newParams, null, '&'); - } - - /** - * Returns the params from a URL in the form of an array. - * - * @param string $url The URL to parse the params from. - * - * @return array - */ - public static function getParamsAsArray($url) - { - $query = parse_url($url, PHP_URL_QUERY); - if (!$query) { - return []; - } - $params = []; - parse_str($query, $params); - - return $params; - } - - /** - * Adds the params of the first URL to the second URL. - * - * Any params that already exist in the second URL will go untouched. - * - * @param string $urlToStealFrom The URL harvest the params from. - * @param string $urlToAddTo The URL that will receive the new params. - * - * @return string The $urlToAddTo with any new params from $urlToStealFrom. - */ - public static function mergeUrlParams($urlToStealFrom, $urlToAddTo) - { - $newParams = static::getParamsAsArray($urlToStealFrom); - // Nothing new to add, return as-is - if (!$newParams) { - return $urlToAddTo; - } - - return static::appendParamsToUrl($urlToAddTo, $newParams); - } - - /** - * Check for a "/" prefix and prepend it if not exists. - * - * @param string|null $string - * - * @return string|null - */ - public static function forceSlashPrefix($string) - { - if (!$string) { - return $string; - } - - return strpos($string, '/') === 0 ? $string : '/' . $string; - } - - /** - * Trims off the hostname and Graph version from a URL. - * - * @param string $urlToTrim The URL the needs the surgery. - * - * @return string The $urlToTrim with the hostname and Graph version removed. - */ - public static function baseGraphUrlEndpoint($urlToTrim) - { - return '/' . preg_replace('/^https:\/\/.+\.facebook\.com(\/v.+?)?\//', '', $urlToTrim); - } -} diff --git a/vendor/facebook/graph-sdk/src/Facebook/Url/UrlDetectionInterface.php b/vendor/facebook/graph-sdk/src/Facebook/Url/UrlDetectionInterface.php deleted file mode 100644 index dca38a0c..00000000 --- a/vendor/facebook/graph-sdk/src/Facebook/Url/UrlDetectionInterface.php +++ /dev/null @@ -1,39 +0,0 @@ -=5.4.0", - "illuminate/contracts": "~5.0" - }, - "require-dev": { - "illuminate/http": "~5.6", - "mockery/mockery": "~1.0", - "phpunit/phpunit": "^6.0" - }, - "autoload": { - "psr-4": { - "Fideloper\\Proxy\\": "src/" - } - }, - "extra": { - "laravel": { - "providers": [ - "Fideloper\\Proxy\\TrustedProxyServiceProvider" - ] - } - }, - "minimum-stability": "dev", - "prefer-stable": true -} diff --git a/vendor/fideloper/proxy/config/trustedproxy.php b/vendor/fideloper/proxy/config/trustedproxy.php deleted file mode 100644 index acda8d51..00000000 --- a/vendor/fideloper/proxy/config/trustedproxy.php +++ /dev/null @@ -1,45 +0,0 @@ - null, // [,], '*' - - /* - * To trust one or more specific proxies that connect - * directly to your server, use an array of IP addresses: - */ - # 'proxies' => ['192.168.1.1'], - - /* - * Or, to trust all proxies that connect - * directly to your server, use a "*" - */ - # 'proxies' => '*', - - /* - * Which headers to use to detect proxy related data (For, Host, Proto, Port) - * - * Options include: - * - * - Illuminate\Http\Request::HEADER_X_FORWARDED_ALL (use all x-forwarded-* headers to establish trust) - * - Illuminate\Http\Request::HEADER_FORWARDED (use the FORWARDED header to establish trust) - * - * @link https://symfony.com/doc/current/deployment/proxies.html - */ - 'headers' => Illuminate\Http\Request::HEADER_X_FORWARDED_ALL, - - -]; diff --git a/vendor/fideloper/proxy/src/TrustProxies.php b/vendor/fideloper/proxy/src/TrustProxies.php deleted file mode 100644 index cf6f5d50..00000000 --- a/vendor/fideloper/proxy/src/TrustProxies.php +++ /dev/null @@ -1,111 +0,0 @@ -config = $config; - } - - /** - * Handle an incoming request. - * - * @param \Illuminate\Http\Request $request - * @param \Closure $next - * - * @throws \Symfony\Component\HttpKernel\Exception\HttpException - * - * @return mixed - */ - public function handle(Request $request, Closure $next) - { - $request::setTrustedProxies([], $this->getTrustedHeaderNames()); // Reset trusted proxies between requests - $this->setTrustedProxyIpAddresses($request); - - return $next($request); - } - - /** - * Sets the trusted proxies on the request to the value of trustedproxy.proxies - * - * @param \Illuminate\Http\Request $request - */ - protected function setTrustedProxyIpAddresses(Request $request) - { - $trustedIps = $this->proxies ?: $this->config->get('trustedproxy.proxies'); - - // Only trust specific IP addresses - if (is_array($trustedIps)) { - return $this->setTrustedProxyIpAddressesToSpecificIps($request, $trustedIps); - } - - // Trust any IP address that calls us - // `**` for backwards compatibility, but is depreciated - if ($trustedIps === '*' || $trustedIps === '**') { - return $this->setTrustedProxyIpAddressesToTheCallingIp($request); - } - } - - /** - * Specify the IP addresses to trust explicitly. - * - * @param \Illuminate\Http\Request $request - * @param array $trustedIps - */ - private function setTrustedProxyIpAddressesToSpecificIps(Request $request, $trustedIps) - { - $request->setTrustedProxies((array) $trustedIps, $this->getTrustedHeaderNames()); - } - - /** - * Set the trusted proxy to be the IP address calling this servers - * - * @param \Illuminate\Http\Request $request - */ - private function setTrustedProxyIpAddressesToTheCallingIp(Request $request) - { - $request->setTrustedProxies([$request->server->get('REMOTE_ADDR')], $this->getTrustedHeaderNames()); - } - - /** - * Retrieve trusted header name(s), falling back to defaults if config not set. - * - * @return array - */ - protected function getTrustedHeaderNames() - { - return $this->headers ?: $this->config->get('trustedproxy.headers'); - } -} diff --git a/vendor/fideloper/proxy/src/TrustedProxyServiceProvider.php b/vendor/fideloper/proxy/src/TrustedProxyServiceProvider.php deleted file mode 100644 index 26f2631a..00000000 --- a/vendor/fideloper/proxy/src/TrustedProxyServiceProvider.php +++ /dev/null @@ -1,41 +0,0 @@ -app instanceof LaravelApplication && $this->app->runningInConsole()) { - $this->publishes([$source => config_path('trustedproxy.php')]); - } elseif ($this->app instanceof LumenApplication) { - $this->app->configure('trustedproxy'); - } - - - if ($this->app instanceof LaravelApplication && ! $this->app->configurationIsCached()) { - $this->mergeConfigFrom($source, 'trustedproxy'); - } - } - - /** - * Register the service provider. - * - * @return void - */ - public function register() - { - // - } -} diff --git a/vendor/filp/whoops/CHANGELOG.md b/vendor/filp/whoops/CHANGELOG.md deleted file mode 100644 index 4bbd620b..00000000 --- a/vendor/filp/whoops/CHANGELOG.md +++ /dev/null @@ -1,13 +0,0 @@ -# 2.1.0 - -* Add a `SystemFacade` to allow clients to override Whoops behavior. -* Show frame arguments in `PrettyPageHandler`. -* Highlight the line with the error. -* Add icons to search on Google and Stack Overflow. - -# 2.0.0 - -Backwards compatibility breaking changes: - -* `Run` class is now `final`. If you inherited from `Run`, please now instead use a custom `SystemFacade` injected into the `Run` constructor, or contribute your changes to our core. -* PHP < 5.5 support dropped. diff --git a/vendor/filp/whoops/LICENSE.md b/vendor/filp/whoops/LICENSE.md deleted file mode 100644 index 80407e71..00000000 --- a/vendor/filp/whoops/LICENSE.md +++ /dev/null @@ -1,19 +0,0 @@ -# The MIT License - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/vendor/filp/whoops/composer.json b/vendor/filp/whoops/composer.json deleted file mode 100644 index 7b2c3a6e..00000000 --- a/vendor/filp/whoops/composer.json +++ /dev/null @@ -1,42 +0,0 @@ -{ - "name": "filp/whoops", - "license": "MIT", - "description": "php error handling for cool kids", - "keywords": ["library", "error", "handling", "exception", "whoops", "throwable"], - "homepage": "https://filp.github.io/whoops/", - "authors": [ - { - "name": "Filipe Dobreira", - "homepage": "https://github.com/filp", - "role": "Developer" - } - ], - "require": { - "php": "^5.5.9 || ^7.0", - "psr/log": "^1.0.1" - }, - "require-dev": { - "phpunit/phpunit": "^4.8.35 || ^5.7", - "mockery/mockery": "^0.9 || ^1.0", - "symfony/var-dumper": "^2.6 || ^3.0 || ^4.0" - }, - "suggest": { - "symfony/var-dumper": "Pretty print complex values better with var-dumper available", - "whoops/soap": "Formats errors as SOAP responses" - }, - "autoload": { - "psr-4": { - "Whoops\\": "src/Whoops/" - } - }, - "autoload-dev": { - "psr-4": { - "Whoops\\": "tests/Whoops/" - } - }, - "extra": { - "branch-alias": { - "dev-master": "2.1-dev" - } - } -} diff --git a/vendor/filp/whoops/src/Whoops/Exception/ErrorException.php b/vendor/filp/whoops/src/Whoops/Exception/ErrorException.php deleted file mode 100644 index d74e8231..00000000 --- a/vendor/filp/whoops/src/Whoops/Exception/ErrorException.php +++ /dev/null @@ -1,17 +0,0 @@ - - */ - -namespace Whoops\Exception; - -use ErrorException as BaseErrorException; - -/** - * Wraps ErrorException; mostly used for typing (at least now) - * to easily cleanup the stack trace of redundant info. - */ -class ErrorException extends BaseErrorException -{ -} diff --git a/vendor/filp/whoops/src/Whoops/Exception/Formatter.php b/vendor/filp/whoops/src/Whoops/Exception/Formatter.php deleted file mode 100644 index e467559a..00000000 --- a/vendor/filp/whoops/src/Whoops/Exception/Formatter.php +++ /dev/null @@ -1,73 +0,0 @@ - - */ - -namespace Whoops\Exception; - -class Formatter -{ - /** - * Returns all basic information about the exception in a simple array - * for further convertion to other languages - * @param Inspector $inspector - * @param bool $shouldAddTrace - * @return array - */ - public static function formatExceptionAsDataArray(Inspector $inspector, $shouldAddTrace) - { - $exception = $inspector->getException(); - $response = [ - 'type' => get_class($exception), - 'message' => $exception->getMessage(), - 'file' => $exception->getFile(), - 'line' => $exception->getLine(), - ]; - - if ($shouldAddTrace) { - $frames = $inspector->getFrames(); - $frameData = []; - - foreach ($frames as $frame) { - /** @var Frame $frame */ - $frameData[] = [ - 'file' => $frame->getFile(), - 'line' => $frame->getLine(), - 'function' => $frame->getFunction(), - 'class' => $frame->getClass(), - 'args' => $frame->getArgs(), - ]; - } - - $response['trace'] = $frameData; - } - - return $response; - } - - public static function formatExceptionPlain(Inspector $inspector) - { - $message = $inspector->getException()->getMessage(); - $frames = $inspector->getFrames(); - - $plain = $inspector->getExceptionName(); - $plain .= ' thrown with message "'; - $plain .= $message; - $plain .= '"'."\n\n"; - - $plain .= "Stacktrace:\n"; - foreach ($frames as $i => $frame) { - $plain .= "#". (count($frames) - $i - 1). " "; - $plain .= $frame->getClass() ?: ''; - $plain .= $frame->getClass() && $frame->getFunction() ? ":" : ""; - $plain .= $frame->getFunction() ?: ''; - $plain .= ' in '; - $plain .= ($frame->getFile() ?: '<#unknown>'); - $plain .= ':'; - $plain .= (int) $frame->getLine(). "\n"; - } - - return $plain; - } -} diff --git a/vendor/filp/whoops/src/Whoops/Exception/Frame.php b/vendor/filp/whoops/src/Whoops/Exception/Frame.php deleted file mode 100644 index 4383583c..00000000 --- a/vendor/filp/whoops/src/Whoops/Exception/Frame.php +++ /dev/null @@ -1,296 +0,0 @@ - - */ - -namespace Whoops\Exception; - -use InvalidArgumentException; -use Serializable; - -class Frame implements Serializable -{ - /** - * @var array - */ - protected $frame; - - /** - * @var string - */ - protected $fileContentsCache; - - /** - * @var array[] - */ - protected $comments = []; - - /** - * @var bool - */ - protected $application; - - /** - * @param array[] - */ - public function __construct(array $frame) - { - $this->frame = $frame; - } - - /** - * @param bool $shortened - * @return string|null - */ - public function getFile($shortened = false) - { - if (empty($this->frame['file'])) { - return null; - } - - $file = $this->frame['file']; - - // Check if this frame occurred within an eval(). - // @todo: This can be made more reliable by checking if we've entered - // eval() in a previous trace, but will need some more work on the upper - // trace collector(s). - if (preg_match('/^(.*)\((\d+)\) : (?:eval\(\)\'d|assert) code$/', $file, $matches)) { - $file = $this->frame['file'] = $matches[1]; - $this->frame['line'] = (int) $matches[2]; - } - - if ($shortened && is_string($file)) { - // Replace the part of the path that all frames have in common, and add 'soft hyphens' for smoother line-breaks. - $dirname = dirname(dirname(dirname(dirname(dirname(dirname(__DIR__)))))); - if ($dirname !== '/') { - $file = str_replace($dirname, "…", $file); - } - $file = str_replace("/", "/­", $file); - } - - return $file; - } - - /** - * @return int|null - */ - public function getLine() - { - return isset($this->frame['line']) ? $this->frame['line'] : null; - } - - /** - * @return string|null - */ - public function getClass() - { - return isset($this->frame['class']) ? $this->frame['class'] : null; - } - - /** - * @return string|null - */ - public function getFunction() - { - return isset($this->frame['function']) ? $this->frame['function'] : null; - } - - /** - * @return array - */ - public function getArgs() - { - return isset($this->frame['args']) ? (array) $this->frame['args'] : []; - } - - /** - * Returns the full contents of the file for this frame, - * if it's known. - * @return string|null - */ - public function getFileContents() - { - if ($this->fileContentsCache === null && $filePath = $this->getFile()) { - // Leave the stage early when 'Unknown' is passed - // this would otherwise raise an exception when - // open_basedir is enabled. - if ($filePath === "Unknown") { - return null; - } - - // Return null if the file doesn't actually exist. - if (!is_file($filePath)) { - return null; - } - - $this->fileContentsCache = file_get_contents($filePath); - } - - return $this->fileContentsCache; - } - - /** - * Adds a comment to this frame, that can be received and - * used by other handlers. For example, the PrettyPage handler - * can attach these comments under the code for each frame. - * - * An interesting use for this would be, for example, code analysis - * & annotations. - * - * @param string $comment - * @param string $context Optional string identifying the origin of the comment - */ - public function addComment($comment, $context = 'global') - { - $this->comments[] = [ - 'comment' => $comment, - 'context' => $context, - ]; - } - - /** - * Returns all comments for this frame. Optionally allows - * a filter to only retrieve comments from a specific - * context. - * - * @param string $filter - * @return array[] - */ - public function getComments($filter = null) - { - $comments = $this->comments; - - if ($filter !== null) { - $comments = array_filter($comments, function ($c) use ($filter) { - return $c['context'] == $filter; - }); - } - - return $comments; - } - - /** - * Returns the array containing the raw frame data from which - * this Frame object was built - * - * @return array - */ - public function getRawFrame() - { - return $this->frame; - } - - /** - * Returns the contents of the file for this frame as an - * array of lines, and optionally as a clamped range of lines. - * - * NOTE: lines are 0-indexed - * - * @example - * Get all lines for this file - * $frame->getFileLines(); // => array( 0 => ' '...', ...) - * @example - * Get one line for this file, starting at line 10 (zero-indexed, remember!) - * $frame->getFileLines(9, 1); // array( 10 => '...', 11 => '...') - * - * @throws InvalidArgumentException if $length is less than or equal to 0 - * @param int $start - * @param int $length - * @return string[]|null - */ - public function getFileLines($start = 0, $length = null) - { - if (null !== ($contents = $this->getFileContents())) { - $lines = explode("\n", $contents); - - // Get a subset of lines from $start to $end - if ($length !== null) { - $start = (int) $start; - $length = (int) $length; - if ($start < 0) { - $start = 0; - } - - if ($length <= 0) { - throw new InvalidArgumentException( - "\$length($length) cannot be lower or equal to 0" - ); - } - - $lines = array_slice($lines, $start, $length, true); - } - - return $lines; - } - } - - /** - * Implements the Serializable interface, with special - * steps to also save the existing comments. - * - * @see Serializable::serialize - * @return string - */ - public function serialize() - { - $frame = $this->frame; - if (!empty($this->comments)) { - $frame['_comments'] = $this->comments; - } - - return serialize($frame); - } - - /** - * Unserializes the frame data, while also preserving - * any existing comment data. - * - * @see Serializable::unserialize - * @param string $serializedFrame - */ - public function unserialize($serializedFrame) - { - $frame = unserialize($serializedFrame); - - if (!empty($frame['_comments'])) { - $this->comments = $frame['_comments']; - unset($frame['_comments']); - } - - $this->frame = $frame; - } - - /** - * Compares Frame against one another - * @param Frame $frame - * @return bool - */ - public function equals(Frame $frame) - { - if (!$this->getFile() || $this->getFile() === 'Unknown' || !$this->getLine()) { - return false; - } - return $frame->getFile() === $this->getFile() && $frame->getLine() === $this->getLine(); - } - - /** - * Returns whether this frame belongs to the application or not. - * - * @return boolean - */ - public function isApplication() - { - return $this->application; - } - - /** - * Mark as an frame belonging to the application. - * - * @param boolean $application - */ - public function setApplication($application) - { - $this->application = $application; - } -} diff --git a/vendor/filp/whoops/src/Whoops/Exception/FrameCollection.php b/vendor/filp/whoops/src/Whoops/Exception/FrameCollection.php deleted file mode 100644 index b043a1ce..00000000 --- a/vendor/filp/whoops/src/Whoops/Exception/FrameCollection.php +++ /dev/null @@ -1,203 +0,0 @@ - - */ - -namespace Whoops\Exception; - -use ArrayAccess; -use ArrayIterator; -use Countable; -use IteratorAggregate; -use Serializable; -use UnexpectedValueException; - -/** - * Exposes a fluent interface for dealing with an ordered list - * of stack-trace frames. - */ -class FrameCollection implements ArrayAccess, IteratorAggregate, Serializable, Countable -{ - /** - * @var array[] - */ - private $frames; - - /** - * @param array $frames - */ - public function __construct(array $frames) - { - $this->frames = array_map(function ($frame) { - return new Frame($frame); - }, $frames); - } - - /** - * Filters frames using a callable, returns the same FrameCollection - * - * @param callable $callable - * @return FrameCollection - */ - public function filter($callable) - { - $this->frames = array_values(array_filter($this->frames, $callable)); - return $this; - } - - /** - * Map the collection of frames - * - * @param callable $callable - * @return FrameCollection - */ - public function map($callable) - { - // Contain the map within a higher-order callable - // that enforces type-correctness for the $callable - $this->frames = array_map(function ($frame) use ($callable) { - $frame = call_user_func($callable, $frame); - - if (!$frame instanceof Frame) { - throw new UnexpectedValueException( - "Callable to " . __METHOD__ . " must return a Frame object" - ); - } - - return $frame; - }, $this->frames); - - return $this; - } - - /** - * Returns an array with all frames, does not affect - * the internal array. - * - * @todo If this gets any more complex than this, - * have getIterator use this method. - * @see FrameCollection::getIterator - * @return array - */ - public function getArray() - { - return $this->frames; - } - - /** - * @see IteratorAggregate::getIterator - * @return ArrayIterator - */ - public function getIterator() - { - return new ArrayIterator($this->frames); - } - - /** - * @see ArrayAccess::offsetExists - * @param int $offset - */ - public function offsetExists($offset) - { - return isset($this->frames[$offset]); - } - - /** - * @see ArrayAccess::offsetGet - * @param int $offset - */ - public function offsetGet($offset) - { - return $this->frames[$offset]; - } - - /** - * @see ArrayAccess::offsetSet - * @param int $offset - */ - public function offsetSet($offset, $value) - { - throw new \Exception(__CLASS__ . ' is read only'); - } - - /** - * @see ArrayAccess::offsetUnset - * @param int $offset - */ - public function offsetUnset($offset) - { - throw new \Exception(__CLASS__ . ' is read only'); - } - - /** - * @see Countable::count - * @return int - */ - public function count() - { - return count($this->frames); - } - - /** - * Count the frames that belongs to the application. - * - * @return int - */ - public function countIsApplication() - { - return count(array_filter($this->frames, function (Frame $f) { - return $f->isApplication(); - })); - } - - /** - * @see Serializable::serialize - * @return string - */ - public function serialize() - { - return serialize($this->frames); - } - - /** - * @see Serializable::unserialize - * @param string $serializedFrames - */ - public function unserialize($serializedFrames) - { - $this->frames = unserialize($serializedFrames); - } - - /** - * @param Frame[] $frames Array of Frame instances, usually from $e->getPrevious() - */ - public function prependFrames(array $frames) - { - $this->frames = array_merge($frames, $this->frames); - } - - /** - * Gets the innermost part of stack trace that is not the same as that of outer exception - * - * @param FrameCollection $parentFrames Outer exception frames to compare tail against - * @return Frame[] - */ - public function topDiff(FrameCollection $parentFrames) - { - $diff = $this->frames; - - $parentFrames = $parentFrames->getArray(); - $p = count($parentFrames)-1; - - for ($i = count($diff)-1; $i >= 0 && $p >= 0; $i--) { - /** @var Frame $tailFrame */ - $tailFrame = $diff[$i]; - if ($tailFrame->equals($parentFrames[$p])) { - unset($diff[$i]); - } - $p--; - } - return $diff; - } -} diff --git a/vendor/filp/whoops/src/Whoops/Exception/Inspector.php b/vendor/filp/whoops/src/Whoops/Exception/Inspector.php deleted file mode 100644 index c88323be..00000000 --- a/vendor/filp/whoops/src/Whoops/Exception/Inspector.php +++ /dev/null @@ -1,276 +0,0 @@ - - */ - -namespace Whoops\Exception; - -use Whoops\Util\Misc; - -class Inspector -{ - /** - * @var \Throwable - */ - private $exception; - - /** - * @var \Whoops\Exception\FrameCollection - */ - private $frames; - - /** - * @var \Whoops\Exception\Inspector - */ - private $previousExceptionInspector; - - /** - * @param \Throwable $exception The exception to inspect - */ - public function __construct($exception) - { - $this->exception = $exception; - } - - /** - * @return \Throwable - */ - public function getException() - { - return $this->exception; - } - - /** - * @return string - */ - public function getExceptionName() - { - return get_class($this->exception); - } - - /** - * @return string - */ - public function getExceptionMessage() - { - return $this->extractDocrefUrl($this->exception->getMessage())['message']; - } - - /** - * Returns a url to the php-manual related to the underlying error - when available. - * - * @return string|null - */ - public function getExceptionDocrefUrl() - { - return $this->extractDocrefUrl($this->exception->getMessage())['url']; - } - - private function extractDocrefUrl($message) - { - $docref = [ - 'message' => $message, - 'url' => null, - ]; - - // php embbeds urls to the manual into the Exception message with the following ini-settings defined - // http://php.net/manual/en/errorfunc.configuration.php#ini.docref-root - if (!ini_get('html_errors') || !ini_get('docref_root')) { - return $docref; - } - - $pattern = "/\[(?:[^<]+)<\/a>\]/"; - if (preg_match($pattern, $message, $matches)) { - // -> strip those automatically generated links from the exception message - $docref['message'] = preg_replace($pattern, '', $message, 1); - $docref['url'] = $matches[1]; - } - - return $docref; - } - - /** - * Does the wrapped Exception has a previous Exception? - * @return bool - */ - public function hasPreviousException() - { - return $this->previousExceptionInspector || $this->exception->getPrevious(); - } - - /** - * Returns an Inspector for a previous Exception, if any. - * @todo Clean this up a bit, cache stuff a bit better. - * @return Inspector - */ - public function getPreviousExceptionInspector() - { - if ($this->previousExceptionInspector === null) { - $previousException = $this->exception->getPrevious(); - - if ($previousException) { - $this->previousExceptionInspector = new Inspector($previousException); - } - } - - return $this->previousExceptionInspector; - } - - /** - * Returns an iterator for the inspected exception's - * frames. - * @return \Whoops\Exception\FrameCollection - */ - public function getFrames() - { - if ($this->frames === null) { - $frames = $this->getTrace($this->exception); - - // Fill empty line/file info for call_user_func_array usages (PHP Bug #44428) - foreach ($frames as $k => $frame) { - if (empty($frame['file'])) { - // Default values when file and line are missing - $file = '[internal]'; - $line = 0; - - $next_frame = !empty($frames[$k + 1]) ? $frames[$k + 1] : []; - - if ($this->isValidNextFrame($next_frame)) { - $file = $next_frame['file']; - $line = $next_frame['line']; - } - - $frames[$k]['file'] = $file; - $frames[$k]['line'] = $line; - } - } - - // Find latest non-error handling frame index ($i) used to remove error handling frames - $i = 0; - foreach ($frames as $k => $frame) { - if ($frame['file'] == $this->exception->getFile() && $frame['line'] == $this->exception->getLine()) { - $i = $k; - } - } - - // Remove error handling frames - if ($i > 0) { - array_splice($frames, 0, $i); - } - - $firstFrame = $this->getFrameFromException($this->exception); - array_unshift($frames, $firstFrame); - - $this->frames = new FrameCollection($frames); - - if ($previousInspector = $this->getPreviousExceptionInspector()) { - // Keep outer frame on top of the inner one - $outerFrames = $this->frames; - $newFrames = clone $previousInspector->getFrames(); - // I assume it will always be set, but let's be safe - if (isset($newFrames[0])) { - $newFrames[0]->addComment( - $previousInspector->getExceptionMessage(), - 'Exception message:' - ); - } - $newFrames->prependFrames($outerFrames->topDiff($newFrames)); - $this->frames = $newFrames; - } - } - - return $this->frames; - } - - /** - * Gets the backtrace from an exception. - * - * If xdebug is installed - * - * @param \Throwable $exception - * @return array - */ - protected function getTrace($e) - { - $traces = $e->getTrace(); - - // Get trace from xdebug if enabled, failure exceptions only trace to the shutdown handler by default - if (!$e instanceof \ErrorException) { - return $traces; - } - - if (!Misc::isLevelFatal($e->getSeverity())) { - return $traces; - } - - if (!extension_loaded('xdebug') || !xdebug_is_enabled()) { - return []; - } - - // Use xdebug to get the full stack trace and remove the shutdown handler stack trace - $stack = array_reverse(xdebug_get_function_stack()); - $trace = debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS); - $traces = array_diff_key($stack, $trace); - - return $traces; - } - - /** - * Given an exception, generates an array in the format - * generated by Exception::getTrace() - * @param \Throwable $exception - * @return array - */ - protected function getFrameFromException($exception) - { - return [ - 'file' => $exception->getFile(), - 'line' => $exception->getLine(), - 'class' => get_class($exception), - 'args' => [ - $exception->getMessage(), - ], - ]; - } - - /** - * Given an error, generates an array in the format - * generated by ErrorException - * @param ErrorException $exception - * @return array - */ - protected function getFrameFromError(ErrorException $exception) - { - return [ - 'file' => $exception->getFile(), - 'line' => $exception->getLine(), - 'class' => null, - 'args' => [], - ]; - } - - /** - * Determine if the frame can be used to fill in previous frame's missing info - * happens for call_user_func and call_user_func_array usages (PHP Bug #44428) - * - * @param array $frame - * @return bool - */ - protected function isValidNextFrame(array $frame) - { - if (empty($frame['file'])) { - return false; - } - - if (empty($frame['line'])) { - return false; - } - - if (empty($frame['function']) || !stristr($frame['function'], 'call_user_func')) { - return false; - } - - return true; - } -} diff --git a/vendor/filp/whoops/src/Whoops/Handler/CallbackHandler.php b/vendor/filp/whoops/src/Whoops/Handler/CallbackHandler.php deleted file mode 100644 index cc46e700..00000000 --- a/vendor/filp/whoops/src/Whoops/Handler/CallbackHandler.php +++ /dev/null @@ -1,52 +0,0 @@ - - */ - -namespace Whoops\Handler; - -use InvalidArgumentException; - -/** - * Wrapper for Closures passed as handlers. Can be used - * directly, or will be instantiated automagically by Whoops\Run - * if passed to Run::pushHandler - */ -class CallbackHandler extends Handler -{ - /** - * @var callable - */ - protected $callable; - - /** - * @throws InvalidArgumentException If argument is not callable - * @param callable $callable - */ - public function __construct($callable) - { - if (!is_callable($callable)) { - throw new InvalidArgumentException( - 'Argument to ' . __METHOD__ . ' must be valid callable' - ); - } - - $this->callable = $callable; - } - - /** - * @return int|null - */ - public function handle() - { - $exception = $this->getException(); - $inspector = $this->getInspector(); - $run = $this->getRun(); - $callable = $this->callable; - - // invoke the callable directly, to get simpler stacktraces (in comparison to call_user_func). - // this assumes that $callable is a properly typed php-callable, which we check in __construct(). - return $callable($exception, $inspector, $run); - } -} diff --git a/vendor/filp/whoops/src/Whoops/Handler/Handler.php b/vendor/filp/whoops/src/Whoops/Handler/Handler.php deleted file mode 100644 index cf1f7087..00000000 --- a/vendor/filp/whoops/src/Whoops/Handler/Handler.php +++ /dev/null @@ -1,95 +0,0 @@ - - */ - -namespace Whoops\Handler; - -use Whoops\Exception\Inspector; -use Whoops\RunInterface; - -/** - * Abstract implementation of a Handler. - */ -abstract class Handler implements HandlerInterface -{ - /* - Return constants that can be returned from Handler::handle - to message the handler walker. - */ - const DONE = 0x10; // returning this is optional, only exists for - // semantic purposes - /** - * The Handler has handled the Throwable in some way, and wishes to skip any other Handler. - * Execution will continue. - */ - const LAST_HANDLER = 0x20; - /** - * The Handler has handled the Throwable in some way, and wishes to quit/stop execution - */ - const QUIT = 0x30; - - /** - * @var RunInterface - */ - private $run; - - /** - * @var Inspector $inspector - */ - private $inspector; - - /** - * @var \Throwable $exception - */ - private $exception; - - /** - * @param RunInterface $run - */ - public function setRun(RunInterface $run) - { - $this->run = $run; - } - - /** - * @return RunInterface - */ - protected function getRun() - { - return $this->run; - } - - /** - * @param Inspector $inspector - */ - public function setInspector(Inspector $inspector) - { - $this->inspector = $inspector; - } - - /** - * @return Inspector - */ - protected function getInspector() - { - return $this->inspector; - } - - /** - * @param \Throwable $exception - */ - public function setException($exception) - { - $this->exception = $exception; - } - - /** - * @return \Throwable - */ - protected function getException() - { - return $this->exception; - } -} diff --git a/vendor/filp/whoops/src/Whoops/Handler/HandlerInterface.php b/vendor/filp/whoops/src/Whoops/Handler/HandlerInterface.php deleted file mode 100644 index 0265a85b..00000000 --- a/vendor/filp/whoops/src/Whoops/Handler/HandlerInterface.php +++ /dev/null @@ -1,36 +0,0 @@ - - */ - -namespace Whoops\Handler; - -use Whoops\Exception\Inspector; -use Whoops\RunInterface; - -interface HandlerInterface -{ - /** - * @return int|null A handler may return nothing, or a Handler::HANDLE_* constant - */ - public function handle(); - - /** - * @param RunInterface $run - * @return void - */ - public function setRun(RunInterface $run); - - /** - * @param \Throwable $exception - * @return void - */ - public function setException($exception); - - /** - * @param Inspector $inspector - * @return void - */ - public function setInspector(Inspector $inspector); -} diff --git a/vendor/filp/whoops/src/Whoops/Handler/JsonResponseHandler.php b/vendor/filp/whoops/src/Whoops/Handler/JsonResponseHandler.php deleted file mode 100644 index fdd7ead3..00000000 --- a/vendor/filp/whoops/src/Whoops/Handler/JsonResponseHandler.php +++ /dev/null @@ -1,88 +0,0 @@ - - */ - -namespace Whoops\Handler; - -use Whoops\Exception\Formatter; - -/** - * Catches an exception and converts it to a JSON - * response. Additionally can also return exception - * frames for consumption by an API. - */ -class JsonResponseHandler extends Handler -{ - /** - * @var bool - */ - private $returnFrames = false; - - /** - * @var bool - */ - private $jsonApi = false; - - /** - * Returns errors[[]] instead of error[] to be in compliance with the json:api spec - * @param bool $jsonApi Default is false - * @return $this - */ - public function setJsonApi($jsonApi = false) - { - $this->jsonApi = (bool) $jsonApi; - return $this; - } - - /** - * @param bool|null $returnFrames - * @return bool|$this - */ - public function addTraceToOutput($returnFrames = null) - { - if (func_num_args() == 0) { - return $this->returnFrames; - } - - $this->returnFrames = (bool) $returnFrames; - return $this; - } - - /** - * @return int - */ - public function handle() - { - if ($this->jsonApi === true) { - $response = [ - 'errors' => [ - Formatter::formatExceptionAsDataArray( - $this->getInspector(), - $this->addTraceToOutput() - ), - ] - ]; - } else { - $response = [ - 'error' => Formatter::formatExceptionAsDataArray( - $this->getInspector(), - $this->addTraceToOutput() - ), - ]; - } - - echo json_encode($response, defined('JSON_PARTIAL_OUTPUT_ON_ERROR') ? JSON_PARTIAL_OUTPUT_ON_ERROR : 0); - - return Handler::QUIT; - } - - /** - * @return string - */ - public function contentType() - { - return 'application/json'; - } -} diff --git a/vendor/filp/whoops/src/Whoops/Handler/PlainTextHandler.php b/vendor/filp/whoops/src/Whoops/Handler/PlainTextHandler.php deleted file mode 100644 index 2f5be906..00000000 --- a/vendor/filp/whoops/src/Whoops/Handler/PlainTextHandler.php +++ /dev/null @@ -1,314 +0,0 @@ - -* Plaintext handler for command line and logs. -* @author Pierre-Yves Landuré -*/ - -namespace Whoops\Handler; - -use InvalidArgumentException; -use Psr\Log\LoggerInterface; -use Whoops\Exception\Frame; - -/** -* Handler outputing plaintext error messages. Can be used -* directly, or will be instantiated automagically by Whoops\Run -* if passed to Run::pushHandler -*/ -class PlainTextHandler extends Handler -{ - const VAR_DUMP_PREFIX = ' | '; - - /** - * @var \Psr\Log\LoggerInterface - */ - protected $logger; - - /** - * @var callable - */ - protected $dumper; - - /** - * @var bool - */ - private $addTraceToOutput = true; - - /** - * @var bool|integer - */ - private $addTraceFunctionArgsToOutput = false; - - /** - * @var integer - */ - private $traceFunctionArgsOutputLimit = 1024; - - /** - * @var bool - */ - private $loggerOnly = false; - - /** - * Constructor. - * @throws InvalidArgumentException If argument is not null or a LoggerInterface - * @param \Psr\Log\LoggerInterface|null $logger - */ - public function __construct($logger = null) - { - $this->setLogger($logger); - } - - /** - * Set the output logger interface. - * @throws InvalidArgumentException If argument is not null or a LoggerInterface - * @param \Psr\Log\LoggerInterface|null $logger - */ - public function setLogger($logger = null) - { - if (! (is_null($logger) - || $logger instanceof LoggerInterface)) { - throw new InvalidArgumentException( - 'Argument to ' . __METHOD__ . - " must be a valid Logger Interface (aka. Monolog), " . - get_class($logger) . ' given.' - ); - } - - $this->logger = $logger; - } - - /** - * @return \Psr\Log\LoggerInterface|null - */ - public function getLogger() - { - return $this->logger; - } - - /** - * Set var dumper callback function. - * - * @param callable $dumper - * @return void - */ - public function setDumper(callable $dumper) - { - $this->dumper = $dumper; - } - - /** - * Add error trace to output. - * @param bool|null $addTraceToOutput - * @return bool|$this - */ - public function addTraceToOutput($addTraceToOutput = null) - { - if (func_num_args() == 0) { - return $this->addTraceToOutput; - } - - $this->addTraceToOutput = (bool) $addTraceToOutput; - return $this; - } - - /** - * Add error trace function arguments to output. - * Set to True for all frame args, or integer for the n first frame args. - * @param bool|integer|null $addTraceFunctionArgsToOutput - * @return null|bool|integer - */ - public function addTraceFunctionArgsToOutput($addTraceFunctionArgsToOutput = null) - { - if (func_num_args() == 0) { - return $this->addTraceFunctionArgsToOutput; - } - - if (! is_integer($addTraceFunctionArgsToOutput)) { - $this->addTraceFunctionArgsToOutput = (bool) $addTraceFunctionArgsToOutput; - } else { - $this->addTraceFunctionArgsToOutput = $addTraceFunctionArgsToOutput; - } - } - - /** - * Set the size limit in bytes of frame arguments var_dump output. - * If the limit is reached, the var_dump output is discarded. - * Prevent memory limit errors. - * @var integer - */ - public function setTraceFunctionArgsOutputLimit($traceFunctionArgsOutputLimit) - { - $this->traceFunctionArgsOutputLimit = (integer) $traceFunctionArgsOutputLimit; - } - - /** - * Create plain text response and return it as a string - * @return string - */ - public function generateResponse() - { - $exception = $this->getException(); - return sprintf( - "%s: %s in file %s on line %d%s\n", - get_class($exception), - $exception->getMessage(), - $exception->getFile(), - $exception->getLine(), - $this->getTraceOutput() - ); - } - - /** - * Get the size limit in bytes of frame arguments var_dump output. - * If the limit is reached, the var_dump output is discarded. - * Prevent memory limit errors. - * @return integer - */ - public function getTraceFunctionArgsOutputLimit() - { - return $this->traceFunctionArgsOutputLimit; - } - - /** - * Only output to logger. - * @param bool|null $loggerOnly - * @return null|bool - */ - public function loggerOnly($loggerOnly = null) - { - if (func_num_args() == 0) { - return $this->loggerOnly; - } - - $this->loggerOnly = (bool) $loggerOnly; - } - - /** - * Test if handler can output to stdout. - * @return bool - */ - private function canOutput() - { - return !$this->loggerOnly(); - } - - /** - * Get the frame args var_dump. - * @param \Whoops\Exception\Frame $frame [description] - * @param integer $line [description] - * @return string - */ - private function getFrameArgsOutput(Frame $frame, $line) - { - if ($this->addTraceFunctionArgsToOutput() === false - || $this->addTraceFunctionArgsToOutput() < $line) { - return ''; - } - - // Dump the arguments: - ob_start(); - $this->dump($frame->getArgs()); - if (ob_get_length() > $this->getTraceFunctionArgsOutputLimit()) { - // The argument var_dump is to big. - // Discarded to limit memory usage. - ob_clean(); - return sprintf( - "\n%sArguments dump length greater than %d Bytes. Discarded.", - self::VAR_DUMP_PREFIX, - $this->getTraceFunctionArgsOutputLimit() - ); - } - - return sprintf( - "\n%s", - preg_replace('/^/m', self::VAR_DUMP_PREFIX, ob_get_clean()) - ); - } - - /** - * Dump variable. - * - * @param mixed $var - * @return void - */ - protected function dump($var) - { - if ($this->dumper) { - call_user_func($this->dumper, $var); - } else { - var_dump($var); - } - } - - /** - * Get the exception trace as plain text. - * @return string - */ - private function getTraceOutput() - { - if (! $this->addTraceToOutput()) { - return ''; - } - $inspector = $this->getInspector(); - $frames = $inspector->getFrames(); - - $response = "\nStack trace:"; - - $line = 1; - foreach ($frames as $frame) { - /** @var Frame $frame */ - $class = $frame->getClass(); - - $template = "\n%3d. %s->%s() %s:%d%s"; - if (! $class) { - // Remove method arrow (->) from output. - $template = "\n%3d. %s%s() %s:%d%s"; - } - - $response .= sprintf( - $template, - $line, - $class, - $frame->getFunction(), - $frame->getFile(), - $frame->getLine(), - $this->getFrameArgsOutput($frame, $line) - ); - - $line++; - } - - return $response; - } - - /** - * @return int - */ - public function handle() - { - $response = $this->generateResponse(); - - if ($this->getLogger()) { - $this->getLogger()->error($response); - } - - if (! $this->canOutput()) { - return Handler::DONE; - } - - echo $response; - - return Handler::QUIT; - } - - /** - * @return string - */ - public function contentType() - { - return 'text/plain'; - } -} diff --git a/vendor/filp/whoops/src/Whoops/Handler/PrettyPageHandler.php b/vendor/filp/whoops/src/Whoops/Handler/PrettyPageHandler.php deleted file mode 100644 index 08197b4d..00000000 --- a/vendor/filp/whoops/src/Whoops/Handler/PrettyPageHandler.php +++ /dev/null @@ -1,707 +0,0 @@ - - */ - -namespace Whoops\Handler; - -use InvalidArgumentException; -use RuntimeException; -use Symfony\Component\VarDumper\Cloner\AbstractCloner; -use Symfony\Component\VarDumper\Cloner\VarCloner; -use UnexpectedValueException; -use Whoops\Exception\Formatter; -use Whoops\Util\Misc; -use Whoops\Util\TemplateHelper; - -class PrettyPageHandler extends Handler -{ - /** - * Search paths to be scanned for resources, in the reverse - * order they're declared. - * - * @var array - */ - private $searchPaths = []; - - /** - * Fast lookup cache for known resource locations. - * - * @var array - */ - private $resourceCache = []; - - /** - * The name of the custom css file. - * - * @var string - */ - private $customCss = null; - - /** - * @var array[] - */ - private $extraTables = []; - - /** - * @var bool - */ - private $handleUnconditionally = false; - - /** - * @var string - */ - private $pageTitle = "Whoops! There was an error."; - - /** - * @var array[] - */ - private $applicationPaths; - - /** - * @var array[] - */ - private $blacklist = [ - '_GET' => [], - '_POST' => [], - '_FILES' => [], - '_COOKIE' => [], - '_SESSION' => [], - '_SERVER' => [], - '_ENV' => [], - ]; - - /** - * A string identifier for a known IDE/text editor, or a closure - * that resolves a string that can be used to open a given file - * in an editor. If the string contains the special substrings - * %file or %line, they will be replaced with the correct data. - * - * @example - * "txmt://open?url=%file&line=%line" - * @var mixed $editor - */ - protected $editor; - - /** - * A list of known editor strings - * @var array - */ - protected $editors = [ - "sublime" => "subl://open?url=file://%file&line=%line", - "textmate" => "txmt://open?url=file://%file&line=%line", - "emacs" => "emacs://open?url=file://%file&line=%line", - "macvim" => "mvim://open/?url=file://%file&line=%line", - "phpstorm" => "phpstorm://open?file=%file&line=%line", - "idea" => "idea://open?file=%file&line=%line", - "vscode" => "vscode://file/%file:%line", - "atom" => "atom://core/open/file?filename=%file&line=%line", - ]; - - /** - * @var TemplateHelper - */ - private $templateHelper; - - /** - * Constructor. - */ - public function __construct() - { - if (ini_get('xdebug.file_link_format') || extension_loaded('xdebug')) { - // Register editor using xdebug's file_link_format option. - $this->editors['xdebug'] = function ($file, $line) { - return str_replace(['%f', '%l'], [$file, $line], ini_get('xdebug.file_link_format')); - }; - } - - // Add the default, local resource search path: - $this->searchPaths[] = __DIR__ . "/../Resources"; - - // blacklist php provided auth based values - $this->blacklist('_SERVER', 'PHP_AUTH_PW'); - - $this->templateHelper = new TemplateHelper(); - - if (class_exists('Symfony\Component\VarDumper\Cloner\VarCloner')) { - $cloner = new VarCloner(); - // Only dump object internals if a custom caster exists. - $cloner->addCasters(['*' => function ($obj, $a, $stub, $isNested, $filter = 0) { - $class = $stub->class; - $classes = [$class => $class] + class_parents($class) + class_implements($class); - - foreach ($classes as $class) { - if (isset(AbstractCloner::$defaultCasters[$class])) { - return $a; - } - } - - // Remove all internals - return []; - }]); - $this->templateHelper->setCloner($cloner); - } - } - - /** - * @return int|null - */ - public function handle() - { - if (!$this->handleUnconditionally()) { - // Check conditions for outputting HTML: - // @todo: Make this more robust - if (PHP_SAPI === 'cli') { - // Help users who have been relying on an internal test value - // fix their code to the proper method - if (isset($_ENV['whoops-test'])) { - throw new \Exception( - 'Use handleUnconditionally instead of whoops-test' - .' environment variable' - ); - } - - return Handler::DONE; - } - } - - $templateFile = $this->getResource("views/layout.html.php"); - $cssFile = $this->getResource("css/whoops.base.css"); - $zeptoFile = $this->getResource("js/zepto.min.js"); - $prettifyFile = $this->getResource("js/prettify.min.js"); - $clipboard = $this->getResource("js/clipboard.min.js"); - $jsFile = $this->getResource("js/whoops.base.js"); - - if ($this->customCss) { - $customCssFile = $this->getResource($this->customCss); - } - - $inspector = $this->getInspector(); - $frames = $this->getExceptionFrames(); - $code = $this->getExceptionCode(); - - // List of variables that will be passed to the layout template. - $vars = [ - "page_title" => $this->getPageTitle(), - - // @todo: Asset compiler - "stylesheet" => file_get_contents($cssFile), - "zepto" => file_get_contents($zeptoFile), - "prettify" => file_get_contents($prettifyFile), - "clipboard" => file_get_contents($clipboard), - "javascript" => file_get_contents($jsFile), - - // Template paths: - "header" => $this->getResource("views/header.html.php"), - "header_outer" => $this->getResource("views/header_outer.html.php"), - "frame_list" => $this->getResource("views/frame_list.html.php"), - "frames_description" => $this->getResource("views/frames_description.html.php"), - "frames_container" => $this->getResource("views/frames_container.html.php"), - "panel_details" => $this->getResource("views/panel_details.html.php"), - "panel_details_outer" => $this->getResource("views/panel_details_outer.html.php"), - "panel_left" => $this->getResource("views/panel_left.html.php"), - "panel_left_outer" => $this->getResource("views/panel_left_outer.html.php"), - "frame_code" => $this->getResource("views/frame_code.html.php"), - "env_details" => $this->getResource("views/env_details.html.php"), - - "title" => $this->getPageTitle(), - "name" => explode("\\", $inspector->getExceptionName()), - "message" => $inspector->getExceptionMessage(), - "docref_url" => $inspector->getExceptionDocrefUrl(), - "code" => $code, - "plain_exception" => Formatter::formatExceptionPlain($inspector), - "frames" => $frames, - "has_frames" => !!count($frames), - "handler" => $this, - "handlers" => $this->getRun()->getHandlers(), - - "active_frames_tab" => count($frames) && $frames->offsetGet(0)->isApplication() ? 'application' : 'all', - "has_frames_tabs" => $this->getApplicationPaths(), - - "tables" => [ - "GET Data" => $this->masked($_GET, '_GET'), - "POST Data" => $this->masked($_POST, '_POST'), - "Files" => isset($_FILES) ? $this->masked($_FILES, '_FILES') : [], - "Cookies" => $this->masked($_COOKIE, '_COOKIE'), - "Session" => isset($_SESSION) ? $this->masked($_SESSION, '_SESSION') : [], - "Server/Request Data" => $this->masked($_SERVER, '_SERVER'), - "Environment Variables" => $this->masked($_ENV, '_ENV'), - ], - ]; - - if (isset($customCssFile)) { - $vars["stylesheet"] .= file_get_contents($customCssFile); - } - - // Add extra entries list of data tables: - // @todo: Consolidate addDataTable and addDataTableCallback - $extraTables = array_map(function ($table) use ($inspector) { - return $table instanceof \Closure ? $table($inspector) : $table; - }, $this->getDataTables()); - $vars["tables"] = array_merge($extraTables, $vars["tables"]); - - $plainTextHandler = new PlainTextHandler(); - $plainTextHandler->setException($this->getException()); - $plainTextHandler->setInspector($this->getInspector()); - $vars["preface"] = ""; - - $this->templateHelper->setVariables($vars); - $this->templateHelper->render($templateFile); - - return Handler::QUIT; - } - - /** - * Get the stack trace frames of the exception that is currently being handled. - * - * @return \Whoops\Exception\FrameCollection; - */ - protected function getExceptionFrames() - { - $frames = $this->getInspector()->getFrames(); - - if ($this->getApplicationPaths()) { - foreach ($frames as $frame) { - foreach ($this->getApplicationPaths() as $path) { - if (strpos($frame->getFile(), $path) === 0) { - $frame->setApplication(true); - break; - } - } - } - } - - return $frames; - } - - /** - * Get the code of the exception that is currently being handled. - * - * @return string - */ - protected function getExceptionCode() - { - $exception = $this->getException(); - - $code = $exception->getCode(); - if ($exception instanceof \ErrorException) { - // ErrorExceptions wrap the php-error types within the 'severity' property - $code = Misc::translateErrorCode($exception->getSeverity()); - } - - return (string) $code; - } - - /** - * @return string - */ - public function contentType() - { - return 'text/html'; - } - - /** - * Adds an entry to the list of tables displayed in the template. - * The expected data is a simple associative array. Any nested arrays - * will be flattened with print_r - * @param string $label - * @param array $data - */ - public function addDataTable($label, array $data) - { - $this->extraTables[$label] = $data; - } - - /** - * Lazily adds an entry to the list of tables displayed in the table. - * The supplied callback argument will be called when the error is rendered, - * it should produce a simple associative array. Any nested arrays will - * be flattened with print_r. - * - * @throws InvalidArgumentException If $callback is not callable - * @param string $label - * @param callable $callback Callable returning an associative array - */ - public function addDataTableCallback($label, /* callable */ $callback) - { - if (!is_callable($callback)) { - throw new InvalidArgumentException('Expecting callback argument to be callable'); - } - - $this->extraTables[$label] = function (\Whoops\Exception\Inspector $inspector = null) use ($callback) { - try { - $result = call_user_func($callback, $inspector); - - // Only return the result if it can be iterated over by foreach(). - return is_array($result) || $result instanceof \Traversable ? $result : []; - } catch (\Exception $e) { - // Don't allow failure to break the rendering of the original exception. - return []; - } - }; - } - - /** - * Returns all the extra data tables registered with this handler. - * Optionally accepts a 'label' parameter, to only return the data - * table under that label. - * @param string|null $label - * @return array[]|callable - */ - public function getDataTables($label = null) - { - if ($label !== null) { - return isset($this->extraTables[$label]) ? - $this->extraTables[$label] : []; - } - - return $this->extraTables; - } - - /** - * Allows to disable all attempts to dynamically decide whether to - * handle or return prematurely. - * Set this to ensure that the handler will perform no matter what. - * @param bool|null $value - * @return bool|null - */ - public function handleUnconditionally($value = null) - { - if (func_num_args() == 0) { - return $this->handleUnconditionally; - } - - $this->handleUnconditionally = (bool) $value; - } - - /** - * Adds an editor resolver, identified by a string - * name, and that may be a string path, or a callable - * resolver. If the callable returns a string, it will - * be set as the file reference's href attribute. - * - * @example - * $run->addEditor('macvim', "mvim://open?url=file://%file&line=%line") - * @example - * $run->addEditor('remove-it', function($file, $line) { - * unlink($file); - * return "http://stackoverflow.com"; - * }); - * @param string $identifier - * @param string $resolver - */ - public function addEditor($identifier, $resolver) - { - $this->editors[$identifier] = $resolver; - } - - /** - * Set the editor to use to open referenced files, by a string - * identifier, or a callable that will be executed for every - * file reference, with a $file and $line argument, and should - * return a string. - * - * @example - * $run->setEditor(function($file, $line) { return "file:///{$file}"; }); - * @example - * $run->setEditor('sublime'); - * - * @throws InvalidArgumentException If invalid argument identifier provided - * @param string|callable $editor - */ - public function setEditor($editor) - { - if (!is_callable($editor) && !isset($this->editors[$editor])) { - throw new InvalidArgumentException( - "Unknown editor identifier: $editor. Known editors:" . - implode(",", array_keys($this->editors)) - ); - } - - $this->editor = $editor; - } - - /** - * Given a string file path, and an integer file line, - * executes the editor resolver and returns, if available, - * a string that may be used as the href property for that - * file reference. - * - * @throws InvalidArgumentException If editor resolver does not return a string - * @param string $filePath - * @param int $line - * @return string|bool - */ - public function getEditorHref($filePath, $line) - { - $editor = $this->getEditor($filePath, $line); - - if (empty($editor)) { - return false; - } - - // Check that the editor is a string, and replace the - // %line and %file placeholders: - if (!isset($editor['url']) || !is_string($editor['url'])) { - throw new UnexpectedValueException( - __METHOD__ . " should always resolve to a string or a valid editor array; got something else instead." - ); - } - - $editor['url'] = str_replace("%line", rawurlencode($line), $editor['url']); - $editor['url'] = str_replace("%file", rawurlencode($filePath), $editor['url']); - - return $editor['url']; - } - - /** - * Given a boolean if the editor link should - * act as an Ajax request. The editor must be a - * valid callable function/closure - * - * @throws UnexpectedValueException If editor resolver does not return a boolean - * @param string $filePath - * @param int $line - * @return bool - */ - public function getEditorAjax($filePath, $line) - { - $editor = $this->getEditor($filePath, $line); - - // Check that the ajax is a bool - if (!isset($editor['ajax']) || !is_bool($editor['ajax'])) { - throw new UnexpectedValueException( - __METHOD__ . " should always resolve to a bool; got something else instead." - ); - } - return $editor['ajax']; - } - - /** - * Given a boolean if the editor link should - * act as an Ajax request. The editor must be a - * valid callable function/closure - * - * @param string $filePath - * @param int $line - * @return array - */ - protected function getEditor($filePath, $line) - { - if (!$this->editor || (!is_string($this->editor) && !is_callable($this->editor))) { - return []; - } - - if (is_string($this->editor) && isset($this->editors[$this->editor]) && !is_callable($this->editors[$this->editor])) { - return [ - 'ajax' => false, - 'url' => $this->editors[$this->editor], - ]; - } - - if (is_callable($this->editor) || (isset($this->editors[$this->editor]) && is_callable($this->editors[$this->editor]))) { - if (is_callable($this->editor)) { - $callback = call_user_func($this->editor, $filePath, $line); - } else { - $callback = call_user_func($this->editors[$this->editor], $filePath, $line); - } - - if (is_string($callback)) { - return [ - 'ajax' => false, - 'url' => $callback, - ]; - } - - return [ - 'ajax' => isset($callback['ajax']) ? $callback['ajax'] : false, - 'url' => isset($callback['url']) ? $callback['url'] : $callback, - ]; - } - - return []; - } - - /** - * @param string $title - * @return void - */ - public function setPageTitle($title) - { - $this->pageTitle = (string) $title; - } - - /** - * @return string - */ - public function getPageTitle() - { - return $this->pageTitle; - } - - /** - * Adds a path to the list of paths to be searched for - * resources. - * - * @throws InvalidArgumentException If $path is not a valid directory - * - * @param string $path - * @return void - */ - public function addResourcePath($path) - { - if (!is_dir($path)) { - throw new InvalidArgumentException( - "'$path' is not a valid directory" - ); - } - - array_unshift($this->searchPaths, $path); - } - - /** - * Adds a custom css file to be loaded. - * - * @param string $name - * @return void - */ - public function addCustomCss($name) - { - $this->customCss = $name; - } - - /** - * @return array - */ - public function getResourcePaths() - { - return $this->searchPaths; - } - - /** - * Finds a resource, by its relative path, in all available search paths. - * The search is performed starting at the last search path, and all the - * way back to the first, enabling a cascading-type system of overrides - * for all resources. - * - * @throws RuntimeException If resource cannot be found in any of the available paths - * - * @param string $resource - * @return string - */ - protected function getResource($resource) - { - // If the resource was found before, we can speed things up - // by caching its absolute, resolved path: - if (isset($this->resourceCache[$resource])) { - return $this->resourceCache[$resource]; - } - - // Search through available search paths, until we find the - // resource we're after: - foreach ($this->searchPaths as $path) { - $fullPath = $path . "/$resource"; - - if (is_file($fullPath)) { - // Cache the result: - $this->resourceCache[$resource] = $fullPath; - return $fullPath; - } - } - - // If we got this far, nothing was found. - throw new RuntimeException( - "Could not find resource '$resource' in any resource paths." - . "(searched: " . join(", ", $this->searchPaths). ")" - ); - } - - /** - * @deprecated - * - * @return string - */ - public function getResourcesPath() - { - $allPaths = $this->getResourcePaths(); - - // Compat: return only the first path added - return end($allPaths) ?: null; - } - - /** - * @deprecated - * - * @param string $resourcesPath - * @return void - */ - public function setResourcesPath($resourcesPath) - { - $this->addResourcePath($resourcesPath); - } - - /** - * Return the application paths. - * - * @return array - */ - public function getApplicationPaths() - { - return $this->applicationPaths; - } - - /** - * Set the application paths. - * - * @param array $applicationPaths - */ - public function setApplicationPaths($applicationPaths) - { - $this->applicationPaths = $applicationPaths; - } - - /** - * Set the application root path. - * - * @param string $applicationRootPath - */ - public function setApplicationRootPath($applicationRootPath) - { - $this->templateHelper->setApplicationRootPath($applicationRootPath); - } - - /** - * blacklist a sensitive value within one of the superglobal arrays. - * - * @param $superGlobalName string the name of the superglobal array, e.g. '_GET' - * @param $key string the key within the superglobal - */ - public function blacklist($superGlobalName, $key) - { - $this->blacklist[$superGlobalName][] = $key; - } - - /** - * Checks all values within the given superGlobal array. - * Blacklisted values will be replaced by a equal length string cointaining only '*' characters. - * - * We intentionally dont rely on $GLOBALS as it depends on 'auto_globals_jit' php.ini setting. - * - * @param $superGlobal array One of the superglobal arrays - * @param $superGlobalName string the name of the superglobal array, e.g. '_GET' - * @return array $values without sensitive data - */ - private function masked(array $superGlobal, $superGlobalName) - { - $blacklisted = $this->blacklist[$superGlobalName]; - - $values = $superGlobal; - foreach ($blacklisted as $key) { - if (isset($superGlobal[$key])) { - $values[$key] = str_repeat('*', strlen($superGlobal[$key])); - } - } - return $values; - } -} diff --git a/vendor/filp/whoops/src/Whoops/Handler/XmlResponseHandler.php b/vendor/filp/whoops/src/Whoops/Handler/XmlResponseHandler.php deleted file mode 100644 index 0d0a577e..00000000 --- a/vendor/filp/whoops/src/Whoops/Handler/XmlResponseHandler.php +++ /dev/null @@ -1,107 +0,0 @@ - - */ - -namespace Whoops\Handler; - -use SimpleXMLElement; -use Whoops\Exception\Formatter; - -/** - * Catches an exception and converts it to an XML - * response. Additionally can also return exception - * frames for consumption by an API. - */ -class XmlResponseHandler extends Handler -{ - /** - * @var bool - */ - private $returnFrames = false; - - /** - * @param bool|null $returnFrames - * @return bool|$this - */ - public function addTraceToOutput($returnFrames = null) - { - if (func_num_args() == 0) { - return $this->returnFrames; - } - - $this->returnFrames = (bool) $returnFrames; - return $this; - } - - /** - * @return int - */ - public function handle() - { - $response = [ - 'error' => Formatter::formatExceptionAsDataArray( - $this->getInspector(), - $this->addTraceToOutput() - ), - ]; - - echo $this->toXml($response); - - return Handler::QUIT; - } - - /** - * @return string - */ - public function contentType() - { - return 'application/xml'; - } - - /** - * @param SimpleXMLElement $node Node to append data to, will be modified in place - * @param array|\Traversable $data - * @return SimpleXMLElement The modified node, for chaining - */ - private static function addDataToNode(\SimpleXMLElement $node, $data) - { - assert(is_array($data) || $data instanceof Traversable); - - foreach ($data as $key => $value) { - if (is_numeric($key)) { - // Convert the key to a valid string - $key = "unknownNode_". (string) $key; - } - - // Delete any char not allowed in XML element names - $key = preg_replace('/[^a-z0-9\-\_\.\:]/i', '', $key); - - if (is_array($value)) { - $child = $node->addChild($key); - self::addDataToNode($child, $value); - } else { - $value = str_replace('&', '&', print_r($value, true)); - $node->addChild($key, $value); - } - } - - return $node; - } - - /** - * The main function for converting to an XML document. - * - * @param array|\Traversable $data - * @return string XML - */ - private static function toXml($data) - { - assert(is_array($data) || $data instanceof Traversable); - - $node = simplexml_load_string(""); - - return self::addDataToNode($node, $data)->asXML(); - } -} diff --git a/vendor/filp/whoops/src/Whoops/Resources/css/whoops.base.css b/vendor/filp/whoops/src/Whoops/Resources/css/whoops.base.css deleted file mode 100644 index 8c08bbc9..00000000 --- a/vendor/filp/whoops/src/Whoops/Resources/css/whoops.base.css +++ /dev/null @@ -1,583 +0,0 @@ -body { - font: 12px "Helvetica Neue", helvetica, arial, sans-serif; - color: #131313; - background: #eeeeee; - padding:0; - margin: 0; - max-height: 100%; - - text-rendering: optimizeLegibility; -} - a { - text-decoration: none; - } - -.panel { - overflow-y: scroll; - height: 100%; - position: fixed; - margin: 0; - left: 0; - top: 0; -} - -.branding { - position: absolute; - top: 10px; - right: 20px; - color: #777777; - font-size: 10px; - z-index: 100; -} - .branding a { - color: #e95353; - } - -header { - color: white; - box-sizing: border-box; - background-color: #2a2a2a; - padding: 35px 40px; - max-height: 180px; - overflow: hidden; - transition: 0.5s; -} - - header.header-expand { - max-height: 1000px; - } - - .exc-title { - margin: 0; - color: #bebebe; - font-size: 14px; - } - .exc-title-primary { - color: #e95353; - } - - .exc-message { - font-size: 20px; - word-wrap: break-word; - margin: 4px 0 0 0; - color: white; - } - .exc-message span { - display: block; - } - .exc-message-empty-notice { - color: #a29d9d; - font-weight: 300; - } - -.details-container { - left: 30%; - width: 70%; - background: #fafafa; -} - .details { - padding: 5px; - } - - .details-heading { - color: #4288CE; - font-weight: 300; - padding-bottom: 10px; - margin-bottom: 10px; - border-bottom: 1px solid rgba(0, 0, 0, .1); - } - - .details pre.sf-dump { - white-space: pre; - word-wrap: inherit; - } - - .details pre.sf-dump, - .details pre.sf-dump .sf-dump-num, - .details pre.sf-dump .sf-dump-const, - .details pre.sf-dump .sf-dump-str, - .details pre.sf-dump .sf-dump-note, - .details pre.sf-dump .sf-dump-ref, - .details pre.sf-dump .sf-dump-public, - .details pre.sf-dump .sf-dump-protected, - .details pre.sf-dump .sf-dump-private, - .details pre.sf-dump .sf-dump-meta, - .details pre.sf-dump .sf-dump-key, - .details pre.sf-dump .sf-dump-index { - color: #463C54; - } - -.left-panel { - width: 30%; - background: #ded8d8; -} - - .frames-description { - background: rgba(0, 0, 0, .05); - padding: 8px 15px; - color: #a29d9d; - font-size: 11px; - } - - .frames-description.frames-description-application { - text-align: center; - font-size: 12px; - } - .frames-container.frames-container-application .frame:not(.frame-application) { - display: none; - } - - .frames-tab { - color: #a29d9d; - display: inline-block; - padding: 4px 8px; - margin: 0 2px; - border-radius: 3px; - } - - .frames-tab.frames-tab-active { - background-color: #2a2a2a; - color: #bebebe; - } - - .frame { - padding: 14px; - cursor: pointer; - transition: all 0.1s ease; - background: #eeeeee; - } - .frame:not(:last-child) { - border-bottom: 1px solid rgba(0, 0, 0, .05); - } - - .frame.active { - box-shadow: inset -5px 0 0 0 #4288CE; - color: #4288CE; - } - - .frame:not(.active):hover { - background: #BEE9EA; - } - - .frame-method-info { - margin-bottom: 10px; - } - - .frame-class, .frame-function, .frame-index { - font-size: 14px; - } - - .frame-index { - float: left; - } - - .frame-method-info { - margin-left: 24px; - } - - .frame-index { - font-size: 11px; - color: #a29d9d; - background-color: rgba(0, 0, 0, .05); - height: 18px; - width: 18px; - line-height: 18px; - border-radius: 5px; - padding: 0 1px 0 1px; - text-align: center; - display: inline-block; - } - - .frame-application .frame-index { - background-color: #2a2a2a; - color: #bebebe; - } - - .frame-file { - font-family: "Inconsolata", "Fira Mono", "Source Code Pro", Monaco, Consolas, "Lucida Console", monospace; - color: #a29d9d; - } - - .frame-file .editor-link { - color: #a29d9d; - } - - .frame-line { - font-weight: bold; - } - - .frame-line:before { - content: ":"; - } - - .frame-code { - padding: 5px; - background: #303030; - display: none; - } - - .frame-code.active { - display: block; - } - - .frame-code .frame-file { - color: #a29d9d; - padding: 12px 6px; - - border-bottom: none; - } - - .code-block { - padding: 10px; - margin: 0; - border-radius: 6px; - box-shadow: 0 3px 0 rgba(0, 0, 0, .05), - 0 10px 30px rgba(0, 0, 0, .05), - inset 0 0 1px 0 rgba(255, 255, 255, .07); - -moz-tab-size: 4; - -o-tab-size: 4; - tab-size: 4; - } - - .linenums { - margin: 0; - margin-left: 10px; - } - - .frame-comments { - border-top: none; - margin-top: 15px; - - font-size: 12px; - } - - .frame-comments.empty { - } - - .frame-comments.empty:before { - content: "No comments for this stack frame."; - font-weight: 300; - color: #a29d9d; - } - - .frame-comment { - padding: 10px; - color: #e3e3e3; - border-radius: 6px; - background-color: rgba(255, 255, 255, .05); - } - .frame-comment a { - font-weight: bold; - text-decoration: none; - } - .frame-comment a:hover { - color: #4bb1b1; - } - - .frame-comment:not(:last-child) { - border-bottom: 1px dotted rgba(0, 0, 0, .3); - } - - .frame-comment-context { - font-size: 10px; - color: white; - } - -.delimiter { - display: inline-block; -} - -.data-table-container label { - font-size: 16px; - color: #303030; - font-weight: bold; - margin: 10px 0; - - display: block; - - margin-bottom: 5px; - padding-bottom: 5px; -} - .data-table { - width: 100%; - margin-bottom: 10px; - } - - .data-table tbody { - font: 13px "Inconsolata", "Fira Mono", "Source Code Pro", Monaco, Consolas, "Lucida Console", monospace; - } - - .data-table thead { - display: none; - } - - .data-table tr { - padding: 5px 0; - } - - .data-table td:first-child { - width: 20%; - min-width: 130px; - overflow: hidden; - font-weight: bold; - color: #463C54; - padding-right: 5px; - - } - - .data-table td:last-child { - width: 80%; - -ms-word-break: break-all; - word-break: break-all; - word-break: break-word; - -webkit-hyphens: auto; - -moz-hyphens: auto; - hyphens: auto; - } - - .data-table span.empty { - color: rgba(0, 0, 0, .3); - font-weight: 300; - } - .data-table label.empty { - display: inline; - } - -.handler { - padding: 4px 0; - font: 14px "Inconsolata", "Fira Mono", "Source Code Pro", Monaco, Consolas, "Lucida Console", monospace; -} - -/* prettify code style -Uses the Doxy theme as a base */ -pre .str, code .str { color: #BCD42A; } /* string */ -pre .kwd, code .kwd { color: #4bb1b1; font-weight: bold; } /* keyword*/ -pre .com, code .com { color: #888; font-weight: bold; } /* comment */ -pre .typ, code .typ { color: #ef7c61; } /* type */ -pre .lit, code .lit { color: #BCD42A; } /* literal */ -pre .pun, code .pun { color: #fff; font-weight: bold; } /* punctuation */ -pre .pln, code .pln { color: #e9e4e5; } /* plaintext */ -pre .tag, code .tag { color: #4bb1b1; } /* html/xml tag */ -pre .htm, code .htm { color: #dda0dd; } /* html tag */ -pre .xsl, code .xsl { color: #d0a0d0; } /* xslt tag */ -pre .atn, code .atn { color: #ef7c61; font-weight: normal;} /* html/xml attribute name */ -pre .atv, code .atv { color: #bcd42a; } /* html/xml attribute value */ -pre .dec, code .dec { color: #606; } /* decimal */ -pre.code-block, code.code-block, .frame-args.code-block, .frame-args.code-block samp { - font-family: "Inconsolata", "Fira Mono", "Source Code Pro", Monaco, Consolas, "Lucida Console", monospace; - background: #333; - color: #e9e4e5; -} - pre.code-block { - white-space: pre-wrap; - } - - pre.code-block a, code.code-block a { - text-decoration:none; - } - - .linenums li { - color: #A5A5A5; - } - - .linenums li.current{ - background: rgba(255, 100, 100, .07); - } - .linenums li.current.active { - background: rgba(255, 100, 100, .17); - } - -pre:not(.prettyprinted) { - padding-left: 60px; -} - -#plain-exception { - display: none; -} - -#copy-button { - cursor: pointer; - border: 0; -} - -.clipboard { - opacity: .8; - background: none; - - color: rgba(255, 255, 255, 0.1); - box-shadow: inset 0 0 0 2px rgba(255, 255, 255, 0.1); - - border-radius: 3px; - - outline: none !important; -} - - .clipboard:hover { - box-shadow: inset 0 0 0 2px rgba(255, 255, 255, 0.3); - color: rgba(255, 255, 255, 0.3); - } - -/* inspired by githubs kbd styles */ -kbd { - -moz-border-bottom-colors: none; - -moz-border-left-colors: none; - -moz-border-right-colors: none; - -moz-border-top-colors: none; - background-color: #fcfcfc; - border-color: #ccc #ccc #bbb; - border-image: none; - border-style: solid; - border-width: 1px; - color: #555; - display: inline-block; - font-size: 11px; - line-height: 10px; - padding: 3px 5px; - vertical-align: middle; -} - - -/* == Media queries */ - -/* Expand the spacing in the details section */ -@media (min-width: 1000px) { - .details, .frame-code { - padding: 20px 40px; - } - - .details-container { - left: 32%; - width: 68%; - } - - .frames-container { - margin: 5px; - } - - .left-panel { - width: 32%; - } -} - -/* Stack panels */ -@media (max-width: 600px) { - .panel { - position: static; - width: 100%; - } -} - -/* Stack details tables */ -@media (max-width: 400px) { - .data-table, - .data-table tbody, - .data-table tbody tr, - .data-table tbody td { - display: block; - width: 100%; - } - - .data-table tbody tr:first-child { - padding-top: 0; - } - - .data-table tbody td:first-child, - .data-table tbody td:last-child { - padding-left: 0; - padding-right: 0; - } - - .data-table tbody td:last-child { - padding-top: 3px; - } -} - -.tooltipped { - position: relative -} -.tooltipped:after { - position: absolute; - z-index: 1000000; - display: none; - padding: 5px 8px; - color: #fff; - text-align: center; - text-decoration: none; - text-shadow: none; - text-transform: none; - letter-spacing: normal; - word-wrap: break-word; - white-space: pre; - pointer-events: none; - content: attr(aria-label); - background: rgba(0, 0, 0, 0.8); - border-radius: 3px; - -webkit-font-smoothing: subpixel-antialiased -} -.tooltipped:before { - position: absolute; - z-index: 1000001; - display: none; - width: 0; - height: 0; - color: rgba(0, 0, 0, 0.8); - pointer-events: none; - content: ""; - border: 5px solid transparent -} -.tooltipped:hover:before, -.tooltipped:hover:after, -.tooltipped:active:before, -.tooltipped:active:after, -.tooltipped:focus:before, -.tooltipped:focus:after { - display: inline-block; - text-decoration: none -} -.tooltipped-s:after { - top: 100%; - right: 50%; - margin-top: 5px -} -.tooltipped-s:before { - top: auto; - right: 50%; - bottom: -5px; - margin-right: -5px; - border-bottom-color: rgba(0, 0, 0, 0.8) -} - -pre.sf-dump { - padding: 0px !important; - margin: 0px !important; -} - -.search-for-help { - width: 85%; - padding: 0; - margin: 10px 0; - list-style-type: none; - display: inline-block; -} - .search-for-help li { - display: inline-block; - margin-right: 5px; - } - .search-for-help li:last-child { - margin-right: 0; - } - .search-for-help li a { - - } - .search-for-help li a i { - width: 16px; - height: 16px; - overflow: hidden; - display: block; - } - .search-for-help li a svg { - fill: #fff; - } - .search-for-help li a svg path { - background-size: contain; - } diff --git a/vendor/filp/whoops/src/Whoops/Resources/js/clipboard.min.js b/vendor/filp/whoops/src/Whoops/Resources/js/clipboard.min.js deleted file mode 100644 index 36a75a46..00000000 --- a/vendor/filp/whoops/src/Whoops/Resources/js/clipboard.min.js +++ /dev/null @@ -1,7 +0,0 @@ -/*! - * clipboard.js v1.5.3 - * https://zenorocha.github.io/clipboard.js - * - * Licensed MIT © Zeno Rocha - */ -!function(t){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var e;e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this,e.Clipboard=t()}}(function(){var t,e,n;return function t(e,n,r){function o(a,c){if(!n[a]){if(!e[a]){var s="function"==typeof require&&require;if(!c&&s)return s(a,!0);if(i)return i(a,!0);var u=new Error("Cannot find module '"+a+"'");throw u.code="MODULE_NOT_FOUND",u}var l=n[a]={exports:{}};e[a][0].call(l.exports,function(t){var n=e[a][1][t];return o(n?n:t)},l,l.exports,t,e,n,r)}return n[a].exports}for(var i="function"==typeof require&&require,a=0;ar;r++)n[r].fn.apply(n[r].ctx,e);return this},off:function(t,e){var n=this.e||(this.e={}),r=n[t],o=[];if(r&&e)for(var i=0,a=r.length;a>i;i++)r[i].fn!==e&&r[i].fn._!==e&&o.push(r[i]);return o.length?n[t]=o:delete n[t],this}},e.exports=r},{}],8:[function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{"default":t}}function o(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}n.__esModule=!0;var i=function(){function t(t,e){for(var n=0;n122||(e<65||h>90||d.push([Math.max(65,h)|32,Math.min(e,90)|32]),e<97||h>122||d.push([Math.max(97,h)&-33,Math.min(e,122)&-33]))}}d.sort(function(d,a){return d[0]-a[0]||a[1]-d[1]});a=[];c=[];for(f=0;fh[0]&&(h[1]+1>h[0]&&b.push("-"),b.push(g(h[1])));b.push("]");return b.join("")}function t(d){for(var a=d.source.match(/\[(?:[^\\\]]|\\[\S\s])*]|\\u[\dA-Fa-f]{4}|\\x[\dA-Fa-f]{2}|\\\d+|\\[^\dux]|\(\?[!:=]|[()^]|[^()[\\^]+/g),b=a.length,i=[],c=0,h=0;c=2&&d==="["?a[c]=j(e):d!=="\\"&&(a[c]=e.replace(/[A-Za-z]/g,function(d){d=d.charCodeAt(0);return"["+String.fromCharCode(d&-33,d|32)+"]"}));return a.join("")}for(var z=0,w=!1,k=!1,m=0,b=a.length;m=5&&"lang-"===f.substring(0, -5))&&!(u&&typeof u[1]==="string"))c=!1,f="src";c||(s[v]=f)}h=b;b+=v.length;if(c){c=u[1];var e=v.indexOf(c),p=e+c.length;u[2]&&(p=v.length-u[2].length,e=p-c.length);f=f.substring(5);E(k+h,v.substring(0,e),g,m);E(k+h+e,c,F(f,c),m);E(k+h+p,v.substring(p),g,m)}else m.push(k+h,f)}a.g=m}var j={},t;(function(){for(var g=a.concat(i),k=[],m={},b=0,o=g.length;b=0;)j[q.charAt(d)]=s;s=s[1];q=""+s;m.hasOwnProperty(q)||(k.push(s),m[q]=r)}k.push(/[\S\s]/);t= -O(k)})();var z=i.length;return g}function l(a){var i=[],g=[];a.tripleQuotedStrings?i.push(["str",/^(?:'''(?:[^'\\]|\\[\S\s]|''?(?=[^']))*(?:'''|$)|"""(?:[^"\\]|\\[\S\s]|""?(?=[^"]))*(?:"""|$)|'(?:[^'\\]|\\[\S\s])*(?:'|$)|"(?:[^"\\]|\\[\S\s])*(?:"|$))/,r,"'\""]):a.multiLineStrings?i.push(["str",/^(?:'(?:[^'\\]|\\[\S\s])*(?:'|$)|"(?:[^"\\]|\\[\S\s])*(?:"|$)|`(?:[^\\`]|\\[\S\s])*(?:`|$))/,r,"'\"`"]):i.push(["str",/^(?:'(?:[^\n\r'\\]|\\.)*(?:'|$)|"(?:[^\n\r"\\]|\\.)*(?:"|$))/,r,"\"'"]);a.verbatimStrings&& -g.push(["str",/^@"(?:[^"]|"")*(?:"|$)/,r]);var j=a.hashComments;j&&(a.cStyleComments?(j>1?i.push(["com",/^#(?:##(?:[^#]|#(?!##))*(?:###|$)|.*)/,r,"#"]):i.push(["com",/^#(?:(?:define|e(?:l|nd)if|else|error|ifn?def|include|line|pragma|undef|warning)\b|[^\n\r]*)/,r,"#"]),g.push(["str",/^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h(?:h|pp|\+\+)?|[a-z]\w*)>/,r])):i.push(["com",/^#[^\n\r]*/,r,"#"]));a.cStyleComments&&(g.push(["com",/^\/\/[^\n\r]*/,r]),g.push(["com",/^\/\*[\S\s]*?(?:\*\/|$)/, -r]));a.regexLiterals&&g.push(["lang-regex",/^(?:^^\.?|[+-]|[!=]={0,2}|#|%=?|&&?=?|\(|\*=?|[+-]=|->|\/=?|::?|<{1,3}=?|[,;?@[{~]|\^\^?=?|\|\|?=?|break|case|continue|delete|do|else|finally|instanceof|return|throw|try|typeof)\s*(\/(?=[^*/])(?:[^/[\\]|\\[\S\s]|\[(?:[^\\\]]|\\[\S\s])*(?:]|$))+\/)/]);(j=a.types)&&g.push(["typ",j]);a=(""+a.keywords).replace(/^ | $/g,"");a.length&&g.push(["kwd",RegExp("^(?:"+a.replace(/[\s,]+/g,"|")+")\\b"),r]);i.push(["pln",/^\s+/,r," \r\n\t\u00a0"]);g.push(["lit", -/^@[$_a-z][\w$@]*/i,r],["typ",/^(?:[@_]?[A-Z]+[a-z][\w$@]*|\w+_t\b)/,r],["pln",/^[$_a-z][\w$@]*/i,r],["lit",/^(?:0x[\da-f]+|(?:\d(?:_\d+)*\d*(?:\.\d*)?|\.\d\+)(?:e[+-]?\d+)?)[a-z]*/i,r,"0123456789"],["pln",/^\\[\S\s]?/,r],["pun",/^.[^\s\w"$'./@\\`]*/,r]);return x(i,g)}function G(a,i,g){function j(a){switch(a.nodeType){case 1:if(z.test(a.className))break;if("br"===a.nodeName)t(a),a.parentNode&&a.parentNode.removeChild(a);else for(a=a.firstChild;a;a=a.nextSibling)j(a);break;case 3:case 4:if(g){var b= -a.nodeValue,f=b.match(n);if(f){var i=b.substring(0,f.index);a.nodeValue=i;(b=b.substring(f.index+f[0].length))&&a.parentNode.insertBefore(k.createTextNode(b),a.nextSibling);t(a);i||a.parentNode.removeChild(a)}}}}function t(a){function i(a,b){var d=b?a.cloneNode(!1):a,e=a.parentNode;if(e){var e=i(e,1),f=a.nextSibling;e.appendChild(d);for(var g=f;g;g=f)f=g.nextSibling,e.appendChild(g)}return d}for(;!a.nextSibling;)if(a=a.parentNode,!a)return;for(var a=i(a.nextSibling,0),f;(f=a.parentNode)&&f.nodeType=== -1;)a=f;b.push(a)}for(var z=/(?:^|\s)nocode(?:\s|$)/,n=/\r\n?|\n/,k=a.ownerDocument,m=k.createElement("li");a.firstChild;)m.appendChild(a.firstChild);for(var b=[m],o=0;o=0;){var j= -i[g];A.hasOwnProperty(j)?C.console&&console.warn("cannot override language handler %s",j):A[j]=a}}function F(a,i){if(!a||!A.hasOwnProperty(a))a=/^\s*=e&&(j+=2);g>=p&&(s+=2)}}finally{if(c)c.style.display=h}}catch(A){C.console&&console.log(A&&A.stack?A.stack:A)}}var C=window,y=["break,continue,do,else,for,if,return,while"],B=[[y,"auto,case,char,const,default,double,enum,extern,float,goto,int,long,register,short,signed,sizeof,static,struct,switch,typedef,union,unsigned,void,volatile"],"catch,class,delete,false,import,new,operator,private,protected,public,this,throw,true,try,typeof"],I=[B,"alignof,align_union,asm,axiom,bool,concept,concept_map,const_cast,constexpr,decltype,dynamic_cast,explicit,export,friend,inline,late_check,mutable,namespace,nullptr,reinterpret_cast,static_assert,static_cast,template,typeid,typename,using,virtual,where"], -J=[B,"abstract,boolean,byte,extends,final,finally,implements,import,instanceof,null,native,package,strictfp,super,synchronized,throws,transient"],K=[J,"as,base,by,checked,decimal,delegate,descending,dynamic,event,fixed,foreach,from,group,implicit,in,interface,internal,into,is,let,lock,object,out,override,orderby,params,partial,readonly,ref,sbyte,sealed,stackalloc,string,select,uint,ulong,unchecked,unsafe,ushort,var,virtual,where"],B=[B,"debugger,eval,export,function,get,null,set,undefined,var,with,Infinity,NaN"], -L=[y,"and,as,assert,class,def,del,elif,except,exec,finally,from,global,import,in,is,lambda,nonlocal,not,or,pass,print,raise,try,with,yield,False,True,None"],M=[y,"alias,and,begin,case,class,def,defined,elsif,end,ensure,false,in,module,next,nil,not,or,redo,rescue,retry,self,super,then,true,undef,unless,until,when,yield,BEGIN,END"],y=[y,"case,done,elif,esac,eval,fi,function,in,local,set,then,until"],N=/^(DIR|FILE|vector|(de|priority_)?queue|list|stack|(const_)?iterator|(multi)?(set|map)|bitset|u?(int|float)\d*)\b/, -Q=/\S/,R=l({keywords:[I,K,B,"caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END"+L,M,y],hashComments:!0,cStyleComments:!0,multiLineStrings:!0,regexLiterals:!0}),A={};n(R,["default-code"]);n(x([],[["pln",/^[^]*(?:>|$)/],["com",/^<\!--[\S\s]*?(?:--\>|$)/],["lang-",/^<\?([\S\s]+?)(?:\?>|$)/],["lang-",/^<%([\S\s]+?)(?:%>|$)/],["pun",/^(?:<[%?]|[%?]>)/],["lang-", -/^]*>([\S\s]+?)<\/xmp\b[^>]*>/i],["lang-js",/^]*>([\S\s]*?)(<\/script\b[^>]*>)/i],["lang-css",/^]*>([\S\s]*?)(<\/style\b[^>]*>)/i],["lang-in.tag",/^(<\/?[a-z][^<>]*>)/i]]),["default-markup","htm","html","mxml","xhtml","xml","xsl"]);n(x([["pln",/^\s+/,r," \t\r\n"],["atv",/^(?:"[^"]*"?|'[^']*'?)/,r,"\"'"]],[["tag",/^^<\/?[a-z](?:[\w-.:]*\w)?|\/?>$/i],["atn",/^(?!style[\s=]|on)[a-z](?:[\w:-]*\w)?/i],["lang-uq.val",/^=\s*([^\s"'>]*(?:[^\s"'/>]|\/(?=\s)))/],["pun",/^[/<->]+/], -["lang-js",/^on\w+\s*=\s*"([^"]+)"/i],["lang-js",/^on\w+\s*=\s*'([^']+)'/i],["lang-js",/^on\w+\s*=\s*([^\s"'>]+)/i],["lang-css",/^style\s*=\s*"([^"]+)"/i],["lang-css",/^style\s*=\s*'([^']+)'/i],["lang-css",/^style\s*=\s*([^\s"'>]+)/i]]),["in.tag"]);n(x([],[["atv",/^[\S\s]+/]]),["uq.val"]);n(l({keywords:I,hashComments:!0,cStyleComments:!0,types:N}),["c","cc","cpp","cxx","cyc","m"]);n(l({keywords:"null,true,false"}),["json"]);n(l({keywords:K,hashComments:!0,cStyleComments:!0,verbatimStrings:!0,types:N}), -["cs"]);n(l({keywords:J,cStyleComments:!0}),["java"]);n(l({keywords:y,hashComments:!0,multiLineStrings:!0}),["bsh","csh","sh"]);n(l({keywords:L,hashComments:!0,multiLineStrings:!0,tripleQuotedStrings:!0}),["cv","py"]);n(l({keywords:"caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END",hashComments:!0,multiLineStrings:!0,regexLiterals:!0}),["perl","pl","pm"]);n(l({keywords:M,hashComments:!0, -multiLineStrings:!0,regexLiterals:!0}),["rb"]);n(l({keywords:B,cStyleComments:!0,regexLiterals:!0}),["js"]);n(l({keywords:"all,and,by,catch,class,else,extends,false,finally,for,if,in,is,isnt,loop,new,no,not,null,of,off,on,or,return,super,then,throw,true,try,unless,until,when,while,yes",hashComments:3,cStyleComments:!0,multilineStrings:!0,tripleQuotedStrings:!0,regexLiterals:!0}),["coffee"]);n(x([],[["str",/^[\S\s]+/]]),["regex"]);var S=C.PR={createSimpleLexer:x,registerLangHandler:n,sourceDecorator:l, -PR_ATTRIB_NAME:"atn",PR_ATTRIB_VALUE:"atv",PR_COMMENT:"com",PR_DECLARATION:"dec",PR_KEYWORD:"kwd",PR_LITERAL:"lit",PR_NOCODE:"nocode",PR_PLAIN:"pln",PR_PUNCTUATION:"pun",PR_SOURCE:"src",PR_STRING:"str",PR_TAG:"tag",PR_TYPE:"typ",prettyPrintOne:C.prettyPrintOne=function(a,i,g){var j=document.createElement("pre");j.innerHTML=a;g&&G(j,g,!0);H({h:i,j:g,c:j,i:1});return j.innerHTML},prettyPrint:C.prettyPrint=function(a){function i(){var u;for(var g=C.PR_SHOULD_USE_CONTINUATION?k.now()+250:Infinity;m= 145) { - $header.addClass('header-expand'); - } - }); - $header.on('mouseleave', function () { - $header.removeClass('header-expand'); - }); - - /* - * add prettyprint classes to our current active codeblock - * run prettyPrint() to highlight the active code - * scroll to the line when prettyprint is done - * highlight the current line - */ - var renderCurrentCodeblock = function(id) { - - // remove previous codeblocks so we only render the active one - $('.code-block').removeClass('prettyprint'); - - // pass the id in when we can for speed - if (typeof(id) === 'undefined' || typeof(id) === 'object') { - var id = /frame\-line\-([\d]*)/.exec($activeLine.attr('id'))[1]; - } - - $('#frame-code-linenums-' + id).addClass('prettyprint'); - $('#frame-code-args-' + id).addClass('prettyprint'); - - prettyPrint(highlightCurrentLine); - - } - - /* - * Highlight the active and neighboring lines for the current frame - * Adjust the offset to make sure that line is veritcally centered - */ - - var highlightCurrentLine = function() { - var activeLineNumber = +($activeLine.find('.frame-line').text()); - var $lines = $activeFrame.find('.linenums li'); - var firstLine = +($lines.first().val()); - - // We show more code than needed, purely for proper syntax highlighting - // Let’s hide a big chunk of that code and then scroll the remaining block - $activeFrame.find('.code-block').first().css({ - maxHeight: 345, - overflow: 'hidden', - }); - - var $offset = $($lines[activeLineNumber - firstLine - 10]); - if ($offset.length > 0) { - $offset[0].scrollIntoView(); - } - - $($lines[activeLineNumber - firstLine - 1]).addClass('current'); - $($lines[activeLineNumber - firstLine]).addClass('current active'); - $($lines[activeLineNumber - firstLine + 1]).addClass('current'); - - $container.scrollTop(0); - - } - - /* - * click handler for loading codeblocks - */ - - $frameContainer.on('click', '.frame', function() { - - var $this = $(this); - var id = /frame\-line\-([\d]*)/.exec($this.attr('id'))[1]; - var $codeFrame = $('#frame-code-' + id); - - if ($codeFrame) { - - $activeLine.removeClass('active'); - $activeFrame.removeClass('active'); - - $this.addClass('active'); - $codeFrame.addClass('active'); - - $activeLine = $this; - $activeFrame = $codeFrame; - - renderCurrentCodeblock(id); - - } - - }); - - var clipboard = new Clipboard('.clipboard'); - var showTooltip = function(elem, msg) { - elem.setAttribute('class', 'clipboard tooltipped tooltipped-s'); - elem.setAttribute('aria-label', msg); - }; - - clipboard.on('success', function(e) { - e.clearSelection(); - - showTooltip(e.trigger, 'Copied!'); - }); - - clipboard.on('error', function(e) { - showTooltip(e.trigger, fallbackMessage(e.action)); - }); - - var btn = document.querySelector('.clipboard'); - - btn.addEventListener('mouseleave', function(e) { - e.currentTarget.setAttribute('class', 'clipboard'); - e.currentTarget.removeAttribute('aria-label'); - }); - - function fallbackMessage(action) { - var actionMsg = ''; - var actionKey = (action === 'cut' ? 'X' : 'C'); - - if (/Mac/i.test(navigator.userAgent)) { - actionMsg = 'Press ⌘-' + actionKey + ' to ' + action; - } else { - actionMsg = 'Press Ctrl-' + actionKey + ' to ' + action; - } - - return actionMsg; - } - - function scrollIntoView($node, $parent) { - var nodeOffset = $node.offset(); - var nodeTop = nodeOffset.top; - var nodeBottom = nodeTop + nodeOffset.height; - var parentScrollTop = $parent.scrollTop(); - var parentHeight = $parent.height(); - - if (nodeTop < 0) { - $parent.scrollTop(parentScrollTop + nodeTop); - } else if (nodeBottom > parentHeight) { - $parent.scrollTop(parentScrollTop + nodeBottom - parentHeight); - } - } - - $(document).on('keydown', function(e) { - var applicationFrames = $frameContainer.hasClass('frames-container-application'), - frameClass = applicationFrames ? '.frame.frame-application' : '.frame'; - - if(e.ctrlKey || e.which === 74 || e.which === 75) { - // CTRL+Arrow-UP/k and Arrow-Down/j support: - // 1) select the next/prev element - // 2) make sure the newly selected element is within the view-scope - // 3) focus the (right) container, so arrow-up/down (without ctrl) scroll the details - if (e.which === 38 /* arrow up */ || e.which === 75 /* k */) { - $activeLine.prev(frameClass).click(); - scrollIntoView($activeLine, $leftPanel); - $container.focus(); - e.preventDefault(); - } else if (e.which === 40 /* arrow down */ || e.which === 74 /* j */) { - $activeLine.next(frameClass).click(); - scrollIntoView($activeLine, $leftPanel); - $container.focus(); - e.preventDefault(); - } - } else if (e.which == 78 /* n */) { - if ($appFramesTab.length) { - setActiveFramesTab($('.frames-tab:not(.frames-tab-active)')); - } - } - }); - - // Render late enough for highlightCurrentLine to be ready - renderCurrentCodeblock(); - - // Avoid to quit the page with some protocol (e.g. IntelliJ Platform REST API) - $ajaxEditors.on('click', function(e){ - e.preventDefault(); - $.get(this.href); - }); - - // Symfony VarDumper: Close the by default expanded objects - $('.sf-dump-expanded') - .removeClass('sf-dump-expanded') - .addClass('sf-dump-compact'); - $('.sf-dump-toggle span').html('▶'); - - // Make the given frames-tab active - function setActiveFramesTab($tab) { - $tab.addClass('frames-tab-active'); - - if ($tab.attr('id') == 'application-frames-tab') { - $frameContainer.addClass('frames-container-application'); - $allFramesTab.removeClass('frames-tab-active'); - } else { - $frameContainer.removeClass('frames-container-application'); - $appFramesTab.removeClass('frames-tab-active'); - } - } - - $('a.frames-tab').on('click', function(e) { - e.preventDefault(); - setActiveFramesTab($(this)); - }); -}); diff --git a/vendor/filp/whoops/src/Whoops/Resources/js/zepto.min.js b/vendor/filp/whoops/src/Whoops/Resources/js/zepto.min.js deleted file mode 100644 index 0b2f97ad..00000000 --- a/vendor/filp/whoops/src/Whoops/Resources/js/zepto.min.js +++ /dev/null @@ -1,2 +0,0 @@ -/* Zepto v1.1.3 - zepto event ajax form ie - zeptojs.com/license */ -var Zepto=function(){function L(t){return null==t?String(t):j[T.call(t)]||"object"}function Z(t){return"function"==L(t)}function $(t){return null!=t&&t==t.window}function _(t){return null!=t&&t.nodeType==t.DOCUMENT_NODE}function D(t){return"object"==L(t)}function R(t){return D(t)&&!$(t)&&Object.getPrototypeOf(t)==Object.prototype}function M(t){return"number"==typeof t.length}function k(t){return s.call(t,function(t){return null!=t})}function z(t){return t.length>0?n.fn.concat.apply([],t):t}function F(t){return t.replace(/::/g,"/").replace(/([A-Z]+)([A-Z][a-z])/g,"$1_$2").replace(/([a-z\d])([A-Z])/g,"$1_$2").replace(/_/g,"-").toLowerCase()}function q(t){return t in f?f[t]:f[t]=new RegExp("(^|\\s)"+t+"(\\s|$)")}function H(t,e){return"number"!=typeof e||c[F(t)]?e:e+"px"}function I(t){var e,n;return u[t]||(e=a.createElement(t),a.body.appendChild(e),n=getComputedStyle(e,"").getPropertyValue("display"),e.parentNode.removeChild(e),"none"==n&&(n="block"),u[t]=n),u[t]}function V(t){return"children"in t?o.call(t.children):n.map(t.childNodes,function(t){return 1==t.nodeType?t:void 0})}function U(n,i,r){for(e in i)r&&(R(i[e])||A(i[e]))?(R(i[e])&&!R(n[e])&&(n[e]={}),A(i[e])&&!A(n[e])&&(n[e]=[]),U(n[e],i[e],r)):i[e]!==t&&(n[e]=i[e])}function B(t,e){return null==e?n(t):n(t).filter(e)}function J(t,e,n,i){return Z(e)?e.call(t,n,i):e}function X(t,e,n){null==n?t.removeAttribute(e):t.setAttribute(e,n)}function W(e,n){var i=e.className,r=i&&i.baseVal!==t;return n===t?r?i.baseVal:i:void(r?i.baseVal=n:e.className=n)}function Y(t){var e;try{return t?"true"==t||("false"==t?!1:"null"==t?null:/^0/.test(t)||isNaN(e=Number(t))?/^[\[\{]/.test(t)?n.parseJSON(t):t:e):t}catch(i){return t}}function G(t,e){e(t);for(var n in t.childNodes)G(t.childNodes[n],e)}var t,e,n,i,C,N,r=[],o=r.slice,s=r.filter,a=window.document,u={},f={},c={"column-count":1,columns:1,"font-weight":1,"line-height":1,opacity:1,"z-index":1,zoom:1},l=/^\s*<(\w+|!)[^>]*>/,h=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,p=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,d=/^(?:body|html)$/i,m=/([A-Z])/g,g=["val","css","html","text","data","width","height","offset"],v=["after","prepend","before","append"],y=a.createElement("table"),x=a.createElement("tr"),b={tr:a.createElement("tbody"),tbody:y,thead:y,tfoot:y,td:x,th:x,"*":a.createElement("div")},w=/complete|loaded|interactive/,E=/^[\w-]*$/,j={},T=j.toString,S={},O=a.createElement("div"),P={tabindex:"tabIndex",readonly:"readOnly","for":"htmlFor","class":"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder",contenteditable:"contentEditable"},A=Array.isArray||function(t){return t instanceof Array};return S.matches=function(t,e){if(!e||!t||1!==t.nodeType)return!1;var n=t.webkitMatchesSelector||t.mozMatchesSelector||t.oMatchesSelector||t.matchesSelector;if(n)return n.call(t,e);var i,r=t.parentNode,o=!r;return o&&(r=O).appendChild(t),i=~S.qsa(r,e).indexOf(t),o&&O.removeChild(t),i},C=function(t){return t.replace(/-+(.)?/g,function(t,e){return e?e.toUpperCase():""})},N=function(t){return s.call(t,function(e,n){return t.indexOf(e)==n})},S.fragment=function(e,i,r){var s,u,f;return h.test(e)&&(s=n(a.createElement(RegExp.$1))),s||(e.replace&&(e=e.replace(p,"<$1>")),i===t&&(i=l.test(e)&&RegExp.$1),i in b||(i="*"),f=b[i],f.innerHTML=""+e,s=n.each(o.call(f.childNodes),function(){f.removeChild(this)})),R(r)&&(u=n(s),n.each(r,function(t,e){g.indexOf(t)>-1?u[t](e):u.attr(t,e)})),s},S.Z=function(t,e){return t=t||[],t.__proto__=n.fn,t.selector=e||"",t},S.isZ=function(t){return t instanceof S.Z},S.init=function(e,i){var r;if(!e)return S.Z();if("string"==typeof e)if(e=e.trim(),"<"==e[0]&&l.test(e))r=S.fragment(e,RegExp.$1,i),e=null;else{if(i!==t)return n(i).find(e);r=S.qsa(a,e)}else{if(Z(e))return n(a).ready(e);if(S.isZ(e))return e;if(A(e))r=k(e);else if(D(e))r=[e],e=null;else if(l.test(e))r=S.fragment(e.trim(),RegExp.$1,i),e=null;else{if(i!==t)return n(i).find(e);r=S.qsa(a,e)}}return S.Z(r,e)},n=function(t,e){return S.init(t,e)},n.extend=function(t){var e,n=o.call(arguments,1);return"boolean"==typeof t&&(e=t,t=n.shift()),n.forEach(function(n){U(t,n,e)}),t},S.qsa=function(t,e){var n,i="#"==e[0],r=!i&&"."==e[0],s=i||r?e.slice(1):e,a=E.test(s);return _(t)&&a&&i?(n=t.getElementById(s))?[n]:[]:1!==t.nodeType&&9!==t.nodeType?[]:o.call(a&&!i?r?t.getElementsByClassName(s):t.getElementsByTagName(e):t.querySelectorAll(e))},n.contains=function(t,e){return t!==e&&t.contains(e)},n.type=L,n.isFunction=Z,n.isWindow=$,n.isArray=A,n.isPlainObject=R,n.isEmptyObject=function(t){var e;for(e in t)return!1;return!0},n.inArray=function(t,e,n){return r.indexOf.call(e,t,n)},n.camelCase=C,n.trim=function(t){return null==t?"":String.prototype.trim.call(t)},n.uuid=0,n.support={},n.expr={},n.map=function(t,e){var n,r,o,i=[];if(M(t))for(r=0;r=0?e:e+this.length]},toArray:function(){return this.get()},size:function(){return this.length},remove:function(){return this.each(function(){null!=this.parentNode&&this.parentNode.removeChild(this)})},each:function(t){return r.every.call(this,function(e,n){return t.call(e,n,e)!==!1}),this},filter:function(t){return Z(t)?this.not(this.not(t)):n(s.call(this,function(e){return S.matches(e,t)}))},add:function(t,e){return n(N(this.concat(n(t,e))))},is:function(t){return this.length>0&&S.matches(this[0],t)},not:function(e){var i=[];if(Z(e)&&e.call!==t)this.each(function(t){e.call(this,t)||i.push(this)});else{var r="string"==typeof e?this.filter(e):M(e)&&Z(e.item)?o.call(e):n(e);this.forEach(function(t){r.indexOf(t)<0&&i.push(t)})}return n(i)},has:function(t){return this.filter(function(){return D(t)?n.contains(this,t):n(this).find(t).size()})},eq:function(t){return-1===t?this.slice(t):this.slice(t,+t+1)},first:function(){var t=this[0];return t&&!D(t)?t:n(t)},last:function(){var t=this[this.length-1];return t&&!D(t)?t:n(t)},find:function(t){var e,i=this;return e="object"==typeof t?n(t).filter(function(){var t=this;return r.some.call(i,function(e){return n.contains(e,t)})}):1==this.length?n(S.qsa(this[0],t)):this.map(function(){return S.qsa(this,t)})},closest:function(t,e){var i=this[0],r=!1;for("object"==typeof t&&(r=n(t));i&&!(r?r.indexOf(i)>=0:S.matches(i,t));)i=i!==e&&!_(i)&&i.parentNode;return n(i)},parents:function(t){for(var e=[],i=this;i.length>0;)i=n.map(i,function(t){return(t=t.parentNode)&&!_(t)&&e.indexOf(t)<0?(e.push(t),t):void 0});return B(e,t)},parent:function(t){return B(N(this.pluck("parentNode")),t)},children:function(t){return B(this.map(function(){return V(this)}),t)},contents:function(){return this.map(function(){return o.call(this.childNodes)})},siblings:function(t){return B(this.map(function(t,e){return s.call(V(e.parentNode),function(t){return t!==e})}),t)},empty:function(){return this.each(function(){this.innerHTML=""})},pluck:function(t){return n.map(this,function(e){return e[t]})},show:function(){return this.each(function(){"none"==this.style.display&&(this.style.display=""),"none"==getComputedStyle(this,"").getPropertyValue("display")&&(this.style.display=I(this.nodeName))})},replaceWith:function(t){return this.before(t).remove()},wrap:function(t){var e=Z(t);if(this[0]&&!e)var i=n(t).get(0),r=i.parentNode||this.length>1;return this.each(function(o){n(this).wrapAll(e?t.call(this,o):r?i.cloneNode(!0):i)})},wrapAll:function(t){if(this[0]){n(this[0]).before(t=n(t));for(var e;(e=t.children()).length;)t=e.first();n(t).append(this)}return this},wrapInner:function(t){var e=Z(t);return this.each(function(i){var r=n(this),o=r.contents(),s=e?t.call(this,i):t;o.length?o.wrapAll(s):r.append(s)})},unwrap:function(){return this.parent().each(function(){n(this).replaceWith(n(this).children())}),this},clone:function(){return this.map(function(){return this.cloneNode(!0)})},hide:function(){return this.css("display","none")},toggle:function(e){return this.each(function(){var i=n(this);(e===t?"none"==i.css("display"):e)?i.show():i.hide()})},prev:function(t){return n(this.pluck("previousElementSibling")).filter(t||"*")},next:function(t){return n(this.pluck("nextElementSibling")).filter(t||"*")},html:function(t){return 0===arguments.length?this.length>0?this[0].innerHTML:null:this.each(function(e){var i=this.innerHTML;n(this).empty().append(J(this,t,e,i))})},text:function(e){return 0===arguments.length?this.length>0?this[0].textContent:null:this.each(function(){this.textContent=e===t?"":""+e})},attr:function(n,i){var r;return"string"==typeof n&&i===t?0==this.length||1!==this[0].nodeType?t:"value"==n&&"INPUT"==this[0].nodeName?this.val():!(r=this[0].getAttribute(n))&&n in this[0]?this[0][n]:r:this.each(function(t){if(1===this.nodeType)if(D(n))for(e in n)X(this,e,n[e]);else X(this,n,J(this,i,t,this.getAttribute(n)))})},removeAttr:function(t){return this.each(function(){1===this.nodeType&&X(this,t)})},prop:function(e,n){return e=P[e]||e,n===t?this[0]&&this[0][e]:this.each(function(t){this[e]=J(this,n,t,this[e])})},data:function(e,n){var i=this.attr("data-"+e.replace(m,"-$1").toLowerCase(),n);return null!==i?Y(i):t},val:function(t){return 0===arguments.length?this[0]&&(this[0].multiple?n(this[0]).find("option").filter(function(){return this.selected}).pluck("value"):this[0].value):this.each(function(e){this.value=J(this,t,e,this.value)})},offset:function(t){if(t)return this.each(function(e){var i=n(this),r=J(this,t,e,i.offset()),o=i.offsetParent().offset(),s={top:r.top-o.top,left:r.left-o.left};"static"==i.css("position")&&(s.position="relative"),i.css(s)});if(0==this.length)return null;var e=this[0].getBoundingClientRect();return{left:e.left+window.pageXOffset,top:e.top+window.pageYOffset,width:Math.round(e.width),height:Math.round(e.height)}},css:function(t,i){if(arguments.length<2){var r=this[0],o=getComputedStyle(r,"");if(!r)return;if("string"==typeof t)return r.style[C(t)]||o.getPropertyValue(t);if(A(t)){var s={};return n.each(A(t)?t:[t],function(t,e){s[e]=r.style[C(e)]||o.getPropertyValue(e)}),s}}var a="";if("string"==L(t))i||0===i?a=F(t)+":"+H(t,i):this.each(function(){this.style.removeProperty(F(t))});else for(e in t)t[e]||0===t[e]?a+=F(e)+":"+H(e,t[e])+";":this.each(function(){this.style.removeProperty(F(e))});return this.each(function(){this.style.cssText+=";"+a})},index:function(t){return t?this.indexOf(n(t)[0]):this.parent().children().indexOf(this[0])},hasClass:function(t){return t?r.some.call(this,function(t){return this.test(W(t))},q(t)):!1},addClass:function(t){return t?this.each(function(e){i=[];var r=W(this),o=J(this,t,e,r);o.split(/\s+/g).forEach(function(t){n(this).hasClass(t)||i.push(t)},this),i.length&&W(this,r+(r?" ":"")+i.join(" "))}):this},removeClass:function(e){return this.each(function(n){return e===t?W(this,""):(i=W(this),J(this,e,n,i).split(/\s+/g).forEach(function(t){i=i.replace(q(t)," ")}),void W(this,i.trim()))})},toggleClass:function(e,i){return e?this.each(function(r){var o=n(this),s=J(this,e,r,W(this));s.split(/\s+/g).forEach(function(e){(i===t?!o.hasClass(e):i)?o.addClass(e):o.removeClass(e)})}):this},scrollTop:function(e){if(this.length){var n="scrollTop"in this[0];return e===t?n?this[0].scrollTop:this[0].pageYOffset:this.each(n?function(){this.scrollTop=e}:function(){this.scrollTo(this.scrollX,e)})}},scrollLeft:function(e){if(this.length){var n="scrollLeft"in this[0];return e===t?n?this[0].scrollLeft:this[0].pageXOffset:this.each(n?function(){this.scrollLeft=e}:function(){this.scrollTo(e,this.scrollY)})}},position:function(){if(this.length){var t=this[0],e=this.offsetParent(),i=this.offset(),r=d.test(e[0].nodeName)?{top:0,left:0}:e.offset();return i.top-=parseFloat(n(t).css("margin-top"))||0,i.left-=parseFloat(n(t).css("margin-left"))||0,r.top+=parseFloat(n(e[0]).css("border-top-width"))||0,r.left+=parseFloat(n(e[0]).css("border-left-width"))||0,{top:i.top-r.top,left:i.left-r.left}}},offsetParent:function(){return this.map(function(){for(var t=this.offsetParent||a.body;t&&!d.test(t.nodeName)&&"static"==n(t).css("position");)t=t.offsetParent;return t})}},n.fn.detach=n.fn.remove,["width","height"].forEach(function(e){var i=e.replace(/./,function(t){return t[0].toUpperCase()});n.fn[e]=function(r){var o,s=this[0];return r===t?$(s)?s["inner"+i]:_(s)?s.documentElement["scroll"+i]:(o=this.offset())&&o[e]:this.each(function(t){s=n(this),s.css(e,J(this,r,t,s[e]()))})}}),v.forEach(function(t,e){var i=e%2;n.fn[t]=function(){var t,o,r=n.map(arguments,function(e){return t=L(e),"object"==t||"array"==t||null==e?e:S.fragment(e)}),s=this.length>1;return r.length<1?this:this.each(function(t,a){o=i?a:a.parentNode,a=0==e?a.nextSibling:1==e?a.firstChild:2==e?a:null,r.forEach(function(t){if(s)t=t.cloneNode(!0);else if(!o)return n(t).remove();G(o.insertBefore(t,a),function(t){null==t.nodeName||"SCRIPT"!==t.nodeName.toUpperCase()||t.type&&"text/javascript"!==t.type||t.src||window.eval.call(window,t.innerHTML)})})})},n.fn[i?t+"To":"insert"+(e?"Before":"After")]=function(e){return n(e)[t](this),this}}),S.Z.prototype=n.fn,S.uniq=N,S.deserializeValue=Y,n.zepto=S,n}();window.Zepto=Zepto,void 0===window.$&&(window.$=Zepto),function(t){function l(t){return t._zid||(t._zid=e++)}function h(t,e,n,i){if(e=p(e),e.ns)var r=d(e.ns);return(s[l(t)]||[]).filter(function(t){return!(!t||e.e&&t.e!=e.e||e.ns&&!r.test(t.ns)||n&&l(t.fn)!==l(n)||i&&t.sel!=i)})}function p(t){var e=(""+t).split(".");return{e:e[0],ns:e.slice(1).sort().join(" ")}}function d(t){return new RegExp("(?:^| )"+t.replace(" "," .* ?")+"(?: |$)")}function m(t,e){return t.del&&!u&&t.e in f||!!e}function g(t){return c[t]||u&&f[t]||t}function v(e,i,r,o,a,u,f){var h=l(e),d=s[h]||(s[h]=[]);i.split(/\s/).forEach(function(i){if("ready"==i)return t(document).ready(r);var s=p(i);s.fn=r,s.sel=a,s.e in c&&(r=function(e){var n=e.relatedTarget;return!n||n!==this&&!t.contains(this,n)?s.fn.apply(this,arguments):void 0}),s.del=u;var l=u||r;s.proxy=function(t){if(t=j(t),!t.isImmediatePropagationStopped()){t.data=o;var i=l.apply(e,t._args==n?[t]:[t].concat(t._args));return i===!1&&(t.preventDefault(),t.stopPropagation()),i}},s.i=d.length,d.push(s),"addEventListener"in e&&e.addEventListener(g(s.e),s.proxy,m(s,f))})}function y(t,e,n,i,r){var o=l(t);(e||"").split(/\s/).forEach(function(e){h(t,e,n,i).forEach(function(e){delete s[o][e.i],"removeEventListener"in t&&t.removeEventListener(g(e.e),e.proxy,m(e,r))})})}function j(e,i){return(i||!e.isDefaultPrevented)&&(i||(i=e),t.each(E,function(t,n){var r=i[t];e[t]=function(){return this[n]=x,r&&r.apply(i,arguments)},e[n]=b}),(i.defaultPrevented!==n?i.defaultPrevented:"returnValue"in i?i.returnValue===!1:i.getPreventDefault&&i.getPreventDefault())&&(e.isDefaultPrevented=x)),e}function T(t){var e,i={originalEvent:t};for(e in t)w.test(e)||t[e]===n||(i[e]=t[e]);return j(i,t)}var n,e=1,i=Array.prototype.slice,r=t.isFunction,o=function(t){return"string"==typeof t},s={},a={},u="onfocusin"in window,f={focus:"focusin",blur:"focusout"},c={mouseenter:"mouseover",mouseleave:"mouseout"};a.click=a.mousedown=a.mouseup=a.mousemove="MouseEvents",t.event={add:v,remove:y},t.proxy=function(e,n){if(r(e)){var i=function(){return e.apply(n,arguments)};return i._zid=l(e),i}if(o(n))return t.proxy(e[n],e);throw new TypeError("expected function")},t.fn.bind=function(t,e,n){return this.on(t,e,n)},t.fn.unbind=function(t,e){return this.off(t,e)},t.fn.one=function(t,e,n,i){return this.on(t,e,n,i,1)};var x=function(){return!0},b=function(){return!1},w=/^([A-Z]|returnValue$|layer[XY]$)/,E={preventDefault:"isDefaultPrevented",stopImmediatePropagation:"isImmediatePropagationStopped",stopPropagation:"isPropagationStopped"};t.fn.delegate=function(t,e,n){return this.on(e,t,n)},t.fn.undelegate=function(t,e,n){return this.off(e,t,n)},t.fn.live=function(e,n){return t(document.body).delegate(this.selector,e,n),this},t.fn.die=function(e,n){return t(document.body).undelegate(this.selector,e,n),this},t.fn.on=function(e,s,a,u,f){var c,l,h=this;return e&&!o(e)?(t.each(e,function(t,e){h.on(t,s,a,e,f)}),h):(o(s)||r(u)||u===!1||(u=a,a=s,s=n),(r(a)||a===!1)&&(u=a,a=n),u===!1&&(u=b),h.each(function(n,r){f&&(c=function(t){return y(r,t.type,u),u.apply(this,arguments)}),s&&(l=function(e){var n,o=t(e.target).closest(s,r).get(0);return o&&o!==r?(n=t.extend(T(e),{currentTarget:o,liveFired:r}),(c||u).apply(o,[n].concat(i.call(arguments,1)))):void 0}),v(r,e,u,a,s,l||c)}))},t.fn.off=function(e,i,s){var a=this;return e&&!o(e)?(t.each(e,function(t,e){a.off(t,i,e)}),a):(o(i)||r(s)||s===!1||(s=i,i=n),s===!1&&(s=b),a.each(function(){y(this,e,s,i)}))},t.fn.trigger=function(e,n){return e=o(e)||t.isPlainObject(e)?t.Event(e):j(e),e._args=n,this.each(function(){"dispatchEvent"in this?this.dispatchEvent(e):t(this).triggerHandler(e,n)})},t.fn.triggerHandler=function(e,n){var i,r;return this.each(function(s,a){i=T(o(e)?t.Event(e):e),i._args=n,i.target=a,t.each(h(a,e.type||e),function(t,e){return r=e.proxy(i),i.isImmediatePropagationStopped()?!1:void 0})}),r},"focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select keydown keypress keyup error".split(" ").forEach(function(e){t.fn[e]=function(t){return t?this.bind(e,t):this.trigger(e)}}),["focus","blur"].forEach(function(e){t.fn[e]=function(t){return t?this.bind(e,t):this.each(function(){try{this[e]()}catch(t){}}),this}}),t.Event=function(t,e){o(t)||(e=t,t=e.type);var n=document.createEvent(a[t]||"Events"),i=!0;if(e)for(var r in e)"bubbles"==r?i=!!e[r]:n[r]=e[r];return n.initEvent(t,i,!0),j(n)}}(Zepto),function(t){function l(e,n,i){var r=t.Event(n);return t(e).trigger(r,i),!r.isDefaultPrevented()}function h(t,e,i,r){return t.global?l(e||n,i,r):void 0}function p(e){e.global&&0===t.active++&&h(e,null,"ajaxStart")}function d(e){e.global&&!--t.active&&h(e,null,"ajaxStop")}function m(t,e){var n=e.context;return e.beforeSend.call(n,t,e)===!1||h(e,n,"ajaxBeforeSend",[t,e])===!1?!1:void h(e,n,"ajaxSend",[t,e])}function g(t,e,n,i){var r=n.context,o="success";n.success.call(r,t,o,e),i&&i.resolveWith(r,[t,o,e]),h(n,r,"ajaxSuccess",[e,n,t]),y(o,e,n)}function v(t,e,n,i,r){var o=i.context;i.error.call(o,n,e,t),r&&r.rejectWith(o,[n,e,t]),h(i,o,"ajaxError",[n,i,t||e]),y(e,n,i)}function y(t,e,n){var i=n.context;n.complete.call(i,e,t),h(n,i,"ajaxComplete",[e,n]),d(n)}function x(){}function b(t){return t&&(t=t.split(";",2)[0]),t&&(t==f?"html":t==u?"json":s.test(t)?"script":a.test(t)&&"xml")||"text"}function w(t,e){return""==e?t:(t+"&"+e).replace(/[&?]{1,2}/,"?")}function E(e){e.processData&&e.data&&"string"!=t.type(e.data)&&(e.data=t.param(e.data,e.traditional)),!e.data||e.type&&"GET"!=e.type.toUpperCase()||(e.url=w(e.url,e.data),e.data=void 0)}function j(e,n,i,r){return t.isFunction(n)&&(r=i,i=n,n=void 0),t.isFunction(i)||(r=i,i=void 0),{url:e,data:n,success:i,dataType:r}}function S(e,n,i,r){var o,s=t.isArray(n),a=t.isPlainObject(n);t.each(n,function(n,u){o=t.type(u),r&&(n=i?r:r+"["+(a||"object"==o||"array"==o?n:"")+"]"),!r&&s?e.add(u.name,u.value):"array"==o||!i&&"object"==o?S(e,u,i,n):e.add(n,u)})}var i,r,e=0,n=window.document,o=/)<[^<]*)*<\/script>/gi,s=/^(?:text|application)\/javascript/i,a=/^(?:text|application)\/xml/i,u="application/json",f="text/html",c=/^\s*$/;t.active=0,t.ajaxJSONP=function(i,r){if(!("type"in i))return t.ajax(i);var f,h,o=i.jsonpCallback,s=(t.isFunction(o)?o():o)||"jsonp"+ ++e,a=n.createElement("script"),u=window[s],c=function(e){t(a).triggerHandler("error",e||"abort")},l={abort:c};return r&&r.promise(l),t(a).on("load error",function(e,n){clearTimeout(h),t(a).off().remove(),"error"!=e.type&&f?g(f[0],l,i,r):v(null,n||"error",l,i,r),window[s]=u,f&&t.isFunction(u)&&u(f[0]),u=f=void 0}),m(l,i)===!1?(c("abort"),l):(window[s]=function(){f=arguments},a.src=i.url.replace(/\?(.+)=\?/,"?$1="+s),n.head.appendChild(a),i.timeout>0&&(h=setTimeout(function(){c("timeout")},i.timeout)),l)},t.ajaxSettings={type:"GET",beforeSend:x,success:x,error:x,complete:x,context:null,global:!0,xhr:function(){return new window.XMLHttpRequest},accepts:{script:"text/javascript, application/javascript, application/x-javascript",json:u,xml:"application/xml, text/xml",html:f,text:"text/plain"},crossDomain:!1,timeout:0,processData:!0,cache:!0},t.ajax=function(e){var n=t.extend({},e||{}),o=t.Deferred&&t.Deferred();for(i in t.ajaxSettings)void 0===n[i]&&(n[i]=t.ajaxSettings[i]);p(n),n.crossDomain||(n.crossDomain=/^([\w-]+:)?\/\/([^\/]+)/.test(n.url)&&RegExp.$2!=window.location.host),n.url||(n.url=window.location.toString()),E(n),n.cache===!1&&(n.url=w(n.url,"_="+Date.now()));var s=n.dataType,a=/\?.+=\?/.test(n.url);if("jsonp"==s||a)return a||(n.url=w(n.url,n.jsonp?n.jsonp+"=?":n.jsonp===!1?"":"callback=?")),t.ajaxJSONP(n,o);var j,u=n.accepts[s],f={},l=function(t,e){f[t.toLowerCase()]=[t,e]},h=/^([\w-]+:)\/\//.test(n.url)?RegExp.$1:window.location.protocol,d=n.xhr(),y=d.setRequestHeader;if(o&&o.promise(d),n.crossDomain||l("X-Requested-With","XMLHttpRequest"),l("Accept",u||"*/*"),(u=n.mimeType||u)&&(u.indexOf(",")>-1&&(u=u.split(",",2)[0]),d.overrideMimeType&&d.overrideMimeType(u)),(n.contentType||n.contentType!==!1&&n.data&&"GET"!=n.type.toUpperCase())&&l("Content-Type",n.contentType||"application/x-www-form-urlencoded"),n.headers)for(r in n.headers)l(r,n.headers[r]);if(d.setRequestHeader=l,d.onreadystatechange=function(){if(4==d.readyState){d.onreadystatechange=x,clearTimeout(j);var e,i=!1;if(d.status>=200&&d.status<300||304==d.status||0==d.status&&"file:"==h){s=s||b(n.mimeType||d.getResponseHeader("content-type")),e=d.responseText;try{"script"==s?(1,eval)(e):"xml"==s?e=d.responseXML:"json"==s&&(e=c.test(e)?null:t.parseJSON(e))}catch(r){i=r}i?v(i,"parsererror",d,n,o):g(e,d,n,o)}else v(d.statusText||null,d.status?"error":"abort",d,n,o)}},m(d,n)===!1)return d.abort(),v(null,"abort",d,n,o),d;if(n.xhrFields)for(r in n.xhrFields)d[r]=n.xhrFields[r];var T="async"in n?n.async:!0;d.open(n.type,n.url,T,n.username,n.password);for(r in f)y.apply(d,f[r]);return n.timeout>0&&(j=setTimeout(function(){d.onreadystatechange=x,d.abort(),v(null,"timeout",d,n,o)},n.timeout)),d.send(n.data?n.data:null),d},t.get=function(){return t.ajax(j.apply(null,arguments))},t.post=function(){var e=j.apply(null,arguments);return e.type="POST",t.ajax(e)},t.getJSON=function(){var e=j.apply(null,arguments);return e.dataType="json",t.ajax(e)},t.fn.load=function(e,n,i){if(!this.length)return this;var a,r=this,s=e.split(/\s/),u=j(e,n,i),f=u.success;return s.length>1&&(u.url=s[0],a=s[1]),u.success=function(e){r.html(a?t("
").html(e.replace(o,"")).find(a):e),f&&f.apply(r,arguments)},t.ajax(u),this};var T=encodeURIComponent;t.param=function(t,e){var n=[];return n.add=function(t,e){this.push(T(t)+"="+T(e))},S(n,t,e),n.join("&").replace(/%20/g,"+")}}(Zepto),function(t){t.fn.serializeArray=function(){var n,e=[];return t([].slice.call(this.get(0).elements)).each(function(){n=t(this);var i=n.attr("type");"fieldset"!=this.nodeName.toLowerCase()&&!this.disabled&&"submit"!=i&&"reset"!=i&&"button"!=i&&("radio"!=i&&"checkbox"!=i||this.checked)&&e.push({name:n.attr("name"),value:n.val()})}),e},t.fn.serialize=function(){var t=[];return this.serializeArray().forEach(function(e){t.push(encodeURIComponent(e.name)+"="+encodeURIComponent(e.value))}),t.join("&")},t.fn.submit=function(e){if(e)this.bind("submit",e);else if(this.length){var n=t.Event("submit");this.eq(0).trigger(n),n.isDefaultPrevented()||this.get(0).submit()}return this}}(Zepto),function(t){"__proto__"in{}||t.extend(t.zepto,{Z:function(e,n){return e=e||[],t.extend(e,t.fn),e.selector=n||"",e.__Z=!0,e},isZ:function(e){return"array"===t.type(e)&&"__Z"in e}});try{getComputedStyle(void 0)}catch(e){var n=getComputedStyle;window.getComputedStyle=function(t){try{return n(t)}catch(e){return null}}}}(Zepto); diff --git a/vendor/filp/whoops/src/Whoops/Resources/views/env_details.html.php b/vendor/filp/whoops/src/Whoops/Resources/views/env_details.html.php deleted file mode 100644 index 8db1493c..00000000 --- a/vendor/filp/whoops/src/Whoops/Resources/views/env_details.html.php +++ /dev/null @@ -1,42 +0,0 @@ - -
-

Environment & details:

- -
- $data): ?> -
- - - - - - - - - - $value): ?> - - - - - -
KeyValue
escape($k) ?>dump($value) ?>
- - - empty - -
- -
- - -
- - $handler): ?> -
- . escape(get_class($handler)) ?> -
- -
- -
diff --git a/vendor/filp/whoops/src/Whoops/Resources/views/frame_code.html.php b/vendor/filp/whoops/src/Whoops/Resources/views/frame_code.html.php deleted file mode 100644 index 534f7c34..00000000 --- a/vendor/filp/whoops/src/Whoops/Resources/views/frame_code.html.php +++ /dev/null @@ -1,63 +0,0 @@ - -
- $frame): ?> - getLine(); ?> -
- - getFileLines($line - 20, 40); - - // getFileLines can return null if there is no source code - if ($range): - $range = array_map(function ($line) { return empty($line) ? ' ' : $line;}, $range); - $start = key($range) + 1; - $code = join("\n", $range); - ?> -
escape($code) ?>
- - - - - dumpArgs($frame); ?> - -
- Arguments -
-
- -
- - - getComments(); - ?> -
- $comment): ?> - -
- escape($context) ?> - escapeButPreserveUris($comment) ?> -
- -
- -
- -
diff --git a/vendor/filp/whoops/src/Whoops/Resources/views/frame_list.html.php b/vendor/filp/whoops/src/Whoops/Resources/views/frame_list.html.php deleted file mode 100644 index a4bc338c..00000000 --- a/vendor/filp/whoops/src/Whoops/Resources/views/frame_list.html.php +++ /dev/null @@ -1,17 +0,0 @@ - - $frame): ?> -
- -
- breakOnDelimiter('\\', $tpl->escape($frame->getClass() ?: '')) ?> - breakOnDelimiter('\\', $tpl->escape($frame->getFunction() ?: '')) ?> -
- -
- getFile() ? $tpl->breakOnDelimiter('/', $tpl->shorten($tpl->escape($frame->getFile()))) : '<#unknown>' ?>getLine() ?> -
-
-"> - render($frame_list) ?> -
\ No newline at end of file diff --git a/vendor/filp/whoops/src/Whoops/Resources/views/frames_description.html.php b/vendor/filp/whoops/src/Whoops/Resources/views/frames_description.html.php deleted file mode 100644 index e32cf889..00000000 --- a/vendor/filp/whoops/src/Whoops/Resources/views/frames_description.html.php +++ /dev/null @@ -1,20 +0,0 @@ -
- - - - Application frames (countIsApplication() ?>) - - - - Application frames (countIsApplication() ?>) - - - - All frames () - - - - Stack frames () - - -
diff --git a/vendor/filp/whoops/src/Whoops/Resources/views/header.html.php b/vendor/filp/whoops/src/Whoops/Resources/views/header.html.php deleted file mode 100644 index 11e1c1db..00000000 --- a/vendor/filp/whoops/src/Whoops/Resources/views/header.html.php +++ /dev/null @@ -1,74 +0,0 @@ -
-
- $nameSection): ?> - - escape($nameSection) ?> - - escape($nameSection) . ' \\' ?> - - - - (escape($code) ?>) - -
- -
- - escape($message) ?> - - No message - - - - - escape($plain_exception) ?> - -
-
diff --git a/vendor/filp/whoops/src/Whoops/Resources/views/header_outer.html.php b/vendor/filp/whoops/src/Whoops/Resources/views/header_outer.html.php deleted file mode 100644 index f682cbba..00000000 --- a/vendor/filp/whoops/src/Whoops/Resources/views/header_outer.html.php +++ /dev/null @@ -1,3 +0,0 @@ -
- render($header) ?> -
diff --git a/vendor/filp/whoops/src/Whoops/Resources/views/layout.html.php b/vendor/filp/whoops/src/Whoops/Resources/views/layout.html.php deleted file mode 100644 index 6b676cc6..00000000 --- a/vendor/filp/whoops/src/Whoops/Resources/views/layout.html.php +++ /dev/null @@ -1,33 +0,0 @@ - - - - - - - - <?php echo $tpl->escape($page_title) ?> - - - - - -
-
- - render($panel_left_outer) ?> - - render($panel_details_outer) ?> - -
-
- - - - - - - diff --git a/vendor/filp/whoops/src/Whoops/Resources/views/panel_details.html.php b/vendor/filp/whoops/src/Whoops/Resources/views/panel_details.html.php deleted file mode 100644 index a85e4511..00000000 --- a/vendor/filp/whoops/src/Whoops/Resources/views/panel_details.html.php +++ /dev/null @@ -1,2 +0,0 @@ -render($frame_code) ?> -render($env_details) ?> \ No newline at end of file diff --git a/vendor/filp/whoops/src/Whoops/Resources/views/panel_details_outer.html.php b/vendor/filp/whoops/src/Whoops/Resources/views/panel_details_outer.html.php deleted file mode 100644 index 8162d8c5..00000000 --- a/vendor/filp/whoops/src/Whoops/Resources/views/panel_details_outer.html.php +++ /dev/null @@ -1,3 +0,0 @@ -
- render($panel_details) ?> -
\ No newline at end of file diff --git a/vendor/filp/whoops/src/Whoops/Resources/views/panel_left.html.php b/vendor/filp/whoops/src/Whoops/Resources/views/panel_left.html.php deleted file mode 100644 index 7e652e46..00000000 --- a/vendor/filp/whoops/src/Whoops/Resources/views/panel_left.html.php +++ /dev/null @@ -1,4 +0,0 @@ -render($header_outer); -$tpl->render($frames_description); -$tpl->render($frames_container); diff --git a/vendor/filp/whoops/src/Whoops/Resources/views/panel_left_outer.html.php b/vendor/filp/whoops/src/Whoops/Resources/views/panel_left_outer.html.php deleted file mode 100644 index 77b575c1..00000000 --- a/vendor/filp/whoops/src/Whoops/Resources/views/panel_left_outer.html.php +++ /dev/null @@ -1,3 +0,0 @@ -
- render($panel_left) ?> -
\ No newline at end of file diff --git a/vendor/filp/whoops/src/Whoops/Run.php b/vendor/filp/whoops/src/Whoops/Run.php deleted file mode 100644 index 1d51f1cf..00000000 --- a/vendor/filp/whoops/src/Whoops/Run.php +++ /dev/null @@ -1,410 +0,0 @@ - - */ - -namespace Whoops; - -use InvalidArgumentException; -use Whoops\Exception\ErrorException; -use Whoops\Exception\Inspector; -use Whoops\Handler\CallbackHandler; -use Whoops\Handler\Handler; -use Whoops\Handler\HandlerInterface; -use Whoops\Util\Misc; -use Whoops\Util\SystemFacade; - -final class Run implements RunInterface -{ - private $isRegistered; - private $allowQuit = true; - private $sendOutput = true; - - /** - * @var integer|false - */ - private $sendHttpCode = 500; - - /** - * @var HandlerInterface[] - */ - private $handlerStack = []; - - private $silencedPatterns = []; - - private $system; - - public function __construct(SystemFacade $system = null) - { - $this->system = $system ?: new SystemFacade; - } - - /** - * Pushes a handler to the end of the stack - * - * @throws InvalidArgumentException If argument is not callable or instance of HandlerInterface - * @param Callable|HandlerInterface $handler - * @return Run - */ - public function pushHandler($handler) - { - if (is_callable($handler)) { - $handler = new CallbackHandler($handler); - } - - if (!$handler instanceof HandlerInterface) { - throw new InvalidArgumentException( - "Argument to " . __METHOD__ . " must be a callable, or instance of " - . "Whoops\\Handler\\HandlerInterface" - ); - } - - $this->handlerStack[] = $handler; - return $this; - } - - /** - * Removes the last handler in the stack and returns it. - * Returns null if there"s nothing else to pop. - * @return null|HandlerInterface - */ - public function popHandler() - { - return array_pop($this->handlerStack); - } - - /** - * Returns an array with all handlers, in the - * order they were added to the stack. - * @return array - */ - public function getHandlers() - { - return $this->handlerStack; - } - - /** - * Clears all handlers in the handlerStack, including - * the default PrettyPage handler. - * @return Run - */ - public function clearHandlers() - { - $this->handlerStack = []; - return $this; - } - - /** - * @param \Throwable $exception - * @return Inspector - */ - private function getInspector($exception) - { - return new Inspector($exception); - } - - /** - * Registers this instance as an error handler. - * @return Run - */ - public function register() - { - if (!$this->isRegistered) { - // Workaround PHP bug 42098 - // https://bugs.php.net/bug.php?id=42098 - class_exists("\\Whoops\\Exception\\ErrorException"); - class_exists("\\Whoops\\Exception\\FrameCollection"); - class_exists("\\Whoops\\Exception\\Frame"); - class_exists("\\Whoops\\Exception\\Inspector"); - - $this->system->setErrorHandler([$this, self::ERROR_HANDLER]); - $this->system->setExceptionHandler([$this, self::EXCEPTION_HANDLER]); - $this->system->registerShutdownFunction([$this, self::SHUTDOWN_HANDLER]); - - $this->isRegistered = true; - } - - return $this; - } - - /** - * Unregisters all handlers registered by this Whoops\Run instance - * @return Run - */ - public function unregister() - { - if ($this->isRegistered) { - $this->system->restoreExceptionHandler(); - $this->system->restoreErrorHandler(); - - $this->isRegistered = false; - } - - return $this; - } - - /** - * Should Whoops allow Handlers to force the script to quit? - * @param bool|int $exit - * @return bool - */ - public function allowQuit($exit = null) - { - if (func_num_args() == 0) { - return $this->allowQuit; - } - - return $this->allowQuit = (bool) $exit; - } - - /** - * Silence particular errors in particular files - * @param array|string $patterns List or a single regex pattern to match - * @param int $levels Defaults to E_STRICT | E_DEPRECATED - * @return \Whoops\Run - */ - public function silenceErrorsInPaths($patterns, $levels = 10240) - { - $this->silencedPatterns = array_merge( - $this->silencedPatterns, - array_map( - function ($pattern) use ($levels) { - return [ - "pattern" => $pattern, - "levels" => $levels, - ]; - }, - (array) $patterns - ) - ); - return $this; - } - - - /** - * Returns an array with silent errors in path configuration - * - * @return array - */ - public function getSilenceErrorsInPaths() - { - return $this->silencedPatterns; - } - - /* - * Should Whoops send HTTP error code to the browser if possible? - * Whoops will by default send HTTP code 500, but you may wish to - * use 502, 503, or another 5xx family code. - * - * @param bool|int $code - * @return int|false - */ - public function sendHttpCode($code = null) - { - if (func_num_args() == 0) { - return $this->sendHttpCode; - } - - if (!$code) { - return $this->sendHttpCode = false; - } - - if ($code === true) { - $code = 500; - } - - if ($code < 400 || 600 <= $code) { - throw new InvalidArgumentException( - "Invalid status code '$code', must be 4xx or 5xx" - ); - } - - return $this->sendHttpCode = $code; - } - - /** - * Should Whoops push output directly to the client? - * If this is false, output will be returned by handleException - * @param bool|int $send - * @return bool - */ - public function writeToOutput($send = null) - { - if (func_num_args() == 0) { - return $this->sendOutput; - } - - return $this->sendOutput = (bool) $send; - } - - /** - * Handles an exception, ultimately generating a Whoops error - * page. - * - * @param \Throwable $exception - * @return string Output generated by handlers - */ - public function handleException($exception) - { - // Walk the registered handlers in the reverse order - // they were registered, and pass off the exception - $inspector = $this->getInspector($exception); - - // Capture output produced while handling the exception, - // we might want to send it straight away to the client, - // or return it silently. - $this->system->startOutputBuffering(); - - // Just in case there are no handlers: - $handlerResponse = null; - $handlerContentType = null; - - foreach (array_reverse($this->handlerStack) as $handler) { - $handler->setRun($this); - $handler->setInspector($inspector); - $handler->setException($exception); - - // The HandlerInterface does not require an Exception passed to handle() - // and neither of our bundled handlers use it. - // However, 3rd party handlers may have already relied on this parameter, - // and removing it would be possibly breaking for users. - $handlerResponse = $handler->handle($exception); - - // Collect the content type for possible sending in the headers. - $handlerContentType = method_exists($handler, 'contentType') ? $handler->contentType() : null; - - if (in_array($handlerResponse, [Handler::LAST_HANDLER, Handler::QUIT])) { - // The Handler has handled the exception in some way, and - // wishes to quit execution (Handler::QUIT), or skip any - // other handlers (Handler::LAST_HANDLER). If $this->allowQuit - // is false, Handler::QUIT behaves like Handler::LAST_HANDLER - break; - } - } - - $willQuit = $handlerResponse == Handler::QUIT && $this->allowQuit(); - - $output = $this->system->cleanOutputBuffer(); - - // If we're allowed to, send output generated by handlers directly - // to the output, otherwise, and if the script doesn't quit, return - // it so that it may be used by the caller - if ($this->writeToOutput()) { - // @todo Might be able to clean this up a bit better - if ($willQuit) { - // Cleanup all other output buffers before sending our output: - while ($this->system->getOutputBufferLevel() > 0) { - $this->system->endOutputBuffering(); - } - - // Send any headers if needed: - if (Misc::canSendHeaders() && $handlerContentType) { - header("Content-Type: {$handlerContentType}"); - } - } - - $this->writeToOutputNow($output); - } - - if ($willQuit) { - // HHVM fix for https://github.com/facebook/hhvm/issues/4055 - $this->system->flushOutputBuffer(); - - $this->system->stopExecution(1); - } - - return $output; - } - - /** - * Converts generic PHP errors to \ErrorException - * instances, before passing them off to be handled. - * - * This method MUST be compatible with set_error_handler. - * - * @param int $level - * @param string $message - * @param string $file - * @param int $line - * - * @return bool - * @throws ErrorException - */ - public function handleError($level, $message, $file = null, $line = null) - { - if ($level & $this->system->getErrorReportingLevel()) { - foreach ($this->silencedPatterns as $entry) { - $pathMatches = (bool) preg_match($entry["pattern"], $file); - $levelMatches = $level & $entry["levels"]; - if ($pathMatches && $levelMatches) { - // Ignore the error, abort handling - // See https://github.com/filp/whoops/issues/418 - return true; - } - } - - // XXX we pass $level for the "code" param only for BC reasons. - // see https://github.com/filp/whoops/issues/267 - $exception = new ErrorException($message, /*code*/ $level, /*severity*/ $level, $file, $line); - if ($this->canThrowExceptions) { - throw $exception; - } else { - $this->handleException($exception); - } - // Do not propagate errors which were already handled by Whoops. - return true; - } - - // Propagate error to the next handler, allows error_get_last() to - // work on silenced errors. - return false; - } - - /** - * Special case to deal with Fatal errors and the like. - */ - public function handleShutdown() - { - // If we reached this step, we are in shutdown handler. - // An exception thrown in a shutdown handler will not be propagated - // to the exception handler. Pass that information along. - $this->canThrowExceptions = false; - - $error = $this->system->getLastError(); - if ($error && Misc::isLevelFatal($error['type'])) { - // If there was a fatal error, - // it was not handled in handleError yet. - $this->handleError( - $error['type'], - $error['message'], - $error['file'], - $error['line'] - ); - } - } - - /** - * In certain scenarios, like in shutdown handler, we can not throw exceptions - * @var bool - */ - private $canThrowExceptions = true; - - /** - * Echo something to the browser - * @param string $output - * @return $this - */ - private function writeToOutputNow($output) - { - if ($this->sendHttpCode() && \Whoops\Util\Misc::canSendHeaders()) { - $this->system->setHttpResponseCode( - $this->sendHttpCode() - ); - } - - echo $output; - - return $this; - } -} diff --git a/vendor/filp/whoops/src/Whoops/RunInterface.php b/vendor/filp/whoops/src/Whoops/RunInterface.php deleted file mode 100644 index 67ba90d7..00000000 --- a/vendor/filp/whoops/src/Whoops/RunInterface.php +++ /dev/null @@ -1,131 +0,0 @@ - - */ - -namespace Whoops; - -use InvalidArgumentException; -use Whoops\Exception\ErrorException; -use Whoops\Handler\HandlerInterface; - -interface RunInterface -{ - const EXCEPTION_HANDLER = "handleException"; - const ERROR_HANDLER = "handleError"; - const SHUTDOWN_HANDLER = "handleShutdown"; - - /** - * Pushes a handler to the end of the stack - * - * @throws InvalidArgumentException If argument is not callable or instance of HandlerInterface - * @param Callable|HandlerInterface $handler - * @return Run - */ - public function pushHandler($handler); - - /** - * Removes the last handler in the stack and returns it. - * Returns null if there"s nothing else to pop. - * - * @return null|HandlerInterface - */ - public function popHandler(); - - /** - * Returns an array with all handlers, in the - * order they were added to the stack. - * - * @return array - */ - public function getHandlers(); - - /** - * Clears all handlers in the handlerStack, including - * the default PrettyPage handler. - * - * @return Run - */ - public function clearHandlers(); - - /** - * Registers this instance as an error handler. - * - * @return Run - */ - public function register(); - - /** - * Unregisters all handlers registered by this Whoops\Run instance - * - * @return Run - */ - public function unregister(); - - /** - * Should Whoops allow Handlers to force the script to quit? - * - * @param bool|int $exit - * @return bool - */ - public function allowQuit($exit = null); - - /** - * Silence particular errors in particular files - * - * @param array|string $patterns List or a single regex pattern to match - * @param int $levels Defaults to E_STRICT | E_DEPRECATED - * @return \Whoops\Run - */ - public function silenceErrorsInPaths($patterns, $levels = 10240); - - /** - * Should Whoops send HTTP error code to the browser if possible? - * Whoops will by default send HTTP code 500, but you may wish to - * use 502, 503, or another 5xx family code. - * - * @param bool|int $code - * @return int|false - */ - public function sendHttpCode($code = null); - - /** - * Should Whoops push output directly to the client? - * If this is false, output will be returned by handleException - * - * @param bool|int $send - * @return bool - */ - public function writeToOutput($send = null); - - /** - * Handles an exception, ultimately generating a Whoops error - * page. - * - * @param \Throwable $exception - * @return string Output generated by handlers - */ - public function handleException($exception); - - /** - * Converts generic PHP errors to \ErrorException - * instances, before passing them off to be handled. - * - * This method MUST be compatible with set_error_handler. - * - * @param int $level - * @param string $message - * @param string $file - * @param int $line - * - * @return bool - * @throws ErrorException - */ - public function handleError($level, $message, $file = null, $line = null); - - /** - * Special case to deal with Fatal errors and the like. - */ - public function handleShutdown(); -} diff --git a/vendor/filp/whoops/src/Whoops/Util/HtmlDumperOutput.php b/vendor/filp/whoops/src/Whoops/Util/HtmlDumperOutput.php deleted file mode 100644 index 8c828fd9..00000000 --- a/vendor/filp/whoops/src/Whoops/Util/HtmlDumperOutput.php +++ /dev/null @@ -1,36 +0,0 @@ - - */ - -namespace Whoops\Util; - -/** - * Used as output callable for Symfony\Component\VarDumper\Dumper\HtmlDumper::dump() - * - * @see TemplateHelper::dump() - */ -class HtmlDumperOutput -{ - private $output; - - public function __invoke($line, $depth) - { - // A negative depth means "end of dump" - if ($depth >= 0) { - // Adds a two spaces indentation to the line - $this->output .= str_repeat(' ', $depth) . $line . "\n"; - } - } - - public function getOutput() - { - return $this->output; - } - - public function clear() - { - $this->output = null; - } -} diff --git a/vendor/filp/whoops/src/Whoops/Util/Misc.php b/vendor/filp/whoops/src/Whoops/Util/Misc.php deleted file mode 100644 index 001a6879..00000000 --- a/vendor/filp/whoops/src/Whoops/Util/Misc.php +++ /dev/null @@ -1,77 +0,0 @@ - - */ - -namespace Whoops\Util; - -class Misc -{ - /** - * Can we at this point in time send HTTP headers? - * - * Currently this checks if we are even serving an HTTP request, - * as opposed to running from a command line. - * - * If we are serving an HTTP request, we check if it's not too late. - * - * @return bool - */ - public static function canSendHeaders() - { - return isset($_SERVER["REQUEST_URI"]) && !headers_sent(); - } - - public static function isAjaxRequest() - { - return ( - !empty($_SERVER['HTTP_X_REQUESTED_WITH']) - && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest'); - } - - /** - * Check, if possible, that this execution was triggered by a command line. - * @return bool - */ - public static function isCommandLine() - { - return PHP_SAPI == 'cli'; - } - - /** - * Translate ErrorException code into the represented constant. - * - * @param int $error_code - * @return string - */ - public static function translateErrorCode($error_code) - { - $constants = get_defined_constants(true); - if (array_key_exists('Core', $constants)) { - foreach ($constants['Core'] as $constant => $value) { - if (substr($constant, 0, 2) == 'E_' && $value == $error_code) { - return $constant; - } - } - } - return "E_UNKNOWN"; - } - - /** - * Determine if an error level is fatal (halts execution) - * - * @param int $level - * @return bool - */ - public static function isLevelFatal($level) - { - $errors = E_ERROR; - $errors |= E_PARSE; - $errors |= E_CORE_ERROR; - $errors |= E_CORE_WARNING; - $errors |= E_COMPILE_ERROR; - $errors |= E_COMPILE_WARNING; - return ($level & $errors) > 0; - } -} diff --git a/vendor/filp/whoops/src/Whoops/Util/SystemFacade.php b/vendor/filp/whoops/src/Whoops/Util/SystemFacade.php deleted file mode 100644 index cc82e7ff..00000000 --- a/vendor/filp/whoops/src/Whoops/Util/SystemFacade.php +++ /dev/null @@ -1,137 +0,0 @@ - - */ - -namespace Whoops\Util; - -class SystemFacade -{ - /** - * Turns on output buffering. - * - * @return bool - */ - public function startOutputBuffering() - { - return ob_start(); - } - - /** - * @param callable $handler - * @param int $types - * - * @return callable|null - */ - public function setErrorHandler(callable $handler, $types = 'use-php-defaults') - { - // Workaround for PHP 5.5 - if ($types === 'use-php-defaults') { - $types = E_ALL | E_STRICT; - } - return set_error_handler($handler, $types); - } - - /** - * @param callable $handler - * - * @return callable|null - */ - public function setExceptionHandler(callable $handler) - { - return set_exception_handler($handler); - } - - /** - * @return void - */ - public function restoreExceptionHandler() - { - restore_exception_handler(); - } - - /** - * @return void - */ - public function restoreErrorHandler() - { - restore_error_handler(); - } - - /** - * @param callable $function - * - * @return void - */ - public function registerShutdownFunction(callable $function) - { - register_shutdown_function($function); - } - - /** - * @return string|false - */ - public function cleanOutputBuffer() - { - return ob_get_clean(); - } - - /** - * @return int - */ - public function getOutputBufferLevel() - { - return ob_get_level(); - } - - /** - * @return bool - */ - public function endOutputBuffering() - { - return ob_end_clean(); - } - - /** - * @return void - */ - public function flushOutputBuffer() - { - flush(); - } - - /** - * @return int - */ - public function getErrorReportingLevel() - { - return error_reporting(); - } - - /** - * @return array|null - */ - public function getLastError() - { - return error_get_last(); - } - - /** - * @param int $httpCode - * - * @return int - */ - public function setHttpResponseCode($httpCode) - { - return http_response_code($httpCode); - } - - /** - * @param int $exitStatus - */ - public function stopExecution($exitStatus) - { - exit($exitStatus); - } -} diff --git a/vendor/filp/whoops/src/Whoops/Util/TemplateHelper.php b/vendor/filp/whoops/src/Whoops/Util/TemplateHelper.php deleted file mode 100644 index 00f6ae49..00000000 --- a/vendor/filp/whoops/src/Whoops/Util/TemplateHelper.php +++ /dev/null @@ -1,352 +0,0 @@ - - */ - -namespace Whoops\Util; - -use Symfony\Component\VarDumper\Caster\Caster; -use Symfony\Component\VarDumper\Cloner\AbstractCloner; -use Symfony\Component\VarDumper\Cloner\VarCloner; -use Symfony\Component\VarDumper\Dumper\HtmlDumper; -use Whoops\Exception\Frame; - -/** - * Exposes useful tools for working with/in templates - */ -class TemplateHelper -{ - /** - * An array of variables to be passed to all templates - * @var array - */ - private $variables = []; - - /** - * @var HtmlDumper - */ - private $htmlDumper; - - /** - * @var HtmlDumperOutput - */ - private $htmlDumperOutput; - - /** - * @var AbstractCloner - */ - private $cloner; - - /** - * @var string - */ - private $applicationRootPath; - - public function __construct() - { - // root path for ordinary composer projects - $this->applicationRootPath = dirname(dirname(dirname(dirname(dirname(dirname(__DIR__)))))); - } - - /** - * Escapes a string for output in an HTML document - * - * @param string $raw - * @return string - */ - public function escape($raw) - { - $flags = ENT_QUOTES; - - // HHVM has all constants defined, but only ENT_IGNORE - // works at the moment - if (defined("ENT_SUBSTITUTE") && !defined("HHVM_VERSION")) { - $flags |= ENT_SUBSTITUTE; - } else { - // This is for 5.3. - // The documentation warns of a potential security issue, - // but it seems it does not apply in our case, because - // we do not blacklist anything anywhere. - $flags |= ENT_IGNORE; - } - - $raw = str_replace(chr(9), ' ', $raw); - - return htmlspecialchars($raw, $flags, "UTF-8"); - } - - /** - * Escapes a string for output in an HTML document, but preserves - * URIs within it, and converts them to clickable anchor elements. - * - * @param string $raw - * @return string - */ - public function escapeButPreserveUris($raw) - { - $escaped = $this->escape($raw); - return preg_replace( - "@([A-z]+?://([-\w\.]+[-\w])+(:\d+)?(/([\w/_\.#-]*(\?\S+)?[^\.\s])?)?)@", - "$1", - $escaped - ); - } - - /** - * Makes sure that the given string breaks on the delimiter. - * - * @param string $delimiter - * @param string $s - * @return string - */ - public function breakOnDelimiter($delimiter, $s) - { - $parts = explode($delimiter, $s); - foreach ($parts as &$part) { - $part = '
' . $part . '
'; - } - - return implode($delimiter, $parts); - } - - /** - * Replace the part of the path that all files have in common. - * - * @param string $path - * @return string - */ - public function shorten($path) - { - if ($this->applicationRootPath != "/") { - $path = str_replace($this->applicationRootPath, '…', $path); - } - - return $path; - } - - private function getDumper() - { - if (!$this->htmlDumper && class_exists('Symfony\Component\VarDumper\Cloner\VarCloner')) { - $this->htmlDumperOutput = new HtmlDumperOutput(); - // re-use the same var-dumper instance, so it won't re-render the global styles/scripts on each dump. - $this->htmlDumper = new HtmlDumper($this->htmlDumperOutput); - - $styles = [ - 'default' => 'color:#FFFFFF; line-height:normal; font:12px "Inconsolata", "Fira Mono", "Source Code Pro", Monaco, Consolas, "Lucida Console", monospace !important; word-wrap: break-word; white-space: pre-wrap; position:relative; z-index:99999; word-break: normal', - 'num' => 'color:#BCD42A', - 'const' => 'color: #4bb1b1;', - 'str' => 'color:#BCD42A', - 'note' => 'color:#ef7c61', - 'ref' => 'color:#A0A0A0', - 'public' => 'color:#FFFFFF', - 'protected' => 'color:#FFFFFF', - 'private' => 'color:#FFFFFF', - 'meta' => 'color:#FFFFFF', - 'key' => 'color:#BCD42A', - 'index' => 'color:#ef7c61', - ]; - $this->htmlDumper->setStyles($styles); - } - - return $this->htmlDumper; - } - - /** - * Format the given value into a human readable string. - * - * @param mixed $value - * @return string - */ - public function dump($value) - { - $dumper = $this->getDumper(); - - if ($dumper) { - // re-use the same DumpOutput instance, so it won't re-render the global styles/scripts on each dump. - // exclude verbose information (e.g. exception stack traces) - if (class_exists('Symfony\Component\VarDumper\Caster\Caster')) { - $cloneVar = $this->getCloner()->cloneVar($value, Caster::EXCLUDE_VERBOSE); - // Symfony VarDumper 2.6 Caster class dont exist. - } else { - $cloneVar = $this->getCloner()->cloneVar($value); - } - - $dumper->dump( - $cloneVar, - $this->htmlDumperOutput - ); - - $output = $this->htmlDumperOutput->getOutput(); - $this->htmlDumperOutput->clear(); - - return $output; - } - - return htmlspecialchars(print_r($value, true)); - } - - /** - * Format the args of the given Frame as a human readable html string - * - * @param Frame $frame - * @return string the rendered html - */ - public function dumpArgs(Frame $frame) - { - // we support frame args only when the optional dumper is available - if (!$this->getDumper()) { - return ''; - } - - $html = ''; - $numFrames = count($frame->getArgs()); - - if ($numFrames > 0) { - $html = '
    '; - foreach ($frame->getArgs() as $j => $frameArg) { - $html .= '
  1. '. $this->dump($frameArg) .'
  2. '; - } - $html .= '
'; - } - - return $html; - } - - /** - * Convert a string to a slug version of itself - * - * @param string $original - * @return string - */ - public function slug($original) - { - $slug = str_replace(" ", "-", $original); - $slug = preg_replace('/[^\w\d\-\_]/i', '', $slug); - return strtolower($slug); - } - - /** - * Given a template path, render it within its own scope. This - * method also accepts an array of additional variables to be - * passed to the template. - * - * @param string $template - * @param array $additionalVariables - */ - public function render($template, array $additionalVariables = null) - { - $variables = $this->getVariables(); - - // Pass the helper to the template: - $variables["tpl"] = $this; - - if ($additionalVariables !== null) { - $variables = array_replace($variables, $additionalVariables); - } - - call_user_func(function () { - extract(func_get_arg(1)); - require func_get_arg(0); - }, $template, $variables); - } - - /** - * Sets the variables to be passed to all templates rendered - * by this template helper. - * - * @param array $variables - */ - public function setVariables(array $variables) - { - $this->variables = $variables; - } - - /** - * Sets a single template variable, by its name: - * - * @param string $variableName - * @param mixed $variableValue - */ - public function setVariable($variableName, $variableValue) - { - $this->variables[$variableName] = $variableValue; - } - - /** - * Gets a single template variable, by its name, or - * $defaultValue if the variable does not exist - * - * @param string $variableName - * @param mixed $defaultValue - * @return mixed - */ - public function getVariable($variableName, $defaultValue = null) - { - return isset($this->variables[$variableName]) ? - $this->variables[$variableName] : $defaultValue; - } - - /** - * Unsets a single template variable, by its name - * - * @param string $variableName - */ - public function delVariable($variableName) - { - unset($this->variables[$variableName]); - } - - /** - * Returns all variables for this helper - * - * @return array - */ - public function getVariables() - { - return $this->variables; - } - - /** - * Set the cloner used for dumping variables. - * - * @param AbstractCloner $cloner - */ - public function setCloner($cloner) - { - $this->cloner = $cloner; - } - - /** - * Get the cloner used for dumping variables. - * - * @return AbstractCloner - */ - public function getCloner() - { - if (!$this->cloner) { - $this->cloner = new VarCloner(); - } - return $this->cloner; - } - - /** - * Set the application root path. - * - * @param string $applicationRootPath - */ - public function setApplicationRootPath($applicationRootPath) - { - $this->applicationRootPath = $applicationRootPath; - } - - /** - * Return the application root path. - * - * @return string - */ - public function getApplicationRootPath() - { - return $this->applicationRootPath; - } -} diff --git a/vendor/fzaninotto/faker/.travis.yml b/vendor/fzaninotto/faker/.travis.yml deleted file mode 100644 index a719ba81..00000000 --- a/vendor/fzaninotto/faker/.travis.yml +++ /dev/null @@ -1,25 +0,0 @@ -language: php - -dist: precise - -php: - - 5.3 - - 5.4 - - 5.5 - - 5.6 - - 7.0 - - 7.1 - - 7.2 - - nightly - -sudo: false - -cache: - directories: - - $HOME/.composer/cache - -before_script: - - travis_retry composer self-update - - travis_retry composer install --no-interaction --prefer-dist - -script: make sniff test diff --git a/vendor/fzaninotto/faker/CHANGELOG.md b/vendor/fzaninotto/faker/CHANGELOG.md deleted file mode 100644 index df218b00..00000000 --- a/vendor/fzaninotto/faker/CHANGELOG.md +++ /dev/null @@ -1,641 +0,0 @@ -CHANGELOG -========= - -2018-07-12, v1.8.0 ------------------- - -- Typo in readme [\#1521](https://github.com/fzaninotto/Faker/pull/1521) ([jmhobbs](https://github.com/jmhobbs)) -- Replaced Hilll with Hill [\#1516](https://github.com/fzaninotto/Faker/pull/1516) ([MarkVaughn](https://github.com/MarkVaughn)) -- \[it\_IT\] Improve vat ID generated using official rules [\#1508](https://github.com/fzaninotto/Faker/pull/1508) ([mavimo](https://github.com/mavimo)) -- \[hu\_HU\] Address: Fix unnecessary new line in string [\#1507](https://github.com/fzaninotto/Faker/pull/1507) ([ntomka](https://github.com/ntomka)) -- add phone numer format [\#1506](https://github.com/fzaninotto/Faker/pull/1506) ([Enosh-Yu](https://github.com/Enosh-Yu)) -- Fix typo in fr\_CA Provider [\#1505](https://github.com/fzaninotto/Faker/pull/1505) ([ultreson](https://github.com/ultreson)) -- Add fake-car provider link [\#1497](https://github.com/fzaninotto/Faker/pull/1497) ([pelmered](https://github.com/pelmered)) -- create `passthrough` function [\#1493](https://github.com/fzaninotto/Faker/pull/1493) ([browner12](https://github.com/browner12)) -- update Polish bank list [\#1482](https://github.com/fzaninotto/Faker/pull/1482) ([IonBazan](https://github.com/IonBazan)) -- Update the parameters to check if the setter is callable [\#1470](https://github.com/fzaninotto/Faker/pull/1470) ([rossmitchell](https://github.com/rossmitchell)) -- Push the max date far into the future so the test can pass [\#1469](https://github.com/fzaninotto/Faker/pull/1469) ([rossmitchell](https://github.com/rossmitchell)) -- Update Address.php [\#1465](https://github.com/fzaninotto/Faker/pull/1465) ([Saibamen](https://github.com/Saibamen)) -- Turkish identity number for tr\_TR [\#1462](https://github.com/fzaninotto/Faker/pull/1462) ([aykutaras](https://github.com/aykutaras)) -- Fixing rare iin with 13-digits. [\#1450](https://github.com/fzaninotto/Faker/pull/1450) ([vadimonus](https://github.com/vadimonus)) -- Fix Polish PESEL faker [\#1449](https://github.com/fzaninotto/Faker/pull/1449) ([Dartui](https://github.com/Dartui)) -- Adds valid 08 number formats for fr\_FR [\#1439](https://github.com/fzaninotto/Faker/pull/1439) ([ppelgrims](https://github.com/ppelgrims)) -- Add YouTube provider link [\#1422](https://github.com/fzaninotto/Faker/pull/1422) ([aalaap](https://github.com/aalaap)) -- Update PHPDoc of the DateTime provider. [\#1419](https://github.com/fzaninotto/Faker/pull/1419) ([tomzx](https://github.com/tomzx)) -- Normalize name of variable [\#1412](https://github.com/fzaninotto/Faker/pull/1412) ([eaglewu](https://github.com/eaglewu)) -- Added "blockchain" to en-us company provider catchPhrase method [\#1411](https://github.com/fzaninotto/Faker/pull/1411) ([samoldenburg](https://github.com/samoldenburg)) -- Fix for Spot2 ORM EntityPopulator [\#1408](https://github.com/fzaninotto/Faker/pull/1408) ([michal-borek](https://github.com/michal-borek)) -- TH color name [\#1404](https://github.com/fzaninotto/Faker/pull/1404) ([Naruedom](https://github.com/Naruedom)) -- added Malaysia \[ms\_MY\] locale [\#1403](https://github.com/fzaninotto/Faker/pull/1403) ([kenfai](https://github.com/kenfai)) -- Implementation of the function that generates Brazilian area codes fixed. [\#1401](https://github.com/fzaninotto/Faker/pull/1401) ([jackmiras](https://github.com/jackmiras)) -- VISA retired the 13 digit PAN moved to new cardParams [\#1400](https://github.com/fzaninotto/Faker/pull/1400) ([hppycoder](https://github.com/hppycoder)) -- Remove unused variable inside closure [\#1395](https://github.com/fzaninotto/Faker/pull/1395) ([carusogabriel](https://github.com/carusogabriel)) -- .nz domain updates [\#1393](https://github.com/fzaninotto/Faker/pull/1393) ([xurizaemon](https://github.com/xurizaemon)) -- Add licenceCode method in the to es\_ES person provider [\#1392](https://github.com/fzaninotto/Faker/pull/1392) ([ffiguereo](https://github.com/ffiguereo)) -- allow `randomElements` to accept a Traversable object [\#1389](https://github.com/fzaninotto/Faker/pull/1389) ([browner12](https://github.com/browner12)) -- Doc: rg remove formatting [\#1387](https://github.com/fzaninotto/Faker/pull/1387) ([emtudo](https://github.com/emtudo)) -- Add numbers with start 4 [\#1386](https://github.com/fzaninotto/Faker/pull/1386) ([emtudo](https://github.com/emtudo)) -- update th\_TH mobile number format [\#1385](https://github.com/fzaninotto/Faker/pull/1385) ([earthpyy](https://github.com/earthpyy)) -- Translate country names for lv\_LV provider. [\#1383](https://github.com/fzaninotto/Faker/pull/1383) ([ronaldsgailis](https://github.com/ronaldsgailis)) -- Clean elses [\#1382](https://github.com/fzaninotto/Faker/pull/1382) ([carusogabriel](https://github.com/carusogabriel)) -- French vat formatter [\#1381](https://github.com/fzaninotto/Faker/pull/1381) ([ppelgrims](https://github.com/ppelgrims)) -- Replaces rtrim with preg\_replace [\#1380](https://github.com/fzaninotto/Faker/pull/1380) ([ppelgrims](https://github.com/ppelgrims)) -- Refactoring tests [\#1375](https://github.com/fzaninotto/Faker/pull/1375) ([carusogabriel](https://github.com/carusogabriel)) -- Added link in readme to provider FakerRestaurant [\#1374](https://github.com/fzaninotto/Faker/pull/1374) ([jzonta](https://github.com/jzonta)) -- Remove obsolete currency codes [\#1373](https://github.com/fzaninotto/Faker/pull/1373) ([tpraxl](https://github.com/tpraxl)) -- \[ru\_RU\] Updated countries and added source link [\#1372](https://github.com/fzaninotto/Faker/pull/1372) ([ilyahoilik](https://github.com/ilyahoilik)) -- Test against PHP 7.2 [\#1371](https://github.com/fzaninotto/Faker/pull/1371) ([carusogabriel](https://github.com/carusogabriel)) -- Feature: nl\_BE text provider [\#1370](https://github.com/fzaninotto/Faker/pull/1370) ([rauwebieten](https://github.com/rauwebieten)) -- default value for Payment::iban\(\) country code [\#1369](https://github.com/fzaninotto/Faker/pull/1369) ([madmanmax](https://github.com/madmanmax)) -- skip test failing on bigendian [\#1365](https://github.com/fzaninotto/Faker/pull/1365) ([remicollet](https://github.com/remicollet)) -- Update Person.php [\#1364](https://github.com/fzaninotto/Faker/pull/1364) ([majamusan](https://github.com/majamusan)) -- Prevent errors on private methods [\#1363](https://github.com/fzaninotto/Faker/pull/1363) ([petecoop](https://github.com/petecoop)) -- adds rijksregisternummer [\#1361](https://github.com/fzaninotto/Faker/pull/1361) ([ppelgrims](https://github.com/ppelgrims)) -- Add secondary address to fr\_FR provider [\#1356](https://github.com/fzaninotto/Faker/pull/1356) ([nicodmf](https://github.com/nicodmf)) -- Add company provider for tr\_TR [\#1355](https://github.com/fzaninotto/Faker/pull/1355) ([yuks](https://github.com/yuks)) -- nb\_NO provider updates [\#1350](https://github.com/fzaninotto/Faker/pull/1350) ([alexqhj](https://github.com/alexqhj)) -- only test available date range on 32-bit [\#1348](https://github.com/fzaninotto/Faker/pull/1348) ([remicollet](https://github.com/remicollet)) -- Bump PHPUnit version for namespace compatibility [\#1345](https://github.com/fzaninotto/Faker/pull/1345) ([carusogabriel](https://github.com/carusogabriel)) -- Use PSR-1 for PHPUnit TestCase [\#1344](https://github.com/fzaninotto/Faker/pull/1344) ([carusogabriel](https://github.com/carusogabriel)) -- Fix FR\_fr 07 prefix mobile number generation [\#1343](https://github.com/fzaninotto/Faker/pull/1343) ([svanpoeck](https://github.com/svanpoeck)) -- Update Text.php [\#1339](https://github.com/fzaninotto/Faker/pull/1339) ([gulaandrij](https://github.com/gulaandrij)) -- Add two new company type in the Swiss Provider [\#1336](https://github.com/fzaninotto/Faker/pull/1336) ([pvullioud](https://github.com/pvullioud)) -- Change symbol 'minus' with code 226 to 'minus' with code 45 [\#1333](https://github.com/fzaninotto/Faker/pull/1333) ([Negasus](https://github.com/Negasus)) -- \[sl\_SI\] Created provider for Company [\#1331](https://github.com/fzaninotto/Faker/pull/1331) ([alesvaupotic](https://github.com/alesvaupotic)) -- Update city name [\#1328](https://github.com/fzaninotto/Faker/pull/1328) ([s9801077](https://github.com/s9801077)) -- Fix \#1305 realText in some cases breaks last character [\#1326](https://github.com/fzaninotto/Faker/pull/1326) ([iamraccoon](https://github.com/iamraccoon)) -- Real Dutch postal codes [\#1323](https://github.com/fzaninotto/Faker/pull/1323) ([ametad](https://github.com/ametad)) -- Added male and female titles for the en\_ZA locale [\#1321](https://github.com/fzaninotto/Faker/pull/1321) ([ViGouRCanberra](https://github.com/ViGouRCanberra)) -- Add German Email Providers [\#1320](https://github.com/fzaninotto/Faker/pull/1320) ([Stoffo](https://github.com/Stoffo)) -- Fix "Resource temporarily unavailable" [\#1319](https://github.com/fzaninotto/Faker/pull/1319) ([eberkund](https://github.com/eberkund)) -- Introduced the ability to specify a default timezone... [\#1316](https://github.com/fzaninotto/Faker/pull/1316) ([telkins](https://github.com/telkins)) -- South African licence codes [\#1315](https://github.com/fzaninotto/Faker/pull/1315) ([royalmitten](https://github.com/royalmitten)) -- Fix with incorrect name city. [\#1309](https://github.com/fzaninotto/Faker/pull/1309) ([zzenmate](https://github.com/zzenmate)) -- Fixed type-o in readme under section about Language specific formatters [\#1302](https://github.com/fzaninotto/Faker/pull/1302) ([espenkn](https://github.com/espenkn)) -- Update Person.php [\#1298](https://github.com/fzaninotto/Faker/pull/1298) ([yappkahowe](https://github.com/yappkahowe)) -- Allow children classes to access self::$suffix [\#1296](https://github.com/fzaninotto/Faker/pull/1296) ([greg0ire](https://github.com/greg0ire)) -- Fix with namespace payment provider for uk\_UA [\#1293](https://github.com/fzaninotto/Faker/pull/1293) ([zzenmate](https://github.com/zzenmate)) -- Update zh\_TW text provider [\#1292](https://github.com/fzaninotto/Faker/pull/1292) ([s9801077](https://github.com/s9801077)) -- Fix CURL status code in ImageTest.php [\#1290](https://github.com/fzaninotto/Faker/pull/1290) ([Sanfra1407](https://github.com/Sanfra1407)) -- Tax Id for companies and new formats for es\_VE [\#1287](https://github.com/fzaninotto/Faker/pull/1287) ([DIOHz0r](https://github.com/DIOHz0r)) -- Added idNumber for nl\_NL [\#1283](https://github.com/fzaninotto/Faker/pull/1283) ([artorozenga](https://github.com/artorozenga)) -- Feature/en us company ein [\#1273](https://github.com/fzaninotto/Faker/pull/1273) ([zachflower](https://github.com/zachflower)) - -2017-08-15, v1.7.0 ------------------- - -- Added more Ukrainian banks [\#1271](https://github.com/fzaninotto/Faker/pull/1271) ([iamraccoon](https://github.com/iamraccoon)) -- Hotfix/failing unit tests [\#1269](https://github.com/fzaninotto/Faker/pull/1269) ([zachflower](https://github.com/zachflower)) -- Lock Travis-CI environment to Ubuntu Precise [\#1268](https://github.com/fzaninotto/Faker/pull/1268) ([zachflower](https://github.com/zachflower)) -- Added Ukrainian job title [\#1267](https://github.com/fzaninotto/Faker/pull/1267) ([iamraccoon](https://github.com/iamraccoon)) -- Add compliant en\_US SSN generator [\#1266](https://github.com/fzaninotto/Faker/pull/1266) ([zachflower](https://github.com/zachflower)) -- Added more Ukrainian streets and removed irrelevant names. Added more Ukrainian mobile formats [\#1265](https://github.com/fzaninotto/Faker/pull/1265) ([iamraccoon](https://github.com/iamraccoon)) -- Add Internet Format for ja\_JP. [\#1260](https://github.com/fzaninotto/Faker/pull/1260) ([itigoppo](https://github.com/itigoppo)) -- rectify ISO 4217 codes [\#1258](https://github.com/fzaninotto/Faker/pull/1258) ([eidng8](https://github.com/eidng8)) -- Corrected of grammar of Ukrainian middlenames and test added [\#1257](https://github.com/fzaninotto/Faker/pull/1257) ([vladbuk](https://github.com/vladbuk)) -- Update ISO 4217 active codes [\#1251](https://github.com/fzaninotto/Faker/pull/1251) ([eidng8](https://github.com/eidng8)) -- Update Composer File [\#1248](https://github.com/fzaninotto/Faker/pull/1248) ([vinkla](https://github.com/vinkla)) -- Set capitals to false [\#1243](https://github.com/fzaninotto/Faker/pull/1243) ([Stichoza](https://github.com/Stichoza)) -- Use static instead of self [\#1242](https://github.com/fzaninotto/Faker/pull/1242) ([Stichoza](https://github.com/Stichoza)) -- Add VAT french format [\#1241](https://github.com/fzaninotto/Faker/pull/1241) ([baptistedonaux](https://github.com/baptistedonaux)) -- Add swedish job titles [\#1234](https://github.com/fzaninotto/Faker/pull/1234) ([vinkla](https://github.com/vinkla)) -- Name Simo shouldn't have comma in it [\#1230](https://github.com/fzaninotto/Faker/pull/1230) ([simoheinonen](https://github.com/simoheinonen)) -- Fix: Add method annotation for ValidGenerator [\#1223](https://github.com/fzaninotto/Faker/pull/1223) ([localheinz](https://github.com/localheinz)) -- Add real text for es\_ES [\#1220](https://github.com/fzaninotto/Faker/pull/1220) ([driade](https://github.com/driade)) -- Fix spelling errors [\#1218](https://github.com/fzaninotto/Faker/pull/1218) ([driade](https://github.com/driade)) -- Fix spelling errors [\#1217](https://github.com/fzaninotto/Faker/pull/1217) ([driade](https://github.com/driade)) -- Fixes typo [\#1212](https://github.com/fzaninotto/Faker/pull/1212) ([skullboner](https://github.com/skullboner)) -- Add Person::middleName for ru\_RU provider [\#1209](https://github.com/fzaninotto/Faker/pull/1209) ([JustBlackBird](https://github.com/JustBlackBird)) -- Fix creditCardDetails type hint [\#1208](https://github.com/fzaninotto/Faker/pull/1208) ([jejung](https://github.com/jejung)) -- Expand dictionaries for ru\_RU locale [\#1206](https://github.com/fzaninotto/Faker/pull/1206) ([pwsdotru](https://github.com/pwsdotru)) -- Fix ng\_NG to en\_NG [\#1205](https://github.com/fzaninotto/Faker/pull/1205) ([raphaeldealmeida](https://github.com/raphaeldealmeida)) -- Add INN and KPP support for ru\_RU locale [\#1204](https://github.com/fzaninotto/Faker/pull/1204) ([pwsdotru](https://github.com/pwsdotru)) -- Remove break line on pt\_PT Address format [\#1203](https://github.com/fzaninotto/Faker/pull/1203) ([raphaeldealmeida](https://github.com/raphaeldealmeida)) -- Fix syntax of phpdoc boolean property [\#1198](https://github.com/fzaninotto/Faker/pull/1198) ([pavelkovar](https://github.com/pavelkovar)) -- add en\_HK provider [\#1196](https://github.com/fzaninotto/Faker/pull/1196) ([miklcct](https://github.com/miklcct)) -- use secure https [\#1186](https://github.com/fzaninotto/Faker/pull/1186) ([jpuck](https://github.com/jpuck)) -- Add PhoneNumberFormat for ja\_JP. [\#1185](https://github.com/fzaninotto/Faker/pull/1185) ([itigoppo](https://github.com/itigoppo)) -- Fix: Add class-level method annotations for DateTime provider [\#1183](https://github.com/fzaninotto/Faker/pull/1183) ([localheinz](https://github.com/localheinz)) -- Add ar\_SA Color Provider [\#1182](https://github.com/fzaninotto/Faker/pull/1182) ([alhoqbani](https://github.com/alhoqbani)) -- Added uk\_UA Payment provider with bank name generator [\#1181](https://github.com/fzaninotto/Faker/pull/1181) ([spaghettimaster](https://github.com/spaghettimaster)) -- Typos [\#1177](https://github.com/fzaninotto/Faker/pull/1177) ([ankitpokhrel](https://github.com/ankitpokhrel)) -- Fix XML document example [\#1176](https://github.com/fzaninotto/Faker/pull/1176) ([ankitpokhrel](https://github.com/ankitpokhrel)) -- Added Emoji to Miscellaneous [\#1175](https://github.com/fzaninotto/Faker/pull/1175) ([thomasfdm](https://github.com/thomasfdm)) -- Typos and doc block fixes [\#1170](https://github.com/fzaninotto/Faker/pull/1170) ([ankitpokhrel](https://github.com/ankitpokhrel)) -- Rewrote deprecated `each\(\)` usage [\#1168](https://github.com/fzaninotto/Faker/pull/1168) ([hboomsma](https://github.com/hboomsma)) -- Refactor text method to remove duplication [\#1163](https://github.com/fzaninotto/Faker/pull/1163) ([ankitpokhrel](https://github.com/ankitpokhrel)) -- Generate valid individual identification numbers kk\_KZ [\#1161](https://github.com/fzaninotto/Faker/pull/1161) ([YerlenZhubangaliyev](https://github.com/YerlenZhubangaliyev)) -- Added Address and Company \[fa\_IR\] [\#1160](https://github.com/fzaninotto/Faker/pull/1160) ([thisissorna](https://github.com/thisissorna)) -- Add Peruvian DNI generator [\#1158](https://github.com/fzaninotto/Faker/pull/1158) ([jgwong](https://github.com/jgwong)) -- Removed double semicolon [\#1154](https://github.com/fzaninotto/Faker/pull/1154) ([pjona](https://github.com/pjona)) -- Add prefixes for nl\_NL [\#1151](https://github.com/fzaninotto/Faker/pull/1151) ([hyperized](https://github.com/hyperized)) -- Separated male and female names for sr\_RS locale. [\#1144](https://github.com/fzaninotto/Faker/pull/1144) ([bogdanpet](https://github.com/bogdanpet)) -- Add personal ID, VAT for zh\_TW [\#1135](https://github.com/fzaninotto/Faker/pull/1135) ([Dagolin](https://github.com/Dagolin)) -- Updating ninth digit on whole country [\#1132](https://github.com/fzaninotto/Faker/pull/1132) ([gpressutto5](https://github.com/gpressutto5)) -- Indian states added to en\_IN locale [\#1131](https://github.com/fzaninotto/Faker/pull/1131) ([jiveshsg](https://github.com/jiveshsg)) -- Add Text provider for ro\_MD [\#1129](https://github.com/fzaninotto/Faker/pull/1129) ([wecerny](https://github.com/wecerny)) -- Add strict to randomNumber example [\#1124](https://github.com/fzaninotto/Faker/pull/1124) ([leepownall](https://github.com/leepownall)) -- Say Eloquent is supported [\#1123](https://github.com/fzaninotto/Faker/pull/1123) ([guidocella](https://github.com/guidocella)) -- Link Eloquent Populator [\#1120](https://github.com/fzaninotto/Faker/pull/1120) ([guidocella](https://github.com/guidocella)) -- Removed dead code from Luhn.php [\#1118](https://github.com/fzaninotto/Faker/pull/1118) ([Newman101](https://github.com/Newman101)) -- Improve Internet::transliterate performance [\#1112](https://github.com/fzaninotto/Faker/pull/1112) ([dunglas](https://github.com/dunglas)) -- fix typo [\#1109](https://github.com/fzaninotto/Faker/pull/1109) ([johannesnagl](https://github.com/johannesnagl)) -- \[cs\_CZ\] Fixed Czech phone numbers [\#1108](https://github.com/fzaninotto/Faker/pull/1108) ([tomasbedrich](https://github.com/tomasbedrich)) -- Update MasterCard BIN Range [\#1103](https://github.com/fzaninotto/Faker/pull/1103) ([andysnell](https://github.com/andysnell)) -- Add biggest german cities [\#1102](https://github.com/fzaninotto/Faker/pull/1102) ([Konafets](https://github.com/Konafets)) -- Change postal code format for ko\_KR [\#1094](https://github.com/fzaninotto/Faker/pull/1094) ([coozplz](https://github.com/coozplz)) -- Introduced the ability to specify the timezone for dateTimeThis\*\(\) methods [\#1090](https://github.com/fzaninotto/Faker/pull/1090) ([telkins](https://github.com/telkins)) -- Fixed Issue \#1086 [\#1088](https://github.com/fzaninotto/Faker/pull/1088) ([Newman101](https://github.com/Newman101)) -- \[ja\_JP\]kana of Japanese name by gender. [\#1087](https://github.com/fzaninotto/Faker/pull/1087) ([itigoppo](https://github.com/itigoppo)) -- Fix unused code [\#1083](https://github.com/fzaninotto/Faker/pull/1083) ([borgogelli](https://github.com/borgogelli)) -- Amended permissions for en\_GB AddressTest.php [\#1071](https://github.com/fzaninotto/Faker/pull/1071) ([Newman101](https://github.com/Newman101)) -- Ensure unique IDs in randomHtml [\#1068](https://github.com/fzaninotto/Faker/pull/1068) ([vlakoff](https://github.com/vlakoff)) -- Updated \[de\_DE\] city names [\#1067](https://github.com/fzaninotto/Faker/pull/1067) ([plxx](https://github.com/plxx)) -- Update method signature in Generator phpdoc [\#1066](https://github.com/fzaninotto/Faker/pull/1066) ([vlakoff](https://github.com/vlakoff)) -- Add Thai providers [\#1065](https://github.com/fzaninotto/Faker/pull/1065) ([tuwannu](https://github.com/tuwannu)) -- \(Minor\) Fixed the default locale stated in the readme [\#1064](https://github.com/fzaninotto/Faker/pull/1064) ([taylankasap](https://github.com/taylankasap)) -- \[nl\_NL\] Make person provider behave more realistically [\#1061](https://github.com/fzaninotto/Faker/pull/1061) ([curry684](https://github.com/curry684)) -- Add allowDuplicates option to randomElements\(\) [\#1060](https://github.com/fzaninotto/Faker/pull/1060) ([vlakoff](https://github.com/vlakoff)) -- Docblocks: Add some missing @method tags [\#1059](https://github.com/fzaninotto/Faker/pull/1059) ([Kurre](https://github.com/Kurre)) -- \[fi\_FI\] Improve phone number generator [\#1054](https://github.com/fzaninotto/Faker/pull/1054) ([Kurre](https://github.com/Kurre)) -- Add personalIdentityNumber\(\) to fi\_FI/Person.php [\#1053](https://github.com/fzaninotto/Faker/pull/1053) ([oittaa](https://github.com/oittaa)) -- Issue \#1041 [\#1052](https://github.com/fzaninotto/Faker/pull/1052) ([daleattree](https://github.com/daleattree)) -- Update Text.php [\#1051](https://github.com/fzaninotto/Faker/pull/1051) ([gulaandrij](https://github.com/gulaandrij)) -- Fix French phone numbers with 07 prefix [\#1046](https://github.com/fzaninotto/Faker/pull/1046) ([fzaninotto](https://github.com/fzaninotto)) -- \[Generator.php\] mt\_rand\(\) changed in PHP 7.1 [\#1045](https://github.com/fzaninotto/Faker/pull/1045) ([oittaa](https://github.com/oittaa)) -- Add 'FI' to Payment Provider [\#1044](https://github.com/fzaninotto/Faker/pull/1044) ([oittaa](https://github.com/oittaa)) -- Added id number generator to Person Provider for the en\_ZA locale [\#1039](https://github.com/fzaninotto/Faker/pull/1039) ([smithandre](https://github.com/smithandre)) -- \[Feature\] Add nigerian provider [\#1030](https://github.com/fzaninotto/Faker/pull/1030) ([elchroy](https://github.com/elchroy)) -- \[pl\_PL\] Handle state. [\#1029](https://github.com/fzaninotto/Faker/pull/1029) ([piotrooo](https://github.com/piotrooo)) -- Fixed polish text - change '--' into '-'. [\#1027](https://github.com/fzaninotto/Faker/pull/1027) ([piotrooo](https://github.com/piotrooo)) -- Update Text.php [\#1025](https://github.com/fzaninotto/Faker/pull/1025) ([gulaandrij](https://github.com/gulaandrij)) -- Adding Nationalized Citizens to DNI in Person.php [\#1021](https://github.com/fzaninotto/Faker/pull/1021) ([celisflen-bers](https://github.com/celisflen-bers)) -- Add nik to indonesia [\#1019](https://github.com/fzaninotto/Faker/pull/1019) ([Nuffic](https://github.com/Nuffic)) -- fix mb\_substr missing parameter error when generating japanese string with realText method [\#1018](https://github.com/fzaninotto/Faker/pull/1018) ([horan-geeker](https://github.com/horan-geeker)) -- IBAN Formatters for New Locales [\#1015](https://github.com/fzaninotto/Faker/pull/1015) ([okj579](https://github.com/okj579)) -- German Bank Names [\#1014](https://github.com/fzaninotto/Faker/pull/1014) ([okj579](https://github.com/okj579)) -- Adding countries for pl\_PL provider [\#1009](https://github.com/fzaninotto/Faker/pull/1009) ([mertcanesen](https://github.com/mertcanesen)) -- Adding Pattern Lab plugin to list of 3rd party libraries [\#1008](https://github.com/fzaninotto/Faker/pull/1008) ([EvanLovely](https://github.com/EvanLovely)) -- Korea top 100 lastName [\#1006](https://github.com/fzaninotto/Faker/pull/1006) ([tael](https://github.com/tael)) -- Use real Belgian postcodes instead of random number [\#1004](https://github.com/fzaninotto/Faker/pull/1004) ([toonevdb](https://github.com/toonevdb)) -- Add bankAccountNumber implementations [\#1000](https://github.com/fzaninotto/Faker/pull/1000) ([akramfares](https://github.com/akramfares)) -- Generates a random NIR number \(fr\_FR\) [\#997](https://github.com/fzaninotto/Faker/pull/997) ([Ultim4T0m](https://github.com/Ultim4T0m)) -- \#989 Fix country typo [\#996](https://github.com/fzaninotto/Faker/pull/996) ([adriantombu](https://github.com/adriantombu)) -- adding back CNP [\#988](https://github.com/fzaninotto/Faker/pull/988) ([the-noob](https://github.com/the-noob)) -- Fix phpunit tests fail on 64-bit systems \#982 [\#983](https://github.com/fzaninotto/Faker/pull/983) ([Powerhead13](https://github.com/Powerhead13)) -- Remove trailing dot in username if any [\#975](https://github.com/fzaninotto/Faker/pull/975) ([vlakoff](https://github.com/vlakoff)) -- HTML Lorem [\#971](https://github.com/fzaninotto/Faker/pull/971) ([rudkjobing](https://github.com/rudkjobing)) -- Fix a mixup between male and female last names in Icelandic. [\#970](https://github.com/fzaninotto/Faker/pull/970) ([arthur-olafsson](https://github.com/arthur-olafsson)) -- Remove duplicate [\#969](https://github.com/fzaninotto/Faker/pull/969) ([mijgame](https://github.com/mijgame)) -- fix \[zh\_CN\]PhoneNumber illegal operator prefix [\#966](https://github.com/fzaninotto/Faker/pull/966) ([zhwei](https://github.com/zhwei)) -- es\_ES: Generate VAT Number [\#964](https://github.com/fzaninotto/Faker/pull/964) ([miguelgf](https://github.com/miguelgf)) -- Update Image.php [\#963](https://github.com/fzaninotto/Faker/pull/963) ([gulaandrij](https://github.com/gulaandrij)) -- Remove cnp formatter from RO\_ro locale \(fails tests\) [\#962](https://github.com/fzaninotto/Faker/pull/962) ([fzaninotto](https://github.com/fzaninotto)) -- Adding valid en\_GB postcodes [\#961](https://github.com/fzaninotto/Faker/pull/961) ([the-noob](https://github.com/the-noob)) -- Adding Text for ro\_RO [\#959](https://github.com/fzaninotto/Faker/pull/959) ([the-noob](https://github.com/the-noob)) -- Minor: Fixed trailing space in DateTime provider [\#956](https://github.com/fzaninotto/Faker/pull/956) ([tifabien](https://github.com/tifabien)) -- Remove 'Stripper' from en\_US job titles [\#954](https://github.com/fzaninotto/Faker/pull/954) ([amcsi](https://github.com/amcsi)) -- fix 32bits issue [\#953](https://github.com/fzaninotto/Faker/pull/953) ([remicollet](https://github.com/remicollet)) -- Fix EAN8 checkSum generator [\#951](https://github.com/fzaninotto/Faker/pull/951) ([MatthieuMota](https://github.com/MatthieuMota)) -- Fixed description and the use of early undocumented parameters. [\#949](https://github.com/fzaninotto/Faker/pull/949) ([andrey-helldar](https://github.com/andrey-helldar)) -- Pushing new mobile prefixes in philippines [\#944](https://github.com/fzaninotto/Faker/pull/944) ([napoleon101392](https://github.com/napoleon101392)) -- Update Company.php [\#943](https://github.com/fzaninotto/Faker/pull/943) ([thiagotalma](https://github.com/thiagotalma)) -- Fix to Issue \#935 - German Locale [\#936](https://github.com/fzaninotto/Faker/pull/936) ([Newman101](https://github.com/Newman101)) -- el\_CY Locale [\#930](https://github.com/fzaninotto/Faker/pull/930) ([softius](https://github.com/softius)) -- Add phpdoc method dateTimeInInterval in Generator.php [\#926](https://github.com/fzaninotto/Faker/pull/926) ([KeithYeh](https://github.com/KeithYeh)) -- Harmonize fr\_\*\Company [\#918](https://github.com/fzaninotto/Faker/pull/918) ([Max13](https://github.com/Max13)) -- Fix: fix invalid parameter of mb\_substr\(\) [\#917](https://github.com/fzaninotto/Faker/pull/917) ([tkawaji](https://github.com/tkawaji)) -- kk\_KZ Company/person identification numbers unit tests [\#916](https://github.com/fzaninotto/Faker/pull/916) ([YerlenZhubangaliyev](https://github.com/YerlenZhubangaliyev)) -- ka\_GE: overall improvements to ka\_GE locale [\#913](https://github.com/fzaninotto/Faker/pull/913) ([hertzg](https://github.com/hertzg)) -- Fix: Do not pick a random float less than minimum [\#909](https://github.com/fzaninotto/Faker/pull/909) ([localheinz](https://github.com/localheinz)) -- Fix: Prefer dependencies installed from dist [\#908](https://github.com/fzaninotto/Faker/pull/908) ([localheinz](https://github.com/localheinz)) -- Add a building number with letter to German speaking locales. [\#903](https://github.com/fzaninotto/Faker/pull/903) ([markuspoerschke](https://github.com/markuspoerschke)) -- \[RFR\] Remove parts of the hu\_HU address formatters [\#902](https://github.com/fzaninotto/Faker/pull/902) ([fzaninotto](https://github.com/fzaninotto)) -- use Luhn to calculate ar\_SA id numbers. [\#875](https://github.com/fzaninotto/Faker/pull/875) ([FooBarQuaxx](https://github.com/FooBarQuaxx)) -- Fix Doctrine ODM Support [\#489](https://github.com/fzaninotto/Faker/pull/489) ([cbourgois](https://github.com/cbourgois)) - - -2016-04-29, v1.6.0 ------------------- - -- Remove parts of the Hungarian (hu\_HU) address formatters [\#902](https://github.com/fzaninotto/Faker/pull/902) ([fzaninotto](https://github.com/fzaninotto)) -- Renamed norwegian (nb\_NO) locale [\#901](https://github.com/fzaninotto/Faker/pull/901) ([fzaninotto](https://github.com/fzaninotto)) -- Improveed German (de\_DE) titles [\#897](https://github.com/fzaninotto/Faker/pull/897) ([christianbartels](https://github.com/christianbartels)) -- Added VAT formatter to nl\_BE and fr\_BE providers [\#896](https://github.com/fzaninotto/Faker/pull/896) ([anvanza](https://github.com/anvanza)) -- Fixed provider namespace for Lithuanian (lt\_LT) [\#894](https://github.com/fzaninotto/Faker/pull/894) ([sanis](https://github.com/sanis)) -- Removed unnecessary (and incompatible) license from Russian and Ukrainian (uk\_UA & ru\_RU) Text providers [\#892](https://github.com/fzaninotto/Faker/pull/892) ([Newman101](https://github.com/Newman101)) -- Improved `languageCode` formatted to include all ISO-639-1 standard codes [\#889](https://github.com/fzaninotto/Faker/pull/889) ([andrewnicols](https://github.com/andrewnicols)) -- Improved Hungarian provider [\#883](https://github.com/fzaninotto/Faker/pull/883) ([balping](https://github.com/balping)) -- Fixed typo in Austrian Person provider [\#880](https://github.com/fzaninotto/Faker/pull/880) ([xelan](https://github.com/xelan)) -- Added Chines (zh\_CN) `catchPhrase` formatter [\#878](https://github.com/fzaninotto/Faker/pull/878) ([z-song](https://github.com/z-song)) -- Added mention of Brazilian (pt\_BR) providers in readme [\#877](https://github.com/fzaninotto/Faker/pull/877) ([iget-master](https://github.com/iget-master)) -- Updated composer `require` section to allow PHP 7 in safer way [\#874](https://github.com/fzaninotto/Faker/pull/874) ([TomasVotruba](https://github.com/TomasVotruba)) -- Added Greek (el\_GR) `mobilePhoneNumber` and `tollFreeNumber` formatters [\#869](https://github.com/fzaninotto/Faker/pull/869) ([sebdesign](https://github.com/sebdesign)) -- Added Lorempixel check for `ImageTest.php` to avoid test fails when the service is offline [\#866](https://github.com/fzaninotto/Faker/pull/866) ([Newman101](https://github.com/Newman101)) -- Added Chinese (zh\_CN) Providers [\#864](https://github.com/fzaninotto/Faker/pull/864) ([z-song](https://github.com/z-song)) -- Added unit tests for Canadian (en\_CA) provider [\#862](https://github.com/fzaninotto/Faker/pull/862) ([Newman101](https://github.com/Newman101)) -- Added Dutch BTW \(vat\) Number [\#861](https://github.com/fzaninotto/Faker/pull/861) ([LauLaman](https://github.com/LauLaman)) -- Improved Australian (en\_AU) provider [\#858](https://github.com/fzaninotto/Faker/pull/858) ([Newman101](https://github.com/Newman101)) -- Added Propel2 ORM support [\#852](https://github.com/fzaninotto/Faker/pull/852) ([iTechDhaval](https://github.com/iTechDhaval)) -- Added en\_IN unit test for `Address.php` [\#849](https://github.com/fzaninotto/Faker/pull/849) ([Newman101](https://github.com/Newman101)) -- Updated docs to clarify that `randomElements` does not repeat input elements [\#848](https://github.com/fzaninotto/Faker/pull/848) ([sustmi](https://github.com/sustmi)) -- Optimized Taiwanese (zh\_TW) `realText` provider [\#844](https://github.com/fzaninotto/Faker/pull/844) ([Newman101](https://github.com/Newman101)) -- Added more Iranian (fa\_IR) TLDs [\#843](https://github.com/fzaninotto/Faker/pull/843) ([VagrantStory](https://github.com/VagrantStory)) -- Added Hebrew (he\_IL) `country` formatter [\#841](https://github.com/fzaninotto/Faker/pull/841) ([yonirom](https://github.com/yonirom)) -- Documented `boolean` formatter [\#840](https://github.com/fzaninotto/Faker/pull/840) ([danieliancu](https://github.com/danieliancu)) -- Fixed modifiers anchor readme [\#838](https://github.com/fzaninotto/Faker/pull/838) ([danieliancu](https://github.com/danieliancu)) -- Added Dutch (nl\_NL) real text provider [\#837](https://github.com/fzaninotto/Faker/pull/837) ([endroid](https://github.com/endroid)) -- Added `valid` modifier [\#836](https://github.com/fzaninotto/Faker/pull/836) ([fzaninotto](https://github.com/fzaninotto)) -- Added Iranian (fa\_IR) `PhoneNumber` provider [\#833](https://github.com/fzaninotto/Faker/pull/833) ([ghost](https://github.com/ghost)) -- Add Brazilian (pt\_BR) `region` and `regionAbbr` formatters [\#828](https://github.com/fzaninotto/Faker/pull/828) ([francinaldo](https://github.com/francinaldo)) -- Improved Austrian (de\_AT) names, states, and realtext [\#826](https://github.com/fzaninotto/Faker/pull/826) ([Findus23](https://github.com/Findus23)) -- Improved German (de\_DE) names [\#825](https://github.com/fzaninotto/Faker/pull/825) ([Findus23](https://github.com/Findus23)) -- Improved Latvian (lv\_LV) first names [\#823](https://github.com/fzaninotto/Faker/pull/823) ([veisis](https://github.com/veisis)) -- Improved Latvian (lv\_LV) `phoneNumber` formatter [\#822](https://github.com/fzaninotto/Faker/pull/822) ([veisis](https://github.com/veisis)) -- Updated phpDoc link to IBAN format reference in `Payment` provider [\#821](https://github.com/fzaninotto/Faker/pull/821) ([god107](https://github.com/god107)) -- Updated Sport ORM populator to populate values for numeric fields [\#820](https://github.com/fzaninotto/Faker/pull/820) ([urisavka](https://github.com/urisavka)) -- Updated Chinese (zh\_CN) operators' phone number prefix. [\#819](https://github.com/fzaninotto/Faker/pull/819) ([vistart](https://github.com/vistart)) -- Optimized Spot ORM `EntityPopulator` [\#817](https://github.com/fzaninotto/Faker/pull/817) ([Newman101](https://github.com/Newman101)) -- Added Korean (ko\_KR) `realText` formatter [\#815](https://github.com/fzaninotto/Faker/pull/815) ([jdssem](https://github.com/jdssem)) -- Updated `imageUrl` formatter phpDoc [\#814](https://github.com/fzaninotto/Faker/pull/814) ([jonwurtzler](https://github.com/jonwurtzler)) -- Optimized Taiwanese (zh\_TW) text provider [\#809](https://github.com/fzaninotto/Faker/pull/809) ([BePsvPT](https://github.com/BePsvPT)) -- Added strict comparison to Czech (cs\_CS) `birthNumber` formatter [\#807](https://github.com/fzaninotto/Faker/pull/807) ([Newman101](https://github.com/Newman101)) -- Added Greek (el\_GR) `realText` formatter [\#805](https://github.com/fzaninotto/Faker/pull/805) ([hootlex](https://github.com/hootlex)) -- Added Simplified Chinese \(zh\_CN\) `state` and `stateAbbr` formatters [\#804](https://github.com/fzaninotto/Faker/pull/804) ([zhanghuanchong](https://github.com/zhanghuanchong)) -- Update `Image` provider to allow generation of grayscale images [\#801](https://github.com/fzaninotto/Faker/pull/801) ([neutralrockets](https://github.com/neutralrockets)) -- Fixed Taiwanese (zh_TW) incorrect `mb_substr()` arguments [\#799](https://github.com/fzaninotto/Faker/pull/799) ([BePsvPT](https://github.com/BePsvPT)) -- Added Spot ORM populator [\#796](https://github.com/fzaninotto/Faker/pull/796) ([urisavka](https://github.com/urisavka)) -- Added Italian (it\_IT) `vatId` and `taxId` formatters [\#790](https://github.com/fzaninotto/Faker/pull/790) ([brainrepo](https://github.com/brainrepo)) -- Added some fixes to Armenian (hy\_AM) locale [\#788](https://github.com/fzaninotto/Faker/pull/788) ([mhamlet](https://github.com/mhamlet)) -- Removed duplicate entries in `toAscii()` transliteration table, used in `Internet` provider [\#787](https://github.com/fzaninotto/Faker/pull/787) ([vlakoff](https://github.com/vlakoff)) -- Added Indian (en\_IN) providers [\#785](https://github.com/fzaninotto/Faker/pull/785) ([kartiksomani](https://github.com/kartiksomani)) -- Removed duplicate country names in various locales, removed non-random country arrays [\#784](https://github.com/fzaninotto/Faker/pull/784) ([fzaninotto](https://github.com/fzaninotto)) -- Improved Swiss (de\_CH) phone numbers [\#782](https://github.com/fzaninotto/Faker/pull/782) ([z38](https://github.com/z38)) -- Added Swiss (de\_CH) names [\#781](https://github.com/fzaninotto/Faker/pull/781) ([z38](https://github.com/z38)) -- Make capitalization of first word optional in Text Provider [\#778](https://github.com/fzaninotto/Faker/pull/778) ([LagunaJavier](https://github.com/LagunaJavier)) -- Added Georgian (ka\_GE) providers [\#777](https://github.com/fzaninotto/Faker/pull/777) ([akalongman](https://github.com/akalongman)) -- Fix CakePHP populator [\#776](https://github.com/fzaninotto/Faker/pull/776) ([daniel-mueller](https://github.com/daniel-mueller)) -- Added unit tests for `Address` provider in many locales [\#775](https://github.com/fzaninotto/Faker/pull/775) [\#773](https://github.com/fzaninotto/Faker/pull/773) [\#772](https://github.com/fzaninotto/Faker/pull/772) [\#767](https://github.com/fzaninotto/Faker/pull/767) [\#765](https://github.com/fzaninotto/Faker/pull/765) [\#764](https://github.com/fzaninotto/Faker/pull/764) [\#758](https://github.com/fzaninotto/Faker/pull/758) [\#756](https://github.com/fzaninotto/Faker/pull/756) [\#747](https://github.com/fzaninotto/Faker/pull/747) [\#741](https://github.com/fzaninotto/Faker/pull/741) ([Newman101](https://github.com/Newman101)) -- Added `dbi` formatter to Spanish (es\_ES) Person provider [\#763](https://github.com/fzaninotto/Faker/pull/763) ([mikk150](https://github.com/mikk150)) -- Added South Africa (en\_ZA) locale [\#761](https://github.com/fzaninotto/Faker/pull/761) ([smithandre](https://github.com/smithandre)) [\#760](https://github.com/fzaninotto/Faker/pull/760) ([smithandre](https://github.com/smithandre)) [\#759](https://github.com/fzaninotto/Faker/pull/759) ([smithandre](https://github.com/smithandre)) -- Added E.164 phone number generator [\#753](https://github.com/fzaninotto/Faker/pull/753) ([daleattree](https://github.com/daleattree)) -- Fixed serialization issue in `unique` modifier [\#749](https://github.com/fzaninotto/Faker/pull/749) ([EmanueleMinotto](https://github.com/EmanueleMinotto)) -- Added Switzerland (de\_CH, fr\_CH, it\_CH) providers [\#739](https://github.com/fzaninotto/Faker/pull/739) ([r3h6](https://github.com/r3h6)) -- Added PHPDocs, removed unused variable [\#738](https://github.com/fzaninotto/Faker/pull/738) ([daniel-mueller](https://github.com/daniel-mueller)) -- Fixed building numbers to have non-zero first bumber [\#737](https://github.com/fzaninotto/Faker/pull/737) ([jmauerhan](https://github.com/jmauerhan)) -- Updated ninth digit for Brazilian cell phone numbers [\#734](https://github.com/fzaninotto/Faker/pull/734) ([igorsantos07](https://github.com/igorsantos07)) -- Simplified Factory code [\#732](https://github.com/fzaninotto/Faker/pull/732) ([vlakoff](https://github.com/vlakoff)) -- Added mention of [images-generator](https://github.com/bruceheller/images-generator) in readme [\#731](https://github.com/fzaninotto/Faker/pull/731) ([bruceheller](https://github.com/bruceheller)) -- Optimize Internet::toAscii\(\) by using a static cache and translitteration [\#730](https://github.com/fzaninotto/Faker/pull/730) [\#729](https://github.com/fzaninotto/Faker/pull/729) -[\#725](https://github.com/fzaninotto/Faker/pull/725) [\#724](https://github.com/fzaninotto/Faker/pull/724) ([vlakoff](https://github.com/vlakoff)) -- Added more English (en\_GB) Phone Number formats [\#721](https://github.com/fzaninotto/Faker/pull/721) ([nickwebcouk](https://github.com/nickwebcouk)) -- Cleaned up `use` statements across the code [\#719](https://github.com/fzaninotto/Faker/pull/719) ([pomaxa](https://github.com/pomaxa)) -- Fixed CackePHP populator [\#718](https://github.com/fzaninotto/Faker/pull/718) ([sdustinh](https://github.com/sdustinh)) -- Cleaned up various phpmd notices [\#715](https://github.com/fzaninotto/Faker/pull/715) ([pomaxa](https://github.com/pomaxa)) -- Added `Color` provider to Latvian (lv_LV) locale [\#714](https://github.com/fzaninotto/Faker/pull/714) ([pomaxa](https://github.com/pomaxa)) -- Fixed bad randomization in Doctrine populator [\#713](https://github.com/fzaninotto/Faker/pull/713) ([pomaxa](https://github.com/pomaxa)) -- Added Mongolian (mn\_MN) providers [\#709](https://github.com/fzaninotto/Faker/pull/709) ([selmonal](https://github.com/selmonal)) -- Improved Australian (en\_AU) `postcode` formatter [\#703](https://github.com/fzaninotto/Faker/pull/703) ([xfxf](https://github.com/xfxf)) -- Added support for asterisks in `bothify` and `optimize` [\#701](https://github.com/fzaninotto/Faker/pull/701) ([nineinchnick](https://github.com/nineinchnick)) -- Fixed important distinction between ORM and database framework in README’s reference to an external Faker provider for POMM that I have never even tested. Anyway, POMM is highly recommended if you are a Postgres fan, or if you want to please Grégoire and help him finish his lifelong project of listening to music on a hi-fi audio equipment he built from his own hands [\#696](https://github.com/fzaninotto/Faker/pull/696) ([chanmix51](https://github.com/chanmix51)) -- Fixed example `text()` output in README [\#694](https://github.com/fzaninotto/Faker/pull/694) ([vlakoff](https://github.com/vlakoff)) -- Added mention of CakePHP 2.x Seeder Plugin to readme [\#691](https://github.com/fzaninotto/Faker/pull/691) ([ravage84](https://github.com/ravage84)) -- Fixed invalid email bug for Korean (ko\_KR) [\#690](https://github.com/fzaninotto/Faker/pull/690) ([pearlc](https://github.com/pearlc)) -- Removed an invalid Dutch (nl\_NL) lastname that breaks email generator [\#689](https://github.com/fzaninotto/Faker/pull/689) ([SpaceK33z](https://github.com/SpaceK33z)) -- Updated `numberBetween()` to be order agnostic [\#683](https://github.com/fzaninotto/Faker/pull/683) ([xfxf](https://github.com/xfxf)) -- Added several English (en\_US) bank-related formatters [\#682](https://github.com/fzaninotto/Faker/pull/682) ([okj579](https://github.com/okj579)) -- Fixed `ipv4` formatter to avoid generating special purpose addresses [\#681](https://github.com/fzaninotto/Faker/pull/681) ([ravage84](https://github.com/ravage84)) -- Moved `intl` extension to `require-dev` in `composer.json` file [\#680](https://github.com/fzaninotto/Faker/pull/680) ([jaschweder](https://github.com/jaschweder)) -- Added more Turkish (tr\_TR) phones number formats [\#678](https://github.com/fzaninotto/Faker/pull/678) ([Quanthir](https://github.com/Quanthir)) -- Fixed primary Key warning in CakePHP ORM populator [\#677](https://github.com/fzaninotto/Faker/pull/677) ([davidyell](https://github.com/davidyell)) -- Added time zone support for provider methods returning DateTime instance [\#675](https://github.com/fzaninotto/Faker/pull/675) ([bishopb](https://github.com/bishopb)) -- Removed trailing spaces from some Argentinian (es\_AR) female first names [\#674](https://github.com/fzaninotto/Faker/pull/674) ([ivanmirson](https://github.com/ivanmirson)) -- Added Lithuanian (lt\_LT) locale [\#673](https://github.com/fzaninotto/Faker/pull/673) ([ekateiva](https://github.com/ekateiva)) -- Added mention of Alice to readme [\#665](https://github.com/fzaninotto/Faker/pull/665) ([Seldaek](https://github.com/Seldaek)) -- Fixed namespace in tests [\#663](https://github.com/fzaninotto/Faker/pull/663) ([localheinz](https://github.com/localheinz)) -- Fixed trailing spaces in `Color` provider [\#662](https://github.com/fzaninotto/Faker/pull/662) ([apsylone](https://github.com/apsylone)) -- Removed duplicate country names in Russian (ru\_RU) `Address` provider [\#659](https://github.com/fzaninotto/Faker/pull/659) ([nurolopher](https://github.com/nurolopher)) -- Added `rgba` formatter to `Color` provider [\#653](https://github.com/fzaninotto/Faker/pull/653) ([apsylone](https://github.com/apsylone)) -- Fixed bad randomization in CakePHP populator [\#648](https://github.com/fzaninotto/Faker/pull/648) ([jadb](https://github.com/jadb)) -- Updated phpunit configuration to better use colors [\#643](https://github.com/fzaninotto/Faker/pull/643) ([localheinz](https://github.com/localheinz)) -- Updated `makefile` to install dev dependencies by default [\#642](https://github.com/fzaninotto/Faker/pull/642) ([localheinz](https://github.com/localheinz)) -- Updated Travis configuration to cache dependencies between builds [\#641](https://github.com/fzaninotto/Faker/pull/641) ([localheinz](https://github.com/localheinz)) -- Added SVG badge to readme for displaying Travis build status [\#640](https://github.com/fzaninotto/Faker/pull/640) ([localheinz](https://github.com/localheinz)) -- Added Croatian (hr\_HR) locale [\#638](https://github.com/fzaninotto/Faker/pull/638) ([toniperic](https://github.com/toniperic)) -- Updated `dateTimeBetween` PHPDoc [\#635](https://github.com/fzaninotto/Faker/pull/635) ([theofidry](https://github.com/theofidry)) -- Add mention of Symfony2 bundles in readme [\#634](https://github.com/fzaninotto/Faker/pull/634) ([theofidry](https://github.com/theofidry)) -- Added Hebrew (he\_IL) locale [\#633](https://github.com/fzaninotto/Faker/pull/633) ([yonirom](https://github.com/yonirom)) -- Updated `seed` to accept non-integer seeds [\#632](https://github.com/fzaninotto/Faker/pull/632) ([theofidry](https://github.com/theofidry)) -- Added DocBlock to `Factory::create()` [\#631](https://github.com/fzaninotto/Faker/pull/631) ([tonynelson19](https://github.com/tonynelson19)) -- Added `jobTitle` generator [\#630](https://github.com/fzaninotto/Faker/pull/630) ([gregoryduckworth](https://github.com/gregoryduckworth)) -- Updated Chinese (zh\_CN) `Person` provider to generate more correct names [\#628](https://github.com/fzaninotto/Faker/pull/628) ([phoenixgao](https://github.com/phoenixgao)) -- Updated Brazilian (pt\_BR) `cellphone` formatter to make it more flexible [\#623](https://github.com/fzaninotto/Faker/pull/623) ([igorsantos07](https://github.com/igorsantos07)) -- Add Arabic for Saudi Arabia (ar\_SA) locale [\#618](https://github.com/fzaninotto/Faker/pull/618) ([ibrasho](https://github.com/ibrasho)) -- Updated en\_US phone numbers [\#615](https://github.com/fzaninotto/Faker/pull/615) ([okj579](https://github.com/okj579)) -- Fixed typos in variable names and exceptions [\#614](https://github.com/fzaninotto/Faker/pull/614) ([pborreli](https://github.com/pborreli)) -- Added a table of contents to the readme file. [\#613](https://github.com/fzaninotto/Faker/pull/613) ([camilopayan](https://github.com/camilopayan)) -- Added Brazilian (es_BR) credit card formatters [\#608](https://github.com/fzaninotto/Faker/pull/608) ([igorsantos07](https://github.com/igorsantos07)) -- Updated `iban` formatter to be cross-locale [\#607](https://github.com/fzaninotto/Faker/pull/607) ([okj579](https://github.com/okj579)) -- Improved ORM name guesser logic [\#606](https://github.com/fzaninotto/Faker/pull/606) ([watermanio](https://github.com/watermanio)) -- Fixed doc typo [\#605](https://github.com/fzaninotto/Faker/pull/605) ([igorsantos07](https://github.com/igorsantos07)) -- Removed executable bits [\#593](https://github.com/fzaninotto/Faker/pull/593) ([siwinski](https://github.com/siwinski)) -- Fixed `iban` generator [\#590](https://github.com/fzaninotto/Faker/pull/590) ([okj579](https://github.com/okj579)) -- Added Philippines (en\_PH) `mobileNumber` formatter [\#589](https://github.com/fzaninotto/Faker/pull/589) ([lozadaOmr](https://github.com/lozadaOmr)) -- Added support for min / max params in `latitude` and `longitude` formatters [\#570](https://github.com/fzaninotto/Faker/pull/570) ([actuallymab](https://github.com/actuallymab)) -- Added Czech (cs_CZ) `birthNumber` formatter [\#535](https://github.com/fzaninotto/Faker/pull/535) ([tomasbedrich](https://github.com/tomasbedrich)) -- Added `dateTimeInInterval` formatter [\#526](https://github.com/fzaninotto/Faker/pull/526) ([nicodmf](https://github.com/nicodmf)) -- Updated `optional` and `boolean` apis to be more consistent [\#513](https://github.com/fzaninotto/Faker/pull/513) ([EmanueleMinotto](https://github.com/EmanueleMinotto)) -- Added Greek (el\_GR) `Address` provider [\#504](https://github.com/fzaninotto/Faker/pull/504) ([drakakisgeo](https://github.com/drakakisgeo)) - -2015-05-29, v1.5.0 ------------------- - -* Added ability to print custom text on the images fetched by the Image provider [\#583](https://github.com/fzaninotto/Faker/pull/583) ([fzaninotto](https://github.com/fzaninotto)) -* Fixed typos in Peruvian (es\_PE) Person provider [\#581](https://github.com/fzaninotto/Faker/pull/581) [\#580](https://github.com/fzaninotto/Faker/pull/580) ([ysramirez](https://github.com/ysramirez)) -* Added instructions for installing with composer to readme.md [\#572](https://github.com/fzaninotto/Faker/pull/572) ([totophe](https://github.com/totophe)) -* Added Kazakh (kk\_KZ) locale [\#569](https://github.com/fzaninotto/Faker/pull/569) ([YerlenZhubangaliyev](https://github.com/YerlenZhubangaliyev)) -* Added Korean (ko\_KR) locale [\#566](https://github.com/fzaninotto/Faker/pull/566) ([pearlc](https://github.com/pearlc)) -* Fixed file provider to ignore unreadable and special files [\#565](https://github.com/fzaninotto/Faker/pull/565) ([svrnm](https://github.com/svrnm)) -* Fixed Dutch (nl\_NL) Address and Person providers [\#560](https://github.com/fzaninotto/Faker/pull/560) ([killerog](https://github.com/killerog)) -* Fixed Dutch (nl\_NL) Person provider [\#559](https://github.com/fzaninotto/Faker/pull/559) ([pauledenburg](https://github.com/pauledenburg)) -* Added Russian (ru\_RU) Bank names provider [\#553](https://github.com/fzaninotto/Faker/pull/553) ([wizardjedi](https://github.com/wizardjedi)) -* Added mobile phone function in French (fr\_FR) provider [\#552](https://github.com/fzaninotto/Faker/pull/552) ([kletellier](https://github.com/kletellier)) -* Added phpdoc for new magic methods in Generator to help IntelliSense completion [\#550](https://github.com/fzaninotto/Faker/pull/550) ([stof](https://github.com/stof)) -* Fixed File provider bug 'The first argument to copy() function cannot be a directory' [\#547](https://github.com/fzaninotto/Faker/pull/547) ([svrnm](https://github.com/svrnm)) -* Added new Brazilian (pt\_BR) Providers [\#545](https://github.com/fzaninotto/Faker/pull/545) ([igorsantos07](https://github.com/igorsantos07)) -* Fixed ability to seed the generator [\#543](https://github.com/fzaninotto/Faker/pull/543) ([schmengler](https://github.com/schmengler)) -* Added streetAddress formatter to Russian (ru\_RU) provider [\#542](https://github.com/fzaninotto/Faker/pull/542) ([ZAYEC77](https://github.com/ZAYEC77)) -* Fixed Internet provider warning "Could not create transliterator"* [\#541](https://github.com/fzaninotto/Faker/pull/541) ([fonsecas72](https://github.com/fonsecas72)) -* Fixed Spanish for Argentina (es\_AR) Address provider [\#540](https://github.com/fzaninotto/Faker/pull/540) ([ivanmirson](https://github.com/ivanmirson)) -* Fixed region names in French for Belgium (fr\_BE) address provider [\#536](https://github.com/fzaninotto/Faker/pull/536) ([miclf](https://github.com/miclf)) -* Fixed broken Doctrine2 link in README [\#534](https://github.com/fzaninotto/Faker/pull/534) ([JonathanKryza](https://github.com/JonathanKryza)) -* Added link to faker-context Behat extension in readme [\#532](https://github.com/fzaninotto/Faker/pull/532) ([denheck](https://github.com/denheck)) -* Added PHP 7.0 nightly to Travis build targets [\#525](https://github.com/fzaninotto/Faker/pull/525) ([TomasVotruba](https://github.com/TomasVotruba)) -* Added Dutch (nl\_NL) color names [\#523](https://github.com/fzaninotto/Faker/pull/523) ([belendel](https://github.com/belendel)) -* Fixed Chinese (zh\_CN) Address provider (remove Taipei) [\#522](https://github.com/fzaninotto/Faker/pull/522) ([asika32764](https://github.com/asika32764)) -* Fixed phonenumber formats in Dutch (nl\_NL) PhoneNumber provider [\#521](https://github.com/fzaninotto/Faker/pull/521) ([SpaceK33z](https://github.com/SpaceK33z)) -* Fixed Russian (ru\_RU) Address provider [\#518](https://github.com/fzaninotto/Faker/pull/518) ([glagola](https://github.com/glagola)) -* Added Italian (it\_IT) Text provider [\#517](https://github.com/fzaninotto/Faker/pull/517) ([endelwar](https://github.com/endelwar)) -* Added Norwegian (no\_NO) locale [\#515](https://github.com/fzaninotto/Faker/pull/515) ([phaza](https://github.com/phaza)) -* Added VAT number to Bulgarian (bg\_BG) Payment provider [\#512](https://github.com/fzaninotto/Faker/pull/512) ([ronanguilloux](https://github.com/ronanguilloux)) -* Fixed UserAgent provider outdated user agents [\#511](https://github.com/fzaninotto/Faker/pull/511) ([ajbdev](https://github.com/ajbdev)) -* Fixed `image()` formatter to make it work with temp dir of any (decent) OS [\#507](https://github.com/fzaninotto/Faker/pull/507) ([ronanguilloux](https://github.com/ronanguilloux)) -* Added Persian (fa\_IR) locale [\#500](https://github.com/fzaninotto/Faker/pull/500) ([zoli](https://github.com/zoli)) -* Added Currency Code formatter [\#497](https://github.com/fzaninotto/Faker/pull/497) ([stelgenhof](https://github.com/stelgenhof)) -* Added VAT number to Belgium (be_BE) Payment provider [\#495](https://github.com/fzaninotto/Faker/pull/495) ([ronanguilloux](https://github.com/ronanguilloux)) -* Fixed `imageUrl` formatter bug where it would always return the same image [\#494](https://github.com/fzaninotto/Faker/pull/494) ([fzaninotto](https://github.com/fzaninotto)) -* Added more Indonesian (id\_ID) providers [\#493](https://github.com/fzaninotto/Faker/pull/493) ([deerawan](https://github.com/deerawan)) -* Added Indonesian (id\_ID) locale [\#492](https://github.com/fzaninotto/Faker/pull/492) ([stoutZero](https://github.com/stoutZero)) -* Fixed unique generator performance [\#491](https://github.com/fzaninotto/Faker/pull/491) ([ikwattro](https://github.com/ikwattro)) -* Added transliterator to `email` and `username` [\#490](https://github.com/fzaninotto/Faker/pull/490) ([fzaninotto](https://github.com/fzaninotto)) -* Added Hungarian (hu\_HU) Text provider [\#486](https://github.com/fzaninotto/Faker/pull/486) ([lintaba](https://github.com/lintaba)) -* Fixed CakePHP Entity Popolator (some cases where no entities prev. inserted) [\#483](https://github.com/fzaninotto/Faker/pull/483) ([jadb](https://github.com/jadb)) -* Added Color and DateTime Turkish (tr\_TR) Providers [\#481](https://github.com/fzaninotto/Faker/pull/481) ([behramcelen](https://github.com/behramcelen)) -* Added Latvian (lv\_LV) `personalIdentityNumber` formatter [\#472](https://github.com/fzaninotto/Faker/pull/472) ([MatissJanis](https://github.com/MatissJanis)) -* Added VAT number to Austrian (at_AT) Payment provider [\#470](https://github.com/fzaninotto/Faker/pull/470) ([ronanguilloux](https://github.com/ronanguilloux)) -* Fixed missing @return phpDoc in Payment provider [\#469](https://github.com/fzaninotto/Faker/pull/469) ([ronanguilloux](https://github.com/ronanguilloux)) -* Added SWIFT/BIC payment type formatter to the Payment provider [\#465](https://github.com/fzaninotto/Faker/pull/465) ([ronanguilloux](https://github.com/ronanguilloux)) -* Fixed small typo in Base provider exception [\#460](https://github.com/fzaninotto/Faker/pull/460) ([miclf](https://github.com/miclf)) -* Added Georgian (ka\_Ge) locale [\#457](https://github.com/fzaninotto/Faker/pull/457) ([lperto](https://github.com/lperto)) -* Added PSR-4 Autoloading [\#455](https://github.com/fzaninotto/Faker/pull/455) ([GrahamCampbell](https://github.com/GrahamCampbell)) -* Added Uganda (en_UG) locale [\#454](https://github.com/fzaninotto/Faker/pull/454) ([tharoldD](https://github.com/tharoldD)) -* Added `regexify` formatter, generating a random string based on a regular expression [\#453](https://github.com/fzaninotto/Faker/pull/453) ([fzaninotto](https://github.com/fzaninotto)) -* Added shuffle formatter, to shuffle an array or a string [\#452](https://github.com/fzaninotto/Faker/pull/452) ([fzaninotto](https://github.com/fzaninotto)) -* Added ISBN-10 & ISBN-13 codes formatters to Barcode provider [\#451](https://github.com/fzaninotto/Faker/pull/451) ([gietos](https://github.com/gietos)) -* Fixed Russian (ru\_RU) middle names (different for different genders) [\#450](https://github.com/fzaninotto/Faker/pull/450) ([gietos](https://github.com/gietos)) -* Fixed Ukranian (uk\_UA) Person provider [\#448](https://github.com/fzaninotto/Faker/pull/448) ([aivus](https://github.com/aivus)) -* Added Vietnamese (vi\_VN) locale [\#447](https://github.com/fzaninotto/Faker/pull/447) ([huy95](https://github.com/huy95)) -* Added type hint to the Documentor constructor [\#446](https://github.com/fzaninotto/Faker/pull/446) ([JeroenDeDauw](https://github.com/JeroenDeDauw)) -* Fixed Russian (ru\_RU) Person provider (joined names) [\#445](https://github.com/fzaninotto/Faker/pull/445) ([aivus](https://github.com/aivus)) -* Added English (en\_GB) `mobileNumber` methods [\#438](https://github.com/fzaninotto/Faker/pull/438) ([daveblake](https://github.com/daveblake)) -* Added Traditional Chinese (zh\_TW) Realtext provider [\#434](https://github.com/fzaninotto/Faker/pull/434) ([tzhuan](https://github.com/tzhuan)) -* Fixed first name in Spanish for Argentina (es\_AR) Person provider [\#433](https://github.com/fzaninotto/Faker/pull/433) ([fzaninotto](https://github.com/fzaninotto)) -* Fixed Canadian (en_CA) state abbreviation for Nunavut [\#430](https://github.com/fzaninotto/Faker/pull/430) ([julien-c](https://github.com/julien-c)) -* Added CakePHP ORM entity populator [\#428](https://github.com/fzaninotto/Faker/pull/428) ([jadb](https://github.com/jadb)) -* Added Traditional Chinese (zh\_TW) locale [\#427](https://github.com/fzaninotto/Faker/pull/427) ([tzhuan](https://github.com/tzhuan)) -* Fixed typo in Doctrine Populator phpDoc [\#425](https://github.com/fzaninotto/Faker/pull/425) ([ihsanudin](https://github.com/ihsanudin)) -* Added Chinese (zh_CN) Internet provider [\#424](https://github.com/fzaninotto/Faker/pull/424) ([Lisso-Me](https://github.com/Lisso-Me)) -* Added Country ISO 3166-1 alpha-3 code to the Miscellaneous provider[\#422](https://github.com/fzaninotto/Faker/pull/422) ([gido](https://github.com/gido)) -* Added English (en\_GB) Person provider [\#421](https://github.com/fzaninotto/Faker/pull/421) ([AlexCutts](https://github.com/AlexCutts)) -* Added missing tests for the Color Provider [\#420](https://github.com/fzaninotto/Faker/pull/420) ([bessl](https://github.com/bessl)) -* Added Nepali (ne\_NP) locale [\#419](https://github.com/fzaninotto/Faker/pull/419) ([ankitpokhrel](https://github.com/ankitpokhrel)) -* Fixed latitude and longitude formatters bug (numeric value out of range for 32bits) [\#416](https://github.com/fzaninotto/Faker/pull/416) ([fzaninotto](https://github.com/fzaninotto)) -* Added a dedicated calculator Luhn calculator service [\#414](https://github.com/fzaninotto/Faker/pull/414) ([fzaninotto](https://github.com/fzaninotto)) -* Fixed Russian (ru_RU) Person provider (removed lowercase duplications) [\#413](https://github.com/fzaninotto/Faker/pull/413) ([Ragazzo](https://github.com/Ragazzo)) -* Fixed barcode formatter (improved speed, added tests) [\#412](https://github.com/fzaninotto/Faker/pull/412) ([fzaninotto](https://github.com/fzaninotto)) -* Added ipv4 and barcode formatters tests [\#410](https://github.com/fzaninotto/Faker/pull/410) ([bessl](https://github.com/bessl)) -* Fixed typos in various comments blocks [\#409](https://github.com/fzaninotto/Faker/pull/409) ([bessl](https://github.com/bessl)) -* Fixed InternetTest (replaced regex with PHP filter) [\#406](https://github.com/fzaninotto/Faker/pull/406) ([bessl](https://github.com/bessl)) -* Added password formatter to the Internet provider[\#402](https://github.com/fzaninotto/Faker/pull/402) ([fzaninotto](https://github.com/fzaninotto)) -* Added Company and Internet Austrian (de\_AT) Providers [\#400](https://github.com/fzaninotto/Faker/pull/400) ([bessl](https://github.com/bessl)) -* Added third-party libraries section in README [\#399](https://github.com/fzaninotto/Faker/pull/399) ([fzaninotto](https://github.com/fzaninotto)) -* Added Spanish for Venezuela (es\_VE) locale [\#398](https://github.com/fzaninotto/Faker/pull/398) ([DIOHz0r](https://github.com/DIOHz0r)) -* Added PhoneNumber Autrian (de\_AT) Provider, and missing test for the 'locale' method. [\#395](https://github.com/fzaninotto/Faker/pull/395) ([bessl](https://github.com/bessl)) -* Removed wrongly localized Lorem provider [\#394](https://github.com/fzaninotto/Faker/pull/394) ([fzaninotto](https://github.com/fzaninotto)) -* Fixed Miscellaneous provider (made the `locale` formatter static) [\#390](https://github.com/fzaninotto/Faker/pull/390) ([bessl](https://github.com/bessl)) -* Added a unit test file for the Miscellaneous Provider [\#389](https://github.com/fzaninotto/Faker/pull/389) ([bessl](https://github.com/bessl)) -* Added warning in README about using `rand()`` and the seed functions [\#386](https://github.com/fzaninotto/Faker/pull/386) ([paulvalla](https://github.com/paulvalla)) -* Fixed French (fr\_FR) Person provider (Uppercased a first name) [\#385](https://github.com/fzaninotto/Faker/pull/385) ([netcarver](https://github.com/netcarver)) -* Added Russian (ru\_RU) and Ukrainian (uk\_UA) Text providers [\#383](https://github.com/fzaninotto/Faker/pull/383) ([terion-name](https://github.com/terion-name)) -* Added more street prefixes to French (fr\_FR) Address provider [\#381](https://github.com/fzaninotto/Faker/pull/381) ([ronanguilloux](https://github.com/ronanguilloux)) -* Added PHP 5.6 to CI targets [\#378](https://github.com/fzaninotto/Faker/pull/378) ([GrahamCampbell](https://github.com/GrahamCampbell)) -* Fixed spaces remaining at the end of liine in various files [\#377](https://github.com/fzaninotto/Faker/pull/377) ([GrahamCampbell](https://github.com/GrahamCampbell)) -* Fixed UserAgent provider (added space before processor on linux platform) [\#374](https://github.com/fzaninotto/Faker/pull/374) ([TomK](https://github.com/TomK)) -* Added Company generator for Russian (ru\_RU) locale [\#371](https://github.com/fzaninotto/Faker/pull/371) ([kix](https://github.com/kix)) -* Fixed Russian (ru\_RU) Color provider (uppercase letters) [\#370](https://github.com/fzaninotto/Faker/pull/370) ([semanser](https://github.com/semanser)) -* Added more Polish (pl\_PL) phone numbers [\#369](https://github.com/fzaninotto/Faker/pull/369) ([piotrantosik](https://github.com/piotrantosik)) -* Fixed Ruby Faker link in readme [\#368](https://github.com/fzaninotto/Faker/pull/368) ([philsturgeon](https://github.com/philsturgeon)) -* Added more Japanese (ja\_JP) names in Person provider [\#366](https://github.com/fzaninotto/Faker/pull/366) ([kumamidori](https://github.com/kumamidori)) -* Added Slovenian (sl\_SL) locale [\#363](https://github.com/fzaninotto/Faker/pull/363) ([alesf](https://github.com/alesf)) -* Fixed German (de\_DE) Person provider (first names) [\#362](https://github.com/fzaninotto/Faker/pull/362) ([mikehaertl](https://github.com/mikehaertl)) -* Fixed Ukrainian (uk\_UA) Person providr (there is no such letter "ы" in Ukrainian) [\#359](https://github.com/fzaninotto/Faker/pull/359) ([nazar-pc](https://github.com/nazar-pc)) -* Fixed Chinese (zh\_CN) PhoneNumber provider (the length of mobile phone number is 11) [\#358](https://github.com/fzaninotto/Faker/pull/358) ([byan](https://github.com/byan)) -* Added Arabic (ar_\JO) Locale [\#357](https://github.com/fzaninotto/Faker/pull/357) ([zrashwani](https://github.com/zrashwani)) -* Fixed Czech (cs\_CZ) Person provider (missing lowercase in last name) [\#355](https://github.com/fzaninotto/Faker/pull/355) ([halaxa](https://github.com/halaxa)) -* Fixed French for Belgium (fr\_BE) Address Provider (doubled city names) [\#354](https://github.com/fzaninotto/Faker/pull/354) ([miclf](https://github.com/miclf)) -* Added Biased Integer Provider [\#332](https://github.com/fzaninotto/Faker/pull/332) ([TimWolla](https://github.com/TimWolla)) -* Added Swedish (sv\_SE) locale [\#316](https://github.com/fzaninotto/Faker/pull/316) ([ulrikjohansson](https://github.com/ulrikjohansson)) -* Added English for New Zealand (en\_NZ) locale [\#283](https://github.com/fzaninotto/Faker/pull/283) ([JasonMortonNZ](https://github.com/JasonMortonNZ)) -* Added mention of external Provider for cron expressions to readme[\#498](https://github.com/fzaninotto/Faker/pull/498) ([swekaj](https://github.com/swekaj)) - -2014-06-04, v1.4.0 ------------------- - -* Fixed typo in Slovak person names (cinan) -* Added tests for uk_UA providers (serge-kuharev) -* Fixed numerify() performance by making it 30% faster (fzaninotto) -* Added strict option to randomNumber to force number of digits (fzaninotto) -* Fixed randomNumber usage duplicating numberBetween (fzaninotto) -* Fixed address provider for latvian language (MatissJA) -* Added Czech Republic (cs_CZ) address, company, datetime and text providers (Mikulas) -* Fixed da_DK Person provider data containing an 'unnamed' person (tolnem) -* Added slug provider (fzaninotto) -* Fixed IDE insights for new local IP and MAC address providers (hugofonseca) -* Added firstname gender method to all Person providers (csanquer) -* Fixed tr_TR email service, city name, person, and phone number formats (ogunkarakus) -* Fixed US_en state list (fzaninotto) -* Fixed en_US address provider so state abbr are ISO 3166 codes (Garbee) -* Added local IP and MAC address providers (kielabokkie) -* Fixed typo in century list affecting the century provider (fzaninotto) -* Added default value to optional modifier (joshuajabbour) -* Fixed Portuguese phonenumbers have 9 digits (hugofonseca) -* Added fileCopy to File provider to simulate file upload (stefanosala) -* Added pt_PT providers (hugofonseca) -* Fixed dead code in text provider (hugofonseca) -* Fixed IDE insights for magic properties (hugofonseca) -* Added tin (NIF) generator for pt_PT provider (hugofonseca) -* Fixed numberBetween max default value handling (fzaninotto) -* Added pt_PT phone number provider (hugofonseca) -* Fixed PSR-2 standards and add make task to force it on Travis (terite) -* Added new ro_RO Personal Numerical Code (CNP) and phone number providers (avataru) -* Fixed Internet provider for sk_SK locale (cinan) -* Fixed typo in en_ZA Internet provider (bjorntheart) -* Fixed phpdoc for DateTime magic methods (stof) -* Added doc about seeding with maximum timestamp using dateTime formatters (fzaninotto) -* Added Maximum Timestamp option to get always same unix timestamp when using a fixed seed (csanquer) -* Added Montenegrian (me_ME) providers (ognjenm) -* Added ean barcode provider (nineinchnick) -* Added fullPath parameter to Image provider (stefanosala) -* Added more Polish company formats (nineinchnick) -* Added Polish realText provider (nineinchnick) -* Fixed remaining non-seedable random generators (terite) -* Added randomElements provider (terite) -* Added French realText provider (fzaninotto) -* Fixed realText provider bootstrap slowness (fzaninotto) -* Added realText provider for English and German, based on Markov Chains Generator (TimWolla) -* Fixed address format in nl_NL provider (doenietzomoeilijk) -* Fixed potentially offensive word from last name list (joshuajabbour) -* Fixed reamde documentation about the optional modifier (cryode) -* Fixed Image provider and documentor routine (fzaninotto) -* Fixed IDE insights for methods (PedroTroller) -* Fixed missing data in en_US Address provider (Garbee) -* Added Bengali (bn_BD) providers (masnun) -* Fixed warning on test file when short tags are on (bateller) -* Fixed Doctrine populator undefined index warning (dbojdo) -* Added French Canadian (fr_CA) Address and Person providers (marcaube) -* Fixed typo in NullGenerator (mhanson01) -* Fixed Doctrine populator issue with one-to-one nullable relationship (jpetitcolas) -* Added Canadian English (en_CA) address and phone number providers (cviebrock) -* Fixed duplicated Payment example in readme (Garbee) -* Fixed Polish (pl_PL) Person provider data (czogori) -* Added Hungarian (hu_HU) providers (sagikazarmark) -* Added 'kana' (ja_JP) name formatters (kzykhys) -* Added allow_failure for hhvm to travis-ci and test against php 5.5 (toin0u) - -2013-12-16, v1.3.0 ------------------- - -* Fixed state generator in Australian (en_AU) provider (sebklaus) -* Fixed IDE insights for locale specific providers (ulrikjohansson) -* Added English (South Africa) (en_ZA) person, address, Internet and phone number providers (dmfaux) -* Fixed integer values overflowing on signed INTEGER columns on Doctrine populator (Thinkscape) -* Fixed spelling error in French (fr_FR) address provider (leihog) -* Added improvements based on SensioLabsInsights analysis -* Fixed Italian (it_IT) email provider (garak) -* Added Spanish (es_ES) Internet provider (eusonlito) -* Added English Philippines (en_PH) address provider (kamote) -* Added Brazilian (pt_BR) email provider data (KennedyTedesco) -* Fixed UK country code (pgscandeias) -* Added Peruvian (es_PE) person, address, phone number, and company providers (cslucano) -* Added Ukrainian (uk_UA) color provider (ruden) -* Fixed Ukrainian (uk_UA) namespace and email translitteration (ruden) -* Added Romanian (Moldova) (ro_MD) person, address, and phone number providers (AlexanderC) -* Added IBAN generator for every currently known locale that uses it (nineinchnick) -* Added Image generation powered by LoremPixel (weotch) -* Fixed missing timezone with dateTimeBetween (baldurrensch) -* Fixed call to undefined method cardType in Payment (WMeldon) -* Added Romanian (ro_RO) address and person providers (calina-c) -* Fixed Doctrine populator to use ObjectManager instead of EntityManagerInterface (mgiustiniani) -* Fixed docblock for Provider\Base::unique() (pschultz) -* Added Payment providers (creditCardType, creditCardNumber, creditCardExpirationDate, creditCardExpirationDateString) (pomaxa) -* Added unique() modifier -* Added IDE insights to allow better intellisense/phpStorm autocompletion (thallisphp) -* Added Polish (pl_PL) address provider, personal identity number and pesel number generator (nineinchnick) -* Added Turkish (tr_TR) address provider, and improved internet provider (hasandz) -* Fixed Propel column number guesser to use signed range of values (gunnarlium) -* Added Greek (el_GR) person, address, and phone number providers (georgeharito) -* Added Austrian (en_AU) address, Internet, and phone number providers (rcuddy) -* Fixed phpDoc in Doctrine Entity populator (rogamoore) -* Added French (fr_FR) phone number formats (vchabot) -* Added optional() modifier (weotch) -* Fixed typo in the Person provider documentation (jtreminio) -* Fixed Russian (ru_RU) person format (alexshadow007) -* Added Japanese (ja_JP) person, address, Internet, phone number, and company providers (kumamidori) -* Added color providers, driver license and passport number formats for the ru_RU locale (pomaxa) -* Added Latvian (lv_LV) person, address, Internet, and phone number providers (pomaxa) -* Added Brazilian (pt_BR) Internet provider (vjnrv) -* Added more Czech (cs_CZ) lastnames (petrkle) -* Added Chinese Simplified (zh_CN) person, address, Internet, and phone number providers (tlikai) -* Fixed Typos (pborelli) -* Added Color provider with hexColor, rgbColor, rgbColorAsArray, rgbCssColor, safeColorName, and colorName formatters (lsv) -* Added support for associative arrays in `randomElement` (aRn0D) - - -2013-06-09, v1.2.0 ------------------- - -* Added new provider for fr_BE locale (jflefebvre) -* Updated locale provider to use a static locale list (spawn-guy) -* Fixed invalid UTF-8 sequence in domain provider with the Bulgarian provider (Dynom) -* Fixed the nl_NL Person provider (Dynom) -* Removed all requires and added the autoload definition to composer (Dynom) -* Fixed encoding problems in nl_NL Address provider (Dynom) -* Added icelandic provider (is_IS) (birkir) -* Added en_CA address and phone numbers (cviebrock) -* Updated safeEmail provider to be really safe (TimWolla) -* Documented alternative randomNumber usage (Seldaek) -* Added basic file provider (anroots) -* Fixed use of fourth argument on Doctrine addEntity (ecentinela) -* Added nl_BE provider (wimvds) -* Added Random Float provider (csanquer) -* Fixed bug in Faker\ORM\Doctrine\Populator (mmf-amarcos) -* Updated ru_RU provider (rmrevin) -* Added safe email domain provider (csanquer) -* Fixed latitude provider (rumpl) -* Fixed unpredictability of fake data generated by Faker\Provider\Base::numberBetween() (goatherd) -* Added uuid provider (goatherd) -* Added possibility to call methods on Doctrine entities, possibility to generate unique id (nenadalm) -* Fixed prefixes typos in 'pl_PL' Person provider (krymen) -* Added more fake data to the Ukraininan providers (lysenkobv) -* Added more fake data to the Italian providers (EmanueleMinotto) -* Fixed spaces appearing in generated emails (alchy58) -* Added Armenian (hy_AM) provider (artash) -* Added Generation of valid SIREN & SIRET codes to French providers (alexsegura) -* Added Dutch (nl_NL) provider (WouterJ) -* Fixed missing typehint in Base::__construct() (benja-M-1) -* Fixed typo in README (benja-M-1) -* Added Ukrainian (ua_UA) provider (rsvasilyev) -* Added Turkish (tr_TR) Provider (faridmovsumov) -* Fixed executable bit in some PHP files (siwinski) -* Added Brazilian Portuguese (pt_BR) provider (oliveiraev) -* Added Spanish (es_ES) provider (ivannis) -* Fixed Doctrine populator to allow for the population of entity data that has associations to other entities (afishnamedsquish) -* Added Danish (da_DK) providers (toin0u) -* Cleaned up whitespaces (toin0u) -* Fixed utf-8 bug with lowercase generators (toin0u) -* Fixed composer.json (Seldaek) -* Fixed bug in Doctrine EntityPopulator (beberlei) -* Added Finnish (fi_FI) provider (drodil) - -2012-10-29, v1.1.0 ------------------- - -* Updated text provider to return paragraphs as a string instead of array. Great for populating markdown textarea fields (Seldaek) -* Updated dateTimeBetween to accept DateTime instances (Seldaek) -* Added random number generator between a and b, simply like rand() (Seldaek) -* Fixed spaces in generated emails (blaugueux) -* Fixed Person provider in Russian locale (Isamashii) -* Added new UserAgent provider (blaugueux) -* Added locale generator to Miscellaneous provider (blaugueux) -* Added timezone generator to DateTime provider (blaugueux) -* Added new generators to French Address providers (departments, regions) (geoffrey-brier) -* Added new generators to French Company provider (catch phrase, SIREN, and SIRET numbers) (geoffrey-brier) -* Added state generator to German Address provider (Powerhamster) -* Added Slovak provider (bazo) -* Added latitude and longitude formatters to Address provider (fixe) -* Added Serbian provider (umpirsky) - -2012-07-10, v1.0.0 ------------------ - -* Initial Version diff --git a/vendor/fzaninotto/faker/CONTRIBUTING.md b/vendor/fzaninotto/faker/CONTRIBUTING.md deleted file mode 100644 index 804bf79c..00000000 --- a/vendor/fzaninotto/faker/CONTRIBUTING.md +++ /dev/null @@ -1,22 +0,0 @@ -Contributing -============ - -If you've written a new formatter, adapted Faker to a new locale, or fixed a bug, your contribution is welcome! - -Before proposing a pull request, check the following: - -* Your code should follow the [PSR-2 coding standard](https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-2-coding-style-guide.md). Run `make sniff` to check that the coding standards are followed, and use [php-cs-fixer](https://github.com/fabpot/PHP-CS-Fixer) to fix inconsistencies. -* Unit tests should still pass after your patch. Run the tests on your dev server (with `make test`) or check the continuous integration status for your pull request. -* As much as possible, add unit tests for your code -* Never use `rand()` in your providers. Faker uses the Mersenne Twister Randomizer, so use `mt_rand()` or any of the base generators (`randomNumber`, `randomElement`, etc.) instead. -* If you add new providers (or new locales) and that they embed a lot of data for random generation (e.g. first names in a new language), please add a `@link` to the reference you used for this list (example [in the ru_RU locale](https://github.com/fzaninotto/Faker/blob/master/src/Faker/Provider/ru_RU/Person.php#L13)). This will ease future updates of the list and debates about the most relevant data for this provider. -* If you add long list of random data, please split the list into several lines. This makes diffs easier to read, and facilitates core review. -* If you add new formatters, please include documentation for it in the README. Don't forget to add a line about new formatters in the `@property` or `@method` phpDoc entries in [Generator.php](https://github.com/fzaninotto/Faker/blob/master/src/Faker/Generator.php#L6-L118) to help IDEs auto-complete your formatters. -* If your new formatters are specific to a certain locale, document them in the [Language-specific formatters](https://github.com/fzaninotto/Faker#language-specific-formatters) list instead. -* Avoid changing existing sets of data. Some developers use Faker with seeding for unit tests ; changing the data makes their tests fail. -* Speed is important in all Faker usages. Make sure your code is optimized to generate thousands of fake items in no time, without consuming too much memory or CPU. -* If you commit a new feature, be prepared to help maintaining it. Watch the project on GitHub, and please comment on issues or PRs regarding the feature you contributed. - -Once your code is merged, it is available for free to everybody under the MIT License. Publishing your Pull Request on the Faker GitHub repository means that you agree with this license for your contribution. - -Thank you for your contribution! Faker wouldn't be so great without you. diff --git a/vendor/fzaninotto/faker/LICENSE b/vendor/fzaninotto/faker/LICENSE deleted file mode 100644 index 99ed0075..00000000 --- a/vendor/fzaninotto/faker/LICENSE +++ /dev/null @@ -1,22 +0,0 @@ -Copyright (c) 2011 François Zaninotto -Portions Copyright (c) 2008 Caius Durling -Portions Copyright (c) 2008 Adam Royle -Portions Copyright (c) 2008 Fiona Burrows - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/vendor/fzaninotto/faker/Makefile b/vendor/fzaninotto/faker/Makefile deleted file mode 100644 index ccfde5cd..00000000 --- a/vendor/fzaninotto/faker/Makefile +++ /dev/null @@ -1,10 +0,0 @@ -vendor/autoload.php: - composer install --no-interaction --prefer-dist - -.PHONY: sniff -sniff: vendor/autoload.php - vendor/bin/phpcs --standard=PSR2 src -n - -.PHONY: test -test: vendor/autoload.php - vendor/bin/phpunit --verbose diff --git a/vendor/fzaninotto/faker/composer.json b/vendor/fzaninotto/faker/composer.json deleted file mode 100644 index e52016ee..00000000 --- a/vendor/fzaninotto/faker/composer.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "name": "fzaninotto/faker", - "type": "library", - "description": "Faker is a PHP library that generates fake data for you.", - "keywords": ["faker", "fixtures", "data"], - "license": "MIT", - "authors": [ - { - "name": "François Zaninotto" - } - ], - "require": { - "php": "^5.3.3 || ^7.0" - }, - "require-dev": { - "phpunit/phpunit": "^4.8.35 || ^5.7", - "squizlabs/php_codesniffer": "^1.5", - "ext-intl": "*" - }, - "autoload": { - "psr-4": { - "Faker\\": "src/Faker/" - } - }, - "autoload-dev": { - "psr-4": { - "Faker\\Test\\": "test/Faker/" - } - }, - "extra": { - "branch-alias": { - "dev-master": "1.8-dev" - } - } -} diff --git a/vendor/fzaninotto/faker/phpunit.xml.dist b/vendor/fzaninotto/faker/phpunit.xml.dist deleted file mode 100644 index 4ffa17f3..00000000 --- a/vendor/fzaninotto/faker/phpunit.xml.dist +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - ./test/Faker/ - - - diff --git a/vendor/fzaninotto/faker/readme.md b/vendor/fzaninotto/faker/readme.md deleted file mode 100644 index c3754901..00000000 --- a/vendor/fzaninotto/faker/readme.md +++ /dev/null @@ -1,1707 +0,0 @@ -# Faker - -Faker is a PHP library that generates fake data for you. Whether you need to bootstrap your database, create good-looking XML documents, fill-in your persistence to stress test it, or anonymize data taken from a production service, Faker is for you. - -Faker is heavily inspired by Perl's [Data::Faker](http://search.cpan.org/~jasonk/Data-Faker-0.07/), and by ruby's [Faker](https://rubygems.org/gems/faker). - -Faker requires PHP >= 5.3.3. - -[![Monthly Downloads](https://poser.pugx.org/fzaninotto/faker/d/monthly.png)](https://packagist.org/packages/fzaninotto/faker) [![Build Status](https://travis-ci.org/fzaninotto/Faker.svg?branch=master)](https://travis-ci.org/fzaninotto/Faker) [![SensioLabsInsight](https://insight.sensiolabs.com/projects/eceb78a9-38d4-4ad5-8b6b-b52f323e3549/mini.png)](https://insight.sensiolabs.com/projects/eceb78a9-38d4-4ad5-8b6b-b52f323e3549) - -# Table of Contents - -- [Installation](#installation) -- [Basic Usage](#basic-usage) -- [Formatters](#formatters) - - [Base](#fakerproviderbase) - - [Lorem Ipsum Text](#fakerproviderlorem) - - [Person](#fakerprovideren_usperson) - - [Address](#fakerprovideren_usaddress) - - [Phone Number](#fakerprovideren_usphonenumber) - - [Company](#fakerprovideren_uscompany) - - [Real Text](#fakerprovideren_ustext) - - [Date and Time](#fakerproviderdatetime) - - [Internet](#fakerproviderinternet) - - [User Agent](#fakerprovideruseragent) - - [Payment](#fakerproviderpayment) - - [Color](#fakerprovidercolor) - - [File](#fakerproviderfile) - - [Image](#fakerproviderimage) - - [Uuid](#fakerprovideruuid) - - [Barcode](#fakerproviderbarcode) - - [Miscellaneous](#fakerprovidermiscellaneous) - - [Biased](#fakerproviderbiased) - - [Html Lorem](#fakerproviderhtmllorem) -- [Modifiers](#modifiers) -- [Localization](#localization) -- [Populating Entities Using an ORM or an ODM](#populating-entities-using-an-orm-or-an-odm) -- [Seeding the Generator](#seeding-the-generator) -- [Faker Internals: Understanding Providers](#faker-internals-understanding-providers) -- [Real Life Usage](#real-life-usage) -- [Language specific formatters](#language-specific-formatters) -- [Third-Party Libraries Extending/Based On Faker](#third-party-libraries-extendingbased-on-faker) -- [License](#license) - - -## Installation - -```sh -composer require fzaninotto/faker -``` - -## Basic Usage - -Use `Faker\Factory::create()` to create and initialize a faker generator, which can generate data by accessing properties named after the type of data you want. - -```php -name; - // 'Lucy Cechtelar'; -echo $faker->address; - // "426 Jordy Lodge - // Cartwrightshire, SC 88120-6700" -echo $faker->text; - // Dolores sit sint laboriosam dolorem culpa et autem. Beatae nam sunt fugit - // et sit et mollitia sed. - // Fuga deserunt tempora facere magni omnis. Omnis quia temporibus laudantium - // sit minima sint. -``` - -Even if this example shows a property access, each call to `$faker->name` yields a different (random) result. This is because Faker uses `__get()` magic, and forwards `Faker\Generator->$property` calls to `Faker\Generator->format($property)`. - -```php -name, "\n"; -} - // Adaline Reichel - // Dr. Santa Prosacco DVM - // Noemy Vandervort V - // Lexi O'Conner - // Gracie Weber - // Roscoe Johns - // Emmett Lebsack - // Keegan Thiel - // Wellington Koelpin II - // Ms. Karley Kiehn V -``` - -**Tip**: For a quick generation of fake data, you can also use Faker as a command line tool thanks to [faker-cli](https://github.com/bit3/faker-cli). - -## Formatters - -Each of the generator properties (like `name`, `address`, and `lorem`) are called "formatters". A faker generator has many of them, packaged in "providers". Here is a list of the bundled formatters in the default locale. - -### `Faker\Provider\Base` - - randomDigit // 7 - randomDigitNotNull // 5 - randomNumber($nbDigits = NULL, $strict = false) // 79907610 - randomFloat($nbMaxDecimals = NULL, $min = 0, $max = NULL) // 48.8932 - numberBetween($min = 1000, $max = 9000) // 8567 - randomLetter // 'b' - // returns randomly ordered subsequence of a provided array - randomElements($array = array ('a','b','c'), $count = 1) // array('c') - randomElement($array = array ('a','b','c')) // 'b' - shuffle('hello, world') // 'rlo,h eoldlw' - shuffle(array(1, 2, 3)) // array(2, 1, 3) - numerify('Hello ###') // 'Hello 609' - lexify('Hello ???') // 'Hello wgt' - bothify('Hello ##??') // 'Hello 42jz' - asciify('Hello ***') // 'Hello R6+' - regexify('[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}'); // sm0@y8k96a.ej - -### `Faker\Provider\Lorem` - - word // 'aut' - words($nb = 3, $asText = false) // array('porro', 'sed', 'magni') - sentence($nbWords = 6, $variableNbWords = true) // 'Sit vitae voluptas sint non voluptates.' - sentences($nb = 3, $asText = false) // array('Optio quos qui illo error.', 'Laborum vero a officia id corporis.', 'Saepe provident esse hic eligendi.') - paragraph($nbSentences = 3, $variableNbSentences = true) // 'Ut ab voluptas sed a nam. Sint autem inventore aut officia aut aut blanditiis. Ducimus eos odit amet et est ut eum.' - paragraphs($nb = 3, $asText = false) // array('Quidem ut sunt et quidem est accusamus aut. Fuga est placeat rerum ut. Enim ex eveniet facere sunt.', 'Aut nam et eum architecto fugit repellendus illo. Qui ex esse veritatis.', 'Possimus omnis aut incidunt sunt. Asperiores incidunt iure sequi cum culpa rem. Rerum exercitationem est rem.') - text($maxNbChars = 200) // 'Fuga totam reiciendis qui architecto fugiat nemo. Consequatur recusandae qui cupiditate eos quod.' - -### `Faker\Provider\en_US\Person` - - title($gender = null|'male'|'female') // 'Ms.' - titleMale // 'Mr.' - titleFemale // 'Ms.' - suffix // 'Jr.' - name($gender = null|'male'|'female') // 'Dr. Zane Stroman' - firstName($gender = null|'male'|'female') // 'Maynard' - firstNameMale // 'Maynard' - firstNameFemale // 'Rachel' - lastName // 'Zulauf' - -### `Faker\Provider\en_US\Address` - - cityPrefix // 'Lake' - secondaryAddress // 'Suite 961' - state // 'NewMexico' - stateAbbr // 'OH' - citySuffix // 'borough' - streetSuffix // 'Keys' - buildingNumber // '484' - city // 'West Judge' - streetName // 'Keegan Trail' - streetAddress // '439 Karley Loaf Suite 897' - postcode // '17916' - address // '8888 Cummings Vista Apt. 101, Susanbury, NY 95473' - country // 'Falkland Islands (Malvinas)' - latitude($min = -90, $max = 90) // 77.147489 - longitude($min = -180, $max = 180) // 86.211205 - -### `Faker\Provider\en_US\PhoneNumber` - - phoneNumber // '201-886-0269 x3767' - tollFreePhoneNumber // '(888) 937-7238' - e164PhoneNumber // '+27113456789' - -### `Faker\Provider\en_US\Company` - - catchPhrase // 'Monitored regional contingency' - bs // 'e-enable robust architectures' - company // 'Bogan-Treutel' - companySuffix // 'and Sons' - jobTitle // 'Cashier' - -### `Faker\Provider\en_US\Text` - - realText($maxNbChars = 200, $indexSize = 2) // "And yet I wish you could manage it?) 'And what are they made of?' Alice asked in a shrill, passionate voice. 'Would YOU like cats if you were never even spoke to Time!' 'Perhaps not,' Alice replied." - -### `Faker\Provider\DateTime` - - unixTime($max = 'now') // 58781813 - dateTime($max = 'now', $timezone = null) // DateTime('2008-04-25 08:37:17', 'UTC') - dateTimeAD($max = 'now', $timezone = null) // DateTime('1800-04-29 20:38:49', 'Europe/Paris') - iso8601($max = 'now') // '1978-12-09T10:10:29+0000' - date($format = 'Y-m-d', $max = 'now') // '1979-06-09' - time($format = 'H:i:s', $max = 'now') // '20:49:42' - dateTimeBetween($startDate = '-30 years', $endDate = 'now', $timezone = null) // DateTime('2003-03-15 02:00:49', 'Africa/Lagos') - dateTimeInInterval($startDate = '-30 years', $interval = '+ 5 days', $timezone = null) // DateTime('2003-03-15 02:00:49', 'Antartica/Vostok') - dateTimeThisCentury($max = 'now', $timezone = null) // DateTime('1915-05-30 19:28:21', 'UTC') - dateTimeThisDecade($max = 'now', $timezone = null) // DateTime('2007-05-29 22:30:48', 'Europe/Paris') - dateTimeThisYear($max = 'now', $timezone = null) // DateTime('2011-02-27 20:52:14', 'Africa/Lagos') - dateTimeThisMonth($max = 'now', $timezone = null) // DateTime('2011-10-23 13:46:23', 'Antarctica/Vostok') - amPm($max = 'now') // 'pm' - dayOfMonth($max = 'now') // '04' - dayOfWeek($max = 'now') // 'Friday' - month($max = 'now') // '06' - monthName($max = 'now') // 'January' - year($max = 'now') // '1993' - century // 'VI' - timezone // 'Europe/Paris' - -Methods accepting a `$timezone` argument default to `date_default_timezone_get()`. You can pass a custom timezone string to each method, or define a custom timezone for all time methods at once using `$faker::setDefaultTimezone($timezone)`. - -### `Faker\Provider\Internet` - - email // 'tkshlerin@collins.com' - safeEmail // 'king.alford@example.org' - freeEmail // 'bradley72@gmail.com' - companyEmail // 'russel.durward@mcdermott.org' - freeEmailDomain // 'yahoo.com' - safeEmailDomain // 'example.org' - userName // 'wade55' - password // 'k&|X+a45*2[' - domainName // 'wolffdeckow.net' - domainWord // 'feeney' - tld // 'biz' - url // 'http://www.skilesdonnelly.biz/aut-accusantium-ut-architecto-sit-et.html' - slug // 'aut-repellat-commodi-vel-itaque-nihil-id-saepe-nostrum' - ipv4 // '109.133.32.252' - localIpv4 // '10.242.58.8' - ipv6 // '8e65:933d:22ee:a232:f1c1:2741:1f10:117c' - macAddress // '43:85:B7:08:10:CA' - -### `Faker\Provider\UserAgent` - - userAgent // 'Mozilla/5.0 (Windows CE) AppleWebKit/5350 (KHTML, like Gecko) Chrome/13.0.888.0 Safari/5350' - chrome // 'Mozilla/5.0 (Macintosh; PPC Mac OS X 10_6_5) AppleWebKit/5312 (KHTML, like Gecko) Chrome/14.0.894.0 Safari/5312' - firefox // 'Mozilla/5.0 (X11; Linuxi686; rv:7.0) Gecko/20101231 Firefox/3.6' - safari // 'Mozilla/5.0 (Macintosh; U; PPC Mac OS X 10_7_1 rv:3.0; en-US) AppleWebKit/534.11.3 (KHTML, like Gecko) Version/4.0 Safari/534.11.3' - opera // 'Opera/8.25 (Windows NT 5.1; en-US) Presto/2.9.188 Version/10.00' - internetExplorer // 'Mozilla/5.0 (compatible; MSIE 7.0; Windows 98; Win 9x 4.90; Trident/3.0)' - -### `Faker\Provider\Payment` - - creditCardType // 'MasterCard' - creditCardNumber // '4485480221084675' - creditCardExpirationDate // 04/13 - creditCardExpirationDateString // '04/13' - creditCardDetails // array('MasterCard', '4485480221084675', 'Aleksander Nowak', '04/13') - // Generates a random IBAN. Set $countryCode to null for a random country - iban($countryCode) // 'IT31A8497112740YZ575DJ28BP4' - swiftBicNumber // 'RZTIAT22263' - -### `Faker\Provider\Color` - - hexcolor // '#fa3cc2' - rgbcolor // '0,255,122' - rgbColorAsArray // array(0,255,122) - rgbCssColor // 'rgb(0,255,122)' - safeColorName // 'fuchsia' - colorName // 'Gainsbor' - -### `Faker\Provider\File` - - fileExtension // 'avi' - mimeType // 'video/x-msvideo' - // Copy a random file from the source to the target directory and returns the fullpath or filename - file($sourceDir = '/tmp', $targetDir = '/tmp') // '/path/to/targetDir/13b73edae8443990be1aa8f1a483bc27.jpg' - file($sourceDir, $targetDir, false) // '13b73edae8443990be1aa8f1a483bc27.jpg' - -### `Faker\Provider\Image` - - // Image generation provided by LoremPixel (http://lorempixel.com/) - imageUrl($width = 640, $height = 480) // 'http://lorempixel.com/640/480/' - imageUrl($width, $height, 'cats') // 'http://lorempixel.com/800/600/cats/' - imageUrl($width, $height, 'cats', true, 'Faker') // 'http://lorempixel.com/800/400/cats/Faker' - imageUrl($width, $height, 'cats', true, 'Faker', true) // 'http://lorempixel.com/grey/800/400/cats/Faker/' Monochrome image - image($dir = '/tmp', $width = 640, $height = 480) // '/tmp/13b73edae8443990be1aa8f1a483bc27.jpg' - image($dir, $width, $height, 'cats') // 'tmp/13b73edae8443990be1aa8f1a483bc27.jpg' it's a cat! - image($dir, $width, $height, 'cats', false) // '13b73edae8443990be1aa8f1a483bc27.jpg' it's a filename without path - image($dir, $width, $height, 'cats', true, false) // it's a no randomize images (default: `true`) - image($dir, $width, $height, 'cats', true, true, 'Faker') // 'tmp/13b73edae8443990be1aa8f1a483bc27.jpg' it's a cat with 'Faker' text. Default, `null`. - -### `Faker\Provider\Uuid` - - uuid // '7e57d004-2b97-0e7a-b45f-5387367791cd' - -### `Faker\Provider\Barcode` - - ean13 // '4006381333931' - ean8 // '73513537' - isbn13 // '9790404436093' - isbn10 // '4881416324' - -### `Faker\Provider\Miscellaneous` - - boolean // false - boolean($chanceOfGettingTrue = 50) // true - md5 // 'de99a620c50f2990e87144735cd357e7' - sha1 // 'f08e7f04ca1a413807ebc47551a40a20a0b4de5c' - sha256 // '0061e4c60dac5c1d82db0135a42e00c89ae3a333e7c26485321f24348c7e98a5' - locale // en_UK - countryCode // UK - languageCode // en - currencyCode // EUR - emoji // 😠- -### `Faker\Provider\Biased` - - // get a random number between 10 and 20, - // with more chances to be close to 20 - biasedNumberBetween($min = 10, $max = 20, $function = 'sqrt') - -### `Faker\Provider\HtmlLorem` - - //Generate HTML document which is no more than 2 levels deep, and no more than 3 elements wide at any level. - randomHtml(2,3) // Aut illo dolorem et accusantium eum.
Id aut saepe non mollitia voluptas voluptas.Non consequatur.Incidunt est.Aut voluptatem.Officia voluptas rerum quo.Asperiores similique.
Sapiente dolorum dolorem sint laboriosam commodi qui.Commodi nihil nesciunt eveniet quo repudiandae.Voluptates explicabo numquam distinctio necessitatibus repellat.Provident ut doloremque nam eum modi aspernatur.Iusto inventore.
Animi nihil ratione id mollitia libero ipsa quia tempore.Velit est officia et aut tenetur dolorem sed mollitia expedita.Modi modi repudiandae pariatur voluptas rerum ea incidunt non molestiae eligendi eos deleniti.Exercitationem voluptatibus dolor est iste quod molestiae.Quia reiciendis.
Inventore impedit exercitationem voluptatibus rerum cupiditate.Qui.Aliquam.Autem nihil aut et.Dolor ut quia error.
Enim facilis iusto earum et minus rerum assumenda quis quia.Reprehenderit ut sapiente occaecati voluptatum dolor voluptatem vitae qui velit.Quod fugiat non.Sunt nobis totam mollitia sed nesciunt est deleniti cumque.Repudiandae quo.
Modi dicta libero quisquam doloremque qui autem.Voluptatem aliquid saepe laudantium facere eos sunt dolor.Est eos quis laboriosam officia expedita repellendus quia natus.Et neque delectus quod fugit enim repudiandae qui.Fugit soluta sit facilis facere repellat culpa magni voluptatem maiores tempora.
Enim dolores doloremque.Assumenda voluptatem eum perferendis exercitationem.Quasi in fugit deserunt ea perferendis sunt nemo consequatur dolorum soluta.Maxime repellat qui numquam voluptatem est modi.Alias rerum rerum hic hic eveniet.
Tempore voluptatem.Eaque.Et sit quas fugit iusto.Nemo nihil rerum dignissimos et esse.Repudiandae ipsum numquam.
Nemo sunt quia.Sint tempore est neque ducimus harum sed.Dicta placeat atque libero nihil.Et qui aperiam temporibus facilis eum.Ut dolores qui enim et maiores nesciunt.
Dolorum totam sint debitis saepe laborum.Quidem corrupti ea.Cum voluptas quod.Possimus consequatur quasi dolorem ut et.Et velit non hic labore repudiandae quis.
- -## Modifiers - -Faker provides three special providers, `unique()`, `optional()`, and `valid()`, to be called before any provider. - -```php -// unique() forces providers to return unique values -$values = array(); -for ($i=0; $i < 10; $i++) { - // get a random digit, but always a new one, to avoid duplicates - $values []= $faker->unique()->randomDigit; -} -print_r($values); // [4, 1, 8, 5, 0, 2, 6, 9, 7, 3] - -// providers with a limited range will throw an exception when no new unique value can be generated -$values = array(); -try { - for ($i=0; $i < 10; $i++) { - $values []= $faker->unique()->randomDigitNotNull; - } -} catch (\OverflowException $e) { - echo "There are only 9 unique digits not null, Faker can't generate 10 of them!"; -} - -// you can reset the unique modifier for all providers by passing true as first argument -$faker->unique($reset = true)->randomDigitNotNull; // will not throw OverflowException since unique() was reset -// tip: unique() keeps one array of values per provider - -// optional() sometimes bypasses the provider to return a default value instead (which defaults to NULL) -$values = array(); -for ($i=0; $i < 10; $i++) { - // get a random digit, but also null sometimes - $values []= $faker->optional()->randomDigit; -} -print_r($values); // [1, 4, null, 9, 5, null, null, 4, 6, null] - -// optional() accepts a weight argument to specify the probability of receiving the default value. -// 0 will always return the default value; 1 will always return the provider. Default weight is 0.5 (50% chance). -$faker->optional($weight = 0.1)->randomDigit; // 90% chance of NULL -$faker->optional($weight = 0.9)->randomDigit; // 10% chance of NULL - -// optional() accepts a default argument to specify the default value to return. -// Defaults to NULL. -$faker->optional($weight = 0.5, $default = false)->randomDigit; // 50% chance of FALSE -$faker->optional($weight = 0.9, $default = 'abc')->word; // 10% chance of 'abc' - -// valid() only accepts valid values according to the passed validator functions -$values = array(); -$evenValidator = function($digit) { - return $digit % 2 === 0; -}; -for ($i=0; $i < 10; $i++) { - $values []= $faker->valid($evenValidator)->randomDigit; -} -print_r($values); // [0, 4, 8, 4, 2, 6, 0, 8, 8, 6] - -// just like unique(), valid() throws an overflow exception when it can't generate a valid value -$values = array(); -try { - $faker->valid($evenValidator)->randomElement(1, 3, 5, 7, 9); -} catch (\OverflowException $e) { - echo "Can't pick an even number in that set!"; -} -``` - -If you would like to use a modifier with a value not generated by Faker, use the `passthrough()` method. `passthrough()` simply returns whatever value it was given. - -```php -$faker->optional()->passthrough(mt_rand(5, 15)); -``` - -## Localization - -`Faker\Factory` can take a locale as an argument, to return localized data. If no localized provider is found, the factory fallbacks to the default locale (en_US). - -```php -name, "\n"; -} - // Luce du Coulon - // Auguste Dupont - // Roger Le Voisin - // Alexandre Lacroix - // Jacques Humbert-Roy - // Thérèse Guillet-Andre - // Gilles Gros-Bodin - // Amélie Pires - // Marcel Laporte - // Geneviève Marchal -``` - -You can check available Faker locales in the source code, [under the `Provider` directory](https://github.com/fzaninotto/Faker/tree/master/src/Faker/Provider). The localization of Faker is an ongoing process, for which we need your help. Don't hesitate to create localized providers to your own locale and submit a PR! - -## Populating Entities Using an ORM or an ODM - -Faker provides adapters for Object-Relational and Object-Document Mappers (currently, [Propel](http://www.propelorm.org), [Doctrine2](http://docs.doctrine-project.org/projects/doctrine-orm/en/latest/), [CakePHP](http://cakephp.org), [Spot2](https://github.com/vlucas/spot2), [Mandango](https://github.com/mandango/mandango) and [Eloquent](https://laravel.com/docs/master/eloquent) are supported). These adapters ease the population of databases through the Entity classes provided by an ORM library (or the population of document stores using Document classes provided by an ODM library). - -To populate entities, create a new populator class (using a generator instance as parameter), then list the class and number of all the entities that must be generated. To launch the actual data population, call the `execute()` method. - -Here is an example showing how to populate 5 `Author` and 10 `Book` objects: - -```php -addEntity('Author', 5); -$populator->addEntity('Book', 10); -$insertedPKs = $populator->execute(); -``` - -The populator uses name and column type guessers to populate each column with relevant data. For instance, Faker populates a column named `first_name` using the `firstName` formatter, and a column with a `TIMESTAMP` type using the `dateTime` formatter. The resulting entities are therefore coherent. If Faker misinterprets a column name, you can still specify a custom closure to be used for populating a particular column, using the third argument to `addEntity()`: - -```php -addEntity('Book', 5, array( - 'ISBN' => function() use ($generator) { return $generator->ean13(); } -)); -``` - -In this example, Faker will guess a formatter for all columns except `ISBN`, for which the given anonymous function will be used. - -**Tip**: To ignore some columns, specify `null` for the column names in the third argument of `addEntity()`. This is usually necessary for columns added by a behavior: - -```php -addEntity('Book', 5, array( - 'CreatedAt' => null, - 'UpdatedAt' => null, -)); -``` - -Of course, Faker does not populate autoincremented primary keys. In addition, `Faker\ORM\Propel\Populator::execute()` returns the list of inserted PKs, indexed by class: - -```php - (34, 35, 36, 37, 38), -// 'Book' => (456, 457, 458, 459, 470, 471, 472, 473, 474, 475) -// ) -``` - -In the previous example, the `Book` and `Author` models share a relationship. Since `Author` entities are populated first, Faker is smart enough to relate the populated `Book` entities to one of the populated `Author` entities. - -Lastly, if you want to execute an arbitrary function on an entity before insertion, use the fourth argument of the `addEntity()` method: - -```php -addEntity('Book', 5, array(), array( - function($book) { $book->publish(); }, -)); -``` - -## Seeding the Generator - -You may want to get always the same generated data - for instance when using Faker for unit testing purposes. The generator offers a `seed()` method, which seeds the random number generator. Calling the same script twice with the same seed produces the same results. - -```php -seed(1234); - -echo $faker->name; // 'Jess Mraz I'; -``` - -> **Tip**: DateTime formatters won't reproduce the same fake data if you don't fix the `$max` value: -> -> ```php -> // even when seeded, this line will return different results because $max varies -> $faker->dateTime(); // equivalent to $faker->dateTime($max = 'now') -> // make sure you fix the $max parameter -> $faker->dateTime('2014-02-25 08:37:17'); // will return always the same date when seeded -> ``` -> -> **Tip**: Formatters won't reproduce the same fake data if you use the `rand()` php function. Use `$faker` or `mt_rand()` instead: -> -> ```php -> // bad -> $faker->realText(rand(10,20)); -> // good -> $faker->realText($faker->numberBetween(10,20)); -> ``` - - - -## Faker Internals: Understanding Providers - -A `Faker\Generator` alone can't do much generation. It needs `Faker\Provider` objects to delegate the data generation to them. `Faker\Factory::create()` actually creates a `Faker\Generator` bundled with the default providers. Here is what happens under the hood: - -```php -addProvider(new Faker\Provider\en_US\Person($faker)); -$faker->addProvider(new Faker\Provider\en_US\Address($faker)); -$faker->addProvider(new Faker\Provider\en_US\PhoneNumber($faker)); -$faker->addProvider(new Faker\Provider\en_US\Company($faker)); -$faker->addProvider(new Faker\Provider\Lorem($faker)); -$faker->addProvider(new Faker\Provider\Internet($faker)); -```` - -Whenever you try to access a property on the `$faker` object, the generator looks for a method with the same name in all the providers attached to it. For instance, calling `$faker->name` triggers a call to `Faker\Provider\Person::name()`. And since Faker starts with the last provider, you can easily override existing formatters: just add a provider containing methods named after the formatters you want to override. - -That means that you can easily add your own providers to a `Faker\Generator` instance. A provider is usually a class extending `\Faker\Provider\Base`. This parent class allows you to use methods like `lexify()` or `randomNumber()`; it also gives you access to formatters of other providers, through the protected `$generator` property. The new formatters are the public methods of the provider class. - -Here is an example provider for populating Book data: - -```php -generator->sentence($nbWords); - return substr($sentence, 0, strlen($sentence) - 1); - } - - public function ISBN() - { - return $this->generator->ean13(); - } -} -``` - -To register this provider, just add a new instance of `\Faker\Provider\Book` to an existing generator: - -```php -addProvider(new \Faker\Provider\Book($faker)); -``` - -Now you can use the two new formatters like any other Faker formatter: - -```php -setTitle($faker->title); -$book->setISBN($faker->ISBN); -$book->setSummary($faker->text); -$book->setPrice($faker->randomNumber(2)); -``` - -**Tip**: A provider can also be a Plain Old PHP Object. In that case, all the public methods of the provider become available to the generator. - -## Real Life Usage - -The following script generates a valid XML document: - -```php - - - - - - -boolean(25)): ?> - - -
- streetAddress ?> - city ?> - postcode ?> - state ?> -
- -boolean(33)): ?> - bs ?> - -boolean(33)): ?> - - - -boolean(15)): ?> -
-text(400) ?> -]]> -
- -
- -
-``` - -Running this script produces a document looking like: - -```xml - - - - -
- 182 Harrison Cove - North Lloyd - 45577 - Alabama -
- - orchestrate compelling web-readiness - -
- -
-
- - -
- 90111 Hegmann Inlet - South Geovanymouth - 69961-9311 - Colorado -
- - -
- - -
- 9791 Nona Corner - Harberhaven - 74062-8191 - RhodeIsland -
- - -
- - -
- 11161 Schultz Via - Feilstad - 98019 - NewJersey -
- - - -
- -
-
- - -
- 6106 Nader Village Suite 753 - McLaughlinstad - 43189-8621 - Missouri -
- - expedite viral synergies - - -
- - -
- 7546 Kuvalis Plaza - South Wilfrid - 77069 - Georgia -
- - -
- - - -
- 478 Daisha Landing Apt. 510 - West Lizethhaven - 30566-5362 - WestVirginia -
- - orchestrate dynamic networks - - -
- -
-
- - -
- 1251 Koelpin Mission - North Revastad - 81620 - Maryland -
- - -
- - -
- 6396 Langworth Hills Apt. 446 - New Carlos - 89399-0268 - Wyoming -
- - - -
- - - -
- 2246 Kreiger Station Apt. 291 - Kaydenmouth - 11397-1072 - Wyoming -
- - grow sticky portals - -
- -
-
-
-``` - -## Language specific formatters - -### `Faker\Provider\ar_SA\Person` - -```php -idNumber; // ID number -echo $faker->nationalIdNumber // Citizen ID number -echo $faker->foreignerIdNumber // Foreigner ID number -echo $faker->companyIdNumber // Company ID number -``` - -### `Faker\Provider\ar_SA\Payment` - -```php -bankAccountNumber // "SA0218IBYZVZJSEC8536V4XC" -``` - -### `Faker\Provider\at_AT\Payment` - -```php -vat; // "AT U12345678" - Austrian Value Added Tax number -echo $faker->vat(false); // "ATU12345678" - unspaced Austrian Value Added Tax number -``` - -### `Faker\Provider\bg_BG\Payment` - -```php -vat; // "BG 0123456789" - Bulgarian Value Added Tax number -echo $faker->vat(false); // "BG0123456789" - unspaced Bulgarian Value Added Tax number -``` - -### `Faker\Provider\cs_CZ\Address` - -```php -region; // "Liberecký kraj" -``` - -### `Faker\Provider\cs_CZ\Company` - -```php -ico; // "69663963" -``` - -### `Faker\Provider\cs_CZ\DateTime` - -```php -monthNameGenitive; // "prosince" -echo $faker->formattedDate; // "12. listopadu 2015" -``` - -### `Faker\Provider\cs_CZ\Person` - -```php -birthNumber; // "7304243452" -``` - -### `Faker\Provider\da_DK\Person` - -```php -cpr; // "051280-2387" -``` - -### `Faker\Provider\da_DK\Address` - -```php -kommune; // "Frederiksberg" - -// Generates a random region name -echo $faker->region; // "Region Sjælland" -``` - -### `Faker\Provider\da_DK\Company` - -```php -cvr; // "32458723" - -// Generates a random P number -echo $faker->p; // "5398237590" -``` - -### `Faker\Provider\de_DE\Payment` - -```php -bankAccountNumber; // "DE41849025553661169313" -echo $faker->bank; // "Volksbank Stuttgart" - -``` - -### `Faker\Provider\en_HK\Address` - -```php -town; // "Yuen Long" - -// Generates a fake village name based on the words commonly found in Hong Kong -echo $faker->village; // "O Tau" - -// Generates a fake estate name based on the words commonly found in Hong Kong -echo $faker->estate; // "Ching Lai Court" - -``` - -### `Faker\Provider\en_HK\Phone` - -```php -mobileNumber; // "92150087" - -// Generates a Hong Kong landline number (starting with 2 or 3) -echo $faker->landlineNumber; // "32750132" - -// Generates a Hong Kong fax number (starting with 7) -echo $faker->faxNumber; // "71937729" - -``` - -### `Faker\Provider\en_NG\Address` - -```php -region; // 'Katsina' -``` - -### `Faker\Provider\en_NG\Person` - -```php -name; // 'Oluwunmi Mayowa' -``` - -### `Faker\Provider\en_NZ\Phone` - -```php -cellNumber; // "021 123 4567" - -// Generates a toll free number -echo $faker->tollFreeNumber; // "0800 123 456" - -// Area Code -echo $faker->areaCode; // "03" -``` - -### `Faker\Provider\en_US\Company` - -```php -ein; // '12-3456789' -``` - -### `Faker\Provider\en_US\Payment` - -```php -bankAccountNumber; // '51915734310' -echo $faker->bankRoutingNumber; // '212240302' -``` - -### `Faker\Provider\en_US\Person` - -```php -ssn; // '123-45-6789' -``` - -### `Faker\Provider\en_ZA\Company` - -```php -companyNumber; // 1999/789634/01 -``` - -### `Faker\Provider\en_ZA\Person` - -```php -idNumber; // 6606192211041 - -// Generates a random valid licence code -echo $faker->licenceCode; // EB -``` - -### `Faker\Provider\en_ZA\PhoneNumber` - -```php -tollFreeNumber; // 0800 555 5555 - -// Generates a mobile phone number -echo $faker->mobileNumber; // 082 123 5555 -``` - -### `Faker\Provider\es_ES\Person` - -```php -dni; // '77446565E' - -// Generates a random valid licence code -echo $faker->licenceCode; // B -``` - -### `Faker\Provider\es_ES\Payment` - -```php -vat; // "A35864370" -``` - -### `Faker\Provider\es_PE\Person` - -```php -dni; // '83367512' -``` - -### `Faker\Provider\fa_IR\Address` - -```php -building; // "ساختمان Ø¢ÙØªØ§Ø¨" - -// Returns a random city name -echo $faker->city // "استان زنجان" -``` - -### `Faker\Provider\fa_IR\Company` - -```php -contract; // "رسمی" -``` - -### `Faker\Provider\fi_FI\Payment` - -```php -bankAccountNumber; // "FI8350799879879616" -``` - -### `Faker\Provider\fi_FI\Person` - -```php -personalIdentityNumber() // '170974-007J' - -//Since the numbers are different for male and female persons, optionally you can specify gender. -echo $faker->personalIdentityNumber(\DateTime::createFromFormat('Y-m-d', '2015-12-14'), 'female') // '141215A520B' -``` - -### `Faker\Provider\fr_BE\Payment` - -```php -vat; // "BE 0123456789" - Belgian Value Added Tax number -echo $faker->vat(false); // "BE0123456789" - unspaced Belgian Value Added Tax number -``` - -### `Faker\Provider\es_VE\Person` - -```php -nationalId; // 'V11223344' -``` - -### `Faker\Provider\es_VE\Company` - -```php -taxpayerIdentificationNumber; // 'J1234567891' -``` - -### `Faker\Provider\fr_FR\Address` - -```php -departmentName; // "Haut-Rhin" - -// Generates a random department number -echo $faker->departmentNumber; // "2B" - -// Generates a random department info (department number => department name) -$faker->department; // array('18' => 'Cher'); - -// Generates a random region -echo $faker->region; // "Saint-Pierre-et-Miquelon" - -// Generates a random appartement,stair -echo $faker->secondaryAddress; // "Bat. 961" -``` - -### `Faker\Provider\fr_FR\Company` - -```php -siren; // 082 250 104 - -// Generates a random SIRET number -echo $faker->siret; // 347 355 708 00224 -``` - -### `Faker\Provider\fr_FR\Payment` - -```php -vat; // FR 12 123 456 789 -``` - -### `Faker\Provider\fr_FR\Person` - -```php -nir; // 1 88 07 35 127 571 - 19 -``` - -### `Faker\Provider\fr_FR\PhoneNumber` - -```php -phoneNumber; // +33 (0)1 67 97 01 31 -echo $faker->mobileNumber; // +33 6 21 12 72 84 -echo $faker->serviceNumber // 08 98 04 84 46 -``` - - -### `Faker\Provider\he_IL\Payment` - -```php -bankAccountNumber // "IL392237392219429527697" -``` - -### `Faker\Provider\hr_HR\Payment` - -```php -bankAccountNumber // "HR3789114847226078672" -``` - -### `Faker\Provider\hu_HU\Payment` - -```php -bankAccountNumber; // "HU09904437680048220079300783" -``` - -### `Faker\Provider\id_ID\Person` - -```php -nik(); // "8522246001570940" -``` - -### `Faker\Provider\it_IT\Company` - -```php -vatId(); // "IT98746784967" -``` - -### `Faker\Provider\it_IT\Person` - -```php -taxId(); // "DIXDPZ44E08F367A" -``` - -### `Faker\Provider\ja_JP\Person` - -```php -kanaName($gender = null|'male'|'female') // "アオタ ミノル" - -// Generates a 'kana' first name -echo $faker->firstKanaName($gender = null|'male'|'female') // "ヒデキ" - -// Generates a 'kana' first name on the male -echo $faker->firstKanaNameMale // "ヒデキ" - -// Generates a 'kana' first name on the female -echo $faker->firstKanaNameFemale // "マアヤ" - -// Generates a 'kana' last name -echo $faker->lastKanaName; // "ナカジマ" -``` - -### `Faker\Provider\ka_GE\Payment` - -```php -bankAccountNumber; // "GE33ZV9773853617253389" -``` - -### `Faker\Provider\kk_KZ\Company` - -```php -businessIdentificationNumber; // "150140000019" -``` - -### `Faker\Provider\kk_KZ\Payment` - -```php -bank; // "Қазкоммерцбанк" - -// Generates a random bank account number -echo $faker->bankAccountNumber; // "KZ1076321LO4H6X41I37" -``` - -### `Faker\Provider\kk_KZ\Person` - -```php -individualIdentificationNumber; // "780322300455" - -// Generates an individual identification number based on his/her birth date -echo $faker->individualIdentificationNumber(new \DateTime('1999-03-01')); // "990301300455" -``` - -### `Faker\Provider\ko_KR\Address` - -```php -metropolitanCity; // "서울특별시" - -// Generates a borough -echo $faker->borough; // "강남구" -``` - -### `Faker\Provider\ko_KR\PhoneNumber` - -```php -localAreaPhoneNumber; // "02-1234-4567" - -// Generates a cell phone number -echo $faker->cellPhoneNumber; // "010-9876-5432" -``` - -### `Faker\Provider\lt_LT\Payment` - -```php -bankAccountNumber // "LT300848876740317118" -``` - -### `Faker\Provider\lv_LV\Person` - -```php -personalIdentityNumber; // "140190-12301" -``` - -### `Faker\Provider\ms_MY\Address` - -```php -township; // "Taman Bahagia" - -// Generates a random Malaysian town address with matching postcode and state -echo $faker->townState; // "55100 Bukit Bintang, Kuala Lumpur" -``` - -### `Faker\Provider\ms_MY\Miscellaneous` - -```php -jpjNumberPlate; // "WPL 5169" -``` - -### `Faker\Provider\ms_MY\Payment` - -```php -bank; // "Maybank" - -// Generates a random Malaysian bank account number (10-16 digits) -echo $faker->bankAccountNumber; // "1234567890123456" - -// Generates a random Malaysian insurance company -echo $faker->insurance; // "AIA Malaysia" - -// Generates a random Malaysian bank SWIFT Code -echo $faker->swiftCode; // "MBBEMYKLXXX" -``` - -### `Faker\Provider\ms_MY\Person` - -```php -myKadNumber($gender = null|'male'|'female', $hyphen = null|true|false); // "710703471796" -``` - -### `Faker\Provider\ms_MY\PhoneNumber` - -```php -mobileNumber($countryCodePrefix = null|true|false, $formatting = null|true|false); // "+6012-705 3767" - -// Generates a random Malaysian landline number -echo $faker->fixedLineNumber($countryCodePrefix = null|true|false, $formatting = null|true|false); // "03-7112 0455" - -// Generates a random Malaysian voip number -echo $faker->voipNumber($countryCodePrefix = null|true|false, $formatting = null|true|false); // "015-458 7099" -``` - -### `Faker\Provider\ne_NP\Address` - -```php -district; - -//Generates a Nepali city name -echo $faker->cityName; -``` - -### `Faker\Provider\nl_BE\Payment` - -```php -vat; // "BE 0123456789" - Belgian Value Added Tax number -echo $faker->vat(false); // "BE0123456789" - unspaced Belgian Value Added Tax number -``` - -### `Faker\Provider\nl_BE\Person` - -```php -rrn(); // "83051711784" - Belgian Rijksregisternummer -echo $faker->rrn('female'); // "50032089858" - Belgian Rijksregisternummer for a female -``` - -### `Faker\Provider\nl_NL\Company` - -```php -vat; // "NL123456789B01" - Dutch Value Added Tax number -echo $faker->btw; // "NL123456789B01" - Dutch Value Added Tax number (alias) -``` - -### `Faker\Provider\nl_NL\Person` - -```php -idNumber; // "111222333" - Dutch Personal identification number (BSN) -``` - -### `Faker\Provider\nb_NO\Payment` - -```php -bankAccountNumber; // "NO3246764709816" -``` - -### `Faker\Provider\pl_PL\Person` - -```php -pesel; // "40061451555" -// Generates a random personal identity card number -echo $faker->personalIdentityNumber; // "AKX383360" -// Generates a random taxpayer identification number (NIP) -echo $faker->taxpayerIdentificationNumber; // '8211575109' -``` - -### `Faker\Provider\pl_PL\Company` - -```php -regon; // "714676680" -// Generates a random local REGON number -echo $faker->regonLocal; // "15346111382836" -``` - -### `Faker\Provider\pl_PL\Payment` - -```php -bank; // "Narodowy Bank Polski" -// Generates a random bank account number -echo $faker->bankAccountNumber; // "PL14968907563953822118075816" -``` - -### `Faker\Provider\pt_PT\Person` - -```php -taxpayerIdentificationNumber; // '165249277' -``` - -### `Faker\Provider\pt_BR\Address` - -```php -region; // 'Nordeste' - -// Generates a random region abbreviation -echo $faker->regionAbbr; // 'NE' -``` - -### `Faker\Provider\pt_BR\PhoneNumber` - -```php -areaCode; // 21 -echo $faker->cellphone; // 9432-5656 -echo $faker->landline; // 2654-3445 -echo $faker->phone; // random landline, 8-digit or 9-digit cellphone number - -// Using the phone functions with a false argument returns unformatted numbers -echo $faker->cellphone(false); // 74336667 - -// cellphone() has a special second argument to add the 9th digit. Ignored if generated a Radio number -echo $faker->cellphone(true, true); // 98983-3945 or 7343-1290 - -// Using the "Number" suffix adds area code to the phone -echo $faker->cellphoneNumber; // (11) 98309-2935 -echo $faker->landlineNumber(false); // 3522835934 -echo $faker->phoneNumber; // formatted, random landline or cellphone (obeying the 9th digit rule) -echo $faker->phoneNumberCleared; // not formatted, random landline or cellphone (obeying the 9th digit rule) -``` - -### `Faker\Provider\pt_BR\Person` - -```php -name; // 'Sr. Luis Adriano Sepúlveda Filho' - -// Valid document generators have a boolean argument to remove formatting -echo $faker->cpf; // '145.343.345-76' -echo $faker->cpf(false); // '45623467866' -echo $faker->rg; // '84.405.736-3' -echo $faker->rg(false); // '844057363' -``` - -### `Faker\Provider\pt_BR\Company` - -```php -cnpj; // '23.663.478/0001-24' -echo $faker->cnpj(false); // '23663478000124' -``` - -### `Faker\Provider\ro_MD\Payment` - -```php -bankAccountNumber; // "MD83BQW1CKMUW34HBESDP3A8" -``` - -### `Faker\Provider\ro_RO\Payment` - -```php -bankAccountNumber; // "RO55WRJE3OE8X3YQI7J26U1E" -``` - -### `Faker\Provider\ro_RO\Person` - -```php -prefixMale; // "ing." -// Generates a random female name prefix/title -echo $faker->prefixFemale; // "d-na." -// Generates a random male first name -echo $faker->firstNameMale; // "Adrian" -// Generates a random female first name -echo $faker->firstNameFemale; // "Miruna" - - -// Generates a random Personal Numerical Code (CNP) -echo $faker->cnp; // "2800523081231" -// Valid option values: -// $gender: null (random), male, female -// $dateOfBirth (1800+): null (random), Y-m-d, Y-m (random day), Y (random month and day) -// i.e. '1981-06-16', '2015-03', '1900' -// $county: 2 letter ISO 3166-2:RO county codes and B1, B2, B3, B4, B5, B6 for Bucharest's 6 sectors -// $isResident true/false flag if the person resides in Romania -echo $faker->cnp($gender = null, $dateOfBirth = null, $county = null, $isResident = true); - -``` - -### `Faker\Provider\ro_RO\PhoneNumber` - -```php -tollFreePhoneNumber; // "0800123456" -// Generates a random premium-rate phone number -echo $faker->premiumRatePhoneNumber; // "0900123456" -``` - -### `Faker\Provider\ru_RU\Payment` - -```php -bank; // "ОТП Банк" - -//Generate a Russian Tax Payment Number for Company -echo $faker->inn; // 7813540735 - -//Generate a Russian Tax Code for Company -echo $faker->kpp; // 781301001 -``` - -### `Faker\Provider\sv_SE\Payment` - -```php -bankAccountNumber; // "SE5018548608468284909192" -``` - -### `Faker\Provider\sv_SE\Person` - -```php -personalIdentityNumber() // '950910-0799' - -//Since the numbers are different for male and female persons, optionally you can specify gender. -echo $faker->personalIdentityNumber('female') // '950910-0781' -``` -### `Faker\Provider\tr_TR\Person` - -```php -tcNo // '55300634882' - -``` - - -### `Faker\Provider\zh_CN\Payment` - -```php -bank; // '中国建设银行' -``` - -### `Faker\Provider\uk_UA\Payment` - -```php -bank; // "Ощадбанк" -``` - -### `Faker\Provider\zh_TW\Person` - -```php -personalIdentityNumber; // A223456789 -``` - -### `Faker\Provider\zh_TW\Company` - -```php -VAT; //23456789 -``` - - -## Third-Party Libraries Extending/Based On Faker - -* Symfony2 bundles: - * [BazingaFakerBundle](https://github.com/willdurand/BazingaFakerBundle): Put the awesome Faker library into the Symfony2 DIC and populate your database with fake data. - * [AliceBundle](https://github.com/hautelook/AliceBundle), [AliceFixturesBundle](https://github.com/h4cc/AliceFixturesBundle): Bundles for using [Alice](https://packagist.org/packages/nelmio/alice) and Faker with data fixtures. Able to use Doctrine ORM as well as Doctrine MongoDB ODM. -* [FakerServiceProvider](https://github.com/EmanueleMinotto/FakerServiceProvider): Faker Service Provider for Silex -* [faker-cli](https://github.com/bit3/faker-cli): Command Line Tool for the Faker PHP library -* [Factory Muffin](https://github.com/thephpleague/factory-muffin): enable the rapid creation of objects (PHP port of factory-girl) -* [CompanyNameGenerator](https://github.com/fzaninotto/CompanyNameGenerator): Generate names for English tech companies with class -* [PlaceholdItProvider](https://github.com/EmanueleMinotto/PlaceholdItProvider): Generate images using placehold.it -* [datalea](https://github.com/spyrit/datalea) A highly customizable random test data generator web app -* [newage-ipsum](https://github.com/frequenc1/newage-ipsum): A new aged ipsum provider for the faker library inspired by http://sebpearce.com/bullshit/ -* [xml-faker](https://github.com/prewk/xml-faker): Create fake XML with Faker -* [faker-context](https://github.com/denheck/faker-context): Behat context using Faker to generate testdata -* [CronExpressionGenerator](https://github.com/swekaj/CronExpressionGenerator): Faker provider for generating random, valid cron expressions. -* [pragmafabrik/Pomm2Faker](https://github.com/pragmafabrik/Pomm2Faker): Faker client for Pomm database framework (PostgreSQL) -* [nelmio/alice](https://packagist.org/packages/nelmio/alice): Fixtures/object generator with a yaml DSL that can use Faker as data generator. -* [CakePHP 2.x Fake Seeder Plugin](https://github.com/ravage84/cakephp-fake-seeder) A CakePHP 2.x shell to seed your database with fake and/or fixed data. -* [images-generator](https://github.com/bruceheller/images-generator): An image generator provider using GD for placeholder type pictures -* [pattern-lab/plugin-php-faker](https://github.com/pattern-lab/plugin-php-faker): Pattern Lab is a Styleguide, Component Library, and Prototyping tool. This creates unique content each time Pattern Lab is generated. -* [guidocella/eloquent-populator](https://github.com/guidocella/eloquent-populator): Adapter for Laravel's Eloquent ORM. -* [tamperdata/exiges](https://github.com/tamperdata/exiges): Faker provider for generating random temperatures -* [jzonta/FakerRestaurant](https://github.com/jzonta/FakerRestaurant): Faker for Food and Beverage names generate -* [aalaap/faker-youtube](https://github.com/aalaap/faker-youtube): Faker for YouTube URLs in various formats -* [pelmered/fake-car](https://github.com/pelmered/fake-car): Faker for cars and car data - -## License - -Faker is released under the MIT Licence. See the bundled LICENSE file for details. diff --git a/vendor/fzaninotto/faker/src/Faker/Calculator/Iban.php b/vendor/fzaninotto/faker/src/Faker/Calculator/Iban.php deleted file mode 100644 index 8a582312..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Calculator/Iban.php +++ /dev/null @@ -1,73 +0,0 @@ - 2, 2 => 4, 3 => 10, 4 => 3, 5 => 5, 6 => 9, 7 => 4, 8 => 6, 9 => 8); - $sum = 0; - for ($i = 1; $i <= 9; $i++) { - $sum += intval(substr($inn, $i-1, 1)) * $multipliers[$i]; - } - return strval(($sum % 11) % 10); - } - - /** - * Checks whether an INN has a valid checksum - * - * @param string $inn - * @return boolean - */ - public static function isValid($inn) - { - return self::checksum(substr($inn, 0, -1)) === substr($inn, -1, 1); - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Calculator/Luhn.php b/vendor/fzaninotto/faker/src/Faker/Calculator/Luhn.php deleted file mode 100644 index c37c6c19..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Calculator/Luhn.php +++ /dev/null @@ -1,75 +0,0 @@ -= 0; $i -= 2) { - $sum += $number{$i}; - } - for ($i = $length - 2; $i >= 0; $i -= 2) { - $sum += array_sum(str_split($number{$i} * 2)); - } - - return $sum % 10; - } - - /** - * @param $partialNumber - * @return string - */ - public static function computeCheckDigit($partialNumber) - { - $checkDigit = self::checksum($partialNumber . '0'); - if ($checkDigit === 0) { - return 0; - } - - return (string) (10 - $checkDigit); - } - - /** - * Checks whether a number (partial number + check digit) is Luhn compliant - * - * @param string $number - * @return bool - */ - public static function isValid($number) - { - return self::checksum($number) === 0; - } - - /** - * Generate a Luhn compliant number. - * - * @param string $partialValue - * - * @return string - */ - public static function generateLuhnNumber($partialValue) - { - if (!preg_match('/^\d+$/', $partialValue)) { - throw new InvalidArgumentException('Argument should be an integer.'); - } - return $partialValue . Luhn::computeCheckDigit($partialValue); - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Calculator/TCNo.php b/vendor/fzaninotto/faker/src/Faker/Calculator/TCNo.php deleted file mode 100644 index 392d4552..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Calculator/TCNo.php +++ /dev/null @@ -1,52 +0,0 @@ - $digit) { - if ($index % 2 == 0) { - $evenSum += $digit; - } else { - $oddSum += $digit; - } - } - - $tenthDigit = (7 * $evenSum - $oddSum) % 10; - $eleventhDigit = ($evenSum + $oddSum + $tenthDigit) % 10; - - return $tenthDigit . $eleventhDigit; - } - - /** - * Checks whether an TCNo has a valid checksum - * - * @param string $tcNo - * @return boolean - */ - public static function isValid($tcNo) - { - return self::checksum(substr($tcNo, 0, -2)) === substr($tcNo, -2, 2); - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/DefaultGenerator.php b/vendor/fzaninotto/faker/src/Faker/DefaultGenerator.php deleted file mode 100644 index eafd2eca..00000000 --- a/vendor/fzaninotto/faker/src/Faker/DefaultGenerator.php +++ /dev/null @@ -1,38 +0,0 @@ -optional(). - */ -class DefaultGenerator -{ - protected $default; - - public function __construct($default = null) - { - $this->default = $default; - } - - /** - * @param string $attribute - * - * @return mixed - */ - public function __get($attribute) - { - return $this->default; - } - - /** - * @param string $method - * @param array $attributes - * - * @return mixed - */ - public function __call($method, $attributes) - { - return $this->default; - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Documentor.php b/vendor/fzaninotto/faker/src/Faker/Documentor.php deleted file mode 100644 index e42bdf40..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Documentor.php +++ /dev/null @@ -1,66 +0,0 @@ -generator = $generator; - } - - /** - * @return array - */ - public function getFormatters() - { - $formatters = array(); - $providers = array_reverse($this->generator->getProviders()); - $providers[]= new Provider\Base($this->generator); - foreach ($providers as $provider) { - $providerClass = get_class($provider); - $formatters[$providerClass] = array(); - $refl = new \ReflectionObject($provider); - foreach ($refl->getMethods(\ReflectionMethod::IS_PUBLIC) as $reflmethod) { - if ($reflmethod->getDeclaringClass()->getName() == 'Faker\Provider\Base' && $providerClass != 'Faker\Provider\Base') { - continue; - } - $methodName = $reflmethod->name; - if ($reflmethod->isConstructor()) { - continue; - } - $parameters = array(); - foreach ($reflmethod->getParameters() as $reflparameter) { - $parameter = '$'. $reflparameter->getName(); - if ($reflparameter->isDefaultValueAvailable()) { - $parameter .= ' = ' . var_export($reflparameter->getDefaultValue(), true); - } - $parameters []= $parameter; - } - $parameters = $parameters ? '('. join(', ', $parameters) . ')' : ''; - try { - $example = $this->generator->format($methodName); - } catch (\InvalidArgumentException $e) { - $example = ''; - } - if (is_array($example)) { - $example = "array('". join("', '", $example) . "')"; - } elseif ($example instanceof \DateTime) { - $example = "DateTime('" . $example->format('Y-m-d H:i:s') . "')"; - } elseif ($example instanceof Generator || $example instanceof UniqueGenerator) { // modifier - $example = ''; - } else { - $example = var_export($example, true); - } - $formatters[$providerClass][$methodName . $parameters] = $example; - } - } - - return $formatters; - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Factory.php b/vendor/fzaninotto/faker/src/Faker/Factory.php deleted file mode 100644 index 1d687817..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Factory.php +++ /dev/null @@ -1,61 +0,0 @@ -addProvider(new $providerClassName($generator)); - } - - return $generator; - } - - /** - * @param string $provider - * @param string $locale - * @return string - */ - protected static function getProviderClassname($provider, $locale = '') - { - if ($providerClass = self::findProviderClassname($provider, $locale)) { - return $providerClass; - } - // fallback to default locale - if ($providerClass = self::findProviderClassname($provider, static::DEFAULT_LOCALE)) { - return $providerClass; - } - // fallback to no locale - if ($providerClass = self::findProviderClassname($provider)) { - return $providerClass; - } - throw new \InvalidArgumentException(sprintf('Unable to find provider "%s" with locale "%s"', $provider, $locale)); - } - - /** - * @param string $provider - * @param string $locale - * @return string - */ - protected static function findProviderClassname($provider, $locale = '') - { - $providerClass = 'Faker\\' . ($locale ? sprintf('Provider\%s\%s', $locale, $provider) : sprintf('Provider\%s', $provider)); - if (class_exists($providerClass, true)) { - return $providerClass; - } - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Generator.php b/vendor/fzaninotto/faker/src/Faker/Generator.php deleted file mode 100644 index 0a4e0502..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Generator.php +++ /dev/null @@ -1,281 +0,0 @@ -providers, $provider); - } - - public function getProviders() - { - return $this->providers; - } - - public function seed($seed = null) - { - if ($seed === null) { - mt_srand(); - } else { - if (PHP_VERSION_ID < 70100) { - mt_srand((int) $seed); - } else { - mt_srand((int) $seed, MT_RAND_PHP); - } - } - } - - public function format($formatter, $arguments = array()) - { - return call_user_func_array($this->getFormatter($formatter), $arguments); - } - - /** - * @param string $formatter - * - * @return Callable - */ - public function getFormatter($formatter) - { - if (isset($this->formatters[$formatter])) { - return $this->formatters[$formatter]; - } - foreach ($this->providers as $provider) { - if (method_exists($provider, $formatter)) { - $this->formatters[$formatter] = array($provider, $formatter); - - return $this->formatters[$formatter]; - } - } - throw new \InvalidArgumentException(sprintf('Unknown formatter "%s"', $formatter)); - } - - /** - * Replaces tokens ('{{ tokenName }}') with the result from the token method call - * - * @param string $string String that needs to bet parsed - * @return string - */ - public function parse($string) - { - return preg_replace_callback('/\{\{\s?(\w+)\s?\}\}/u', array($this, 'callFormatWithMatches'), $string); - } - - protected function callFormatWithMatches($matches) - { - return $this->format($matches[1]); - } - - /** - * @param string $attribute - * - * @return mixed - */ - public function __get($attribute) - { - return $this->format($attribute); - } - - /** - * @param string $method - * @param array $attributes - * - * @return mixed - */ - public function __call($method, $attributes) - { - return $this->format($method, $attributes); - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Guesser/Name.php b/vendor/fzaninotto/faker/src/Faker/Guesser/Name.php deleted file mode 100644 index 0b303db1..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Guesser/Name.php +++ /dev/null @@ -1,156 +0,0 @@ -generator = $generator; - } - - /** - * @param string $name - * @param int|null $size Length of field, if known - * @return callable - */ - public function guessFormat($name, $size = null) - { - $name = Base::toLower($name); - $generator = $this->generator; - if (preg_match('/^is[_A-Z]/', $name)) { - return function () use ($generator) { - return $generator->boolean; - }; - } - if (preg_match('/(_a|A)t$/', $name)) { - return function () use ($generator) { - return $generator->dateTime; - }; - } - switch (str_replace('_', '', $name)) { - case 'firstname': - return function () use ($generator) { - return $generator->firstName; - }; - case 'lastname': - return function () use ($generator) { - return $generator->lastName; - }; - case 'username': - case 'login': - return function () use ($generator) { - return $generator->userName; - }; - case 'email': - case 'emailaddress': - return function () use ($generator) { - return $generator->email; - }; - case 'phonenumber': - case 'phone': - case 'telephone': - case 'telnumber': - return function () use ($generator) { - return $generator->phoneNumber; - }; - case 'address': - return function () use ($generator) { - return $generator->address; - }; - case 'city': - case 'town': - return function () use ($generator) { - return $generator->city; - }; - case 'streetaddress': - return function () use ($generator) { - return $generator->streetAddress; - }; - case 'postcode': - case 'zipcode': - return function () use ($generator) { - return $generator->postcode; - }; - case 'state': - return function () use ($generator) { - return $generator->state; - }; - case 'county': - if ($this->generator->locale == 'en_US') { - return function () use ($generator) { - return sprintf('%s County', $generator->city); - }; - } - - return function () use ($generator) { - return $generator->state; - }; - case 'country': - switch ($size) { - case 2: - return function () use ($generator) { - return $generator->countryCode; - }; - case 3: - return function () use ($generator) { - return $generator->countryISOAlpha3; - }; - case 5: - case 6: - return function () use ($generator) { - return $generator->locale; - }; - default: - return function () use ($generator) { - return $generator->country; - }; - } - break; - case 'locale': - return function () use ($generator) { - return $generator->locale; - }; - case 'currency': - case 'currencycode': - return function () use ($generator) { - return $generator->currencyCode; - }; - case 'url': - case 'website': - return function () use ($generator) { - return $generator->url; - }; - case 'company': - case 'companyname': - case 'employer': - return function () use ($generator) { - return $generator->company; - }; - case 'title': - if ($size !== null && $size <= 10) { - return function () use ($generator) { - return $generator->title; - }; - } - - return function () use ($generator) { - return $generator->sentence; - }; - case 'body': - case 'summary': - case 'article': - case 'description': - return function () use ($generator) { - return $generator->text; - }; - } - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/ORM/CakePHP/ColumnTypeGuesser.php b/vendor/fzaninotto/faker/src/Faker/ORM/CakePHP/ColumnTypeGuesser.php deleted file mode 100644 index 0b871ed7..00000000 --- a/vendor/fzaninotto/faker/src/Faker/ORM/CakePHP/ColumnTypeGuesser.php +++ /dev/null @@ -1,67 +0,0 @@ -generator = $generator; - } - - /** - * @return \Closure|null - */ - public function guessFormat($column, $table) - { - $generator = $this->generator; - $schema = $table->schema(); - - switch ($schema->columnType($column)) { - case 'boolean': - return function () use ($generator) { - return $generator->boolean; - }; - case 'integer': - return function () { - return mt_rand(0, intval('2147483647')); - }; - case 'biginteger': - return function () { - return mt_rand(0, intval('9223372036854775807')); - }; - case 'decimal': - case 'float': - return function () use ($generator) { - return $generator->randomFloat(); - }; - case 'uuid': - return function () use ($generator) { - return $generator->uuid(); - }; - case 'string': - $columnData = $schema->column($column); - $length = $columnData['length']; - return function () use ($generator, $length) { - return $generator->text($length); - }; - case 'text': - return function () use ($generator) { - return $generator->text(); - }; - case 'date': - case 'datetime': - case 'timestamp': - case 'time': - return function () use ($generator) { - return $generator->datetime(); - }; - - case 'binary': - default: - return null; - } - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/ORM/CakePHP/EntityPopulator.php b/vendor/fzaninotto/faker/src/Faker/ORM/CakePHP/EntityPopulator.php deleted file mode 100644 index 2ec312aa..00000000 --- a/vendor/fzaninotto/faker/src/Faker/ORM/CakePHP/EntityPopulator.php +++ /dev/null @@ -1,166 +0,0 @@ -class = $class; - } - - /** - * @param string $name - */ - public function __get($name) - { - return $this->{$name}; - } - - /** - * @param string $name - */ - public function __set($name, $value) - { - $this->{$name} = $value; - } - - public function mergeColumnFormattersWith($columnFormatters) - { - $this->columnFormatters = array_merge($this->columnFormatters, $columnFormatters); - } - - public function mergeModifiersWith($modifiers) - { - $this->modifiers = array_merge($this->modifiers, $modifiers); - } - - /** - * @return array - */ - public function guessColumnFormatters($populator) - { - $formatters = []; - $class = $this->class; - $table = $this->getTable($class); - $schema = $table->schema(); - $pk = $schema->primaryKey(); - $guessers = $populator->getGuessers() + ['ColumnTypeGuesser' => new ColumnTypeGuesser($populator->getGenerator())]; - $isForeignKey = function ($column) use ($table) { - foreach ($table->associations()->type('BelongsTo') as $assoc) { - if ($column == $assoc->foreignKey()) { - return true; - } - } - return false; - }; - - - foreach ($schema->columns() as $column) { - if ($column == $pk[0] || $isForeignKey($column)) { - continue; - } - - foreach ($guessers as $guesser) { - if ($formatter = $guesser->guessFormat($column, $table)) { - $formatters[$column] = $formatter; - break; - } - } - } - - return $formatters; - } - - /** - * @return array - */ - public function guessModifiers() - { - $modifiers = []; - $table = $this->getTable($this->class); - - $belongsTo = $table->associations()->type('BelongsTo'); - foreach ($belongsTo as $assoc) { - $modifiers['belongsTo' . $assoc->name()] = function ($data, $insertedEntities) use ($assoc) { - $table = $assoc->target(); - $foreignModel = $table->alias(); - - $foreignKeys = []; - if (!empty($insertedEntities[$foreignModel])) { - $foreignKeys = $insertedEntities[$foreignModel]; - } else { - $foreignKeys = $table->find('all') - ->select(['id']) - ->map(function ($row) { - return $row->id; - }) - ->toArray(); - } - - if (empty($foreignKeys)) { - throw new \Exception(sprintf('%s belongsTo %s, which seems empty at this point.', $this->getTable($this->class)->table(), $assoc->table())); - } - - $foreignKey = $foreignKeys[array_rand($foreignKeys)]; - $data[$assoc->foreignKey()] = $foreignKey; - return $data; - }; - } - - // TODO check if TreeBehavior attached to modify lft/rgt cols - - return $modifiers; - } - - /** - * @param array $options - */ - public function execute($class, $insertedEntities, $options = []) - { - $table = $this->getTable($class); - $entity = $table->newEntity(); - - foreach ($this->columnFormatters as $column => $format) { - if (!is_null($format)) { - $entity->{$column} = is_callable($format) ? $format($insertedEntities, $table) : $format; - } - } - - foreach ($this->modifiers as $modifier) { - $entity = $modifier($entity, $insertedEntities); - } - - if (!$entity = $table->save($entity, $options)) { - throw new \RuntimeException("Failed saving $class record"); - } - - $pk = $table->primaryKey(); - if (is_string($pk)) { - return $entity->{$pk}; - } - - return $entity->{$pk[0]}; - } - - public function setConnection($name) - { - $this->connectionName = $name; - } - - protected function getTable($class) - { - $options = []; - if (!empty($this->connectionName)) { - $options['connection'] = $this->connectionName; - } - return TableRegistry::get($class, $options); - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/ORM/CakePHP/Populator.php b/vendor/fzaninotto/faker/src/Faker/ORM/CakePHP/Populator.php deleted file mode 100644 index eda30a8e..00000000 --- a/vendor/fzaninotto/faker/src/Faker/ORM/CakePHP/Populator.php +++ /dev/null @@ -1,109 +0,0 @@ -generator = $generator; - } - - /** - * @return \Faker\Generator - */ - public function getGenerator() - { - return $this->generator; - } - - /** - * @return array - */ - public function getGuessers() - { - return $this->guessers; - } - - /** - * @return $this - */ - public function removeGuesser($name) - { - if ($this->guessers[$name]) { - unset($this->guessers[$name]); - } - return $this; - } - - /** - * @return $this - * @throws \Exception - */ - public function addGuesser($class) - { - if (!is_object($class)) { - $class = new $class($this->generator); - } - - if (!method_exists($class, 'guessFormat')) { - throw new \Exception('Missing required custom guesser method: ' . get_class($class) . '::guessFormat()'); - } - - $this->guessers[get_class($class)] = $class; - return $this; - } - - /** - * @param array $customColumnFormatters - * @param array $customModifiers - * @return $this - */ - public function addEntity($entity, $number, $customColumnFormatters = [], $customModifiers = []) - { - if (!$entity instanceof EntityPopulator) { - $entity = new EntityPopulator($entity); - } - - $entity->columnFormatters = $entity->guessColumnFormatters($this); - if ($customColumnFormatters) { - $entity->mergeColumnFormattersWith($customColumnFormatters); - } - - $entity->modifiers = $entity->guessModifiers($this); - if ($customModifiers) { - $entity->mergeModifiersWith($customModifiers); - } - - $class = $entity->class; - $this->entities[$class] = $entity; - $this->quantities[$class] = $number; - return $this; - } - - /** - * @param array $options - * @return array - */ - public function execute($options = []) - { - $insertedEntities = []; - - foreach ($this->quantities as $class => $number) { - for ($i = 0; $i < $number; $i++) { - $insertedEntities[$class][] = $this->entities[$class]->execute($class, $insertedEntities, $options); - } - } - - return $insertedEntities; - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/ORM/Doctrine/ColumnTypeGuesser.php b/vendor/fzaninotto/faker/src/Faker/ORM/Doctrine/ColumnTypeGuesser.php deleted file mode 100644 index 824f8c03..00000000 --- a/vendor/fzaninotto/faker/src/Faker/ORM/Doctrine/ColumnTypeGuesser.php +++ /dev/null @@ -1,75 +0,0 @@ -generator = $generator; - } - - /** - * @param ClassMetadata $class - * @return \Closure|null - */ - public function guessFormat($fieldName, ClassMetadata $class) - { - $generator = $this->generator; - $type = $class->getTypeOfField($fieldName); - switch ($type) { - case 'boolean': - return function () use ($generator) { - return $generator->boolean; - }; - case 'decimal': - $size = isset($class->fieldMappings[$fieldName]['precision']) ? $class->fieldMappings[$fieldName]['precision'] : 2; - - return function () use ($generator, $size) { - return $generator->randomNumber($size + 2) / 100; - }; - case 'smallint': - return function () { - return mt_rand(0, 65535); - }; - case 'integer': - return function () { - return mt_rand(0, intval('2147483647')); - }; - case 'bigint': - return function () { - return mt_rand(0, intval('18446744073709551615')); - }; - case 'float': - return function () { - return mt_rand(0, intval('4294967295'))/mt_rand(1, intval('4294967295')); - }; - case 'string': - $size = isset($class->fieldMappings[$fieldName]['length']) ? $class->fieldMappings[$fieldName]['length'] : 255; - - return function () use ($generator, $size) { - return $generator->text($size); - }; - case 'text': - return function () use ($generator) { - return $generator->text; - }; - case 'datetime': - case 'date': - case 'time': - return function () use ($generator) { - return $generator->datetime; - }; - default: - // no smart way to guess what the user expects here - return null; - } - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/ORM/Doctrine/EntityPopulator.php b/vendor/fzaninotto/faker/src/Faker/ORM/Doctrine/EntityPopulator.php deleted file mode 100644 index bc703e54..00000000 --- a/vendor/fzaninotto/faker/src/Faker/ORM/Doctrine/EntityPopulator.php +++ /dev/null @@ -1,251 +0,0 @@ -class = $class; - } - - /** - * @return string - */ - public function getClass() - { - return $this->class->getName(); - } - - /** - * @param $columnFormatters - */ - public function setColumnFormatters($columnFormatters) - { - $this->columnFormatters = $columnFormatters; - } - - /** - * @return array - */ - public function getColumnFormatters() - { - return $this->columnFormatters; - } - - public function mergeColumnFormattersWith($columnFormatters) - { - $this->columnFormatters = array_merge($this->columnFormatters, $columnFormatters); - } - - /** - * @param array $modifiers - */ - public function setModifiers(array $modifiers) - { - $this->modifiers = $modifiers; - } - - /** - * @return array - */ - public function getModifiers() - { - return $this->modifiers; - } - - /** - * @param array $modifiers - */ - public function mergeModifiersWith(array $modifiers) - { - $this->modifiers = array_merge($this->modifiers, $modifiers); - } - - /** - * @param \Faker\Generator $generator - * @return array - */ - public function guessColumnFormatters(\Faker\Generator $generator) - { - $formatters = array(); - $nameGuesser = new \Faker\Guesser\Name($generator); - $columnTypeGuesser = new ColumnTypeGuesser($generator); - foreach ($this->class->getFieldNames() as $fieldName) { - if ($this->class->isIdentifier($fieldName) || !$this->class->hasField($fieldName)) { - continue; - } - - $size = isset($this->class->fieldMappings[$fieldName]['length']) ? $this->class->fieldMappings[$fieldName]['length'] : null; - if ($formatter = $nameGuesser->guessFormat($fieldName, $size)) { - $formatters[$fieldName] = $formatter; - continue; - } - if ($formatter = $columnTypeGuesser->guessFormat($fieldName, $this->class)) { - $formatters[$fieldName] = $formatter; - continue; - } - } - - foreach ($this->class->getAssociationNames() as $assocName) { - if ($this->class->isCollectionValuedAssociation($assocName)) { - continue; - } - - $relatedClass = $this->class->getAssociationTargetClass($assocName); - - $unique = $optional = false; - if ($this->class instanceof \Doctrine\ORM\Mapping\ClassMetadata) { - $mappings = $this->class->getAssociationMappings(); - foreach ($mappings as $mapping) { - if ($mapping['targetEntity'] == $relatedClass) { - if ($mapping['type'] == \Doctrine\ORM\Mapping\ClassMetadata::ONE_TO_ONE) { - $unique = true; - $optional = isset($mapping['joinColumns'][0]['nullable']) ? $mapping['joinColumns'][0]['nullable'] : false; - break; - } - } - } - } elseif ($this->class instanceof \Doctrine\ODM\MongoDB\Mapping\ClassMetadata) { - $mappings = $this->class->associationMappings; - foreach ($mappings as $mapping) { - if ($mapping['targetDocument'] == $relatedClass) { - if ($mapping['type'] == \Doctrine\ODM\MongoDB\Mapping\ClassMetadata::ONE && $mapping['association'] == \Doctrine\ODM\MongoDB\Mapping\ClassMetadata::REFERENCE_ONE) { - $unique = true; - $optional = isset($mapping['nullable']) ? $mapping['nullable'] : false; - break; - } - } - } - } - - $index = 0; - $formatters[$assocName] = function ($inserted) use ($relatedClass, &$index, $unique, $optional) { - - if (isset($inserted[$relatedClass])) { - if ($unique) { - $related = null; - if (isset($inserted[$relatedClass][$index]) || !$optional) { - $related = $inserted[$relatedClass][$index]; - } - - $index++; - - return $related; - } - - return $inserted[$relatedClass][mt_rand(0, count($inserted[$relatedClass]) - 1)]; - } - - return null; - }; - } - - return $formatters; - } - - /** - * Insert one new record using the Entity class. - * @param ObjectManager $manager - * @param bool $generateId - * @return EntityPopulator - */ - public function execute(ObjectManager $manager, $insertedEntities, $generateId = false) - { - $obj = $this->class->newInstance(); - - $this->fillColumns($obj, $insertedEntities); - $this->callMethods($obj, $insertedEntities); - - if ($generateId) { - $idsName = $this->class->getIdentifier(); - foreach ($idsName as $idName) { - $id = $this->generateId($obj, $idName, $manager); - $this->class->reflFields[$idName]->setValue($obj, $id); - } - } - - $manager->persist($obj); - - return $obj; - } - - private function fillColumns($obj, $insertedEntities) - { - foreach ($this->columnFormatters as $field => $format) { - if (null !== $format) { - // Add some extended debugging information to any errors thrown by the formatter - try { - $value = is_callable($format) ? $format($insertedEntities, $obj) : $format; - } catch (\InvalidArgumentException $ex) { - throw new \InvalidArgumentException(sprintf( - "Failed to generate a value for %s::%s: %s", - get_class($obj), - $field, - $ex->getMessage() - )); - } - // Try a standard setter if it's available, otherwise fall back on reflection - $setter = sprintf("set%s", ucfirst($field)); - if (is_callable(array($obj, $setter))) { - $obj->$setter($value); - } else { - $this->class->reflFields[$field]->setValue($obj, $value); - } - } - } - } - - private function callMethods($obj, $insertedEntities) - { - foreach ($this->getModifiers() as $modifier) { - $modifier($obj, $insertedEntities); - } - } - - /** - * @param ObjectManager $manager - * @return int|null - */ - private function generateId($obj, $column, ObjectManager $manager) - { - /* @var $repository \Doctrine\Common\Persistence\ObjectRepository */ - $repository = $manager->getRepository(get_class($obj)); - $result = $repository->createQueryBuilder('e') - ->select(sprintf('e.%s', $column)) - ->getQuery() - ->execute(); - $ids = array_map('current', $result->toArray()); - - $id = null; - do { - $id = mt_rand(); - } while (in_array($id, $ids)); - - return $id; - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/ORM/Doctrine/Populator.php b/vendor/fzaninotto/faker/src/Faker/ORM/Doctrine/Populator.php deleted file mode 100644 index d4fe897c..00000000 --- a/vendor/fzaninotto/faker/src/Faker/ORM/Doctrine/Populator.php +++ /dev/null @@ -1,82 +0,0 @@ -generator = $generator; - $this->manager = $manager; - } - - /** - * Add an order for the generation of $number records for $entity. - * - * @param mixed $entity A Doctrine classname, or a \Faker\ORM\Doctrine\EntityPopulator instance - * @param int $number The number of entities to populate - */ - public function addEntity($entity, $number, $customColumnFormatters = array(), $customModifiers = array(), $generateId = false) - { - if (!$entity instanceof \Faker\ORM\Doctrine\EntityPopulator) { - if (null === $this->manager) { - throw new \InvalidArgumentException("No entity manager passed to Doctrine Populator."); - } - $entity = new \Faker\ORM\Doctrine\EntityPopulator($this->manager->getClassMetadata($entity)); - } - $entity->setColumnFormatters($entity->guessColumnFormatters($this->generator)); - if ($customColumnFormatters) { - $entity->mergeColumnFormattersWith($customColumnFormatters); - } - $entity->mergeModifiersWith($customModifiers); - $this->generateId[$entity->getClass()] = $generateId; - - $class = $entity->getClass(); - $this->entities[$class] = $entity; - $this->quantities[$class] = $number; - } - - /** - * Populate the database using all the Entity classes previously added. - * - * @param null|EntityManager $entityManager A Doctrine connection object - * - * @return array A list of the inserted PKs - */ - public function execute($entityManager = null) - { - if (null === $entityManager) { - $entityManager = $this->manager; - } - if (null === $entityManager) { - throw new \InvalidArgumentException("No entity manager passed to Doctrine Populator."); - } - - $insertedEntities = array(); - foreach ($this->quantities as $class => $number) { - $generateId = $this->generateId[$class]; - for ($i=0; $i < $number; $i++) { - $insertedEntities[$class][]= $this->entities[$class]->execute($entityManager, $insertedEntities, $generateId); - } - $entityManager->flush(); - } - - return $insertedEntities; - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/ORM/Mandango/ColumnTypeGuesser.php b/vendor/fzaninotto/faker/src/Faker/ORM/Mandango/ColumnTypeGuesser.php deleted file mode 100644 index d318b0aa..00000000 --- a/vendor/fzaninotto/faker/src/Faker/ORM/Mandango/ColumnTypeGuesser.php +++ /dev/null @@ -1,49 +0,0 @@ -generator = $generator; - } - - /** - * @return \Closure|null - */ - public function guessFormat($field) - { - $generator = $this->generator; - switch ($field['type']) { - case 'boolean': - return function () use ($generator) { - return $generator->boolean; - }; - case 'integer': - return function () { - return mt_rand(0, intval('4294967295')); - }; - case 'float': - return function () { - return mt_rand(0, intval('4294967295'))/mt_rand(1, intval('4294967295')); - }; - case 'string': - return function () use ($generator) { - return $generator->text(255); - }; - case 'date': - return function () use ($generator) { - return $generator->datetime; - }; - default: - // no smart way to guess what the user expects here - return null; - } - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/ORM/Mandango/EntityPopulator.php b/vendor/fzaninotto/faker/src/Faker/ORM/Mandango/EntityPopulator.php deleted file mode 100644 index 667f5bec..00000000 --- a/vendor/fzaninotto/faker/src/Faker/ORM/Mandango/EntityPopulator.php +++ /dev/null @@ -1,122 +0,0 @@ -class = $class; - } - - /** - * @return string - */ - public function getClass() - { - return $this->class; - } - - public function setColumnFormatters($columnFormatters) - { - $this->columnFormatters = $columnFormatters; - } - - /** - * @return array - */ - public function getColumnFormatters() - { - return $this->columnFormatters; - } - - public function mergeColumnFormattersWith($columnFormatters) - { - $this->columnFormatters = array_merge($this->columnFormatters, $columnFormatters); - } - - /** - * @param \Faker\Generator $generator - * @param Mandango $mandango - * @return array - */ - public function guessColumnFormatters(\Faker\Generator $generator, Mandango $mandango) - { - $formatters = array(); - $nameGuesser = new \Faker\Guesser\Name($generator); - $columnTypeGuesser = new \Faker\ORM\Mandango\ColumnTypeGuesser($generator); - - $metadata = $mandango->getMetadata($this->class); - - // fields - foreach ($metadata['fields'] as $fieldName => $field) { - if ($formatter = $nameGuesser->guessFormat($fieldName)) { - $formatters[$fieldName] = $formatter; - continue; - } - if ($formatter = $columnTypeGuesser->guessFormat($field)) { - $formatters[$fieldName] = $formatter; - continue; - } - } - - // references - foreach (array_merge($metadata['referencesOne'], $metadata['referencesMany']) as $referenceName => $reference) { - if (!isset($reference['class'])) { - continue; - } - $referenceClass = $reference['class']; - - $formatters[$referenceName] = function ($insertedEntities) use ($referenceClass) { - if (isset($insertedEntities[$referenceClass])) { - return Base::randomElement($insertedEntities[$referenceClass]); - } - }; - } - - return $formatters; - } - - /** - * Insert one new record using the Entity class. - * @param Mandango $mandango - */ - public function execute(Mandango $mandango, $insertedEntities) - { - $metadata = $mandango->getMetadata($this->class); - - $obj = $mandango->create($this->class); - foreach ($this->columnFormatters as $column => $format) { - if (null !== $format) { - $value = is_callable($format) ? $format($insertedEntities, $obj) : $format; - - if (isset($metadata['fields'][$column]) || - isset($metadata['referencesOne'][$column])) { - $obj->set($column, $value); - } - - if (isset($metadata['referencesMany'][$column])) { - $adder = 'add'.ucfirst($column); - $obj->$adder($value); - } - } - } - $mandango->persist($obj); - - return $obj; - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/ORM/Mandango/Populator.php b/vendor/fzaninotto/faker/src/Faker/ORM/Mandango/Populator.php deleted file mode 100644 index 26736dc4..00000000 --- a/vendor/fzaninotto/faker/src/Faker/ORM/Mandango/Populator.php +++ /dev/null @@ -1,65 +0,0 @@ -generator = $generator; - $this->mandango = $mandango; - } - - /** - * Add an order for the generation of $number records for $entity. - * - * @param mixed $entity A Propel ActiveRecord classname, or a \Faker\ORM\Propel\EntityPopulator instance - * @param int $number The number of entities to populate - */ - public function addEntity($entity, $number, $customColumnFormatters = array()) - { - if (!$entity instanceof \Faker\ORM\Mandango\EntityPopulator) { - $entity = new \Faker\ORM\Mandango\EntityPopulator($entity); - } - $entity->setColumnFormatters($entity->guessColumnFormatters($this->generator, $this->mandango)); - if ($customColumnFormatters) { - $entity->mergeColumnFormattersWith($customColumnFormatters); - } - $class = $entity->getClass(); - $this->entities[$class] = $entity; - $this->quantities[$class] = $number; - } - - /** - * Populate the database using all the Entity classes previously added. - * - * @return array A list of the inserted entities. - */ - public function execute() - { - $insertedEntities = array(); - foreach ($this->quantities as $class => $number) { - for ($i=0; $i < $number; $i++) { - $insertedEntities[$class][]= $this->entities[$class]->execute($this->mandango, $insertedEntities); - } - } - $this->mandango->flush(); - - return $insertedEntities; - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/ORM/Propel/ColumnTypeGuesser.php b/vendor/fzaninotto/faker/src/Faker/ORM/Propel/ColumnTypeGuesser.php deleted file mode 100644 index 1df70494..00000000 --- a/vendor/fzaninotto/faker/src/Faker/ORM/Propel/ColumnTypeGuesser.php +++ /dev/null @@ -1,107 +0,0 @@ -generator = $generator; - } - - /** - * @param ColumnMap $column - * @return \Closure|null - */ - public function guessFormat(ColumnMap $column) - { - $generator = $this->generator; - if ($column->isTemporal()) { - if ($column->isEpochTemporal()) { - return function () use ($generator) { - return $generator->dateTime; - }; - } - - return function () use ($generator) { - return $generator->dateTimeAD; - }; - } - $type = $column->getType(); - switch ($type) { - case PropelColumnTypes::BOOLEAN: - case PropelColumnTypes::BOOLEAN_EMU: - return function () use ($generator) { - return $generator->boolean; - }; - case PropelColumnTypes::NUMERIC: - case PropelColumnTypes::DECIMAL: - $size = $column->getSize(); - - return function () use ($generator, $size) { - return $generator->randomNumber($size + 2) / 100; - }; - case PropelColumnTypes::TINYINT: - return function () { - return mt_rand(0, 127); - }; - case PropelColumnTypes::SMALLINT: - return function () { - return mt_rand(0, 32767); - }; - case PropelColumnTypes::INTEGER: - return function () { - return mt_rand(0, intval('2147483647')); - }; - case PropelColumnTypes::BIGINT: - return function () { - return mt_rand(0, intval('9223372036854775807')); - }; - case PropelColumnTypes::FLOAT: - return function () { - return mt_rand(0, intval('2147483647'))/mt_rand(1, intval('2147483647')); - }; - case PropelColumnTypes::DOUBLE: - case PropelColumnTypes::REAL: - return function () { - return mt_rand(0, intval('9223372036854775807'))/mt_rand(1, intval('9223372036854775807')); - }; - case PropelColumnTypes::CHAR: - case PropelColumnTypes::VARCHAR: - case PropelColumnTypes::BINARY: - case PropelColumnTypes::VARBINARY: - $size = $column->getSize(); - - return function () use ($generator, $size) { - return $generator->text($size); - }; - case PropelColumnTypes::LONGVARCHAR: - case PropelColumnTypes::LONGVARBINARY: - case PropelColumnTypes::CLOB: - case PropelColumnTypes::CLOB_EMU: - case PropelColumnTypes::BLOB: - return function () use ($generator) { - return $generator->text; - }; - case PropelColumnTypes::ENUM: - $valueSet = $column->getValueSet(); - - return function () use ($generator, $valueSet) { - return $generator->randomElement($valueSet); - }; - case PropelColumnTypes::OBJECT: - case PropelColumnTypes::PHP_ARRAY: - default: - // no smart way to guess what the user expects here - return null; - } - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/ORM/Propel/EntityPopulator.php b/vendor/fzaninotto/faker/src/Faker/ORM/Propel/EntityPopulator.php deleted file mode 100644 index 1976a403..00000000 --- a/vendor/fzaninotto/faker/src/Faker/ORM/Propel/EntityPopulator.php +++ /dev/null @@ -1,191 +0,0 @@ -class = $class; - } - - /** - * @return string - */ - public function getClass() - { - return $this->class; - } - - public function setColumnFormatters($columnFormatters) - { - $this->columnFormatters = $columnFormatters; - } - - /** - * @return array - */ - public function getColumnFormatters() - { - return $this->columnFormatters; - } - - public function mergeColumnFormattersWith($columnFormatters) - { - $this->columnFormatters = array_merge($this->columnFormatters, $columnFormatters); - } - - /** - * @param \Faker\Generator $generator - * @return array - */ - public function guessColumnFormatters(\Faker\Generator $generator) - { - $formatters = array(); - $class = $this->class; - $peerClass = $class::PEER; - $tableMap = $peerClass::getTableMap(); - $nameGuesser = new \Faker\Guesser\Name($generator); - $columnTypeGuesser = new \Faker\ORM\Propel\ColumnTypeGuesser($generator); - foreach ($tableMap->getColumns() as $columnMap) { - // skip behavior columns, handled by modifiers - if ($this->isColumnBehavior($columnMap)) { - continue; - } - if ($columnMap->isForeignKey()) { - $relatedClass = $columnMap->getRelation()->getForeignTable()->getClassname(); - $formatters[$columnMap->getPhpName()] = function ($inserted) use ($relatedClass) { - return isset($inserted[$relatedClass]) ? $inserted[$relatedClass][mt_rand(0, count($inserted[$relatedClass]) - 1)] : null; - }; - continue; - } - if ($columnMap->isPrimaryKey()) { - continue; - } - if ($formatter = $nameGuesser->guessFormat($columnMap->getPhpName(), $columnMap->getSize())) { - $formatters[$columnMap->getPhpName()] = $formatter; - continue; - } - if ($formatter = $columnTypeGuesser->guessFormat($columnMap)) { - $formatters[$columnMap->getPhpName()] = $formatter; - continue; - } - } - - return $formatters; - } - - /** - * @param ColumnMap $columnMap - * @return bool - */ - protected function isColumnBehavior(ColumnMap $columnMap) - { - foreach ($columnMap->getTable()->getBehaviors() as $name => $params) { - $columnName = Base::toLower($columnMap->getName()); - switch ($name) { - case 'nested_set': - $columnNames = array($params['left_column'], $params['right_column'], $params['level_column']); - if (in_array($columnName, $columnNames)) { - return true; - } - break; - case 'timestampable': - $columnNames = array($params['create_column'], $params['update_column']); - if (in_array($columnName, $columnNames)) { - return true; - } - break; - } - } - - return false; - } - - public function setModifiers($modifiers) - { - $this->modifiers = $modifiers; - } - - /** - * @return array - */ - public function getModifiers() - { - return $this->modifiers; - } - - public function mergeModifiersWith($modifiers) - { - $this->modifiers = array_merge($this->modifiers, $modifiers); - } - - /** - * @param \Faker\Generator $generator - * @return array - */ - public function guessModifiers(\Faker\Generator $generator) - { - $modifiers = array(); - $class = $this->class; - $peerClass = $class::PEER; - $tableMap = $peerClass::getTableMap(); - foreach ($tableMap->getBehaviors() as $name => $params) { - switch ($name) { - case 'nested_set': - $modifiers['nested_set'] = function ($obj, $inserted) use ($class, $generator) { - if (isset($inserted[$class])) { - $queryClass = $class . 'Query'; - $parent = $queryClass::create()->findPk($generator->randomElement($inserted[$class])); - $obj->insertAsLastChildOf($parent); - } else { - $obj->makeRoot(); - } - }; - break; - case 'sortable': - $modifiers['sortable'] = function ($obj, $inserted) use ($class) { - $maxRank = isset($inserted[$class]) ? count($inserted[$class]) : 0; - $obj->insertAtRank(mt_rand(1, $maxRank + 1)); - }; - break; - } - } - - return $modifiers; - } - - /** - * Insert one new record using the Entity class. - */ - public function execute($con, $insertedEntities) - { - $obj = new $this->class(); - foreach ($this->getColumnFormatters() as $column => $format) { - if (null !== $format) { - $obj->setByName($column, is_callable($format) ? $format($insertedEntities, $obj) : $format); - } - } - foreach ($this->getModifiers() as $modifier) { - $modifier($obj, $insertedEntities); - } - $obj->save($con); - - return $obj->getPrimaryKey(); - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/ORM/Propel/Populator.php b/vendor/fzaninotto/faker/src/Faker/ORM/Propel/Populator.php deleted file mode 100644 index 42857278..00000000 --- a/vendor/fzaninotto/faker/src/Faker/ORM/Propel/Populator.php +++ /dev/null @@ -1,89 +0,0 @@ -generator = $generator; - } - - /** - * Add an order for the generation of $number records for $entity. - * - * @param mixed $entity A Propel ActiveRecord classname, or a \Faker\ORM\Propel\EntityPopulator instance - * @param int $number The number of entities to populate - */ - public function addEntity($entity, $number, $customColumnFormatters = array(), $customModifiers = array()) - { - if (!$entity instanceof \Faker\ORM\Propel\EntityPopulator) { - $entity = new \Faker\ORM\Propel\EntityPopulator($entity); - } - $entity->setColumnFormatters($entity->guessColumnFormatters($this->generator)); - if ($customColumnFormatters) { - $entity->mergeColumnFormattersWith($customColumnFormatters); - } - $entity->setModifiers($entity->guessModifiers($this->generator)); - if ($customModifiers) { - $entity->mergeModifiersWith($customModifiers); - } - $class = $entity->getClass(); - $this->entities[$class] = $entity; - $this->quantities[$class] = $number; - } - - /** - * Populate the database using all the Entity classes previously added. - * - * @param PropelPDO $con A Propel connection object - * - * @return array A list of the inserted PKs - */ - public function execute($con = null) - { - if (null === $con) { - $con = $this->getConnection(); - } - $isInstancePoolingEnabled = \Propel::isInstancePoolingEnabled(); - \Propel::disableInstancePooling(); - $insertedEntities = array(); - $con->beginTransaction(); - foreach ($this->quantities as $class => $number) { - for ($i=0; $i < $number; $i++) { - $insertedEntities[$class][]= $this->entities[$class]->execute($con, $insertedEntities); - } - } - $con->commit(); - if ($isInstancePoolingEnabled) { - \Propel::enableInstancePooling(); - } - - return $insertedEntities; - } - - protected function getConnection() - { - // use the first connection available - $class = key($this->entities); - - if (!$class) { - throw new \RuntimeException('No class found from entities. Did you add entities to the Populator ?'); - } - - $peer = $class::PEER; - - return \Propel::getConnection($peer::DATABASE_NAME, \Propel::CONNECTION_WRITE); - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/ORM/Propel2/ColumnTypeGuesser.php b/vendor/fzaninotto/faker/src/Faker/ORM/Propel2/ColumnTypeGuesser.php deleted file mode 100644 index 024965a7..00000000 --- a/vendor/fzaninotto/faker/src/Faker/ORM/Propel2/ColumnTypeGuesser.php +++ /dev/null @@ -1,107 +0,0 @@ -generator = $generator; - } - - /** - * @param ColumnMap $column - * @return \Closure|null - */ - public function guessFormat(ColumnMap $column) - { - $generator = $this->generator; - if ($column->isTemporal()) { - if ($column->getType() == PropelTypes::BU_DATE || $column->getType() == PropelTypes::BU_TIMESTAMP) { - return function () use ($generator) { - return $generator->dateTime; - }; - } - - return function () use ($generator) { - return $generator->dateTimeAD; - }; - } - $type = $column->getType(); - switch ($type) { - case PropelTypes::BOOLEAN: - case PropelTypes::BOOLEAN_EMU: - return function () use ($generator) { - return $generator->boolean; - }; - case PropelTypes::NUMERIC: - case PropelTypes::DECIMAL: - $size = $column->getSize(); - - return function () use ($generator, $size) { - return $generator->randomNumber($size + 2) / 100; - }; - case PropelTypes::TINYINT: - return function () { - return mt_rand(0, 127); - }; - case PropelTypes::SMALLINT: - return function () { - return mt_rand(0, 32767); - }; - case PropelTypes::INTEGER: - return function () { - return mt_rand(0, intval('2147483647')); - }; - case PropelTypes::BIGINT: - return function () { - return mt_rand(0, intval('9223372036854775807')); - }; - case PropelTypes::FLOAT: - return function () { - return mt_rand(0, intval('2147483647'))/mt_rand(1, intval('2147483647')); - }; - case PropelTypes::DOUBLE: - case PropelTypes::REAL: - return function () { - return mt_rand(0, intval('9223372036854775807'))/mt_rand(1, intval('9223372036854775807')); - }; - case PropelTypes::CHAR: - case PropelTypes::VARCHAR: - case PropelTypes::BINARY: - case PropelTypes::VARBINARY: - $size = $column->getSize(); - - return function () use ($generator, $size) { - return $generator->text($size); - }; - case PropelTypes::LONGVARCHAR: - case PropelTypes::LONGVARBINARY: - case PropelTypes::CLOB: - case PropelTypes::CLOB_EMU: - case PropelTypes::BLOB: - return function () use ($generator) { - return $generator->text; - }; - case PropelTypes::ENUM: - $valueSet = $column->getValueSet(); - - return function () use ($generator, $valueSet) { - return $generator->randomElement($valueSet); - }; - case PropelTypes::OBJECT: - case PropelTypes::PHP_ARRAY: - default: - // no smart way to guess what the user expects here - return null; - } - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/ORM/Propel2/EntityPopulator.php b/vendor/fzaninotto/faker/src/Faker/ORM/Propel2/EntityPopulator.php deleted file mode 100644 index df5b6710..00000000 --- a/vendor/fzaninotto/faker/src/Faker/ORM/Propel2/EntityPopulator.php +++ /dev/null @@ -1,192 +0,0 @@ -class = $class; - } - - /** - * @return string - */ - public function getClass() - { - return $this->class; - } - - public function setColumnFormatters($columnFormatters) - { - $this->columnFormatters = $columnFormatters; - } - - /** - * @return array - */ - public function getColumnFormatters() - { - return $this->columnFormatters; - } - - public function mergeColumnFormattersWith($columnFormatters) - { - $this->columnFormatters = array_merge($this->columnFormatters, $columnFormatters); - } - - /** - * @param \Faker\Generator $generator - * @return array - */ - public function guessColumnFormatters(\Faker\Generator $generator) - { - $formatters = array(); - $class = $this->class; - $peerClass = $class::TABLE_MAP; - $tableMap = $peerClass::getTableMap(); - $nameGuesser = new \Faker\Guesser\Name($generator); - $columnTypeGuesser = new \Faker\ORM\Propel2\ColumnTypeGuesser($generator); - foreach ($tableMap->getColumns() as $columnMap) { - // skip behavior columns, handled by modifiers - if ($this->isColumnBehavior($columnMap)) { - continue; - } - if ($columnMap->isForeignKey()) { - $relatedClass = $columnMap->getRelation()->getForeignTable()->getClassname(); - $formatters[$columnMap->getPhpName()] = function ($inserted) use ($relatedClass) { - $relatedClass = trim($relatedClass, "\\"); - return isset($inserted[$relatedClass]) ? $inserted[$relatedClass][mt_rand(0, count($inserted[$relatedClass]) - 1)] : null; - }; - continue; - } - if ($columnMap->isPrimaryKey()) { - continue; - } - if ($formatter = $nameGuesser->guessFormat($columnMap->getPhpName(), $columnMap->getSize())) { - $formatters[$columnMap->getPhpName()] = $formatter; - continue; - } - if ($formatter = $columnTypeGuesser->guessFormat($columnMap)) { - $formatters[$columnMap->getPhpName()] = $formatter; - continue; - } - } - - return $formatters; - } - - /** - * @param ColumnMap $columnMap - * @return bool - */ - protected function isColumnBehavior(ColumnMap $columnMap) - { - foreach ($columnMap->getTable()->getBehaviors() as $name => $params) { - $columnName = Base::toLower($columnMap->getName()); - switch ($name) { - case 'nested_set': - $columnNames = array($params['left_column'], $params['right_column'], $params['level_column']); - if (in_array($columnName, $columnNames)) { - return true; - } - break; - case 'timestampable': - $columnNames = array($params['create_column'], $params['update_column']); - if (in_array($columnName, $columnNames)) { - return true; - } - break; - } - } - - return false; - } - - public function setModifiers($modifiers) - { - $this->modifiers = $modifiers; - } - - /** - * @return array - */ - public function getModifiers() - { - return $this->modifiers; - } - - public function mergeModifiersWith($modifiers) - { - $this->modifiers = array_merge($this->modifiers, $modifiers); - } - - /** - * @param \Faker\Generator $generator - * @return array - */ - public function guessModifiers(\Faker\Generator $generator) - { - $modifiers = array(); - $class = $this->class; - $peerClass = $class::TABLE_MAP; - $tableMap = $peerClass::getTableMap(); - foreach ($tableMap->getBehaviors() as $name => $params) { - switch ($name) { - case 'nested_set': - $modifiers['nested_set'] = function ($obj, $inserted) use ($class, $generator) { - if (isset($inserted[$class])) { - $queryClass = $class . 'Query'; - $parent = $queryClass::create()->findPk($generator->randomElement($inserted[$class])); - $obj->insertAsLastChildOf($parent); - } else { - $obj->makeRoot(); - } - }; - break; - case 'sortable': - $modifiers['sortable'] = function ($obj, $inserted) use ($class) { - $maxRank = isset($inserted[$class]) ? count($inserted[$class]) : 0; - $obj->insertAtRank(mt_rand(1, $maxRank + 1)); - }; - break; - } - } - - return $modifiers; - } - - /** - * Insert one new record using the Entity class. - */ - public function execute($con, $insertedEntities) - { - $obj = new $this->class(); - foreach ($this->getColumnFormatters() as $column => $format) { - if (null !== $format) { - $obj->setByName($column, is_callable($format) ? $format($insertedEntities, $obj) : $format); - } - } - foreach ($this->getModifiers() as $modifier) { - $modifier($obj, $insertedEntities); - } - $obj->save($con); - - return $obj->getPrimaryKey(); - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/ORM/Propel2/Populator.php b/vendor/fzaninotto/faker/src/Faker/ORM/Propel2/Populator.php deleted file mode 100644 index c0efe3b8..00000000 --- a/vendor/fzaninotto/faker/src/Faker/ORM/Propel2/Populator.php +++ /dev/null @@ -1,92 +0,0 @@ -generator = $generator; - } - - /** - * Add an order for the generation of $number records for $entity. - * - * @param mixed $entity A Propel ActiveRecord classname, or a \Faker\ORM\Propel2\EntityPopulator instance - * @param int $number The number of entities to populate - */ - public function addEntity($entity, $number, $customColumnFormatters = array(), $customModifiers = array()) - { - if (!$entity instanceof \Faker\ORM\Propel2\EntityPopulator) { - $entity = new \Faker\ORM\Propel2\EntityPopulator($entity); - } - $entity->setColumnFormatters($entity->guessColumnFormatters($this->generator)); - if ($customColumnFormatters) { - $entity->mergeColumnFormattersWith($customColumnFormatters); - } - $entity->setModifiers($entity->guessModifiers($this->generator)); - if ($customModifiers) { - $entity->mergeModifiersWith($customModifiers); - } - $class = $entity->getClass(); - $this->entities[$class] = $entity; - $this->quantities[$class] = $number; - } - - /** - * Populate the database using all the Entity classes previously added. - * - * @param PropelPDO $con A Propel connection object - * - * @return array A list of the inserted PKs - */ - public function execute($con = null) - { - if (null === $con) { - $con = $this->getConnection(); - } - $isInstancePoolingEnabled = Propel::isInstancePoolingEnabled(); - Propel::disableInstancePooling(); - $insertedEntities = array(); - $con->beginTransaction(); - foreach ($this->quantities as $class => $number) { - for ($i=0; $i < $number; $i++) { - $insertedEntities[$class][]= $this->entities[$class]->execute($con, $insertedEntities); - } - } - $con->commit(); - if ($isInstancePoolingEnabled) { - Propel::enableInstancePooling(); - } - - return $insertedEntities; - } - - protected function getConnection() - { - // use the first connection available - $class = key($this->entities); - - if (!$class) { - throw new \RuntimeException('No class found from entities. Did you add entities to the Populator ?'); - } - - $peer = $class::TABLE_MAP; - - return Propel::getConnection($peer::DATABASE_NAME, ServiceContainerInterface::CONNECTION_WRITE); - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/ORM/Spot/ColumnTypeGuesser.php b/vendor/fzaninotto/faker/src/Faker/ORM/Spot/ColumnTypeGuesser.php deleted file mode 100644 index 716a9f28..00000000 --- a/vendor/fzaninotto/faker/src/Faker/ORM/Spot/ColumnTypeGuesser.php +++ /dev/null @@ -1,77 +0,0 @@ -generator = $generator; - } - - /** - * @param array $field - * @return \Closure|null - */ - public function guessFormat(array $field) - { - $generator = $this->generator; - $type = $field['type']; - switch ($type) { - case 'boolean': - return function () use ($generator) { - return $generator->boolean; - }; - case 'decimal': - $size = isset($field['precision']) ? $field['precision'] : 2; - - return function () use ($generator, $size) { - return $generator->randomNumber($size + 2) / 100; - }; - case 'smallint': - return function () use ($generator) { - return $generator->numberBetween(0, 65535); - }; - case 'integer': - return function () use ($generator) { - return $generator->numberBetween(0, intval('2147483647')); - }; - case 'bigint': - return function () use ($generator) { - return $generator->numberBetween(0, intval('18446744073709551615')); - }; - case 'float': - return function () use ($generator) { - return $generator->randomFloat(null, 0, intval('4294967295')); - }; - case 'string': - $size = isset($field['length']) ? $field['length'] : 255; - - return function () use ($generator, $size) { - return $generator->text($size); - }; - case 'text': - return function () use ($generator) { - return $generator->text; - }; - case 'datetime': - case 'date': - case 'time': - return function () use ($generator) { - return $generator->datetime; - }; - default: - // no smart way to guess what the user expects here - return null; - } - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/ORM/Spot/EntityPopulator.php b/vendor/fzaninotto/faker/src/Faker/ORM/Spot/EntityPopulator.php deleted file mode 100644 index ba5bddb5..00000000 --- a/vendor/fzaninotto/faker/src/Faker/ORM/Spot/EntityPopulator.php +++ /dev/null @@ -1,222 +0,0 @@ -mapper = $mapper; - $this->locator = $locator; - $this->useExistingData = $useExistingData; - } - - /** - * @return string - */ - public function getMapper() - { - return $this->mapper; - } - - /** - * @param $columnFormatters - */ - public function setColumnFormatters($columnFormatters) - { - $this->columnFormatters = $columnFormatters; - } - - /** - * @return array - */ - public function getColumnFormatters() - { - return $this->columnFormatters; - } - - /** - * @param $columnFormatters - */ - public function mergeColumnFormattersWith($columnFormatters) - { - $this->columnFormatters = array_merge($this->columnFormatters, $columnFormatters); - } - - /** - * @param array $modifiers - */ - public function setModifiers(array $modifiers) - { - $this->modifiers = $modifiers; - } - - /** - * @return array - */ - public function getModifiers() - { - return $this->modifiers; - } - - /** - * @param array $modifiers - */ - public function mergeModifiersWith(array $modifiers) - { - $this->modifiers = array_merge($this->modifiers, $modifiers); - } - - /** - * @param Generator $generator - * @return array - */ - public function guessColumnFormatters(Generator $generator) - { - $formatters = array(); - $nameGuesser = new Name($generator); - $columnTypeGuesser = new ColumnTypeGuesser($generator); - $fields = $this->mapper->fields(); - foreach ($fields as $fieldName => $field) { - if ($field['primary'] === true) { - continue; - } - if ($formatter = $nameGuesser->guessFormat($fieldName)) { - $formatters[$fieldName] = $formatter; - continue; - } - if ($formatter = $columnTypeGuesser->guessFormat($field)) { - $formatters[$fieldName] = $formatter; - continue; - } - } - $entityName = $this->mapper->entity(); - $entity = $this->mapper->build([]); - $relations = $entityName::relations($this->mapper, $entity); - foreach ($relations as $relation) { - // We don't need any other relation here. - if ($relation instanceof BelongsTo) { - - $fieldName = $relation->localKey(); - $entityName = $relation->entityName(); - $field = $fields[$fieldName]; - $required = $field['required']; - - $locator = $this->locator; - - $formatters[$fieldName] = function ($inserted) use ($required, $entityName, $locator) { - if (!empty($inserted[$entityName])) { - return $inserted[$entityName][mt_rand(0, count($inserted[$entityName]) - 1)]->get('id'); - } - - if ($required && $this->useExistingData) { - // We did not add anything like this, but it's required, - // So let's find something existing in DB. - $mapper = $locator->mapper($entityName); - $records = $mapper->all()->limit(self::RELATED_FETCH_COUNT)->toArray(); - if (empty($records)) { - return null; - } - $id = $records[mt_rand(0, count($records) - 1)]['id']; - - return $id; - } - - return null; - }; - - } - } - - return $formatters; - } - - /** - * Insert one new record using the Entity class. - * - * @param $insertedEntities - * @return string - */ - public function execute($insertedEntities) - { - $obj = $this->mapper->build([]); - - $this->fillColumns($obj, $insertedEntities); - $this->callMethods($obj, $insertedEntities); - - $this->mapper->insert($obj); - - - return $obj; - } - - /** - * @param $obj - * @param $insertedEntities - */ - private function fillColumns($obj, $insertedEntities) - { - foreach ($this->columnFormatters as $field => $format) { - if (null !== $format) { - $value = is_callable($format) ? $format($insertedEntities, $obj) : $format; - $obj->set($field, $value); - } - } - } - - /** - * @param $obj - * @param $insertedEntities - */ - private function callMethods($obj, $insertedEntities) - { - foreach ($this->getModifiers() as $modifier) { - $modifier($obj, $insertedEntities); - } - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/ORM/Spot/Populator.php b/vendor/fzaninotto/faker/src/Faker/ORM/Spot/Populator.php deleted file mode 100644 index c834b04c..00000000 --- a/vendor/fzaninotto/faker/src/Faker/ORM/Spot/Populator.php +++ /dev/null @@ -1,88 +0,0 @@ -generator = $generator; - $this->locator = $locator; - } - - /** - * Add an order for the generation of $number records for $entity. - * - * @param $entityName string Name of Entity object to generate - * @param $number int The number of entities to populate - * @param $customColumnFormatters array - * @param $customModifiers array - * @param $useExistingData bool Should we use existing rows (e.g. roles) to populate relations? - */ - public function addEntity( - $entityName, - $number, - $customColumnFormatters = array(), - $customModifiers = array(), - $useExistingData = false - ) { - $mapper = $this->locator->mapper($entityName); - if (null === $mapper) { - throw new \InvalidArgumentException("No mapper can be found for entity " . $entityName); - } - $entity = new EntityPopulator($mapper, $this->locator, $useExistingData); - - $entity->setColumnFormatters($entity->guessColumnFormatters($this->generator)); - if ($customColumnFormatters) { - $entity->mergeColumnFormattersWith($customColumnFormatters); - } - $entity->mergeModifiersWith($customModifiers); - - $this->entities[$entityName] = $entity; - $this->quantities[$entityName] = $number; - } - - /** - * Populate the database using all the Entity classes previously added. - * - * @param Locator $locator A Spot locator - * - * @return array A list of the inserted PKs - */ - public function execute($locator = null) - { - if (null === $locator) { - $locator = $this->locator; - } - if (null === $locator) { - throw new \InvalidArgumentException("No entity manager passed to Spot Populator."); - } - - $insertedEntities = array(); - foreach ($this->quantities as $entityName => $number) { - for ($i = 0; $i < $number; $i++) { - $insertedEntities[$entityName][] = $this->entities[$entityName]->execute( - $insertedEntities - ); - } - } - - return $insertedEntities; - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/Address.php b/vendor/fzaninotto/faker/src/Faker/Provider/Address.php deleted file mode 100644 index 24f538af..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/Address.php +++ /dev/null @@ -1,139 +0,0 @@ -generator->parse($format); - } - - /** - * @example 'Crist Parks' - */ - public function streetName() - { - $format = static::randomElement(static::$streetNameFormats); - - return $this->generator->parse($format); - } - - /** - * @example '791 Crist Parks' - */ - public function streetAddress() - { - $format = static::randomElement(static::$streetAddressFormats); - - return $this->generator->parse($format); - } - - /** - * @example 86039-9874 - */ - public static function postcode() - { - return static::toUpper(static::bothify(static::randomElement(static::$postcode))); - } - - /** - * @example '791 Crist Parks, Sashabury, IL 86039-9874' - */ - public function address() - { - $format = static::randomElement(static::$addressFormats); - - return $this->generator->parse($format); - } - - /** - * @example 'Japan' - */ - public static function country() - { - return static::randomElement(static::$country); - } - - /** - * @example '77.147489' - * @param float|int $min - * @param float|int $max - * @return float Uses signed degrees format (returns a float number between -90 and 90) - */ - public static function latitude($min = -90, $max = 90) - { - return static::randomFloat(6, $min, $max); - } - - /** - * @example '86.211205' - * @param float|int $min - * @param float|int $max - * @return float Uses signed degrees format (returns a float number between -180 and 180) - */ - public static function longitude($min = -180, $max = 180) - { - return static::randomFloat(6, $min, $max); - } - - /** - * @example array('77.147489', '86.211205') - * @return array | latitude, longitude - */ - public static function localCoordinates() - { - return array( - 'latitude' => static::latitude(), - 'longitude' => static::longitude() - ); - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/Barcode.php b/vendor/fzaninotto/faker/src/Faker/Provider/Barcode.php deleted file mode 100644 index 05759a34..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/Barcode.php +++ /dev/null @@ -1,114 +0,0 @@ - $digit) { - $sums += $digit * $sequence[$n % 2]; - } - return (10 - $sums % 10) % 10; - } - - /** - * ISBN-10 check digit - * @link http://en.wikipedia.org/wiki/International_Standard_Book_Number#ISBN-10_check_digits - * - * @param string $input ISBN without check-digit - * @throws \LengthException When wrong input length passed - * - * @return integer Check digit - */ - protected static function isbnChecksum($input) - { - // We're calculating check digit for ISBN-10 - // so, the length of the input should be 9 - $length = 9; - - if (strlen($input) !== $length) { - throw new \LengthException(sprintf('Input length should be equal to %d', $length)); - } - - $digits = str_split($input); - array_walk( - $digits, - function (&$digit, $position) { - $digit = (10 - $position) * $digit; - } - ); - $result = (11 - array_sum($digits) % 11) % 11; - - // 10 is replaced by X - return ($result < 10)?$result:'X'; - } - - /** - * Get a random EAN13 barcode. - * @return string - * @example '4006381333931' - */ - public function ean13() - { - return $this->ean(13); - } - - /** - * Get a random EAN8 barcode. - * @return string - * @example '73513537' - */ - public function ean8() - { - return $this->ean(8); - } - - /** - * Get a random ISBN-10 code - * @link http://en.wikipedia.org/wiki/International_Standard_Book_Number - * - * @return string - * @example '4881416324' - */ - public function isbn10() - { - $code = static::numerify(str_repeat('#', 9)); - - return $code . static::isbnChecksum($code); - } - - /** - * Get a random ISBN-13 code - * @link http://en.wikipedia.org/wiki/International_Standard_Book_Number - * - * @return string - * @example '9790404436093' - */ - public function isbn13() - { - $code = '97' . static::numberBetween(8, 9) . static::numerify(str_repeat('#', 9)); - - return $code . static::eanChecksum($code); - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/Base.php b/vendor/fzaninotto/faker/src/Faker/Provider/Base.php deleted file mode 100644 index fa321ee0..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/Base.php +++ /dev/null @@ -1,612 +0,0 @@ -generator = $generator; - } - - /** - * Returns a random number between 0 and 9 - * - * @return integer - */ - public static function randomDigit() - { - return mt_rand(0, 9); - } - - /** - * Returns a random number between 1 and 9 - * - * @return integer - */ - public static function randomDigitNotNull() - { - return mt_rand(1, 9); - } - - /** - * Generates a random digit, which cannot be $except - * - * @param int $except - * @return int - */ - public static function randomDigitNot($except) - { - $result = self::numberBetween(0, 8); - if ($result >= $except) { - $result++; - } - return $result; - } - - /** - * Returns a random integer with 0 to $nbDigits digits. - * - * The maximum value returned is mt_getrandmax() - * - * @param integer $nbDigits Defaults to a random number between 1 and 9 - * @param boolean $strict Whether the returned number should have exactly $nbDigits - * @example 79907610 - * - * @return integer - */ - public static function randomNumber($nbDigits = null, $strict = false) - { - if (!is_bool($strict)) { - throw new \InvalidArgumentException('randomNumber() generates numbers of fixed width. To generate numbers between two boundaries, use numberBetween() instead.'); - } - if (null === $nbDigits) { - $nbDigits = static::randomDigitNotNull(); - } - $max = pow(10, $nbDigits) - 1; - if ($max > mt_getrandmax()) { - throw new \InvalidArgumentException('randomNumber() can only generate numbers up to mt_getrandmax()'); - } - if ($strict) { - return mt_rand(pow(10, $nbDigits - 1), $max); - } - - return mt_rand(0, $max); - } - - /** - * Return a random float number - * - * @param int $nbMaxDecimals - * @param int|float $min - * @param int|float $max - * @example 48.8932 - * - * @return float - */ - public static function randomFloat($nbMaxDecimals = null, $min = 0, $max = null) - { - if (null === $nbMaxDecimals) { - $nbMaxDecimals = static::randomDigit(); - } - - if (null === $max) { - $max = static::randomNumber(); - if ($min > $max) { - $max = $min; - } - } - - if ($min > $max) { - $tmp = $min; - $min = $max; - $max = $tmp; - } - - return round($min + mt_rand() / mt_getrandmax() * ($max - $min), $nbMaxDecimals); - } - - /** - * Returns a random number between $int1 and $int2 (any order) - * - * @param integer $int1 default to 0 - * @param integer $int2 defaults to 32 bit max integer, ie 2147483647 - * @example 79907610 - * - * @return integer - */ - public static function numberBetween($int1 = 0, $int2 = 2147483647) - { - $min = $int1 < $int2 ? $int1 : $int2; - $max = $int1 < $int2 ? $int2 : $int1; - return mt_rand($min, $max); - } - - /** - * Returns the passed value - * - * @param mixed $value - * - * @return mixed - */ - public static function passthrough($value) - { - return $value; - } - - /** - * Returns a random letter from a to z - * - * @return string - */ - public static function randomLetter() - { - return chr(mt_rand(97, 122)); - } - - /** - * Returns a random ASCII character (excluding accents and special chars) - */ - public static function randomAscii() - { - return chr(mt_rand(33, 126)); - } - - /** - * Returns randomly ordered subsequence of $count elements from a provided array - * - * @param array $array Array to take elements from. Defaults to a-f - * @param integer $count Number of elements to take. - * @param boolean $allowDuplicates Allow elements to be picked several times. Defaults to false - * @throws \LengthException When requesting more elements than provided - * - * @return array New array with $count elements from $array - */ - public static function randomElements($array = array('a', 'b', 'c'), $count = 1, $allowDuplicates = false) - { - $traversables = array(); - - if ($array instanceof \Traversable) { - foreach ($array as $element) { - $traversables[] = $element; - } - } - - $arr = count($traversables) ? $traversables : $array; - - $allKeys = array_keys($arr); - $numKeys = count($allKeys); - - if (!$allowDuplicates && $numKeys < $count) { - throw new \LengthException(sprintf('Cannot get %d elements, only %d in array', $count, $numKeys)); - } - - $highKey = $numKeys - 1; - $keys = $elements = array(); - $numElements = 0; - - while ($numElements < $count) { - $num = mt_rand(0, $highKey); - - if (!$allowDuplicates) { - if (isset($keys[$num])) { - continue; - } - $keys[$num] = true; - } - - $elements[] = $arr[$allKeys[$num]]; - $numElements++; - } - - return $elements; - } - - /** - * Returns a random element from a passed array - * - * @param array $array - * @return mixed - */ - public static function randomElement($array = array('a', 'b', 'c')) - { - if (!$array || ($array instanceof \Traversable && !count($array))) { - return null; - } - $elements = static::randomElements($array, 1); - - return $elements[0]; - } - - /** - * Returns a random key from a passed associative array - * - * @param array $array - * @return int|string|null - */ - public static function randomKey($array = array()) - { - if (!$array) { - return null; - } - $keys = array_keys($array); - $key = $keys[mt_rand(0, count($keys) - 1)]; - - return $key; - } - - /** - * Returns a shuffled version of the argument. - * - * This function accepts either an array, or a string. - * - * @example $faker->shuffle([1, 2, 3]); // [2, 1, 3] - * @example $faker->shuffle('hello, world'); // 'rlo,h eold!lw' - * - * @see shuffleArray() - * @see shuffleString() - * - * @param array|string $arg The set to shuffle - * @return array|string The shuffled set - */ - public static function shuffle($arg = '') - { - if (is_array($arg)) { - return static::shuffleArray($arg); - } - if (is_string($arg)) { - return static::shuffleString($arg); - } - throw new \InvalidArgumentException('shuffle() only supports strings or arrays'); - } - - /** - * Returns a shuffled version of the array. - * - * This function does not mutate the original array. It uses the - * Fisher–Yates algorithm, which is unbiased, together with a Mersenne - * twister random generator. This function is therefore more random than - * PHP's shuffle() function, and it is seedable. - * - * @link http://en.wikipedia.org/wiki/Fisher%E2%80%93Yates_shuffle - * - * @example $faker->shuffleArray([1, 2, 3]); // [2, 1, 3] - * - * @param array $array The set to shuffle - * @return array The shuffled set - */ - public static function shuffleArray($array = array()) - { - $shuffledArray = array(); - $i = 0; - reset($array); - foreach ($array as $key => $value) { - if ($i == 0) { - $j = 0; - } else { - $j = mt_rand(0, $i); - } - if ($j == $i) { - $shuffledArray[]= $value; - } else { - $shuffledArray[]= $shuffledArray[$j]; - $shuffledArray[$j] = $value; - } - $i++; - } - return $shuffledArray; - } - - /** - * Returns a shuffled version of the string. - * - * This function does not mutate the original string. It uses the - * Fisher–Yates algorithm, which is unbiased, together with a Mersenne - * twister random generator. This function is therefore more random than - * PHP's shuffle() function, and it is seedable. Additionally, it is - * UTF8 safe if the mb extension is available. - * - * @link http://en.wikipedia.org/wiki/Fisher%E2%80%93Yates_shuffle - * - * @example $faker->shuffleString('hello, world'); // 'rlo,h eold!lw' - * - * @param string $string The set to shuffle - * @param string $encoding The string encoding (defaults to UTF-8) - * @return string The shuffled set - */ - public static function shuffleString($string = '', $encoding = 'UTF-8') - { - if (function_exists('mb_strlen')) { - // UTF8-safe str_split() - $array = array(); - $strlen = mb_strlen($string, $encoding); - for ($i = 0; $i < $strlen; $i++) { - $array []= mb_substr($string, $i, 1, $encoding); - } - } else { - $array = str_split($string, 1); - } - return implode('', static::shuffleArray($array)); - } - - private static function replaceWildcard($string, $wildcard = '#', $callback = 'static::randomDigit') - { - if (($pos = strpos($string, $wildcard)) === false) { - return $string; - } - for ($i = $pos, $last = strrpos($string, $wildcard, $pos) + 1; $i < $last; $i++) { - if ($string[$i] === $wildcard) { - $string[$i] = call_user_func($callback); - } - } - return $string; - } - - /** - * Replaces all hash sign ('#') occurrences with a random number - * Replaces all percentage sign ('%') occurrences with a not null number - * - * @param string $string String that needs to bet parsed - * @return string - */ - public static function numerify($string = '###') - { - // instead of using randomDigit() several times, which is slow, - // count the number of hashes and generate once a large number - $toReplace = array(); - if (($pos = strpos($string, '#')) !== false) { - for ($i = $pos, $last = strrpos($string, '#', $pos) + 1; $i < $last; $i++) { - if ($string[$i] === '#') { - $toReplace[] = $i; - } - } - } - if ($nbReplacements = count($toReplace)) { - $maxAtOnce = strlen((string) mt_getrandmax()) - 1; - $numbers = ''; - $i = 0; - while ($i < $nbReplacements) { - $size = min($nbReplacements - $i, $maxAtOnce); - $numbers .= str_pad(static::randomNumber($size), $size, '0', STR_PAD_LEFT); - $i += $size; - } - for ($i = 0; $i < $nbReplacements; $i++) { - $string[$toReplace[$i]] = $numbers[$i]; - } - } - $string = self::replaceWildcard($string, '%', 'static::randomDigitNotNull'); - - return $string; - } - - /** - * Replaces all question mark ('?') occurrences with a random letter - * - * @param string $string String that needs to bet parsed - * @return string - */ - public static function lexify($string = '????') - { - return self::replaceWildcard($string, '?', 'static::randomLetter'); - } - - /** - * Replaces hash signs ('#') and question marks ('?') with random numbers and letters - * An asterisk ('*') is replaced with either a random number or a random letter - * - * @param string $string String that needs to bet parsed - * @return string - */ - public static function bothify($string = '## ??') - { - $string = self::replaceWildcard($string, '*', function () { - return mt_rand(0, 1) ? '#' : '?'; - }); - return static::lexify(static::numerify($string)); - } - - /** - * Replaces * signs with random numbers and letters and special characters - * - * @example $faker->asciify(''********'); // "s5'G!uC3" - * - * @param string $string String that needs to bet parsed - * @return string - */ - public static function asciify($string = '****') - { - return preg_replace_callback('/\*/u', 'static::randomAscii', $string); - } - - /** - * Transforms a basic regular expression into a random string satisfying the expression. - * - * @example $faker->regexify('[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}'); // sm0@y8k96a.ej - * - * Regex delimiters '/.../' and begin/end markers '^...$' are ignored. - * - * Only supports a small subset of the regex syntax. For instance, - * unicode, negated classes, unbounded ranges, subpatterns, back references, - * assertions, recursive patterns, and comments are not supported. Escaping - * support is extremely fragile. - * - * This method is also VERY slow. Use it only when no other formatter - * can generate the fake data you want. For instance, prefer calling - * `$faker->email` rather than `regexify` with the previous regular - * expression. - * - * Also note than `bothify` can probably do most of what this method does, - * but much faster. For instance, for a dummy email generation, try - * `$faker->bothify('?????????@???.???')`. - * - * @see https://github.com/icomefromthenet/ReverseRegex for a more robust implementation - * - * @param string $regex A regular expression (delimiters are optional) - * @return string - */ - public static function regexify($regex = '') - { - // ditch the anchors - $regex = preg_replace('/^\/?\^?/', '', $regex); - $regex = preg_replace('/\$?\/?$/', '', $regex); - // All {2} become {2,2} - $regex = preg_replace('/\{(\d+)\}/', '{\1,\1}', $regex); - // Single-letter quantifiers (?, *, +) become bracket quantifiers ({0,1}, {0,rand}, {1, rand}) - $regex = preg_replace('/(? 0 && $weight < 1 && mt_rand() / mt_getrandmax() <= $weight) { - return $this->generator; - } - - // new system with percentage - if (is_int($weight) && mt_rand(1, 100) <= $weight) { - return $this->generator; - } - - return new DefaultGenerator($default); - } - - /** - * Chainable method for making any formatter unique. - * - * - * // will never return twice the same value - * $faker->unique()->randomElement(array(1, 2, 3)); - * - * - * @param boolean $reset If set to true, resets the list of existing values - * @param integer $maxRetries Maximum number of retries to find a unique value, - * After which an OverflowException is thrown. - * @throws \OverflowException When no unique value can be found by iterating $maxRetries times - * - * @return UniqueGenerator A proxy class returning only non-existing values - */ - public function unique($reset = false, $maxRetries = 10000) - { - if ($reset || !$this->unique) { - $this->unique = new UniqueGenerator($this->generator, $maxRetries); - } - - return $this->unique; - } - - /** - * Chainable method for forcing any formatter to return only valid values. - * - * The value validity is determined by a function passed as first argument. - * - * - * $values = array(); - * $evenValidator = function ($digit) { - * return $digit % 2 === 0; - * }; - * for ($i=0; $i < 10; $i++) { - * $values []= $faker->valid($evenValidator)->randomDigit; - * } - * print_r($values); // [0, 4, 8, 4, 2, 6, 0, 8, 8, 6] - * - * - * @param Closure $validator A function returning true for valid values - * @param integer $maxRetries Maximum number of retries to find a unique value, - * After which an OverflowException is thrown. - * @throws \OverflowException When no valid value can be found by iterating $maxRetries times - * - * @return ValidGenerator A proxy class returning only valid values - */ - public function valid($validator = null, $maxRetries = 10000) - { - return new ValidGenerator($this->generator, $validator, $maxRetries); - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/Biased.php b/vendor/fzaninotto/faker/src/Faker/Provider/Biased.php deleted file mode 100644 index b9e3f082..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/Biased.php +++ /dev/null @@ -1,64 +0,0 @@ -generator->parse($format); - } - - /** - * @example 'Ltd' - */ - public static function companySuffix() - { - return static::randomElement(static::$companySuffix); - } - - /** - * @example 'Job' - */ - public function jobTitle() - { - $format = static::randomElement(static::$jobTitleFormat); - - return $this->generator->parse($format); - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/DateTime.php b/vendor/fzaninotto/faker/src/Faker/Provider/DateTime.php deleted file mode 100644 index fb0f474b..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/DateTime.php +++ /dev/null @@ -1,340 +0,0 @@ -getTimestamp(); - } - - return strtotime(empty($max) ? 'now' : $max); - } - - /** - * Get a timestamp between January 1, 1970 and now - * - * @param \DateTime|int|string $max maximum timestamp used as random end limit, default to "now" - * @return int - * - * @example 1061306726 - */ - public static function unixTime($max = 'now') - { - return mt_rand(0, static::getMaxTimestamp($max)); - } - - /** - * Get a datetime object for a date between January 1, 1970 and now - * - * @param \DateTime|int|string $max maximum timestamp used as random end limit, default to "now" - * @param string $timezone time zone in which the date time should be set, default to DateTime::$defaultTimezone, if set, otherwise the result of `date_default_timezone_get` - * @example DateTime('2005-08-16 20:39:21') - * @return \DateTime - * @see http://php.net/manual/en/timezones.php - * @see http://php.net/manual/en/function.date-default-timezone-get.php - */ - public static function dateTime($max = 'now', $timezone = null) - { - return static::setTimezone( - new \DateTime('@' . static::unixTime($max)), - $timezone - ); - } - - /** - * Get a datetime object for a date between January 1, 001 and now - * - * @param \DateTime|int|string $max maximum timestamp used as random end limit, default to "now" - * @param string|null $timezone time zone in which the date time should be set, default to DateTime::$defaultTimezone, if set, otherwise the result of `date_default_timezone_get` - * @example DateTime('1265-03-22 21:15:52') - * @return \DateTime - * @see http://php.net/manual/en/timezones.php - * @see http://php.net/manual/en/function.date-default-timezone-get.php - */ - public static function dateTimeAD($max = 'now', $timezone = null) - { - $min = (PHP_INT_SIZE>4 ? -62135597361 : -PHP_INT_MAX); - return static::setTimezone( - new \DateTime('@' . mt_rand($min, static::getMaxTimestamp($max))), - $timezone - ); - } - - /** - * get a date string formatted with ISO8601 - * - * @param \DateTime|int|string $max maximum timestamp used as random end limit, default to "now" - * @return string - * @example '2003-10-21T16:05:52+0000' - */ - public static function iso8601($max = 'now') - { - return static::date(\DateTime::ISO8601, $max); - } - - /** - * Get a date string between January 1, 1970 and now - * - * @param string $format - * @param \DateTime|int|string $max maximum timestamp used as random end limit, default to "now" - * @return string - * @example '2008-11-27' - */ - public static function date($format = 'Y-m-d', $max = 'now') - { - return static::dateTime($max)->format($format); - } - - /** - * Get a time string (24h format by default) - * - * @param string $format - * @param \DateTime|int|string $max maximum timestamp used as random end limit, default to "now" - * @return string - * @example '15:02:34' - */ - public static function time($format = 'H:i:s', $max = 'now') - { - return static::dateTime($max)->format($format); - } - - /** - * Get a DateTime object based on a random date between two given dates. - * Accepts date strings that can be recognized by strtotime(). - * - * @param \DateTime|string $startDate Defaults to 30 years ago - * @param \DateTime|string $endDate Defaults to "now" - * @param string|null $timezone time zone in which the date time should be set, default to DateTime::$defaultTimezone, if set, otherwise the result of `date_default_timezone_get` - * @example DateTime('1999-02-02 11:42:52') - * @return \DateTime - * @see http://php.net/manual/en/timezones.php - * @see http://php.net/manual/en/function.date-default-timezone-get.php - */ - public static function dateTimeBetween($startDate = '-30 years', $endDate = 'now', $timezone = null) - { - $startTimestamp = $startDate instanceof \DateTime ? $startDate->getTimestamp() : strtotime($startDate); - $endTimestamp = static::getMaxTimestamp($endDate); - - if ($startTimestamp > $endTimestamp) { - throw new \InvalidArgumentException('Start date must be anterior to end date.'); - } - - $timestamp = mt_rand($startTimestamp, $endTimestamp); - - return static::setTimezone( - new \DateTime('@' . $timestamp), - $timezone - ); - } - - /** - * Get a DateTime object based on a random date between one given date and - * an interval - * Accepts date string that can be recognized by strtotime(). - * - * @param string $date Defaults to 30 years ago - * @param string $interval Defaults to 5 days after - * @param string|null $timezone time zone in which the date time should be set, default to DateTime::$defaultTimezone, if set, otherwise the result of `date_default_timezone_get` - * @example dateTimeInInterval('1999-02-02 11:42:52', '+ 5 days') - * @return \DateTime - * @see http://php.net/manual/en/timezones.php - * @see http://php.net/manual/en/function.date-default-timezone-get.php - */ - public static function dateTimeInInterval($date = '-30 years', $interval = '+5 days', $timezone = null) - { - $intervalObject = \DateInterval::createFromDateString($interval); - $datetime = $date instanceof \DateTime ? $date : new \DateTime($date); - $otherDatetime = clone $datetime; - $otherDatetime->add($intervalObject); - - $begin = $datetime > $otherDatetime ? $otherDatetime : $datetime; - $end = $datetime===$begin ? $otherDatetime : $datetime; - - return static::dateTimeBetween( - $begin, - $end, - $timezone - ); - } - - /** - * @param \DateTime|int|string $max maximum timestamp used as random end limit, default to "now" - * @param string|null $timezone time zone in which the date time should be set, default to DateTime::$defaultTimezone, if set, otherwise the result of `date_default_timezone_get` - * @example DateTime('1964-04-04 11:02:02') - * @return \DateTime - */ - public static function dateTimeThisCentury($max = 'now', $timezone = null) - { - return static::dateTimeBetween('-100 year', $max, $timezone); - } - - /** - * @param \DateTime|int|string $max maximum timestamp used as random end limit, default to "now" - * @param string|null $timezone time zone in which the date time should be set, default to DateTime::$defaultTimezone, if set, otherwise the result of `date_default_timezone_get` - * @example DateTime('2010-03-10 05:18:58') - * @return \DateTime - */ - public static function dateTimeThisDecade($max = 'now', $timezone = null) - { - return static::dateTimeBetween('-10 year', $max, $timezone); - } - - /** - * @param \DateTime|int|string $max maximum timestamp used as random end limit, default to "now" - * @param string|null $timezone time zone in which the date time should be set, default to DateTime::$defaultTimezone, if set, otherwise the result of `date_default_timezone_get` - * @example DateTime('2011-09-19 09:24:37') - * @return \DateTime - */ - public static function dateTimeThisYear($max = 'now', $timezone = null) - { - return static::dateTimeBetween('-1 year', $max, $timezone); - } - - /** - * @param \DateTime|int|string $max maximum timestamp used as random end limit, default to "now" - * @param string|null $timezone time zone in which the date time should be set, default to DateTime::$defaultTimezone, if set, otherwise the result of `date_default_timezone_get` - * @example DateTime('2011-10-05 12:51:46') - * @return \DateTime - */ - public static function dateTimeThisMonth($max = 'now', $timezone = null) - { - return static::dateTimeBetween('-1 month', $max, $timezone); - } - - /** - * @param \DateTime|int|string $max maximum timestamp used as random end limit, default to "now" - * @return string - * @example 'am' - */ - public static function amPm($max = 'now') - { - return static::dateTime($max)->format('a'); - } - - /** - * @param \DateTime|int|string $max maximum timestamp used as random end limit, default to "now" - * @return string - * @example '22' - */ - public static function dayOfMonth($max = 'now') - { - return static::dateTime($max)->format('d'); - } - - /** - * @param \DateTime|int|string $max maximum timestamp used as random end limit, default to "now" - * @return string - * @example 'Tuesday' - */ - public static function dayOfWeek($max = 'now') - { - return static::dateTime($max)->format('l'); - } - - /** - * @param \DateTime|int|string $max maximum timestamp used as random end limit, default to "now" - * @return string - * @example '7' - */ - public static function month($max = 'now') - { - return static::dateTime($max)->format('m'); - } - - /** - * @param \DateTime|int|string $max maximum timestamp used as random end limit, default to "now" - * @return string - * @example 'September' - */ - public static function monthName($max = 'now') - { - return static::dateTime($max)->format('F'); - } - - /** - * @param \DateTime|int|string $max maximum timestamp used as random end limit, default to "now" - * @return string - * @example '1673' - */ - public static function year($max = 'now') - { - return static::dateTime($max)->format('Y'); - } - - /** - * @return string - * @example 'XVII' - */ - public static function century() - { - return static::randomElement(static::$century); - } - - /** - * @return string - * @example 'Europe/Paris' - */ - public static function timezone() - { - return static::randomElement(\DateTimeZone::listIdentifiers()); - } - - /** - * Internal method to set the time zone on a DateTime. - * - * @param \DateTime $dt - * @param string|null $timezone - * - * @return \DateTime - */ - private static function setTimezone(\DateTime $dt, $timezone) - { - return $dt->setTimezone(new \DateTimeZone(static::resolveTimezone($timezone))); - } - - /** - * Sets default time zone. - * - * @param string $timezone - * - * @return void - */ - public static function setDefaultTimezone($timezone = null) - { - static::$defaultTimezone = $timezone; - } - - /** - * Gets default time zone. - * - * @return string|null - */ - public static function getDefaultTimezone() - { - return static::$defaultTimezone; - } - - /** - * @param string|null $timezone - * @return null|string - */ - private static function resolveTimezone($timezone) - { - return ((null === $timezone) ? ((null === static::$defaultTimezone) ? date_default_timezone_get() : static::$defaultTimezone) : $timezone); - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/File.php b/vendor/fzaninotto/faker/src/Faker/Provider/File.php deleted file mode 100644 index ba015946..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/File.php +++ /dev/null @@ -1,606 +0,0 @@ - file extension(s) - * @link http://svn.apache.org/repos/asf/httpd/httpd/trunk/docs/conf/mime.types - */ - protected static $mimeTypes = array( - 'application/atom+xml' => 'atom', - 'application/ecmascript' => 'ecma', - 'application/emma+xml' => 'emma', - 'application/epub+zip' => 'epub', - 'application/java-archive' => 'jar', - 'application/java-vm' => 'class', - 'application/javascript' => 'js', - 'application/json' => 'json', - 'application/jsonml+json' => 'jsonml', - 'application/lost+xml' => 'lostxml', - 'application/mathml+xml' => 'mathml', - 'application/mets+xml' => 'mets', - 'application/mods+xml' => 'mods', - 'application/mp4' => 'mp4s', - 'application/msword' => array('doc', 'dot'), - 'application/octet-stream' => array( - 'bin', - 'dms', - 'lrf', - 'mar', - 'so', - 'dist', - 'distz', - 'pkg', - 'bpk', - 'dump', - 'elc', - 'deploy' - ), - 'application/ogg' => 'ogx', - 'application/omdoc+xml' => 'omdoc', - 'application/pdf' => 'pdf', - 'application/pgp-encrypted' => 'pgp', - 'application/pgp-signature' => array('asc', 'sig'), - 'application/pkix-pkipath' => 'pkipath', - 'application/pkixcmp' => 'pki', - 'application/pls+xml' => 'pls', - 'application/postscript' => array('ai', 'eps', 'ps'), - 'application/pskc+xml' => 'pskcxml', - 'application/rdf+xml' => 'rdf', - 'application/reginfo+xml' => 'rif', - 'application/rss+xml' => 'rss', - 'application/rtf' => 'rtf', - 'application/sbml+xml' => 'sbml', - 'application/vnd.adobe.air-application-installer-package+zip' => 'air', - 'application/vnd.adobe.xdp+xml' => 'xdp', - 'application/vnd.adobe.xfdf' => 'xfdf', - 'application/vnd.ahead.space' => 'ahead', - 'application/vnd.dart' => 'dart', - 'application/vnd.data-vision.rdz' => 'rdz', - 'application/vnd.dece.data' => array('uvf', 'uvvf', 'uvd', 'uvvd'), - 'application/vnd.dece.ttml+xml' => array('uvt', 'uvvt'), - 'application/vnd.dece.unspecified' => array('uvx', 'uvvx'), - 'application/vnd.dece.zip' => array('uvz', 'uvvz'), - 'application/vnd.denovo.fcselayout-link' => 'fe_launch', - 'application/vnd.dna' => 'dna', - 'application/vnd.dolby.mlp' => 'mlp', - 'application/vnd.dpgraph' => 'dpg', - 'application/vnd.dreamfactory' => 'dfac', - 'application/vnd.ds-keypoint' => 'kpxx', - 'application/vnd.dvb.ait' => 'ait', - 'application/vnd.dvb.service' => 'svc', - 'application/vnd.dynageo' => 'geo', - 'application/vnd.ecowin.chart' => 'mag', - 'application/vnd.enliven' => 'nml', - 'application/vnd.epson.esf' => 'esf', - 'application/vnd.epson.msf' => 'msf', - 'application/vnd.epson.quickanime' => 'qam', - 'application/vnd.epson.salt' => 'slt', - 'application/vnd.epson.ssf' => 'ssf', - 'application/vnd.ezpix-album' => 'ez2', - 'application/vnd.ezpix-package' => 'ez3', - 'application/vnd.fdf' => 'fdf', - 'application/vnd.fdsn.mseed' => 'mseed', - 'application/vnd.fdsn.seed' => array('seed', 'dataless'), - 'application/vnd.flographit' => 'gph', - 'application/vnd.fluxtime.clip' => 'ftc', - 'application/vnd.hal+xml' => 'hal', - 'application/vnd.hydrostatix.sof-data' => 'sfd-hdstx', - 'application/vnd.ibm.minipay' => 'mpy', - 'application/vnd.ibm.secure-container' => 'sc', - 'application/vnd.iccprofile' => array('icc', 'icm'), - 'application/vnd.igloader' => 'igl', - 'application/vnd.immervision-ivp' => 'ivp', - 'application/vnd.kde.karbon' => 'karbon', - 'application/vnd.kde.kchart' => 'chrt', - 'application/vnd.kde.kformula' => 'kfo', - 'application/vnd.kde.kivio' => 'flw', - 'application/vnd.kde.kontour' => 'kon', - 'application/vnd.kde.kpresenter' => array('kpr', 'kpt'), - 'application/vnd.kde.kspread' => 'ksp', - 'application/vnd.kde.kword' => array('kwd', 'kwt'), - 'application/vnd.kenameaapp' => 'htke', - 'application/vnd.kidspiration' => 'kia', - 'application/vnd.kinar' => array('kne', 'knp'), - 'application/vnd.koan' => array('skp', 'skd', 'skt', 'skm'), - 'application/vnd.kodak-descriptor' => 'sse', - 'application/vnd.las.las+xml' => 'lasxml', - 'application/vnd.llamagraphics.life-balance.desktop' => 'lbd', - 'application/vnd.llamagraphics.life-balance.exchange+xml' => 'lbe', - 'application/vnd.lotus-1-2-3' => '123', - 'application/vnd.lotus-approach' => 'apr', - 'application/vnd.lotus-freelance' => 'pre', - 'application/vnd.lotus-notes' => 'nsf', - 'application/vnd.lotus-organizer' => 'org', - 'application/vnd.lotus-screencam' => 'scm', - 'application/vnd.mozilla.xul+xml' => 'xul', - 'application/vnd.ms-artgalry' => 'cil', - 'application/vnd.ms-cab-compressed' => 'cab', - 'application/vnd.ms-excel' => array( - 'xls', - 'xlm', - 'xla', - 'xlc', - 'xlt', - 'xlw' - ), - 'application/vnd.ms-excel.addin.macroenabled.12' => 'xlam', - 'application/vnd.ms-excel.sheet.binary.macroenabled.12' => 'xlsb', - 'application/vnd.ms-excel.sheet.macroenabled.12' => 'xlsm', - 'application/vnd.ms-excel.template.macroenabled.12' => 'xltm', - 'application/vnd.ms-fontobject' => 'eot', - 'application/vnd.ms-htmlhelp' => 'chm', - 'application/vnd.ms-ims' => 'ims', - 'application/vnd.ms-lrm' => 'lrm', - 'application/vnd.ms-officetheme' => 'thmx', - 'application/vnd.ms-pki.seccat' => 'cat', - 'application/vnd.ms-pki.stl' => 'stl', - 'application/vnd.ms-powerpoint' => array('ppt', 'pps', 'pot'), - 'application/vnd.ms-powerpoint.addin.macroenabled.12' => 'ppam', - 'application/vnd.ms-powerpoint.presentation.macroenabled.12' => 'pptm', - 'application/vnd.ms-powerpoint.slide.macroenabled.12' => 'sldm', - 'application/vnd.ms-powerpoint.slideshow.macroenabled.12' => 'ppsm', - 'application/vnd.ms-powerpoint.template.macroenabled.12' => 'potm', - 'application/vnd.ms-project' => array('mpp', 'mpt'), - 'application/vnd.ms-word.document.macroenabled.12' => 'docm', - 'application/vnd.ms-word.template.macroenabled.12' => 'dotm', - 'application/vnd.ms-works' => array('wps', 'wks', 'wcm', 'wdb'), - 'application/vnd.ms-wpl' => 'wpl', - 'application/vnd.ms-xpsdocument' => 'xps', - 'application/vnd.mseq' => 'mseq', - 'application/vnd.musician' => 'mus', - 'application/vnd.oasis.opendocument.chart' => 'odc', - 'application/vnd.oasis.opendocument.chart-template' => 'otc', - 'application/vnd.oasis.opendocument.database' => 'odb', - 'application/vnd.oasis.opendocument.formula' => 'odf', - 'application/vnd.oasis.opendocument.formula-template' => 'odft', - 'application/vnd.oasis.opendocument.graphics' => 'odg', - 'application/vnd.oasis.opendocument.graphics-template' => 'otg', - 'application/vnd.oasis.opendocument.image' => 'odi', - 'application/vnd.oasis.opendocument.image-template' => 'oti', - 'application/vnd.oasis.opendocument.presentation' => 'odp', - 'application/vnd.oasis.opendocument.presentation-template' => 'otp', - 'application/vnd.oasis.opendocument.spreadsheet' => 'ods', - 'application/vnd.oasis.opendocument.spreadsheet-template' => 'ots', - 'application/vnd.oasis.opendocument.text' => 'odt', - 'application/vnd.oasis.opendocument.text-master' => 'odm', - 'application/vnd.oasis.opendocument.text-template' => 'ott', - 'application/vnd.oasis.opendocument.text-web' => 'oth', - 'application/vnd.olpc-sugar' => 'xo', - 'application/vnd.oma.dd2+xml' => 'dd2', - 'application/vnd.openofficeorg.extension' => 'oxt', - 'application/vnd.openxmlformats-officedocument.presentationml.presentation' => 'pptx', - 'application/vnd.openxmlformats-officedocument.presentationml.slide' => 'sldx', - 'application/vnd.openxmlformats-officedocument.presentationml.slideshow' => 'ppsx', - 'application/vnd.openxmlformats-officedocument.presentationml.template' => 'potx', - 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' => 'xlsx', - 'application/vnd.openxmlformats-officedocument.spreadsheetml.template' => 'xltx', - 'application/vnd.openxmlformats-officedocument.wordprocessingml.document' => 'docx', - 'application/vnd.openxmlformats-officedocument.wordprocessingml.template' => 'dotx', - 'application/vnd.pvi.ptid1' => 'ptid', - 'application/vnd.quark.quarkxpress' => array( - 'qxd', - 'qxt', - 'qwd', - 'qwt', - 'qxl', - 'qxb' - ), - 'application/vnd.realvnc.bed' => 'bed', - 'application/vnd.recordare.musicxml' => 'mxl', - 'application/vnd.recordare.musicxml+xml' => 'musicxml', - 'application/vnd.rig.cryptonote' => 'cryptonote', - 'application/vnd.rim.cod' => 'cod', - 'application/vnd.rn-realmedia' => 'rm', - 'application/vnd.rn-realmedia-vbr' => 'rmvb', - 'application/vnd.route66.link66+xml' => 'link66', - 'application/vnd.sailingtracker.track' => 'st', - 'application/vnd.seemail' => 'see', - 'application/vnd.sema' => 'sema', - 'application/vnd.semd' => 'semd', - 'application/vnd.semf' => 'semf', - 'application/vnd.shana.informed.formdata' => 'ifm', - 'application/vnd.shana.informed.formtemplate' => 'itp', - 'application/vnd.shana.informed.interchange' => 'iif', - 'application/vnd.shana.informed.package' => 'ipk', - 'application/vnd.simtech-mindmapper' => array('twd', 'twds'), - 'application/vnd.smaf' => 'mmf', - 'application/vnd.stepmania.stepchart' => 'sm', - 'application/vnd.sun.xml.calc' => 'sxc', - 'application/vnd.sun.xml.calc.template' => 'stc', - 'application/vnd.sun.xml.draw' => 'sxd', - 'application/vnd.sun.xml.draw.template' => 'std', - 'application/vnd.sun.xml.impress' => 'sxi', - 'application/vnd.sun.xml.impress.template' => 'sti', - 'application/vnd.sun.xml.math' => 'sxm', - 'application/vnd.sun.xml.writer' => 'sxw', - 'application/vnd.sun.xml.writer.global' => 'sxg', - 'application/vnd.sun.xml.writer.template' => 'stw', - 'application/vnd.sus-calendar' => array('sus', 'susp'), - 'application/vnd.svd' => 'svd', - 'application/vnd.symbian.install' => array('sis', 'sisx'), - 'application/vnd.syncml+xml' => 'xsm', - 'application/vnd.syncml.dm+wbxml' => 'bdm', - 'application/vnd.syncml.dm+xml' => 'xdm', - 'application/vnd.tao.intent-module-archive' => 'tao', - 'application/vnd.tcpdump.pcap' => array('pcap', 'cap', 'dmp'), - 'application/vnd.tmobile-livetv' => 'tmo', - 'application/vnd.trid.tpt' => 'tpt', - 'application/vnd.triscape.mxs' => 'mxs', - 'application/vnd.trueapp' => 'tra', - 'application/vnd.ufdl' => array('ufd', 'ufdl'), - 'application/vnd.uiq.theme' => 'utz', - 'application/vnd.umajin' => 'umj', - 'application/vnd.unity' => 'unityweb', - 'application/vnd.uoml+xml' => 'uoml', - 'application/vnd.vcx' => 'vcx', - 'application/vnd.visio' => array('vsd', 'vst', 'vss', 'vsw'), - 'application/vnd.visionary' => 'vis', - 'application/vnd.vsf' => 'vsf', - 'application/vnd.wap.wbxml' => 'wbxml', - 'application/vnd.wap.wmlc' => 'wmlc', - 'application/vnd.wap.wmlscriptc' => 'wmlsc', - 'application/vnd.webturbo' => 'wtb', - 'application/vnd.wolfram.player' => 'nbp', - 'application/vnd.wordperfect' => 'wpd', - 'application/vnd.wqd' => 'wqd', - 'application/vnd.wt.stf' => 'stf', - 'application/vnd.xara' => 'xar', - 'application/vnd.xfdl' => 'xfdl', - 'application/voicexml+xml' => 'vxml', - 'application/widget' => 'wgt', - 'application/winhlp' => 'hlp', - 'application/wsdl+xml' => 'wsdl', - 'application/wspolicy+xml' => 'wspolicy', - 'application/x-7z-compressed' => '7z', - 'application/x-bittorrent' => 'torrent', - 'application/x-blorb' => array('blb', 'blorb'), - 'application/x-bzip' => 'bz', - 'application/x-cdlink' => 'vcd', - 'application/x-cfs-compressed' => 'cfs', - 'application/x-chat' => 'chat', - 'application/x-chess-pgn' => 'pgn', - 'application/x-conference' => 'nsc', - 'application/x-cpio' => 'cpio', - 'application/x-csh' => 'csh', - 'application/x-debian-package' => array('deb', 'udeb'), - 'application/x-dgc-compressed' => 'dgc', - 'application/x-director' => array( - 'dir', - 'dcr', - 'dxr', - 'cst', - 'cct', - 'cxt', - 'w3d', - 'fgd', - 'swa' - ), - 'application/x-font-ttf' => array('ttf', 'ttc'), - 'application/x-font-type1' => array('pfa', 'pfb', 'pfm', 'afm'), - 'application/x-font-woff' => 'woff', - 'application/x-freearc' => 'arc', - 'application/x-futuresplash' => 'spl', - 'application/x-gca-compressed' => 'gca', - 'application/x-glulx' => 'ulx', - 'application/x-gnumeric' => 'gnumeric', - 'application/x-gramps-xml' => 'gramps', - 'application/x-gtar' => 'gtar', - 'application/x-hdf' => 'hdf', - 'application/x-install-instructions' => 'install', - 'application/x-iso9660-image' => 'iso', - 'application/x-java-jnlp-file' => 'jnlp', - 'application/x-latex' => 'latex', - 'application/x-lzh-compressed' => array('lzh', 'lha'), - 'application/x-mie' => 'mie', - 'application/x-mobipocket-ebook' => array('prc', 'mobi'), - 'application/x-ms-application' => 'application', - 'application/x-ms-shortcut' => 'lnk', - 'application/x-ms-wmd' => 'wmd', - 'application/x-ms-wmz' => 'wmz', - 'application/x-ms-xbap' => 'xbap', - 'application/x-msaccess' => 'mdb', - 'application/x-msbinder' => 'obd', - 'application/x-mscardfile' => 'crd', - 'application/x-msclip' => 'clp', - 'application/x-msdownload' => array('exe', 'dll', 'com', 'bat', 'msi'), - 'application/x-msmediaview' => array( - 'mvb', - 'm13', - 'm14' - ), - 'application/x-msmetafile' => array('wmf', 'wmz', 'emf', 'emz'), - 'application/x-rar-compressed' => 'rar', - 'application/x-research-info-systems' => 'ris', - 'application/x-sh' => 'sh', - 'application/x-shar' => 'shar', - 'application/x-shockwave-flash' => 'swf', - 'application/x-silverlight-app' => 'xap', - 'application/x-sql' => 'sql', - 'application/x-stuffit' => 'sit', - 'application/x-stuffitx' => 'sitx', - 'application/x-subrip' => 'srt', - 'application/x-sv4cpio' => 'sv4cpio', - 'application/x-sv4crc' => 'sv4crc', - 'application/x-t3vm-image' => 't3', - 'application/x-tads' => 'gam', - 'application/x-tar' => 'tar', - 'application/x-tcl' => 'tcl', - 'application/x-tex' => 'tex', - 'application/x-tex-tfm' => 'tfm', - 'application/x-texinfo' => array('texinfo', 'texi'), - 'application/x-tgif' => 'obj', - 'application/x-ustar' => 'ustar', - 'application/x-wais-source' => 'src', - 'application/x-x509-ca-cert' => array('der', 'crt'), - 'application/x-xfig' => 'fig', - 'application/x-xliff+xml' => 'xlf', - 'application/x-xpinstall' => 'xpi', - 'application/x-xz' => 'xz', - 'application/x-zmachine' => 'z1', - 'application/xaml+xml' => 'xaml', - 'application/xcap-diff+xml' => 'xdf', - 'application/xenc+xml' => 'xenc', - 'application/xhtml+xml' => array('xhtml', 'xht'), - 'application/xml' => array('xml', 'xsl'), - 'application/xml-dtd' => 'dtd', - 'application/xop+xml' => 'xop', - 'application/xproc+xml' => 'xpl', - 'application/xslt+xml' => 'xslt', - 'application/xspf+xml' => 'xspf', - 'application/xv+xml' => array('mxml', 'xhvml', 'xvml', 'xvm'), - 'application/yang' => 'yang', - 'application/yin+xml' => 'yin', - 'application/zip' => 'zip', - 'audio/adpcm' => 'adp', - 'audio/basic' => array('au', 'snd'), - 'audio/midi' => array('mid', 'midi', 'kar', 'rmi'), - 'audio/mp4' => 'mp4a', - 'audio/mpeg' => array( - 'mpga', - 'mp2', - 'mp2a', - 'mp3', - 'm2a', - 'm3a' - ), - 'audio/ogg' => array('oga', 'ogg', 'spx'), - 'audio/vnd.dece.audio' => array('uva', 'uvva'), - 'audio/vnd.rip' => 'rip', - 'audio/webm' => 'weba', - 'audio/x-aac' => 'aac', - 'audio/x-aiff' => array('aif', 'aiff', 'aifc'), - 'audio/x-caf' => 'caf', - 'audio/x-flac' => 'flac', - 'audio/x-matroska' => 'mka', - 'audio/x-mpegurl' => 'm3u', - 'audio/x-ms-wax' => 'wax', - 'audio/x-ms-wma' => 'wma', - 'audio/x-pn-realaudio' => array('ram', 'ra'), - 'audio/x-pn-realaudio-plugin' => 'rmp', - 'audio/x-wav' => 'wav', - 'audio/xm' => 'xm', - 'image/bmp' => 'bmp', - 'image/cgm' => 'cgm', - 'image/g3fax' => 'g3', - 'image/gif' => 'gif', - 'image/ief' => 'ief', - 'image/jpeg' => array('jpeg', 'jpg', 'jpe'), - 'image/ktx' => 'ktx', - 'image/png' => 'png', - 'image/prs.btif' => 'btif', - 'image/sgi' => 'sgi', - 'image/svg+xml' => array('svg', 'svgz'), - 'image/tiff' => array('tiff', 'tif'), - 'image/vnd.adobe.photoshop' => 'psd', - 'image/vnd.dece.graphic' => array('uvi', 'uvvi', 'uvg', 'uvvg'), - 'image/vnd.dvb.subtitle' => 'sub', - 'image/vnd.djvu' => array('djvu', 'djv'), - 'image/vnd.dwg' => 'dwg', - 'image/vnd.dxf' => 'dxf', - 'image/vnd.fastbidsheet' => 'fbs', - 'image/vnd.fpx' => 'fpx', - 'image/vnd.fst' => 'fst', - 'image/vnd.fujixerox.edmics-mmr' => 'mmr', - 'image/vnd.fujixerox.edmics-rlc' => 'rlc', - 'image/vnd.ms-modi' => 'mdi', - 'image/vnd.ms-photo' => 'wdp', - 'image/vnd.net-fpx' => 'npx', - 'image/vnd.wap.wbmp' => 'wbmp', - 'image/vnd.xiff' => 'xif', - 'image/webp' => 'webp', - 'image/x-3ds' => '3ds', - 'image/x-cmu-raster' => 'ras', - 'image/x-cmx' => 'cmx', - 'image/x-freehand' => array('fh', 'fhc', 'fh4', 'fh5', 'fh7'), - 'image/x-icon' => 'ico', - 'image/x-mrsid-image' => 'sid', - 'image/x-pcx' => 'pcx', - 'image/x-pict' => array('pic', 'pct'), - 'image/x-portable-anymap' => 'pnm', - 'image/x-portable-bitmap' => 'pbm', - 'image/x-portable-graymap' => 'pgm', - 'image/x-portable-pixmap' => 'ppm', - 'image/x-rgb' => 'rgb', - 'image/x-tga' => 'tga', - 'image/x-xbitmap' => 'xbm', - 'image/x-xpixmap' => 'xpm', - 'image/x-xwindowdump' => 'xwd', - 'message/rfc822' => array('eml', 'mime'), - 'model/iges' => array('igs', 'iges'), - 'model/mesh' => array('msh', 'mesh', 'silo'), - 'model/vnd.collada+xml' => 'dae', - 'model/vnd.dwf' => 'dwf', - 'model/vnd.gdl' => 'gdl', - 'model/vnd.gtw' => 'gtw', - 'model/vnd.mts' => 'mts', - 'model/vnd.vtu' => 'vtu', - 'model/vrml' => array('wrl', 'vrml'), - 'model/x3d+binary' => 'x3db', - 'model/x3d+vrml' => 'x3dv', - 'model/x3d+xml' => 'x3d', - 'text/cache-manifest' => 'appcache', - 'text/calendar' => array('ics', 'ifb'), - 'text/css' => 'css', - 'text/csv' => 'csv', - 'text/html' => array('html', 'htm'), - 'text/n3' => 'n3', - 'text/plain' => array( - 'txt', - 'text', - 'conf', - 'def', - 'list', - 'log', - 'in' - ), - 'text/prs.lines.tag' => 'dsc', - 'text/richtext' => 'rtx', - 'text/sgml' => array('sgml', 'sgm'), - 'text/tab-separated-values' => 'tsv', - 'text/troff' => array( - 't', - 'tr', - 'roff', - 'man', - 'me', - 'ms' - ), - 'text/turtle' => 'ttl', - 'text/uri-list' => array('uri', 'uris', 'urls'), - 'text/vcard' => 'vcard', - 'text/vnd.curl' => 'curl', - 'text/vnd.curl.dcurl' => 'dcurl', - 'text/vnd.curl.scurl' => 'scurl', - 'text/vnd.curl.mcurl' => 'mcurl', - 'text/vnd.dvb.subtitle' => 'sub', - 'text/vnd.fly' => 'fly', - 'text/vnd.fmi.flexstor' => 'flx', - 'text/vnd.graphviz' => 'gv', - 'text/vnd.in3d.3dml' => '3dml', - 'text/vnd.in3d.spot' => 'spot', - 'text/vnd.sun.j2me.app-descriptor' => 'jad', - 'text/vnd.wap.wml' => 'wml', - 'text/vnd.wap.wmlscript' => 'wmls', - 'text/x-asm' => array('s', 'asm'), - 'text/x-fortran' => array('f', 'for', 'f77', 'f90'), - 'text/x-java-source' => 'java', - 'text/x-opml' => 'opml', - 'text/x-pascal' => array('p', 'pas'), - 'text/x-nfo' => 'nfo', - 'text/x-setext' => 'etx', - 'text/x-sfv' => 'sfv', - 'text/x-uuencode' => 'uu', - 'text/x-vcalendar' => 'vcs', - 'text/x-vcard' => 'vcf', - 'video/3gpp' => '3gp', - 'video/3gpp2' => '3g2', - 'video/h261' => 'h261', - 'video/h263' => 'h263', - 'video/h264' => 'h264', - 'video/jpeg' => 'jpgv', - 'video/jpm' => array('jpm', 'jpgm'), - 'video/mj2' => 'mj2', - 'video/mp4' => 'mp4', - 'video/mpeg' => array('mpeg', 'mpg', 'mpe', 'm1v', 'm2v'), - 'video/ogg' => 'ogv', - 'video/quicktime' => array('qt', 'mov'), - 'video/vnd.dece.hd' => array('uvh', 'uvvh'), - 'video/vnd.dece.mobile' => array('uvm', 'uvvm'), - 'video/vnd.dece.pd' => array('uvp', 'uvvp'), - 'video/vnd.dece.sd' => array('uvs', 'uvvs'), - 'video/vnd.dece.video' => array('uvv', 'uvvv'), - 'video/vnd.dvb.file' => 'dvb', - 'video/vnd.fvt' => 'fvt', - 'video/vnd.mpegurl' => array('mxu', 'm4u'), - 'video/vnd.ms-playready.media.pyv' => 'pyv', - 'video/vnd.uvvu.mp4' => array('uvu', 'uvvu'), - 'video/vnd.vivo' => 'viv', - 'video/webm' => 'webm', - 'video/x-f4v' => 'f4v', - 'video/x-fli' => 'fli', - 'video/x-flv' => 'flv', - 'video/x-m4v' => 'm4v', - 'video/x-matroska' => array('mkv', 'mk3d', 'mks'), - 'video/x-mng' => 'mng', - 'video/x-ms-asf' => array('asf', 'asx'), - 'video/x-ms-vob' => 'vob', - 'video/x-ms-wm' => 'wm', - 'video/x-ms-wmv' => 'wmv', - 'video/x-ms-wmx' => 'wmx', - 'video/x-ms-wvx' => 'wvx', - 'video/x-msvideo' => 'avi', - 'video/x-sgi-movie' => 'movie', - ); - - /** - * Get a random MIME type - * - * @return string - * @example 'video/avi' - */ - public static function mimeType() - { - return static::randomElement(array_keys(static::$mimeTypes)); - } - - /** - * Get a random file extension (without a dot) - * - * @example avi - * @return string - */ - public static function fileExtension() - { - $random_extension = static::randomElement(array_values(static::$mimeTypes)); - - return is_array($random_extension) ? static::randomElement($random_extension) : $random_extension; - } - - /** - * Copy a random file from the source directory to the target directory and returns the filename/fullpath - * - * @param string $sourceDirectory The directory to look for random file taking - * @param string $targetDirectory - * @param boolean $fullPath Whether to have the full path or just the filename - * @return string - */ - public static function file($sourceDirectory = '/tmp', $targetDirectory = '/tmp', $fullPath = true) - { - if (!is_dir($sourceDirectory)) { - throw new \InvalidArgumentException(sprintf('Source directory %s does not exist or is not a directory.', $sourceDirectory)); - } - - if (!is_dir($targetDirectory)) { - throw new \InvalidArgumentException(sprintf('Target directory %s does not exist or is not a directory.', $targetDirectory)); - } - - if ($sourceDirectory == $targetDirectory) { - throw new \InvalidArgumentException('Source and target directories must differ.'); - } - - // Drop . and .. and reset array keys - $files = array_filter(array_values(array_diff(scandir($sourceDirectory), array('.', '..'))), function ($file) use ($sourceDirectory) { - return is_file($sourceDirectory . DIRECTORY_SEPARATOR . $file) && is_readable($sourceDirectory . DIRECTORY_SEPARATOR . $file); - }); - - if (empty($files)) { - throw new \InvalidArgumentException(sprintf('Source directory %s is empty.', $sourceDirectory)); - } - - $sourceFullPath = $sourceDirectory . DIRECTORY_SEPARATOR . static::randomElement($files); - - $destinationFile = Uuid::uuid() . '.' . pathinfo($sourceFullPath, PATHINFO_EXTENSION); - $destinationFullPath = $targetDirectory . DIRECTORY_SEPARATOR . $destinationFile; - - if (false === copy($sourceFullPath, $destinationFullPath)) { - return false; - } - - return $fullPath ? $destinationFullPath : $destinationFile; - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/HtmlLorem.php b/vendor/fzaninotto/faker/src/Faker/Provider/HtmlLorem.php deleted file mode 100644 index b4b2ec16..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/HtmlLorem.php +++ /dev/null @@ -1,277 +0,0 @@ -addProvider(new Lorem($generator)); - $generator->addProvider(new Internet($generator)); - } - - /** - * @param integer $maxDepth - * @param integer $maxWidth - * - * @return string - */ - public function randomHtml($maxDepth = 4, $maxWidth = 4) - { - $document = new \DOMDocument(); - $this->idGenerator = new UniqueGenerator($this->generator); - - $head = $document->createElement("head"); - $this->addRandomTitle($head); - - $body = $document->createElement("body"); - $this->addLoginForm($body); - $this->addRandomSubTree($body, $maxDepth, $maxWidth); - - $html = $document->createElement("html"); - $html->appendChild($head); - $html->appendChild($body); - - $document->appendChild($html); - return $document->saveHTML(); - } - - private function addRandomSubTree(\DOMElement $root, $maxDepth, $maxWidth) - { - $maxDepth--; - if ($maxDepth <= 0) { - return $root; - } - - $siblings = mt_rand(1, $maxWidth); - for ($i = 0; $i < $siblings; $i++) { - if ($maxDepth == 1) { - $this->addRandomLeaf($root); - } else { - $sibling = $root->ownerDocument->createElement("div"); - $root->appendChild($sibling); - $this->addRandomAttribute($sibling); - $this->addRandomSubTree($sibling, mt_rand(0, $maxDepth), $maxWidth); - } - }; - return $root; - } - - private function addRandomLeaf(\DOMElement $node) - { - $rand = mt_rand(1, 10); - switch($rand){ - case 1: - $this->addRandomP($node); - break; - case 2: - $this->addRandomA($node); - break; - case 3: - $this->addRandomSpan($node); - break; - case 4: - $this->addRandomUL($node); - break; - case 5: - $this->addRandomH($node); - break; - case 6: - $this->addRandomB($node); - break; - case 7: - $this->addRandomI($node); - break; - case 8: - $this->addRandomTable($node); - break; - default: - $this->addRandomText($node); - break; - } - } - - private function addRandomAttribute(\DOMElement $node) - { - $rand = mt_rand(1, 2); - switch ($rand) { - case 1: - $node->setAttribute("class", $this->generator->word); - break; - case 2: - $node->setAttribute("id", (string)$this->idGenerator->randomNumber(5)); - break; - } - } - - private function addRandomP(\DOMElement $element, $maxLength = 10) - { - - $node = $element->ownerDocument->createElement(static::P_TAG); - $node->textContent = $this->generator->sentence(mt_rand(1, $maxLength)); - $element->appendChild($node); - } - - private function addRandomText(\DOMElement $element, $maxLength = 10) - { - $text = $element->ownerDocument->createTextNode($this->generator->sentence(mt_rand(1, $maxLength))); - $element->appendChild($text); - } - - private function addRandomA(\DOMElement $element, $maxLength = 10) - { - $text = $element->ownerDocument->createTextNode($this->generator->sentence(mt_rand(1, $maxLength))); - $node = $element->ownerDocument->createElement(static::A_TAG); - $node->setAttribute("href", $this->generator->safeEmailDomain); - $node->appendChild($text); - $element->appendChild($node); - } - - private function addRandomTitle(\DOMElement $element, $maxLength = 10) - { - $text = $element->ownerDocument->createTextNode($this->generator->sentence(mt_rand(1, $maxLength))); - $node = $element->ownerDocument->createElement(static::TITLE_TAG); - $node->appendChild($text); - $element->appendChild($node); - } - - private function addRandomH(\DOMElement $element, $maxLength = 10) - { - $h = static::H_TAG . (string)mt_rand(1, 3); - $text = $element->ownerDocument->createTextNode($this->generator->sentence(mt_rand(1, $maxLength))); - $node = $element->ownerDocument->createElement($h); - $node->appendChild($text); - $element->appendChild($node); - - } - - private function addRandomB(\DOMElement $element, $maxLength = 10) - { - $text = $element->ownerDocument->createTextNode($this->generator->sentence(mt_rand(1, $maxLength))); - $node = $element->ownerDocument->createElement(static::B_TAG); - $node->appendChild($text); - $element->appendChild($node); - } - - private function addRandomI(\DOMElement $element, $maxLength = 10) - { - $text = $element->ownerDocument->createTextNode($this->generator->sentence(mt_rand(1, $maxLength))); - $node = $element->ownerDocument->createElement(static::I_TAG); - $node->appendChild($text); - $element->appendChild($node); - } - - private function addRandomSpan(\DOMElement $element, $maxLength = 10) - { - $text = $element->ownerDocument->createTextNode($this->generator->sentence(mt_rand(1, $maxLength))); - $node = $element->ownerDocument->createElement(static::SPAN_TAG); - $node->appendChild($text); - $element->appendChild($node); - } - - private function addLoginForm(\DOMElement $element) - { - - $textInput = $element->ownerDocument->createElement(static::INPUT_TAG); - $textInput->setAttribute("type", "text"); - $textInput->setAttribute("id", "username"); - - $textLabel = $element->ownerDocument->createElement(static::LABEL_TAG); - $textLabel->setAttribute("for", "username"); - $textLabel->textContent = $this->generator->word; - - $passwordInput = $element->ownerDocument->createElement(static::INPUT_TAG); - $passwordInput->setAttribute("type", "password"); - $passwordInput->setAttribute("id", "password"); - - $passwordLabel = $element->ownerDocument->createElement(static::LABEL_TAG); - $passwordLabel->setAttribute("for", "password"); - $passwordLabel->textContent = $this->generator->word; - - $submit = $element->ownerDocument->createElement(static::INPUT_TAG); - $submit->setAttribute("type", "submit"); - $submit->setAttribute("value", $this->generator->word); - - $submit = $element->ownerDocument->createElement(static::FORM_TAG); - $submit->setAttribute("action", $this->generator->safeEmailDomain); - $submit->setAttribute("method", "POST"); - $submit->appendChild($textLabel); - $submit->appendChild($textInput); - $submit->appendChild($passwordLabel); - $submit->appendChild($passwordInput); - $element->appendChild($submit); - } - - private function addRandomTable(\DOMElement $element, $maxRows = 10, $maxCols = 6, $maxTitle = 4, $maxLength = 10) - { - $rows = mt_rand(1, $maxRows); - $cols = mt_rand(1, $maxCols); - - $table = $element->ownerDocument->createElement(static::TABLE_TAG); - $thead = $element->ownerDocument->createElement(static::THEAD_TAG); - $tbody = $element->ownerDocument->createElement(static::TBODY_TAG); - - $table->appendChild($thead); - $table->appendChild($tbody); - - $tr = $element->ownerDocument->createElement(static::TR_TAG); - $thead->appendChild($tr); - for ($i = 0; $i < $cols; $i++) { - $th = $element->ownerDocument->createElement(static::TH_TAG); - $th->textContent = $this->generator->sentence(mt_rand(1, $maxTitle)); - $tr->appendChild($th); - } - for ($i = 0; $i < $rows; $i++) { - $tr = $element->ownerDocument->createElement(static::TR_TAG); - $tbody->appendChild($tr); - for ($j = 0; $j < $cols; $j++) { - $th = $element->ownerDocument->createElement(static::TD_TAG); - $th->textContent = $this->generator->sentence(mt_rand(1, $maxLength)); - $tr->appendChild($th); - } - } - $element->appendChild($table); - } - - private function addRandomUL(\DOMElement $element, $maxItems = 11, $maxLength = 4) - { - $num = mt_rand(1, $maxItems); - $ul = $element->ownerDocument->createElement(static::UL_TAG); - for ($i = 0; $i < $num; $i++) { - $li = $element->ownerDocument->createElement(static::LI_TAG); - $li->textContent = $this->generator->sentence(mt_rand(1, $maxLength)); - $ul->appendChild($li); - } - $element->appendChild($ul); - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/Image.php b/vendor/fzaninotto/faker/src/Faker/Provider/Image.php deleted file mode 100644 index 0458ceb9..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/Image.php +++ /dev/null @@ -1,105 +0,0 @@ -generator->parse($format); - } - - /** - * @example 'jdoe@example.com' - */ - final public function safeEmail() - { - return preg_replace('/\s/u', '', $this->userName() . '@' . static::safeEmailDomain()); - } - - /** - * @example 'jdoe@gmail.com' - */ - public function freeEmail() - { - return preg_replace('/\s/u', '', $this->userName() . '@' . static::freeEmailDomain()); - } - - /** - * @example 'jdoe@dawson.com' - */ - public function companyEmail() - { - return preg_replace('/\s/u', '', $this->userName() . '@' . $this->domainName()); - } - - /** - * @example 'gmail.com' - */ - public static function freeEmailDomain() - { - return static::randomElement(static::$freeEmailDomain); - } - - /** - * @example 'example.org' - */ - final public static function safeEmailDomain() - { - $domains = array( - 'example.com', - 'example.org', - 'example.net' - ); - - return static::randomElement($domains); - } - /** - * @example 'jdoe' - */ - public function userName() - { - $format = static::randomElement(static::$userNameFormats); - $username = static::bothify($this->generator->parse($format)); - - $username = strtolower(static::transliterate($username)); - - // check if transliterate() didn't support the language and removed all letters - if (trim($username, '._') === '') { - throw new \Exception('userName failed with the selected locale. Try a different locale or activate the "intl" PHP extension.'); - } - - // clean possible trailing dots from first/last names - $username = str_replace('..', '.', $username); - $username = rtrim($username, '.'); - - return $username; - } - /** - * @example 'fY4èHdZv68' - */ - public function password($minLength = 6, $maxLength = 20) - { - $pattern = str_repeat('*', $this->numberBetween($minLength, $maxLength)); - - return $this->asciify($pattern); - } - - /** - * @example 'tiramisu.com' - */ - public function domainName() - { - return $this->domainWord() . '.' . $this->tld(); - } - - /** - * @example 'faber' - */ - public function domainWord() - { - $lastName = $this->generator->format('lastName'); - - $lastName = strtolower(static::transliterate($lastName)); - - // check if transliterate() didn't support the language and removed all letters - if (trim($lastName, '._') === '') { - throw new \Exception('domainWord failed with the selected locale. Try a different locale or activate the "intl" PHP extension.'); - } - - // clean possible trailing dot from last name - $lastName = rtrim($lastName, '.'); - - return $lastName; - } - - /** - * @example 'com' - */ - public function tld() - { - return static::randomElement(static::$tld); - } - - /** - * @example 'http://www.runolfsdottir.com/' - */ - public function url() - { - $format = static::randomElement(static::$urlFormats); - - return $this->generator->parse($format); - } - - /** - * @example 'aut-repellat-commodi-vel-itaque-nihil-id-saepe-nostrum' - */ - public function slug($nbWords = 6, $variableNbWords = true) - { - if ($nbWords <= 0) { - return ''; - } - if ($variableNbWords) { - $nbWords = (int) ($nbWords * mt_rand(60, 140) / 100) + 1; - } - $words = $this->generator->words($nbWords); - - return join($words, '-'); - } - - /** - * @example '237.149.115.38' - */ - public function ipv4() - { - return long2ip(mt_rand(0, 1) == 0 ? mt_rand(-2147483648, -2) : mt_rand(16777216, 2147483647)); - } - - /** - * @example '35cd:186d:3e23:2986:ef9f:5b41:42a4:e6f1' - */ - public function ipv6() - { - $res = array(); - for ($i=0; $i < 8; $i++) { - $res []= dechex(mt_rand(0, "65535")); - } - - return join(':', $res); - } - - /** - * @example '10.1.1.17' - */ - public static function localIpv4() - { - if (static::numberBetween(0, 1) === 0) { - // 10.x.x.x range - return long2ip(static::numberBetween(ip2long("10.0.0.0"), ip2long("10.255.255.255"))); - } - - // 192.168.x.x range - return long2ip(static::numberBetween(ip2long("192.168.0.0"), ip2long("192.168.255.255"))); - } - - /** - * @example '32:F1:39:2F:D6:18' - */ - public static function macAddress() - { - for ($i=0; $i<6; $i++) { - $mac[] = sprintf('%02X', static::numberBetween(0, 0xff)); - } - $mac = implode(':', $mac); - - return $mac; - } - - protected static function transliterate($string) - { - if (0 === preg_match('/[^A-Za-z0-9_.]/', $string)) { - return $string; - } - - $transId = 'Any-Latin; Latin-ASCII; NFD; [:Nonspacing Mark:] Remove; NFC;'; - if (class_exists('Transliterator') && $transliterator = \Transliterator::create($transId)) { - $transString = $transliterator->transliterate($string); - } else { - $transString = static::toAscii($string); - } - - return preg_replace('/[^A-Za-z0-9_.]/u', '', $transString); - } - - protected static function toAscii($string) - { - static $arrayFrom, $arrayTo; - - if (empty($arrayFrom)) { - $transliterationTable = array( - 'IJ'=>'I', 'Ö'=>'O', 'Å’'=>'O', 'Ü'=>'U', 'ä'=>'a', 'æ'=>'a', - 'ij'=>'i', 'ö'=>'o', 'Å“'=>'o', 'ü'=>'u', 'ß'=>'s', 'Å¿'=>'s', - 'À'=>'A', 'Ã'=>'A', 'Â'=>'A', 'Ã'=>'A', 'Ä'=>'A', 'Ã…'=>'A', - 'Æ'=>'A', 'Ä€'=>'A', 'Ä„'=>'A', 'Ä‚'=>'A', 'Ç'=>'C', 'Ć'=>'C', - 'ÄŒ'=>'C', 'Ĉ'=>'C', 'ÄŠ'=>'C', 'ÄŽ'=>'D', 'Ä'=>'D', 'È'=>'E', - 'É'=>'E', 'Ê'=>'E', 'Ë'=>'E', 'Ä’'=>'E', 'Ę'=>'E', 'Äš'=>'E', - 'Ä”'=>'E', 'Ä–'=>'E', 'Äœ'=>'G', 'Äž'=>'G', 'Ä '=>'G', 'Ä¢'=>'G', - 'Ĥ'=>'H', 'Ħ'=>'H', 'ÃŒ'=>'I', 'Ã'=>'I', 'ÃŽ'=>'I', 'Ã'=>'I', - 'Ī'=>'I', 'Ĩ'=>'I', 'Ĭ'=>'I', 'Ä®'=>'I', 'İ'=>'I', 'Ä´'=>'J', - 'Ķ'=>'K', 'Ľ'=>'K', 'Ĺ'=>'K', 'Ä»'=>'K', 'Ä¿'=>'K', 'Å'=>'L', - 'Ñ'=>'N', 'Ń'=>'N', 'Ň'=>'N', 'Å…'=>'N', 'ÅŠ'=>'N', 'Ã’'=>'O', - 'Ó'=>'O', 'Ô'=>'O', 'Õ'=>'O', 'Ø'=>'O', 'ÅŒ'=>'O', 'Å'=>'O', - 'ÅŽ'=>'O', 'Å”'=>'R', 'Ř'=>'R', 'Å–'=>'R', 'Åš'=>'S', 'Åž'=>'S', - 'Åœ'=>'S', 'Ș'=>'S', 'Å '=>'S', 'Ť'=>'T', 'Å¢'=>'T', 'Ŧ'=>'T', - 'Èš'=>'T', 'Ù'=>'U', 'Ú'=>'U', 'Û'=>'U', 'Ū'=>'U', 'Å®'=>'U', - 'Ű'=>'U', 'Ŭ'=>'U', 'Ũ'=>'U', 'Ų'=>'U', 'Å´'=>'W', 'Ŷ'=>'Y', - 'Ÿ'=>'Y', 'Ã'=>'Y', 'Ź'=>'Z', 'Å»'=>'Z', 'Ž'=>'Z', 'à'=>'a', - 'á'=>'a', 'â'=>'a', 'ã'=>'a', 'Ä'=>'a', 'Ä…'=>'a', 'ă'=>'a', - 'Ã¥'=>'a', 'ç'=>'c', 'ć'=>'c', 'Ä'=>'c', 'ĉ'=>'c', 'Ä‹'=>'c', - 'Ä'=>'d', 'Ä‘'=>'d', 'è'=>'e', 'é'=>'e', 'ê'=>'e', 'ë'=>'e', - 'Ä“'=>'e', 'Ä™'=>'e', 'Ä›'=>'e', 'Ä•'=>'e', 'Ä—'=>'e', 'Æ’'=>'f', - 'Ä'=>'g', 'ÄŸ'=>'g', 'Ä¡'=>'g', 'Ä£'=>'g', 'Ä¥'=>'h', 'ħ'=>'h', - 'ì'=>'i', 'í'=>'i', 'î'=>'i', 'ï'=>'i', 'Ä«'=>'i', 'Ä©'=>'i', - 'Ä­'=>'i', 'į'=>'i', 'ı'=>'i', 'ĵ'=>'j', 'Ä·'=>'k', 'ĸ'=>'k', - 'Å‚'=>'l', 'ľ'=>'l', 'ĺ'=>'l', 'ļ'=>'l', 'Å€'=>'l', 'ñ'=>'n', - 'Å„'=>'n', 'ň'=>'n', 'ņ'=>'n', 'ʼn'=>'n', 'Å‹'=>'n', 'ò'=>'o', - 'ó'=>'o', 'ô'=>'o', 'õ'=>'o', 'ø'=>'o', 'Å'=>'o', 'Å‘'=>'o', - 'Å'=>'o', 'Å•'=>'r', 'Å™'=>'r', 'Å—'=>'r', 'Å›'=>'s', 'Å¡'=>'s', - 'Å¥'=>'t', 'ù'=>'u', 'ú'=>'u', 'û'=>'u', 'Å«'=>'u', 'ů'=>'u', - 'ű'=>'u', 'Å­'=>'u', 'Å©'=>'u', 'ų'=>'u', 'ŵ'=>'w', 'ÿ'=>'y', - 'ý'=>'y', 'Å·'=>'y', 'ż'=>'z', 'ź'=>'z', 'ž'=>'z', 'Α'=>'A', - 'Ά'=>'A', 'Ἀ'=>'A', 'Ἁ'=>'A', 'Ἂ'=>'A', 'Ἃ'=>'A', 'Ἄ'=>'A', - 'á¼'=>'A', 'Ἆ'=>'A', 'á¼'=>'A', 'ᾈ'=>'A', 'ᾉ'=>'A', 'ᾊ'=>'A', - 'ᾋ'=>'A', 'ᾌ'=>'A', 'á¾'=>'A', 'ᾎ'=>'A', 'á¾'=>'A', 'Ᾰ'=>'A', - 'á¾¹'=>'A', 'Ὰ'=>'A', 'á¾¼'=>'A', 'Î’'=>'B', 'Γ'=>'G', 'Δ'=>'D', - 'Ε'=>'E', 'Έ'=>'E', 'Ἐ'=>'E', 'á¼™'=>'E', 'Ἒ'=>'E', 'á¼›'=>'E', - 'Ἔ'=>'E', 'á¼'=>'E', 'Ὲ'=>'E', 'Ζ'=>'Z', 'Η'=>'I', 'Ή'=>'I', - 'Ἠ'=>'I', 'Ἡ'=>'I', 'Ἢ'=>'I', 'Ἣ'=>'I', 'Ἤ'=>'I', 'á¼­'=>'I', - 'á¼®'=>'I', 'Ἧ'=>'I', 'ᾘ'=>'I', 'á¾™'=>'I', 'ᾚ'=>'I', 'á¾›'=>'I', - 'ᾜ'=>'I', 'á¾'=>'I', 'ᾞ'=>'I', 'ᾟ'=>'I', 'Ὴ'=>'I', 'ῌ'=>'I', - 'Θ'=>'T', 'Ι'=>'I', 'Ί'=>'I', 'Ϊ'=>'I', 'Ἰ'=>'I', 'á¼¹'=>'I', - 'Ἲ'=>'I', 'á¼»'=>'I', 'á¼¼'=>'I', 'á¼½'=>'I', 'á¼¾'=>'I', 'Ἷ'=>'I', - 'Ῐ'=>'I', 'á¿™'=>'I', 'Ὶ'=>'I', 'Κ'=>'K', 'Λ'=>'L', 'Μ'=>'M', - 'Î'=>'N', 'Ξ'=>'K', 'Ο'=>'O', 'ÎŒ'=>'O', 'Ὀ'=>'O', 'Ὁ'=>'O', - 'Ὂ'=>'O', 'Ὃ'=>'O', 'Ὄ'=>'O', 'á½'=>'O', 'Ὸ'=>'O', 'Π'=>'P', - 'Ρ'=>'R', 'Ῥ'=>'R', 'Σ'=>'S', 'Τ'=>'T', 'Î¥'=>'Y', 'ÎŽ'=>'Y', - 'Ϋ'=>'Y', 'á½™'=>'Y', 'á½›'=>'Y', 'á½'=>'Y', 'Ὗ'=>'Y', 'Ῠ'=>'Y', - 'á¿©'=>'Y', 'Ὺ'=>'Y', 'Φ'=>'F', 'Χ'=>'X', 'Ψ'=>'P', 'Ω'=>'O', - 'Î'=>'O', 'Ὠ'=>'O', 'Ὡ'=>'O', 'Ὢ'=>'O', 'Ὣ'=>'O', 'Ὤ'=>'O', - 'á½­'=>'O', 'á½®'=>'O', 'Ὧ'=>'O', 'ᾨ'=>'O', 'ᾩ'=>'O', 'ᾪ'=>'O', - 'ᾫ'=>'O', 'ᾬ'=>'O', 'á¾­'=>'O', 'á¾®'=>'O', 'ᾯ'=>'O', 'Ὼ'=>'O', - 'ῼ'=>'O', 'α'=>'a', 'ά'=>'a', 'á¼€'=>'a', 'á¼'=>'a', 'ἂ'=>'a', - 'ἃ'=>'a', 'ἄ'=>'a', 'á¼…'=>'a', 'ἆ'=>'a', 'ἇ'=>'a', 'á¾€'=>'a', - 'á¾'=>'a', 'ᾂ'=>'a', 'ᾃ'=>'a', 'ᾄ'=>'a', 'á¾…'=>'a', 'ᾆ'=>'a', - 'ᾇ'=>'a', 'á½°'=>'a', 'á¾°'=>'a', 'á¾±'=>'a', 'á¾²'=>'a', 'á¾³'=>'a', - 'á¾´'=>'a', 'á¾¶'=>'a', 'á¾·'=>'a', 'β'=>'b', 'γ'=>'g', 'δ'=>'d', - 'ε'=>'e', 'έ'=>'e', 'á¼'=>'e', 'ἑ'=>'e', 'á¼’'=>'e', 'ἓ'=>'e', - 'á¼”'=>'e', 'ἕ'=>'e', 'á½²'=>'e', 'ζ'=>'z', 'η'=>'i', 'ή'=>'i', - 'á¼ '=>'i', 'ἡ'=>'i', 'á¼¢'=>'i', 'á¼£'=>'i', 'ἤ'=>'i', 'á¼¥'=>'i', - 'ἦ'=>'i', 'á¼§'=>'i', 'á¾'=>'i', 'ᾑ'=>'i', 'á¾’'=>'i', 'ᾓ'=>'i', - 'á¾”'=>'i', 'ᾕ'=>'i', 'á¾–'=>'i', 'á¾—'=>'i', 'á½´'=>'i', 'á¿‚'=>'i', - 'ῃ'=>'i', 'á¿„'=>'i', 'ῆ'=>'i', 'ῇ'=>'i', 'θ'=>'t', 'ι'=>'i', - 'ί'=>'i', 'ÏŠ'=>'i', 'Î'=>'i', 'á¼°'=>'i', 'á¼±'=>'i', 'á¼²'=>'i', - 'á¼³'=>'i', 'á¼´'=>'i', 'á¼µ'=>'i', 'á¼¶'=>'i', 'á¼·'=>'i', 'á½¶'=>'i', - 'á¿'=>'i', 'á¿‘'=>'i', 'á¿’'=>'i', 'á¿–'=>'i', 'á¿—'=>'i', 'κ'=>'k', - 'λ'=>'l', 'μ'=>'m', 'ν'=>'n', 'ξ'=>'k', 'ο'=>'o', 'ÏŒ'=>'o', - 'á½€'=>'o', 'á½'=>'o', 'ὂ'=>'o', 'ὃ'=>'o', 'ὄ'=>'o', 'á½…'=>'o', - 'ὸ'=>'o', 'Ï€'=>'p', 'Ï'=>'r', 'ῤ'=>'r', 'á¿¥'=>'r', 'σ'=>'s', - 'Ï‚'=>'s', 'Ï„'=>'t', 'Ï…'=>'y', 'Ï'=>'y', 'Ï‹'=>'y', 'ΰ'=>'y', - 'á½'=>'y', 'ὑ'=>'y', 'á½’'=>'y', 'ὓ'=>'y', 'á½”'=>'y', 'ὕ'=>'y', - 'á½–'=>'y', 'á½—'=>'y', 'ὺ'=>'y', 'á¿ '=>'y', 'á¿¡'=>'y', 'á¿¢'=>'y', - 'ῦ'=>'y', 'á¿§'=>'y', 'φ'=>'f', 'χ'=>'x', 'ψ'=>'p', 'ω'=>'o', - 'ÏŽ'=>'o', 'á½ '=>'o', 'ὡ'=>'o', 'á½¢'=>'o', 'á½£'=>'o', 'ὤ'=>'o', - 'á½¥'=>'o', 'ὦ'=>'o', 'á½§'=>'o', 'á¾ '=>'o', 'ᾡ'=>'o', 'á¾¢'=>'o', - 'á¾£'=>'o', 'ᾤ'=>'o', 'á¾¥'=>'o', 'ᾦ'=>'o', 'á¾§'=>'o', 'á½¼'=>'o', - 'ῲ'=>'o', 'ῳ'=>'o', 'á¿´'=>'o', 'á¿¶'=>'o', 'á¿·'=>'o', 'Ð'=>'A', - 'Б'=>'B', 'Ð’'=>'V', 'Г'=>'G', 'Д'=>'D', 'Е'=>'E', 'Ð'=>'E', - 'Ж'=>'Z', 'З'=>'Z', 'И'=>'I', 'Й'=>'I', 'К'=>'K', 'Л'=>'L', - 'М'=>'M', 'Ð'=>'N', 'О'=>'O', 'П'=>'P', 'Р'=>'R', 'С'=>'S', - 'Т'=>'T', 'У'=>'U', 'Ф'=>'F', 'Ð¥'=>'K', 'Ц'=>'T', 'Ч'=>'C', - 'Ш'=>'S', 'Щ'=>'S', 'Ы'=>'Y', 'Э'=>'E', 'Ю'=>'Y', 'Я'=>'Y', - 'а'=>'A', 'б'=>'B', 'в'=>'V', 'г'=>'G', 'д'=>'D', 'е'=>'E', - 'Ñ‘'=>'E', 'ж'=>'Z', 'з'=>'Z', 'и'=>'I', 'й'=>'I', 'к'=>'K', - 'л'=>'L', 'м'=>'M', 'н'=>'N', 'о'=>'O', 'п'=>'P', 'Ñ€'=>'R', - 'Ñ'=>'S', 'Ñ‚'=>'T', 'у'=>'U', 'Ñ„'=>'F', 'Ñ…'=>'K', 'ц'=>'T', - 'ч'=>'C', 'ш'=>'S', 'щ'=>'S', 'Ñ‹'=>'Y', 'Ñ'=>'E', 'ÑŽ'=>'Y', - 'Ñ'=>'Y', 'ð'=>'d', 'Ã'=>'D', 'þ'=>'t', 'Þ'=>'T', 'áƒ'=>'a', - 'ბ'=>'b', 'გ'=>'g', 'დ'=>'d', 'ე'=>'e', 'ვ'=>'v', 'ზ'=>'z', - 'თ'=>'t', 'ი'=>'i', 'კ'=>'k', 'ლ'=>'l', 'მ'=>'m', 'ნ'=>'n', - 'áƒ'=>'o', 'პ'=>'p', 'ჟ'=>'z', 'რ'=>'r', 'ს'=>'s', 'ტ'=>'t', - 'უ'=>'u', 'ფ'=>'p', 'ქ'=>'k', 'ღ'=>'g', 'ყ'=>'q', 'შ'=>'s', - 'ჩ'=>'c', 'ც'=>'t', 'ძ'=>'d', 'წ'=>'t', 'ჭ'=>'c', 'ხ'=>'k', - 'ჯ'=>'j', 'ჰ'=>'h', 'Å£'=>'t', 'ʼ'=>"'", '̧'=>'', 'ḩ'=>'h', - '‘'=>"'", '’'=>"'", 'ừ'=>'u', '/'=>'', 'ế'=>'e', 'ả'=>'a', - 'ị'=>'i', 'ậ'=>'a', 'ệ'=>'e', 'ỉ'=>'i', 'ồ'=>'o', 'á»'=>'e', - 'Æ¡'=>'o', 'ạ'=>'a', 'ẵ'=>'a', 'ư'=>'u', 'ằ'=>'a', 'ầ'=>'a', - 'ḑ'=>'d', 'Ḩ'=>'H', 'á¸'=>'D', 'È™'=>'s', 'È›'=>'t', 'á»™'=>'o', - 'ắ'=>'a', 'ÅŸ'=>'s', "'"=>'', 'Õ¸Ö‚'=>'u', 'Õ¡'=>'a', 'Õ¢'=>'b', - 'Õ£'=>'g', 'Õ¤'=>'d', 'Õ¥'=>'e', 'Õ¦'=>'z', 'Õ§'=>'e', 'Õ¨'=>'y', - 'Õ©'=>'t', 'Õª'=>'zh', 'Õ«'=>'i', 'Õ¬'=>'l', 'Õ­'=>'kh', 'Õ®'=>'ts', - 'Õ¯'=>'k', 'Õ°'=>'h', 'Õ±'=>'dz', 'Õ²'=>'gh', 'Õ³'=>'ch', 'Õ´'=>'m', - 'Õµ'=>'y', 'Õ¶'=>'n', 'Õ·'=>'sh', 'Õ¸'=>'o', 'Õ¹'=>'ch', 'Õº'=>'p', - 'Õ»'=>'j', 'Õ¼'=>'r', 'Õ½'=>'s', 'Õ¾'=>'v', 'Õ¿'=>'t', 'Ö€'=>'r', - 'Ö'=>'ts', 'Öƒ'=>'p', 'Ö„'=>'q', 'Ö‡'=>'ev', 'Ö…'=>'o', 'Ö†'=>'f', - ); - $arrayFrom = array_keys($transliterationTable); - $arrayTo = array_values($transliterationTable); - } - - return str_replace($arrayFrom, $arrayTo, $string); - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/Lorem.php b/vendor/fzaninotto/faker/src/Faker/Provider/Lorem.php deleted file mode 100644 index 6356ebfc..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/Lorem.php +++ /dev/null @@ -1,203 +0,0 @@ - array( - "4539###########", - "4556###########", - "4916###########", - "4532###########", - "4929###########", - "40240071#######", - "4485###########", - "4716###########", - "4##############" - ), - 'Visa Retired' => array( - "4539########", - "4556########", - "4916########", - "4532########", - "4929########", - "40240071####", - "4485########", - "4716########", - "4###########", - ), - 'MasterCard' => array( - "2221###########", - "23#############", - "24#############", - "25#############", - "26#############", - "2720###########", - "51#############", - "52#############", - "53#############", - "54#############", - "55#############" - ), - 'American Express' => array( - "34############", - "37############" - ), - 'Discover Card' => array( - "6011###########" - ), - ); - - /** - * @var array list of IBAN formats, source: @link https://www.swift.com/standards/data-standards/iban - */ - protected static $ibanFormats = array( - 'AD' => array(array('n', 4), array('n', 4), array('c', 12)), - 'AE' => array(array('n', 3), array('n', 16)), - 'AL' => array(array('n', 8), array('c', 16)), - 'AT' => array(array('n', 5), array('n', 11)), - 'AZ' => array(array('a', 4), array('c', 20)), - 'BA' => array(array('n', 3), array('n', 3), array('n', 8), array('n', 2)), - 'BE' => array(array('n', 3), array('n', 7), array('n', 2)), - 'BG' => array(array('a', 4), array('n', 4), array('n', 2), array('c', 8)), - 'BH' => array(array('a', 4), array('c', 14)), - 'BR' => array(array('n', 8), array('n', 5), array('n', 10), array('a', 1), array('c', 1)), - 'CH' => array(array('n', 5), array('c', 12)), - 'CR' => array(array('n', 3), array('n', 14)), - 'CY' => array(array('n', 3), array('n', 5), array('c', 16)), - 'CZ' => array(array('n', 4), array('n', 6), array('n', 10)), - 'DE' => array(array('n', 8), array('n', 10)), - 'DK' => array(array('n', 4), array('n', 9), array('n', 1)), - 'DO' => array(array('c', 4), array('n', 20)), - 'EE' => array(array('n', 2), array('n', 2), array('n', 11), array('n', 1)), - 'ES' => array(array('n', 4), array('n', 4), array('n', 1), array('n', 1), array('n', 10)), - 'FI' => array(array('n', 6), array('n', 7), array('n', 1)), - 'FR' => array(array('n', 5), array('n', 5), array('c', 11), array('n', 2)), - 'GB' => array(array('a', 4), array('n', 6), array('n', 8)), - 'GE' => array(array('a', 2), array('n', 16)), - 'GI' => array(array('a', 4), array('c', 15)), - 'GR' => array(array('n', 3), array('n', 4), array('c', 16)), - 'GT' => array(array('c', 4), array('c', 20)), - 'HR' => array(array('n', 7), array('n', 10)), - 'HU' => array(array('n', 3), array('n', 4), array('n', 1), array('n', 15), array('n', 1)), - 'IE' => array(array('a', 4), array('n', 6), array('n', 8)), - 'IL' => array(array('n', 3), array('n', 3), array('n', 13)), - 'IS' => array(array('n', 4), array('n', 2), array('n', 6), array('n', 10)), - 'IT' => array(array('a', 1), array('n', 5), array('n', 5), array('c', 12)), - 'KW' => array(array('a', 4), array('n', 22)), - 'KZ' => array(array('n', 3), array('c', 13)), - 'LB' => array(array('n', 4), array('c', 20)), - 'LI' => array(array('n', 5), array('c', 12)), - 'LT' => array(array('n', 5), array('n', 11)), - 'LU' => array(array('n', 3), array('c', 13)), - 'LV' => array(array('a', 4), array('c', 13)), - 'MC' => array(array('n', 5), array('n', 5), array('c', 11), array('n', 2)), - 'MD' => array(array('c', 2), array('c', 18)), - 'ME' => array(array('n', 3), array('n', 13), array('n', 2)), - 'MK' => array(array('n', 3), array('c', 10), array('n', 2)), - 'MR' => array(array('n', 5), array('n', 5), array('n', 11), array('n', 2)), - 'MT' => array(array('a', 4), array('n', 5), array('c', 18)), - 'MU' => array(array('a', 4), array('n', 2), array('n', 2), array('n', 12), array('n', 3), array('a', 3)), - 'NL' => array(array('a', 4), array('n', 10)), - 'NO' => array(array('n', 4), array('n', 6), array('n', 1)), - 'PK' => array(array('a', 4), array('c', 16)), - 'PL' => array(array('n', 8), array('n', 16)), - 'PS' => array(array('a', 4), array('c', 21)), - 'PT' => array(array('n', 4), array('n', 4), array('n', 11), array('n', 2)), - 'RO' => array(array('a', 4), array('c', 16)), - 'RS' => array(array('n', 3), array('n', 13), array('n', 2)), - 'SA' => array(array('n', 2), array('c', 18)), - 'SE' => array(array('n', 3), array('n', 16), array('n', 1)), - 'SI' => array(array('n', 5), array('n', 8), array('n', 2)), - 'SK' => array(array('n', 4), array('n', 6), array('n', 10)), - 'SM' => array(array('a', 1), array('n', 5), array('n', 5), array('c', 12)), - 'TN' => array(array('n', 2), array('n', 3), array('n', 13), array('n', 2)), - 'TR' => array(array('n', 5), array('n', 1), array('c', 16)), - 'VG' => array(array('a', 4), array('n', 16)), - ); - - /** - * @return string Returns a credit card vendor name - * - * @example 'MasterCard' - */ - public static function creditCardType() - { - return static::randomElement(static::$cardVendors); - } - - /** - * Returns the String of a credit card number. - * - * @param string $type Supporting any of 'Visa', 'MasterCard', 'American Express', and 'Discover' - * @param boolean $formatted Set to true if the output string should contain one separator every 4 digits - * @param string $separator Separator string for formatting card number. Defaults to dash (-). - * @return string - * - * @example '4485480221084675' - */ - public static function creditCardNumber($type = null, $formatted = false, $separator = '-') - { - if (is_null($type)) { - $type = static::creditCardType(); - } - $mask = static::randomElement(static::$cardParams[$type]); - - $number = static::numerify($mask); - $number .= Luhn::computeCheckDigit($number); - - if ($formatted) { - $p1 = substr($number, 0, 4); - $p2 = substr($number, 4, 4); - $p3 = substr($number, 8, 4); - $p4 = substr($number, 12); - $number = $p1 . $separator . $p2 . $separator . $p3 . $separator . $p4; - } - - return $number; - } - - /** - * @param boolean $valid True (by default) to get a valid expiration date, false to get a maybe valid date - * @return \DateTime - * @example 04/13 - */ - public function creditCardExpirationDate($valid = true) - { - if ($valid) { - return $this->generator->dateTimeBetween('now', '36 months'); - } - - return $this->generator->dateTimeBetween('-36 months', '36 months'); - } - - /** - * @param boolean $valid True (by default) to get a valid expiration date, false to get a maybe valid date - * @param string $expirationDateFormat - * @return string - * @example '04/13' - */ - public function creditCardExpirationDateString($valid = true, $expirationDateFormat = null) - { - return $this->creditCardExpirationDate($valid)->format(is_null($expirationDateFormat) ? static::$expirationDateFormat : $expirationDateFormat); - } - - /** - * @param boolean $valid True (by default) to get a valid expiration date, false to get a maybe valid date - * @return array - */ - public function creditCardDetails($valid = true) - { - $type = static::creditCardType(); - - return array( - 'type' => $type, - 'number' => static::creditCardNumber($type), - 'name' => $this->generator->name(), - 'expirationDate' => $this->creditCardExpirationDateString($valid) - ); - } - - /** - * International Bank Account Number (IBAN) - * - * @link http://en.wikipedia.org/wiki/International_Bank_Account_Number - * @param string $countryCode ISO 3166-1 alpha-2 country code - * @param string $prefix for generating bank account number of a specific bank - * @param integer $length total length without country code and 2 check digits - * @return string - */ - public static function iban($countryCode = null, $prefix = '', $length = null) - { - $countryCode = is_null($countryCode) ? self::randomKey(self::$ibanFormats) : strtoupper($countryCode); - - $format = !isset(static::$ibanFormats[$countryCode]) ? null : static::$ibanFormats[$countryCode]; - if ($length === null) { - if ($format === null) { - $length = 24; - } else { - $length = 0; - foreach ($format as $part) { - list($class, $groupCount) = $part; - $length += $groupCount; - } - } - } - if ($format === null) { - $format = array(array('n', $length)); - } - - $expandedFormat = ''; - foreach ($format as $item) { - list($class, $length) = $item; - $expandedFormat .= str_repeat($class, $length); - } - - $result = $prefix; - $expandedFormat = substr($expandedFormat, strlen($result)); - foreach (str_split($expandedFormat) as $class) { - switch ($class) { - default: - case 'c': - $result .= mt_rand(0, 100) <= 50 ? static::randomDigit() : strtoupper(static::randomLetter()); - break; - case 'a': - $result .= strtoupper(static::randomLetter()); - break; - case 'n': - $result .= static::randomDigit(); - break; - } - } - - $checksum = Iban::checksum($countryCode . '00' . $result); - - return $countryCode . $checksum . $result; - } - - /** - * Return the String of a SWIFT/BIC number - * - * @example 'RZTIAT22263' - * @link http://en.wikipedia.org/wiki/ISO_9362 - * @return string Swift/Bic number - */ - public static function swiftBicNumber() - { - return self::regexify("^([A-Z]){4}([A-Z]){2}([0-9A-Z]){2}([0-9A-Z]{3})?$"); - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/Person.php b/vendor/fzaninotto/faker/src/Faker/Provider/Person.php deleted file mode 100644 index 9d875b66..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/Person.php +++ /dev/null @@ -1,126 +0,0 @@ -generator->parse($format); - } - - /** - * @param string|null $gender 'male', 'female' or null for any - * @return string - * @example 'John' - */ - public function firstName($gender = null) - { - if ($gender === static::GENDER_MALE) { - return static::firstNameMale(); - } elseif ($gender === static::GENDER_FEMALE) { - return static::firstNameFemale(); - } - - return $this->generator->parse(static::randomElement(static::$firstNameFormat)); - } - - public static function firstNameMale() - { - return static::randomElement(static::$firstNameMale); - } - - public static function firstNameFemale() - { - return static::randomElement(static::$firstNameFemale); - } - - /** - * @example 'Doe' - * @return string - */ - public function lastName() - { - return static::randomElement(static::$lastName); - } - - /** - * @example 'Mrs.' - * @param string|null $gender 'male', 'female' or null for any - * @return string - */ - public function title($gender = null) - { - if ($gender === static::GENDER_MALE) { - return static::titleMale(); - } elseif ($gender === static::GENDER_FEMALE) { - return static::titleFemale(); - } - - return $this->generator->parse(static::randomElement(static::$titleFormat)); - } - - /** - * @example 'Mr.' - */ - public static function titleMale() - { - return static::randomElement(static::$titleMale); - } - - /** - * @example 'Mrs.' - */ - public static function titleFemale() - { - return static::randomElement(static::$titleFemale); - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/PhoneNumber.php b/vendor/fzaninotto/faker/src/Faker/Provider/PhoneNumber.php deleted file mode 100644 index d9d1f6bb..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/PhoneNumber.php +++ /dev/null @@ -1,43 +0,0 @@ -generator->parse(static::randomElement(static::$formats))); - } - - /** - * @example +27113456789 - * @return string - */ - public function e164PhoneNumber() - { - $formats = array('+%############'); - return static::numerify($this->generator->parse(static::randomElement($formats))); - } - - /** - * International Mobile Equipment Identity (IMEI) - * - * @link http://en.wikipedia.org/wiki/International_Mobile_Station_Equipment_Identity - * @link http://imei-number.com/imei-validation-check/ - * @example '720084494799532' - * @return int $imei - */ - public function imei() - { - $imei = (string) static::numerify('##############'); - $imei .= Luhn::computeCheckDigit($imei); - return $imei; - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/Text.php b/vendor/fzaninotto/faker/src/Faker/Provider/Text.php deleted file mode 100644 index db8c800a..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/Text.php +++ /dev/null @@ -1,141 +0,0 @@ - 5) { - throw new \InvalidArgumentException('indexSize must be at most 5'); - } - - $words = $this->getConsecutiveWords($indexSize); - $result = array(); - $resultLength = 0; - // take a random starting point - $next = static::randomKey($words); - while ($resultLength < $maxNbChars && isset($words[$next])) { - // fetch a random word to append - $word = static::randomElement($words[$next]); - - // calculate next index - $currentWords = static::explode($next); - $currentWords[] = $word; - array_shift($currentWords); - $next = static::implode($currentWords); - - // ensure text starts with an uppercase letter - if ($resultLength == 0 && !static::validStart($word)) { - continue; - } - - // append the element - $result[] = $word; - $resultLength += static::strlen($word) + static::$separatorLen; - } - - // remove the element that caused the text to overflow - array_pop($result); - - // build result - $result = static::implode($result); - - return static::appendEnd($result); - } - - protected function getConsecutiveWords($indexSize) - { - if (!isset($this->consecutiveWords[$indexSize])) { - $parts = $this->getExplodedText(); - $words = array(); - $index = array(); - for ($i = 0; $i < $indexSize; $i++) { - $index[] = array_shift($parts); - } - - for ($i = 0, $count = count($parts); $i < $count; $i++) { - $stringIndex = static::implode($index); - if (!isset($words[$stringIndex])) { - $words[$stringIndex] = array(); - } - $word = $parts[$i]; - $words[$stringIndex][] = $word; - array_shift($index); - $index[] = $word; - } - // cache look up words for performance - $this->consecutiveWords[$indexSize] = $words; - } - - return $this->consecutiveWords[$indexSize]; - } - - protected function getExplodedText() - { - if ($this->explodedText === null) { - $this->explodedText = static::explode(preg_replace('/\s+/u', ' ', static::$baseText)); - } - - return $this->explodedText; - } - - protected static function explode($text) - { - return explode(static::$separator, $text); - } - - protected static function implode($words) - { - return implode(static::$separator, $words); - } - - protected static function strlen($text) - { - return function_exists('mb_strlen') ? mb_strlen($text, 'UTF-8') : strlen($text); - } - - protected static function validStart($word) - { - $isValid = true; - if (static::$textStartsWithUppercase) { - $isValid = preg_match('/^\p{Lu}/u', $word); - } - return $isValid; - } - - protected static function appendEnd($text) - { - return preg_replace("/([ ,-:;\x{2013}\x{2014}]+$)/us", '', $text).'.'; - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/UserAgent.php b/vendor/fzaninotto/faker/src/Faker/Provider/UserAgent.php deleted file mode 100644 index d659f4bb..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/UserAgent.php +++ /dev/null @@ -1,165 +0,0 @@ -> 8) | (($tLo & 0xff000000) >> 24); - $tMi = (($tMi & 0x00ff) << 8) | (($tMi & 0xff00) >> 8); - $tHi = (($tHi & 0x00ff) << 8) | (($tHi & 0xff00) >> 8); - } - - // apply version number - $tHi &= 0x0fff; - $tHi |= (3 << 12); - - // cast to string - $uuid = sprintf( - '%08x-%04x-%04x-%02x%02x-%02x%02x%02x%02x%02x%02x', - $tLo, - $tMi, - $tHi, - $csHi, - $csLo, - $byte[10], - $byte[11], - $byte[12], - $byte[13], - $byte[14], - $byte[15] - ); - - return $uuid; - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/ar_JO/Address.php b/vendor/fzaninotto/faker/src/Faker/Provider/ar_JO/Address.php deleted file mode 100644 index 6f4f258d..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/ar_JO/Address.php +++ /dev/null @@ -1,152 +0,0 @@ -generator->parse($format)); - } - - /** - * @example 'wewebit.jo' - */ - public function domainName() - { - return static::randomElement(static::$lastNameAscii) . '.' . $this->tld(); - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/ar_JO/Person.php b/vendor/fzaninotto/faker/src/Faker/Provider/ar_JO/Person.php deleted file mode 100644 index 7fcadb3a..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/ar_JO/Person.php +++ /dev/null @@ -1,108 +0,0 @@ -generator->parse($format)); - } - - /** - * @example 'wewebit.jo' - */ - public function domainName() - { - return static::randomElement(static::$lastNameAscii) . '.' . $this->tld(); - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/ar_SA/Payment.php b/vendor/fzaninotto/faker/src/Faker/Provider/ar_SA/Payment.php deleted file mode 100644 index d69b5d62..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/ar_SA/Payment.php +++ /dev/null @@ -1,19 +0,0 @@ -generator->parse(static::randomElement(static::$lastNameFormat)); - } - - public static function lastNameMale() - { - return static::randomElement(static::$lastNameMale); - } - - public static function lastNameFemale() - { - return static::randomElement(static::$lastNameFemale); - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/bg_BG/PhoneNumber.php b/vendor/fzaninotto/faker/src/Faker/Provider/bg_BG/PhoneNumber.php deleted file mode 100644 index e5ec0422..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/bg_BG/PhoneNumber.php +++ /dev/null @@ -1,20 +0,0 @@ -generator->parse($format)); - } - - /** - * Generates valid czech IÄŒO - * - * @see http://phpfashion.com/jak-overit-platne-ic-a-rodne-cislo - * @return string - */ - public function ico() - { - $ico = static::numerify('#######'); - $split = str_split($ico); - $prod = 0; - foreach (array(8, 7, 6, 5, 4, 3, 2) as $i => $p) { - $prod += $p * $split[$i]; - } - $mod = $prod % 11; - if ($mod === 0 || $mod === 10) { - return "{$ico}1"; - } elseif ($mod === 1) { - return "{$ico}0"; - } - - return $ico . (11 - $mod); - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/cs_CZ/DateTime.php b/vendor/fzaninotto/faker/src/Faker/Provider/cs_CZ/DateTime.php deleted file mode 100644 index 4bd15088..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/cs_CZ/DateTime.php +++ /dev/null @@ -1,61 +0,0 @@ -format('w')]; - } - - /** - * @param \DateTime|int|string $max maximum timestamp used as random end limit, default to "now" - * @return string - * @example '2' - */ - public static function dayOfMonth($max = 'now') - { - return static::dateTime($max)->format('j'); - } - - /** - * Full date with inflected month - * @return string - * @example '16. listopadu 2003' - */ - public function formattedDate() - { - $format = static::randomElement(static::$formattedDateFormat); - - return $this->generator->parse($format); - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/cs_CZ/Internet.php b/vendor/fzaninotto/faker/src/Faker/Provider/cs_CZ/Internet.php deleted file mode 100644 index d0d993d4..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/cs_CZ/Internet.php +++ /dev/null @@ -1,9 +0,0 @@ -generator->boolean() ? static::GENDER_MALE : static::GENDER_FEMALE; - } - - $startTimestamp = strtotime("-${maxAge} year"); - $endTimestamp = strtotime("-${minAge} year"); - $randTimestamp = static::numberBetween($startTimestamp, $endTimestamp); - - $year = intval(date('Y', $randTimestamp)); - $month = intval(date('n', $randTimestamp)); - $day = intval(date('j', $randTimestamp)); - $suffix = static::numberBetween(0, 999); - - // women has +50 to month - if ($gender == static::GENDER_FEMALE) { - $month += 50; - } - // from year 2004 everyone has +20 to month when birth numbers in one day are exhausted - if ($year >= 2004 && $this->generator->boolean(10)) { - $month += 20; - } - - $birthNumber = sprintf('%02d%02d%02d%03d', $year % 100, $month, $day, $suffix); - - // from year 1954 birth number includes CRC - if ($year >= 1954) { - $crc = intval($birthNumber, 10) % 11; - if ($crc == 10) { - $crc = 0; - } - $birthNumber .= sprintf('%d', $crc); - } - - // add slash - if ($this->generator->boolean($slashProbability)) { - $birthNumber = substr($birthNumber, 0, 6) . '/' . substr($birthNumber, 6); - } - - return $birthNumber; - } - - public static function birthNumberMale() - { - return static::birthNumber(static::GENDER_MALE); - } - - public static function birthNumberFemale() - { - return static::birthNumber(static::GENDER_FEMALE); - } - - public function title($gender = null) - { - return static::titleMale(); - } - - /** - * replaced by specific unisex Czech title - */ - public static function titleMale() - { - return static::randomElement(static::$title); - } - - /** - * replaced by specific unisex Czech title - */ - public static function titleFemale() - { - return static::titleMale(); - } - - /** - * @param string|null $gender 'male', 'female' or null for any - * @example 'Albrecht' - */ - public function lastName($gender = null) - { - if ($gender === static::GENDER_MALE) { - return static::lastNameMale(); - } elseif ($gender === static::GENDER_FEMALE) { - return static::lastNameFemale(); - } - - return $this->generator->parse(static::randomElement(static::$lastNameFormat)); - } - - public static function lastNameMale() - { - return static::randomElement(static::$lastNameMale); - } - - public static function lastNameFemale() - { - return static::randomElement(static::$lastNameFemale); - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/cs_CZ/PhoneNumber.php b/vendor/fzaninotto/faker/src/Faker/Provider/cs_CZ/PhoneNumber.php deleted file mode 100644 index 49ab429e..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/cs_CZ/PhoneNumber.php +++ /dev/null @@ -1,14 +0,0 @@ - - */ -class Address extends \Faker\Provider\Address -{ - /** - * @var array Danish city suffixes. - */ - protected static $citySuffix = array( - 'sted', 'bjerg', 'borg', 'rød', 'lund', 'by', - ); - - /** - * @var array Danish street suffixes. - */ - protected static $streetSuffix = array( - 'vej', 'gade', 'skov', 'shaven', - ); - - /** - * @var array Danish street word suffixes. - */ - protected static $streetSuffixWord = array( - 'Vej', 'Gade', 'Allé', 'Boulevard', 'Plads', 'Have', - ); - - /** - * @var array Danish building numbers. - */ - protected static $buildingNumber = array( - '%##', '%#', '%#', '%', '%', '%', '%?', '% ?', - ); - - /** - * @var array Danish building level. - */ - protected static $buildingLevel = array( - 'st.', '%.', '%. sal.', - ); - - /** - * @var array Danish building sides. - */ - protected static $buildingSide = array( - 'tv.', 'th.', - ); - - /** - * @var array Danish zip code. - */ - protected static $postcode = array( - '%###' - ); - - /** - * @var array Danish cities. - */ - protected static $cityNames = array( - 'Aabenraa', 'Aabybro', 'Aakirkeby', 'Aalborg', 'Aalestrup', 'Aars', 'Aarup', 'Agedrup', 'Agerbæk', 'Agerskov', - 'Albertslund', 'Allerød', 'Allinge', 'AllingÃ¥bro', 'Almind', 'Anholt', 'Ansager', 'Arden', 'Asaa', 'Askeby', - 'Asnæs', 'Asperup', 'Assens', 'Augustenborg', 'Aulum', 'Auning', 'Bagenkop', 'Bagsværd', 'Balle', 'Ballerup', - 'Bandholm', 'Barrit', 'Beder', 'Bedsted', 'Bevtoft', 'Billum', 'Billund', 'Bindslev', 'Birkerød', 'Bjerringbro', - 'Bjert', 'Bjæverskov', 'Blokhus', 'Blommenslyst', 'BlÃ¥vand', 'Boeslunde', 'Bogense', 'Bogø', 'Bolderslev', 'Bording', - 'Borre', 'Borup', 'Brøndby', 'Brabrand', 'Bramming', 'Brande', 'Branderup', 'Bredebro', 'Bredsten', 'Brenderup', - 'Broager', 'Broby', 'Brovst', 'Bryrup', 'Brædstrup', 'Strand', 'Brønderslev', 'Brønshøj', 'Brørup', 'Bække', - 'Bækmarksbro', 'Bælum', 'Børkop', 'Bøvlingbjerg', 'Charlottenlund', 'Christiansfeld', 'Dalby', 'Dalmose', - 'Dannemare', 'DaugÃ¥rd', 'Dianalund', 'Dragør', 'Dronninglund', 'Dronningmølle', 'Dybvad', 'DyssegÃ¥rd', 'Ebberup', - 'Ebeltoft', 'Egernsund', 'Egtved', 'EgÃ¥', 'Ejby', 'Ejstrupholm', 'Engesvang', 'Errindlev', 'Erslev', 'Esbjerg', - 'Eskebjerg', 'Eskilstrup', 'Espergærde', 'Faaborg', 'Fanø', 'Farsø', 'Farum', 'Faxe', 'Ladeplads', 'Fejø', - 'Ferritslev', 'Fjenneslev', 'Fjerritslev', 'Flemming', 'Fredensborg', 'Fredericia', 'Frederiksberg', - 'Frederikshavn', 'Frederikssund', 'Frederiksværk', 'Frørup', 'Frøstrup', 'Fuglebjerg', 'Føllenslev', 'Føvling', - 'FÃ¥revejle', 'FÃ¥rup', 'FÃ¥rvang', 'Gadbjerg', 'Gadstrup', 'Galten', 'Gandrup', 'Gedser', 'Gedsted', 'Gedved', 'Gelsted', - 'Gentofte', 'Gesten', 'Gilleleje', 'Gislev', 'Gislinge', 'Gistrup', 'Give', 'Gjerlev', 'Gjern', 'Glamsbjerg', - 'Glejbjerg', 'Glesborg', 'Glostrup', 'Glumsø', 'Gram', 'Gredstedbro', 'Grenaa', 'Greve', 'Grevinge', 'Grindsted', - 'Græsted', 'GrÃ¥sten', 'Gudbjerg', 'Sydfyn', 'Gudhjem', 'Gudme', 'Guldborg', 'Gørding', 'Gørlev', 'Gørløse', - 'Haderslev', 'Haderup', 'Hadsten', 'Hadsund', 'Hals', 'Hammel', 'Hampen', 'Hanstholm', 'Harboøre', 'Harlev', 'Harndrup', - 'Harpelunde', 'Hasle', 'Haslev', 'Hasselager', 'Havdrup', 'Havndal', 'Hedehusene', 'Hedensted', 'Hejls', 'Hejnsvig', - 'Hellebæk', 'Hellerup', 'Helsinge', 'Helsingør', 'Hemmet', 'Henne', 'Herfølge', 'Herlev', 'Herlufmagle', 'Herning', - 'Hesselager', 'Hillerød', 'Hinnerup', 'Hirtshals', 'Hjallerup', 'Hjerm', 'Hjortshøj', 'Hjørring', 'Hobro', 'Holbæk', - 'Holeby', 'Holmegaard', 'Holstebro', 'Holsted', 'Holte', 'Horbelev', 'Hornbæk', 'Hornslet', 'Hornsyld', 'Horsens', - 'Horslunde', 'Hovborg', 'HovedgÃ¥rd', 'Humble', 'Humlebæk', 'Hundested', 'Hundslund', 'Hurup', 'Hvalsø', 'Hvide', - 'Sande', 'Hvidovre', 'Højbjerg', 'Højby', 'Højer', 'Højslev', 'Høng', 'Hørning', 'Hørsholm', 'Hørve', 'HÃ¥rlev', - 'Idestrup', 'Ikast', 'Ishøj', 'Janderup', 'Vestj', 'Jelling', 'Jerslev', 'Sjælland', 'Jerup', 'Jordrup', 'Juelsminde', - 'Jyderup', 'Jyllinge', 'Jystrup', 'Midtsj', 'Jægerspris', 'Kalundborg', 'Kalvehave', 'Karby', 'Karise', 'Karlslunde', - 'Karrebæksminde', 'Karup', 'Kastrup', 'Kerteminde', 'Kettinge', 'Kibæk', 'Kirke', 'Hyllinge', 'SÃ¥by', 'Kjellerup', - 'Klampenborg', 'Klarup', 'Klemensker', 'Klippinge', 'Klovborg', 'Knebel', 'Kokkedal', 'Kolding', 'Kolind', 'Kongens', - 'Lyngby', 'Kongerslev', 'Korsør', 'KrusÃ¥', 'KvistgÃ¥rd', 'Kværndrup', 'København', 'Køge', 'Langebæk', 'Langeskov', - 'LangÃ¥', 'Lejre', 'Lemming', 'Lemvig', 'Lille', 'Skensved', 'Lintrup', 'Liseleje', 'Lundby', 'Lunderskov', 'Lynge', - 'Lystrup', 'Læsø', 'Løgstrup', 'Løgstør', 'Løgumkloster', 'Løkken', 'Løsning', 'LÃ¥sby', 'Malling', 'Mariager', - 'Maribo', 'Marslev', 'Marstal', 'Martofte', 'Melby', 'Mern', 'Mesinge', 'Middelfart', 'Millinge', 'Morud', 'Munke', - 'Bjergby', 'Munkebo', 'Møldrup', 'Mørke', 'Mørkøv', 'MÃ¥løv', 'MÃ¥rslet', 'Nakskov', 'Nexø', 'Nibe', 'Nimtofte', - 'Nordborg', 'Nyborg', 'Nykøbing', 'Nyrup', 'Nysted', 'Nærum', 'Næstved', 'Nørager', 'Nørre', 'Aaby', 'Alslev', - 'Asmindrup', 'Nebel', 'Snede', 'Nørreballe', 'Nørresundby', 'Odder', 'Odense', 'Oksbøl', 'Otterup', 'Oure', 'Outrup', - 'Padborg', 'Pandrup', 'Præstø', 'Randbøl', 'Randers', 'Ranum', 'Rask', 'Mølle', 'Redsted', 'Regstrup', 'Ribe', 'Ringe', - 'Ringkøbing', 'Ringsted', 'Risskov', 'Roskilde', 'Roslev', 'Rude', 'Rudkøbing', 'Ruds', 'Vedby', 'Rungsted', 'Kyst', - 'Rynkeby', 'RyomgÃ¥rd', 'Ryslinge', 'Rødby', 'Rødding', 'Rødekro', 'Rødkærsbro', 'Rødovre', 'Rødvig', 'Stevns', - 'Rønde', 'Rønne', 'Rønnede', 'Rørvig', 'Sabro', 'Sakskøbing', 'Saltum', 'Samsø', 'Sandved', 'Sejerø', 'Silkeborg', - 'Sindal', 'Sjællands', 'Odde', 'Sjølund', 'Skagen', 'Skals', 'Skamby', 'Skanderborg', 'Skibby', 'Skive', 'Skjern', - 'Skodsborg', 'Skovlunde', 'Skælskør', 'Skærbæk', 'Skævinge', 'Skødstrup', 'Skørping', 'SkÃ¥rup', 'Slagelse', - 'Slangerup', 'Smørum', 'Snedsted', 'Snekkersten', 'Snertinge', 'Solbjerg', 'Solrød', 'Sommersted', 'Sorring', 'Sorø', - 'Spentrup', 'Spjald', 'Sporup', 'Spøttrup', 'Stakroge', 'Stege', 'Stenderup', 'Stenlille', 'Stenløse', 'Stenstrup', - 'Stensved', 'Stoholm', 'Jyll', 'Stokkemarke', 'Store', 'Fuglede', 'Heddinge', 'Merløse', 'Storvorde', 'Stouby', - 'Strandby', 'Struer', 'Strøby', 'Stubbekøbing', 'Støvring', 'Suldrup', 'Sulsted', 'Sunds', 'Svaneke', 'Svebølle', - 'Svendborg', 'Svenstrup', 'Svinninge', 'Sydals', 'Sæby', 'Søborg', 'Søby', 'Ærø', 'Søllested', 'Sønder', 'Felding', - 'Sønderborg', 'Søndersø', 'Sørvad', 'Taastrup', 'Tappernøje', 'Tarm', 'Terndrup', 'Them', 'Thisted', 'Thorsø', - 'Thyborøn', 'Thyholm', 'Tikøb', 'Tilst', 'Tinglev', 'Tistrup', 'Tisvildeleje', 'Tjele', 'Tjæreborg', 'Toftlund', - 'Tommerup', 'Toreby', 'Torrig', 'Tranbjerg', 'Tranekær', 'Trige', 'Trustrup', 'Tune', 'Tureby', 'Tylstrup', 'Tølløse', - 'Tønder', 'Tørring', 'TÃ¥rs', 'Ugerløse', 'Uldum', 'Ulfborg', 'Ullerslev', 'Ulstrup', 'Vadum', 'Valby', 'Vallensbæk', - 'Vamdrup', 'Vandel', 'Vanløse', 'Varde', 'Vedbæk', 'Veflinge', 'Vejby', 'Vejen', 'Vejers', 'Vejle', 'Vejstrup', - 'Veksø', 'Vemb', 'Vemmelev', 'Vesløs', 'Vestbjerg', 'Vester', 'Skerninge', 'Vesterborg', 'Vestervig', 'Viborg', 'Viby', - 'Videbæk', 'Vildbjerg', 'Vils', 'Vinderup', 'Vipperød', 'Virum', 'Vissenbjerg', 'Viuf', 'Vodskov', 'Vojens', 'Vonge', - 'Vorbasse', 'Vordingborg', 'Væggerløse', 'Værløse', 'Ærøskøbing', 'Ølgod', 'Ølsted', 'Ølstykke', 'Ørbæk', - 'Ørnhøj', 'Ørsted', 'Djurs', 'Østbirk', 'Øster', 'Assels', 'Ulslev', 'Østermarie', 'ØstervrÃ¥', 'Ã…byhøj', - 'Ã…lbæk', 'Ã…lsgÃ¥rde', 'Ã…rhus', 'Ã…rre', 'Ã…rslev', 'Haarby', 'NivÃ¥', 'Rømø', 'Omme', 'VrÃ¥', 'Ørum', - ); - - /** - * @var array Danish municipalities, called 'kommuner' in danish. - */ - protected static $kommuneNames = array( - 'København', 'Frederiksberg', 'Ballerup', 'Brøndby', 'Dragør', 'Gentofte', 'Gladsaxe', 'Glostrup', 'Herlev', - 'Albertslund', 'Hvidovre', 'Høje Taastrup', 'Lyngby-Taarbæk', 'Rødovre', 'Ishøj', 'TÃ¥rnby', 'Vallensbæk', - 'Allerød', 'Fredensborg', 'Helsingør', 'Hillerød', 'Hørsholm', 'Rudersdal', 'Egedal', 'Frederikssund', 'Greve', - 'Halsnæs', 'Roskilde', 'Solrød', 'Gribskov', 'Odsherred', 'Holbæk', 'Faxe', 'Kalundborg', 'Ringsted', 'Slagelse', - 'Stevns', 'Sorø', 'Lejre', 'Lolland', 'Næstved', 'Guldborgsund', 'Vordingborg', 'Bornholm', 'Middelfart', - 'Christiansø', 'Assens', 'Faaborg-Midtfyn', 'Kerteminde', 'Nyborg', 'Odense', 'Svendborg', 'Nordfyns', 'Langeland', - 'Ærø', 'Haderslev', 'Billund', 'Sønderborg', 'Tønder', 'Esbjerg', 'Fanø', 'Varde', 'Vejen', 'Aabenraa', - 'Fredericia', 'Horsens', 'Kolding', 'Vejle', 'Herning', 'Holstebro', 'Lemvig', 'Struer', 'Syddjurs', 'Furesø', - 'Norddjurs', 'Favrskov', 'Odder', 'Randers', 'Silkeborg', 'Samsø', 'Skanderborg', 'Aarhus', 'Ikast-Brande', - 'Ringkøbing-Skjern', 'Hedensted', 'Morsø', 'Skive', 'Thisted', 'Viborg', 'Brønderslev', 'Frederikshavn', - 'Vesthimmerlands', 'Læsø', 'Rebild', 'Mariagerfjord', 'Jammerbugt', 'Aalborg', 'Hjørring', 'Køge', - ); - - /** - * @var array Danish regions. - */ - protected static $regionNames = array( - 'Region Nordjylland', 'Region Midtjylland', 'Region Syddanmark', 'Region Hovedstaden', 'Region Sjælland', - ); - - /** - * @link https://github.com/umpirsky/country-list/blob/master/country/cldr/da_DK/country.php - * - * @var array Some countries in danish. - */ - protected static $country = array( - 'Andorra', 'Forenede Arabiske Emirater', 'Afghanistan', 'Antigua og Barbuda', 'Anguilla', 'Albanien', 'Armenien', - 'Hollandske Antiller', 'Angola', 'Antarktis', 'Argentina', 'Amerikansk Samoa', 'Østrig', 'Australien', 'Aruba', - 'Ã…land', 'Aserbajdsjan', 'Bosnien-Hercegovina', 'Barbados', 'Bangladesh', 'Belgien', 'Burkina Faso', 'Bulgarien', - 'Bahrain', 'Burundi', 'Benin', 'Saint Barthélemy', 'Bermuda', 'Brunei Darussalam', 'Bolivia', 'Brasilien', 'Bahamas', - 'Bhutan', 'Bouvetø', 'Botswana', 'Hviderusland', 'Belize', 'Canada', 'Cocosøerne', 'Congo-Kinshasa', - 'Centralafrikanske Republik', 'Congo', 'Schweiz', 'Elfenbenskysten', 'Cook-øerne', 'Chile', 'Cameroun', 'Kina', - 'Colombia', 'Costa Rica', 'Serbien og Montenegro', 'Cuba', 'Kap Verde', 'Juleøen', 'Cypern', 'Tjekkiet', 'Tyskland', - 'Djibouti', 'Danmark', 'Dominica', 'Den Dominikanske Republik', 'Algeriet', 'Ecuador', 'Estland', 'Egypten', - 'Vestsahara', 'Eritrea', 'Spanien', 'Etiopien', 'Finland', 'Fiji-øerne', 'Falklandsøerne', - 'Mikronesiens Forenede Stater', 'Færøerne', 'Frankrig', 'Gabon', 'Storbritannien', 'Grenada', 'Georgien', - 'Fransk Guyana', 'Guernsey', 'Ghana', 'Gibraltar', 'Grønland', 'Gambia', 'Guinea', 'Guadeloupe', 'Ækvatorialguinea', - 'Grækenland', 'South Georgia og De Sydlige Sandwichøer', 'Guatemala', 'Guam', 'Guinea-Bissau', 'Guyana', - 'SAR Hongkong', 'Heard- og McDonald-øerne', 'Honduras', 'Kroatien', 'Haiti', 'Ungarn', 'Indonesien', 'Irland', - 'Israel', 'Isle of Man', 'Indien', 'Det Britiske Territorium i Det Indiske Ocean', 'Irak', 'Iran', 'Island', - 'Italien', 'Jersey', 'Jamaica', 'Jordan', 'Japan', 'Kenya', 'Kirgisistan', 'Cambodja', 'Kiribati', 'Comorerne', - 'Saint Kitts og Nevis', 'Nordkorea', 'Sydkorea', 'Kuwait', 'Caymanøerne', 'Kasakhstan', 'Laos', 'Libanon', - 'Saint Lucia', 'Liechtenstein', 'Sri Lanka', 'Liberia', 'Lesotho', 'Litauen', 'Luxembourg', 'Letland', 'Libyen', - 'Marokko', 'Monaco', 'Republikken Moldova', 'Montenegro', 'Saint Martin', 'Madagaskar', 'Marshalløerne', - 'Republikken Makedonien', 'Mali', 'Myanmar', 'Mongoliet', 'SAR Macao', 'Nordmarianerne', 'Martinique', - 'Mauretanien', 'Montserrat', 'Malta', 'Mauritius', 'Maldiverne', 'Malawi', 'Mexico', 'Malaysia', 'Mozambique', - 'Namibia', 'Ny Caledonien', 'Niger', 'Norfolk Island', 'Nigeria', 'Nicaragua', 'Holland', 'Norge', 'Nepal', 'Nauru', - 'Niue', 'New Zealand', 'Oman', 'Panama', 'Peru', 'Fransk Polynesien', 'Papua Ny Guinea', 'Filippinerne', 'Pakistan', - 'Polen', 'Saint Pierre og Miquelon', 'Pitcairn', 'Puerto Rico', 'De palæstinensiske omrÃ¥der', 'Portugal', 'Palau', - 'Paraguay', 'Qatar', 'Reunion', 'Rumænien', 'Serbien', 'Rusland', 'Rwanda', 'Saudi-Arabien', 'Salomonøerne', - 'Seychellerne', 'Sudan', 'Sverige', 'Singapore', 'St. Helena', 'Slovenien', 'Svalbard og Jan Mayen', 'Slovakiet', - 'Sierra Leone', 'San Marino', 'Senegal', 'Somalia', 'Surinam', 'Sao Tome og Principe', 'El Salvador', 'Syrien', - 'Swaziland', 'Turks- og Caicosøerne', 'Tchad', 'Franske Besiddelser i Det Sydlige Indiske Ocean', 'Togo', - 'Thailand', 'Tadsjikistan', 'Tokelau', 'Timor-Leste', 'Turkmenistan', 'Tunesien', 'Tonga', 'Tyrkiet', - 'Trinidad og Tobago', 'Tuvalu', 'Taiwan', 'Tanzania', 'Ukraine', 'Uganda', 'De Mindre Amerikanske Oversøiske Øer', - 'USA', 'Uruguay', 'Usbekistan', 'Vatikanstaten', 'St. Vincent og Grenadinerne', 'Venezuela', - 'De britiske jomfruøer', 'De amerikanske jomfruøer', 'Vietnam', 'Vanuatu', 'Wallis og Futunaøerne', 'Samoa', - 'Yemen', 'Mayotte', 'Sydafrika', 'Zambia', 'Zimbabwe', - ); - - /** - * @var array Danish city format. - */ - protected static $cityFormats = array( - '{{cityName}}', - ); - - /** - * @var array Danish street's name formats. - */ - protected static $streetNameFormats = array( - '{{lastName}}{{streetSuffix}}', - '{{middleName}}{{streetSuffix}}', - '{{lastName}} {{streetSuffixWord}}', - '{{middleName}} {{streetSuffixWord}}', - ); - - /** - * @var array Danish street's address formats. - */ - protected static $streetAddressFormats = array( - '{{streetName}} {{buildingNumber}}', - '{{streetName}} {{buildingNumber}}, {{buildingLevel}}', - '{{streetName}} {{buildingNumber}}, {{buildingLevel}} {{buildingSide}}', - ); - - /** - * @var array Danish address format. - */ - protected static $addressFormats = array( - "{{streetAddress}}\n{{postcode}} {{city}}", - ); - - /** - * Randomly return a real city name. - * - * @return string - */ - public static function cityName() - { - return static::randomElement(static::$cityNames); - } - - /** - * Randomly return a suffix word. - * - * @return string - */ - public static function streetSuffixWord() - { - return static::randomElement(static::$streetSuffixWord); - } - - /** - * Randomly return a building number. - * - * @return string - */ - public static function buildingNumber() - { - return static::toUpper(static::bothify(static::randomElement(static::$buildingNumber))); - } - - /** - * Randomly return a building level. - * - * @return string - */ - public static function buildingLevel() - { - return static::numerify(static::randomElement(static::$buildingLevel)); - } - - /** - * Randomly return a side of the building. - * - * @return string - */ - public static function buildingSide() - { - return static::randomElement(static::$buildingSide); - } - - /** - * Randomly return a real municipality name, called 'kommune' in danish. - * - * @return string - */ - public static function kommune() - { - return static::randomElement(static::$kommuneNames); - } - - /** - * Randomly return a real region name. - * - * @return string - */ - public static function region() - { - return static::randomElement(static::$regionNames); - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/da_DK/Company.php b/vendor/fzaninotto/faker/src/Faker/Provider/da_DK/Company.php deleted file mode 100644 index b9f289cc..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/da_DK/Company.php +++ /dev/null @@ -1,70 +0,0 @@ - - */ -class Company extends \Faker\Provider\Company -{ - /** - * @var array Danish company name formats. - */ - protected static $formats = array( - '{{lastName}} {{companySuffix}}', - '{{lastName}} {{companySuffix}}', - '{{lastName}} {{companySuffix}}', - '{{firstname}} {{lastName}} {{companySuffix}}', - '{{middleName}} {{companySuffix}}', - '{{middleName}} {{companySuffix}}', - '{{middleName}} {{companySuffix}}', - '{{firstname}} {{middleName}} {{companySuffix}}', - '{{lastName}} & {{lastName}} {{companySuffix}}', - '{{lastName}} og {{lastName}} {{companySuffix}}', - '{{lastName}} & {{lastName}} {{companySuffix}}', - '{{lastName}} og {{lastName}} {{companySuffix}}', - '{{middleName}} & {{middleName}} {{companySuffix}}', - '{{middleName}} og {{middleName}} {{companySuffix}}', - '{{middleName}} & {{lastName}}', - '{{middleName}} og {{lastName}}', - ); - - /** - * @var array Company suffixes. - */ - protected static $companySuffix = array('ApS', 'A/S', 'I/S', 'K/S'); - - /** - * @link http://cvr.dk/Site/Forms/CMS/DisplayPage.aspx?pageid=60 - * - * @var string CVR number format. - */ - protected static $cvrFormat = '%#######'; - - /** - * @link http://cvr.dk/Site/Forms/CMS/DisplayPage.aspx?pageid=60 - * - * @var string P number (production number) format. - */ - protected static $pFormat = '%#########'; - - /** - * Generates a CVR number (8 digits). - * - * @return string - */ - public static function cvr() - { - return static::numerify(static::$cvrFormat); - } - - /** - * Generates a P entity number (10 digits). - * - * @return string - */ - public static function p() - { - return static::numerify(static::$pFormat); - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/da_DK/Internet.php b/vendor/fzaninotto/faker/src/Faker/Provider/da_DK/Internet.php deleted file mode 100644 index 1f778def..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/da_DK/Internet.php +++ /dev/null @@ -1,30 +0,0 @@ - - */ -class Internet extends \Faker\Provider\Internet -{ - /** - * @var array Some safe email TLD. - */ - protected static $safeEmailTld = array( - 'org', 'com', 'net', 'dk', 'dk', 'dk', - ); - - /** - * @var array Some email domains in Denmark. - */ - protected static $freeEmailDomain = array( - 'gmail.com', 'yahoo.com', 'yahoo.dk', 'hotmail.com', 'hotmail.dk', 'mail.dk', 'live.dk' - ); - - /** - * @var array Some TLD. - */ - protected static $tld = array( - 'com', 'com', 'com', 'biz', 'info', 'net', 'org', 'dk', 'dk', 'dk', - ); -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/da_DK/Payment.php b/vendor/fzaninotto/faker/src/Faker/Provider/da_DK/Payment.php deleted file mode 100644 index 6a5b6a84..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/da_DK/Payment.php +++ /dev/null @@ -1,19 +0,0 @@ - - */ -class Person extends \Faker\Provider\Person -{ - /** - * @var array Danish person name formats. - */ - protected static $maleNameFormats = array( - '{{firstNameMale}} {{lastName}}', - '{{firstNameMale}} {{lastName}}', - '{{firstNameMale}} {{lastName}}', - '{{firstNameMale}} {{middleName}} {{lastName}}', - '{{firstNameMale}} {{middleName}} {{lastName}}', - '{{firstNameMale}} {{middleName}}-{{middleName}} {{lastName}}', - '{{firstNameMale}} {{middleName}} {{middleName}}-{{lastName}}', - ); - - protected static $femaleNameFormats = array( - '{{firstNameFemale}} {{lastName}}', - '{{firstNameFemale}} {{lastName}}', - '{{firstNameFemale}} {{lastName}}', - '{{firstNameFemale}} {{middleName}} {{lastName}}', - '{{firstNameFemale}} {{middleName}} {{lastName}}', - '{{firstNameFemale}} {{middleName}}-{{middleName}} {{lastName}}', - '{{firstNameFemale}} {{middleName}} {{middleName}}-{{lastName}}', - ); - - /** - * @var array Danish first names. - */ - protected static $firstNameMale = array( - 'Aage', 'Adam', 'Adolf', 'Ahmad', 'Ahmed', 'Aksel', 'Albert', 'Alex', 'Alexander', 'Alf', 'Alfred', 'Ali', 'Allan', - 'Anders', 'Andreas', 'Anker', 'Anton', 'Arne', 'Arnold', 'Arthur', 'Asbjørn', 'Asger', 'August', 'Axel', 'Benjamin', - 'Benny', 'Bent', 'Bernhard', 'Birger', 'Bjarne', 'Bjørn', 'Bo', 'Brian', 'Bruno', 'Børge', 'Carl', 'Carlo', - 'Carsten', 'Casper', 'Charles', 'Chris', 'Christian', 'Christoffer', 'Christopher', 'Claus', 'Dan', 'Daniel', 'David', 'Dennis', - 'Ebbe', 'Edmund', 'Edvard', 'Egon', 'Einar', 'Ejvind', 'Elias', 'Emanuel', 'Emil', 'Erik', 'Erland', 'Erling', - 'Ernst', 'Esben', 'Ferdinand', 'Finn', 'Flemming', 'Frank', 'Freddy', 'Frederik', 'Frits', 'Fritz', 'Frode', 'Georg', - 'Gerhard', 'Gert', 'Gunnar', 'Gustav', 'Hans', 'Harald', 'Harry', 'Hassan', 'Heine', 'Heinrich', 'Helge', 'Helmer', - 'Helmuth', 'Henning', 'Henrik', 'Henry', 'Herman', 'Hermann', 'Holger', 'Hugo', 'Ib', 'Ibrahim', 'Ivan', 'Jack', - 'Jacob', 'Jakob', 'Jan', 'Janne', 'Jens', 'Jeppe', 'Jesper', 'Jimmi', 'Jimmy', 'Joachim', 'Johan', 'Johannes', - 'John', 'Johnny', 'Jon', 'Jonas', 'Jonathan', 'Josef', 'Jul', 'Julius', 'Jørgen', 'Jørn', 'Kai', 'Kaj', - 'Karl', 'Karlo', 'Karsten', 'Kasper', 'Kenneth', 'Kent', 'Kevin', 'Kjeld', 'Klaus', 'Knud', 'Kristian', 'Kristoffer', - 'Kurt', 'Lars', 'Lasse', 'Leif', 'Lennart', 'Leo', 'Leon', 'Louis', 'Lucas', 'Lukas', 'Mads', 'Magnus', - 'Malthe', 'Marc', 'Marcus', 'Marinus', 'Marius', 'Mark', 'Markus', 'Martin', 'Martinus', 'Mathias', 'Max', 'Michael', - 'Mikael', 'Mike', 'Mikkel', 'Mogens', 'Mohamad', 'Mohamed', 'Mohammad', 'Morten', 'Nick', 'Nicklas', 'Nicolai', 'Nicolaj', - 'Niels', 'Niklas', 'Nikolaj', 'Nils', 'Olaf', 'Olav', 'Ole', 'Oliver', 'Oscar', 'Oskar', 'Otto', 'Ove', - 'Palle', 'Patrick', 'Paul', 'Peder', 'Per', 'Peter', 'Philip', 'Poul', 'Preben', 'Rasmus', 'Rene', 'René', - 'Richard', 'Robert', 'Rolf', 'Rudolf', 'Rune', 'Sebastian', 'Sigurd', 'Simon', 'Simone', 'Steen', 'Stefan', 'Steffen', - 'Sten', 'Stig', 'Sune', 'Sven', 'Svend', 'Søren', 'Tage', 'Theodor', 'Thomas', 'Thor', 'Thorvald', 'Tim', - 'Tobias', 'Tom', 'Tommy', 'Tonny', 'Torben', 'Troels', 'Uffe', 'Ulrik', 'Vagn', 'Vagner', 'Valdemar', 'Vang', - 'Verner', 'Victor', 'Viktor', 'Villy', 'Walther', 'Werner', 'Wilhelm', 'William', 'Willy', 'Ã…ge', 'Bendt', 'Bjarke', - 'Chr', 'Eigil', 'Ejgil', 'Ejler', 'Ejnar', 'Ejner', 'Evald', 'Folmer', 'Gunner', 'Gurli', 'Hartvig', 'Herluf', 'Hjalmar', - 'Ingemann', 'Ingolf', 'Ingvard', 'Keld', 'Kresten', 'Laurids', 'Laurits', 'Lauritz', 'Ludvig', 'Lynge', 'Oluf', 'Osvald', - 'Povl', 'Richardt', 'Sigfred', 'Sofus', 'Thorkild', 'Viggo', 'Vilhelm', 'Villiam', - ); - - protected static $firstNameFemale = array( - 'Aase', 'Agathe', 'Agnes', 'Alberte', 'Alexandra', 'Alice', 'Alma', 'Amalie', 'Amanda', 'Andrea', 'Ane', 'Anette', 'Anita', - 'Anja', 'Ann', 'Anna', 'Annalise', 'Anne', 'Anne-Lise', 'Anne-Marie', 'Anne-Mette', 'Annelise', 'Annette', 'Anni', 'Annie', - 'Annika', 'Anny', 'Asta', 'Astrid', 'Augusta', 'Benedikte', 'Bente', 'Berit', 'Bertha', 'Betina', 'Bettina', 'Betty', - 'Birgit', 'Birgitte', 'Birte', 'Birthe', 'Bitten', 'Bodil', 'Britt', 'Britta', 'Camilla', 'Carina', 'Carla', 'Caroline', - 'Cathrine', 'Cecilie', 'Charlotte', 'Christa', 'Christen', 'Christiane', 'Christina', 'Christine', 'Clara', 'Conni', 'Connie', 'Conny', - 'Dagmar', 'Dagny', 'Diana', 'Ditte', 'Dora', 'Doris', 'Dorte', 'Dorthe', 'Ebba', 'Edel', 'Edith', 'Eleonora', - 'Eli', 'Elin', 'Eline', 'Elinor', 'Elisa', 'Elisabeth', 'Elise', 'Ella', 'Ellen', 'Ellinor', 'Elly', 'Elna', - 'Elsa', 'Else', 'Elsebeth', 'Elvira', 'Emilie', 'Emma', 'Emmy', 'Erna', 'Ester', 'Esther', 'Eva', 'Evelyn', - 'Frede', 'Frederikke', 'Freja', 'Frida', 'Gerda', 'Gertrud', 'Gitte', 'Grete', 'Grethe', 'Gudrun', 'Hanna', 'Hanne', - 'Hardy', 'Harriet', 'Hedvig', 'Heidi', 'Helen', 'Helena', 'Helene', 'Helga', 'Helle', 'Henny', 'Henriette', 'Herdis', - 'Hilda', 'Iben', 'Ida', 'Ilse', 'Ina', 'Inga', 'Inge', 'Ingeborg', 'Ingelise', 'Inger', 'Ingrid', 'Irene', - 'Iris', 'Irma', 'Isabella', 'Jane', 'Janni', 'Jannie', 'Jeanette', 'Jeanne', 'Jenny', 'Jes', 'Jette', 'Joan', - 'Johanna', 'Johanne', 'Jonna', 'Josefine', 'Josephine', 'Juliane', 'Julie', 'Jytte', 'Kaja', 'Kamilla', 'Karen', 'Karin', - 'Karina', 'Karla', 'Karoline', 'Kate', 'Kathrine', 'Katja', 'Katrine', 'Ketty', 'Kim', 'Kirsten', 'Kirstine', 'Klara', - 'Krista', 'Kristen', 'Kristina', 'Kristine', 'Laila', 'Laura', 'Laurine', 'Lea', 'Lena', 'Lene', 'Lilian', 'Lilli', - 'Lillian', 'Lilly', 'Linda', 'Line', 'Lis', 'Lisa', 'Lisbet', 'Lisbeth', 'Lise', 'Liselotte', 'Lissi', 'Lissy', - 'Liv', 'Lizzie', 'Lone', 'Lotte', 'Louise', 'Lydia', 'Lykke', 'Lærke', 'Magda', 'Magdalene', 'Mai', 'Maiken', - 'Maj', 'Maja', 'Majbritt', 'Malene', 'Maren', 'Margit', 'Margrethe', 'Maria', 'Mariane', 'Marianne', 'Marie', 'Marlene', - 'Martha', 'Martine', 'Mary', 'Mathilde', 'Matilde', 'Merete', 'Merethe', 'Meta', 'Mette', 'Mia', 'Michelle', 'Mie', - 'Mille', 'Minna', 'Mona', 'Monica', 'Nadia', 'Nancy', 'Nanna', 'Nicoline', 'Nikoline', 'Nina', 'Ninna', 'Oda', - 'Olga', 'Olivia', 'Orla', 'Paula', 'Pauline', 'Pernille', 'Petra', 'Pia', 'Poula', 'Ragnhild', 'Randi', 'Rasmine', - 'Rebecca', 'Rebekka', 'Rigmor', 'Rikke', 'Rita', 'Rosa', 'Rose', 'Ruth', 'Sabrina', 'Sandra', 'Sanne', 'Sara', - 'Sarah', 'Selma', 'Severin', 'Sidsel', 'Signe', 'Sigrid', 'Sine', 'Sofia', 'Sofie', 'Solveig', 'Solvejg', 'Sonja', - 'Sophie', 'Stephanie', 'Stine', 'Susan', 'Susanne', 'Tanja', 'Thea', 'Theodora', 'Therese', 'Thi', 'Thyra', 'Tina', - 'Tine', 'Tove', 'Trine', 'Ulla', 'Vera', 'Vibeke', 'Victoria', 'Viktoria', 'Viola', 'Vita', 'Vivi', 'Vivian', - 'Winnie', 'Yrsa', 'Yvonne', 'Agnete', 'Agnethe', 'Alfrida', 'Alvilda', 'Anine', 'Bolette', 'Dorthea', 'Gunhild', - 'Hansine', 'Inge-Lise', 'Jensine', 'Juel', 'Jørgine', 'Kamma', 'Kristiane', 'Maj-Britt', 'Margrete', 'Metha', 'Nielsine', - 'Oline', 'Petrea', 'Petrine', 'Pouline', 'Ragna', 'Sørine', 'Thora', 'Valborg', 'Vilhelmine', - ); - - /** - * @var array Danish middle names. - */ - protected static $middleName = array( - 'Møller', 'Lund', 'Holm', 'Jensen', 'Juul', 'Nielsen', 'Kjær', 'Hansen', 'Skov', 'Østergaard', 'Vestergaard', - 'Nørgaard', 'Dahl', 'Bach', 'Friis', 'Søndergaard', 'Andersen', 'Bech', 'Pedersen', 'Bruun', 'Nygaard', 'Winther', - 'Bang', 'Krogh', 'Schmidt', 'Christensen', 'Hedegaard', 'Toft', 'Damgaard', 'Holst', 'Sørensen', 'Juhl', 'Munk', - 'Skovgaard', 'Søgaard', 'Aagaard', 'Berg', 'Dam', 'Petersen', 'Lind', 'Overgaard', 'Brandt', 'Larsen', 'Bak', 'Schou', - 'Vinther', 'Bjerregaard', 'Riis', 'Bundgaard', 'Kruse', 'Mølgaard', 'Hjorth', 'Ravn', 'Madsen', 'Rasmussen', - 'Jørgensen', 'Kristensen', 'Bonde', 'Bay', 'Hougaard', 'Dalsgaard', 'Kjærgaard', 'Haugaard', 'Munch', 'Bjerre', 'Due', - 'Sloth', 'Leth', 'Kofoed', 'Thomsen', 'Kragh', 'Højgaard', 'Dalgaard', 'Hjort', 'Kirkegaard', 'Bøgh', 'Beck', 'Nissen', - 'Rask', 'Høj', 'Brix', 'Storm', 'Buch', 'Bisgaard', 'Birch', 'Gade', 'Kjærsgaard', 'Hald', 'Lindberg', 'Høgh', 'Falk', - 'Koch', 'Thorup', 'Borup', 'Knudsen', 'Vedel', 'Poulsen', 'Bøgelund', 'Juel', 'Frost', 'Hvid', 'Bjerg', 'Bæk', 'Elkjær', - 'Hartmann', 'Kirk', 'Sand', 'Sommer', 'Skou', 'Nedergaard', 'Meldgaard', 'Brink', 'Lindegaard', 'Fischer', 'Rye', - 'Hoffmann', 'Daugaard', 'Gram', 'Johansen', 'Meyer', 'Schultz', 'Fogh', 'Bloch', 'Lundgaard', 'Brøndum', 'Jessen', - 'Busk', 'Holmgaard', 'Lindholm', 'Krog', 'Egelund', 'Engelbrecht', 'Buus', 'Korsgaard', 'Ellegaard', 'Tang', 'Steen', - 'Kvist', 'Olsen', 'Nørregaard', 'Fuglsang', 'Wulff', 'Damsgaard', 'Hauge', 'Sonne', 'Skytte', 'Brun', 'Kronborg', - 'Abildgaard', 'Fabricius', 'Bille', 'Skaarup', 'Rahbek', 'Borg', 'Torp', 'Klitgaard', 'Nørskov', 'Greve', 'Hviid', - 'Mørch', 'Buhl', 'Rohde', 'Mørk', 'Vendelbo', 'Bjørn', 'Laursen', 'Egede', 'Rytter', 'Lehmann', 'Guldberg', 'Rosendahl', - 'Krarup', 'Krogsgaard', 'Westergaard', 'Rosendal', 'Fisker', 'Højer', 'Rosenberg', 'Svane', 'Storgaard', 'Pihl', - 'Mohamed', 'Bülow', 'Birk', 'Hammer', 'Bro', 'Kaas', 'Clausen', 'Nymann', 'Egholm', 'Ingemann', 'Haahr', 'Olesen', - 'Nøhr', 'Brinch', 'Bjerring', 'Christiansen', 'Schrøder', 'Guldager', 'Skjødt', 'Højlund', 'Ørum', 'Weber', - 'Bødker', 'Bruhn', 'Stampe', 'Astrup', 'Schack', 'Mikkelsen', 'Høyer', 'Husted', 'Skriver', 'Lindgaard', 'Yde', - 'Sylvest', 'Lykkegaard', 'Ploug', 'Gammelgaard', 'Pilgaard', 'Brogaard', 'Degn', 'Kaae', 'Kofod', 'Grønbæk', - 'Lundsgaard', 'Bagge', 'Lyng', 'Rømer', 'Kjeldgaard', 'Hovgaard', 'Groth', 'Hyldgaard', 'Ladefoged', 'Jacobsen', - 'Linde', 'Lange', 'Stokholm', 'Bredahl', 'Hein', 'Mose', 'Bækgaard', 'Sandberg', 'Klarskov', 'Kamp', 'Green', - 'Iversen', 'Riber', 'Smedegaard', 'Nyholm', 'Vad', 'Balle', 'Kjeldsen', 'Strøm', 'Borch', 'Lerche', 'Grønlund', - 'VestergÃ¥rd', 'ØstergÃ¥rd', 'Nyborg', 'Qvist', 'Damkjær', 'Kold', 'Sønderskov', 'Bank', - ); - - /** - * @var array Danish last names. - */ - protected static $lastName = array( - 'Jensen', 'Nielsen', 'Hansen', 'Pedersen', 'Andersen', 'Christensen', 'Larsen', 'Sørensen', 'Rasmussen', 'Petersen', - 'Jørgensen', 'Madsen', 'Kristensen', 'Olsen', 'Christiansen', 'Thomsen', 'Poulsen', 'Johansen', 'Knudsen', 'Mortensen', - 'Møller', 'Jacobsen', 'Jakobsen', 'Olesen', 'Frederiksen', 'Mikkelsen', 'Henriksen', 'Laursen', 'Lund', 'Schmidt', - 'Eriksen', 'Holm', 'Kristiansen', 'Clausen', 'Simonsen', 'Svendsen', 'Andreasen', 'Iversen', 'Jeppesen', 'Mogensen', - 'Jespersen', 'Nissen', 'Lauridsen', 'Frandsen', 'Østergaard', 'Jepsen', 'Kjær', 'Carlsen', 'Vestergaard', 'Jessen', - 'Nørgaard', 'Dahl', 'Christoffersen', 'Skov', 'Søndergaard', 'Bertelsen', 'Bruun', 'Lassen', 'Bach', 'Gregersen', - 'Friis', 'Johnsen', 'Steffensen', 'Kjeldsen', 'Bech', 'Krogh', 'Lauritsen', 'Danielsen', 'Mathiesen', 'Andresen', - 'Brandt', 'Winther', 'Toft', 'Ravn', 'Mathiasen', 'Dam', 'Holst', 'Nilsson', 'Lind', 'Berg', 'Schou', 'Overgaard', - 'Kristoffersen', 'Schultz', 'Klausen', 'Karlsen', 'Paulsen', 'Hermansen', 'Thorsen', 'Koch', 'Thygesen', 'Bak', 'Kruse', - 'Bang', 'Juhl', 'Davidsen', 'Berthelsen', 'Nygaard', 'Lorentzen', 'Villadsen', 'Lorenzen', 'Damgaard', 'Bjerregaard', - 'Lange', 'Hedegaard', 'Bendtsen', 'Lauritzen', 'Svensson', 'Justesen', 'Juul', 'Hald', 'Beck', 'Kofoed', 'Søgaard', - 'Meyer', 'Kjærgaard', 'Riis', 'Johannsen', 'Carstensen', 'Bonde', 'Ibsen', 'Fischer', 'Andersson', 'Bundgaard', - 'Johannesen', 'Eskildsen', 'Hemmingsen', 'Andreassen', 'Thomassen', 'Schrøder', 'Persson', 'Hjorth', 'Enevoldsen', - 'Nguyen', 'Henningsen', 'Jønsson', 'Olsson', 'Asmussen', 'Michelsen', 'Vinther', 'Markussen', 'Kragh', 'Thøgersen', - 'Johansson', 'Dalsgaard', 'Gade', 'Bjerre', 'Ali', 'Laustsen', 'Buch', 'Ludvigsen', 'Hougaard', 'Kirkegaard', 'Marcussen', - 'Mølgaard', 'Ipsen', 'Sommer', 'Ottosen', 'Müller', 'Krog', 'Hoffmann', 'Clemmensen', 'Nikolajsen', 'Brodersen', - 'Therkildsen', 'Leth', 'Michaelsen', 'Graversen', 'Frost', 'Dalgaard', 'Albertsen', 'Laugesen', 'Due', 'Ebbesen', - 'Munch', 'Svenningsen', 'Ottesen', 'Fisker', 'Albrechtsen', 'Axelsen', 'Erichsen', 'Sloth', 'Bentsen', 'Westergaard', - 'Bisgaard', 'Nicolaisen', 'Magnussen', 'Thuesen', 'Povlsen', 'Thorup', 'Høj', 'Bentzen', 'Johannessen', 'Vilhelmsen', - 'Isaksen', 'Bendixen', 'Ovesen', 'Villumsen', 'Lindberg', 'Thomasen', 'Kjærsgaard', 'Buhl', 'Kofod', 'Ahmed', 'Smith', - 'Storm', 'Christophersen', 'Bruhn', 'Matthiesen', 'Wagner', 'Bjerg', 'Gram', 'Nedergaard', 'Dinesen', 'Mouritsen', - 'Boesen', 'Borup', 'Abrahamsen', 'Wulff', 'Gravesen', 'Rask', 'Pallesen', 'Greve', 'Korsgaard', 'Haugaard', 'Josefsen', - 'Bæk', 'Espersen', 'Thrane', 'Mørch', 'Frank', 'Lynge', 'Rohde', 'Larsson', 'Hammer', 'Torp', 'Sonne', 'Boysen', 'Bay', - 'Pihl', 'Fabricius', 'Høyer', 'Birch', 'Skou', 'Kirk', 'Antonsen', 'Høgh', 'Damsgaard', 'Dall', 'Truelsen', 'Daugaard', - 'Fuglsang', 'Martinsen', 'Therkelsen', 'Jansen', 'Karlsson', 'Caspersen', 'Steen', 'Callesen', 'Balle', 'Bloch', 'Smidt', - 'Rahbek', 'Hjort', 'Bjørn', 'Skaarup', 'Sand', 'Storgaard', 'Willumsen', 'Busk', 'Hartmann', 'Ladefoged', 'Skovgaard', - 'Philipsen', 'Damm', 'Haagensen', 'Hviid', 'Duus', 'Kvist', 'Adamsen', 'Mathiassen', 'Degn', 'Borg', 'Brix', 'Troelsen', - 'Ditlevsen', 'Brøndum', 'Svane', 'Mohamed', 'Birk', 'Brink', 'Hassan', 'Vester', 'Elkjær', 'Lykke', 'Nørregaard', - 'Meldgaard', 'Mørk', 'Hvid', 'Abildgaard', 'Nicolajsen', 'Bengtsson', 'Stokholm', 'Ahmad', 'Wind', 'Rømer', 'Gundersen', - 'Carlsson', 'Grøn', 'Khan', 'Skytte', 'Bagger', 'Hendriksen', 'Rosenberg', 'Jonassen', 'Severinsen', 'Jürgensen', - 'Boisen', 'Groth', 'Bager', 'Fogh', 'Hussain', 'Samuelsen', 'Pilgaard', 'Bødker', 'Dideriksen', 'Brogaard', 'Lundberg', - 'Hansson', 'Schwartz', 'Tran', 'Skriver', 'Klitgaard', 'Hauge', 'Højgaard', 'Qvist', 'Voss', 'Strøm', 'Wolff', 'Krarup', - 'Green', 'Odgaard', 'Tønnesen', 'Blom', 'Gammelgaard', 'Jæger', 'Kramer', 'Astrup', 'Würtz', 'Lehmann', 'Koefoed', - 'Skøtt', 'Lundsgaard', 'Bøgh', 'Vang', 'Martinussen', 'Sandberg', 'Weber', 'Holmgaard', 'Bidstrup', 'Meier', 'Drejer', - 'Schneider', 'Joensen', 'Dupont', 'Lorentsen', 'Bro', 'Bagge', 'Terkelsen', 'Kaspersen', 'Keller', 'Eliasen', 'Lyberth', - 'Husted', 'Mouritzen', 'Krag', 'Kragelund', 'Nørskov', 'Vad', 'Jochumsen', 'Hein', 'Krogsgaard', 'Kaas', 'Tolstrup', - 'Ernst', 'Hermann', 'Børgesen', 'Skjødt', 'Holt', 'Buus', 'Gotfredsen', 'Kjeldgaard', 'Broberg', 'Roed', 'Sivertsen', - 'Bergmann', 'Bjerrum', 'Petersson', 'Smed', 'Jeremiassen', 'Nyborg', 'Borch', 'Foged', 'Terp', 'Mark', 'Busch', - 'Lundgaard', 'Boye', 'Yde', 'Hinrichsen', 'Matzen', 'Esbensen', 'Hertz', 'Westh', 'Holmberg', 'Geertsen', 'Raun', - 'Aagaard', 'Kock', 'Falk', 'Munk', - ); - - /** - * Randomly return a danish name. - * - * @return string - */ - public static function middleName() - { - return static::randomElement(static::$middleName); - } - - /** - * Randomly return a danish CPR number (Personnal identification number) format. - * - * @link http://cpr.dk/cpr/site.aspx?p=16 - * @link http://en.wikipedia.org/wiki/Personal_identification_number_%28Denmark%29 - * - * @return string - */ - public static function cpr() - { - $birthdate = new \DateTime('@' . mt_rand(0, time())); - - return sprintf('%s-%s', $birthdate->format('dmy'), static::numerify('%###')); - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/da_DK/PhoneNumber.php b/vendor/fzaninotto/faker/src/Faker/Provider/da_DK/PhoneNumber.php deleted file mode 100644 index af96d3f4..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/da_DK/PhoneNumber.php +++ /dev/null @@ -1,21 +0,0 @@ - - */ -class PhoneNumber extends \Faker\Provider\PhoneNumber -{ - /** - * @var array Danish phonenumber formats. - */ - protected static $formats = array( - '+45 ## ## ## ##', - '+45 #### ####', - '+45########', - '## ## ## ##', - '#### ####', - '########', - ); -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/de_AT/Address.php b/vendor/fzaninotto/faker/src/Faker/Provider/de_AT/Address.php deleted file mode 100644 index 861f6fcd..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/de_AT/Address.php +++ /dev/null @@ -1,116 +0,0 @@ - 'Aargau'), - array('AI' => 'Appenzell Innerrhoden'), - array('AR' => 'Appenzell Ausserrhoden'), - array('BE' => 'Bern'), - array('BL' => 'Basel-Landschaft'), - array('BS' => 'Basel-Stadt'), - array('FR' => 'Freiburg'), - array('GE' => 'Genf'), - array('GL' => 'Glarus'), - array('GR' => 'Graubünden'), - array('JU' => 'Jura',), - array('LU' => 'Luzern'), - array('NE' => 'Neuenburg'), - array('NW' => 'Nidwalden'), - array('OW' => 'Obwalden'), - array('SG' => 'St. Gallen'), - array('SH' => 'Schaffhausen'), - array('SO' => 'Solothurn'), - array('SZ' => 'Schwyz'), - array('TG' => 'Thurgau'), - array('TI' => 'Tessin'), - array('UR' => 'Uri'), - array('VD' => 'Waadt'), - array('VS' => 'Wallis'), - array('ZG' => 'Zug'), - array('ZH' => 'Zürich') - ); - - protected static $country = array( - 'Afghanistan', 'Alandinseln', 'Albanien', 'Algerien', 'Amerikanisch-Ozeanien', 'Amerikanisch-Samoa', 'Amerikanische Jungferninseln', 'Andorra', 'Angola', 'Anguilla', 'Antarktis', 'Antigua und Barbuda', 'Argentinien', 'Armenien', 'Aruba', 'Aserbaidschan', 'Australien', 'Ägypten', 'Äquatorialguinea', 'Äthiopien', 'Äusseres Ozeanien', - 'Bahamas', 'Bahrain', 'Bangladesch', 'Barbados', 'Belarus', 'Belgien', 'Belize', 'Benin', 'Bermuda', 'Bhutan', 'Bolivien', 'Bosnien und Herzegowina', 'Botsuana', 'Bouvetinsel', 'Brasilien', 'Britische Jungferninseln', 'Britisches Territorium im Indischen Ozean', 'Brunei Darussalam', 'Bulgarien', 'Burkina Faso', 'Burundi', - 'Chile', 'China', 'Cookinseln', 'Costa Rica', 'Côte d’Ivoire', - 'Demokratische Republik Kongo', 'Demokratische Volksrepublik Korea', 'Deutschland', 'Dominica', 'Dominikanische Republik', 'Dschibuti', 'Dänemark', - 'Ecuador', 'El Salvador', 'Eritrea', 'Estland', 'Europäische Union', - 'Falklandinseln', 'Fidschi', 'Finnland', 'Frankreich', 'Französisch-Guayana', 'Französisch-Polynesien', 'Französische Süd- und Antarktisgebiete', 'Färöer', - 'Gabun', 'Gambia', 'Georgien', 'Ghana', 'Gibraltar', 'Grenada', 'Griechenland', 'Grönland', 'Guadeloupe', 'Guam', 'Guatemala', 'Guernsey', 'Guinea', 'Guinea-Bissau', 'Guyana', - 'Haiti', 'Heard- und McDonald-Inseln', 'Honduras', - 'Indien', 'Indonesien', 'Irak', 'Iran', 'Irland', 'Island', 'Isle of Man', 'Israel', 'Italien', - 'Jamaika', 'Japan', 'Jemen', 'Jersey', 'Jordanien', - 'Kaimaninseln', 'Kambodscha', 'Kamerun', 'Kanada', 'Kap Verde', 'Kasachstan', 'Katar', 'Kenia', 'Kirgisistan', 'Kiribati', 'Kokosinseln', 'Kolumbien', 'Komoren', 'Kongo', 'Kroatien', 'Kuba', 'Kuwait', - 'Laos', 'Lesotho', 'Lettland', 'Libanon', 'Liberia', 'Libyen', 'Liechtenstein', 'Litauen', 'Luxemburg', - 'Madagaskar', 'Malawi', 'Malaysia', 'Malediven', 'Mali', 'Malta', 'Marokko', 'Marshallinseln', 'Martinique', 'Mauretanien', 'Mauritius', 'Mayotte', 'Mazedonien', 'Mexiko', 'Mikronesien', 'Monaco', 'Mongolei', 'Montenegro', 'Montserrat', 'Mosambik', 'Myanmar', - 'Namibia', 'Nauru', 'Nepal', 'Neukaledonien', 'Neuseeland', 'Nicaragua', 'Niederlande', 'Niederländische Antillen', 'Niger', 'Nigeria', 'Niue', 'Norfolkinsel', 'Norwegen', 'Nördliche Marianen', - 'Oman', 'Osttimor', 'Österreich', - 'Pakistan', 'Palau', 'Palästinensische Gebiete', 'Panama', 'Papua-Neuguinea', 'Paraguay', 'Peru', 'Philippinen', 'Pitcairn', 'Polen', 'Portugal', 'Puerto Rico', - 'Republik Korea', 'Republik Moldau', 'Ruanda', 'Rumänien', 'Russische Föderation', 'Réunion', - 'Salomonen', 'Sambia', 'Samoa', 'San Marino', 'Saudi-Arabien', 'Schweden', 'Schweiz', 'Senegal', 'Serbien', 'Serbien und Montenegro', 'Seychellen', 'Sierra Leone', 'Simbabwe', 'Singapur', 'Slowakei', 'Slowenien', 'Somalia', 'Sonderverwaltungszone Hongkong', 'Sonderverwaltungszone Macao', 'Spanien', 'Sri Lanka', 'St. Barthélemy', 'St. Helena', 'St. Kitts und Nevis', 'St. Lucia', 'St. Martin', 'St. Pierre und Miquelon', 'St. Vincent und die Grenadinen', 'Sudan', 'Suriname', 'Svalbard und Jan Mayen', 'Swasiland', 'Syrien', 'São Tomé und Príncipe', 'Südafrika', 'Südgeorgien und die Südlichen Sandwichinseln', - 'Tadschikistan', 'Taiwan', 'Tansania', 'Thailand', 'Togo', 'Tokelau', 'Tonga', 'Trinidad und Tobago', 'Tschad', 'Tschechische Republik', 'Tunesien', 'Turkmenistan', 'Turks- und Caicosinseln', 'Tuvalu', 'Türkei', - 'Uganda', 'Ukraine', 'Unbekannte oder ungültige Region', 'Ungarn', 'Uruguay', 'Usbekistan', - 'Vanuatu', 'Vatikanstadt', 'Venezuela', 'Vereinigte Arabische Emirate', 'Vereinigte Staaten', 'Vereinigtes Königreich', 'Vietnam', - 'Wallis und Futuna', 'Weihnachtsinsel', 'Westsahara', - 'Zentralafrikanische Republik', 'Zypern', - ); - - protected static $cityFormats = array( - '{{cityName}}', - ); - - protected static $streetNameFormats = array( - '{{lastName}}{{streetSuffixShort}}', - '{{cityName}}{{streetSuffixShort}}', - '{{firstName}}-{{lastName}}-{{streetSuffixLong}}' - ); - - protected static $streetAddressFormats = array( - '{{streetName}} {{buildingNumber}}', - ); - protected static $addressFormats = array( - "{{streetAddress}}\n{{postcode}} {{city}}", - ); - - /** - * Returns a random city name. - * @example Luzern - * @return string - */ - public function cityName() - { - return static::randomElement(static::$cityNames); - } - - /** - * Returns a random street suffix. - * @example str. - * @return string - */ - public function streetSuffixShort() - { - return static::randomElement(static::$streetSuffixShort); - } - - /** - * Returns a random street suffix. - * @example Strasse - * @return string - */ - public function streetSuffixLong() - { - return static::randomElement(static::$streetSuffixLong); - } - - /** - * Returns a canton - * @example array('BE' => 'Bern') - * @return array - */ - public static function canton() - { - return static::randomElement(static::$canton); - } - - /** - * Returns the abbreviation of a canton. - * @return string - */ - public static function cantonShort() - { - $canton = static::canton(); - return key($canton); - } - - /** - * Returns the name of canton. - * @return string - */ - public static function cantonName() - { - $canton = static::canton(); - return current($canton); - } - - public static function buildingNumber() - { - return static::regexify(self::numerify(static::randomElement(static::$buildingNumber))); - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/de_CH/Company.php b/vendor/fzaninotto/faker/src/Faker/Provider/de_CH/Company.php deleted file mode 100644 index 604ec5ae..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/de_CH/Company.php +++ /dev/null @@ -1,15 +0,0 @@ -generator->parse(static::randomElement(static::$lastNameFormat)); - } - - /** - * @example 'ΘεωδωÏόπουλος' - */ - public static function lastNameMale() - { - return static::randomElement(static::$lastNameMale); - } - - /** - * @example 'Κοκκίνου' - */ - public static function lastNameFemale() - { - return static::randomElement(static::$lastNameFemale); - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/el_GR/PhoneNumber.php b/vendor/fzaninotto/faker/src/Faker/Provider/el_GR/PhoneNumber.php deleted file mode 100644 index f8cf8b38..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/el_GR/PhoneNumber.php +++ /dev/null @@ -1,85 +0,0 @@ -generator->parse(static::randomElement(static::$towns)); - } - - public function syllable() - { - return static::randomElement(static::$syllables); - } - - public function direction() - { - return static::randomElement(static::$directions); - } - - public function englishStreetName() - { - return static::randomElement(static::$englishStreetNames); - } - - public function villageSuffix() - { - return static::randomElement(static::$villageSuffixes); - } - - public function estateSuffix() - { - return static::randomElement(static::$estateSuffixes); - } - - public function village() - { - return $this->generator->parse(static::randomElement(static::$villageNameFormats)); - } - - public function estate() - { - return $this->generator->parse(static::randomElement(static::$estateNameFormats)); - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/en_HK/Internet.php b/vendor/fzaninotto/faker/src/Faker/Provider/en_HK/Internet.php deleted file mode 100644 index 4d82d93a..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/en_HK/Internet.php +++ /dev/null @@ -1,14 +0,0 @@ -generator->parse(static::randomElement(static::$societyNameFormat)); - } - /** - * @example Mumbai - */ - public function city() - { - return static::randomElement(static::$city); - } - /** - * @example Vaishali Nagar - */ - public function locality() - { - return $this->generator->parse(static::randomElement(static::$localityFormats)); - } - /* - * @example Kharadi - */ - public function localityName() - { - return $this->generator->parse(static::randomElement(static::$localityName)); - } - /** - * @example Nagar - */ - public function areaSuffix() - { - return static::randomElement(static::$areaSuffix); - } - - /** - * @example 'Delhi' - */ - public static function state() - { - return static::randomElement(static::$state); - } - - /** - * @example 'DL' - */ - public static function stateAbbr() - { - return static::randomElement(static::$stateAbbr); - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/en_IN/Internet.php b/vendor/fzaninotto/faker/src/Faker/Provider/en_IN/Internet.php deleted file mode 100644 index 6ec16710..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/en_IN/Internet.php +++ /dev/null @@ -1,9 +0,0 @@ -generator->parse($format)); - } - - public function fixedLineNumber() - { - $format = static::randomElement(static::$fixedLineNumberFormats); - - return static::numerify($this->generator->parse($format)); - } - - public function voipNumber() - { - $format = static::randomElement(static::$voipNumber); - - return $this->generator->parse($format); - } - - public function internationalCodePrefix() - { - $format = static::randomElement(static::$internationalCodePrefix); - - return $this->generator->parse($format); - } - - public function zeroToEight() - { - return static::randomElement(static::$zeroToEight); - } - - public function oneToNine() - { - return static::randomElement(static::$oneToNine); - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/en_UG/Address.php b/vendor/fzaninotto/faker/src/Faker/Provider/en_UG/Address.php deleted file mode 100644 index eb817e3a..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/en_UG/Address.php +++ /dev/null @@ -1,101 +0,0 @@ -generator->parse($format)); - } - - /** - * NPA-format area code - * - * @see https://en.wikipedia.org/wiki/North_American_Numbering_Plan#Numbering_system - * - * @return string - */ - public static function areaCode() - { - $digits[] = self::numberBetween(2, 9); - $digits[] = self::randomDigit(); - $digits[] = self::randomDigitNot($digits[1]); - - return join('', $digits); - } - - /** - * NXX-format central office exchange code - * - * @see https://en.wikipedia.org/wiki/North_American_Numbering_Plan#Numbering_system - * - * @return string - */ - public static function exchangeCode() - { - $digits[] = self::numberBetween(2, 9); - $digits[] = self::randomDigit(); - - if ($digits[1] === 1) { - $digits[] = self::randomDigitNot(1); - } else { - $digits[] = self::randomDigit(); - } - - return join('', $digits); - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/en_US/Text.php b/vendor/fzaninotto/faker/src/Faker/Provider/en_US/Text.php deleted file mode 100644 index b3c52582..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/en_US/Text.php +++ /dev/null @@ -1,3720 +0,0 @@ -format('Y'), - static::randomNumber(6, true), - static::randomElement(static::$legalEntities) - ); - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/en_ZA/Internet.php b/vendor/fzaninotto/faker/src/Faker/Provider/en_ZA/Internet.php deleted file mode 100644 index 0c5c5f40..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/en_ZA/Internet.php +++ /dev/null @@ -1,18 +0,0 @@ -generator->dateTimeThisCentury(); - } - $birthDateString = $birthdate->format('ymd'); - switch (strtolower($gender)) { - case static::GENDER_FEMALE: - $genderDigit = self::numberBetween(0, 4); - break; - case static::GENDER_MALE: - $genderDigit = self::numberBetween(5, 9); - break; - default: - $genderDigit = self::numberBetween(0, 9); - } - $sequenceDigits = str_pad(self::randomNumber(3), 3, 0, STR_PAD_BOTH); - $citizenDigit = ($citizen === true) ? '0' : '1'; - $raceDigit = self::numberBetween(8, 9); - - $partialIdNumber = $birthDateString . $genderDigit . $sequenceDigits . $citizenDigit . $raceDigit; - - return $partialIdNumber . Luhn::computeCheckDigit($partialIdNumber); - } - - /** - * @see https://en.wikipedia.org/wiki/Driving_licence_in_South_Africa - * - * @return string - */ - public function licenceCode() - { - return static::randomElement(static::$licenceCodes); - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/en_ZA/PhoneNumber.php b/vendor/fzaninotto/faker/src/Faker/Provider/en_ZA/PhoneNumber.php deleted file mode 100644 index 02a364d1..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/en_ZA/PhoneNumber.php +++ /dev/null @@ -1,100 +0,0 @@ -generator->parse($format)); - } - - public function tollFreeNumber() - { - $format = static::randomElement(static::$specialFormats); - - return self::numerify($this->generator->parse($format)); - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/es_AR/Address.php b/vendor/fzaninotto/faker/src/Faker/Provider/es_AR/Address.php deleted file mode 100644 index 70f503f0..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/es_AR/Address.php +++ /dev/null @@ -1,68 +0,0 @@ -numberBetween(10000, 100000000); - } - - return $id . $separator . $this->numberBetween(80000000, 100000000); - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/es_VE/PhoneNumber.php b/vendor/fzaninotto/faker/src/Faker/Provider/es_VE/PhoneNumber.php deleted file mode 100644 index 74caecce..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/es_VE/PhoneNumber.php +++ /dev/null @@ -1,29 +0,0 @@ -generator->parse($format); - } - - /** - * @example 'کد پستی' - */ - public static function postcodePrefix() - { - return static::randomElement(static::$postcodePrefix); - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/fa_IR/Company.php b/vendor/fzaninotto/faker/src/Faker/Provider/fa_IR/Company.php deleted file mode 100644 index 0de47b35..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/fa_IR/Company.php +++ /dev/null @@ -1,57 +0,0 @@ -generator->parse($format)); - } - - /** - * @example 'ahmad.ir' - */ - public function domainName() - { - return static::randomElement(static::$lastNameAscii) . '.' . $this->tld(); - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/fa_IR/Person.php b/vendor/fzaninotto/faker/src/Faker/Provider/fa_IR/Person.php deleted file mode 100644 index 055b863e..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/fa_IR/Person.php +++ /dev/null @@ -1,137 +0,0 @@ - 5) { - throw new \InvalidArgumentException('indexSize must be at most 5'); - } - - $words = $this->getConsecutiveWords($indexSize); - $result = array(); - $resultLength = 0; - // take a random starting point - $next = static::randomKey($words); - while ($resultLength < $maxNbChars && isset($words[$next])) { - // fetch a random word to append - $word = static::randomElement($words[$next]); - - // calculate next index - $currentWords = explode(' ', $next); - - $currentWords[] = $word; - array_shift($currentWords); - $next = implode(' ', $currentWords); - - if ($resultLength == 0 && !preg_match('/^[\x{0600}-\x{06FF}]/u', $word)) { - continue; - } - // append the element - $result[] = $word; - $resultLength += strlen($word) + 1; - } - - // remove the element that caused the text to overflow - array_pop($result); - - // build result - $result = implode(' ', $result); - - return $result.'.'; - } - - /** - * License: Creative Commons Attribution-ShareAlike License - * - * Title: مدیر مدرسه - * Author: جلال آل‌احمد - * Language: Persian - * - * @see http://fa.wikisource.org/wiki/%D9%85%D8%AF%DB%8C%D8%B1_%D9%85%D8%AF%D8%B1%D8%B3%D9%87 - * @var string - */ - protected static $baseText = <<<'EOT' -از در Ú©Ù‡ وارد شدم سیگارم دستم بود. زورم آمد سلام کنم. همین طوری دنگم Ú¯Ø±ÙØªÙ‡ بود قد باشم. رئیس ÙØ±Ù‡Ù†Ú¯ Ú©Ù‡ اجازه‌ی نشستن داد، نگاهش لحظه‌ای روی دستم Ù…Ú©Ø« کرد Ùˆ بعد چیزی را Ú©Ù‡ می‌نوشت، تمام کرد Ùˆ می‌خواست متوجه من بشود Ú©Ù‡ رونویس Ø­Ú©Ù… را روی میزش گذاشته بودم. حرÙÛŒ نزدیم. رونویس را با کاغذهای ضمیمه‌اش زیر Ùˆ رو کرد Ùˆ بعد غبغب انداخت Ùˆ آرام Ùˆ مثلاً خالی از عصبانیت Ú¯ÙØª: - -- جا نداریم آقا. این Ú©Ù‡ نمی‌شه! هر روز یه Ø­Ú©Ù… می‌دند دست یکی Ù…ÛŒâ€ŒÙØ±Ø³ØªÙ†Ø´ سراغ من... دیروز به آقای مدیر Ú©Ù„... - -حوصله‌ی این اباطیل را نداشتم. Ø­Ø±ÙØ´ را بریدم Ú©Ù‡: - -- ممکنه خواهش کنم زیر همین ورقه مرقوم Ø¨ÙØ±Ù…ایید؟ - -Ùˆ سیگارم را توی زیرسیگاری براق روی میزش تکاندم. روی میز، پاک Ùˆ مرتب بود. درست مثل اتاق همان مهمان‌خانه‌ی تازه‌عروس‌ها. هر چیز به جای خود Ùˆ نه یک ذره گرد. Ùقط خاکستر سیگار من زیادی بود. مثل تÙÛŒ در صورت تازه تراشیده‌ای.... قلم را برداشت Ùˆ زیر Ø­Ú©Ù… چیزی نوشت Ùˆ امضا کرد Ùˆ من از در آمده بودم بیرون. خلاص. تحمل این یکی را نداشتم. با اداهایش. پیدا بود Ú©Ù‡ تازه رئیس شده. زورکی غبغب می‌انداخت Ùˆ Ø­Ø±ÙØ´ را آهسته توی چشم آدم می‌زد. انگار برای شنیدنش گوش لازم نیست. صد Ùˆ پنجاه تومان در کارگزینی Ú©Ù„ مایه گذاشته بودم تا این Ø­Ú©Ù… را به امضا رسانده بودم. توصیه هم برده بودم Ùˆ تازه دو ماه هم دویده بودم. مو، لای درزش Ù†Ù…ÛŒâ€ŒØ±ÙØª. می‌دانستم Ú©Ù‡ Ú†Ù‡ او بپذیرد، Ú†Ù‡ نپذیرد، کار تمام است. خودش هم می‌دانست. حتماً هم دستگیرش شد Ú©Ù‡ با این Ù†Ú© Ùˆ نالی Ú©Ù‡ می‌کرد، خودش را کن٠کرده. ولی کاری بود Ùˆ شده بود. در کارگزینی Ú©Ù„ØŒ Ø³ÙØ§Ø±Ø´ کرده بودند Ú©Ù‡ برای خالی نبودن عریضه رونویس را به رؤیت رئیس ÙØ±Ù‡Ù†Ú¯ هم برسانم تازه این طور شد. Ùˆ گر نه بالی Ø­Ú©Ù… کارگزینی Ú©Ù„ Ú†Ù‡ کسی می‌توانست حرÙÛŒ بزند؟ یک وزارت خانه بود Ùˆ یک کارگزینی! شوخی Ú©Ù‡ نبود. ته دلم قرص‌تر از این‌ها بود Ú©Ù‡ محتاج به این استدلال‌ها باشم. اما به نظرم همه‌ی این تقصیرها از این سیگار لعنتی بود Ú©Ù‡ به خیال خودم خواسته بودم خرجش را از محل اضاÙÙ‡ حقوق شغل جدیدم در بیاورم. البته از معلمی، هم اÙقم نشسته بود. ده سال «الÙ.ب.» درس دادن Ùˆ قیاÙه‌های بهت‌زده‌ی بچه‌های مردم برای مزخرÙ‌ترین چرندی Ú©Ù‡ می‌گویی... Ùˆ استغناء با غین Ùˆ استقراء با قا٠و خراسانی Ùˆ هندی Ùˆ قدیمی‌ترین شعر دری Ùˆ صنعت ارسال مثل Ùˆ ردالعجز... Ùˆ از این Ù…Ø²Ø®Ø±ÙØ§Øª! دیدم دارم خر می‌شوم. Ú¯ÙØªÙ… مدیر بشوم. مدیر دبستان! دیگر نه درس خواهم داد Ùˆ نه مجبور خواهم بود برای ÙØ±Ø§Ø± از اتلا٠وقت، در امتحان تجدیدی به هر احمق بی‌شعوری Ù‡ÙØª بدهم تا ایام آخر تابستانم را Ú©Ù‡ لذیذترین تکه‌ی تعطیلات است، نجات داده باشم. این بود Ú©Ù‡ راه Ø§ÙØªØ§Ø¯Ù…. Ø±ÙØªÙ… Ùˆ از اهلش پرسیدم. از یک کار چاق Ú©Ù†. دستم را توی دست کارگزینی گذاشت Ùˆ قول Ùˆ قرار Ùˆ طرÙین خوش Ùˆ خرم Ùˆ یک روز هم نشانی مدرسه را دستم دادند Ú©Ù‡ بروم وارسی، Ú©Ù‡ باب میلم هست یا نه. - -Ùˆ Ø±ÙØªÙ…. مدرسه دو طبقه بود Ùˆ نوساز بود Ùˆ در دامنه‌ی کوه تنها Ø§ÙØªØ§Ø¯Ù‡ بود Ùˆ Ø¢ÙØªØ§Ø¨â€ŒØ±Ùˆ بود. یک ÙØ±Ù‡Ù†Ú¯â€ŒØ¯ÙˆØ³Øª خرپول، عمارتش را وسط زمین خودش ساخته بود Ùˆ بیست Ùˆ پنج سال هم در اختیار ÙØ±Ù‡Ù†Ú¯ گذاشته بود Ú©Ù‡ مدرسه‌اش کنند Ùˆ Ø±ÙØª Ùˆ آمد بشود Ùˆ جاده‌ها کوبیده بشود Ùˆ این قدر ازین بشودها بشود، تا دل ننه باباها بسوزد Ùˆ برای این‌که راه بچه‌هاشان را کوتاه بکنند، بیایند همان اطرا٠مدرسه را بخرند Ùˆ خانه بسازند Ùˆ زمین یارو از متری یک عباسی بشود صد تومان. یارو اسمش را هم روی دیوار مدرسه کاشی‌کاری کرده بود. هنوز در Ùˆ همسایه پیدا نکرده بودند Ú©Ù‡ حرÙ‌شان بشود Ùˆ لنگ Ùˆ پاچه‌ی سعدی Ùˆ باباطاهر را بکشند میان Ùˆ یک ورق دیگر از تاریخ‌الشعرا را بکوبند روی نبش دیوار کوچه‌شان. تابلوی مدرسه هم حسابی Ùˆ بزرگ Ùˆ خوانا. از صد متری داد می‌زد Ú©Ù‡ توانا بود هر.... هر Ú†Ù‡ دلتان بخواهد! با شیر Ùˆ خورشیدش Ú©Ù‡ آن بالا سر، سه پا ایستاده بود Ùˆ زورکی تعادل خودش را Ø­ÙØ¸ می‌کرد Ùˆ خورشید خانم روی کولش با ابروهای پیوسته Ùˆ قمچیلی Ú©Ù‡ به دست داشت Ùˆ تا سه تیر پرتاب، اطرا٠مدرسه بیابان بود. درندشت Ùˆ بی آب Ùˆ آبادانی Ùˆ آن ته رو به شمال، ردی٠کاج‌های درهم ÙØ±Ùˆ Ø±ÙØªÙ‡â€ŒØ§ÛŒ Ú©Ù‡ از سر دیوار Ú¯Ù„ÛŒ یک باغ پیدا بود روی آسمان لکه‌ی دراز Ùˆ تیره‌ای زده بود. حتماً تا بیست Ùˆ پنج سال دیگر همه‌ی این اطرا٠پر می‌شد Ùˆ بوق ماشین Ùˆ ونگ ونگ بچه‌ها Ùˆ ÙØ±ÛŒØ§Ø¯ لبویی Ùˆ زنگ Ø±ÙˆØ²Ù†Ø§Ù…Ù‡â€ŒÙØ±ÙˆØ´ÛŒ Ùˆ عربده‌ی Ú¯Ù„ به سر دارم خیار! نان یارو توی روغن بود. - -- راستی شاید متری ده دوازده شاهی بیشتر نخریده باشد؟ شاید هم زمین‌ها را همین جوری به ثبت داده باشد؟ هان؟ - -- احمق به توچه؟!... - -بله این Ùکرها را همان روزی کردم Ú©Ù‡ ناشناس به مدرسه سر زدم Ùˆ آخر سر هم به این نتیجه رسیدم Ú©Ù‡ مردم حق دارند جایی بخوابند Ú©Ù‡ آب زیرشان نرود. - -- تو اگر مردی، عرضه داشته باش مدیر همین مدرسه هم بشو. - -Ùˆ Ø±ÙØªÙ‡ بودم Ùˆ دنبال کار را Ú¯Ø±ÙØªÙ‡ بودم تا رسیده بودم به این‌جا. همان روز وارسی Ùهمیده بودم Ú©Ù‡ مدیر قبلی مدرسه زندانی است. لابد کله‌اش بوی قرمه‌سبزی می‌داده Ùˆ باز لابد حالا دارد Ú©ÙØ§Ø±Ù‡â€ŒÛŒ گناهانی را می‌دهد Ú©Ù‡ یا خودش نکرده یا آهنگری در بلخ کرده. جزو پر قیچی‌های رئیس ÙØ±Ù‡Ù†Ú¯ هم کسی نبود Ú©Ù‡ با مدیرشان، اضاÙÙ‡ حقوقی نصیبش بشود Ùˆ ناچار سر Ùˆ دستی برای این کار بشکند. خارج از مرکز هم نداشت. این معلومات را توی کارگزینی به دست آورده بودم. هنوز «گه خوردم نامه‌نویسی» هم مد نشده بود Ú©Ù‡ بگویم یارو به این زودی‌ها از سولدونی در خواهد آمد. Ùکر نمی‌کردم Ú©Ù‡ دیگری هم برای این وسط بیابان دلش Ù„Ú© زده باشد با زمستان سختش Ùˆ با Ø±ÙØª Ùˆ آمد دشوارش. - -این بود Ú©Ù‡ خیالم راحت بود. از همه‌ی این‌ها گذشته کارگزینی Ú©Ù„ مواÙقت کرده بود! دست است Ú©Ù‡ پیش از بلند شدن بوی اسکناس، آن جا هم دو سه تا عیب شرعی Ùˆ عرÙÛŒ Ú¯Ø±ÙØªÙ‡ بودند Ùˆ مثلاً Ú¯ÙØªÙ‡ بودن لابد کاسه‌ای زیر نیم کاسه است Ú©Ù‡ Ùلانی یعنی من، با ده سال سابقه‌ی تدریس، می‌خواهد مدیر دبستان بشود! غرض‌شان این بود Ú©Ù‡ لابد خل شدم Ú©Ù‡ از شغل مهم Ùˆ محترم دبیری دست می‌شویم. ماهی صد Ùˆ پنجاه تومان حق مقام در آن روزها پولی نبود Ú©Ù‡ بتوانم نادیده بگیرم. Ùˆ تازه اگر ندیده Ù…ÛŒâ€ŒÚ¯Ø±ÙØªÙ… چه؟ باز باید بر می‌گشتم به این کلاس‌ها Ùˆ این جور حماقت‌ها. این بود Ú©Ù‡ پیش رئیس ÙØ±Ù‡Ù†Ú¯ØŒ صا٠برگشتم به کارگزینی Ú©Ù„ØŒ سراغ آن Ú©Ù‡ بÙهمی Ù†Ùهمی، دلال کارم بود. Ùˆ رونویس Ø­Ú©Ù… را گذاشتم Ùˆ Ú¯ÙØªÙ… Ú©Ù‡ Ú†Ù‡ طور شد Ùˆ آمدم بیرون. - -دو روز بعد Ø±ÙØªÙ… سراغش. معلوم شد Ú©Ù‡ حدسم درست بوده است Ùˆ رئیس ÙØ±Ù‡Ù†Ú¯ Ú¯ÙØªÙ‡ بوده: «من از این لیسانسه‌های پر Ø§ÙØ§Ø¯Ù‡ نمی‌خواهم Ú©Ù‡ سیگار به دست توی هر اتاقی سر می‌کنند.» - -Ùˆ یارو برایش Ú¯ÙØªÙ‡ بود Ú©Ù‡ اصلاً وابدا..! Ùلانی همچین Ùˆ همچون است Ùˆ مثقالی Ù‡ÙØª صنار با دیگران ÙØ±Ù‚ دارد Ùˆ این هندوانه‌ها Ùˆ خیال من راحت باشد Ùˆ پنج‌شنبه یک Ù‡ÙØªÙ‡â€ŒÛŒ دیگر خودم بروم پهلوی او... Ùˆ این کار را کردم. این بار رئیس ÙØ±Ù‡Ù†Ú¯ جلوی پایم بلند شد Ú©Ù‡: «ای آقا... چرا اول Ù†ÙØ±Ù…ودید؟!...» Ùˆ از کارمندهایش گله کرد Ùˆ به قول خودش، مرا «در جریان موقعیت محل» گذاشت Ùˆ بعد با ماشین خودش مرا به مدرسه رساند Ùˆ Ú¯ÙØª زنگ را زودتر از موعد زدند Ùˆ در حضور معلم‌ها Ùˆ ناظم، نطق غرایی در خصائل مدیر جدید – Ú©Ù‡ من باشم – کرد Ùˆ بعد هم مرا گذاشت Ùˆ Ø±ÙØª با یک مدرسه‌ی شش کلاسه‌ی «نوبنیاد» Ùˆ یک ناظم Ùˆ Ù‡ÙØª تا معلم Ùˆ دویست Ùˆ سی Ùˆ پنج تا شاگرد. دیگر حسابی مدیر مدرسه شده بودم! - -ناظم، جوان رشیدی بود Ú©Ù‡ بلند حر٠می‌زد Ùˆ به راحتی امر Ùˆ نهی می‌کرد Ùˆ بیا Ùˆ برویی داشت Ùˆ با شاگردهای درشت، روی هم ریخته بود Ú©Ù‡ خودشان ترتیب کارها را می‌دادند Ùˆ پیدا بود Ú©Ù‡ به سر خر احتیاجی ندارد Ùˆ بی‌مدیر هم می‌تواند گلیم مدرسه را از آب بکشد. معلم کلاس چهار خیلی گنده بود. دو تای یک آدم حسابی. توی Ø¯ÙØªØ±ØŒ اولین چیزی Ú©Ù‡ به چشم می‌آمد. از آن‌هایی Ú©Ù‡ اگر توی Ú©ÙˆÚ†Ù‡ ببینی، خیال می‌کنی مدیر Ú©Ù„ است. Ù„ÙØ¸ قلم حر٠می‌زد Ùˆ شاید به همین دلیل بود Ú©Ù‡ وقتی رئیس ÙØ±Ù‡Ù†Ú¯ Ø±ÙØª Ùˆ ØªØ´Ø±ÛŒÙØ§Øª را با خودش برد، از طر٠همکارانش تبریک ورود Ú¯ÙØª Ùˆ اشاره کرد به اینکه «ان‌شاءالله زیر سایه‌ی سرکار، سال دیگر کلاس‌های دبیرستان را هم خواهیم داشت.» پیدا بود Ú©Ù‡ این هیکل کم‌کم دارد از سر دبستان زیادی می‌کند! وقتی حر٠می‌زد همه‌اش درین Ùکر بودم Ú©Ù‡ با نان آقا معلمی Ú†Ù‡ طور می‌شد چنین هیکلی به هم زد Ùˆ چنین سر Ùˆ تیپی داشت؟ Ùˆ راستش تصمیم Ú¯Ø±ÙØªÙ… Ú©Ù‡ از ÙØ±Ø¯Ø§ صبح به صبح ریشم را بتراشم Ùˆ یخه‌ام تمیز باشد Ùˆ اتوی شلوارم تیز. - -معلم کلاس اول باریکه‌ای بود، سیاه سوخته. با ته ریشی Ùˆ سر ماشین کرده‌ای Ùˆ یخه‌ی بسته. بی‌کراوات. شبیه میرزابنویس‌های دم پست‌خانه. حتی نوکر باب می‌نمود. Ùˆ من آن روز نتوانستم بÙهمم وقتی حر٠می‌زند کجا را نگاه می‌کند. با هر جیغ کوتاهی Ú©Ù‡ می‌زد هرهر می‌خندید. با این قضیه نمی‌شد کاری کرد. معلم کلاس سه، یک جوان ترکه‌ای بود؛ بلند Ùˆ با صورت استخوانی Ùˆ ریش از ته تراشیده Ùˆ یخه‌ی بلند آهاردار. مثل ÙØ±Ùره می‌جنبید. چشم‌هایش برق عجیبی می‌زد Ú©Ù‡ Ùقط از هوش نبود، چیزی از ناسلامتی در برق چشم‌هایش بود Ú©Ù‡ مرا واداشت از ناظم بپرسم مبادا مسلول باشد. البته مسلول نبود، تنها بود Ùˆ در دانشگاه درس می‌خواند. کلاس‌های پنجم Ùˆ ششم را دو Ù†ÙØ± با هم اداره می‌کردند. یکی ÙØ§Ø±Ø³ÛŒ Ùˆ شرعیات Ùˆ تاریخ، جغراÙÛŒ Ùˆ کاردستی Ùˆ این جور سرگرمی‌ها را Ù…ÛŒâ€ŒÚ¯ÙØªØŒ Ú©Ù‡ جوانکی بود بریانتین زده، با شلوار پاچه تنگ Ùˆ پوشت Ùˆ کراوات زرد Ùˆ پهنی Ú©Ù‡ نعش یک لنگر بزرگ آن را روی سینه‌اش Ù†Ú¯Ù‡ داشته بود Ùˆ دائماً دستش حمایل موهای سرش بود Ùˆ دم به دم توی شیشه‌ها نگاه می‌کرد. Ùˆ آن دیگری Ú©Ù‡ حساب Ùˆ مرابحه Ùˆ چیزهای دیگر Ù…ÛŒâ€ŒÚ¯ÙØªØŒ جوانی بود موقر Ùˆ سنگین مازندرانی به نظر می‌آمد Ùˆ به خودش اطمینان داشت. غیر از این‌ها، یک معلم ورزش هم داشتیم Ú©Ù‡ دو Ù‡ÙØªÙ‡ بعد دیدمش Ùˆ اصÙهانی بود Ùˆ از آن قاچاق‌ها. - -رئیس ÙØ±Ù‡Ù†Ú¯ Ú©Ù‡ Ø±ÙØªØŒ گرم Ùˆ نرم از همه‌شان حال Ùˆ احوال پرسیدم. بعد به همه سیگار تعار٠کردم. سراپا همکاری Ùˆ همدردی بود. از کار Ùˆ بار هر کدامشان پرسیدم. Ùقط همان معلم کلاس سه، دانشگاه Ù…ÛŒâ€ŒØ±ÙØª. آن Ú©Ù‡ لنگر به سینه انداخته بود، شب‌ها انگلیسی می‌خواند Ú©Ù‡ برود آمریکا. چای Ùˆ بساطی در کار نبود Ùˆ ربع ساعت‌های ØªÙØ±ÛŒØ­ØŒ Ùقط توی Ø¯ÙØªØ± جمع می‌شدند Ùˆ دوباره از نو. Ùˆ این نمی‌شد. باید همه‌ی سنن را رعایت کرد. دست کردم Ùˆ یک پنج تومانی روی میز گذاشتم Ùˆ قرار شد قبل Ùˆ منقلی تهیه کنند Ùˆ خودشان چای را راه بیندازند. - -بعد از زنگ قرار شد من سر ص٠نطقی بکنم. ناظم قضیه را در دو سه کلمه برای بچه‌ها Ú¯ÙØª Ú©Ù‡ من رسیدم Ùˆ همه دست زدند. چیزی نداشتم برایشان بگویم. Ùقط یادم است اشاره‌ای به این کردم Ú©Ù‡ مدیر خیلی دلش می‌خواست یکی از شما را به جای ÙØ±Ø²Ù†Ø¯ داشته باشد Ùˆ حالا نمی‌داند با این همه ÙØ±Ø²Ù†Ø¯ Ú†Ù‡ بکند؟! Ú©Ù‡ بی‌صدا خندیدند Ùˆ در میان صÙ‌های عقب یکی Ù¾Ú©ÛŒ زد به خنده. واهمه برم داشت Ú©Ù‡ «نه بابا. کار ساده‌ای هم نیست!» قبلاً Ùکر کرده بودم Ú©Ù‡ می‌روم Ùˆ ÙØ§Ø±Øº از دردسر اداره‌ی کلاس، در اتاق را روی خودم می‌بندم Ùˆ کار خودم را می‌کنم. اما حالا می‌دیدم به این سادگی‌ها هم نیست. اگر ÙØ±Ø¯Ø§ یکی‌شان زد سر اون یکی را شکست، اگر یکی زیر ماشین Ø±ÙØªØ› اگر یکی از ایوان Ø§ÙØªØ§Ø¯Ø› Ú†Ù‡ خاکی به سرم خواهم ریخت؟ - -حالا من مانده بودم Ùˆ ناظم Ú©Ù‡ چیزی از لای در آهسته خزید تو. کسی بود؛ ÙØ±Ø§Ø´ مدرسه با قیاÙه‌ای دهاتی Ùˆ ریش نتراشیده Ùˆ قدی کوتاه Ùˆ گشاد گشاد راه Ù…ÛŒâ€ŒØ±ÙØª Ùˆ دست‌هایش را دور از بدن Ù†Ú¯Ù‡ می‌داشت. آمد Ùˆ همان کنار در ایستاد. صا٠توی چشمم نگاه می‌کرد. حال او را هم پرسیدم. هر Ú†Ù‡ بود او هم می‌توانست یک گوشه‌ی این بار را بگیرد. در یک دقیقه همه‌ی درد دل‌هایش را کرد Ùˆ التماس دعاهایش Ú©Ù‡ تمام شد، ÙØ±Ø³ØªØ§Ø¯Ù…Ø´ برایم چای درست کند Ùˆ بیاورد. بعد از آن من به ناظم پرداختم. سال پیش، از دانشسرای مقدماتی در آمده بود. یک سال گرمسار Ùˆ کرج کار کرده بود Ùˆ امسال آمده بود این‌جا. پدرش دو تا زن داشته. از اولی دو تا پسر Ú©Ù‡ هر دو تا چاقوکش از آب در آمده‌اند Ùˆ از دومی Ùقط او مانده بود Ú©Ù‡ درس‌خوان شده Ùˆ سرشناس Ùˆ نان مادرش را می‌دهد Ú©Ù‡ مریض است Ùˆ از پدر سال‌هاست Ú©Ù‡ خبری نیست Ùˆ... یک اتاق Ú¯Ø±ÙØªÙ‡â€ŒØ§Ù†Ø¯ به پنجاه تومان Ùˆ صد Ùˆ پنجاه تومان حقوق به جایی نمی‌رسد Ùˆ تازه زور Ú©Ù‡ بزند سه سال دیگر می‌تواند از حق ÙÙ†ÛŒ نظامت مدرسه Ø§Ø³ØªÙØ§Ø¯Ù‡ کند - -... بعد بلند شدیم Ú©Ù‡ به کلاس‌ها سرکشی کنیم. بعد با ناظم به تک تک کلاس‌ها سر زدیم در این میان من به یاد دوران دبستان خودم Ø§ÙØªØ§Ø¯Ù…. در کلاس ششم را باز کردیم «... ت بی پدرو مادر» جوانک بریانتین زده خورد توی صورت‌مان. یکی از بچه‌ها صورتش مثل چغندر قرمز بود. لابد بزک ÙØ­Ø´ هنوز باقی بود. قرائت ÙØ§Ø±Ø³ÛŒ داشتند. معلم دستهایش توی جیبش بود Ùˆ سینه‌اش را پیش داده بود Ùˆ زبان به شکایت باز کرد: - -- آقای مدیر! اصلاً دوستی سرشون نمی‌شه. تو سَری می‌خوان. ملاحظه کنید بنده با Ú†Ù‡ صمیمیتی... - -Ø­Ø±ÙØ´ را در تشدید «ایت» بریدم Ú©Ù‡: - -- صحیح Ù…ÛŒâ€ŒÙØ±Ù…ایید. این بار به من ببخشید. - -Ùˆ از در آمدیم بیرون. بعد از آن به اطاقی Ú©Ù‡ در آینده مال من بود سر زدیم. بهتر از این نمی‌شد. بی سر Ùˆ صدا، Ø¢ÙØªØ§Ø¨â€ŒØ±ÙˆØŒ دور Ø§ÙØªØ§Ø¯Ù‡. - -وسط حیاط، یک حوض بزرگ بود Ùˆ کم‌عمق. تنها قسمت ساختمان بود Ú©Ù‡ رعایت حال بچه‌های قد Ùˆ نیم قد در آن شده بود. دور حیاط دیوار بلندی بود درست مثل دیوار چین. سد Ù…Ø±ØªÙØ¹ÛŒ در مقابل ÙØ±Ø§Ø± احتمالی ÙØ±Ù‡Ù†Ú¯ Ùˆ ته حیاط مستراح Ùˆ اتاق ÙØ±Ø§Ø´ بغلش Ùˆ انبار زغال Ùˆ بعد هم یک کلاس. به مستراح هم سر کشیدیم. همه بی در Ùˆ سق٠و تیغه‌ای میان آن‌ها. نگاهی به ناظم کردم Ú©Ù‡ پا به پایم می‌آمد. Ú¯ÙØª: - -- دردسر عجیبی شده آقا. تا حالا صد تا کاغذ به Ø§Ø¯Ø§Ø±ÙØ±Ø¯Ø§ صبح Ø±ÙØªÙ… مدرسه. بچه‌ها با صÙ‌هاشان به طر٠کلاس‌ها Ù…ÛŒâ€ŒØ±ÙØªÙ†Ø¯ Ùˆ ناظم چوب به دست توی ایوان ایستاده بود Ùˆ توی Ø¯ÙØªØ± دو تا از معلم‌ها بودند. معلوم شد کار هر روزه‌شان است. ناظم را هم ÙØ±Ø³ØªØ§Ø¯Ù… سر یک کلاس دیگر Ùˆ خودم آمدم دم در مدرسه به قدم زدن؛ Ùکر کردم از هر طر٠که بیایند مرا این ته، دم در مدرسه خواهند دید Ùˆ تمام طول راه در این خجالت خواهند ماند Ùˆ دیگر دیر نخواهند آمد. یک سیاهی از ته جاده‌ی جنوبی پیداشد. جوانک بریانتین زده بود. مسلماً او هم مرا می‌دید، ولی آهسته‌تر از آن می‌آمد Ú©Ù‡ یک معلم تأخیر کرده جلوی مدیرش می‌آمد. جلوتر Ú©Ù‡ آمد حتی شنیدم Ú©Ù‡ سوت می‌زد. اما بی‌انصا٠چنان سلانه سلانه می‌آمد Ú©Ù‡ دیدم هیچ جای گذشت نیست. اصلاً محل سگ به من نمی‌گذاشت. داشتم از کوره در Ù…ÛŒâ€ŒØ±ÙØªÙ… Ú©Ù‡ یک مرتبه احساس کردم تغییری در Ø±ÙØªØ§Ø± خود داد Ùˆ تند کرد. - -به خیر گذشت Ùˆ گرنه خدا عالم است Ú†Ù‡ Ø§ØªÙØ§Ù‚ÛŒ Ù…ÛŒâ€ŒØ§ÙØªØ§Ø¯. سلام Ú©Ù‡ کرد مثل این Ú©Ù‡ می‌خواست چیزی بگوید Ú©Ù‡ پیش دستی کردم: - -- Ø¨ÙØ±Ù…ایید آقا. Ø¨ÙØ±Ù…ایید، بچه‌ها منتظرند. - -واقعاً به خیر گذشت. شاید اتوبوسش دیر کرده. شاید راه‌بندان بوده؛ جاده قرق بوده Ùˆ باز یک Ú¯Ø±Ø¯Ù†â€ŒÚ©Ù„ÙØªÛŒ از اقصای عالم می‌آمده Ú©Ù‡ ازین Ø³ÙØ±Ù‡â€ŒÛŒ مرتضی علی بی‌نصیب نماند. به هر صورت در دل بخشیدمش. Ú†Ù‡ خوب شد Ú©Ù‡ بد Ùˆ بی‌راهی Ù†Ú¯ÙØªÛŒ! Ú©Ù‡ از دور علم Ø§ÙØ±Ø§Ø´ØªÙ‡â€ŒÛŒ هیکل معلم کلاس چهارم نمایان شد. از همان ته مرا دیده بود. تقریباً می‌دوید. تحمل این یکی را نداشتم. «بدکاری می‌کنی. اول بسم‌الله Ùˆ مته به خشخاش!» Ø±ÙØªÙ… Ùˆ توی Ø¯ÙØªØ± نشستم Ùˆ خودم را به کاری مشغول کردم Ú©Ù‡ هن هن کنان رسید. چنان عرق از پیشانی‌اش می‌ریخت Ú©Ù‡ راستی خجالت کشیدم. یک لیوان آب از کوه به دستش دادم Ùˆ مسخ‌شده‌ی خنده‌اش را با آب به خوردش دادم Ùˆ بلند Ú©Ù‡ شد برود، Ú¯ÙØªÙ…: - -- عوضش دو کیلو لاغر شدید. - -برگشت نگاهی کرد Ùˆ خنده‌ای Ùˆ Ø±ÙØª. ناگهان ناظم از در وارد شد Ùˆ از را Ù‡ نرسیده Ú¯ÙØª: - -- دیدید آقا! این جوری می‌آند مدرسه. اون قرتی Ú©Ù‡ عین خیالش هم نبود آقا! اما این یکی... - -از او پرسیدم: - -- انگار هنوز دو تا از کلاس‌ها ولند؟ - -- بله آقا. کلاس سه ورزش دارند. Ú¯ÙØªÙ… بنشینند دیکته بنویسند آقا. معلم حساب پنج Ùˆ شش هم Ú©Ù‡ نیومده آقا. - -در همین حین یکی از عکس‌های بزرگ دخمه‌های هخامنشی را Ú©Ù‡ به دیوار کوبیده بود پس زد Ùˆ: - -- نگاه کنید آقا... - -روی Ú¯Ú† دیوار با مداد قرمز Ùˆ نه چندان درشت، به عجله Ùˆ ناشیانه علامت داس کشیده بودند. همچنین دنبال کرد: - -- از آثار دوره‌ی اوناست آقا. کارشون همین چیزها بود. روزنومه Ø¨ÙØ±ÙˆØ´Ù†Ø¯. تبلیغات کنند Ùˆ داس Ú†Ú©Ø´ بکشند آقا. رئیس‌شون رو Ú©Ù‡ Ú¯Ø±ÙØªÙ†Ø¯ Ú†Ù‡ جونی کندم آقا تا حالی‌شون کنم Ú©Ù‡ دست ور دارند آقا. Ùˆ از روی میز پرید پایین. - -- Ú¯ÙØªÙ… Ù…Ú¯Ù‡ باز هم هستند؟ - -- آره آقا، پس Ú†ÛŒ! یکی همین آقازاده Ú©Ù‡ هنوز نیومده آقا. هر روز نیم ساعت تأخیر داره آقا. یکی هم مثل کلاس سه. - -- خوب چرا تا حالا پاکش نکردی؟ - -- به! آخه آدم درد دلشو واسه‌ی Ú©ÛŒ بگه؟ آخه آقا در میان تو روی آدم می‌گند جاسوس، مأمور! باهاش حرÙÙ… شده آقا. کتک Ùˆ کتک‌کاری! - -Ùˆ بعد یک سخنرانی Ú©Ù‡ Ú†Ù‡ طور مدرسه را خراب کرده‌اند Ùˆ اعتماد اهل محله را Ú†Ù‡ طور از بین برده‌اند Ú©Ù‡ نه انجمنی، نه Ú©Ù…Ú©ÛŒ به بی‌بضاعت‌ها؛ Ùˆ از این حر٠ها. - -بعد از سخنرانی آقای ناظم دستمالم را دادم Ú©Ù‡ آن عکس‌ها را پاک کند Ùˆ بعد هم راه Ø§ÙØªØ§Ø¯Ù… Ú©Ù‡ بروم سراغ اتاق خودم. در اتاقم را Ú©Ù‡ باز کردم، داشتم دماغم با بوی خاک نم کشیده‌اش اخت می‌کرد Ú©Ù‡ آخرین معلم هم آمد. آمدم توی ایوان Ùˆ با صدای بلند، جوری Ú©Ù‡ در تمام مدرسه بشنوند، ناظم را صدا زدم Ùˆ Ú¯ÙØªÙ… با قلم قرمز برای آقا یک ساعت تأخیر بگذارند.ه‌ی ساختمان نوشتیم آقا. می‌گند نمی‌شه پول دولت رو تو ملک دیگرون خرج کرد. - -- Ú¯ÙØªÙ… راست می‌گند. - -دیگه کاÙÛŒ بود. آمدیم بیرون. همان توی حیاط تا Ù†ÙØ³ÛŒ تازه کنیم وضع مالی Ùˆ بودجه Ùˆ ازین حرÙ‌های مدرسه را پرسیدم. هر اتاق ماهی پانزده ریال حق Ù†Ø¸Ø§ÙØª داشت. لوازم‌التحریر Ùˆ Ø¯ÙØªØ±Ù‡Ø§ را هم اداره‌ی ÙØ±Ù‡Ù†Ú¯ می‌داد. ماهی بیست Ùˆ پنج تومان هم برای آب خوردن داشتند Ú©Ù‡ هنوز وصول نشده بود. برای نصب هر بخاری سالی سه تومان. ماهی سی تومان هم تنخواه‌گردان مدرسه بود Ú©Ù‡ مثل پول آب سوخت شده بود Ùˆ حالا هم ماه دوم سال بود. اواخر آبان. حالیش کردم Ú©Ù‡ حوصله‌ی این کارها را ندارم Ùˆ غرضم را از مدیر شدن برایش خلاصه کردم Ùˆ Ú¯ÙØªÙ… حاضرم همه‌ی اختیارات را به او بدهم. «اصلاً انگار Ú©Ù‡ هنوز مدیر نیامده.» مهر مدرسه هم پهلوی خودش باشد. البته او را هنوز نمی‌شناختم. شنیده بودم Ú©Ù‡ مدیرها قبلاً ناظم خودشان را انتخاب می‌کنند، اما من نه کسی را سراغ داشتم Ùˆ نه حوصله‌اش را. Ø­Ú©Ù… خودم را هم به زور Ú¯Ø±ÙØªÙ‡ بودم. سنگ‌هامان را وا کندیم Ùˆ به Ø¯ÙØªØ± Ø±ÙØªÛŒÙ… Ùˆ چایی را Ú©Ù‡ ÙØ±Ø§Ø´ از بساط خانه‌اش درست کرده بود، خوردیم تا زنگ را زدند Ùˆ باز هم زدند Ùˆ من نگاهی به پرونده‌های شاگردها کردم Ú©Ù‡ هر کدام عبارت بود از دو برگ کاغذ. از همین دو سه برگ کاغذ دانستم Ú©Ù‡ اولیای بچه‌ها اغلب زارع Ùˆ باغبان Ùˆ اویارند Ùˆ قبل از این‌که زنگ آخر را بزنند Ùˆ مدرسه تعطیل بشود بیرون آمدم. برای روز اول خیلی زیاد بود. - -ÙØ±Ø¯Ø§ صبح Ø±ÙØªÙ… مدرسه. بچه‌ها با صÙ‌هاشان به طر٠کلاس‌ها Ù…ÛŒâ€ŒØ±ÙØªÙ†Ø¯ Ùˆ ناظم چوب به دست توی ایوان ایستاده بود Ùˆ توی Ø¯ÙØªØ± دو تا از معلم‌ها بودند. معلوم شد کار هر روزه‌شان است. ناظم را هم ÙØ±Ø³ØªØ§Ø¯Ù… سر یک کلاس دیگر Ùˆ خودم آمدم دم در مدرسه به قدم زدن؛ Ùکر کردم از هر طر٠که بیایند مرا این ته، دم در مدرسه خواهند دید Ùˆ تمام طول راه در این خجالت خواهند ماند Ùˆ دیگر دیر نخواهند آمد. یک سیاهی از ته جاده‌ی جنوبی پیداشد. جوانک بریانتین زده بود. مسلماً او هم مرا می‌دید، ولی آهسته‌تر از آن می‌آمد Ú©Ù‡ یک معلم تأخیر کرده جلوی مدیرش می‌آمد. جلوتر Ú©Ù‡ آمد حتی شنیدم Ú©Ù‡ سوت می‌زد. اما بی‌انصا٠چنان سلانه سلانه می‌آمد Ú©Ù‡ دیدم هیچ جای گذشت نیست. اصلاً محل سگ به من نمی‌گذاشت. داشتم از کوره در Ù…ÛŒâ€ŒØ±ÙØªÙ… Ú©Ù‡ یک مرتبه احساس کردم تغییری در Ø±ÙØªØ§Ø± خود داد Ùˆ تند کرد. - -به خیر گذشت Ùˆ گرنه خدا عالم است Ú†Ù‡ Ø§ØªÙØ§Ù‚ÛŒ Ù…ÛŒâ€ŒØ§ÙØªØ§Ø¯. سلام Ú©Ù‡ کرد مثل این Ú©Ù‡ می‌خواست چیزی بگوید Ú©Ù‡ پیش دستی کردم: - -- Ø¨ÙØ±Ù…ایید آقا. Ø¨ÙØ±Ù…ایید، بچه‌ها منتظرند. - -واقعاً به خیر گذشت. شاید اتوبوسش دیر کرده. شاید راه‌بندان بوده؛ جاده قرق بوده Ùˆ باز یک Ú¯Ø±Ø¯Ù†â€ŒÚ©Ù„ÙØªÛŒ از اقصای عالم می‌آمده Ú©Ù‡ ازین Ø³ÙØ±Ù‡â€ŒÛŒ مرتضی علی بی‌نصیب نماند. به هر صورت در دل بخشیدمش. Ú†Ù‡ خوب شد Ú©Ù‡ بد Ùˆ بی‌راهی Ù†Ú¯ÙØªÛŒ! Ú©Ù‡ از دور علم Ø§ÙØ±Ø§Ø´ØªÙ‡â€ŒÛŒ هیکل معلم کلاس چهارم نمایان شد. از همان ته مرا دیده بود. تقریباً می‌دوید. تحمل این یکی را نداشتم. «بدکاری می‌کنی. اول بسم‌الله Ùˆ مته به خشخاش!» Ø±ÙØªÙ… Ùˆ توی Ø¯ÙØªØ± نشستم Ùˆ خودم را به کاری مشغول کردم Ú©Ù‡ هن هن کنان رسید. چنان عرق از پیشانی‌اش می‌ریخت Ú©Ù‡ راستی خجالت کشیدم. یک لیوان آب از کوه به دستش دادم Ùˆ مسخ‌شده‌ی خنده‌اش را با آب به خوردش دادم Ùˆ بلند Ú©Ù‡ شد برود، Ú¯ÙØªÙ…: - -- عوضش دو کیلو لاغر شدید. - -برگشت نگاهی کرد Ùˆ خنده‌ای Ùˆ Ø±ÙØª. ناگهان ناظم از در وارد شد Ùˆ از را Ù‡ نرسیده Ú¯ÙØª: - -- دیدید آقا! این جوری می‌آند مدرسه. اون قرتی Ú©Ù‡ عین خیالش هم نبود آقا! اما این یکی... - -از او پرسیدم: - -- انگار هنوز دو تا از کلاس‌ها ولند؟ - -- بله آقا. کلاس سه ورزش دارند. Ú¯ÙØªÙ… بنشینند دیکته بنویسند آقا. معلم حساب پنج Ùˆ شش هم Ú©Ù‡ نیومده آقا. - -در همین حین یکی از عکس‌های بزرگ دخمه‌های هخامنشی را Ú©Ù‡ به دیوار کوبیده بود پس زد Ùˆ: - -- نگاه کنید آقا... - -روی Ú¯Ú† دیوار با مداد قرمز Ùˆ نه چندان درشت، به عجله Ùˆ ناشیانه علامت داس کشیده بودند. همچنین دنبال کرد: - -- از آثار دوره‌ی اوناست آقا. کارشون همین چیزها بود. روزنومه Ø¨ÙØ±ÙˆØ´Ù†Ø¯. تبلیغات کنند Ùˆ داس Ú†Ú©Ø´ بکشند آقا. رئیس‌شون رو Ú©Ù‡ Ú¯Ø±ÙØªÙ†Ø¯ Ú†Ù‡ جونی کندم آقا تا حالی‌شون کنم Ú©Ù‡ دست ور دارند آقا. Ùˆ از روی میز پرید پایین. - -- Ú¯ÙØªÙ… Ù…Ú¯Ù‡ باز هم هستند؟ - -- آره آقا، پس Ú†ÛŒ! یکی همین آقازاده Ú©Ù‡ هنوز نیومده آقا. هر روز نیم ساعت تأخیر داره آقا. یکی هم مثل کلاس سه. - -- خوب چرا تا حالا پاکش نکردی؟ - -- به! آخه آدم درد دلشو واسه‌ی Ú©ÛŒ بگه؟ آخه آقا در میان تو روی آدم می‌گند جاسوس، مأمور! باهاش حرÙÙ… شده آقا. کتک Ùˆ کتک‌کاری! - -Ùˆ بعد یک سخنرانی Ú©Ù‡ Ú†Ù‡ طور مدرسه را خراب کرده‌اند Ùˆ اعتماد اهل محله را Ú†Ù‡ طور از بین برده‌اند Ú©Ù‡ نه انجمنی، نه Ú©Ù…Ú©ÛŒ به بی‌بضاعت‌ها؛ Ùˆ از این حر٠ها. - -بعد از سخنرانی آقای ناظم دستمالم را دادم Ú©Ù‡ آن عکس‌ها را پاک کند Ùˆ بعد هم راه Ø§ÙØªØ§Ø¯Ù… Ú©Ù‡ بروم سراغ اتاق خودم. در اتاقم را Ú©Ù‡ باز کردم، داشتم دماغم با بوی خاک نم کشیده‌اش اخت می‌کرد Ú©Ù‡ آخرین معلم هم آمد. آمدم توی ایوان Ùˆ با صدای بلند، جوری Ú©Ù‡ در تمام مدرسه بشنوند، ناظم را صدا زدم Ùˆ Ú¯ÙØªÙ… با قلم قرمز برای آقا یک ساعت تأخیر بگذارند. - -روز سوم باز اول وقت مدرسه بودم. هنوز از پشت دیوار نپیچیده بودم Ú©Ù‡ صدای سوز Ùˆ بریز بچه‌ها به پیشبازم آمد. تند کردم. پنج تا از بچه‌ها توی ایوان به خودشان می‌پیچیدند Ùˆ ناظم ترکه‌ای به دست داشت Ùˆ به نوبت به ک٠دست‌شان می‌زد. بچه‌ها التماس می‌کردند؛ گریه می‌کردند؛ اما دستشان را هم دراز می‌کردند. نزدیک بود داد بزنم یا با لگد بزنم Ùˆ ناظم را پرت کنم آن طرÙ. پشتش به من بود Ùˆ من را نمی‌دید. ناگهان زمزمه‌ای توی صÙ‌ها Ø§ÙØªØ§Ø¯ Ú©Ù‡ یک مرتبه مرا به ØµØ±Ø§ÙØª انداخت Ú©Ù‡ در مقام مدیریت مدرسه، به سختی می‌شود ناظم را کتک زد. این بود Ú©Ù‡ خشمم را ÙØ±Ùˆ خوردم Ùˆ آرام از پله‌ها Ø±ÙØªÙ… بالا. ناظم، تازه متوجه من شده بود در همین حین دخالتم را کردم Ùˆ خواهش کردم این بار همه‌شان را به من ببخشند. - -نمی‌دانم Ú†Ù‡ کار خطایی از آنها سر زده بود Ú©Ù‡ ناظم را تا این حد عصبانی کرده بود. بچه‌ها سکسکه‌کنان Ø±ÙØªÙ†Ø¯ توی صÙ‌ها Ùˆ بعد زنگ را زدند Ùˆ صÙ‌ها Ø±ÙØªÙ†Ø¯ به کلاس‌ها Ùˆ دنبالشان هم معلم‌ها Ú©Ù‡ همه سر وقت حاضر بودند. نگاهی به ناظم انداختم Ú©Ù‡ تازه حالش سر جا آمده بود Ùˆ Ú¯ÙØªÙ… در آن حالی Ú©Ù‡ داشت، ممکن بود گردن یک کدامشان را بشکند. Ú©Ù‡ مرتبه براق شد: - -- اگه یک روز جلوشونو نگیرید سوارتون می‌شند آقا. نمی‌دونید Ú†Ù‡ قاطرهای چموشی شده‌اند آقا. - -مثل بچه مدرسه‌ای‌ها آقا آقا می‌کرد. موضوع را برگرداندم Ùˆ احوال مادرش را پرسیدم. خنده، صورتش را از هم باز کرد Ùˆ صدا زد ÙØ±Ø§Ø´ برایش آب بیاورد. یادم هست آن روز نیم ساعتی برای آقای ناظم صحبت کردم. پیرانه. Ùˆ او جوان بود Ùˆ زود می‌شد رامش کرد. بعد ازش خواستم Ú©Ù‡ ترکه‌ها را بشکند Ùˆ آن وقت من Ø±ÙØªÙ… سراغ اتاق خودم. - -در همان Ù‡ÙØªÙ‡â€ŒÛŒ اول به کارها وارد شدم. ÙØ±Ø¯Ø§ÛŒ زمستان Ùˆ نه تا بخاری زغال سنگی Ùˆ روزی چهار بار آب آوردن Ùˆ آب Ùˆ جاروی اتاق‌ها با یک ÙØ±Ø§Ø´ جور در نمی‌آید. یک ÙØ±Ø§Ø´ دیگر از اداره ÛŒ ÙØ±Ù‡Ù†Ú¯ خواستم Ú©Ù‡ هر روز منتظر ورودش بودیم. بعد از ظهرها را Ù†Ù…ÛŒâ€ŒØ±ÙØªÙ…. روزهای اول با دست Ùˆ دل لرزان، ولی سه چهار روزه جرأت پیدا کردم. احساس می‌کردم Ú©Ù‡ مدرسه زیاد هم محض خاطر من نمی‌گردد. کلاس اول هم یکسره بود Ùˆ به خاطر بچه‌های جغله دلهره‌ای نداشتم. در بیابان‌های اطرا٠مدرسه هم ماشینی آمد Ùˆ Ø±ÙØª نداشت Ùˆ گرچه پست Ùˆ بلند بود اما به هر صورت از حیاط مدرسه Ú©Ù‡ بزرگ‌تر بود. معلم ها هم، هر بعد از ظهری دو تاشان به نوبت Ù…ÛŒâ€ŒØ±ÙØªÙ†Ø¯ یک جوری باهم کنار آمده بودند. Ùˆ ترسی هم از این نبود Ú©Ù‡ بچه‌ها از علم Ùˆ ÙØ±Ù‡Ù†Ú¯ ثقل سرد بکنند. یک روز هم بازرس آمد Ùˆ نیم ساعتی پیزر لای پالان هم گذاشتیم Ùˆ چای Ùˆ احترامات متقابل! Ùˆ در Ø¯ÙØªØ± بازرسی تصدیق کرد Ú©Ù‡ مدرسه «با وجود عدم وسایل» بسیار خوب اداره می‌شود. - -بچه‌ها مدام در مدرسه زمین می‌خوردند، بازی می‌کردند، زمین می‌خوردند. مثل اینکه تاتوله خورده بودند. ساده‌ترین Ø´Ú©Ù„ بازی‌هایشان در ربع ساعت‌های ØªÙØ±ÛŒØ­ØŒ دعوا بود. Ùکر می‌کردم علت این همه زمین خوردن شاید این باشد Ú©Ù‡ بیش‌ترشان Ú©ÙØ´ حسابی ندارند. آن‌ها هم Ú©Ù‡ داشتند، بچه‌ننه بودند Ùˆ بلد نبودند بدوند Ùˆ حتی راه بروند. این بود Ú©Ù‡ روزی دو سه بار، دست Ùˆ پایی خراش بر می‌داشت. پرونده‌ی برق Ùˆ تلÙÙ† مدرسه را از بایگانی بسیار محقر مدرسه بیرون کشیده بودم Ùˆ خوانده بودم. اگر یک خرده می‌دویدی تا دو سه سال دیگر هم برق مدرسه درست می‌شد Ùˆ هم تلÙنش. دوباره سری به اداره ساختمان زدم Ùˆ موضوع را تازه کردم Ùˆ به رÙقایی Ú©Ù‡ دورادور در اداره‌ی برق Ùˆ تلÙÙ† داشتم، یکی دو بار رو انداختم Ú©Ù‡ اول خیال می‌کردند کار خودم را می‌خواهم به اسم مدرسه راه بیندازم Ùˆ ناچار رها کردم. این قدر بود Ú©Ù‡ ادای وظیÙه‌ای می‌کرد. مدرسه آب نداشت. نه آب خوراکی Ùˆ نه آب جاری. با هرزاب بهاره، آب انبار زیر حوض را می‌انباشتند Ú©Ù‡ تلمبه‌ای سرش بود Ùˆ حوض را با همان پر می‌کردند Ùˆ خود بچه‌ها. اما برای آب خوردن دو تا منبع صد لیتری داشتیم از آهن سÙید Ú©Ù‡ مثل امامزاده‌ای یا سقاخانه‌ای دو قلو، روی چهار پایه کنار حیاط بود Ùˆ روزی دو بار پر Ùˆ خالی می‌شد. این آب را از همان باغی می‌آوردیم Ú©Ù‡ ردی٠کاج‌هایش روی آسمان، لکه‌ی دراز سیاه انداخته بود. البته ÙØ±Ø§Ø´ می‌آورد. با یک سطل بزرگ Ùˆ یک آب‌پاش Ú©Ù‡ سوراخ بود Ùˆ تا به مدرسه می‌رسید، نص٠شده بود. هر دو را از جیب خودم دادم تعمیر کردند. - -یک روز هم مالک مدرسه آمد. پیرمردی موقر Ùˆ سنگین Ú©Ù‡ خیال می‌کرد برای سرکشی به خانه‌ی مستأجرنشینش آمده. از در وارد نشده ÙØ±ÛŒØ§Ø¯Ø´ بلند شد Ùˆ ÙØ­Ø´ را کشید به ÙØ±Ø§Ø´ Ùˆ به ÙØ±Ù‡Ù†Ú¯ Ú©Ù‡ چرا بچه‌ها دیوار مدرسه را با زغال سیاه کرده‌اند واز همین توپ Ùˆ تشرش شناختمش. Ú©Ù„ÛŒ با او صحبت کردیم البته او دو برابر سن من را داشت. برایش چای هم آوردیم Ùˆ با معلم‌ها آشنا شد Ùˆ قول‌ها داد Ùˆ Ø±ÙØª. کنه‌ای بود. درست یک پیرمرد. یک ساعت Ùˆ نیم درست نشست. ماهی یک بار هم این برنامه را داشتند Ú©Ù‡ بایست پیه‌اش را به تن می‌مالیدم. - -اما معلم‌ها. هر کدام یک ابلاغ بیست Ùˆ چهار ساعته در دست داشتند، ولی در برنامه به هر کدام‌شان بیست ساعت درس بیشتر نرسیده بود. Ú©Ù… Ú©Ù… قرار شد Ú©Ù‡ یک معلم از ÙØ±Ù‡Ù†Ú¯ بخواهیم Ùˆ به هر کدام‌شان هجده ساعت درس بدهیم، به شرط آن‌که هیچ بعد از ظهری مدرسه تعطیل نباشد. حتی آن Ú©Ù‡ دانشگاه Ù…ÛŒâ€ŒØ±ÙØª می‌توانست با Ù‡ÙØªÙ‡â€ŒØ§ÛŒ هجده ساعت درس بسازد. Ùˆ دشوارترین کار همین بود Ú©Ù‡ با کدخدامنشی حل شد Ùˆ من یک معلم دیگر از ÙØ±Ù‡Ù†Ú¯ خواستم. - -اواخر Ù‡ÙØªÙ‡â€ŒÛŒ دوم، ÙØ±Ø§Ø´ جدید آمد. مرد پنجاه ساله‌ای باریک Ùˆ زبر Ùˆ زرنگ Ú©Ù‡ شب‌کلاه می‌گذاشت Ùˆ لباس آبی می‌پوشید Ùˆ تسبیح می‌گرداند Ùˆ از هر کاری سر رشته داشت. آب خوردن را نوبتی می‌آوردند. مدرسه تر Ùˆ تمیز شد Ùˆ رونقی Ú¯Ø±ÙØª. ÙØ±Ø§Ø´ جدید سرش توی حساب بود. هر دو مستخدم با هم تمام بخاری‌ها را راه انداختند Ùˆ یک کارگر هم برای Ú©Ù…Ú© به آن‌ها آمد. ÙØ±Ø§Ø´ قدیمی را چهار روز پشت سر هم، سر ظهر Ù…ÛŒâ€ŒÙØ±Ø³ØªØ§Ø¯ÛŒÙ… اداره‌ی ÙØ±Ù‡Ù†Ú¯ Ùˆ هر آن منتظر زغال بودیم. هنوز یک Ù‡ÙØªÙ‡ از آمدن ÙØ±Ø§Ø´ جدید نگذشته بود Ú©Ù‡ صدای همه‌ی معلم‌ها در آمده بود. نه به هیچ کدامشان سلام می‌کرد Ùˆ نه به دنبال خرده ÙØ±Ù…ایش‌هایشان Ù…ÛŒâ€ŒØ±ÙØª. درست است Ú©Ù‡ به من سلام می‌کرد، اما معلم‌ها هم، لابد هر کدام در حدود من صاحب ÙØ¶Ø§ÛŒÙ„ Ùˆ عنوان Ùˆ معلومات بودند Ú©Ù‡ از یک ÙØ±Ø§Ø´ مدرسه توقع سلام داشته باشند. اما انگار نه انگار. - -بدتر از همه این Ú©Ù‡ سر خر معلم‌ها بود. من Ú©Ù‡ از همان اول، خرجم را سوا کرده بودم Ùˆ آن‌ها را آزاد گذاشته بودم Ú©Ù‡ در مواقع بیکاری در Ø¯ÙØªØ± را روی خودشان ببندند Ùˆ هر Ú†Ù‡ می‌خواهند بگویند Ùˆ هر کاری می‌خواهند بکنند. اما او در ÙØ§ØµÙ„ه‌ی ساعات درس، همچه Ú©Ù‡ معلم‌ها می‌آمدند، می‌آمد توی Ø¯ÙØªØ± Ùˆ همین طوری گوشه‌ی اتاق می‌ایستاد Ùˆ معلم‌ها کلاÙÙ‡ می‌شدند. نه می‌توانستند شلکلک‌های معلمی‌شان را در حضور او کنار بگذارند Ùˆ نه جرأت می‌کردند به او چیزی بگویند. بدزبان بود Ùˆ از عهده‌ی همه‌شان بر می‌آمد. یکی دوبار دنبال نخود سیاه ÙØ±Ø³ØªØ§Ø¯Ù‡ بودندش. اما زرنگ بود Ùˆ Ùوری کار را انجام می‌داد Ùˆ بر می‌گشت. حسابی موی دماغ شده بود. ده سال تجربه این حداقل را به من آموخته بود Ú©Ù‡ اگر معلم‌ها در ربع ساعت‌های ØªÙØ±ÛŒØ­ نتوانند بخندند، سر کلاس، بچه‌های مردم را کتک خواهند زد. این بود Ú©Ù‡ دخالت کردم. یک روز ÙØ±Ø§Ø´ جدید را صدا زدم. اول حال Ùˆ احوالپرسی Ùˆ بعد چند سال سابقه دارد Ùˆ چند تا بچه Ùˆ Ú†Ù‡ قدر می‌گیرد... Ú©Ù‡ قضیه حل شد. سی صد Ùˆ خرده‌ای حقوق Ù…ÛŒâ€ŒÚ¯Ø±ÙØª. با بیست Ùˆ پنج سال سابقه. کار از همین جا خراب بود. پیدا بود Ú©Ù‡ معلم‌ها حق دارند او را غریبه بدانند. نه دیپلمی، نه کاغذپاره‌ای، هر Ú†Ù‡ باشد یک ÙØ±Ø§Ø´ Ú©Ù‡ بیشتر نبود! Ùˆ تازه قلدر هم بود Ùˆ حق هم داشت. اول به اشاره Ùˆ کنایه Ùˆ بعد با صراحت بهش Ùهماندم Ú©Ù‡ گر Ú†Ù‡ معلم جماعت اجر دنیایی ندارد، اما از او Ú©Ù‡ آدم متدین Ùˆ Ùهمیده‌ای است بعید است Ùˆ از این حرÙ‌ها... Ú©Ù‡ یک مرتبه پرید توی حرÙÙ… Ú©Ù‡: - -- ای آقا! Ú†Ù‡ Ù…ÛŒâ€ŒÙØ±Ù…ایید؟ شما نه خودتون این کاره‌اید Ùˆ نه اینارو می‌شناسید. امروز می‌خواند سیگار براشون بخرم، ÙØ±Ø¯Ø§ Ù…ÛŒâ€ŒÙØ±Ø³ØªÙ†Ù… سراغ عرق. من این‌ها رو می‌شناسم. - -راست Ù…ÛŒâ€ŒÚ¯ÙØª. زودتر از همه، او دندان‌های مرا شمرده بود. Ùهمیده بود Ú©Ù‡ در مدرسه هیچ‌کاره‌ام. می‌خواستم کوتاه بیایم، ولی مدیر مدرسه بودن Ùˆ در مقابل یک ÙØ±Ø§Ø´ پررو ساکت ماندن!... Ú©Ù‡ خر خر کامیون زغال به دادم رسید. ترمز Ú©Ù‡ کرد Ùˆ صدا خوابید Ú¯ÙØªÙ…: - -- این حرÙ‌ها قباحت داره. معلم جماعت کجا پولش به عرق می‌رسه؟ حالا بدو زغال آورده‌اند. - -Ùˆ همین طور Ú©Ù‡ داشت بیرون Ù…ÛŒâ€ŒØ±ÙØªØŒ Ø§ÙØ²ÙˆØ¯Ù…: - -- دو روز دیگه Ú©Ù‡ محتاجت شدند Ùˆ ازت قرض خواستند با هم رÙیق می‌شید. - -Ùˆ آمدم توی ایوان. در بزرگ آهنی مدرسه را باز کرده بودند Ùˆ کامیون آمده بود تو Ùˆ داشتند بارش را جلوی انبار ته حیاط خالی می‌کردند Ùˆ راننده، کاغذی به دست ناظم داد Ú©Ù‡ نگاهی به آن انداخت Ùˆ مرا نشان داد Ú©Ù‡ در ایوان بالا ایستاده بودم Ùˆ ÙØ±Ø³ØªØ§Ø¯Ø´ بالا. کاغذش را با سلام به دستم داد. بیجک زغال بود. رسید رسمی اداره‌ی ÙØ±Ù‡Ù†Ú¯ بود در سه نسخه Ùˆ روی آن ورقه‌ی ماشین شده‌ی «باسکول» Ú©Ù‡ Ù…ÛŒâ€ŒÚ¯ÙØª کامیون Ùˆ محتویاتش جمعاً دوازده خروار است. اما رسیدهای رسمی اداری ÙØ±Ù‡Ù†Ú¯ ساکت بودند. جای مقدار زغالی Ú©Ù‡ تحویل مدرسه داده شده بود، در هر سه نسخه خالی بود. پیدا بود Ú©Ù‡ تحویل گیرنده باید پرشان کند. همین کار را کردم. اوراق را بردم توی اتاق Ùˆ با خودنویسم عدد را روی هر سه ورق نوشتم Ùˆ امضا کردم Ùˆ به دست راننده دادم Ú©Ù‡ راه Ø§ÙØªØ§Ø¯ Ùˆ از همان بالا به ناظم Ú¯ÙØªÙ…: - -- اگر مهر هم بایست زد، خودت بزن بابا. - -Ùˆ Ø±ÙØªÙ… سراغ کارم Ú©Ù‡ ناگهان در باز شد Ùˆ ناظم آمد تو؛ بیجک زغال دستش بود Ùˆ: - -- Ù…Ú¯Ù‡ Ù†Ùهمیدین آقا؟ مخصوصاً جاش رو خالی گذاشته بودند آقا... - -Ù†Ùهمیده بودم. اما اگر هم Ùهمیده بودم، ÙØ±Ù‚ÛŒ نمی‌کرد Ùˆ به هر صورت از چنین کودنی نا به هنگام از جا در Ø±ÙØªÙ… Ùˆ به شدت Ú¯ÙØªÙ…: - -- خوب؟ - -- هیچ Ú†ÛŒ آقا.... رسم‌شون همینه آقا. اگه باهاشون کنار نیایید کارمونو لنگ می‌گذارند آقا... - -Ú©Ù‡ از جا در Ø±ÙØªÙ…. به چنین صراحتی مرا Ú©Ù‡ مدیر مدرسه بودم در معامله شرکت می‌داد. Ùˆ ÙØ±ÛŒØ§Ø¯ زدم: - -- عجب! حالا سرکار برای من تکلی٠هم معین می‌کنید؟... خاک بر سر این ÙØ±Ù‡Ù†Ú¯ با مدیرش Ú©Ù‡ من باشم! برو ورقه رو بده دست‌شون، گورشون رو Ú¯Ù… کنند. پدر سوخته‌ها... - -چنان ÙØ±ÛŒØ§Ø¯ زده بودم Ú©Ù‡ هیچ کس در مدرسه انتظار نداشت. مدیر سر به زیر Ùˆ پا به راهی بودم Ú©Ù‡ از همه خواهش می‌کردم Ùˆ حالا ناظم مدرسه، داشت به من یاد می‌داد Ú©Ù‡ به جای نه خروار زغال مثلا هجده خروار تحویل بگیرم Ùˆ بعد با اداره‌ی ÙØ±Ù‡Ù†Ú¯ کنار بیایم. Ù‡ÛŒ Ù‡ÛŒ!.... تا ظهر هیچ کاری نتوانستم بکنم، جز این‌که چند بار متن Ø§Ø³ØªØ¹ÙØ§Ù†Ø§Ù…ه‌ام را بنویسم Ùˆ پاره کنم... قدم اول را این جور جلوی پای آدم می‌گذارند. - -بارندگی Ú©Ù‡ شروع شد دستور دادم بخاری‌ها را از Ù‡ÙØª صبح بسوزانند. بچه‌ها همیشه زود می‌آمدند. حتی روزهای بارانی. مثل این‌که اول Ø¢ÙØªØ§Ø¨ از خانه بیرون‌شان می‌کنند. یا ناهارنخورده. خیلی سعی کردم یک روز زودتر از بچه‌ها مدرسه باشم. اما عاقبت نشد Ú©Ù‡ مدرسه را خالی از Ù†ÙØ³Ù به علم‌آلوده‌ی بچه‌ها استنشاق کنم. از راه Ú©Ù‡ می‌رسیدند دور بخاری جمع می‌شدند Ùˆ گیوه‌هاشان را خشک می‌کردند. Ùˆ خیلی زود Ùهمیدم Ú©Ù‡ ظهر در مدرسه ماندن هم مسأله Ú©ÙØ´ بود. هر Ú©Ù‡ داشت نمی‌ماند.این قاعده در مورد معلم‌ها هم صدق می‌کرد اقلاً یک پول واکس جلو بودند. وقتی Ú©Ù‡ باران می‌بارید تمام کوهپایه Ùˆ بدتر از آن تمام حیاط مدرسه Ú¯Ù„ می‌شد. بازی Ùˆ دویدن متوق٠شده بود. مدرسه سوت Ùˆ کور بود. این جا هم مسأله Ú©ÙØ´ بود. چشم اغلبشان هم قرمز بود. پیدا بود باز آن روز صبح یک ÙØµÙ„ گریه کرده‌اند Ùˆ در خانه‌شان علم صراطی بوده است. - -مدرسه داشت تخته می‌شد. عده‌ی غایب‌های صبح ده برابر شده بود Ùˆ ساعت اول هیچ معلمی نمی‌توانست درس بدهد. دست‌های ورم‌کرده Ùˆ سرمازده کار نمی‌کرد. حتی معلم کلاس اولمان هم می‌دانست Ú©Ù‡ ÙØ±Ù‡Ù†Ú¯ Ùˆ معلومات مدارس ما ØµØ±ÙØ§Ù‹ تابع تمرین است. مشق Ùˆ تمرین. ده بار بیست بار. دست یخ‌کرده بیل Ùˆ رنده را هم نمی‌تواند به کار بگیرد Ú©Ù‡ خیلی هم زمخت‌اند Ùˆ دست پر Ú©Ù†. این بود Ú©Ù‡ به Ùکر Ø§ÙØªØ§Ø¯ÛŒÙ…. ÙØ±Ø§Ø´ جدید واردتر از همه‌ی ما بود. یک روز در اتاق Ø¯ÙØªØ±ØŒ شورامانندی داشتیم Ú©Ù‡ البته او هم بود. خودش را کم‌کم تحمیل کرده بود. Ú¯ÙØª حاضر است یکی از دÙÙ…â€ŒÚ©Ù„ÙØªâ€ŒÙ‡Ø§ÛŒ همسایه‌ی مدرسه را وادارد Ú©Ù‡ شن برایمان Ø¨ÙØ±Ø³ØªØ¯ به شرط آن Ú©Ù‡ ما هم برویم Ùˆ از انجمن محلی برای بچه‌ها Ú©ÙØ´ Ùˆ لباس بخواهیم. قرار شد خودش قضیه را دنبال کند Ú©Ù‡ Ù‡ÙØªÙ‡â€ŒÛŒ آینده جلسه‌شان کجاست Ùˆ حتی بخواهد Ú©Ù‡ دعوت‌مانندی از ما بکنند. دو روز بعد سه تا کامیون شن آمد. دوتایش را توی حیاط مدرسه، خالی کردیم Ùˆ سومی را دم در مدرسه، Ùˆ خود بچه‌ها نیم ساعته پهنش کردند. با پا Ùˆ بیل Ùˆ هر Ú†Ù‡ Ú©Ù‡ به دست می‌رسید. - -عصر همان روز ما را به انجمن دعوت کردند. خود من Ùˆ ناظم باید Ù…ÛŒâ€ŒØ±ÙØªÛŒÙ…. معلم کلاس چهارم را هم با خودمان بردیم. خانه‌ای Ú©Ù‡ محل جلسه‌ی آن شب انجمن بود، درست مثل مدرسه، دور Ø§ÙØªØ§Ø¯Ù‡ Ùˆ تنها بود. قالی‌ها Ùˆ کناره‌ها را به ÙØ±Ù‡Ù†Ú¯ می‌آلودیم Ùˆ Ù…ÛŒâ€ŒØ±ÙØªÛŒÙ…. مثل این‌که سه تا سه تا روی هم انداخته بودند. اولی Ú©Ù‡ کثی٠شد دومی. به بالا Ú©Ù‡ رسیدیم یک حاجی آقا در حال نماز خواندن بود. Ùˆ صاحب‌خانه با لهجه‌ی غلیظ یزدی به استقبال‌مان آمد. همراهانم را معرÙÛŒ کردم Ùˆ لابد خودش Ùهمید مدیر کیست. برای ما چای آوردند. سیگارم را چاق کردم Ùˆ با صاحب‌خانه از قالی‌هایش حر٠زدیم. ناظم به بچه‌هایی می‌ماند Ú©Ù‡ در مجلس بزرگترها خوابشان می‌گیرد Ùˆ دل‌شان هم نمی‌خواست دست به سر شوند. سر اعضای انجمن باز شده بود. حاجی آقا صندوقدار بود. من Ùˆ ناظم عین دو Ø·Ùلان مسلم بودیم Ùˆ معلم کلاس چهارم عین خولی وسطمان نشسته. اغلب اعضای انجمن به زبان محلی صحبت می‌کردند Ùˆ Ø±ÙØªØ§Ø± ناشی داشتند. حتی یک کدامشان نمی‌دانستند Ú©Ù‡ دست Ùˆ پاهای خود را Ú†Ù‡ جور ضبط Ùˆ ربط کنند. بلند بلند حر٠می‌زدند. درست مثل این‌که وزارتخانه‌ی دواب سه تا حیوان تازه برای باغ وحش محله‌شان وارد کرده. جلسه Ú©Ù‡ رسمی شد، صاحبخانه معرÙی‌مان کرد Ùˆ شروع کردند. مدام از خودشان صحبت می‌کردند از این‌که دزد دیشب Ùلان جا را Ú¯Ø±ÙØªÙ‡ Ùˆ باید درخواست پاسبان شبانه کنیم Ùˆ... - -همین طور یک ساعت حر٠زدند Ùˆ به مهام امور رسیدگی کردند Ùˆ من Ùˆ معلم کلاس چهارم سیگار کشیدیم. انگار نه انگار Ú©Ù‡ ما هم بودیم. نوکرشان Ú©Ù‡ آمد استکان‌ها را جمع کند، چیزی روی جلد اشنو نوشتم Ùˆ برای صاحبخانه ÙØ±Ø³ØªØ§Ø¯Ù… Ú©Ù‡ یک مرتبه به ØµØ±Ø§ÙØª ما Ø§ÙØªØ§Ø¯ Ùˆ اجازه خواست Ùˆ: - -- آقایان عرضی دارند. بهتر است کارهای خودمان را بگذاریم برای بعد. - -مثلاً می‌خواست بÙهماند Ú©Ù‡ نباید همه‌ی حرÙ‌ها را در حضور ما زده باشند. Ùˆ اجازه دادند معلم کلاس چهار شروع کرد به نطق Ùˆ او هم شروع کرد Ú©Ù‡ هر Ú†Ù‡ باشد ما زیر سایه‌ی آقایانیم Ùˆ خوش‌آیند نیست Ú©Ù‡ بچه‌هایی باشند Ú©Ù‡ نه لباس داشته باشند Ùˆ نه Ú©ÙØ´ درست Ùˆ حسابی Ùˆ از این حرÙ‌ها Ùˆ مدام حر٠می‌زد. ناظم هم از Ú†ÙØ±Øª در آمد چیزهایی را Ú©Ù‡ از Ø­ÙØ¸ کرده بود Ú¯ÙØª Ùˆ التماس دعا Ùˆ کار را خراب کرد.تشری به ناظم زدم Ú©Ù‡ گدابازی را بگذارد کنار Ùˆ حالی‌شان کردم Ú©Ù‡ صحبت از تقاضا نیست Ùˆ گدایی. بلکه مدرسه دور Ø§ÙØªØ§Ø¯Ù‡ است Ùˆ مستراح بی در Ùˆ پیکر Ùˆ از این اباطیل... Ú†Ù‡ خوب شد Ú©Ù‡ عصبانی نشدم. Ùˆ قرار شد Ú©Ù‡ پنج Ù†ÙØ±Ø´Ø§Ù† ÙØ±Ø¯Ø§ عصر بیایند Ú©Ù‡ مدرسه را وارسی کنند Ùˆ تشکر Ùˆ اظهار خوشحالی Ùˆ در آمدیم. - -در تاریکی بیابان Ù‡ÙØª تا سواری پشت در خانه ردی٠بودند Ùˆ راننده‌ها توی یکی از آن‌ها جمع شده بودند Ùˆ اسرار ارباب‌هاشان را به هم Ù…ÛŒâ€ŒÚ¯ÙØªÙ†Ø¯. در این حین من مدام به خودم Ù…ÛŒâ€ŒÚ¯ÙØªÙ… من چرا Ø±ÙØªÙ…ØŸ به من چه؟ مگر من در بی Ú©ÙØ´ Ùˆ کلاهی‌شان مقصر بودم؟ می‌بینی احمق؟ مدیر مدرسه هم Ú©Ù‡ باشی باید شخصیت Ùˆ غرورت را لای زرورق بپیچی Ùˆ طاق کلاهت بگذاری Ú©Ù‡ اقلاً نپوسد. حتی اگر بخواهی یک معلم Ú©ÙˆÙØªÛŒ باشی، نه چرا دور می‌زنی؟ حتی اگر یک ÙØ±Ø§Ø´ ماهی نود تومانی باشی، باید تا خرخره توی لجن ÙØ±Ùˆ بروی.در همین حین Ú©Ù‡ من در Ùکر بودم ناظم Ú¯ÙØª: - -- دیدید آقا Ú†Ù‡ طور باهامون Ø±ÙØªØ§Ø± کردند؟ با یکی از قالی‌هاشون آقا تمام مدرسه رو می‌خرید. - -Ú¯ÙØªÙ…: - -- تا سر Ùˆ کارت با الÙ.ب است به‌پا قیاس Ù†Ú©Ù†ÛŒ. خودخوری می‌آره. - -Ùˆ معلم کلاس چهار Ú¯ÙØª: - -- اگه ÙØ­Ø´Ù…ون هم می‌دادند من باز هم راضی بودم، باید واقع‌بین بود. خدا کنه پشیمون نشند. - -بعد هم مدتی درد دل کردیم Ùˆ تا اتوبوس برسد Ùˆ سوار بشیم، معلوم شد Ú©Ù‡ معلم کلاس چهار با زنش متارکه کرده Ùˆ مادر ناظم را سرطانی تشخیص دادند. Ùˆ بعد هم شب بخیر... - -دو روز تمام مدرسه Ù†Ø±ÙØªÙ…. خجالت می‌کشیدم توی صورت یک کدام‌شان نگاه کنم. Ùˆ در همین دو روز حاجی آقا با دو Ù†ÙØ± آمده بودند، مدرسه را وارسی Ùˆ صورت‌برداری Ùˆ ناظم Ù…ÛŒâ€ŒÚ¯ÙØª Ú©Ù‡ حتی بچه‌هایی هم Ú©Ù‡ Ú©ÙØ´ Ùˆ کلاهی داشتند پاره Ùˆ پوره آمده بودند. Ùˆ برای بچه‌ها Ú©ÙØ´ Ùˆ لباس خریدند. روزهای بعد احساس کردم زن‌هایی Ú©Ù‡ سر راهم لب جوی آب ظر٠می‌شستند، سلام می‌کنند Ùˆ یک بار هم دعای خیر یکی‌شان را از عقب سر شنیدم.اما چنان از خودم بدم آمده بود Ú©Ù‡ رغبتم نمی‌شد به Ú©ÙØ´ Ùˆ لباس‌هاشان نگاه کنم. قربان همان گیوه‌های پاره! بله، نان گدایی ÙØ±Ù‡Ù†Ú¯ را نو نوار کرده بود. - -تازه از دردسرهای اول کار مدرسه ÙØ§Ø±Øº شده بودم Ú©Ù‡ شنیدم Ú©Ù‡ یک روز صبح، یکی از اولیای Ø§Ø·ÙØ§Ù„ آمد. بعد از سلام Ùˆ احوالپرسی دست کرد توی جیبش Ùˆ شش تا عکس در آورد، گذاشت روی میزم. شش تا عکس زن لخت. لخت لخت Ùˆ هر کدام به یک حالت. یعنی چه؟ نگاه تندی به او کردم. آدم مرتبی بود. اداری مانند. کسر شأن خودم می‌دانستم Ú©Ù‡ این گوشه‌ی از زندگی را طبق دستور عکاس‌باشی Ùلان جنده‌خانه‌ی بندری ببینم. اما حالا یک مرد اتو کشیده‌ی مرتب آمده بود Ùˆ شش تا از همین عکس‌ها را روی میزم پهن کرده بود Ùˆ به انتظار آن Ú©Ù‡ وقاحت عکس‌ها چشم‌هایم را پر کند داشت سیگار چاق می‌کرد. - -حسابی غاÙلگیر شده بودم... حتماً تا هر شش تای عکس‌ها را ببینم، بیش از یک دقیقه طول کشید. همه از یک Ù†ÙØ± بود. به این Ùکر گریختم Ú©Ù‡ الان هزار ها یا میلیون ها نسخه‌ی آن، توی جیب Ú†Ù‡ جور آدم‌هایی است Ùˆ در کجاها Ùˆ Ú†Ù‡ قدر خوب بود Ú©Ù‡ همه‌ی این آدم‌ها را می‌شناختم یا می‌دیدم. بیش ازین نمی‌شد گریخت. یارو به تمام وزنه وقاحتش، جلوی رویم نشسته بود. سیگاری آتش زدم Ùˆ چشم به او دوختم. کلاÙÙ‡ بود Ùˆ پیدا بود برای کتک‌کاری هم آماده باشد. سرخ شده بود Ùˆ داشت در دود سیگارش تکیه‌گاهی برای جسارتی Ú©Ù‡ می‌خواست به خرج بدهد می‌جست. عکس‌ها را با یک ورقه از اباطیلی Ú©Ù‡ همان روز سیاه کرده بودم، پوشاندم Ùˆ بعد با لحنی Ú©Ù‡ دعوا را با آن شروع می‌کنند؛ پرسیدم: - -- خوب، غرض؟ - -Ùˆ صدایم توی اتاق پیچید. حرکتی از روی بیچارگی به خودش داد Ùˆ همه‌ی جسارت‌ها را با دستش توی جیبش کرد Ùˆ آرام‌تر از آن چیزی Ú©Ù‡ با خودش تو آورده بود، Ú¯ÙØª: - -- Ú†Ù‡ عرض کنم؟... از معلم کلاس پنج تون بپرسید. - -Ú©Ù‡ راحت شدم Ùˆ او شروع کرد به این Ú©Ù‡ «این Ú†Ù‡ ÙØ±Ù‡Ù†Ú¯ÛŒ است؟ خراب بشود. پس بچه‌های مردم با Ú†Ù‡ اطمینانی به مدرسه بیایند؟ - -Ùˆ از این حرÙ‌ها... - -خلاصه این آقا معلم کاردستی کلاس پنجم، این عکس‌ها را داده به پسر آقا تا آن‌ها را روی تخته سه لایی بچسباند Ùˆ دورش را سمباده بکشد Ùˆ بیاورد. به هر صورت معلم کلاس پنج بی‌گدار به آب زده. Ùˆ حالا من Ú†Ù‡ بکنم؟ به او Ú†Ù‡ جوابی بدهم؟ بگویم معلم را اخراج می‌کنم؟ Ú©Ù‡ نه می‌توانم Ùˆ نه لزومی دارد. او Ú†Ù‡ بکند؟ حتماً در این شهر کسی را ندارد Ú©Ù‡ به این عکس‌ها دلخوش کرده. ولی آخر چرا این جور؟ یعنی این قدر احمق است Ú©Ù‡ حتی شاگردهایش را نمی‌شناسد؟... پاشدم ناظم را صدا بزنم Ú©Ù‡ خودش آمده بود بالا، توی ایوان منتظر ایستاده بود. من آخرین کسی بودم Ú©Ù‡ از هر Ø§ØªÙØ§Ù‚ÛŒ در مدرسه خبردار می‌شدم. حضور این ولی Ø·ÙÙ„ گیجم کرده بود Ú©Ù‡ چنین عکس‌هایی را از توی جیب پسرش، Ùˆ لابد به همین وقاحتی Ú©Ù‡ آن‌ها را روی میز من ریخت، در آورده بوده. وقتی Ùهمید هر دو در مانده‌ایم سوار بر اسب شد Ú©Ù‡ اله می‌کنم Ùˆ بله می‌کنم، در مدرسه را می‌بندم، Ùˆ از این جÙنگیات.... - -حتماً نمی‌دانست Ú©Ù‡ اگر در هر مدرسه بسته بشود، در یک اداره بسته شده است. اما من تا او بود نمی‌توانستم Ùکرم را جمع کنم. می‌خواست پسرش را بخواهیم تا شهادت بدهد Ùˆ Ú†Ù‡ جانی کندیم تا حالیش کنیم Ú©Ù‡ پسرش هر Ú†Ù‡ Ø®ÙØª کشیده، بس است Ùˆ وعده‌ها دادیم Ú©Ù‡ معلمش را دم خورشید کباب کنیم Ùˆ از نان خوردن بیندازیم. یعنی اول ناظم شروع کرد Ú©Ù‡ از دست او دل پری داشت Ùˆ من هم دنبالش را Ú¯Ø±ÙØªÙ…. برای دک کردن او چاره‌ای جز این نبود. Ùˆ بعد Ø±ÙØªØŒ ما دو Ù†ÙØ±ÛŒ ماندیم با شش تا عکس زن لخت. حواسم Ú©Ù‡ جمع شد به ناظم سپردم صدایش را در نیاورد Ùˆ یک Ù‡ÙØªÙ‡â€ŒÛŒ تمام مطلب را با عکس‌ها، توی کشوی میزم Ù‚ÙÙ„ کردم Ùˆ بعد پسرک را صدا زدم. نه Ø¹Ø²ÛŒØ²Ø¯ÙØ±Ø¯Ø§Ù†Ù‡ می‌نمود Ùˆ نه هیچ جور دیگر. داد می‌زد Ú©Ù‡ از خانواده‌ی عیال‌واری است. کم‌خونی Ùˆ Ùقر. دیدم معلمش زیاد هم بد تشخیص نداده. یعنی زیاد بی‌گدار به آب نزده. Ú¯ÙØªÙ…: - -- خواهر برادر هم داری؟ - -- Ø¢... Ø¢...آقا داریم آقا. - -- چند تا؟ - -- Ø¢... آقا چهار تا آقا. - -- عکس‌ها رو خودت به بابات نشون دادی؟ - -- نه به خدا آقا... به خدا قسم... - -- پس Ú†Ù‡ طور شد؟ - -Ùˆ دیدم از ترس دارد قالب تهی می‌کند. گرچه چوب‌های ناظم شکسته بود، اما ترس او از من Ú©Ù‡ مدیر باشم Ùˆ از ناظم Ùˆ از مدرسه Ùˆ از تنبیه سالم مانده بود. - -- نترس بابا. کاریت نداریم. تقصیر آقا معلمه Ú©Ù‡ عکس‌ها رو داده... تو کار بدی نکردی بابا جان. Ùهمیدی؟ اما می‌خواهم ببینم Ú†Ù‡ طور شد Ú©Ù‡ عکس‌ها دست بابات Ø§ÙØªØ§Ø¯. - -- Ø¢.. Ø¢... آخه آقا... آخه... - -می‌دانستم Ú©Ù‡ باید Ú©Ù…Ú©Ø´ کنم تا به حر٠بیاید. - -Ú¯ÙØªÙ…: - -- می‌دونی بابا؟ عکس‌هام چیز بدی نبود. تو خودت Ùهمیدی Ú†ÛŒ بود؟ - -- آخه آقا...نه آقا.... خواهرم آقا... خواهرم Ù…ÛŒâ€ŒÚ¯ÙØª... - -- خواهرت؟ از تو کوچک‌تره؟ - -- نه آقا. بزرگ‌تره. Ù…ÛŒâ€ŒÚ¯ÙØªØ´ Ú©Ù‡ آقا... Ù…ÛŒâ€ŒÚ¯ÙØªØ´ Ú©Ù‡ آقا... هیچ Ú†ÛŒ سر عکس‌ها دعوامون شد. - -دیگر تمام بود. عکس‌ها را به خواهرش نشان داده بود Ú©Ù‡ لای Ø¯ÙØªØ±Ú†Ù‡ پر بوده از عکس آرتیست‌ها. به او پز داده بوده. اما حاضر نبوده، حتی یکی از آن‌ها را به خواهرش بدهد. آدم مورد اعتماد معلم باشد Ùˆ چنین خبطی بکند؟ Ùˆ تازه جواب معلم را Ú†Ù‡ بدهد؟ ناچار خواهر او را لو داده بوده. بعد از او معلم را احضار کردم. علت احضار را می‌دانست. Ùˆ داد می‌زد Ú©Ù‡ چیزی ندارد بگوید. پس از یک Ù‡ÙØªÙ‡ مهلت، هنوز از وقاحتی Ú©Ù‡ من پیدا کرده بودم، تا از آدم خلع سلاح‌شده‌ای مثل او، دست بر ندارم، در تعجب بود. به او سیگار تعار٠کردم Ùˆ این قصه را برایش تعری٠کردم Ú©Ù‡ در اوایل تأسیس وزارت Ù…Ø¹Ø§Ø±ÙØŒ یک روز به وزیر خبر می‌دهند Ú©Ù‡ Ùلان معلم با Ùلان بچه روابطی دارد. وزیر Ùوراً او را می‌خواهد Ùˆ حال Ùˆ احوال او را می‌پرسد Ùˆ این‌که چرا تا به حال زن Ù†Ú¯Ø±ÙØªÙ‡ Ùˆ ناچار تقصیر گردن بی‌پولی Ù…ÛŒâ€ŒØ§ÙØªØ¯ Ùˆ دستور Ú©Ù‡ Ùلان قدر به او Ú©Ù…Ú© کنند تا عروسی راه بیندازد Ùˆ خود او هم دعوت بشود Ùˆ قضیه به همین سادگی تمام می‌شود. Ùˆ بعد Ú¯ÙØªÙ… Ú©Ù‡ خیلی جوان‌ها هستند Ú©Ù‡ نمی‌توانند زن بگیرند Ùˆ وزرای ÙØ±Ù‡Ù†Ú¯ هم این روزها Ú¯Ø±ÙØªØ§Ø± مصاحبه‌های روزنامه‌ای Ùˆ رادیویی هستند. اما در نجیب‌خانه‌ها Ú©Ù‡ باز است Ùˆ ازین Ù…Ø²Ø®Ø±ÙØ§Øª... Ùˆ هم‌دردی Ùˆ نگذاشتم یک کلمه حر٠بزند. بعد هم عکس را Ú©Ù‡ توی پاکت گذاشته بودم، به دستش دادم Ùˆ وقاحت را با این جمله به حد اعلا رساندم Ú©Ù‡: - -- اگر به تخته نچسبونید، ضررشون کم‌تره. - -تا حقوقم به لیست اداره‌ی ÙØ±Ù‡Ù†Ú¯ برسه، سه ماه طول کشید. ÙØ±Ù‡Ù†Ú¯ÛŒâ€ŒÙ‡Ø§ÛŒ گداگشنه Ùˆ خزانه‌ی خالی Ùˆ دست‌های از پا درازتر! اما خوبیش این بود Ú©Ù‡ در مدرسه‌ی ما ÙØ±Ø§Ø´ جدیدمان پولدار بود Ùˆ به همه‌شان قرض داد. Ú©Ù… Ú©Ù… بانک مدرسه شده بود. از سیصد Ùˆ خرده‌ای تومان Ú©Ù‡ Ù…ÛŒâ€ŒÚ¯Ø±ÙØªØŒ پنجاه تومان را هم خرج نمی‌کرد. نه سیگار می‌کشید Ùˆ نه اهل سینما بود Ùˆ نه برج دیگری داشت. از این گذشته، باغبان یکی از Ø¯Ù…â€ŒÚ©Ù„ÙØªâ€ŒÙ‡Ø§ÛŒ همان اطرا٠بود Ùˆ باغی Ùˆ دستگاهی Ùˆ سور Ùˆ ساتی Ùˆ لابد آشپزخانه‌ی مرتبی. خیلی زود معلم‌ها Ùهمیدند Ú©Ù‡ یک ÙØ±Ø§Ø´ پولدار خیلی بیش‌تر به درد می‌خورد تا یک مدیر بی‌بو Ùˆ خاصیت. - -این از معلم‌ها. حقوق مرا هم هنوز از مرکز می‌دادند. با حقوق ماه بعد هم اسم مرا هم به لیست اداره منتقل کردند. درین مدت خودم برای خودم ورقه انجام کار می‌نوشتم Ùˆ امضا می‌کردم Ùˆ Ù…ÛŒâ€ŒØ±ÙØªÙ… از مدرسه‌ای Ú©Ù‡ قبلاً در آن درس می‌دادم، حقوقم را Ù…ÛŒâ€ŒÚ¯Ø±ÙØªÙ…. سر Ùˆ صدای حقوق Ú©Ù‡ بلند می‌شد معلم‌ها مرتب می‌شدند Ùˆ کلاس ماهی سه چهار روز کاملاً دایر بود. تا ورقه‌ی انجام کار به دستشان بدهم. غیر از همان یک بار - در اوایل کار- Ú©Ù‡ برای معلم حساب پنج Ùˆ شش قرمز توی Ø¯ÙØªØ± گذاشتیم، دیگر با مداد قرمز کاری نداشتیم Ùˆ خیال همه‌شان راحت بود. وقتی برای Ú¯Ø±ÙØªÙ† حقوقم به اداره Ø±ÙØªÙ…ØŒ چنان شلوغی بود Ú©Ù‡ به خودم Ú¯ÙØªÙ… کاش اصلاً حقوقم را منتقل نکرده بودم. نه می‌توانستم سر ص٠بایستم Ùˆ نه می‌توانستم از حقوقم بگذرم. تازه مگر مواجب‌بگیر دولت چیزی جز یک انبان گشاده‌ی پای صندوق است؟..... Ùˆ اگر هم می‌ماندی با آن شلوغی باید تا دو بعداز ظهر سر پا بایستی. همه‌ی جیره‌خوارهای اداره بو برده بودند Ú©Ù‡ مدیرم. Ùˆ لابد آن‌قدر ساده لوح بودند Ú©Ù‡ Ùکر کنند روزی گذارشان به مدرسه‌ی ما Ø¨ÛŒÙØªØ¯. دنبال Ø³ÙØªÙ‡â€ŒÙ‡Ø§ می‌گشتند، به حسابدار قبلی ÙØ­Ø´ می‌دادند، التماس می‌کردند Ú©Ù‡ این ماه را ندیده بگیرید Ùˆ همه‌ی حق Ùˆ حساب‌دان شده بودند Ùˆ یکی Ú©Ù‡ زودتر از نوبت پولش را Ù…ÛŒâ€ŒÚ¯Ø±ÙØª صدای همه در می‌آمد. در لیست مدرسه، بزرگ‌ترین رقم مال من بود. درست مثل بزرگ‌ترین گناه در نامه‌ی عمل. دو برابر ÙØ±Ø§Ø´ جدیدمان حقوق Ù…ÛŒâ€ŒÚ¯Ø±ÙØªÙ…. از دیدن رقم‌های مردنی حقوق دیگران چنان خجالت کشیدم Ú©Ù‡ انگار مال آن‌ها را دزدیده‌ام. Ùˆ تازه خلوت Ú©Ù‡ شد Ùˆ ده پانزده تا امضا Ú©Ù‡ کردم، صندوق‌دار چشمش به من Ø§ÙØªØ§Ø¯ Ùˆ با یک معذرت، شش صد تومان پول دزدی را گذاشت ک٠دستم... مرده شور! - -هنوز بر٠اول نباریده بود Ú©Ù‡ یک روز عصر، معلم کلاس چهار Ø±ÙØª زیر ماشین. زیر یک سواری. مثل همه‌ی عصرها من مدرسه نبودم. دم غروب بود Ú©Ù‡ ÙØ±Ø§Ø´ قدیمی مدرسه دم در خونه‌مون، خبرش را آورد. Ú©Ù‡ دویدم به طر٠لباسم Ùˆ تا حاضر بشوم، می‌شنیدم Ú©Ù‡ دارد قضیه را برای زنم تعری٠می‌کند. ماشین برای یکی از آمریکایی‌ها بوده. باقیش را از خانه Ú©Ù‡ در آمدیم برایم تعری٠کرد. گویا یارو خودش پشت ÙØ±Ù…ون بوده Ùˆ بعد هم هول شده Ùˆ در Ø±ÙØªÙ‡. بچه‌ها خبر را به مدرسه برگردانده‌اند Ùˆ تا ÙØ±Ø§Ø´ Ùˆ زنش برسند، جمعیت Ùˆ پاسبان‌ها سوارش کرده بودند Ùˆ ÙØ±Ø³ØªØ§Ø¯Ù‡ بوده‌اند مریض‌خانه. به اتوبوس Ú©Ù‡ رسیدم، دیدم لاک پشت است. ÙØ±Ø§Ø´ را مرخص کردم Ùˆ پریدم توی تاکسی. اول Ø±ÙØªÙ… سراغ پاسگاه جدید کلانتری. تعاری٠تکه Ùˆ پاره‌ای از پرونده مطلع بود. اما پرونده تصریحی نداشت Ú©Ù‡ راننده Ú©Ù‡ بوده. اما هیچ کس نمی‌دانست عاقبت Ú†Ù‡ بلایی بر سر معلم کلاس چهار ما آمده است. کشیک پاسگاه همین قدر مطلع بود Ú©Ù‡ درین جور موارد «طبق جریان اداری» اول می‌روند سرکلانتری، بعد دایره‌ی ØªØµØ§Ø¯ÙØ§Øª Ùˆ بعد بیمارستان. اگر آشنا در نمی‌آمدیم، کشیک پاسگاه مسلماً نمی‌گذاشت به پرونده نگاه Ú†Ù¾ بکنم. احساس کردم میان اهل محل کم‌کم دارم سرشناس می‌شوم. Ùˆ از این احساس خنده‌ام Ú¯Ø±ÙØª. - -ساعت Û¸ دم در بیمارستان بودم، اگر سالم هم بود حتماً یه چیزیش شده بود. همان طور Ú©Ù‡ من یه چیزیم می‌شد. روی در بیمارستان نوشته شده بود: «از ساعت Û· به بعد ورود ممنوع». در زدم. از پشت در کسی همین آیه را صادر کرد. دیدم ÙØ§ÛŒØ¯Ù‡ ندارد Ùˆ باید از یک چیزی Ú©Ù…Ú© بگیرم. از قدرتی، از مقامی، از هیکلی، از یک چیزی. صدایم را Ú©Ù„ÙØª کردم Ùˆ Ú¯ÙØªÙ…:« من...» می‌خواستم بگویم من مدیر مدرسه‌ام. ولی Ùوراً پشیمان شدم. یارو لابد Ù…ÛŒâ€ŒÚ¯ÙØª مدیر مدرسه کدام سگی است؟ این بود با Ú©Ù…ÛŒ Ù…Ú©Ø« Ùˆ طمطراق ÙØ±Ø§ÙˆØ§Ù† جمله‌ام را این طور تمام کردم: - -- ...بازرس وزارت ÙØ±Ù‡Ù†Ú¯Ù…. - -Ú©Ù‡ کلون صدایی کرد Ùˆ لای در باز شد. یارو با چشم‌هایش سلام کرد. Ø±ÙØªÙ… تو Ùˆ با همان صدا پرسیدم: - -- این معلمه مدرسه Ú©Ù‡ تصاد٠کرده... - -تا آخرش را خواند. یکی را صدا زد Ùˆ دنبالم ÙØ±Ø³ØªØ§Ø¯ Ú©Ù‡ طبقه‌ی Ùلان، اتاق Ùلان. از حیاط به راهرو Ùˆ باز به حیاط دیگر Ú©Ù‡ Ù†ØµÙØ´ را بر٠پوشانده بود Ùˆ من چنان می‌دویدم Ú©Ù‡ یارو از عقب سرم هن هن می‌کرد. طبقه‌ی اول Ùˆ دوم Ùˆ چهارم. چهار تا پله یکی. راهرو تاریک بود Ùˆ پر از بوهای مخصوص بود. هن هن کنان دری را نشان داد Ú©Ù‡ هل دادم Ùˆ Ø±ÙØªÙ… تو. بو تندتر بود Ùˆ تاریکی بیشتر. تالاری بود پر از تخت Ùˆ جیرجیر Ú©ÙØ´ Ùˆ خرخر یک Ù†ÙØ±. دور یک تخت چهار Ù†ÙØ± ایستاده بودند. حتماً خودش بود. پای تخت Ú©Ù‡ رسیدم، احساس کردم همه‌ی آنچه از خشونت Ùˆ تظاهر Ùˆ ابهت به Ú©Ù…Ú© خواسته بودم آب شد Ùˆ بر سر Ùˆ صورتم راه Ø§ÙØªØ§Ø¯. Ùˆ این معلم کلاس چهارم مدرسه‌ام بود. سنگین Ùˆ با Ø´Ú©Ù… بر آمده دراز کشیده بود. خیلی کوتاه‌تر از زمانی Ú©Ù‡ سر پا بود به نظرم آمد. صورت Ùˆ سینه‌اش از روپوش Ú†Ø±Ú©â€ŒÙ…ÙØ±Ø¯ بیرون بود. صورتش را Ú©Ù‡ شسته بودند کبود کبود بود، درست به رنگ جای سیلی روی صورت بچه‌ها. مرا Ú©Ù‡ دید، لبخند Ùˆ Ú†Ù‡ لبخندی! شاید می‌خواست بگوید مدرسه‌ای Ú©Ù‡ مدیرش عصرها سر کار نباشد، باید همین جورها هم باشد. خنده توی صورت او همین طور لرزید Ùˆ لرزید تا یخ زد. - -«آخر چرا تصاد٠کردی؟...» - -مثل این Ú©Ù‡ سوال را ازو کردم. اما وقتی Ú©Ù‡ دیدم نمی‌تواند حر٠بزند Ùˆ به جای هر جوابی همان خنده‌ی یخ‌بسته را روی صورت دارد، خودم را به عنوان او دم Ú†Ú© Ú¯Ø±ÙØªÙ…. «آخه چرا؟ چرا این هیکل مدیر Ú©Ù„ÛŒ را با خودت این قد این ور Ùˆ آن ور می‌بری تا بزنندت؟ تا زیرت کنند؟ مگر نمی‌دانستی Ú©Ù‡ معلم حق ندارد این قدر خوش‌هیکل باشد؟ آخر چرا تصاد٠کردی؟» به چنان عتاب Ùˆ خطابی این‌ها را Ù…ÛŒâ€ŒÚ¯ÙØªÙ… Ú©Ù‡ هیچ مطمئن نیستم بلند بلند به خودش Ù†Ú¯ÙØªÙ‡ باشم. Ùˆ یک مرتبه به کله‌ام زد Ú©Ù‡ «مبادا خودت چشمش زده باشی؟» Ùˆ بعد: «احمق خاک بر سر! بعد از سی Ùˆ چند سال عمر، تازه Ø®Ø±Ø§ÙØ§ØªÛŒ شدی!» Ùˆ چنان از خودم بیزاریم Ú¯Ø±ÙØª Ú©Ù‡ می‌خواستم به یکی ÙØ­Ø´ بدهم، کسی را بزنم. Ú©Ù‡ چشمم به دکتر کشیک Ø§ÙØªØ§Ø¯. - -- مرده شور این مملکتو ببره. ساعت چهار تا حالا از تن این مرد خون می‌ره. Ø­ÛŒÙØªÙˆÙ† نیومد؟... - -دستی روی شانه‌ام نشست Ùˆ ÙØ±ÛŒØ§Ø¯Ù… را خواباند. برگشتم پدرش بود. او هم می‌خندید. دو Ù†ÙØ± دیگر هم با او بودند. همه دهاتی‌وار؛ همه خوش قد Ùˆ قواره. حظ کردم! آن دو تا پسرهایش بودند یا برادرزاده‌هایش یا کسان دیگرش. تازه داشت Ú¯Ù„ از گلم Ù…ÛŒâ€ŒØ´Ú©ÙØª Ú©Ù‡ شنیدم: - -- آقا Ú©ÛŒ باشند؟ - -این راهم دکتر کشیک Ú¯ÙØª Ú©Ù‡ من باز سوار شدم: - -- مرا می‌گید آقا؟ من هیشکی. یک آقا مدیر Ú©ÙˆÙØªÛŒ. این هم معلمم. - -Ú©Ù‡ یک مرتبه عقل Ù‡ÛŒ زد Ùˆ «پسر Ø®ÙÙ‡ شو» Ùˆ Ø®ÙÙ‡ شدم. بغض توی گلویم بود. دلم می‌خواست یک کلمه دیگر بگوید. یک کنایه بزند... نسبت به مهارت هیچ دکتری تا کنون نتوانسته‌ام قسم بخورم. دستش را دراز کرد Ú©Ù‡ به اکراه ÙØ´Ø§Ø± دادم Ùˆ بعد شیشه‌ی بزرگی را نشانم داد Ú©Ù‡ وارونه بالای تخت آویزان بود Ùˆ خرÙهمم کرد Ú©Ù‡ این جوری غذا به او می‌رسانند Ùˆ عکس هم Ú¯Ø±ÙØªÙ‡â€ŒØ§Ù†Ø¯ Ùˆ تا ÙØ±Ø¯Ø§ صبح اگر زخم‌ها چرک نکند، جا خواهند انداخت Ùˆ Ú¯Ú† خواهند کرد. Ú©Ù‡ یکی دیگر از راه رسید. گوشی به دست Ùˆ سÙید پوش Ùˆ معطر. با حرکاتی مثل آرتیست سینما. سلامم کرد. صدایش در ته ذهنم چیزی را مختصر تکانی داد. اما احتیاجی به کنجکاوی نبود. یکی از شاگردهای نمی‌دانم چند سال پیشم بود. خودش خودش را معرÙÛŒ کرد. آقای دکتر...! عجب روزگاری! هر تکه از وجودت را با مزخرÙÛŒ از انبان Ù…Ø²Ø®Ø±ÙØ§ØªØªØŒ مثل ذره‌ای روزی در خاکی ریخته‌ای Ú©Ù‡ حالا سبز کرده. چشم داری احمق. این تویی Ú©Ù‡ روی تخت دراز کشیده‌ای. ده سال آزگار از پلکان ساعات Ùˆ دقایق عمرت هر لحظه یکی بالا Ø±ÙØªÙ‡ Ùˆ تو Ùقط خستگی این بار را هنوز در تن داری. این جوجه‌ÙÚ©Ù„ÛŒ Ùˆ جوجه‌های دیگر Ú©Ù‡ نمی‌شناسی‌شان، همه از تخمی سر در آورده‌اند Ú©Ù‡ روزی حصار جوانی تو بوده Ùˆ حالا شکسته Ùˆ خالی مانده. دستش را Ú¯Ø±ÙØªÙ… Ùˆ کشیدمش کناری Ùˆ در گوشش هر Ú†Ù‡ بد Ùˆ بی‌راه می‌دانستم، به او Ùˆ همکارش Ùˆ شغلش دادم. مثلاً می‌خواستم Ø³ÙØ§Ø±Ø´ معلم کلاس چهار مدرسه‌ام را کرده باشم. بعد هم سری برای پدر تکان دادم Ùˆ گریختم. از در Ú©Ù‡ بیرون آمدم، حیاط بود Ùˆ هوای بارانی. از در بزرگ Ú©Ù‡ بیرون آمدم به این Ùکر می‌کردم Ú©Ù‡ «اصلا به تو چه؟ اصلاً چرا آمدی؟ می‌خواستی کنجکاوی‌ات را سیرکنی؟» Ùˆ دست آخر به این نتیجه رسیدم Ú©Ù‡ «طعمه‌ای برای میزنشین‌های شهربانی Ùˆ دادگستری به دست آمده Ùˆ تو نه می‌توانی این طعمه را از دستشان بیرون بیاوری Ùˆ نه هیچ کار دیگری می‌توانی بکنی...» - -Ùˆ داشتم سوار تاکسی می‌شدم تا برگردم خانه Ú©Ù‡ یک Ø¯ÙØ¹Ù‡ به ØµØ±Ø§ÙØª Ø§ÙØªØ§Ø¯Ù… Ú©Ù‡ اقلاً چرا نپرسیدی Ú†Ù‡ بلایی به سرش آمده؟» خواستم عقب‌گرد کنم، اما هیکل کبود معلم کلاس چهارم روی تخت بود Ùˆ دیدم نمی‌توانم. خجالت می‌کشیدم Ùˆ یا می‌ترسیدم. آن شب تا ساعت دو بیدار بودم Ùˆ ÙØ±Ø¯Ø§ یک گزارش Ù…ÙØµÙ„ به امضای مدیر مدرسه Ùˆ شهادت همه‌ی معلم‌ها برای اداره‌ی ÙØ±Ù‡Ù†Ú¯ Ùˆ کلانتری محل Ùˆ بعد هم دوندگی در اداره‌ی بیمه Ùˆ قرار بر این Ú©Ù‡ روزی نه تومان بودجه برای خرج بیمارستان او بدهند Ùˆ عصر پس از مدتی Ø±ÙØªÙ… مدرسه Ùˆ کلاس‌ها را تعطیل کردم Ùˆ معلم‌ها Ùˆ بچه‌های ششم را ÙØ±Ø³ØªØ§Ø¯Ù… عیادتش Ùˆ دسته Ú¯Ù„ Ùˆ ازین بازی‌ها... Ùˆ یک ساعتی در مدرسه تنها ماندم Ùˆ ÙØ§Ø±Øº از همه چیز برای خودم خیال Ø¨Ø§ÙØªÙ….... Ùˆ ÙØ±Ø¯Ø§ صبح پدرش آمد سلام Ùˆ احوالپرسی Ùˆ Ú¯ÙØª یک دست Ùˆ یک پایش شکسته Ùˆ Ú©Ù…ÛŒ خونریزی داخل مغز Ùˆ از طر٠یارو آمریکاییه آمده‌اند عیادتش Ùˆ وعده Ùˆ وعید Ú©Ù‡ وقتی خوب شد، در اصل چهار استخدامش کنند Ùˆ با زبان بی‌زبانی حالیم کرد Ú©Ù‡ گزارش را بیخود داده‌ام Ùˆ حالا هم داده‌ام، دنبالش نکنم Ùˆ رضایت طرÙین Ùˆ کاسه‌ی از آش داغ‌تر Ùˆ از این حرÙ‌ها... خاک بر سر مملکت. - -اوایل امر توجهی به بچه‌ها نداشتم. خیال می‌کردم اختلا٠سÙÙ†ÛŒ میان‌مان آن قدر هست Ú©Ù‡ کاری به کار همدیگر نداشته باشیم. همیشه سرم به کار خودم بود. در Ø¯ÙØªØ± را می‌بستم Ùˆ در گرمای بخاری دولت قلم صد تا یک غاز می‌زدم. اما این کار مرتب سه چهار Ù‡ÙØªÙ‡ بیش‌تر دوام نکرد. خسته شدم. ناچار به مدرسه بیشتر می‌رسیدم. یاد روزهای قدیمی با دوستان قدیمی به خیر Ú†Ù‡ آدم‌های پاک Ùˆ بی‌آلایشی بودند، Ú†Ù‡ شخصیت‌های بی‌نام Ùˆ نشانی Ùˆ هر کدام با Ú†Ù‡ زبانی Ùˆ با Ú†Ù‡ ادا Ùˆ اطوارهای مخصوص به خودشان Ùˆ این جوان‌های Ú†Ù„ÙØªÙ‡â€ŒØ§ÛŒ. Ú†Ù‡ مقلدهای بی‌دردسری برای ÙØ±Ù‡Ù†Ú¯ÛŒâ€ŒÙ…ابی! نه خبری از دیروزشان داشتند Ùˆ نه از املاک تازه‌ای Ú©Ù‡ با Ù‡ÙØªØ§Ø¯ واسطه به دست‌شان داده بودند، چیزی سرشان می‌شد. بدتر از همه بی‌دست Ùˆ پایی‌شان بود. آرام Ùˆ مرتب درست مثل واگن شاه عبدالعظیم می‌آمدند Ùˆ Ù…ÛŒâ€ŒØ±ÙØªÙ†Ø¯. Ùقط بلد بودند روزی ده دقیقه دیرتر بیایند Ùˆ همین. Ùˆ از این هم بدتر تنگ‌نظری‌شان بود. - -سه بار شاهد دعواهایی بودم Ú©Ù‡ سر یک گلدان میخک یا شمعدانی بود. بچه‌باغبان‌ها زیاد بودند Ùˆ هر کدام‌شان حداقل ماهی یک گلدان میخک یا شمعدانی می‌آوردند Ú©Ù‡ در آن بر٠و سرما نعمتی بود. اول تصمیم Ú¯Ø±ÙØªÙ…ØŒ مدرسه را با آن‌ها زینت دهم. ولی Ú†Ù‡ ÙØ§ÛŒØ¯Ù‡ØŸ نه کسی آب‌شان می‌داد Ùˆ نه مواظبتی. Ùˆ باز بدتر از همه‌ی این‌ها، بی‌شخصیتی معلم‌ها بود Ú©Ù‡ درمانده‌ام کرده بود. دو کلمه نمی‌توانستند حر٠بزنند. عجب هیچ‌کاره‌هایی بودند! احساس کردم Ú©Ù‡ روز به روز در کلاس‌ها معلم‌ها به جای دانش‌آموزان Ø¬Ø§Ø§ÙØªØ§Ø¯Ù‡â€ŒØªØ± می‌شوند. در نتیجه Ú¯ÙØªÙ… بیش‌تر متوجه بچه‌ها باشم. - -آن‌ها Ú©Ù‡ تنها با ناظم سر Ùˆ کار داشتند Ùˆ مثل این بود Ú©Ù‡ به من Ùقط یک سلام نیمه‌جویده بدهکارند. با این همه نومیدکننده نبودند. توی Ú©ÙˆÚ†Ù‡ مواظب‌شان بودم. می‌خواستم حر٠و سخن‌ها Ùˆ درد دل‌ها Ùˆ اÙکارشان را از یک ÙØ­Ø´ نیمه‌کاره یا از یک ادای نیمه‌تمام حدس بزنم، Ú©Ù‡ سلام‌نکرده در Ù…ÛŒâ€ŒØ±ÙØªÙ†Ø¯. خیلی Ú©Ù… تنها به مدرسه می‌آمدند. پیدا بود Ú©Ù‡ سر راه همدیگر می‌ایستند یا در خانه‌ی یکدیگر می‌روند. سه چهار Ù†ÙØ±Ø´Ø§Ù† هم با اسکورت می‌آمدند. از بیست سی Ù†ÙØ±ÛŒ Ú©Ù‡ ناهار می‌ماندند، Ùقط دو Ù†ÙØ±Ø´Ø§Ù† چلو خورش می‌آوردند؛ ÙØ±Ø§Ø´ اولی مدرسه برایم خبر می‌آورد. بقیه گوشت‌کوبیده، پنیر گردوئی، دم پختکی Ùˆ از این جور چیزها. دو Ù†ÙØ±Ø´Ø§Ù† هم بودند Ú©Ù‡ نان سنگک خالی می‌آوردند. برادر بودند. پنجم Ùˆ سوم. صبح Ú©Ù‡ می‌آمدند، جیب‌هاشان باد کرده بود. سنگک را نص٠می‌کردند Ùˆ توی جیب‌هاشان می‌تپاندند Ùˆ ظهر می‌شد، مثل آن‌هایی Ú©Ù‡ ناهارشان را در خانه می‌خورند، Ù…ÛŒâ€ŒØ±ÙØªÙ†Ø¯ بیرون. من Ùقط بیرون Ø±ÙØªÙ†â€ŒØ´Ø§Ù† را می‌دیدم. اما حتی همین‌ها هر کدام روزی، یکی دو قران از ÙØ±Ø§Ø´ مدرسه خرت Ùˆ خورت می‌خریدند. از همان ÙØ±Ø§Ø´ قدیمی مدرسه Ú©Ù‡ ماهی پنج تومان سرایداریش را وصول کرده بودم. هر روز Ú©Ù‡ وارد اتاقم می‌شدم پشت سر من می‌آمد بارانی‌ام را بر می‌داشت Ùˆ شروع می‌کرد به گزارش دادن، Ú©Ù‡ دیروز باز دو Ù†ÙØ± از معلم‌ها سر یک گلدان دعوا کرده‌اند یا مأمور ÙØ±Ù…اندار نظامی آمده یا Ø¯ÙØªØ±Ø¯Ø§Ø± عوض شده Ùˆ از این اباطیل... پیدا بود Ú©Ù‡ ÙØ±Ø§Ø´ جدید هم در مطالبی Ú©Ù‡ او Ù…ÛŒâ€ŒÚ¯ÙØªØŒ سهمی دارد. - -یک روز در حین گزارش دادن، اشاره‌ای کرد به این مطلب Ú©Ù‡ دیروز عصر یکی از بچه‌های کلاس چهار دو تا کله قند به او ÙØ±ÙˆØ®ØªÙ‡ است. درست مثل اینکه سر کلا٠را به دستم داده باشد پرسیدم: - -- چند؟ - -- دو تومنش دادم آقا. - -- زحمت کشیدی. Ù†Ú¯ÙØªÛŒ از کجا آورده؟ - -- من Ú©Ù‡ ضامن بهشت Ùˆ جهنمش نبودم آقا. - -بعد پرسیدم: - -- چرا به آقای ناظم خبر ندادی؟ - -می‌دانستم Ú©Ù‡ هم او Ùˆ هم ÙØ±Ø§Ø´ جدید، ناظم را هووی خودشان می‌دانند Ùˆ خیلی چیزهاشان از او مخÙÛŒ بود. این بود Ú©Ù‡ میان من Ùˆ ناظم خاصه‌خرجی می‌کردند. در جوابم همین طور مردد مانده بود Ú©Ù‡ در باز شد Ùˆ ÙØ±Ø§Ø´ جدید آمد تو. Ú©Ù‡: - -- اگه خبرش می‌کرد آقا بایست سهمش رو می‌داد... - -اخمم را درهم کشیدم Ùˆ Ú¯ÙØªÙ…: - -- تو باز Ø±ÙØªÛŒ تو Ú©ÙˆÚ© مردم! اونم این جوری سر نزده Ú©Ù‡ نمی‌آیند تو اتاق کسی، پیرمرد! - -Ùˆ بعد اسم پسرک را ازشان پرسیدم Ùˆ حالی‌شان کردم Ú©Ù‡ چندان مهم نیست Ùˆ ÙØ±Ø³ØªØ§Ø¯Ù…شان برایم چای بیاورند. بعد کارم را زودتر تمام کردم Ùˆ Ø±ÙØªÙ… به اتاق Ø¯ÙØªØ± احوالی از مادر ناظم پرسیدم Ùˆ به هوای ورق زدن پرونده‌ها Ùهمیدم Ú©Ù‡ پسرک شاگرد دوساله است Ùˆ پدرش تاجر بازار. بعد برگشتم به اتاقم. یادداشتی برای پدر نوشتم Ú©Ù‡ پس ÙØ±Ø¯Ø§ صبح، بیاید مدرسه Ùˆ دادم دست ÙØ±Ø§Ø´ جدید Ú©Ù‡ خودش برساند Ùˆ رسیدش را بیاورد. - -Ùˆ پس ÙØ±Ø¯Ø§ صبح یارو آمد. باید مدیر مدرسه بود تا دانست Ú©Ù‡ اولیای Ø§Ø·ÙØ§Ù„ Ú†Ù‡ راحت تن به کوچک‌ترین Ø®Ø±Ø¯Ù‡â€ŒÙØ±Ù…ایش‌های مدرسه می‌دهند. حتم دارم Ú©Ù‡ اگر از اجرای ثبت هم دنبال‌شان Ø¨ÙØ±Ø³ØªÛŒ به این زودی‌ها Ø¢ÙØªØ§Ø¨ÛŒ نشوند. چهل Ùˆ پنج ساله مردی بود با یخه‌ی بسته بی‌کراوات Ùˆ پالتویی Ú©Ù‡ بیش‌تر به قبا می‌ماند. Ùˆ خجالتی می‌نمود. هنوز ننشسته، پرسیدم: - -- شما دو تا زن دارید آقا؟ - -درباره‌ی پسرش برای خودم پیش‌گویی‌هایی کرده بودم Ùˆ Ú¯ÙØªÙ… این طوری به او رودست می‌زنم. پیدا بود Ú©Ù‡ از سؤالم زیاد یکه نخورده است. Ú¯ÙØªÙ… برایش چای آوردند Ùˆ سیگاری ØªØ¹Ø§Ø±ÙØ´ کردم Ú©Ù‡ ناشیانه دود کرد از ترس این Ú©Ù‡ مبادا جلویم در بیاید Ú©Ù‡ - به شما Ú†Ù‡ مربوط است Ùˆ از این اعتراض‌ها - امانش ندادم Ùˆ سؤالم را این جور دنبال کردم: - -- البته می‌بخشید. چون لابد به همین علت بچه شما دو سال در یک کلاس مانده. - -شروع کرده بودم برایش یک میتینگ بدهم Ú©Ù‡ پرید وسط حرÙÙ…: - -- به سر شما قسم، روزی چهار زار پول تو جیبی داره آقا. پدرسوخته‌ی نمک به حروم...! - -حالیش کردم Ú©Ù‡ علت، پول تو جیبی نیست Ùˆ خواستم Ú©Ù‡ عصبانی نشود Ùˆ قول Ú¯Ø±ÙØªÙ… Ú©Ù‡ اصلاً به روی پسرش هم نیاورد Ùˆ آن وقت میتینگم را برایش دادم Ú©Ù‡ لابد پسر در خانه مهر Ùˆ محبتی نمی‌بیند Ùˆ غیب‌گویی‌های دیگر... تا عاقبت یارو خجالتش ریخت Ùˆ سر٠درد دلش باز شد Ú©Ù‡ Ø¹ÙØ±ÛŒØªÙ‡ زن اولش همچه بوده Ùˆ همچون بوده Ùˆ پسرش هم به خودش برده Ùˆ Ú©ÛŒ طلاقش داده Ùˆ از زن دومش چند تا بچه دارد Ùˆ این نره‌خر حالا باید برای خودش نان‌آور شده باشد Ùˆ زنش حق دارد Ú©Ù‡ با دو تا بچه‌ی خرده‌پا به او نرسد... من هم Ú©Ù„ÛŒ برایش صحبت کردم. چایی دومش را هم سر کشید Ùˆ قول‌هایش را Ú©Ù‡ داد Ùˆ Ø±ÙØªØŒ من به این Ùکر Ø§ÙØªØ§Ø¯Ù… Ú©Ù‡ «نکند علمای تعلیم Ùˆ تربیت هم، همین جورها تخم دوزرده می‌کنند!» - -یک روز صبح Ú©Ù‡ رسیدم، ناظم هنوز نیامده بود. از این Ø§ØªÙØ§Ù‚‌ها Ú©Ù… Ù…ÛŒâ€ŒØ§ÙØªØ§Ø¯. ده دقیقه‌ای از زنگ می‌گذشت Ùˆ معلم‌ها در Ø¯ÙØªØ± سرگرم اختلاط بودند. خودم هم وقتی معلم بودم به این مرض دچار بودم. اما وقتی مدیر شدم تازه Ùهمیدم Ú©Ù‡ معلم‌ها Ú†Ù‡ لذتی می‌برند. حق هم داشتند. آدم وقتی مجبور باشد Ø´Ú©Ù„Ú©ÛŒ را به صورت بگذارد Ú©Ù‡ نه دیگران از آن می‌خندند Ùˆ نه خود آدم لذتی می‌برد، پیداست Ú©Ù‡ Ø±ÙØ¹ تکلی٠می‌کند. زنگ را Ú¯ÙØªÙ… زدند Ùˆ بچه‌ها سر کلاس Ø±ÙØªÙ†Ø¯. دو تا از کلاس‌ها بی‌معلم بود. یکی از ششمی‌ها را ÙØ±Ø³ØªØ§Ø¯Ù… سر کلاس سوم Ú©Ù‡ برای‌شان دیکته بگوید Ùˆ خودم Ø±ÙØªÙ… سر کلاس چهار. مدیر هم Ú©Ù‡ باشی، باز باید تمرین Ú©Ù†ÛŒ Ú©Ù‡ مبادا Ùوت Ùˆ ÙÙ† معلمی از یادت برود. در حال صحبت با بچه‌ها بودم Ú©Ù‡ ÙØ±Ø§Ø´ خبر آورد Ú©Ù‡ خانمی توی Ø¯ÙØªØ± منتظرم است. خیال کردم لابد همان زنکه‌ی بیکاره‌ای است Ú©Ù‡ Ù‡ÙØªÙ‡â€ŒØ§ÛŒ یک بار به هوای سرکشی، به وضع درس Ùˆ مشق بچه‌اش سری می‌زند. زن سÙیدرویی بود با چشم‌های درشت محزون Ùˆ موی بور. بیست Ùˆ پنج ساله هم نمی‌نمود. اما بچه‌اش کلاس سوم بود. روز اول Ú©Ù‡ دیدمش لباس نارنجی به تن داشت Ùˆ تن بزک کرده بود. از زیارت من خیلی خوشحال شد Ùˆ از مراتب ÙØ¶Ù„ Ùˆ ادبم خبر داشت. - -خیلی ساده آمده بود تا با دو تا مرد حرÙÛŒ زده باشد. آن طور Ú©Ù‡ ناظم خبر می‌داد، یک سالی طلاق Ú¯Ø±ÙØªÙ‡ بود Ùˆ روی هم Ø±ÙØªÙ‡ آمد Ùˆ Ø±ÙØªÙ†Ø´ به مدرسه باعث دردسر بود. وسط بیابان Ùˆ مدرسه‌ای پر از معلم‌های عزب Ùˆ بی‌دست Ùˆ پا Ùˆ یک زن زیبا... ناچار جور در نمی‌آمد. این بود Ú©Ù‡ Ø¯ÙØ¹Ø§Øª بعد دست به سرش می‌کردم، اما از رو Ù†Ù…ÛŒâ€ŒØ±ÙØª. سراغ ناظم Ùˆ اتاق Ø¯ÙØªØ± را Ù…ÛŒâ€ŒÚ¯Ø±ÙØª Ùˆ صبر می‌کرد تا زنگ را بزنند Ùˆ معلم‌ها جمع بشوند Ùˆ لابد حر٠و سخنی Ùˆ خنده‌ای Ùˆ بعد از معلم کلاس سوم سراغ کار Ùˆ بار Ùˆ بچه‌اش را Ù…ÛŒâ€ŒÚ¯Ø±ÙØª Ùˆ زنگ بعد را Ú©Ù‡ می‌زدند، Ø®Ø¯Ø§Ø­Ø§ÙØ¸ÛŒ می‌کرد Ùˆ Ù…ÛŒâ€ŒØ±ÙØª. آزاری نداشت. با چشم‌هایش Ù†ÙØ³ معلم‌ها را می‌برید. Ùˆ حالا باز هم همان زن بود Ùˆ آمده بود Ùˆ من تا از پلکان پایین بروم در ذهنم جملات زننده‌ای ردی٠می‌کردم، تا پایش را از مدرسه ببرد Ú©Ù‡ در را باز کردم Ùˆ سلام... - -عجب! او نبود. دخترک یکی دو ساله‌ای بود با دهان گشاد Ùˆ موهای زبرش را به زحمت عقب سرش گلوله کرده بود Ùˆ بÙهمی Ù†Ùهمی دستی توی صورتش برده بود. روی هم Ø±ÙØªÙ‡ زشت نبود. اما داد می‌زد Ú©Ù‡ معلم است. Ú¯ÙØªÙ… Ú©Ù‡ مدیر مدرسه‌ام Ùˆ حکمش را داد دستم Ú©Ù‡ دانشسرا دیده بود Ùˆ تازه استخدام شده بود. برایمان معلم ÙØ±Ø³ØªØ§Ø¯Ù‡ بودند. خواستم بگویم «مگر رئیس ÙØ±Ù‡Ù†Ú¯ نمی‌داند Ú©Ù‡ این جا بیش از حد مرد است» ولی دیدم لزومی ندارد Ùˆ Ùکر کردم این هم خودش تنوعی است. - -به هر صورت زنی بود Ùˆ می‌توانست محیط خشن مدرسه را Ú©Ù‡ به طرز ناشیانه‌ای پسرانه بود، Ù„Ø·Ø§ÙØªÛŒ بدهد Ùˆ خوش‌آمد Ú¯ÙØªÙ… Ùˆ چای آوردند Ú©Ù‡ نخورد Ùˆ بردمش کلاس‌های سوم Ùˆ چهارم را نشانش دادم Ú©Ù‡ هر کدام را مایل است، قبول کند Ùˆ صحبت از هجده ساعت درس Ú©Ù‡ در انتظار او بود Ùˆ برگشتیم به Ø¯ÙØªØ± .پرسید غیر از او هم، معلم زن داریم. Ú¯ÙØªÙ…: - -- Ù…ØªØ£Ø³ÙØ§Ù†Ù‡ راه مدرسه‌ی ما را برای پاشنه‌ی Ú©ÙØ´ خانم‌ها نساخته‌اند. - -Ú©Ù‡ خندید Ùˆ احساس کردم زورکی می‌خندد. بعد Ú©Ù…ÛŒ این دست Ùˆ آن دست کرد Ùˆ عاقبت: - -- آخه من شنیده بودم شما با معلماتون خیلی خوب تا می‌کنید. - -صدای جذابی داشت. Ùکر کردم حی٠که این صدا را پای تخته سیاه خراب خواهد کرد. Ùˆ Ú¯ÙØªÙ…: - -- اما نه این قدر Ú©Ù‡ مدرسه تعطیل بشود خانم! Ùˆ لابد به عرض‌تون رسیده Ú©Ù‡ همکارهای شما، خودشون نشسته‌اند Ùˆ تصمیم Ú¯Ø±ÙØªÙ‡â€ŒØ§Ù†Ø¯ Ú©Ù‡ هجده ساعت درس بدهند. بنده هیچ‌کاره‌ام. - -- اختیار دارید. - -Ùˆ Ù†Ùهمیدم با این «اختیار دارید» Ú†Ù‡ می‌خواست بگوید. اما پیدا بود Ú©Ù‡ بحث سر ساعات درس نیست. آناً تصمیم Ú¯Ø±ÙØªÙ…ØŒ امتحانی بکنم: - -- این را هم اطلاع داشته باشید Ú©Ù‡ Ùقط دو تا از معلم‌های ما متأهل‌اند. - -Ú©Ù‡ قرمز شد Ùˆ برای این Ú©Ù‡ کار دیگری نکرده باشد، برخاست Ùˆ حکمش را از روی میز برداشت. پا به پا می‌شد Ú©Ù‡ دیدم باید به دادش برسم. ساعت را از او پرسیدم. وقت زنگ بود. ÙØ±Ø§Ø´ را صدا کردم Ú©Ù‡ زنگ را بزند Ùˆ بعد به او Ú¯ÙØªÙ…ØŒ بهتر است مشورت دیگری هم با رئیس ÙØ±Ù‡Ù†Ú¯ بکند Ùˆ ما به هر صورت خوشحال خواهیم شد Ú©Ù‡ Ø§ÙØªØ®Ø§Ø± همکاری با خانمی مثل ایشان را داشته باشیم Ùˆ Ø®Ø¯Ø§Ø­Ø§ÙØ¸ شما. از در Ø¯ÙØªØ± Ú©Ù‡ بیرون Ø±ÙØªØŒ صدای زنگ برخاست Ùˆ معلم‌ها انگار موشان را آتش زده‌اند، به عجله رسیدند Ùˆ هر کدام از پشت سر، آن قدر او را پاییدند تا از در بزرگ آهنی مدرسه بیرون Ø±ÙØª. - -ÙØ±Ø¯Ø§ صبح معلوم شد Ú©Ù‡ ناظم، دنبال کار مادرش بوده است Ú©Ù‡ قرار بود بستری شود، تا جای سرطان Ú¯Ø±ÙØªÙ‡ را یک دوره برق بگذارند. Ú©Ù„ کار بیمارستان را من به Ú©Ù…Ú© دوستانم انجام دادم Ùˆ موقع آن رسیده بود Ú©Ù‡ مادرش برود بیمارستان اما وحشتش Ú¯Ø±ÙØªÙ‡ بود Ùˆ حاضر نبود به بیمارستان برود. Ùˆ ناظم می‌خواست رسماً دخالت کنم Ùˆ با هم برویم خانه‌شان Ùˆ با زبان چرب Ùˆ نرمی Ú©Ù‡ به قول ناظم داشتم مادرش را راضی کنم. چاره‌ای نبود. مدرسه را به معلم‌ها سپردیم Ùˆ راه Ø§ÙØªØ§Ø¯ÛŒÙ…. بالاخره به خانه‌ی آن‌ها رسیدیم. خانه‌ای بسیار Ú©ÙˆÚ†Ú© Ùˆ اجاره‌ای. مادر با چشم‌های گود نشسته Ùˆ انگار زغال به صورت مالیده! سیاه نبود اما رنگش چنان تیره بود Ú©Ù‡ وحشتم Ú¯Ø±ÙØª. اصلاً صورت نبود. زخم سیاه شده‌ای بود Ú©Ù‡ انگار از جای چشم‌ها Ùˆ دهان سر باز کرده است. Ú©Ù„ÛŒ با مادرش صحبت کردم. از پسرش Ùˆ Ú©Ù„ÛŒ دروغ Ùˆ دونگ، Ùˆ چادرش را روی چارقدش انداختیم Ùˆ علی... Ùˆ خلاصه در بیمارستان بستری شدند. - -ÙØ±Ø¯Ø§ Ú©Ù‡ به مدرسه آمدم، ناظم سرحال بود Ùˆ پیدا بود Ú©Ù‡ از شر چیزی خلاص شده است Ùˆ خبر داد Ú©Ù‡ معلم کلاس سه را Ú¯Ø±ÙØªÙ‡â€ŒØ§Ù†Ø¯. یک ماه Ùˆ خرده‌ای می‌شد Ú©Ù‡ مخÙÛŒ بود Ùˆ ما ورقه‌ی انجام کارش را به جانشین غیر رسمی‌اش داده بودیم Ùˆ حقوقش لنگ نشده بود Ùˆ تا خبر رسمی بشنود Ùˆ در روزنامه‌ای بیابد Ùˆ قضیه به اداره‌ی ÙØ±Ù‡Ù†Ú¯ Ùˆ لیست حقوق بکشد، باز هم می‌دادیم. اما خبر Ú©Ù‡ رسمی شد، جانشین واجد شرایط هم نمی‌توانست Ø¨ÙØ±Ø³ØªØ¯ Ùˆ باید طبق مقررات Ø±ÙØªØ§Ø± می‌کردیم Ùˆ بدیش همین بود. Ú©Ù… Ú©Ù… احساس کردم Ú©Ù‡ مدرسه خلوت شده است Ùˆ کلاس‌ها اغلب اوقات بی‌کارند. جانشین معلم کلاس چهار هنوز سر Ùˆ صورتی به کارش نداده بود Ùˆ حالا یک کلاس دیگر هم بی‌معلم شد. این بود Ú©Ù‡ باز هم به سراغ رئیس ÙØ±Ù‡Ù†Ú¯ Ø±ÙØªÙ…. معلوم شد آن دخترک ترسیده Ùˆ «نرسیده متلک پیچش کرده‌اید» رئیس ÙØ±Ù‡Ù†Ú¯ این طور Ù…ÛŒâ€ŒÚ¯ÙØª. Ùˆ ترجیح داده بود همان زیر نظر خودش Ø¯ÙØªØ±Ø¯Ø§Ø±ÛŒ کند. Ùˆ بعد قول Ùˆ قرار Ùˆ ÙØ±Ø¯Ø§ Ùˆ پس ÙØ±Ø¯Ø§ Ùˆ عاقبت چهار روز دوندگی تا دو تا معلم Ú¯Ø±ÙØªÙ…. یکی جوانکی رشتی Ú©Ù‡ گذاشتیمش کلاس چهار Ùˆ دیگری باز یکی ازین آقاپسرهای بریانتین‌زده Ú©Ù‡ هر روز کراوات عوض می‌کرد، با نقش‌ها Ùˆ طرح‌های عجیب. عجب ÙØ±Ù‡Ù†Ú¯ را با قرتی‌ها در آمیخته بودند! باداباد. او را هم گذاشتیم سر کلاس سه. اواخر بهمن، یک روز ناظم آمد اتاقم Ú©Ù‡ بودجه‌ی مدرسه را زنده کرده است. Ú¯ÙØªÙ…: - -- مبارکه، Ú†Ù‡ قدر Ú¯Ø±ÙØªÛŒØŸ - -- هنوز هیچ Ú†ÛŒ آقا. قراره ÙØ±Ø¯Ø§ سر ظهر بیاند این جا آقا Ùˆ همین جا قالش رو بکنند. - -Ùˆ ÙØ±Ø¯Ø§ اصلاً مدرسه Ù†Ø±ÙØªÙ…. حتماً می‌خواست من هم باشم Ùˆ در بده بستان ماهی پانزده قران، حق Ù†Ø¸Ø§ÙØª هر اتاق نظارت کنم Ùˆ از مدیریتم مایه بگذارم تا تنخواه‌گردان مدرسه Ùˆ حق آب Ùˆ دیگر پول‌های Ø¹Ù‚Ø¨â€ŒØ§ÙØªØ§Ø¯Ù‡ وصول بشود... ÙØ±Ø¯Ø§ سه Ù†ÙØ±ÛŒ آمده بودند مدرسه. ناهار هم به خرج ناظم خورده بودند. Ùˆ قرار دیگری برای یک سور حسابی گذاشته بودند Ùˆ Ø±ÙØªÙ‡ بودند Ùˆ ناظم با زبان بی‌زبانی حالیم کرد Ú©Ù‡ این بار حتماً باید باشم Ùˆ آن طور Ú©Ù‡ Ù…ÛŒâ€ŒÚ¯ÙØªØŒ جای شکرش باقی بود Ú©Ù‡ مراعات کرده بودند Ùˆ حق بوقی نخواسته بودند. اولین باری بود Ú©Ù‡ چنین اهمیتی پیدا می‌کردم. این هم یک مزیت دیگر مدیری مدرسه بود! سی صد تومان از بودجه‌ی دولت بسته به این بود Ú©Ù‡ به Ùلان مجلس بروی یا نروی. تا سه روز دیگر موعد سور بود، اصلاً یادم نیست Ú†Ù‡ کردم. اما همه‌اش در این Ùکر بودم Ú©Ù‡ بروم یا نروم؟ یک بار دیگر Ø§Ø³ØªØ¹ÙØ§Ù†Ø§Ù…ه‌ام را توی جیبم گذاشتم Ùˆ بی این Ú©Ù‡ صدایش را در بیاورم، روز سور هم Ù†Ø±ÙØªÙ…. - -بعد دیدم این طور Ú©Ù‡ نمی‌شود. Ú¯ÙØªÙ… بروم قضایا را برای رئیس ÙØ±Ù‡Ù†Ú¯ بگویم. Ùˆ Ø±ÙØªÙ…. سلام Ùˆ احوالپرسی نشستم. اما Ú†Ù‡ بگویم؟ بگویم چون نمی‌خواستم در خوردن سور شرکت کنم، Ø§Ø³ØªØ¹ÙØ§ می‌دهم؟... دیدم چیزی ندارم Ú©Ù‡ بگویم. Ùˆ از این گذشته Ø®ÙØªâ€ŒØ¢ÙˆØ± نبود Ú©Ù‡ به خاطر سیصد تومان جا بزنم Ùˆ Ø§Ø³ØªØ¹ÙØ§ بدهم؟ Ùˆ Â«Ø®Ø¯Ø§Ø­Ø§ÙØ¸Ø› Ùقط آمده بودم سلام عرض کنم.» Ùˆ از این دروغ‌ها Ùˆ Ø§Ø³ØªØ¹ÙØ§Ù†Ø§Ù…ه‌ام را توی جوی آب انداختم. اما ناظم؛ یک Ù‡ÙØªÙ‡â€ŒØ§ÛŒ مثل سگ بود. عصبانی، پر سر Ùˆ صدا Ùˆ شارت Ùˆ شورت! حتی Ù†Ø±ÙØªÙ… احوال مادرش را بپرسم. یک Ù‡ÙØªÙ‡â€ŒÛŒ تمام Ù…ÛŒâ€ŒØ±ÙØªÙ… Ùˆ در اتاقم را می‌بستم Ùˆ سوراخ‌های گوشم را Ù…ÛŒâ€ŒÚ¯Ø±ÙØªÙ… Ùˆ تا Ø§ÙØ² Ùˆ Ú†ÙØ²Ù‘ بچه‌ها بخوابد، از این سر تا آن سر اتاق را می‌کوبیدم. ده روز تمام، قلب من Ùˆ بچه‌ها با هم Ùˆ به یک اندازه از ترس Ùˆ وحشت تپید. تا عاقبت پول‌ها وصول شد. منتها به جای سیصد Ùˆ خرده‌ای، Ùقط صد Ùˆ پنجاه تومان. علت هم این بود Ú©Ù‡ در تنظیم صورت حساب‌ها اشتباهاتی رخ داده بود Ú©Ù‡ ناچار اصلاحش کرده بودند! - -غیر از آن زنی Ú©Ù‡ Ù‡ÙØªÙ‡â€ŒØ§ÛŒ یک بار به مدرسه سری می‌زد، از اولیای Ø§Ø·ÙØ§Ù„ دو سه Ù†ÙØ± دیگر هم بودند Ú©Ù‡ مرتب بودند. یکی همان پاسبانی Ú©Ù‡ با کمربند، پاهای پسرش را بست Ùˆ ÙÙ„Ú© کرد. یکی هم کارمند پست Ùˆ تلگراÙÛŒ بود Ú©Ù‡ ده روزی یک بار می‌آمد Ùˆ پدر همان بچه‌ی شیطان. Ùˆ یک استاد نجار Ú©Ù‡ پسرش کلاس اول بود Ùˆ خودش سواد داشت Ùˆ به آن می‌بالید Ùˆ کارآمد می‌نمود. یک مقنی هم بود درشت استخوان Ùˆ بلندقد Ú©Ù‡ بچه‌اش کلاس سوم بود Ùˆ Ù‡ÙØªÙ‡â€ŒØ§ÛŒ یک بار می‌آمد Ùˆ همان توی حیاط، ده پانزده دقیقه‌ای با ÙØ±Ø§Ø´â€ŒÙ‡Ø§ اختلاط می‌کرد Ùˆ بی سر Ùˆ صدا Ù…ÛŒâ€ŒØ±ÙØª. نه کاری داشت، نه چیزی از آدم می‌خواست Ùˆ همان طور Ú©Ù‡ آمده بود چند دقیقه‌ای را با ÙØ±Ø§Ø´ صحبت می‌کرد Ùˆ بعد Ù…ÛŒ Ø±ÙØª. Ùقط یک روز نمی‌دانم چرا Ø±ÙØªÙ‡ بود بالای دیوار مدرسه. البته اول Ùکر کردم مأمور اداره برق است ولی بعد متوجه شدم Ú©Ù‡ همان مرد مقنی است. بچه‌ها جیغ Ùˆ ÙØ±ÛŒØ§Ø¯ می‌کردند Ùˆ من همه‌اش درین Ùکر بودم Ú©Ù‡ Ú†Ù‡ طور به سر دیوار Ø±ÙØªÙ‡ است؟ ماحصل داد Ùˆ ÙØ±ÛŒØ§Ø¯Ø´ این بود Ú©Ù‡ چرا اسم پسر او را برای Ú¯Ø±ÙØªÙ† Ú©ÙØ´ Ùˆ لباس به انجمن ندادیم. وقتی به او رسیدم نگاهی به او انداختم Ùˆ بعد تشری به ناظم Ùˆ معلم ها زدم Ú©Ù‡ ولش کردند Ùˆ بچه‌ها Ø±ÙØªÙ†Ø¯ سر کلاس Ùˆ بعد بی این Ú©Ù‡ نگاهی به او بکنم، Ú¯ÙØªÙ…: - -- خسته نباشی اوستا. - -Ùˆ همان طور Ú©Ù‡ به Ø·Ø±Ù Ø¯ÙØªØ± Ù…ÛŒâ€ŒØ±ÙØªÙ… رو به ناظم Ùˆ معلم‌ها Ø§ÙØ²ÙˆØ¯Ù…: - -- لابد جواب درست Ùˆ حسابی نشنیده Ú©Ù‡ Ø±ÙØªÙ‡ سر دیوار. - -Ú©Ù‡ پشت سرم گرپ صدایی آمد Ùˆ از در Ø¯ÙØªØ± Ú©Ù‡ Ø±ÙØªÙ… تو، او Ùˆ ناظم با هم وارد شدند. Ú¯ÙØªÙ… نشست. Ùˆ به جای این‌که حرÙÛŒ بزند به گریه Ø§ÙØªØ§Ø¯. هرگز گمان نمی‌کردم از چنان قد Ùˆ قامتی صدای گریه در بیاید. این بود Ú©Ù‡ از اتاق بیرون آمدم Ùˆ ÙØ±Ø§Ø´ را صدا زدم Ú©Ù‡ آب برایش بیاورد Ùˆ حالش Ú©Ù‡ جا آمد، بیاوردش پهلوی من. اما دیگر از او خبری نشد Ú©Ù‡ نشد. نه آن روز Ùˆ نه هیچ روز دیگر. آن روز چند دقیقه‌ای بعد از شیشه‌ی اتاق خودم دیدمش Ú©Ù‡ دمش را لای پایش گذاشته بود از در مدرسه بیرون Ù…ÛŒâ€ŒØ±ÙØª Ùˆ ÙØ±Ø§Ø´ جدید آمد Ú©Ù‡ بله Ù…ÛŒâ€ŒÚ¯ÙØªÙ†Ø¯ از پسرش پنج تومان خواسته بودند تا اسمش را برای Ú©ÙØ´ Ùˆ لباس به انجمن بدهند. پیدا بود باز توی Ú©ÙˆÚ© ناظم Ø±ÙØªÙ‡ است. مرخصش کردم Ùˆ ناظم را خواستم. معلوم شد می‌خواسته ناظم را بزند. همین جوری Ùˆ بی‌مقدمه. - -اواخر بهمن بود Ú©Ù‡ یکی از روزهای برÙÛŒ با یکی دیگر از اولیای Ø§Ø·ÙØ§Ù„ آشنا شدم. یارو مرد بسیار کوتاهی بود؛ ÙØ±Ù†Ú¯ مآب Ùˆ بزک کرده Ùˆ اتو کشیده Ú©Ù‡ ننشسته از تحصیلاتش Ùˆ از Ø³ÙØ±Ù‡Ø§ÛŒ ÙØ±Ù†Ú¯Ø´ حر٠زد. می‌خواست پسرش را آن وقت سال از مدرسه‌ی دیگر به آن جا بیاورد. پسرش از آن بچه‌هایی بود Ú©Ù‡ شیر Ùˆ مربای صبحانه‌اش را با قربان صدقه توی حلقشان می‌تپانند. کلاس دوم بود Ùˆ ثلث اول دو تا تجدید آورده بود. Ù…ÛŒâ€ŒÚ¯ÙØª در باغ ییلاقی‌اش Ú©Ù‡ نزدیک مدرسه است، باغبانی دارند Ú©Ù‡ پسرش شاگرد ماست Ùˆ درس‌خوان است Ùˆ پیدا است Ú©Ù‡ بچه‌ها زیر سایه شما خوب Ù¾ÛŒØ´Ø±ÙØª می‌کنند. Ùˆ از این پیزرها. Ùˆ حال به خاطر همین بچه، توی این بر٠و سرما، آمده‌اند ساکن باغ ییلاقی شده‌اند. بلند شدم ناظم را صدا کردم Ùˆ دست او Ùˆ بچه‌اش را توی دست ناظم گذاشتم Ùˆ Ø®Ø¯Ø§Ø­Ø§ÙØ¸ شما... Ùˆ نیم ساعت بعد ناظم برگشت Ú©Ù‡ یارو خانه‌ی شهرش را به یک دبیرستان اجاره داده، به ماهی سه هزار Ùˆ دویست تومان، Ùˆ التماس دعا داشته، یعنی معلم سرخانه می‌خواسته Ùˆ حتی بدش نمی‌آمده است Ú©Ù‡ خود مدیر زحمت بکشند Ùˆ ازین گنده‌گوزی‌ها... احساس کردم Ú©Ù‡ ناظم دهانش آب Ø§ÙØªØ§Ø¯Ù‡ است. Ùˆ من به ناظم حالی کردم خودش برود بهتر است Ùˆ Ùقط کاری بکند Ú©Ù‡ نه صدای معلم‌ها در بیاید Ùˆ نه آخر سال، برای یک معدل ده احتیاجی به من بمیرم Ùˆ تو بمیری پیدا کند. همان روز عصر ناظم Ø±ÙØªÙ‡ بود Ùˆ قرار Ùˆ مدار برای هر روز عصر یک ساعت به ماهی صد Ùˆ پنجاه تومان. - -دیگر دنیا به کام ناظم بود. حال مادرش هم بهتر بود Ùˆ از بیمارستان مرخصش کرده بودند Ùˆ به Ùکر زن Ú¯Ø±ÙØªÙ† Ø§ÙØªØ§Ø¯Ù‡ بود. Ùˆ هر روز هم برای یک Ù†ÙØ± نقشه می‌کشید حتی برای من هم. یک روز در آمد Ú©Ù‡ چرا ما خودمان «انجمن خانه Ùˆ مدرسه» نداشته باشیم؟ نشسته بود Ùˆ حسابش را کرده بود دیده بود Ú©Ù‡ پنجاه شصت Ù†ÙØ±ÛŒ از اولیای مدرسه دستشان به دهان‌شان می‌رسد Ùˆ از آن هم Ú©Ù‡ به پسرش درس خصوصی می‌داد قول مساعد Ú¯Ø±ÙØªÙ‡ بود. حالیش کردم Ú©Ù‡ مواظب حر٠و سخن اداره‌ای باشد Ùˆ هر کار دلش می‌خواهد بکند. کاغذ دعوت را هم برایش نوشتم با آب Ùˆ تاب Ùˆ خودش برای اداره‌ی ÙØ±Ù‡Ù†Ú¯ØŒ داد ماشین کردند Ùˆ به وسیله‌ی خود بچه‌ها ÙØ±Ø³ØªØ§Ø¯. Ùˆ جلسه با حضور بیست Ùˆ چند Ù†ÙØ±ÛŒ از اولیای بچه‌ها رسمی شد. خوبیش این بود Ú©Ù‡ پاسبان کشیک پاسگاه هم آمده بود Ùˆ دم در برای همه، پاشنه‌هایش را به هم می‌کوبید Ùˆ معلم‌ها گوش تا گوش نشسته بودند Ùˆ مجلس ابهتی داشت Ùˆ ناظم، چای Ùˆ شیرینی تهیه کرده بود Ùˆ چراغ زنبوری کرایه کرده بود Ùˆ باران هم گذاشت پشتش Ùˆ سالون برای اولین بار در عمرش به نوایی رسید. - -یک سرهنگ بود Ú©Ù‡ رئیسش کردیم Ùˆ آن زن را Ú©Ù‡ Ù‡ÙØªÙ‡â€ŒØ§ÛŒ یک بار می‌آمد نایب رئیس. آن Ú©Ù‡ ناظم به پسرش درس خصوصی می‌داد نیامده بود. اما پاکت سربسته‌ای به اسم مدیر ÙØ±Ø³ØªØ§Ø¯Ù‡ بود Ú©Ù‡ Ùی‌المجلس بازش کردیم. عذرخواهی از این‌که نتوانسته بود بیاید Ùˆ وجه ناقابلی جو٠پاکت. صد Ùˆ پنجاه تومان. Ùˆ پول را روی میز صندوق‌دار گذاشتیم Ú©Ù‡ ضبط Ùˆ ربط کند. نائب رئیس بزک کرده Ùˆ معطر شیرینی تعار٠می‌کرد Ùˆ معلم‌ها با هر بار Ú©Ù‡ شیرینی بر می‌داشتند، یک بار تا بناگوش سرخ می‌شدند Ùˆ ÙØ±Ø§Ø´â€ŒÙ‡Ø§ دست به دست چای می‌آوردند. - -در Ùکر بودم Ú©Ù‡ یک مرتبه احساس کردم، سیصد چهارصد تومان پول نقد، روی میز است Ùˆ هشت صد تومان هم تعهد کرده بودند. پیرزن صندوقدار Ú©Ù‡ کی٠پولش را همراهش نیاورده بود ناچار حضار تصویب کردند Ú©Ù‡ پول‌ها ÙØ¹Ù„اً پیش ناظم باشد. Ùˆ صورت مجلس مرتب شد Ùˆ امضاها ردی٠پای آن Ùˆ ÙØ±Ø¯Ø§ Ùهمیدم Ú©Ù‡ ناظم همان شب روی خشت نشسته بوده Ùˆ به معلم‌ها سور داده بوده است. اولین کاری Ú©Ù‡ کردم رونوشت مجلس آن شب را برای اداره‌ی ÙØ±Ù‡Ù†Ú¯ ÙØ±Ø³ØªØ§Ø¯Ù…. Ùˆ بعد همان استاد نجار را صدا کردم Ùˆ دستور دادم برای مستراح‌ها دو روزه در بسازد Ú©Ù‡ ناظم خیلی به سختی پولش را داد. Ùˆ بعد در کوچه‌ی مدرسه درخت کاشتیم. تور والیبال را تعویض Ùˆ تعدادی توپ در اختیار بچه‌ها گذاشتیم برای تمرین در بعد از ظهرها Ùˆ آمادگی برای مسابقه با دیگر مدارس Ùˆ در همین حین سر Ùˆ کله‌ی بازرس تربیت بدنی هم پیدا شد Ùˆ هر روز سرکشی Ùˆ بیا Ùˆ برو. تا یک روز Ú©Ù‡ به مدرسه رسیدم شنیدم Ú©Ù‡ از سالون سر Ùˆ صدا می‌آید. صدای هالتر بود. ناظم سر خود Ø±ÙØªÙ‡ بود Ùˆ سرخود دویست سیصد تومان داده بود Ùˆ هالتر خریده بود Ùˆ بچه‌های لاغر زیر بار آن گردن خود را خرد می‌کردند. من در این میان حرÙÛŒ نزدم. می‌توانستم حرÙÛŒ بزنم؟ من چیکاره بودم؟ اصلاً به من Ú†Ù‡ ربطی داشت؟ هر کار Ú©Ù‡ دلشان می‌خواهد بکنند. مهم این بود Ú©Ù‡ سالون مدرسه رونقی Ú¯Ø±ÙØªÙ‡ بود. ناظم هم راضی بود Ùˆ معلم‌ها هم. چون نه خبر از حسادتی بود Ùˆ نه حر٠و سخنی پیش آمد. Ùقط می‌بایست به ناظم Ø³ÙØ§Ø±Ø´ Ù…ÛŒ کردم Ú©Ù‡ Ùکر ÙØ±Ø§Ø´â€ŒÙ‡Ø§ هم باشد. - -Ú©Ù… Ú©Ù… خودمان را برای امتحان‌های ثلث دوم آماده می‌کردیم. این بود Ú©Ù‡ اوایل اسÙند، یک روز معلم‌ها را صدا زدم Ùˆ در شورا مانندی Ú©Ù‡ کردیم بی‌مقدمه برایشان داستان یکی از همکاران سابقم را Ú¯ÙØªÙ… Ú©Ù‡ هر وقت بیست می‌داد تا دو روز تب داشت. البته معلم‌ها خندیدند. ناچار تشویق شدم Ùˆ داستان آخوندی را Ú¯ÙØªÙ… Ú©Ù‡ در بچگی معلم شرعیاتمان بود Ùˆ زیر عبایش نمره می‌داد Ùˆ دستش چنان می‌لرزید Ú©Ù‡ عبا تکان می‌خورد Ùˆ درست ده دقیقه طول می‌کشید. Ùˆ تازه چند؟ بهترین شاگردها دوازده. Ùˆ البته باز هم خندیدند. Ú©Ù‡ این بار کلاÙه‌ام کرد. Ùˆ بعد حالیشان کردم Ú©Ù‡ بد نیست در طرح سؤال‌ها مشورت کنیم Ùˆ از این حرÙ‌ها... - -Ùˆ از شنبه‌ی بعد، امتحانات شروع شد. درست از نیمه‌ی دوم اسÙند. سؤال‌ها را سه Ù†ÙØ±ÛŒ می‌دیدیم. خودم با معلم هر کلاس Ùˆ ناظم. در سالون میزها را چیده بودیم البته از وقتی هالتردار شده بود خیلی زیباتر شده بود. در سالون کاردستی‌های بچه‌ها در همه جا به چشم می‌خورد. هر کسی هر چیزی را به عنوان کاردستی درست کرده بودند Ùˆ آورده بودند. Ú©Ù‡ برای این کاردستی‌ها Ú†Ù‡ پول‌ها Ú©Ù‡ خرج نشده بود Ùˆ Ú†Ù‡ دست‌ها Ú©Ù‡ نبریده بود Ùˆ Ú†Ù‡ دعواها Ú©Ù‡ نشده بود Ùˆ Ú†Ù‡ عرق‌ها Ú©Ù‡ ریخته نشده بود. پیش از هر امتحان Ú©Ù‡ می‌شد، خودم یک میتینگ برای بچه‌ها می‌دادم Ú©Ù‡ ترس از معلم Ùˆ امتحان بی‌جا است Ùˆ باید اعتماد به Ù†ÙØ³ داشت Ùˆ ازین Ù…Ø²Ø®Ø±ÙØ§Øª....ولی مگر حر٠به گوش کسی Ù…ÛŒâ€ŒØ±ÙØªØŸ از در Ú©Ù‡ وارد می‌شدند، چنان هجومی می‌بردند Ú©Ù‡ Ù†Ú¯Ùˆ! به جاهای دور از نظر. یک بار چنان بود Ú©Ù‡ احساس کردم مثل این‌که از ترس، لذت می‌برند. اگر معلم نبودی یا مدیر، به راحتی می‌توانستی حدس بزنی Ú©Ù‡ کی‌ها با هم قرار Ùˆ مداری دارند Ùˆ کدام یک پهلو دست کدام یک خواهد نشست. یکی دو بار کوشیدم بالای دست یکی‌شان بایستم Ùˆ ببینم Ú†Ù‡ می‌نویسد. ولی چنان مضطرب می‌شدند Ùˆ دستشان به لرزه Ù…ÛŒâ€ŒØ§ÙØªØ§Ø¯ Ú©Ù‡ از نوشتن باز می‌ماندند. می‌دیدم Ú©Ù‡ این مردان آینده، درین کلاس‌ها Ùˆ امتحان‌ها آن قدر خواهند ترسید Ú©Ù‡ وقتی دیپلمه بشوند یا لیسانسه، اصلاً آدم نوع جدیدی خواهند شد. آدمی انباشته از وحشت، انبانی از ترس Ùˆ دلهره. به این ترتیب یک روز بیشتر دوام نیاوردم. چون دیدم نمی‌توانم قلب بچگانه‌ای داشته باشم تا با آن ترس Ùˆ وحشت بچه‌ها را درک کنم Ùˆ هم‌دردی نشان بدهم.این جور بود Ú©Ù‡ می‌دیدم Ú©Ù‡ معلم مدرسه هم نمی‌توانم باشم. - -دو روز قبل از عید کارنامه‌ها آماده بود Ùˆ منتظر امضای مدیر. دویست Ùˆ سی Ùˆ شش تا امضا اقلاً تا ظهر طول می‌کشید. پیش از آن هم تا می‌توانستم از امضای Ø¯ÙØªØ±Ù‡Ø§ÛŒ حضور Ùˆ غیاب می‌گریختم. خیلی از جیره‌خورهای دولت در ادارات دیگر یا در میان همکارانم دیده بودم Ú©Ù‡ در مواقع بیکاری تمرین امضا می‌کنند. پیش از آن نمی‌توانستم بÙهمم Ú†Ù‡ طور از مدیری یک مدرسه یا کارمندی ساده یک اداره می‌شود به وزارت رسید. یا اصلاً آرزویش را داشت. نیم‌قراضه امضای آماده Ùˆ هر کدام معر٠یک شخصیت، بعد نیم‌ذرع زبان چرب Ùˆ نرم Ú©Ù‡ با آن، مار را از سوراخ بیرون بکشی، یا همه جا را بلیسی Ùˆ یک دست هم قیاÙÙ‡. نه یک جور. دوازده جور. - -در این Ùکرها بودم Ú©Ù‡ ناگهان در میان کارنامه‌ها چشمم به یک اسم آشنا Ø§ÙØªØ§Ø¯. به اسم پسران جناب سرهنگ Ú©Ù‡ رئیس انجمن بود. Ø±ÙØªÙ… توی نخ نمراتش. همه متوسط بود Ùˆ جای ایرادی نبود. Ùˆ یک مرتبه به ØµØ±Ø§ÙØª Ø§ÙØªØ§Ø¯Ù… Ú©Ù‡ از اول سال تا به حال بچه‌های مدرسه را Ùقط به اعتبار وضع مالی پدرشان قضاوت کرده‌ام. درست مثل این پسر سرهنگ Ú©Ù‡ به اعتبار کیابیای پدرش درس نمی‌خواند. دیدم هر کدام Ú©Ù‡ پدرشان Ùقیرتر است به نظر من باهوش‌تر می‌آمده‌اند. البته ناظم با این حرÙ‌ها کاری نداشت. مر قانونی را عمل می‌کرد. از یکی چشم می‌پوشید به دیگری سخت Ù…ÛŒâ€ŒÚ¯Ø±ÙØª. - -اما من مثل این Ú©Ù‡ قضاوتم را درباره‌ی بچه‌ها از پیش کرده باشم Ùˆ Ú†Ù‡ خوب بود Ú©Ù‡ نمره‌ها در اختیار من نبود Ùˆ آن یکی هم «انظباط» مال آخر سال بود. مسخره‌ترین کارها آن است Ú©Ù‡ کسی به اصلاح وضعی دست بزند، اما در قلمروی Ú©Ù‡ تا سر دماغش بیشتر نیست. Ùˆ تازه مدرسه‌ی من، این قلمروی ÙØ¹Ø§Ù„یت من، تا سر دماغم هم نبود. به همان توی ذهنم ختم می‌شد. وضعی را Ú©Ù‡ دیگران ترتیب داده بودند. به این ترتیب بعد از پنج شش ماه، می‌Ùهمیدم Ú©Ù‡ حسابم یک حساب عقلایی نبوده است. احساساتی بوده است. ضعÙ‌های احساساتی مرا خشونت‌های عملی ناظم جبران می‌کرد Ùˆ این بود Ú©Ù‡ جمعاً نمی‌توانستم ازو بگذرم. مرد عمل بود. کار را می‌برید Ùˆ پیش Ù…ÛŒâ€ŒØ±ÙØª. در زندگی Ùˆ در هر کاری، هر قدمی بر می‌داشت، برایش هد٠بود. Ùˆ چشم از وجوه دیگر قضیه می‌پوشید. این بود Ú©Ù‡ برش داشت. Ùˆ من نمی‌توانستم. چرا Ú©Ù‡ اصلاً مدیر نبودم. خلاص... - -Ùˆ کارنامه‌ی پسر سرهنگ را Ú©Ù‡ زیر دستم عرق کرده بود، به دقت Ùˆ احتیاج خشک کردم Ùˆ امضایی زیر آن گذاشتم به قدری بد خط Ùˆ مسخره بود Ú©Ù‡ به یاد امضای ÙØ±Ø§Ø´ جدیدمان Ø§ÙØªØ§Ø¯Ù…. حتماً جناب سرهنگ کلاÙÙ‡ می‌شد Ú©Ù‡ چرا چنین آدم بی‌سوادی را با این خط Ùˆ ربط امضا مدیر مدرسه کرده‌اند. آخر یک جناب سرهنگ هم می‌داند Ú©Ù‡ امضای آدم معر٠شخصیت آدم است. - -اواخر تعطیلات نوروز Ø±ÙØªÙ… به ملاقات معلم ترکه‌ای کلاس سوم. ناظم Ú©Ù‡ با او میانه‌ی خوشی نداشت. ناچار با معلم حساب کلاس پنج Ùˆ شش قرار Ùˆ مداری گذاشته بودم Ú©Ù‡ مختصری علاقه‌ای هم به آن حر٠و سخن‌ها داشت. هم به وسیله‌ی او بود Ú©Ù‡ می‌دانستم نشانی‌اش کجا است Ùˆ توی کدام زندان است. در راه قبل از هر چیز خبر داد Ú©Ù‡ رئیس ÙØ±Ù‡Ù†Ú¯ عوض شده Ùˆ این طور Ú©Ù‡ شایع است یکی از هم دوره‌ای‌های من، جایش آمده. Ú¯ÙØªÙ…: - -- عجب! چرا؟ Ù…Ú¯Ù‡ رئیس قبلی چپش Ú©Ù… بود؟ - -- Ú†Ù‡ عرض کنم. می‌گند پا تو Ú©ÙØ´ یکی از نماینده‌ها کرده. شما خبر ندارید؟ - -- Ú†Ù‡ طور؟ از کجا خبر داشته باشم؟ - -- هیچ Ú†ÛŒ... Ù…ÛŒ گند دو تا از کارچاق‌کن‌های انتخاباتی یارو از صندوق ÙØ±Ù‡Ù†Ú¯ حقوق Ù…ÛŒâ€ŒÚ¯Ø±ÙØªÙ‡â€ŒØ§Ù†Ø¯Ø› شب عیدی رئیس ÙØ±Ù‡Ù†Ú¯ حقوق‌شون رو زده. - -- عجب! پس اونم می‌خواسته اصلاحات کنه! بیچاره. - -Ùˆ بعد از این حر٠زدیم Ú©Ù‡ الحمدالله مدرسه مرتب است Ùˆ آرام Ùˆ معلم‌ها همکاری می‌کنند Ùˆ ناظم بیش از اندازه همه‌کاره شده است. Ùˆ من Ùهمیدم Ú©Ù‡ باز لابد مشتری خصوصی تازه‌ای پیدا شده است Ú©Ù‡ سر Ùˆ صدای همه همکارها بلند شده. دم در زندان شلوغ بود. کلاه مخملی‌ها، عم‌قزی گل‌بته‌ها، خاله خانباجی‌ها Ùˆ... اسم نوشتیم Ùˆ نوبت Ú¯Ø±ÙØªÛŒÙ… Ùˆ به جای پاها، دست‌هامان زیر بار Ú©ÙˆÚ†Ú©ÛŒ Ú©Ù‡ داشتیم، خسته شد Ùˆ خواب Ø±ÙØª تا نوبتمان شد. از این اتاق به آن اتاق Ùˆ عاقبت نرده‌های آهنی Ùˆ پشت آن معلم کلاس سه Ùˆ... عجب چاق شده بود!درست مثل یک آدم حسابی شده بود. خوشحال شدیم Ùˆ احوالپرسی Ùˆ تشکر؛ Ùˆ دیگر Ú†Ù‡ بگویم؟ بگویم چرا خودت را به دردسر انداختی؟ پیدا بود از مدرسه Ùˆ کلاس به او خوش‌تر می‌گذرد. ایمانی بود Ùˆ او آن را داشت Ùˆ خوشبخت بود Ùˆ دردسری نمی‌دید Ùˆ زندان حداقل برایش کلاس درس بود. عاقبت پرسیدم: - -- پرونده‌ای هم برات درست کردند یا هنوز بلاتکلیÙی؟ - -- امتحانمو دادم آقا مدیر، بد از آب در نیومد. - -- یعنی چه؟ - -- یعنی بی‌تکلی٠نیستم. چون اسمم تو لیست جیره‌ی زندون Ø±ÙØªÙ‡. خیالم راحته. چون سختی‌هاش گذشته. - -دیگر Ú†Ù‡ بگویم. دیدم چیزی ندارم Ø®Ø¯Ø§Ø­Ø§ÙØ¸ÛŒ کردم Ùˆ او را با معلم حساب تنها گذاشتم Ùˆ آمدم بیرون Ùˆ تا مدت ملاقات تمام بشود، دم در زندان قدم زدم Ùˆ به زندانی Ùکر کردم Ú©Ù‡ برای خودم ساخته بودم. یعنی آن خرپول ÙØ±Ù‡Ù†Ú¯â€ŒØ¯ÙˆØ³Øª ساخته بود. Ùˆ من به میل Ùˆ رغبت خودم را در آن زندانی کرده بودم. این یکی را به ضرب دگنک این جا آورده بودند. ناچار حق داشت Ú©Ù‡ خیالش راحت باشد. اما من به میل Ùˆ رغبت Ø±ÙØªÙ‡ بودم Ùˆ Ú†Ù‡ بکنم؟ ناظم Ú†Ù‡ طور؟ راستی اگر رئیس ÙØ±Ù‡Ù†Ú¯ از هم دوره‌ای‌های خودم باشد؛ Ú†Ù‡ طور است بروم Ùˆ ازو بخواهم Ú©Ù‡ ناظم را جای من بگذارد، یا همین معلم حساب را؟... Ú©Ù‡ معلم حساب در آمد Ùˆ راه Ø§ÙØªØ§Ø¯ÛŒÙ…. با او هم دیگر حرÙÛŒ نداشتم. سر پیچ Ø®Ø¯Ø§Ø­Ø§ÙØ¸ شما Ùˆ تاکسی Ú¯Ø±ÙØªÙ… Ùˆ یک سر به اداره‌ی ÙØ±Ù‡Ù†Ú¯ زدم. گرچه دهم عید بود، اما هنوز Ø±ÙØª Ùˆ آمد سال نو تمام نشده بود. برو Ùˆ بیا Ùˆ شیرینی Ùˆ چای دو جانبه. Ø±ÙØªÙ… تو. سلام Ùˆ تبریک Ùˆ همین ØªØ¹Ø§Ø±ÙØ§Øª را پراندم. - -بله خودش بود. یکی از پخمه‌های کلاس. Ú©Ù‡ آخر سال سوم کشتیارش شدم دو بیت شعر را Ø­ÙØ¸ کند، نتوانست Ú©Ù‡ نتوانست. Ùˆ حالا او رئیس بود Ùˆ من آقا مدیر. راستی حی٠از من، Ú©Ù‡ حتی وزیر چنین رئیس ÙØ±Ù‡Ù†Ú¯â€ŒÙ‡Ø§ÛŒÛŒ باشم! میز همان طور پاک بود Ùˆ Ø±ÙØªÙ‡. اما زیرسیگاری انباشته از خاکستر Ùˆ ته سیگار. بلند شد Ùˆ چلپ Ùˆ چولوپ روبوسی کردیم Ùˆ پهلوی خودش جا باز کرد Ùˆ گوش تا گوش جیره‌خورهای ÙØ±Ù‡Ù†Ú¯ تبریکات صمیمانه Ùˆ بدگویی از ماسبق Ùˆ هندوانه Ùˆ پیزرها! Ùˆ دو Ù†ÙØ± Ú©Ù‡ قد Ùˆ قواره‌شان به درد گود زورخانه می‌خورد یا پای صندوق انتخابات شیرینی به مردم می‌دادند. نزدیک بود شیرینی را توی Ø¸Ø±ÙØ´ بیندازم Ú©Ù‡ دیدم بسیار احمقانه است. سیگارم Ú©Ù‡ تمام شد قضیه‌ی رئیس ÙØ±Ù‡Ù†Ú¯ قبلی Ùˆ آن دو Ù†ÙØ± را در گوشی ازش پرسیدم، حرÙÛŒ نزد. Ùقط نگاهی می‌کرد Ú©Ù‡ شبیه التماس بود Ùˆ من ÙØ±ØµØª جستم تا وضع معلم کلاس سوم را برایش روشن کنم Ùˆ از او بخواهم تا آن جا Ú©Ù‡ می‌تواند جلوی حقوقش را نگیرد. Ùˆ از در Ú©Ù‡ آمدم بیرون، تازه یادم آمد Ú©Ù‡ برای کار دیگری پیش رئیس ÙØ±Ù‡Ù†Ú¯ بودم. - -باز دیروز Ø§ÙØªØ¶Ø§Ø­ÛŒ به پا شد. معقول یک ماهه‌ی ÙØ±ÙˆØ±Ø¯ÛŒÙ† راحت بودیم. اول اردیبهشت ماه جلالی Ùˆ کوس رسوایی سر دیوار مدرسه. نزدیک آخر وقت یک Ø¬ÙØª پدر Ùˆ مادر، بچه‌شان در میان، وارد اتاق شدند. یکی بر Ø§ÙØ±ÙˆØ®ØªÙ‡ Ùˆ دیگری رنگ Ùˆ رو باخته Ùˆ بچه‌شان عیناً مثل این عروسک‌های Ú©ÙˆÚ©ÛŒ. سلام Ùˆ علیک Ùˆ نشستند. خدایا دیگر Ú†Ù‡ Ø§ØªÙØ§Ù‚ÛŒ Ø§ÙØªØ§Ø¯Ù‡ است؟ - -- Ú†Ù‡ خبر شده Ú©Ù‡ با خانوم Ø³Ø±Ø§ÙØ±Ø§Ø²Ù…ون کردید؟ - -مرد اشاره‌ای به زنش کرد Ú©Ù‡ بلند شد Ùˆ دست بچه را Ú¯Ø±ÙØª Ùˆ Ø±ÙØª بیرون Ùˆ من ماندم Ùˆ پدر. اما حر٠نمی‌زد. به خودش ÙØ±ØµØª می‌داد تا عصبانیتش بپزد. سیگارم را در آوردم Ùˆ ØªØ¹Ø§Ø±ÙØ´ کردم. مثل این Ú©Ù‡ مگس مزاحمی را از روی دماغش بپراند، سیگار را رد کرد Ùˆ من Ú©Ù‡ سیگارم را آتش می‌زدم، Ùکر کردم لابد دردی دارد Ú©Ù‡ چنین دست Ùˆ پا بسته Ùˆ چنین متکی به خانواده به مدرسه آمده. باز پرسیدم: - -- خوب، حالا Ú†Ù‡ ÙØ±Ù…ایش داشتید؟ - -Ú©Ù‡ یک مرتبه ترکید: - -- اگه من مدیر مدرسه بودم Ùˆ هم‌چه Ø§ØªÙØ§Ù‚ÛŒ Ù…ÛŒâ€ŒØ§ÙØªØ§Ø¯ØŒ شیکم خودمو پاره می‌کردم. خجالت بکش مرد! برو Ø§Ø³ØªØ¹ÙØ§ بده. تا اهل محل نریختن تیکه تیکه‌ات کنند، دو تا گوشتو وردار Ùˆ دررو. بچه‌های مردم می‌آن این جا درس بخونن Ùˆ حسن اخلاق. نمی‌آن Ú©Ù‡... - -- این Ù…Ø²Ø®Ø±ÙØ§Øª کدومه آقا! حر٠حساب سرکار چیه؟ - -Ùˆ حرکتی کردم Ú©Ù‡ او را از در بیندازم بیرون. اما آخر باید می‌Ùهمیدم Ú†Ù‡ مرگش است. «ولی آخر با من Ú†Ù‡ کار دارد؟» - -- آبروی من Ø±ÙØªÙ‡. آبروی صد ساله‌ی خونواده‌ام Ø±ÙØªÙ‡. اگه در مدرسه‌ی تو رو تخته نکنم، تخم بابام نیستم. آخه من دیگه با این بچه Ú†ÛŒ کار کنم؟ تو این مدرسه ناموس مردم در خطره. کلانتری Ùهمیده؛ پزشک قانونی Ùهمیده؛ یک پرونده درست شده پنجاه ورق؛ تازه می‌گی حر٠حسابم چیه؟ حر٠حسابم اینه Ú©Ù‡ صندلی Ùˆ این مقام از سر تو زیاده. حر٠حسابم اینه Ú©Ù‡ می‌دم محاکمه‌ات کنند Ùˆ از نون خوردن بندازنت... - -او Ù…ÛŒâ€ŒÚ¯ÙØª Ùˆ من گوش می‌کردم Ùˆ مثل دو تا سگ هار به جان هم Ø§ÙØªØ§Ø¯Ù‡ بودیم Ú©Ù‡ در باز شد Ùˆ ناظم آمد تو. به دادم رسید. در همان حال Ú©Ù‡ من Ùˆ پدر بچه در حال دعوا بودیم زن Ùˆ بچه همان آقا Ø±ÙØªÙ‡ بودند Ùˆ قضایا را برای ناظم تعری٠کرده بودند Ùˆ او ÙØ±Ø³ØªØ§Ø¯Ù‡ بوده ÙØ§Ø¹Ù„ را از کلاس کشیده بودند بیرون... Ùˆ Ú¯ÙØª Ú†Ù‡ طور است زنگ بزنیم Ùˆ جلوی بچه‌ها ادبش کنیم Ùˆ کردیم. یعنی این بار خود من Ø±ÙØªÙ… میدان. پسرک نره‌خری بود از پنجمی‌ها با لباس مرتب Ùˆ صورت سرخ Ùˆ سÙید Ùˆ سالکی به گونه. جلوی روی بچه‌ها کشیدمش زیر مشت Ùˆ لگد Ùˆ بعد سه تا از ترکه‌ها را Ú©Ù‡ ÙØ±Ø§Ø´ جدید Ùوری از باغ همسایه آورده بود، به سر Ùˆ صورتش خرد کردم. چنان وحشی شده بودم Ú©Ù‡ اگر ترکه‌ها نمی‌رسید، پسرک را کشته بودم. این هم بود Ú©Ù‡ ناظم به دادش رسید Ùˆ وساطت کرد Ùˆ لاشه‌اش را توی Ø¯ÙØªØ± بردند Ùˆ بچه‌ها را مرخص کردند Ùˆ من به اتاقم برگشتم Ùˆ با حالی زار روی صندلی Ø§ÙØªØ§Ø¯Ù…ØŒ نه از پدر خبری بود Ùˆ نه از مادر Ùˆ نه از عروسک‌های کوکی‌شان Ú©Ù‡ ناموسش دست کاری شده بود. Ùˆ تازه احساس کردم Ú©Ù‡ این کتک‌کاری را باید به او می‌زدم. خیس عرق بودم Ùˆ دهانم تلخ بود. تمام ÙØ­Ø´â€ŒÙ‡Ø§ÛŒÛŒ Ú©Ù‡ می‌بایست به آن مردکه‌ی دبنگ می‌دادم Ùˆ نداده بودم، در دهانم رسوب کرده بود Ùˆ مثل دم مار تلخ شده بود. اصلاً چرا زدمش؟ چرا نگذاشتم مثل همیشه ناظم میدان‌داری کند Ú©Ù‡ هم کارکشته‌تر بود Ùˆ هم خونسردتر. لابد پسرک با دخترعمه‌اش هم نمی‌تواند بازی کند. لابد توی خانواده‌شان، دخترها سر ده دوازده سالگی باید از پسرهای هم سن رو بگیرند. نکند عیبی کرده باشد؟ Ùˆ یک مرتبه به ØµØ±Ø§ÙØª Ø§ÙØªØ§Ø¯Ù… Ú©Ù‡ بروم ببینم Ú†Ù‡ بلایی به سرش آورده‌ام. بلند شدم Ùˆ یکی از ÙØ±Ø§Ø´â€ŒÙ‡Ø§ را صدا کردم Ú©Ù‡ Ùهمیدم روانه‌اش کرده‌اند. آبی آورد Ú©Ù‡ روی دستم می‌ریخت Ùˆ صورتم را می‌شستم Ùˆ می‌کوشیدم Ú©Ù‡ لرزش دست‌هایم را نبیند. Ùˆ در گوشم آهسته Ú¯ÙØª Ú©Ù‡ پسر مدیر شرکت اتوبوسرانی است Ùˆ بدجوری کتک خورده Ùˆ آن‌ها خیلی سعی کرده‌اند Ú©Ù‡ تر Ùˆ تمیزش کنند... - -احمق مثلا داشت توی دل مرا خالی می‌کرد. نمی‌دانست Ú©Ù‡ من اول تصمیم را Ú¯Ø±ÙØªÙ…ØŒ بعد مثل سگ هار شدم. Ùˆ تازه می‌Ùهمیدم کسی را زده‌ام Ú©Ù‡ لیاقتش را داشته. حتماً از این Ø§ØªÙØ§Ù‚‌ها جای دیگر هم Ù…ÛŒâ€ŒØ§ÙØªØ¯. آدم بردارد پایین تنه بچه‌ی خودش را، یا به قول خودش ناموسش را بگذارد سر گذر Ú©Ù‡ کلانتر محل Ùˆ پزشک معاینه کنند! تا پرونده درست کنند؟ با این پدرو مادرها بچه‌ها حق دارند Ú©Ù‡ قرتی Ùˆ دزد Ùˆ دروغگو از آب در بیایند. این مدرسه‌ها را اول برای پدر Ùˆ مادرها باز کنند... - -با این اÙکار به خانه رسیدم. زنم در را Ú©Ù‡ باز کرد؛ چشم‌هایش گرد شد. همیشه وقتی می‌ترسد این طور می‌شود. برای اینکه خیال نکند آدم کشته‌ام، زود قضایا را برایش Ú¯ÙØªÙ…. Ùˆ دیدم Ú©Ù‡ در ماند. یعنی ساکت ماند. آب سرد، عرق بیدمشک، سیگار پشت سیگار ÙØ§ÛŒØ¯Ù‡ نداشت، لقمه از گلویم پایین Ù†Ù…ÛŒâ€ŒØ±ÙØª Ùˆ دست‌ها هنوز می‌لرزید. هر کدام به اندازه‌ی یک ماه ÙØ¹Ø§Ù„یت کرده بودند. با سیگار چهارم شروع کردم: - -- می‌دانی زن؟ بابای یارو پول‌داره. مسلماً کار به دادگستری Ùˆ این جور خنس‌ها می‌کشه. مدیریت Ú©Ù‡ Ø§Ù„ÙØ§ØªØ­Ù‡. اما خیلی دلم می‌خواد قضیه به دادگاه برسه. یک سال آزگار رو دل کشیده‌ام Ùˆ دیگه خسته شده‌ام. دلم می‌خواد یکی بپرسه چرا بچه‌ی مردم رو این طوری زدی، چرا تنبیه بدنی کردی! آخه یک مدیر مدرسه هم حرÙ‌هایی داره Ú©Ù‡ باید یک جایی بزنه... - -Ú©Ù‡ بلند شد Ùˆ Ø±ÙØª سراغ تلÙÙ†. دو سه تا از دوستانم را Ú©Ù‡ در دادگستری کاره‌ای بودند، Ú¯Ø±ÙØª Ùˆ خودم قضیه را برایشان Ú¯ÙØªÙ… Ú©Ù‡ مواظب باشند. ÙØ±Ø¯Ø§ پسرک ÙØ§Ø¹Ù„ به مدرسه نیامده بود. Ùˆ ناظم برایم Ú¯ÙØª Ú©Ù‡ قضیه ازین قرار بوده است Ú©Ù‡ دوتایی به هوای دیدن مجموعه تمبرهای ÙØ§Ø¹Ù„ با هم به خانه‌ای می‌روند Ùˆ قضایا همان جا Ø§ØªÙØ§Ù‚ Ù…ÛŒâ€ŒØ§ÙØªØ¯ Ùˆ داد Ùˆ هوار Ùˆ دخالت پدر Ùˆ مادرهای طرÙین Ùˆ خط Ùˆ نشان Ùˆ شبانه کلانتری؛ Ùˆ تمام اهل محل خبر دارند. او هم نظرش این بود Ú©Ù‡ کار به دادگستری خواهد کشید. - -Ùˆ من یک Ù‡ÙØªÙ‡â€ŒÛŒ تمام به انتظار اخطاریه‌ی دادگستری صبح Ùˆ عصر به مدرسه Ø±ÙØªÙ… Ùˆ مثل بخت‌النصر پشت پنجره ایستادم. اما در تمام این مدت نه از ÙØ§Ø¹Ù„ خبری شد، نه از Ù…ÙØ¹ÙˆÙ„ Ùˆ نه از پدر Ùˆ مادر ناموس‌پرست Ùˆ نه از مدیر شرکت اتوبوسرانی. انگار نه انگار Ú©Ù‡ Ø§ØªÙØ§Ù‚ÛŒ Ø§ÙØªØ§Ø¯Ù‡. بچه‌ها می‌آمدند Ùˆ Ù…ÛŒâ€ŒØ±ÙØªÙ†Ø¯Ø› برای آب خوردن عجله می‌کردند؛ به جای بازی کتک‌کاری می‌کردند Ùˆ همه چیز مثل قبل بود. Ùقط من ماندم Ùˆ یک دنیا حر٠و انتظار. تا عاقبت رسید.... احضاریه‌ای با تعیین وقت قبلی برای دو روز بعد، در Ùلان شعبه Ùˆ پیش Ùلان بازپرس دادگستری. آخر کسی پیدا شده بود Ú©Ù‡ به حرÙÙ… گوش کند. - -تا دو روز بعد Ú©Ù‡ موعد احضار بود، اصلاً از خانه در نیامدم. نشستم Ùˆ ماحصل حرÙ‌هایم را روی کاغذ آوردم. حرÙ‌هایی Ú©Ù‡ با همه‌ی چرندی هر وزیر ÙØ±Ù‡Ù†Ú¯ÛŒ می‌توانست با آن یک برنامه‌ی Ù‡ÙØª ساله برای کارش بریزد. Ùˆ سر ساعت معین Ø±ÙØªÙ… دادگستری. اتاق معین Ùˆ بازپرس معین. در را باز کردم Ùˆ سلام، Ùˆ تا آمدم خودم را معرÙÛŒ کنم Ùˆ احضاریه را در بیاورم، یارو پیش‌دستی کرد Ùˆ صندلی آورد Ùˆ چای Ø³ÙØ§Ø±Ø´ داد Ùˆ «احتیاجی به این حرÙ‌ها نیست Ùˆ قضیه‌ی Ú©ÙˆÚ†Ú© بود Ùˆ حل شد Ùˆ راضی به زحمت شما نبودیم...» - -Ú©Ù‡ عرق سرد بر بدن من نشست. چایی‌ام را Ú©Ù‡ خوردم، روی همان کاغذ نشان‌دار دادگستری Ø§Ø³ØªØ¹ÙØ§Ù†Ø§Ù…ه‌ام را نوشتم Ùˆ به نام هم‌کلاسی پخمه‌ام Ú©Ù‡ تازه رئیس شده بود، دم در پست کردم. -EOT; -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/fi_FI/Address.php b/vendor/fzaninotto/faker/src/Faker/Provider/fi_FI/Address.php deleted file mode 100644 index 8e0829ea..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/fi_FI/Address.php +++ /dev/null @@ -1,85 +0,0 @@ -format('dmy'); - - switch ((int)($birthdate->format('Y')/100)) { - case 18: - $centurySign = '+'; - break; - case 19: - $centurySign = '-'; - break; - case 20: - $centurySign = 'A'; - break; - default: - throw new \InvalidArgumentException('Year must be between 1800 and 2099 inclusive.'); - } - - $randomDigits = self::numberBetween(0, 89); - if ($gender && $gender == static::GENDER_MALE) { - if ($randomDigits === 0) { - $randomDigits .= static::randomElement(array(3,5,7,9)); - } else { - $randomDigits .= static::randomElement(array(1,3,5,7,9)); - } - } elseif ($gender && $gender == static::GENDER_FEMALE) { - if ($randomDigits === 0) { - $randomDigits .= static::randomElement(array(2,4,6,8)); - } else { - $randomDigits .= static::randomElement(array(0,2,4,6,8)); - } - } else { - if ($randomDigits === 0) { - $randomDigits .= self::numberBetween(2, 9); - } else { - $randomDigits .= (string)static::numerify('#'); - } - } - $randomDigits = str_pad($randomDigits, 3, '0', STR_PAD_LEFT); - - $checksum = $checksumCharacters[(int)($datePart . $randomDigits) % strlen($checksumCharacters)]; - - return $datePart . $centurySign . $randomDigits . $checksum; - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/fi_FI/PhoneNumber.php b/vendor/fzaninotto/faker/src/Faker/Provider/fi_FI/PhoneNumber.php deleted file mode 100644 index a3230740..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/fi_FI/PhoneNumber.php +++ /dev/null @@ -1,99 +0,0 @@ - 'Argovie'), - array('AI' => 'Appenzell Rhodes-Intérieures'), - array('AR' => 'Appenzell Rhodes-Extérieures'), - array('BE' => 'Berne'), - array('BL' => 'Bâle-Campagne'), - array('BS' => 'Bâle-Ville'), - array('FR' => 'Fribourg'), - array('GE' => 'Genève'), - array('GL' => 'Glaris'), - array('GR' => 'Grisons'), - array('JU' => 'Jura'), - array('LU' => 'Lucerne'), - array('NE' => 'Neuchâtel'), - array('NW' => 'Nidwald'), - array('OW' => 'Obwald'), - array('SG' => 'Saint-Gall'), - array('SH' => 'Schaffhouse'), - array('SO' => 'Soleure'), - array('SZ' => 'Schwytz'), - array('TG' => 'Thurgovie'), - array('TI' => 'Tessin'), - array('UR' => 'Uri'), - array('VD' => 'Vaud'), - array('VS' => 'Valais'), - array('ZG' => 'Zoug'), - array('ZH' => 'Zurich') - ); - - protected static $cityFormats = array( - '{{cityName}}', - ); - - protected static $streetNameFormats = array( - '{{streetPrefix}} {{lastName}}', - '{{streetPrefix}} de {{cityName}}', - '{{streetPrefix}} de {{lastName}}' - ); - - protected static $streetAddressFormats = array( - '{{streetName}} {{buildingNumber}}', - ); - protected static $addressFormats = array( - "{{streetAddress}}\n{{postcode}} {{city}}", - ); - - /** - * Returns a random street prefix - * @example Rue - * @return string - */ - public static function streetPrefix() - { - return static::randomElement(static::$streetPrefix); - } - - /** - * Returns a random city name. - * @example Luzern - * @return string - */ - public function cityName() - { - return static::randomElement(static::$cityNames); - } - - /** - * Returns a canton - * @example array('BE' => 'Bern') - * @return array - */ - public static function canton() - { - return static::randomElement(static::$canton); - } - - /** - * Returns the abbreviation of a canton. - * @return string - */ - public static function cantonShort() - { - $canton = static::canton(); - return key($canton); - } - - /** - * Returns the name of canton. - * @return string - */ - public static function cantonName() - { - $canton = static::canton(); - return current($canton); - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/fr_CH/Company.php b/vendor/fzaninotto/faker/src/Faker/Provider/fr_CH/Company.php deleted file mode 100644 index a4e91eaf..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/fr_CH/Company.php +++ /dev/null @@ -1,15 +0,0 @@ - 'Ain'), array('02' => 'Aisne'), array('03' => 'Allier'), array('04' => 'Alpes-de-Haute-Provence'), array('05' => 'Hautes-Alpes'), - array('06' => 'Alpes-Maritimes'), array('07' => 'Ardèche'), array('08' => 'Ardennes'), array('09' => 'Ariège'), array('10' => 'Aube'), - array('11' => 'Aude'), array('12' => 'Aveyron'), array('13' => 'Bouches-du-Rhône'), array('14' => 'Calvados'), array('15' => 'Cantal'), - array('16' => 'Charente'), array('17' => 'Charente-Maritime'), array('18' => 'Cher'), array('19' => 'Corrèze'), array('2A' => 'Corse-du-Sud'), - array('2B' => 'Haute-Corse'), array('21' => "Côte-d'Or"), array('22' => "Côtes-d'Armor"), array('23' => 'Creuse'), array('24' => 'Dordogne'), - array('25' => 'Doubs'), array('26' => 'Drôme'), array('27' => 'Eure'), array('28' => 'Eure-et-Loir'), array('29' => 'Finistère'), array('30' => 'Gard'), - array('31' => 'Haute-Garonne'), array('32' => 'Gers'), array('33' => 'Gironde'), array('34' => 'Hérault'), array('35' => 'Ille-et-Vilaine'), - array('36' => 'Indre'), array('37' => 'Indre-et-Loire'), array('38' => 'Isère'), array('39' => 'Jura'), array('40' => 'Landes'), array('41' => 'Loir-et-Cher'), - array('42' => 'Loire'), array('43' => 'Haute-Loire'), array('44' => 'Loire-Atlantique'), array('45' => 'Loiret'), array('46' => 'Lot'), - array('47' => 'Lot-et-Garonne'), array('48' => 'Lozère'), array('49' => 'Maine-et-Loire'), array('50' => 'Manche'), array('51' => 'Marne'), - array('52' => 'Haute-Marne'), array('53' => 'Mayenne'), array('54' => 'Meurthe-et-Moselle'), array('55' => 'Meuse'), array('56' => 'Morbihan'), - array('57' => 'Moselle'), array('58' => 'Nièvre'), array('59' => 'Nord'), array('60' => 'Oise'), array('61' => 'Orne'), array('62' => 'Pas-de-Calais'), - array('63' => 'Puy-de-Dôme'), array('64' => 'Pyrénées-Atlantiques'), array('65' => 'Hautes-Pyrénées'), array('66' => 'Pyrénées-Orientales'), - array('67' => 'Bas-Rhin'), array('68' => 'Haut-Rhin'), array('69' => 'Rhône'), array('70' => 'Haute-Saône'), array('71' => 'Saône-et-Loire'), - array('72' => 'Sarthe'), array('73' => 'Savoie'), array('74' => 'Haute-Savoie'), array('75' => 'Paris'), array('76' => 'Seine-Maritime'), - array('77' => 'Seine-et-Marne'), array('78' => 'Yvelines'), array('79' => 'Deux-Sèvres'), array('80' => 'Somme'), array('81' => 'Tarn'), - array('82' => 'Tarn-et-Garonne'), array('83' => 'Var'), array('84' => 'Vaucluse'), array('85' => 'Vendée'), array('86' => 'Vienne'), - array('87' => 'Haute-Vienne'), array('88' => 'Vosges'), array('89' => 'Yonne'), array('90' => 'Territoire de Belfort'), array('91' => 'Essonne'), - array('92' => 'Hauts-de-Seine'), array('93' => 'Seine-Saint-Denis'), array('94' => 'Val-de-Marne'), array('95' => "Val-d'Oise"), - array('971' => 'Guadeloupe'), array('972' => 'Martinique'), array('973' => 'Guyane'), array('974' => 'La Réunion'), array('976' => 'Mayotte') - ); - - protected static $secondaryAddressFormats = array('Apt. ###', 'Suite ###', 'Étage ###', "Bât. ###", "Chambre ###"); - - /** - * @example 'Appt. 350' - */ - public static function secondaryAddress() - { - return static::numerify(static::randomElement(static::$secondaryAddressFormats)); - } - - /** - * @example 'rue' - */ - public static function streetPrefix() - { - return static::randomElement(static::$streetPrefix); - } - - /** - * Randomly returns a french region. - * - * @example 'Guadeloupe' - * - * @return string - */ - public static function region() - { - return static::randomElement(static::$regions); - } - - /** - * Randomly returns a french department ('departmentNumber' => 'departmentName'). - * - * @example array('2B' => 'Haute-Corse') - * - * @return array - */ - public static function department() - { - return static::randomElement(static::$departments); - } - - /** - * Randomly returns a french department name. - * - * @example 'Ardèche' - * - * @return string - */ - public static function departmentName() - { - $randomDepartmentName = array_values(static::department()); - - return $randomDepartmentName[0]; - } - - /** - * Randomly returns a french department number. - * - * @example '59' - * - * @return string - */ - public static function departmentNumber() - { - $randomDepartmentNumber = array_keys(static::department()); - - return $randomDepartmentNumber[0]; - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/fr_FR/Company.php b/vendor/fzaninotto/faker/src/Faker/Provider/fr_FR/Company.php deleted file mode 100644 index 9112802c..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/fr_FR/Company.php +++ /dev/null @@ -1,476 +0,0 @@ -generator->parse($format)); - - if ($this->isCatchPhraseValid($catchPhrase)) { - break; - } - } while (true); - - return $catchPhrase; - } - - /** - * Generates a siret number (14 digits) that passes the Luhn check. - * - * @see http://fr.wikipedia.org/wiki/Syst%C3%A8me_d'identification_du_r%C3%A9pertoire_des_%C3%A9tablissements - * @return string - */ - public function siret($formatted = true) - { - $siret = self::siren(false); - $nicFormat = static::randomElement(static::$siretNicFormats); - $siret .= $this->numerify($nicFormat); - $siret .= Luhn::computeCheckDigit($siret); - if ($formatted) { - $siret = substr($siret, 0, 3) . ' ' . substr($siret, 3, 3) . ' ' . substr($siret, 6, 3) . ' ' . substr($siret, 9, 5); - } - - return $siret; - } - - /** - * Generates a siren number (9 digits) that passes the Luhn check. - * - * @see http://fr.wikipedia.org/wiki/Syst%C3%A8me_d%27identification_du_r%C3%A9pertoire_des_entreprises - * @return string - */ - public static function siren($formatted = true) - { - $siren = self::numerify('%#######'); - $siren .= Luhn::computeCheckDigit($siren); - if ($formatted) { - $siren = substr($siren, 0, 3) . ' ' . substr($siren, 3, 3) . ' ' . substr($siren, 6, 3); - } - - return $siren; - } - - /** - * @var array An array containing string which should not appear twice in a catch phrase. - */ - protected static $wordsWhichShouldNotAppearTwice = array('sécurité', 'simpl'); - - /** - * Validates a french catch phrase. - * - * @param string $catchPhrase The catch phrase to validate. - * - * @return boolean (true if valid, false otherwise) - */ - protected static function isCatchPhraseValid($catchPhrase) - { - foreach (static::$wordsWhichShouldNotAppearTwice as $word) { - // Fastest way to check if a piece of word does not appear twice. - $beginPos = strpos($catchPhrase, $word); - $endPos = strrpos($catchPhrase, $word); - - if ($beginPos !== false && $beginPos != $endPos) { - return false; - } - } - - return true; - } - - /** - * @link http://www.pole-emploi.fr/candidat/le-code-rome-et-les-fiches-metiers-@/article.jspz?id=60702 - * @note Randomly took 300 from this list - */ - protected static $jobTitleFormat = array( - 'Agent d\'accueil', - 'Agent d\'enquêtes', - 'Agent d\'entreposage', - 'Agent de curage', - 'Agro-économiste', - 'Aide couvreur', - 'Aide à domicile', - 'Aide-déménageur', - 'Ambassadeur', - 'Analyste télématique', - 'Animateur d\'écomusée', - 'Animateur web', - 'Appareilleur-gazier', - 'Archéologue', - 'Armurier d\'art', - 'Armurier spectacle', - 'Artificier spectacle', - 'Artiste dramatique', - 'Aspigiculteur', - 'Assistant de justice', - 'Assistant des ventes', - 'Assistant logistique', - 'Assistant styliste', - 'Assurance', - 'Auteur-adaptateur', - 'Billettiste voyages', - 'Brigadier', - 'Bruiteur', - 'Bâtonnier d\'art', - 'Bûcheron', - 'Cameraman', - 'Capitaine de pêche', - 'Carrier', - 'Caviste', - 'Chansonnier', - 'Chanteur', - 'Chargé de recherche', - 'Chasseur-bagagiste', - 'Chef de fabrication', - 'Chef de scierie', - 'Chef des ventes', - 'Chef du personnel', - 'Chef géographe', - 'Chef monteur son', - 'Chef porion', - 'Chiropraticien', - 'Choréologue', - 'Chromiste', - 'Cintrier-machiniste', - 'Clerc hors rang', - 'Coach sportif', - 'Coffreur béton armé', - 'Coffreur-ferrailleur', - 'Commandant de police', - 'Commandant marine', - 'Commis de coupe', - 'Comptable unique', - 'Conception et études', - 'Conducteur de jumbo', - 'Conseiller culinaire', - 'Conseiller funéraire', - 'Conseiller relooking', - 'Consultant ergonome', - 'Contrebassiste', - 'Convoyeur garde', - 'Copiste offset', - 'Corniste', - 'Costumier-habilleur', - 'Coutelier d\'art', - 'Cueilleur de cerises', - 'Céramiste concepteur', - 'Danse', - 'Danseur', - 'Data manager', - 'Dee-jay', - 'Designer produit', - 'Diététicien conseil', - 'Diététique', - 'Doreur sur métaux', - 'Décorateur-costumier', - 'Défloqueur d\'amiante', - 'Dégustateur', - 'Délégué vétérinaire', - 'Délégué à la tutelle', - 'Désamianteur', - 'Détective', - 'Développeur web', - 'Ecotoxicologue', - 'Elagueur-botteur', - 'Elagueur-grimpeur', - 'Elastiqueur', - 'Eleveur d\'insectes', - 'Eleveur de chats', - 'Eleveur de volailles', - 'Embouteilleur', - 'Employé d\'accueil', - 'Employé d\'étage', - 'Employé de snack-bar', - 'Endivier', - 'Endocrinologue', - 'Epithésiste', - 'Essayeur-retoucheur', - 'Etainier', - 'Etancheur', - 'Etancheur-bardeur', - 'Etiqueteur', - 'Expert back-office', - 'Exploitant de tennis', - 'Extraction', - 'Facteur', - 'Facteur de clavecins', - 'Facteur de secteur', - 'Fantaisiste', - 'Façadier-bardeur', - 'Façadier-ravaleur', - 'Feutier', - 'Finance', - 'Flaconneur', - 'Foreur pétrole', - 'Formateur d\'italien', - 'Fossoyeur', - 'Fraiseur', - 'Fraiseur mouliste', - 'Frigoriste maritime', - 'Fromager', - 'Galeriste', - 'Gardien de résidence', - 'Garçon de chenil', - 'Garçon de hall', - 'Gendarme mobile', - 'Guitariste', - 'Gynécologue', - 'Géodésien', - 'Géologue prospecteur', - 'Géomètre', - 'Géomètre du cadastre', - 'Gérant d\'hôtel', - 'Gérant de tutelle', - 'Gériatre', - 'Hydrothérapie', - 'Hématologue', - 'Hôte de caisse', - 'Ingénieur bâtiment', - 'Ingénieur du son', - 'Ingénieur géologue', - 'Ingénieur géomètre', - 'Ingénieur halieute', - 'Ingénieur logistique', - 'Instituteur', - 'Jointeur de placage', - 'Juge des enfants', - 'Juriste financier', - 'Kiwiculteur', - 'Lexicographe', - 'Liftier', - 'Litigeur transport', - 'Logistique', - 'Logopède', - 'Magicien', - 'Manager d\'artiste', - 'Mannequin détail', - 'Maquilleur spectacle', - 'Marbrier-poseur', - 'Marin grande pêche', - 'Matelassier', - 'Maçon', - 'Maçon-fumiste', - 'Maçonnerie', - 'Maître de ballet', - 'Maïeuticien', - 'Menuisier', - 'Miroitier', - 'Modéliste industriel', - 'Moellonneur', - 'Moniteur de sport', - 'Monteur audiovisuel', - 'Monteur de fermettes', - 'Monteur de palettes', - 'Monteur en siège', - 'Monteur prototypiste', - 'Monteur-frigoriste', - 'Monteur-truquiste', - 'Mouleur sable', - 'Mouliste drapeur', - 'Mécanicien-armurier', - 'Médecin du sport', - 'Médecin scolaire', - 'Médiateur judiciaire', - 'Médiathécaire', - 'Net surfeur surfeuse', - 'Oenologue', - 'Opérateur de plateau', - 'Opérateur du son', - 'Opérateur géomètre', - 'Opérateur piquage', - 'Opérateur vidéo', - 'Ouvrier d\'abattoir', - 'Ouvrier serriste', - 'Ouvrier sidérurgiste', - 'Palefrenier', - 'Paléontologue', - 'Pareur en abattoir', - 'Parfumeur', - 'Parqueteur', - 'Percepteur', - 'Photographe d\'art', - 'Pilote automobile', - 'Pilote de soutireuse', - 'Pilote fluvial', - 'Piqueur en ganterie', - 'Pisteur secouriste', - 'Pizzaïolo', - 'Plaquiste enduiseur', - 'Plasticien', - 'Plisseur', - 'Poissonnier-traiteur', - 'Pontonnier', - 'Porion', - 'Porteur de hottes', - 'Porteur de journaux', - 'Portier', - 'Poseur de granit', - 'Posticheur spectacle', - 'Potier', - 'Praticien dentaire', - 'Praticiens médicaux', - 'Premier clerc', - 'Preneur de son', - 'Primeuriste', - 'Professeur d\'italien', - 'Projeteur béton armé', - 'Promotion des ventes', - 'Présentateur radio', - 'Pyrotechnicien', - 'Pédicure pour bovin', - 'Pédologue', - 'Pédopsychiatre', - 'Quincaillier', - 'Radio chargeur', - 'Ramasseur d\'asperges', - 'Ramasseur d\'endives', - 'Ravaleur-ragréeur', - 'Recherche', - 'Recuiseur', - 'Relieur-doreur', - 'Responsable de salle', - 'Responsable télécoms', - 'Revenue Manager', - 'Rippeur spectacle', - 'Rogneur', - 'Récupérateur', - 'Rédacteur des débats', - 'Régleur funéraire', - 'Régleur sur tour', - 'Sapeur-pompier', - 'Scannériste', - 'Scripte télévision', - 'Sculpteur sur verre', - 'Scénariste', - 'Second de cuisine', - 'Secrétaire juridique', - 'Semencier', - 'Sertisseur', - 'Services funéraires', - 'Solier-moquettiste', - 'Sommelier', - 'Sophrologue', - 'Staffeur', - 'Story boarder', - 'Stratifieur', - 'Stucateur', - 'Styliste graphiste', - 'Surjeteur-raseur', - 'Séismologue', - 'Technicien agricole', - 'Technicien bovin', - 'Technicien géomètre', - 'Technicien plateau', - 'Technicien énergie', - 'Terminologue', - 'Testeur informatique', - 'Toiliste', - 'Topographe', - 'Toréro', - 'Traducteur d\'édition', - 'Traffic manager', - 'Trieur de métaux', - 'Turbinier', - 'Téléconseiller', - 'Tôlier-traceur', - 'Vendeur carreau', - 'Vendeur en lingerie', - 'Vendeur en meubles', - 'Vendeur en épicerie', - 'Verrier d\'art', - 'Verrier à la calotte', - 'Verrier à la main', - 'Verrier à main levée', - 'Vidéo-jockey', - 'Vitrier', - ); -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/fr_FR/Internet.php b/vendor/fzaninotto/faker/src/Faker/Provider/fr_FR/Internet.php deleted file mode 100644 index 8e3024bf..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/fr_FR/Internet.php +++ /dev/null @@ -1,9 +0,0 @@ -numberBetween(1, 2); - } - - $nir .= - // Year of birth (aa) - $this->numerify('##') . - // Mont of birth (mm) - sprintf('%02d', $this->numberBetween(1, 12)); - - // Department - $department = key(Address::department()); - $nir .= $department; - - // Town number, depends on department length - if (strlen($department) === 2) { - $nir .= $this->numerify('###'); - } elseif (strlen($department) === 3) { - $nir .= $this->numerify('##'); - } - - // Born number (depending of town and month of birth) - $nir .= $this->numerify('###'); - - /** - * The key for a given NIR is `97 - 97 % NIR` - * NIR has to be an integer, so we have to do a little replacment - * for departments 2A and 2B - */ - if ($department === '2A') { - $nirInteger = str_replace('2A', '19', $nir); - } elseif ($department === '2B') { - $nirInteger = str_replace('2B', '18', $nir); - } else { - $nirInteger = $nir; - } - $nir .= sprintf('%02d', 97 - $nirInteger % 97); - - // Format is x xx xx xx xxx xxx xx - if ($formatted) { - $nir = substr($nir, 0, 1) . ' ' . substr($nir, 1, 2) . ' ' . substr($nir, 3, 2) . ' ' . substr($nir, 5, 2) . ' ' . substr($nir, 7, 3). ' ' . substr($nir, 10, 3). ' ' . substr($nir, 13, 2); - } - - return $nir; - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/fr_FR/PhoneNumber.php b/vendor/fzaninotto/faker/src/Faker/Provider/fr_FR/PhoneNumber.php deleted file mode 100644 index 7c0bd9d5..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/fr_FR/PhoneNumber.php +++ /dev/null @@ -1,141 +0,0 @@ -phoneNumber07WithSeparator(); - $phoneNumber = str_replace(' ', '', $phoneNumber); - return $phoneNumber; - } - - /** - * Only 073 to 079 are acceptable prefixes with 07 - * - * @see http://www.arcep.fr/index.php?id=8146 - */ - public function phoneNumber07WithSeparator() - { - $phoneNumber = $this->generator->numberBetween(3, 9); - $phoneNumber .= $this->numerify('# ## ## ##'); - return $phoneNumber; - } - - public function phoneNumber08() - { - $phoneNumber = $this->phoneNumber08WithSeparator(); - $phoneNumber = str_replace(' ', '', $phoneNumber); - return $phoneNumber; - } - - /** - * Valid formats for 08: - * - * 0# ## ## ## - * 1# ## ## ## - * 2# ## ## ## - * 91 ## ## ## - * 92 ## ## ## - * 93 ## ## ## - * 97 ## ## ## - * 98 ## ## ## - * 99 ## ## ## - * - * Formats 089(4|6)## ## ## are valid, but will be - * attributed when other 089 resource ranges are exhausted. - * - * @see https://www.arcep.fr/index.php?id=8146#c9625 - * @see https://issuetracker.google.com/u/1/issues/73269839 - */ - public function phoneNumber08WithSeparator() - { - $regex = '([012]{1}\d{1}|(9[1-357-9])( \d{2}){3}'; - return $this->regexify($regex); - } - - /** - * @example '0601020304' - */ - public function mobileNumber() - { - $format = static::randomElement(static::$mobileFormats); - - return static::numerify($this->generator->parse($format)); - } - /** - * @example '0891951357' - */ - public function serviceNumber() - { - $format = static::randomElement(static::$serviceFormats); - - return static::numerify($this->generator->parse($format)); - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/fr_FR/Text.php b/vendor/fzaninotto/faker/src/Faker/Provider/fr_FR/Text.php deleted file mode 100644 index 9403f168..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/fr_FR/Text.php +++ /dev/null @@ -1,15531 +0,0 @@ - static::latitude(46.262740, 47.564721), - 'longitude' => static::longitude(17.077949, 20.604560) - ); - } - - /* ----------- DATA -------------------- */ - - protected static $streetSuffix = array( - 'árok', 'átjáró', 'dűlÅ‘sor', 'dűlőút', 'erdÅ‘sor', 'fasor', 'forduló', 'gát', 'határsor', 'határút', 'híd', 'játszótér', 'kert', 'körönd', 'körtér', 'körút', 'köz', 'lakótelep', 'lejáró', 'lejtÅ‘', 'lépcsÅ‘', 'liget', 'mélyút', 'orom', 'országút', 'ösvény', 'park', 'part', 'pincesor', 'rakpart', 'sétány', 'sétaút', 'sor', 'sugárút', 'tér', 'tere', 'turistaút', 'udvar', 'út', 'útja', 'utca', 'üdülÅ‘part' - ); - protected static $postcode = array('####'); - protected static $state = array( - 'Budapest', 'Bács-Kiskun', 'Baranya', 'Békés', 'Borsod-Abaúj-Zemplén', 'Csongrád', 'Fejér', 'GyÅ‘r-Moson-Sopron', 'Hajdú-Bihar', 'Heves', 'Jász-Nagykun-Szolnok', 'Komárom-Esztergom', 'Nógrád', 'Pest', 'Somogy', 'Szabolcs-Szatmár-Bereg', 'Tolna', 'Vas', 'Veszprém', 'Zala' - ); - protected static $country = array( - 'Afganisztán', 'Albánia', 'Algéria', 'Amerikai Egyesült Ãllamok', 'Andorra', 'Angola', 'Antigua és Barbuda', 'Argentína', 'Ausztria', 'Ausztrália', 'Azerbajdzsán', - 'Bahama-szigetek', 'Bahrein', 'Banglades', 'Barbados', 'Belgium', 'Belize', 'Benin', 'Bhután', 'Bolívia', 'Bosznia-Hercegovina', 'Botswana', 'Brazília', 'Brunei', 'Bulgária', 'Burkina Faso', 'Burma', 'Burundi', - 'Chile', 'Ciprus', 'Costa Rica', 'Csehország', 'Csád', - 'Dominikai Köztársaság', 'Dominikai Közösség', 'Dzsibuti', 'Dánia', 'Dél-Afrika', 'Dél-Korea', 'Dél-Szudán', - 'Ecuador', 'EgyenlítÅ‘i-Guinea', 'Egyesült Arab Emírségek', 'Egyesült Királyság', 'Egyiptom', 'Elefántcsontpart', 'Eritrea', 'Etiópia', - 'Fehéroroszország', 'Fidzsi-szigetek', 'Finnország', 'Franciaország', 'Fülöp-szigetek', - 'Gabon', 'Gambia', 'Ghána', 'Grenada', 'Grúzia', 'Guatemala', 'Guinea', 'Guyana', 'Görögország', - 'Haiti', 'Hollandia', 'Horvátország', - 'India', 'Indonézia', 'Irak', 'Irán', 'Izland', 'Izrael', - 'Japán', 'Jemen', 'Jordánia', - 'Kambodzsa', 'Kamerun', 'Kanada', 'Katar', 'Kazahsztán', 'Kelet-Timor', 'Kenya', 'Kirgizisztán', 'Kiribati', 'Kolumbia', 'Kongói Demokratikus Köztársaság', 'Kongói Köztársaság', 'Kuba', 'Kuvait', 'Kína', 'Közép-Afrika', - 'Laosz', 'Lengyelország', 'Lesotho', 'Lettország', 'Libanon', 'Libéria', 'Liechtenstein', 'Litvánia', 'Luxemburg', 'Líbia', - 'Macedónia', 'Madagaszkár', 'Magyarország', 'Malawi', 'Maldív-szigetek', 'Mali', 'Malájzia', 'Marokkó', 'Marshall-szigetek', 'Mauritánia', 'Mexikó', 'Mikronézia', 'Moldova', 'Monaco', 'Mongólia', 'Montenegró', 'Mozambik', 'Málta', - 'Namíbia', 'Nauru', 'Nepál', 'Nicaragua', 'Niger', 'Nigéria', 'Norvégia', 'Németország', - 'Olaszország', 'Omán', 'Oroszország', - 'Pakisztán', 'Palau', 'Panama', 'Paraguay', 'Peru', 'Portugália', 'Pápua Új-Guinea', - 'Románia', 'Ruanda', - 'Saint Kitts és Nevis', 'Saint Vincent', 'Salamon-szigetek', 'Salvador', 'San Marino', 'Seychelle-szigetek', 'Spanyolország', 'Srí Lanka', 'Suriname', 'Svájc', 'Svédország', 'Szamoa', 'Szaúd-Arábia', 'Szenegál', 'Szerbia', 'Szingapúr', 'Szlovákia', 'Szlovénia', 'Szomália', 'Szudán', 'Szváziföld', 'Szíria', 'São Tomé és Príncipe', - 'Tadzsikisztán', 'Tanzánia', 'Thaiföld', 'Togo', 'Tonga', 'Trinidad és Tobago', 'Tunézia', 'Tuvalu', 'Törökország', 'Türkmenisztán', - 'Uganda', 'Ukrajna', 'Uruguay', - 'Vanuatu', 'Venezuela', 'Vietnám', - 'Zambia', 'Zimbabwe', 'Zöld-foki-szigetek', - 'Észak-Korea', 'Észtország', 'Ãrország', 'Örményország', 'Új-Zéland', 'Üzbegisztán' - ); - - /** - * Source: https://hu.wikipedia.org/wiki/Magyarorsz%C3%A1g_v%C3%A1rosainak_list%C3%A1ja - */ - protected static $capitals = array('Budapest'); - protected static $bigCities = array( - 'Békéscsaba', 'Debrecen', 'Dunaújváros', 'Eger', 'Érd', 'GyÅ‘r', 'HódmezÅ‘vásárhely', 'Kaposvár', 'Kecskemét', 'Miskolc', 'Nagykanizsa', 'Nyíregyháza', 'Pécs', 'Salgótarján', 'Sopron', 'Szeged', 'Székesfehérvár', 'Szekszárd', 'Szolnok', 'Szombathely', 'Tatabánya', 'Veszprém', 'Zalaegerszeg' - ); - protected static $smallerCities = array( - 'Ajka', 'Aszód', 'Bácsalmás', - 'Baja', 'Baktalórántháza', 'Balassagyarmat', 'Balatonalmádi', 'Balatonfüred', 'Balmazújváros', 'Barcs', 'Bátonyterenye', 'Békés', 'Bélapátfalva', 'Berettyóújfalu', 'Bicske', 'Bóly', 'Bonyhád', 'Budakeszi', - 'Cegléd', 'Celldömölk', 'Cigánd', 'Csenger', 'Csongrád', 'Csorna', 'Csurgó', - 'Dabas', 'Derecske', 'Devecser', 'Dombóvár', 'Dunakeszi', - 'Edelény', 'Encs', 'Enying', 'Esztergom', - 'Fehérgyarmat', 'Fonyód', 'Füzesabony', - 'Gárdony', 'GödöllÅ‘', 'Gönc', 'Gyál', 'GyomaendrÅ‘d', 'Gyöngyös', 'Gyula', - 'Hajdúböszörmény', 'Hajdúhadház', 'Hajdúnánás', 'Hajdúszoboszló', 'Hatvan', 'Heves', - 'Ibrány', - 'Jánoshalma', 'Jászapáti', 'Jászberény', - 'Kalocsa', 'Kapuvár', 'Karcag', 'Kazincbarcika', 'Kemecse', 'Keszthely', 'Kisbér', 'KiskÅ‘rös', 'Kiskunfélegyháza', 'Kiskunhalas', 'Kiskunmajsa', 'Kistelek', 'Kisvárda', 'Komárom', 'Komló', 'Körmend', 'KÅ‘szeg', 'Kunhegyes', 'Kunszentmárton', 'Kunszentmiklós', - 'Lenti', 'Letenye', - 'Makó', 'Marcali', 'Martonvásár', 'Mátészalka', 'MezÅ‘csát', 'MezÅ‘kovácsháza', 'MezÅ‘kövesd', 'MezÅ‘túr', 'Mohács', 'Monor', 'Mór', 'Mórahalom', 'Mosonmagyaróvár', - 'Nagyatád', 'Nagykálló', 'Nagykáta', 'NagykÅ‘rös', 'Nyíradony', 'Nyírbátor', - 'Orosháza', 'Oroszlány', 'Ózd', - 'Paks', 'Pannonhalma', 'Pápa', 'Pásztó', 'Pécsvárad', 'Pétervására', 'Pilisvörösvár', 'Polgárdi', 'Püspökladány', 'Putnok', - 'Ráckeve', 'Rétság', - 'Sárbogárd', 'Sarkad', 'Sárospatak', 'Sárvár', 'Sásd', 'Sátoraljaújhely', 'Sellye', 'Siklós', 'Siófok', 'Sümeg', 'Szarvas', 'Szécsény', 'Szeghalom', 'Szentendre', 'Szentes', 'Szentgotthárd', 'SzentlÅ‘rinc', 'Szerencs', 'Szigetszentmiklós', 'Szigetvár', 'Szikszó', 'Szob', - 'Tab', 'Tamási', 'Tapolca', 'Tata', 'Tét', 'Tiszafüred', 'Tiszakécske', 'Tiszaújváros', 'Tiszavasvári', 'Tokaj', 'Tolna', 'Törökszentmiklós', - 'Vác', 'Várpalota', 'Vásárosnamény', 'Vasvár', 'Vecsés', - 'Záhony', 'Zalaszentgrót', 'Zirc' - ); -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/hu_HU/Company.php b/vendor/fzaninotto/faker/src/Faker/Provider/hu_HU/Company.php deleted file mode 100644 index 71316542..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/hu_HU/Company.php +++ /dev/null @@ -1,13 +0,0 @@ -generator->parse($format); - } - - public static function country() - { - return static::randomElement(static::$country); - } - - public static function postcode() - { - return static::toUpper(static::bothify(static::randomElement(static::$postcode))); - } - - public static function regionSuffix() - { - return static::randomElement(static::$regionSuffix); - } - - public static function region() - { - return static::randomElement(static::$region); - } - - public static function cityPrefix() - { - return static::randomElement(static::$cityPrefix); - } - - public function city() - { - return static::randomElement(static::$city); - } - - public function streetPrefix() - { - return static::randomElement(static::$streetPrefix); - } - - public static function street() - { - return static::randomElement(static::$street); - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/hy_AM/Color.php b/vendor/fzaninotto/faker/src/Faker/Provider/hy_AM/Color.php deleted file mode 100644 index 16b68d8b..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/hy_AM/Color.php +++ /dev/null @@ -1,12 +0,0 @@ -generator->parse(static::randomElement(static::$formats))); - } - - public function code() - { - return static::randomElement(static::$codes); - } - - /** - * @return mixed - */ - public function numberFormat() - { - return static::randomElement(static::$numberFormats); - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/id_ID/Address.php b/vendor/fzaninotto/faker/src/Faker/Provider/id_ID/Address.php deleted file mode 100644 index 49fd1a7a..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/id_ID/Address.php +++ /dev/null @@ -1,316 +0,0 @@ -generator->parse($format); - } - - public static function street() - { - return static::randomElement(static::$street); - } - - public static function buildingNumber() - { - return static::numberBetween(1, 999); - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/id_ID/Company.php b/vendor/fzaninotto/faker/src/Faker/Provider/id_ID/Company.php deleted file mode 100644 index 7839f1e0..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/id_ID/Company.php +++ /dev/null @@ -1,43 +0,0 @@ -generator->parse($lastNameRandomElement); - } - - /** - * Return last name for male - * - * @access public - * @return string last name - */ - public static function lastNameMale() - { - return static::randomElement(static::$lastNameMale); - } - - /** - * Return last name for female - * - * @access public - * @return string last name - */ - public static function lastNameFemale() - { - return static::randomElement(static::$lastNameFemale); - } - - /** - * For academic title - * - * @access public - * @return string suffix - */ - public static function suffix() - { - return static::randomElement(static::$suffix); - } - - /** - * Generates Nomor Induk Kependudukan (NIK) - * - * @link https://en.wikipedia.org/wiki/National_identification_number#Indonesia - * - * @param null|string $gender - * @param null|\DateTime $birthDate - * @return string - */ - public function nik($gender = null, $birthDate = null) - { - # generate first numbers (region data) - $nik = $this->generator->numerify('######'); - - if (!$birthDate) { - $birthDate = $this->generator->dateTimeBetween(); - } - - if (!$gender) { - $gender = $this->generator->randomElement(array(self::GENDER_MALE, self::GENDER_FEMALE)); - } - - # if gender is female, add 40 to days - if ($gender == self::GENDER_FEMALE) { - $nik .= $birthDate->format('d') + 40; - } else { - $nik .= $birthDate->format('d'); - } - - $nik .= $birthDate->format('my'); - - # add last random digits - $nik.= $this->generator->numerify('####'); - - return $nik; - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/id_ID/PhoneNumber.php b/vendor/fzaninotto/faker/src/Faker/Provider/id_ID/PhoneNumber.php deleted file mode 100644 index de5c9696..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/id_ID/PhoneNumber.php +++ /dev/null @@ -1,55 +0,0 @@ - - */ -class Address extends \Faker\Provider\Address -{ - /** - * @var array Countries in icelandic - */ - protected static $country = array( - 'Afganistan', 'Albanía', 'Alsír', 'Andorra', 'Angóla', 'Angvilla', 'Antígva og Barbúda', 'Argentína', - 'Armenía', 'Arúba', 'Aserbaídsjan', 'Austur-Kongó', 'Austurríki', 'Austur-Tímor', 'Ãlandseyjar', - 'Ãstralía', 'Bahamaeyjar', 'Bandaríkin', 'Bandaríska Samóa', 'Bangladess', 'Barbados', 'Barein', - 'Belgía', 'Belís', 'Benín', 'Bermúdaeyjar', 'Bosnía og Hersegóvína', 'Botsvana', 'Bouvet-eyja', 'Bólivía', - 'Brasilía', 'Bresku Indlandshafseyjar', 'Bretland', 'Brúnei', 'Búlgaría', 'Búrkína Fasó', 'Búrúndí', 'Bútan', - 'Cayman-eyjar', 'Chile', 'Cooks-eyjar', 'Danmörk', 'Djíbútí', 'Dóminíka', 'Dóminíska lýðveldið', 'Egyptaland', - 'Eistland', 'Ekvador', 'El Salvador', 'England', 'Erítrea', 'Eþíópía', 'Falklandseyjar', 'Filippseyjar', - 'Finnland', 'Fídjieyjar', 'Fílabeinsströndin', 'Frakkland', 'Franska Gvæjana', 'Franska Pólýnesía', - 'Frönsku suðlægu landsvæðin', 'Færeyjar', 'Gabon', 'Gambía', 'Gana', 'Georgía', 'Gíbraltar', 'Gínea', - 'Gínea-Bissá', 'Grenada', 'Grikkland', 'Grænhöfðaeyjar', 'Grænland', 'Gvadelúpeyjar', 'Gvam', 'Gvatemala', - 'Gvæjana', 'Haítí', 'Heard og McDonalds-eyjar', 'Holland', 'Hollensku Antillur', 'Hondúras', 'Hong Kong', - 'Hvíta-Rússland', 'Indland', 'Indónesía', 'Ãrak', 'Ãran', 'Ãrland', 'Ãsland', 'Ãsrael', 'Ãtalía', 'Jamaíka', - 'Japan', 'Jemen', 'Jólaey', 'Jómfrúaeyjar', 'Jórdanía', 'Kambódía', 'Kamerún', 'Kanada', 'Kasakstan', 'Katar', - 'Kenía', 'Kirgisistan', 'Kína', 'Kíribatí', 'Kongó', 'Austur-Kongó', 'Vestur-Kongó', 'Kostaríka', 'Kókoseyjar', - 'Kólumbía', 'Kómoreyjar', 'Kórea', 'Norður-Kórea;', 'Suður-Kórea', 'Króatía', 'Kúba', 'Kúveit', 'Kýpur', - 'Laos', 'Lesótó', 'Lettland', 'Liechtenstein', 'Litháen', 'Líbanon', 'Líbería', 'Líbía', 'Lúxemborg', - 'Madagaskar', 'Makaó', 'Makedónía', 'Malasía', 'Malaví', 'Maldíveyjar', 'Malí', 'Malta', 'Marokkó', - 'Marshall-eyjar', 'Martiník', 'Mayotte', 'Máritanía', 'Máritíus', 'Mexíkó', 'Mið-Afríkulýðveldið', - 'Miðbaugs-Gínea', 'Míkrónesía', 'Mjanmar', 'Moldóva', 'Mongólía', 'Montserrat', 'Mónakó', 'Mósambík', - 'Namibía', 'Nárú', 'Nepal', 'Niue', 'Níger', 'Nígería', 'Níkaragva', 'Norður-Ãrland', 'Norður-Kórea', - 'Norður-Maríanaeyjar', 'Noregur', 'Norfolkeyja', 'Nýja-Kaledónía', 'Nýja-Sjáland', 'Óman', 'Pakistan', - 'Palá', 'Palestína', 'Panama', 'Papúa Nýja-Gínea', 'Paragvæ', 'Páfagarður', 'Perú', 'Pitcairn', 'Portúgal', - 'Pólland', 'Púertó Ríkó', 'Réunion', 'Rúanda', 'Rúmenía', 'Rússland', 'Salómonseyjar', 'Sambía', - 'Sameinuðu arabísku furstadæmin', 'Samóa', 'San Marínó', 'Sankti Helena', 'Sankti Kristófer og Nevis', - 'Sankti Lúsía', 'Sankti Pierre og Miquelon', 'Sankti Vinsent og Grenadíneyjar', 'Saó Tóme og Prinsípe', - 'Sádi-Arabía', 'Senegal', 'Serbía', 'Seychelles-eyjar', 'Simbabve', 'Singapúr', 'Síerra Leóne', 'Skotland', - 'Slóvakía', 'Slóvenía', 'Smáeyjar Bandaríkjanna', 'Sómalía', 'Spánn', 'Srí Lanka', 'Suður-Afríka', - 'Suður-Georgía og Suður-Sandvíkureyjar', 'Suður-Kórea', 'Suðurskautslandið', 'Súdan', 'Súrínam', 'Jan Mayen', - 'Svartfjallaland', 'Svasíland', 'Sviss', 'Svíþjóð', 'Sýrland', 'Tadsjikistan', 'Taíland', 'Taívan', 'Tansanía', - 'Tékkland', 'Tonga', 'Tógó', 'Tókelá', 'Trínidad og Tóbagó', 'Tsjad', 'Tsjetsjenía', 'Turks- og Caicos-eyjar', - 'Túnis', 'Túrkmenistan', 'Túvalú', 'Tyrkland', 'Ungverjaland', 'Úganda', 'Úkraína', 'Úrúgvæ', 'Úsbekistan', - 'Vanúatú', 'Venesúela', 'Vestur-Kongó', 'Vestur-Sahara', 'Víetnam', 'Wales', 'Wallis- og Fútúnaeyjar', 'Þýskaland' - ); - - /** - * @var array Icelandic cities. - */ - protected static $cityNames = array( - 'Reykjavík', 'Seltjarnarnes', 'Vogar', 'Kópavogur', 'Garðabær', 'Hafnarfjörður', 'Reykjanesbær', 'Grindavík', - 'Sandgerði', 'Garður', 'Reykjanesbær', 'Mosfellsbær', 'Akranes', 'Borgarnes', 'Reykholt', 'Stykkishólmur', - 'Flatey', 'Grundarfjörður', 'Ólafsvík', 'Snæfellsbær', 'Hellissandur', 'Búðardalur', 'Reykhólahreppur', - 'Ãsafjörður', 'Hnífsdalur', 'Bolungarvík', 'Súðavík', 'Flateyri', 'Suðureyri', 'Patreksfjörður', - 'Tálknafjörður', 'Bíldudalur', 'Þingeyri', 'Staður', 'Hólmavík', 'Drangsnes', 'Ãrneshreppur', 'Hvammstangi', - 'Blönduós', 'Skagaströnd', 'Sauðárkrókur', 'Varmahlíð', 'Hofsós', 'Fljót', 'Siglufjörður', 'Akureyri', - 'Grenivík', 'Grímsey', 'Dalvík', 'Ólafsfjörður', 'Hrísey', 'Húsavík', 'Fosshóll', 'Laugar', 'Mývatn', - 'Kópasker', 'Raufarhöfn', 'Þórshöfn', 'Bakkafjörður', 'Vopnafjörður', 'Egilsstaðir', 'Seyðisfjörður', - 'Mjóifjörður', 'Borgarfjörður', 'Reyðarfjörður', 'Eskifjörður', 'Neskaupstaður', 'Fáskrúðsfjörður', - 'Stöðvarfjörður', 'Breiðdalsvík', 'Djúpivogur', 'Höfn', 'Selfoss', 'Hveragerði', 'Þorlákshöfn', 'Ölfus', - 'Eyrarbakki', 'Stokkseyri', 'Laugarvatn', 'Flúðir', 'Hella', 'Hvolsvöllur', 'Vík', 'Kirkjubæjarklaustur', - 'Vestmannaeyjar' - ); - - /** - * @var array Street name suffix. - */ - protected static $streetSuffix = array( - 'ás', 'bakki', 'braut', 'bær', 'brún', 'berg', 'fold', 'gata', 'gróf', - 'garðar', 'höfði', 'heimar', 'hamar', 'hólar', 'háls', 'kvísl', 'lækur', - 'leiti', 'land', 'múli', 'nes', 'rimi', 'stígur', 'stræti', 'stekkur', - 'slóð', 'skógar', 'sel', 'teigur', 'tún', 'vangur', 'vegur', 'vogur', - 'vað' - ); - - /** - * @var array Street name prefix. - */ - protected static $streetPrefix = array( - 'Aðal', 'Austur', 'Bakka', 'Braga', 'Báru', 'Brunn', 'Fiski', 'Leifs', - 'Týs', 'Birki', 'Suður', 'Norður', 'Vestur', 'Austur', 'Sanda', 'Skógar', - 'Stór', 'Sunnu', 'Tungu', 'Tangar', 'Úlfarfells', 'Vagn', 'Vind', 'Ysti', - 'Þing', 'Hamra', 'Hóla', 'Kríu', 'Iðu', 'Spóa', 'Starra', 'Uglu', 'Vals' - ); - - /** - * @var Icelandic zip code. - **/ - protected static $postcode = array( - '%##' - ); - - /** - * @var array Icelandic regions. - */ - protected static $regionNames = array( - 'Höfuðborgarsvæðið', 'Norðurland', 'Suðurland', 'Vesturland', 'Vestfirðir', 'Austurland', 'Suðurnes' - ); - - /** - * @var array Icelandic building numbers. - */ - protected static $buildingNumber = array( - '%##', '%#', '%#', '%', '%', '%', '%?', '% ?', - ); - - /** - * @var array Icelandic city format. - */ - protected static $cityFormats = array( - '{{cityName}}', - ); - - /** - * @var array Icelandic street's name formats. - */ - protected static $streetNameFormats = array( - '{{streetPrefix}}{{streetSuffix}}', - '{{streetPrefix}}{{streetSuffix}}', - '{{firstNameMale}}{{streetSuffix}}', - '{{firstNameFemale}}{{streetSuffix}}' - ); - - /** - * @var array Icelandic street's address formats. - */ - protected static $streetAddressFormats = array( - '{{streetName}} {{buildingNumber}}' - ); - - /** - * @var array Icelandic address format. - */ - protected static $addressFormats = array( - "{{streetAddress}}\n{{postcode}} {{city}}", - ); - - /** - * Randomly return a real city name. - * - * @return string - */ - public static function cityName() - { - return static::randomElement(static::$cityNames); - } - - /** - * Randomly return a street prefix. - * - * @return string - */ - public static function streetPrefix() - { - return static::randomElement(static::$streetPrefix); - } - - /** - * Randomly return a building number. - * - * @return string - */ - public static function buildingNumber() - { - return static::toUpper(static::bothify(static::randomElement(static::$buildingNumber))); - } - - /** - * Randomly return a real region name. - * - * @return string - */ - public static function region() - { - return static::randomElement(static::$regionNames); - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/is_IS/Company.php b/vendor/fzaninotto/faker/src/Faker/Provider/is_IS/Company.php deleted file mode 100644 index 6b934519..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/is_IS/Company.php +++ /dev/null @@ -1,53 +0,0 @@ - - */ -class Company extends \Faker\Provider\Company -{ - /** - * @var array Danish company name formats. - */ - protected static $formats = array( - '{{lastName}} {{companySuffix}}', - '{{lastName}} {{companySuffix}}', - '{{lastName}} {{companySuffix}}', - '{{firstname}} {{lastName}} {{companySuffix}}', - '{{middleName}} {{companySuffix}}', - '{{middleName}} {{companySuffix}}', - '{{middleName}} {{companySuffix}}', - '{{firstname}} {{middleName}} {{companySuffix}}', - '{{lastName}} & {{lastName}} {{companySuffix}}', - '{{lastName}} og {{lastName}} {{companySuffix}}', - '{{lastName}} & {{lastName}} {{companySuffix}}', - '{{lastName}} og {{lastName}} {{companySuffix}}', - '{{middleName}} & {{middleName}} {{companySuffix}}', - '{{middleName}} og {{middleName}} {{companySuffix}}', - '{{middleName}} & {{lastName}}', - '{{middleName}} og {{lastName}}', - ); - - /** - * @var array Company suffixes. - */ - protected static $companySuffix = array('ehf.', 'hf.', 'sf.'); - - /** - * @link http://www.rsk.is/atvinnurekstur/virdisaukaskattur/ - * - * @var string VSK number format. - */ - protected static $vskFormat = '%####'; - - /** - * Generates a VSK number (5 digits). - * - * @return string - */ - public static function vsk() - { - return static::numerify(static::$vskFormat); - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/is_IS/Internet.php b/vendor/fzaninotto/faker/src/Faker/Provider/is_IS/Internet.php deleted file mode 100644 index a265da61..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/is_IS/Internet.php +++ /dev/null @@ -1,23 +0,0 @@ - - */ -class Internet extends \Faker\Provider\Internet -{ - /** - * @var array Some email domains in Denmark. - */ - protected static $freeEmailDomain = array( - 'gmail.com', 'yahoo.com', 'hotmail.com', 'visir.is', 'simnet.is', 'internet.is' - ); - - /** - * @var array Some TLD. - */ - protected static $tld = array( - 'com', 'com', 'com', 'net', 'is', 'is', 'is', - ); -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/is_IS/Payment.php b/vendor/fzaninotto/faker/src/Faker/Provider/is_IS/Payment.php deleted file mode 100644 index c119c382..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/is_IS/Payment.php +++ /dev/null @@ -1,19 +0,0 @@ - - */ -class Person extends \Faker\Provider\Person -{ - /** - * @var array Icelandic person name formats. - */ - protected static $maleNameFormats = array( - '{{firstNameMale}} {{lastNameMale}}', - '{{firstNameMale}} {{lastNameMale}}', - '{{firstNameMale}} {{middleName}} {{lastNameMale}}', - '{{firstNameMale}} {{middleName}} {{lastNameMale}}', - ); - - protected static $femaleNameFormats = array( - '{{firstNameFemale}} {{lastNameFemale}}', - '{{firstNameFemale}} {{lastNameFemale}}', - '{{firstNameFemale}} {{middleName}} {{lastNameFemale}}', - '{{firstNameFemale}} {{middleName}} {{lastNameFemale}}', - ); - - /** - * @var string Icelandic women names. - */ - protected static $firstNameFemale = array('Aagot', 'Abela', 'Abigael', 'Ada', 'Adda', 'Addý', 'Adela', 'Adelía', 'Adríana', 'Aðalbjörg', 'Aðalbjört', 'Aðalborg', 'Aðaldís', 'Aðalfríður', 'Aðalheiður', 'Aðalrós', 'Aðalsteina', 'Aðalsteinunn', 'Aðalveig', 'Agata', 'Agatha', 'Agða', 'Agla', 'Agnea', 'Agnes', 'Agneta', 'Alanta', 'Alba', 'Alberta', 'Albína', 'Alda', 'Aldís', 'Aldný', 'Aleta', 'Aletta', 'Alexa', 'Alexandra', 'Alexandría', 'Alexis', 'Alexía', 'Alfa', 'Alfífa', 'Alice', 'Alida', 'Alída', 'Alína', 'Alís', 'Alísa', 'Alla', 'Allý', 'Alma', 'Alrún', 'Alva', 'Alvilda', 'Amadea', 'Amal', 'Amalía', 'Amanda', 'Amelía', 'Amilía', 'Amíra', 'Amy', 'Amý', 'Analía', 'Anastasía', 'Andra', 'Andrá', 'Andrea', 'Anetta', 'Angela', 'Angelíka', 'Anika', 'Anita', 'Aníka', 'Anína', 'Aníta', 'Anja', 'Ann', 'Anna', 'Annabella', 'Annalísa', 'Anne', 'Annelí', 'Annetta', 'Anney', 'Annika', 'Annía', 'Anný', 'Antonía', 'Apríl', 'Ardís', 'Arey', 'Arinbjörg', 'Aris', 'Arisa', 'Aría', 'Aríanna', 'Aríella', 'Arín', 'Arína', 'Arís', 'Armenía', 'Arna', 'Arnbjörg', 'Arnborg', 'Arndís', 'Arney', 'Arnfinna', 'Arnfríður', 'Arngerður', 'Arngunnur', 'Arnheiður', 'Arnhildur', 'Arnika', 'Arnkatla', 'Arnlaug', 'Arnleif', 'Arnlín', 'Arnljót', 'Arnóra', 'Arnrós', 'Arnrún', 'Arnþóra', 'Arnþrúður', 'Asírí', 'Askja', 'Assa', 'Astrid', 'Atalía', 'Atena', 'Athena', 'Atla', 'Atlanta', 'Auðbjörg', 'Auðbjört', 'Auðdís', 'Auðlín', 'Auðna', 'Auðný', 'Auðrún', 'Auður', 'Aurora', 'Axelía', 'Axelma', 'Aþena', 'Ãgústa', 'Ãgústína', 'Ãlfdís', 'Ãlfey', 'Ãlfgerður', 'Ãlfheiður', 'Ãlfhildur', 'Ãlfrós', 'Ãlfrún', 'Ãlfsól', 'Ãrbjörg', 'Ãrbjört', 'Ãrdís', 'Ãrelía', 'Ãrlaug', 'Ãrmey', 'Ãrna', 'Ãrndís', 'Ãrney', 'Ãrnheiður', 'Ãrnína', 'Ãrný', 'Ãróra', 'Ãrsól', 'Ãrsæl', 'Ãrún', 'Ãrveig', 'Ãrvök', 'Ãrþóra', 'Ãsa', 'Ãsbjörg', 'Ãsborg', 'Ãsdís', 'Ãsfríður', 'Ãsgerður', 'Ãshildur', 'Ãskatla', 'Ãsla', 'Ãslaug', 'Ãsleif', 'Ãsný', 'Ãsrós', 'Ãsrún', 'Ãst', 'Ãsta', 'Ãstbjörg', 'Ãstbjört', 'Ãstdís', 'Ãstfríður', 'Ãstgerður', 'Ãstheiður', 'Ãsthildur', 'Ãstríður', 'Ãstrós', 'Ãstrún', 'Ãstveig', 'Ãstþóra', 'Ãstþrúður', 'Ãsvör', 'Baldey', 'Baldrún', 'Baldvina', 'Barbara', 'Barbára', 'Bassí', 'Bára', 'Bebba', 'Begga', 'Belinda', 'Bella', 'Benedikta', 'Bengta', 'Benidikta', 'Benía', 'Beníta', 'Benna', 'Benney', 'Benný', 'Benta', 'Bentey', 'Bentína', 'Bera', 'Bergdís', 'Bergey', 'Bergfríður', 'Bergheiður', 'Berghildur', 'Berglaug', 'Berglind', 'Berglín', 'Bergljót', 'Bergmannía', 'Bergný', 'Bergrán', 'Bergrín', 'Bergrós', 'Bergrún', 'Bergþóra', 'Berit', 'Bernódía', 'Berta', 'Bertha', 'Bessí', 'Bestla', 'Beta', 'Betanía', 'Betsý', 'Bettý', 'Bil', 'Birgit', 'Birgitta', 'Birna', 'Birta', 'Birtna', 'Bíbí', 'Bína', 'Bjargdís', 'Bjargey', 'Bjargheiður', 'Bjarghildur', 'Bjarglind', 'Bjarkey', 'Bjarklind', 'Bjarma', 'Bjarndís', 'Bjarney', 'Bjarnfríður', 'Bjarngerður', 'Bjarnheiður', 'Bjarnhildur', 'Bjarnlaug', 'Bjarnrún', 'Bjarnveig', 'Bjarný', 'Bjarnþóra', 'Bjarnþrúður', 'Bjartey', 'Bjartmey', 'Björg', 'Björgey', 'Björgheiður', 'Björghildur', 'Björk', 'Björney', 'Björnfríður', 'Björt', 'Bláey', 'Blíða', 'Blín', 'Blómey', 'Blædís', 'Blær', 'Bobba', 'Boga', 'Bogdís', 'Bogey', 'Bogga', 'Boghildur', 'Borg', 'Borgdís', 'Borghildur', 'Borgný', 'Borgrún', 'Borgþóra', 'Botnía', 'Bóel', 'Bót', 'Bóthildur', 'Braga', 'Braghildur', 'Branddís', 'Brá', 'Brák', 'Brigitta', 'Brimdís', 'Brimhildur', 'Brimrún', 'Brit', 'Britt', 'Britta', 'Bríana', 'Bríanna', 'Bríet', 'Bryndís', 'Brynfríður', 'Bryngerður', 'Brynheiður', 'Brynhildur', 'Brynja', 'Brynný', 'Burkney', 'Bylgja', 'Camilla', 'Carla', 'Carmen', 'Cecilia', 'Cecilía', 'Charlotta', 'Charlotte', 'Christina', 'Christine', 'Clara', 'Daðey', 'Daðína', 'Dagbjörg', 'Dagbjört', 'Dagfríður', 'Daggrós', 'Dagheiður', 'Dagmar', 'Dagmey', 'Dagný', 'Dagrún', 'Daldís', 'Daley', 'Dalía', 'Dalla', 'Dallilja', 'Dalrós', 'Dana', 'Daney', 'Danfríður', 'Danheiður', 'Danhildur', 'Danía', 'Daníela', 'Daníella', 'Dara', 'Debora', 'Debóra', 'Dendý', 'Didda', 'Dilja', 'Diljá', 'Dimmblá', 'Dimmey', 'Día', 'Díana', 'Díanna', 'Díma', 'Dís', 'Dísa', 'Dísella', 'Donna', 'Doris', 'Dorothea', 'Dóa', 'Dómhildur', 'Dóra', 'Dórey', 'Dóris', 'Dórothea', 'Dórótea', 'Dóróthea', 'Drauma', 'Draumey', 'Drífa', 'Droplaug', 'Drótt', 'Dröfn', 'Dúa', 'Dúfa', 'Dúna', 'Dýrborg', 'Dýrfinna', 'Dýrleif', 'Dýrley', 'Dýrunn', 'Dæja', 'Dögg', 'Dögun', 'Ebba', 'Ebonney', 'Edda', 'Edel', 'Edil', 'Edit', 'Edith', 'Eðna', 'Efemía', 'Egedía', 'Eggrún', 'Egla', 'Eiðný', 'Eiðunn', 'Eik', 'Einbjörg', 'Eindís', 'Einey', 'Einfríður', 'Einhildur', 'Einína', 'Einrún', 'Eir', 'Eirdís', 'Eirfinna', 'Eiríka', 'Eirný', 'Eirún', 'Elba', 'Eldbjörg', 'Eldey', 'Eldlilja', 'Eldrún', 'Eleina', 'Elektra', 'Elena', 'Elenborg', 'Elfa', 'Elfur', 'Elina', 'Elinborg', 'Elisabeth', 'Elía', 'Elíana', 'Elín', 'Elína', 'Elíná', 'Elínbet', 'Elínbjörg', 'Elínbjört', 'Elínborg', 'Elíndís', 'Elíngunnur', 'Elínheiður', 'Elínrós', 'Elírós', 'Elísa', 'Elísabet', 'Elísabeth', 'Elka', 'Ella', 'Ellen', 'Elley', 'Ellisif', 'Ellín', 'Elly', 'Ellý', 'Elma', 'Elna', 'Elsa', 'Elsabet', 'Elsie', 'Elsí', 'Elsý', 'Elva', 'Elvi', 'Elvíra', 'Elvý', 'Embla', 'Emelía', 'Emelíana', 'Emelína', 'Emeralda', 'Emilía', 'Emilíana', 'Emilíanna', 'Emilý', 'Emma', 'Emmý', 'Emý', 'Enea', 'Eneka', 'Engilbjört', 'Engilráð', 'Engilrós', 'Engla', 'Enika', 'Enja', 'Enóla', 'Eres', 'Erika', 'Erin', 'Erla', 'Erlen', 'Erlín', 'Erna', 'Esja', 'Esmeralda', 'Ester', 'Esther', 'Estiva', 'Ethel', 'Etna', 'Eufemía', 'Eva', 'Evelyn', 'Evey', 'Evfemía', 'Evgenía', 'Evíta', 'Evlalía', 'Ey', 'Eybjörg', 'Eybjört', 'Eydís', 'Eyfríður', 'Eygerður', 'Eygló', 'Eyhildur', 'Eyja', 'Eyjalín', 'Eyleif', 'Eylín', 'Eyrós', 'Eyrún', 'Eyveig', 'Eyvör', 'Eyþóra', 'Eyþrúður', 'Fanndís', 'Fanney', 'Fannlaug', 'Fanny', 'Fanný', 'Febrún', 'Fema', 'Filipía', 'Filippa', 'Filippía', 'Finna', 'Finnbjörg', 'Finnbjörk', 'Finnboga', 'Finnborg', 'Finndís', 'Finney', 'Finnfríður', 'Finnlaug', 'Finnrós', 'Fía', 'Fídes', 'Fífa', 'Fjalldís', 'Fjóla', 'Flóra', 'Folda', 'Fransiska', 'Franziska', 'Frán', 'Fregn', 'Freydís', 'Freygerður', 'Freyja', 'Freylaug', 'Freyleif', 'Friðbjörg', 'Friðbjört', 'Friðborg', 'Friðdís', 'Friðdóra', 'Friðey', 'Friðfinna', 'Friðgerður', 'Friðjóna', 'Friðlaug', 'Friðleif', 'Friðlín', 'Friðmey', 'Friðný', 'Friðrika', 'Friðrikka', 'Friðrós', 'Friðrún', 'Friðsemd', 'Friðveig', 'Friðþóra', 'Frigg', 'Fríða', 'Fríður', 'Frostrós', 'Fróðný', 'Fura', 'Fönn', 'Gabríela', 'Gabríella', 'Gauja', 'Gauthildur', 'Gefjun', 'Gefn', 'Geira', 'Geirbjörg', 'Geirdís', 'Geirfinna', 'Geirfríður', 'Geirhildur', 'Geirlaug', 'Geirlöð', 'Geirný', 'Geirríður', 'Geirrún', 'Geirþrúður', 'Georgía', 'Gerða', 'Gerður', 'Gestheiður', 'Gestný', 'Gestrún', 'Gillý', 'Gilslaug', 'Gissunn', 'Gía', 'Gígja', 'Gísela', 'Gísla', 'Gísley', 'Gíslína', 'Gíslný', 'Gíslrún', 'Gíslunn', 'Gíta', 'Gjaflaug', 'Gloría', 'Gló', 'Glóa', 'Glóbjört', 'Glódís', 'Glóð', 'Glóey', 'Gná', 'Góa', 'Gógó', 'Grein', 'Gret', 'Greta', 'Grélöð', 'Grét', 'Gréta', 'Gríma', 'Grímey', 'Grímheiður', 'Grímhildur', 'Gróa', 'Guðbjörg', 'Guðbjört', 'Guðborg', 'Guðdís', 'Guðfinna', 'Guðfríður', 'Guðjóna', 'Guðlaug', 'Guðleif', 'Guðlín', 'Guðmey', 'Guðmunda', 'Guðmundína', 'Guðný', 'Guðríður', 'Guðrún', 'Guðsteina', 'Guðveig', 'Gullbrá', 'Gullveig', 'Gullý', 'Gumma', 'Gunnbjörg', 'Gunnbjört', 'Gunnborg', 'Gunndís', 'Gunndóra', 'Gunnella', 'Gunnfinna', 'Gunnfríður', 'Gunnharða', 'Gunnheiður', 'Gunnhildur', 'Gunnjóna', 'Gunnlaug', 'Gunnleif', 'Gunnlöð', 'Gunnrún', 'Gunnur', 'Gunnveig', 'Gunnvör', 'Gunný', 'Gunnþóra', 'Gunnþórunn', 'Gurrý', 'Gúa', 'Gyða', 'Gyðja', 'Gyðríður', 'Gytta', 'Gæfa', 'Gæflaug', 'Hadda', 'Haddý', 'Hafbjörg', 'Hafborg', 'Hafdís', 'Hafey', 'Hafliða', 'Haflína', 'Hafný', 'Hafrós', 'Hafrún', 'Hafsteina', 'Hafþóra', 'Halla', 'Hallbera', 'Hallbjörg', 'Hallborg', 'Halldís', 'Halldóra', 'Halley', 'Hallfríður', 'Hallgerður', 'Hallgunnur', 'Hallkatla', 'Hallný', 'Hallrún', 'Hallveig', 'Hallvör', 'Hanna', 'Hanney', 'Hansa', 'Hansína', 'Harpa', 'Hauður', 'Hákonía', 'Heba', 'Hedda', 'Hedí', 'Heiða', 'Heiðbjörg', 'Heiðbjörk', 'Heiðbjört', 'Heiðbrá', 'Heiðdís', 'Heiðlaug', 'Heiðlóa', 'Heiðný', 'Heiðrós', 'Heiðrún', 'Heiður', 'Heiðveig', 'Hekla', 'Helen', 'Helena', 'Helga', 'Hella', 'Helma', 'Hendrikka', 'Henný', 'Henrietta', 'Henrika', 'Henríetta', 'Hera', 'Herbjörg', 'Herbjört', 'Herborg', 'Herdís', 'Herfríður', 'Hergerður', 'Herlaug', 'Hermína', 'Hersilía', 'Herta', 'Hertha', 'Hervör', 'Herþrúður', 'Hilda', 'Hildegard', 'Hildibjörg', 'Hildigerður', 'Hildigunnur', 'Hildiríður', 'Hildisif', 'Hildur', 'Hilma', 'Himinbjörg', 'Hind', 'Hinrika', 'Hinrikka', 'Hjalta', 'Hjaltey', 'Hjálmdís', 'Hjálmey', 'Hjálmfríður', 'Hjálmgerður', 'Hjálmrós', 'Hjálmrún', 'Hjálmveig', 'Hjördís', 'Hjörfríður', 'Hjörleif', 'Hjörný', 'Hjörtfríður', 'Hlaðgerður', 'Hlédís', 'Hlíf', 'Hlín', 'Hlökk', 'Hólmbjörg', 'Hólmdís', 'Hólmfríður', 'Hrafna', 'Hrafnborg', 'Hrafndís', 'Hrafney', 'Hrafngerður', 'Hrafnheiður', 'Hrafnhildur', 'Hrafnkatla', 'Hrafnlaug', 'Hrafntinna', 'Hraundís', 'Hrefna', 'Hreindís', 'Hróðný', 'Hrólfdís', 'Hrund', 'Hrönn', 'Hugbjörg', 'Hugbjört', 'Hugborg', 'Hugdís', 'Hugljúf', 'Hugrún', 'Huld', 'Hulda', 'Huldís', 'Huldrún', 'Húnbjörg', 'Húndís', 'Húngerður', 'Hvönn', 'Hödd', 'Högna', 'Hörn', 'Ida', 'Idda', 'Iða', 'Iðunn', 'Ilmur', 'Immý', 'Ina', 'Inda', 'India', 'Indiana', 'Indía', 'Indíana', 'Indíra', 'Indra', 'Inga', 'Ingdís', 'Ingeborg', 'Inger', 'Ingey', 'Ingheiður', 'Inghildur', 'Ingibjörg', 'Ingibjört', 'Ingiborg', 'Ingifinna', 'Ingifríður', 'Ingigerður', 'Ingilaug', 'Ingileif', 'Ingilín', 'Ingimaría', 'Ingimunda', 'Ingiríður', 'Ingirós', 'Ingisól', 'Ingiveig', 'Ingrid', 'Ingrún', 'Ingunn', 'Ingveldur', 'Inna', 'Irena', 'Irene', 'Irja', 'Irma', 'Irmý', 'Irpa', 'Isabel', 'Isabella', 'Ãda', 'Ãma', 'Ãna', 'Ãr', 'Ãren', 'Ãrena', 'Ãris', 'Ãrunn', 'Ãsabel', 'Ãsabella', 'Ãsadóra', 'Ãsafold', 'Ãsalind', 'Ãsbjörg', 'Ãsdís', 'Ãsey', 'Ãsfold', 'Ãsgerður', 'Ãshildur', 'Ãsis', 'Ãslaug', 'Ãsleif', 'Ãsmey', 'Ãsold', 'Ãsól', 'Ãsrún', 'Ãssól', 'Ãsveig', 'Ãunn', 'Ãva', 'Jakobína', 'Jana', 'Jane', 'Janetta', 'Jannika', 'Jara', 'Jarún', 'Jarþrúður', 'Jasmín', 'Járnbrá', 'Járngerður', 'Jenetta', 'Jenna', 'Jenný', 'Jensína', 'Jessý', 'Jovina', 'Jóa', 'Jóanna', 'Jódís', 'Jófríður', 'Jóhanna', 'Jólín', 'Jóna', 'Jónanna', 'Jónasína', 'Jónbjörg', 'Jónbjört', 'Jóndís', 'Jóndóra', 'Jóney', 'Jónfríður', 'Jóngerð', 'Jónheiður', 'Jónhildur', 'Jóninna', 'Jónída', 'Jónína', 'Jónný', 'Jóný', 'Jóra', 'Jóríður', 'Jórlaug', 'Jórunn', 'Jósebína', 'Jósefín', 'Jósefína', 'Judith', 'Júdea', 'Júdit', 'Júlía', 'Júlíana', 'Júlíanna', 'Júlíetta', 'Júlírós', 'Júnía', 'Júníana', 'Jökla', 'Jökulrós', 'Jörgína', 'Kaðlín', 'Kaja', 'Kalla', 'Kamilla', 'Kamí', 'Kamma', 'Kapitola', 'Kapítóla', 'Kara', 'Karen', 'Karin', 'Karitas', 'Karí', 'Karín', 'Karína', 'Karítas', 'Karla', 'Karlinna', 'Karlína', 'Karlotta', 'Karolína', 'Karó', 'Karólín', 'Karólína', 'Kassandra', 'Kata', 'Katarína', 'Katerína', 'Katharina', 'Kathinka', 'Katinka', 'Katla', 'Katrín', 'Katrína', 'Katý', 'Kára', 'Kellý', 'Kendra', 'Ketilbjörg', 'Ketilfríður', 'Ketilríður', 'Kiddý', 'Kira', 'Kirsten', 'Kirstín', 'Kittý', 'Kjalvör', 'Klara', 'Kládía', 'Klementína', 'Kleópatra', 'Kolbjörg', 'Kolbrá', 'Kolbrún', 'Koldís', 'Kolfinna', 'Kolfreyja', 'Kolgríma', 'Kolka', 'Konkordía', 'Konný', 'Korka', 'Kormlöð', 'Kornelía', 'Kókó', 'Krista', 'Kristbjörg', 'Kristborg', 'Kristel', 'Kristensa', 'Kristey', 'Kristfríður', 'Kristgerður', 'Kristin', 'Kristine', 'Kristíana', 'Kristíanna', 'Kristín', 'Kristína', 'Kristjana', 'Kristjóna', 'Kristlaug', 'Kristlind', 'Kristlín', 'Kristný', 'Kristólína', 'Kristrós', 'Kristrún', 'Kristveig', 'Kristvina', 'Kristþóra', 'Kría', 'Kæja', 'Laila', 'Laíla', 'Lana', 'Lara', 'Laufey', 'Laufheiður', 'Laufhildur', 'Lauga', 'Laugey', 'Laugheiður', 'Lára', 'Lárensína', 'Láretta', 'Lárey', 'Lea', 'Leikný', 'Leila', 'Lena', 'Leonóra', 'Leóna', 'Leónóra', 'Lilja', 'Liljá', 'Liljurós', 'Lill', 'Lilla', 'Lillian', 'Lillý', 'Lily', 'Lilý', 'Lind', 'Linda', 'Linddís', 'Lingný', 'Lisbeth', 'Listalín', 'Liv', 'Líba', 'Líf', 'Lífdís', 'Lín', 'Lína', 'Línbjörg', 'Líndís', 'Líneik', 'Líney', 'Línhildur', 'Lísa', 'Lísabet', 'Lísandra', 'Lísbet', 'Lísebet', 'Lív', 'Ljósbjörg', 'Ljósbrá', 'Ljótunn', 'Lofn', 'Loftveig', 'Logey', 'Lokbrá', 'Lotta', 'Louisa', 'Lousie', 'Lovísa', 'Lóa', 'Lóreley', 'Lukka', 'Lúcía', 'Lúðvíka', 'Lúísa', 'Lúna', 'Lúsinda', 'Lúsía', 'Lúvísa', 'Lydia', 'Lydía', 'Lyngheiður', 'Lýdía', 'Læla', 'Maddý', 'Magda', 'Magdalena', 'Magðalena', 'Magga', 'Maggey', 'Maggý', 'Magna', 'Magndís', 'Magnea', 'Magnes', 'Magney', 'Magnfríður', 'Magnheiður', 'Magnhildur', 'Magnúsína', 'Magný', 'Magnþóra', 'Maía', 'Maídís', 'Maísól', 'Maj', 'Maja', 'Malen', 'Malena', 'Malía', 'Malín', 'Malla', 'Manda', 'Manúela', 'Mara', 'Mardís', 'Marela', 'Marella', 'Maren', 'Marey', 'Marfríður', 'Margit', 'Margot', 'Margret', 'Margrét', 'Margrjet', 'Margunnur', 'Marheiður', 'Maria', 'Marie', 'Marikó', 'Marinella', 'Marit', 'Marí', 'María', 'Maríam', 'Marían', 'Maríana', 'Maríanna', 'Marín', 'Marína', 'Marínella', 'Maríon', 'Marísa', 'Marísól', 'Marít', 'Maríuerla', 'Marja', 'Markrún', 'Marlaug', 'Marlena', 'Marlín', 'Marlís', 'Marólína', 'Marsa', 'Marselía', 'Marselína', 'Marsibil', 'Marsilía', 'Marsý', 'Marta', 'Martha', 'Martína', 'Mary', 'Marý', 'Matta', 'Mattea', 'Matthea', 'Matthilda', 'Matthildur', 'Matthía', 'Mattíana', 'Mattína', 'Mattý', 'Maxima', 'Mábil', 'Málfríður', 'Málhildur', 'Málmfríður', 'Mánadís', 'Máney', 'Mára', 'Meda', 'Mekkin', 'Mekkín', 'Melinda', 'Melissa', 'Melkorka', 'Melrós', 'Messíana', 'Metta', 'Mey', 'Mikaela', 'Mikaelína', 'Mikkalína', 'Milda', 'Mildríður', 'Milla', 'Millý', 'Minerva', 'Minna', 'Minney', 'Minný', 'Miriam', 'Mirja', 'Mirjam', 'Mirra', 'Mist', 'Mía', 'Mínerva', 'Míra', 'Míranda', 'Mítra', 'Mjaðveig', 'Mjalldís', 'Mjallhvít', 'Mjöll', 'Mona', 'Monika', 'Módís', 'Móeiður', 'Móey', 'Móheiður', 'Móna', 'Mónika', 'Móníka', 'Munda', 'Mundheiður', 'Mundhildur', 'Mundína', 'Myrra', 'Mýr', 'Mýra', 'Mýrún', 'Mörk', 'Nadia', 'Nadía', 'Nadja', 'Nana', 'Nanna', 'Nanný', 'Nansý', 'Naomí', 'Naómí', 'Natalie', 'Natalía', 'Náttsól', 'Nella', 'Nellý', 'Nenna', 'Nicole', 'Niðbjörg', 'Nikíta', 'Nikoletta', 'Nikólína', 'Ninja', 'Ninna', 'Nína', 'Níní', 'Njála', 'Njóla', 'Norma', 'Nóa', 'Nóra', 'Nótt', 'Nýbjörg', 'Odda', 'Oddbjörg', 'Oddfreyja', 'Oddfríður', 'Oddgerður', 'Oddhildur', 'Oddlaug', 'Oddleif', 'Oddný', 'Oddrún', 'Oddveig', 'Oddvör', 'Oktavía', 'Októvía', 'Olga', 'Ollý', 'Ora', 'Orka', 'Ormheiður', 'Ormhildur', 'Otkatla', 'Otta', 'Óda', 'Ófelía', 'Óla', 'Ólafía', 'Ólafína', 'Ólavía', 'Ólivía', 'Ólína', 'Ólöf', 'Ósa', 'Ósk', 'Ótta', 'Pamela', 'París', 'Patricia', 'Patrisía', 'Pála', 'Páldís', 'Páley', 'Pálfríður', 'Pálhanna', 'Pálheiður', 'Pálhildur', 'Pálín', 'Pálína', 'Pálmey', 'Pálmfríður', 'Pálrún', 'Perla', 'Peta', 'Petra', 'Petrea', 'Petrína', 'Petronella', 'Petrónella', 'Petrós', 'Petrún', 'Petrúnella', 'Pétrína', 'Pétrún', 'Pía', 'Polly', 'Pollý', 'Pría', 'Rafney', 'Rafnhildur', 'Ragna', 'Ragnbjörg', 'Ragney', 'Ragnfríður', 'Ragnheiður', 'Ragnhildur', 'Rakel', 'Ramóna', 'Randalín', 'Randíður', 'Randý', 'Ranka', 'Rannva', 'Rannveig', 'Ráðhildur', 'Rán', 'Rebekka', 'Reginbjörg', 'Regína', 'Rein', 'Renata', 'Reyn', 'Reyndís', 'Reynheiður', 'Reynhildur', 'Rikka', 'Ripley', 'Rita', 'Ríkey', 'Rín', 'Ríta', 'Ronja', 'Rorí', 'Roxanna', 'Róberta', 'Róbjörg', 'Rós', 'Rósa', 'Rósalind', 'Rósanna', 'Rósbjörg', 'Rósborg', 'Róselía', 'Rósey', 'Rósfríður', 'Róshildur', 'Rósinkara', 'Rósinkransa', 'Róska', 'Róslaug', 'Róslind', 'Róslinda', 'Róslín', 'Rósmary', 'Rósmarý', 'Rósmunda', 'Rósný', 'Runný', 'Rut', 'Ruth', 'Rúbý', 'Rún', 'Rúna', 'Rúndís', 'Rúnhildur', 'Rúrí', 'Röfn', 'Rögn', 'Röskva', 'Sabína', 'Sabrína', 'Saga', 'Salbjörg', 'Saldís', 'Salgerður', 'Salín', 'Salína', 'Salka', 'Salma', 'Salný', 'Salome', 'Salóme', 'Salvör', 'Sandra', 'Sanna', 'Santía', 'Sara', 'Sarína', 'Sefanía', 'Selja', 'Selka', 'Selma', 'Senía', 'Septíma', 'Sera', 'Serena', 'Seselía', 'Sesilía', 'Sesselía', 'Sesselja', 'Sessilía', 'Sif', 'Sigdís', 'Sigdóra', 'Sigfríð', 'Sigfríður', 'Sigga', 'Siggerður', 'Sigmunda', 'Signa', 'Signhildur', 'Signý', 'Sigríður', 'Sigrún', 'Sigurást', 'Sigurásta', 'Sigurbára', 'Sigurbirna', 'Sigurbjörg', 'Sigurbjört', 'Sigurborg', 'Sigurdís', 'Sigurdóra', 'Sigurdríf', 'Sigurdrífa', 'Sigurða', 'Sigurey', 'Sigurfinna', 'Sigurfljóð', 'Sigurgeira', 'Sigurhanna', 'Sigurhelga', 'Sigurhildur', 'Sigurjóna', 'Sigurlaug', 'Sigurleif', 'Sigurlilja', 'Sigurlinn', 'Sigurlín', 'Sigurlína', 'Sigurmunda', 'Sigurnanna', 'Sigurósk', 'Sigurrós', 'Sigursteina', 'Sigurunn', 'Sigurveig', 'Sigurvina', 'Sigurþóra', 'Sigyn', 'Sigþóra', 'Sigþrúður', 'Silfa', 'Silfá', 'Silfrún', 'Silja', 'Silka', 'Silla', 'Silva', 'Silvana', 'Silvía', 'Sirra', 'Sirrý', 'Siv', 'Sía', 'Símonía', 'Sísí', 'Síta', 'Sjöfn', 'Skarpheiður', 'Skugga', 'Skuld', 'Skúla', 'Skúlína', 'Snjáfríður', 'Snjáka', 'Snjófríður', 'Snjólaug', 'Snorra', 'Snót', 'Snæbjörg', 'Snæbjört', 'Snæborg', 'Snæbrá', 'Snædís', 'Snæfríður', 'Snælaug', 'Snærós', 'Snærún', 'Soffía', 'Sofie', 'Sofía', 'Solveig', 'Sonja', 'Sonný', 'Sophia', 'Sophie', 'Sól', 'Sóla', 'Sólbjörg', 'Sólbjört', 'Sólborg', 'Sólbrá', 'Sólbrún', 'Sóldís', 'Sóldögg', 'Sóley', 'Sólfríður', 'Sólgerður', 'Sólhildur', 'Sólín', 'Sólkatla', 'Sóllilja', 'Sólný', 'Sólrós', 'Sólrún', 'Sólveig', 'Sólvör', 'Sónata', 'Stefana', 'Stefanía', 'Stefánný', 'Steina', 'Steinbjörg', 'Steinborg', 'Steindís', 'Steindóra', 'Steiney', 'Steinfríður', 'Steingerður', 'Steinhildur', 'Steinlaug', 'Steinrós', 'Steinrún', 'Steinunn', 'Steinvör', 'Steinþóra', 'Stella', 'Stígheiður', 'Stígrún', 'Stína', 'Stjarna', 'Styrgerður', 'Sumarlína', 'Sumarrós', 'Sunna', 'Sunnefa', 'Sunneva', 'Sunniva', 'Sunníva', 'Susan', 'Súla', 'Súsan', 'Súsanna', 'Svafa', 'Svala', 'Svalrún', 'Svana', 'Svanbjörg', 'Svanbjört', 'Svanborg', 'Svandís', 'Svaney', 'Svanfríður', 'Svanheiður', 'Svanhildur', 'Svanhvít', 'Svanlaug', 'Svanrós', 'Svanþrúður', 'Svava', 'Svea', 'Sveina', 'Sveinbjörg', 'Sveinborg', 'Sveindís', 'Sveiney', 'Sveinfríður', 'Sveingerður', 'Sveinhildur', 'Sveinlaug', 'Sveinrós', 'Sveinrún', 'Sveinsína', 'Sveinveig', 'Sylgja', 'Sylva', 'Sylvía', 'Sæbjörg', 'Sæbjört', 'Sæborg', 'Sædís', 'Sæfinna', 'Sæfríður', 'Sæhildur', 'Sælaug', 'Sæmunda', 'Sæný', 'Særós', 'Særún', 'Sæsól', 'Sæunn', 'Sævör', 'Sölva', 'Sölvey', 'Sölvína', 'Tala', 'Talía', 'Tamar', 'Tamara', 'Tanía', 'Tanja', 'Tanya', 'Tanya', 'Tara', 'Tea', 'Teitný', 'Tekla', 'Telma', 'Tera', 'Teresa', 'Teresía', 'Thea', 'Thelma', 'Theodóra', 'Theódóra', 'Theresa', 'Tindra', 'Tinna', 'Tirsa', 'Tía', 'Tíbrá', 'Tína', 'Todda', 'Torbjörg', 'Torfey', 'Torfheiður', 'Torfhildur', 'Tóbý', 'Tóka', 'Tóta', 'Tristana', 'Trú', 'Tryggva', 'Tryggvína', 'Týra', 'Ugla', 'Una', 'Undína', 'Unna', 'Unnbjörg', 'Unndís', 'Unnur', 'Urður', 'Úa', 'Úlfa', 'Úlfdís', 'Úlfey', 'Úlfheiður', 'Úlfhildur', 'Úlfrún', 'Úlla', 'Úna', 'Úndína', 'Úranía', 'Úrsúla', 'Vagna', 'Vagnbjörg', 'Vagnfríður', 'Vaka', 'Vala', 'Valbjörg', 'Valbjörk', 'Valbjört', 'Valborg', 'Valdheiður', 'Valdís', 'Valentína', 'Valería', 'Valey', 'Valfríður', 'Valgerða', 'Valgerður', 'Valhildur', 'Valka', 'Vallý', 'Valný', 'Valrós', 'Valrún', 'Valva', 'Valý', 'Valþrúður', 'Vanda', 'Vár', 'Veig', 'Veiga', 'Venus', 'Vera', 'Veronika', 'Verónika', 'Veróníka', 'Vetrarrós', 'Vébjörg', 'Védís', 'Végerður', 'Vélaug', 'Véný', 'Vibeka', 'Victoría', 'Viðja', 'Vigdís', 'Vigný', 'Viktoria', 'Viktoría', 'Vilborg', 'Vildís', 'Vilfríður', 'Vilgerður', 'Vilhelmína', 'Villa', 'Villimey', 'Vilma', 'Vilný', 'Vinbjörg', 'Vinný', 'Vinsý', 'Virginía', 'Víbekka', 'Víf', 'Vígdögg', 'Víggunnur', 'Víóla', 'Víóletta', 'Vísa', 'Von', 'Von', 'Voney', 'Vordís', 'Ylfa', 'Ylfur', 'Ylja', 'Ylva', 'Ynja', 'Yrja', 'Yrsa', 'Ãja', 'Ãma', 'Ãr', 'Ãrr', 'Þalía', 'Þeba', 'Þeódís', 'Þeódóra', 'Þjóðbjörg', 'Þjóðhildur', 'Þoka', 'Þorbjörg', 'Þorfinna', 'Þorgerður', 'Þorgríma', 'Þorkatla', 'Þorlaug', 'Þorleif', 'Þorsteina', 'Þorstína', 'Þóra', 'Þóranna', 'Þórarna', 'Þórbjörg', 'Þórdís', 'Þórða', 'Þórelfa', 'Þórelfur', 'Þórey', 'Þórfríður', 'Þórgunna', 'Þórgunnur', 'Þórhalla', 'Þórhanna', 'Þórheiður', 'Þórhildur', 'Þórkatla', 'Þórlaug', 'Þórleif', 'Þórný', 'Þórodda', 'Þórsteina', 'Þórsteinunn', 'Þórstína', 'Þórunn', 'Þórveig', 'Þórvör', 'Þrá', 'Þrúða', 'Þrúður', 'Þula', 'Þura', 'Þurí', 'Þuríður', 'Þurý', 'Þúfa', 'Þyri', 'Þyrí', 'Þöll', 'Ægileif', 'Æsa', 'Æsgerður', 'Ögmunda', 'Ögn', 'Ölrún', 'Ölveig', 'Örbrún', 'Örk', 'Ösp'); - - /** - * @var string Icelandic men names. - */ - protected static $firstNameMale = array('Aage', 'Abel', 'Abraham', 'Adam', 'Addi', 'Adel', 'Adíel', 'Adólf', 'Adrían', 'Adríel', 'Aðalberg', 'Aðalbergur', 'Aðalbert', 'Aðalbjörn', 'Aðalborgar', 'Aðalgeir', 'Aðalmundur', 'Aðalráður', 'Aðalsteinn', 'Aðólf', 'Agnar', 'Agni', 'Albert', 'Aldar', 'Alex', 'Alexander', 'Alexíus', 'Alfons', 'Alfred', 'Alfreð', 'Ali', 'Allan', 'Alli', 'Almar', 'Alrekur', 'Alvar', 'Alvin', 'Amír', 'Amos', 'Anders', 'Andreas', 'André', 'Andrés', 'Andri', 'Anes', 'Anfinn', 'Angantýr', 'Angi', 'Annar', 'Annarr', 'Annas', 'Annel', 'Annes', 'Anthony', 'Anton', 'Antoníus', 'Aran', 'Arent', 'Ares', 'Ari', 'Arilíus', 'Arinbjörn', 'Aríel', 'Aríus', 'Arnald', 'Arnaldur', 'Arnar', 'Arnberg', 'Arnbergur', 'Arnbjörn', 'Arndór', 'Arnes', 'Arnfinnur', 'Arnfreyr', 'Arngeir', 'Arngils', 'Arngrímur', 'Arnkell', 'Arnlaugur', 'Arnleifur', 'Arnljótur', 'Arnmóður', 'Arnmundur', 'Arnoddur', 'Arnold', 'Arnór', 'Arnsteinn', 'Arnúlfur', 'Arnviður', 'Arnþór', 'Aron', 'Arthur', 'Arthúr', 'Artúr', 'Asael', 'Askur', 'Aspar', 'Atlas', 'Atli', 'Auðbergur', 'Auðbert', 'Auðbjörn', 'Auðgeir', 'Auðkell', 'Auðmundur', 'Auðólfur', 'Auðun', 'Auðunn', 'Austar', 'Austmann', 'Austmar', 'Austri', 'Axel', 'Ãgúst', 'Ãki', 'Ãlfar', 'Ãlfgeir', 'Ãlfgrímur', 'Ãlfur', 'Ãlfþór', 'Ãmundi', 'Ãrbjartur', 'Ãrbjörn', 'Ãrelíus', 'Ãrgeir', 'Ãrgils', 'Ãrmann', 'Ãrni', 'Ãrsæll', 'Ãs', 'Ãsberg', 'Ãsbergur', 'Ãsbjörn', 'Ãsgautur', 'Ãsgeir', 'Ãsgils', 'Ãsgrímur', 'Ãsi', 'Ãskell', 'Ãslaugur', 'Ãslákur', 'Ãsmar', 'Ãsmundur', 'Ãsólfur', 'Ãsröður', 'Ãstbjörn', 'Ãstgeir', 'Ãstmar', 'Ãstmundur', 'Ãstráður', 'Ãstríkur', 'Ãstvald', 'Ãstvaldur', 'Ãstvar', 'Ãstvin', 'Ãstþór', 'Ãsvaldur', 'Ãsvarður', 'Ãsþór', 'Baldur', 'Baldvin', 'Baldwin', 'Baltasar', 'Bambi', 'Barði', 'Barri', 'Bassi', 'Bastían', 'Baugur', 'Bárður', 'Beinir', 'Beinteinn', 'Beitir', 'Bekan', 'Benedikt', 'Benidikt', 'Benjamín', 'Benoný', 'Benóní', 'Benóný', 'Bent', 'Berent', 'Berg', 'Bergfinnur', 'Berghreinn', 'Bergjón', 'Bergmann', 'Bergmar', 'Bergmundur', 'Bergsteinn', 'Bergsveinn', 'Bergur', 'Bergvin', 'Bergþór', 'Bernhard', 'Bernharð', 'Bernharður', 'Berni', 'Bernódus', 'Bersi', 'Bertel', 'Bertram', 'Bessi', 'Betúel', 'Bill', 'Birgir', 'Birkir', 'Birnir', 'Birtingur', 'Birtir', 'Bjargar', 'Bjargmundur', 'Bjargþór', 'Bjarkan', 'Bjarkar', 'Bjarki', 'Bjarmar', 'Bjarmi', 'Bjarnar', 'Bjarnfinnur', 'Bjarnfreður', 'Bjarnharður', 'Bjarnhéðinn', 'Bjarni', 'Bjarnlaugur', 'Bjarnleifur', 'Bjarnólfur', 'Bjarnsteinn', 'Bjarnþór', 'Bjartmann', 'Bjartmar', 'Bjartur', 'Bjartþór', 'Bjólan', 'Bjólfur', 'Björgmundur', 'Björgólfur', 'Björgúlfur', 'Björgvin', 'Björn', 'Björnólfur', 'Blængur', 'Blær', 'Blævar', 'Boði', 'Bogi', 'Bolli', 'Borgar', 'Borgúlfur', 'Borgþór', 'Bóas', 'Bói', 'Bótólfur', 'Bragi', 'Brandur', 'Breki', 'Bresi', 'Brestir', 'Brimar', 'Brimi', 'Brimir', 'Brími', 'Brjánn', 'Broddi', 'Bruno', 'Bryngeir', 'Brynjar', 'Brynjólfur', 'Brynjúlfur', 'Brynleifur', 'Brynsteinn', 'Bryntýr', 'Brynþór', 'Burkni', 'Búi', 'Búri', 'Bæring', 'Bæringur', 'Bæron', 'Böðvar', 'Börkur', 'Carl', 'Cecil', 'Christian', 'Christopher', 'Cýrus', 'Daði', 'Dagbjartur', 'Dagfari', 'Dagfinnur', 'Daggeir', 'Dagmann', 'Dagnýr', 'Dagur', 'Dagþór', 'Dalbert', 'Dalli', 'Dalmann', 'Dalmar', 'Dalvin', 'Damjan', 'Dan', 'Danelíus', 'Daniel', 'Danival', 'Daníel', 'Daníval', 'Dante', 'Daríus', 'Darri', 'Davíð', 'Demus', 'Deníel', 'Dennis', 'Diðrik', 'Díómedes', 'Dofri', 'Dolli', 'Dominik', 'Dómald', 'Dómaldi', 'Dómaldur', 'Dónald', 'Dónaldur', 'Dór', 'Dóri', 'Dósóþeus', 'Draupnir', 'Dreki', 'Drengur', 'Dufgus', 'Dufþakur', 'Dugfús', 'Dúi', 'Dúnn', 'Dvalinn', 'Dýri', 'Dýrmundur', 'Ebbi', 'Ebeneser', 'Ebenezer', 'Eberg', 'Edgar', 'Edilon', 'Edílon', 'Edvard', 'Edvin', 'Edward', 'Eðvald', 'Eðvar', 'Eðvarð', 'Efraím', 'Eggert', 'Eggþór', 'Egill', 'Eiðar', 'Eiður', 'Eikar', 'Eilífur', 'Einar', 'Einir', 'Einvarður', 'Einþór', 'Eiríkur', 'Eivin', 'Elberg', 'Elbert', 'Eldar', 'Eldgrímur', 'Eldjárn', 'Eldmar', 'Eldon', 'Eldór', 'Eldur', 'Elentínus', 'Elfar', 'Elfráður', 'Elimar', 'Elinór', 'Elis', 'Elí', 'Elías', 'Elíeser', 'Elímar', 'Elínbergur', 'Elínmundur', 'Elínór', 'Elís', 'Ellert', 'Elli', 'Elliði', 'Ellís', 'Elmar', 'Elvar', 'Elvin', 'Elvis', 'Emanúel', 'Embrek', 'Emerald', 'Emil', 'Emmanúel', 'Engilbert', 'Engilbjartur', 'Engiljón', 'Engill', 'Enok', 'Eric', 'Erik', 'Erlar', 'Erlendur', 'Erling', 'Erlingur', 'Ernestó', 'Ernir', 'Ernst', 'Eron', 'Erpur', 'Esekíel', 'Esjar', 'Esra', 'Estefan', 'Evald', 'Evan', 'Evert', 'Eyberg', 'Eyjólfur', 'Eylaugur', 'Eyleifur', 'Eymar', 'Eymundur', 'Eyríkur', 'Eysteinn', 'Eyvar', 'Eyvindur', 'Eyþór', 'Fabrisíus', 'Falgeir', 'Falur', 'Fannar', 'Fannberg', 'Fanngeir', 'Fáfnir', 'Fálki', 'Felix', 'Fengur', 'Fenrir', 'Ferdinand', 'Ferdínand', 'Fertram', 'Feykir', 'Filip', 'Filippus', 'Finn', 'Finnbjörn', 'Finnbogi', 'Finngeir', 'Finnjón', 'Finnlaugur', 'Finnur', 'Finnvarður', 'Fífill', 'Fjalar', 'Fjarki', 'Fjólar', 'Fjólmundur', 'Fjölnir', 'Fjölvar', 'Fjörnir', 'Flemming', 'Flosi', 'Flóki', 'Flórent', 'Flóvent', 'Forni', 'Fossmar', 'Fólki', 'Francis', 'Frank', 'Franklín', 'Frans', 'Franz', 'Fránn', 'Frár', 'Freybjörn', 'Freygarður', 'Freymar', 'Freymóður', 'Freymundur', 'Freyr', 'Freysteinn', 'Freyviður', 'Freyþór', 'Friðberg', 'Friðbergur', 'Friðbert', 'Friðbjörn', 'Friðfinnur', 'Friðgeir', 'Friðjón', 'Friðlaugur', 'Friðleifur', 'Friðmann', 'Friðmar', 'Friðmundur', 'Friðrik', 'Friðsteinn', 'Friður', 'Friðvin', 'Friðþjófur', 'Friðþór', 'Friedrich', 'Fritz', 'Frímann', 'Frosti', 'Fróði', 'Fróðmar', 'Funi', 'Fúsi', 'Fylkir', 'Gabriel', 'Gabríel', 'Gael', 'Galdur', 'Gamalíel', 'Garðar', 'Garibaldi', 'Garpur', 'Garri', 'Gaui', 'Gaukur', 'Gauti', 'Gautrekur', 'Gautur', 'Gautviður', 'Geir', 'Geirarður', 'Geirfinnur', 'Geirharður', 'Geirhjörtur', 'Geirhvatur', 'Geiri', 'Geirlaugur', 'Geirleifur', 'Geirmundur', 'Geirólfur', 'Geirröður', 'Geirtryggur', 'Geirvaldur', 'Geirþjófur', 'Geisli', 'Gellir', 'Georg', 'Gerald', 'Gerðar', 'Geri', 'Gestur', 'Gilbert', 'Gilmar', 'Gils', 'Gissur', 'Gizur', 'Gídeon', 'Gígjar', 'Gísli', 'Gjúki', 'Glói', 'Glúmur', 'Gneisti', 'Gnúpur', 'Gnýr', 'Goði', 'Goðmundur', 'Gottskálk', 'Gottsveinn', 'Gói', 'Grani', 'Grankell', 'Gregor', 'Greipur', 'Greppur', 'Gretar', 'Grettir', 'Grétar', 'Grímar', 'Grímkell', 'Grímlaugur', 'Grímnir', 'Grímólfur', 'Grímur', 'Grímúlfur', 'Guðberg', 'Guðbergur', 'Guðbjarni', 'Guðbjartur', 'Guðbjörn', 'Guðbrandur', 'Guðfinnur', 'Guðfreður', 'Guðgeir', 'Guðjón', 'Guðlaugur', 'Guðleifur', 'Guðleikur', 'Guðmann', 'Guðmar', 'Guðmon', 'Guðmundur', 'Guðni', 'Guðráður', 'Guðröður', 'Guðsteinn', 'Guðvarður', 'Guðveigur', 'Guðvin', 'Guðþór', 'Gumi', 'Gunnar', 'Gunnberg', 'Gunnbjörn', 'Gunndór', 'Gunngeir', 'Gunnhallur', 'Gunnlaugur', 'Gunnleifur', 'Gunnólfur', 'Gunnóli', 'Gunnröður', 'Gunnsteinn', 'Gunnvaldur', 'Gunnþór', 'Gustav', 'Gutti', 'Guttormur', 'Gústaf', 'Gústav', 'Gylfi', 'Gyrðir', 'Gýgjar', 'Gýmir', 'Haddi', 'Haddur', 'Hafberg', 'Hafgrímur', 'Hafliði', 'Hafnar', 'Hafni', 'Hafsteinn', 'Hafþór', 'Hagalín', 'Hagbarður', 'Hagbert', 'Haki', 'Hallberg', 'Hallbjörn', 'Halldór', 'Hallfreður', 'Hallgarður', 'Hallgeir', 'Hallgils', 'Hallgrímur', 'Hallkell', 'Hallmann', 'Hallmar', 'Hallmundur', 'Hallsteinn', 'Hallur', 'Hallvarður', 'Hallþór', 'Hamar', 'Hannes', 'Hannibal', 'Hans', 'Harald', 'Haraldur', 'Harri', 'Harry', 'Harrý', 'Hartmann', 'Hartvig', 'Hauksteinn', 'Haukur', 'Haukvaldur', 'Hákon', 'Háleygur', 'Hálfdan', 'Hálfdán', 'Hámundur', 'Hárekur', 'Hárlaugur', 'Hásteinn', 'Hávar', 'Hávarður', 'Hávarr', 'Hávarr', 'Heiðar', 'Heiðarr', 'Heiðberg', 'Heiðbert', 'Heiðlindur', 'Heiðmann', 'Heiðmar', 'Heiðmundur', 'Heiðrekur', 'Heikir', 'Heilmóður', 'Heimir', 'Heinrekur', 'Heisi', 'Hektor', 'Helgi', 'Helmút', 'Hemmert', 'Hendrik', 'Henning', 'Henrik', 'Henry', 'Henrý', 'Herbert', 'Herbjörn', 'Herfinnur', 'Hergeir', 'Hergill', 'Hergils', 'Herjólfur', 'Herlaugur', 'Herleifur', 'Herluf', 'Hermann', 'Hermóður', 'Hermundur', 'Hersir', 'Hersteinn', 'Hersveinn', 'Hervar', 'Hervarður', 'Hervin', 'Héðinn', 'Hilaríus', 'Hilbert', 'Hildar', 'Hildibergur', 'Hildibrandur', 'Hildigeir', 'Hildiglúmur', 'Hildimar', 'Hildimundur', 'Hildingur', 'Hildir', 'Hildiþór', 'Hilmar', 'Hilmir', 'Himri', 'Hinrik', 'Híram', 'Hjallkár', 'Hjalti', 'Hjarnar', 'Hjálmar', 'Hjálmgeir', 'Hjálmtýr', 'Hjálmur', 'Hjálmþór', 'Hjörleifur', 'Hjörtur', 'Hjörtþór', 'Hjörvar', 'Hleiðar', 'Hlégestur', 'Hlér', 'Hlini', 'Hlíðar', 'Hlíðberg', 'Hlífar', 'Hljómur', 'Hlynur', 'Hlöðmundur', 'Hlöður', 'Hlöðvarður', 'Hlöðver', 'Hnefill', 'Hnikar', 'Hnikarr', 'Holgeir', 'Holger', 'Holti', 'Hólm', 'Hólmar', 'Hólmbert', 'Hólmfastur', 'Hólmgeir', 'Hólmgrímur', 'Hólmkell', 'Hólmsteinn', 'Hólmþór', 'Hóseas', 'Hrafn', 'Hrafnar', 'Hrafnbergur', 'Hrafnkell', 'Hrafntýr', 'Hrannar', 'Hrappur', 'Hraunar', 'Hreggviður', 'Hreiðar', 'Hreiðmar', 'Hreimur', 'Hreinn', 'Hringur', 'Hrímnir', 'Hrollaugur', 'Hrolleifur', 'Hróaldur', 'Hróar', 'Hróbjartur', 'Hróðgeir', 'Hróðmar', 'Hróðólfur', 'Hróðvar', 'Hrói', 'Hrólfur', 'Hrómundur', 'Hrútur', 'Hrærekur', 'Hugberg', 'Hugi', 'Huginn', 'Hugleikur', 'Hugo', 'Hugó', 'Huldar', 'Huxley', 'Húbert', 'Húgó', 'Húmi', 'Húnbogi', 'Húni', 'Húnn', 'Húnröður', 'Hvannar', 'Hyltir', 'Hylur', 'Hængur', 'Hænir', 'Höður', 'Högni', 'Hörður', 'Höskuldur', 'Illugi', 'Immanúel', 'Indriði', 'Ingberg', 'Ingi', 'Ingiberg', 'Ingibergur', 'Ingibert', 'Ingibjartur', 'Ingibjörn', 'Ingileifur', 'Ingimagn', 'Ingimar', 'Ingimundur', 'Ingivaldur', 'Ingiþór', 'Ingjaldur', 'Ingmar', 'Ingólfur', 'Ingvaldur', 'Ingvar', 'Ingvi', 'Ingþór', 'Ismael', 'Issi', 'Ãan', 'Ãgor', 'Ãmi', 'Ãsak', 'Ãsar', 'Ãsarr', 'Ãsbjörn', 'Ãseldur', 'Ãsgeir', 'Ãsidór', 'Ãsleifur', 'Ãsmael', 'Ãsmar', 'Ãsólfur', 'Ãsrael', 'Ãvan', 'Ãvar', 'Jack', 'Jafet', 'Jaki', 'Jakob', 'Jakop', 'Jamil', 'Jan', 'Janus', 'Jarl', 'Jason', 'Járngrímur', 'Játgeir', 'Játmundur', 'Játvarður', 'Jenni', 'Jens', 'Jeremías', 'Jes', 'Jesper', 'Jochum', 'Johan', 'John', 'Joshua', 'Jóakim', 'Jóann', 'Jóel', 'Jóhann', 'Jóhannes', 'Jói', 'Jómar', 'Jómundur', 'Jón', 'Jónar', 'Jónas', 'Jónatan', 'Jónbjörn', 'Jóndór', 'Jóngeir', 'Jónmundur', 'Jónsteinn', 'Jónþór', 'Jósafat', 'Jósavin', 'Jósef', 'Jósep', 'Jósteinn', 'Jósúa', 'Jóvin', 'Julian', 'Júlí', 'Júlían', 'Júlíus', 'Júní', 'Júníus', 'Júrek', 'Jökull', 'Jörfi', 'Jörgen', 'Jörmundur', 'Jörri', 'Jörundur', 'Jörvar', 'Jörvi', 'Kaj', 'Kakali', 'Kaktus', 'Kaldi', 'Kaleb', 'Kali', 'Kalman', 'Kalmann', 'Kalmar', 'Kaprasíus', 'Karel', 'Karim', 'Karkur', 'Karl', 'Karles', 'Karli', 'Karvel', 'Kaspar', 'Kasper', 'Kastíel', 'Katarínus', 'Kató', 'Kár', 'Kári', 'Keran', 'Ketilbjörn', 'Ketill', 'Kilían', 'Kiljan', 'Kjalar', 'Kjallakur', 'Kjaran', 'Kjartan', 'Kjarval', 'Kjárr', 'Kjói', 'Klemens', 'Klemenz', 'Klængur', 'Knútur', 'Knörr', 'Koðrán', 'Koggi', 'Kolbeinn', 'Kolbjörn', 'Kolfinnur', 'Kolgrímur', 'Kolmar', 'Kolskeggur', 'Kolur', 'Kolviður', 'Konráð', 'Konstantínus', 'Kormákur', 'Kornelíus', 'Kort', 'Kópur', 'Kraki', 'Kris', 'Kristall', 'Kristberg', 'Kristbergur', 'Kristbjörn', 'Kristdór', 'Kristens', 'Krister', 'Kristfinnur', 'Kristgeir', 'Kristian', 'Kristinn', 'Kristján', 'Kristjón', 'Kristlaugur', 'Kristleifur', 'Kristmann', 'Kristmar', 'Kristmundur', 'Kristofer', 'Kristófer', 'Kristvaldur', 'Kristvarður', 'Kristvin', 'Kristþór', 'Krummi', 'Kveldúlfur', 'Lambert', 'Lars', 'Laufar', 'Laugi', 'Lauritz', 'Lár', 'Lárent', 'Lárentíus', 'Lárus', 'Leiðólfur', 'Leif', 'Leifur', 'Leiknir', 'Leo', 'Leon', 'Leonard', 'Leonhard', 'Leó', 'Leópold', 'Leví', 'Lér', 'Liljar', 'Lindar', 'Lindberg', 'Línberg', 'Líni', 'Ljósálfur', 'Ljótur', 'Ljúfur', 'Loðmundur', 'Loftur', 'Logi', 'Loki', 'Lórens', 'Lórenz', 'Ludvig', 'Lundi', 'Lúðvíg', 'Lúðvík', 'Lúkas', 'Lúter', 'Lúther', 'Lyngar', 'Lýður', 'Lýtingur', 'Maggi', 'Magngeir', 'Magni', 'Magnús', 'Magnþór', 'Makan', 'Manfred', 'Manfreð', 'Manúel', 'Mar', 'Marbjörn', 'Marel', 'Margeir', 'Margrímur', 'Mari', 'Marijón', 'Marinó', 'Marías', 'Marínó', 'Marís', 'Maríus', 'Marjón', 'Markó', 'Markús', 'Markþór', 'Maron', 'Marri', 'Mars', 'Marsellíus', 'Marteinn', 'Marten', 'Marthen', 'Martin', 'Marvin', 'Mathías', 'Matthías', 'Matti', 'Mattías', 'Max', 'Maximus', 'Máni', 'Már', 'Márus', 'Mekkinó', 'Melkíor', 'Melkólmur', 'Melrakki', 'Mensalder', 'Merkúr', 'Methúsalem', 'Metúsalem', 'Meyvant', 'Michael', 'Mikael', 'Mikjáll', 'Mikkael', 'Mikkel', 'Mildinberg', 'Mías', 'Mímir', 'Míó', 'Mír', 'Mjöllnir', 'Mjölnir', 'Moli', 'Morgan', 'Moritz', 'Mosi', 'Móði', 'Móri', 'Mórits', 'Móses', 'Muggur', 'Muni', 'Muninn', 'Múli', 'Myrkvi', 'Mýrkjartan', 'Mörður', 'Narfi', 'Natan', 'Natanael', 'Nataníel', 'Náttmörður', 'Náttúlfur', 'Neisti', 'Nenni', 'Neptúnus', 'Nicolas', 'Nikanor', 'Nikolai', 'Nikolas', 'Nikulás', 'Nils', 'Níels', 'Níls', 'Njáll', 'Njörður', 'Nonni', 'Norbert', 'Norðmann', 'Normann', 'Nóam', 'Nóel', 'Nói', 'Nóni', 'Nóri', 'Nóvember', 'Númi', 'Nývarð', 'Nökkvi', 'Oddbergur', 'Oddbjörn', 'Oddfreyr', 'Oddgeir', 'Oddi', 'Oddkell', 'Oddleifur', 'Oddmar', 'Oddsteinn', 'Oddur', 'Oddvar', 'Oddþór', 'Oktavíus', 'Októ', 'Októvíus', 'Olaf', 'Olav', 'Olgeir', 'Oliver', 'Olivert', 'Orfeus', 'Ormar', 'Ormur', 'Orri', 'Orvar', 'Otkell', 'Otri', 'Otti', 'Ottó', 'Otur', 'Óðinn', 'Ófeigur', 'Ólafur', 'Óli', 'Óliver', 'Ólíver', 'Ómar', 'Ómi', 'Óskar', 'Ósvald', 'Ósvaldur', 'Ósvífur', 'Óttar', 'Óttarr', 'Parmes', 'Patrek', 'Patrekur', 'Patrick', 'Patrik', 'Páll', 'Pálmar', 'Pálmi', 'Pedró', 'Per', 'Peter', 'Pétur', 'Pjetur', 'Príor', 'Rafael', 'Rafn', 'Rafnar', 'Rafnkell', 'Ragnar', 'Ragúel', 'Randver', 'Rannver', 'Rasmus', 'Ráðgeir', 'Ráðvarður', 'Refur', 'Reginbaldur', 'Reginn', 'Reidar', 'Reifnir', 'Reimar', 'Reinar', 'Reinhart', 'Reinhold', 'Reynald', 'Reynar', 'Reynir', 'Reyr', 'Richard', 'Rikharð', 'Rikharður', 'Ríkarður', 'Ríkharð', 'Ríkharður', 'Ríó', 'Robert', 'Rolf', 'Ronald', 'Róbert', 'Rólant', 'Róman', 'Rómeó', 'Rósant', 'Rósar', 'Rósberg', 'Rósenberg', 'Rósi', 'Rósinberg', 'Rósinkar', 'Rósinkrans', 'Rósmann', 'Rósmundur', 'Rudolf', 'Runi', 'Runólfur', 'Rúbar', 'Rúben', 'Rúdólf', 'Rúnar', 'Rúrik', 'Rútur', 'Röðull', 'Rögnvald', 'Rögnvaldur', 'Rögnvar', 'Rökkvi', 'Safír', 'Sakarías', 'Salmann', 'Salmar', 'Salómon', 'Salvar', 'Samson', 'Samúel', 'Sandel', 'Sandri', 'Sandur', 'Saxi', 'Sebastian', 'Sebastían', 'Seifur', 'Seimur', 'Sesar', 'Sesil', 'Sigbergur', 'Sigbert', 'Sigbjartur', 'Sigbjörn', 'Sigdór', 'Sigfastur', 'Sigfinnur', 'Sigfreður', 'Sigfús', 'Siggeir', 'Sighvatur', 'Sigjón', 'Siglaugur', 'Sigmann', 'Sigmar', 'Sigmundur', 'Signar', 'Sigri', 'Sigríkur', 'Sigsteinn', 'Sigtryggur', 'Sigtýr', 'Sigur', 'Sigurbaldur', 'Sigurberg', 'Sigurbergur', 'Sigurbjarni', 'Sigurbjartur', 'Sigurbjörn', 'Sigurbrandur', 'Sigurdór', 'Sigurður', 'Sigurfinnur', 'Sigurgeir', 'Sigurgestur', 'Sigurgísli', 'Sigurgrímur', 'Sigurhans', 'Sigurhjörtur', 'Sigurjón', 'Sigurkarl', 'Sigurlaugur', 'Sigurlás', 'Sigurleifur', 'Sigurliði', 'Sigurlinni', 'Sigurmann', 'Sigurmar', 'Sigurmon', 'Sigurmundur', 'Sigurnýas', 'Sigurnýjas', 'Siguroddur', 'Siguróli', 'Sigurpáll', 'Sigursteinn', 'Sigursveinn', 'Sigurvaldi', 'Sigurvin', 'Sigurþór', 'Sigvaldi', 'Sigvarður', 'Sigþór', 'Silli', 'Sindri', 'Símon', 'Sírnir', 'Sírus', 'Sívar', 'Sjafnar', 'Skafti', 'Skapti', 'Skarphéðinn', 'Skefill', 'Skeggi', 'Skíði', 'Skírnir', 'Skjöldur', 'Skorri', 'Skuggi', 'Skúli', 'Skúta', 'Skær', 'Skæringur', 'Smári', 'Smiður', 'Smyrill', 'Snjóki', 'Snjólaugur', 'Snjólfur', 'Snorri', 'Snæbjartur', 'Snæbjörn', 'Snæhólm', 'Snælaugur', 'Snær', 'Snæringur', 'Snævar', 'Snævarr', 'Snæþór', 'Soffanías', 'Sophanías', 'Sophus', 'Sófónías', 'Sófus', 'Sókrates', 'Sólberg', 'Sólbergur', 'Sólbjartur', 'Sólbjörn', 'Sólimann', 'Sólmar', 'Sólmundur', 'Sólon', 'Sólver', 'Sólvin', 'Spartakus', 'Sporði', 'Spói', 'Stanley', 'Stapi', 'Starkaður', 'Starri', 'Stefan', 'Stefán', 'Stefnir', 'Steinar', 'Steinarr', 'Steinberg', 'Steinbergur', 'Steinbjörn', 'Steindór', 'Steinfinnur', 'Steingrímur', 'Steini', 'Steinkell', 'Steinmann', 'Steinmar', 'Steinmóður', 'Steinn', 'Steinólfur', 'Steinröður', 'Steinvarður', 'Steinþór', 'Stirnir', 'Stígur', 'Stormur', 'Stórólfur', 'Sturla', 'Sturlaugur', 'Sturri', 'Styr', 'Styrbjörn', 'Styrkár', 'Styrmir', 'Styrr', 'Sumarliði', 'Svafar', 'Svali', 'Svan', 'Svanberg', 'Svanbergur', 'Svanbjörn', 'Svangeir', 'Svanhólm', 'Svani', 'Svanlaugur', 'Svanmundur', 'Svanur', 'Svanþór', 'Svavar', 'Sváfnir', 'Sveinar', 'Sveinberg', 'Sveinbjartur', 'Sveinbjörn', 'Sveinjón', 'Sveinlaugur', 'Sveinmar', 'Sveinn', 'Sveinungi', 'Sveinþór', 'Svend', 'Sverre', 'Sverrir', 'Svölnir', 'Svörfuður', 'Sýrus', 'Sæberg', 'Sæbergur', 'Sæbjörn', 'Sæi', 'Sælaugur', 'Sæmann', 'Sæmundur', 'Sær', 'Sævald', 'Sævaldur', 'Sævar', 'Sævarr', 'Sævin', 'Sæþór', 'Sölmundur', 'Sölvar', 'Sölvi', 'Sören', 'Sörli', 'Tandri', 'Tarfur', 'Teitur', 'Theodór', 'Theódór', 'Thomas', 'Thor', 'Thorberg', 'Thór', 'Tindar', 'Tindri', 'Tindur', 'Tinni', 'Tími', 'Tímon', 'Tímoteus', 'Tímóteus', 'Tístran', 'Tjaldur', 'Tjörfi', 'Tjörvi', 'Tobías', 'Tolli', 'Tonni', 'Torfi', 'Tóbías', 'Tói', 'Tóki', 'Tómas', 'Tór', 'Trausti', 'Tristan', 'Trostan', 'Trúmann', 'Tryggvi', 'Tumas', 'Tumi', 'Tyrfingur', 'Týr', 'Ubbi', 'Uggi', 'Ulrich', 'Uni', 'Unnar', 'Unnbjörn', 'Unndór', 'Unnsteinn', 'Unnþór', 'Urðar', 'Uxi', 'Úddi', 'Úlfar', 'Úlfgeir', 'Úlfhéðinn', 'Úlfkell', 'Úlfljótur', 'Úlftýr', 'Úlfur', 'Úlrik', 'Úranus', 'Vagn', 'Vakur', 'Valberg', 'Valbergur', 'Valbjörn', 'Valbrandur', 'Valdemar', 'Valdi', 'Valdimar', 'Valdór', 'Valentín', 'Valentínus', 'Valgarð', 'Valgarður', 'Valgeir', 'Valíant', 'Vallaður', 'Valmar', 'Valmundur', 'Valsteinn', 'Valter', 'Valtýr', 'Valur', 'Valves', 'Valþór', 'Varmar', 'Vatnar', 'Váli', 'Vápni', 'Veigar', 'Veigur', 'Ver', 'Vermundur', 'Vernharð', 'Vernharður', 'Vestar', 'Vestmar', 'Veturliði', 'Vébjörn', 'Végeir', 'Vékell', 'Vélaugur', 'Vémundur', 'Vésteinn', 'Victor', 'Viðar', 'Vigfús', 'Viggó', 'Vignir', 'Vigri', 'Vigtýr', 'Vigur', 'Vikar', 'Viktor', 'Vilberg', 'Vilbergur', 'Vilbert', 'Vilbjörn', 'Vilbogi', 'Vilbrandur', 'Vilgeir', 'Vilhelm', 'Vilhjálmur', 'Vili', 'Viljar', 'Vilji', 'Villi', 'Vilmar', 'Vilmundur', 'Vincent', 'Vinjar', 'Virgill', 'Víðar', 'Víðir', 'Vífill', 'Víglundur', 'Vígmar', 'Vígmundur', 'Vígsteinn', 'Vígþór', 'Víkingur', 'Vopni', 'Vorm', 'Vöggur', 'Völundur', 'Vörður', 'Vöttur', 'Walter', 'Werner', 'Wilhelm', 'Willard', 'William', 'Willum', 'Ylur', 'Ymir', 'Yngvar', 'Yngvi', 'Yrkill', 'Ãmir', 'Ãrar', 'Zakaría', 'Zakarías', 'Zophanías', 'Zophonías', 'Zóphanías', 'Zóphonías', 'Þangbrandur', 'Þengill', 'Þeyr', 'Þiðrandi', 'Þiðrik', 'Þinur', 'Þjálfi', 'Þjóðann', 'Þjóðbjörn', 'Þjóðgeir', 'Þjóðleifur', 'Þjóðmar', 'Þjóðólfur', 'Þjóðrekur', 'Þjóðvarður', 'Þjóstar', 'Þjóstólfur', 'Þorberg', 'Þorbergur', 'Þorbjörn', 'Þorbrandur', 'Þorfinnur', 'Þorgarður', 'Þorgautur', 'Þorgeir', 'Þorgestur', 'Þorgils', 'Þorgísl', 'Þorgnýr', 'Þorgrímur', 'Þorkell', 'Þorlaugur', 'Þorlákur', 'Þorleifur', 'Þorleikur', 'Þormar', 'Þormóður', 'Þormundur', 'Þorri', 'Þorsteinn', 'Þorvaldur', 'Þorvar', 'Þorvarður', 'Þór', 'Þórar', 'Þórarinn', 'Þórbergur', 'Þórbjörn', 'Þórður', 'Þórgnýr', 'Þórgrímur', 'Þórhaddur', 'Þórhalli', 'Þórhallur', 'Þórir', 'Þórlaugur', 'Þórleifur', 'Þórlindur', 'Þórmar', 'Þórmundur', 'Þóroddur', 'Þórormur', 'Þórólfur', 'Þórsteinn', 'Þórörn', 'Þrastar', 'Þráinn', 'Þrándur', 'Þróttur', 'Þrúðmar', 'Þrymur', 'Þröstur', 'Þyrnir', 'Ægir', 'Æsir', 'Ævar', 'Ævarr', 'Ögmundur', 'Ögri', 'Ölnir', 'Ölver', 'Ölvir', 'Öndólfur', 'Önundur', 'Örlaugur', 'Örlygur', 'Örn', 'Örnólfur', 'Örvar', 'Össur', 'Öxar'); - - /** - * @var string Icelandic middle names. - */ - protected static $middleName = array( - 'Aðaldal', 'Aldan', 'Arnberg', 'Arnfjörð', 'Austan', 'Austdal', 'Austfjörð', 'Ãss', 'Bakkdal', 'Bakkmann', 'Bald', 'Ben', 'Bergholt', 'Bergland', 'Bíldsfells', 'Bjarg', 'Bjarndal', 'Bjarnfjörð', 'Bláfeld', 'Blómkvist', 'Borgdal', 'Brekkmann', 'Brim', 'Brúnsteð', 'Dalhoff', 'Dan', 'Diljan', 'Ektavon', 'Eldberg', 'Elísberg', 'Elvan', 'Espólín', 'Eyhlíð', 'Eyvík', 'Falk', 'Finndal', 'Fossberg', 'Freydal', 'Friðhólm', 'Giljan', 'Gilsfjörð', 'Gnarr', 'Gnurr', 'Grendal', 'Grindvík', 'Gull', 'Haffjörð', 'Hafnes', 'Hafnfjörð', 'Har', 'Heimdal', 'Heimsberg', 'Helgfell', 'Herberg', 'Hildiberg', 'Hjaltdal', 'Hlíðkvist', 'Hnappdal', 'Hnífsdal', 'Hofland', 'Hofteig', 'Hornfjörð', 'Hólmberg', 'Hrafnan', 'Hrafndal', 'Hraunberg', 'Hreinberg', 'Hreindal', 'Hrútfjörð', 'Hvammdal', 'Hvítfeld', 'Höfðdal', 'Hörðdal', 'Ãshólm', 'Júl', 'Kjarrval', 'Knaran', 'Knarran', 'Krossdal', 'Laufkvist', 'Laufland', 'Laugdal', 'Laxfoss', 'Liljan', 'Linddal', 'Línberg', 'Ljós', 'Loðmfjörð', 'Lyngberg', 'Magdal', 'Magg', 'Matt', 'Miðdal', 'Miðvík', 'Mjófjörð', 'Móberg', 'Mýrmann', 'Nesmann', 'Norðland', 'Núpdal', 'Ólfjörð', 'Ósland', 'Ósmann', 'Reginbald', 'Reykfell', 'Reykfjörð', 'Reynholt', 'Salberg', 'Sandhólm', 'Seljan', 'Sigurhólm', 'Skagalín', 'Skíðdal', 'Snæberg', 'Snædahl', 'Sólan', 'Stardal', 'Stein', 'Steinbekk', 'Steinberg', 'Storm', 'Straumberg', 'Svanhild', 'Svarfdal', 'Sædal', 'Val', 'Valagils', 'Vald', 'Varmdal', 'Vatnsfjörð', 'Vattar', 'Vattnes', 'Viðfjörð', 'Vídalín', 'Víking', 'Vopnfjörð', 'Yngling', 'Þor', 'Önfjörð', 'Örbekk', 'Öxdal', 'Öxndal' - ); - - /** - * Randomly return a icelandic middle name. - * - * @return string - */ - public static function middleName() - { - return static::randomElement(static::$middleName); - } - - /** - * Generate prepared last name for further processing - * - * @return string - */ - public function lastName() - { - $name = static::firstNameMale(); - - if (substr($name, -2) === 'ur') { - $name = substr($name, 0, strlen($name) - 2); - } - - if (substr($name, -1) !== 's') { - $name .= 's'; - } - - return $name; - } - - /** - * Randomly return a icelandic last name for woman. - * - * @return string - */ - public function lastNameMale() - { - return $this->lastName().'son'; - } - - /** - * Randomly return a icelandic last name for man. - * - * @return string - */ - public function lastNameFemale() - { - return $this->lastName().'dóttir'; - } - - /** - * Randomly return a icelandic Kennitala (Social Security number) format. - * - * @link http://en.wikipedia.org/wiki/Kennitala - * - * @return string - */ - public static function ssn() - { - // random birth date - $birthdate = new \DateTime('@' . mt_rand(0, time())); - - // last four buffer - $lastFour = null; - - // security variable reference - $ref = '32765432'; - - // valid flag - $valid = false; - - while (! $valid) { - // make two random numbers - $rand = static::randomDigit().static::randomDigit(); - - // 8 char string with birth date and two random numbers - $tmp = $birthdate->format('dmy').$rand; - - // loop through temp string - for ($i = 7, $sum = 0; $i >= 0; $i--) { - // calculate security variable - $sum += ($tmp[$i] * $ref[$i]); - } - - // subtract 11 if not 11 - $chk = ($sum % 11 === 0) ? 0 : (11 - ($sum % 11)); - - if ($chk < 10) { - $lastFour = $rand.$chk.substr($birthdate->format('Y'), 1, 1); - - $valid = true; - } - } - - return sprintf('%s-%s', $birthdate->format('dmy'), $lastFour); - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/is_IS/PhoneNumber.php b/vendor/fzaninotto/faker/src/Faker/Provider/is_IS/PhoneNumber.php deleted file mode 100644 index de91f742..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/is_IS/PhoneNumber.php +++ /dev/null @@ -1,20 +0,0 @@ - - */ -class PhoneNumber extends \Faker\Provider\PhoneNumber -{ - /** - * @var array Icelandic phone number formats. - */ - protected static $formats = array( - '+354 ### ####', - '+354 #######', - '+354#######', - '### ####', - '#######', - ); -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/it_CH/Address.php b/vendor/fzaninotto/faker/src/Faker/Provider/it_CH/Address.php deleted file mode 100644 index 1eee3b6d..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/it_CH/Address.php +++ /dev/null @@ -1,139 +0,0 @@ - 'Argovia'), - array('AI' => 'Appenzello Interno'), - array('AR' => 'Appenzello Esterno'), - array('BE' => 'Berna'), - array('BL' => 'Basilea Campagna'), - array('BS' => 'Basilea Città'), - array('FR' => 'Friburgo'), - array('GE' => 'Ginevra'), - array('GL' => 'Glarona'), - array('GR' => 'Grigioni'), - array('JU' => 'Giura'), - array('LU' => 'Lucerna'), - array('NE' => 'Neuchâtel'), - array('NW' => 'Nidvaldo'), - array('OW' => 'Obvaldo'), - array('SG' => 'San Gallo'), - array('SH' => 'Sciaffusa'), - array('SO' => 'Soletta'), - array('SZ' => 'Svitto'), - array('TG' => 'Turgovia'), - array('TI' => 'Ticino'), - array('UR' => 'Uri'), - array('VD' => 'Vaud'), - array('VS' => 'Vallese'), - array('ZG' => 'Zugo'), - array('ZH' => 'Zurigo') - ); - - protected static $cityFormats = array( - '{{cityName}}', - ); - - protected static $streetNameFormats = array( - '{{streetSuffix}} {{firstName}}', - '{{streetSuffix}} {{lastName}}' - ); - - protected static $streetAddressFormats = array( - '{{streetName}} {{buildingNumber}}', - ); - protected static $addressFormats = array( - "{{streetAddress}}\n{{postcode}} {{city}}", - ); - - /** - * Returns a random street prefix - * @example Via - * @return string - */ - public static function streetPrefix() - { - return static::randomElement(static::$streetPrefix); - } - - /** - * Returns a random city name. - * @example Luzern - * @return string - */ - public function cityName() - { - return static::randomElement(static::$cityNames); - } - - /** - * Returns a canton - * @example array('BE' => 'Bern') - * @return array - */ - public static function canton() - { - return static::randomElement(static::$canton); - } - - /** - * Returns the abbreviation of a canton. - * @return string - */ - public static function cantonShort() - { - $canton = static::canton(); - return key($canton); - } - - /** - * Returns the name of canton. - * @return string - */ - public static function cantonName() - { - $canton = static::canton(); - return current($canton); - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/it_CH/Company.php b/vendor/fzaninotto/faker/src/Faker/Provider/it_CH/Company.php deleted file mode 100644 index 9a42b1c3..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/it_CH/Company.php +++ /dev/null @@ -1,15 +0,0 @@ -generator->parse($format); - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/ja_JP/Company.php b/vendor/fzaninotto/faker/src/Faker/Provider/ja_JP/Company.php deleted file mode 100644 index 937f375f..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/ja_JP/Company.php +++ /dev/null @@ -1,17 +0,0 @@ -generator->parse($format)); - } - - /** - * @example 'yamada.jp' - */ - public function domainName() - { - return static::randomElement(static::$lastNameAscii) . '.' . $this->tld(); - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/ja_JP/Person.php b/vendor/fzaninotto/faker/src/Faker/Provider/ja_JP/Person.php deleted file mode 100644 index 0db2db0b..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/ja_JP/Person.php +++ /dev/null @@ -1,141 +0,0 @@ -generator->parse($format); - } - - /** - * @param string|null $gender 'male', 'female' or null for any - * @return string - * @example 'アキラ' - */ - public function firstKanaName($gender = null) - { - if ($gender === static::GENDER_MALE) { - return static::firstKanaNameMale(); - } elseif ($gender === static::GENDER_FEMALE) { - return static::firstKanaNameFemale(); - } - - return $this->generator->parse(static::randomElement(static::$firstKanaNameFormat)); - } - - /** - * @example 'アキラ' - */ - public static function firstKanaNameMale() - { - return static::randomElement(static::$firstKanaNameMale); - } - - /** - * @example 'アケミ' - */ - public static function firstKanaNameFemale() - { - return static::randomElement(static::$firstKanaNameFemale); - } - - /** - * @example 'アオタ' - */ - public static function lastKanaName() - { - return static::randomElement(static::$lastKanaName); - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/ja_JP/PhoneNumber.php b/vendor/fzaninotto/faker/src/Faker/Provider/ja_JP/PhoneNumber.php deleted file mode 100644 index 9f03c565..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/ja_JP/PhoneNumber.php +++ /dev/null @@ -1,19 +0,0 @@ -generator->parse($format); - } - - public static function companyPrefix() - { - return static::randomElement(static::$companyPrefixes); - } - - public static function companyNameElement() - { - return static::randomElement(static::$companyElements); - } - - public static function companyNameSuffix() - { - return static::randomElement(static::$companyNameSuffixes); - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/ka_GE/DateTime.php b/vendor/fzaninotto/faker/src/Faker/Provider/ka_GE/DateTime.php deleted file mode 100644 index 1a1a4dd4..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/ka_GE/DateTime.php +++ /dev/null @@ -1,42 +0,0 @@ - 'კვირáƒ', - 'Monday' => 'áƒáƒ áƒ¨áƒáƒ‘áƒáƒ—ი', - 'Tuesday' => 'სáƒáƒ›áƒ¨áƒáƒ‘áƒáƒ—ი', - 'Wednesday' => 'áƒáƒ—ხშáƒáƒ‘áƒáƒ—ი', - 'Thursday' => 'ხუთშáƒáƒ‘áƒáƒ—ი', - 'Friday' => 'პáƒáƒ áƒáƒ¡áƒ™áƒ”ვი', - 'Saturday' => 'შáƒáƒ‘áƒáƒ—ი', - ); - $week = static::dateTime($max)->format('l'); - return isset($map[$week]) ? $map[$week] : $week; - } - - public static function monthName($max = 'now') - { - $map = array( - 'January' => 'იáƒáƒœáƒ•áƒáƒ áƒ˜', - 'February' => 'თებერვáƒáƒšáƒ˜', - 'March' => 'მáƒáƒ áƒ¢áƒ˜', - 'April' => 'áƒáƒžáƒ áƒ˜áƒšáƒ˜', - 'May' => 'მáƒáƒ˜áƒ¡áƒ˜', - 'June' => 'ივნისი', - 'July' => 'ივლისი', - 'August' => 'áƒáƒ’ვისტáƒ', - 'September' => 'სექტემბერი', - 'October' => 'áƒáƒ¥áƒ¢áƒáƒ›áƒ‘ერი', - 'November' => 'ნáƒáƒ”მბერი', - 'December' => 'დეკემბერი', - ); - $month = static::dateTime($max)->format('F'); - return isset($map[$month]) ? $map[$month] : $month; - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/ka_GE/Internet.php b/vendor/fzaninotto/faker/src/Faker/Provider/ka_GE/Internet.php deleted file mode 100644 index 01b15c77..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/ka_GE/Internet.php +++ /dev/null @@ -1,15 +0,0 @@ -generator->parse($format); - } - - public static function companyPrefix() - { - return static::randomElement(static::$companyPrefixes); - } - - public static function companyNameElement() - { - return static::randomElement(static::$companyElements); - } - - public static function companyNameSuffix() - { - return static::randomElement(static::$companyNameSuffixes); - } - - /** - * National Business Identification Numbers - * - * @link http://egov.kz/wps/portal/Content?contentPath=%2Fegovcontent%2Fbus_business%2Ffor_businessmen%2Farticle%2Fbusiness_identification_number&lang=en - * @param \DateTime $registrationDate - * @return string 12 digits, like 150140000019 - */ - public static function businessIdentificationNumber(\DateTime $registrationDate = null) - { - if (!$registrationDate) { - $registrationDate = \Faker\Provider\DateTime::dateTimeThisYear(); - } - - $dateAsString = $registrationDate->format('ym'); - $legalEntityType = (string) static::numberBetween(4, 6); - $legalEntityAdditionalType = (string) static::numberBetween(0, 3); - $randomDigits = (string) static::numerify('######'); - - return $dateAsString . $legalEntityType . $legalEntityAdditionalType . $randomDigits; - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/kk_KZ/Internet.php b/vendor/fzaninotto/faker/src/Faker/Provider/kk_KZ/Internet.php deleted file mode 100644 index 75999c2e..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/kk_KZ/Internet.php +++ /dev/null @@ -1,9 +0,0 @@ - array( - self::CENTURY_19TH => self::MALE_CENTURY_19TH, - self::CENTURY_20TH => self::MALE_CENTURY_20TH, - self::CENTURY_21ST => self::MALE_CENTURY_21ST, - ), - self::GENDER_FEMALE => array( - self::CENTURY_19TH => self::FEMALE_CENTURY_19TH, - self::CENTURY_20TH => self::FEMALE_CENTURY_20TH, - self::CENTURY_21ST => self::FEMALE_CENTURY_21ST, - ), - ); - - /** - * @see https://ru.wikipedia.org/wiki/%D0%9A%D0%B0%D0%B7%D0%B0%D1%85%D1%81%D0%BA%D0%B0%D1%8F_%D1%84%D0%B0%D0%BC%D0%B8%D0%BB%D0%B8%D1%8F - * - * @var array - */ - protected static $maleNameFormats = array( - '{{lastName}}ұлы {{firstNameMale}}', - ); - - /** - * @see https://ru.wikipedia.org/wiki/%D0%9A%D0%B0%D0%B7%D0%B0%D1%85%D1%81%D0%BA%D0%B0%D1%8F_%D1%84%D0%B0%D0%BC%D0%B8%D0%BB%D0%B8%D1%8F - * - * @var array - */ - protected static $femaleNameFormats = array( - '{{lastName}}қызы {{firstNameFemale}}', - ); - - /** - * @see http://koshpendi.kz/index.php/nomad/imena/ - * - * @var array - */ - protected static $firstNameMale = array( - 'Ðылғазы', - 'Әбдіқадыр', - 'Бабағожа', - 'ҒайÑа', - 'Дәмен', - 'Егізбек', - 'Жазылбек', - 'Зұлпықар', - 'ИгіÑін', - 'Кәдіржан', - 'Қадырқан', - 'Латиф', - 'Мағаз', - 'Ðармағамбет', - 'Оңалбай', - 'ӨндіріÑ', - 'Пердебек', - 'Рақат', - 'Сағындық', - 'Танабай', - 'УайыÑ', - 'Ұйықбай', - 'Үрімбай', - 'Файзрахман', - 'Хангелді', - 'Шаттық', - 'ЫÑтамбақы', - 'Ібни', - ); - - /** - * @see http://koshpendi.kz/index.php/nomad/imena/ - * - * @var array - */ - protected static $firstNameFemale = array( - 'ÐÑылтаÑ', - 'Әужа', - 'Бүлдіршін', - 'Гүлшаш', - 'Ғафура', - 'Ділдә', - 'Еркежан', - 'Жібек', - 'Зылиқа', - 'Ирада', - 'КүнÑұлу', - 'Қырмызы', - 'Ләтипа', - 'Мүштәри', - 'Ðұршара', - 'Орынша', - 'ӨрзиÑ', - 'Перизат', - 'РухиÑ', - 'Сындыбала', - 'ТұрÑынай', - 'УәÑима', - 'ҰрқиÑ', - 'ҮриÑ', - 'Фируза', - 'Хафиза', - 'Шырынгүл', - 'ЫрыÑты', - 'Іңкәр', - ); - - /** - * @see http://koshpendi.kz/index.php/nomad/imena/ - * @see https://ru.wikipedia.org/wiki/%D0%9A%D0%B0%D0%B7%D0%B0%D1%85%D1%81%D0%BA%D0%B0%D1%8F_%D1%84%D0%B0%D0%BC%D0%B8%D0%BB%D0%B8%D1%8F - * - * @var array - */ - protected static $lastName = array( - 'Ðдырбай', - 'Әжібай', - 'Байбөрі', - 'Ғизат', - 'Ділдабек', - 'Ешмұхамбет', - 'Жігер', - 'ЗікіриÑ', - 'ИÑа', - 'Кунту', - 'Қыдыр', - 'Лұқпан', - 'Мышырбай', - 'ÐÑ‹Ñынбай', - 'Ошақбай', - 'Өтетілеу', - 'Пірәлі', - 'РүÑтем', - 'Сырмұхамбет', - 'ТілеміÑ', - 'Уәлі', - 'Ұлықбек', - 'Ò®Ñтем', - 'Фахир', - 'Ð¥Ò±Ñайын', - 'Шілдебай', - 'ЫÑтамбақы', - 'ІÑмет', - ); - - /** - * @param integer $year - * - * @return integer|null - */ - private static function getCenturyByYear($year) - { - if ($year >= 2000 && $year <= DateTime::year()) { - return self::CENTURY_21ST; - } elseif ($year >= 1900) { - return self::CENTURY_20TH; - } elseif ($year >= 1800) { - return self::CENTURY_19TH; - } - } - - /** - * National Individual Identification Numbers - * - * @link http://egov.kz/wps/portal/Content?contentPath=%2Fegovcontent%2Fcitizen_migration%2Fpassport_id_card%2Farticle%2Fiin_info&lang=en - * @link https://ru.wikipedia.org/wiki/%D0%98%D0%BD%D0%B4%D0%B8%D0%B2%D0%B8%D0%B4%D1%83%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B9_%D0%B8%D0%B4%D0%B5%D0%BD%D1%82%D0%B8%D1%84%D0%B8%D0%BA%D0%B0%D1%86%D0%B8%D0%BE%D0%BD%D0%BD%D1%8B%D0%B9_%D0%BD%D0%BE%D0%BC%D0%B5%D1%80 - * - * @param \DateTime $birthDate - * @param integer $gender - * - * @return string 12 digits, like 780322300455 - */ - public static function individualIdentificationNumber(\DateTime $birthDate = null, $gender = self::GENDER_MALE) - { - if (!$birthDate) { - $birthDate = DateTime::dateTimeBetween(); - } - - do { - $population = mt_rand(1000, 2000); - $century = self::getCenturyByYear((int) $birthDate->format('Y')); - - $iin = $birthDate->format('ymd'); - $iin .= (string) self::$genderCenturyMap[$gender][$century]; - $iin .= (string) $population; - $checksum = self::checkSum($iin); - } while ($checksum === 10); - - return $iin . (string) $checksum; - } - - /** - * @param string $iinValue - * - * @return integer - */ - public static function checkSum($iinValue) - { - $controlDigit = self::getControlDigit($iinValue, self::$firstSequenceBitWeights); - - if ($controlDigit === 10) { - return self::getControlDigit($iinValue, self::$secondSequenceBitWeights); - } - - return $controlDigit; - } - - /** - * @param string $iinValue - * @param array $sequence - * - * @return integer - */ - protected static function getControlDigit($iinValue, $sequence) - { - $sum = 0; - - for ($i = 0; $i <= 10; $i++) { - $sum += (int) $iinValue[$i] * $sequence[$i]; - } - - return $sum % 11; - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/kk_KZ/PhoneNumber.php b/vendor/fzaninotto/faker/src/Faker/Provider/kk_KZ/PhoneNumber.php deleted file mode 100644 index edb38dd5..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/kk_KZ/PhoneNumber.php +++ /dev/null @@ -1,16 +0,0 @@ -generator->parse($format)); - } - - /** - * @example 'kim.kr' - */ - public function domainName() - { - return static::randomElement(static::$lastNameAscii) . '.' . $this->tld(); - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/ko_KR/Person.php b/vendor/fzaninotto/faker/src/Faker/Provider/ko_KR/Person.php deleted file mode 100644 index 92d858f5..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/ko_KR/Person.php +++ /dev/null @@ -1,55 +0,0 @@ -generator->parse($format)); - } - - - - public function cellPhoneNumber() - { - $format = self::randomElement(array_slice(static::$formats, 6, 1)); - - return self::numerify($this->generator->parse($format)); - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/ko_KR/Text.php b/vendor/fzaninotto/faker/src/Faker/Provider/ko_KR/Text.php deleted file mode 100644 index 5f5148e5..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/ko_KR/Text.php +++ /dev/null @@ -1,1723 +0,0 @@ -ì— ë‚˜ì˜¤ëŠ” ìš”ê·€ì˜ ë¶ˆë¹› 모양으로 푸르무레 하게 í—ˆê³µì„ ë¹„ì¶”ì˜¤. ë™ê²½ì˜ 불바다는 ë‚´ 마ìŒì„ ë”ìš± ìŒì¹¨í•˜ê²Œ 하였소. -ì´ ë•Œì— ë’¤ì—서, -"모시모시(여보세요)." -하는 소리가 들렸소. ê·¸ê²ƒì€ í° ì €ê³ ë¦¬ë¥¼ ìž…ì€ í˜¸í…” ë³´ì´ì˜€ì†Œ. -"왜?" -하고 나는 고개만 ëŒë ¸ì†Œ. -"ì†ë‹˜ì´ 오셨습니다." -"ì†ë‹˜?" -하고 나는 ë³´ì´ì—게로 한 ê±¸ìŒ ê°€ê¹Œì´ ê°”ì†Œ. 나를 ì°¾ì„ ì†ë‹˜ì´ ì–´ë”” 있나 하고 나는 놀란 것ì´ì˜¤. -"따님께서 오셨습니다. 방으로 모셨습니다." -하고 ë³´ì´ëŠ” 들어가 버리고 ë§ì•˜ì†Œ. -"따님?" -하고 나는 ë”ìš± 놀ëžì†Œ. 순임ì´ê°€ 서울서 나를 ë”°ë¼ì™”나? ê·¸ê²ƒì€ ì•ˆ ë  ë§ì´ì˜¤. 순임ì´ê°€ ë‚´ 뒤를 ë”°ë¼ ë– ë‚¬ë”ë¼ë„ 아무리 빨리 ì™€ë„ ë‚´ì¼ì´ 아니면 못 ì™”ì„ ê²ƒì´ì˜¤. 그러면 누군가. ì •ìž„ì¸ê°€. ì •ìž„ì´ê°€ 병ì›ì—서 뛰어온 것ì¸ê°€. -나는 ë‘근거리는 ê°€ìŠ´ì„ ì–µì§€ë¡œ 진정하면서 ë‚´ ë°©ë¬¸ì„ ì—´ì—ˆì†Œ. -ê·¸ê²ƒì€ ì •ìž„ì´ì—ˆì†Œ. ì •ìž„ì€ ë‚´ê°€ 쓰다가 ë‘” 편지를 ë³´ê³  있다가 벌떡 ì¼ì–´ë‚˜ 내게 달려들어 안겨 버렸소. 나는 얼빠진 ë“¯ì´ ì •ìž„ì´ê°€ 하ë¼ëŠ” 대로 내버려ë‘었소. ê·¸ 편지는 부치려고 ì“´ ê²ƒë„ ì•„ë‹Œë° ê·¸ 편지를 ì •ìž„ì´ê°€ 본 ê²ƒì´ ì•ˆë˜ì—ˆë‹¤ê³  ìƒê°í•˜ì˜€ì†Œ. -형! 나를 ì±…ë§í•˜ì‹œì˜¤. 심히 ë¶€ë„러운 ë§ì´ì§€ë§ˆëŠ” 나는 ì •ìž„ì„ íž˜ê» ê»´ì•ˆì•„ 주고 싶었소. 나는 몇 번ì´ë‚˜ ì •ìž„ì˜ ë“±ì„ êµ½ì–´ 보면서 ë‚´ íŒ”ì— íž˜ì„ ë„£ìœ¼ë ¤ê³  하였소. ì •ìž„ì€ ì‹¬ížˆ 귀여웠소. ì •ìž„ì´ê°€ 그처럼 나를 사모하는 ê²ƒì´ ì‹¬ížˆ 기뻤소. 나는 ê°ì •ì´ ìž¬ìš°ì³ì„œ ëˆˆì´ ì•ˆ ë³´ì´ê³  ì •ì‹ ì´ ëª½ë¡±í•˜ì—¬ì§ì„ 깨달았소. 나는 아프고 쓰린 듯한 기ì¨ì„ 깨달았소. ì˜ì–´ë¡œ 엑스터시ë¼ë“ ì§€, 한문으로 ë¬´ì•„ì˜ ê²½ì§€ëž€ ì´ëŸ° ê²ƒì´ ì•„ë‹Œê°€ 하였소. 나는 사십 í‰ìƒì— ì´ëŸ¬í•œ ê²½í—˜ì„ ì²˜ìŒ í•œ 것ì´ì˜¤. -형! í˜•ì´ ì•„ì‹œë‹¤ì‹œí”¼ 나는 ë‚´ ì•„ë‚´ ì´ì™¸ì— ì Šì€ ì—¬ì„±ì—게 ì´ë ‡ê²Œ 안겨 본 ì¼ì´ 없소. 물론 안아 본 ì¼ë„ 없소. -그러나 형! 나는 나를 눌렀소. ë‚´ 타오르는 ì• ìš•ì„ ì°¨ë””ì°¬ ì´ì§€ì˜ 입김으로 불어서 ë„려고 애를 ì¼ì†Œ. -"글쎄 웬ì¼ì´ëƒ. 앓는 ê²ƒì´ ì´ ë°¤ì¤‘ì— ë¹„ë¥¼ ë§žê³  왜 나온단 ë§ì´ëƒ. 철없는 것 같으니." -하고 나는 ì•„ë²„ì§€ì˜ ìœ„ì—„ìœ¼ë¡œ ì •ìž„ì˜ ë‘ ì–´ê¹¨ë¥¼ 붙들어 ì•”ì²´ì–´ì— ì•‰í˜”ì†Œ. 그리고 ë‚˜ë„ í…Œì´ë¸”ì„ í•˜ë‚˜ 세워 ë‘ê³  ë§žì€íŽ¸ì— ì•‰ì•˜ì†Œ. -ì •ìž„ì€ ë¶€ë„러운 ë“¯ì´ ë‘ ì†ìœ¼ë¡œ ë‚¯ì„ ê°€ë¦¬ìš°ê³  ì œ ë¬´ë¦Žì— ì—Žë“œë ¤ 울기를 시작하오. -ì •ìž„ì€ ëˆ„ëŸ° ê°ˆìƒ‰ì˜ ì™¸íˆ¬ë¥¼ 입었소. ë¬´ì—‡ì„ íƒ€ê³  왔는지 모르지마는 구ë‘ì—는 꽤 ë§Žì´ ë¬¼ì´ ë¬»ê³  모ìžì—는 빗방울 ì–¼ë£©ì´ ë³´ì´ì˜¤. -"네가 ì´ëŸ¬ë‹¤ê°€ 다시 ë³‘ì´ ë”치면 어찌한단 ë§ì´ëƒ. ì•„ì´ê°€ 왜 그렇게 ì² ì´ ì—†ë‹ˆ?" -하고 나는 ë”ìš± 냉정한 어조로 ì±…ë§í•˜ê³  ë°ìŠ¤í¬ ìœ„ì— ë†“ì¸ ë‚´ 편지 초를 ì§‘ì–´ ë°•ë°• 찢어 버렸소. ì¢…ì´ ì°¢ëŠ” ì†Œë¦¬ì— ì •ìž„ì€ ìž ê¹ ê³ ê°œë¥¼ 들어서 처ìŒì—는 ë‚´ ì†ì„ ë³´ê³  다ìŒì—는 ë‚´ ì–¼êµ´ì„ ë³´ì•˜ì†Œ. 그러나 나는 모르는 체하고 ë„로 êµì˜ì— ëŒì•„와 앉아서 가만히 ëˆˆì„ ê°ì•˜ì†Œ. 그리고 ë„무지 í¥ë¶„ë˜ì§€ 아니한 ëª¨ì–‘ì„ ê¾¸ëª„ì†Œ. -형! 어떻게나 힘드는 ì¼ì´ì˜¤? 참으면 ì°¸ì„ìˆ˜ë¡ ë‚´ ì´ë¹¨ì´ 마주 부딪고, ì–¼êµ´ì˜ ê·¼ìœ¡ì€ ì”°ë£©ê±°ë¦¬ê³  ì†ì€ 불ëˆë¶ˆëˆ ì¥ì–´ì§€ì˜¤. -"ì •ë§ ë‚´ì¼ ê°€ì„¸ìš”?" -하고 아마 오 ë¶„ ë™ì•ˆì´ë‚˜ ì¹¨ë¬µì„ ì§€í‚¤ë‹¤ê°€ ì •ìž„ì´ê°€ 고개를 들고 물었소. -"그럼, 가야지." -하고 나는 빙그레 웃어 보였소. -"ì €ë„ ë°ë¦¬ê³  가세요!" -하는 ì •ìž„ì˜ ë§ì€ 마치 ì„œë¦¿ë°œì´ ë‚ ë¦¬ëŠ” 칼날과 같았소. 나는 ê¹œì§ ë†€ë¼ì„œ ì •ìž„ì„ ë°”ë¼ë³´ì•˜ì†Œ. ê·¸ì˜ ëˆˆì€ ë¹›ë‚˜ê³  ìž…ì€ ê¼­ 다물고 ì–¼êµ´ì˜ ê·¼ìœ¡ì€ íŒ½íŒ½í•˜ê²Œ 켕겼소. ì •ìž„ì˜ ì–¼êµ´ì—는 ì°¬ë°”ëžŒì´ ë„는 무서운 ê¸°ìš´ì´ ìžˆì—ˆì†Œ. -나는 즉ê°ì ìœ¼ë¡œ 죽기를 결심한 ì—¬ìžì˜ 모양ì´ë¼ê³  ìƒê°í•˜ì˜€ì†Œ. 열정으로 불ë©ì–´ë¦¬ê°€ ë˜ì—ˆë˜ ì •ìž„ì€ ë‚´ê°€ ë³´ì´ëŠ” 냉랭한 태ë„로 ë§ë¯¸ì•”ì•„ ê°‘ìžê¸° 얼어 버린 것 같았소. -"어디를?" -하고 나는 ì •ìž„ì˜ `ì €ë„ ë°ë¦¬ê³  가세요.' 하는 담대한 ë§ì— 놀ë¼ë©´ì„œ 물었소. -"어디든지, 아버지 가시는 ë°ë©´ 어디든지 저를 ë°ë¦¬ê³  가세요. 저는 아버지를 떠나서는 혼ìžì„œëŠ” 못 ì‚´ ê²ƒì„ ì§€ë‚˜ê°„ ë°˜ 달 ë™ì•ˆì— 잘 알았습니다. 아까 아버지 오셨다 가신 ë’¤ì— ìƒê°í•´ ë³´ë‹ˆê¹ ì•”ë§Œí•´ë„ ì•„ë²„ì§€ëŠ” 다시 ì €ì—게 와 보시지 아니하고 가실 것만 같애요. 그리고 저로 해서 아버지께서는 무슨 í° íƒ€ê²©ì„ ë‹¹í•˜ì‹  것만 같으셔요. ì²˜ìŒ ëµˆì˜¬ ì ì— ë²Œì¨ ê°€ìŠ´ì´ ëœ¨ë”했습니다. 그리고 ì—¬í–‰ì„ ë– ë‚˜ì‹ ë‹¤ëŠ” ë§ì”€ì„ 듣고는 반드시 무슨 í°ì¼ì´ 나셨ëŠë‹ˆë¼ê³ ë§Œ ìƒê°í–ˆìŠµë‹ˆë‹¤. 그리고 저어, 저로 해서 그러신 것만 같고, 저를 버리시고 í˜¼ìž ê°€ì‹œë ¤ëŠ” 것만 같고, 그래서 달려왔ë”니 여기 ì¨ ë†“ìœ¼ì‹  편지를 ë³´ê³  ê·¸ íŽ¸ì§€ì— ë‹¤ë¥¸ ë§ì”€ì€ ì–´ì°Œ ëë“ ì§€, 네 ì¼ê¸°ë¥¼ 보았다 하신 ë§ì”€ì„ 보고는 다 알았습니다. 저와 한 ë°©ì— ìžˆëŠ” ì• ê°€ ì•”ë§Œí•´ë„ ì–´ë¨¸ë‹ˆ 스파ì¸ê°€ë´ìš”. 제가 ìž…ì›í•˜ê¸° ì „ì—ë„ ì œ 눈치를 슬슬 ë³´ê³  ë˜ ì±…ìƒ ì„œëžë„ 뒤지는 눈치가 ë³´ì´ê¸¸ëž˜ ì¼ê¸°ì±…ì€ ëŠ˜ 쇠 잠그는 서ëžì— 넣어 ë‘ì—ˆëŠ”ë° ì•„ë§ˆ 제가 ì •ì‹  ì—†ì´ ì•“ê³  누웠는 ë™ì•ˆì— ì œ 핸드백ì—서 쇳대를 í›”ì³ ê°”ë˜ê°€ë´ìš”. 그래서는 ê·¸ ì¼ê¸°ì±…ì„ êº¼ë‚´ì„œ 서울로 보냈나ë´ìš”. 그걸루 해서 아버지께서는 불명예스러운 ëˆ„ëª…ì„ ì“°ì‹œê³  í•™êµì¼ë„ 내놓으시게 ë˜ê³  ì§‘ë„ ë– ë‚˜ì‹œê²Œ ë˜ì…¨ë‚˜ë´ìš”. 다시는 ì§‘ì— ì•ˆ ëŒì•„오실 양으로 ê²°ì‹¬ì„ í•˜ì…¨ë‚˜ë´ìš”. 아까 병ì›ì—ì„œë„ í•˜ì‹œëŠ” ë§ì”€ì´ ëª¨ë‘ ìœ ì–¸í•˜ì‹œëŠ” 것만 같아서 í½ ì˜ì‹¬ì„ ê°€ì¡Œì—ˆëŠ”ë° ì§€ê¸ˆ ê·¸ ì“°ì‹œë˜ íŽ¸ì§€ë¥¼ 보고는 다 알았습니다. 그렇지만 그렇지만." -하고 웅변으로 ë‚´ë ¤ ë§í•˜ë˜ ì •ìž„ì€ ê°‘ìžê¸° 복받치는 ì—´ì •ì„ ì´ê¸°ì§€ 못하는 듯ì´, 한 번 í•œìˆ¨ì„ ì§€ìš°ê³ , -"그렇지만 저는 아버지를 ë”°ë¼ê°€ìš”. 절루 해서 아버지께서는 ì§‘ë„ ìžƒìœ¼ì‹œê³  ëª…ì˜ˆë„ ìžƒìœ¼ì‹œê³  ì‚¬ì—…ë„ ìžƒìœ¼ì‹œê³  ì¸ìƒì˜ 모든 ê²ƒì„ ë‹¤ 잃으셨으니 저는 아버지를 ë”°ë¼ê°€ìš”. 어디를 가시든지 저는 어린 딸로 아버지를 ë”°ë¼ë‹¤ë‹ˆë‹¤ê°€ 아버지께서 먼저 ëŒì•„가시면 ì €ë„ ë”°ë¼ ì£½ì–´ì„œ 아버지 ë°œ ë°‘ì— ë¬»íž í…Œì•¼ìš”. 제가 먼저 죽거든 제가 ë³‘ì´ ìžˆìœ¼ë‹ˆê¹ ë¬¼ë¡  제가 먼저 죽지요. ì£½ì–´ë„ ì¢‹ìŠµë‹ˆë‹¤. 병ì›ì—서 앓다가 í˜¼ìž ì£½ëŠ” ê±´ ì‹«ì–´ìš”. 아버지 ê³ì—서 죽으면 아버지께서, 오 ë‚´ 딸 정임아 하시고 귀해 주시고 불ìŒížˆ 여겨 주시겠지요. 그리고 ì œ ëª¸ì„ ì–´ë””ë“ ì§€ ë•…ì— ë¬»ìœ¼ì‹œê³  `사랑하는 ë‚´ 딸 ì •ìž„ì˜ ë¬´ë¤'ì´ë¼ê³  패ë¼ë„ ì†ìˆ˜ 쓰셔서 세워 주시지 않겠습니까." -하고 ì •ìž„ì€ ë¹„ì­‰ë¹„ì­‰í•˜ë‹¤ê°€ 그만 무릎 ìœ„ì— ì—Žë”ì ¸ 울고 마오. -나는 다만 ì£½ì€ ì‚¬ëžŒ 모양으로 반쯤 ëˆˆì„ ê°ê³  앉아 있었소. 가슴 ì†ì—는 ì •ìž„ì˜ ê³ì—서 지지 않는 ì—´ì •ì„ í’ˆìœ¼ë©´ì„œë„ ì •ìž„ì˜ ë§ëŒ€ë¡œ ì •ìž„ì„ ë°ë¦¬ê³  ì•„ë¬´ë„ ëª¨ë¥´ëŠ” 곳으로 ê°€ 버리고 ì‹¶ìœ¼ë©´ì„œë„ ë‚˜ëŠ” ì´ ì—´ì •ì˜ ë¶ˆê¸¸ì„ ë‚´ 입김으로 꺼 버리지 아니하면 아니 ë˜ëŠ” 것ì´ì—ˆì†Œ. -"ì•„ì•„, 제가 왜 났어요? 왜 하나님께서 저를 세ìƒì— 보내셨어요? ì•„ë²„ì§€ì˜ ì¼ìƒì„ 파멸시키려 난 것ì´ì§€ìš”? 제가 지금 죽어 버려서 ì•„ë²„ì§€ì˜ ëª…ì˜ˆë¥¼ 회복할 수 있다면 저는 죽어 버릴 í„°ì´ì•¼ìš”. 기ì˜ê²Œ 죽어 버리겠습니다. 제가 ì—¬ëŸ ì‚´ë¶€í„° 오늘날까지 ë°›ì€ ì€í˜œë¥¼ ì œ 목숨 하나로 ê°šì„ ìˆ˜ê°€ 있다면 저는 지금으로 죽어 버리겠습니다. 그렇지만 그렇지만……. -그렇지만 그렇지만 저는 다만 얼마ë¼ë„ 다만 하루ë¼ë„ 아버지 ê³ì—서 ì‚´ê³  ì‹¶ì–´ìš” 다만 하루만ì´ë¼ë„, 아버지! 제가 왜 ì´ë ‡ìŠµë‹ˆê¹Œ, 네? 제가 어려서 ì´ë ‡ìŠµë‹ˆê¹Œ. 미친 ë…„ì´ ë˜ì–´ì„œ ì´ë ‡ìŠµë‹ˆê¹Œ. 아버지께서는 아실 테니 ë§ì”€í•´ 주세요. 하루만ì´ë¼ë„ 아버지를 모시고 아버지 ê³ì—서 살았으면 ì£½ì–´ë„ í•œì´ ì—†ê² ìŠµë‹ˆë‹¤. ì œ ìƒê°ì´ 잘못ì´ì•¼ìš”? ì œ ìƒê°ì´ 죄야요? 왜 죄입니까? 아버지, 저를 버리시고 í˜¼ìž ê°€ì‹œì§€ 마세요, 네? `정임아, 너를 ë°ë¦¬ê³  가마.' 하고 약ì†í•´ 주세요, 네." -ì •ìž„ì€ ì•„ì£¼ 담대하게 제가 í•˜ê³ ìž í•˜ëŠ” ë§ì„ 다 하오. ê·¸ 얌전한, ìˆ˜ì‚½í•œì •ìž„ì˜ ì†ì— ì–´ë”” 그러한 용기가 있었ë˜ê°€, ì°¸ ì´ìƒí•œ ì¼ì´ì˜¤. 나는 귀여운 어린 계집애 ì •ìž„ì˜ ì†ì— ì—‰í¼í•œ ì—¬ìžê°€ ë“¤ì–´ì•‰ì€ ê²ƒì„ ë°œê²¬í•˜ì˜€ì†Œ. 그가 몇 가지 재료(ë‚´ê°€ ì—¬í–‰ì„ ë– ë‚œë‹¤ëŠ” 것과 ì œ ì¼ê¸°ë¥¼ 보았다는 것)를 종합하여 나와 ì €ì™€ì˜ ìƒˆì—, ë˜ ê·¸ ë•Œë¬¸ì— ì–´ë– í•œ ì¼ì´ ì¼ì–´ë‚œ ê²ƒì„ ì¶”ì¸¡í•˜ëŠ” ê·¸ ìƒìƒë ¥ë„ 놀ëžê±°ë‹ˆì™€ 그렇게 ë‚´ 앞ì—서는 별로 ìž…ë„ ë²Œë¦¬ì§€ ì•„ë‹ˆí•˜ë˜ ê·¸ê°€ ì´ì²˜ëŸ¼ 담대하게 ì œ ì†ì— 있는 ë§ì„ ê±°ë¦¬ë‚Œì—†ì´ ë‹¤ í•´ 버리는 용기를 아니 놀랄 수 없었소. ë‚´ê°€, 사내요 ì–´ë¥¸ì¸ ë‚´ê°€ ë„리어 ì •ìž„ì—게 리드를 받고 ë†€ë¦¼ì„ ë°›ìŒì„ 깨달았소. -그러나 ì •ìž„ì„ ìœ„í•´ì„œë“ ì§€, 중년 남ìžì˜ ìœ„ì‹ ì„ ìœ„í•´ì„œë“ ì§€ 나는 ì˜ì§€ë ¥ìœ¼ë¡œ, ë„ë•력으로, ì •ìž„ì„ ëˆ„ë¥´ê³  훈계하지 아니하면 아니 ë˜ê² ë‹¤ê³  ìƒê°í•˜ì˜€ì†Œ. -"정임아." -하고 나는 비로소 ìž…ì„ ì—´ì–´ì„œ 불렀소. ë‚´ ì–´ì„±ì€ ìž¥ì¤‘í•˜ì˜€ì†Œ. 나는 í•  수 있는 ìœ„ì—„ì„ ë‹¤í•˜ì—¬ `정임아.' 하고 부른 것ì´ì˜¤. -"정임아, 네 ì†ì€ 다 알았다. 네 ë§ˆìŒ ë„¤ ëœ»ì€ ê·¸ë§Œí•˜ë©´ 다 알았다. 네가 나를 그처럼 ìƒê°í•´ 주는 ê²ƒì„ ê³ ë§™ê²Œ ìƒê°í•œë‹¤. 기ì˜ê²Œë„ ìƒê°í•œë‹¤. 그러나 정임아." -하고 나는 ì¼ì¸µ 태ë„와 소리를 엄숙하게 하여, -"네가 청하는 ë§ì€ 절대로 ë“¤ì„ ìˆ˜ 없는 ë§ì´ë‹¤. ë‚´ê°€ 너를 ì¹œë”¸ê°™ì´ ì‚¬ëž‘í•˜ê¸° ë•Œë¬¸ì— ë‚˜ëŠ” 너를 ë°ë¦¬ê³  가지 못하는 것ì´ë‹¤. 나는 세ìƒì—서 죽고 ì¡°ì„ ì—서 죽ë”ë¼ë„ 너는 죽어서 아니 ëœë‹¤. 차마 너까지는 죽ì´ê³  ì‹¶ì§€ 아니하단 ë§ì´ë‹¤. ë‚´ê°€ ì–´ë”” 가서 없어져 버리면 세ìƒì€ 네게 씌운 ëˆ„ëª…ì´ ì• ë§¤í•œ ì¤„ì„ ì•Œê²Œ ë  ê²ƒì´ ì•„ë‹ˆëƒ. 그리ë˜ë©´ 너는 ì¡°ì„ ì˜ ì¢‹ì€ ì¼ê¾¼ì´ ë˜ì–´ì„œ ì¼ë„ ë§Žì´ í•˜ê³  ë˜ ì‚¬ëž‘í•˜ëŠ” ë‚¨íŽ¸ì„ ë§žì•„ì„œ í–‰ë³µëœ ìƒí™œë„ í•  수 ìžˆì„ ê²ƒì´ ì•„ë‹ˆëƒ. ê·¸ê²ƒì´ ë‚´ê°€ 네게 ë°”ë¼ëŠ” 것ì´ë‹¤. ë‚´ê°€ ì–´ë”” ê°€ 있든지, ë‚´ê°€ ì‚´ì•„ 있는 ë™ì•ˆ 나는 네가 잘ë˜ëŠ” 것만, 행복ë˜ê²Œ 사는 것만 ë°”ë¼ë³´ê³  í˜¼ìž ê¸°ë»í•  ê²ƒì´ ì•„ë‹ˆëƒ. -네가 다 옳게 알았다. 나는 네 ë§ëŒ€ë¡œ ì¡°ì„ ì„ ì˜ì›ížˆ 떠나기로 하였다. 그렇지마는 나는 ì´ë ‡ê²Œ ëœ ê²ƒì„ ì¡°ê¸ˆë„ ìŠ¬í¼í•˜ì§€ 아니한다. 너를 위해서 ë‚´ê°€ 무슨 í¬ìƒì„ 한다고 하면 내게는 ê·¸ê²ƒì´ í° ê¸°ì¨ì´ë‹¤. ê·¸ë¿ ì•„ë‹ˆë¼, 나는 ì¸ì œëŠ” 세ìƒì´ 싫어졌다. ë” ì‚´ê¸°ê°€ 싫어졌다. ë‚´ê°€ ì‹­ì—¬ ë…„ ë™ì•ˆ ì „ìƒëª…ì„ ë°”ì³ì„œ êµìœ¡í•œ í•™ìƒë“¤ì—게까지 ë°°ì²™ì„ ë°›ì„ ë•Œì—는 나는 지금까지 살아온 ê²ƒì„ ìƒê°ë§Œ í•˜ì—¬ë„ ì§„ì €ë¦¬ê°€ 난다. 그렇지마는 나는 ì´ê²ƒì´ 다 ë‚´ê°€ 부족한 ë•Œë¬¸ì¸ ì¤„ì„ ìž˜ 안다. 나는 ì¡°ì„ ì„ ì›ë§í•œë‹¤ë“ ê°€, ë‚´ ë™í¬ë¥¼ ì›ë§í•œë‹¤ë“ ê°€, 그럴 ìƒê°ì€ 없다. ì›ë§ì„ 한다면 나 ìžì‹ ì˜ ë¶€ì¡±ì„ ì›ë§í•  ë¿ì´ë‹¤. ë‚´ê°€ ì›ì²´ êµìœ¡ì„ 한다든지 ë‚¨ì˜ ì§€ë„ìžê°€ ëœë‹¤ë“ ì§€ í•  ìžê²©ì´ ì—†ìŒì„ ì›ë§í•œë‹¤ë©´ ì›ë§í• ê¹Œ, ë‚´ê°€ 어떻게 ì¡°ì„ ì´ë‚˜ ì¡°ì„  ì‚¬ëžŒì„ ì›ë§í•˜ëŠëƒ. 그러니까 ì¸ì œ 내게 ë‚¨ì€ ì¼ì€ 나를 ì¡°ì„ ì—서 없애 버리는 것ì´ë‹¤. ê°ížˆ ì‹­ì—¬ ë…„ ê°„ êµìœ¡ê°€ë¼ê³  ìžì²˜í•´ ì˜¤ë˜ ê±°ì§“ë˜ê³  ì™¸ëžŒëœ ìƒí™œì„ ëŠì–´ 버리는 것ì´ë‹¤. 남편 ë…¸ë¦‡ë„ ëª» 하고 아버지 ë…¸ë¦‡ë„ ëª» 하는 ì‚¬ëžŒì´ ë‚¨ì˜ ìŠ¤ìŠ¹ì€ ì–´ë–»ê²Œ ë˜ê³  ì§€ë„ìžëŠ” 어떻게 ë˜ëŠëƒ. 하니까 나는 ì´ì œ 세ìƒì„ 떠나 버리는 ê²ƒì´ ì¡°ê¸ˆë„ ìŠ¬í”„ì§€ 아니하고 ë„리어 ëª¸ì´ ê°€ëœ¬í•˜ê³  유쾌해지는 것 같다. -ì˜¤ì§ í•˜ë‚˜ 마ìŒì— 걸리는 ê²ƒì€ ë‚´ ì„ ë°°ìš” 사랑하는 ë™ì§€ì´ë˜ 남 ì„ ìƒì˜ 유ì¼í•œ 혈육ì´ë˜ 네게다가 ëˆ„ëª…ì„ ì”Œìš°ê³  가는 것ì´ë‹¤." -"그게 ì–´ë”” 아버지 잘못입니까?" -하고 ì •ìž„ì€ ìž…ìˆ ì„ ê¹¨ë¬¼ì—ˆì†Œ. -"ëª¨ë‘ ì œê°€ ì² ì´ ì—†ì–´ì„œ ì € 때문ì—……." -하고 ì •ìž„ì€ ëª¸ì„ ë–¨ê³  울었소. -"아니! 그렇게 ìƒê°í•˜ì§€ 마ë¼. ë‚´ê°€ 지금 세ìƒì„ 버릴 ë•Œì— ë¬´ìŠ¨ 기ì¨ì´ 한 가지 남는 ê²ƒì´ ìžˆë‹¤ê³  하면 너 하나가, ì´ ì„¸ìƒì—서 ì˜¤ì§ ë„ˆ 하나가 나를 ë”°ë¼ ì£¼ëŠ” 것ì´ë‹¤. 아마 ë„ˆë„ ë‚˜ë¥¼ 잘못 알고 ë”°ë¼ ì£¼ëŠ” 것ì´ê² ì§€ë§ˆëŠ” 세ìƒì´ 다 나를 버리고, 처ìžê¹Œì§€ë„ 다 나를 버릴 ë•Œì— ì˜¤ì§ ë„ˆ 하나가 나를 소중히 알아 주니 ì–´ì°Œ 고맙지 않겠ëŠëƒ. 그러니까 정임아 너는 ëª¸ì„ ì¡°ì‹¬í•˜ì—¬ì„œ ê±´ê°•ì„ íšŒë³µí•˜ì—¬ì„œ 오래 잘 ì‚´ê³ , 그리고 나를 ìƒê°í•´ 다오." -하고 ë‚˜ë„ ìš¸ì—ˆì†Œ. -형! ë‚´ê°€ ì •ìž„ì—게 ì´ëŸ° ë§ì„ 한 ê²ƒì´ ìž˜ëª»ì´ì§€ìš”. 그러나 나는 ê·¸ ë•Œì— ì´ëŸ° ë§ì„ 아니 í•  수 없었소. 왜 그런고 하니, ê·¸ê²ƒì´ ë‚´ ì§„ì •ì´ë‹ˆê¹Œ. ë‚˜ë„ í•™êµ ì„ ìƒìœ¼ë¡œ, êµìž¥ìœ¼ë¡œ, ë˜ ì£¼ì œë„˜ê²Œ ì§€ì‚¬ë¡œì˜ ì¼ìƒì„ ë³´ë‚´ë…¸ë¼ê³  마치 ì˜¤ì§ ì–¼ìŒ ê°™ì€ ì˜ì§€ë ¥ë§Œ 가진 사람 모양으로 사십 í‰ìƒì„ ì‚´ì•„ 왔지마는 ë‚´ ì†ì—ë„ ì—´ì •ì€ ìžˆì—ˆë˜ ê²ƒì´ì˜¤. 다만 ê·¸ ì—´ì •ì„ ëˆ„ë¥´ê³  죽ì´ê³  ìžˆì—ˆì„ ë¿ì´ì˜¤. 물론 나는 아마 ì¼ìƒì— ì´ ì—´ì •ì˜ ê³ ì‚를 놓아 줄 ë‚ ì´ ì—†ê² ì§€ìš”. ë§Œì¼ ë‚´ê°€ ì´ ì—´ì •ì˜ ê³ ì‚를 놓아서 ìžìœ ë¡œ 달리게 한다고 하면 나는 ì´ ê²½ìš°ì— ì •ìž„ì„ ì•ˆê³ , ë‚´ 열정으로 ì •ìž„ì„ íƒœì›Œ 버렸ì„ëŠ”ì§€ë„ ëª¨ë¥´ì˜¤. 그러나 나는 ì •ìž„ì´ê°€ 열정으로 íƒˆìˆ˜ë¡ ë‚˜ëŠ” ë‚´ ì—´ì •ì˜ ê³ ì‚를 ë‘ ì†ìœ¼ë¡œ 꽉 붙들고 ì´ë¥¼ 악물고 매달릴 ê²°ì‹¬ì„ í•œ 것ì´ì˜¤. -열한 시! -"정임아. ì¸ì œ 병ì›ìœ¼ë¡œ 가거ë¼." -하고 나는 엄연하게 명령하였소. -"ë‚´ì¼ ì €ë¥¼ 보시고 떠나시지요?" -하고 ì •ìž„ì€ ëˆˆë¬¼ì„ ì”»ê³  물었소. -"그럼, Jì¡°êµìˆ˜ë„ 만나고 ë„ˆë„ ë³´ê³  떠나지." -하고 나는 ê±°ì§“ë§ì„ 하였소. ì´ ê²½ìš°ì— ë‚´ê°€ ê±°ì§“ë§ìŸì´ë¼ëŠ” í° ì£„ì¸ì´ ë˜ëŠ” ê²ƒì´ ì •ìž„ì—게 대하여 ì •ìž„ì„ ìœ„í•˜ì—¬ 가장 ì˜³ì€ ì¼ì´ë¼ê³  ìƒê°í•œ 까닭ì´ì˜¤. -ì •ìž„ì€, 무서운 ì§ê°ë ¥ê³¼ ìƒìƒë ¥ì„ 가진 ì •ìž„ì€ ë‚´ ë§ì˜ ì§„ì‹¤ì„±ì„ ì˜ì‹¬í•˜ëŠ” ë“¯ì´ ë‚˜ë¥¼ 뚫어지게 ë°”ë¼ë³´ì•˜ì†Œ. 나는 차마 ì •ìž„ì˜ ì‹œì„ ì„ ë§ˆì£¼ ë³´ì§€ 못하여 외면하여 버렸소. -ì •ìž„ì€ ìˆ˜ê±´ìœ¼ë¡œ ëˆˆë¬¼ì„ ì”»ê³  ì²´ê²½ ì•žì— ê°€ì„œ í™”ìž¥ì„ ê³ ì¹˜ê³  그리고, -"저는 가요." -하고 ë‚´ ì•žì— í—ˆë¦¬ë¥¼ 굽혀서 작별 ì¸ì‚¬ë¥¼ 하였소. -"오, ê°€ ìžê±°ë¼." -하고 나는 극히 범연하게 대답하였소. 나는 ìžë¦¬ì˜·ì„ 입었기 ë•Œë¬¸ì— í˜„ê´€ê¹Œì§€ 작별할 ìˆ˜ë„ ì—†ì–´ì„œ ë³´ì´ë¥¼ 불러 ìžë™ì°¨ë¥¼ 하나 준비하ë¼ê³  명하고 ë‚´ ë°©ì—서 작별할 ìƒê°ì„ 하였소. -"ë‚´ì¼ ë³‘ì›ì— 오세요?" -하고 ì •ìž„ì€ ê³ ê°œë¥¼ 숙ì´ê³  낙루하였소. -"오, 가마." -하고 나는 ë˜ ê±°ì§“ë§ì„ 하였소. 세ìƒì„ 버리기로 결심한 ì‚¬ëžŒì˜ ê±°ì§“ë§ì€ í•˜ë‚˜ë‹˜ê»˜ì„œë„ ìš©ì„œí•˜ì‹œê² ì§€ìš”. 설사 ë‚´ê°€ ê±°ì§“ë§ì„ 한 죄로 ì§€ì˜¥ì— ê°„ë‹¤ 하ë”ë¼ë„ ì´ ê²½ìš°ì— ì •ìž„ì„ ìœ„í•˜ì—¬ ê±°ì§“ë§ì„ 아니 í•  수가 없지 않소? ë‚´ê°€ ê±°ì§“ë§ì„ 아니 하면 ì •ìž„ì€ ì•„ë‹ˆ ê°ˆ ê²ƒì´ ë¶„ëª…í•˜ì˜€ì†Œ. -"ì „ 가요." -하고 ì •ìž„ì€ ë˜ í•œ 번 ì ˆì„ í•˜ì˜€ìœ¼ë‚˜ 소리를 내어서 울었소. -"울지 마ë¼! 몸 ìƒí•œë‹¤." -하고 나는 ì •ìž„ì—게 대한 ìµœí›„ì˜ ì¹œì ˆì„ ì •ìž„ì˜ ê³ì— 한 ê±¸ìŒ ê°€ê¹Œì´ ê°€ì„œ 어깨를 ë˜ë‹¥ë˜ë‹¥í•˜ì—¬ 주고, 외투를 입혀 주었소. -"안녕히 주무세요." -하고 ì •ìž„ì€ ë¬¸ì„ ì—´ê³  나가 버렸소. -ì •ìž„ì˜ ê±¸ì–´ê°€ëŠ” 소리가 차차 멀어졌소. -나는 얼빠진 사람 모양으로 ê·¸ ìžë¦¬ì— ìš°ë‘커니 서 있었소. -ì°½ì— ë¶€ë”ªížˆëŠ” ë¹—ë°œ 소리가 들리고 ìžë™ì°¨ 소리가 먼 나ë¼ì—서 오는 ê²ƒê°™ì´ ë“¤ë¦¬ì˜¤. ì´ê²ƒì´ ì •ìž„ì´ê°€ 타고 가는 ìžë™ì°¨ 소리ì¸ê°€. 나는 ì •ìž„ì„ ë”°ë¼ê°€ì„œ 붙들어 오고 싶었소. ë‚´ 몸과 마ìŒì€ ì •ìž„ì„ ë”°ë¼ì„œ í—ˆê³µì— ë– ê°€ëŠ” 것 같았소. -ì•„ì•„ ì´ë ‡ê²Œ 나는 ì •ìž„ì„ ê³ì— ë‘ê³  ì‹¶ì„까. ì´ë ‡ê²Œ ë‚´ê°€ ì •ìž„ì˜ ê³ì— 있고 ì‹¶ì„까. 그러하건마는 나는 ì •ìž„ì„ ë–¼ì–´ 버리고 가지 아니하면 아니 ëœë‹¤! ê·¸ê²ƒì€ ì• ë“는 ì¼ì´ë‹¤. 기막히는 ì¼ì´ë‹¤! 그러나 ë‚´ ë„ë•ì  ì±…ìž„ì€ ì—„ì •í•˜ê²Œ 그렇게 명령하지 않ëŠëƒ. 나는 ì´ ë„ë•ì  ì±…ìž„ì˜ ëª…ë ¹ ê·¸ê²ƒì€ ë”위가 없는 명령ì´ë‹¤ ì„ í„¸ë만치ë¼ë„ 휘어서는 아니 ëœë‹¤. -그러나 ì •ìž„ì´ê°€ 호텔 현관까지 ìžë™ì°¨ë¥¼ 타기 ì „ì— í•œ 번만 ë” ë°”ë¼ë³´ëŠ” ê²ƒë„ ëª» í•  ì¼ì¼ê¹Œ. 한 번만, ìž ê¹ë§Œ ë” ë°”ë¼ë³´ëŠ” ê²ƒë„ ëª» í•  ì¼ì¼ê¹Œ. ìž ê¹ë§Œ ì¼ ë¶„ë§Œ 아니 ì¼ ì´ˆë§Œ 한 시그마ë¼ëŠ” 극히 ì§§ì€ ë™ì•ˆë§Œ ë°”ë¼ë³´ëŠ” ê²ƒë„ ëª» í•  ì¼ì¼ê¹Œ. 아니, ì •ìž„ì„ í•œ 시그마 ë™ì•ˆë§Œ ë” ë³´ê³  싶다 나는 ì´ë ‡ê²Œ ìƒê°í•˜ê³  벌떡 ì¼ì–´ë‚˜ì„œ ë„ì–´ì˜ í•¸ë“¤ì— ì†ì„ 대었소. -`안 ëœë‹¤! 옳잖다!' -하고 나는 ë‚´ ì†ŒíŒŒì— ëŒì•„와서 í„¸ì© ëª¸ì„ ë˜ì¡Œì†Œ. -`ìµœí›„ì˜ ìˆœê°„ì´ ì•„ë‹ˆëƒ. ìµœí›„ì˜ ìˆœê°„ì— ìš©ê°ížˆ ì´ê²¨ì•¼ í•  ê²ƒì´ ì•„ë‹ˆëƒ. 아서ë¼! 아서ë¼!' -하고 나는 í˜¼ìž ì£¼ë¨¹ì„ ë¶ˆëˆë¶ˆëˆ ì¥ì—ˆì†Œ. -ì´ ë•Œì— ì§œë°•ì§œë°• 하고 걸어오는 소리가 들리오. ë‚´ ê°€ìŠ´ì€ ìŒë°©ë§ì´ë¡œ ë‘들기는 ê²ƒê°™ì´ ë›°ì—ˆì†Œ. -`설마 ì •ìž„ì¼ê¹Œ.' -í•˜ë©´ì„œë„ ë‚˜ëŠ” ìˆ¨ì„ ì£½ì´ê³  귀를 기울였소. -ê·¸ ë°œìžêµ­ 소리는 분명 ë‚´ 문 ë°–ì— ì™€ì„œ 그쳤소. 그리고는 소리가 없었소. -`ë‚´ ê·€ì˜ í™˜ê°ì¸ê°€.' -하고 나는 í•œìˆ¨ì„ ë‚´ì‰¬ì—ˆì†Œ. -그러나 ë‹¤ìŒ ìˆœê°„ ë˜ ë‘ì–´ 번 ë¬¸ì„ ë‘드리는 소리가 들렸소. -"ì´ì—스." -하고 나는 대답하고 ë¬¸ì„ ë°”ë¼ë³´ì•˜ì†Œ. -ë¬¸ì´ ì—´ë ¸ì†Œ. -들어오는 ì´ëŠ” ì •ìž„ì´ì—ˆì†Œ. -"웬ì¼ì´ëƒ." -하고 나는 엄숙한 태ë„를 지었소. 그것으로 ì¼ ì´ˆì˜ ì¼ì²œë¶„ì§€ ì¼ì´ë¼ë„ 다시 한 번 ë³´ê³  ì‹¶ë˜ ì •ìž„ì„ ë³´ê³  기ì¨ì„ 카무플ë¼ì£¼í•œ 것ì´ì˜¤. -ì •ìž„ì€ ì„œìŠ´ì§€ 않고 ë‚´ ë’¤ì— ì™€ì„œ ë‚´ êµì˜ì— ëª¸ì„ ê¸°ëŒ€ë©°, -"ì•”ë§Œí•´ë„ ì˜¤ëŠ˜ì´ ë§ˆì§€ë§‰ì¸ ê²ƒë§Œ 같아서, 다시 뵈올 ê¸°ì•½ì€ ì—†ëŠ” 것만 같아서 가다가 ë„로 왔습니다. 한 번만 ë” ëµ™ê³  ê°ˆ 양으로요. 그래 ë„로 ì™€ì„œë„ ë“¤ì–´ì˜¬ê¹Œ ë§ê¹Œ 하고 주저주저하다가 ì´ê²ƒì´ 마지막ì¸ë° 하고 용기를 내어서 들어왔습니다. ë‚´ì¼ ì €ë¥¼ 보시고 가신다는 ê²ƒì´ ë¶€ëŸ¬ 하신 ë§ì”€ë§Œ 같고, 마지막 뵈옵고, ëµˆì˜¨ëŒ€ë„ ê·¸ëž˜ë„ í•œ 번 ë” ëµˆì˜µê¸°ë§Œ í•´ë„……." -하고 ì •ìž„ì˜ ë§ì€ ëì„ ì•„ë¬¼ì§€ 못하였소. 그는 ë‚´ 등 ë’¤ì— ì„œ 있기 ë•Œë¬¸ì— ê·¸ê°€ 어떠한 í‘œì •ì„ í•˜ê³  있는지는 ë³¼ 수가 없었소. 나는 다만 ì•„ë²„ì§€ì˜ ìœ„ì—„ìœ¼ë¡œ ì •ë©´ì„ ë°”ë¼ë³´ê³  ìžˆì—ˆì„ ë¿ì´ì˜¤. -`정임아, ë‚˜ë„ ë„¤ê°€ ë³´ê³  싶었다. 네 뒤를 ë”°ë¼ê°€ê³  싶었다. ë‚´ 몸과 마ìŒì€ 네 뒤를 ë”°ë¼ì„œ 허공으로 날았다. 나는 너를 한 ì´ˆë¼ë„ 한 ì´ˆì˜ ì²œë¶„ì§€ ì¼ ë™ì•ˆì´ë¼ë„ 한 번 ë” ë³´ê³  싶었다. 정임아, ë‚´ ì§„ì •ì€ ë„ˆë¥¼ 언제든지 ë‚´ ê³ì— ë‘ê³  싶다. 정임아, 지금 ë‚´ ìƒëª…ì´ ê°€ì§„ ê²ƒì€ ì˜¤ì§ ë„ˆë¿ì´ë‹¤.' -ì´ëŸ° ë§ì´ë¼ë„ 하고 싶었소. 그러나 ì´ëŸ° ë§ì„ 하여서는 아니 ë˜ì˜¤! ë§Œì¼ ë‚´ê°€ ì´ëŸ° ë§ì„ 하여 준다면 ì •ìž„ì´ê°€ 기ë»í•˜ê² ì§€ìš”. 그러나 나는 ì •ìž„ì´ì—게 ì´ëŸ° 기ì¨ì„ 주어서는 아니 ë˜ì˜¤! -나는 어디까지든지 ì•„ë²„ì§€ì˜ ìœ„ì—„, ì•„ë²„ì§€ì˜ ëƒ‰ì •í•¨ì„ ì•„ë‹ˆ 지켜서는 아니 ë˜ì˜¤. -그렇지마는 ë‚´ ê°€ìŠ´ì— íƒ€ì˜¤ë¥´ëŠ” ì´ë¦„ì§€ì„ ìˆ˜ 없는 ì—´ì •ì˜ ë¶ˆê¸¸ì€ ë‚´ ì´ì„±ê³¼ ì˜ì§€ë ¥ì„ 태워 버리려 하오. 나는 ëˆˆì´ ì•„ëœ©ì•„ëœ©í•¨ì„ ê¹¨ë‹«ì†Œ. 나는 ë‚´ ìƒëª…ì˜ ë¶ˆê¸¸ì´ ê¹œë°•ê¹œë°•í•¨ì„ ê¹¨ë‹«ì†Œ. -그렇지마는! ì•„ì•„ 그렇지마는 나는 ì´ ë„ë•ì  ì±…ìž„ì˜ ë¬´ìƒ ëª…ë ¹ì˜ ë°œë ¹ìžì¸ ì“´ ìž”ì„ ë§ˆì‹œì§€ 아니하여서는 아니 ë˜ëŠ” 것ì´ì˜¤. -`ì‚°! 바위!' -나는 ì •ì‹ ì„ ê°€ë‹¤ë“¬ì–´ì„œ ì´ê²ƒì„ 염하였소. -그러나 ì—´ì •ì˜ íŒŒë„ê°€ 치는 ê³³ì— ì‚°ì€ ì›€ì§ì´ì§€ 아니하오? 바위는 í”들리지 아니하오? 태산과 ë°˜ì„ì´ ê·¸ í° ë¶ˆê¸¸ì— íƒ€ì„œ 재가 ë˜ì§€ëŠ” 아니하오? ì¸ìƒì˜ 모든 힘 ê°€ìš´ë° ì—´ì •ë³´ë‹¤ ë” í­ë ¥ì ì¸ ê²ƒì´ ì–´ë”” 있소? ì•„ë§ˆë„ ìš°ì£¼ì˜ ëª¨ë“  힘 ê°€ìš´ë° ì‚¬ëžŒì˜ ì—´ì •ê³¼ ê°™ì´ í­ë ¥ì , 불가항력ì ì¸ ê²ƒì€ ì—†ìœ¼ë¦¬ë¼. 뇌성, 벽력, 글쎄 그것ì—나 비길까. ì°¨ë¼ë¦¬ 천체와 천체가 수학ì ìœ¼ë¡œ 계산할 수 없는 비ìƒí•œ ì†ë ¥ì„ 가지고 마주 달려들어서 ìš°ë¦¬ì˜ ê·€ë¡œ ë“¤ì„ ìˆ˜ 없는 í° ì†Œë¦¬ì™€ 우리가 굳다고 ì¼ì»«ëŠ” 금강ì„ì´ë¼ë„ ì¦ê¸°ë¥¼ 만들고야 ë§ ë§Œí•œ ì—´ì„ ë°œí•˜ëŠ” ì¶©ëŒì˜ 순간ì—나 비길까. 형. 사람ì´ë¼ëŠ” 존재가 ìš°ì£¼ì˜ ëª¨ë“  존재 ì¤‘ì— ê°€ìž¥ 비ìƒí•œ ì¡´ìž¬ì¸ ê²ƒ 모양으로 ì‚¬ëžŒì˜ ì—´ì •ì˜ íž˜ì€ ìš°ì£¼ì˜ ëª¨ë“  신비한 힘 ê°€ìš´ë° ê°€ìž¥ 신비한 íž˜ì´ ì•„ë‹ˆê² ì†Œ? 대체 ìš°ì£¼ì˜ ëª¨ë“  íž˜ì€ ê·¸ê²ƒì´ ì•„ë¬´ë¦¬ í° íž˜ì´ë¼ê³  하ë”ë¼ë„ ì € ìžì‹ ì„ 깨뜨리는 ê²ƒì€ ì—†ì†Œ. 그렇지마는 사람ì´ë¼ëŠ” ì¡´ìž¬ì˜ ì—´ì •ì€ ëŠ¥ížˆ ì œ ìƒëª…ì„ ê¹¨ëœ¨ë ¤ 가루를 만들고 ì œ ìƒëª…ì„ ì‚´ë¼ì„œ 소지를 올리지 아니하오? 여보, 대체 ì´ì—서 ë” í­ë ¥ì´ìš”, 신비ì ì¸ ê²ƒì´ ì–´ë”” 있단 ë§ì´ì˜¤. -ì´ ë•Œ ë‚´ ìƒíƒœ, 어깨 ë’¤ì—서 열정으로 타고 섰는 ì •ìž„ì„ ëŠë¼ëŠ” ë‚´ ìƒíƒœëŠ” 바야í로 대í­ë°œ, 대충ëŒì„ 기다리는 아슬아슬한 때가 아니었소. ë§Œì¼ ì¡°ê¸ˆë§Œì´ë¼ë„ ë‚´ê°€ ë‚´ ì—´ì •ì˜ ê³ ì‚ì— ëŠ¦ì¶¤ì„ ì¤€ë‹¤ê³  하면 무서운 대í­ë°œì´ ì¼ì–´ë‚¬ì„ 것ì´ì˜¤. -"정임아!" -하고 나는 충분히 마ìŒì„ ì§„ì •í•´ 가지고 고개를 옆으로 ëŒë ¤ ì •ìž„ì˜ ì–¼êµ´ì„ ì°¾ì•˜ì†Œ. -"네ì—." -하고 ì •ìž„ì€ ìž…ì„ ì•½ê°„ ë‚´ ê·€ 가까ì´ë¡œ 가져와서 ê·¸ 씨근거리는 소리가 분명히 ë‚´ ê·€ì— ë“¤ë¦¬ê³  ê·¸ 후ëˆí›„ëˆí•˜ëŠ” 뜨거운 ìž…ê¹€ì´ ë‚´ 목과 ëº¨ì— ê°ê°ë˜ì—ˆì†Œ. -억지로 ì§„ì •í•˜ì˜€ë˜ ë‚´ ê°€ìŠ´ì€ ë‹¤ì‹œ 설레기를 시작하였소. ê·¸ 불규칙한 숨소리와 뜨거운 ìž…ê¹€ 때문ì´ì—ˆì„까. -"시간 늦는다. 어서 가거ë¼. ì´ ì•„ë²„ì§€ëŠ” 언제까지든지 너를 사랑하는 딸 로 소중히 소중히 ê°€ìŠ´ì— í’ˆê³  있으마. ë˜ í›„ì¼ì— 다시 만날 ë•Œë„ ìžˆì„ì§€ ì•„ëŠëƒ. 설사 다시 만날 때가 없다기로니 ê·¸ê²ƒì´ ë¬´ì—‡ì´ ê·¸ë¦¬ 대수ëƒ. ë‚˜ì´ ë§Žì€ ì‚¬ëžŒì€ ë¨¼ì € 죽고 ì Šì€ ì‚¬ëžŒì€ ì˜¤ëž˜ 살아서 ì¸ìƒì˜ ì¼ì„ ë§Žì´ í•˜ëŠ” ê²ƒì´ ìˆœì„œê°€ 아니ëƒ. 너는 ëª¸ì´ ì•„ì§ ì•½í•˜ë‹ˆ 마ìŒì„ 잘 안정해서 어서 ê±´ê°•ì„ íšŒë³µí•˜ì—¬ë¼. 그리고 굳세게 굳세게, 힘있게 힘있게 ì‚´ì•„ 다오. ì¡°ì„ ì€ ì‚¬ëžŒì„ êµ¬í•œë‹¤. 나 ê°™ì€ ì‚¬ëžŒì€ ì¸ì œ 조선서 ë” ì¼í•  ìžê²©ì„ 잃어버린 사람ì´ì§€ë§ˆëŠ” 네야 ì–´ë– ëƒ. 설사 누가 무슨 ë§ì„ 해서 í•™êµì—서 학비를 아니 준다거든 ë‚´ê°€ 네게 준 ìž¬ì‚°ì„ ê°€ì§€ê³  네 마ìŒëŒ€ë¡œ 공부를 하려무나. 네가 그렇게 í•´ 주어야 나를 위하는 것ì´ë‹¤. ìž ì¸ì œ 가거ë¼. 네 ì•žê¸¸ì´ ì–‘ì–‘í•˜ì§€ 아니하ëƒ. ìž ì¸ì œ 가거ë¼. 나는 ë‚´ì¼ ì•„ì¹¨ ë™ê²½ì„ 떠날란다. ìž ì–´ì„œ." -하고 나는 í™”í‰í•˜ê²Œ 웃는 낯으로 ì¼ì–´ì„°ì†Œ. -ì •ìž„ì€ ìš¸ë¨¹ìš¸ë¨¹í•˜ê³  고개를 숙ì´ì˜¤. -ë°–ì—서는 ë°”ëžŒì´ ì ì  강해져서 소리를 하고 ìœ ë¦¬ì°½ì„ í”드오. -"그럼, ì „ 가요." -하고 ì •ìž„ì€ ê³ ê°œë¥¼ 들었소. -"그래. 어서 가거ë¼. ë²Œì¨ ì—´í•œì‹œ ë°˜ì´ë‹¤. ë³‘ì› ë¬¸ì€ ì•„ë‹ˆ 닫니!" -ì •ìž„ì€ ëŒ€ë‹µì´ ì—†ì†Œ. -"어서!" -하고 나는 ë³´ì´ë¥¼ 불러 ìžë™ì°¨ë¥¼ 하나 준비하ë¼ê³  ì¼ë €ì†Œ. -"ê°ˆëžë‹ˆë‹¤." -하고 ì •ìž„ì€ ê³ ê°œë¥¼ 숙여서 내게 ì¸ì‚¬ë¥¼ 하고 ë¬¸ì„ í–¥í•˜ì—¬ 한 ê±¸ìŒ ê±·ë‹¤ê°€ ìž ê¹ ì£¼ì €í•˜ë”니, 다시 ëŒì•„서서, -"저를 한 번만 안아 주셔요. 아버지가 어린 ë”¸ì„ ì•ˆë“¯ì´ í•œ 번만 안아 주셔요." -하고 ë‚´ 앞으로 ê°€ê¹Œì´ ì™€ 서오. -나는 íŒ”ì„ ë²Œë ¤ 주었소. ì •ìž„ì€ ë‚´ ê°€ìŠ´ì„ í–¥í•˜ê³  ëª¸ì„ ë˜ì¡Œì†Œ. 그리고 ì œ ì´ëº¨ ì €ëº¨ì„ ë‚´ ê°€ìŠ´ì— ëŒ€ê³  비ë³ì†Œ. 나는 ë‘ íŒ”ì„ ì •ìž„ì˜ ì–´ê¹¨ ìœ„ì— ê°€ë²¼ì´ ë†“ì•˜ì†Œ. -ì´ëŸ¬í•œ ì§€ 몇 ë¶„ì´ ì§€ë‚¬ì†Œ. 아마 ì¼ ë¶„ë„ ë‹¤ 못 ë˜ì—ˆëŠ”ì§€ 모르오. -ì •ìž„ì€ ë‚´ 가슴ì—서 고개를 들어 나를 뚫어지게 우러러보ë”니, 다시 ë‚´ ê°€ìŠ´ì— ë‚¯ì„ ëŒ€ë”니 아마 ë‚´ ì‹¬ìž¥ì´ ë¬´ì„­ê²Œ 뛰는 소리를 ì •ìž„ì€ ë“¤ì—ˆì„ ê²ƒì´ì˜¤ ì •ìž„ì€ ë‹¤ì‹œ 고개를 들고, -"어디를 가시든지 편지나 주셔요." -하고 êµµì€ ëˆˆë¬¼ì„ ë–¨êµ¬ê³ ëŠ” 내게서 물러서서 ë˜ í•œ 번 절하고, -"안녕히 가셔요. 만주든지 ì•„ë ¹ì´ë“ ì§€ ì¡°ì„  사람 ë§Žì´ ì‚¬ëŠ” ê³³ì— ê°€ì…”ì„œ ì¼í•˜ê³  사셔요. ëŒì•„가실 ìƒê°ì€ 마셔요. 제가, 아버지 ë§ì”€ëŒ€ë¡œ í˜¼ìž ë–¨ì–´ì ¸ 있으니 ì•„ë²„ì§€ë„ ì œ ë§ì”€ëŒ€ë¡œ ëŒì•„가실 ìƒê°ì€ 마셔요, 네, 그렇다고 대답하셔요!" -하고는 ë˜ í•œ 번 ë‚´ ê°€ìŠ´ì— ëª¸ì„ ê¸°ëŒ€ì˜¤. -죽기를 결심한 나는 `오ëƒ, 그러마.' 하는 ëŒ€ë‹µì„ í•  수는 없었소. 그래서, -"오, ë‚´ ì‚´ë„ë¡ íž˜ì“°ë§ˆ." -하는 약ì†ì„ 주어서 ì •ìž„ì„ ëŒë ¤ë³´ëƒˆì†Œ. -ì •ìž„ì˜ ë°œìžêµ­ 소리가 안 들리게 ëœ ë•Œì— ë‚˜ëŠ” 빠른 걸ìŒìœ¼ë¡œ ì˜¥ìƒ ì •ì›ìœ¼ë¡œ 나갔소. 비가 막 뿌리오. -나는 ì •ìž„ì´ê°€ 타고 나가는 ìžë™ì°¨ë¼ë„ ë³¼ 양으로 호텔 현관 ì•žì´ ë³´ì´ëŠ” 꼭대기로 올ë¼ê°”소. í˜„ê´€ì„ ë– ë‚œ ìžë™ì°¨ 하나가 전찻길로 나서서는 ë¶ì„ 향하고 달아나서 순ì‹ê°„ì— ê·¸ ê½ë¬´ë‹ˆì— 달린 ë¶‰ì€ ë¶ˆì¡°ì°¨ 스러져 버리고 ë§ì•˜ì†Œ. -나는 미친 사람 모양으로, -"정임아, 정임아!" -하고 ìˆ˜ì—†ì´ ë¶ˆë €ì†Œ. 나는 사 층ì´ë‚˜ ë˜ëŠ” ì´ ê¼­ëŒ€ê¸°ì—서 뛰어내려서 ì •ìž„ì´ê°€ 타고 ê°„ ìžë™ì°¨ì˜ 뒤를 따르고 싶었소. -"ì•„ì•„ ì˜ì›í•œ ì¸ìƒì˜ ì´ë³„!" -나는 ê·¸ 옥ìƒì— 얼마나 오래 ì„°ë˜ì§€ë¥¼ 모르오. ë‚´ 머리와 낯과 배스로브ì—서는 ë¬¼ì´ í르오. ë°©ì— ë“¤ì–´ì˜¤ë‹ˆ ì •ìž„ì´ê°€ ë¼ì¹˜ê³  ê°„ 향기와 추억만 남았소. -나는 ë°© 안 구ì„구ì„ì— ì •ìž„ì˜ ëª¨ì–‘ì´ ë³´ì´ëŠ” ê²ƒì„ ê¹¨ë‹¬ì•˜ì†Œ. 특별히 ì •ìž„ì´ê°€ 고개를 숙ì´ê³  서 ìžˆë˜ ë‚´ êµì˜ ë’¤ì—는 분명히 갈색 외투를 ìž…ì€ ì •ìž„ì˜ ëª¨ì–‘ì´ ì™„ì—°í•˜ì˜¤. -"정임아!" -하고 나는 ê·¸ 곳으로 ë”°ë¼ê°€ì˜¤. 그러나 가면 거기는 ì •ìž„ì€ ì—†ì†Œ. -나는 êµì˜ì— 앉소. 그러면 ì •ìž„ì˜ ì”¨ê·¼ì”¨ê·¼í•˜ëŠ” 숨소리와 ë”ìš´ ìž…ê¹€ì´ ë¶„ëª… ë‚´ ì˜¤ë¥¸íŽ¸ì— ê°ê°ì´ ë˜ì˜¤. ì•„ì•„ 무서운 환ê°ì´ì—¬! -나는 ìžë¦¬ì— 눕소. 그리고 ì •ìž„ì˜ í™˜ê°ì„ 피하려고 ë¶ˆì„ ë„오. 그러면 ì •ìž„ì´ê°€ 내게 ì•ˆê¸°ë˜ ìžë¦¬ì¯¤ì— 환하게 ì •ìž„ì˜ ëª¨ì–‘ì´ ë‚˜íƒ€ë‚˜ì˜¤. -나는 ë¶ˆì„ ì¼œì˜¤. ë˜ ë¶ˆì„ ë„오. -ë‚ ì´ ë°ìž 나는 비가 ê°  ê²ƒì„ ë‹¤í–‰ìœ¼ë¡œ ë¹„í–‰ìž¥ì— ë‹¬ë ¤ê°€ì„œ 비행기를 얻어 탔소. -나는 다시 ì¡°ì„ ì˜ í•˜ëŠ˜ì„ í†µê³¼í•˜ê¸°ê°€ 싫어서 ë¶ê°•ì—서 비행기ì—서 내려서 ë¬¸ì‚¬ì— ì™€ì„œ 대련으로 가는 배를 탔소. -나는 대련ì—서 내려서 í•˜ë£»ë°¤ì„ ì—¬ê´€ì—서 ìžê³ ëŠ” ê³§ 장춘 가는 ê¸‰í–‰ì„ íƒ”ì†Œ. 물론 아무ì—ê²Œë„ ì—½ì„œ 한 장 한 ì¼ ì—†ì—ˆì†Œ. ê·¸ê²ƒì€ ì¸ì—°ì„ ëŠì€ 세ìƒì— 대하여 연연한 마ìŒì„ 가지는 ê²ƒì„ ë¶€ë„럽게 ìƒê°í•œ 까닭ì´ì˜¤. -차가 옛날ì—는 우리 ì¡°ìƒë„¤ê°€ ì‚´ê³  문화를 ì§“ë˜ ì˜› í„°ì „ì¸ ë§Œì£¼ì˜ ë²ŒíŒì„ 달릴 때ì—는 ê°íšŒë„ 없지 아니하였소. 그러나 나는 지금 그런 한가한 ê°ìƒì„ 쓸 ê²¨ë¥¼ì´ ì—†ì†Œ. -ë‚´ê°€ 믿고 가는 ê³³ì€ í•˜ì–¼ë¹ˆì— ìžˆëŠ” ì–´ë–¤ 친구요. 그는 Rë¼ëŠ” 사람으로서 ê²½ìˆ ë…„ì— A씨 ë“±ì˜ ë§ëª…ê°ì„ ë”°ë¼ ë‚˜ê°”ë‹¤ê°€ ì•„ë¼ì‚¬ì—서 무관 í•™êµë¥¼ 졸업하고 ì•„ë¼ì‚¬ 사관으로서 구주 대전ì—ë„ ì¶œì •ì„ í•˜ì˜€ë‹¤ê°€, í˜ëª… 후ì—ë„ ì´ë‚´ ì ìœ„êµ°ì— ë¨¸ë¬¼ëŸ¬ì„œ 지금까지 소비ì—트 장êµë¡œ 있는 사람ì´ì˜¤. ì§€ê¸ˆì€ ìœ¡êµ° 소장ì´ë¼ë˜ê°€. -나는 í•˜ì–¼ë¹ˆì— ê·¸ ì‚¬ëžŒì„ ì°¾ì•„ê°€ëŠ” 것ì´ì˜¤. ê·¸ ì‚¬ëžŒì„ ì°¾ì•„ì•¼ ì•„ë¼ì‚¬ì— 들어갈 ì—¬í–‰ê¶Œì„ ì–»ì„ ê²ƒì´ìš”, ì—¬í–‰ê¶Œì„ ì–»ì–´ì•¼ ë‚´ê°€ í‰ì†Œì— ì´ìƒí•˜ê²Œë„ ê·¸ë¦¬ì›Œí•˜ë˜ ë°”ì´ì¹¼ 호를 ë³¼ 것ì´ì˜¤. -í•˜ì–¼ë¹ˆì— ë‚´ë¦° ê²ƒì€ í•´ê°€ 뉘엿뉘엿 넘어가는 ì„ì–‘ì´ì—ˆì†Œ. -나는 ì•ˆì¤‘ê·¼ì´ ì´ë“±ë°•문(ä¼Šè—¤åšæ–‡:ì´í†  히로부미)ì„ ìœ ê³³ì´ ì–´ë”˜ê°€ 하고 벌íŒê³¼ ê°™ì´ ë„“ì€ í”Œëž«í¼ì— 내렸소. 과연 êµ­ì œ ë„ì‹œë¼ ì„œì–‘ 사람, 중국 사람, ì¼ë³¸ ì‚¬ëžŒì´ ê°ê¸° ì œ ë§ë¡œ 지껄ì´ì˜¤. ì•„ì•„ ì¡°ì„  ì‚¬ëžŒë„ ìžˆì„ ê²ƒì´ì˜¤ë§ˆëŠ” 다들 ì–‘ë³µì„ ìž…ê±°ë‚˜ ì²­ë³µì„ ìž…ê±°ë‚˜ 하고 ë˜ ì‚¬ëžŒì´ ë§Žì€ ê³³ì—서는 ë§ë„ 잘 하지 아니하여 ì•„ë¬´ìª¼ë¡ ì¡°ì„  ì‚¬ëžŒì¸ ê²ƒì„ í‘œì‹œí•˜ì§€ 아니하는 íŒì´ë¼ ê·¸ 골격과 í‘œì •ì„ ì‚´í”¼ê¸° ì „ì—는 ì–´ëŠ ê²ƒì´ ì¡°ì„  사람ì¸ì§€ 알 ê¸¸ì´ ì—†ì†Œ. 아마 허름하게 차리고 기운 ì—†ì´, 비창한 ë¹›ì„ ë ê³  ì‚¬ëžŒì˜ ëˆˆì„ ìŠ¬ìŠ¬ 피하는 ì € 순하게 ìƒê¸´ ì‚¬ëžŒë“¤ì´ ì¡°ì„  사람ì´ê² ì§€ìš”. 언제나 한 번 가는 곳마다 ë™ì–‘ì´ë“ ì§€, 서양ì´ë“ ì§€, -`나는 ì¡°ì„  사람ì´ì˜¤!' -하고 ë½ë‚´ê³  ë‹¤ë‹ ë‚ ì´ ìžˆì„까 하면 ëˆˆë¬¼ì´ ë‚˜ì˜¤. ë”구나, 하얼빈과 ê°™ì€ ê°ìƒ‰ ì¸ì¢…ì´ ëª¨ì—¬ì„œ ìƒì¡´ ê²½ìŸì„ 하는 ë§ˆë‹¹ì— ì„œì„œ ì´ëŸ° 비ê°ì´ 간절하오. ì•„ì•„ ì´ ë¶ˆìŒí•œ ìœ ëž‘ì˜ ë¬´ë¦¬ ì¤‘ì— ë‚˜ë„ í•˜ë‚˜ë¥¼ ë” ë³´íƒœëŠ”ê°€ 하면 ëˆˆë¬¼ì„ ì”»ì§€ 아니할 수 없었소. -나는 ì—­ì—서 나와서 ì–´ë–¤ ì•„ë¼ì‚¬ 병정 하나를 붙들고 Rì˜ ì•„ë¼ì‚¬ ì´ë¦„ì„ ë¶ˆë €ì†Œ. 그리고 ì•„ëŠëƒê³  ì˜ì–´ë¡œ 물었소. -ê·¸ ë³‘ì •ì€ ë‚´ ë§ì„ 잘못 알아들었는지, ë˜ëŠ” R를 모르는지 무엇ì´ë¼ê³  ì•„ë¼ì‚¬ë§ë¡œ 지껄ì´ëŠ” 모양ì´ë‚˜ 나는 물론 ê·¸ê²ƒì„ ì•Œì•„ë“¤ì„ ìˆ˜ê°€ 없었소. 그러나 나는 ê·¸ ë³‘ì •ì˜ í‘œì •ì—서 내게 호ì˜ë¥¼ 가진 ê²ƒì„ ì§ìž‘하고 한 번 ë” ë¶„ëª…ížˆ, -"요십 알렉산드로비치 리가ì´." -ë¼ê³  불러 보았소. -ê·¸ ë³‘ì •ì€ ë¹™ê·¸ë ˆ 웃고 고개를 í”드오. ì´ ë‘ ì™¸êµ­ ì‚¬ëžŒì˜ ì´ìƒí•œ êµì„­ì— í¥ë¯¸ë¥¼ 가지고 여러 ì•„ë¼ì‚¬ 병정과 ë™ì–‘ ì‚¬ëžŒë“¤ì´ ì‹­ì—¬ ì¸ì´ë‚˜ 우리 ì£¼ìœ„ì— ëª¨ì—¬ë“œì˜¤. -ê·¸ ë³‘ì •ì´ ë‚˜ë¥¼ ë°”ë¼ë³´ê³  ë˜ í•œ 번 ê·¸ ì´ë¦„ì„ ë¶ˆëŸ¬ ë³´ë¼ëŠ” 모양 같기로 나는 ì´ë²ˆì—는 Rì˜ ì•„ë¼ì‚¬ ì´ë¦„ì— `제너럴'ì´ë¼ëŠ” ë§ì„ 붙여 불러 보았소. -그랬ë”니 ì–´ë–¤ 다른 ë³‘ì •ì´ ë›°ì–´ë“¤ë©°, -"게네ë¼ìš° 리가ì´!" -하고 안다는 í‘œì •ì„ í•˜ì˜¤. `게네ë¼ìš°'ë¼ëŠ” ê²ƒì´ ì•„ë§ˆ ì•„ë¼ì‚¬ë§ë¡œ 장군ì´ëž€ ë§ì¸ê°€ 하였소. -"예스. 예스." -하고 나는 기ì˜ê²Œ 대답하였소. 그리고는 ì•„ë¼ì‚¬ 병정들ë¼ë¦¬ 무ì—ë¼ê³  지껄ì´ë”니, ê·¸ ì¤‘ì— í•œ ë³‘ì •ì´ ë‚˜ì„œë©´ì„œ 고개를 ë„ë•ë„ë•하고, 제가 마차 하나를 불러서 나를 태우고 ì €ë„ íƒ€ê³  어디로 달려가오. -ê·¸ ì•„ë¼ì‚¬ ë³‘ì •ì€ ì¹œì ˆížˆ ì•Œì§€ë„ ëª»í•˜ëŠ” ë§ë¡œ ì´ê²ƒì €ê²ƒì„ 가리키면서 ì„¤ëª…ì„ í•˜ë”니 ë‚´ê°€ 못 알아듣는 ì¤„ì„ ìƒê°í•˜ê³  ë‚´ 어깨를 툭 치고 웃소. 어린애와 ê°™ì´ ìˆœí•œ 사람들ì´êµ¬ë‚˜ 하고 나는 고맙다는 표로 고개만 ë„ë•ë„ë•하였소. -어디로 어떻게 가는지 서양 시가로 달려가다가 ì–´ë–¤ í° ì €íƒ ì•žì— ì´ë¥´ëŸ¬ì„œ 마차를 ê·¸ 현관 앞으로 들ì´ëª°ì•˜ì†Œ. -현관ì—서는 ì¢…ì¡¸ì´ ë‚˜ì™”ì†Œ. ë‚´ê°€ ëª…í•¨ì„ ë“¤ì—¬ë³´ëƒˆë”니 ë¶€ê´€ì¸ ë“¯í•œ ì•„ë¼ì‚¬ 장êµê°€ 나와서 나를 으리으리한 ì‘접실로 ì¸ë„하였소. 얼마 있노ë¼ë‹ˆ ì¤‘ë…„ì´ ë„˜ì€ ì–´ë–¤ ëŒ€ìž¥ì´ ë‚˜ì˜¤ëŠ”ë° êµ°ë³µì— ì¹¼ëˆë§Œ 늘였소. -"ì´ê²Œ 누구요." -하고 ê·¸ ëŒ€ìž¥ì€ ë‹¬ë ¤ë“¤ì–´ì„œ 나를 껴안았소. ì´ì‹­ì˜¤ ë…„ ë§Œì— ë§Œë‚˜ëŠ” 우리는 서로 알아본 것ì´ì˜¤. -ì´ìœ½ê³  나는 ê·¸ì˜ ë¶€ì¸ê³¼ ìžë…€ë“¤ë„ 만났소. ê·¸ë“¤ì€ ë‹¤ ì•„ë¼ì‚¬ 사람ì´ì˜¤. -ì €ë…ì´ ë난 ë’¤ì— ë‚˜ëŠ” Rì˜ ë¶€ì¸ê³¼ ë”¸ì˜ ìŒì•…ê³¼ 그림 구경과 ê¸°íƒ€ì˜ ê´€ëŒ€ë¥¼ 받고 ë‹¨ë‘˜ì´ ì´ì•¼ê¸°í•  기회를 얻었소. 경술년 당시 ì´ì•¼ê¸°ë„ 나오고, Aì”¨ì˜ ì´ì•¼ê¸°ë„ 나오고, Rì˜ ì‹ ì„¸ íƒ€ë ¹ë„ ë‚˜ì˜¤ê³ , ë‚´ ì´ì‹­ì˜¤ ë…„ ê°„ì˜ ìƒí™œ ì´ì•¼ê¸°ë„ 나오고, 소비ì—트 í˜ëª… ì´ì•¼ê¸°ë„ 나오고, 하얼빈 ì´ì•¼ê¸°ë„ 나오고, 우리네가 어려서 서로 ì‚¬ê·€ë˜ íšŒêµ¬ë‹´ë„ ë‚˜ì˜¤ê³  ì´ì•¼ê¸°ê°€ 그칠 바를 몰ëžì†Œ. "ì¡°ì„ ì€ ê·¸ë¦½ì§€ 않ì€ê°€." -하는 ë‚´ ë§ì— ì¾Œí™œí•˜ë˜ R는 고개를 숙ì´ê³  추연한 ë¹›ì„ ë³´ì˜€ì†Œ. -나는 Rì˜ ì¶”ì—°í•œ 태ë„를 아마 ê³ êµ­ì„ ê·¸ë¦¬ì›Œí•˜ëŠ” 것으로만 여겼소. 그래서 나는 그리 침ìŒí•˜ëŠ” ê²ƒì„ ë³´ê³ , -"얼마나 ê³ êµ­ì´ ê·¸ë¦½ê² ë‚˜. 나는 ê³ êµ­ì„ ë– ë‚œ 지가 ì¼ ì£¼ì¼ë„ 안 ë˜ê±´ë§ˆëŠ” 못 견디게 그리운ë°." -하고 ë™ì •하는 ë§ì„ 하였소. -í–ˆë”니, ì´ ë§ ë³´ì‹œì˜¤. 그는 침ìŒì„ 깨뜨리고 고개를 ë²ˆì© ë“¤ë©°, -"아니! 나는 ê³ êµ­ì´ ì¡°ê¸ˆë„ ê·¸ë¦½ì§€ 아니하ì´. ë‚´ê°€ 지금 ìƒê°í•œ ê²ƒì€ ìžë„¤ ë§ì„ 듣고 ê³ êµ­ì´ ê·¸ë¦¬ìš´ê°€ 그리워할 ê²ƒì´ ìžˆëŠ”ê°€ë¥¼ ìƒê°í•´ 본 것ì¼ì„¸. 그랬ë”니 아무리 ìƒê°í•˜ì—¬ë„ 나는 ê³ êµ­ì´ ê·¸ë¦½ë‹¤ëŠ” ìƒê°ì„ 가질 수가 없어. 그야 어려서 ìžë¼ë‚  ë•Œì— ë³´ë˜ ê°•ì‚°ì´ë¼ë“ ì§€ ë‚´ ê¸°ì–µì— ë‚¨ì€ ì•„ëŠ” 사람들ì´ë¼ë“ ì§€, ë³´ê³  싶다 하는 ìƒê°ë„ 없지 아니하지마는 ê·¸ê²ƒì´ ê³ êµ­ì´ ê·¸ë¦¬ìš´ 것ì´ë¼ê³  í•  수가 있ì„까. ê·¸ ë°–ì—는 나는 아무리 ìƒê°í•˜ì—¬ë„ ê³ êµ­ì´ ê·¸ë¦¬ìš´ ê²ƒì„ ì°¾ì„ ê¸¸ì´ ì—†ë„¤. ë‚˜ë„ ì§€ê¸ˆ ìžë„¤ë¥¼ ë³´ê³  ë˜ ìžë„¤ ë§ì„ 듣고 오래 ìžŠì–´ë²„ë ¸ë˜ ê³ êµ­ì„ ì¢€ 그립게, 그립다 하게 ìƒê°í•˜ë ¤ê³  í•´ 보았지마는 ë„무지 나는 ê³ êµ­ì´ ê·¸ë¦½ë‹¤ëŠ” ìƒê°ì´ 나지 않네." -ì´ ë§ì— 나는 ê¹œì§ ë†€ëžì†Œ. 몸서리치게 무서웠소. 나는 í•´ì™¸ì— ì˜¤ëž˜ 표랑하는 ì‚¬ëžŒì€ ìœ¼ë ˆ ê³ êµ­ì„ ê·¸ë¦¬ì›Œí•  것으로 믿고 있었소. ê·¸ëŸ°ë° ì´ ì‚¬ëžŒì´, ì¼ì°ì€ ê³ êµ­ì„ ì‚¬ëž‘í•˜ì—¬ ëª©ìˆ¨ê¹Œì§€ë„ ë°”ì¹˜ë ¤ë˜ ì´ ì‚¬ëžŒì´ ë„무지 ì´ì²˜ëŸ¼ ê³ êµ­ì„ ìžŠì–´ë²„ë¦°ë‹¤ëŠ” ê²ƒì€ ë†€ë¼ìš´ ì •ë„를 지나서 괘씸하기 그지없었소. ë‚˜ë„ ë¹„ë¡ ì¡°ì„ ì„ ë– ë‚œë‹¤ê³ , ì˜ì›ížˆ 버린다고 나서기는 했지마는 나로는 죽기 ì „ì—는 아니 ë¹„ë¡ ì£½ë”ë¼ë„ 잊어버리지 못할 ê³ êµ­ì„ ìžŠì–´ë²„ë¦° Rì˜ ì‹¬ì‚¬ê°€ 난측하고 ì›ë§ìŠ¤ëŸ¬ì› ì†Œ. -"ê³ êµ­ì´ ê·¸ë¦½ì§€ê°€ 않아?" -하고 Rì—게 묻는 ë‚´ 어성ì—는 격분한 ë¹›ì´ ìžˆì—ˆì†Œ. -"ì´ìƒí•˜ê²Œ ìƒê°í•˜ì‹œê² ì§€. 하지만 ê³ êµ­ì— ë¬´ìŠ¨ 그리울 ê²ƒì´ ìžˆë‹¨ ë§ì¸ê°€. ê·¸ 빈대 ë“는 오막살ì´ê°€ 그립단 ë§ì¸ê°€. 나무 한 ê°œ 없는 ì‚°ì´ ê·¸ë¦½ë‹¨ ë§ì¸ê°€. ë¬¼ë³´ë‹¤ë„ ëª¨ëž˜ê°€ ë§Žì€ ë‹¤ 늙어빠진 ê°œì²œì´ ê·¸ë¦½ë‹¨ ë§ì¸ê°€. ê·¸ 무기력하고 가난한, 시기 ë§Žê³  싸우고 하는 ê·¸ ë°±ì„±ì„ ê·¸ë¦¬ì›Œí•œë‹¨ ë§ì¸ê°€. 그렇지 아니하면 무슨 그리워할 ìŒì•…ì´ ìžˆë‹¨ ë§ì¸ê°€, ë¯¸ìˆ ì´ ìžˆë‹¨ ë§ì¸ê°€, ë¬¸í•™ì´ ìžˆë‹¨ ë§ì¸ê°€, 사ìƒì´ 있단 ë§ì¸ê°€, 사모할 만한 ì¸ë¬¼ì´ 있단 ë§ì¸ê°€! ë‚ ë”러 ê³ êµ­ì˜ ë¬´ì—‡ì„ ê·¸ë¦¬ì›Œí•˜ëž€ ë§ì¸ê°€. 나는 ì¡°êµ­ì´ ì—†ëŠ” 사람ì¼ì„¸. ë‚´ê°€ 소비ì—트 êµ°ì¸ìœ¼ë¡œ 있으니 소비ì—트가 ë‚´ ì¡°êµ­ì´ê² ì§€. 그러나 진심으로 ë‚´ ì¡°êµ­ì´ë¼ëŠ” ìƒê°ì€ 나지 아니하네." -하고 ì €ë… ë¨¹ì„ ë•Œì— ì•½ê°„ ë¶‰ì—ˆë˜ Rì˜ ì–¼êµ´ì€ ì´ìƒí•œ í¥ë¶„으로 ë”ìš± 붉어지오.유 정유 ì • -R는 ë¨¹ë˜ ë‹´ë°°ë¥¼ 화나는 ë“¯ì´ ìž¬ë–¨ì´ì— ì§‘ì–´ë˜ì§€ë©°, -"ë‚´ê°€ í•˜ì–¼ë¹ˆì— ì˜¨ 지가 ì¸ì œ 겨우 삼사 ë…„ë°–ì— ì•ˆ ë˜ì§€ë§ˆëŠ” ì¡°ì„  사람 ë•Œë¬¸ì— ë‚˜ëŠ” 견딜 수가 없어. 와서 달ë¼ëŠ” ê²ƒë„ ë‹¬ë¼ëŠ” 것ì´ì§€ë§ˆëŠ” ì¡°ì„  ì‚¬ëžŒì´ ë˜ ì–´ì°Œí•˜ì˜€ëŠë‹ˆ ë˜ ì–´ì°Œí•˜ì˜€ëŠë‹ˆ 하는 불명예한 ë§ì„ ë“¤ì„ ë•Œì—는 나는 ê¸ˆì‹œì— ì£½ì–´ 버리고 싶단 ë§ì¼ì„¸. 내게 가장 불쾌한 ê²ƒì´ ìžˆë‹¤ê³  하면 ê·¸ê²ƒì€ ê³ êµ­ì´ë¼ëŠ” 기억과 ì¡°ì„  ì‚¬ëžŒì˜ ì¡´ìž´ì„¸. ë‚´ê°€ ë§Œì¼ ì–´ëŠ ë‚˜ë¼ì˜ ë…재ìžê°€ ëœë‹¤ê³  하면 나는 첫째로 ì¡°ì„ ì¸ ìž…êµ­ 금지를 단행하려네. ë§Œì¼ ì¡°ì„ ì´ë¼ëŠ” ê²ƒì„ ìžŠì–´ë²„ë¦´ ì•½ì´ ìžˆë‹¤ê³  하면 나는 ìƒëª…ê³¼ 바꾸어서ë¼ë„ 사 먹고 ì‹¶ì–´." -하고 R는 약간 í¥ë¶„ëœ ì–´ì¡°ë¥¼ 늦추어서, -"ë‚˜ë„ ëª¨ìŠ¤í¬ë°”ì— ìžˆë‹¤ê°€ ì²˜ìŒ ì›ë™ì— ë‚˜ì™”ì„ ì ì—는 ê¸¸ì„ ë‹¤ë…€ë„ í˜¹ì‹œ ë™í¬ê°€ ëˆˆì— ëœ¨ì´ì§€ë‚˜ 아니하나 하고 찾았네. 그래서 어디서든지 ë™í¬ë¥¼ 만나면 ë°˜ê°€ì´ ì†ì„ 잡았지. 했지만 ì ì  ê·¸ë“¤ì€ ì˜¤ì§ ê·€ì°®ì€ ì¡´ìž¬ì— ì§€ë‚˜ì§€ 못하다는 ê²ƒì„ ì•Œì•˜ë‹¨ ë§ì¼ì„¸. ì¸ì œëŠ” ì¡°ì„  사람ì´ë¼ê³ ë§Œ 하면 만나기가 무섭고 ë”ì°ë”ì°í•˜ê³  진저리가 나는 걸 어떡허나. ìžë„¤ ëª…í•¨ì´ ë“¤ì–´ì˜¨ 때ì—ë„ ì¡°ì„  사람ì¸ê°€ 하고 ê°€ìŠ´ì´ ëœ¨ë”했네." -하고 R는 ì›ƒì§€ë„ ì•„ë‹ˆí•˜ì˜¤. ê·¸ì˜ ì–¼êµ´ì—는, êµ°ì¸ë‹¤ìš´ 기운찬 얼굴ì—는 ì¦ì˜¤ì™€ ë¶„ë…¸ì˜ ë¹›ì´ ë„˜ì³¤ì†Œ. -"ë‚˜ë„ ìžë„¤ ì§‘ì— í™˜ì˜ë°›ëŠ” 나그네는 ì•„ë‹ì„¸ê·¸ë ¤." -하고 나는 ì´ ê²¬ë””ê¸° 어려운 불쾌하고 무서운 공기를 완화하기 위하여 ë†ë‹´ì‚¼ì•„ 한 마디를 ë˜ì§€ê³  웃었소. -나는 Rì˜ ë§ì´ ê³¼ê²©í•¨ì— ë†€ëžì§€ë§ˆëŠ”, ë˜ ìƒê°í•˜ë©´ Rê°€ 한 ë§ ê°€ìš´ë°ëŠ” ë“¤ì„ ë§Œí•œ ì´ìœ ë„ 없지 아니하오. ê·¸ê²ƒì„ ìƒê°í•  ë•Œì— ë‚˜ëŠ” R를 괘씸하게 ìƒê°í•˜ê¸° ì „ì— ë‚´ê°€ 버린다는 ì¡°ì„ ì„ ìœ„í•˜ì—¬ì„œ ê°€ìŠ´ì´ ì•„íŒ ì†Œ. 그렇지만 ì´ì œ 나 따위가 ê°€ìŠ´ì„ ì•„íŒŒí•œëŒ€ì•¼ 무슨 ì†Œìš©ì´ ìžˆì†Œ. ì¡°ì„ ì— ë‚¨ì•„ 계신 형ì´ë‚˜ Rì˜ ë§ì„ 참고삼아 쓰시기 ë°”ë¼ì˜¤. 어쨌으나 나는 Rì—게서 목ì í•œ ì—¬í–‰ê¶Œì„ ì–»ì—ˆì†Œ. Rì—게는 다만, -`나는 피곤한 ëª¸ì„ ì¢€ 정양하고 싶다. 나는 ë‚´ê°€ í‰ì†Œì— ì¦ê²¨í•˜ëŠ” ë°”ì´ì¹¼ 호반ì—서 눈과 ì–¼ìŒì˜ í•œê²¨ìš¸ì„ ì§€ë‚´ê³  싶다.' -는 ê²ƒì„ ì—¬í–‰ì˜ ì´ìœ ë¡œ 삼았소. -R는 ë‚˜ì˜ ì´ˆì·Œí•œ ëª¨ì–‘ì„ ì§ìž‘하고 ë‚´ 핑계를 그럴듯하게 아는 모양ì´ì—ˆì†Œ. 그리고 나ë”러, `ì´ì™• 정양하려거든 카프카 지방으로 가거ë¼. 거기는 기후 í’ê²½ë„ ì¢‹ê³  ë˜ ìš”ì–‘ì›ì˜ ì„¤ë¹„ë„ ìžˆë‹¤.'는 ê²ƒì„ ë§í•˜ì˜€ì†Œ. ë‚˜ë„ í†¨ìŠ¤í† ì´ì˜ 소설ì—서, ê¸°íƒ€ì˜ ì—¬í–‰ê¸° 등ì†ì—서 ì´ ì§€ë°©ì— ê´€í•œ ë§ì„ 못 ë“¤ì€ ê²ƒì´ ì•„ë‹ˆë‚˜ 지금 ë‚´ 처지ì—는 그런 따뜻하고 경치 ì¢‹ì€ ì§€ë°©ì„ ê°€ë¦´ ì—¬ìœ ë„ ì—†ê³  ë˜ ê·¸ëŸ¬í•œ ì§€ë°©ë³´ë‹¤ë„ ëˆˆê³¼ ì–¼ìŒê³¼ ë°”ëžŒì˜ ì‹œë² ë¦¬ì•„ì˜ ê²¨ìš¸ì´ í•©ë‹¹í•œ 듯하였소. -그러나 나는 Rì˜ í˜¸ì˜ë¥¼ êµ³ì´ ì‚¬ì–‘í•  í•„ìš”ë„ ì—†ì–´ì„œ 그가 ì¨ ì£¼ëŠ” 대로 ì†Œê°œìž¥ì„ ë‹¤ 받아 넣었소. 그는 나를 처남 매부 ê°„ì´ë¼ê³  소개해 주었소. -나는 모스í¬ë°” 가는 ë‹¤ìŒ ê¸‰í–‰ì„ ê¸°ë‹¤ë¦¬ëŠ” ì‚¬í˜ ë™ì•ˆ Rì˜ ì§‘ì˜ ì†ì´ ë˜ì–´ì„œ Rë¶€ì²˜ì˜ ì¹œì ˆí•œ 대우를 받았소. -ê·¸ 후ì—는 나는 R와 ì¡°ì„ ì— ê´€í•œ í† ë¡ ì„ í•œ ì¼ì€ 없지마는 Rê°€ ì´ë¦„지어 ë§ì„ í•  때ì—는 ì¡°ì„ ì„ ìžŠì—ˆë…¸ë¼, 그리워할 ê²ƒì´ ì—†ë…¸ë¼, 하지마는 무ì˜ì‹ì ìœ¼ë¡œ ë§ì„ í•  때ì—는 ì¡°ì„ ì„ ëª» 잊고 ë˜ ì¡°ì„ ì„ ì—¬ëŸ¬ ì ìœ¼ë¡œ 그리워하는 ì–‘ì„ ë³´ì•˜ì†Œ. 나는 ê·¸ê²ƒìœ¼ë¡œì¨ ë§Œì¡±í•˜ê²Œ 여겼소. -나는 ê¸ˆìš”ì¼ ì˜¤í›„ 세시 모스í¬ë°” 가는 급행으로 í•˜ì–¼ë¹ˆì„ ë– ë‚¬ì†Œ. ì—­ë‘ì—는 R와 Rì˜ ê°€ì¡±ì´ ë‚˜ì™€ì„œ 꽃과 ê³¼ì¼ê³¼ 여러 가지 선물로 나를 전송하였소. R와 Rì˜ ê°€ì¡±ì€ ë‚˜ë¥¼ ì •ë§ í˜•ì œì˜ ì˜ˆë¡œ 대우하여 차가 떠나려 í•  ë•Œì— í¬ì˜¹ê³¼ 키스로 작별하여 주었소. -ì´ ë‚ ì€ í½ ë”°ëœ»í•˜ê³  ì¼ê¸°ê°€ ì¢‹ì€ ë‚ ì´ì—ˆì†Œ. í•˜ëŠ˜ì— êµ¬ë¦„ 한 ì , ë•…ì— ë°”ëžŒ 한 ì  ì—†ì´ ë§ˆì¹˜ ëŠ¦ì€ ë´„ë‚ ê³¼ ê°™ì´ ë”°ëœ»í•œ ë‚ ì´ì—ˆì†Œ. -차는 떠났소. íŒë‹¤ëŠ” ë‘¥ 안 íŒë‹¤ëŠ” ë‘¥ ë§ì½ ë§Žì€ ë™ì¤‘로(ì§€ê¸ˆì€ ë¶ë§Œ 철로ë¼ê³  하오.)ì˜ êµ­ì œ ì—´ì°¨ì— ëª¸ì„ ì˜íƒí•œ 것ì´ì˜¤. -송화강(æ¾èŠ±æ±Ÿ:쑹화 ê°•)ì˜ ì² êµë¥¼ 건너오. ì•„ì•„ ê·¸ë¦¬ë„ ë‚¯ìµì€ 송화강! ì†¡í™”ê°•ì´ ì™œ ë‚¯ì´ ìµì†Œ. ì´ ì†¡í™”ê°•ì€ ë¶ˆí•¨ì‚°(장백산)ì— ê·¼ì›ì„ 발하여 광막한 ë¶ë§Œì£¼ì˜ ì‚¬ëžŒë„ ì—†ëŠ” 벌íŒì„ í˜¼ìž ì†Œë¦¬ë„ ì—†ì´ í˜ëŸ¬ê°€ëŠ” ê²ƒì´ ë‚´ 신세와 같소. ì´ ë¶ë§Œì£¼ì˜ 벌íŒì„ 만든 ìžê°€ 송화강ì´ì§€ë§ˆëŠ” 나는 그만한 íž˜ì´ ì—†ëŠ” ê²ƒì´ ë¶€ë„러울 ë¿ì´ì˜¤. ì´ ê´‘ë§‰í•œ ë¶ë§Œì˜ 벌íŒì„ ë‚´ ì†ìœ¼ë¡œ 개척하여서 ì¡°ì„  ì‚¬ëžŒì˜ ë‚™ì›ì„ ë§Œë“¤ìž í•˜ê³  ë½ë‚´ì–´ 볼까. ê·¸ê²ƒì€ í˜•ì´ í•˜ì‹œì˜¤. ë‚´ ì–´ë¦°ê²ƒì´ ìžë¼ê±°ë“  그놈ì—게나 그러한 ìƒê°ì„ 넣어 주시오. -ë™ì–‘ì˜ êµ­ì œì  ê´´ë¬¼ì¸ í•˜ì–¼ë¹ˆ ì‹œê°€ë„ ê¹Œë§£ê²Œ 안개ì—서 스러져 버리고 ë§ì•˜ì†Œ. 그러나 ê·¸ 시가를 싼 까만 ê¸°ìš´ì´ êµ­ì œì  í’ìš´ì„ í¬ìž¥í•œ 것ì´ë¼ê³  할까요. -ê°€ë„ê°€ë„ ë²ŒíŒ. ì„œë¦¬ë§žì€ ë§ˆë¥¸ 풀바다. 실개천 í•˜ë‚˜ë„ ì—†ëŠ” 메마른 사막. 어디를 ë³´ì•„ë„ ì‚° 하나 없으니 하늘과 ë•…ì´ ì°© 달ë¼ë¶™ì€ 듯한 천지. 구름 한 ì  ì—†ê±´ë§Œë„ ê·¸ í° íƒœì–‘ ê°€ì§€ê³ ë„ ë¯¸ì²˜ 다 비추지 못하여 ì§€í‰ì„  호를 그린 ì§€í‰ì„  위ì—는 í•­ìƒ í™©í˜¼ì´ ë– ë„는 듯한 세계. ì´ ì†ìœ¼ë¡œ ë‚´ê°€ ëª¸ì„ ë‹´ì€ ì—´ì°¨ëŠ” 서쪽으로 서쪽으로 í•´ê°€ 가는 걸ìŒì„ ë”°ë¼ì„œ 달리고 있소. 열차가 달리는 바퀴 ì†Œë¦¬ë„ ë°˜í–¥í•  ê³³ì´ ì—†ì–´ 힘없는 í•œìˆ¨ê°™ì´ ìŠ¤ëŸ¬ì§€ê³  마오. -ê¸°ì¨ ê°€ì§„ ì‚¬ëžŒì´ ì§€ë£¨í•´ì„œ 못 견딜 ì´ í’ê²½ì€ ë‚˜ê°™ì´ ìˆ˜ì‹¬ 가진 사람ì—게는 가장 ê³µìƒì˜ ë§ì„ ë‹¬ë¦¬ê¸°ì— í•©ë‹¹í•œ ê³³ì´ì˜¤. -ì´ ê³³ì—ë„ ì‚°ë„ ìžˆê³  ëƒ‡ë¬¼ë„ ìžˆê³  ì‚¼ë¦¼ë„ ìžˆê³  ê½ƒë„ í”¼ê³  ë‚ ì§ìй, 길ì§ìŠ¹ì´ ë‚ ê³  ê¸°ë˜ ë•Œë„ ìžˆì—ˆê² ì§€ìš”. ê·¸ëŸ¬ë˜ ê²ƒì´ ëª‡ë§Œ ë…„ 지나는 ë™ì•ˆì— ì‚°ì€ ë‚®ì•„ì§€ê³  ê³¨ì€ ë†’ì•„ì ¸ì„œ 마침내 ì´ ê¼´ì´ ëœ ê²ƒì¸ê°€ 하오. ë§Œì¼ í° íž˜ì´ ìžˆì–´ ì´ ê´‘ì•¼ë¥¼ 파낸다 하면 물 í르고 고기 ë†€ë˜ ê°•ê³¼, 울고 ì›ƒë˜ ìƒë¬¼ì´ ì‚´ë˜ ìžì·¨ê°€ ìžˆì„ ê²ƒì´ì˜¤. ì•„ì•„ ì´ ëª¨ë“  ê¸°ì–µì„ ê½‰ 품고 ì£½ì€ ë“¯ì´ ìž ìž í•œ 광야ì—! -ë‚´ê°€ 탄 차가 Fì—­ì— ë„ì°©í•˜ì˜€ì„ ë•Œì—는 ë¶ë§Œì£¼ ê´‘ì•¼ì˜ ì„ì–‘ì˜ ì•„ë¦„ë‹¤ì›€ì€ ê·¸ ê·¹ë„ì— ë‹¬í•œ 것 같았소. 둥긋한 ì§€í‰ì„  ìœ„ì— ê±°ì˜ ê±¸ë¦° 커다란 í•´! 아마 ê·¸ 신비하고 ìž¥ì—„í•¨ì´ ë‚´ 경험으로는 ì´ ê³³ì—서밖ì—는 ë³¼ 수 없는 것ì´ë¼ê³ ìƒê°í•˜ì˜¤. ì´ê¸€ì´ê¸€ ì´ê¸€ì´ê¸€ ê·¸ëŸ¬ë©´ì„œë„ ë‘¥ê¸€ë‹¤ëŠ” 체모를 변치 아니하는 ê·¸ 지는 í•´! -게다가 먼 ì§€í‰ì„ ìœ¼ë¡œë¶€í„° 기어드는 í™©í˜¼ì€ ì¸ì œëŠ” 대지를 ê±°ì˜ ë‹¤ ë®ì–´ 버려서 마른 풀로 ëœ ì§€ë©´ì€ ê°€ë­‡ê°€ë­‡í•œ ë¹›ì„ ë ê³  ì‚¬ë§‰ì˜ ê°€ëŠ” 모래를 ë¨¸ê¸ˆì€ ì§€ëŠ” í•´ì˜ ê´‘ì„ ì„ ë°˜ì‚¬í•˜ì—¬ì„œ 대기는 ì§™ì€ ìžì¤ë¹›ì„ 바탕으로 한 가지ê°ìƒ‰ì˜ ëª…ì•”ì„ ê°€ì§„, ì˜¤ìƒ‰ì´ ì˜ë¡±í•œ, ë„무지 ë‚´ê°€ ì¼ì° 경험해 ë³´ì§€ 못한 ìƒ‰ì±„ì˜ ì„¸ê³„ë¥¼ ì´ë£¨ì—ˆì†Œ. ì•„ 좋다! -ê·¸ ì†ì— 수ì€ê°™ì´ 빛나는, 수없는 작고 í° í˜¸ìˆ˜ë“¤ì˜ ë¹›! ê·¸ ì†ìœ¼ë¡œ 날아오는 수없고 ì´ë¦„ 모를 ìƒˆë“¤ì˜ ë–¼ë„ ì´ ì„¸ìƒì˜ 것ì´ë¼ê³ ëŠ” ìƒê°í•˜ì§€ 아니하오. -나는 ê±°ì˜ ë¬´ì˜ì‹ì ìœ¼ë¡œ ì°¨ì—서 뛰어내렸소. ê±°ì˜ ë– ë‚  ì‹œê°„ì´ ë‹¤ ë˜ì–´ì„œ ì§ì˜ ì¼ë¶€ë¶„ì€ ë¯¸ì²˜ ê°€ì§€ì§€ë„ ëª»í•˜ê³  뛰어내렸소. 반쯤 미친 것ì´ì˜¤. -정거장 앞 조그마한 ì•„ë¼ì‚¬ ì‚¬ëžŒì˜ ì—¬ê´€ì—다가 ì§ì„ 맡겨 버리고 나는 ë‹¨ìž¥ì„ ëŒê³  ì² ë„ ì„ ë¡œë¥¼ ë›°ì–´ 건너서 í˜¸ìˆ˜ì˜ ìˆ˜ì€ë¹› 나는 ê³³ì„ ì°¾ì•„ì„œ 지향 ì—†ì´ ê±¸ì—ˆì†Œ. -한 호수를 가서 ë³´ë©´ ë˜ ì € 편 호수가 ë” ì•„ë¦„ë‹¤ì›Œ ë³´ì´ì˜¤. ì›ì»¨ëŒ€ ì € 지는 í•´ê°€ 다 지기 ì „ì— ì´ ê´‘ì•¼ì— ìžˆëŠ” 호수를 다 ëŒì•„ë³´ê³  싶소. -ë‚´ê°€ 호숫 ê°€ì— ì„°ì„ ë•Œì— ê·¸ ê±°ìš¸ê°™ì´ ìž”ìž”í•œ í˜¸ìˆ˜ë©´ì— ë¹„ì¹˜ëŠ” ë‚´ 그림ìžì˜ 외로움ì´ì—¬, 그러나 아름다움ì´ì—¬! ê·¸ 호수는 ì˜ì›í•œ ìš°ì£¼ì˜ ì‹ ë¹„ë¥¼ 품고 í•˜ëŠ˜ì´ ì˜¤ë©´ 하늘ì„, 새가 오면 새를, êµ¬ë¦„ì´ ì˜¤ë©´ 구름ì„, 그리고 ë‚´ê°€ 오면 나를 비추지 아니하오. 나는 호수가 ë˜ê³  싶소. 그러나 형! 나는 ì´ í˜¸ìˆ˜ë©´ì—서 얼마나 ì •ìž„ì˜ ì–¼êµ´ì„ ì°¾ì•˜ê² ì†Œ. ê·¸ê²ƒì€ ë¬¼ë¦¬í•™ì ìœ¼ë¡œ 불가능한 ì¼ì´ê² ì§€ìš”. ë™ê²½ì˜ ë³‘ì‹¤ì— ëˆ„ì›Œ 있는 ì •ìž„ì˜ ëª¨ì–‘ì´ ëª½ê³  ì‚¬ë§‰ì˜ í˜¸ìˆ˜ë©´ì— ë¹„ì¹  리야 있겠소. 없겠지마는 나는 호수마다 ì •ìž„ì˜ ê·¸ë¦¼ìžë¥¼ 찾았소. 그러나 ë³´ì´ëŠ” ê²ƒì€ ì™¸ë¡œìš´ ë‚´ 그림ìžë¿ì´ì˜¤. -`ê°€ìž. ë없는 사막으로 í•œì—†ì´ ê°€ìž. 가다가 ë‚´ ê¸°ìš´ì´ ì§„í•˜ëŠ” ìžë¦¬ì— 나는 ë‚´ ì†ìœ¼ë¡œ 모래를 파고 ê·¸ ì†ì— ë‚´ ëª¸ì„ ë¬»ê³  죽어 버리ìž. 살아서 다시 ë³¼ 수 없는 ì •ìž„ì˜ ã€Œì´ë°ì•„ã€ë¥¼ 안고 ì´ ê¹¨ë—한 광야ì—서 죽어 버리 ìž.' -하고 나는 지는 해를 향하고 한정 ì—†ì´ ê±¸ì—ˆì†Œ. ì‚¬ë§‰ì´ ë°›ì•˜ë˜ ë”°ëœ»í•œ ê¸°ìš´ì€ ì•„ì§ë„ 다 ì‹ì§€ëŠ” 아니하였소. 사막ì—는 바람 한 ì ë„ 없소. 소리 í•˜ë‚˜ë„ ì—†ì†Œ. ë°œìžêµ­ ë°‘ì—서 우는 마른 풀과 ëª¨ëž˜ì˜ ë°”ìŠ¤ë½ê±°ë¦¬ëŠ” 소리가 들릴 ë¿ì´ì˜¤. -나는 허리를 ì§€í‰ì„ ì— 걸었소. ê·¸ 신비한 ê´‘ì„ ì€ ë‚´ 가슴으로부터 위ì—ë§Œì„ ë¹„ì¶”ê³  있소. -ë¬¸ë“ ë‚˜ëŠ” 해를 ë”°ë¼ê°€ëŠ” 별 ë‘ ê°œë¥¼ 보았소. 하나는 ì•žì„ ì„œê³  하나는 뒤를 섰소. ì•žì˜ ë³„ì€ ì¢€ í¬ê³  ë’¤ì˜ ë³„ì€ ì¢€ 작소. ì´ëŸ° ë³„ë“¤ì€ ì‚° ë§Žì€ ë‚˜ë¼ ë‹¤ì‹œ ë§í•˜ë©´ 서쪽 ì§€í‰ì„ ì„ 보기 어려운 나ë¼ì—서만 ìƒìž¥í•œ 나로서는 ë³´ì§€ ëª»í•˜ë˜ ë³„ì´ì˜¤. 나는 ê·¸ ë³„ì˜ ì´ë¦„ì„ ëª¨ë¥´ì˜¤. `ë‘ ë³„'ì´ì˜¤. -í•´ê°€ ì§€í‰ì„ ì—서 ëš ë–¨ì–´ì§€ìž ëŒ€ê¸°ì˜ ìžì¤ë¹›ì€ 남빛으로 변하였소. ì˜¤ì§ í•´ê°€ 금시 들어간 ìžë¦¬ì—ë§Œ 주í™ë¹›ì˜ ì—¬ê´‘ì´ ìžˆì„ ë¿ì´ì˜¤. ë‚´ 눈앞ì—서는 남빛 안개가 피어오르는 듯하였소. ì•žì— ë³´ì´ëŠ” í˜¸ìˆ˜ë§Œì´ ìœ ë‚œížˆ 빛나오. ë˜ í•œ ë–¼ì˜ ì´ë¦„ 모를 ìƒˆë“¤ì´ ìˆ˜ë©´ì„ ìŠ¤ì¹˜ë©° ë‚  저문 ê²ƒì„ ë†€ë¼ëŠ” ë“¯ì´ ì–´ì§€ëŸ¬ì´ ë‚ ì•„ 지나가오. ê·¸ë“¤ì€ ì†Œë¦¬ë„ ì•„ë‹ˆ 하오. 날개치는 ì†Œë¦¬ë„ ì•„ë‹ˆ 들리오. ê·¸ê²ƒë“¤ì€ ì‚¬ë§‰ì˜ í™©í˜¼ì˜ í—ˆê¹¨ë¹„ì¸ ê²ƒ 같소. -나는 ìžê¾¸ 걷소. 해를 ë”°ë¥´ë˜ ë‚˜ëŠ” ë‘ ë³„ì„ ë”°ë¼ì„œ ìžê¾¸ 걷소. -ë³„ë“¤ì€ ì§„ 해를 ë”°ë¼ì„œ ë°”ì‚ ê±·ëŠ” ê²ƒë„ ê°™ê³ , 헤매는 나를 ì–´ë–¤ 나ë¼ë¡œ ë„는 ê²ƒë„ ê°™ì†Œ. -아니 ë‘ ë³„ ì¤‘ì— ì•žì„  ë³„ì´ í•œ 번 ë°˜ì§í•˜ê³ ëŠ” 최후로 한 번 ë°˜ì§í•˜ê³ ëŠ” ì§€í‰ì„  ë°‘ì— ìˆ¨ì–´ 버리고 마오. ë’¤ì— ë‚¨ì€ ì™¸ë³„ì˜ ì™¸ë¡œì›€ì´ì—¬! 나는 울고 싶었소. 그러나 나는 하나만 ë‚¨ì€ ìž‘ì€ ë³„ 외로운 ìž‘ì€ ë³„ì„ ë”°ë¼ì„œ ë” ë¹¨ë¦¬ 걸ìŒì„ 걸었소. ê·¸ 한 별마저 넘어가 버리면 나는 어찌하오. -ë‚´ê°€ 웬ì¼ì´ì˜¤. 나는 시ì¸ë„ 아니요, ì˜ˆìˆ ê°€ë„ ì•„ë‹ˆì˜¤. 나는 정으로 í–‰ë™í•œ ì¼ì€ 없다고 믿는 사람ì´ì˜¤. 그러나 형! ì´ ë•Œì— ë¯¸ì¹œ ê²ƒì´ ì•„ë‹ˆìš”, ë‚´ 가슴ì—는 무엇ì¸ì§€ 모를 ê²ƒì„ ë”°ë¥¼ 요샛ë§ë¡œ ì´ë¥¸ë°” ë™ê²½ìœ¼ë¡œ 찼소. -`ì•„ì•„ ì € ìž‘ì€ ë³„!' -ê·¸ê²ƒë„ ì§€í‰ì„ ì— 닿았소. -`ì•„ì•„ ì € ìž‘ì€ ë³„. 저것마저 넘어가면 나는 어찌하나.' -ì¸ì œëŠ” 어둡소. ê´‘ì•¼ì˜ í™©í˜¼ì€ ëª…ìƒ‰ë¿ì´ìš”, 순ì‹ê°„ì´ìš”, í•´ì§€ìž ì‹ ë¹„í•˜ë‹¤ê³  í•  만한 극히 ì§§ì€ ë™ì•ˆì— 아름다운 í™©í˜¼ì„ ì¡°ê¸ˆ ë³´ì´ê³ ëŠ” ê³§ ì¹ ê³¼ ê°™ì€ ì•”í‘ì´ì˜¤. í˜¸ìˆ˜ì˜ ë¬¼ë§Œì´ ì–´ë””ì„œ ì€ë¹›ì„ 받았는지 뿌옇게 ë‚˜ë§Œì´ ìœ ì¼í•œ 존재다, ë‚˜ë§Œì´ ìœ ì¼í•œ ë¹›ì´ë‹¤ 하는 ë“¯ì´ ì¸ì œëŠ” 수ì€ë¹›ì´ ì•„ë‹ˆë¼ ë‚¨ë¹›ì„ ë°œí•˜ê³  ìžˆì„ ë¿ì´ì˜¤. -나는 ê·¸ 중 ë¹›ì„ ë§Žì´ ë°›ì€, ê·¸ 중 환해 ë³´ì´ëŠ” í˜¸ìˆ˜ë©´ì„ ì°¾ì•„ ë‘리번거리며, 그러나 빠른 걸ìŒìœ¼ë¡œ 헤매었소. 그러나 ë‚´ê°€ ì¢€ë” ë§‘ì€ í˜¸ìˆ˜ë©´ì„ ì°¾ëŠ” ë™ì•ˆì— ì´ ê´‘ì•¼ì˜ ì–´ë‘ ì€ ë”ìš±ë”ìš± 짙어지오. -나는 ì–´ë–¤ 조그마한 호숫 ê°€ì— íŽ„ì© ì•‰ì•˜ì†Œ. ë‚´ 앞ì—는 ì§™ì€ ë‚¨ë¹›ì˜ ìˆ˜ë©´ì— ì¡°ê·¸ë§ˆí•œ 거울만한 ë°ì€ ë°ê°€ 있소. 마치 ë‚´ 눈ì—서 무슨 ë¹›ì´ ë‚˜ì™€ì„œ, 아마 ì •ìž„ì„ ê·¸ë¦¬ì›Œí•˜ëŠ” ë¹›ì´ ë‚˜ì™€ì„œ ê·¸ ìˆ˜ë©´ì— ë°˜ì‚¬í•˜ëŠ” 듯ì´. 나는 í—ˆê²ì§€ê² ê·¸ 빤한 ìˆ˜ë©´ì„ ë“¤ì—¬ë‹¤ë³´ì•˜ì†Œ. 혹시나 ì •ìž„ì˜ ëª¨ì–‘ì´ ê±°ê¸° 나타나지나 아니할까 하고. 세ìƒì—는 그러한 기ì ë„ 있지 아니한가 하고. -물ì—는 ì •ìž„ì˜ ì–¼êµ´ì´ ì–´ë¥¸ê±°ë¦¬ëŠ” 것 같았소. ì´ë”°ê¸ˆ ì •ìž„ì˜ ëˆˆë„ ì–´ë¥¸ê±°ë¦¬ê³  ì½”ë„ ë²ˆëœ»ê±°ë¦¬ê³  ìž…ë„ ë²ˆëœ»ê±°ë¦¬ëŠ” 것 같소. 그러나 ìˆ˜ë©´ì€ ì ì  ì–´ë‘워 가서 ê·¸ 환ì˜ì¡°ì°¨ ë”ìš± í¬ë¯¸í•´ì§€ì˜¤. -나는 í˜¸ìˆ˜ë©´ì— ë¹¤í•˜ë˜ í•œ ì¡°ê°ì¡°ì°¨ 캄캄해지는 ê²ƒì„ ë³´ê³  ìˆ¨ì´ ë§‰íž ë“¯í•¨ì„ ê¹¨ë‹¬ìœ¼ë©´ì„œ 고개를 들었소. -고개를 들려고 í•  때ì—, 형ì´ì—¬, ì´ìƒí•œ ì¼ë„ 다 있소. ê·¸ ìˆ˜ë©´ì— ì •ìž„ì˜ ëª¨ì–‘ì´, 얼굴만 아니ë¼, ê·¸ 몸 ì˜¨í†µì´ ê·¸ 어깨, 가슴, 팔, 다리까지ë„, ê·¸ 눈과 입까지ë„, ê·¸ ì–¼êµ´ì˜ í° ê²ƒê³¼ ìž…ìˆ ì´ ë¶ˆê·¸ë ˆí•œ 것까지ë„, 마치 환한 ëŒ€ë‚®ì— ì‹¤ë¬¼ì„ ëŒ€í•œ 모양으로 소ìƒí•˜ê²Œ 나타났소. -"ì •ìž„ì´!" -하고 나는 소리를 지르며 물로 뛰어들려 하였소. 그러나 형, ê·¸ ìˆœê°„ì— ì •ìž„ì˜ ëª¨ì–‘ì€ ì‚¬ë¼ì ¸ 버리고 ë§ì•˜ì†Œ. -나는 ì´ ì–´ë‘  ì†ì— ì–´ë”” ì •ìž„ì´ê°€ 나를 ë”°ë¼ì˜¨ ê²ƒê°™ì´ ìƒê°í–ˆì†Œ. 혹시나 ì •ìž„ì´ê°€ 죽어서 ê·¸ ëª¸ì€ ë™ê²½ì˜ 대학 병ì›ì— ë²—ì–´ ë‚´ì–´ë˜ì§€ê³  í˜¼ì´ ë¹ ì ¸ 나와서 ë¬¼ì— ë¹„ì¹˜ì—ˆë˜ ê²ƒì´ ì•„ë‹ê¹Œ, 나는 ê°€ìŠ´ì´ ìš¸ë ê±°ë¦¼ì„ 진정치 못하면서 호숫 ê°€ì—서 벌떡 ì¼ì–´ë‚˜ì„œ ì–´ë‘  ì†ì— ì •ìž„ì„ ë§Œì ¸ë³´ë ¤ëŠ” 듯ì´, ì–´ë‘워서 ëˆˆì— ë³´ì§€ëŠ” 못하ë”ë¼ë„ ìžê¾¸ 헤매노ë¼ë©´ ëª¸ì— ë¶€ë”ªížˆê¸°ë¼ë„ í•  것 같아서 함부로 헤매었소. 그리고는 ëˆˆì•žì— ë²ˆëœ»ê±°ë¦¬ëŠ” ì •ìž„ì˜ í™˜ì˜ì„ íŒ”ì„ ë²Œë ¤ì„œ 안고 소리를 내어서 불렀소. -"ì •ìž„ì´, ì •ìž„ì´." -하고 나는 ìˆ˜ì—†ì´ ì •ìž„ì„ ë¶€ë¥´ë©´ì„œ 헤매었소. -그러나 형, ì´ê²ƒë„ 죄지요. ì´ê²ƒë„ 하나님께서 금하시는 ì¼ì´ì§€ìš”. 그러길래 ê´‘ì•¼ì— ì•„ì£¼ ì–´ë‘ ì´ ë®ì´ê³  새까만 í•˜ëŠ˜ì— ë³„ì´ ì´ì´í•˜ê²Œ 나고는 ì˜ ì •ìž„ì˜ í—›ê·¸ë¦¼ìžì¡°ì°¨ 아니 ë³´ì´ì§€ìš”. 나는 죄를 피해서 ì •ìž„ì„ ë– ë‚˜ì„œ 멀리 온 것ì´ë‹ˆ ì •ìž„ì˜ í—›ê·¸ë¦¼ìžë¥¼ ë”°ë¼ë‹¤ë‹ˆëŠ” ê²ƒë„ ì˜³ì§€ 않지요. -그렇지만 ë‚´ê°€ ì´ë ‡ê²Œ 혼ìžì„œ ì •ìž„ì„ ìƒê°ë§Œ 하는 것ì´ì•¼ 무슨 죄 ë  ê²ƒì´ ìžˆì„까요. ë‚´ê°€ ì •ìž„ì„ ë§Œ 리나 떠나서 ì´ë ‡ê²Œ 헛그림ìžë‚˜ 그리며 그리워하는 것ì´ì•¼ 무슨 죄가 ë ê¹Œìš”. 설사 죄가 ë˜ê¸°ë¡œì„œë‹ˆ 낸들 ì´ê²ƒê¹Œì§€ì•¼ 어찌하오. ë‚´ê°€ ë‚´ í˜¼ì„ ì£½ì—¬ 버리기 ì „ì—야 ë‚´ 힘으로 어찌하오. 설사 죄가 ë˜ì–´ì„œ ë‚´ê°€ ì§€ì˜¥ì˜ êº¼ì§€ì§€ 않는 유황불 ì†ì—서 ì˜ì›í•œ í˜•ë²Œì„ ë°›ê²Œ ë˜ê¸°ë¡œì„œë‹ˆ ê·¸ê²ƒì„ ì–´ì°Œí•˜ì˜¤. 형, ì´ê²ƒ, ì´ê²ƒë„ ë§ì•„야 옳ì€ê°€ìš”. ì •ìž„ì˜ í—›ê·¸ë¦¼ìžê¹Œì§€ë„ ëŠì–´ 버려야 옳ì€ê°€ìš”. -ì´ ë•Œìš”. 바로 ì´ ë•Œìš”. ë‚´ 앞 수십 보나 ë ê¹Œ(캄캄한 ë°¤ì´ë¼ 먼지 가까운지 분명히 알 수 없지마는) 하는 ê³³ì— ë‚œë°ì—†ëŠ” 등불 하나가 나서오. 나는 ê¹œì§ ë†€ë¼ì„œ ìš°ëš ì„°ì†Œ. ì´ ë¬´ì¸ì§€ê²½, ì´ ë°¤ì¤‘ì— ê°‘ìžê¸° ë³´ì´ëŠ” 등불 ê·¸ê²ƒì€ ë§ˆì¹˜ ì´ ì„¸ìƒ ê°™ì§€ 아니하였소. -ì € ë“±ë¶ˆì´ ì–´ë–¤ 등불ì¼ê¹Œ, ê·¸ ë“±ë¶ˆì´ ëª‡ ê±¸ìŒ ê°€ê¹Œì´ ì˜¤ë‹ˆ, ê·¸ 등불 ë’¤ì— ì‚¬ëžŒì˜ ë‹¤ë¦¬ê°€ ë³´ì´ì˜¤. -"누구요?" -하는 ê²ƒì€ ê·€ì— ìµì€ ì¡°ì„ ë§ì´ì˜¤. 어떻게 ì´ ëª½ê³ ì˜ ê´‘ì•¼ì—서 ì¡°ì„ ë§ì„ 들ì„까 하고 나는 ë“±ë¶ˆì„ ì²˜ìŒ ë³¼ 때보다 ë”ìš± 놀ëžì†Œ. -"나는 ì§€ë‚˜ê°€ë˜ ì‚¬ëžŒì´ì˜¤." -하고 ë‚˜ë„ ë“±ë¶ˆì„ í–¥í•˜ì—¬ 마주 걸어갔소. -ê·¸ ì‚¬ëžŒì€ ë“±ë¶ˆì„ ë“¤ì–´ì„œ ë‚´ ì–¼êµ´ì„ ë¹„ì¶”ì–´ ë³´ë”니, -"당신 ì¡°ì„  사람ì´ì˜¤?" -하고 묻소. -"네, 나는 ì¡°ì„  사람ì´ì˜¤. ë‹¹ì‹ ë„ ìŒì„±ì„ 들으니 ì¡°ì„  사람ì¸ë°, 어떻게 ì´ëŸ° 광야ì—, 아닌 밤중ì—, 여기 계시단 ë§ì´ì˜¤." -하고 나는 놀ë¼ëŠ” 표정 그대로 대답하였소. -"나는 ì´ ê·¼ë°©ì— ì‚¬ëŠ” 사람ì´ë‹ˆê¹Œ 여기 오는 ê²ƒë„ ìžˆì„ ì¼ì´ì§€ë§ˆëŠ” 당신ì´ì•¼ë§ë¡œ ì´ ì•„ë‹Œ 밤중ì—." -하고 육혈í¬ë¥¼ 집어넣고, ì†ì„ 내밀어서 내게 악수를 구하오. -나는 반갑게 ê·¸ì˜ ì†ì„ 잡았소. 그러나 나는 `ì£½ì„ ì§€ê²½ì— ì–´ë–»ê²Œ 오셨단 ë§ì´ì˜¤.' 하고, 그가 ë‚´ê°€ 무슨 ì•…ì˜ë¥¼ 가진 í‰í•œì´ 아닌 ì¤„ì„ ì•Œê³  ì†ì— ë¹¼ì–´ë“¤ì—ˆë˜ ìœ¡í˜ˆí¬ë¡œ 시기를 ìž ê¹ì´ë¼ë„ 노린 ê²ƒì„ ë¶ˆì¾Œí•˜ê²Œ ìƒê°í•˜ì˜€ë˜ 것ì´ì˜¤. -ê·¸ë„ ë‚´ ì´ë¦„ë„ ë¬»ì§€ 아니하고 ë˜ ë‚˜ë„ ê·¸ì˜ ì´ë¦„ì„ ë¬»ì§€ 아니하고 나는 ê·¸ì—게 ëŒë ¤ì„œ 그가 ì¸ë„하는 곳으로 갔소. ê·¸ ê³³ì´ëž€ ê²ƒì€ ì•„ê¹Œ ë“±ë¶ˆì´ ì²˜ìŒ ë‚˜íƒ€ë‚˜ë˜ ê³³ì¸ ë“¯í•œë°, 거기서 ë˜ í•œ 번 놀란 ê²ƒì€ ì–´ë–¤ ë¶€ì¸ì´ 있는 것ì´ì˜¤. 남ìžëŠ” ì•„ë¼ì‚¬ì‹ ì–‘ë³µì„ ìž…ì—ˆìœ¼ë‚˜ ë¶€ì¸ì€ 중국 옷 비슷한 ì˜·ì„ ìž…ì—ˆì†Œ. 남ìžëŠ” 나를 ëŒì–´ì„œ ê·¸ ë¶€ì¸ì—게 ì¸ì‚¬í•˜ê²Œ 하고, -"ì´ëŠ” ë‚´ ì•„ë‚´ìš”." -하고 ë˜ ê·¸ ì•„ë‚´ë¼ëŠ” ë¶€ì¸ì—게는, -"ì´ ì´ëŠ” ì¡°ì„  ì–‘ë°˜ì´ì˜¤. ì„±í•¨ì´ ë‰˜ì‹œì£ ?" -하고 그는 나를 ë°”ë¼ë³´ì˜¤. 나는, -"최ì„입니다." -하고 바로 대답하였소. -"ìµœì„ ì”¨?" -하고 ê·¸ 남ìžëŠ” ì†Œê°œí•˜ë˜ ê²ƒë„ ìžŠì–´ë²„ë¦¬ê³  ë‚´ ì–¼êµ´ì„ ë“¤ì—¬ë‹¤ë³´ì˜¤. -"네, 최ì„입니다." -"ì•„ â—â—í•™êµ êµìž¥ìœ¼ë¡œ 계신 ìµœì„ ì”¨." -하고 ê·¸ 남ìžëŠ” ë”ìš± 놀ë¼ì˜¤. -"네, 어떻게 ë‚´ ì´ë¦„ì„ ì•„ì„¸ìš”?" -하고 ë‚˜ë„ ê·¸ê°€ 혹시 아는 사람ì´ë‚˜ 아닌가 하고 등불 ë¹›ì— ì–¼êµ´ì„ ë“¤ì—¬ë‹¤ 보았으나 ë„무지 ê·¸ ì–¼êµ´ì´ ë³¸ ê¸°ì–µì´ ì—†ì†Œ. -"최 ì„ ìƒì„ ë‚´ê°€ 압니다. 남 ì„ ìƒí•œí…Œ ë§ì”€ì„ ë§Žì´ ë“¤ì—ˆì§€ìš”. ê·¸ëŸ°ë° ë‚¨ ì„ ìƒë„ ëŒì•„가신 지가 ë²Œì¨ ëª‡ 핸가." -하고 ê°ê°œë¬´ëŸ‰í•œ ë“¯ì´ ê·¸ 아내를 ëŒì•„보오. -"십오 ë…„ì´ì§€ìš”." -하고 ê³ì— ì„°ë˜ ë¶€ì¸ì´ ë§í•˜ì˜¤. -"ë²Œì¨ ì‹­ì˜¤ ë…„ì¸ê°€." -하고 ê·¸ 남ìžëŠ” 나를 ë³´ê³ , -"ì •ìž„ì´ ìž˜ ìžëžë‹ˆê¹Œ? ë²Œì¨ ì´ì‹­ì´ 넘었지." -하고 ë˜ ë¶€ì¸ì„ ëŒì•„보오. -"스물세 ì‚´ì´ì§€." -하고 ë¶€ì¸ì´ 확실치 아니한 ë“¯ì´ ëŒ€ë‹µí•˜ì˜¤. -"네, 스물세 살입니다. 지금 ë™ê²½ì— 있습니다. ë³‘ì´ ë‚˜ì„œ ìž…ì›í•œ ê²ƒì„ ë³´ê³  왔는ë°." -하고 나는 ë²ˆê°œê°™ì´ ì •ìž„ì˜ ë³‘ì‹¤ê³¼ ì •ìž„ì˜ í˜¸í…” 장면 ë“±ì„ ìƒê°í•˜ê³  ê°€ìŠ´ì´ ì„¤ë ˜ì„ ê¹¨ë‹¬ì•˜ì†Œ. ì˜ì™¸ì¸ ê³³ì—서 ì˜ì™¸ì¸ ì‚¬ëžŒë“¤ì„ ë§Œë‚˜ì„œ ì •ìž„ì˜ ë§ì„ 하게 ëœ ê²ƒì„ ê¸°ë»í•˜ì˜€ì†Œ. -"무슨 병입니까. ì •ìž„ì´ê°€ 본래 ëª¸ì´ ì•½í•´ì„œ." -하고 ë¶€ì¸ì´ ì§ì ‘ 내게 묻소. -"네. ëª¸ì´ ì¢€ 약합니다. ë³‘ì´ ì¢€ ë‚˜ì€ ê²ƒì„ ë³´ê³  떠났습니다마는 염려가 ë©ë‹ˆë‹¤." -하고 나는 무ì˜ì‹ì¤‘ì— ê³ ê°œë¥¼ ë™ê²½ì´ 있는 방향으로 ëŒë ¸ì†Œ. 마치 고개를 ë™ìœ¼ë¡œ ëŒë¦¬ë©´ ì •ìž„ì´ê°€ ë³´ì´ê¸°ë‚˜ í•  것같ì´. -"ìž, 우리 집으로 갑시다." -하고 나는 ì•„ì§ ê·¸ì˜ ì„±ëª…ë„ ëª¨ë¥´ëŠ” 남ìžëŠ”, ê·¸ì˜ ì•„ë‚´ë¥¼ 재촉하ë”니, -"우리가 ì¡°ì„  ë™í¬ë¥¼ 만난 ê²ƒì´ ì‹­ì—¬ ë…„ ë§Œì´ì˜¤. ê·¸ëŸ°ë° ìµœ ì„ ìƒ, ì´ê²ƒì„ 좀 보시고 가시지요." -하고 그는 빙그레 웃으면서 나를 서너 ê±¸ìŒ ëŒê³  가오. 거기는 조그마한 무ë¤ì´ 있고 ê·¸ 앞ì—는 ì„ ìž ë†’ì´ë‚˜ ë˜ëŠ” 목패를 ì„¸ì› ëŠ”ë° ê·¸ 목패ì—는 `ë‘ ë³„ 무ë¤'ì´ë¼ëŠ” 넉 ìžë¥¼ ì¼ì†Œ. -ë‚´ê°€ ì´ìƒí•œ 눈으로 ê·¸ 무ë¤ê³¼ 목패를 ë³´ê³  있는 ê²ƒì„ ë³´ê³  그는, -"ì´ê²Œ 무슨 무ë¤ì¸ì§€ 아십니까?" -하고 유쾌하게 묻소. -"ë‘ ë³„ 무ë¤ì´ë¼ë‹ˆ 무슨 뜻ì¸ê°€ìš”?" -하고 ë‚˜ë„ ê·¸ì˜ ìœ ì¾Œí•œ í‘œì •ì— ì „ì—¼ì´ ë˜ì–´ì„œ 웃고 물었소. -"ì´ê²ƒì€ 우리 ë‘˜ì˜ ë¬´ë¤ì´ì™¸ë‹¤." -하고 그는 ì•„ë‚´ì˜ ì–´ê¹¨ë¥¼ 치며 유쾌하게 웃었소. ë¶€ì¸ì€ ë¶€ë„러운 ë“¯ì´ ì›ƒê³  고개를 숙ì´ì˜¤. -ë„무지 ëª¨ë‘ ê¿ˆ 같고 í™˜ì˜ ê°™ì†Œ. -"ìž ê°‘ì‹œë‹¤. ìžì„¸í•œ ë§ì€ 우리 ì§‘ì— ê°€ì„œ 합시다." -하고 서너 ê±¸ìŒ ì–´ë–¤ 방향으로 걸어가니 거기는 ë§ì„ 세 í•„ì´ë‚˜ 맨 마차가 있소. 몽고 ì‚¬ëžŒë“¤ì´ ê°€ì¡±ì„ ì‹£ê³  수초를 ë”°ë¼ ëŒì•„다니는 그러한 마차요. ì‚¿ìžë¦¬ë¡œ í™ì˜ˆí˜•ì˜ ì§€ë¶•ì„ ë§Œë“¤ê³  ê·¸ ì†ì— 들어가 앉게 ë˜ì—ˆì†Œ. ê·¸ì˜ ë¶€ì¸ê³¼ 나와는 ì´ ì§€ë¶• ì†ì— 들어앉고 그는 ì†ìˆ˜ ì–´ìžëŒ€ì— 앉아서 입으로 쮸쮸쮸쮸 하고 ë§ì„ 모오. ë“±ë¶ˆë„ êº¼ 버리고 캄캄한 ì†ìœ¼ë¡œ 달리오. -"ë¶ˆì´ ìžˆìœ¼ë©´ 군대ì—서 ì˜ì‹¬ì„ 하지요. ë„ì ë†ˆì´ 엿보지요. 게다가 ë¶ˆì´ ìžˆìœ¼ë©´ ë„리어 ì•žì´ ì•ˆ ë³´ì¸ë‹¨ ë§ìš”. 쯧쯧쯧쯧!" -하는 소리가 들리오. -대체 ì´ ì‚¬ëžŒì€ ë¬´ìŠ¨ 사람ì¸ê°€. ë˜ ì´ ë¶€ì¸ì€ 무슨 사람ì¸ê°€ 하고 나는 ì–´ë‘ìš´ ì†ì—서 í˜¼ìž ìƒê°í•˜ì˜€ì†Œ. 다만 잠시 본 ì¸ìƒìœ¼ë¡œ 보아서 ê·¸ë“¤ì€ í–‰ë³µëœ ë¶€ë¶€ì¸ ê²ƒ 같았소. ê·¸ë“¤ì´ ë¬´ì—‡ 하러 ì´ ì•„ë‹Œ ë°¤ì¤‘ì— ê´‘ì•¼ì— ë‚˜ì™”ë˜ê°€. ë˜ ê·¸ ì´ìƒì•¼ë¦‡í•œ ë‘ ë³„ 무ë¤ì´ëž€ 무엇ì¸ê°€. -나는 불현듯 ì§‘ì„ ìƒê°í•˜ì˜€ì†Œ. ë‚´ 아내와 ì–´ë¦°ê²ƒë“¤ì„ ìƒê°í•˜ì˜€ì†Œ. 가정과 사회ì—서 쫓겨난 ë‚´ê°€ 아니오. 쫓겨난 ìžì˜ ìƒê°ì€ 언제나 슬픔ë¿ì´ì—ˆì†Œ. -나는 ë‚´ 아내를 ì›ë§ì¹˜ 아니하오. 그는 ê²°ì½” 악한 ì—¬ìžê°€ 아니오. 다만 보통 ì—¬ìžìš”. 그는 질투 ë•Œë¬¸ì— ì´ì„±ì˜ íž˜ì„ ìžƒì€ ê²ƒì´ì˜¤. ì—¬ìžê°€ 질투 ë•Œë¬¸ì— ì´ì„±ì„ 잃는 ê²ƒì´ ì²œì§ì´ ì•„ë‹ê¹Œìš”. 그가 나를 사랑하길래 나를 위해서 질투를 가지는 ê²ƒì´ ì•„ë‹ˆì˜¤. -설사 질투가 그로 하여금 ì¹¼ì„ ë“¤ì–´ ë‚´ ê°€ìŠ´ì„ ì°Œë¥´ê²Œ 하였다 하ë”ë¼ë„ 나는 ê°ì‚¬í•œ ìƒê°ì„ 가지고 ëˆˆì„ ê°ì„ 것ì´ì˜¤. 사랑하는 ìžëŠ” 질투한다고 하오. 질투를 누르는 ê²ƒë„ ì•„ë¦„ë‹¤ìš´ ì¼ì´ì§€ë§ˆëŠ” ì§ˆíˆ¬ì— íƒ€ëŠ” ê²ƒë„ ì•„ë¦„ë‹¤ìš´ ì¼ì´ ì•„ë‹ê¹Œìš”. -ëœí¬ëŸ­ëœí¬ëŸ­ 하고 차바퀴가 ì² ë¡œê¸¸ì„ ë„˜ì–´ê°€ëŠ” 소리가 나ë”니 ì´ìœ½ê³  마차는 섰소. -ì•žì— ë¹¨ê°›ê²Œ ë¶ˆì´ ë¹„ì¹˜ì˜¤. -"ìž ì´ê²Œ 우리 ì§‘ì´ì˜¤." -하고 그가 마차ì—서 뛰어내리는 ì–‘ì´ ë³´ì´ì˜¤. ë‚´ë ¤ 보니까 ë‹¬ì´ ì˜¬ë¼ì˜¤ì˜¤. 굉장히 í° ë‹¬ì´, ë¶‰ì€ ë‹¬ì´ ì§€í‰ì„ ìœ¼ë¡œì„œ 넘ì„하고 올ë¼ì˜¤ì˜¤. -ë‹¬ë¹›ì— ë¹„ì¶”ì¸ ë°”ë¥¼ ë³´ë©´ 네모나게 ë‹´ ë‹´ì´ë¼ê¸°ë³´ë‹¤ëŠ” ì„±ì„ ë‘˜ëŸ¬ìŒ“ì€ ë‹¬ 뜨는 곳으로 열린 ëŒ€ë¬¸ì„ ë“¤ì–´ì„œì„œ ë„“ì€ ë§ˆë‹¹ì— ë‚´ë¦° ê²ƒì„ ë°œê²¬í•˜ì˜€ì†Œ. -"아버지!" -"엄마!" -하고 ì•„ì´ë“¤ì´ 뛰어나오오. ë§ë§Œí¼ì´ë‚˜ í° ê°œê°€ 네 놈ì´ë‚˜ 꼬리를 치고 나오오. ê·¸ë†ˆë“¤ì´ ì£¼ì¸ì§‘ 마차 소리를 알아듣고 ì§–ì§€ 아니한 모양ì´ì˜¤. -í° ì•„ì´ëŠ” 계집애로 ì—¬ë‚¨ì€ ì‚´, ìž‘ì€ ì•„ì´ëŠ” 사내로 육칠 세, ëª¨ë‘ ì¤‘êµ­ ì˜·ì„ ìž…ì—ˆì†Œ. -우리는 방으로 들어갔소. ë°©ì€ ì•„ë¼ì‚¬ì‹ 절반, ì¤‘êµ­ì‹ ì ˆë°˜ìœ¼ë¡œ ì„¸ê°„ì´ ë†“ì—¬ 있고 ë²½ì—는 ì¡°ì„  ì§€ë„와 ë‹¨êµ°ì˜ ì´ˆìƒì´ 걸려 있소. -그들 부처는 ì§€ë„와 단군 ì´ˆìƒ ì•žì— í—ˆë¦¬ë¥¼ 굽혀 배례하오. ë‚˜ë„ ë¬´ì˜ì‹ì ìœ¼ë¡œ 그대로 하였소. -그는 차를 마시며 ì´ë ‡ê²Œ ë§í•˜ì˜¤. -"우리는 ìžì‹ë“¤ì„ ì´ í¥ì•ˆë ¹ 가까운 무변 광야ì—서 기르는 것으로 ë‚™ì„ ì‚¼ê³  있지요. ì¡°ì„  ì‚¬ëžŒë“¤ì€ í•˜ë„ ë§ˆìŒì´ 작아서 걱정ì´ë‹ˆ ì´ëŸ° 호호탕탕한 ë„“ì€ ë²ŒíŒì—서 길러나면 마ìŒì´ 좀 커질까 하지요. ë˜ í¥ì•ˆë ¹ ë°‘ì—서 지나 중ì›ì„ 통ì¼í•œ ì œì™•ì´ ë§Žì´ ë‚¬ìœ¼ë‹ˆ 혹시나 ê·¸ 정기가 남아 있ì„까 하지요. 우리 ë¶€ì²˜ì˜ ìžì†ì´ 몇 대를 ë‘ê³  í¼ì§€ëŠ” ë™ì•ˆì—는 행여나 ë§ˆìŒ í° ì¸ë¬¼ì´ 하나 둘 날는지 알겠어요, 하하하하." -하고 그는 ì œ ë§ì„ 제가 비웃는 ë“¯ì´ í•œë°”íƒ• 웃고 나서, -"그러나 ì´ê±´ ë‚´ ì§„ì •ì´ì™¸ë‹¤. ìš°ë¦¬ë„ ì´ë ‡ê²Œ ê³ êµ­ì„ ë– ë‚˜ 있지마는 ê·¸ëž˜ë„ ê³ êµ­ 소ì‹ì´ ê¶ê¸ˆí•´ì„œ 신문 하나는 늘 보지요. 하지만 ì–´ë”” 시ì›í•œ 소ì‹ì´ 있어요. 그저 조리복소니가 ë˜ì–´ê°€ëŠ” ê²ƒì´ ì•„ë‹ˆë©´ 조그마한 ìƒê°ì„ 가지고, 눈곱만한 ì•¼ì‹¬ì„ ê°€ì§€ê³ , 서 푼어치 안 ë˜ëŠ” ì´ìƒì„ 가지고 ì°§ê³  까불고 싸우고 하는 ê²ƒë°–ì— ì•ˆ ë³´ì´ë‹ˆ ì´ê±° ì–´ë”” ì‚´ 수가 있나. 그래서 나는 ë§ˆìŒ í° ìžì†ì„ 낳아서 길러 볼까 하고 ì´ë¥¼í…Œë©´ 새 ë¯¼ì¡±ì„ í•˜ë‚˜ 만들어 볼까 하고, 둘째 단군, 둘째 아브ë¼í•¨ì´ë‚˜ 하나 낳아 볼까 하고 하하하하앗하." -하고 유쾌하게, 그러나 비통하게 웃소. -나는 ì €ë…ì„ êµ¶ì–´ì„œ ë°°ê°€ 고프고, ë°¤ê¸¸ì„ ê±¸ì–´ì„œ ëª¸ì´ ê³¤í•œ ê²ƒë„ ìžŠê³  ê·¸ì˜ ë§ì„ 들었소. -ë¶€ì¸ì´ ê¹€ì´ ë¬´ëŸ­ë¬´ëŸ­ 나는 í˜¸ë–¡ì„ í° ëšë°°ê¸°ì— ë‹´ê³  김치를 ìž‘ì€ ëšë°°ê¸°ì— ë‹´ê³ , ë˜ ë¼ì§€ê³ ê¸° ì‚¶ì€ ê²ƒì„ í•œ 접시 담아다가 íƒìž ìœ„ì— ë†“ì†Œ. -건넌방ì´ë¼ê³  í•  만한 ë°©ì—서 ì –ë¨¹ì´ ìš°ëŠ” 소리가 들리오. ë¶€ì¸ì€ 삼십ì´ë‚˜ ë˜ì—ˆì„까, ë‚¨íŽ¸ì€ ì„œë¥¸ëŒ“ ë˜ì—ˆì„ 듯한 키가 í›¨ì© í¬ê³  눈과 코가 í¬ê³  ì†ë„ í° ê±´ìž¥í•œ 대장부요, ìŒì„±ì´ 부드러운 ê²ƒì´ ì²´ê²©ì— ì–´ìš¸ë¦¬ì§€ 아니하나 ê·¸ê²ƒì´ ì•„ë§ˆ ê·¸ì˜ ì •ì‹  ìƒí™œì´ ë†’ì€ í‘œê² ì§€ìš”. -"신문ì—서 최 ì„ ìƒì´ í•™êµë¥¼ ê³ ë§Œë‘시게 ë˜ì—ˆë‹¤ëŠ” ë§ë„ 보았지요. 그러나 나는 ê·¸ê²ƒì´ ë‹¤ 최 ì„ ìƒì—게 대한 중ìƒì¸ ì¤„ì„ ì§ìž‘하였고, ë˜ ì˜¤ëŠ˜ ì´ë ‡ê²Œ 만나 보니까 ë”구나 ê·¸ê²ƒì´ ë‹¤ 중ìƒì¸ ì¤„ì„ ì•Œì§€ìš”." -하고 그는 확신 있는 어조로 ë§í•˜ì˜¤. -"고맙습니다." -나는 ì´ë ‡ê²Œë°–ì— ëŒ€ë‹µí•  ë§ì´ 없었소. -"ì•„, 머, 고맙다고 하실 ê²ƒë„ ì—†ì§€ìš”." -하고 그는 머리를 뒤로 젖히고 한참ì´ë‚˜ ìƒê°ì„ 하ë”니 ìš°ì„  껄껄 한바탕 웃고 나서, -"ë‚´ê°€ 최 ì„ ìƒì´ 당하신 경우와 ê¼­ ê°™ì€ ê²½ìš°ë¥¼ 당하였거든요. ì´ë¥¼í…Œë©´ 과부 ì„¤ì›€ì€ ë™ë¬´ 과부가 안다는 것ì´ì§€ìš”." -하고 그는 ìžê¸°ì˜ ë‚´ë ¥ì„ ë§í•˜ê¸° 시작하오. -"ë‚´ ì§‘ì€ ë³¸ëž˜ 서울입니다. ë‚´ê°€ ì–´ë ¸ì„ ì ì— ë‚´ 선친께서 ì‹œêµ­ì— ëŒ€í•´ì„œ 불í‰ì„ 품고 당신 삼 í˜•ì œì˜ ê°€ì¡±ì„ ëŒê³  ìž¬ì‚°ì„ ëª¨ë‘ íŒ”ì•„ 가지고 ê°„ë„ì—를 건너오셨지요. ê°„ë„ì— ë§¨ 먼저 â—â—í•™êµë¥¼ 세운 ì´ê°€ ë‚´ 선친ì´ì§€ìš”." -여기까지 하는 ë§ì„ 듣고 나는 그가 누구ì¸ì§€ë¥¼ 알았소. 그는 R씨ë¼ê³  ê°„ë„ ê°œì²™ìžìš”, ê°„ë„ì— ì¡°ì„ ì¸ ë¬¸í™”ë¥¼ 세운 ì´ë¡œ 유명한 ì´ì˜ ì•„ë“¤ì¸ ê²ƒì´ ë¶„ëª…í•˜ì˜¤. 나는 ê·¸ì˜ ì´ë¦„ì´ ëˆ„êµ¬ì¸ì§€ë„ 물어 ë³¼ 것 ì—†ì´ ì•Œì•˜ì†Œ. -"ì•„ 그러십니까. 네, 그러세요." -하고 나는 ê°íƒ„하였소. -"네, ë‚´ ì„ ì¹œì„ í˜¹ 아실는지요. ì„ ì¹œì˜ ë§ì”€ì´ ë…¸ 그러신단 ë§ì”€ì•¼ìš”. ì¡°ì„  ì‚¬ëžŒì€ ì†ì´ ì¢ì•„서 못쓴다고 <ì •ê°ë¡>ì—ë„ ê·¸ëŸ° ë§ì´ 있다고 ì¡°ì„ ì€ ì‚°ì´ ë§Žê³  ë“¤ì´ ì¢ì•„서 ì‚¬ëžŒì˜ ë§ˆìŒì´ 작아서 í°ì¼í•˜ê¸°ê°€ 어렵고, í°ì‚¬ëžŒì´ 나기가 어렵다고. 웬만치 í°ì‚¬ëžŒì´ 나면 서로 시기해서 í°ì¼í•  새가 ì—†ì´ í•œë‹¤ê³  그렇게 <ì •ê°ë¡>ì—ë„ ìžˆë‹¤ë”êµ°ìš”. 그래서 선친께서 ìžì†ì—게나 í¬ë§ì„ ë¶™ì´ê³  ê°„ë„로 오신 모양ì´ì§€ìš”. 거기서 ìžë¼ë‚¬ë‹¤ëŠ” ê²ƒì´ ë‚´ 꼴입니다마는, 아하하. -ë‚´ê°€ ìžë¼ì„œ 아버지께서 세우신 K여학êµì˜ êµì‚¬ë¡œ ìžˆì„ ë•Œ ì¼ìž…니다. 지금 ë‚´ 아내는 ê·¸ 때 í•™ìƒìœ¼ë¡œ 있었구. ê·¸ëŸ¬ìž ë‚´ 아버지께서 ìž¬ì‚°ì´ ë‹¤ 없어져서 í•™êµë¥¼ ë…담하실 수가 없고, ë˜ ì–¼ë§ˆ 아니해서 아버지께서 ëŒì•„가시고 보니 í•™êµì—는 세력 ë‹¤íˆ¼ì´ ìƒê²¨ì„œ ì•„ë²„ì§€ì˜ í›„ê³„ìžë¡œ 추정ë˜ëŠ” 나를 배척하게 ë˜ì—ˆë‹¨ ë§ì”€ì´ì˜¤. 거기서 나를 배척하는 ìžë£Œë¥¼ ì‚¼ì€ ê²ƒì´ ë‚˜ì™€ 지금 ë‚´ ì•„ë‚´ê°€ ëœ í•™ìƒì˜ 관계란 것ì¸ë° ì´ê²ƒì€ ì „ì—° ë¬´ê·¼ì§€ì„¤ì¸ ê²ƒì€ ë§í•  ê²ƒë„ ì—†ì†Œ. ë‚˜ë„ ì´ê°ì´ìš”, 그는 처녀니까 혼ì¸ì„ 하ìžë©´ 못 í•  ê²ƒë„ ì—†ì§€ë§ˆëŠ” ê·¸ê²ƒì´ ì‚¬ì œ 관계ë¼ë©´ 중대 문제거든. 그래서 나는 단연히 사ì§ì„ 하고 ë‚´ê°€ 사ì§í•œ ê²ƒì€ ì œ 죄를 승ì¸í•œ 것ì´ë¼ 하여서 ê·¸ í•™ìƒ ì§€ê¸ˆ ë‚´ ì•„ë‚´ë„ ì¶œêµ ì²˜ë¶„ì„ ë‹¹í•œ 것ì´ì˜¤. 그러고 보니, ê·¸ ì—¬ìžì˜ 아버지 ë‚´ 장ì¸ì´ì§€ìš” ê·¸ ì—¬ìžì˜ 아버지는 나를 ì£½ì¼ ë†ˆê°™ì´ ì›ë§ì„ 하고 ê·¸ ë”¸ì„ ì£½ì¼ ë…„ì´ë¼ê³  ê°ê¸ˆì„ 하고 어쨌으나 조그마한 ê°„ë„ ì‚¬íšŒì—서 í° íŒŒë¬¸ì„ ì¼ìœ¼ì¼°ë‹¨ ë§ì´ì˜¤. -ì´ ë¬¸ì œë¥¼ ë” í¬ê²Œ 만든 ê²ƒì€ ì§€ê¸ˆ ë‚´ ì•„ë‚´ì¸, ê·¸ ë”¸ì˜ ìžë°±ì´ì˜¤. 무어ë¼ê³  했는고 하니, 나는 ê·¸ ì‚¬ëžŒì„ ì‚¬ëž‘í•˜ì˜¤, ê·¸ 사람한테가 아니면 ì‹œì§‘ì„ ì•ˆ 가오, 하고 뻗댔단 ë§ìš”. -나는 ì´ ì—¬ìžê°€ ì´ë ‡ê²Œ 나를 ìƒê°í•˜ëŠ”ê°€ í•  때 ì˜ë¶„ì‹¬ì´ ë‚˜ì„œ 나는 어떻게 해서든지 ì´ ì—¬ìžì™€ 혼ì¸í•˜ë¦¬ë¼ê³  ê²°ì‹¬ì„ í•˜ì˜€ì†Œ. 나는 마침내 ì •ì‹ìœ¼ë¡œ K장로ë¼ëŠ” ë‚´ 장ì¸ì—게 ì²­í˜¼ì„ í•˜ì˜€ìœ¼ë‚˜ ë‹¨ë°•ì— ê±°ì ˆì„ ë‹¹í•˜ê³  ë§ì•˜ì§€ìš”. K장로는 ê·¸ ë”¸ì„ ê°„ë„ì— ë‘는 ê²ƒì´ ì˜³ì§€ 않다고 해서 서울로 보내기로 하였단 ë§ì„ 들었소. 그래서 나는 ìµœí›„ì˜ ê²°ì‹¬ìœ¼ë¡œ ê·¸ ì—¬ìž ì§€ê¸ˆ ë‚´ ì•„ë‚´ ëœ ì‚¬ëžŒì„ ë°ë¦¬ê³  ê°„ë„ì—서 ë„ë§í•˜ì˜€ì†Œ. 하하하하. ë°¤ì¤‘ì— ë‹¨ë‘˜ì´ì„œ. -지금 같으면야 ì‚¬ì œê°„ì— ê²°í˜¼ì„ í•˜ê¸°ë¡œ 그리 í° ë¬¸ì œê°€ ë  ê²ƒì´ ì—†ì§€ë§ˆëŠ” ê·¸ ë•Œì— ì–´ë”” 그랬나요. ì‚¬ì œê°„ì— í˜¼ì¸ì´ëž€ ê²ƒì€ ë¶€ë…€ê°„ì— í˜¼ì¸í•œë‹¤ëŠ” 것과 ê°™ì´ ìƒê°í•˜ì˜€ì§€ìš”. ë”구나 ê·¸ 때 ê°„ë„ ì‚¬íšŒì—는 ì²­êµë„ì  ì‚¬ìƒê³¼ 열렬한 ì• êµ­ì‹¬ì´ ìžˆì–´ì„œ ë„ë• í‘œì¤€ì´ ì—¬ê°„ 높지 아니하였지요. 그런 시대니까 ë‚´ê°€ ë‚´ ì œìžì¸ 여학ìƒì„ ë°ë¦¬ê³  달아난다는 ê²ƒì€ ì‚´ì¸ ê°•ë„를 하는 ì´ìƒìœ¼ë¡œ 무서운 ì¼ì´ì—ˆì§€ìš”. ì§€ê¸ˆë„ ë‚˜ëŠ” 그렇게 ìƒê°í•©ë‹ˆë‹¤ë§ˆëŠ”. -그래서 우리 ë‘ ì‚¬ëžŒì€ ìš°ë¦¬ ë‘ ì‚¬ëžŒì´ë¼ëŠ” ê²ƒë³´ë‹¤ë„ ë‚´ ìƒê°ì—는 어찌하였으나 나를 위해서 ì œ ëª©ìˆ¨ì„ ë²„ë¦¬ë ¤ëŠ” ê·¸ì—게 사실 ë‚˜ë„ ë§ˆìŒ ì†ìœ¼ë¡œëŠ” 그를 사랑하였지요. 다만 사제간ì´ë‹ˆê¹Œ ì˜ì›ížˆ 달할 수는 없는 사랑ì´ë¼ê³  단ë…í•˜ì˜€ì„ ë¿ì´ì§€ìš”. 그러니까 ë¹„ë¡ ë¶€ì²˜ ìƒí™œì€ 못 하ë”ë¼ë„ ë‚´ê°€ ê·¸ì˜ ì‚¬ëž‘ì„ ì•ˆë‹¤ëŠ” 것과 ë‚˜ë„ ê·¸ë¥¼ ì´ë§Œí¼ 사랑한다는 ê²ƒë§Œì„ ë³´ì—¬ 주ìžëŠ” 것ì´ì§€ìš”. -때는 마침 ê°€ì„ì´ì§€ë§ˆëŠ”, ëª¸ì— ì§€ë‹Œ ëˆë„ 얼마 없고 천신만고로 길림까지를 나와 가지고는 배를 타고 ì†¡í™”ê°•ì„ ë‚´ë ¤ì„œ í•˜ì–¼ë¹ˆì— ê°€ 가지고 ê±° 기서 간신히 ì¹˜íƒ€ê¹Œì§€ì˜ ì—¬ë¹„ì™€ ì—¬í–‰ê¶Œì„ ì–»ì–´ 가지고 차를 타고 떠나지 않았어요. ê·¸ê²ƒì´ ë°”ë¡œ ì‹­ì—¬ ë…„ ì „ 오늘ì´ëž€ ë§ì´ì˜¤." -ì´ ë•Œì— ë¶€ì¸ì´ 옥수수로 만든 국수와 ê°ìž ì‚¶ì€ ê²ƒì„ ê°€ì§€ê³  들어오오. -나는 Rì˜ ë§ì„ ë“£ë˜ ëì´ë¼ 유심히 ë¶€ì¸ì„ ë°”ë¼ë³´ì•˜ì†Œ. 그는 중키나 ë˜ëŠ” 둥근 ì–¼êµ´ì´ í˜ˆìƒ‰ì´ ì¢‹ê³  통통하여 미ì¸ì´ë¼ê¸°ë³´ë‹¤ëŠ” 씩씩한 ì—¬ìžìš”. 그런 ì¤‘ì— ì¡°ì„  ì—¬ìžë§Œì´ 가지는 아담하고 ì ìž–ì€ ë§›ì´ ìžˆì†Œ. -"앉으시지요. 지금 ë‘ ë¶„ê»˜ì„œ ì²˜ìŒ ì‚¬ëž‘í•˜ì‹œë˜ ë§ì”€ì„ 듣고 있습니다." -하고 나는 ë¶€ì¸ì—게 êµì˜ë¥¼ 권하였소. -"ì•„ì´, 그런 ë§ì”€ì€ 왜 하시오." -하고 ë¶€ì¸ì€ ê°‘ìžê¸° ì‹­ ë…„ì´ë‚˜ 어려지는 모양으로 수삽한 ë¹›ì„ ë³´ì´ê³  고개를 숙ì´ê³  달아나오. -"그래서요. 그래 ì˜¤ëŠ˜ì´ ê¸°ë…ì¼ì´ì™¸ë‹¤ê·¸ë ¤." -하고 ë‚˜ë„ ì›ƒì—ˆì†Œ. -"그렇지요. 우리는 해마다 ì˜¤ëŠ˜ì´ ì˜¤ë©´ 우리 무ë¤ì— 성묘를 가서 í•˜ë£»ë°¤ì„ ìƒˆìš°ì§€ìš”. ì˜¤ëŠ˜ì€ ì†ë‹˜ì´ 오셔서 ì¤‘ê°„ì— ëŒì•„왔지만, 하하하하." -하고 그는 유쾌하게 웃소. -"성묘ë¼ë‹ˆ?" -하고 나는 물었소. -"아까 ë³´ì‹  ë‘ ë³„ ë¬´ë¤ ë§ì´ì˜¤. ê·¸ê²ƒì´ ìš°ë¦¬ ë‚´ì™¸ì˜ ë¬´ë¤ì´ì§€ìš”. 하하하하." -"…………." -나는 ì˜ë¬¸ì„ 모르고 가만히 앉았소. -"ë‚´ ì´ì•¼ê¸°ë¥¼ 들으시지요. 그래 둘ì´ì„œ 차를 타고 오지 않았겠어요. 물론 여전히 ì„ ìƒë‹˜ê³¼ ì œìžì§€ìš”. 그렇지만 워낙 여러 ë‚  단둘ì´ì„œ ê°™ì´ ê³ ìƒì„ 하고 ì—¬í–‰ì„ í–ˆìœ¼ë‹ˆ ì‚¬ëž‘ì˜ ë¶ˆê¸¸ì´ íƒˆ 것ì´ì•¼ 물론 아니겠어요. 다만 사제ë¼ëŠ” êµ³ì€ ì˜ë¦¬ê°€ ê·¸ê²ƒì„ ê²‰ì— ë‚˜ì˜¤ì§€ 못하ë„ë¡ ëˆ„ë¥¸ 것ì´ì§€ìš”. â€¦â€¦ê·¸ëŸ°ë° ê¼­ ì˜¤ëŠ˜ê°™ì´ ì¢‹ì€ ë‚ ì¸ë° 여기는 대개 ì¼ê¸°ê°€ ì¼ì •합니다. 좀체로 비가 오는 ì¼ë„ 없고 í리는 ë‚ ë„ ì—†ì§€ìš”. í—Œë° Fì—­ì—를 오니까 ì°¸ ì„ì–‘ 경치가 좋단 ë§ì´ì˜¤. ê·¸ ë•Œì— ë¶ˆí˜„ë“¯, ì—ë¼ ì—¬ê¸°ì„œ 내려서 ì´ ì„ì–‘ ì†ì— ì € 호숫 ê°€ì— ë‘˜ì´ì„œ 헤매다가 깨ë—ì´ ì‚¬ì œì˜ ëª¸ìœ¼ë¡œ ì´ ê¹¨ë—한 ê´‘ì•¼ì— ë¬»í˜€ ë²„ë¦¬ìž í•˜ëŠ” ìƒê°ì´ 나겠지요. 그래 ê·¸ 때 ë§ì„ ë‚´ ì•„ë‚´ ê·¸ 때ì—는 ì•„ì§ ì•„ë‚´ê°€ 아니지요 ë‚´ ì•„ë‚´ì—게 그런 ë§ì„ 하였ë”니 ì°¸ 좋다고 ë°•ìž¥ì„ í•˜ê³  ë‚´ ì–´ê¹¨ì— ë§¤ë‹¬ë¦¬ëŠ”êµ¬ë ¤. 그래서 우리 ë‘˜ì€ ì°¨ê°€ ê±°ì˜ ë– ë‚  임박해서 ì°¨ì—서 뛰어내렸지요." -하고 그는 그때 ê´‘ê²½ì„ ëˆˆì•žì— ê·¸ë¦¬ëŠ” 모양으로 ë§ì„ ëŠê³  ìš°ë‘커니 í—ˆê³µì„ ë°”ë¼ë³´ì˜¤. 그러나 ê·¸ì˜ ìž… 언저리ì—는 유쾌한 회고ì—서 나오는 웃ìŒì´ì—ˆì†Œ. -"ì´ì•¼ê¸° 다 ë났어요?" -하고 ë¶€ì¸ì´ í¬ë°”스ë¼ëŠ” 청량 ìŒë£Œë¥¼ 들고 들어오오. -"아니오. ì´ì œë¶€í„°ê°€ 정통ì´ë‹ˆ ë‹¹ì‹ ë„ ê±°ê¸° 앉으시오. 지금 ì°¨ì—서 내린 ë°ê¹Œì§€ ì™”ëŠ”ë° ë‹¹ì‹ ë„ ì•‰ì•„ì„œ 한 파트를 맡으시오." -하고 R는 ë¶€ì¸ì˜ ì†ì„ 잡아서 ìžë¦¬ì— 앉히오. ë¶€ì¸ë„ 웃으면서 앉소. -"최 ì„ ìƒ ì²˜ì§€ê°€ ê¼­ 나와 같단 ë§ìš”. ì •ìž„ì˜ ì²˜ì§€ê°€ 당신과 같고." -하고 그는 ë§ì„ 계ì†í•˜ì˜¤. -"그래 ì°¨ì—서 내려서 나는 ì´ ì–‘ë°˜í•˜ê³  ë¬¼ì„ ì°¾ì•„ 헤매었지요. ì•„ë”°, ì„ì–‘ì´ ì–´ë–»ê²Œ 좋ì€ì§€ ì´ ì–‘ë°˜ì€ ë°•ìž¥ì„ í•˜ê³  노래를 부르고 우리 ë‘˜ì€ ë§ˆì¹˜ 유쾌하게 산보하는 사람 같았지요." -"ì°¸ 좋았어요. ê·¸ 때ì—는 ì°¸ 좋았어요. ê·¸ ì„ì–‘ì— ë¹„ì¹œ 광야와 호수ë¼ëŠ” ê±´ 어떻게 좋ì€ì§€ ê·¸ ìˆ˜ì€ ê°™ì€ ë¬¼ ì†ì— 텀벙 뛰어들고 싶었어요. ê·¸ 후엔 해마다 ë³´ì•„ë„ ê·¸ë§Œ 못해." -하고 ë¶€ì¸ì´ ì°¸ê²¬ì„ í•˜ì˜¤. -ì•„ì´ë“¤ì€ 다 ìžëŠ” 모양ì´ì˜¤. -"그래 ì§€í–¥ì—†ì´ í—¤ë§¤ëŠ”ë° í•´ëŠ” 뉘엿뉘엿 넘어가구, ì–´ìŠ¤ë¦„ì€ ê¸°ì–´ë“¤ê³  ê·¸ 때 마침 하늘ì—는 별 ë‘˜ì´ ë‚˜íƒ€ë‚¬ë‹¨ ë§ì´ì•¼. ê·¸ê²ƒì„ ì´ ì—¬í•™ìƒì´ 먼저 보고서 ê°‘ìžê¸° 추연해지면서 ì„ ìƒë‹˜ ì € 별 보셔요, 앞선 í° ë³„ì€ ì„ ìƒë‹˜ì´ 구 ë”°ë¼ê°€ëŠ” ìž‘ì€ ë³„ì€ ì €ì•¼ìš”, 하겠지요. ê·¸ ë§ì´, ë˜ ê·¸ 태ë„ê°€ 어떻게 가련한지. 그래서 나는 í•˜ëŠ˜ì„ ë°”ë¼ë³´ë‹ˆê¹ 과연 별 ë‘ ê°œê°€ 지는 해를 따르는 ë“¯ì´ ë”°ë¼ê°„다 ë§ìš”. ë§ì„ 듣고 보니 과연 우리 ì‹ ì„¸ì™€ë„ ê°™ì§€ 않아요? -그리고는 ì´ ì‚¬ëžŒì´ ë˜ ì´ëŸ½ë‹ˆë‹¤ê·¸ë ¤ `ì„ ìƒë‹˜, 앞선 í° ë³„ì€ ì•„ë¬´ë¦¬ ë”°ë¼ë„ ì € ìž‘ì€ ë³„ì€ ì˜ì›ížˆ ë”°ë¼ìž¡ì§€ 못하겠지요. ì˜ì›ížˆ ì˜ì›ížˆ ë”°ë¼ê°€ë‹¤ê°€ ë”°ë¼ê°€ë‹¤ê°€ 못 해서 마침내는 ì € ìž‘ì€ ë³„ì€ ì£½ì–´ì„œ ê²€ì€ ìž¬ê°€ ë˜ê³  ë§ê² ì§€ìš”? ì € ìž‘ì€ ë³„ì´ ì œ 신세와 어쩌면 그리 ê°™ì„까.' 하고 í•œíƒ„ì„ í•˜ê² ì§€ìš”. ê·¸ ë•Œì— í•œíƒ„ì„ í•˜ê³  ëˆˆë¬¼ì„ í˜ë¦¬ê³  섰는 어린 ì²˜ë…€ì˜ ì„ì–‘ë¹›ì— ë¹„ì·¬ ëª¨ì–‘ì„ ìƒìƒí•´ 보세요, 하하하하. ê·¸ 때ì—는 ë‹¹ì‹ ë„ ë¯¸ì¸ì´ì—ˆì†Œ. 하하하하." -하고 내외가 유쾌하게 웃는 ê²ƒì„ ë³´ë‹ˆ 나는 ë”ìš± ì ë§‰í•˜ì—¬ì§ì„ 깨달았소. 어쩌면 ê·¸ ì„ì–‘, ê·¸ ë‘ ë³„ì´ ì´ë“¤ì—게와 내게 ê¼­ ê°™ì€ ì¸ìƒì„ 주었ì„까 하니 참으로 ì´ìƒí•˜ë‹¤ 하였소. -"그래 ì¸ì œ." -하고 R는 다시 ì´ì•¼ê¸°ë¥¼ 계ì†í•˜ì˜¤. -"그래 ì¸ì œ 둘ì´ì„œ 그야ë§ë¡œ ê°ê°œë¬´ëŸ‰í•˜ê²Œ ë‘ ë³„ì„ ë°”ë¼ë³´ë©° 걸었지요. 그러다가 í•´ê°€ 넘어가고 앞선 í° ë³„ì´ ë„˜ì–´ê°€ê³  그리고는 혼ìžì„œ 깜빡깜빡하고 ê°€ë˜ ìž‘ì€ ë³„ì´ ë„˜ì–´ê°€ë‹ˆ 우리는 그만 ë•…ì— ì£¼ì €ì•‰ì•˜ì†Œ. 거기가 어딘고 하니 ê·¸ ë‘ ë³„ 무ë¤ì´ 있는 ê³³ì´ì§€ìš”. `ì„ ìƒë‹˜ 저를 여기다가 파묻어 주시고 가셔요. ì„ ìƒë‹˜ ì†ìˆ˜ 저를 여기다가 묻어 놓고 ê°€ 주셔요.' 하고 ì´ ì‚¬ëžŒì´ ì¡°ë¥´ì§€ìš”." -하는 ê²ƒì„ ë¶€ì¸ì€, -"ë‚´ê°€ 언제." -하고 ë‚¨íŽ¸ì„ í˜ê²¨ë³´ì˜¤. -"그럼 무ì—ë¼ê³  했소? ì–´ë”” 본ì¸ì´ 한 번 옮겨 보오." -하고 Rê°€ ë§ì„ ëŠì†Œ. -"ê°„ë„를 떠난 지가 한 ë‹¬ì´ ë˜ë„ë¡ ë‹¨ë‘˜ì´ ë‹¤ë…€ë„ ìš”ë§Œí¼ë„ 귀해 주는 ì ì´ 안 뵈니 그럼 파묻어 달ë¼ê³  안 í•´ìš”?" -하고 ë¶€ì¸ì€ 웃소. -"í¥í¥." -하고 R는 ë¶€ì¸ì˜ ë§ì— 웃고 나서, -"ê·¸ ìžë¦¬ì— 묻어 달란 ë§ì„ 들으니까, 어떻게 측ì€í•œì§€, 그럼 ë‚˜ë„ í•¨ê»˜ 묻히ìžê³  그랬지요. 나는 ê·¸ ë•Œì— ì°¸ë§ ê·¸ ìžë¦¬ì— 함께 묻히고 싶었어요. 그래서 나는 ì†ìœ¼ë¡œ ê³§ 구ë©ì´ë¥¼ 팠지요. 떡가루 ê°™ì€ ëª¨ëž˜íŒì´ë‹ˆê¹Œ 파기는 íž˜ì´ ì•„ë‹ˆ 들겠지요. ì´ì´ë„ 물ë„러미 ë‚´ê°€ ë•…ì„ íŒŒëŠ” ê²ƒì„ ë³´ê³  ì„°ë”니만 ìžê¸°ë„ 파기를 시작하겠지요." -하고 내외가 다 웃소. -"그래 순ì‹ê°„ì—……." -하고 R는 ì´ì•¼ê¸°ë¥¼ 계ì†í•˜ì˜¤. -"순ì‹ê°„ì— ë‘˜ì´ ë“œëŸ¬ëˆ„ìš¸ 만한 구ë©ì´ë¥¼ 아마 ë‘ ìž ê¹Šì´ë‚˜ ë˜ê²Œ, 네모나게 파 놓고는 ë‚´ê°€ 들어가 누워 ë³´ê³  그러고는 ë˜ íŒŒê³  하여 아주 편안한 구ë©ì´ë¥¼ 파고 나서는 나는 아주 세ìƒì„ 하ì§í•  셈으로 ì‚¬ë°©ì„ ë‘˜ëŸ¬ë³´ ê³  사방ì´ëž˜ì•¼ 컴컴한 ì–´ë‘ ë°–ì— ì—†ì§€ë§Œ ì‚¬ë°©ì„ ë‘˜ëŸ¬ë³´ê³ , ì´ë¥¼í…Œë©´ 세ìƒê³¼ ìž‘ë³„ì„ í•˜ê³  드러누웠지요. 지금 ì´ë ‡ê²Œ íšŒê³ ë‹´ì„ í•  때ì—는 ìš°ìŠµê¸°ë„ í•˜ì§€ë§ˆëŠ” ê·¸ 때ì—는 참으로 종êµì ì´ë¼ í•  만한 엄숙ì´ì—ˆì†Œ. 그때 우리 ë‘˜ì˜ ì²˜ì§€ëŠ” ì•žë„ ì ˆë²½, ë’¤ë„ ì ˆë²½ì´ì–´ì„œ 죽는 ê¸¸ë°–ì— ì—†ì—ˆì§€ìš”. ë˜ ê·¸ë¿ ì•„ë‹ˆë¼ ì¸ìƒì˜ 가장 깨ë—하고 가장 ì‚¬ëž‘ì˜ ë§‘ì€ ì •ì´ íƒ€ê³  가장 기ì˜ê³ ë„ ìŠ¬í”„ê³ ë„ ì´ë¥¼í…Œë©´ 모든 ê°ì •ì´ ì ˆì •ì— ë‹¬í•˜ê³ , 그러한 ìˆœê°„ì— ëª©ìˆ¨ì„ ëŠì–´ 버리는 ê²ƒì´ ê°€ìž¥ ì¢‹ì€ ì¼ì´ìš”, 가장 마땅한 ì¼ê°™ì´ ìƒê°í•˜ì˜€ì§€ìš”. ê´‘ì•¼ì— ì•„ë¦„ë‹¤ìš´ í™©í˜¼ì´ ìˆœê°„ì— ìŠ¤ëŸ¬ì§€ëŠ” 모양으로 우리 ë‘ ìƒëª…ì˜ ì•„ë¦„ë‹¤ì›€ë„ ìˆœê°„ì— ìŠ¤ëŸ¬ì§€ìžëŠ” 우리는 ì² í•™ìžë„ 시ì¸ë„ 아니지마는 ìš°ë¦¬ë“¤ì˜ í™˜ê²½ì´ ìš°ë¦¬ 둘ì—게 그러한 ìƒê°ì„ 넣어 준 것ì´ì§€ìš”. -그래서 ë‚´ê°€ 가만히 드러누워 있는 ê²ƒì„ ì €ì´ê°€ 물ë„러미 ë³´ê³  있ë”니 ìžê¸°ë„ ë‚´ ê³ì— 들어와 눕겠지요. 그런 ë’¤ì—는 í™©í˜¼ì— ë‚¨ì€ ë¹›ë„ ë‹¤ 스러지고 아주 캄캄한 ì•”í‘ ì„¸ê³„ê°€ ë˜ì–´ 버렸지요. í•˜ëŠ˜ì— ì–´ë–»ê²Œ 그렇게 ë³„ì´ ë§Žì€ì§€. 가만히 í•˜ëŠ˜ì„ ë°”ë¼ë³´ë…¸ë¼ë©´ ì°¸ ë³„ì´ ë§Žì•„ìš”. 우주란 ì°¸ 커요. ê·¸ëŸ°ë° ì´ ëì—†ì´ í° ìš°ì£¼ì— í•œì—†ì´ ë§Žì€ ë³„ë“¤ì´ ë‹¤ ì œìžë¦¬ë¥¼ 지키고 ì œ ê¸¸ì„ ì§€ì¼œì„œ 서로 ë¶€ë”ªì§€ë„ ì•„ë‹ˆí•˜ê³  ëì—†ì´ ê¸´ ì‹œê°„ì— ì§ˆì„œë¥¼ 유지하고 있는 ê²ƒì„ ë³´ë©´ 우주ì—는 ì–´ë–¤ 주재하는 뜻, 섭리하는 ëœ»ì´ ìžˆë‹¤ 하는 ìƒê°ì´ 나겠지요. ë‚˜ë„ ì˜ˆìˆ˜êµì¸ì˜ 가정ì—서 ìžë¼ë‚¬ì§€ë§ˆëŠ” ì´ ë•Œì²˜ëŸ¼ 하나님ì´ë¼ 할까 ì´ë¦„ì€ ë¬´ì—‡ì´ë¼ê³  하든지 ê°„ì— ìš°ì£¼ì˜ ì„­ë¦¬ìžì˜ 존재를 강렬하게 ì˜ì‹í•œ ì¼ì€ 없었지요. -그렇지만 `ì‚¬ëžŒì˜ ë§ˆìŒì— 비기면 저까짓 ë³„ë“¤ì´ ë‹¤ 무엇ì´ì˜¤?' 하고 그때 겨우 ì—´ì—¬ëŸ ì‚´ë°–ì— ì•ˆ ëœ ì´ì´ê°€ ë‚´ ê·€ì— ìž…ì„ ëŒ€ê³  ë§í•  때ì—는 ë‚˜ë„ ì°¸ìœ¼ë¡œ 놀ëžìŠµë‹ˆë‹¤. 나ì´ëŠ” 나보다 오륙 ë…„ ìƒê´€ë°–ì— ì•ˆ ë˜ì§€ë§ˆëŠ” ì´ì‹­ 세 ë‚´ì™¸ì— ì˜¤ë¥™ ë…„ ìƒê´€ì´ ì ì€ 것ì¸ê°€ìš”? 게다가 나는 ì„ ìƒì´ìš” ìžê¸°ëŠ” í•™ìƒì´ë‹ˆê¹Œ 어린애로만 ì•Œì•˜ë˜ ê²ƒì´ ê·¸ëŸ° ë§ì„ 하니 놀ëžì§€ 않아요? 어째서 ì‚¬ëžŒì˜ ë§ˆìŒì´ í•˜ëŠ˜ë³´ë‹¤ë„ ë” ì´ìƒí• ê¹Œ 하고 ë‚´ê°€ 물으니까, ê·¸ ëŒ€ë‹µì´ `나는 무엇ì´ë¼ê³  설명할 수가 없지마는 ë‚´ ë§ˆìŒ ì†ì— ì¼ì–´ë‚˜ëŠ” ê²ƒì´ í•˜ëŠ˜ì´ë‚˜ ë•…ì— ì¼ì–´ë‚˜ëŠ” 모든 ê²ƒë³´ë‹¤ë„ ë” ì•„ë¦„ë‹µê³  ë” ì•Œ 수 없고 ë” ëœ¨ê²ê³  그런 것 같아요.' 그러겠지요. ìƒëª…ì´ëž€ 모든 아름다운 것 ì¤‘ì— ê°€ìž¥ 아름다운 것ì´ë¼ëŠ” ê²ƒì„ ë‚˜ëŠ” 깨달았어요. ê·¸ ë§ì—, `그렇다 하면 ì´ ì•„ë¦„ë‹µê³  신비한 ìƒëª…ì„ ë‚´ëŠ” 우주는 ë” ì•„ë¦„ë‹¤ìš´ ê²ƒì´ ì•„ë‹ˆì˜¤?' 하고 ë‚´ê°€ 반문하니까, 당신(ë¶€ì¸ì„ 향하여) ë§ì´, `ì „ 모르겠어요, 어쨌으나 ì „ 행복합니다. 저는 ì´ í–‰ë³µì„ ê¹¨ëœ¨ë¦¬ê³  ì‹¶ì§€ 않습니다. ë†“ì³ ë²„ë¦¬ê³  ì‹¶ì§€ 않습니다. ì´ í–‰ë³µ ì„ ìƒë‹˜ ê³ì— 있는 ì´ í–‰ë³µì„ ê½‰ 안고 죽고 ì‹¶ì–´ìš”.' 그러지 않았소?" -"누가 그랬어요? ì•„ì´ ë‚œ 다 잊어버렸어요." -하고 ë¶€ì¸ì€ 차를 따르오. R는 ì¸ì œëŠ” 하하하 하는 웃ìŒì¡°ì°¨ 잊어버리고, ë¶€ì¸ì—게 ë†ë‹´ì„ ë¶™ì´ëŠ” 것조차 잊어버리고, 그야ë§ë¡œ 종êµì  엄숙 그대로ë§ì„ ì´ì–´, -"`ìž ì €ëŠ” ì•½ì„ ë¨¹ì–´ìš”.' 하고 ì†ì„ 입으로 가져가는 ë™ìž‘ì´ ê°í–‰ë˜ê² ì§€ìš”. 약ì´ëž€ ê²ƒì€ í•˜ì–¼ë¹ˆì—서 준비한 아편ì´ì§€ìš”. 하얼빈서 치타까지 가는 ë™ì•ˆì— í¥ì•ˆë ¹ì´ë‚˜ ì–´ëŠ ì‚¼ë¦¼ì§€ëŒ€ë‚˜ 어디서나 ì£½ì„ ìžë¦¬ë¥¼ ì°¾ìžê³  준비한 것ì´ë‹ˆê¹Œ. 나는 ìž… 근처로 가는 ê·¸ì˜ ì†ì„ 붙들었어요. 붙들면서 나는 `ìž ê¹ë§Œ 기다리오. 오늘 ë°¤ 안으로 ê·¸ ì•½ì„ ë¨¹ìœ¼ë©´ ê³ ë§Œì´ ì•„ë‹ˆì˜¤? ì´ í–‰ë³µëœ ìˆœê°„ì„ ìž ê¹ì´ë¼ë„ 늘립시다. 달 올ë¼ì˜¬ 때까지만.' 나는 ì´ë ‡ê²Œ ë§í–ˆì§€ìš”. `ì„ ìƒë‹˜ë„ 행복ë˜ì…”ìš”? ì„ ìƒë‹˜ì€ 불행ì´ì‹œì§€. ì € ë•Œë¬¸ì— ë¶ˆí–‰ì´ì‹œì§€. 저만 ì´ê³³ì— 묻어 주시구는 ì„ ìƒë‹˜ì€ 세ìƒì— ëŒì•„ê°€ 사셔요, 오래오래 사셔요, ì¼ ë§Žì´ í•˜ê³  사셔요.' 하고 울지 않겠어요. 나는 ê·¸ ë•Œì— ë‚´ ì•„ë‚´ê°€ í•˜ë˜ ë§ì„ 한 ë§ˆë””ë„ ìžŠì§€ 아니합니다. ê·¸ ë§ì„ ë“£ë˜ ë•Œì˜ ë‚´ ì¸ìƒì€ 아마 ì¼ìƒ ë‘ê³  잊히지 아니하겠지요. -나는 ìžë°±í•©ë‹ˆë‹¤. ê·¸ ìˆœê°„ì— ë‚˜ëŠ” 처ìŒìœ¼ë¡œ ë‚´ 아내를 안고 키스를 하였지요. ë‚´ ì†ì— 눌리고 눌리고 쌓ì´ê³  í•˜ì˜€ë˜ ì—´ì •ì´ ê·¸ë§Œ ì¼ì‹œì— í­ë°œë˜ì—ˆë˜ 것ì´ì˜¤. ì•„ì•„ ì´ê²ƒì´ ìµœì´ˆì˜ ê²ƒì´ìš”, ë™ì‹œì— ìµœí›„ì˜ ê²ƒì´ë¡œêµ¬ë‚˜ í•  ë•Œì— ë‚´ 눈ì—서는 ë“는 듯한 ëˆˆë¬¼ì´ í˜ë €ì†Œì´ë‹¤. ë‘ ì‚¬ëžŒì˜ ì‹¬ìž¥ì´ ë›°ëŠ” 소리, ë‘ ì‚¬ëžŒì˜ í’€ë¬´ 불길 ê°™ì€ ìˆ¨ì†Œë¦¬. -ì´ìœ½ê³  ë‹¬ì´ ë– ì˜¬ë¼ ì™”ìŠµë‹ˆë‹¤. ê°€ì´ì—†ëŠ” 벌íŒì´ë‹ˆê¹Œ ë‹¬ì´ ëœ¨ë‹ˆê¹Œ ê°‘ìžê¸° 천지가 환해지고 우리 ë‘˜ì´ ì†ìœ¼ë¡œ 파서 쌓아 ë†“ì€ í™ë¬´ë”기가 ì´ ì‚° 없는 세ìƒì— ì‚°ì´ë‚˜ ë˜ëŠ” ê²ƒê°™ì´ ì¡°ê·¸ë§ˆí•œ ê²€ì€ ê·¸ë¦¼ìžë¥¼ 지고 있겠지요. `ìž ìš°ë¦¬ ë‹¬ë¹›ì„ ë ê³  좀 ëŒì•„다ë‹ê¹Œ.' 하고 나는 아내를 안아 ì¼ìœ¼ì¼°ì§€ìš”. ë‚´ íŒ”ì— ì•ˆê²¨ì„œ 고개를 뒤로 젖힌 ë‚´ ì•„ë‚´ì˜ ì–¼êµ´ì´ ë‹¬ë¹›ì— ë¹„ì¹œ ì–‘ì„ ë‚˜ëŠ” 잘 기억합니다. 실신한 듯한, 만족한 듯한, ê·¸ë¦¬ê³ ë„ ì ˆë§í•œ 듯한 ê·¸ í‘œì •ì„ ë¬´ì—‡ìœ¼ë¡œ 그릴지 모릅니다. ê·¸ë¦¼ë„ ê·¸ë¦´ 줄 모르고 ì¡°ê°ë„ í•  줄 모르고 ê¸€ë„ ì“¸ 줄 모르는 ë‚´ê°€ ê·¸ê²ƒì„ ì–´ë–»ê²Œ 그립니까. 그저 가슴 ì†ì— 품고 ì´ë ‡ê²Œ ì˜¤ëŠ˜ì˜ ë‚´ 아내를 ë°”ë¼ë³¼ ë¿ì´ì§€ìš”. -나는 ë‚´ 아내를 íŒ”ì— ê±¸ê³  네, 걸었다고 하는 ê²ƒì´ ê°€ìž¥ 합당하지 ìš” ì´ë ‡ê²Œ 팔ì—다 걸고 ë‹¬ë¹›ì„ ë°›ì€ í™©ëŸ‰í•œ 벌íŒ, 아무리 í•˜ì—¬ë„ í™˜í•˜ê²Œ ë°ì•„지지는 아니하는 벌íŒì„ 헤매었습니다. ì´ë”°ê¸ˆ ë‚´ ì•„ë‚´ê°€, `어서 죽고 ì‹¶ì–´ìš”, ì „ 죽고만 ì‹¶ì–´ìš”.' 하는 ë§ì—는 ëŒ€ë‹µë„ ì•„ë‹ˆ 하고. 죽고 싶다는 ê·¸ ë§ì€ 물론 ì§„ì •ì¼ ê²ƒì´ì§€ìš”. 아무리 ë§‘ì€ ì¼ê¸°ë¼ 하ë”ë¼ë„ 오후가 ë˜ë©´ í려지는 법ì´ë‹ˆê¹Œ 오래 살아가는 ë™ì•ˆì— 늘 한 모양으로 ì´ ìˆœê°„ê°™ì´ ê¹¨ë—하고 뜨거운 기분으로 ê°ˆ 수는 없지 않아요? 불쾌한 ì¼ë„ ìƒê¸°ê³ , 보기 í‰í•œ ì¼ë„ ìƒê¸¸ëŠ”ì§€ 모르거든. 그러니까 ì´ ì™„ì „í•œ 깨ë—ê³¼ 완전한 사랑과 완전한 행복 ì†ì— 죽어 버리ìžëŠ” ëœ»ì„ ë‚˜ëŠ” 잘 알지요. ë”구나 ìš°ë¦¬ë“¤ì´ ì‚´ì•„ 남는대야 ì•žê¸¸ì´ ê¸°êµ¬í•˜ì§€ í‰íƒ„í•  리는 없지 아니해요? 그래서 나는 `죽지, 우리 ì´ ë‹¬ë°¤ì— ì‹¤ì»· ëŒì•„다니다가, ë” ëŒì•„다니기가 ì‹«ê±°ë“  ê·¸ 구ë©ì— ëŒì•„가서 ì•½ì„ ë¨¹ì시다.' ì´ë ‡ê²Œ ë§í•˜ê³  우리 ë‘˜ì€ í—¤ë§¸ì§€ìš”. ë‚®ì— ë³´ë©´ 어디까지나 í‰í‰í•œ 벌íŒì¸ 것만 같지마는 ë‹¬ë°¤ì— ë³´ë©´ ì´ ì‚¬ë§‰ì—ë„ ì•„ì§ ì±„ 스러지지 아니한 ì‚°ì˜ í˜•ì ì´ 남아 있어서 êµ°ë°êµ°ë° 거뭇거뭇한 그림ìžê°€ 있겠지요. ê·¸ ê·¸ë¦¼ìž ì†ì—는 걸어 들어가면 ì–´ë–¤ ë°ëŠ” 우리 í—ˆë¦¬ë§Œí¼ ê·¸ë¦¼ìžì— 가리우고 ì–´ë–¤ ë°ëŠ” 우리 ë‘˜ì„ ë‹¤ 가리워 버리는 ë°ë„ 있단 ë§ì•¼ìš”. 죽ìŒì˜ 그림ìžë¼ëŠ” ìƒê°ì´ 나면 ê·¸ëž˜ë„ ëª¸ì— ì†Œë¦„ì´ ë¼ì³ìš”. -차차 ë‹¬ì´ ë†’ì•„ì§€ê³  추위가 심해져서 ë°”ëžŒê²°ì´ ì§€ë‚˜ê°ˆ 때ì—는 눈ì—서 ëˆˆë¬¼ì´ ë‚  지경ì´ì§€ìš”. ì›ì²´ 대기 ì¤‘ì— ìˆ˜ë¶„ì´ ì ìœ¼ë‹ˆê¹Œ ì„œë¦¬ë„ ë§Žì§€ 않지마는, ê·¸ëž˜ë„ ëŒ€ê¸° ì¤‘ì— ìžˆëŠ” ìˆ˜ë¶„ì€ ë‹¤ 얼어 버려서 ì–¼ìŒê°€ë£¨ê°€ ë˜ì—ˆëŠ” 게지요. 공중ì—는 ë°˜ì§ë°˜ì§í•˜ëŠ” 수정가루 ê°™ì€ ê²ƒì´ ë³´ìž…ë‹ˆë‹¤. ë‚®ì—는 ë•€ì´ íë¥´ë¦¬ë§Œí¼ ë¥ë˜ ì‚¬ë§‰ë„ ë°¤ì´ ë˜ë©´ ì´ë ‡ê²Œ ê¸°ì˜¨ì´ ë‚´ë ¤ê°€ì§€ìš”. 춥다고 ìƒê°ì€ í•˜ë©´ì„œë„ ì¶¥ë‹¤ëŠ” ë§ì€ 아니 하고 우리는 ì–´ë–¤ 때ì—는 ë‹¬ì„ ë”°ë¼ì„œ, ì–´ë–¤ 때ì—는 ë‹¬ì„ ë“±ì§€ê³ , ì–´ë–¤ 때ì—는 í˜¸ìˆ˜ì— ë¹„ì¹œ ë‹¬ì„ êµ½ì–´ë³´ê³ , ì´ ëª¨ì–‘ìœ¼ë¡œ í•œì—†ì´ ë§ë„ ì—†ì´ ëŒì•„다녔지요. ì´ ì„¸ìƒ ìƒëª…ì˜ ë§ˆì§€ë§‰ ìˆœê°„ì„ íž˜ê» ì˜ì‹í•˜ë ¤ëŠ” 듯ì´. -마침내 `나는 ë” ëª» 걸어요.' 하고 ì´ì´ê°€ ë‚´ ì–´ê¹¨ì— ë§¤ë‹¬ë ¤ 버리고 ë§ì•˜ì§€ìš”." -하고 Rê°€ ë¶€ì¸ì„ ëŒì•„보니 ë¶€ì¸ì€ íŽ¸ë¬¼í•˜ë˜ ì†ì„ 쉬고, -"다리가 아픈 ì¤„ì€ ëª¨ë¥´ê² ëŠ”ë° ë‹¤ë¦¬ê°€ ì´ë¦¬ 뉘구 저리 뉘구 해서 걸ìŒì„ ê±¸ì„ ìˆ˜ê°€ 없었어요. 춥기는 하구." -하고 소리를 내어서 웃소. -"그럴 ë§Œë„ í•˜ì§€." -하고 R는 긴장한 í‘œì •ì„ ì•½ê°„ 풀고 ì•‰ì€ ìžì„¸ë¥¼ ìž ê¹ ê³ ì¹˜ë©°, -"ê·¸ í›„ì— ê·¸ ë‚  ë°¤ ëŒì•„다닌 ê³³ì„ ë”듬어 보니까, ìžì„¸ížˆëŠ” 알 수 없지마는 삼십 리는 ë” ë˜ëŠ” 것 같거든. 다리가 아프지 아니할 리가 있나." -하고 차를 한 모금 마시고 나서 ë§ì„ 계ì†í•˜ì˜¤. -"그래서 나는 ë‚´ 외투를 벗어서, ì´ì´(ë¶€ì¸)를 싸서 어린애 ì•ˆë“¯ì´ ì•ˆê³  걸었지요. 외투로 쌌으니 ìžê¸°ë„ 춥지 않구, 나는 ë˜ ë¬´ê±°ìš´ ì§ì„ 안았으니 ë•€ì´ ë‚  지경ì´êµ¬, ê·¸ë¿ ì•„ë‹ˆë¼ ë‚´ê°€ 제게 주는 ìµœí›„ì˜ ì„œë¹„ìŠ¤ë¼ í•˜ë‹ˆ 기ì˜ê³ , ë§í•˜ìžë©´ ì¼ê±° 삼ë“ì´ì§€ìš”. 하하하하. 지난 ì¼ì´ë‹ˆ 웃지마는 ê·¸ 때 ì‚¬ì •ì„ ìƒê°í•´ 보세요, 어떠했겠나." -하고 R는 약간 처참한 ë¹›ì„ ë ë©´ì„œ, -"그러니 ê·¸ 구ë©ì´ë¥¼ ì–´ë”” ì°¾ì„ ìˆ˜ê°€ 있나. 얼마를 찾아 ëŒì•„다니다가 아무 ë°ì„œë‚˜ ì£½ì„ ìƒê°ë„ í•´ 보았지마는 몸뚱ì´ë¥¼ 그냥 벌íŒì— 내놓고 죽고 싶지는 아니하고 ë˜ ê·¸ 구ë©ì´ê°€ 우리 ë‘ ì‚¬ëžŒì—게 특별한 ì˜ë¯¸ê°€ 있는 것 같아서 기어코 ê·¸ê²ƒì„ ì°¾ì•„ 내고야 ë§ì•˜ì§€ìš”. ê·¸ 때는 ë²Œì¨ ìƒˆë²½ì´ ê°€ê¹Œì› ë˜ ëª¨ì–‘ì´ì˜¤. ì—´ 시나 넘어서 뜬 í•˜í˜„ë‹¬ì´ ë‚®ì´ ê¸°ìš¸ì—ˆìœ¼ë‹ˆ 그렇지 않겠어요. ê·¸ 구ë©ì´ì— 와서 우리는 한 번 ë” í•˜ëŠ˜ê³¼ 달과 별과, 그리고 ë§ˆìŒ ì†ì— 떠오른 사람들과 하ì§í•˜ê³  약 ë¨¹ì„ ì¤€ë¹„ë¥¼ 했지요. -ì•½ì„ ê²€ì€ ê³ ì•½ê³¼ ê°™ì€ ì•„íŽ¸ì„ ë§›ì´ ì“°ë‹¤ëŠ” ì•„íŽ¸ì„ ë¬¼ë„ ì—†ì´ ë¨¹ìœ¼ë ¤ 들었지요. -우리 ë‘˜ì€ ì•„ê¹Œ 모양으로 가지런히 누워서 í•˜ëŠ˜ì„ ë°”ë¼ë³´ì•˜ëŠ”ë° ë‹¬ì´ ë°ìœ¼ë‹ˆê¹Œ ë³´ì´ë˜ 별들 ì¤‘ì— ìˆ¨ì€ ë³„ì´ ë§Žê³  ë˜ ë³„ë“¤ì˜ ìœ„ì¹˜ 우리ì—게 낯ìµì€ ë¶ë‘칠성 ìžë¦¬ë„ ë³€í–ˆì„ ê²ƒ 아니야요. ì´ìƒí•œ ìƒê°ì´ 나요. 우리가 벌íŒìœ¼ë¡œ 헤매는 ë™ì•ˆì— 천지가 ëª¨ë‘ ë³€í•œ 것 같아요. 사실 변하였지요. ê·¸ 변한 ê²ƒì´ ìš°ìŠ¤ì›Œì„œ 나는 껄껄 웃었지요. 워낙 ë‚´ê°€ 웃ìŒì´ 좀 헤프지만 ì´ ë•Œì²˜ëŸ¼ 헤프게 실컷 웃어 본 ì¼ì€ 없습니다. -왜 웃ëŠëƒê³  ì•„ë‚´ê°€ 좀 ì„±ì„ ë‚¸ ë“¯ì´ ë¬»ê¸°ë¡œ, `천지와 ì¸ìƒì´ 변하는 ê²ƒì´ ìš°ìŠ¤ì›Œì„œ 웃었소.' 그랬지요. 그랬ë”니, `천지와 ì¸ìƒì€ 변할는지 몰ë¼ë„ ë‚´ 마ìŒì€ 안 변해요!' 하고 소리를 지르겠지요. í½ ë¶„ê°œí–ˆë˜ ëª¨ì–‘ì´ì•¼." -하고 R는 ê·¸ 아내를 보오. -"그럼 ë¶„ê°œ 안 í•´ìš”? ë‚¨ì€ ì£½ì„ ê²°ì‹¬ì„ í•˜ê³  발발 떨구 ìžˆëŠ”ë° ê³ì—서 껄껄거리고 웃으니, 어째 분하지가 않아요. 나는 분해서 달아나려고 했어요." -하고 ë¶€ì¸ì€ ì•„ì§ë„ ë¶„í•¨ì´ ë‚¨ì€ ê²ƒê°™ì´ ë§í•˜ì˜¤. -"그래 달아나지 않았소?" -하고 R는 ë¶€ì¸ì´ 벌떡 ì¼ì–´ë‚˜ì„œ 비틀거리고 달아나는 í‰ë‚´ë¥¼ 팔과 다리로 ë‚´ê³  나서, -"ì´ëž˜ì„œ 죽는 ì‹œê°„ì´ ì§€ì²´ê°€ ë˜ì—ˆì§€ìš”. 그래서 ë‚´ê°€ 빌고 달래고 해서 가까스로 ì•ˆì •ì„ ì‹œí‚¤ê³  나니 ì†ì— ì¥ì—ˆë˜ ì•„íŽ¸ì´ ë•€ì— í‘¹ 젖었겠지요. ë‚´ê°€ ì›ƒì€ ê²ƒì€ ì£½ê¸° ì „ 한 번 천지와 ì¸ìƒì„ 웃어 버린 것ì¸ë° 그렇게 야단ì´ë‹ˆâ€¦â€¦ 하하하하." -R는 ì‹ì€ 차를 한 모금 ë” ë§ˆì‹œë©°, -"ì°¸ ëª©ë„ ë§ˆë¥´ê¸°ë„ í•˜ë”니. ìž…ì—는 침 한 방울 없고. 그러나 ëª»ë¬¼ì„ ë¨¹ì„ ìƒê°ë„ 없고. 나중ì—는 ë§ì„ 하려고 í•´ë„ í˜€ê°€ 안 ëŒì•„가겠지요. -ì´ëŸ¬ëŠ” ë™ì•ˆì— ë‹¬ë¹›ì´ í¬ë¯¸í•´ì§€ê¸¸ëž˜ 웬ì¼ì¸ê°€ 하고 고개를 ë²ˆì© ë“¤ì—ˆë”니 í•´ê°€ 떠오릅니다그려. 어떻게 붉고 둥글고 씩씩한지. `ì € í•´ 보오.' 하고 나는 기계ì ìœ¼ë¡œ 벌떡 ì¼ì–´ë‚˜ì„œ 구ë©ì´ì—서 뛰어나왔지요." -하고 빙그레 웃소. Rì˜ ë¹™ê·¸ë ˆ 웃는 ì–‘ì´ ì°¸ 좋았소. -"ë‚´ê°€ 뛰어나오는 ê²ƒì„ ë³´ê³  ì´ì´ë„ 뿌시시 ì¼ì–´ë‚¬ì§€ìš”. ê·¸ í•´! ê·¸ í•´ì˜ ìƒˆ ë¹›ì„ ë°›ëŠ” 하늘과 ë•…ì˜ ë¹›! 나는 ê·¸ê²ƒì„ í˜•ìš©í•  ë§ì„ 가지지 못합니다. 다만 íž˜ê» ì†Œë¦¬ì¹˜ê³  ì‹¶ê³  ê¸°ìš´ê» ë‹¬ìŒë°•질치고 ì‹¶ì€ ìƒê°ì´ ë‚  ë¿ì´ì–´ìš”. -`우리 삽시다, 죽지 ë§ê³  삽시다, 살아서 새 세ìƒì„ 하나 만들어 봅시다.' ì´ë ‡ê²Œ ë§í•˜ì˜€ì§€ìš”. 하니까 ì´ì´ê°€ 처ìŒì—는 ê¹œì§ ë†€ë¼ëŠ” 것 같아요. 그러나 마침내 ì•„ë‚´ë„ ì£½ì„ ëœ»ì„ ë³€í•˜ì˜€ì§€ìš”. 그래서 남 ì„ ìƒì„ 청하여다가 ê·¸ ë§ì”€ì„ 여쭈었ë”니 남 ì„ ìƒê»˜ì„œ 고개를 ë„ë•ë„ë•하시고 우리 ë‘˜ì˜ í˜¼ì¸ ì£¼ë¡€ë¥¼ 하셨지요. ê·¸ 후 ì‹­ì—¬ ë…„ì— ìš°ë¦¬ëŠ” ë°­ 갈고 ì•„ì´ ê¸°ë¥´ê³  ì´ëŸ° ìƒí™œì„ 하고 ìžˆëŠ”ë° ì–¸ì œë‚˜ 여기 새 ë¯¼ì¡±ì´ ìƒê¸°ê³  누가 새 ë‹¨êµ°ì´ ë ëŠ”ì§€ìš”. 하하하하, 아하하하. 피곤하시겠습니다. ì´ì•¼ê¸°ê°€ 너무 길어서." -하고 R는 ë§ì„ ëŠì†Œ. -나는 R부처가 만류하는 ê²ƒë„ ë‹¤ 뿌리치고 여관으로 ëŒì•„왔소. R와 함께 달빛 ì†, ê°œ 짖는 소리 ì†ì„ 지나서 ì•„ë¼ì‚¬ ì‚¬ëžŒì˜ ì¡°ê·¸ë§ˆí•œ 여관으로 ëŒì•„왔소. 여관 주ì¸ë„ R를 아는 모양ì´ì–´ì„œ 반갑게 ì¸ì‚¬í•˜ê³  ë˜ ë‚´ê²Œ 대한 ë¶€íƒë„ 하는 모양ì¸ê°€ 보오. -R는 ë‚´ ë°©ì— ì˜¬ë¼ì™€ì„œ ë‚´ì¼ í•˜ë£¨ 지날 ì¼ë„ ì´ì•¼ê¸°í•˜ê³  ë˜ ë‚¨ ì„ ìƒê³¼ ì •ìž„ì—게 관한 ì´ì•¼ê¸°ë„ 하였으나, 나는 그가 무슨 ì´ì•¼ê¸°ë¥¼ 하는지 잘 ë“¤ì„ ë§Œí•œ 마ìŒì˜ ì—¬ìœ ë„ ì—†ì–´ì„œ ë§ˆìŒ ì—†ëŠ” ëŒ€ë‹µì„ í•  ë¿ì´ì—ˆì†Œ. -Rê°€ ëŒì•„ê°„ ë’¤ì— ë‚˜ëŠ” ì˜·ë„ ë²—ì§€ 아니하고 ì¹¨ëŒ€ì— ë“œëŸ¬ëˆ„ì› ì†Œ. 페치카를 때기는 한 모양ì´ë‚˜ ë°©ì´ ì¨ëŠ˜í•˜ê¸° 그지없소. -`ê·¸ ë‘ ë³„ 무ë¤ì´ ì •ë§ R와 ê·¸ 여학ìƒê³¼ ë‘ ì‚¬ëžŒì´ ì˜ì›ížˆ 달치 못할 ê¿ˆì„ ì•ˆì€ ì±„ë¡œ 깨ë—하게 죽어서 묻힌 무ë¤ì´ì—ˆìœ¼ë©´ 얼마나 좋ì„까. ë§Œì¼ ê·¸ë ‡ë‹¤ 하면 ë‚´ì¼ í•œ 번 ë” ê°€ì„œ 보토ë¼ë„ 하고 오련마는.' -하고 나는 Rë¶€ì²˜ì˜ ìƒí™œì— 대하여 ì¼ì¢…ì˜ ë¶ˆë§Œê³¼ í™˜ë©¸ì„ ëŠê¼ˆì†Œ. -그리고 ë‚´ê°€ ì •ìž„ì„ ì—¬ê¸°ë‚˜ 시베리아나 ì–´ë–¤ 곳으로 불러다가 ë§Œì¼ R와 ê°™ì€ í‰ë‚´ë¥¼ 낸다 하면, 하고 ìƒê°í•´ 보고는 나는 진저리를 쳤소. 나는 내머리 ì†ì— 다시 그러한 ìƒê°ì´ 한 ì¡°ê°ì´ë¼ë„ 들어올 ê²ƒì„ ë‘려워하였소. -ê¸‰í–‰ì„ ê¸°ë‹¤ë¦¬ìžë©´ ë˜ ì‚¬í˜ì„ 기다리지 아니하면 아니 ë˜ê¸°ë¡œ 나는 ì´íŠ¿ë‚  ìƒˆë²½ì— ë– ë‚˜ëŠ” 구간차를 타고 Fì—­ì„ ë– ë‚˜ 버렸소. Rì—게는 고맙다는 편지 한 ìž¥ë§Œì„ ì¨ ë†“ê³ . 나는 R를 ë” ë³´ê¸°ë¥¼ ì›ì¹˜ 아니하였소. ê·¸ê²ƒì€ ë°˜ë“œì‹œ R를 죄ì¸ìœ¼ë¡œ 보아서 그런 ê²ƒì€ ì•„ë‹ˆì˜¤ë§ˆëŠ” 그저 나는 다시 R를 대면하기를 ì›ì¹˜ 아니한 것ì´ì˜¤. -나는 차가 Rì˜ ì§‘ ì•žì„ ì§€ë‚  때ì—ë„ Rì˜ ì§‘ì— ëŒ€í•˜ì—¬ì„œëŠ” 외면하였소. -ì´ ëª¨ì–‘ìœ¼ë¡œ 나는 í¥ì•ˆë ¹ì„ 넘고, 하ì¼ë¼ë¥´ì˜ ì†”ë°­ì„ ì§€ë‚˜ì„œ 마침내 ì´ ê³³ì— ì˜¨ 것ì´ì˜¤. -형! 나는 ì¸ì œëŠ” ì´ íŽ¸ì§€ë¥¼ ë내오. ë” ì“¸ ë§ë„ 없거니와 ì¸ì œëŠ” ì´ê²ƒì„ ì“°ê¸°ë„ ì‹«ì¦ì´ 났소. -ì´ íŽ¸ì§€ë¥¼ 쓰기 시작할 때ì—는 ë°”ì´ì¹¼ì— ë¬¼ê²°ì´ í‰ìš©í•˜ë”니 ì´ íŽ¸ì§€ë¥¼ ë내는 지금ì—는 ê°€ì˜ ê°€ê¹Œìš´ 물ì—는 ì–¼ìŒì´ 얼었소. 그리고 ì € 멀리 푸른 ë¬¼ì´ ëŠ ì‹¤ëŠ ì‹¤ 하얗게 눈 ë®ì¸ ì‚° 빛과 어울리게 ë˜ì—ˆì†Œ. -사í˜ì´ë‚˜ ì´ì–´ì„œ ì˜¤ë˜ ëˆˆì´ ë°¤ìƒˆì— ê°œê³  오늘 아침ì—는 칼날 ê°™ì€ ë°”ëžŒì´ ëˆˆì„ ë‚ ë¦¬ê³  있소. -나는 ì´ ì–¼ìŒ ìœ„ë¡œ 걸어서 ì € 푸른 물 있는 곳까지 가고 ì‹¶ì€ ìœ í˜¹ì„ ê¸ˆí•  수 없소. ë”구나 ì´ íŽ¸ì§€ë„ ë‹¤ ì“°ê³  나니, ì¸ì œëŠ” ë‚´ê°€ ì´ ì„¸ìƒì—서 í•  마지막 ì¼ê¹Œì§€ 다 한 것 같소. -ë‚´ê°€ ì´ ì•žì— ì–´ë””ë¡œ 가서 ì–´ì°Œ ë ëŠ”ì§€ëŠ” ë‚˜ë„ ëª¨ë¥´ì§€ë§ˆëŠ” í¬ë¯¸í•œ 소ì›ì„ ë§í•˜ë©´ 눈 ë®ì¸ ì‹œë² ë¦¬ì•„ì˜ ì¸ì  없는 삼림 지대로 한정 ì—†ì´ í—¤ë§¤ë‹¤ê°€ 기운 진하는 ê³³ì—서 ì´ ëª©ìˆ¨ì„ ë§ˆì¹˜ê³  싶소. -ìµœì„ êµ°ì€ `ë'ì´ë¼ëŠ” 글ìžë¥¼ ì¼ë‹¤ê°€ 지워 버리고 ë”´ 종ì´ì—다가 ì´ëŸ° ë§ì„ ì¼ë‹¤ -다 ì“°ê³  나니 ì´ëŸ° íŽ¸ì§€ë„ ë‹¤ 부질없는 ì¼ì´ì˜¤. ë‚´ê°€ ì´ëŸ° ë§ì„ 한대야 세ìƒì´ 믿어 줄 ë¦¬ë„ ì—†ì§€ 않소. ë§ì´ëž€ 소용 없는 것ì´ì˜¤. ë‚´ê°€ 아무리 ë‚´ ì•„ë‚´ì—게 ë§ì„ í–ˆì–´ë„ ì•„ë‹ˆ 믿었거든 ë‚´ ì•„ë‚´ë„ ë‚´ ë§ì„ 아니 믿었거든 하물며 세ìƒì´ ë‚´ ë§ì„ ë¯¿ì„ ë¦¬ê°€ 있소. 믿지 아니할 ë¿ ì•„ë‹ˆë¼ ë‚´ ë§ ì¤‘ì—서 ìžê¸°ë„¤ 목ì ì— 필요한 ë¶€ë¶„ë§Œì€ ë¯¿ê³ , ë˜ ìžê¸°ë„¤ 목ì ì— 필요한 ë¶€ë¶„ì€ ë§ˆìŒëŒ€ë¡œ 고치고 뒤집고 보태고 í•  것ì´ë‹ˆê¹Œ, 나는 ì´ íŽ¸ì§€ë¥¼ ì“´ ê²ƒì´ í•œ 무ìµí•˜ê³  어리ì„ì€ ì¼ì¸ ì¤„ì„ ê¹¨ë‹¬ì•˜ì†Œ. -형ì´ì•¼ ì´ íŽ¸ì§€ë¥¼ 아니 보기로니 나를 안 믿겠소? ê·¸ 중ì—는 혹 í˜•ì´ ì§€ê¸ˆê¹Œì§€ ëª¨ë¥´ë˜ ìžë£Œë„ 없지 아니하니, 형만 í˜¼ìž ë³´ì‹œê³  형만 í˜¼ìž ë‚´ ì‚¬ì •ì„ ì•Œì•„ 주시면 다행ì´ê² ì†Œ. 세ìƒì— 한 믿는 친구를 가지는 ê²ƒì´ ì €ë§ˆë‹¤ 하는 ì¼ì´ê² ì†Œ? -나는 ì´ ì“¸ë°ì—†ëŠ” 편지를 몇 번ì´ë‚˜ ë¶ˆì‚´ë¼ ë²„ë¦¬ë ¤ê³  하였으나 ê·¸ëž˜ë„ ê±°ê¸°ë„ ì¼ì¢…ì˜ ì• ì°©ì‹¬ì´ ìƒê¸°ê³  ë¯¸ë ¨ì´ ìƒê¸°ëŠ”êµ¬ë ¤. 형 한 ë¶„ì´ë¼ë„ ë³´ì—¬ 드리고 ì‹¶ì€ ë§ˆìŒì´ ìƒê¸°ëŠ”êµ¬ë ¤. ë‚´ê°€ Sí˜•ë¬´ì†Œì— ìž…ê°í•´ ìžˆì„ ì ì— 형무소 ë²½ì— ì£„ìˆ˜ê°€ ì†í†±ìœ¼ë¡œ ì„±ëª…ì„ ìƒˆê¸´ ê²ƒì„ ë³´ì•˜ì†Œ. ë’¤ì— ë¬¼ì—ˆë”니 ê·¸ê²ƒì€ í”히 사형수가 하는 ì§“ì´ë¼ê³ . 사형수가 êµìˆ˜ëŒ€ì— ëŒë ¤ 나가기 바로 ì „ì— í”히 ì†í†±ìœ¼ë¡œ ë‹´ë²¼ë½ì´ë‚˜ ë§ˆë£»ë°”ë‹¥ì— ì œ ì´ë¦„ì„ ìƒˆê¸°ëŠ” ì¼ì´ 있다고 하는 ë§ì„ 들었소. ë‚´ê°€ 형ì—게 쓰는 ì´ íŽ¸ì§€ë„ ê·¸ 심리와 비슷한 것ì¼ê¹Œìš”? -형! 나는 보통 사람보다는, 정보다는 지로, ìƒì‹ë³´ë‹¤ëŠ” ì´ë¡ ìœ¼ë¡œ, ì´í•´ë³´ë‹¤ëŠ” ì˜ë¦¬ë¡œ ì‚´ì•„ 왔다고 ìžì‹ í•˜ì˜¤. ì´ë¥¼í…Œë©´ 논리학ì ìœ¼ë¡œ 윤리학ì ìœ¼ë¡œ 살아온 것ì´ë¼ê³  할까. 나는 엄격한 êµì‚¬ìš”, êµìž¥ì´ì—ˆì†Œ. 내게는 ì˜ì§€ë ¥ê³¼ ì´ì§€ë ¥ë°–ì— ì—†ëŠ” 것 같았소. 그러한 ìƒí™œì„ 수십 ë…„ í•´ 오지 아니하였소? 나는 ì´ ì•žì— ëª‡ì‹­ ë…„ì„ ë” ì‚´ë”ë¼ë„ ë‚´ ì´ ì„±ê²©ì´ë‚˜ ìƒí™œ 태ë„ì—는 ë³€í•¨ì´ ì—†ìœ¼ë¦¬ë¼ê³  ìžì‹ í•˜ì˜€ì†Œ. ë¶ˆí˜¹ì§€ë…„ì´ ì§€ë‚¬ìœ¼ë‹ˆ 그렇게 ìƒê°í•˜ì˜€ì„ ê²ƒì´ ì•„ë‹ˆì˜¤? -ê·¸ëŸ°ë° í˜•! ì°¸ ì´ìƒí•œ ì¼ì´ 있소. ê·¸ê²ƒì€ ë‚´ê°€ 지금까지 처해 ìžˆë˜ í™˜ê²½ì„벗어나서 호호 탕탕하게 ë„“ì€ ì„¸ê³„ì— ì•Œëª¸ì„ ë‚´ì–´ë˜ì§ì„ 당하니 ë‚´ ë§ˆìŒ ì†ì—는 무서운 여러 가지 변화가 ì¼ì–´ë‚˜ëŠ”êµ¬ë ¤. 나는 ì´ ë§ë„ 형ì—게 아니 하려고 ìƒê°í•˜ì˜€ì†Œ. 노여워하지 마시오, ë‚´ê²Œê¹Œì§€ë„ ìˆ¨ê¸°ëŠëƒê³ . 그런 ê²ƒì´ ì•„ë‹ˆì˜¤, 형ì€ì»¤ë…• 나 ìžì‹ ì—ê²Œê¹Œì§€ë„ ìˆ¨ê¸°ë ¤ê³  í•˜ì˜€ë˜ ê²ƒì´ì˜¤. 혹시 그런 기다리지 아니 í•˜ì˜€ë˜ ì›, 그런 ìƒê°ì´ ë‚´ 마ìŒì˜ í•˜ëŠ˜ì— ì¼ì–´ë‚˜ë¦¬ë¼ê³  ìƒìƒë„ 아니하였ë˜, 그런 ìƒê°ì´ ì¼ì–´ë‚  때ì—는 나는 스스로 놀ë¼ê³  스스로 슬í¼í•˜ì˜€ì†Œ. 그래서 스스로 숨기기로 하였소. -ê·¸ 숨긴다는 ê²ƒì´ ë¬´ì—‡ì´ëƒ 하면 ê·¸ê²ƒì€ ì—´ì •ì´ìš”, ì •ì˜ ë¶ˆê¸¸ì´ìš”, ì •ì˜ ê´‘í’ì´ìš”, ì •ì˜ ë¬¼ê²°ì´ì˜¤. ë§Œì¼ ë‚´ ì˜ì‹ì´ 세계를 í‰í™”로운 í’€ 있고, 꽃 있고, 나무 있는 벌íŒì´ë¼ê³  하면 거기 난ë°ì—†ëŠ” 미친 ì§ìŠ¹ë“¤ì´ ë¶ˆì„ ë¿œê³  소리를 지르고 싸우고, ì˜ê°ì„ 하고 ë‚ ì³ì„œ, ì´ ë™ì‚°ì˜ í‰í™”ì˜ í™”ì´ˆë¥¼ 다 ì§“ë°Ÿì•„ 버리고 마는 그러한 모양과 같소. -형! ê·¸ ì´ìƒì•¼ë¦‡í•œ ì§ìŠ¹ë“¤ì´ ì—¬íƒœê», 사십 ë…„ ê°„ì„ ì–´ëŠ êµ¬ì„ì— ìˆ¨ì–´ 있었소? 그러다가 ì¸ì œ 뛰어나와 ê°ê° ì œ 권리를 주장하오? -지금 ë‚´ 가슴 ì†ì€ ë“소. ë‚´ ëª¸ì€ ë°”ì§ ì—¬ìœ„ì—ˆì†Œ. ê·¸ê²ƒì€ ìƒë¦¬í•™ì ìœ¼ë¡œë‚˜ 심리학ì ìœ¼ë¡œë‚˜ 타는 것ì´ìš”, 연소하는 것ì´ì˜¤. 그래서 다만 ë‚´ ëª¸ì˜ ì§€ë°©ë§Œì´ íƒ€ëŠ” ê²ƒì´ ì•„ë‹ˆë¼, 골수까지 타고, ëª¸ì´ íƒˆ ë¿ì´ ì•„ë‹ˆë¼ ìƒëª… ê·¸ ë¬¼ê±´ì´ íƒ€ê³  있는 것ì´ì˜¤. 그러면 어찌할까. -지위, 명성, 습관, 시대 사조 등등으로 ì¼ìƒì— 눌리고 ëˆŒë ¸ë˜ ë‚´ ìžì•„ì˜ ì¼ë¶€ë¶„ì´ í˜ëª…ì„ ì¼ìœ¼í‚¨ 것ì´ì˜¤? 한 ë²ˆë„ ìžìœ ë¡œ 권세를 부려 ë³´ì§€ 못한 본능과 ê°ì •ë“¤ì´ ë‚´ ìƒëª…ì´ ë나기 ì „ì— í•œ 번 ë‚ ë›°ì–´ 보려는 것ì´ì˜¤. ì´ê²ƒì´ ì„ ì´ì˜¤? ì•…ì´ì˜¤? -ê·¸ë“¤ì€ ë‚´ê°€ 지금까지 옳다고 여기고 신성하다고 ì—¬ê¸°ë˜ ëª¨ë“  권위를 모조리 둘러엎으려고 드오. 그러나 형! 나는 ë„저히 ì´ í˜ëª…ì„ ìš©ì¸í•  수가 없소. 나는 죽기까지 버티기로 ê²°ì •ì„ í•˜ì˜€ì†Œ. ë‚´ ì†ì—서 ë‘ ì„¸ë ¥ì´ ì‹¸ìš°ë‹¤ê°€ 싸우다가 승부가 ê²°ì •ì´ ëª» ëœë‹¤ë©´ 나는 ìŠ¹ë¶€ì˜ ê²°ì •ì„ ê¸°ë‹¤ë¦¬ì§€ 아니하고 살기를 그만ë‘려오. -나는 눈 ë®ì¸ 삼림 ì†ìœ¼ë¡œ 들어가려오. 나는 Vë¼ëŠ” 대삼림 지대가 ì–´ë””ì¸ ì¤„ë„ ì•Œê³  거기를 가려면 ì–´ëŠ ì •ê±°ìž¥ì—서 내릴 ê²ƒë„ ë‹¤ 알아 놓았소. -ë§Œì¼ ë‹¨ìˆœížˆ 죽는다 하면 구태여 멀리 찾아갈 í•„ìš”ë„ ì—†ì§€ë§ˆëŠ” ê·¸ëž˜ë„ ë‚˜ 혼ìžë¡œëŠ” ë‚´ 사ìƒê³¼ ê°ì •ì˜ ì²­ì‚°ì„ í•˜ê³  싶소. ì‚´ 수 있는 날까지 세ìƒì„ 떠난 ê³³ì—서 살다가 완전한 í•´ê²°ì„ ì–»ëŠ” ë‚  나는 í˜¹ì€ ìŠ¹ë¦¬ì˜, í˜¹ì€ íŒ¨ë°°ì˜ ì¢…ë§‰ì„ ë‹«ì¹  것ì´ì˜¤. ë§Œì¼ í•´ê²°ì´ ì•ˆ ë˜ë©´ 안 ë˜ëŠ” 대로 그치면 그만ì´ì§€ìš”. -나는 ì´ ë¶“ì„ ë†“ê¸° ì „ì— ì–´ì ¯ë°¤ì— ê¾¼ 꿈 ì´ì•¼ê¸° 하나는 하려오. ê¿ˆì´ í•˜ë„ ìˆ˜ìƒí•´ì„œ 마치 ë‚´ ì „ë„ì— ëŒ€í•œ ì‹ ì˜ ê³„ì‹œì™€ë„ ê°™ê¸°ë¡œ 하는 ë§ì´ì˜¤. ê·¸ ê¿ˆì€ ì´ëŸ¬í•˜ì˜€ì†Œ. -ë‚´ê°€ ê½ì´ê¹¨(꼬ì´ê¹Œë¼ëŠ” ì•„ë¼ì‚¬ë§ë¡œ 침대ë¼ëŠ” ë§ì´ ì¡°ì„  ë™í¬ì˜ 입으로 변한 ë§ì´ì˜¤.) ì§ì„ 지고 ì‚½ì„ ë©”ê³  ëˆˆì´ ë®ì¸ 삼림 ì†ì„ í˜¼ìž ê±¸ì—ˆì†Œ. ì´ ê½ì´ê¹¨ ì§ì´ëž€ ê²ƒì€ ê¸ˆì ê¾¼ë“¤ì´ ê·¸ 여행 ì¤‘ì— ì†Œìš©í’ˆ, 마른 ë¹µ, 소금, ë‚´ë³µ 등ì†ì„ 침대 ë§¤íŠ¸ë¦¬ìŠ¤ì— ë„£ì–´ì„œ 지고 다니는 것ì´ì˜¤. ì´ ì§í•˜ê³  삽 한 ê°œ, ë„ë¼ í•œ ê°œ, ê·¸ê²ƒì´ ì‹œë² ë¦¬ì•„ë¡œ ê¸ˆì„ ì°¾ì•„ 헤매는 ì¡°ì„  ë™í¬ë“¤ì˜ 행색ì´ì˜¤. ë‚´ê°€ ì´ë¥´ì¿ ì¸ í¬ì—서 ì´ëŸ¬í•œ ë™í¬ë¥¼ ë§Œë‚¬ë˜ ê²ƒì´ ê¿ˆìœ¼ë¡œ ë˜ì–´ 나온 모양ì´ì˜¤. -나는 꿈ì—는 세ìƒì„ 다 잊어버린, 아주 깨ë—하고 침착한 사람으로 ì´ ê½ì´ê¹¨ ì§ì„ 지고 ì‚½ì„ ë©”ê³  ë°¤ì¸ì§€ ë‚®ì¸ì§€ 알 수 없으나 ë•…ì€ ëˆˆë¹›ìœ¼ë¡œ í¬ê³ , í•˜ëŠ˜ì€ êµ¬ë¦„ë¹›ìœ¼ë¡œ íšŒìƒ‰ì¸ ì‚¼ë¦¼ 지대를 í—ˆë•í—ˆë• ê±¸ì—ˆì†Œ. ê¸¸ë„ ì—†ëŠ” ë°ë¥¼, ì¸ì ë„ 없는 ë°ë¥¼. -꿈ì—ë„ ë‚´ ëª¸ì€ í½ í”¼ê³¤í•´ì„œ 쉴 ìžë¦¬ë¥¼ 찾는 마ìŒì´ì—ˆì†Œ. -나는 마침내 ì–´ë–¤ ì–¸ë• ë°‘ 한 êµ°ë°ë¥¼ 골ëžì†Œ. 그리고 ìƒì‹œì— ì´ì•¼ê¸°ì—서 ë“¤ì€ ëŒ€ë¡œ 삽으로 ë‚´ê°€ 누울 ìžë¦¬ë§Œí•œ ëˆˆì„ ì¹˜ê³ , 그리고는 ë„ë¼ë¡œ ê³ì— ì„  나무 몇 개를 ì°ì–´ 누ì´ê³  거기다가 ë¶ˆì„ ë†“ê³  ê·¸ ë¶ˆê¹€ì— ë…¹ì€ ë•…ì„ ë‘ì–´ ìžë‚˜ 파내고 ê·¸ ì†ì— 드러누웠소. 훈훈한 ê²ƒì´ ì•„ì£¼ 편안하였소. -하늘ì—는 ë³„ì´ ë°˜ì§ê±°ë ¸ì†Œ. Fì—­ì—서 ë³´ë˜ ë°”ì™€ ê°™ì´ í° ë³„ ìž‘ì€ ë³„ë„ ë³´ì´ê³  í‰ì‹œì— ë³´ì§€ ëª»í•˜ë˜ ë¶‰ì€ ë³„, 푸른 별 ë“¤ë„ ë³´ì˜€ì†Œ. 나는 ì´ ì´ìƒí•œ 하늘, ì´ìƒí•œ ë³„ë“¤ì´ ìžˆëŠ” í•˜ëŠ˜ì„ ë³´ê³  드러누워 있노ë¼ë‹ˆê¹Œ ë¬¸ë“ ì–´ë””ì„œ ë°œìžêµ­ 소리가 들렸소. í‰í‰í‰í‰ 우루루루…… 나는 벌떡 ì¼ì–´ë‚˜ë ¤ 하였으나 ëª¸ì´ ì²œ ê·¼ì´ë‚˜ ë˜ì–´ì„œ 움ì§ì¼ 수가 없었소. 가까스로 고개를 조금 들고 보니 ë¿”ì´ ê¸¸ë‹¤ëž—ê³  ëˆˆì´ ë¶ˆê°™ì´ ë¶‰ì€ ì‚¬ìŠ´ì˜ ë–¼ê°€ ë¬´ì—‡ì— ë†€ëžëŠ”ì§€ 껑충껑충 ë›°ì–´ 지나가오. ì´ê²ƒì€ 아마 í¬ë¡œí¬íŠ¸í‚¨ì˜ <ìƒí˜¸ 부조론> ì†ì— ë§í•œ ì‹œë² ë¦¬ì•„ì˜ ì‚¬ìŠ´ì˜ ë–¼ê°€ ê¿ˆì´ ë˜ì–´ 나온 모양ì´ì˜¤. -그러ë”니 ê·¸ ì‚¬ìŠ´ì˜ ë–¼ê°€ 다 지나간 ë’¤ì—, ê·¸ ì‚¬ìŠ´ì˜ ë–¼ê°€ ì˜¤ë˜ ë°©í–¥ìœ¼ë¡œì„œ ì •ìž„ì´ê°€ 걸어오는 ê²ƒì´ ì•„ë‹ˆë¼ ìŠ¤ë¥´ë¥µ 하고 미ë„러져 오오. 마치 ì¸í˜•ì„ ë°€ì–´ 주는 것같ì´. -"정임아!" -하고 나는 소리를 치고 ëª¸ì„ ì¼ìœ¼í‚¤ë ¤ 하였소. -ì •ìž„ì˜ ëª¨ì–‘ì€ ë‚˜ë¥¼ ìž ê¹ ë³´ê³ ëŠ” 미ë„러지는 ë“¯ì´ í˜ëŸ¬ê°€ 버리오. -나는 정임아, 정임아를 부르고 팔다리를 부둥거렸소. 그러다가 마침내 ë‚´ ëª¸ì´ ë²ˆì© ì¼ìœ¼ì¼œì§ì„ 깨달았소. 나는 ì •ìž„ì˜ ë’¤ë¥¼ ë”°ëžì†Œ. -나는 눈 위로 삼림 ì†ìœ¼ë¡œ ì •ìž„ì˜ ê·¸ë¦¼ìžë¥¼ ë”°ëžì†Œ. ë³´ì¼ ë“¯ 안 ë³´ì¼ ë“¯, ìž¡íž ë“¯ 안 ìž¡íž ë“¯, 나는 무거운 다리를 ëŒê³  ì •ìž„ì„ ë”°ëžì†Œ. -ì •ìž„ì€ ì´ ì¶”ìš´ ë‚ ì´ì–¸ë§Œ 눈과 ê°™ì´ í° ì˜·ì„ ìž…ì—ˆì†Œ. ê·¸ ì˜·ì€ ì˜›ë‚  로마 ì—¬ì¸ì˜ 옷과 ê°™ì´ ë°”ëžŒê²°ì— íŽ„ë ê±°ë ¸ì†Œ. -"오지 마세요. 저를 ë”°ë¼ì˜¤ì§€ 못하십니다." -하고 ì •ìž„ì€ ëˆˆë³´ë¼ ì†ì— 가리워 버리고 ë§ì•˜ì†Œ. 암만 ë¶ˆëŸ¬ë„ ëŒ€ë‹µì´ ì—†ê³  눈보ë¼ê°€ 다 지나간 ë’¤ì—ë„ ë¶‰ì€ ë³„, 푸른 별과 ë¿” 긴 ì‚¬ìŠ´ì˜ ë–¼ë¿ì´ì˜¤. ì •ìž„ì€ ë³´ì´ì§€ 아니하였소. 나는 미칠 ë“¯ì´ ì •ìž„ì„ ì°¾ê³  부르다가 ìž ì„ ê¹¨ì—ˆì†Œ. -ê¿ˆì€ ì´ê²ƒë¿ì´ì˜¤. ê¿ˆì„ ê¹¨ì–´ì„œ ì°½ ë°–ì„ ë°”ë¼ë³´ë‹ˆ ì–¼ìŒê³¼ ëˆˆì— ë®ì¸ ë°”ì´ì¹¼í˜¸ 위ì—는 ìƒˆë²½ì˜ ê²¨ìš¸ ë‹¬ì´ ë¹„ì¹˜ì–´ 있었소. ì € 멀리 검푸르게 ë³´ì´ëŠ” ê²ƒì´ ì±„ 얼어붙지 아니한 물ì´ê² ì§€ìš”. 오늘 ë°¤ì— ë°”ëžŒì´ ì—†ê³  ê¸°ì˜¨ì´ ë‚´ë¦¬ë©´ 그것마저 얼어붙ì„는지 모르지요. ë²Œì¨ ì‚´ì–¼ìŒì´ ìž¡í˜”ëŠ”ì§€ë„ ëª¨ë¥´ì§€ìš”. ì•„ì•„, ê·¸ ì†ì€ 얼마나 깊ì„까. 나는 ë°”ì´ì¹¼ì˜ 물 ì†ì´ ê´€ì‹¬ì´ ë˜ì–´ì„œ 못 견디겠소. -형! 나는 ìžë°±í•˜ì§€ 아니할 수 없소. ì´ ê¿ˆì€ ë‚´ 마ìŒì˜ ì–´ë–¤ ë¶€ë¶„ì„ ì„¤ëª…í•œ 것ì´ë¼ê³ . 그러나 형! 나는 ì´ê²ƒì„ 부정하려오. 굳세게 부정하려오. 나는 ì´ ê¿ˆì„ ë¶€ì •í•˜ë ¤ì˜¤. 억지로ë¼ë„ 부정하려오. 나는 ê²°ì½” ë‚´ ì†ì— ì¼ì–´ë‚œ í˜ëª…ì„ ìš©ì¸í•˜ì§€ 아니하려오. 나는 ê·¸ê²ƒì„ í˜ëª…으로 ì¸ì •하지 아니하려오. 아니오! 아니오! ê·¸ê²ƒì€ ë°˜ëž€ì´ì˜¤! ë‚´ ì¸ê²©ì˜ 통ì¼ì— 대한 반란ì´ì˜¤. 단연코 무단ì ìœ¼ë¡œ 진정하지 아니하면 아니 ë  ë°˜ëž€ì´ì˜¤. 보시오! 나는 굳게 서서 한 걸ìŒë„ 뒤로 물러서지 아니할 것ì´ì˜¤. ë§Œì¼ì— í˜•ì´ ê´‘ì•¼ì— êµ¬ë¥´ëŠ” ë‚´ 시체나 í•´ê³¨ì„ ë³¸ë‹¤ë“ ì§€, ë˜ëŠ” 무슨 ì¸ì—°ìœ¼ë¡œ ë‚´ 무ë¤ì„ 발견하는 ë‚ ì´ ìžˆë‹¤ê³  하면 ê·¸ ë•Œì— í˜•ì€ ë‚´ê°€ ì´ ëª¨ë“  ë°˜ëž€ì„ ì§„ì •í•œ ê°œì„ ì˜ êµ°ì£¼ë¡œ ì£½ì€ ê²ƒì„ ì•Œì•„ 주시오. -ì¸ì œ ë°”ì´ì¹¼ì— ê²¨ìš¸ì˜ ì„ì–‘ì´ ë¹„ì¹˜ì—ˆì†Œ. ëˆˆì„ ì¸ ë‚˜ì§€ë§‰í•œ ì‚°ë“¤ì´ ì§€ëŠ” í–‡ë¹›ì— ìžì¤ë¹›ì„ 발하고 있소. 극히 깨ë—하고 싸늘한 ê´‘ê²½ì´ì˜¤. 아디유! -ì´ íŽ¸ì§€ë¥¼ ìš°íŽ¸ì— ë¶€ì¹˜ê³ ëŠ” 나는 ìµœí›„ì˜ ë°©ëž‘ì˜ ê¸¸ì„ ë– ë‚˜ì˜¤. ì°¾ì„ ìˆ˜ë„ ì—†ê³ , 편지 ë°›ì„ ìˆ˜ë„ ì—†ëŠ” 곳으로. -부디 í‰ì•ˆížˆ 계시오. ì¼ ë§Žì´ í•˜ì‹œì˜¤. ë¶€ì¸ê»˜ 문안 드리오. ë‚´ 가족과 ì •ìž„ì˜ ì¼ ë§¡ê¸°ì˜¤. 아디유! -ì´ê²ƒìœ¼ë¡œ ìµœì„ êµ°ì˜ íŽ¸ì§€ëŠ” ë났다. -나는 ì´ íŽ¸ì§€ë¥¼ 받고 울었다. ì´ê²ƒì´ ì¼ íŽ¸ì˜ ì†Œì„¤ì´ë¼ 하ë”ë¼ë„ 슬픈 ì¼ì´ì–´ë“ , 하물며 ë‚´ê°€ 가장 믿고 사랑하는 ì¹œêµ¬ì˜ ì¼ìž„ì—야. -ì´ íŽ¸ì§€ë¥¼ 받고 나는 ê³§ ìµœì„ êµ°ì˜ ì§‘ì„ ì°¾ì•˜ë‹¤. 주ì¸ì„ ìžƒì€ ì´ ì§‘ì—서는아ì´ë“¤ì´ 마당ì—서 떠들고 있었다. -"ì‚¼ì²­ë™ ì•„ìžì”¨ 오셨수. 어머니, ì‚¼ì²­ë™ ì•„ìžì”¨." -하고 ìµœì„ êµ°ì˜ ìž‘ì€ë”¸ì´ 나를 ë³´ê³  뛰어들어갔다. -최ì„ì˜ ë¶€ì¸ì´ 나와 나를 맞았다. -ë¶€ì¸ì€ ë¨¸ë¦¬ë„ ë¹—ì§€ 아니하고, 얼굴ì—는 ì¡°ê¸ˆë„ í™”ìž¥ì„ ì•„ë‹ˆí•˜ê³ , ë§¤ë¬´ì‹œë„ í˜ëŸ¬ë‚´ë¦´ 지경으로 ì •ëˆë˜ì§€ 못하였다. ì¼ ì£¼ì¼ì´ë‚˜ 못 만난 ë™ì•ˆì— ë¶€ì¸ì˜ ëª¨ì–‘ì€ ë”ìš± 초췌하였다. -"ë…¸ì„헌테서 무슨 기별ì´ë‚˜ 있습니까." -하고 나는 무슨 ë§ë¡œ ë§ì„ 시작할지 몰ë¼ì„œ ì´ëŸ° ë§ì„ 하였다. -"아니오. 왜 ê·¸ì´ê°€ ì§‘ì— íŽ¸ì§€í•˜ë‚˜ìš”?" -하고 ë¶€ì¸ì€ 성난 ë¹›ì„ ë³´ì´ë©°, -"ì§‘ì„ ë– ë‚œ 지가 ê·¼ 사십 ì¼ì´ ë˜ê±´ë§Œ 엽서 한 장 있나요. 집안 ì‹êµ¬ê°€ 다 죽기로 눈ì´ë‚˜ 깜ì§í•  ì¸ê°€ìš”. 그저 ì •ìž„ì´í—Œí…Œë§Œ 미ì³ì„œ 죽ì„ì§€ 살지를 모르지요." -하고 울먹울먹한다. -"잘못 아십니다. ë¶€ì¸ê»˜ì„œ ë…¸ì„ì˜ ë§ˆìŒì„ 잘못 아십니다. 그런 ê²ƒì´ ì•„ë‹™ë‹ˆë‹¤." -하고 나는 확신 있는 ë“¯ì´ ë§ì„ 시작하였다. -"ë…¸ì„ì˜ ìƒê°ì„ ë¶€ì¸ê»˜ì„œ 오해하신 ì¤„ì€ ë²Œì¨ë¶€í„° 알았지마는 오늘 ë…¸ì„ì˜ íŽ¸ì§€ë¥¼ 받아보고 ë”ìš± 분명히 알았습니다." -하고 나는 ë¶€ì¸ì˜ í‘œì •ì˜ ë³€í™”ë¥¼ 엿보았다. -"편지가 왔어요?" -하고 ë¶€ì¸ì€ 놀ë¼ë©´ì„œ, -"지금 ì–´ë”” 있어요? ì¼ë³¸ 있지요?" -하고 ì§ˆíˆ¬ì˜ ë¶ˆê¸¸ì„ ëˆˆìœ¼ë¡œ 토하였다. -"ì¼ë³¸ì´ 아닙니다. ë…¸ì„ì€ ì§€ê¸ˆ ì•„ë¼ì‚¬ì— 있습니다." -"ì•„ë¼ì‚¬ìš”?" -하고 ë¶€ì¸ì€ 놀ë¼ëŠ” ë¹›ì„ ë³´ì´ë”니, -"그럼 ì •ìž„ì´ë¥¼ ë°ë¦¬ê³  아주 ì•„ë¼ì‚¬ë¡œ 가케오치를 하였군요." -하고 히스테리컬한 웃ìŒì„ ë³´ì´ê³ ëŠ” ëª¸ì„ í•œ 번 떨었다. -ë¶€ì¸ì€ 남편과 ì •ìž„ì˜ ê´€ê³„ë¥¼ ë§í•  때마다 ì´ë ‡ê²Œ 경련ì ì¸ 웃ìŒì„ 웃고 ëª¸ì„ ë– ëŠ” ê²ƒì´ ë²„ë¦‡ì´ì—ˆë‹¤. -"아닙니다. ë…¸ì„ì€ í˜¼ìž ê°€ 있습니다. 그렇게 오해를 마세요." -하고 나는 ë³´ì— ì‹¼ 최ì„ì˜ íŽ¸ì§€ë¥¼ 내어서 ë¶€ì¸ì˜ 앞으로 밀어 놓으며, -"ì´ê²ƒì„ 보시면 다 아실 줄 압니다. 어쨌으나 ë…¸ì„ì€ ê²°ì½” ì •ìž„ì´ë¥¼ ë°ë¦¬ê³  ê°„ ê²ƒì´ ì•„ë‹ˆìš”, ë„리어 ì •ìž„ì´ë¥¼ 멀리 떠나서 ê°„ 것입니다. 그러나 ê·¸ë³´ë‹¤ë„ ì¤‘ëŒ€ 문제가 있습니다. ë…¸ì„ì€ ì´ íŽ¸ì§€ë¥¼ ë³´ë©´ ì£½ì„ ê²°ì‹¬ì„ í•œ 모양입니다." -하고 ë¶€ì¸ì˜ 주ì˜ë¥¼ 질투로부터 ê·¸ 남편ì—게 대한 ë™ì •ì— ëŒì–´ ë³´ë ¤ 하였다. -"í¥. 왜요? 시체 정사를 하나요? 좋겠습니다. 머리가 허연 ê²ƒì´ ë”¸ìžì‹ ê°™ì€ ê³„ì§‘ì• í—ˆêµ¬ 정사를 한다면 ê·¸ ê¼´ 좋겠습니다. 죽으ë¼ì§€ìš”. 죽으래요. 죽는 ê²ƒì´ ë‚«ì§€ìš”. 그리구 살아서 무엇 í•´ìš”?" -ë‚´ ëœ»ì€ í‹€ë ¤ 버렸다. ë¶€ì¸ì˜ 표정과 ë§ì—서는 ë”ìš±ë”ìš± ë…한 ì§ˆíˆ¬ì˜ ì•ˆê°œì™€ 싸늘한 ì–¼ìŒê°€ë£¨ê°€ 날았다. -나는 ë¶€ì¸ì˜ ì´ íƒœë„ì— ë°˜ê°ì„ ëŠê¼ˆë‹¤. 아무리 ì§ˆíˆ¬ì˜ ê°ì •ì´ ê°•í•˜ë‹¤ 하기로, ì‚¬ëžŒì˜ ìƒëª…ì´ ì œ ë‚¨íŽ¸ì˜ ìƒëª…ì´ ìœ„íƒœí•¨ì—ë„ ë¶ˆêµ¬í•˜ê³  ì˜¤ì§ ì œ ì§ˆíˆ¬ì˜ ê°ì •ì—ë§Œ 충실하려 하는 ê·¸ 태ë„ê°€ 불쾌하였다. 그래서 나는, -"나는 ê·¸ë§Œí¼ ë§ì”€í•´ 드렸으니 ë” í•  ë§ì”€ì€ 없습니다. 아무려나 ì¢€ë” ëƒ‰ì •í•˜ê²Œ ìƒê°í•´ 보세요. 그리고 ì´ê²ƒì„ ì½ì–´ 보세요." -하고 ì¼ì–´ë‚˜ì„œ 집으로 ëŒì•„와 버리고 ë§ì•˜ë‹¤. -ë„무지 불쾌하기 그지없는 ë‚ ì´ë‹¤. 최ì„ì˜ íƒœë„ê¹Œì§€ë„ ë¶ˆì¾Œí•˜ë‹¤. 달아나긴 왜 달아나? 죽기는 왜 죽어? 못난 것! 기운 없는 것! 하고 나는 최ì„ì´ê°€ ê³ì— 섰기나 한 것처럼 ëˆˆì„ í˜ê¸°ê³  중얼거렸다. -최ì„ì˜ ë§ëŒ€ë¡œ 최ì„ì˜ ë¶€ì¸ì€ 악한 ì‚¬ëžŒì´ ì•„ë‹ˆìš”, 그저 ë³´í†µì¸ ì—¬ì„±ì¼ëŠ”ì§€ 모른다. 그렇다 하면 ì—¬ìžì˜ 마ìŒì´ëž€ ë„ˆë¬´ë„ ì§ˆíˆ¬ì˜ ì¢…ì´ ì•„ë‹ê¹Œ. 설사 남편 ë˜ëŠ” 최ì„ì˜ ì‚¬ëž‘ì´ ì•„ë‚´ë¡œë¶€í„° ì •ìž„ì—게로 옮아 갔다고 하ë”ë¼ë„ ê·¸ê²ƒì„ ì§ˆíˆ¬ë¡œ 회복하려는 ê²ƒì€ ì–´ë¦¬ì„ì€ ì¼ì´ë‹¤. ì´ë¯¸ ì‚¬ëž‘ì´ ë– ë‚œ ë‚¨íŽ¸ì„ ë„¤ 마ìŒëŒ€ë¡œ ê°€ê±°ë¼ í•˜ê³  ìžë°œì ìœ¼ë¡œ 내어버릴 것ì´ì§€ë§ˆëŠ” ê·¸ê²ƒì„ ëª» í•  ì‚¬ì •ì´ ìžˆë‹¤ê³  하면 모르는 체하고 내버려 둘 ê²ƒì´ ì•„ë‹Œê°€. ê·¸ëž˜ë„ ì´ê²ƒì€ 우리네 남ìžì˜ ì´ë¡ ì´ìš”, ì—¬ìžë¡œëŠ” ì´ëŸ° ê²½ìš°ì— ì§ˆíˆ¬ë¼ëŠ” ë°˜ì‘ë°–ì— ì—†ë„ë¡ ìƒê¸´ 것ì¼ê¹Œ 나는 ì´ëŸ° ìƒê°ì„ 하고 있었다. -시계가 아홉시를 친다. -남대문 ë°– ì •ê±°ìž¥ì„ ë– ë‚˜ëŠ” ì—´ì°¨ì˜ ê¸°ì  ì†Œë¦¬ê°€ 들린다. -나는 만주를 ìƒê°í•˜ê³ , 시베리아를 ìƒê°í•˜ê³  최ì„ì„ ìƒê°í•˜ì˜€ë‹¤. 마ìŒìœ¼ë¡œëŠ” ì •ìž„ì„ ì‚¬ëž‘í•˜ë©´ì„œ ê·¸ ì‚¬ëž‘ì„ ë°œí‘œí•  수 없어서 ì‹œë² ë¦¬ì•„ì˜ ëˆˆ ë®ì¸ 삼림 ì†ìœ¼ë¡œ 방황하는 최ì„ì˜ ëª¨ì–‘ì´ ìµœì„ì˜ ê¿ˆ ì´ì•¼ê¸°ì— 있는 대로 ëˆˆì•žì— ì„ í•˜ê²Œ 떠나온다. -`ì‚¬ëž‘ì€ ëª©ìˆ¨ì„ ë¹¼ì•—ëŠ”ë‹¤.' -하고 나는 사랑ì¼ëž˜ ì¼ì–´ë‚˜ëŠ” ì¸ìƒì˜ ë¹„ê·¹ì„ ìƒê°í•˜ì˜€ë‹¤. 그러나 최ì„ì˜ ê²½ìš°ëŠ” 보통 있는 ê³µì‹ê³¼ëŠ” 달ë¼ì„œ ì‚¬ëž‘ì„ ì£½ì´ê¸° 위해서 ì œ ëª©ìˆ¨ì„ ì£½ì´ëŠ” 것ì´ì—ˆë‹¤. 그렇다 하ë”ë¼ë„, -`ì‚¬ëž‘ì€ ëª©ìˆ¨ì„ ë¹¼ì•—ëŠ”ë‹¤.' -는 ë°ì—는 ë‹¤ë¦„ì´ ì—†ë‹¤. -나는 ë¶ˆì¾Œë„ í•˜ê³  ëª¸ë„ ìœ¼ìŠ¤ìŠ¤í•˜ì—¬ 얼른 ìžë¦¬ì— 누웠다. ë©°ëŠë¦¬ê°€ 들어온 뒤부터 사랑 ìƒí™œì„ 하는 지가 ë²Œì¨ ì˜¤ ë…„ì´ë‚˜ ë˜ì—ˆë‹¤. 우리 부처란 ì¸ì œëŠ” 한 ì—­ì‚¬ì  ì¡´ìž¬ìš”, ìœ¤ë¦¬ì  ê´€ê³„ì— ë¶ˆê³¼í•˜ì˜€ë‹¤. 오래 사귄 친구와 ê°™ì€ ìµìˆ™í•¨ì´ 있고, ì§‘ì— ì—†ì§€ 못할 사람ì´ë¼ëŠ” í•„ìš”ê°ë„ 있지마는 ì Šì€ ë¶€ì²˜ê°€ 가지는 듯한 그런 ì •ì€ ë²Œì¨ ì—†ëŠ” ì§€ 오래였다. ì•„ë‚´ë„ ë‚˜ë¥¼ 대하면 본체만체, ë‚˜ë„ ì•„ë‚´ë¥¼ 대하면 본체만체, 무슨 필요가 있어서 ë§ì„ ë¶™ì´ë”ë¼ë„ ì•„ë¬´ìª¼ë¡ ë“£ê¸° 싫기를 ì›í•˜ëŠ” ë“¯ì´ í†¡í†¡ ë‚´ë˜ì¡Œë‹¤. ì•„ë‚´ë„ ê·¼ëž˜ì— ì™€ì„œëŠ” ì˜·ë„ ì•„ë¬´ë ‡ê²Œë‚˜, ë¨¸ë¦¬ë„ ì•„ë¬´ë ‡ê²Œë‚˜, ì–´ë”” 출입할 때밖ì—는 ë„무지 í™”ìž¥ì„ ì•„ë‹ˆ 하였다. -그러나 그렇다고 우리 ë¶€ì²˜ì˜ ìƒˆê°€ 좋지 못한 ê²ƒë„ ì•„ë‹ˆì—ˆë‹¤. 서로 소중히 여기는 마ìŒë„ 있었다. ì•„ë‚´ê°€ ì•ˆì— ìžˆë‹¤ê³  ìƒê°í•˜ë©´ 마ìŒì´ 든든하고 ë˜ ì•„ë‚´ì˜ ë§ì— ì˜í•˜ê±´ëŒ€ ë‚´ê°€ ì‚¬ëž‘ì— ìžˆê±°ë‹ˆ 하면 마ìŒì´ 든든하다고 한다. -우리 ë¶€ì²˜ì˜ ê´€ê³„ëŠ” ì´ëŸ¬í•œ 관계다. -나는 한 ë°©ì—서 í˜¼ìž ìž ì„ ìžëŠ” ê²ƒì´ ìŠµê´€ì´ ë˜ì–´ì„œ 누가 ê³ì— 있으면 ìž ì´ ìž˜ 들지 아니하였다. 혹시 ì–´ë¦°ê²ƒë“¤ì´ ë§¤ë¥¼ 얻어맞고 사랑으로 í”¼ë‚œì„ ì™€ì„œ 울다가 ë‚´ ìžë¦¬ì—서 ìž ì´ ë“¤ë©´ 귀엽기는 ê·€ì—¬ì›Œë„ ìž ìžë¦¬ëŠ” 편안치 아니하였다. 나는 ì±…ì„ ë³´ê³  ê¸€ì„ ì“°ê³  ê³µìƒì„ 하고 있으면 족하였다. 내게는 아무 ì• ìš•ì  ìš”êµ¬ë„ ì—†ì—ˆë‹¤. ì´ê²ƒì€ ë‚´ ì •ë ¥ì´ ì‡ ëª¨í•œ 까닭ì¸ì§€ 모른다. -그러나 최ì„ì˜ íŽ¸ì§€ë¥¼ 본 ê·¸ ë‚  ë°¤ì—는 ë„무지 ìž ì´ ìž˜ 들지 아니하였다. 최ì„ì˜ íŽ¸ì§€ê°€ 최ì„ì˜ ê³ ë¯¼ì´ ë‚´ ì¡¸ë˜ ì˜ì‹ì— 무슨 ìžê·¹ì„ 준 듯하였다. ì ë§‰í•œ 듯하였다. 허전한 듯하였다. 무엇ì¸ì§€ 모르나 그리운 ê²ƒì´ ìžˆëŠ” 것 같았다. -"ì–´, ì´ê±° 안ë˜ì—ˆêµ°." -하고 나는 벌떡 ì¼ì–´ë‚˜ 담배를 피워 물었다. -"나으리 주무셔 곕시오?" -하고 ì•„ë²”ì´ ì „ë³´ë¥¼ 가지고 왔다. -"명조 경성 ì°© 남정임" -ì´ë¼ëŠ” 것ì´ì—ˆë‹¤. -"ì •ìž„ì´ê°€ 와?" -하고 나는 전보를 다시 ì½ì—ˆë‹¤. -최ì„ì˜ ê·¸ 편지를 ë³´ë©´ ìµœì„ ë¶€ì¸ì—게는 ì–´ë–¤ ë°˜ì‘ì´ ì¼ì–´ë‚˜ê³  ì •ìž„ì—게는 ì–´ë–¤ ë°˜ì‘ì´ ì¼ì–´ë‚ ê¹Œ, 하고 ìƒê°í•˜ë©´ ìžëª» 마ìŒì´ 편하지 못하였다. -ì´íŠ¿ë‚  ì•„ì¹¨ì— ë‚˜ëŠ” 부산서 오는 차를 맞으려고 정거장ì—를 나갔다. -차는 ì œ ì‹œê°„ì— ë“¤ì–´ì™”ë‹¤. ë‚¨ì •ìž„ì€ ìŠˆíŠ¸ì¼€ì´ìФ 하나를 들고 ì°¨ì—서 내렸다. ê²€ì€ ì™¸íˆ¬ì— ê²€ì€ ëª¨ìžë¥¼ ì“´ ê·¸ì˜ ì–¼êµ´ì€ ë”ìš± 해쓱해 보였다. -"ì„ ìƒë‹˜!" -하고 ì •ìž„ì€ ë‚˜ë¥¼ ë³´ê³  ì†ì— ë“¤ì—ˆë˜ ì§ì„ ë•…ë°”ë‹¥ì— ë‚´ë ¤ë†“ê³ , ë‚´ 앞으로 왔다. -"í’ëž‘ì´ë‚˜ 없었나?" -하고 나는 ë‚´ ì†ì— 잡힌 ì •ìž„ì˜ ì†ì´ 싸늘한 ê²ƒì„ ê·¼ì‹¬í•˜ì˜€ë‹¤. -"네. 아주 잔잔했습니다. ì €ê°™ì´ ì•½í•œ ì‚¬ëžŒë„ ë°–ì— ë‚˜ì™€ì„œ 바다 경치를 구경하였습니다." -하고 ì •ìž„ì€ ì‚¬êµì ì¸ 웃ìŒì„ 웃었다. 그러나 ê·¸ì˜ ëˆˆì—는 ëˆˆë¬¼ì´ ìžˆëŠ” 것 같았다. -"최 ì„ ìƒë‹˜ ì–´ë”” 계신지 아세요?" -하고 ì •ìž„ì€ ë‚˜ë¥¼ ë”°ë¼ ì„œë©´ì„œ 물었다. -"ë‚˜ë„ ì§€ê¸ˆê¹Œì§€ 몰ëžëŠ”ë° ì–´ì œ 편지를 하나 받았지." -하는 ê²ƒì´ ë‚´ 대답ì´ì—ˆë‹¤. -"네? 편지 받으셨어요? ì–´ë”” 계십니까?" -하고 ì •ìž„ì€ ê±¸ìŒì„ 멈추었다. -"ë‚˜ë„ ëª°ë¼." -하고 ë‚˜ë„ ì •ìž„ê³¼ ê°™ì´ ê±¸ìŒì„ 멈추고, -"ê·¸ 편지를 ì“´ ê³³ë„ ì•Œê³  부친 ê³³ë„ ì•Œì§€ë§ˆëŠ” 지금 어디로 갔는지 ê·¸ê²ƒì€ ëª¨ë¥´ì§€. ì°¾ì„ ìƒê°ë„ ë§ê³  편지할 ìƒê°ë„ ë§ë¼ê³  했으니까." -하고 사실대로 대답하였다. -"어디야요? ê·¸ 편지 부치신 ê³³ì´ ì–´ë””ì•¼ìš”? ì € ì´ ì°¨ë¡œ ë”°ë¼ê°ˆ 테야요." -하고 ì •ìž„ì€ ì¡°ê¸‰í•˜ì˜€ë‹¤. -"ê°ˆ 때ì—는 ê°€ë”ë¼ë„ ì´ ì°¨ì—야 ê°ˆ 수가 있나." -하고 나는 겨우 ì •ìž„ì„ ëŒê³  들어왔다. -ì •ìž„ì„ ì§‘ìœ¼ë¡œ ë°ë¦¬ê³  와서 대강 ë§ì„ 하고, ì´íŠ¿ë‚  새벽 차로 떠난다는 것ì„, -"가만 있어. 어떻게 계íšì„ 세워 가지고 해야지." -하여 가까스로 붙들어 놓았다. -ì•„ì¹¨ì„ ë¨¹ê³  나서 ìµœì„ ì§‘ì—를 ê°€ 보려고 í•  즈ìŒì— 순임ì´ê°€ 와서 마루 ëì— ì„  채로, -"ì„ ìƒë‹˜, 어머니가 ìž ê¹ë§Œ 오십시사구요." -하였다. -"ì •ìž„ì´ê°€ 왔다." -하고 ë‚´ê°€ 그러니까, -"ì •ìž„ì´ê°€ìš”?" -하고 ìˆœìž„ì€ ê¹œì§ ë†€ë¼ë©´ì„œ, -"ì •ìž„ì´ëŠ” 아버지 계신 ë°ë¥¼ 알아요?" -하고 물었다. -"ì •ìž„ì´ë„ 모른단다. 너 아버지는 ì‹œë² ë¦¬ì•„ì— ê³„ì‹œê³  ì •ìž„ì´ëŠ” ë™ê²½ 있다가 ì™”ëŠ”ë° ì•Œ 리가 있니?" -하고 나는 ìˆœìž„ì˜ ìƒê°ì„ 깨뜨리려 하였다. 순임ì€, -"ì •ìž„ì´ê°€ ì–´ë”” 있어요?" -하고 방들 있는 ê³³ì„ ë‘˜ëŸ¬ë³´ë©°, -"언제 왔어요?" -하고는 그제야 ì •ìž„ì—게 대한 반가운 ì •ì´ ë°œí•˜ëŠ” 듯ì´, -"정임아!" -하고 불러 본다. -"언니요? 여기 있수." -하고 ì •ìž„ì´ê°€ 머릿방 ë¬¸ì„ ì—´ê³  ì˜·ì„ ê°ˆì•„ìž…ë˜ ì±„ë¡œ 고개를 내어민다. -ìˆœìž„ì€ êµ¬ë‘를 ì°¨ë‚´ë²„ë¦¬ë“¯ì´ ë²—ì–´ 놓고 ì •ìž„ì˜ ë°©ìœ¼ë¡œ 뛰어들어간다. -나는 최ì„ì˜ ì§‘ì—를 ê°€ëŠë¼ê³  외투를 ìž…ê³  모ìžë¥¼ ì“°ê³  ì •ìž„ì˜ ë°©ë¬¸ì„ ì—´ì–´ 보았다. ë‘ ì²˜ë…€ëŠ” 울고 있었다. -"ì •ìž„ì´ë„ 가지. 아주머니 뵈러 안 ê°€?" -하고 나는 ì •ìž„ì„ ìž¬ì´‰í•˜ì˜€ë‹¤. -"ì„ ìƒë‹˜ 먼저 ê°€ 계셔요." -하고 순임ì´ê°€ ëˆˆë¬¼ì„ ì”»ê³  ì¼ì–´ë‚˜ë©´ì„œ, -"ì´ë”°ê°€ 제가 ì •ìž„ì´í—ˆêµ¬ 갑니다." -하고 내게 ëˆˆì„ ë”ì©ê±°ë ¤ 보였다. ê°‘ìžê¸° ì •ìž„ì´ê°€ 가면 어머니와 ì •ìž„ì´ì™€ 사ì´ì— 어떠한 íŒŒëž€ì´ ì¼ì–´ë‚˜ì§€ë‚˜ 아니할까 하고 순임ì´ê°€ 염려하는 것ì´ì—ˆë‹¤. ìˆœìž„ë„ ì¸ì œëŠ” 노성하여졌다고 나는 ìƒê°í•˜ì˜€ë‹¤. -"ì„ ìƒë‹˜ ì´ íŽ¸ì§€ê°€ 다 ì°¸ë§ì¼ê¹Œìš”?" -하고 나를 보는 길로 ìµœì„ ë¶€ì¸ì´ 물었다. ìµœì„ ë¶€ì¸ì€ 히스테리를 ì¼ìœ¼í‚¨ 사람 모양으로 머리와 ì†ì„ 떨었다. -나는 ì°¸ë§ì´ëƒ 하는 ê²ƒì´ ë¬´ì—‡ì„ ê°€ë¦¬í‚¤ëŠ” ë§ì¸ì§€ 분명하지 아니하여서, -"ë…¸ì„ì´ ê±°ì§“ë§í•  사람입니까?" -하고 대체론으로 대답하였다. -"앉으십쇼. 앉으시란 ë§ì”€ë„ 안 하고." -하고 ë¶€ì¸ì€ 침착한 ëª¨ì–‘ì„ ë³´ì´ë ¤ê³  빙그레 웃었으나, ê·¸ê²ƒì€ ì‹¤íŒ¨ì˜€ë‹¤. -"그게 ì°¸ë§ì¼ê¹Œìš”? ì •ìž„ì´ê°€ 아기를 ë—€ ê²ƒì´ ì•„ë‹ˆë¼, íê°€ 나빠서 피를 토하고 ìž…ì›í•˜ì˜€ë‹¤ëŠ” 것ì´?" -하고 ë¶€ì¸ì€ 중대하다는 í‘œì •ì„ ê°€ì§€ê³  묻는다. -"그럼 ê·¸ê²ƒì´ ì°¸ë§ì´ 아니구요. ì•„ì§ë„ 그런 ì˜ì‹¬ì„ 가지고 계십니까. ì •ìž„ì´ì™€ 한 ë°©ì— ìžˆëŠ” í•™ìƒì´ 모함한 것ì´ë¼ê³  안 그랬어요? 그게 ë§ì´ ë©ë‹ˆê¹Œ." -하고 ì–¸ì„±ì„ ë†’ì—¬ì„œ 대답하였다. -"그럼 왜 ì •ìž„ì´ê°€ 호텔ì—서 왜 아버지한테 한 번 안아 달ë¼ê³  그래요? ê·¸ íŽ¸ì§€ì— ì“´ 대로 한 번 안아만 보았ì„까요?" -ì´ê²ƒì€ ë¶€ì¸ì˜ 둘째 물ìŒì´ì—ˆë‹¤. -"나는 ê·¸ë¿ì´ë¼ê³  믿습니다. ê·¸ê²ƒì´ ë„리어 깨ë—하다는 표ë¼ê³  믿습니다. 안 그렇습니까?" -하고 나는 딱하다는 í‘œì •ì„ í•˜ì˜€ë‹¤. -"글쎄요." -하고 ë¶€ì¸ì€ 한참ì´ë‚˜ ìƒê°í•˜ê³  있다가, -"ì •ë§ ì•  아버지가 í˜¼ìž ë‹¬ì•„ë‚¬ì„까요? ì •ìž„ì´ë¥¼ ë°ë¦¬ê³  가케오치한 ê²ƒì´ ì•„ë‹ê¹Œìš”? ê¼­ ê·¸ëž¬ì„ ê²ƒë§Œ ê°™ì€ë°." -하고 ë¶€ì¸ì€ 괴로운 í‘œì •ì„ ê°ì¶”려는 ë“¯ì´ ê³ ê°œë¥¼ 숙ì¸ë‹¤. -나는 남편ì—게 대한 ì•„ë‚´ì˜ ì˜ì‹¬ì´ 어떻게 깊ì€ê°€ì— 아니 놀랄 수가 없어서, -"í—ˆ." -하고 한 마디 웃고, -"그렇게 수십 ë…„ ë™ì•ˆ 부부 ìƒí™œì„ í•˜ì‹œê³ ë„ ê·¸ë ‡ê²Œ ë…¸ì„ì˜ ì¸ê²©ì„ ëª°ë¼ ì£¼ì‹­ë‹ˆê¹Œ. 나는 ë¶€ì¸ê»˜ì„œ 하시는 ë§ì”€ì´ 부러 하시는 ë†ë‹´ìœ¼ë¡œë°–ì— ì•„ë‹ˆ 들립니다. ì •ìž„ì´ê°€ 지금 서울 있습니다." -하고 ë˜ í•œ 번 웃었다. ì •ë§ ê¸°ë§‰ížŒ 웃ìŒì´ì—ˆë‹¤. -"ì •ìž„ì´ê°€ 서울 있어요?" -하고 ë¶€ì¸ì€ íŽ„ì© ë›°ë©´ì„œ, -"ì–´ë”” 있다가 언제 왔습니까? 그게 ì •ë§ìž…니까?" -하고 ì˜ì•„한 ë¹›ì„ ë³´ì¸ë‹¤. ê¼­ 최ì„ì´í•˜ê³  함께 ë‹¬ì•„ë‚¬ì„ ì •ìž„ì´ê°€ ì„œìš¸ì— ìžˆì„ ë¦¬ê°€ 없는 것ì´ì—ˆë‹¤. -"ë™ê²½ì„œ 오늘 ì•„ì¹¨ì— ì™”ìŠµë‹ˆë‹¤. 지금 우리 ì§‘ì—서 순임ì´í—ˆêµ¬ ì´ì•¼ê¸°ë¥¼ 하고 있으니까 조금 있으면 뵈오러 올 것입니다." -하고 나는 ì •ìž„ì´ê°€ 분명히 서울 있는 ê²ƒì„ ì¼ì¼ì´ ì¦ê±°ë¥¼ 들어서 ì¦ëª…하였다. 그리고 우스운 ê²ƒì„ ì†ìœ¼ë¡œ 참았다. 그러나 ë‹¤ìŒ ìˆœê°„ì—는 ì´ ë³‘ë“¤ê³  ëŠ™ì€ ì•„ë‚´ì˜ ì§ˆíˆ¬ì™€ ì˜ì‹¬ìœ¼ë¡œ 괴로워서 ëœëœëœëœ 떨고 앉았는 ê²ƒì„ ê°€ì—¾ê²Œ ìƒê°í•˜ì˜€ë‹¤. -ì •ìž„ì´ê°€ 지금 ì„œìš¸ì— ìžˆëŠ” ê²ƒì´ ë” ì˜ì‹¬í•  여지가 없는 ì‚¬ì‹¤ìž„ì´ íŒëª…ë˜ë§¤, ë¶€ì¸ì€ ë„리어 ë‚™ë§í•˜ëŠ” 듯하였다. 그가 ì œ 마ìŒëŒ€ë¡œ 그려 놓고 믿고 í•˜ë˜ ëª¨ë“  ì² í•™ì˜ ê³„í†µì´ ë¬´ë„ˆì§„ 것ì´ì—ˆë‹¤. -한참ì´ë‚˜ í©ì–´ì§„ ì •ì‹ ì„ ëª» 수습하는 ë“¯ì´ ì•‰ì•„ 있ë”니 아주 기운 없는 어조로, -"ì„ ìƒë‹˜ ì•  아버지가 ì •ë§ ì£½ì„까요? ì •ë§ ì˜ì˜ ì§‘ì—를 안 ëŒì•„올까요?" -하고 묻는다. ê·¸ 눈ì—는 ë²Œì¨ ëˆˆë¬¼ì´ ì–´ë¦¬ì—ˆë‹¤. -"글쎄요. ë‚´ ìƒê° 같아서는 다시는 ì§‘ì— ëŒì•„오지 아니할 것 같습니다. ë˜ ê·¸ë§Œì¹˜ ë§ì‹ ì„ 했으니, ì´ì œ 무슨 낯으로 ëŒì•„옵니까. ë‚´ë¼ë„ 다시 ì§‘ì— ëŒì•„올 ìƒê°ì€ 아니 내겠습니다." -하고 나는 ì˜ì‹ì ìœ¼ë¡œ ì•…ì˜ë¥¼ 가지고 ë¶€ì¸ì˜ ê°€ìŠ´ì— ì¹¼ì„ í•˜ë‚˜ 박았다. -ê·¸ ì¹¼ì€ ë¶„ëª…ížˆ ë¶€ì¸ì˜ ê°€ìŠ´ì— ì•„í”„ê²Œ 박힌 모양ì´ì—ˆë‹¤. -"ì„ ìƒë‹˜. 어떡하면 좋습니까. ì•  아버지가 죽지 않게 í•´ 주세요. 그렇지 ì•Šì•„ë„ ìˆœìž„ì´ë…„ì´ ì œê°€ ê±” 아버지를 달아나게나 한 것처럼 ì›ë§ì„ 하는ë°ìš”. 그러다가 ì •ë…• 죽으면 어떻게 합니까. ì œì¼ ë”´ ìžì‹ë“¤ì˜ ì›ë§ì„ 들ì„ê¹Œë´ ê²ì´ 납니다. ì„ ìƒë‹˜, 어떻게 ì•  아버지를 붙들어다 주세요." -하고 마침내 ì°¸ì„ ìˆ˜ ì—†ì´ ìš¸ì—ˆë‹¤. ë§ì€ ë¹„ë¡ ìžì‹ë“¤ì˜ ì›ë§ì´ ë‘렵다고 하지마는 ì§ˆíˆ¬ì˜ ê°ì •ì´ ìŠ¤ëŸ¬ì§ˆ ë•Œì— ê·¸ì—게는 남편ì—게 대한 ì•„ë‚´ì˜ ì• ì •ì´ ë§‰í˜”ë˜ ë¬¼ê³¼ ê°™ì´ í„°ì ¸ 나온 것ì´ë¼ê³  나는 í•´ì„하였다. -"글쎄, ì–´ë”” 있는 줄 알고 찾습니까. ë…¸ì„ì˜ ì„±ë¯¸ì— í•œë²ˆ 아니 한다고 했으면 다시 편지할 리는 만무하다고 믿습니다." -하여 나는 ë¶€ì¸ì˜ ê°€ìŠ´ì— ë‘˜ì§¸ ì¹¼ë‚ ì„ ë°•ì•˜ë‹¤. -나는 ë¹„ë¡ ìµœì„ì˜ ë¶€ì¸ì´ 청하지 아니하ë”ë¼ë„ 최ì„ì„ ì°¾ìœ¼ëŸ¬ 떠나지 아니하면 아니 ë  ì˜ë¬´ë¥¼ 진다. ì‚° 최ì„ì„ ëª» ì°¾ë”ë¼ë„ 최ì„ì˜ ì‹œì²´ë¼ë„, 무ë¤ì´ë¼ë„, ì£½ì€ ìžë¦¬ë¼ë„, 마지막 ìžˆë˜ ê³³ì´ë¼ë„ 찾아보지 아니하면 아니 ë  ì˜ë¬´ë¥¼ 깨닫는다. -그러나 ì‹œêµ­ì´ ë³€í•˜ì—¬ ê·¸ 때ì—는 ì•„ë¼ì‚¬ì— 가는 ê²ƒì€ ì—¬ê°„ 곤란한 ì¼ì´ 아니었다. ê·¸ 때ì—는 ë¶ë§Œì˜ í’ìš´ì´ ê¸‰ë°•í•˜ì—¬ 만주리를 통과하기는 ì‚¬ì‹¤ìƒ ë¶ˆê°€ëŠ¥ì— ê°€ê¹Œì› ë‹¤. 마ì ì‚°(馬å å±±) ì¼íŒŒì˜ 군대가 í¥ì•ˆë ¹, 하ì¼ë¼ë¥´ ë“±ì§€ì— ì›…ê±°í•˜ì—¬ 언제 대충ëŒì´ í­ë°œë ëŠ”ì§€ ëª¨ë¥´ë˜ ë•Œì˜€ë‹¤. ì´ ë•Œë¬¸ì— ì‹œë² ë¦¬ì•„ì— ë“¤ì–´ê°€ê¸°ëŠ” ê±°ì˜ ì ˆë§ ìƒíƒœë¼ê³  하겠고, ë˜ ê´€í—Œë„ ì•„ë¼ì‚¬ì— 들어가는 ì—¬í–‰ê¶Œì„ ìž˜ êµë¶€í•  것 같지 아니하였다. -ë¶€ì¸ì€ 울고, 나는 ì´ëŸ° ìƒê° 저런 ìƒê° 하고 있는 ë™ì•ˆì— 문 ë°–ì—는 순임ì´, ì •ìž„ì´ê°€ 들어오는 소리가 들렸다. -"ì•„ì´, ì •ìž„ì´ëƒ." -하고 ë¶€ì¸ì€ 반갑게 허리 굽혀 ì¸ì‚¬í•˜ëŠ” ì •ìž„ì˜ ì–´ê¹¨ì— ì†ì„ 대고, -"ìž ì•‰ì•„ë¼. 그래 ì¸ì œ ë³‘ì´ ì¢€ 나으ëƒâ€¦â€¦ 수척했구나. ë” ë…¸ì„±í•´ì§€êµ¬ ë°˜ ë…„ë„ ëª» ë˜ì—ˆëŠ”ë°." -하고 ì •ìž„ì—게 대하여 ì• ì •ì„ í‘œí•˜ëŠ” ê²ƒì„ ë³´ê³  나는 ì˜ì™¸ì§€ë§ˆëŠ” 다행으로 ìƒê°í•˜ì˜€ë‹¤. 나는 ì •ìž„ì´ê°€ 오면 보기 ì‹«ì€ í•œ ì‹ ì„ ì—°ì¶œí•˜ì§€ 않나 하고 ê·¼ì‹¬í•˜ì˜€ë˜ ê²ƒì´ë‹¤. -"í¬ ìž˜ ìžë¼ìš”?" -하고 ì •ìž„ì€ í•œì°¸ì´ë‚˜ 있다가 비로소 ìž…ì„ ì—´ì—ˆë‹¤. -"ì‘, 잘 있단다. 컸나 ê°€ ë³´ì•„ë¼." -하고 ë¶€ì¸ì€ ë”ìš± 반가운 í‘œì •ì„ ë³´ì¸ë‹¤. -"ì–´ëŠ ë°©ì´ì•¼?" -하고 ì •ìž„ì€ ì„ ë¬¼ ë³´í‰ì´ë¥¼ 들고 순임과 함께 나가 버린다. ì—¬ìžì¸ ì •ìž„ì€ í¬ì™€ 순임과 ë¶€ì¸ê³¼ ë˜ ìˆœìž„ì˜ ë‹¤ë¥¸ ë™ìƒì—게 선물 사 오는 ê²ƒì„ ìžŠì–´ë²„ë¦¬ì§€ 아니하였다. -정임과 ìˆœìž„ì€ í•œ ì´ì‚¼ ë¶„ 있다가 ëŒì•„왔다. ë°–ì—서 í¬ê°€ 무엇ì´ë¼ê³  지절대는 소리가 들린다. 아마 ì •ìž„ì´ê°€ 사다 준 ì„ ë¬¼ì„ ë°›ê³  좋아하는 모양ì´ë‹¤. -ì •ìž„ì€ ë“¤ê³  온 ë³´í‰ì´ì—서 ì—¬ìžìš© 배스로브 하나를 내어서 ë¶€ì¸ì—게주며, -"맞으실까?" -하였다. -"ì•„ì´ ê·¸ê±´ 무어ë¼ê³  사 왔니?" -하고 ë¶€ì¸ì€ 좋아ë¼ê³  ìž…ì–´ ë³´ê³ , ì´ë¦¬ ë³´ê³  저리 ë³´ê³  하면서, -"난 ì´ëŸ° ê±° ì²˜ìŒ ìž…ì–´ 본다." -하고 ìžê¾¸ ëˆì„ ë™ì—¬ë§¨ë‹¤. -"ì •ìž„ì´ê°€ 난 파ìžë§ˆë¥¼ 사다 주었어." -하고 ìˆœìž„ì€ ë”°ë¡œ ìŒŒë˜ êµµì€ ì¤„ 있는 융 파ìžë§ˆë¥¼ 내어서 경매장 사람 모양으로 í”들어 ë³´ì´ë©°, -"어머니 ê·¸ 배스로브 나 주우. 어머닌 늙ì€ì´ê°€ 그건 입어서 무엇 하우?" -하고 ë¶€ì¸ì´ ìž…ì€ ë°°ìŠ¤ë¡œë¸Œë¥¼ 벗겨서 제가 ìž…ê³  ë‘ í˜¸ì£¼ë¨¸ë‹ˆì— ì†ì„ 넣고 어기죽어기죽하고 서양 ë¶€ì¸ë„¤ í‰ë‚´ë¥¼ 낸다. -"저런 ë§ê´„량ì´ê°€ ë„ˆë„ ì •ìž„ì´ì²˜ëŸ¼ 좀 얌전해 ë³´ì•„ë¼." -하고 ë¶€ì¸ì€ ìˆœìž„ì„ í–¥í•˜ì—¬ ëˆˆì„ í˜ê¸´ë‹¤. -ì´ ëª¨ì–‘ìœ¼ë¡œ ë¶€ì¸ê³¼ ì •ìž„ê³¼ì˜ ëŒ€ë©´ì€ ê°€ìž¥ ì›ë§Œí•˜ê²Œ ë˜ì—ˆë‹¤. -그러나 ë¶€ì¸ì€ ì •ìž„ì—게 최ì„ì˜ íŽ¸ì§€ë¥¼ ë³´ì´ê¸°ë¥¼ ì›ì¹˜ 아니하였다. 편지가 왔다는 ë§ì¡°ì°¨ ìž… ë°–ì— ë‚´ì§€ 아니하였다. 그러나 순임ì´ê°€ ì •ìž„ì—게 대하여 표하는 ì• ì •ì€ ì—¬ê°„ 깊지 아니하였다. ê·¸ ë‘˜ì€ í•˜ë£¨ ì¢…ì¼ ê°™ì´ ìžˆì—ˆë‹¤. ì •ìž„ì€ ê·¸ ë‚  ì €ë…ì— ë‚˜ë¥¼ ë³´ê³ , -"순임ì´í—Œí…Œ 최 ì„ ìƒë‹˜ 편지 ì‚¬ì—°ì€ ë‹¤ 들었어요. 순임ì´ê°€ ê·¸ 편지를 í›”ì³ë‹¤ê°€ 얼른얼른 몇 êµ°ë° ì½ì–´ë„ 보았습니다. 순임ì´ê°€ 저를 í½ ë™ì •하면서 ì ˆë”러 최 ì„ ìƒì„ ë”°ë¼ê°€ ë³´ë¼ê³  그래요. í˜¼ìž ê°€ê¸°ê°€ 어려우면 ìžê¸°í—ˆêµ¬ ê°™ì´ ê°€ìžê³ . 가서 최 ì„ ìƒì„ ë°ë¦¬ê³  오ìžê³ . 어머니가 못 가게 하거든 몰래 ë‘˜ì´ ë„ë§í•´ ê°€ìžê³ . 그래서 그러ìžê³  그랬습니다. 안ë지요. ì„ ìƒë‹˜?" -하고 ì €í¬ë¼ë¦¬ ìž‘ì •ì€ ë‹¤ í•´ 놓고는 ìŠ¬ì© ë‚´ ì˜í–¥ì„ 물었다. -"ì Šì€ ì—¬ìž ë‹¨ë‘˜ì´ì„œ 먼 ì—¬í–‰ì„ ì–´ë–»ê²Œ 한단 ë§ì´ëƒ? 게다가 지금 ë¶ë§Œì£¼ 형세가 대단히 위급한 모양ì¸ë°. ë˜ ì •ìž„ì´ëŠ” ê·¸ ê±´ê°• 가지고 어디를 ê°€, ì´ ì¶”ìš´ 겨울ì—?" -하고 나는 ì´ëŸ° ë§ì´ 다 쓸ë°ì—†ëŠ” ë§ì¸ 줄 ì•Œë©´ì„œë„ ì–´ë¥¸ìœ¼ë¡œì„œ 한 마디 안 í•  수 없어서 하였다. ì •ìž„ì€ ë” ì œ ëœ»ì„ ì£¼ìž¥í•˜ì§€ë„ ì•„ë‹ˆí•˜ì˜€ë‹¤. -ê·¸ ë‚  ì €ë…ì— ì •ìž„ì€ ìˆœìž„ì˜ ì§‘ì—서 잤는지 ì§‘ì— ì˜¤ì§€ë¥¼ 아니하였다. -나는 ì´ ì¼ì„ 어찌하면 좋ì€ê°€, ì´ ë‘ ì—¬ìžì˜ í–‰ë™ì„ 어찌하면 좋ì€ê°€ 하고 í˜¼ìž ë™ë™ ìƒê°í•˜ê³  있었다. -ì´íŠ¿ë‚  나는 ê¶ê¸ˆí•´ì„œ 최ì„ì˜ ì§‘ì—를 ê°”ë”니 ë¶€ì¸ì´, -"우리 ìˆœìž„ì´ ëŒì— 갔어요?" -하고 ì˜ì™¸ì˜ ì§ˆë¬¸ì„ í•˜ì˜€ë‹¤. -"아니오." -하고 나는 놀ëžë‹¤. -"그럼, ì´ê²ƒë“¤ì´ 어딜 갔어요? 난 ì •ìž„ì´í—ˆêµ¬ ëŒì—서 ìž” 줄만 알았는ë°." -하고 ë¶€ì¸ì€ 무슨 불길한 것ì´ë‚˜ 본 ë“¯ì´ ëª¸ì„ ë–¤ë‹¤. 히스테리가 ì¼ì–´ë‚œ 것ì´ì—ˆë‹¤. -나는 ìž…ë§›ì„ ë‹¤ì‹œì—ˆë‹¤. 분명히 ì´ ë‘ ì—¬ìžê°€ 시베리아를 향하고 떠났구나 하였다. -ê·¸ ë‚ ì€ ì†Œì‹ì´ ì—†ì´ ì§€ë‚¬ë‹¤. ê·¸ ì´íŠ¿ë‚ ë„ ì†Œì‹ì´ ì—†ì´ ì§€ë‚¬ë‹¤. -ìµœì„ ë¶€ì¸ì€ 딸까지 잃어버리고 미친 ë“¯ì´ ìš¸ê³  애통하다가 머리를 싸매고 누워 버리고 ë§ì•˜ë‹¤. -ì •ìž„ì´ì™€ 순임ì´ê°€ 없어진 ì§€ ì‚¬í˜ ë§Œì— ì•„ì¹¨ ìš°íŽ¸ì— íŽ¸ì§€ 한 ìž¥ì„ ë°›ì•˜ë‹¤. ê·¸ 봉투는 봉천 ì•¼ë§ˆë„ í˜¸í…” 것ì´ì—ˆë‹¤. ê·¸ ì†ì—는 편지 ë‘ ìž¥ì´ ë“¤ì–´ 있었다. 한 ìž¥ì€ , -ì„ ìƒë‹˜! 저는 아버지를 위하여, ì •ìž„ì„ ìœ„í•˜ì—¬ 정임과 ê°™ì´ ì§‘ì„ ë– ë‚¬ìŠµë‹ˆë‹¤. -어머님께서 슬í¼í•˜ì‹¤ ì¤„ì€ ì•Œì§€ë§ˆëŠ” ì €í¬ë“¤ì´ 다행히 아버지를 찾아서 모시고 오면 ì–´ë¨¸ë‹ˆê»˜ì„œë„ ê¸°ë»í•˜ì‹¤ ê²ƒì„ ë¯¿ìŠµë‹ˆë‹¤. ì €í¬ë“¤ì´ 가지 아니하고는 아버지는 살아서 ëŒì•„오실 것 같지 아니합니다. 아버지를 ì´ì²˜ëŸ¼ 불행하시게 한 죄는 ì ˆë°˜ì€ ì–´ë¨¸ë‹ˆê»˜ 있고, ì ˆë°˜ì€ ì œê²Œ 있습니다. 저는 아버지 ì¼ì„ ìƒê°í•˜ë©´ ê°€ìŠ´ì´ ë¯¸ì–´ì§€ê³  ì´ê°€ 갈립니다. 저는 아무리 해서ë¼ë„ 아버지를 찾아내어야겠습니다. -저는 ì •ìž„ì„ ë¬´í•œížˆ ë™ì •합니다. 저는 어려서 ì •ìž„ì„ ë¯¸ì›Œí•˜ê³  아버지를 미워하였지마는 ì§€ê¸ˆì€ ì•„ë²„ì§€ì˜ ë§ˆìŒê³¼ ì •ìž„ì˜ ë§ˆìŒì„ 알아볼 만치 ìžëžìŠµë‹ˆë‹¤. -ì„ ìƒë‹˜! ì €í¬ë“¤ì€ ë‘˜ì´ ì†ì„ 잡고 어디를 가서든지 아버지를 찾아내겠습니다. í•˜ë‚˜ë‹˜ì˜ ì‚¬ìžê°€ ë‚®ì—는 êµ¬ë¦„ì´ ë˜ê³  ë°¤ì—는 ë³„ì´ ë˜ì–´ì„œ 반드시 ì €í¬ë“¤ì˜ ì•žê¸¸ì„ ì¸ë„í•  줄 믿습니다. -ì„ ìƒë‹˜, ì €í¬ ì–´ë¦°ê²ƒë“¤ì˜ ëœ»ì„ ë¶ˆìŒížˆ 여기셔서 ëˆ ì²œ ì›ë§Œ 전보로 ë³´ë‚´ 주시기를 ë°”ëžë‹ˆë‹¤. -ë§Œì¼ ë§Œì£¼ë¦¬ë¡œ 가는 ê¸¸ì´ ëŠì–´ì§€ë©´ 몽고로 ìžë™ì°¨ë¡œë¼ë„ 가려고 합니다. 아버지 íŽ¸ì§€ì— ì ížŒ Fì—­ì˜ R씨를 찾고, 그리고 ë°”ì´ì¹¼ í˜¸ë°˜ì˜ ë°”ì´ì¹¼ë¦¬ìŠ¤ì½”ì—를 찾아, ì´ ëª¨ì–‘ìœ¼ë¡œ 찾으면 반드시 아버지를 찾아 내고야 ë§ ê²ƒì„ ë¯¿ìŠµë‹ˆë‹¤. -ì„ ìƒë‹˜, ëˆ ì²œ ì›ë§Œ 봉천 ì•¼ë§ˆë„ í˜¸í…” 최순임 ì´ë¦„으로 ë¶€ì³ ì£¼ì„¸ìš”. 그리고 어머니헌테는 ì•„ì§ ë§ì”€ ë§ì•„ 주세요. -ì„ ìƒë‹˜. ì´ë ‡ê²Œ 걱정하시게 해서 미안합니다. 용서하세요. -순임 ìƒì„œ -ì´ë ‡ê²Œ ì¨ ìžˆë‹¤. ë˜ í•œ 장ì—는, -ì„ ìƒë‹˜! 저는 마침내 ëŒì•„오지 못할 ê¸¸ì„ ë– ë‚˜ë‚˜ì´ë‹¤. 어디든지 최 ì„ ìƒë‹˜ì„ 뵈옵는 ê³³ì—서 ì´ ëª¸ì„ ë¬»ì–´ 버리려 하나ì´ë‹¤. 지금 ë˜ ëª¸ì— ì—´ì´ ë‚˜ëŠ” 모양ì´ìš”, í˜ˆë‹´ë„ ë³´ì´ì˜¤ë‚˜ 최 ì„ ìƒì„ 뵈올 때까지는 아무리 하여서ë¼ë„ ì´ ëª©ìˆ¨ì„ ë¶€ì§€í•˜ë ¤ 하오며, 최 ì„ ìƒì„ 뵈옵고 제가 ì§„ ì€í˜œë¥¼ ê°ì‚¬í•˜ëŠ” 한 ë§ì”€ë§Œ 사뢰면 고대 ì£½ì‚¬ì™€ë„ ì—¬í•œì´ ì—†ì„까 하나ì´ë‹¤. -순임 언니가 제게 주시는 사랑과 ë™ì •ì€ ì˜¤ì§ ëˆˆë¬¼ê³¼ ê°ê²©ë°–ì— ë” í‘œí•  ë§ì”€ì´ 없나ì´ë‹¤. 순임 언니가 저를 보호하여 주니 마ìŒì´ 든든하여ì´ë‹¤â€¦â€¦. -ì´ë¼ê³  하였다. -편지를 보아야 별로 놀랄 ê²ƒì€ ì—†ì—ˆë‹¤. 다만 ë§ê´„량ì´ë¡œë§Œ ì•Œì•˜ë˜ ìˆœìž„ì˜ ì†ì— ì–´ëŠìƒˆì— 그러한 ê°ì •ì´ ë°œë‹¬í•˜ì˜€ë‚˜ 하는 ê²ƒì„ ë†€ëž„ ë¿ì´ì—ˆë‹¤. -그러나 ê±±ì •ì€ ì´ê²ƒì´ë‹¤. 순임ì´ë‚˜ ì •ìž„ì´ë‚˜ 다 ë‚´ê°€ ê°ë…해야 í•  ì²˜ì§€ì— ìžˆê±°ëŠ˜ ê·¸ë“¤ì´ ë§Œë¦¬ 긴 ì—¬í–‰ì„ ë– ë‚œë‹¤ê³  하니 ê°ë…ìžì¸ ë‚´ 태ë„를 어떻게 할까 하는 것ì´ë‹¤. -나는 편지를 받는 길로 ìš°ì„  ëˆ ì²œ ì›ì„ ì€í–‰ì— 가서 찾아다 놓았다. -ì•”ë§Œí•´ë„ ë‚´ê°€ ì„œìš¸ì— ê°€ë§Œížˆ 앉아서 ë‘ ì•„ì´ì—게 ëˆë§Œ ë¶€ì³ ì£¼ëŠ” ê²ƒì´ ì¸ì •ì— ì–´ê·¸ëŸ¬ì§€ëŠ” 것 같아서 나는 여러 가지로 ì£¼ì„ ì„ í•˜ì—¬ì„œ ì—¬í–‰ì˜ ì–‘í•´ë¥¼ 얻어 가지고 ë´‰ì²œì„ í–¥í•˜ì—¬ 떠났다. -ë‚´ê°€ ë´‰ì²œì— ë„착한 ê²ƒì€ ë°¤ 열시가 지나서였다. 순임과 ì •ìž„ì€ ìžë¦¬ì˜· 바람으로 ë‚´ 방으로 달려와서 반가워하였다. ê·¸ë“¤ì´ ë°˜ê°€ì›Œí•˜ëŠ” ì–‘ì€ ì‹¤ë¡œ ëˆˆë¬¼ì´ í를 만하였다. -"ì•„ì´êµ¬ ì„ ìƒë‹˜!" -"ì•„ì´êµ¬ 어쩌면!" -하는 ê²ƒì´ ê·¸ë“¤ì˜ ë‚´ê²Œ 대한 ì¸ì‚¬ì˜ 전부였다. -"ì •ìž„ì´ ì–´ë– ì˜¤?" -하고 나는 ìˆœìž„ì˜ íŽ¸ì§€ì— ì •ìž„ì´ê°€ ì—´ì´ ìžˆë‹¨ ë§ì„ ìƒê°í•˜ì˜€ë‹¤. -"무어요. 괜찮습니다." -하고 ì •ìž„ì€ ì›ƒì—ˆë‹¤. -ì „ë“±ë¹›ì— ë³´ì´ëŠ” ì •ìž„ì˜ ì–¼êµ´ì€ ê·¸ì•¼ë§ë¡œ 대리ì„으로 ê¹Žì€ ë“¯í•˜ì˜€ë‹¤. 여위고 í•기가 없는 ê²ƒì´ ë”ìš± ì •ìž„ì˜ ìš©ëª¨ì— ì—„ìˆ™í•œ ë§›ì„ ì£¼ì—ˆë‹¤. -"ëˆ ê°€ì ¸ì˜¤ì…¨ì–´ìš”?" -하고 순임ì´ê°€ 어리광 절반으로 묻다가 ë‚´ê°€ 웃고 ëŒ€ë‹µì´ ì—†ìŒì„ ë³´ê³ , -"우리를 붙들러 오셨어요?" -하고 성내는 ì–‘ì„ ë³´ì¸ë‹¤. -"그래 둘ì´ì„œë“¤ 간다니 어떻게 간단 ë§ì¸ê°€. 시베리아가 ì–´ë–¤ ê³³ì— ë¶™ì—ˆëŠ”ì§€ ì•Œì§€ë„ ëª»í•˜ë©´ì„œ." -하고 나는 ë‘ ì‚¬ëžŒì´ ê·¸ë¦¬ 슬í¼í•˜ì§€ 아니하는 ìˆœê°„ì„ ë³´ëŠ” ê²ƒì´ ë‹¤í–‰í•˜ì—¬ì„œ ë†ë‹´ì‚¼ì•„ 물었다. -"왜 몰ë¼ìš”? 시베리아가 저기 아니야요?" -하고 순임ì´ê°€ ì‚°í•´ê´€ ìª½ì„ ê°€ë¦¬í‚¤ë©°, -"ìš°ë¦¬ë„ ì§€ë¦¬ì—서 배워서 다 알아요. 어저께 하루 ì¢…ì¼ ì§€ë„를 사다 놓고 연구를 하였답니다. 봉천서 ì‹ ê²½, 신경서 하얼빈, 하얼빈ì—서 만주리, 만주리ì—서 ì´ë¥´ì¿ ì¸ í¬, 보세요, 잘 알지 않습니까. ë˜ ë§Œì¼ ì¤‘ë™ ì² ë„ê°€ 불통ì´ë©´ 어떻게 가는고 하니 여기서 ì‚°í•´ê´€ì„ ê°€ê³ , 산해관서 ë¶ê²½ì„ 가지요. 그리고는 ë¶ê²½ì„œ 장가구를 가지 않습니까. 장가구서 ìžë™ì°¨ë¥¼ 타고 몽고를 통과해서 가거든요. 잘 알지 않습니까." -하고 ì •ìž„ì˜ í—ˆë¦¬ë¥¼ 안으며, -"그렇지ì´?" -하고 ìžì‹  있는 ë“¯ì´ ì›ƒëŠ”ë‹¤. -"ë˜ ëª½ê³ ë¡œë„ ëª» 가게 ë˜ì–´ì„œ 구ë¼íŒŒë¥¼ ëŒê²Œ ë˜ë©´?" -하고 나는 êµì‚¬ê°€ ìƒë„ì—게 묻는 모양으로 물었다. -"네, ì € ì¸ë„양으로 해서 지중해로 해서 프랑스로 해서 그렇게 가지요." -"í—ˆ, 잘 아는구나." -하고 나는 웃었다. -"그렇게만 알아요? ë˜ í•´ì‚¼ìœ„ë¡œ 해서 가는 ê¸¸ë„ ì•Œì•„ìš”. ì €í¬ë¥¼ 어린애로 아시네." -"잘못했소." -"하하." -"후후." -사실 ê·¸ë“¤ì€ ë²Œì¨ ì–´ë¦°ì• ë“¤ì€ ì•„ë‹ˆì—ˆë‹¤. ìˆœìž„ë„ ë²Œì¨ ê·¸ ì•„ë²„ì§€ì˜ ë§í•  수 없는 ì‚¬ì •ì— ë™ì •í•  나ì´ê°€ ë˜ì—ˆë‹¤. 순임ì´ê°€ 기어다닌 ê²ƒì€ ë³¸ 나로는 ì´ê²ƒë„ ì´ìƒí•˜ê²Œ 보였다. 나는 ë²Œì¨ ë‚˜ì´ ë§Žì•˜êµ¬ë‚˜ 하는 ìƒê°ì´ 나지 아니할 수 없었다. -나는 ìž  안 드는 í•˜ë£»ë°¤ì„ ì§€ë‚´ë©´ì„œ 옆방ì—서 ì •ìž„ì´ê°€ ê¸°ì¹¨ì„ ì§“ëŠ” 소리를 들었다. ê·¸ 소리는 ë‚´ ê°€ìŠ´ì„ ì•„í”„ê²Œ 하였다. -ì´íŠ¿ë‚  나는 ë‘ ì‚¬ëžŒì—게 ëˆ ì²œ ì›ì„ 주어서 ì‹ ê²½ 가는 급행차를 태워 주었다. ëŒ€ë¥™ì˜ ì´ ê±´ì¡°í•˜ê³  추운 ê¸°í›„ì— ì •ìž„ì˜ ë³‘ë“  íê°€ 견디어 날까 하고 마ìŒì´ 놓ì´ì§€ 아니하였다. 그러나 나는 ê·¸ë“¤ì„ ê°€ë¼ê³  권할 수는 ìžˆì–´ë„ ê°€ì§€ ë§ë¼ê³  붙들 수는 없었다. 다만 ì œ 아버지, ì œ ì• ì¸ì„ 죽기 ì „ì— ë§Œë‚  수 있기만 빌 ë¿ì´ì—ˆë‹¤. -나는 ë‘ ì•„ì´ë¥¼ ë¶ìª½ìœ¼ë¡œ 떠나 ë³´ë‚´ê³  í˜¼ìž ì—¬ê´€ì— ë“¤ì–´ì™€ì„œ ë„무지 ì •ì‹ ì„ ì§„ì •í•˜ì§€ 못하여 ìˆ ì„ ë¨¹ê³  잊으려 하였다. 그러다가 ê·¸ ë‚  밤차로 서울로 ëŒì•„왔다. -ì´íŠ¿ë‚  ì•„ì¹¨ì— ë‚˜ëŠ” ìµœì„ ë¶€ì¸ì„ 찾아서 순임과 ì •ìž„ì´ê°€ 시베리아로 갔단 ë§ì„ 전하였다. -ê·¸ ë•Œì— ìµœ ë¶€ì¸ì€ ê±°ì˜ ì•„ë¬´ ì •ì‹ ì´ ì—†ëŠ” 듯하였다. 아무 ë§ë„ 하지 아니하고 울고만 있었다. -얼마 있다가 ë¶€ì¸ì€, -"ê·¸ê²ƒë“¤ì´ ì €í¬ë“¤ë¼ë¦¬ 가서 괜찮ì„까요?" -하는 한 마디를 í•  ë¿ì´ì—ˆë‹¤. -ë©°ì¹  í›„ì— ìˆœìž„ì—게서 편지가 왔다. ê·¸ê²ƒì€ í•˜ì–¼ë¹ˆì—서 부친 것ì´ì—ˆë‹¤. -í•˜ì–¼ë¹ˆì„ ì˜¤ëŠ˜ 떠납니다. í•˜ì–¼ë¹ˆì— ì™€ì„œ 아버지 친구 ë˜ì‹œëŠ” Rì†Œìž¥ì„ ë§Œë‚˜ëµˆì˜µê³  아버지 ì¼ì„ 물어 보았습니다. 그리고 ì €í¬ ë‘˜ì´ì„œ 찾아 떠났다는 ë§ì”€ì„ 하였ë”니 Rì†Œìž¥ì´ ëŒ€ë‹¨ížˆ ë™ì •하여서 ì—¬í–‰ê¶Œë„ ì¤€ë¹„í•´ 주시기로 ì €í¬ëŠ” 아버지를 찾아서 오늘 오후 모스í¬ë°” 가는 급행으로 떠납니다. 가다가 Fì—­ì— ë‚´ë¦¬ê¸°ëŠ” 어려울 듯합니다. ì •ìž„ì˜ ê±´ê°•ì´ ëŒ€ë‹¨ížˆ 좋지 못합니다. ì¼ê¸°ê°€ ê°‘ìžê¸° 추워지는 관계ì¸ì§€ ì •ìž„ì˜ ì‹ ì—´ì´ ì˜¤í›„ë©´ 삼십팔 ë„를 넘고 ê¸°ì¹¨ë„ ëŒ€ë‹¨í•©ë‹ˆë‹¤. 저는 염려가 ë˜ì–´ì„œ ì •ìž„ë”러 하얼빈ì—서 ìž…ì›í•˜ì—¬ 조리를 하ë¼ê³  권하였지마는 ë„무지 듣지를 아니합니다. 어디까지든지 가는 대로 가다가 ë” ëª» 가게 ë˜ë©´ ê·¸ ê³³ì—서 죽는다고 합니다. -저는 ê·¸ ë™ì•ˆ ë©°ì¹  정임과 ê°™ì´ ìžˆëŠ” ì¤‘ì— ì •ìž„ì´ê°€ 어떻게 아름답고 높고 굳세게 깨ë—한 ì—¬ìžì¸ ê²ƒì„ ë°œê²¬í•˜ì˜€ìŠµë‹ˆë‹¤. 저는 지금까지 ì •ìž„ì„ ëª°ë¼ë³¸ ê²ƒì„ ë¶€ë„럽게 ìƒê°í•©ë‹ˆë‹¤. 그리고 ë˜ ì œ 아버지께서 어떻게 갸륵한 어른ì´ì‹  ê²ƒì„ ì¸ì œì•¼ 깨달았습니다. ìžì‹ ëœ ì €ê¹Œì§€ë„ ì•„ë²„ì§€ì™€ ì •ìž„ê³¼ì˜ ê´€ê³„ë¥¼ ì˜ì‹¬í•˜ì˜€ìŠµë‹ˆë‹¤. ì˜ì‹¬í•˜ëŠ” 것보다는 세ìƒì—서 ë§í•˜ëŠ” 대로 믿고 있었습니다. 그러나 ì •ìž„ì„ ë§Œë‚˜ ë³´ê³  ì •ìž„ì˜ ë§ì„ 듣고 아버지께서 ì„ ìƒë‹˜ê»˜ 드린 편지가 ëª¨ë‘ ì°¸ì¸ ê²ƒì„ ê¹¨ë‹¬ì•˜ìŠµë‹ˆë‹¤. 아버지께서는 ì¹œêµ¬ì˜ ì˜ì§€ 없는 ë”¸ì¸ ì •ìž„ì„ ë‹¹ì‹ ì˜ ì¹œí˜ˆìœ¡ì¸ ì €ì™€ ê¼­ ê°™ì´ ì‚¬ëž‘í•˜ë ¤ê³  하신 것ì´ì—ˆìŠµë‹ˆë‹¤. ê·¸ê²ƒì´ ì–¼ë§ˆë‚˜ 갸륵한 ì¼ìž…니까. ê·¸ëŸ°ë° ì œ 어머니와 저는 ê·¸ 갸륵하신 ì •ì‹ ì„ ëª°ë¼ë³´ê³  오해하였습니다. 어머니는 질투하시고 저는 시기하였습니다. ì´ê²ƒì´ 얼마나 아버지를 그렇게 갸륵하신 아버지를 몰ë¼ëµˆì˜¨ 것입니다. ì´ê²ƒì´ 얼마나 ë¶€ë„럽고 ì›í†µí•œ ì¼ìž…니까. -ì„ ìƒë‹˜ê»˜ì„œë„ 여러 번 ì•„ë²„ì§€ì˜ ì¸ê²©ì´ 높다는 ê²ƒì„ ì €í¬ ëª¨ë…€ì—게 설명해 주셨습니다마는 마ìŒì´ 막힌 저는 ì„ ìƒë‹˜ì˜ ë§ì”€ë„ 믿지 아니하였습니다. -ì„ ìƒë‹˜, ì •ìž„ì€ ì°¸ìœ¼ë¡œ 아버지를 사랑합니다. ì •ìž„ì—게는 ì´ ì„¸ìƒì— 아버지밖ì—는 사랑하는 ì•„ë¬´ê²ƒë„ ì—†ì´, 그렇게 외â—으로, 그렇게 열렬하게 아버지를 사모하고 사랑합니다. 저는 잘 압니다. ì •ìž„ì´ê°€ 처ìŒì—는 아버지로 ì‚¬ëž‘í•˜ì˜€ë˜ ê²ƒì„, 그러나 ì–´ëŠ ìƒˆì— ì •ìž„ì˜ ì•„ë²„ì§€ì—게 대한 ì‚¬ëž‘ì´ ë¬´ì—‡ì¸ì§€ 모를 사랑으로 변한 것ì„, ê·¸ê²ƒì´ ì—°ì• ëƒ í•˜ê³  물으면 ì •ìž„ì€ ì•„ë‹ˆë¼ê³  í•  것입니다. ì •ìž„ì˜ ê·¸ ëŒ€ë‹µì€ ê²°ì½” ê±°ì§“ì´ ì•„ë‹™ë‹ˆë‹¤. ì •ìž„ì€ ìˆ™ì„±í•˜ì§€ë§ˆëŠ” ì•„ì§ë„ 극히 순결합니다. ì •ìž„ì€ ë¶€ëª¨ë¥¼ ìžƒì€ í›„ì— ì•„ë²„ì§€ë°–ì— ì‚¬ëž‘í•œ ì‚¬ëžŒì´ ì—†ìŠµë‹ˆë‹¤. ë˜ ì•„ë²„ì§€ì—ê²Œë°–ì— ì‚¬ëž‘ë°›ë˜ ì¼ë„ 없습니다. ê·¸ëŸ¬ë‹ˆê¹ ì •ìž„ì€ ì•„ë²„ì§€ë¥¼ 그저 사랑합니다 ì „ì ìœ¼ë¡œ 사랑합니다. ì„ ìƒë‹˜, ì •ìž„ì˜ ì‚¬ëž‘ì—는 ì•„ë²„ì§€ì— ëŒ€í•œ ìžì‹ì˜ 사랑, 오ë¼ë¹„ì— ëŒ€í•œ 누ì´ì˜ 사랑, 사내 ì¹œêµ¬ì— ëŒ€í•œ ì—¬ìž ì¹œêµ¬ì˜ ì‚¬ëž‘, ì• ì¸ì— 대한 ì• ì¸ì˜ 사랑, ì´ ë°–ì— ì¡´ê²½í•˜ê³  숭배하는 ì„ ìƒì— 대한 ì œìžì˜ 사랑까지, ì‚¬ëž‘ì˜ ëª¨ë“  종류가 í¬í•¨ë˜ì–´ 있는 ê²ƒì„ ì €ëŠ” 발견하였습니다. -ì„ ìƒë‹˜, ì •ìž„ì˜ ì •ìƒì€ 차마 ë³¼ 수가 없습니다. ì•„ë²„ì§€ì˜ ì•ˆë¶€ë¥¼ 근심하는 ì–‘ì€ ì œ 몇십 배나 ë˜ëŠ”ì§€ 모르게 간절합니다. ì •ìž„ì€ ì € ë•Œë¬¸ì— ì•„ë²„ì§€ê°€ 불행하게 ë˜ì…¨ë‹¤ê³  해서 차마 ë³¼ 수 없게 애통하고 있습니다. ì§„ì •ì„ ë§ì”€í•˜ì˜¤ë©´ 저는 지금 ì•„ë²„ì§€ë³´ë‹¤ë„ ì–´ë¨¸ë‹ˆë³´ë‹¤ë„ ì •ìž„ì—게 가장 ë™ì •ì´ ëŒë¦½ë‹ˆë‹¤. ì„ ìƒë‹˜, 저는 아버지를 찾아가는 ê²ƒì´ ì•„ë‹ˆë¼ ì •ìž„ì„ ë•기 위하여 간호하기 위하여 가는 것 같습니다. -ì„ ìƒë‹˜, 저는 ì•„ì§ ì‚¬ëž‘ì´ëž€ ê²ƒì´ ë¬´ì—‡ì¸ì§€ë¥¼ 모릅니다. 그러나 ì •ìž„ì„ ë³´ê³  사랑ì´ëž€ ê²ƒì´ ì–´ë–»ê²Œ 신비하고 열렬하고 놀ë¼ìš´ 것ì¸ê°€ë¥¼ 안 것 같습니다. -ìˆœìž„ì˜ íŽ¸ì§€ëŠ” 계ì†ëœë‹¤. -ì„ ìƒë‹˜, í•˜ì–¼ë¹ˆì— ì˜¤ëŠ” ê¸¸ì— ì†¡í™”ê°• êµ½ì´ë¥¼ ë³¼ 때ì—는 ì •ìž„ì´ê°€ 어떻게나 울었는지, ê·¸ê²ƒì€ ì°¨ë§ˆ ë³¼ 수가 없었습니다. 아버지께서 ì†¡í™”ê°•ì„ ë³´ì‹œê³  ê°ìƒì´ 깊으셨ë”란 ê²ƒì„ ìƒê°í•œ 것입니다. 무ì¸ì§€ê²½ìœ¼ë¡œ, 허옇게 ëˆˆì´ ë®ì¸ 벌íŒìœ¼ë¡œ í˜ëŸ¬ê°€ëŠ” 송화강 êµ½ì´, ê·¸ê²ƒì€ ìŠ¬í”ˆ í’경입니다. 아버지께서 여기를 지나실 때ì—는 마른 풀만 있는 ê´‘ì•¼ì˜€ì„ ê²ƒì´ë‹ˆ ê·¸ 때ì—는 ë”ìš± í™©ëŸ‰í•˜ì˜€ì„ ê²ƒì´ë¼ê³  ì •ìž„ì€ ë§í•˜ê³  ì›ë‹ˆë‹¤. -ì •ìž„ì€ ì œê°€ 아버지를 아는 것보다 아버지를 잘 아는 것 같습니다. í‰ì†Œì— 아버지와는 그리 ì ‘ì´‰ì´ ì—†ê±´ë§ˆëŠ” ì •ìž„ì€ ì•„ë²„ì§€ì˜ ì˜ì§€ë ¥, ì•„ë²„ì§€ì˜ ìˆ¨ì€ ì—´ì •, ì•„ë²„ì§€ì˜ ì„±ë¯¸ê¹Œì§€ 잘 압니다. 저는 ì •ìž„ì˜ ë§ì„ 듣고야 비로소 ì°¸ 그래, 하는 ê°íƒ„ì„ ë°œí•œ ì¼ì´ 여러 번 있습니다. -ì •ìž„ì˜ ë§ì„ 듣고야 비로소 아버지가 남보다 뛰어나신 ì¸ë¬¼ì¸ ê²ƒì„ ê¹¨ë‹¬ì•˜ìŠµë‹ˆë‹¤. 아버지는 ì •ì˜ê°ì´ 굳세고 겉으로는 싸늘하ë„ë¡ ì´ì§€ì ì´ì§€ë§ˆëŠ” ì†ì—는 불 ê°™ì€ ì—´ì •ì´ ìžˆìœ¼ì‹œê³ , 아버지는 쇠 ê°™ì€ ì˜ì§€ë ¥ê³¼ 칼날 ê°™ì€ íŒë‹¨ë ¥ì´ 있어서 언제나 ì£¼ì €í•˜ì‹¬ì´ ì—†ê³  ë˜ í”ë“¤ë¦¬ì‹¬ì´ ì—†ë‹¤ëŠ” 것, 아버지께서는 모든 ê²ƒì„ ìš©ì„œí•˜ê³  모든 ê²ƒì„ í˜¸ì˜ë¡œ í•´ì„하여서 누구를 미워하거나 ì›ë§í•˜ì‹¬ì´ 없는 등, ì •ìž„ì€ ì•„ë²„ì§€ì˜ ë§ˆìŒì˜ 목ë¡ê³¼ 설명서를 따로 외우는 것처럼 ì•„ë²„ì§€ì˜ ì„±ê²©ì„ ì„¤ëª…í•©ë‹ˆë‹¤. 듣고 보아서 비로소 ì•„ë²„ì§€ì˜ ë”¸ì¸ ì €ëŠ” ë‚´ 아버지가 ì–´ë–¤ 아버지ì¸ê°€ë¥¼ 알았습니다. -ì„ ìƒë‹˜, ì´í•´ê°€ ì‚¬ëž‘ì„ ë‚³ëŠ”ë‹¨ ë§ì”€ì´ 있지마는 저는 ì •ìž„ì„ ë³´ì•„ì„œ ì‚¬ëž‘ì´ ì´í•´ë¥¼ 낳는 ê²ƒì´ ì•„ë‹Œê°€ 합니다. -어쩌면 어머니와 저는 í‰ìƒì„ 아버지를 모시고 ìžˆìœ¼ë©´ì„œë„ ì•„ë²„ì§€ë¥¼ 몰ëžìŠµë‹ˆê¹Œ. ì´ì„±ì´ 무디고 ì–‘ì‹¬ì´ í려서 그랬습니까. ì •ìž„ì€ ì§„ì‹¤ë¡œ 존경할 ì—¬ìžìž…니다. 제가 남ìžë¼ 하ë”ë¼ë„ ì •ìž„ì„ ì•„ë‹ˆ 사랑하고는 못 견디겠습니다. -아버지는 분명 ì •ìž„ì„ ì‚¬ëž‘í•˜ì‹  것입니다. 처ìŒì—는 ì¹œêµ¬ì˜ ë”¸ë¡œ, 다ìŒì—는 친딸과 ê°™ì´, ë˜ ë‹¤ìŒì—는 무엇ì¸ì§€ 모르게 뜨거운 ì‚¬ëž‘ì´ ìƒê²¼ìœ¼ë¦¬ë¼ê³  믿습니다. ê·¸ê²ƒì„ ì•„ë²„ì§€ëŠ” ì£½ì¸ ê²ƒìž…ë‹ˆë‹¤. ê·¸ê²ƒì„ ì£½ì´ë ¤ê³  ì´ ë‹¬í•  수 없는 ì‚¬ëž‘ì„ ì£½ì´ë ¤ê³  시베리아로 달아나신 것입니다. ì¸ì œì•¼ 아버지께서 ì„ ìƒë‹˜ê»˜ 하신 íŽ¸ì§€ì˜ ëœ»ì´ ì•Œì•„ì§„ 것 같습니다. ë°±ì„¤ì´ ë®ì¸ ì‹œë² ë¦¬ì•„ì˜ ì‚¼ë¦¼ ì†ìœ¼ë¡œ í˜¼ìž í—¤ë§¤ë©° ì •ìž„ì—게로 향하는 ì‚¬ëž‘ì„ ì£½ì´ë ¤ê³  무진 애를 쓰시는 ê·¸ ì‹¬ì •ì´ ì•Œì•„ì§€ëŠ” 것 같습니다. -ì„ ìƒë‹˜ ì´ê²ƒì´ 얼마나 비참한 ì¼ìž…니까. 저는 ì •ìž„ì˜ ì§ì— 지니고 온 ì¼ê¸°ë¥¼ 보다가 ì´ëŸ¬í•œ êµ¬ì ˆì„ ë°œê²¬í•˜ì˜€ìŠµë‹ˆë‹¤. -ì„ ìƒë‹˜. 저는 세ì¸íЏ ì˜¤ê±°ìŠ¤í‹´ì˜ <참회ë¡>ì„ ì ˆë°˜ì´ë‚˜ 다 ë³´ê³  ë‚˜ë„ ìž ì´ ë“¤ì§€ 아니합니다. ìž ì´ ë“¤ê¸° ì „ì— ì œê°€ í•­ìƒ ì¦ê²¨í•˜ëŠ” ì•„ë² ë§ˆë¦¬ì•„ì˜ ë…¸ëž˜ë¥¼ 유성기로 듣고 나서 오늘 ì¼ê¸°ë¥¼ 쓰려고 하니 슬픈 소리만 나옵니다. -사랑하는 어른ì´ì—¬. 저는 멀리서 ë‹¹ì‹ ì„ ì¡´ê²½í•˜ê³  신뢰하는 마ìŒì—서만 살아야 í•  ê²ƒì„ ìž˜ 압니다. 여기ì—서 ì˜ì›í•œ 정지를 하지 아니하면 아니 ë©ë‹ˆë‹¤. ë¹„ë¡ ì œ ìƒëª…ì´ ê´´ë¡œì›€ìœ¼ë¡œ ëŠì–´ì§€ê³  ì œ í˜¼ì´ í”¼ì–´ ë³´ì§€ 못하고 스러져 버리ë”ë¼ë„ 저는 ì´ ë©€ë¦¬ì„œ ë°”ë¼ë³´ëŠ” 존경과 ì‹ ë¢°ì˜ ì‹¬ê²½ì—서 한 ë°œìžêµ­ì´ë¼ë„ 옮기지 않아야 í•  ê²ƒì„ ìž˜ 압니다. 나를 위하여 놓여진 ìƒì˜ 궤ë„는 ë‚˜ì˜ ìƒëª…ì„ ë¶€ì¸í•˜ëŠ” ì–µì§€ì˜ ê¸¸ìž…ë‹ˆë‹¤. 제가 몇 ë…„ ì „ 기숙사 베드ì—서 ì´ëŸ° ë°¤ì— ë‚´ë‹¤ë³´ë©´ ì¦ê²ê³  ì•„ë¦„ë‹µë˜ ë‚´ ìƒì˜ ê¿ˆì€ ë‹¤ 깨어졌습니다. -ì œ ì˜í˜¼ì˜ 한 ì¡°ê°ì´ 먼 ì„¸ìƒ ì•Œì§€ 못할 세계로 떠다니고 있습니다. 잃어버린 ë§ˆìŒ ì¡°ê° ì–´ì°Œí•˜ë‹¤ê°€ 제가 ì´ë ‡ê²Œ ë˜ì—ˆëŠ”ì§€ 모릅니다. -피어 오르는 ìƒëª…ì˜ ê´‘ì±„ë¥¼ 스스로 ì‚¬í˜•ì— ì²˜í•˜ì§€ 아니하면 아니 ë  ë•Œ ì–´ì°Œ ìŠ¬í””ì´ ì—†ê² ìŠµë‹ˆê¹Œ. ì´ê²ƒì€ 현실로 ì‚¬ëžŒì˜ ìƒëª…ì„ ì£½ì´ëŠ” 것보다 ë” ë¬´ì„œìš´ 죄가 아니오리까. ë‚˜ì˜ ì„¸ê³„ì—서 처ìŒì´ìš” 마지막으로 발견한 ë¹›ì„ ì–´ë‘  ì†ì— 소멸해 버리ë¼ëŠ” ì´ ì¼ì´ 얼마나 떨리는 ì§ë¬´ì˜¤ë¦¬ê¹Œ. ì´ í—ˆê¹¨ë¹„ì˜ í˜•ì˜ ì‚¬ëžŒì´ ì‚´ê¸° 위하여 ë‚´ ì†ìœ¼ë¡œ ì¹¼ì„ ë“¤ì–´ ë‚´ ì˜í˜¼ì˜ 환í¬ë¥¼ ì³ì•¼ 옳습니까. 저는 í•˜ë‚˜ë‹˜ì„ ì›ë§í•©ë‹ˆë‹¤. -ì´ë ‡ê²Œ 씌어 있습니다. ì„ ìƒë‹˜ ì´ê²ƒì´ 얼마나 피 í르는 고백입니까. -ì„ ìƒë‹˜, 저는 ì •ìž„ì˜ ì´ ê³ ë°±ì„ ë³´ê³  무조건으로 ì •ìž„ì˜ ì‚¬ëž‘ì„ ì‹œì¸í•©ë‹ˆë‹¤. ì„ ìƒë‹˜, ì œ ëª©ìˆ¨ì„ ë°”ì³ì„œ 하는 ì¼ì— 누가 시비를 하겠습니까. ë”구나 ê·¸ ë™ê¸°ì— í‹°ëŒë§Œí¼ë„ 불순한 ê²ƒì´ ì—†ìŒì—야 무조건으로 시ì¸í•˜ì§€ 아니하고 어찌합니까. -ë°”ë¼ê¸°ëŠ” ì •ìž„ì˜ ë³‘ì´ í¬ê²Œ ë˜ì§€ 아니하고 아버지께서 무사히 계셔서 ì†ížˆ 만나뵙게 ë˜ëŠ” 것입니다마는 ì•žê¸¸ì´ ë§ë§í•˜ì—¬ ê°€ìŠ´ì´ ë‘ê·¼ê±°ë¦¼ì„ ê¸ˆì¹˜ 못합니다. 게다가 ì˜¤ëŠ˜ì€ í•¨ë°•ëˆˆì´ í¼ë¶€ì–´ì„œ 천지가 온통 회색으로 한 ë¹›ì´ ë˜ì—ˆìœ¼ë‹ˆ ë”ìš± ì „ë„ê°€ 막막합니다. 그러나 ì„ ìƒë‹˜ 저는 앓는 ì •ìž„ì„ ë°ë¦¬ê³  ìš©ê°í•˜ê²Œ 시베리아 ê¸¸ì„ ë– ë‚©ë‹ˆë‹¤. -한 ì¼ ì£¼ì¼ í›„ì— ë˜ íŽ¸ì§€ 한 ìž¥ì´ ì™”ë‹¤. ê·¸ê²ƒë„ ìˆœìž„ì˜ íŽ¸ì§€ì—¬ì„œ ì´ëŸ¬í•œ ë§ì´ 있었다. -……오늘 ìƒˆë²½ì— í¥ì•ˆë ¹ì„ 지났습니다. 플랫í¼ì˜ 한란계는 ì˜í•˜ ì´ì‹­ì‚¼ ë„를 가리켰습니다. ì‚¬ëžŒë“¤ì˜ ì–¼êµ´ì€ ì†œí„¸ì— ì„±ì—ê°€ 슬어서 남녀 노소 í•  것 ì—†ì´ í•˜ì–—ê²Œ ë¶„ì„ ë°”ë¥¸ 것 같습니다. ìœ ë¦¬ì— ë¹„ì¹œ ë‚´ ì–¼êµ´ë„ ê·¸ì™€ ê°™ì´ í° ê²ƒì„ ë³´ê³  놀ëžìŠµë‹ˆë‹¤. ìˆ¨ì„ ë“¤ì´ì‰´ 때ì—는 ì½”í„¸ì´ ì–¼ì–´ì„œ ìˆ¨ì´ ëŠê¸°ê³  ë°”ëžŒê²°ì´ ì§€ë‚˜ê°€ë©´ ëˆˆë¬¼ì´ ì–¼ì–´ì„œ 눈ì¹ì´ 마주 붙습니다. ì‚¬ëžŒë“¤ì€ í„¸ê³¼ ê°€ì£½ì— ì‹¸ì—¬ì„œ ê³°ê°™ì´ ë³´ìž…ë‹ˆë‹¤. -ë˜ ì´ëŸ° ë§ë„ 있었다. -ì•„ë¼ì‚¬ ê³„ì§‘ì• ë“¤ì´ ìš°ìœ ë³‘ë“¤ì„ í’ˆì— í’ˆê³  서서 ì†ë‹˜ì´ 사기를 기다리고 있습니다. ì €ë„ ë‘ ë³‘ì„ ì‚¬ì„œ ì •ìž„ì´ì™€ 나누어 먹었습니다. 우유는 따뜻합니다. ê·¸ê²ƒì„ ì‹ížˆì§€ 아니할 양으로 í’ˆì— í’ˆê³  ì„°ë˜ ê²ƒìž…ë‹ˆë‹¤. -ë˜ ì´ëŸ¬í•œ êµ¬ì ˆë„ ìžˆì—ˆë‹¤. -ì •ê±°ìž¥ì— ë‹¿ì„ ë•Œë§ˆë‹¤ ì €í¬ë“¤ì€ ë°–ì„ ë‚´ë‹¤ë´…ë‹ˆë‹¤. 행여나 아버지가 거기 계시지나 아니할까 하고요. 차가 어길 때ì—는 ë”구나 마ìŒì´ 조입니다. 아버지가 ê·¸ 차를 타고 지나가시지나 아니하는가 하고요. 그리고는 ì •ìž„ì€ ì›ë‹ˆë‹¤. ê¼­ 뵈올 ì–´ë¥¸ì„ ë†“ì³ë‚˜ 버린 듯ì´. -그리고는 ì´ ì£¼ì¼ ë™ì•ˆì´ë‚˜ 소ì‹ì´ 없다가 편지 한 ìž¥ì´ ì™”ë‹¤. ê·¸ê²ƒì€ ì •ìž„ì˜ ê¸€ì”¨ì˜€ë‹¤. -ì„ ìƒë‹˜, 저는 지금 최 ì„ ìƒê»˜ì„œ ê³„ì‹œë˜ ë°”ì´ì¹¼ í˜¸ë°˜ì˜ ê·¸ ì§‘ì— ì™€ì„œ 홀로 누웠습니다. ìˆœìž„ì€ ì£¼ì¸ ë…¸íŒŒì™€ 함께 F역으로 최 ì„ ìƒì„ 찾아서 오늘 ì•„ì¹¨ì— ë– ë‚˜ê³  병든 저만 í˜¼ìž ëˆ„ì›Œì„œ ì–¼ìŒì— ì‹¸ì¸ ë°”ì´ì¹¼ í˜¸ì˜ ëˆˆë³´ë¼ì¹˜ëŠ” 바람 소리를 듣고 있습니다. ì—´ì€ ì‚¼ì‹­íŒ” ë„로부터 구 ë„ ì‚¬ì´ë¥¼ 오르내리고 ê¸°ì¹¨ì€ ë‚˜ê³  ëª¸ì˜ ê´´ë¡œì›€ì„ ê²¬ë”œ 수 없습니다. 그러하오나 ì„ ìƒë‹˜, 저는 í•˜ë‚˜ë‹˜ì„ ë¶ˆëŸ¬ì„œ ì¶•ì›í•©ë‹ˆë‹¤. ì´ ì‹¤ë‚± ê°™ì€ ìƒëª…ì´ ë‹¤ 타 버리기 ì „ì— ìµœ ì„ ìƒì˜ ë‚¯ì„ ë‹¤ë§Œ ì¼ ì´ˆ ë™ì•ˆì´ë¼ë„ 보여지ì´ë¼ê³ . 그러하오나 ì„ ìƒë‹˜, ì´ ì¶•ì›ì´ ì´ë£¨ì–´ì§€ê² ìŠµë‹ˆê¹Œ. -저는 한사코 F역까지 가려 하였사오나 순임 í˜•ì´ ìš¸ê³  막사오며 ë˜ ì£¼ì¸ ë…¸íŒŒê°€ 본래 미국 사람과 ì‚´ë˜ ì‚¬ëžŒìœ¼ë¡œ ì˜ì–´ë¥¼ 알아서 순임 í˜•ì˜ ë„ì›€ì´ ë˜ê² ê¸°ë¡œ 저는 ì´ ê³³ì— ëˆ„ì›Œ 있습니다. 순임 í˜•ì€ ê¸°ì–´ì½” 아버지를 찾아 모시고 오마고 약ì†í•˜ì˜€ì‚¬ì˜¤ë‚˜ ì´ ë„“ì€ ì‹œë² ë¦¬ì•„ì—서 ì–´ë”” 가서 찾겠습니까. -ì„ ìƒë‹˜, 저는 죽ìŒì„ 봅니다. 죽ìŒì´ 바로 ì œ ì•žì— ì™€ì„œ ì„  ê²ƒì„ ë´…ë‹ˆë‹¤. ê·¸ì˜ ì†ì€ ì œ 여윈 ì†ì„ 잡으려고 ë“¤ë¨¹ê±°ë¦¼ì„ ë´…ë‹ˆë‹¤. -ì„ ìƒë‹˜, ì£½ì€ ë’¤ì—ë„ ì˜ì‹ì´ 남습니까. ë§Œì¼ ì˜ì‹ì´ 남는다 하면 ì£½ì€ ë’¤ì—ë„ ì´ ì•„í””ê³¼ ê´´ë¡œì›€ì„ ê³„ì†í•˜ì§€ 아니하면 아니 ë©ë‹ˆê¹Œ. ì£½ì€ ë’¤ì—는 ì˜¤ì§ ì˜ì›í•œ ì–´ë‘ ê³¼ ìžŠì–´ë²„ë¦¼ì´ ìžˆìŠµë‹ˆê¹Œ. ì£½ì€ ë’¤ì—는 혹시나 ìƒì „ì— ë¨¹ì—ˆë˜ ë§ˆìŒì„ ìžìœ ë¡œ 펼 ë„리가 있습니까. ì´ ì„¸ìƒì—서 그립고 ì‚¬ëª¨í•˜ë˜ ì´ë¥¼ ì£½ì€ ë’¤ì—는 ìžìœ ë¡œ 만나 ë³´ê³  언제나 마ìŒê» ê°™ì´í•  수가 있습니까. 그런 ì¼ë„ 있습니까. ì´ëŸ° ì¼ì„ ë°”ë¼ëŠ” ê²ƒë„ ì£„ê°€ ë©ë‹ˆê¹Œ. -ì •ìž„ì˜ íŽ¸ì§€ëŠ” ë”ìš± ì ˆë§ì ì¸ 어조로 찬다. -저는 ì²˜ìŒ ë³‘ì´ ë‚¬ì„ ë•Œì—는 죽는 ê²ƒì´ ì‹«ê³  무서웠습니다. 그러나 ì§€ê¸ˆì€ ì£½ëŠ” ê²ƒì´ ì¡°ê¸ˆë„ ë¬´ì„­ì§€ 아니합니다. 다만 차마 죽지 못하는 ê²ƒì´ í•œ. -하고는 `다만 차마' ì´í•˜ë¥¼ ë°•ë°• 지워 버렸다. 그리고는 새로 시작하여 나와내 가족ì—게 대한 ë¬¸ì•ˆì„ í•˜ê³ ëŠ” ëì„ ë§‰ì•˜ë‹¤. -나는 ì´ íŽ¸ì§€ë¥¼ 받고 울었다. 무슨 í° ë¹„ê·¹ì´ ê°€ê¹Œìš´ ê²ƒì„ ì˜ˆìƒí•˜ê²Œ 하였다. -ê·¸ 후 한 ì‹­ì—¬ ì¼ì´ë‚˜ 지나서 ì „ë³´ê°€ 왔다. ê·¸ê²ƒì€ ì˜ë¬¸ìœ¼ë¡œ 씌었는ë°, -"아버지 ë³‘ì´ ê¸‰í•˜ë‹¤. 나로는 ì–´ì©” 수 없다. ëˆ ê°€ì§€ê³  ê³§ 오기를 바란다." -하고 ê·¸ ëì— B호텔ì´ë¼ê³  주소를 ì ì—ˆë‹¤. ì „ë³´ ë°œì‹ êµ­ì´ ì´ë¥´ì¿ ì¸ í¬ì¸ ê²ƒì„ ë³´ë‹ˆ B호텔ì´ë¼ í•¨ì€ ì´ë¥´ì¿ ì¸ í¬ì¸ ê²ƒì´ ë¶„ëª…í•˜ì˜€ë‹¤. -나는 ìµœì„ ë¶€ì¸ì—게 최ì„ì´ê°€ ì•„ì§ ì‚´ì•„ 있다는 ê²ƒì„ ì „í•˜ê³  ê³§ 여행권 수ì†ì„ 하였다. ì ˆë§ìœ¼ë¡œ ì•Œì•˜ë˜ ì—¬í–‰ê¶Œì€ ì‚¬ì •ì´ ì‚¬ì •ì¸ë§Œí¼ ê³§ 발부ë˜ì—ˆë‹¤. -나는 비행기로 ì—¬ì˜ë„를 떠났다. ë°±ì„¤ì— ê°œê°œí•œ ë•…ì„, 남빛으로 푸른 바다를 굽어보는 ë™ì•ˆì— ëŒ€ë ¨ì„ ë“¤ëŸ¬ 거기서 다른 비행기를 갈아타고 봉천, ì‹ ê²½, í•˜ì–¼ë¹ˆì„ ê±°ì³, ì¹˜ì¹˜í•˜ì–¼ì— ë“¤ë €ë‹¤ê°€ 만주리로 급행하였다. -웅대한 ëŒ€ë¥™ì˜ ì„¤ê²½ë„ ë‚˜ì—게 아무러한 ì¸ìƒë„ 주지 못하였다. 다만 푸른 하늘과 í¬ê³  í‰í‰í•œ ë•…ê³¼ì˜ ì‚¬ì´ë¡œ 한량 ì—†ì´ í—ˆê³µì„ ë‚ ì•„ê°„ë‹¤ëŠ” ìƒê°ë°–ì— ì—†ì—ˆë‹¤. ê·¸ê²ƒì€ ì‚¬ëž‘í•˜ëŠ” ë‘ ì¹œêµ¬ê°€ ëª©ìˆ¨ì´ ê²½ê°ì— 달린 ê²ƒì„ ìƒê°í•  ë•Œì— ë§ˆìŒì— 아무 ì—¬ìœ ë„ ì—†ëŠ” 까닭ì´ì—ˆë‹¤. -만주리ì—ì„œë„ ë¹„í–‰ê¸°ë¥¼ 타려 하였으나 소비ì—트 ê´€í—Œì´ í—ˆë½ì„ 아니 하여 열차로 ê°ˆ ìˆ˜ë°–ì— ì—†ì—ˆë‹¤. -초조한 몇 ë°¤ì„ ì§€ë‚˜ê³  ì´ë¥´ì¿ ì¸ í¬ì— 내린 ê²ƒì´ ì˜¤ì „ ë‘시. 나는 B호텔로 ì´ìŠ¤ë³´ìŠ¤ì¹˜ì¹´ë¼ëŠ” 마차를 몰았다. 죽ìŒê³¼ ê°™ì´ ê³ ìš”í•˜ê²Œ 눈 ì†ì— ìžëŠ” 시간ì—는 여기저기 ì „ë“±ì´ ë°˜ì§ê±°ë¦´ ë¿, ì´ë”°ê¸ˆ ë°¤ì˜ ì‹œê°€ë¥¼ 경계하는 ë³‘ì •ë“¤ì˜ ëˆˆì´ ë¬´ì„­ê²Œ 빛나는 ê²ƒì´ ë³´ì˜€ë‹¤. -B호텔ì—서 미스 ì´ˆì´(최 ì–‘)를 찾았으나 ìˆœìž„ì€ ì—†ê³  ì–´ë–¤ 서양 노파가 나와서, -"유 미스터 Y?" -하고 ì˜ì‹¬ìŠ¤ëŸ¬ìš´ 눈으로 나를 보았다. -그렇다는 ë‚´ ëŒ€ë‹µì„ ë“£ê³ ëŠ” 노파는 반갑게 ì†ì„ 내밀어서 ë‚´ ì†ì„ 잡았다. -나는 넉넉하지 못한 ì˜ì–´ë¡œ ê·¸ 노파ì—게서 최ì„ì´ê°€ ì•„ì§ ì‚´ì•˜ë‹¤ëŠ” ë§ê³¼ ì •ìž„ì˜ ì†Œì‹ì€ ë“¤ì€ ì§€ 오래ë¼ëŠ” ë§ê³¼ 최ì„ê³¼ ìˆœìž„ì€ ì—¬ê¸°ì„œ 삼십 마ì¼ì´ë‚˜ 떨어진 Fì—­ì—ì„œë„ ì°ë§¤ë¡œ ë” ê°€ëŠ” 삼림 ì†ì— 있다는 ë§ì„ 들었다. -나는 ê·¸ ë°¤ì„ ì—¬ê¸°ì„œ 지내고 ì´íŠ¿ë‚  ì•„ì¹¨ì— ë– ë‚˜ëŠ” 완행차로 ê·¸ 노파와 함께 ì´ë¥´ì¿ ì¸ í¬ë¥¼ 떠났다. -ì´ ë‚ ë„ ì²œì§€ëŠ” ì˜¤ì§ ëˆˆë¿ì´ì—ˆë‹¤. 차는 ê°€ë” ì‚¼ë¦¼ 중으로 가는 모양ì´ë‚˜ ëª¨ë‘ íšŒìƒ‰ë¹›ì— ê°€ë¦¬ì›Œì„œ 분명히 ë³´ì´ì§€ë¥¼ 아니하였다. -Fì—­ì´ë¼ëŠ” ê²ƒì€ ì‚¼ë¦¼ ì†ì— 있는 조그마한 정거장으로 ì§‘ì´ë¼ê³ ëŠ” 정거장 ì§‘ë°–ì— ì—†ì—ˆë‹¤. ì—­ë¶€ ë‘ì—‡ì´ í„¸ì˜·ì— í•˜ì–—ê²Œ ëˆˆì„ ë’¤ì“°ê³  졸리는 ë“¯ì´ ì˜¤ë½ê°€ë½í•  ë¿ì´ì—ˆë‹¤. -우리는 ì°ë§¤ 하나를 얻어 타고 어디가 길ì¸ì§€ ë¶„ëª…ì¹˜ë„ ì•„ë‹ˆí•œ 눈 ì†ìœ¼ë¡œ ë§ì„ 몰았다. -ë°”ëžŒì€ ì—†ëŠ” 듯하지마는 ê·¸ëž˜ë„ ëˆˆë°œì„ í•œíŽ¸ìœ¼ë¡œ 비ë¼ëŠ” 모양ì´ì–´ì„œ 아름드리 ë‚˜ë¬´ë“¤ì˜ í•œìª½ì€ í•˜ì–—ê²Œ 눈으로 쌓ì´ê³  í•œìª½ì€ ê²€ì€ ë¹›ì´ ë”ìš± ë‹ë³´ì˜€ë‹¤. ë°± ì²™ì€ ë„˜ì„ ë“¯í•œ 꼿꼿한 침엽수(전나무 따윈가)ë“¤ì´ ì–´ë””ê¹Œì§€ë“ ì§€, 하늘ì—서 ê³§ ë‚´ë ¤ë°•ì€ ëª» 모양으로, ìˆ˜ì—†ì´ ì„œ 있는 사ì´ë¡œ 우리 ì°ë§¤ëŠ” 간다. ë•…ì— ë®ì¸ ëˆˆì€ ìƒˆë¡œ 피워 ë†“ì€ ì†œê°™ì´ í¬ì§€ë§ˆëŠ” 하늘ì—서 내리는 ëˆˆì€ êµ¬ë¦„ë¹›ê³¼ 공기빛과 어울려서 ë°¥ ìž¦íž ë•Œì— êµ´ëšì—서 나오는 연기와 ê°™ì´ ì—°íšŒìƒ‰ì´ë‹¤. -ë°”ëžŒë„ ë¶ˆì§€ 아니하고 ìƒˆë„ ë‚ ì§€ 아니하건마는 나무 ë†’ì€ ê°€ì§€ì— ìŒ“ì¸ ëˆˆì´ ì´ë”°ê¸ˆ ë©ì¹˜ë¡œ 떨어져서는 고요한 수풀 ì†ì— ìž‘ì€ ë™ìš”를 ì¼ìœ¼í‚¨ë‹¤. -우리 ì°ë§¤ê°€ 가는 ê¸¸ì´ ìžì—°ìŠ¤ëŸ¬ìš´ 복잡한 커브를 ë„는 ê²ƒì„ ë³´ë©´ 필시 ì–¼ìŒ ì–¸ 개천 위로 달리는 모양ì´ì—ˆë‹¤. -한 시간ì´ë‚˜ 달린 ë’¤ì— ìš°ë¦¬ ì°ë§¤ëŠ” ëŠ¦ì€ ê²½ì‚¬ì§€ë¥¼ 올ëžë‹¤. ë§ì„ 어거하는 ì•„ë¼ì‚¬ ì‚¬ëžŒì€ ì­ˆì­ˆì­ˆì­ˆ, 후르르 하고 ì£¼ë¬¸ì„ ì™¸ìš°ë“¯ì´ ìž…ìœ¼ë¡œ ë§ì„ 재촉하고 ê³ ì‚를 ì´ë¦¬ 들고 저리 들어 ë§ì—게 ë°©í–¥ì„ ê°€ë¦¬í‚¬ ë¿ì´ìš”, 채ì°ì€ ë³´ì´ê¸°ë§Œí•˜ê³  한 ë²ˆë„ ì“°ì§€ 아니하였다. 그와 ë§ê³¼ëŠ” 완전히 뜻과 ì •ì´ ë§žëŠ” ë™ì§€ì¸ 듯하였다. -처ìŒì—는 몰ëžìœ¼ë‚˜ 차차 추워ì§ì„ 깨달았다. 발과 무르íŒì´ 시렸다. -"얼마나 머오?" -하고 나는 ì˜¤ëž˜ê°„ë§Œì— ìž…ì„ ì—´ì–´ì„œ 노파ì—게 물었다. 노파는 털수건으로 머리를 싸매고 깊숙한 눈만 남겨 가지고 실신한 사람 모양으로 허공만 ë°”ë¼ë³´ê³  있다가, ë‚´ê°€ 묻는 ë§ì— 비로소 ìž ì´ë‚˜ 깬 듯ì´, -"멀지 않소. ì¸ì   한 십오 마ì¼." -하고는 나를 ë°”ë¼ë³´ì•˜ë‹¤. ê·¸ ëˆˆì€ ì•„ë§ˆ 웃는 모양ì´ì—ˆë‹¤. -ê·¸ 얼굴, ê·¸ 눈, ê·¸ ìŒì„±ì´ ëª¨ë‘ ì´ ë…¸íŒŒê°€ ì¸ìƒ í’íŒŒì˜ ìŠ¬í”ˆ ì¼ ê´´ë¡œìš´ ì¼ì— 부대ë¼ê³  지친 ê²ƒì„ í‘œí•˜ì˜€ë‹¤. 그리고 죽는 날까지 살아간다 하는 듯하였다. -경사지를 올ë¼ì„œì„œ 보니 ê·¸ê²ƒì€ í•œ 산등성ì´ì˜€ë‹¤. ë°©í–¥ì€ ì•Œ 수 없으나 우리가 가는 ë°©í–¥ì—는 ë” ë†’ì€ ë“±ì„±ì´ê°€ 있는 모양ì´ë‚˜ 다른 ê³³ì€ ë‹¤ ì´ë³´ë‹¤ ë‚®ì€ ê²ƒ 같아서 하얀 눈바다가 ëì—†ì´ ë³´ì´ëŠ” 듯하였다. ê·¸ 눈보ë¼ëŠ” ë“¤ì‘¹ë‚ ì‘¹ì´ ìžˆëŠ” ê²ƒì„ ë³´ë©´ ì‚¼ë¦¼ì˜ ê¼­ëŒ€ê¸°ì¸ ê²ƒì´ ë¶„ëª…í•˜ì˜€ë‹¤. ë”구나 여기저기 뾰족뾰족 ëˆˆì†¡ì´ ë¶™ì„ ìˆ˜ 없는 마른 나뭇가지가 거뭇거뭇 ë³´ì´ëŠ” ê²ƒì„ ë³´ì•„ì„œ 그러하였다. ë§Œì¼ ëˆˆì´ ê±·í˜€ 주었으면 얼마나 안계가 넓으랴, ìµœì„ êµ°ì´ ê³ ë¯¼í•˜ëŠ” ê°€ìŠ´ì„ ì•ˆê³  ì´ë¦¬ë¡œ 헤매었구나 하면서 나는 ëª©ì„ ë‘˜ëŸ¬ì„œ ì‚¬ë°©ì„ ë°”ë¼ë³´ì•˜ë‹¤. -우리는 ê·¸ 등성ì´ë¥¼ 내려갔다. ë§ì´ 미처 ë°œì„ ë•…ì— ë†“ì„ ìˆ˜ê°€ 없는 ì •ë„로 빨리 내려갔다. 여기는 ì‚°ë¶ˆì´ ë‚¬ë˜ ìžë¦¬ì¸ 듯하여 거뭇거뭇 불탄 ìžêµ­ 있는 마른 ë‚˜ë¬´ë“¤ì´ ë“œë¬¸ë“œë¬¸ 서 있었다. ê·¸ ë‚˜ë¬´ë“¤ì€ ì°ì–´ 가는 ì‚¬ëžŒë„ ì—†ìœ¼ë§¤ 저절로 ì©ì–´ì„œ 없어지기를 기다릴 ìˆ˜ë°–ì— ì—†ì—ˆë‹¤. ê·¸ë“¤ì€ ë‚˜ì„œ 아주 ì©ì–´ 버리기까지 천 ë…„ ì´ìƒì€ 걸린다고 하니 ë˜í•œ 장한 ì¼ì´ë‹¤. -ì´ ëŒ€ì‚¼ë¦¼ì— ë¶ˆì´ ë¶™ëŠ”ë‹¤ 하면 ê·¸ê²ƒì€ ìž¥ê´€ì¼ ê²ƒì´ë‹¤. ë‹¬ë°¤ì— ë†’ì€ ê³³ì—서 ì´ ê²½ì¹˜ë¥¼ 내려다본다 하면 ê·¸ë„ ìž¥ê´€ì¼ ê²ƒì´ìš”, ì—¬ë¦„ì— í•œì°½ ê¸°ìš´ì„ íŽ¼ ë•Œë„ ìž¥ê´€ì¼ ê²ƒì´ë‹¤. 나는 ì˜¤ë‰´ì›”ê²½ì— ì‹œë² ë¦¬ì•„ë¥¼ 여행하는 ì´ë“¤ì´ ë없는 꽃바다를 보았다는 기ë¡ì„ ìƒê°í•˜ì˜€ë‹¤. -"저기요!" -하는 ë…¸íŒŒì˜ ë§ì— 나는 ìƒê°ì˜ ì¤„ì„ ëŠì—ˆë‹¤. 저기ë¼ê³  가리키는 ê³³ì„ ë³´ë‹ˆ 거기는 ì§‘ì´ë¼ê³  ìƒê°ë˜ëŠ” ë¬¼ê±´ì´ ë‚˜ë¬´ 사ì´ë¡œ 보였다. ì°½ì´ ìžˆìœ¼ë‹ˆ 분명 ì§‘ì´ì—ˆë‹¤. -우리 ì´ìŠ¤ë³´ìŠ¤ì¹˜ì¹´ê°€ ê°€ê¹Œì´ ì˜¤ëŠ” ê²ƒì„ ë³´ì•˜ëŠ”ì§€, ê·¸ ì§‘ ê°™ì€ ë¬¼ê±´ì˜ ë¬¸ ê°™ì€ ê²ƒì´ ì—´ë¦¬ë©° ê²€ì€ ì™¸íˆ¬ ìž…ì€ ì—¬ìž í•˜ë‚˜ê°€ íŒ”ì„ í—ˆìš°ì ê±°ë¦¬ë©° 뛰어나온다. 아마 ì†Œë¦¬ë„ ì¹˜ëŠ” 모양ì´ê² ì§€ë§ˆëŠ” ê·¸ 소리는 아니 들렸다. 나는 ê·¸ê²ƒì´ ìˆœìž„ì¸ ì¤„ì„ ì–¼ë¥¸ 알았다. ë˜ ìˆœìž„ì´ë°–ì— ë  ì‚¬ëžŒë„ ì—†ì—ˆë‹¤. -ìˆœìž„ì€ í•œì°¸ 달ìŒë°•질로 오다가 ëˆˆì´ ê¹Šì–´ì„œ 걸ìŒì„ 걷기가 íž˜ì´ ë“œëŠ”ì§€ 멈칫 섰다. ê·¸ì˜ ê²€ì€ ì™¸íˆ¬ëŠ” ì–´ëŠë§ í° ì ìœ¼ë¡œ 얼려져 가지고 어깨는 í¬ê²Œ ë˜ëŠ” ê²ƒì´ ë³´ì˜€ë‹¤. -ìˆœìž„ì˜ ê°¸ë¦„í•œ ì–¼êµ´ì´ ë³´ì˜€ë‹¤. -"ì„ ìƒë‹˜!" -하고 ìˆœìž„ë„ ë‚˜ë¥¼ 알아보고는 ë˜ íŒ”ì„ í—ˆìš°ì ê±°ë¦¬ë©° 소리를 질렀다. -ë‚˜ë„ ë°˜ê°€ì›Œì„œ 모ìžë¥¼ ë²—ì–´ 둘렀다. -"ì•„ì´ ì„ ìƒë‹˜!" -하고 ìˆœìž„ì€ ë‚´ê°€ ì°ë§¤ì—서 ì¼ì–´ì„œê¸°ë„ ì „ì— ë‚´ê²Œ 와서 매달리며 울었다. -"아버지 어떠시ëƒ?" -하고 나는 ìˆœìž„ì˜ ë“±ì„ ë‘드렸다. 나는 다리가 마비가 ë˜ì–´ì„œ ê³§ ì¼ì–´ì„¤ 수가 없었다. -"아버지 어떠시ëƒ?" -하고 나는 한 번 ë” ë¬¼ì—ˆë‹¤. -ìˆœìž„ì€ ë²Œë–¡ ì¼ì–´ë‚˜ ë‘ ì£¼ë¨¹ìœ¼ë¡œ í르는 ëˆˆë¬¼ì„ ì³ë‚´ 버리며, -"대단하셔요." -í•˜ê³ ë„ ìš¸ìŒì„ 금치 못하였다. -노파는 ë²Œì¨ ì°ë§¤ì—서 내려서 기운 없는 걸ìŒìœ¼ë¡œ 비틀비틀 걷기를 시작하였다. -나는 ìˆœìž„ì„ ë”°ë¼ì„œ ì–¸ë•ì„ ì˜¤ë¥´ë©°, -"그래 무슨 병환ì´ì‹œëƒ?" -하고 물었다. -"몰ë¼ìš”. ì‹ ì—´ì´ ëŒ€ë‹¨í•˜ì…”ìš”." -"ì •ì‹ ì€ ì°¨ë¦¬ì‹œë“ ?" -"ì²˜ìŒ ì œê°€ 여기 ì™”ì„ ì ì—는 그렇지 않ë”니 요새ì—는 ê°€ë” í˜¼ìˆ˜ ìƒíƒœì— 빠지시는 모양ì´ì•¼ìš”." -ì´ë§Œí•œ ì§€ì‹ì„ 가지고 나는 최ì„ì´ê°€ 누워 있는 ì§‘ ì•žì— ë‹¤ë‹¤ëžë‹¤. -ì´ ì§‘ì€ í†µë‚˜ë¬´ë¥¼ 댓 ê°œ 우물 ì •ìžë¡œ 가로놓고 ì§€ë¶•ì€ ë¬´ì—‡ìœ¼ë¡œ 했는지 모르나 ëˆˆì´ ë®ì´ê³ , 문 하나 ì°½ 하나를 ë‚´ì—ˆëŠ”ë° ë¬¸ì€ ë‚˜ë¬´ê»ì§ˆì¸ 모양ì´ë‚˜ ì°½ì€ ì –ë¹› 나는 ìœ ë¦¬ì°½ì¸ ì¤„ 알았ë”니 ë’¤ì— ì•Œì•„ë³¸ì¦‰ ê·¸ê²ƒì€ ìœ ë¦¬ê°€ 아니요, ì–‘ëª©ì„ ë°”ë¥´ê³  ë¬¼ì„ ë¿œì–´ì„œ 얼려 ë†“ì€ ê²ƒì´ì—ˆë‹¤. 그리고 통나무와 통나무 틈바구니ì—는 쇠털과 ê°™ì€ ë§ˆë¥¸ í’€ì„ ê¼­ê¼­ 박아서 ë°”ëžŒì„ ë§‰ì•˜ë‹¤. -ë¬¸ì„ ì—´ê³  들어서니 ë¶€ì—Œì— ë“¤ì–´ì„œëŠ” 모양으로 ì‘¥ ë¹ ì¡ŒëŠ”ë° í™”ëˆí™”ëˆí•˜ëŠ” ê²ƒì´ í•œì¦ê³¼ 같다. 그렇지 ì•Šì•„ë„ ì¹¨ì¹¨í•œ ë‚ ì— ì–¸ 눈으로 ê´‘ì„  부족한 ë°©ì— ë“¤ì–´ì˜¤ë‹ˆ, 캄캄 절벽ì´ì–´ì„œ ì•„ë¬´ê²ƒë„ ë³´ì´ì§€ 아니하였다. -순임ì´ê°€ 앞서서 ì–‘ì´ˆì— ë¶ˆì„ ì¼ ë‹¤. 촛불 ë¹›ì€ ë°© 한편 쪽 침대ë¼ê³  í•  만한 ë†’ì€ ê³³ì— ë‹´ìš”ë¥¼ ë®ê³  누운 최ì„ì˜ ì‹œì²´ì™€ ê°™ì€ í° ì–¼êµ´ì„ ë¹„ì¶˜ë‹¤. -"아버지, 아버지 샌전 아저씨 오셨어요." -하고 ìˆœìž„ì€ ìµœì„ì˜ ê·€ì— ìž…ì„ ëŒ€ê³  가만히 불렀다. -그러나 ëŒ€ë‹µì´ ì—†ì—ˆë‹¤. -나는 최ì„ì˜ ì´ë§ˆë¥¼ 만져 보았다. 축축하게 ë•€ì´ í˜ë €ë‹¤. 그러나 그리 ë”ìš´ ì¤„ì€ ëª°ëžë‹¤. -ë°© ì•ˆì˜ ê³µê¸°ëŠ” ìˆ¨ì´ ë§‰íž ë“¯í•˜ì˜€ë‹¤. ê·¸ 난방 장치는 ì‚¼êµ¿ì˜ ì›ë¦¬ë¥¼ ì´ìš©í•œ 것ì´ì—ˆë‹¤. ëŒë©©ì´ë¡œ ì•„ê¶ì´ë¥¼ 쌓고 ê·¸ ìœ„ì— í° ëŒë©©ì´ë“¤ì„ ë§Žì´ ìŒ“ê³  거기다가 ë¶ˆì„ ë•Œì–´ì„œ 달게 한 ë’¤ì— ê±°ê¸° ëˆˆì„ ë¶€ì–´ 뜨거운 ì¦ê¸°ë¥¼ 발하는 것ì´ì—ˆë‹¤. -ì´ ê±´ì¶•ë²•ì€ ì¡°ì„  ë™í¬ë“¤ì´ 시베리아로 ê¸ˆê´‘ì„ ì°¾ì•„ë‹¤ë‹ˆë©´ì„œ 하는 법ì´ëž€ ë§ì„ 들었으나 최ì„ì´ê°€ 누구ì—게서 배워 가지고 ì–´ë–¤ 모양으로 지었는지는 최ì„ì˜ ë§ì„ 듣기 ì „ì—는 알 수 없는 ì¼ì´ë‹¤. -나는 ë‚´ íž˜ì´ ë¯¸ì¹˜ëŠ” ë°ê¹Œì§€ 최ì„ì˜ ë³‘ ì¹˜ë£Œì— ëŒ€í•œ ì†ì„ ì“°ê³  어떻게 해서든지 ì´ë¥´ì¿ ì¸ í¬ì˜ 병ì›ìœ¼ë¡œ 최ì„ì„ ë°ë ¤ë‹¤ê°€ ìž…ì›ì‹œí‚¬ ë„리를 ê¶ë¦¬í•˜ì˜€ë‹¤. 그러나 냉정하게 ìƒê°í•˜ë©´ 최ì„ì€ ì‚´ì•„ë‚  ê°€ë§ì´ 없는 것만 같았다. -ë‚´ê°€ ê°„ ì§€ ì‚¬í˜ ë§Œì— ìµœì„ì€ ì²˜ìŒìœ¼ë¡œ ì •ì‹ ì„ ì°¨ë ¤ì„œ ëˆˆì„ ëœ¨ê³  나를 알아보았다. -그는 반가운 í‘œì •ì„ í•˜ê³  빙그레 웃기까지 하였다. -"다 ì¼ì—†ë‚˜?" -ì´ëŸ° ë§ë„ ì•Œì•„ë“¤ì„ ìˆ˜ê°€ 있었다. -그러나 심히 ê¸°ìš´ì´ ì—†ëŠ” 모양ì´ê¸°ë¡œ 나는 ë§Žì´ ë§ì„ 하지 아니하였다. -최ì„ì€ í•œì°¸ì´ë‚˜ ëˆˆì„ ê°ê³  있ë”니, -"ì •ìž„ì´ ì†Œì‹ ë“¤ì—ˆë‚˜?" -하였다. -"괜찮대요." -하고 ê³ì—서 순임ì´ê°€ ë§í•˜ì˜€ë‹¤. -그리고는 ë˜ í˜¼ëª½í•˜ëŠ” 듯하였다. -ê·¸ ë‚  ë˜ í•œ 번 최ì„ì€ ì •ì‹ ì„ ì°¨ë¦¬ê³  순임ë”러는 저리로 ê°€ë¼ëŠ” ëœ»ì„ í‘œí•˜ê³  나ë”러 귀를 ê°€ê¹Œì´ ëŒ€ë¼ëŠ” ëœ»ì„ ë³´ì´ê¸°ë¡œ 그대로 하였ë”니, -"ë‚´ 가방 ì†ì— ì¼ê¸°ê°€ 있으니 그걸 ìžë„¤ë§Œ 보고는 ë¶ˆì‚´ë¼ ë²„ë ¤. ë‚´ê°€ ì£½ì€ ë’¤ì—ë¼ë„ ê·¸ê²ƒì´ ì„¸ìƒ ì‚¬ëžŒì˜ ëˆˆì— ë“¤ë©´ 안 ë˜ì§€. 순임ì´ê°€ 볼까 ê±±ì •ì´ ë˜ì§€ë§ˆëŠ” ë‚´ê°€ ëª¸ì„ ê¼¼ì§í•  수가 있나." -하는 ëœ»ì„ ë§í•˜ì˜€ë‹¤. -"그러지." -하고 나는 고개를 ë„ë•ì—¬ 보였다. -그러고 난 ë’¤ì— ë‚˜ëŠ” 최ì„ì´ê°€ 시킨 대로 ê°€ë°©ì„ ì—´ê³  ì±…ë“¤ì„ ë’¤ì ¸ì„œ ê·¸ ì¼ê¸°ì±…ì´ë¼ëŠ” ê³µì±…ì„ êº¼ë‚´ì—ˆë‹¤. -"ìˆœìž„ì´ ë„ˆ ì´ê±° 보았니?" -하고 나는 ê³ì—서 ë‚´ê°€ ì±… 찾는 ê²ƒì„ ë³´ê³  ì„°ë˜ ìˆœìž„ì—게 물었다. -"아니오. 그게 무어여요?" -하고 ìˆœìž„ì€ ë‚´ ì†ì— ë“  ì±…ì„ ë¹¼ì•—ìœ¼ë ¤ëŠ” ë“¯ì´ ì†ì„ 내밀었다. -나는 ìˆœìž„ì˜ ì†ì´ ë‹¿ì§€ 않ë„ë¡ ì±…ì„ í•œíŽ¸ìœ¼ë¡œ 비키며, -"ì´ê²ƒì´ 네 아버지 ì¼ê¸°ì¸ 모양ì¸ë° 너는 ë³´ì´ì§€ ë§ê³  나만 ë³´ë¼ê³  하셨다. 네 아버지가 네가 ì´ê²ƒì„ 보았ì„까 해서 염려를 í•˜ì‹œëŠ”ë° ì•ˆ 보았으면 다행ì´ë‹¤." -하고 나는 ê·¸ ì±…ì„ ë“¤ê³  밖으로 나왔다. -ë‚ ì´ ë°ë‹¤. 해는 ì¤‘ì²œì— ìžˆë‹¤. 중천ì´ëž˜ì•¼ ì € 남쪽 ì§€í‰ì„  가까운 ë°ë‹¤. ë°¤ì´ ì—´ì—¬ëŸ ì‹œê°„, ë‚®ì´ ëŒ€ì—¬ì„¯ ì‹œê°„ë°–ì— ì•ˆ ë˜ëŠ” ë¶ìª½ 나ë¼ë‹¤. 멀건 햇빛ì´ë‹¤. -나는 ë³•ì´ ìž˜ 드는 ê³³ì„ ê³¨ë¼ì„œ ë‚˜ë¬´ì— ëª¸ì„ ê¸°ëŒ€ê³  최ì„ì˜ ì¼ê¸°ë¥¼ ì½ê¸° 시작하였다. ì½ì€ 중ì—서 몇 êµ¬ì ˆì„ ê³¨ë¼ ë³¼ê¹Œ. -"ì§‘ì´ ë‹¤ ë˜ì—ˆë‹¤. ì´ ì§‘ì€ ë‚´ê°€ ìƒì „ ì‚´ê³  ê·¸ ì†ì—서 ì´ ì„¸ìƒì„ 마칠 ì§‘ì´ë‹¤. 마ìŒì´ 기ì˜ë‹¤. 시ë„러운 세ìƒì€ 여기서 멀지 아니하ëƒ. ë‚´ê°€ 여기 홀로 있기로 누가 ì°¾ì„ ì‚¬ëžŒë„ ì—†ì„ ê²ƒì´ë‹¤. ë‚´ê°€ 여기서 죽기로 누가 슬í¼í•´ 줄 ì‚¬ëžŒë„ ì—†ì„ ê²ƒì´ë‹¤. 때로 ê³°ì´ë‚˜ 찾아올까. ì§€ë‚˜ê°€ë˜ ì‚¬ìŠ´ì´ë‚˜ 들여다볼까. -ì´ê²ƒì´ ë‚´ 소ì›ì´ 아니ëƒ. 세ìƒì˜ 시ë„ëŸ¬ì›€ì„ ë– ë‚˜ëŠ” ê²ƒì´ ë‚´ 소ì›ì´ 아니ëƒ. ì´ ì†ì—서 나는 나를 ì´ê¸°ê¸°ë¥¼ 공부하ìž." -ì²«ë‚ ì€ ì´ëŸ° í‰ë²”한 소리를 ì¼ë‹¤. -ê·¸ ì´íŠ¿ë‚ ì—는. -"어떻게나 나는 약한 사람ì¸ê³ . ì œ 마ìŒì„ 제가 지배하지 못하는 사람ì¸ê³ . 밤새ë„ë¡ ë‚˜ëŠ” ì •ìž„ì„ ìƒê°í•˜ì˜€ë‹¤. ì–´ë‘ìš´ í—ˆê³µì„ í–¥í•˜ì—¬ ì •ìž„ì„ ë¶ˆë €ë‹¤. ì •ìž„ì´ê°€ 나를 찾아서 ë™ê²½ì„ 떠나서 ì´ë¦¬ë¡œ 오지나 아니하나 하고 ìƒê°í•˜ì˜€ë‹¤. 어떻게나 ë¶€ë„러운 ì¼ì¸ê³ ? 어떻게나 ê°€ì¦í•œ ì¼ì¸ê³ ? -나는 아내를 ìƒê°í•˜ë ¤ 하였다. ì•„ì´ë“¤ì„ ìƒê°í•˜ë ¤ 하였다. 아내와 ì•„ì´ë“¤ì„ ìƒê°í•¨ìœ¼ë¡œ ì •ìž„ì˜ ìƒê°ì„ ì´ê¸°ë ¤ 하였다. -최ì„ì•„, 너는 ë‚¨íŽ¸ì´ ì•„ë‹ˆëƒ. 아버지가 아니ëƒ. ì •ìž„ì€ ë„¤ ë”¸ì´ ì•„ë‹ˆëƒ. ì´ëŸ° ìƒê°ì„ 하였다. -ê·¸ëž˜ë„ ì •ìž„ì˜ ì¼ë¥˜ì „ì€ ì•„ë‚´ì™€ ì•„ì´ë“¤ì˜ ìƒê°ì„ 밀치고 달려오는 절대 ìœ„ë ¥ì„ ê°€ì§„ 듯하였다. -ì•„, 나는 어떻게나 파렴치한 사람ì¸ê³ . ë‚˜ì´ ì‚¬ì‹­ì´ ë„˜ì–´ ì˜¤ì‹­ì„ ë°”ë¼ë³´ëŠ” ë†ˆì´ ì•„ë‹ˆëƒ. ì‚¬ì‹­ì— ë¶ˆí˜¹ì´ë¼ê³  아니 하ëŠëƒ. êµìœ¡ê°€ë¡œ 깨ë—한 êµì¸ìœ¼ë¡œ ì¼ìƒì„ ì‚´ì•„ 왔다고 ìžì²˜í•˜ëŠ” ë‚´ê°€ ì•„ë‹ˆëƒ í•˜ê³  나는 ë‚´ 입으로 ë‚´ ì†ê°€ë½ì„ 물어서 ë‘ êµ°ë°ë‚˜ 피를 내었다." -최ì„ì˜ ë‘˜ì§¸ ë‚  ì¼ê¸°ëŠ” 계ì†ëœë‹¤. -"ë‚´ ì†ê°€ë½ì—서 피가 ë‚  ë•Œì— ë‚˜ëŠ” 유쾌하였다. 나는 ìŠ¹ì²©ì˜ ê¸°ì¨ì„ 깨달았다. -그러나 ì•„ì•„ 그러나 ê·¸ 빨간, ì°¸íšŒì˜ í•방울 ì†ì—ì„œë„ ì• ìš•ì˜ ë¶ˆê¸¸ì´ ì¼ì§€ 아니하는가. 나는 마침내 ì œë„í•  수 없는 ì¸ìƒì¸ê°€." -ì´ ì§‘ì— ë“  ì§€ ë‘˜ì§¸ë‚ ì— ë²Œì¨ ì´ëŸ¬í•œ ë¹„ê´€ì  ë§ì„ 하였다. -ë˜ ë©°ì¹ ì„ ì§€ë‚œ ë’¤ ì¼ê¸°ì—, -"나는 ë™ê²½ìœ¼ë¡œ ëŒì•„가고 싶다. ì •ìž„ì˜ ê³ìœ¼ë¡œ 가고 싶다. 시베리아ì˜ê´‘ì•¼ì˜ ìœ í˜¹ë„ ì•„ë¬´ íž˜ì´ ì—†ë‹¤. ì–´ì ¯ë°¤ì€ ì‚¼ë¦¼ì˜ ì¢‹ì€ ë‹¬ì„ ë³´ì•˜ìœ¼ë‚˜ ê·¸ ë‹¬ì„ ì•„ë¦„ë‹µê²Œ ë³´ë ¤ 하였으나 아무리 í•˜ì—¬ë„ ì•„ë¦„ë‹µê²Œ ë³´ì´ì§€ë¥¼ 아니하였다. -하늘ì´ë‚˜ 달ì´ë‚˜ 삼림ì´ë‚˜ ëª¨ë‘ ë¬´ì˜ë¯¸í•œ 존재다. ì´ì²˜ëŸ¼ 무ì˜ë¯¸í•œ 존재를 나는 경험한 ì¼ì´ 없다. ê·¸ê²ƒì€ ë‹¤ë§Œ 기ì¨ì„ ìžì•„ë‚´ì§€ 아니할 ë¿ë”러 ìŠ¬í””ë„ ìžì•„ë‚´ì§€ 못하였다. ê·¸ê²ƒì€ ìž¿ë”미였다. ì•„ë¬´ë„ ë“£ëŠ” ì´ ì—†ëŠ” ë°ì„œ ë‚´ ì§„ì •ì„ ë§í•˜ë¼ë©´ ê·¸ê²ƒì€ ì´ ì²œì§€ì— ë‚´ê²Œ ì˜ë¯¸ 있는 ê²ƒì€ ì •ìž„ì´ë°–ì— ì—†ë‹¤ëŠ” 것ì´ë‹¤. -나는 ì •ìž„ì˜ ê³ì— 있고 싶다. ì •ìž„ì„ ë‚´ ê³ì— ë‘ê³  싶다. 왜? ê·¸ê²ƒì€ ë‚˜ë„ ëª¨ë¥¸ë‹¤. -ë§Œì¼ ì´ ì›€ ì†ì—ë¼ë„ ì •ìž„ì´ê°€ 있다 하면 얼마나 ì´ê²ƒì´ ì¦ê±°ìš´ ê³³ì´ ë ê¹Œ. -그러나 ì´ê²ƒì€ 불가능한 ì¼ì´ë‹¤. ì´ ì¼ì´ 있어서는 아니 ëœë‹¤. 나는 ì´ ìƒê°ì„ 죽여야 한다. 다시 ê±°ë‘를 못 하ë„ë¡ ëª©ìˆ¨ì„ ëŠì–´ 버려야 한다. -ì´ê²ƒì„ 나는 ì›í•œë‹¤. ì›í•˜ì§€ë§ˆëŠ” 내게는 ê·¸ íž˜ì´ ì—†ëŠ” 모양ì´ë‹¤. -나는 종êµë¥¼ ìƒê°í•˜ì—¬ 본다. ì² í•™ì„ ìƒê°í•˜ì—¬ 본다. ì¸ë¥˜ë¥¼ ìƒê°í•˜ì—¬ 본다. 나ë¼ë¥¼ ìƒê°í•˜ì—¬ 본다. ì´ê²ƒì„ 가지고 ë‚´ 애욕과 바꾸려고 ì• ì¨ ë³¸ë‹¤. 그렇지마는 내게 그러한 íž˜ì´ ì—†ë‹¤. 나는 완전히 í—¬í”Œë¦¬ìŠ¤í•¨ì„ ê¹¨ë‹«ëŠ”ë‹¤. -ì•„ì•„ 나는 어찌할꼬? -나는 못ìƒê¸´ 사람ì´ë‹¤. 그까짓 ê²ƒì„ ëª» ì´ê²¨? 그까짓 ê²ƒì„ ëª» ì´ê²¨? -나는 ì˜ˆìˆ˜ì˜ ê´‘ì•¼ì—ì„œì˜ ìœ í˜¹ì„ ìƒê°í•œë‹¤. 천하를 주마 하는 ìœ í˜¹ì„ ìƒê°í•œë‹¤. 나는 싯다르타 태ìžê°€ 왕ê¶ì„ 버리고 나온 ê²ƒì„ ìƒê°í•˜ê³ , ë˜ ìŠ¤í† ì•„ ì² í•™ìžì˜ ì˜ì§€ë ¥ì„ ìƒê°í•˜ì˜€ë‹¤. -그러나 나는 그러한 ìƒê°ìœ¼ë¡œë„ ì´ ìƒê°ì„ ì´ê¸¸ 수가 없는 것 같다. -나는 í˜ëª…가를 ìƒê°í•˜ì˜€ë‹¤. 모든 것 ì‚¬ëž‘ë„ ëª©ìˆ¨ë„ ë‹¤ 헌신ì§ê°™ì´ ì§‘ì–´ë˜ì§€ê³  피 í르는 마당으로 뛰어나가는 용사를 ìƒê°í•˜ì˜€ë‹¤. 나는 ì´ë없는 삼림 ì†ìœ¼ë¡œ í˜ëª…ì˜ ìš©ì‚¬ 모양으로 달ìŒë°•질치다가 ê¸°ìš´ì´ ì§„í•œ ê³³ì—서 죽어 버리는 ê²ƒì´ ì†Œì›ì´ì—ˆë‹¤. 그러나 ê±°ê¸°ê¹Œì§€ë„ ì´ ìƒê°ì€ 따르지 아니할까. -나는 지금 ê³§ 죽어 버릴까. 나는 육혈í¬ë¥¼ ì†ì— 들어 보았다. ì´ ë°©ì•„ì‡ ë¥¼ 한 번만 튕기면 ë‚´ ìƒëª…ì€ ì—†ì–´ì§€ëŠ” ê²ƒì´ ì•„ë‹Œê°€. 그리 ë˜ë©´ 모든 ì´ ë§ˆìŒì˜ 움ì§ìž„ì€ ì†Œë©¸ë˜ëŠ” ê²ƒì´ ì•„ë‹Œê°€. ì´ê²ƒìœ¼ë¡œ 만사가 í•´ê²°ë˜ëŠ” ê²ƒì´ ì•„ë‹Œê°€. -ì•„ 하나님ì´ì‹œì—¬, íž˜ì„ ì£¼ì‹œì˜µì†Œì„œ. 천하를 ì´ê¸°ëŠ” íž˜ë³´ë‹¤ë„ ë‚˜ ìžì‹ ì„ ì´ê¸°ëŠ” íž˜ì„ ì£¼ì‹œì˜µì†Œì„œ. ì´ ì£„ì¸ìœ¼ë¡œ 하여금 í•˜ë‚˜ë‹˜ì˜ ëˆˆì— ì˜ë¡­ê³  깨ë—한 사람으로 ì´ ì¼ìƒì„ 마치게 하여 주시옵소서, ì´ë ‡ê²Œ 나는 기ë„를 한다. -그러나 하나님께서는 나를 버리셨다. 하나님께서는 내게 íž˜ì„ ì£¼ì‹œì§€ 아니하시었다. 나를 ì´ ë¹„ì°¸í•œ ìžë¦¬ì—서 ì©ì–´ì ¸ 죽게 하시었다." -최ì„ì€ ì–´ë–¤ ë‚  ì¼ê¸°ì— ë˜ ì´ëŸ° ê²ƒë„ ì¼ë‹¤. ê·¸ê²ƒì€ ì˜ˆì „ 내게 보낸 íŽ¸ì§€ì— ìžˆë˜ ê¿ˆ ì´ì•¼ê¸°ë¥¼ ì—°ìƒì‹œí‚¤ëŠ” 것ì´ì—ˆë‹¤. ê·¸ê²ƒì€ ì´ëŸ¬í•˜ë‹¤. -"오늘 ë°¤ì€ ë‹¬ì´ ì¢‹ë‹¤. ì‹œë² ë¦¬ì•„ì˜ ê²¨ìš¸ 해는 ì°¸ 못ìƒê¸´ ì‚¬ëžŒê³¼ë„ ê°™ì´ ê¸°ìš´ì´ ì—†ì§€ë§ˆëŠ” 하얀 ë•…, 검푸른 í•˜ëŠ˜ì— ì €ìª½ ì§€í‰ì„ ì„ 향하고 í˜ëŸ¬ê°€ëŠ” ë°˜ë‹¬ì€ ì°¸ìœ¼ë¡œ ë§‘ìŒ ê·¸ê²ƒì´ì—ˆë‹¤. -나는 í‰ìƒ ì²˜ìŒ ì‹œ 비슷한 ê²ƒì„ ì§€ì—ˆë‹¤. -임과 ì´ë³„í•˜ë˜ ë‚  ë°¤ì—는 남쪽 나ë¼ì— 바람비가 쳤네 -ìž„ 타신 ìžë™ì°¨ì˜ ë’·ë¶ˆì´ ë¹¨ê°„ ë’·ë¶ˆì´ ë¹—ë°œì— ì°¢ê²¼ë„¤ -ìž„ 떠나 í˜¼ìž í—¤ë§¤ëŠ” ì‹œë² ë¦¬ì•„ì˜ ì˜¤ëŠ˜ ë°¤ì—는 -지려는 ìª½ë‹¬ì´ ëˆˆ ë®ì¸ ì‚¼ë¦¼ì— ê±¸ë ¸êµ¬ë‚˜ -ì•„ì•„ ì € 쪽달ì´ì—¬ -억지로 ë°˜ì„ ê°ˆê²¨ì§„ ê²ƒë„ ê°™ì•„ë¼ -ì•„ì•„ ì € 쪽달ì´ì—¬ -잃어진 ì§ì„ 찾아 -차디찬 허공 ì†ì„ ì˜ì›ížˆ 헤매는 ê²ƒë„ ê°™êµ¬ë‚˜ -ë‚˜ë„ ì € 달과 ê°™ì´ ìžƒì–´ë²„ë¦° ë°˜ìª½ì„ ì°¾ì•„ 무ê¶í•œ 시간과 공간ì—서 헤매는 것만 같다. -ì—ìµ. ë‚´ê°€ 왜 ì´ë¦¬ 약한가. 어찌하여 í¬ë‚˜í° ë§Žì€ ì¼ì„ ëŒì•„ë³´ì§€ 못하고 요만한 ì• ìš•ì˜ í¬ë¡œê°€ ë˜ëŠ”ê°€. -그러나 나는 차마 ê·¸ ë‹¬ì„ ë²„ë¦¬ê³  들어올 수가 없었다. ë‚´ê°€ 왜 ì´ë ‡ê²Œ 센티멘털하게 ë˜ì—ˆëŠ”ê³ . ë‚´ 쇠 ê°™ì€ ì˜ì§€ë ¥ì´ 어디로 갔는고. ë‚´ 누를 수 없는 ìžì¡´ì‹¬ì´ 어디로 갔는고. 나는 마치 ìœ ëª¨ì˜ ì†ì— 달린 젖먹ì´ì™€ë„ 같다. ë‚´ ì¼ì‹ ì€ ë„시 ì• ìš• ë©ì–´ë¦¬ë¡œ 화해 버린 것 같다. -ì´ë¥¸ë°” 사랑 사랑ì´ëž€ ë§ì€ 종êµì  ì˜ë¯¸ì¸ 것 ì´ì™¸ì—ë„ ìž…ì— ë‹´ê¸°ë„ ì‹«ì–´í•˜ë˜ ë§ì´ë‹¤ ì´ëŸ° ê²ƒì€ ë‚´ ì˜ì§€ë ¥ê³¼ ìžì¡´ì‹¬ì„ 녹여 버렸는가. ë˜ ì´ ë¶€ìžì—°í•œ ê³ ë…ì˜ ìƒí™œì´ 나를 ì´ë ‡ê²Œ ë‚´ ì¸ê²©ì„ ì´ë ‡ê²Œ 파괴하였는가. -그렇지 아니하면 ë‚´ ìžì¡´ì‹¬ì´ë¼ëŠ” 것ì´ë‚˜, ì˜ì§€ë ¥ì´ë¼ëŠ” 것ì´ë‚˜, ì¸ê²©ì´ë¼ëŠ” ê²ƒì´ ëª¨ë‘ ì„¸ìƒì˜ 습관과 ì‚¬ì¡°ì— íœ©ì“¸ë¦¬ë˜ ê²ƒì¸ê°€. ë‚¨ë“¤ì´ ê·¸ëŸ¬ë‹ˆê¹Œ ë‚¨ë“¤ì´ ì˜³ë‹¤ë‹ˆê¹Œ ë‚¨ë“¤ì´ ë¬´ì„œìš°ë‹ˆê¹Œ ì´ ì• ìš•ì˜ ë¬´ë¤ì— 회를 ë°œëžë˜ 것ì¸ê°€. 그러다가 ê³ ë…ê³¼ ë°˜ì„±ì˜ ê¸°íšŒë¥¼ 얻으매 모든 회칠과 ê°€ë©´ì„ ë–¼ì–´ 버리고 ë¹¨ê°€ë²—ì€ ì• ìš•ì˜ ë­‰í……ì´ê°€ 나온 것ì¸ê°€. -그렇다 하면, ì´ê²ƒì´ ì°¸ëœ ë‚˜ì¸ê°€. ì´ê²ƒì´ 하나님께서 지어 주신 ëŒ€ë¡œì˜ ë‚˜ì¸ê°€. ê°€ìŠ´ì— íƒ€ì˜¤ë¥´ëŠ” ì• ìš•ì˜ ë¶ˆê¸¸ ì´ ë¶ˆê¸¸ì´ ê³§ ë‚´ ì˜í˜¼ì˜ 불길ì¸ê°€. -어쩌면 ê·¸ 모든 ë†’ì€ ì´ìƒë“¤ ì¸ë¥˜ì— 대한, ë¯¼ì¡±ì— ëŒ€í•œ, ë„ë•ì— ëŒ€í•œ, ì‹ ì•™ì— ëŒ€í•œ ê·¸ ë†’ì€ ì´ìƒë“¤ì´ ì´ë ‡ê²Œë„ 만만하게 마치 ë°”ëžŒì— ë¶ˆë¦¬ëŠ” 재 모양으로 ìžì·¨ë„ ì—†ì´ í©ì–´ì ¸ 버리고 ë§ê¹Œ. 그리고 ê·¸ ë’¤ì—는 í‰ì†Œì—ê·¸ë ‡ê²Œë„ ë¯¸ì›Œí•˜ê³  천히 ì—¬ê¸°ë˜ ì• ìš•ì˜ ê²€ì€ í™ë§Œ 남고 ë§ê¹Œ. -ì•„ì•„ ì € 눈 ë®ì¸ ë•…ì´ì—¬, 차고 ë§‘ì€ ë‹¬ì´ì—¬, 허공ì´ì—¬! 나는 너í¬ë“¤ì„ 부러워하노ë¼. -불êµë„ë“¤ì˜ í•´íƒˆì´ë¼ëŠ” ê²ƒì´ ì´ëŸ¬í•œ ì• ìš•ì´ ë¶ˆë¶™ëŠ” 지옥ì—서 눈과 ê°™ì´ ì‹¸ëŠ˜í•˜ê³  허공과 ê°™ì´ ë¹ˆ 곳으로 들어ê°ì„ ì´ë¦„ì¸ê°€. -ì„ê°€ì˜ íŒ” ë…„ ê°„ 설산 ê³ í–‰ì´ ì´ ì• ìš•ì˜ ë¿Œë¦¬ë¥¼ ëŠìœ¼ë ¤ 함ì´ë¼ 하고 ì˜ˆìˆ˜ì˜ ì‚¬ì‹­ ì¼ ê´‘ì•¼ì˜ ê³ í–‰ê³¼ ê²Ÿì„¸ë§ˆë„¤ì˜ ê³ ë¯¼ë„ ì´ ì• ìš•ì˜ ë¿Œë¦¬ 때문ì´ì—ˆë˜ê°€. -그러나 ê·¸ê²ƒì„ ì´ê¸°ì–´ 낸 ì‚¬ëžŒì´ ì²œì§€ 개벽 ì´ëž˜ì— 몇몇ì´ë‚˜ ë˜ì—ˆëŠ”ê³ ? 나 ê°™ì€ ê²ƒì´ ê·¸ ì¤‘ì— í•œ 사람 ë˜ê¸°ë¥¼ 바랄 수가 있ì„까. -나 같아서는 마침내 ì´ ì• ìš•ì˜ ë¶ˆê¸¸ì— ë‹¤ 타서 재가 ë˜ì–´ 버릴 것만 같다. ì•„ì•„ 어떻게나 힘있고 무서운 불길ì¸ê³ ." -ì´ëŸ¬í•œ ê³ ë¯¼ì˜ ìžë°±ë„ 있었다. -ë˜ ì–´ë–¤ ë‚  ì¼ê¸°ì—는 최ì„ì€ ì´ëŸ° ë§ì„ ì¼ë‹¤. -"나는 단연히 ë™ê²½ìœ¼ë¡œ ëŒì•„가기를 결심하였다." -그리고는 ê·¸ ì´íŠ¿ë‚ ì€, -"나는 단연히 ë™ê²½ìœ¼ë¡œ ëŒì•„가리란 ê²°ì‹¬ì„ í•œ ê²ƒì„ êµ³ì„¸ê²Œ 취소한다. 나는 ì´ëŸ¬í•œ ê²°ì‹¬ì„ í•˜ëŠ” 나 ìžì‹ ì„ 굳세게 ë¶€ì¸í•œë‹¤." -ë˜ ì´ëŸ° ë§ë„ 있다. -"나는 ì •ìž„ì„ ì‹œë² ë¦¬ì•„ë¡œ 부르련다." -ë˜ ê·¸ 다ìŒì—는, -"ì•„ì•„ 나는 í•˜ë£¨ë°”ì‚ ì£½ì–´ì•¼ 한다. ì´ ëª©ìˆ¨ì„ ì—°ìž¥í•˜ì˜€ë‹¤ê°€ëŠ” 무슨 ì¼ì„ 저지를는지 모른다. 나는 깨ë—하게 나를 ì´ê¸°ëŠ” ë„ë•ì  ì¸ê²©ìœ¼ë¡œ ì´ ì¼ìƒì„ 마ì³ì•¼ 한다. ì´ ë°–ì— ë‚´ ì‚¬ì—…ì´ ë¬´ì—‡ì´ëƒ." -ë˜ ì–´ë–¤ ê³³ì—는, -"ì•„ì•„ 무서운 하룻밤ì´ì—ˆë‹¤. 나는 지난 í•˜ë£»ë°¤ì„ ëˆ„ë¥¼ 수 없는 ì• ìš•ì˜ ë¶ˆê¸¸ì— íƒ”ë‹¤. 나는 ë‚´ 주먹으로 ë‚´ ê°€ìŠ´ì„ ë‘드리고 머리를 ë²½ì— ë¶€ë”ªì³¤ë‹¤. 나는 주먹으로 ë‹´ë²½ì„ ë‘드려 ì†ë“±ì´ 터져서 피가 í˜ë €ë‹¤. 나는 ë‚´ 머리카ë½ì„ ì¥ì–´ëœ¯ì—ˆë‹¤. 나는 ìˆ˜ì—†ì´ ë°œì„ êµ´ë €ë‹¤. 나는 ì´ ë¬´ì„œìš´ ìœ í˜¹ì„ ì´ê¸°ë ¤ê³  ë‚´ ëª¸ì„ ì•„í”„ê²Œ 하였다. 나는 견디다 못하여 ë¬¸ì„ ë°•ì°¨ê³  뛰어나갔다. ë°–ì—는 ë‹¬ì´ ìžˆê³  ëˆˆì´ ìžˆì—ˆë‹¤. 그러나 ëˆˆì€ í•ë¹›ì´ìš”, ë‹¬ì€ ì°Œê·¸ëŸ¬ì§„ 것 같았다. 나는 눈 ì†ìœ¼ë¡œ 달ìŒë°•질쳤다. ë‹¬ì„ ë”°ë¼ì„œ 엎드러지며 ìžë¹ ì§€ë©° 달ìŒì§ˆì³¤ë‹¤. 나는 소리를 질렀다. 나는 미친 사람 같았다." -그러고는 어디까지 갔다가 ì–´ëŠ ë•Œì— ì–´ë– í•œ ì‹¬ê²½ì˜ ë³€í™”ë¥¼ 얻어 가지고 ëŒì•„왔다는 ë§ì€ ì“°ì´ì§€ 아니하였으나 최ì„ì˜ ë³‘ì˜ ì›ì¸ì„ 설명하는 것 같았다. -"ì—´ì´ ë‚˜ê³  ê¸°ì¹¨ì´ ë‚œë‹¤. ê°€ìŠ´ì´ ì•„í”„ë‹¤. ì´ê²ƒì´ íë ´ì´ ë˜ì–´ì„œ í˜¼ìž ê¹¨ë—하게 ì´ ìƒëª…ì„ ë§ˆì¹˜ê²Œ 하여 주소서 하고 빈다. 나는 오늘부터 먹고 마시기를 그치련다." -ì´ëŸ¬í•œ ë§ì„ ì¼ë‹¤. 그러고는, -"ì •ìž„, ì •ìž„, ì •ìž„, ì •ìž„." -하고 ì •ìž„ì˜ ì´ë¦„ì„ ìˆ˜ì—†ì´ ì“´ ê²ƒë„ ìžˆê³ , ì–´ë–¤ ë°ëŠ”, -"Overcome, Overcome." -하고 ì˜ì–´ë¡œ ì“´ ê²ƒë„ ìžˆì—ˆë‹¤. -그리고 마지막ì—, -"나는 죽ìŒê³¼ 대면하였다. 사í˜ì§¸ êµ¶ê³  ì•“ì€ ì˜¤ëŠ˜ì— ë‚˜ëŠ” 극히 ë§‘ê³  침착한 정신으로 죽ìŒê³¼ 대면하였다. 죽ìŒì€ ê²€ì€ ì˜·ì„ ìž…ì—ˆìœ¼ë‚˜ ê·¸ 얼굴ì—는 ìžë¹„ì˜ í‘œì •ì´ ìžˆì—ˆë‹¤. 죽ìŒì€ ê³§ ê²€ì€ ì˜·ì„ ìž…ì€ êµ¬ì›ì˜ ì†ì´ì—ˆë‹¤. 죽ìŒì€ 아름다운 그림ìžì˜€ë‹¤. 죽ìŒì€ 반가운 ì• ì¸ì´ìš”, ê²°ì½” 무서운 ì›ìˆ˜ê°€ 아니었다. 나는 죽ìŒì˜ ì†ì„ 잡노ë¼. ê°ì‚¬í•˜ëŠ” 마ìŒìœ¼ë¡œ 죽ìŒì˜ í’ˆì— ì•ˆê¸°ë…¸ë¼. 아멘." -ì´ê²ƒì„ ì“´ ë’¤ì—는 다시는 ì¼ê¸°ê°€ 없었다. ì´ê²ƒìœ¼ë¡œ 최ì„ì´ê°€ ê·¸ ë™ì•ˆ 지난 ì¼ì„ ì ì–´ë„ ì‹¬ë¦¬ì  ë³€í™”ë§Œì€ ëŒ€ê°• 추측할 수가 있었다. -다행히 최ì„ì˜ ë³‘ì€ ì ì  ëŒë¦¬ëŠ” 듯하였다. ì—´ë„ ë‚´ë¦¬ê³  ì‹ì€ë•€ë„ ëœ í˜ë ¸ë‹¤. 안 먹는다고 ê³ ì§‘í•˜ë˜ ìŒì‹ë„ 먹기를 시작하였다. -ì •ìž„ì—게로 ê°”ë˜ ë…¸íŒŒì—게서는 ì •ìž„ë„ ì—´ì´ ë‚´ë¦¬ê³  ì¼ì–´ë‚˜ ì•‰ì„ ë§Œí•˜ë‹¤ëŠ” 편지가 왔다. -나는 ë…¸íŒŒì˜ íŽ¸ì§€ë¥¼ 최ì„ì—게 ì½ì–´ 주었다. 최ì„ì€ ê·¸ 편지를 듣고 매우 í¥ë¶„하는 모양ì´ì—ˆìœ¼ë‚˜ ê³§ 안심하는 ë¹›ì„ ë³´ì˜€ë‹¤. -나는 최ì„ì˜ ë³‘ì´ ëŒë¦¬ëŠ” ê²ƒì„ ë³´ê³  ì •ìž„ì„ ì°¾ì•„ë³¼ 양으로 떠나려 하였으나 순임ì´ê°€ 듣지 아니하였다. 혼ìžì„œ 앓는 아버지를 ë§¡ì•„ 가지고 ìžˆì„ ìˆ˜ëŠ” 없다는 것ì´ì—ˆë‹¤. 그래서 노파가 오기를 기다리기로 하였다. -나는 최ì„ì´ê°€ ë¨¹ì„ ìŒì‹ë„ ì‚´ 겸 우편국ì—ë„ ë“¤ë¥¼ 겸 시가까지 가기로 하고 ì´ ê³³ 온 ì§€ ì¼ ì£¼ì¼ì´ë‚˜ 지나서 처ìŒìœ¼ë¡œ ì‚°ì—서 나왔다. -나는 ì´ë¥´ì¿ ì¸ í¬ì— 가서 최ì„ì„ ìœ„í•˜ì—¬ 약품과 ë¨¹ì„ ê²ƒì„ ì‚¬ê³  ë˜ ìˆœìž„ì„ ìœ„í•´ì„œë„ ë¨¹ì„ ê²ƒê³¼ ì˜ë³µê³¼ ë˜ í•˜ëª¨ë‹ˆì¹´ì™€ ì†í’ê¸ˆë„ ì‚¬ 가지고 ì •ê±°ìž¥ì— ë‚˜ì™€ì„œ ëŒì•„올 차를 기다리고 있었다. -나는 순후해 ë³´ì´ëŠ” ì•„ë¼ì‚¬ ì‚¬ëžŒë“¤ì´ ì •ê±°ìž¥ì—서 오ë½ê°€ë½í•˜ëŠ” ê²ƒì„ ë³´ê³  ì†ìœ¼ë¡œëŠ” 최ì„ì´ê°€ ë³‘ì´ ì¢€ ë‚˜ì€ ê²ƒì„ ë‹¤í–‰ìœ¼ë¡œ ìƒê°í•˜ê³ , ë˜ ìµœì„ê³¼ ì •ìž„ì˜ ìž¥ëž˜ê°€ ì–´ì°Œ ë ê¹Œ 하는 ê²ƒë„ ìƒê°í•˜ë©´ì„œ 뷔페(ì‹ë‹¹)ì—서 뜨거운 ì°¨ì´(ì°¨)를 마시고 있었다. -ì´ ë•Œì— ë°–ì„ ë°”ë¼ë³´ê³  ìžˆë˜ ë‚´ ëˆˆì€ ë¬¸ë“ ì´ìƒí•œ ê²ƒì„ ë³´ì•˜ë‹¤. ê·¸ê²ƒì€ ê·¸ 노파가 ì´ë¦¬ë¡œ 향하고 걸어오는 것ì¸ë° ê·¸ 노파와 íŒ”ì„ ê±¸ì€ ì Šì€ ì—¬ìžê°€ 있는 것ì´ë‹¤. 머리를 ê²€ì€ ìˆ˜ê±´ìœ¼ë¡œ 싸매고 ìž…ê³¼ 코를 가리웠으니 분명히 알 수 없으나 í˜¹ì€ ì •ìž„ì´ë‚˜ 아닌가 í•  ìˆ˜ë°–ì— ì—†ì—ˆë‹¤. ì •ìž„ì´ê°€ 몸만 기ë™í•˜ê²Œ ë˜ë©´ 최ì„ì„ ë³´ëŸ¬ 올 ê²ƒì€ ì •ìž„ì˜ ì—´ì •ì ì¸ 성격으로 보아서 당연한 ì¼ì´ê¸° 때문ì´ì—ˆë‹¤. -나는 반쯤 ë¨¹ë˜ ì°¨ë¥¼ 놓고 뷔페 밖으로 뛰어나갔다. -"오 미시즈 체스터필드?" -하고 나는 노파 ì•žì— ì†ì„ 내어밀었다. 노파는 체스터필드ë¼ëŠ” 미국 ë‚¨íŽ¸ì˜ ì„±ì„ ë”°ë¼ì„œ 부르는 ê²ƒì„ ê¸°ì–µí•˜ì˜€ë‹¤. -"ì„ ìƒë‹˜!" -하는 ê²ƒì€ ì •ìž„ì´ì—ˆë‹¤. ê·¸ ì†Œë¦¬ë§Œì€ ë³€ì¹˜ 아니하였다. 나는 ê²€ì€ ìž¥ê°‘ì„ ë‚€ ì •ìž„ì˜ ì†ì„ 잡았다. 나는 여러 ë§ ì•„ë‹ˆí•˜ê³  노파와 ì •ìž„ì„ ë·”íŽ˜ë¡œ ëŒê³  들어왔다. -ëŠ™ì€ ë·”íŽ˜ ë³´ì´ëŠ” 번ì©ë²ˆì©í•˜ëŠ” 사모바르ì—서 ì°¨ ë‘ ìž”ì„ ë”°ë¼ë‹¤ê°€ 노파와 ì •ìž„ì˜ ì•žì— ë†“ì•˜ë‹¤. -노파는 어린애ì—게 하는 모양으로 ì •ìž„ì˜ ìˆ˜ê±´ì„ ë²—ê²¨ 주었다. ê·¸ ì†ì—서는 해쓱하게 여윈 ì •ìž„ì˜ ì–¼êµ´ì´ ë‚˜ì™”ë‹¤. ë‘ ë³¼ì— ë¶ˆê·¸ë ˆí•˜ê²Œ í™í›ˆì´ ë„는 ê²ƒë„ ë³‘ 때문ì¸ê°€. -"어때? ì‹ ì—´ì€ ì—†ë‚˜?" -하고 나는 ì •ìž„ì—게 물었다. -"괜찮아요." -하고 ì •ìž„ì€ ì›ƒìœ¼ë©°, -"최 ì„ ìƒë‹˜ê»˜ì„œëŠ” 어떠세요?" -하고 묻는다. -"좀 나으신 모양ì´ì•¼. 그래서 나는 오늘 ì •ìž„ì„ ì¢€ 보러 가려고 í–ˆëŠ”ë° ì´ ì²´ìŠ¤í„°í•„ë“œ ë¶€ì¸ê»˜ì„œ 아니 오시면 순임ì´ê°€ í˜¼ìž ìžˆì„ ìˆ˜ê°€ 없다고 해서, 그래 ì´ë ‡ê²Œ 최 ì„ ìƒ ìžì‹¤ ê²ƒì„ ì‚¬ 가지고 가는 길ì´ì•¼." -하고 ë§ì„ í•˜ë©´ì„œë„ ë‚˜ëŠ” ì •ìž„ì˜ ëˆˆê³¼ ìž…ê³¼ 목ì—서 ê·¸ì˜ ë³‘ê³¼ 마ìŒì„ 알아보려고 애를 ì¼ë‹¤. -ì¤‘ë³‘ì„ ì•“ì€ ê¹ í•´ì„œëŠ” 한 달 ì „ 남대문서 ë³¼ 때보다 얼마 ë” ì´ˆì·Œí•œ 것 같지는 아니하였다. -"네ì—." -하고 ì •ìž„ì€ ê³ ê°œë¥¼ 숙였다. ê·¸ì˜ ì•ˆê²½ì•Œì—는 ì´ìŠ¬ì´ ë§ºí˜”ë‹¤. -"ì„ ìƒë‹˜ ëŒì€ 다 안녕하셔요?" -"ì‘, ë‚´ê°€ ë– ë‚  때ì—는 괜찮았어." -"최 ì„ ìƒë‹˜ ëŒë„?" -"ì‘." -"ì„ ìƒë‹˜ í½ì€ 애를 쓰셨어요." -하고 ì •ìž„ì€ ìš¸ìŒì¸ì§€ 웃ìŒì¸ì§€ 모를 웃ìŒì„ 웃는다. -ë§ì„ 모르는 노파는 우리가 하는 ë§ì„ 눈치나 채려는 ë“¯ì´ ë©€ê±°ë‹ˆ ë³´ê³  있다가 서투른 ì˜ì–´ë¡œ, -"ì•„ì§ ë¯¸ìŠ¤ ë‚¨ì€ ì‹ ì—´ì´ ìžˆë‹µë‹ˆë‹¤. ê·¸ëž˜ë„ ê°€ 본다고, ì£½ì–´ë„ ê°€ 본다고 ë‚´ ë§ì„ 안 듣고 ë”°ë¼ì™”지요." -하고 ì •ìž„ì—게 ì• ì • 있는 눈í˜ê¹€ì„ 주며, -"유 노티 ì°¨ì¼ë“œ(ë§ì½ê¾¼ì´)." -하고 ìž…ì„ ì”°ë£©í•˜ë©° ì •ìž„ì„ ì•ˆê²½ 위로 본다. -"니체워, 마뚜슈까(괜찮아요, 어머니)." -하고 ì •ìž„ì€ ë…¸íŒŒë¥¼ ë³´ê³  웃었다. ì •ìž„ì˜ ì„œì–‘ 사람ì—게 대한 í–‰ë™ì€ 서양ì‹ìœ¼ë¡œ 째었다고 ìƒê°í•˜ì˜€ë‹¤. -ì •ìž„ì€ ë„리어 유쾌한 ë¹›ì„ ë³´ì˜€ë‹¤. 다만 ê·¸ì˜ ë¶‰ì€ë¹› ë¤ ëˆˆê³¼ 마른 ìž…ìˆ ì´ ê·¸ì˜ ëª¸ì— ì—´ì´ ìžˆìŒì„ 보였다. 나는 ê·¸ì˜ ì†ëê³¼ ë°œëì´ ì‹¸ëŠ˜í•˜ê²Œ ì–¼ì—ˆì„ ê²ƒì„ ìƒìƒí•˜ì˜€ë‹¤. -마침 ì´ ë‚ ì€ ë‚ ì´ ì˜¨í™”í•˜ì˜€ë‹¤. ì—·ì€ í–‡ë¹›ë„ ì˜¤ëŠ˜ì€ ë‘꺼워진 듯하였다. -우리 세 ì‚¬ëžŒì€ Fì—­ì—서 내려서 ì°ë§¤ 하나를 얻어 타고 산으로 향하였다. ì‚°ë„ ì•„ë‹ˆì§€ë§ˆëŠ” ì‚° 있는 나ë¼ì—서 ì‚´ë˜ ìš°ë¦¬ëŠ” 최ì„ì´ê°€ 사는 ê³³ì„ ì‚°ì´ë¼ê³  부르는 ìŠµê´€ì„ ì§€ì—ˆë‹¤. ì‚¼ë¦¼ì´ ìžˆìœ¼ë‹ˆ ì‚°ê°™ì´ ìƒê°ëœ 까닭ì´ì—ˆë‹¤. -노파가 오른편 ëì— ì•‰ê³ , 가운ë°ë‹¤ê°€ ì •ìž„ì„ ì•‰ížˆê³  왼편 ëì— ë‚´ê°€ 앉았다. -쩟쩟쩟 하는 ì†Œë¦¬ì— ë§ì€ 달리기 시작하였다. 한 í•„ì€ í‚¤ í° ë§ì´ìš”, 한 í•„ì€ í‚¤ê°€ ìž‘ì€ ë§ì¸ë° 키 í° ë§ì€ 아마 ëŠ™ì€ êµ°ë§ˆ 퇴물ì¸ê°€ 싶게 허우대는 좋으나 ëª¸ì´ ì—¬ìœ„ê³  털ì—는 ìœ¤ì´ ì—†ì—ˆë‹¤. 조금만 올ë¼ê°€ëŠ” ê¸¸ì´ ë˜ì–´ë„ 고개를 숙ì´ê³  애를 ì¼ë‹¤. ìž‘ì€ ë§ì€ 까불어서 ê°€ë” ì±„ì°ìœ¼ë¡œ 얻어맞았다. -"ì•„ì´ ì‚¼ë¦¼ì´ ì¢‹ì•„ìš”." -하고 ì •ìž„ì€ ì •ë§ ê¸°ìœ ë“¯ì´ ë‚˜ë¥¼ ëŒì•„보았다. -"좋아?" -하고 나는 ë©‹ì—†ì´ ëŒ€ê¾¸í•˜ê³  나서, 후회ë˜ëŠ” 듯ì´, -"밤낮 삼림 ì†ì—서만 사니까 지루한ë°." -하는 ë§ì„ 붙였다. -"저는 ì € 눈 있는 삼림 ì†ìœ¼ë¡œ 한정 ì—†ì´ ê°€ê³  ì‹¶ì–´ìš”. 그러나 저는 ì¸ì œ ê¸°ìš´ì´ ì—†ìœ¼ë‹ˆê¹ ì›¬ê±¸ 그래 ë³´ê² ì–´ìš”?" -하고 í•œìˆ¨ì„ ì‰¬ì—ˆë‹¤. -"왜 그런 소릴 í•´. ì¸ì œ 나ì„걸." -하고 나는 ì •ìž„ì˜ ëˆˆì„ ë“¤ì—¬ë‹¤ë³´ì•˜ë‹¤. 마치 슬픈 눈물 방울ì´ë‚˜ 찾으려는 듯ì´. -"제가 ì§€ê¸ˆë„ ì—´ì´ ì‚¼ì‹­íŒ” ë„ê°€ 넘습니다. ì •ì‹ ì´ í릿해지는 ê²ƒì„ ë³´ë‹ˆê¹Œ 아마 ë” ì˜¬ë¼ê°€ë‚˜ ë´ìš”. ê·¸ëž˜ë„ ê´œì°®ì•„ìš”. 오늘 하루야 못 ì‚´ë¼ê³ ìš”. 오늘 하루만 ì‚´ë©´ 괜찮아요. 최 ì„ ìƒë‹˜ë§Œ 한 번 뵙고 죽으면 괜찮아요." -"왜 그런 소릴 í•´?" -하고 나는 ì±…ë§í•˜ëŠ” ë“¯ì´ ì–¸ì„±ì„ ë†’ì˜€ë‹¤. -ì •ìž„ì€ ê¸°ì¹¨ì„ ì‹œìž‘í•˜ì˜€ë‹¤. 한바탕 ê¸°ì¹¨ì„ í•˜ê³ ëŠ” ê¸°ìš´ì´ ì§„í•œ ë“¯ì´ ë…¸íŒŒì—게 기대며 ì¡°ì„ ë§ë¡œ, -"추워요." -하였다. ì´ ì—¬í–‰ì´ ì–´ë–»ê²Œ ì •ìž„ì˜ ë³‘ì— ì¢‹ì§€ 못할 ê²ƒì€ ì˜ì‚¬ê°€ 아닌 ë‚˜ë¡œë„ ì§ìž‘í•  수가 있었다. 그러나 나로는 ë” ì–´ì°Œí•  수가 없었다. -나는 외투를 벗어서 ì •ìž„ì—게 입혀 주고 노파는 ì •ìž„ì„ ì•ˆì•„ì„œ ëª¸ì´ ëœ í”들리ë„ë¡ ë˜ ì¶¥ì§€ 않ë„ë¡ í•˜ì˜€ë‹¤. -나는 ì •ìž„ì˜ ëª¨ì–‘ì„ ì• ì²˜ë¡œì›Œì„œ 차마 ë³¼ 수가 없었다. 그러나 ì´ê²ƒì€ 하나님밖ì—는 어찌할 ë„리가 없는 ì¼ì´ì—ˆë‹¤. -얼마를 지나서 ì •ìž„ì€ ê°‘ìžê¸° 고개를 들고 ì¼ì–´ë‚˜ë©°, -"ì¸ì œ ëª¸ì´ ì¢€ 녹았습니다. ì„ ìƒë‹˜ 추우시겠어요. ì´ ì™¸íˆ¬ 입으셔요." -하고 ê·¸ì˜ ìž…ë§Œ 웃는 웃ìŒì„ 웃었다. -"난 춥지 않아. 어서 ìž…ê³  있어." -하고 나는 ì •ìž„ì´ê°€ 외투를 벗는 ê²ƒì„ ë§‰ì•˜ë‹¤. ì •ìž„ì€ ë” ê³ ì§‘í•˜ë ¤ê³ ë„ ì•„ë‹ˆí•˜ê³ , -"ì„ ìƒë‹˜ ì‹œë² ë¦¬ì•„ì˜ ì‚¼ë¦¼ì€ ì°¸ 좋아요. 눈 ë®ì¸ ê²ƒì´ ë” ì¢‹ì€ ê²ƒ 같아요. 저는 ì´ ì¸ì  없고 ìžìœ ë¡œìš´ 삼림 ì†ìœ¼ë¡œ 헤매어 ë³´ê³  ì‹¶ì–´ìš”." -하고 아까 í•˜ë˜ ê²ƒê³¼ ê°™ì€ ë§ì„ ë˜ í•˜ì˜€ë‹¤. -"ë©°ì¹  잘 정양하여서, ë‚ ì´ë‚˜ 따뜻하거든 한 번 산보나 í•´ ë³´ì§€." -하고 나는 ì •ìž„ì˜ ë§ ëœ»ì´ ë‹¤ë¥¸ ë° ìžˆëŠ” ì¤„ì„ ì•Œë©´ì„œë„ ë¶€ëŸ¬ í‰ë²”하게 대답하였다. -ì •ìž„ì€ ëŒ€ë‹µì´ ì—†ì—ˆë‹¤. -"ì—¬ê¸°ì„œë„ ì•„ì§ ë©€ì–´ìš”?" -하고 ì •ìž„ì€ ëª¸ì´ í”들리는 ê²ƒì„ ì‹¬ížˆ 괴로워하는 모양으로 ë‘ ì†ì„ ìžë¦¬ì— ì§šì–´ ëª¸ì„ ë²„í‹°ë©´ì„œ ë§í•˜ì˜€ë‹¤. -"고대야, 최 ì„ ìƒì´ 반가워할 í„°ì´ì§€. 오죽ì´ë‚˜ 반갑겠나." -하고 나는 ì •ìž„ì„ ìœ„ë¡œí•˜ëŠ” 뜻으로 ë§í•˜ì˜€ë‹¤. -"ì•„ì´ ì°¸ 미안해요. 제가 죄ì¸ì´ì•¼ìš”. ì € ë•Œë¬¸ì— ì• ë§¤í•œ ëˆ„ëª…ì„ ì“°ì‹œê³  저렇게 ì‚¬ì—…ë„ ë²„ë¦¬ì‹œê³  병환까지 나시니 저는 어떡허면 ì´ ì£„ë¥¼ 씻습니까?" -하고 눈물 ê³ ì¸ ëˆˆìœ¼ë¡œ ì •ìž„ì€ ë‚˜ë¥¼ ì³ë‹¤ë³´ì•˜ë‹¤. -나는 정임과 최ì„ì„ ì´ ìžìœ ë¡œìš´ ì‹œë² ë¦¬ì•„ì˜ ì‚¼ë¦¼ ì†ì— ë‹¨ë‘˜ì´ ì‚´ê²Œ 하고 싶었다. 그러나 최ì„ì€ ì‚´ì•„ë‚˜ê°€ê² ì§€ë§ˆëŠ” ì •ìž„ì´ê°€ ì‚´ì•„ë‚  수가 있ì„까, 하고 나는 ì •ìž„ì˜ ì–´ê¹¨ë¥¼ ë°”ë¼ë³´ì•˜ë‹¤. ê·¸ì˜ ëª©ìˆ¨ì€ ì‹¤ë‚± ê°™ì€ ê²ƒ 같았다. 바람받ì´ì— ë†“ì¸ ë“±ìž”ë¶ˆê³¼ë§Œ ê°™ì€ ê²ƒ 같았다. ì´ ëª©ìˆ¨ì´ ëŠì–´ì§€ê¸° ì „ì— ì‚¬ëž‘í•˜ëŠ” ì´ì˜ ì–¼êµ´ì„ í•œ 번 대하겠다는 ê²ƒë°–ì— ì•„ë¬´ 소ì›ì´ 없는 ì •ìž„ì€ ì°¸ìœ¼ë¡œ 가엾어서 ê°€ìŠ´ì´ ë¯¸ì–´ì§€ëŠ” 것 같았다. -"염려 ë§ì–´. 무슨 걱정ì´ì•¼? 최 ì„ ìƒë„ ë³‘ì´ ëŒë¦¬ê³  ì •ìž„ë„ ì¸ì œ 얼마 정양하면 ë‚˜ì„ ê²ƒ 아닌가. 아무 염려 ë§ì•„ìš”." -하고 나는 ë”ìš± 최ì„ê³¼ 정임과 ë‘ ì‚¬ëžŒì˜ ì‚¬ëž‘ì„ ë‹¬í•˜ê²Œ í•  ê²°ì‹¬ì„ í•˜ì˜€ë‹¤. 하나님께서 계시다면 ì´ ê°€ì—¾ì€ ê°„ì ˆí•œ ë‘ ì‚¬ëžŒì˜ ë§ˆìŒì„ 가슴 미어지게 아니 ìƒê°í•  리가 없다고 ìƒê°í•˜ì˜€ë‹¤. ìš°ì£¼ì˜ ëª¨ë“  ì¼ ì¤‘ì— ì •ìž„ì˜ ì •ê²½ë³´ë‹¤ ë” ìŠ¬í”„ê³  불ìŒí•œ ì •ê²½ì´ ë˜ ìžˆì„까 하였다. 차디찬 눈으로 ë®ì¸ ì‹œë² ë¦¬ì•„ì˜ ê´‘ì•¼ì— ë³‘ë“  ì •ìž„ì˜ ì‚¬ëž‘ìœ¼ë¡œ 타는 불똥과 ê°™ì´ ë‚ ì•„ê°€ëŠ” ì´ ì •ê²½ì€ ì¸ìƒì´ 가질 수 있는 최대한 ë¹„ê·¹ì¸ ê²ƒ 같았다. -ì •ìž„ì€ ì§€ì³ì„œ 고개를 숙ì´ê³  ìžˆë‹¤ê°€ë„ ê°€ë” ê³ ê°œë¥¼ 들어서는 기운 나는 ì–‘ì„ ë³´ì´ë ¤ê³ , 유쾌한 ì–‘ì„ ë³´ì´ë ¤ê³  애를 ì¼ë‹¤. -"ì € 나무 보셔요. 오백 ë…„ì€ ì‚´ì•˜ê² ì§€ìš”?" -ì´ëŸ° ë§ë„ 하였다. 그러나 ê·¸ê²ƒì€ ë‹¤ 억지로 지어서 하는 것ì´ì—ˆë‹¤. 그러다가는 ë˜ ê¸°ìš´ì´ ì§€ì³ì„œëŠ” 고개를 숙ì´ê³ , í˜¹ì€ ë…¸íŒŒì˜ ì–´ê¹¨ì— í˜¹ì€ ë‚´ ì–´ê¹¨ì— ì“°ëŸ¬ì¡Œë‹¤. -마침내 우리가 향하고 가는 ì›€ì§‘ì´ ë³´ì˜€ë‹¤. -"ì •ìž„ì´, 저기야." -하고 나는 ì›€ì§‘ì„ ê°€ë¦¬ì¼°ë‹¤. -"네ì—?" -하고 ì •ìž„ì€ ë‚´ ì†ê°€ë½ 가는 ê³³ì„ ë³´ê³  다ìŒì—는 ë‚´ ì–¼êµ´ì„ ë³´ì•˜ë‹¤. 잘 ë³´ì´ì§€ 않는 모양ì´ë‹¤. -"저기 저것 ë§ì•¼. 저기 ì € ê³ ìž‘ í° ì „ë‚˜ë¬´ ë‘ ê°œê°€ 있지 않아? ê·¸ 사ì´ë¡œ ë³´ì´ëŠ” ì €, 저거 ë§ì•¼. 옳지 옳지, ìˆœìž„ì´ ì§€ê¸ˆ 나오지 않아?" -하였다. -순임ì´ê°€ ë¬´ì—‡ì„ ê°€ì§€ëŸ¬ 나오는지 ë¬¸ì„ ì—´ê³  나와서는 ë°¥ ì§“ëŠë¼ê³  지어 ë†“ì€ ì´ë¥¼í…Œë©´ 부엌ì—를 들어갔다가 나오는 ê¸¸ì— ì´ ìª½ì„ ë°”ë¼ë³´ë‹¤ê°€ 우리를 발견하였는지 몇 ê±¸ìŒ ë¹¨ë¦¬ 오다가는 서서 ë³´ê³  오다가는 서서 ë³´ë”니 ë‚´ê°€ 모ìžë¥¼ ë‚´ë‘르는 ê²ƒì„ ë³´ê³ ì•¼ 우리 ì¼í–‰ì¸ ê²ƒì„ í™•ì‹¤ížˆ 알고 달ìŒë°•ì§ˆì„ ì³ì„œ 나온다. -우리 ì°ë§¤ë¥¼ 만나ìž, -"ì •ìž„ì´ì•¼? 어쩌면 ì´ ì¶”ìš´ë°." -하고 ìˆœìž„ì€ ì •ìž„ì„ ì•ˆê³  ê·¸ 안경으로 ì •ìž„ì˜ ëˆˆì„ ë“¤ì—¬ë‹¤ë³¸ë‹¤. -"어쩌면 앓으면서 ì´ë ‡ê²Œ 와?" -하고 ìˆœìž„ì€ ë…¸íŒŒì™€ 나를 ì±…ë§í•˜ëŠ” ë“¯ì´ ëŒì•„보았다. -"아버지 어떠시ëƒ?" -하고 나는 ì§ì„ 들고 앞서서 오면서 뒤따르는 순임ì—게 물었다. -"아버지요?" -하고 ìˆœìž„ì€ ì–´ë¥¸ì—게 대한 ê²½ì˜ë¥¼ 표하노ë¼ê³  ë‚´ ê³ì— 와서 걸으며, -"아버지께서 ì˜¤ëŠ˜ì€ ë§ì”€ì„ ë§Žì´ í•˜ì…¨ì–´ìš”. 순임ì´ê°€ ê³ ìƒí•˜ëŠ”êµ¬ë‚˜ 고맙다, ì´ëŸ° ë§ì”€ë„ 하시고, 지금 같아서는 ì¼ì–´ë‚  ê²ƒë„ ê°™ì€ë° ê¸°ìš´ì´ ì—†ì–´ì„œ, ì´ëŸ° ë§ì”€ë„ 하시고, ë˜ ì„ ìƒë‹˜ì´ ì´ë¥´ì¿ ì¸ í¬ì—를 들어가셨으니 ë¬´ì—‡ì„ ì‚¬ 오실 듯싶으ëƒ, 알아맞혀 ë³´ì•„ë¼, ì´ëŸ° ë†ë‹´ë„ 하시고, ì •ìž„ì´ê°€ 어떤가 한 번 보았으면, ì´ëŸ° ë§ì”€ë„ 하시겠지요. ë˜ ìˆœìž„ì•„, ë‚´ê°€ 죽ë”ë¼ë„ ì •ìž„ì„ ë„¤ 친ë™ìƒìœ¼ë¡œ 알아서 부디 잘 사랑해 주어ë¼, ì •ìž„ì€ ë¶ˆìŒí•œ 애다, ì°¸ ì •ìž„ì€ ë¶ˆìŒí•´! ì´ëŸ° ë§ì”€ë„ 하시겠지요. 그렇게 여러 가지 ë§ì”€ì„ ë§Žì´ í•˜ì‹œë”니, 순임아 ë‚´ê°€ 죽거든 ì„ ìƒë‹˜ì„ 아버지로 알고 ê·¸ ì§€ë„를 받아ë¼, 그러시길래 제가 아버지 안 ëŒì•„가셔요! 그랬ë”니 아버지께서 웃으시면서, 죽지 ë§ê¹Œ, 하시고는 어째 ê°€ìŠ´ì´ ì¢€ ê±°ë¶í•œê°€, 하시ë”니 ìž ì´ ë“œì…¨ì–´ìš”. 한 시간ì´ë‚˜ ë˜ì—ˆì„까, 온." -ì§‘ ì•žì— ê±°ì˜ ë‹¤ 가서는 ìˆœìž„ì€ ì •ìž„ì˜ íŒ”ì„ ê¼ˆë˜ ê²ƒì„ ë†“ê³  빨리 집으로 뛰어들어갔다. -치마í­ì„ 펄럭거리고 뛰는 ì–‘ì—는 ì–´ë ¸ì„ ì  ë§ê´„ëŸ‰ì´ ìˆœìž„ì˜ ëª¨ìŠµì´ ë‚¨ì•„ 있어서 나는 í˜¼ìž ì›ƒì—ˆë‹¤. ìˆœìž„ì€ ì •ìž„ì´ê°€ 왔다는 ê¸°ìœ ì†Œì‹ì„ 한 시ê°ì´ë¼ë„ 빨리 아버지께 전하고 ì‹¶ì—ˆë˜ ê²ƒì´ë‹¤. -"아버지, 주무시우? ì •ìž„ì´ê°€ 왔어요. ì •ìž„ì´ê°€ 왔습니다." -하고 부르는 소리가 ë°–ì—ì„œë„ ë“¤ë ¸ë‹¤. -ë‚˜ë„ ë°©ì— ë“¤ì–´ì„œê³ , ì •ìž„ë„ ë’¤ë”°ë¼ ë“¤ì–´ì„œê³ , 노파는 부엌으로 ë¬¼ê±´ì„ ë‘러 들어갔다. -ë°©ì€ ì ˆë²½ê°™ì´ ì–´ë‘웠다. -"순임아, ë¶ˆì„ ì¢€ 켜려무나." -하고 최ì„ì˜ ì–¼êµ´ì„ ì°¾ëŠë¼ê³  ëˆˆì„ í¬ê²Œ 뜨고 고개를 숙ì´ë©°, -"ìžë‚˜? ì •ìž„ì´ê°€ 왔네." -하고 불렀다. -ì •ìž„ë„ ê³ì— 와서 선다. -최ì„ì€ ëŒ€ë‹µì´ ì—†ì—ˆë‹¤. -순임ì´ê°€ ì´›ë¶ˆì„ ì¼œìž ìµœì„ì˜ ì–¼êµ´ì´ í™˜í•˜ê²Œ 보였다. -"여보게, ì—¬ë´. ìžë‚˜?" -하고 나는 무서운 예ê°ì„ 가지면서 최ì„ì˜ ì–´ê¹¨ë¥¼ í”들었다. -ê·¸ê²ƒì´ ë¬´ì—‡ì¸ì§€ 모르지마는 최ì„ì€ ì‹œì²´ë¼ í•˜ëŠ” ê²ƒì„ ë‚˜ëŠ” ë‚´ ì†ì„ 통해서 깨달았다. -나는 ê¹œì§ ë†€ë¼ì„œ ì´ë¶ˆì„ 벗기고 최ì„ì˜ íŒ”ì„ ìž¡ì•„ ë§¥ì„ ì§šì–´ 보았다. 거기는 ë§¥ì´ ì—†ì—ˆë‹¤. -나는 최ì„ì˜ ìžë¦¬ì˜· ê°€ìŠ´ì„ í—¤ì¹˜ê³  귀를 ê°€ìŠ´ì— ëŒ€ì—ˆë‹¤. ê·¸ ì‚´ì€ ì–¼ìŒê³¼ ê°™ì´ ì°¨ê³  ê·¸ ê°€ìŠ´ì€ ê³ ìš”í•˜ì˜€ë‹¤. ì‹¬ìž¥ì€ ë›°ê¸°ë¥¼ 그친 것ì´ì—ˆë‹¤. -나는 최ì„ì˜ ê°€ìŠ´ì—서 귀를 떼고 ì¼ì–´ì„œë©´ì„œ, -"네 아버지는 ëŒì•„가셨다. 네 ì†ìœ¼ë¡œ 눈ì´ë‚˜ ê°ê²¨ 드려ë¼." -하였다. ë‚´ 눈ì—서는 ëˆˆë¬¼ì´ í˜ë €ë‹¤. -"ì„ ìƒë‹˜!" -하고 ì •ìž„ì€ ì „ì—°ížˆ 절제할 íž˜ì„ ìžƒì–´ë²„ë¦° ë“¯ì´ ìµœì„ì˜ ê°€ìŠ´ì— ì—Žì–´ì¡Œë‹¤. 그러고는 소리를 ë‚´ì–´ 울었다. 순임ì€, -"아버지, 아버지!" -하고 최ì„ì˜ ë² ê°œ ê³ì— ì´ë§ˆë¥¼ 대고 울었다. -ì•„ë¼ì‚¬ ë…¸íŒŒë„ ìš¸ì—ˆë‹¤. -ë°© 안ì—는 ì˜¤ì§ ìš¸ìŒ ì†Œë¦¬ë¿ì´ìš”, ë§ì´ 없었다. 최ì„ì€ ë²Œì¨ ì´ ìŠ¬í”ˆ ê´‘ê²½ë„ ëª°ë¼ë³´ëŠ” 사람ì´ì—ˆë‹¤. -최ì„ì´ê°€ ìžê¸°ì˜ ì‹¸ì›€ì„ ì´ê¸°ê³  죽었는지, ë˜ëŠ” ë까지 지다가 죽었는지 ê·¸ê²ƒì€ ì˜ì›í•œ 비밀ì´ì–´ì„œ 알 ë„리가 없었다. 그러나 ì´ê²ƒë§Œì€ 확실하다 ê·¸ì˜ ì˜ì‹ì´ 마지막으로 ë나는 ìˆœê°„ì— ê·¸ì˜ ì˜ì‹ê¸°ì— ë– ì˜¤ë¥´ë˜ ì˜¤ì§ í•˜ë‚˜ê°€ ì •ìž„ì´ì—ˆìœ¼ë¦¬ë¼ëŠ” 것만ì€. -지금 ì •ìž„ì´ê°€ ê·¸ì˜ ê°€ìŠ´ì— ì—Žì–´ì ¸ 울지마는, ì •ìž„ì˜ ëœ¨ê±°ìš´ ëˆˆë¬¼ì´ ê·¸ì˜ ê°€ìŠ´ì„ ì ì‹œê±´ë§ˆëŠ” 최ì„ì˜ ê°€ìŠ´ì€ ë›¸ ì¤„ì„ ëª¨ë¥¸ë‹¤. ì´ê²ƒì´ 죽ìŒì´ëž€ 것ì´ë‹¤. -ë’¤ì— ê²½ì°°ì˜ê°€ 와서 검사한 ê²°ê³¼ì— ì˜í•˜ë©´, 최ì„ì€ í렴으로 ì•“ë˜ ê²°ê³¼ë¡œ 심장마비를 ì¼ìœ¼í‚¨ 것ì´ë¼ê³  하였다. -나는 최ì„ì˜ ìž¥ë¡€ë¥¼ ëë‚´ê³  순임과 ì •ìž„ì„ ë°ë¦¬ê³  오려 하였으나 ì •ìž„ì€ ë“£ì§€ 아니하고 노파와 ê°™ì´ ë°”ì´ì¹¼ 촌으로 ê°€ 버렸다. -그런 뒤로는 ì •ìž„ì—게서는 ì¼ì²´ ìŒì‹ ì´ 없다. 때때로 노파ì—게서 편지가 ì˜¤ëŠ”ë° ì •ìž„ì€ ìµœì„ì´ê°€ ìžˆë˜ ë°©ì— ê°€ë§Œížˆ 있다고만 하였다. -서투른 ì˜ì–´ê°€ ëœ»ì„ ì¶©ë¶„ížˆ 발표하지 못하는 것ì´ì—ˆë‹¤. -나는 ì •ìž„ì—게 안심하고 ë³‘ì„ ì¹˜ë£Œí•˜ë¼ëŠ” íŽ¸ì§€ë„ í•˜ê³  ëˆì´ 필요하거든 청구하ë¼ëŠ” íŽ¸ì§€ë„ í•˜ë‚˜ ì˜ ë‹µìž¥ì´ ì—†ë‹¤. -ë§Œì¼ ì •ìž„ì´ê°€ 죽었다는 ê¸°ë³„ì´ ì˜¤ë©´ 나는 한 번 ë” ì‹œë² ë¦¬ì•„ì— ê°€ì„œ ë‘˜ì„ ê°€ì§€ëŸ°ížˆ 묻고 `ë‘ ë³„ 무ë¤'ì´ë¼ëŠ” 비를 세워 줄 ìƒê°ì´ë‹¤. 그러나 나는 ì •ìž„ì´ê°€ 조선으로 오기를 바란다. -ì—¬ëŸ¬ë¶„ì€ ìµœì„ê³¼ ì •ìž„ì—게 대한 ì´ ê¸°ë¡ì„ 믿고 ê·¸ ë‘ ì‚¬ëžŒì—게 대한 오해를 í’€ë¼. -EOT; -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/lt_LT/Address.php b/vendor/fzaninotto/faker/src/Faker/Provider/lt_LT/Address.php deleted file mode 100644 index 5f446408..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/lt_LT/Address.php +++ /dev/null @@ -1,131 +0,0 @@ -generator->parse($format); - } - - public static function country() - { - return static::randomElement(static::$country); - } - - public static function postcode() - { - return static::toUpper(static::bothify(static::randomElement(static::$postcode))); - } - - public static function regionSuffix() - { - return static::randomElement(static::$regionSuffix); - } - - public static function region() - { - return static::randomElement(static::$region); - } - - public static function citySuffix() - { - return static::randomElement(static::$citySuffix); - } - - public function city() - { - return static::randomElement(static::$city); - } - - public static function streetSuffix() - { - return static::randomElement(static::$streetSuffix); - } - - public static function street() - { - return static::randomElement(static::$street); - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/lt_LT/Company.php b/vendor/fzaninotto/faker/src/Faker/Provider/lt_LT/Company.php deleted file mode 100644 index 4a110c2c..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/lt_LT/Company.php +++ /dev/null @@ -1,15 +0,0 @@ -bothify("########"); - } - - /** - * Return passport number - * @return string - * @example 12345678 - */ - public function passportNumber() - { - return $this->bothify("########"); - } - - /** - * National Personal Identity number (asmens kodas) - * @link https://en.wikipedia.org/wiki/National_identification_number#Lithuania - * @link https://lt.wikipedia.org/wiki/Asmens_kodas - * @param string [male|female] - * @param \DateTime $birthdate - * @param string $randomNumber three integers - * @return string on format XXXXXXXXXXX - */ - public function personalIdentityNumber($gender = 'male', \DateTime $birthdate = null, $randomNumber = '') - { - if (!$birthdate) { - $birthdate = \Faker\Provider\DateTime::dateTimeThisCentury(); - } - - $genderNumber = ($gender == 'male') ? (int) 1 : (int) 0; - $firstNumber = (int) floor($birthdate->format('Y') / 100) * 2 - 34 - $genderNumber; - - $datePart = $birthdate->format('ymd'); - $randomDigits = (string) ( ! $randomNumber || strlen($randomNumber < 3)) ? static::numerify('###') : substr($randomNumber, 0, 3); - $partOfPerosnalCode = $firstNumber . $datePart . $randomDigits; - - $sum = self::calculateSum($partOfPerosnalCode, 1); - $liekana = $sum % 11; - - if ($liekana !== 10) { - $lastNumber = $liekana; - return $firstNumber . $datePart . $randomDigits . $lastNumber; - } - - $sum = self::calculateSum($partOfPerosnalCode, 2); - $liekana = (int) $sum % 11; - - $lastNumber = ($liekana !== 10) ? $liekana : 0; - return $firstNumber . $datePart . $randomDigits . $lastNumber; - } - - /** - * Calculate the sum of personal code - * @link https://en.wikipedia.org/wiki/National_identification_number#Lithuania - * @link https://lt.wikipedia.org/wiki/Asmens_kodas - * @param string $numbers - * @param int $time [1|2] - * @return int - */ - private static function calculateSum($numbers, $time = 1) - { - if ($time == 1) { - $multipliers = array(1, 2, 3, 4, 5, 6, 7, 8, 9, 1 ); - } else { - $multipliers = array(3, 4, 5, 6, 7, 8, 9, 1, 2, 3 ); - } - - $sum = 0; - for ($i=1; $i <= 10; $i++) { - $sum += $numbers[$i-1] * $multipliers[$i-1]; - } - - return (int) $sum; - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/lt_LT/PhoneNumber.php b/vendor/fzaninotto/faker/src/Faker/Provider/lt_LT/PhoneNumber.php deleted file mode 100644 index 752eb78b..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/lt_LT/PhoneNumber.php +++ /dev/null @@ -1,17 +0,0 @@ -generator->parse($format); - } - - public static function country() - { - return static::randomElement(static::$country); - } - - public static function postcode() - { - return static::toUpper(static::bothify(static::randomElement(static::$postcode))); - } - - public static function regionSuffix() - { - return static::randomElement(static::$regionSuffix); - } - - public static function region() - { - return static::randomElement(static::$region); - } - - public static function cityPrefix() - { - return static::randomElement(static::$cityPrefix); - } - - public function city() - { - return static::randomElement(static::$city); - } - - public static function streetPrefix() - { - return static::randomElement(static::$streetPrefix); - } - - public static function street() - { - return static::randomElement(static::$street); - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/lv_LV/Color.php b/vendor/fzaninotto/faker/src/Faker/Provider/lv_LV/Color.php deleted file mode 100644 index 99e681b7..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/lv_LV/Color.php +++ /dev/null @@ -1,19 +0,0 @@ -format('dmy'); - $randomDigits = (string) static::numerify('####'); - - $checksum = Luhn::computeCheckDigit($datePart . $randomDigits); - - return $datePart . '-' . $randomDigits . $checksum; - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/lv_LV/PhoneNumber.php b/vendor/fzaninotto/faker/src/Faker/Provider/lv_LV/PhoneNumber.php deleted file mode 100644 index 29c19f63..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/lv_LV/PhoneNumber.php +++ /dev/null @@ -1,15 +0,0 @@ - static::latitude(42.43, 42.45), - 'longitude' => static::longitude(19.16, 19.27) - ); - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/me_ME/Company.php b/vendor/fzaninotto/faker/src/Faker/Provider/me_ME/Company.php deleted file mode 100644 index 1f803127..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/me_ME/Company.php +++ /dev/null @@ -1,49 +0,0 @@ -generator->parse(static::$idNumberFormat)); - } - - /** - * @return string - * @example 'Ф' - */ - public function alphabet() - { - return static::randomElement(static::$alphabet); - } - - /** - * @return string - * @example 'Э' - */ - public function namePrefix() - { - return static::randomElement(static::$namePrefix); - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/mn_MN/PhoneNumber.php b/vendor/fzaninotto/faker/src/Faker/Provider/mn_MN/PhoneNumber.php deleted file mode 100644 index dd0bb4ab..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/mn_MN/PhoneNumber.php +++ /dev/null @@ -1,13 +0,0 @@ - Townships - * @link https://en.wikipedia.org/wiki/Template:Johor > Townships - * @link https://en.wikipedia.org/wiki/Template:Kedah > Townships - * @link https://en.wikipedia.org/wiki/Template:Kelantan > Townships - * @link https://en.wikipedia.org/wiki/Template:Melaka > Townships - * @link https://en.wikipedia.org/wiki/Template:Negeri_Sembilan > Townships - * @link https://en.wikipedia.org/wiki/Template:Perak > Townships - * @link https://en.wikipedia.org/wiki/Template:Penang > Townships - * @link https://en.wikipedia.org/wiki/Template:Selangor > Townships - * @link https://en.wikipedia.org/wiki/Template:Terengganu > Townships - */ - protected static $townshipPrefix = array( - 'Alam','Apartment','Ara', - 'Bandar','Bandar','Bandar','Bandar','Bandar','Bandar', - 'Bandar Bukit','Bandar Seri','Bandar Sri','Bandar Baru','Batu','Bukit', - 'Desa','Damansara', - 'Kampung','Kampung Baru','Kampung Baru','Kondominium','Kota', - 'Laman','Lembah', - 'Medan', - 'Pandan','Pangsapuri','Petaling','Puncak', - 'Seri','Sri', - 'Taman','Taman','Taman','Taman','Taman','Taman', - 'Taman Desa', - ); - protected static $townshipSuffix = array( - 'Aman','Amanjaya','Anggerik','Angkasa','Antarabangsa','Awan', - 'Bahagia','Bangsar','Baru','Belakong','Bendahara','Bestari','Bintang','Brickfields', - 'Casa','Changkat','Country Heights', - 'Damansara','Damai','Dato Harun','Delima','Duta', - 'Flora', - 'Gembira','Genting', - 'Harmoni','Hartamas', - 'Impian','Indah','Intan', - 'Jasa','Jaya', - 'Keramat','Kerinchi','Kiara','Kinrara','Kuchai', - 'Laksamana', - 'Mahkota','Maluri','Manggis','Maxwell','Medan','Melawati','Menjalara','Meru','Mulia','Mutiara', - 'Pahlawan','Perdana','Pertama','Permai','Pelangi','Petaling','Pinang','Puchong','Puteri','Putra', - 'Rahman','Rahmat','Raya','Razak','Ria', - 'Saujana','Segambut','Selamat','Selatan','Semarak','Sentosa','Seputeh','Setapak','Setia Jaya','Sinar','Sungai Besi','Sungai Buaya','Sungai Long','Suria', - 'Tasik Puteri','Tengah','Timur','Tinggi','Tropika','Tun Hussein Onn','Tun Perak','Tunku', - 'Ulu','Utama','Utara', - 'Wangi', - ); - - /** - * @link https://en.wikipedia.org/wiki/Template:Greater_Kuala_Lumpur - * @link https://en.wikipedia.org/wiki/Template:Johor - * @link https://en.wikipedia.org/wiki/Template:Kedah - * @link https://en.wikipedia.org/wiki/Template:Kelantan - * @link https://en.wikipedia.org/wiki/Template:Labuan - * @link https://en.wikipedia.org/wiki/Template:Melaka - * @link https://en.wikipedia.org/wiki/Template:Negeri_Sembilan - * @link https://en.wikipedia.org/wiki/Template:Pahang - * @link https://en.wikipedia.org/wiki/Template:Perak - * @link https://en.wikipedia.org/wiki/Template:Perlis - * @link https://en.wikipedia.org/wiki/Template:Penang - * @link https://en.wikipedia.org/wiki/Template:Sabah - * @link https://en.wikipedia.org/wiki/Template:Sarawak - * @link https://en.wikipedia.org/wiki/Template:Selangor - * @link https://en.wikipedia.org/wiki/Template:Terengganu - */ - protected static $towns = array( - 'johor' => array( - 'Ayer Hitam', - 'Batu Pahat','Bukit Gambir','Bukit Kepong','Bukit Naning', - 'Desaru', - 'Endau', - 'Gelang Patah','Gemas Baharu', - 'Iskandar Puteri', - 'Jementah','Johor Lama','Johor Bahru', - 'Kempas','Kluang','Kota Iskandar','Kota Tinggi','Kukup','Kulai', - 'Labis ','Larkin','Layang-Layang', - 'Mersing','Muar', - 'Pagoh','Paloh','Parit Jawa','Pasir Gudang','Pekan Nanas','Permas Jaya','Pontian Kechil', - 'Renggam', - 'Segamat','Senai','Simpang Renggam','Skudai','Sri Gading', - 'Tangkak','Tebrau', - 'Ulu Tiram', - 'Yong Peng', - ), - 'kedah' => array( - 'Alor Setar', - 'Baling','Bukit Kayu Hitam', - 'Changlun', - 'Durian Burung', - 'Gurun', - 'Jitra', - 'Kepala Batas','Kuah','Kuala Kedah','Kuala Ketil','Kulim', - 'Langgar','Lunas', - 'Merbok', - 'Padang Serai','Pendang', - 'Serdang','Sintok','Sungai Petani', - 'Tawar, Baling', - 'Yan', - ), - 'kelantan' => array( - 'Bachok','Bunut Payong', - 'Dabong', - 'Gua Musang', - 'Jeli', - 'Ketereh','Kota Bharu','Kuala Krai', - 'Lojing', - 'Machang', - 'Pasir Mas','Pasir Puteh', - 'Rantau Panjang', - 'Salor', - 'Tok Bali', - 'Wakaf Bharu','Wakaf Che Yeh', - ), - 'kl' => array( - 'Ampang', - 'Bandar Tasik Selatan','Bandar Tun Razak','Bangsar','Batu','Brickfields','Bukit Bintang','Bukit Jalil','Bukit Tunku', - 'Cheras','Chow Kit', - 'Damansara Town Centre','Dang Wangi','Desa Petaling','Desa Tun Hussein Onn', - 'Jinjang', - 'Kampung Baru','Kampung Kasipillay','Kampung Pandan','Kampung Sungai Penchala','Kepong','KLCC','Kuchai Lama', - 'Lake Gardens','Lembah Pantai', - 'Medan Tuanku','Mid Valley City','Mont Kiara', - 'Pantai Dalam','Pudu', - 'Salak South','Segambut','Semarak','Sentul','Setapak','Setiawangsa','Seputeh','Sri Hartamas','Sri Petaling','Sungai Besi', - 'Taman Desa','Taman Melawati','Taman OUG','Taman Tun Dr Ismail','Taman U-Thant','Taman Wahyu','Titiwangsa','Tun Razak Exchange', - 'Wangsa Maju', - ), - 'labuan' => array( - 'Batu Manikar', - 'Kiamsam', - 'Layang-Layang', - 'Rancha-Rancha' - ), - 'melaka' => array( - 'Alor Gajah', - 'Bandaraya Melaka','Batu Berendam','Bukit Beruang','Bukit Katil', - 'Cheng', - 'Durian Tunggal', - 'Hang Tuah Jaya', - 'Jasin', - 'Klebang', - 'Lubuk China', - 'Masjid Tanah', - 'Naning', - 'Pekan Asahan', - 'Ramuan China', - 'Simpang Ampat', - 'Tanjung Bidara','Telok Mas', - 'Umbai', - ), - 'nsembilan' => array( - 'Ayer Kuning','Ampangan', - 'Bahau','Batang Benar', - 'Chembong', - 'Dangi', - 'Gemas', - 'Juasseh', - 'Kuala Pilah', - 'Labu','Lenggeng','Linggi', - 'Mantin', - 'Nilai', - 'Pajam','Pedas','Pengkalan Kempas','Port Dickson', - 'Rantau','Rompin', - 'Senawang','Seremban','Sungai Gadut', - 'Tampin','Tiroi', - ), - 'pahang' => array( - 'Bandar Tun Razak','Bentong','Brinchang','Bukit Fraser','Bukit Tinggi', - 'Chendor', - 'Gambang','Genting Highlands','Genting Sempah', - 'Jerantut', - 'Karak','Kemayan','Kota Shahbandar','Kuala Lipis','Kuala Pahang','Kuala Rompin','Kuantan', - 'Lanchang','Lubuk Paku', - 'Maran','Mengkuang','Mentakab', - 'Nenasi', - 'Panching', - 'Pekan','Penor', - 'Raub', - 'Sebertak','Sungai Lembing', - 'Tanah Rata','Tanjung Sepat','Tasik Chini','Temerloh','Teriang','Tringkap', - ), - 'penang' => array( - 'Air Itam', - 'Balik Pulau','Batu Ferringhi','Batu Kawan','Bayan Lepas','Bukit Mertajam','Butterworth', - 'Gelugor','George Town', - 'Jelutong', - 'Kepala Batas', - 'Nibong Tebal', - 'Permatang Pauh','Pulau Tikus', - 'Simpang Ampat', - 'Tanjung Bungah','Tanjung Tokong', - ), - 'perak' => array( - 'Ayer Tawar', - 'Bagan Serai','Batu Gajah','Behrang','Bidor','Bukit Gantang','Bukit Merah', - 'Changkat Jering','Chemor','Chenderiang', - 'Damar Laut', - 'Gerik','Gopeng','Gua Tempurung', - 'Hutan Melintang', - 'Ipoh', - 'Jelapang', - 'Kamunting','Kampar','Kuala Kangsar', - 'Lekir','Lenggong','Lumut', - 'Malim Nawar','Manong','Menglembu', - 'Pantai Remis','Parit','Parit Buntar','Pasir Salak','Proton City', - 'Simpang Pulai','Sitiawan','Slim River','Sungai Siput','Sungkai', - 'Taiping','Tambun','Tanjung Malim','Tanjung Rambutan','Tapah','Teluk Intan', - 'Ulu Bernam', - ), - 'perlis' => array( - 'Arau', - 'Beseri', - 'Chuping', - 'Kaki Bukit','Kangar','Kuala Perlis', - 'Mata Ayer', - 'Padang Besar', - 'Sanglang','Simpang Empat', - 'Wang Kelian', - ), - 'putrajaya' => array( - 'Precinct 1','Precinct 4','Precinct 5', - 'Precinct 6','Precinct 8','Precinct 10', - 'Precinct 11','Precinct 12','Precinct 13', - 'Precinct 16','Precinct 18','Precinct 19', - ), - 'sabah' => array( - 'Beaufort','Bingkor', - 'Donggongon', - 'Inanam', - 'Kinabatangan','Kota Belud','Kota Kinabalu','Kuala Penyu','Kimanis','Kundasang', - 'Lahad Datu','Likas','Lok Kawi', - 'Manggatal', - 'Nabawan', - 'Papar','Pitas', - 'Ranau', - 'Sandakan','Sapulut','Semporna','Sepanggar', - 'Tambunan','Tanjung Aru','Tawau','Tenom','Tuaran', - 'Weston', - ), - 'sarawak' => array( - 'Asajaya', - 'Ba\'kelalan','Bario','Batu Kawa','Batu Niah','Betong','Bintulu', - 'Dalat','Daro', - 'Engkilili', - 'Julau', - 'Kapit','Kota Samarahan','Kuching', - 'Lawas','Limbang','Lubok Antu', - 'Marudi','Matu','Miri', - 'Oya', - 'Pakan', - 'Sadong Jaya','Sematan','Sibu','Siburan','Song','Sri Aman','Sungai Tujoh', - 'Tanjung Kidurong','Tanjung Manis','Tatau', - ), - 'selangor' => array( - 'Ampang','Assam Jawa', - 'Balakong','Bandar Baru Bangi','Bandar Baru Selayang','Bandar Sunway','Bangi','Banting','Batang Kali','Batu Caves','Bestari Jaya','Bukit Lanjan', - 'Cheras','Cyberjaya', - 'Damansara','Dengkil', - 'Ijok', - 'Jenjarom', - 'Kajang','Kelana Jaya','Klang','Kuala Kubu Bharu','Kuala Selangor','Kuang', - 'Lagong', - 'Morib', - 'Pandamaran','Paya Jaras','Petaling Jaya','Port Klang','Puchong', - 'Rasa','Rawang', - 'Salak Tinggi','Sekinchan','Selayang','Semenyih','Sepang','Serendah','Seri Kembangan','Shah Alam','Subang','Subang Jaya','Sungai Buloh', - 'Tanjung Karang','Tanjung Sepat', - 'Ulu Klang','Ulu Yam', - ), - 'terengganu' => array( - 'Ajil', - 'Bandar Ketengah Jaya','Bandar Permaisuri','Bukit Besi','Bukit Payong', - 'Chukai', - 'Jerteh', - 'Kampung Raja','Kerteh','Kijal','Kuala Besut','Kuala Berang','Kuala Dungun','Kuala Terengganu', - 'Marang','Merchang', - 'Pasir Raja', - 'Rantau Abang', - 'Teluk Kalung', - 'Wakaf Tapai', - ) - ); - - /** - * @link https://en.wikipedia.org/wiki/States_and_federal_territories_of_Malaysia - */ - protected static $states = array( - 'johor' => array( - 'Johor Darul Ta\'zim', - 'Johor' - ), - 'kedah' => array( - 'Kedah Darul Aman', - 'Kedah' - ), - 'kelantan' => array( - 'Kelantan Darul Naim', - 'Kelantan' - ), - 'kl' => array( - 'KL', - 'Kuala Lumpur', - 'WP Kuala Lumpur' - ), - 'labuan' => array( - 'Labuan' - ), - 'melaka' => array( - 'Malacca', - 'Melaka' - ), - 'nsembilan' => array( - 'Negeri Sembilan Darul Khusus', - 'Negeri Sembilan' - ), - 'pahang' => array( - 'Pahang Darul Makmur', - 'Pahang' - ), - 'penang' => array( - 'Penang', - 'Pulau Pinang' - ), - 'perak' => array( - 'Perak Darul Ridzuan', - 'Perak' - ), - 'perlis' => array( - 'Perlis Indera Kayangan', - 'Perlis' - ), - 'putrajaya' => array( - 'Putrajaya' - ), - 'sabah' => array( - 'Sabah' - ), - 'sarawak' => array( - 'Sarawak' - ), - 'selangor' => array( - 'Selangor Darul Ehsan', - 'Selangor' - ), - 'terengganu' => array( - 'Terengganu Darul Iman', - 'Terengganu' - ) - ); - - /** - * @link https://ms.wikipedia.org/wiki/Senarai_negara_berdaulat - */ - protected static $country = array( - 'Abkhazia','Afghanistan','Afrika Selatan','Republik Afrika Tengah','Akrotiri dan Dhekelia','Albania','Algeria','Amerika Syarikat','Andorra','Angola','Antigua dan Barbuda','Arab Saudi','Argentina','Armenia','Australia','Austria','Azerbaijan', - 'Bahamas','Bahrain','Bangladesh','Barbados','Belanda','Belarus','Belgium','Belize','Benin','Bhutan','Bolivia','Bonaire','Bosnia dan Herzegovina','Botswana','Brazil','Brunei Darussalam','Bulgaria','Burkina Faso','Burundi', - 'Cameroon','Chad','Chile','Republik Rakyat China','Republik China di Taiwan','Colombia','Comoros','Republik Demokratik Congo','Republik Congo','Kepulauan Cook','Costa Rica','Côte d\'Ivoire (Ivory Coast)','Croatia','Cuba','Curaçao','Cyprus','Republik Turki Cyprus Utara','Republik Czech', - 'Denmark','Djibouti','Dominika','Republik Dominika', - 'Ecuador','El Salvador','Emiriah Arab Bersatu','Eritrea','Estonia', - 'Kepulauan Faroe','Fiji','Filipina','Finland', - 'Gabon','Gambia','Georgia','Ghana','Grenada','Greece (Yunani)','Guatemala','Guinea','Guinea-Bissau','Guinea Khatulistiwa','Guiana Perancis','Guyana', - 'Habsyah (Etiopia)','Haiti','Honduras','Hungary', - 'Iceland','India','Indonesia','Iran','Iraq','Ireland','Israel','Itali', - 'Jamaika','Jepun','Jerman','Jordan', - 'Kanada','Kazakhstan','Kemboja','Kenya','Kiribati','Korea Selatan','Korea Utara','Kosovo','Kuwait','Kyrgyzstan', - 'Laos','Latvia','Lesotho','Liberia','Libya','Liechtenstein','Lithuania','Lubnan','Luxembourg', - 'Macedonia','Madagaskar','Maghribi','Malawi','Malaysia','Maldives','Mali','Malta','Kepulauan Marshall','Mauritania','Mauritius','Mesir','Mexico','Persekutuan Micronesia','Moldova','Monaco','Montenegro','Mongolia','Mozambique','Myanmar', - 'Namibia','Nauru','Nepal','New Zealand','Nicaragua','Niger','Nigeria','Niue','Norway', - 'Oman','Ossetia Selatan', - 'Pakistan','Palau','Palestin','Panama','Papua New Guinea','Paraguay','Perancis','Peru','Poland','Portugal', - 'Qatar', - 'Romania','Russia','Rwanda', - 'Sahara Barat','Saint Kitts dan Nevis','Saint Lucia','Saint Vincent dan Grenadines','Samoa','San Marino','São Tomé dan Príncipe','Scotland','Senegal','Sepanyol','Serbia','Seychelles','Sierra Leone','Singapura','Slovakia','Slovenia','Kepulauan Solomon','Somalia','Somaliland','Sri Lanka','Sudan','Sudan Selatan','Suriname','Swaziland','Sweden','Switzerland','Syria', - 'Tajikistan','Tanjung Verde','Tanzania','Thailand','Timor Leste','Togo','Tonga','Transnistria','Trinidad dan Tobago','Tunisia','Turki','Turkmenistan','Tuvalu', - 'Uganda','Ukraine','United Kingdom','Uruguay','Uzbekistan', - 'Vanuatu','Kota Vatican','Venezuela','Vietnam', - 'Yaman', - 'Zambia','Zimbabwe', - ); - - /** - * Return a building prefix - * - * @example 'No.' - * - * @return @string - */ - public static function buildingPrefix() - { - return static::randomElement(static::$buildingPrefix); - } - - /** - * Return a building number - * - * @example '123' - * - * @return @string - */ - public static function buildingNumber() - { - return static::toUpper(static::lexify(static::numerify(static::randomElement(static::$buildingNumber)))); - } - - /** - * Return a street prefix - * - * @example 'Jalan' - */ - public function streetPrefix() - { - $format = static::randomElement(static::$streetPrefix); - - return $this->generator->parse($format); - } - - /** - * Return a complete streename - * - * @example 'Jalan Utama 7' - * - * @return @string - */ - public function streetName() - { - $format = static::toUpper(static::lexify(static::numerify(static::randomElement(static::$streetNameFormats)))); - - return $this->generator->parse($format); - } - - /** - * Return a randown township - * - * @example Taman Bahagia - * - * @return @string - */ - public function township() - { - $format = static::toUpper(static::lexify(static::numerify(static::randomElement(static::$townshipFormats)))); - - return $this->generator->parse($format); - } - - /** - * Return a township prefix abbreviation - * - * @example 'USJ' - * - * @return @string - */ - public function townshipPrefixAbbr() - { - return static::randomElement(static::$townshipPrefixAbbr); - } - - /** - * Return a township prefix - * - * @example 'Taman' - * - * @return @string - */ - public function townshipPrefix() - { - return static::randomElement(static::$townshipPrefix); - } - - /** - * Return a township suffix - * - * @example 'Bahagia' - */ - public function townshipSuffix() - { - return static::randomElement(static::$townshipSuffix); - } - - /** - * Return a postcode based on state - * - * @example '55100' - * @link https://en.wikipedia.org/wiki/Postal_codes_in_Malaysia#States - * - * @param null|string $state 'state' or null - * - * @return @string - */ - public static function postcode($state = null) - { - $format = array( - 'perlis' => array( // (01000 - 02800) - '0' . mt_rand(1000, 2800) - ), - 'kedah' => array( // (05000 - 09810) - '0' . mt_rand(5000, 9810) - ), - 'penang' => array( // (10000 - 14400) - mt_rand(10000, 14400) - ), - 'kelantan' => array( // (15000 - 18500) - mt_rand(15000, 18500) - ), - 'terengganu' => array( // (20000 - 24300) - mt_rand(20000, 24300) - ), - 'pahang' => array( // (25000 - 28800 | 39000 - 39200 | 49000, 69000) - mt_rand(25000, 28800), - mt_rand(39000, 39200), - mt_rand(49000, 69000) - ), - 'perak' => array( // (30000 - 36810) - mt_rand(30000, 36810) - ), - 'selangor' => array( // (40000 - 48300 | 63000 - 68100) - mt_rand(40000, 48300), - mt_rand(63000, 68100) - ), - 'kl' => array( // (50000 - 60000) - mt_rand(50000, 60000), - ), - 'putrajaya' => array( // (62000 - 62988) - mt_rand(62000, 62988) - ), - 'nsembilan' => array( // (70000 - 73509) - mt_rand(70000, 73509) - ), - 'melaka' => array( // (75000 - 78309) - mt_rand(75000, 78309) - ), - 'johor' => array( // (79000 - 86900) - mt_rand(79000, 86900) - ), - 'labuan' => array( // (87000 - 87033) - mt_rand(87000, 87033) - ), - 'sabah' => array( // (88000 - 91309) - mt_rand(88000, 91309) - ), - 'sarawak' => array( // (93000 - 98859) - mt_rand(93000, 98859) - ) - ); - - $postcode = is_null($state) ? static::randomElement($format) : $format[$state]; - return (string)static::randomElement($postcode); - } - - /** - * Return the complete town address with matching postcode and state - * - * @example 55100 Bukit Bintang, Kuala Lumpur - * - * @return @string - */ - public function townState() - { - $state = static::randomElement(array_keys(static::$states)); - $postcode = static::postcode($state); - $town = static::randomElement(static::$towns[$state]); - $state = static::randomElement(static::$states[$state]); - - return $postcode . ' ' . $town . ', ' . $state; - } - - /** - * Return a random city (town) - * - * @example 'Ampang' - * - * @return @string - */ - public function city() - { - $state = static::randomElement(array_keys(static::$towns)); - return static::randomElement(static::$towns[$state]); - } - - /** - * Return a random state - * - * @example 'Johor' - * - * @return @string - */ - public function state() - { - $state = static::randomElement(array_keys(static::$states)); - return static::randomElement(static::$states[$state]); - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/ms_MY/Company.php b/vendor/fzaninotto/faker/src/Faker/Provider/ms_MY/Company.php deleted file mode 100644 index f2e2f5f4..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/ms_MY/Company.php +++ /dev/null @@ -1,105 +0,0 @@ -generator->parse($formats); - } - - /** - * Return Peninsular prefix alphabet - * - * @example 'W' - * - * @return @string - */ - public static function peninsularPrefix() - { - return static::randomElement(static::$peninsularPrefix); - } - - /** - * Return Sarawak state prefix alphabet - * - * @example 'QA' - * - * @return @string - */ - public static function sarawakPrefix() - { - return static::randomElement(static::$sarawakPrefix); - } - - /** - * Return Sabah state prefix alphabet - * - * @example 'SA' - * - * @return @string - */ - public static function sabahPrefix() - { - return static::randomElement(static::$sabahPrefix); - } - - /** - * Return specialty licence plate prefix - * - * @example 'G1M' - * - * @return @string - */ - public static function specialPrefix() - { - return static::randomElement(static::$specialPrefix); - } - - /** - * Return a valid license plate alphabet - * - * @example 'A' - * - * @return @string - */ - public static function validAlphabet() - { - return static::randomElement(static::$validAlphabets); - } - - /** - * Return a valid number sequence between 1 and 9999 - * - * @example '1234' - * - * @return @integer - */ - public static function numberSequence() - { - return mt_rand(1, 9999); - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/ms_MY/Payment.php b/vendor/fzaninotto/faker/src/Faker/Provider/ms_MY/Payment.php deleted file mode 100644 index b70a590f..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/ms_MY/Payment.php +++ /dev/null @@ -1,244 +0,0 @@ -generator->parse($formats); - } - - /** - * Return a Malaysian Bank account number - * - * @example '1234567890123456' - * - * @return @string - */ - public function bankAccountNumber() - { - $formats = static::randomElement(static::$bankAccountNumberFormats); - - return static::numerify($formats); - } - - /** - * Return a Malaysian Local Bank - * - * @example 'Public Bank' - * - * @return @string - */ - public static function localBank() - { - return static::randomElement(static::$localBanks); - } - - /** - * Return a Malaysian Foreign Bank - * - * @example 'Citibank Berhad' - * - * @return @string - */ - public static function foreignBank() - { - return static::randomElement(static::$foreignBanks); - } - - /** - * Return a Malaysian Government Bank - * - * @example 'Bank Simpanan Nasional' - * - * @return @string - */ - public static function governmentBank() - { - return static::randomElement(static::$governmentBanks); - } - - /** - * Return a Malaysian insurance company - * - * @example 'AIA Malaysia' - * - * @return @string - */ - public static function insurance() - { - return static::randomElement(static::$insuranceCompanies); - } - - /** - * Return a Malaysian Bank SWIFT Code - * - * @example 'MBBEMYKLXXX' - * - * @return @string - */ - public static function swiftCode() - { - return static::toUpper(static::lexify(static::randomElement(static::$swiftCodes))); - } - - /** - * Return the Malaysian currency symbol - * - * @example 'RM' - * - * @return @string - */ - public static function currencySymbol() - { - return static::randomElement(static::$currencySymbol); - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/ms_MY/Person.php b/vendor/fzaninotto/faker/src/Faker/Provider/ms_MY/Person.php deleted file mode 100644 index 7dfaaac5..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/ms_MY/Person.php +++ /dev/null @@ -1,813 +0,0 @@ -generator->parse(static::randomElement($formats)); - } - - /** - * Return a Malaysian I.C. No. - * - * @example '890123-45-6789' - * - * @link https://en.wikipedia.org/wiki/Malaysian_identity_card#Structure_of_the_National_Registration_Identity_Card_Number_(NRIC) - * - * @param string|null $gender 'male', 'female' or null for any - * @param bool|string|null $hyphen true, false, or any separator characters - * - * @return string - */ - public static function myKadNumber($gender = null, $hyphen = false) - { - // year of birth - $yy = mt_rand(0, 99); - - // month of birth - $mm = DateTime::month(); - - // day of birth - $dd = DateTime::dayOfMonth(); - - // place of birth (1-59 except 17-20) - while (in_array(($pb = mt_rand(1, 59)), array(17, 18, 19, 20))) { - }; - - // random number - $nnn = mt_rand(0, 999); - - // gender digit. Odd = MALE, Even = FEMALE - $g = mt_rand(0, 9); - //Credit: https://gist.github.com/mauris/3629548 - if ($gender === static::GENDER_MALE) { - $g = $g | 1; - } elseif ($gender === static::GENDER_FEMALE) { - $g = $g & ~1; - } - - // formatting with hyphen - if ($hyphen === true) { - $hyphen = "-"; - } else if ($hyphen === false) { - $hyphen = ""; - } - - return sprintf("%02d%02d%02d%s%02d%s%03d%01d", $yy, $mm, $dd, $hyphen, $pb, $hyphen, $nnn, $g); - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/ms_MY/PhoneNumber.php b/vendor/fzaninotto/faker/src/Faker/Provider/ms_MY/PhoneNumber.php deleted file mode 100644 index ad199c0d..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/ms_MY/PhoneNumber.php +++ /dev/null @@ -1,217 +0,0 @@ -generator->parse($format)); - } else { - return static::numerify($this->generator->parse($format)); - } - } - - /** - * Return prefix digits for 011 numbers - * - * @example '10' - * - * @return string - */ - public static function zeroOneOnePrefix() - { - return static::numerify(static::randomElement(static::$zeroOneOnePrefix)); - } - - /** - * Return prefix digits for 014 numbers - * - * @example '2' - * - * @return string - */ - public static function zeroOneFourPrefix() - { - return static::numerify(static::randomElement(static::$zeroOneFourPrefix)); - } - - /** - * Return prefix digits for 015 numbers - * - * @example '1' - * - * @return string - */ - public static function zeroOneFivePrefix() - { - return static::numerify(static::randomElement(static::$zeroOneFivePrefix)); - } - - /** - * Return a Malaysian Fixed Line Phone Number. - * - * @example '+603-4567-8912' - * - * @param bool $countryCodePrefix true, false - * @param bool $formatting true, false - * - * @return string - */ - public function fixedLineNumber($countryCodePrefix = true, $formatting = true) - { - if ($formatting) { - $format = static::randomElement(static::$fixedLineNumberFormatsWithFormatting); - } else { - $format = static::randomElement(static::$fixedLineNumberFormats); - } - - if ($countryCodePrefix) { - return static::countryCodePrefix($formatting) . static::numerify($this->generator->parse($format)); - } else { - return static::numerify($this->generator->parse($format)); - } - } - - /** - * Return a Malaysian VoIP Phone Number. - * - * @example '+6015-678-9234' - * - * @param bool $countryCodePrefix true, false - * @param bool $formatting true, false - * - * @return string - */ - public function voipNumber($countryCodePrefix = true, $formatting = true) - { - if ($formatting) { - $format = static::randomElement(static::$voipNumberWithFormatting); - } else { - $format = static::randomElement(static::$voipNumber); - } - - if ($countryCodePrefix) { - return static::countryCodePrefix($formatting) . static::numerify($this->generator->parse($format)); - } else { - return static::numerify($this->generator->parse($format)); - } - } - - /** - * Return a Malaysian Country Code Prefix. - * - * @example '+6' - * - * @param bool $formatting true, false - * - * @return string - */ - public static function countryCodePrefix($formatting = true) - { - if ($formatting) { - return static::randomElement(static::$plusSymbol) . static::randomElement(static::$countryCodePrefix); - } else { - return static::randomElement(static::$countryCodePrefix); - } - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/nb_NO/Address.php b/vendor/fzaninotto/faker/src/Faker/Provider/nb_NO/Address.php deleted file mode 100644 index d1d8c9e4..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/nb_NO/Address.php +++ /dev/null @@ -1,195 +0,0 @@ -format('dmy'); - - /** - * @todo These number should be random based on birth year - * @link http://no.wikipedia.org/wiki/F%C3%B8dselsnummer - */ - $randomDigits = (string)static::numerify('##'); - - switch($gender) { - case static::GENDER_MALE: - $genderDigit = static::randomElement(array(1,3,5,7,9)); - break; - case static::GENDER_FEMALE: - $genderDigit = static::randomElement(array(0,2,4,6,8)); - break; - default: - $genderDigit = (string)static::numerify('#'); - } - - - $digits = $datePart.$randomDigits.$genderDigit; - - /** - * @todo Calculate modulo 11 of $digits - * @link http://no.wikipedia.org/wiki/F%C3%B8dselsnummer - */ - $checksum = (string)static::numerify('##'); - - - return $digits.$checksum; - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/nb_NO/PhoneNumber.php b/vendor/fzaninotto/faker/src/Faker/Provider/nb_NO/PhoneNumber.php deleted file mode 100644 index 9be29932..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/nb_NO/PhoneNumber.php +++ /dev/null @@ -1,22 +0,0 @@ -format('ymd')); - $help = $date->format('Y') >= 2000 ? 2 : null; - - $check = intval($help.$dob.$middle); - $rest = sprintf('%02d', 97 - ($check % 97)); - - return $dob.$middle.$rest; - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/nl_BE/PhoneNumber.php b/vendor/fzaninotto/faker/src/Faker/Provider/nl_BE/PhoneNumber.php deleted file mode 100644 index ac17f1b1..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/nl_BE/PhoneNumber.php +++ /dev/null @@ -1,20 +0,0 @@ - 9) { - if ($nr[1] > 0) { - $nr[0] = 8; - $nr[1]--; - } else { - $nr[0] = 1; - $nr[1]++; - - } - } - return implode('', array_reverse($nr)); - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/nl_NL/PhoneNumber.php b/vendor/fzaninotto/faker/src/Faker/Provider/nl_NL/PhoneNumber.php deleted file mode 100644 index c27fe9b2..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/nl_NL/PhoneNumber.php +++ /dev/null @@ -1,39 +0,0 @@ - 'Narodowy Bank Polski', - '102' => 'Powszechna Kasa OszczÄ™dnoÅ›ci Bank Polski SA', - '103' => 'Bank Handlowy w Warszawie SA', - '105' => 'ING Bank ÅšlÄ…ski SA', - '106' => 'Bank BPH SA', - '109' => 'Bank Zachodni WBK SA', - '113' => 'Bank Gospodarstwa Krajowego', - '114' => 'mBank SA', - '116' => 'Bank Millennium SA', - '122' => 'Bank Handlowo-Kredytowy Spółka Akcyjna w Katowicach w likwidacji', - '124' => 'Bank Polska Kasa Opieki SA', - '128' => 'HSBC Bank Polska SA', - '132' => 'Bank Pocztowy SA', - '147' => 'Euro Bank SA', - '154' => 'Bank Ochrony Åšrodowiska SA', - '158' => 'Mercedes-Benz Bank Polska SA', - '161' => 'SGB-Bank SA', - '167' => 'RBS Bank (Polska) SA', - '168' => 'PLUS BANK SA', - '175' => 'Raiffeisen Bank Polska SA', - '184' => 'Societe Generale SA OddziaÅ‚ w Polsce', - '187' => 'Nest Bank S.A.', - '189' => 'Pekao Bank Hipoteczny SA', - '191' => 'Deutsche Bank Polska SA', - '193' => 'BANK POLSKIEJ SPÓÅDZIELCZOÅšCI SA', - '194' => 'Credit Agricole Bank Polska SA', - '195' => 'Idea Bank SA', - '203' => 'Bank BGÅ» BNP Paribas SA', - '212' => 'Santander Consumer Bank SA', - '213' => 'VOLKSWAGEN BANK POLSKA SA', - '214' => 'FCA-Group Bank Polska SA', - '215' => 'mBank Hipoteczny SA', - '216' => 'Toyota Bank Polska SA', - '219' => 'DNB Bank Polska SA', - '224' => 'Banque PSA Finance SA OddziaÅ‚ w Polsce', - '225' => 'Svenska Handelsbanken AB SA OddziaÅ‚ w Polsce', - '229' => 'BPI Bank Polskich Inwestycji SA', - '232' => 'Nykredit Realkredit A/S SA - OddziaÅ‚ w Polsce', - '235' => 'BNP PARIBAS SA OddziaÅ‚ w Polsce', - '236' => 'Danske Bank A/S SA OddziaÅ‚ w Polsce', - '237' => 'Skandinaviska Enskilda Banken AB (SA) - OddziaÅ‚ w Polsce', - '239' => 'CAIXABANK, S.A. (SPÓÅKA AKCYJNA)ODDZIAÅ W POLSCE', - '241' => 'Elavon Financial Services Designated Activity Company (spółka z o.o. o wyznaczonym przedmiocie dziaÅ‚alnoÅ›ci) OddziaÅ‚ w Polsce', - '243' => 'BNP Paribas Securities Services SKA OddziaÅ‚ w Polsce', - '247' => 'HAITONG BANK, S.A. Spółka Akcyjna OddziaÅ‚ w Polsce', - '248' => 'Getin Noble Bank SA', - '249' => 'Alior Bank SA', - '251' => 'Aareal Bank Aktiengesellschaft (Spółka Akcyjna) - OddziaÅ‚ w Polsce', - '254' => 'Citibank Europe plc (Publiczna Spółka Akcyjna) OddziaÅ‚ w Polsce', - '255' => 'Ikano Bank AB (publ) Spółka Akcyjna OddziaÅ‚ w Polsce', - '256' => 'Nordea Bank AB SA OddziaÅ‚ w Polsce', - '257' => 'UBS Limited (spółka z ograniczonÄ… odpowiedzialnoÅ›ciÄ…) OddziaÅ‚ w Polsce', - '258' => 'J.P. Morgan Europe Limited Sp. z o.o. OddziaÅ‚ w Polsce', - '260' => 'Bank of China (Luxembourg) S.A. Spółka Akcyjna OddziaÅ‚ w Polsce', - '262' => 'Industrial and Commercial Bank of China (Europe) S.A. (Spółka Akcyjna) OddziaÅ‚ w Polsce', - '263' => 'Saxo Bank A/S Spółka Akcyjna OddziaÅ‚ w Polsce w likwidacji', - '264' => 'RCI Banque Spółka Akcyjna OddziaÅ‚ w Polsce', - '265' => 'EUROCLEAR Bank SA/NV (Spółka Akcyjna) - OddziaÅ‚ w Polsce', - '266' => 'Intesa Sanpaolo S.p.A. Spółka Akcyjna OddziaÅ‚ w Polsce', - '267' => 'Western Union International Bank GmbH, Sp. z o.o. OddziaÅ‚ w Polsce', - '269' => 'PKO Bank Hipoteczny SA', - '270' => 'TF BANK AB (Spółka z ograniczonÄ… odpowiedzialnoÅ›ciÄ…) OddziaÅ‚ w Polsce', - '271' => 'FCE Bank Spółka Akcyjna OddziaÅ‚ w Polsce', - '272' => 'AS Inbank Spółka Akcyjna - OddziaÅ‚ w Polsce', - '273' => 'China Construction Bank (Europe) S.A. (Spółka Akcyjna) OddziaÅ‚ w Polsce', - '274' => 'MUFG Bank (Europe) N.V. S.A. OddziaÅ‚ w Polsce', - '275' => 'John Deere Bank S.A. Spółka Akcyjna OddziaÅ‚ w Polsce', - ); - - /** - * @example 'Euro Bank SA' - */ - public static function bank() - { - return static::randomElement(static::$banks); - } - - /** - * International Bank Account Number (IBAN) - * @link http://en.wikipedia.org/wiki/International_Bank_Account_Number - * @param string $prefix for generating bank account number of a specific bank - * @param string $countryCode ISO 3166-1 alpha-2 country code - * @param integer $length total length without country code and 2 check digits - * @return string - */ - public static function bankAccountNumber($prefix = '', $countryCode = 'PL', $length = null) - { - return static::iban($countryCode, $prefix, $length); - } - - protected static function addBankCodeChecksum($iban, $countryCode = 'PL') - { - if ($countryCode != 'PL' || strlen($iban) <= 8) { - return $iban; - } - $checksum = 0; - $weights = array(7, 1, 3, 9, 7, 1, 3); - for ($i = 0; $i < 7; $i++) { - $checksum += $weights[$i] * (int) $iban[$i]; - } - $checksum = $checksum % 10; - - return substr($iban, 0, 7) . $checksum . substr($iban, 8); - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/pl_PL/Person.php b/vendor/fzaninotto/faker/src/Faker/Provider/pl_PL/Person.php deleted file mode 100644 index 380f4d9f..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/pl_PL/Person.php +++ /dev/null @@ -1,227 +0,0 @@ -generator->parse(static::randomElement(static::$lastNameFormat)); - } - - public static function lastNameMale() - { - return static::randomElement(static::$lastNameMale); - } - - public static function lastNameFemale() - { - return static::randomElement(static::$lastNameFemale); - } - - public function title($gender = null) - { - return static::randomElement(static::$title); - } - - /** - * replaced by specific unisex Polish title - */ - public static function titleMale() - { - return static::title(); - } - - /** - * replaced by specific unisex Polish title - */ - public static function titleFemale() - { - return static::title(); - } - - /** - * PESEL - Universal Electronic System for Registration of the Population - * @link http://en.wikipedia.org/wiki/PESEL - * @param DateTime $birthdate - * @param string $sex M for male or F for female - * @return string 11 digit number, like 44051401358 - */ - public static function pesel($birthdate = null, $sex = null) - { - if ($birthdate === null) { - $birthdate = \Faker\Provider\DateTime::dateTimeThisCentury(); - } - - $weights = array(1, 3, 7, 9, 1, 3, 7, 9, 1, 3); - $length = count($weights); - - $fullYear = (int) $birthdate->format('Y'); - $year = (int) $birthdate->format('y'); - $month = $birthdate->format('m') + (((int) ($fullYear/100) - 14) % 5) * 20; - $day = $birthdate->format('d'); - - $result = array((int) ($year / 10), $year % 10, (int) ($month / 10), $month % 10, (int) ($day / 10), $day % 10); - - for ($i = 6; $i < $length; $i++) { - $result[$i] = static::randomDigit(); - } - - $result[$length - 1] |= 1; - if ($sex == "F") { - $result[$length - 1] -= 1; - } - - $checksum = 0; - for ($i = 0; $i < $length; $i++) { - $checksum += $weights[$i] * $result[$i]; - } - $checksum = (10 - ($checksum % 10)) % 10; - $result[] = $checksum; - - return implode('', $result); - } - - /** - * National Identity Card number - * @link http://en.wikipedia.org/wiki/Polish_National_Identity_Card - * @return string 3 letters and 6 digits, like ABA300000 - */ - public static function personalIdentityNumber() - { - $range = str_split("ABCDEFGHIJKLMNPRSTUVWXYZ"); - $low = array("A", static::randomElement($range), static::randomElement($range)); - $high = array(static::randomDigit(), static::randomDigit(), static::randomDigit(), static::randomDigit(), static::randomDigit()); - $weights = array(7, 3, 1, 7, 3, 1, 7, 3); - $checksum = 0; - for ($i = 0, $size = count($low); $i < $size; $i++) { - $checksum += $weights[$i] * (ord($low[$i]) - 55); - } - for ($i = 0, $size = count($high); $i < $size; $i++) { - $checksum += $weights[$i+3] * $high[$i]; - } - $checksum %= 10; - - return implode('', $low).$checksum.implode('', $high); - } - - /** - * Taxpayer Identification Number (NIP in Polish) - * @link http://en.wikipedia.org/wiki/PESEL#Other_identifiers - * @link http://pl.wikipedia.org/wiki/NIP - * @return string 10 digit number - */ - public static function taxpayerIdentificationNumber() - { - $weights = array(6, 5, 7, 2, 3, 4, 5, 6, 7); - $result = array(); - do { - $result = array( - static::randomDigitNotNull(), static::randomDigitNotNull(), static::randomDigitNotNull(), - static::randomDigit(), static::randomDigit(), static::randomDigit(), - static::randomDigit(), static::randomDigit(), static::randomDigit(), - ); - $checksum = 0; - for ($i = 0, $size = count($result); $i < $size; $i++) { - $checksum += $weights[$i] * $result[$i]; - } - $checksum %= 11; - } while ($checksum == 10); - $result[] = $checksum; - - return implode('', $result); - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/pl_PL/PhoneNumber.php b/vendor/fzaninotto/faker/src/Faker/Provider/pl_PL/PhoneNumber.php deleted file mode 100644 index 65bc5c0e..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/pl_PL/PhoneNumber.php +++ /dev/null @@ -1,18 +0,0 @@ - - - Prof. Hart will answer or forward your message. - - We would prefer to send you information by email. - - - **The Legal Small Print** - - - (Three Pages) - - ***START**THE SMALL PRINT!**FOR PUBLIC DOMAIN EBOOKS**START*** - Why is this "Small Print!" statement here? You know: lawyers. - They tell us you might sue us if there is something wrong with - your copy of this eBook, even if you got it for free from - someone other than us, and even if what's wrong is not our - fault. So, among other things, this "Small Print!" statement - disclaims most of our liability to you. It also tells you how - you may distribute copies of this eBook if you want to. - - *BEFORE!* YOU USE OR READ THIS EBOOK - By using or reading any part of this PROJECT GUTENBERG-tm - eBook, you indicate that you understand, agree to and accept - this "Small Print!" statement. If you do not, you can receive - a refund of the money (if any) you paid for this eBook by - sending a request within 30 days of receiving it to the person - you got it from. If you received this eBook on a physical - medium (such as a disk), you must return it with your request. - - ABOUT PROJECT GUTENBERG-TM EBOOKS - This PROJECT GUTENBERG-tm eBook, like most PROJECT GUTENBERG-tm eBooks, - is a "public domain" work distributed by Professor Michael S. Hart - through the Project Gutenberg Association (the "Project"). - Among other things, this means that no one owns a United States copyright - on or for this work, so the Project (and you!) can copy and - distribute it in the United States without permission and - without paying copyright royalties. Special rules, set forth - below, apply if you wish to copy and distribute this eBook - under the "PROJECT GUTENBERG" trademark. - - Please do not use the "PROJECT GUTENBERG" trademark to market - any commercial products without permission. - - To create these eBooks, the Project expends considerable - efforts to identify, transcribe and proofread public domain - works. Despite these efforts, the Project's eBooks and any - medium they may be on may contain "Defects". Among other - things, Defects may take the form of incomplete, inaccurate or - corrupt data, transcription errors, a copyright or other - intellectual property infringement, a defective or damaged - disk or other eBook medium, a computer virus, or computer - codes that damage or cannot be read by your equipment. - - LIMITED WARRANTY; DISCLAIMER OF DAMAGES - But for the "Right of Replacement or Refund" described below, - [1] Michael Hart and the Foundation (and any other party you may - receive this eBook from as a PROJECT GUTENBERG-tm eBook) disclaims - all liability to you for damages, costs and expenses, including - legal fees, and [2] YOU HAVE NO REMEDIES FOR NEGLIGENCE OR - UNDER STRICT LIABILITY, OR FOR BREACH OF WARRANTY OR CONTRACT, - INCLUDING BUT NOT LIMITED TO INDIRECT, CONSEQUENTIAL, PUNITIVE - OR INCIDENTAL DAMAGES, EVEN IF YOU GIVE NOTICE OF THE - POSSIBILITY OF SUCH DAMAGES. - - If you discover a Defect in this eBook within 90 days of - receiving it, you can receive a refund of the money (if any) - you paid for it by sending an explanatory note within that - time to the person you received it from. If you received it - on a physical medium, you must return it with your note, and - such person may choose to alternatively give you a replacement - copy. If you received it electronically, such person may - choose to alternatively give you a second opportunity to - receive it electronically. - - THIS EBOOK IS OTHERWISE PROVIDED TO YOU "AS-IS". NO OTHER - WARRANTIES OF ANY KIND, EXPRESS OR IMPLIED, ARE MADE TO YOU AS - TO THE EBOOK OR ANY MEDIUM IT MAY BE ON, INCLUDING BUT NOT - LIMITED TO WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A - PARTICULAR PURPOSE. - - Some states do not allow disclaimers of implied warranties or - the exclusion or limitation of consequential damages, so the - above disclaimers and exclusions may not apply to you, and you - may have other legal rights. - - INDEMNITY - You will indemnify and hold Michael Hart, the Foundation, - and its trustees and agents, and any volunteers associated - with the production and distribution of Project Gutenberg-tm - texts harmless, from all liability, cost and expense, including - legal fees, that arise directly or indirectly from any of the - following that you do or cause: [1] distribution of this eBook, - [2] alteration, modification, or addition to the eBook, - or [3] any Defect. - - DISTRIBUTION UNDER "PROJECT GUTENBERG-tm" - You may distribute copies of this eBook electronically, or by - disk, book or any other medium if you either delete this - "Small Print!" and all other references to Project Gutenberg, - or: - - [1] Only give exact copies of it. Among other things, this - requires that you do not remove, alter or modify the - eBook or this "small print!" statement. You may however, - if you wish, distribute this eBook in machine readable - binary, compressed, mark-up, or proprietary form, - including any form resulting from conversion by word - processing or hypertext software, but only so long as - *EITHER*: - - [*] The eBook, when displayed, is clearly readable, and - does *not* contain characters other than those - intended by the author of the work, although tilde - (~), asterisk (*) and underline (_) characters may - be used to convey punctuation intended by the - author, and additional characters may be used to - indicate hypertext links; OR - - [*] The eBook may be readily converted by the reader at - no expense into plain ASCII, EBCDIC or equivalent - form by the program that displays the eBook (as is - the case, for instance, with most word processors); - OR - - [*] You provide, or agree to also provide on request at - no additional cost, fee or expense, a copy of the - eBook in its original plain ASCII form (or in EBCDIC - or other equivalent proprietary form). - - [2] Honor the eBook refund and replacement provisions of this - "Small Print!" statement. - - [3] Pay a trademark license fee to the Foundation of 20% of the - gross profits you derive calculated using the method you - already use to calculate your applicable taxes. If you - don't derive profits, no royalty is due. Royalties are - payable to "Project Gutenberg Literary Archive Foundation" - the 60 days following each date you prepare (or were - legally required to prepare) your annual (or equivalent - periodic) tax return. Please contact us beforehand to - let us know your plans and to work out the details. - - WHAT IF YOU *WANT* TO SEND MONEY EVEN IF YOU DON'T HAVE TO? - Project Gutenberg is dedicated to increasing the number of - public domain and licensed works that can be freely distributed - in machine readable form. - - The Project gratefully accepts contributions of money, time, - public domain materials, or royalty free copyright licenses. - Money should be paid to the: - "Project Gutenberg Literary Archive Foundation." - - If you are interested in contributing scanning equipment or - software or other items, please contact Michael Hart at: - hart@pobox.com - - [Portions of this eBook's header and trailer may be reprinted only - when distributed free of all fees. Copyright (C) 2001, 2002 by - Michael S. Hart. Project Gutenberg is a TradeMark and may not be - used in any sales of Project Gutenberg eBooks or other materials be - they hardware or software or any other related product without - express permission.] - - *END THE SMALL PRINT! FOR PUBLIC DOMAIN EBOOKS*Ver.02/11/02*END* - - */ -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/pt_BR/Address.php b/vendor/fzaninotto/faker/src/Faker/Provider/pt_BR/Address.php deleted file mode 100644 index 68b6df07..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/pt_BR/Address.php +++ /dev/null @@ -1,154 +0,0 @@ -generator->numerify('########0001'); - $n .= check_digit($n); - $n .= check_digit($n); - - return $formatted? vsprintf('%d%d.%d%d%d.%d%d%d/%d%d%d%d-%d%d', str_split($n)) : $n; - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/pt_BR/Internet.php b/vendor/fzaninotto/faker/src/Faker/Provider/pt_BR/Internet.php deleted file mode 100644 index 7481a6f5..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/pt_BR/Internet.php +++ /dev/null @@ -1,9 +0,0 @@ - array( - "4##############" - ), - 'MasterCard' => array( - "5##############" - ), - 'American Express' => array( - "34############", - "37############" - ), - 'Discover Card' => array( - "6011###########", - "622############", - "64#############", - "65#############" - ), - 'Diners' => array( - "301############", - "301##########", - "305############", - "305##########", - "36#############", - "36###########", - "38#############", - "38###########", - ), - 'Elo' => array( - "636368#########", - "438935#########", - "504175#########", - "451416#########", - "636297#########", - "5067###########", - "4576###########", - "4011###########", - ), - 'Hipercard' => array( - "38#############", - "60#############", - ), - "Aura" => array( - "50#############" - ) - ); - - /** - * International Bank Account Number (IBAN) - * @link http://en.wikipedia.org/wiki/International_Bank_Account_Number - * @param string $prefix for generating bank account number of a specific bank - * @param string $countryCode ISO 3166-1 alpha-2 country code - * @param integer $length total length without country code and 2 check digits - * @return string - */ - public static function bankAccountNumber($prefix = '', $countryCode = 'BR', $length = null) - { - return static::iban($countryCode, $prefix, $length); - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/pt_BR/Person.php b/vendor/fzaninotto/faker/src/Faker/Provider/pt_BR/Person.php deleted file mode 100644 index be39a2e7..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/pt_BR/Person.php +++ /dev/null @@ -1,133 +0,0 @@ -generator->numerify('#########'); - $n .= check_digit($n); - $n .= check_digit($n); - - return $formatted? vsprintf('%d%d%d.%d%d%d.%d%d%d-%d%d', str_split($n)) : $n; - } - - /** - * A random RG number, following Sao Paulo state's rules. - * @link http://pt.wikipedia.org/wiki/C%C3%A9dula_de_identidade - * @param bool $formatted If the number should have dots/dashes or not. - * @return string - */ - public function rg($formatted = true) - { - $n = $this->generator->numerify('########'); - $n .= check_digit($n); - - return $formatted? vsprintf('%d%d.%d%d%d.%d%d%d-%s', str_split($n)) : $n; - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/pt_BR/PhoneNumber.php b/vendor/fzaninotto/faker/src/Faker/Provider/pt_BR/PhoneNumber.php deleted file mode 100644 index 4949eef3..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/pt_BR/PhoneNumber.php +++ /dev/null @@ -1,137 +0,0 @@ - '')); - } - - return $number; - } - - /** - * Generates an 9-digit landline number without formatting characters. - * @param bool $formatted [def: true] If it should return a formatted number or not. - * @return string - */ - public static function landline($formatted = true) - { - $number = static::numerify(static::randomElement(static::$landlineFormats)); - - if (!$formatted) { - $number = strtr($number, array('-' => '')); - } - - return $number; - } - - /** - * Randomizes between cellphone and landline numbers. - * @param bool $formatted [def: true] If it should return a formatted number or not. - * @return mixed - */ - public static function phone($formatted = true) - { - $options = static::randomElement(array( - array('cellphone', false), - array('cellphone', true), - array('landline', null), - )); - - return call_user_func("static::{$options[0]}", $formatted, $options[1]); - } - - /** - * Generates a complete phone number. - * @param string $type [def: landline] One of "landline" or "cellphone". Defaults to "landline" on invalid values. - * @param bool $formatted [def: true] If the number should be formatted or not. - * @return string - */ - protected static function anyPhoneNumber($type, $formatted = true) - { - $area = static::areaCode(); - $number = ($type == 'cellphone')? - static::cellphone($formatted) : - static::landline($formatted); - - return $formatted? "($area) $number" : $area.$number; - } - - /** - * Concatenates {@link areaCode} and {@link cellphone} into a national cellphone number. - * @param bool $formatted [def: true] If it should return a formatted number or not. - * @return string - */ - public static function cellphoneNumber($formatted = true) - { - return static::anyPhoneNumber('cellphone', $formatted); - } - - /** - * Concatenates {@link areaCode} and {@link landline} into a national landline number. - * @param bool $formatted [def: true] If it should return a formatted number or not. - * @return string - */ - public static function landlineNumber($formatted = true) - { - return static::anyPhoneNumber('landline', $formatted); - } - - /** - * Randomizes between complete cellphone and landline numbers. - * @return mixed - */ - public function phoneNumber() - { - $method = static::randomElement(array('cellphoneNumber', 'landlineNumber')); - return call_user_func("static::$method", true); - } - - /** - * Randomizes between complete cellphone and landline numbers, cleared from formatting symbols. - * @return mixed - */ - public static function phoneNumberCleared() - { - $method = static::randomElement(array('cellphoneNumber', 'landlineNumber')); - return call_user_func("static::$method", false); - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/pt_BR/check_digit.php b/vendor/fzaninotto/faker/src/Faker/Provider/pt_BR/check_digit.php deleted file mode 100644 index ab67db9d..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/pt_BR/check_digit.php +++ /dev/null @@ -1,35 +0,0 @@ -= 12; - $verifier = 0; - - for ($i = 1; $i <= $length; $i++) { - if (!$second_algorithm) { - $multiplier = $i+1; - } else { - $multiplier = ($i >= 9)? $i-7 : $i+1; - } - $verifier += $numbers[$length-$i] * $multiplier; - } - - $verifier = 11 - ($verifier % 11); - if ($verifier >= 10) { - $verifier = 0; - } - - return $verifier; -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/pt_PT/Address.php b/vendor/fzaninotto/faker/src/Faker/Provider/pt_PT/Address.php deleted file mode 100644 index a6e10099..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/pt_PT/Address.php +++ /dev/null @@ -1,124 +0,0 @@ - 0; $i--) { - $numbers[$i] = substr($number, $i - 1, 1); - $partial[$i] = $numbers[$i] * $factor; - $sum += $partial[$i]; - if ($factor == $base) { - $factor = 1; - } - $factor++; - } - $res = $sum % 11; - - if ($res == 0 || $res == 1) { - $digit = 0; - } else { - $digit = 11 - $res; - } - - return $digit; - } - - /** - * - * @link http://nomesportugueses.blogspot.pt/2012/01/lista-dos-cem-nomes-mais-usados-em.html - */ - - protected static $firstNameMale = array( - 'Rodrigo', 'João', 'Martim', 'Afonso', 'Tomás', 'Gonçalo', 'Francisco', 'Tiago', - 'Diogo', 'Guilherme', 'Pedro', 'Miguel', 'Rafael', 'Gabriel', 'Santiago', 'Dinis', - 'David', 'Duarte', 'José', 'Simão', 'Daniel', 'Lucas', 'Gustavo', 'André', 'Denis', - 'Salvador', 'António', 'Vasco', 'Henrique', 'Lourenço', 'Manuel', 'Eduardo', 'Bernardo', - 'Leandro', 'Luís', 'Diego', 'Leonardo', 'Alexandre', 'Rúben', 'Mateus', 'Ricardo', - 'Vicente', 'Filipe', 'Bruno', 'Nuno', 'Carlos', 'Rui', 'Hugo', 'Samuel', 'Ãlvaro', - 'Matias', 'Fábio', 'Ivo', 'Paulo', 'Jorge', 'Xavier', 'Marco', 'Isaac', 'Raúl','Benjamim', - 'Renato', 'Artur', 'Mário', 'Frederico', 'Cristiano', 'Ivan', 'Sérgio', 'Micael', - 'Vítor', 'Edgar', 'Kevin', 'Joaquim', 'Igor', 'Ângelo', 'Enzo', 'Valentim', 'Flávio', - 'Joel', 'Fernando', 'Sebastião', 'Tomé', 'César', 'Cláudio', 'Nelson', 'Lisandro', 'Jaime', - 'Gil', 'Mauro', 'Sandro', 'Hélder', 'Matheus', 'William', 'Gaspar', 'Márcio', - 'Martinho', 'Emanuel', 'Marcos', 'Telmo', 'Davi', 'Wilson' - ); - - protected static $firstNameFemale = array( - 'Maria', 'Leonor', 'Matilde', 'Mariana', 'Ana', 'Beatriz', 'Inês', 'Lara', 'Carolina', 'Margarida', - 'Joana', 'Sofia', 'Diana', 'Francisca', 'Laura', 'Sara', 'Madalena', 'Rita', 'Mafalda', 'Catarina', - 'Luana', 'Marta', 'Ãris', 'Alice', 'Bianca', 'Constança', 'Gabriela', 'Eva', 'Clara', 'Bruna', 'Daniela', - 'Iara', 'Filipa', 'Vitória', 'Ariana', 'Letícia', 'Bárbara', 'Camila', 'Rafaela', 'Carlota', 'Yara', - 'Núria', 'Raquel', 'Ema', 'Helena', 'Benedita', 'Érica', 'Isabel', 'Nicole', 'Lia', 'Alícia', 'Mara', - 'Jéssica', 'Soraia', 'Júlia', 'Luna', 'Victória', 'Luísa', 'Teresa', 'Miriam', 'Adriana', 'Melissa', - 'Andreia', 'Juliana', 'Alexandra', 'Yasmin', 'Tatiana', 'Leticia', 'Luciana', 'Eduarda', 'Cláudia', - 'Débora', 'Fabiana', 'Renata', 'Kyara', 'Kelly', 'Irina', 'Mélanie', 'Nádia', 'Cristiana', 'Liliana', - 'Patrícia', 'Vera', 'Doriana', 'Ângela', 'Mia', 'Erica', 'Mónica', 'Isabela', 'Salomé', 'Cátia', - 'Verónica', 'Violeta', 'Lorena', 'Érika', 'Vanessa', 'Iris', 'Anna', 'Viviane', 'Rebeca', 'Neuza', - ); - - protected static $lastName = array( - 'Abreu', 'Almeida', 'Alves', 'Amaral', 'Amorim', 'Andrade', 'Anjos', 'Antunes', 'Araújo', 'Assunção', - 'Azevedo', 'Baptista', 'Barbosa', 'Barros', 'Batista', 'Borges', 'Branco', 'Brito', 'Campos', 'Cardoso', - 'Carneiro', 'Carvalho', 'Castro', 'Coelho', 'Correia', 'Costa', 'Cruz', 'Cunha', 'Domingues', 'Esteves', - 'Faria', 'Fernandes', 'Ferreira', 'Figueiredo', 'Fonseca', 'Freitas', 'Garcia', 'Gaspar', 'Gomes', - 'Gonçalves', 'Guerreiro', 'Henriques', 'Jesus', 'Leal', 'Leite', 'Lima', 'Lopes', 'Loureiro', 'Lourenço', - 'Macedo', 'Machado', 'Magalhães', 'Maia', 'Marques', 'Martins', 'Matias', 'Matos', 'Melo', 'Mendes', - 'Miranda', 'Monteiro', 'Morais', 'Moreira', 'Mota', 'Moura', 'Nascimento', 'Neto', 'Neves', 'Nogueira', - 'Nunes', 'Oliveira', 'Pacheco', 'Paiva', 'Pereira', 'Pinheiro', 'Pinho', 'Pinto', 'Pires', 'Ramos', - 'Reis', 'Ribeiro', 'Rocha', 'Rodrigues', 'Santos', 'Silva', 'Simões', 'Soares', 'Sousa', - 'Sá', 'Tavares', 'Teixeira', 'Torres', 'Valente', 'Vaz', 'Vicente', 'Vieira', - ); -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/pt_PT/PhoneNumber.php b/vendor/fzaninotto/faker/src/Faker/Provider/pt_PT/PhoneNumber.php deleted file mode 100644 index 618a01c6..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/pt_PT/PhoneNumber.php +++ /dev/null @@ -1,50 +0,0 @@ -generator->parse($format); - } - - public function address() - { - $format = static::randomElement(static::$addressFormats); - - return $this->generator->parse($format); - } - - public function streetAddress() - { - $format = static::randomElement(static::$streetAddressFormats); - - return $this->generator->parse($format); - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/ro_MD/Payment.php b/vendor/fzaninotto/faker/src/Faker/Provider/ro_MD/Payment.php deleted file mode 100644 index 5fb9543f..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/ro_MD/Payment.php +++ /dev/null @@ -1,19 +0,0 @@ -generator->parse($format); - } - - /** - * @example 'Cluj' - */ - public function county() - { - return static::randomElement(static::$counties); - } - - public function address() - { - $format = static::randomElement(static::$addressFormats); - - return $this->generator->parse($format); - } - - public function streetAddress() - { - $format = static::randomElement(static::$streetAddressFormats); - - return $this->generator->parse($format); - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/ro_RO/Payment.php b/vendor/fzaninotto/faker/src/Faker/Provider/ro_RO/Payment.php deleted file mode 100644 index 980e8bb9..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/ro_RO/Payment.php +++ /dev/null @@ -1,19 +0,0 @@ - '01', 'AR' => '02', 'AG' => '03', 'B' => '40', 'BC' => '04', 'BH' => '05', - 'BN' => '06', 'BT' => '07', 'BV' => '08', 'BR' => '09', 'BZ' => '10', 'CS' => '11', - 'CL' => '51', 'CJ' => '12', 'CT' => '13', 'CV' => '14', 'DB' => '15', 'DJ' => '16', - 'GL' => '17', 'GR' => '52', 'GJ' => '18', 'HR' => '19', 'HD' => '20', 'IL' => '21', - 'IS' => '22', 'IF' => '23', 'MM' => '24', 'MH' => '25', 'MS' => '26', 'NT' => '27', - 'OT' => '28', 'PH' => '29', 'SM' => '30', 'SJ' => '31', 'SB' => '32', 'SV' => '33', - 'TR' => '34', 'TM' => '35', 'TL' => '36', 'VS' => '37', 'VL' => '38', 'VN' => '39', - - 'B1' => '41', 'B2' => '42', 'B3' => '43', 'B4' => '44', 'B5' => '45', 'B6' => '46' - ); - - /** - * Personal Numerical Code (CNP) - * - * @link http://ro.wikipedia.org/wiki/Cod_numeric_personal - * @example 1111111111118 - * - * @param null|string $gender Person::GENDER_MALE or Person::GENDER_FEMALE - * @param null|string $dateOfBirth (1800-2099) 'Y-m-d', 'Y-m', 'Y' I.E. '1981-06-16', '2085-03', '1900' - * @param null|string $county county code where the CNP was issued - * @param null|bool $isResident flag if the person resides in Romania - * @return string 13 digits CNP code - */ - public function cnp($gender = null, $dateOfBirth = null, $county = null, $isResident = true) - { - $genders = array(Person::GENDER_MALE, Person::GENDER_FEMALE); - if (empty($gender)) { - $gender = static::randomElement($genders); - } elseif (!in_array($gender, $genders)) { - throw new \InvalidArgumentException("Gender must be '{Person::GENDER_MALE}' or '{Person::GENDER_FEMALE}'"); - } - - $date = $this->getDateOfBirth($dateOfBirth); - - if (is_null($county)) { - $countyCode = static::randomElement(array_values(static::$cnpCountyCodes)); - } elseif (!array_key_exists($county, static::$cnpCountyCodes)) { - throw new \InvalidArgumentException("Invalid county code '{$county}' received"); - } else { - $countyCode = static::$cnpCountyCodes[$county]; - } - - $cnp = (string)$this->getGenderDigit($date, $gender, $isResident) - . $date->format('ymd') - . $countyCode - . static::numerify('##%') - ; - - $checksum = $this->getChecksumDigit($cnp); - - return $cnp.$checksum; - } - - /** - * @param $dateOfBirth - * @return \DateTime - */ - protected function getDateOfBirth($dateOfBirth) - { - if (empty($dateOfBirth)) { - $dateOfBirthParts = array(static::numberBetween(1800, 2099)); - } else { - $dateOfBirthParts = explode('-', $dateOfBirth); - } - $baseDate = \Faker\Provider\DateTime::dateTimeBetween("first day of {$dateOfBirthParts[0]}", "last day of {$dateOfBirthParts[0]}"); - - switch (count($dateOfBirthParts)) { - case 1: - $dateOfBirthParts[] = $baseDate->format('m'); - //don't break, we need the day also - case 2: - $dateOfBirthParts[] = $baseDate->format('d'); - //don't break, next line will - case 3: - break; - default: - throw new \InvalidArgumentException("Invalid date of birth - must be null or in the 'Y-m-d', 'Y-m', 'Y' format"); - } - - if ($dateOfBirthParts[0] < 1800 || $dateOfBirthParts[0] > 2099) { - throw new \InvalidArgumentException("Invalid date of birth - year must be between 1900 and 2099, '{$dateOfBirthParts[0]}' received"); - } - - $dateOfBirthFinal = implode('-', $dateOfBirthParts); - $date = \DateTime::createFromFormat('Y-m-d', $dateOfBirthFinal); - //a full (invalid) date might have been supplied, check if it converts - if ($date->format('Y-m-d') !== $dateOfBirthFinal) { - throw new \InvalidArgumentException("Invalid date of birth - '{$date->format('Y-m-d')}' generated based on '{$dateOfBirth}' received"); - } - - return $date; - } - - /** - * - * https://ro.wikipedia.org/wiki/Cod_numeric_personal#S - * - * @param \DateTime $dateOfBirth - * @param bool $isResident - * @param string $gender - * @return int - */ - protected static function getGenderDigit(\DateTime $dateOfBirth, $gender, $isResident) - { - if (!$isResident) { - return 9; - } - - if ($dateOfBirth->format('Y') < 1900) { - if ($gender == Person::GENDER_MALE) { - return 3; - } - return 4; - } - - if ($dateOfBirth->format('Y') < 2000) { - if ($gender == Person::GENDER_MALE) { - return 1; - } - return 2; - } - - if ($gender == Person::GENDER_MALE) { - return 5; - } - return 6; - } - - /** - * Calculates a checksum for the Personal Numerical Code (CNP). - * - * @param string $value 12 digit CNP - * @return int checksum digit - */ - protected function getChecksumDigit($value) - { - $checkNumber = 279146358279; - - $checksum = 0; - foreach (range(0, 11) as $digit) { - $checksum += (int)substr($value, $digit, 1) * (int)substr($checkNumber, $digit, 1); - } - $checksum = $checksum % 11; - - return $checksum == 10 ? 1 : $checksum; - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/ro_RO/PhoneNumber.php b/vendor/fzaninotto/faker/src/Faker/Provider/ro_RO/PhoneNumber.php deleted file mode 100644 index e8af8101..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/ro_RO/PhoneNumber.php +++ /dev/null @@ -1,67 +0,0 @@ - array( - '021#######', // Bucharest - '023#######', - '024#######', - '025#######', - '026#######', - '027#######', // non-geographic - '031#######', // Bucharest - '033#######', - '034#######', - '035#######', - '036#######', - '037#######', // non-geographic - ), - 'mobile' => array( - '07########', - ) - ); - - protected static $specialFormats = array( - 'toll-free' => array( - '0800######', - '0801######', // shared-cost numbers - '0802######', // personal numbering - '0806######', // virtual cards - '0807######', // pre-paid cards - '0870######', // internet dial-up - ), - 'premium-rate' => array( - '0900######', - '0903######', // financial information - '0906######', // adult entertainment - ) - ); - - /** - * @link http://en.wikipedia.org/wiki/Telephone_numbers_in_Romania#Last_years - */ - public function phoneNumber() - { - $type = static::randomElement(array_keys(static::$normalFormats)); - $number = static::numerify(static::randomElement(static::$normalFormats[$type])); - - return $number; - } - - public static function tollFreePhoneNumber() - { - $number = static::numerify(static::randomElement(static::$specialFormats['toll-free'])); - - return $number; - } - - public static function premiumRatePhoneNumber() - { - $number = static::numerify(static::randomElement(static::$specialFormats['premium-rate'])); - - return $number; - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/ro_RO/Text.php b/vendor/fzaninotto/faker/src/Faker/Provider/ro_RO/Text.php deleted file mode 100644 index 410c6f9b..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/ro_RO/Text.php +++ /dev/null @@ -1,154 +0,0 @@ -generator->parse($format); - } - - public static function country() - { - return static::randomElement(static::$country); - } - - public static function postcode() - { - return static::toUpper(static::bothify(static::randomElement(static::$postcode))); - } - - public static function regionSuffix() - { - return static::randomElement(static::$regionSuffix); - } - - public static function region() - { - return static::randomElement(static::$region); - } - - public static function cityPrefix() - { - return static::randomElement(static::$cityPrefix); - } - - public function city() - { - return static::randomElement(static::$city); - } - - public static function streetPrefix() - { - return static::randomElement(static::$streetPrefix); - } - - public static function street() - { - return static::randomElement(static::$street); - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/ru_RU/Color.php b/vendor/fzaninotto/faker/src/Faker/Provider/ru_RU/Color.php deleted file mode 100644 index e1af033f..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/ru_RU/Color.php +++ /dev/null @@ -1,23 +0,0 @@ -generator->parse($format); - } - - public static function companyPrefix() - { - return static::randomElement(static::$companyPrefixes); - } - - public static function companyNameElement() - { - return static::randomElement(static::$companyElements); - } - - public static function companyNameSuffix() - { - return static::randomElement(static::$companyNameSuffixes); - } - - public static function inn($area_code = "") - { - if ($area_code === "" || intval($area_code) == 0) { - //Simple generation code for areas in Russian without check for valid - $area_code = static::numberBetween(1, 91); - } else { - $area_code = intval($area_code); - } - $area_code = str_pad($area_code, 2, '0', STR_PAD_LEFT); - $inn_base = $area_code . static::numerify('#######'); - return $inn_base . \Faker\Calculator\Inn::checksum($inn_base); - } - - public static function kpp($inn = "") - { - if ($inn == "" || strlen($inn) < 4) { - $inn = static::inn(); - } - return substr($inn, 0, 4) . "01001"; - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/ru_RU/Internet.php b/vendor/fzaninotto/faker/src/Faker/Provider/ru_RU/Internet.php deleted file mode 100644 index 53870ee3..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/ru_RU/Internet.php +++ /dev/null @@ -1,9 +0,0 @@ -.*<' | \ - * sed -r 's/—//' | sed -r 's/[\<\>]//g' | sed -r "s/(^|$)/'/g" | sed -r 's/$/,/' | sed -r 's/\&(laquo|raquo);/"/g' | \ - * sed -r 's/\s+/ /g'" - */ - protected static $banks = array( - 'Ðовый Промышленный Банк', - 'Ðовый Символ', - 'ÐокÑÑбанк', - 'ÐооÑфера', - 'Ðордеа Банк', - 'Ðота-Банк', - 'ÐС Банк', - 'ÐСТ-Банк', - 'ÐÑклиÑ-Банк', - 'Образование', - 'Объединенный Банк Промышленных ИнвеÑтиций', - 'Объединенный Банк РеÑпублики', - 'Объединенный Капитал', - 'Объединенный Кредитный Банк', - 'Объединенный Кредитный Банк МоÑковÑкий филиал', - 'Объединенный Ðациональный Банк', - 'Объединенный Резервный Банк', - 'Океан Банк', - 'ОЛМÐ-Банк', - 'Онего', - 'Оней Банк', - 'ОПМ-Банк', - 'Оргбанк', - 'Оренбург', - 'ОТП Банк', - 'ОФК Банк', - 'Охабанк', - 'Первобанк', - 'ПервомайÑкий', - 'ПервоуральÑкбанк', - 'Первый ДортранÑбанк', - 'Первый ИнвеÑтиционный банк', - 'Первый КлиентÑкий Банк', - 'Первый ЧешÑко-РоÑÑийÑкий Банк', - 'ПереÑвет', - 'Пермь', - 'ПетербургÑкий Социальный КоммерчеÑкий Банк', - 'Петрокоммерц', - 'ПИР Банк', - 'Платина', - 'Плато-Банк', - 'ÐŸÐ»ÑŽÑ Ð‘Ð°Ð½Ðº', - 'Пойдем!', - 'Почтобанк', - 'Прайм ФинанÑ', - 'Преодоление', - 'Приморье', - 'ПримÑоцбанк', - 'Примтеркомбанк', - 'Прио-Внешторгбанк', - 'Приобье', - 'ПриполÑрный', - 'ПриÑко Капитал Банк', - 'ПробизнеÑбанк', - 'ПроинвеÑтбанк', - 'Прокоммерцбанк', - 'ПроминвеÑтбанк', - 'Промрегионбанк', - 'ПромÑвÑзьбанк', - 'ПромÑвÑзьинвеÑтбанк', - 'ПромÑельхозбанк', - 'ПромтранÑбанк', - 'Промышленно-ФинанÑовое СотрудничеÑтво', - 'ПромÑнергобанк', - 'ПрофеÑÑионал Банк', - 'Профит Банк', - 'Прохладный', - 'ÐŸÑƒÐ»ÑŒÑ Ð¡Ñ‚Ð¾Ð»Ð¸Ñ†Ñ‹', - 'Радиотехбанк', - 'Развитие', - 'Развитие-Столица', - 'Райффайзенбанк', - 'РаÑчетно-Кредитный Банк', - 'РаÑчетный Дом', - 'РБÐ', - 'Региональный Банк РазвитиÑ', - 'Региональный Банк Сбережений', - 'Региональный КоммерчеÑкий Банк', - 'Региональный Кредит', - 'РегионфинанÑбанк', - 'Регнум', - 'Резерв', - 'РенеÑÑанÑ', - 'РенеÑÑÐ°Ð½Ñ ÐšÑ€ÐµÐ´Ð¸Ñ‚', - 'Рента-Банк', - 'РЕСО Кредит', - 'РеÑпубликанÑкий Кредитный ÐльÑнÑ', - 'РеÑурÑ-ТраÑÑ‚', - 'Риабанк', - 'Риал-Кредит', - 'РинвеÑтбанк', - 'РинвеÑтбанк МоÑковÑкий офиÑ', - 'РИТ-Банк', - 'РРБанк', - 'РоÑавтобанк', - 'РоÑбанк', - 'РоÑбизнеÑбанк', - 'РоÑгоÑÑтрах Банк', - 'РоÑдорбанк', - 'РоÑЕвроБанк', - 'РоÑинтерБанк', - 'РоÑпромбанк', - 'РоÑÑельхозбанк', - 'РоÑÑийÑÐºÐ°Ñ Ð¤Ð¸Ð½Ð°Ð½ÑÐ¾Ð²Ð°Ñ ÐšÐ¾Ñ€Ð¿Ð¾Ñ€Ð°Ñ†Ð¸Ñ', - 'РоÑÑийÑкий Капитал', - 'РоÑÑийÑкий Кредит', - 'РоÑÑийÑкий Ðациональный КоммерчеÑкий Банк', - 'РоÑÑита-Банк', - 'РоÑÑиÑ', - 'РоÑÑ‚ Банк', - 'РоÑтфинанÑ', - 'РоÑÑкÑимбанк', - 'РоÑÑнергобанк', - 'РоÑл Кредит Банк', - 'РСКБ', - 'РТС-Банк', - 'РУБанк', - 'Рублев', - 'Руна-Банк', - 'РунÑтбанк', - 'РуÑкобанк', - 'РуÑнарбанк', - 'РуÑÑкий Банк Сбережений', - 'РуÑÑкий Ипотечный Банк', - 'РуÑÑкий Международный Банк', - 'РуÑÑкий Ðациональный Банк', - 'РуÑÑкий Стандарт', - 'РуÑÑкий Торговый Банк', - 'РуÑÑкий ТраÑтовый Банк', - 'РуÑÑкий ФинанÑовый ÐльÑнÑ', - 'РуÑÑкий Элитарный Банк', - 'РуÑÑлавбанк', - 'РуÑÑобанк', - 'РуÑÑтройбанк', - 'РуÑÑ„Ð¸Ð½Ð°Ð½Ñ Ð‘Ð°Ð½Ðº', - 'РуÑÑŒ', - 'РуÑьРегионБанк', - 'РуÑьуниверÑалбанк', - 'РуÑЮгбанк', - 'РФИ Банк', - 'Саммит Банк', - 'Санкт-ПетербургÑкий Банк ИнвеÑтиций', - 'Саратов', - 'СаровбизнеÑбанк', - 'Сбербанк РоÑÑии', - 'СвÑзной Банк', - 'СвÑзь-Банк', - 'СДМ-Банк', - 'СеваÑтопольÑкий МорÑкой банк', - 'Северный Кредит', - 'Северный Ðародный Банк', - 'Северо-ВоÑточный ÐльÑнÑ', - 'Северо-Западный 1 ÐльÑÐ½Ñ Ð‘Ð°Ð½Ðº', - 'СеверÑтройбанк', - 'СевзапинвеÑтпромбанк', - 'Сельмашбанк', - 'СервиÑ-Резерв', - 'Сетелем Банк', - 'СИÐБ', - 'СибирÑкий Банк РеконÑтрукции и РазвитиÑ', - 'Сибнефтебанк', - 'СибÑоцбанк', - 'СибÑÑ', - 'СибÑÑ ÐœÐ¾ÑковÑкий офиÑ', - 'СинергиÑ', - 'Синко-Банк', - 'СиÑтема', - 'Сити ИнвеÑÑ‚ Банк', - 'Ситибанк', - 'СКÐ-Банк', - 'СКБ-Банк', - 'СлавиÑ', - 'СлавÑнбанк', - 'СлавÑнÑкий Кредит', - 'Смартбанк', - 'СМБ-Банк', - 'Смолевич', - 'СМП Банк', - 'СнежинÑкий', - 'Собинбанк', - 'Соверен Банк', - 'СоветÑкий', - 'Совкомбанк', - 'Современные Стандарты БизнеÑа', - 'СодружеÑтво', - 'СоколовÑкий', - 'Солид Банк', - 'СолидарноÑть (МоÑква)', - 'СолидарноÑть (Самара)', - 'СоцинвеÑтбанк', - 'СоцинвеÑтбанк МоÑковÑкий филиал', - 'Социум-Банк', - 'Союз', - 'Союзный', - 'СпецÑтройбанк', - 'Спиритбанк', - 'Спурт Банк', - 'Спутник', - 'СтавропольпромÑтройбанк', - 'Сталь Банк', - 'Стандарт-Кредит', - 'Стар ÐльÑнÑ', - 'СтарБанк', - 'СтарооÑкольÑкий Ðгропромбанк', - 'Старый Кремль', - 'Стелла-Банк', - 'Столичный Кредит', - 'СтратегиÑ', - 'Строительно-КоммерчеÑкий Банк', - 'СтройлеÑбанк', - 'Сумитомо Мицуи', - 'Сургутнефтегазбанк', - 'СЭБ Банк', - 'Таатта', - 'ТавричеÑкий', - 'Таганрогбанк', - 'Тагилбанк', - 'Тайдон', - 'Тайм Банк', - 'Тальменка-Банк', - 'Тальменка-Банк МоÑковÑкий филиал', - 'Тамбовкредитпромбанк', - 'Татагропромбанк', - 'ТатÑоцбанк', - 'Татфондбанк', - 'Ð¢Ð°ÑƒÑ€ÑƒÑ Ð‘Ð°Ð½Ðº', - 'ТверьУниверÑалБанк', - 'ТекÑбанк', - 'Темпбанк', - 'Тендер-Банк', - 'Терра', - 'ТетраполиÑ', - 'Тимер Банк', - 'Тинькофф Банк', - 'ТихоокеанÑкий Внешторгбанк', - 'Тойота Банк', - 'ТольÑттихимбанк', - 'ТомÑкпромÑтройбанк', - 'Торгово-Промышленный Банк КитаÑ', - 'Торговый ГородÑкой Банк', - 'ТоржокуниверÑалбанк', - 'ТранÑкапиталбанк', - 'ТранÑнациональный Банк', - 'ТранÑпортный', - 'ТранÑÑтройбанк', - 'ТраÑÑ‚ Капитал Банк', - 'Тройка-Д Банк', - 'ТульÑкий Промышленник', - 'ТульÑкий Промышленник МоÑковÑкий офиÑ', - 'ТульÑкий РаÑчетный Центр', - 'Турбобанк', - 'ТуÑар', - 'ТЭМБР-Банк', - 'ТЭСТ', - 'Углеметбанк', - 'Уздан', - 'Унифин', - 'Унифондбанк', - 'Уралкапиталбанк', - 'Уралприватбанк', - 'Уралпромбанк', - 'УралÑиб', - 'УралтранÑбанк', - 'УралфинанÑ', - 'УральÑкий Банк РеконÑтрукции и РазвитиÑ', - 'УральÑкий Межрегиональный Банк', - 'УральÑкий ФинанÑовый Дом', - 'Ури Банк', - 'УÑÑури', - 'ФДБ', - 'ФИÐ-Банк', - 'Финам Банк', - 'Ð¤Ð¸Ð½Ð°Ð½Ñ Ð‘Ð¸Ð·Ð½ÐµÑ Ð‘Ð°Ð½Ðº', - 'ФинанÑово-Промышленный Капитал', - 'ФинанÑовый Капитал', - 'ФинанÑовый Стандарт', - 'Ð¤Ð¸Ð½Ð°Ñ€Ñ Ð‘Ð°Ð½Ðº', - 'Финпромбанк (ФПБ Банк)', - 'ФинтраÑтбанк', - 'ФК Открытие (бывш. ÐОМОС-Банк)', - 'Флора-МоÑква', - 'ФолькÑваген Банк РуÑ', - 'ФондÑервиÑбанк', - 'Фора-Банк', - 'Форбанк', - 'Ð¤Ð¾Ñ€ÑƒÑ Ð‘Ð°Ð½Ðº', - 'Форштадт', - 'Фьючер', - 'ХакаÑÑкий Муниципальный Банк', - 'Ханты-МанÑийÑкий банк Открытие', - 'Химик', - 'Хлынов', - 'ХованÑкий', - 'ХолдинвеÑтбанк', - 'ХолмÑк', - 'Хоум Кредит Банк', - 'Центр-инвеÑÑ‚', - 'Центрально-ÐзиатÑкий', - 'Центрально-ЕвропейÑкий Банк', - 'Центркомбанк', - 'ЦентроКредит', - 'Церих', - 'Чайна КонÑтракшн', - 'ЧайнаÑельхозбанк', - 'Челиндбанк', - 'ЧелÑбинвеÑтбанк', - 'ЧерноморÑкий банк Ñ€Ð°Ð·Ð²Ð¸Ñ‚Ð¸Ñ Ð¸ реконÑтрукции', - 'Чувашкредитпромбанк', - 'Эйч-ЭÑ-Би-Си Банк (HSBC)', - 'Эко-ИнвеÑÑ‚', - 'Экономбанк', - 'ЭкономикÑ-Банк', - 'ЭкÑи-Банк', - 'ЭкÑперт Банк', - 'ЭкÑпобанк', - 'ЭкÑпреÑÑ-Волга', - 'ЭкÑпреÑÑ-Кредит', - 'Эл Банк', - 'Элита', - 'Эльбин', - 'Энергобанк', - 'Энергомашбанк', - 'ЭнерготранÑбанк', - 'Эно', - 'ЭнтузиаÑтбанк', - 'Эргобанк', - 'Ю Би Ð­Ñ Ð‘Ð°Ð½Ðº', - 'ЮГ-ИнвеÑтбанк', - 'Югра', - 'Южный Региональный Банк', - 'ЮМК', - 'ЮниаÑтрум Банк', - 'ЮниКредит Банк', - 'ЮниÑтрим', - 'Япы Креди Банк МоÑква', - 'ЯР-Банк', - 'Яринтербанк', - 'ЯроÑлавич', - 'K2 Банк', - 'ÐББ', - 'ÐбÑолют Банк', - 'Ðвангард', - 'ÐверÑ', - 'Ðвтоградбанк', - 'ÐвтоКредитБанк', - 'Ðвтоторгбанк', - 'Ðгроинкомбанк', - 'Ðгропромкредит', - 'ÐгророÑ', - 'ÐгроÑоюз', - 'Ðдамон Банк', - 'Ðдамон Банк МоÑковÑкий филиал', - 'Ðделантбанк', - 'ÐдмиралтейÑкий', - 'ÐзиатÑко-ТихоокеанÑкий Банк', - 'Ðзимут', - 'ÐÐ·Ð¸Ñ Ð‘Ð°Ð½Ðº', - 'ÐзиÑ-ИнвеÑÑ‚ Банк', - 'Ðй-Си-Ðй-Си-Ðй Банк (ICICI)', - 'Ðйви Банк', - 'ÐйМаниБанк', - 'Ðк БарÑ', - 'Ðкибанк', - 'Ðккобанк', - 'Ðкрополь', - 'ÐкÑонбанк', - 'Ðктив Банк', - 'ÐктивКапитал Банк', - 'ÐктивКапитал Банк МоÑковÑкий филиал', - 'ÐктивКапитал Банк Санкт-ПетербургÑкий филиал', - 'Ðкцент', - 'Ðкцепт', - 'ÐкциÑ', - 'Ðлданзолотобанк', - 'ÐлекÑандровÑкий', - 'Ðлеф-Банк', - 'Ðлжан', - 'ÐлмазÑргиÑнбанк', - 'ÐлтайБизнеÑ-Банк', - 'Ðлтайкапиталбанк', - 'Ðлтынбанк', - 'Ðльба ÐльÑнÑ', - 'Ðльта-Банк', - 'Ðльтернатива', - 'Ðльфа-Банк', - 'ÐМБ Банк', - 'ÐмерикÑн ЭкÑпреÑÑ Ð‘Ð°Ð½Ðº', - 'Ðнелик РУ', - 'Ðнкор Банк', - 'Ðнталбанк', - 'Ðпабанк', - 'ÐреÑбанк', - 'ÐрзамаÑ', - 'ÐркÑбанк', - 'ÐÑ€Ñенал', - 'ÐÑпект', - 'ÐÑÑоциациÑ', - 'БайкалБанк', - 'БайкалИнвеÑтБанк', - 'Байкалкредобанк', - 'Балаково-Банк', - 'БалтийÑкий Банк', - 'Балтика', - 'БалтинвеÑтбанк', - 'Банк "Ðкцент" МоÑковÑкий филиал', - 'Банк "МБÐ-МоÑква"', - 'Банк "Санкт-Петербург"', - 'Банк ÐВБ', - 'Банк БКФ', - 'Банк БФÐ', - 'Банк БЦК-МоÑква', - 'Банк Город', - 'Банк Жилищного ФинанÑированиÑ', - 'Банк Инноваций и РазвитиÑ', - 'Банк Интеза', - 'Банк ИТБ', - 'Банк Казани', - 'Банк ÐšÐ¸Ñ‚Ð°Ñ (ЭлоÑ)', - 'Банк Кредит СвиÑÑ', - 'Банк МБФИ', - 'Банк МоÑквы', - 'Банк на КраÑных Воротах', - 'Банк Оранжевый (бывш. ПромÑервиÑбанк)', - 'Банк оф Токио-МицубиÑи', - 'Банк Премьер Кредит', - 'Банк ÐŸÐ¡Ð Ð¤Ð¸Ð½Ð°Ð½Ñ Ð ÑƒÑ', - 'Банк Ð Ð°Ð·Ð²Ð¸Ñ‚Ð¸Ñ Ð¢ÐµÑ…Ð½Ð¾Ð»Ð¾Ð³Ð¸Ð¹', - 'Банк РаÑчетов и Сбережений', - 'Банк Раунд', - 'Банк РСИ', - 'Банк Сберегательно-кредитного ÑервиÑа', - 'Банк СГБ', - 'Банк Торгового ФинанÑированиÑ', - 'Банк ФинÑервиÑ', - 'Банк ЭкономичеÑкий Союз', - 'БанкирÑкий Дом', - 'Ð‘Ð°Ð½ÐºÑ…Ð°ÑƒÑ Ð­Ñ€Ð±Ðµ', - 'БашкомÑнаббанк', - 'Башпромбанк', - 'ББР Банк', - 'БелгородÑоцбанк', - 'Бенифит-Банк', - 'Берейт', - 'БеÑÑ‚ Ð­Ñ„Ñ„Ð¾Ñ€Ñ‚Ñ Ð‘Ð°Ð½Ðº', - 'Ð‘Ð¸Ð·Ð½ÐµÑ Ð´Ð»Ñ Ð‘Ð¸Ð·Ð½ÐµÑа', - 'Бинбанк', - 'БИÐБÐÐК кредитные карты', - 'Бинбанк МурманÑк', - 'БКС ИнвеÑтиционный Банк', - 'БМВ Банк', - 'БÐП Париба Банк', - 'БогородÑкий', - 'БогородÑкий Муниципальный Банк', - 'БратÑкий ÐÐКБ', - 'БСТ-Банк', - 'Булгар Банк', - 'Бум-Банк', - 'Бумеранг', - 'БФГ-Кредит', - 'БыÑтроБанк', - 'Вакобанк', - 'Вега-Банк', - 'Век', - 'Великие Луки Банк', - 'Венец', - 'ВерхневолжÑкий', - 'ВерхневолжÑкий КрымÑкий филиал', - 'ВерхневолжÑкий МоÑковÑкий филиал', - 'ВерхневолжÑкий ÐевÑкий филиал', - 'ВерхневолжÑкий ТавричеÑкий филиал', - 'ВерхневолжÑкий ЯроÑлавÑкий филиал', - 'ВеÑта', - 'ВеÑтинтербанк', - 'ВзаимодейÑтвие', - 'Викинг', - 'Витабанк', - 'ВитÑзь', - 'Вкабанк', - 'ВладбизнеÑбанк', - 'Владпромбанк', - 'Внешпромбанк', - 'Внешфинбанк', - 'ВнешÑкономбанк', - 'Военно-Промышленный Банк', - 'Возрождение', - 'Вокбанк', - 'Вологдабанк', - 'Вологжанин', - 'Воронеж', - 'ВоÑточно-ЕвропейÑкий ТраÑтовый Банк', - 'ВоÑточный ЭкÑпреÑÑ Ð‘Ð°Ð½Ðº', - 'ВоÑтСибтранÑкомбанк', - 'ВРБ МоÑква', - 'Ð’ÑероÑÑийÑкий Банк Ð Ð°Ð·Ð²Ð¸Ñ‚Ð¸Ñ Ð ÐµÐ³Ð¸Ð¾Ð½Ð¾Ð²', - 'ВТБ', - 'ВТБ 24', - 'ВУЗ-Банк', - 'Выборг-Банк', - 'Выборг-Банк МоÑковÑкий филиал', - 'Ð’Ñлтон Банк', - 'Ð’Ñтич', - 'Ð’Ñтка-Банк', - 'ГагаринÑкий', - 'Газбанк', - 'Газнефтьбанк', - 'Газпромбанк', - 'ГазÑтройбанк', - 'ГазтранÑбанк', - 'ГазÑнергобанк', - 'Ганзакомбанк', - 'Гарант-ИнвеÑÑ‚', - 'Гаранти Банк МоÑква', - 'Геленджик-Банк', - 'Генбанк', - 'Геобанк', - 'ГефеÑÑ‚', - 'ГлобуÑ', - 'ГлобÑкÑ', - 'Голдман Ð¡Ð°ÐºÑ Ð‘Ð°Ð½Ðº', - 'Горбанк', - 'ГПБ-Ипотека', - 'Гранд ИнвеÑÑ‚ Банк', - 'Гринкомбанк', - 'Гринфилдбанк', - 'ГриÑ-Банк', - 'Гута-Банк', - 'Далена', - 'Далетбанк', - 'Далта-Банк', - 'ДальневоÑточный Банк', - 'ДанÑке Банк', - 'Девон-Кредит', - 'ДельтаКредит', - 'Денизбанк МоÑква', - 'Держава', - 'Дж. П. ÐœÐ¾Ñ€Ð³Ð°Ð½ Банк', - 'ДжаÑÑ‚ Банк', - 'Джей Ñнд Ти Банк', - 'Дил-Банк', - 'Динамичные СиÑтемы', - 'Дойче Банк', - 'ДолинÑк', - 'Дом-Банк', - 'Дон-ТекÑбанк', - 'Донкомбанк', - 'Донхлеббанк', - 'Ð”Ð¾Ñ€Ð¸Ñ Ð‘Ð°Ð½Ðº', - 'Дружба', - 'ЕÐТП Банк', - 'ЕвразийÑкий Банк', - 'ЕвроазиатÑкий ИнвеÑтиционный Банк', - 'ЕвроÐкÑÐ¸Ñ Ð‘Ð°Ð½Ðº', - 'ЕвроальÑнÑ', - 'Еврокапитал-ÐльÑнÑ', - 'Еврокоммерц', - 'Еврокредит', - 'Евромет', - 'ЕвропейÑкий Стандарт', - 'Европлан Банк', - 'ЕвроÑитиБанк', - 'Ð•Ð²Ñ€Ð¾Ñ„Ð¸Ð½Ð°Ð½Ñ ÐœÐ¾Ñнарбанк', - 'ЕдинÑтвенный', - 'Единый Строительный Банк', - 'Екатеринбург', - 'ЕкатерининÑкий', - 'ЕниÑей', - 'ЕниÑейÑкий Объединенный Банк', - 'Ермак', - 'Живаго-Банк', - 'Жилкредит', - 'ЖилÑтройбанк', - 'ЗапÑибкомбанк', - 'Заречье', - 'Заубер Банк', - 'Земкомбанк', - 'ЗемÑкий Банк', - 'Зенит', - 'Зенит Сочи', - 'Зернобанк', - 'Зираат Банк', - 'Златкомбанк', - 'И.Д.Е.Ð. Банк', - 'Иваново', - 'Идеалбанк', - 'Ижкомбанк', - 'ИК Банк', - 'Икано Банк', - 'Инбанк', - 'ИнвеÑÑ‚-Экобанк', - 'ИнвеÑтиционный Банк Кубани', - 'ИнвеÑтиционный РеÑпубликанÑкий Банк', - 'ИнвеÑтиционный Союз', - 'ИнвеÑткапиталбанк', - 'ИнвеÑÑ‚Ñоцбанк', - 'ИнвеÑтторгбанк', - 'ИÐГ Банк', - 'ИндуÑтриальный Сберегательный Банк', - 'Инкаробанк', - 'Интерактивный Банк', - 'Интеркоммерц Банк', - 'Интеркоопбанк', - 'Интеркредит', - 'Интернациональный Торговый Банк', - 'ИнтерпрогреÑÑбанк', - 'Интерпромбанк', - 'Интехбанк', - 'ИнформпрогреÑÑ', - 'Ипозембанк', - 'ИпоТек Банк', - 'Иронбанк', - 'ИРС', - 'Итуруп', - 'Ишбанк', - 'Йошкар-Ола', - 'Калуга', - 'КамÑкий Горизонт', - 'КамÑкий КоммерчеÑкий Банк', - 'Камчаткомагропромбанк', - 'КанÑкий', - 'Капитал', - 'Капиталбанк', - 'Кедр', - 'КемÑоцинбанк', - 'КетовÑкий КоммерчеÑкий Банк', - 'Киви Банк', - 'КлаÑÑик Эконом Банк', - 'КлиентÑкий', - 'Кольцо Урала', - 'Коммерцбанк (ЕвразиÑ)', - 'КоммерчеÑкий Банк РазвитиÑ', - 'КоммерчеÑкий Индо Банк', - 'КонÑервативный КоммерчеÑкий Банк', - 'КонÑтанÑ-Банк', - 'Континенталь', - 'КонфидÑÐ½Ñ Ð‘Ð°Ð½Ðº', - 'Кор', - 'Кореа ЭкÑчендж Банк РуÑ', - 'КоролевÑкий Банк Шотландии', - 'КоÑмоÑ', - 'КоÑтромаÑелькомбанк', - 'Кошелев-Банк', - 'КрайинвеÑтбанк', - 'Кранбанк', - 'Креди Ðгриколь КИБ', - 'Кредит Европа Банк', - 'Кредит Урал Банк', - 'Кредит ЭкÑпреÑÑ', - 'Кредит-МоÑква', - 'КредитинвеÑÑ‚', - 'Кредо ФинанÑ', - 'Кредпромбанк', - 'КремлевÑкий', - 'КрокуÑ-Банк', - 'Крона-Банк', - 'КроÑна-Банк', - 'КроÑÑинвеÑтбанк', - 'КрыловÑкий', - 'КС Банк', - 'КубанÑкий УниверÑальный Банк', - 'Кубань Кредит', - 'Кубаньторгбанк', - 'КузбаÑÑхимбанк', - 'КузнецкбизнеÑбанк', - 'Кузнецкий', - 'Кузнецкий МоÑÑ‚', - 'Курган', - 'КурÑкпромбанк', - 'Лада-Кредит', - 'Лайтбанк', - 'Ланта-Банк', - 'Левобережный', - 'Легион', - 'Леноблбанк', - 'ЛеÑбанк', - 'Лето Банк', - 'Липецккомбанк', - 'ЛогоÑ', - 'Локо-Банк', - 'ЛÑнд-Банк', - 'М2М Прайвет Банк', - 'Майкопбанк', - 'МайÑкий', - 'МÐК-Банк', - 'МакÑима', - 'МакÑимум', - 'МÐСТ-Банк', - 'МаÑтер-Капитал', - 'МВС Банк', - 'МДМ Банк', - 'МегаполиÑ', - 'Международный Ðкционерный Банк', - 'Международный Банк РазвитиÑ', - 'Международный Банк Санкт-Петербурга (МБСП)', - 'Международный КоммерчеÑкий Банк', - 'Международный РаÑчетный Банк', - 'Международный Строительный Банк', - 'Международный ФинанÑовый Клуб', - 'МежотраÑÐ»ÐµÐ²Ð°Ñ Ð‘Ð°Ð½ÐºÐ¾Ð²ÑÐºÐ°Ñ ÐšÐ¾Ñ€Ð¿Ð¾Ñ€Ð°Ñ†Ð¸Ñ', - 'Межрегиональный Банк РеконÑтрукции', - 'Межрегиональный Клиринговый Банк', - 'Межрегиональный Почтовый Банк', - 'Межрегиональный промышленно-Ñтроительный банк', - 'Межрегионбанк', - 'МежтопÑнергобанк', - 'МежтраÑтбанк', - 'МерÑедеÑ-Бенц Банк РуÑ', - 'МеталлинвеÑтбанк', - 'Металлург', - 'Меткомбанк (КаменÑк-УральÑкий)', - 'Меткомбанк (Череповец)', - 'Метробанк', - 'Метрополь', - 'Мидзухо Банк', - 'Мико-Банк', - 'Милбанк', - 'Миллениум Банк', - 'Мир Ð‘Ð¸Ð·Ð½ÐµÑ Ð‘Ð°Ð½Ðº', - 'Мираф-Банк', - 'Мираф-Банк МоÑковÑкий филиал', - 'Миръ', - 'МихайловÑкий ПЖСБ', - 'Морган СтÑнли Банк', - 'МорÑкой Банк', - 'МоÑводоканалбанк', - 'МоÑква', - 'МоÑква-Сити', - 'МоÑковÑкий ВекÑельный Банк', - 'МоÑковÑкий ИндуÑтриальный Банк', - 'МоÑковÑкий КоммерчеÑкий Банк', - 'МоÑковÑкий Кредитный Банк', - 'МоÑковÑкий Ðациональный ИнвеÑтиционный Банк', - 'МоÑковÑкий ÐефтехимичеÑкий Банк', - 'МоÑковÑкий ОблаÑтной Банк', - 'МоÑковÑко-ПарижÑкий Банк', - 'МоÑковÑкое Ипотечное ÐгентÑтво', - 'МоÑкоммерцбанк', - 'МоÑÑтройÑкономбанк (М Банк)', - 'МоÑтранÑбанк', - 'МоÑуралбанк', - 'МС Банк РуÑ', - 'МСП Банк', - 'МТИ-Банк', - 'МТС Банк', - 'Муниципальный Камчатпрофитбанк', - 'МурманÑкий Социальный КоммерчеÑкий Банк', - 'МФБанк', - 'Ð-Банк', - 'Ðальчик', - 'Ðаратбанк', - 'Ðародный Банк', - 'Ðародный Банк РеÑпублики Тыва', - 'Ðародный Доверительный Банк', - 'Ðародный Земельно-Промышленный Банк', - 'Ðародный ИнвеÑтиционный Банк', - 'ÐатикÑÐ¸Ñ Ð‘Ð°Ð½Ðº', - 'ÐацинвеÑтпромбанк', - 'ÐÐ°Ñ†Ð¸Ð¾Ð½Ð°Ð»ÑŒÐ½Ð°Ñ Ð¤Ð°ÐºÑ‚Ð¾Ñ€Ð¸Ð½Ð³Ð¾Ð²Ð°Ñ ÐšÐ¾Ð¼Ð¿Ð°Ð½Ð¸Ñ', - 'Ðациональный Банк "ТраÑÑ‚"', - 'Ðациональный Банк Взаимного Кредита', - 'Ðациональный Банк Сбережений', - 'Ðациональный Залоговый Банк', - 'Ðациональный Клиринговый Банк', - 'Ðациональный Клиринговый Центр', - 'Ðациональный Корпоративный Банк', - 'Ðациональный Резервный Банк', - 'Ðациональный Стандарт', - 'Ðаш Дом', - 'ÐБД-Банк', - 'ÐБК-Банк', - 'ÐеваÑтройинвеÑÑ‚', - 'ÐевÑкий Банк', - 'Ðейва', - 'Ðерюнгрибанк', - 'Ðефтепромбанк', - 'ÐефтÑной ÐльÑнÑ', - 'ÐижневолжÑкий КоммерчеÑкий Банк', - 'Ðико-Банк', - 'ÐК Банк', - 'ÐоваховКапиталБанк', - 'ÐовациÑ', - 'Ðовикомбанк', - 'Ðовобанк', - 'Ðовое ВремÑ', - 'Ðовокиб', - 'ÐовопокровÑкий', - 'Ðовый Век', - 'Ðовый Кредитный Союз', - 'Ðовый МоÑковÑкий Банк', - ); - - /** - * @example 'Ðовый МоÑковÑкий Банк' - */ - public static function bank() - { - return static::randomElement(static::$banks); - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/ru_RU/Person.php b/vendor/fzaninotto/faker/src/Faker/Provider/ru_RU/Person.php deleted file mode 100644 index 25ebd5a1..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/ru_RU/Person.php +++ /dev/null @@ -1,157 +0,0 @@ -middleNameMale(); - } elseif ($gender === static::GENDER_FEMALE) { - return $this->middleNameFemale(); - } - - return $this->middleName(static::randomElement(array( - static::GENDER_MALE, - static::GENDER_FEMALE, - ))); - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/ru_RU/PhoneNumber.php b/vendor/fzaninotto/faker/src/Faker/Provider/ru_RU/PhoneNumber.php deleted file mode 100644 index c7477d7e..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/ru_RU/PhoneNumber.php +++ /dev/null @@ -1,14 +0,0 @@ -generator->parse(static::randomElement(static::$lastNameFormat)); - } - - public static function lastNameMale() - { - return static::randomElement(static::$lastNameMale); - } - - public static function lastNameFemale() - { - return static::randomElement(static::$lastNameFemale); - } - - /** - * @example 'PhD' - */ - public static function suffix() - { - return static::randomElement(static::$suffix); - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/sk_SK/PhoneNumber.php b/vendor/fzaninotto/faker/src/Faker/Provider/sk_SK/PhoneNumber.php deleted file mode 100644 index 1baf7ccf..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/sk_SK/PhoneNumber.php +++ /dev/null @@ -1,15 +0,0 @@ -format('ymd'); - - if ($gender && $gender == static::GENDER_MALE) { - $randomDigits = (string)static::numerify('##') . static::randomElement(array(1,3,5,7,9)); - } elseif ($gender && $gender == static::GENDER_FEMALE) { - $randomDigits = (string)static::numerify('##') . static::randomElement(array(0,2,4,6,8)); - } else { - $randomDigits = (string)static::numerify('###'); - } - - - $checksum = Luhn::computeCheckDigit($datePart . $randomDigits); - - return $datePart . '-' . $randomDigits . $checksum; - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/sv_SE/PhoneNumber.php b/vendor/fzaninotto/faker/src/Faker/Provider/sv_SE/PhoneNumber.php deleted file mode 100644 index d15e5dd6..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/sv_SE/PhoneNumber.php +++ /dev/null @@ -1,37 +0,0 @@ -format('a') === 'am' ? 'öö' : 'ös'; - } - - public static function dayOfWeek($max = 'now') - { - $map = array( - 'Sunday' => 'Pazar', - 'Monday' => 'Pazartesi', - 'Tuesday' => 'Salı', - 'Wednesday' => 'ÇarÅŸamba', - 'Thursday' => 'PerÅŸembe', - 'Friday' => 'Cuma', - 'Saturday' => 'Cumartesi', - ); - $week = static::dateTime($max)->format('l'); - return isset($map[$week]) ? $map[$week] : $week; - } - - public static function monthName($max = 'now') - { - $map = array( - 'January' => 'Ocak', - 'February' => 'Åžubat', - 'March' => 'Mart', - 'April' => 'Nisan', - 'May' => 'Mayıs', - 'June' => 'Haziran', - 'July' => 'Temmuz', - 'August' => 'AÄŸustos', - 'September' => 'Eylül', - 'October' => 'Ekim', - 'November' => 'Kasım', - 'December' => 'Aralık', - ); - $month = static::dateTime($max)->format('F'); - return isset($map[$month]) ? $map[$month] : $month; - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/tr_TR/Internet.php b/vendor/fzaninotto/faker/src/Faker/Provider/tr_TR/Internet.php deleted file mode 100644 index ef907d44..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/tr_TR/Internet.php +++ /dev/null @@ -1,9 +0,0 @@ -generator->parse($format); - } - - public static function streetPrefix() - { - return static::randomElement(static::$streetPrefix); - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/uk_UA/Color.php b/vendor/fzaninotto/faker/src/Faker/Provider/uk_UA/Color.php deleted file mode 100644 index 197cc3b6..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/uk_UA/Color.php +++ /dev/null @@ -1,23 +0,0 @@ -generator->parse($format); - } - - public static function companyPrefix() - { - return static::randomElement(static::$companyPrefix); - } - - public static function companyName() - { - return static::randomElement(static::$companyName); - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/uk_UA/Internet.php b/vendor/fzaninotto/faker/src/Faker/Provider/uk_UA/Internet.php deleted file mode 100644 index 33214d67..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/uk_UA/Internet.php +++ /dev/null @@ -1,9 +0,0 @@ -middleNameMale(); - } elseif ($gender === static::GENDER_FEMALE) { - return $this->middleNameFemale(); - } - - return $this->middleName(static::randomElement(array( - static::GENDER_MALE, - static::GENDER_FEMALE, - ))); - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/uk_UA/PhoneNumber.php b/vendor/fzaninotto/faker/src/Faker/Provider/uk_UA/PhoneNumber.php deleted file mode 100644 index 24187f33..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/uk_UA/PhoneNumber.php +++ /dev/null @@ -1,51 +0,0 @@ -generator->parse($format)); - } - - public function hamletPrefix() - { - return static::randomElement(static::$hamletPrefix); - } - - public function wardName() - { - $format = static::randomElement(static::$wardNameFormats); - - return static::bothify($this->generator->parse($format)); - } - - public function wardPrefix() - { - return static::randomElement(static::$wardPrefix); - } - - public function districtName() - { - $format = static::randomElement(static::$districtNameFormats); - - return static::bothify($this->generator->parse($format)); - } - - public function districtPrefix() - { - return static::randomElement(static::$districtPrefix); - } - - /** - * @example 'Hà Ná»™i' - */ - public function city() - { - return static::randomElement(static::$city); - } - - /** - * @example 'Bắc Giang' - */ - public static function province() - { - return static::randomElement(static::$province); - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/vi_VN/Color.php b/vendor/fzaninotto/faker/src/Faker/Provider/vi_VN/Color.php deleted file mode 100644 index 4deaa2fb..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/vi_VN/Color.php +++ /dev/null @@ -1,36 +0,0 @@ -generator->parse(static::randomElement(static::$middleNameFormat)); - } - - public static function middleNameMale() - { - return static::randomElement(static::$middleNameMale); - } - - public static function middleNameFemale() - { - return static::randomElement(static::$middleNameFemale); - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/vi_VN/PhoneNumber.php b/vendor/fzaninotto/faker/src/Faker/Provider/vi_VN/PhoneNumber.php deleted file mode 100644 index 5f9f60a1..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/vi_VN/PhoneNumber.php +++ /dev/null @@ -1,61 +0,0 @@ - array( - '0[a] ### ####', - '(0[a]) ### ####', - '0[a]-###-####', - '(0[a])###-####', - '84-[a]-###-####', - '(84)([a])###-####', - '+84-[a]-###-####', - ), - '8' => array( - '0[a] #### ####', - '(0[a]) #### ####', - '0[a]-####-####', - '(0[a])####-####', - '84-[a]-####-####', - '(84)([a])####-####', - '+84-[a]-####-####', - ), - ); - - public function phoneNumber() - { - $areaCode = static::randomElement(static::$areaCodes); - $areaCodeLength = strlen($areaCode); - $digits = 7; - - if ($areaCodeLength < 2) { - $digits = 8; - } - - return static::numerify(str_replace('[a]', $areaCode, static::randomElement(static::$formats[$digits]))); - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/zh_CN/Address.php b/vendor/fzaninotto/faker/src/Faker/Provider/zh_CN/Address.php deleted file mode 100644 index 19d1c941..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/zh_CN/Address.php +++ /dev/null @@ -1,149 +0,0 @@ -city() . static::area(); - } - - public static function postcode() - { - $prefix = str_pad(mt_rand(1, 85), 2, 0, STR_PAD_LEFT); - $suffix = '00'; - - return $prefix . mt_rand(10, 88) . $suffix; - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/zh_CN/Color.php b/vendor/fzaninotto/faker/src/Faker/Provider/zh_CN/Color.php deleted file mode 100644 index 12d29e32..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/zh_CN/Color.php +++ /dev/null @@ -1,66 +0,0 @@ -format('a') === 'am' ? '上åˆ' : '下åˆ'; - } - - public static function dayOfWeek($max = 'now') - { - $map = array( - 'Sunday' => '星期日', - 'Monday' => '星期一', - 'Tuesday' => '星期二', - 'Wednesday' => '星期三', - 'Thursday' => '星期四', - 'Friday' => '星期五', - 'Saturday' => '星期六', - ); - $week = static::dateTime($max)->format('l'); - return isset($map[$week]) ? $map[$week] : $week; - } - - public static function monthName($max = 'now') - { - $map = array( - 'January' => '一月', - 'February' => '二月', - 'March' => '三月', - 'April' => '四月', - 'May' => '五月', - 'June' => '六月', - 'July' => '七月', - 'August' => '八月', - 'September' => '乿œˆ', - 'October' => 'åæœˆ', - 'November' => 'å一月', - 'December' => 'å二月', - ); - $month = static::dateTime($max)->format('F'); - return isset($map[$month]) ? $map[$month] : $month; - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/zh_CN/Internet.php b/vendor/fzaninotto/faker/src/Faker/Provider/zh_CN/Internet.php deleted file mode 100644 index ca10822c..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/zh_CN/Internet.php +++ /dev/null @@ -1,24 +0,0 @@ - array( - 'æ¿æ©‹å€', '三é‡å€', '中和å€', '永和å€', - '新莊å€', '新店å€', '樹林å€', '鶯歌å€', - '三峽å€', 'æ·¡æ°´å€', 'æ±æ­¢å€', '瑞芳å€', - '土城å€', '蘆洲å€', '五股å€', 'æ³°å±±å€', - 'æž—å£å€', 'æ·±å‘å€', '石碇å€', 'åªæž—å€', - '三èŠå€', '石門å€', '八里å€', '平溪å€', - '雙溪å€', '貢寮å€', '金山å€', 'è¬é‡Œå€', - 'çƒä¾†å€', - ), - '宜蘭縣' => array( - '宜蘭市', 'ç¾…æ±éŽ®', '蘇澳鎮', '頭城鎮', 'ç¤æºªé„‰', - '壯åœé„‰', '員山鄉', '冬山鄉', '五çµé„‰', '三星鄉', - '大åŒé„‰', 'å—æ¾³é„‰', - ), - '桃園市' => array( - '桃園å€', '中壢å€', '大溪å€', '楊梅å€', '蘆竹å€', - '大園å€', '龜山å€', 'å…«å¾·å€', '龿½­å€', '平鎮å€', - '新屋å€', '觀音å€', '復興å€', - ), - '新竹縣' => array( - '竹北市', '竹æ±éŽ®', '新埔鎮', '關西鎮', 'æ¹–å£é„‰', - 'æ–°è±é„‰', '芎林鄉', '橫山鄉', '北埔鄉', '寶山鄉', - '峨眉鄉', '尖石鄉', '五峰鄉', - ), - '苗栗縣' => array( - '苗栗市', '苑裡鎮', '通霄鎮', '竹å—鎮', '頭份鎮', - '後é¾éŽ®', 'å“蘭鎮', '大湖鄉', '公館鄉', '銅鑼鄉', - 'å—庄鄉', '頭屋鄉', '三義鄉', '西湖鄉', '造橋鄉', - '三ç£é„‰', 'ç…æ½­é„‰', '泰安鄉', - ), - '臺中市' => array( - 'è±åŽŸå€', 'æ±å‹¢å€', '大甲å€', '清水å€', '沙鹿å€', - '梧棲å€', 'åŽé‡Œå€', '神岡å€', 'æ½­å­å€', '大雅å€', - '新社å€', '石岡å€', '外埔å€', '大安å€', 'çƒæ—¥å€', - '大肚å€', 'é¾äº•å€', '霧峰å€', '太平å€', '大里å€', - '和平å€', '中å€', 'æ±å€', 'å—å€', '西å€', '北å€', - '西屯å€', 'å—屯å€', '北屯å€', - ), - '彰化縣' => array( - '彰化市', '鹿港鎮', '和美鎮', '線西鄉', '伸港鄉', - 'ç¦èˆˆé„‰', '秀水鄉', '花壇鄉', '芬園鄉', '員林鎮', - '溪湖鎮', '田中鎮', '大æ‘鄉', '埔鹽鄉', '埔心鄉', - 'æ°¸é–鄉', '社頭鄉', '二水鄉', '北斗鎮', '二林鎮', - '田尾鄉', '埤頭鄉', '芳苑鄉', '大城鄉', '竹塘鄉', - '溪州鄉', - ), - 'å—æŠ•ç¸£' => array( - '嗿Е参', '埔里鎮', 'è‰å±¯éŽ®', '竹山鎮', '集集鎮', - 'å間鄉', '鹿谷鄉', '中寮鄉', '魚池鄉', '國姓鄉', - '水里鄉', '信義鄉', '仿„›é„‰', - ), - '雲林縣' => array( - '斗六市', 'æ–—å—鎮', '虎尾鎮', '西螺鎮', '土庫鎮', - '北港鎮', 'å¤å‘鄉', '大埤鄉', '莿æ¡é„‰', '林內鄉', - '二崙鄉', '崙背鄉', '麥寮鄉', 'æ±å‹¢é„‰', '褒忠鄉', - '臺西鄉', '元長鄉', '四湖鄉', '壿¹–鄉', '水林鄉', - ), - '嘉義縣' => array( - '太ä¿å¸‚', '朴å­å¸‚', '布袋鎮', '大林鎮', '民雄鄉', - '溪å£é„‰', '新港鄉', '六腳鄉', 'æ±çŸ³é„‰', '義竹鄉', - '鹿è‰é„‰', '水上鄉', '中埔鄉', '竹崎鄉', '梅山鄉', - '番路鄉', '大埔鄉', '阿里山鄉', - ), - '臺å—市' => array( - '新營å€', '鹽水å€', '白河å€', '柳營å€', '後å£å€', - 'æ±å±±å€', '麻豆å€', '下營å€', '六甲å€', '官田å€', - '大內å€', '佳里å€', '學甲å€', '西港å€', '七股å€', - 'å°‡è»å€', '北門å€', '新化å€', '善化å€', '新市å€', - '安定å€', '山上å€', '玉井å€', '楠西å€', 'å—化å€', - '左鎮å€', 'ä»å¾·å€', 'æ­¸ä»å€', '關廟å€', 'é¾å´Žå€', - '永康å€', 'æ±å€', 'å—å€', '西å€', '北å€', '中å€', - '安å—å€', '安平å€', - ), - '高雄市' => array( - '鳳山å€', '林園å€', '大寮å€', '大樹å€', '大社å€', - '仿­¦å€', 'é³¥æ¾å€', '岡山å€', 'æ©‹é ­å€', '燕巢å€', - '田寮å€', '阿蓮å€', '路竹å€', 'æ¹–å…§å€', '茄è£å€', - '永安å€', '彌陀å€', '梓官å€', 'æ——å±±å€', '美濃å€', - '六龜å€', '甲仙å€', 'æ‰æž—å€', 'å…§é–€å€', '茂林å€', - '桃æºå€', '三民å€', '鹽埕å€', '鼓山å€', '左營å€', - '楠梓å€', '三民å€', '新興å€', 'å‰é‡‘å€', 'è‹“é›…å€', - 'å‰éŽ®å€', 'æ——æ´¥å€', 'å°æ¸¯å€', - ), - '屿±ç¸£' => array( - '屿±å¸‚', '潮州鎮', 'æ±æ¸¯éŽ®', 'æ†æ˜¥éŽ®', 'è¬ä¸¹é„‰', - '長治鄉', '麟洛鄉', 'ä¹å¦‚鄉', '里港鄉', '鹽埔鄉', - '高樹鄉', 'è¬å·’鄉', '內埔鄉', '竹田鄉', '新埤鄉', - '枋寮鄉', '新園鄉', 'å´é ‚鄉', '林邊鄉', 'å—州鄉', - '佳冬鄉', 'ç‰çƒé„‰', '車城鄉', '滿州鄉', '枋山鄉', - '三地門鄉', '霧臺鄉', '瑪家鄉', '泰武鄉', '來義鄉', - '春日鄉', 'ç…å­é„‰', '牡丹鄉', - ), - '臺æ±ç¸£' => array( - '臺æ±å¸‚', 'æˆåŠŸéŽ®', '關山鎮', 'å‘å—鄉', '鹿野鄉', - '池上鄉', 'æ±æ²³é„‰', '長濱鄉', '太麻里鄉', '大武鄉', - '綠島鄉', '海端鄉', '延平鄉', '金峰鄉', 'é”ä»é„‰', - '蘭嶼鄉', - ), - '花蓮縣' => array( - '花蓮市', '鳳林鎮', '玉里鎮', '新城鄉', 'å‰å®‰é„‰', - '壽è±é„‰', '光復鄉', 'è±æ¿±é„‰', '瑞穗鄉', '富里鄉', - '秀林鄉', 'è¬æ¦®é„‰', '哿ºªé„‰', - ), - '澎湖縣' => array( - '馬公市', '湖西鄉', '白沙鄉', '西嶼鄉', '望安鄉', - '七美鄉', - ), - '基隆市' => array( - '中正å€', '七堵å€', 'æš–æš–å€', '仿„›å€', '中山å€', - '安樂å€', '信義å€', - ), - '新竹市' => array( - 'æ±å€', '北å€', '香山å€', - ), - '嘉義市' => array( - 'æ±å€', '西å€', - ), - '臺北市' => array( - 'æ¾å±±å€', '信義å€', '大安å€', '中山å€', '中正å€', - '大åŒå€', 'è¬è¯å€', '文山å€', 'å—æ¸¯å€', 'å…§æ¹–å€', - '士林å€', '北投å€', - ), - '連江縣' => array( - 'å—竿鄉', '北竿鄉', '莒光鄉', 'æ±å¼•鄉', - ), - '金門縣' => array( - '金城鎮', '金沙鎮', '金湖鎮', '金寧鄉', '烈嶼鄉', 'çƒåµé„‰', - ), - ); - - /** - * @link http://terms.naer.edu.tw/download/287/ - */ - protected static $country = array( - 'ä¸ä¸¹', '中éž', '丹麥', '伊朗', '冰島', '剛果', - '加彭', '北韓', 'å—éž', 'å¡é”', 'å°å°¼', 'å°åº¦', - 'å¤å·´', '哥德', '埃åŠ', '多哥', '寮國', '尼日', - '巴曼', 'å·´æž—', 'å·´ç´', '巴西', '希臘', '帛ç‰', - '德國', '挪å¨', 'æ·å…‹', '教廷', 'æ–æ¿Ÿ', '日本', - '智利', 'æ±åŠ ', '查德', 'æ±¶èŠ', '法國', '波蘭', - '波赫', '泰國', '海地', '瑞典', '瑞士', '祕魯', - '秘魯', 'ç´„æ—¦', 'ç´åŸƒ', '緬甸', '美國', 'è–å°¼', - 'è–æ™®', '肯亞', '芬蘭', '英國', 'è·è˜­', '葉門', - '蘇丹', '諾魯', 'è²å—', 'è¶Šå—', '迦彭', - '迦ç´', '阿曼', '阿è¯', '韓國', '馬利', - '以色列', '以色利', '伊拉克', 'ä¿„ç¾…æ–¯', - '利比亞', '加拿大', '匈牙利', 'å—æ¥µæ´²', - 'å—蘇丹', '厄瓜多', 'å‰å¸ƒåœ°', 'å瓦魯', - '哈撒克', '哈薩克', '喀麥隆', '喬治亞', - '土庫曼', '土耳其', 'å¡”å‰å…‹', '塞席爾', - '墨西哥', '大西洋', '奧地利', '孟加拉', - '安哥拉', '安地å¡', '安é“爾', '尚比亞', - '尼伯爾', '尼泊爾', '巴哈馬', '巴拉圭', - '巴拿馬', 'å·´è²å¤š', '幾內亞', '愛爾蘭', - '所在國', '摩洛哥', 'æ‘©ç´å“¥', 'æ•利亞', - '敘利亞', '新加å¡', 'æ±å¸æ±¶', '柬埔寨', - '比利時', '波扎那', '波札那', 'çƒå…‹è˜­', - 'çƒå¹²é”', 'çƒæ‹‰åœ­', '牙買加', 'ç…å­å±±', - '甘比亞', '盧安é”', '盧森堡', 'ç§‘å¨ç‰¹', - '科索夫', '科索沃', 'ç«‹é™¶å®›', 'ç´è¥¿è˜­', - 'ç¶­å¾·è§’', '義大利', 'è–æ–‡æ£®', '艾塞亞', - 'è²å¾‹è³“', 'è¬é‚£æœ', 'è‘¡è„牙', '蒲隆地', - '蓋亞ç´', '薩摩亞', '蘇利å—', '西ç­ç‰™', - 'è²é‡Œæ–¯', '賴索托', '辛巴å¨', '阿富汗', - '阿根廷', '馬其頓', '馬拉å¨', '馬爾他', - '黎巴嫩', '亞塞拜然', '亞美尼亞', 'ä¿åŠ åˆ©äºž', - 'å—æ–¯æ‹‰å¤«', '厄利垂亞', 'å²ç“¦æ¿Ÿè˜­', 'å‰çˆ¾å‰æ–¯', - 'å‰é‡Œå·´æ–¯', '哥倫比亞', 'å¦å°šå°¼äºž', '塞內加爾', - '塞内加爾', '塞爾維亞', '多明尼加', '多米尼克', - '奈åŠåˆ©äºž', '委內瑞拉', 'å®éƒ½æ‹‰æ–¯', '尼加拉瓜', - '巴基斯å¦', '庫克群島', '愛沙尼亞', '拉脫維亞', - '摩爾多瓦', '摩里西斯', '斯洛ä¼å…‹', '斯里蘭å¡', - '格瑞那é”', '模里西斯', '波多黎å„', '澳大利亞', - 'çƒèŒ²åˆ¥å…‹', '玻利維亞', '瓜地馬拉', '白俄羅斯', - 'çªå°¼è¥¿äºž', 'ç´ç±³æ¯”亞', '索馬利亞', '索馬尼亞', - '羅馬尼亞', 'è–露西亞', 'è–馬利諾', '莫三比克', - '莫三鼻克', '葛摩è¯ç›Ÿ', '薩爾瓦多', '衣索比亞', - '西薩摩亞', '象牙海岸', '賴比瑞亞', '賽普勒斯', - '馬來西亞', '馬爾地夫', '克羅埃西亞', - '列支敦斯登', '哥斯大黎加', '布å‰ç´æ³•ç´¢', - '布å‰é‚£æ³•ç´¢', '幾內亞比索', '幾內亞比紹', - '斯洛維尼亞', '索羅門群島', '茅利塔尼亞', - '蒙特內哥羅', '赤é“幾內亞', '阿爾åŠåˆ©äºž', - '阿爾åŠå°¼äºž', '阿爾巴尼亞', '馬紹爾群島', - '馬é”加斯加', '密克羅尼西亞', 'æ²™çƒåœ°é˜¿æ‹‰ä¼¯', - 'åƒé‡Œé”åŠæ‰˜å·´å“¥', - ); - - protected static $postcode = array('###-##', '###'); - - public function street() - { - return static::randomElement(static::$street); - } - - public static function randomChineseNumber() - { - $digits = array( - '', '一', '二', '三', 'å››', '五', 'å…­', '七', 'å…«', 'ä¹', - ); - return $digits[static::randomDigitNotNull()]; - } - - public static function randomNumber2() - { - return static::randomNumber(2) + 1; - } - - public static function randomNumber3() - { - return static::randomNumber(3) + 1; - } - - public static function localLatitude() - { - return number_format(mt_rand(22000000, 25000000)/1000000, 6); - } - - public static function localLongitude() - { - return number_format(mt_rand(120000000, 122000000)/1000000, 6); - } - - public function city() - { - $county = static::randomElement(array_keys(static::$city)); - $city = static::randomElement(static::$city[$county]); - return $county.$city; - } - - public function state() - { - return '臺ç£çœ'; - } - - public static function stateAbbr() - { - return '臺'; - } - - public static function cityPrefix() - { - return ''; - } - - public static function citySuffix() - { - return ''; - } - - public static function secondaryAddress() - { - return (static::randomNumber(2)+1).static::randomElement(static::$secondaryAddressSuffix); - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/zh_TW/Color.php b/vendor/fzaninotto/faker/src/Faker/Provider/zh_TW/Color.php deleted file mode 100644 index 7be5953d..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/zh_TW/Color.php +++ /dev/null @@ -1,66 +0,0 @@ -generator->parse($format); - } - - public static function companyModifier() - { - return static::randomElement(static::$companyModifier); - } - - public static function companyPrefix() - { - return static::randomElement(static::$companyPrefix); - } - - public function catchPhrase() - { - return static::randomElement(static::$catchPhrase); - } - - public function bs() - { - $result = ''; - foreach (static::$bsWords as &$word) { - $result .= static::randomElement($word); - } - return $result; - } - - /** - * return standard VAT / Tax ID / Uniform Serial Number - * - * @example 28263822 - * - * @return int - */ - public function VAT() - { - return static::randomNumber(8, true); - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/zh_TW/DateTime.php b/vendor/fzaninotto/faker/src/Faker/Provider/zh_TW/DateTime.php deleted file mode 100644 index 6df5e928..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/zh_TW/DateTime.php +++ /dev/null @@ -1,46 +0,0 @@ -format('a') === 'am' ? '上åˆ' : '下åˆ'; - } - - public static function dayOfWeek($max = 'now') - { - $map = array( - 'Sunday' => '星期日', - 'Monday' => '星期一', - 'Tuesday' => '星期二', - 'Wednesday' => '星期三', - 'Thursday' => '星期四', - 'Friday' => '星期五', - 'Saturday' => '星期六', - ); - $week = static::dateTime($max)->format('l'); - return isset($map[$week]) ? $map[$week] : $week; - } - - public static function monthName($max = 'now') - { - $map = array( - 'January' => '一月', - 'February' => '二月', - 'March' => '三月', - 'April' => '四月', - 'May' => '五月', - 'June' => '六月', - 'July' => '七月', - 'August' => '八月', - 'September' => '乿œˆ', - 'October' => 'åæœˆ', - 'November' => 'å一月', - 'December' => 'å二月', - ); - $month = static::dateTime($max)->format('F'); - return isset($map[$month]) ? $map[$month] : $month; - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/zh_TW/Internet.php b/vendor/fzaninotto/faker/src/Faker/Provider/zh_TW/Internet.php deleted file mode 100644 index 4035ea85..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/zh_TW/Internet.php +++ /dev/null @@ -1,16 +0,0 @@ -userName(); - } - - public function domainWord() - { - return \Faker\Factory::create('en_US')->domainWord(); - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/zh_TW/Payment.php b/vendor/fzaninotto/faker/src/Faker/Provider/zh_TW/Payment.php deleted file mode 100644 index 6b1a5829..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/zh_TW/Payment.php +++ /dev/null @@ -1,11 +0,0 @@ -creditCardDetails($valid); - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/zh_TW/Person.php b/vendor/fzaninotto/faker/src/Faker/Provider/zh_TW/Person.php deleted file mode 100644 index 1ae72027..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/zh_TW/Person.php +++ /dev/null @@ -1,201 +0,0 @@ - 10, - 'B' => 11, - 'C' => 12, - 'D' => 13, - 'E' => 14, - 'F' => 15, - 'G' => 16, - 'H' => 17, - 'I' => 34, - 'J' => 18, - 'K' => 19, - 'M' => 21, - 'N' => 22, - 'O' => 35, - 'p' => 23, - 'Q' => 24, - 'T' => 27, - 'U' => 28, - 'V' => 29, - 'W' => 32, - 'X' => 30, - 'Z' => 33 - ); - - /** - * @see https://zh.wikipedia.org/wiki/%E4%B8%AD%E8%8F%AF%E6%B0%91%E5%9C%8B%E5%9C%8B%E6%B0%91%E8%BA%AB%E5%88%86%E8%AD%89 - */ - public static $idDigitValidator = array(1, 9, 8, 7, 6, 5, 4, 3, 2, 1, 1); - - protected static $maleNameFormats = array( - '{{lastName}}{{firstNameMale}}', - ); - - protected static $femaleNameFormats = array( - '{{lastName}}{{firstNameFemale}}', - ); - - protected static $titleMale = array('先生', 'åšå£«', '教授'); - protected static $titleFemale = array('å°å§', '太太', 'åšå£«', '教授'); - - /** - * @link http://zh.wikipedia.org/wiki/%E7%99%BE%E5%AE%B6%E5%A7%93 - */ - protected static $lastName = array( - 'è¶™', '錢', 'å­«', 'æŽ', '周', 'å³', 'é„­', '王', '馮', - '陳', '褚', 'è¡›', '蔣', '沈', '韓', '楊', '朱', '秦', - 'å°¤', '許', '何', 'å‘‚', 'æ–½', 'å¼µ', 'å­”', '曹', 'åš´', - 'è¯', '金', 'é­', 'é™¶', 'å§œ', '戚', 'è¬', 'é„’', 'å–»', - 'æŸ', 'æ°´', '竇', 'ç« ', '雲', '蘇', '潘', 'è‘›', - '奚', '范', 'å½­', '郎', 'é­¯', '韋', '昌', '馬', - 'è‹—', 'é³³', '花', 'æ–¹', '俞', 'ä»»', 'è¢', '柳', - 'é…†', '鮑', 'å²', 'å”', 'è²»', '廉', '岑', 'è–›', - 'é›·', 'è³€', '倪', '湯', '滕', 'æ®·', 'ç¾…', 'ç•¢', - 'éƒ', 'é„”', '安', '常', '樂', '于', '時', 'å‚…', - 'çš®', 'åž', '齊', '康', 'ä¼', 'ä½™', 'å…ƒ', 'åœ', - 'é¡§', 'å­Ÿ', 'å¹³', '黃', 'å’Œ', '穆', 'è•­', 'å°¹', - 'å§š', '邵', 'æ¹›', '汪', 'ç¥', '毛', '禹', 'ç‹„', - 'ç±³', 'è²', '明', '臧', '計', 'ä¼', 'æˆ', '戴', - '談', '宋', '茅', 'é¾', '熊', 'ç´€', '舒', '屈', - 'é …', 'ç¥', 'è‘£', 'æ¢', 'æœ', '阮', 'è—', 'é–”', - '席', 'å­£', '麻', 'å¼·', '賈', 'è·¯', 'å©', 'å±', - '江', 'ç«¥', 'é¡', '郭', '梅', 'ç››', 'æž—', 'åˆ', - 'é¾', 'å¾', '丘', 'é§±', '高', 'å¤', '蔡', 'ç”°', - '樊', '胡', '凌', 'éœ', '虞', 'è¬', '支', '柯', - 'æ˜', '管', 'ç›§', '莫', 'ç¶“', '房', '裘', '繆', - 'å¹²', 'è§£', '應', 'å®—', 'ä¸', '宣', 'è³', 'é„§', - 'éƒ', 'å–®', 'æ­', 'æ´ª', '包', '諸', 'å·¦', '石', - 'å´”', 'å‰', '鈕', 'é¾”', '程', '嵇', 'é‚¢', '滑', - '裴', '陸', '榮', 'ç¿', 'è€', '羊', 'æ–¼', '惠', - '甄', '麴', 'å®¶', 'å°', '芮', '羿', '儲', 'é³', - 'æ±²', 'é‚´', '糜', 'æ¾', '井', '段', '富', 'å·«', - 'çƒ', '焦', 'å·´', '弓', '牧', 'éš—', 'å±±', 'è°·', - '車', '侯', '宓', '蓬', 'å…¨', '郗', 'ç­', 'ä»°', - 'ç§‹', '仲', '伊', 'å®®', '甯', '仇', '欒', 'æš´', - '甘', '鈄', '厲', '戎', '祖', 'æ­¦', '符', '劉', - '景', '詹', 'æŸ', 'é¾', '葉', '幸', 'å¸', '韶', - '郜', '黎', 'è–Š', 'è–„', 'å°', '宿', '白', '懷', - 'è’²', 'é‚°', '從', 'é„‚', 'ç´¢', 'å’¸', 'ç±', 'è³´', - 'å“', 'è—º', 'å± ', 'è’™', 'æ± ', 'å–¬', 'é™°', '鬱', - '胥', '能', 'è’¼', 'é›™', 'èž', '莘', '黨', '翟', - 'è­š', 'è²¢', '勞', '逄', '姬', '申', '扶', 'å µ', - '冉', 'å®°', 'é…ˆ', 'é›', '郤', 'ç’©', 'æ¡‘', 'æ¡‚', - 'æ¿®', '牛', '壽', '通', '邊', '扈', '燕', '冀', - '郟', '浦', 'å°š', 'è¾²', '溫', '別', '莊', 'æ™', - '柴', 'çž¿', 'é–»', 'å……', 'æ…•', '連', '茹', 'ç¿’', - '宦', '艾', 'é­š', '容', 'å‘', 'å¤', '易', 'æ…Ž', - '戈', 'å»–', '庾', '終', '暨', 'å±…', 'è¡¡', 'æ­¥', - '都', '耿', '滿', '弘', '匡', '國', 'æ–‡', '寇', - '廣', '祿', 'é—•', 'æ±', 'æ­', '殳', '沃', '利', - '蔚', 'è¶Š', '夔', '隆', '師', 'éž', '厙', 'è¶', - 'æ™', '勾', 'æ•–', 'èž', '冷', '訾', 'è¾›', 'é—ž', - 'é‚£', 'ç°¡', '饒', '空', '曾', '毋', 'æ²™', '乜', - '養', 'éž ', 'é ˆ', 'è±', 'å·¢', 'é—œ', 'è’¯', '相', - '查', 'åŽ', 'èŠ', 'ç´…', '游', '竺', '權', '逯', - 'è“‹', '益', 'æ¡“', 'å…¬', '万俟', 'å¸é¦¬', '上官', - 'æ­é™½', 'å¤ä¾¯', '諸葛', 'èžäºº', 'æ±æ–¹', '赫連', - '皇甫', 'å°‰é²', '公羊', '澹臺', '公冶', '宗政', - '濮陽', '淳于', '單于', '太å”', '申屠', '公孫', - '仲孫', 'è»’è½…', '令ç‹', 'é¾é›¢', '宇文', 'é•·å­«', - '慕容', '鮮于', '閭丘', 'å¸å¾’', 'å¸ç©º', '亓官', - 'å¸å¯‡', '仉', 'ç£', 'å­è»Š', 'é¡“å­«', '端木', '巫馬', - '公西', '漆雕', '樂正', '壤駟', '公良', 'æ‹“è·‹', - '夾谷', '宰父', 'ç©€æ¢', '晉', '楚', 'é–†', '法', - 'æ±', 'é„¢', 'æ¶‚', '欽', '段干', '百里', 'æ±éƒ­', - 'å—é–€', '呼延', 'æ­¸', 'æµ·', '羊舌', '微生', 'å²³', - '帥', 'ç·±', '亢', 'æ³', '後', '有', 'ç´', 'æ¢ä¸˜', - '左丘', 'æ±é–€', '西門', '商', '牟', '佘', 'ä½´', - '伯', '賞', 'å—å®®', '墨', '哈', 'è­™', '笪', 'å¹´', - 'æ„›', '陽', '佟', '第五', '言', 'ç¦', - ); - - /** - * @link http://technology.chtsai.org/namefreq/ - */ - protected static $characterMale = array( - 'ä½³', '俊', 'ä¿¡', 'å‰', 'å‚‘', '冠', 'å›', '哲', - '嘉', 'å¨', '宇', '安', 'å®', 'å®—', '宜', 'å®¶', - '庭', 'å»·', '建', 'å½¥', '心', 'å¿—', 'æ€', '承', - 'æ–‡', 'æŸ', '樺', 'ç‘‹', '穎', '美', 'ç¿°', 'è¯', - 'è©©', '豪', 'è³¢', 'è»’', '銘', '霖', - ); - - protected static $characterFemale = array( - 'ä¼¶', '佩', 'ä½³', 'ä¾', 'å„€', '冠', 'å›', '嘉', - '如', '娟', '婉', 'å©·', '安', '宜', 'å®¶', '庭', - '心', 'æ€', '怡', '惠', 'æ…§', 'æ–‡', '欣', 'æ¶µ', - 'æ·‘', '玲', 'çŠ', 'çª', 'ç¬', '瑜', '穎', 'ç­‘', - 'ç­±', '美', '芬', '芳', 'è¯', 'è', 'è±', '蓉', - 'è©©', '貞', 'éƒ', '鈺', 'é›…', '雯', 'éœ', '馨', - ); - - public static function randomName($pool, $n) - { - $name = ''; - for ($i = 0; $i < $n; ++$i) { - $name .= static::randomElement($pool); - } - return $name; - } - - public static function firstNameMale() - { - return static::randomName(static::$characterMale, mt_rand(1, 2)); - } - - public static function firstNameFemale() - { - return static::randomName(static::$characterFemale, mt_rand(1, 2)); - } - - public static function suffix() - { - return ''; - } - - /** - * @param string $gender Person::GENDER_MALE || Person::GENDER_FEMALE - * - * @see https://en.wikipedia.org/wiki/National_Identification_Card_(Republic_of_China) - * - * @return string Length 10 alphanumeric characters, begins with 1 latin character (birthplace), - * 1 number (gender) and then 8 numbers (the last one is check digit). - */ - public function personalIdentityNumber($gender = null) - { - $birthPlace = self::randomKey(self::$idBirthplaceCode); - $birthPlaceCode = self::$idBirthplaceCode[$birthPlace]; - - $gender = ($gender != null) ? $gender : self::randomElement(array(self::GENDER_FEMALE, self::GENDER_MALE)); - $genderCode = ($gender === self::GENDER_MALE) ? 1 : 2; - - $randomNumberCode = self::randomNumber(7, true); - - $codes = str_split($birthPlaceCode . $genderCode . $randomNumberCode); - $total = 0; - - foreach ($codes as $key => $code) { - $total += $code * self::$idDigitValidator[$key]; - } - - $checkSumDigit = 10 - ($total % 10); - - if ($checkSumDigit == 10) { - $checkSumDigit = 0; - } - - $id = $birthPlace . $genderCode . $randomNumberCode . $checkSumDigit; - - return $id; - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/Provider/zh_TW/PhoneNumber.php b/vendor/fzaninotto/faker/src/Faker/Provider/zh_TW/PhoneNumber.php deleted file mode 100644 index 7c31a979..00000000 --- a/vendor/fzaninotto/faker/src/Faker/Provider/zh_TW/PhoneNumber.php +++ /dev/null @@ -1,19 +0,0 @@ - 251: - $temp .= $chars[++$i]; - // no break - case $ord > 247: - $temp .= $chars[++$i]; - // no break - case $ord > 239: - $temp .= $chars[++$i]; - // no break - case $ord > 223: - $temp .= $chars[++$i]; - // no break - case $ord > 191: - $temp .= $chars[++$i]; - // no break - } - - $encoding[] = $temp; - } - - return $encoding; - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/UniqueGenerator.php b/vendor/fzaninotto/faker/src/Faker/UniqueGenerator.php deleted file mode 100644 index 431f7653..00000000 --- a/vendor/fzaninotto/faker/src/Faker/UniqueGenerator.php +++ /dev/null @@ -1,58 +0,0 @@ -unique() - */ -class UniqueGenerator -{ - protected $generator; - protected $maxRetries; - protected $uniques = array(); - - /** - * @param Generator $generator - * @param integer $maxRetries - */ - public function __construct(Generator $generator, $maxRetries = 10000) - { - $this->generator = $generator; - $this->maxRetries = $maxRetries; - } - - /** - * Catch and proxy all generator calls but return only unique values - * @param string $attribute - * @return mixed - */ - public function __get($attribute) - { - return $this->__call($attribute, array()); - } - - /** - * Catch and proxy all generator calls with arguments but return only unique values - * @param string $name - * @param array $arguments - * @return mixed - */ - public function __call($name, $arguments) - { - if (!isset($this->uniques[$name])) { - $this->uniques[$name] = array(); - } - $i = 0; - do { - $res = call_user_func_array(array($this->generator, $name), $arguments); - $i++; - if ($i > $this->maxRetries) { - throw new \OverflowException(sprintf('Maximum retries of %d reached without finding a unique value', $this->maxRetries)); - } - } while (array_key_exists(serialize($res), $this->uniques[$name])); - $this->uniques[$name][serialize($res)]= null; - - return $res; - } -} diff --git a/vendor/fzaninotto/faker/src/Faker/ValidGenerator.php b/vendor/fzaninotto/faker/src/Faker/ValidGenerator.php deleted file mode 100644 index 1352dfc0..00000000 --- a/vendor/fzaninotto/faker/src/Faker/ValidGenerator.php +++ /dev/null @@ -1,65 +0,0 @@ -valid() - */ -class ValidGenerator -{ - protected $generator; - protected $validator; - protected $maxRetries; - - /** - * @param Generator $generator - * @param callable|null $validator - * @param integer $maxRetries - */ - public function __construct(Generator $generator, $validator = null, $maxRetries = 10000) - { - if (is_null($validator)) { - $validator = function () { - return true; - }; - } elseif (!is_callable($validator)) { - throw new \InvalidArgumentException('valid() only accepts callables as first argument'); - } - $this->generator = $generator; - $this->validator = $validator; - $this->maxRetries = $maxRetries; - } - - /** - * Catch and proxy all generator calls but return only valid values - * @param string $attribute - * - * @return mixed - */ - public function __get($attribute) - { - return $this->__call($attribute, array()); - } - - /** - * Catch and proxy all generator calls with arguments but return only valid values - * @param string $name - * @param array $arguments - * - * @return mixed - */ - public function __call($name, $arguments) - { - $i = 0; - do { - $res = call_user_func_array(array($this->generator, $name), $arguments); - $i++; - if ($i > $this->maxRetries) { - throw new \OverflowException(sprintf('Maximum retries of %d reached without finding a valid value', $this->maxRetries)); - } - } while (!call_user_func($this->validator, $res)); - - return $res; - } -} diff --git a/vendor/fzaninotto/faker/src/autoload.php b/vendor/fzaninotto/faker/src/autoload.php deleted file mode 100644 index f55914de..00000000 --- a/vendor/fzaninotto/faker/src/autoload.php +++ /dev/null @@ -1,26 +0,0 @@ -assertEquals($checksum, Iban::checksum($iban), $iban); - } - - public function validatorProvider() - { - return array( - array('AL47212110090000000235698741', true), - array('AD1200012030200359100100', true), - array('AT611904300234573201', true), - array('AZ21NABZ00000000137010001944', true), - array('BH67BMAG00001299123456', true), - array('BE68539007547034', true), - array('BA391290079401028494', true), - array('BR7724891749412660603618210F3', true), - array('BG80BNBG96611020345678', true), - array('CR0515202001026284066', true), - array('HR1210010051863000160', true), - array('CY17002001280000001200527600', true), - array('CZ6508000000192000145399', true), - array('DK5000400440116243', true), - array('DO28BAGR00000001212453611324', true), - array('EE382200221020145685', true), - array('FO6264600001631634', true), - array('FI2112345600000785', true), - array('FR1420041010050500013M02606', true), - array('GE29NB0000000101904917', true), - array('DE89370400440532013000', true), - array('GI75NWBK000000007099453', true), - array('GR1601101250000000012300695', true), - array('GL8964710001000206', true), - array('GT82TRAJ01020000001210029690', true), - array('HU42117730161111101800000000', true), - array('IS140159260076545510730339', true), - array('IE29AIBK93115212345678', true), - array('IL620108000000099999999', true), - array('IT60X0542811101000000123456', true), - array('KZ86125KZT5004100100', true), - array('KW81CBKU0000000000001234560101', true), - array('LV80BANK0000435195001', true), - array('LB62099900000001001901229114', true), - array('LI21088100002324013AA', true), - array('LT121000011101001000', true), - array('LU280019400644750000', true), - array('MK07250120000058984', true), - array('MT84MALT011000012345MTLCAST001S', true), - array('MR1300020001010000123456753', true), - array('MU17BOMM0101101030300200000MUR', true), - array('MD24AG000225100013104168', true), - array('MC5811222000010123456789030', true), - array('ME25505000012345678951', true), - array('NL91ABNA0417164300', true), - array('NO9386011117947', true), - array('PK36SCBL0000001123456702', true), - array('PL61109010140000071219812874', true), - array('PS92PALS000000000400123456702', true), - array('PT50000201231234567890154', true), - array('QA58DOHB00001234567890ABCDEFG', true), - array('RO49AAAA1B31007593840000', true), - array('SM86U0322509800000000270100', true), - array('SA0380000000608010167519', true), - array('RS35260005601001611379', true), - array('SK3112000000198742637541', true), - array('SI56263300012039086', true), - array('ES9121000418450200051332', true), - array('SE4550000000058398257466', true), - array('CH9300762011623852957', true), - array('TN5910006035183598478831', true), - array('TR330006100519786457841326', true), - array('AE070331234567890123456', true), - array('GB29NWBK60161331926819', true), - array('VG96VPVG0000012345678901', true), - array('YY24KIHB12476423125915947930915268', true), - array('ZZ25VLQT382332233206588011313776421', true), - - - array('AL4721211009000000023569874', false), - array('AD120001203020035910010', false), - array('AT61190430023457320', false), - array('AZ21NABZ0000000013701000194', false), - array('BH67BMAG0000129912345', false), - array('BE6853900754703', false), - array('BA39129007940102849', false), - array('BR7724891749412660603618210F', false), - array('BG80BNBG9661102034567', false), - array('CR051520200102628406', false), - array('HR121001005186300016', false), - array('CY1700200128000000120052760', false), - array('CZ650800000019200014539', false), - array('DK500040044011624', false), - array('DO28BAGR0000000121245361132', false), - array('EE38220022102014568', false), - array('FO626460000163163', false), - array('FI2112345600000780', false), - array('FR1420041010050500013M0260', false), - array('GE29NB000000010190491', false), - array('DE8937040044053201300', false), - array('GI75NWBK00000000709945', false), - array('GR160110125000000001230069', false), - array('GL896471000100020', false), - array('GT82TRAJ0102000000121002969', false), - array('HU4211773016111110180000000', false), - array('IS14015926007654551073033', false), - array('IE29AIBK9311521234567', false), - array('IL62010800000009999999', false), - array('IT60X054281110100000012345', false), - array('KZ86125KZT500410010', false), - array('KW81CBKU000000000000123456010', false), - array('LV80BANK000043519500', false), - array('LB6209990000000100190122911', false), - array('LI21088100002324013A', false), - array('LT12100001110100100', false), - array('LU28001940064475000', false), - array('MK0725012000005898', false), - array('MT84MALT011000012345MTLCAST001', false), - array('MR130002000101000012345675', false), - array('MU17BOMM0101101030300200000MU', false), - array('MD24AG00022510001310416', false), - array('MC58112220000101234567890', false), - array('ME2550500001234567895', false), - array('NL91ABNA041716430', false), - array('NO938601111794', false), - array('PK36SCBL000000112345670', false), - array('PL6110901014000007121981287', false), - array('PS92PALS00000000040012345670', false), - array('PT5000020123123456789015', false), - array('QA58DOHB00001234567890ABCDEF', false), - array('RO49AAAA1B3100759384000', false), - array('SM86U032250980000000027010', false), - array('SA038000000060801016751', false), - array('RS3526000560100161137', false), - array('SK311200000019874263754', false), - array('SI5626330001203908', false), - array('ES912100041845020005133', false), - array('SE455000000005839825746', false), - array('CH930076201162385295', false), - array('TN591000603518359847883', false), - array('TR33000610051978645784132', false), - array('AE07033123456789012345', false), - array('GB29NWBK6016133192681', false), - array('VG96VPVG000001234567890', false), - array('YY24KIHB1247642312591594793091526', false), - array('ZZ25VLQT38233223320658801131377642', false), - ); - } - - /** - * @dataProvider validatorProvider - */ - public function testIsValid($iban, $isValid) - { - $this->assertEquals($isValid, Iban::isValid($iban), $iban); - } - - public function alphaToNumberProvider() - { - return array( - array('A', 10), - array('B', 11), - array('C', 12), - array('D', 13), - array('E', 14), - array('F', 15), - array('G', 16), - array('H', 17), - array('I', 18), - array('J', 19), - array('K', 20), - array('L', 21), - array('M', 22), - array('N', 23), - array('O', 24), - array('P', 25), - array('Q', 26), - array('R', 27), - array('S', 28), - array('T', 29), - array('U', 30), - array('V', 31), - array('W', 32), - array('X', 33), - array('Y', 34), - array('Z', 35), - ); - } - - /** - * @dataProvider alphaToNumberProvider - */ - public function testAlphaToNumber($letter, $number) - { - $this->assertEquals($number, Iban::alphaToNumber($letter), $letter); - } - - public function mod97Provider() - { - // Large numbers - $return = array( - array('123456789123456789', 7), - array('111222333444555666', 73), - array('4242424242424242424242', 19), - array('271828182845904523536028', 68), - ); - - // 0-200 - for ($i = 0; $i < 200; $i++) { - $return[] = array((string)$i, $i % 97); - } - - return $return; - } - /** - * @dataProvider mod97Provider - */ - public function testMod97($number, $result) - { - $this->assertEquals($result, Iban::mod97($number), $number); - } -} diff --git a/vendor/fzaninotto/faker/test/Faker/Calculator/InnTest.php b/vendor/fzaninotto/faker/test/Faker/Calculator/InnTest.php deleted file mode 100644 index 71d9193f..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Calculator/InnTest.php +++ /dev/null @@ -1,51 +0,0 @@ -assertEquals($checksum, Inn::checksum($inn), $inn); - } - - public function validatorProvider() - { - return array( - array('5902179757', true), - array('5408294405', true), - array('2724164617', true), - array('0726000515', true), - array('6312123552', true), - - array('1111111111', false), - array('0123456789', false), - ); - } - - /** - * @dataProvider validatorProvider - */ - public function testIsValid($inn, $isValid) - { - $this->assertEquals($isValid, Inn::isValid($inn), $inn); - } -} diff --git a/vendor/fzaninotto/faker/test/Faker/Calculator/LuhnTest.php b/vendor/fzaninotto/faker/test/Faker/Calculator/LuhnTest.php deleted file mode 100644 index 2e814144..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Calculator/LuhnTest.php +++ /dev/null @@ -1,72 +0,0 @@ -assertInternalType('string', $checkDigit); - $this->assertEquals($checkDigit, Luhn::computeCheckDigit($partialNumber)); - } - - public function validatorProvider() - { - return array( - array('79927398710', false), - array('79927398711', false), - array('79927398712', false), - array('79927398713', true), - array('79927398714', false), - array('79927398715', false), - array('79927398716', false), - array('79927398717', false), - array('79927398718', false), - array('79927398719', false), - array(79927398713, true), - array(79927398714, false), - ); - } - - /** - * @dataProvider validatorProvider - */ - public function testIsValid($number, $isValid) - { - $this->assertEquals($isValid, Luhn::isValid($number)); - } - - /** - * @expectedException InvalidArgumentException - * @expectedExceptionMessage Argument should be an integer. - */ - public function testGenerateLuhnNumberWithInvalidPrefix() - { - Luhn::generateLuhnNumber('abc'); - } -} diff --git a/vendor/fzaninotto/faker/test/Faker/Calculator/TCNoTest.php b/vendor/fzaninotto/faker/test/Faker/Calculator/TCNoTest.php deleted file mode 100644 index 9e40d794..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Calculator/TCNoTest.php +++ /dev/null @@ -1,54 +0,0 @@ -assertEquals($checksum, TCNo::checksum($tcNo), $tcNo); - } - - public function validatorProvider() - { - return array( - array('22978160678', true), - array('26480045324', true), - array('47278360658', true), - array('34285002510', true), - array('19874561012', true), - - array('11111111111', false), - array('11234567899', false), - ); - } - - /** - * @dataProvider validatorProvider - * @param $tcNo - * @param $isValid - */ - public function testIsValid($tcNo, $isValid) - { - $this->assertEquals($isValid, TCNo::isValid($tcNo), $tcNo); - } -} diff --git a/vendor/fzaninotto/faker/test/Faker/DefaultGeneratorTest.php b/vendor/fzaninotto/faker/test/Faker/DefaultGeneratorTest.php deleted file mode 100644 index fa9eb852..00000000 --- a/vendor/fzaninotto/faker/test/Faker/DefaultGeneratorTest.php +++ /dev/null @@ -1,28 +0,0 @@ -assertNull($generator->value); - } - - public function testGeneratorReturnsDefaultValueForAnyPropertyGet() - { - $generator = new DefaultGenerator(123); - $this->assertSame(123, $generator->foo); - $this->assertNotNull($generator->bar); - } - - public function testGeneratorReturnsDefaultValueForAnyMethodCall() - { - $generator = new DefaultGenerator(123); - $this->assertSame(123, $generator->foobar()); - } -} diff --git a/vendor/fzaninotto/faker/test/Faker/GeneratorTest.php b/vendor/fzaninotto/faker/test/Faker/GeneratorTest.php deleted file mode 100644 index f15df441..00000000 --- a/vendor/fzaninotto/faker/test/Faker/GeneratorTest.php +++ /dev/null @@ -1,148 +0,0 @@ -addProvider(new FooProvider()); - $generator->addProvider(new BarProvider()); - $this->assertEquals('barfoo', $generator->format('fooFormatter')); - } - - public function testGetFormatterReturnsCallable() - { - $generator = new Generator; - $provider = new FooProvider(); - $generator->addProvider($provider); - $this->assertInternalType('callable', $generator->getFormatter('fooFormatter')); - } - - public function testGetFormatterReturnsCorrectFormatter() - { - $generator = new Generator; - $provider = new FooProvider(); - $generator->addProvider($provider); - $expected = array($provider, 'fooFormatter'); - $this->assertEquals($expected, $generator->getFormatter('fooFormatter')); - } - - /** - * @expectedException InvalidArgumentException - */ - public function testGetFormatterThrowsExceptionOnIncorrectProvider() - { - $generator = new Generator; - $generator->getFormatter('fooFormatter'); - } - - /** - * @expectedException InvalidArgumentException - */ - public function testGetFormatterThrowsExceptionOnIncorrectFormatter() - { - $generator = new Generator; - $provider = new FooProvider(); - $generator->addProvider($provider); - $generator->getFormatter('barFormatter'); - } - - public function testFormatCallsFormatterOnProvider() - { - $generator = new Generator; - $provider = new FooProvider(); - $generator->addProvider($provider); - $this->assertEquals('foobar', $generator->format('fooFormatter')); - } - - public function testFormatTransfersArgumentsToFormatter() - { - $generator = new Generator; - $provider = new FooProvider(); - $generator->addProvider($provider); - $this->assertEquals('bazfoo', $generator->format('fooFormatterWithArguments', array('foo'))); - } - - public function testParseReturnsSameStringWhenItContainsNoCurlyBraces() - { - $generator = new Generator(); - $this->assertEquals('fooBar#?', $generator->parse('fooBar#?')); - } - - public function testParseReturnsStringWithTokensReplacedByFormatters() - { - $generator = new Generator(); - $provider = new FooProvider(); - $generator->addProvider($provider); - $this->assertEquals('This is foobar a text with foobar', $generator->parse('This is {{fooFormatter}} a text with {{ fooFormatter }}')); - } - - public function testMagicGetCallsFormat() - { - $generator = new Generator; - $provider = new FooProvider(); - $generator->addProvider($provider); - $this->assertEquals('foobar', $generator->fooFormatter); - } - - public function testMagicCallCallsFormat() - { - $generator = new Generator; - $provider = new FooProvider(); - $generator->addProvider($provider); - $this->assertEquals('foobar', $generator->fooFormatter()); - } - - public function testMagicCallCallsFormatWithArguments() - { - $generator = new Generator; - $provider = new FooProvider(); - $generator->addProvider($provider); - $this->assertEquals('bazfoo', $generator->fooFormatterWithArguments('foo')); - } - - public function testSeed() - { - $generator = new Generator; - - $generator->seed(0); - $mtRandWithSeedZero = mt_rand(); - $generator->seed(0); - $this->assertEquals($mtRandWithSeedZero, mt_rand(), 'seed(0) should be deterministic.'); - - $generator->seed(); - $mtRandWithoutSeed = mt_rand(); - $this->assertNotEquals($mtRandWithSeedZero, $mtRandWithoutSeed, 'seed() should be different than seed(0)'); - $generator->seed(); - $this->assertNotEquals($mtRandWithoutSeed, mt_rand(), 'seed() should not be deterministic.'); - - $generator->seed('10'); - $this->assertTrue(true, 'seeding with a non int value doesn\'t throw an exception'); - } -} - -class FooProvider -{ - public function fooFormatter() - { - return 'foobar'; - } - - public function fooFormatterWithArguments($value = '') - { - return 'baz' . $value; - } -} - -class BarProvider -{ - public function fooFormatter() - { - return 'barfoo'; - } -} diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/AddressTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/AddressTest.php deleted file mode 100644 index c7f1814c..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/AddressTest.php +++ /dev/null @@ -1,47 +0,0 @@ -addProvider(new Address($faker)); - $this->faker = $faker; - } - - public function testLatitude() - { - $latitude = $this->faker->latitude(); - $this->assertInternalType('float', $latitude); - $this->assertGreaterThanOrEqual(-90, $latitude); - $this->assertLessThanOrEqual(90, $latitude); - } - - public function testLongitude() - { - $longitude = $this->faker->longitude(); - $this->assertInternalType('float', $longitude); - $this->assertGreaterThanOrEqual(-180, $longitude); - $this->assertLessThanOrEqual(180, $longitude); - } - - public function testCoordinate() - { - $coordinate = $this->faker->localCoordinates(); - $this->assertInternalType('array', $coordinate); - $this->assertInternalType('float', $coordinate['latitude']); - $this->assertGreaterThanOrEqual(-90, $coordinate['latitude']); - $this->assertLessThanOrEqual(90, $coordinate['latitude']); - $this->assertInternalType('float', $coordinate['longitude']); - $this->assertGreaterThanOrEqual(-180, $coordinate['longitude']); - $this->assertLessThanOrEqual(180, $coordinate['longitude']); - } -} diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/BarcodeTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/BarcodeTest.php deleted file mode 100644 index 16ca3cd8..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/BarcodeTest.php +++ /dev/null @@ -1,46 +0,0 @@ -addProvider(new Barcode($faker)); - $faker->seed(0); - $this->faker = $faker; - } - - public function testEan8() - { - $code = $this->faker->ean8(); - $this->assertRegExp('/^\d{8}$/i', $code); - $codeWithoutChecksum = substr($code, 0, -1); - $checksum = substr($code, -1); - $this->assertEquals(TestableBarcode::eanChecksum($codeWithoutChecksum), $checksum); - } - - public function testEan13() - { - $code = $this->faker->ean13(); - $this->assertRegExp('/^\d{13}$/i', $code); - $codeWithoutChecksum = substr($code, 0, -1); - $checksum = substr($code, -1); - $this->assertEquals(TestableBarcode::eanChecksum($codeWithoutChecksum), $checksum); - } -} - -class TestableBarcode extends Barcode -{ - public static function eanChecksum($input) - { - return parent::eanChecksum($input); - } -} diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/BaseTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/BaseTest.php deleted file mode 100644 index e619d5be..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/BaseTest.php +++ /dev/null @@ -1,572 +0,0 @@ -assertInternalType('integer', BaseProvider::randomDigit()); - } - - public function testRandomDigitReturnsDigit() - { - $this->assertGreaterThanOrEqual(0, BaseProvider::randomDigit()); - $this->assertLessThan(10, BaseProvider::randomDigit()); - } - - public function testRandomDigitNotNullReturnsNotNullDigit() - { - $this->assertGreaterThan(0, BaseProvider::randomDigitNotNull()); - $this->assertLessThan(10, BaseProvider::randomDigitNotNull()); - } - - - public function testRandomDigitNotReturnsValidDigit() - { - for ($i = 0; $i <= 9; $i++) { - $this->assertGreaterThanOrEqual(0, BaseProvider::randomDigitNot($i)); - $this->assertLessThan(10, BaseProvider::randomDigitNot($i)); - $this->assertNotSame(BaseProvider::randomDigitNot($i), $i); - } - } - - /** - * @expectedException \InvalidArgumentException - */ - public function testRandomNumberThrowsExceptionWhenCalledWithAMax() - { - BaseProvider::randomNumber(5, 200); - } - - /** - * @expectedException \InvalidArgumentException - */ - public function testRandomNumberThrowsExceptionWhenCalledWithATooHighNumberOfDigits() - { - BaseProvider::randomNumber(10); - } - - public function testRandomNumberReturnsInteger() - { - $this->assertInternalType('integer', BaseProvider::randomNumber()); - $this->assertInternalType('integer', BaseProvider::randomNumber(5, false)); - } - - public function testRandomNumberReturnsDigit() - { - $this->assertGreaterThanOrEqual(0, BaseProvider::randomNumber(3)); - $this->assertLessThan(1000, BaseProvider::randomNumber(3)); - } - - public function testRandomNumberAcceptsStrictParamToEnforceNumberSize() - { - $this->assertEquals(5, strlen((string) BaseProvider::randomNumber(5, true))); - } - - public function testNumberBetween() - { - $min = 5; - $max = 6; - - $this->assertGreaterThanOrEqual($min, BaseProvider::numberBetween($min, $max)); - $this->assertGreaterThanOrEqual(BaseProvider::numberBetween($min, $max), $max); - } - - public function testNumberBetweenAcceptsZeroAsMax() - { - $this->assertEquals(0, BaseProvider::numberBetween(0, 0)); - } - - public function testRandomFloat() - { - $min = 4; - $max = 10; - $nbMaxDecimals = 8; - - $result = BaseProvider::randomFloat($nbMaxDecimals, $min, $max); - - $parts = explode('.', $result); - - $this->assertInternalType('float', $result); - $this->assertGreaterThanOrEqual($min, $result); - $this->assertLessThanOrEqual($max, $result); - $this->assertLessThanOrEqual($nbMaxDecimals, strlen($parts[1])); - } - - public function testRandomLetterReturnsString() - { - $this->assertInternalType('string', BaseProvider::randomLetter()); - } - - public function testRandomLetterReturnsSingleLetter() - { - $this->assertEquals(1, strlen(BaseProvider::randomLetter())); - } - - public function testRandomLetterReturnsLowercaseLetter() - { - $lowercaseLetters = 'abcdefghijklmnopqrstuvwxyz'; - $this->assertNotFalse(strpos($lowercaseLetters, BaseProvider::randomLetter())); - } - - public function testRandomAsciiReturnsString() - { - $this->assertInternalType('string', BaseProvider::randomAscii()); - } - - public function testRandomAsciiReturnsSingleCharacter() - { - $this->assertEquals(1, strlen(BaseProvider::randomAscii())); - } - - public function testRandomAsciiReturnsAsciiCharacter() - { - $lowercaseLetters = '!"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~'; - $this->assertNotFalse(strpos($lowercaseLetters, BaseProvider::randomAscii())); - } - - public function testRandomElementReturnsNullWhenArrayEmpty() - { - $this->assertNull(BaseProvider::randomElement(array())); - } - - public function testRandomElementReturnsNullWhenCollectionEmpty() - { - $this->assertNull(BaseProvider::randomElement(new Collection(array()))); - } - - public function testRandomElementReturnsElementFromArray() - { - $elements = array('23', 'e', 32, '#'); - $this->assertContains(BaseProvider::randomElement($elements), $elements); - } - - public function testRandomElementReturnsElementFromAssociativeArray() - { - $elements = array('tata' => '23', 'toto' => 'e', 'tutu' => 32, 'titi' => '#'); - $this->assertContains(BaseProvider::randomElement($elements), $elements); - } - - public function testRandomElementReturnsElementFromCollection() - { - $collection = new Collection(array('one', 'two', 'three')); - $this->assertContains(BaseProvider::randomElement($collection), $collection); - } - - public function testShuffleReturnsStringWhenPassedAStringArgument() - { - $this->assertInternalType('string', BaseProvider::shuffle('foo')); - } - - public function testShuffleReturnsArrayWhenPassedAnArrayArgument() - { - $this->assertInternalType('array', BaseProvider::shuffle(array(1, 2, 3))); - } - - /** - * @expectedException \InvalidArgumentException - */ - public function testShuffleThrowsExceptionWhenPassedAnInvalidArgument() - { - BaseProvider::shuffle(false); - } - - public function testShuffleArraySupportsEmptyArrays() - { - $this->assertEquals(array(), BaseProvider::shuffleArray(array())); - } - - public function testShuffleArrayReturnsAnArrayOfTheSameSize() - { - $array = array(1, 2, 3, 4, 5); - $this->assertSameSize($array, BaseProvider::shuffleArray($array)); - } - - public function testShuffleArrayReturnsAnArrayWithSameElements() - { - $array = array(2, 4, 6, 8, 10); - $shuffleArray = BaseProvider::shuffleArray($array); - $this->assertContains(2, $shuffleArray); - $this->assertContains(4, $shuffleArray); - $this->assertContains(6, $shuffleArray); - $this->assertContains(8, $shuffleArray); - $this->assertContains(10, $shuffleArray); - } - - public function testShuffleArrayReturnsADifferentArrayThanTheOriginal() - { - $arr = array(1, 2, 3, 4, 5); - $shuffledArray = BaseProvider::shuffleArray($arr); - $this->assertNotEquals($arr, $shuffledArray); - } - - public function testShuffleArrayLeavesTheOriginalArrayUntouched() - { - $arr = array(1, 2, 3, 4, 5); - BaseProvider::shuffleArray($arr); - $this->assertEquals($arr, array(1, 2, 3, 4, 5)); - } - - public function testShuffleStringSupportsEmptyStrings() - { - $this->assertEquals('', BaseProvider::shuffleString('')); - } - - public function testShuffleStringReturnsAnStringOfTheSameSize() - { - $string = 'abcdef'; - $this->assertEquals(strlen($string), strlen(BaseProvider::shuffleString($string))); - } - - public function testShuffleStringReturnsAnStringWithSameElements() - { - $string = 'acegi'; - $shuffleString = BaseProvider::shuffleString($string); - $this->assertContains('a', $shuffleString); - $this->assertContains('c', $shuffleString); - $this->assertContains('e', $shuffleString); - $this->assertContains('g', $shuffleString); - $this->assertContains('i', $shuffleString); - } - - public function testShuffleStringReturnsADifferentStringThanTheOriginal() - { - $string = 'abcdef'; - $shuffledString = BaseProvider::shuffleString($string); - $this->assertNotEquals($string, $shuffledString); - } - - public function testShuffleStringLeavesTheOriginalStringUntouched() - { - $string = 'abcdef'; - BaseProvider::shuffleString($string); - $this->assertEquals($string, 'abcdef'); - } - - public function testNumerifyReturnsSameStringWhenItContainsNoHashSign() - { - $this->assertEquals('fooBar?', BaseProvider::numerify('fooBar?')); - } - - public function testNumerifyReturnsStringWithHashSignsReplacedByDigits() - { - $this->assertRegExp('/foo\dBa\dr/', BaseProvider::numerify('foo#Ba#r')); - } - - public function testNumerifyReturnsStringWithPercentageSignsReplacedByDigits() - { - $this->assertRegExp('/foo\dBa\dr/', BaseProvider::numerify('foo%Ba%r')); - } - - public function testNumerifyReturnsStringWithPercentageSignsReplacedByNotNullDigits() - { - $this->assertNotEquals('0', BaseProvider::numerify('%')); - } - - public function testNumerifyCanGenerateALargeNumberOfDigits() - { - $largePattern = str_repeat('#', 20); // definitely larger than PHP_INT_MAX on all systems - $this->assertEquals(20, strlen(BaseProvider::numerify($largePattern))); - } - - public function testLexifyReturnsSameStringWhenItContainsNoQuestionMark() - { - $this->assertEquals('fooBar#', BaseProvider::lexify('fooBar#')); - } - - public function testLexifyReturnsStringWithQuestionMarksReplacedByLetters() - { - $this->assertRegExp('/foo[a-z]Ba[a-z]r/', BaseProvider::lexify('foo?Ba?r')); - } - - public function testBothifyCombinesNumerifyAndLexify() - { - $this->assertRegExp('/foo[a-z]Ba\dr/', BaseProvider::bothify('foo?Ba#r')); - } - - public function testBothifyAsterisk() - { - $this->assertRegExp('/foo([a-z]|\d)Ba([a-z]|\d)r/', BaseProvider::bothify('foo*Ba*r')); - } - - public function testBothifyUtf() - { - $utf = 'œ∑´®†¥¨ˆøπ“‘和製╯°□°╯︵ â”»â”┻🵠🙈 ﺚﻣ ﻦﻔﺳ ﺲﻘﻄﺗ ﻮﺑﺎﻠﺘﺣﺪﻳﺩ،, ïºïº°ï»³ïº®ïº˜ï»³ ïºïºŽïº´ïº˜ïº§ïº©ïºŽï»£ ﺄﻧ ﺪﻧﻭ. ﺇﺫ ï»ªï»§ïºØŸ ﺎﻠﺴﺗïºïº­ ﻮﺘ'; - $this->assertRegExp('/'.$utf.'foo\dB[a-z]a([a-z]|\d)r/u', BaseProvider::bothify($utf.'foo#B?a*r')); - } - - public function testAsciifyReturnsSameStringWhenItContainsNoStarSign() - { - $this->assertEquals('fooBar?', BaseProvider::asciify('fooBar?')); - } - - public function testAsciifyReturnsStringWithStarSignsReplacedByAsciiChars() - { - $this->assertRegExp('/foo.Ba.r/', BaseProvider::asciify('foo*Ba*r')); - } - - public function regexifyBasicDataProvider() - { - return array( - array('azeQSDF1234', 'azeQSDF1234', 'does not change non regex chars'), - array('foo(bar){1}', 'foobar', 'replaces regex characters'), - array('', '', 'supports empty string'), - array('/^foo(bar){1}$/', 'foobar', 'ignores regex delimiters') - ); - } - - /** - * @dataProvider regexifyBasicDataProvider - */ - public function testRegexifyBasicFeatures($input, $output, $message) - { - $this->assertEquals($output, BaseProvider::regexify($input), $message); - } - - public function regexifyDataProvider() - { - return array( - array('\d', 'numbers'), - array('\w', 'letters'), - array('(a|b)', 'alternation'), - array('[aeiou]', 'basic character class'), - array('[a-z]', 'character class range'), - array('[a-z1-9]', 'multiple character class range'), - array('a*b+c?', 'single character quantifiers'), - array('a{2}', 'brackets quantifiers'), - array('a{2,3}', 'min-max brackets quantifiers'), - array('[aeiou]{2,3}', 'brackets quantifiers on basic character class'), - array('[a-z]{2,3}', 'brackets quantifiers on character class range'), - array('(a|b){2,3}', 'brackets quantifiers on alternation'), - array('\.\*\?\+', 'escaped characters'), - array('[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}', 'complex regex') - ); - } - - /** - * @dataProvider regexifyDataProvider - */ - public function testRegexifySupportedRegexSyntax($pattern, $message) - { - $this->assertRegExp('/' . $pattern . '/', BaseProvider::regexify($pattern), 'Regexify supports ' . $message); - } - - public function testOptionalReturnsProviderValueWhenCalledWithWeight1() - { - $faker = new \Faker\Generator(); - $faker->addProvider(new \Faker\Provider\Base($faker)); - $this->assertNotNull($faker->optional(100)->randomDigit); - } - - public function testOptionalReturnsNullWhenCalledWithWeight0() - { - $faker = new \Faker\Generator(); - $faker->addProvider(new \Faker\Provider\Base($faker)); - $this->assertNull($faker->optional(0)->randomDigit); - } - - public function testOptionalAllowsChainingPropertyAccess() - { - $faker = new \Faker\Generator(); - $faker->addProvider(new \Faker\Provider\Base($faker)); - $faker->addProvider(new \ArrayObject(array(1))); // hack because method_exists forbids stubs - $this->assertEquals(1, $faker->optional(100)->count); - $this->assertNull($faker->optional(0)->count); - } - - public function testOptionalAllowsChainingMethodCall() - { - $faker = new \Faker\Generator(); - $faker->addProvider(new \Faker\Provider\Base($faker)); - $faker->addProvider(new \ArrayObject(array(1))); // hack because method_exists forbids stubs - $this->assertEquals(1, $faker->optional(100)->count()); - $this->assertNull($faker->optional(0)->count()); - } - - public function testOptionalAllowsChainingProviderCallRandomlyReturnNull() - { - $faker = new \Faker\Generator(); - $faker->addProvider(new \Faker\Provider\Base($faker)); - $values = array(); - for ($i=0; $i < 10; $i++) { - $values[]= $faker->optional()->randomDigit; - } - $this->assertContains(null, $values); - - $values = array(); - for ($i=0; $i < 10; $i++) { - $values[]= $faker->optional(50)->randomDigit; - } - $this->assertContains(null, $values); - } - - /** - * @link https://github.com/fzaninotto/Faker/issues/265 - */ - public function testOptionalPercentageAndWeight() - { - $faker = new \Faker\Generator(); - $faker->addProvider(new \Faker\Provider\Base($faker)); - $faker->addProvider(new \Faker\Provider\Miscellaneous($faker)); - - $valuesOld = array(); - $valuesNew = array(); - - for ($i = 0; $i < 10000; ++$i) { - $valuesOld[] = $faker->optional(0.5)->boolean(100); - $valuesNew[] = $faker->optional(50)->boolean(100); - } - - $this->assertEquals( - round(array_sum($valuesOld) / 10000, 2), - round(array_sum($valuesNew) / 10000, 2) - ); - } - - public function testUniqueAllowsChainingPropertyAccess() - { - $faker = new \Faker\Generator(); - $faker->addProvider(new \Faker\Provider\Base($faker)); - $faker->addProvider(new \ArrayObject(array(1))); // hack because method_exists forbids stubs - $this->assertEquals(1, $faker->unique()->count); - } - - public function testUniqueAllowsChainingMethodCall() - { - $faker = new \Faker\Generator(); - $faker->addProvider(new \Faker\Provider\Base($faker)); - $faker->addProvider(new \ArrayObject(array(1))); // hack because method_exists forbids stubs - $this->assertEquals(1, $faker->unique()->count()); - } - - public function testUniqueReturnsOnlyUniqueValues() - { - $faker = new \Faker\Generator(); - $faker->addProvider(new \Faker\Provider\Base($faker)); - $values = array(); - for ($i=0; $i < 10; $i++) { - $values[]= $faker->unique()->randomDigit; - } - sort($values); - $this->assertEquals(array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9), $values); - } - - /** - * @expectedException OverflowException - */ - public function testUniqueThrowsExceptionWhenNoUniqueValueCanBeGenerated() - { - $faker = new \Faker\Generator(); - $faker->addProvider(new \Faker\Provider\Base($faker)); - for ($i=0; $i < 11; $i++) { - $faker->unique()->randomDigit; - } - } - - public function testUniqueCanResetUniquesWhenPassedTrueAsArgument() - { - $faker = new \Faker\Generator(); - $faker->addProvider(new \Faker\Provider\Base($faker)); - $values = array(); - for ($i=0; $i < 10; $i++) { - $values[]= $faker->unique()->randomDigit; - } - $values[]= $faker->unique(true)->randomDigit; - for ($i=0; $i < 9; $i++) { - $values[]= $faker->unique()->randomDigit; - } - sort($values); - $this->assertEquals(array(0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9), $values); - } - - public function testValidAllowsChainingPropertyAccess() - { - $faker = new \Faker\Generator(); - $faker->addProvider(new \Faker\Provider\Base($faker)); - $this->assertLessThan(10, $faker->valid()->randomDigit); - } - - public function testValidAllowsChainingMethodCall() - { - $faker = new \Faker\Generator(); - $faker->addProvider(new \Faker\Provider\Base($faker)); - $this->assertLessThan(10, $faker->valid()->numberBetween(5, 9)); - } - - public function testValidReturnsOnlyValidValues() - { - $faker = new \Faker\Generator(); - $faker->addProvider(new \Faker\Provider\Base($faker)); - $values = array(); - $evenValidator = function($digit) { - return $digit % 2 === 0; - }; - for ($i=0; $i < 50; $i++) { - $values[$faker->valid($evenValidator)->randomDigit] = true; - } - $uniqueValues = array_keys($values); - sort($uniqueValues); - $this->assertEquals(array(0, 2, 4, 6, 8), $uniqueValues); - } - - /** - * @expectedException OverflowException - */ - public function testValidThrowsExceptionWhenNoValidValueCanBeGenerated() - { - $faker = new \Faker\Generator(); - $faker->addProvider(new \Faker\Provider\Base($faker)); - $evenValidator = function($digit) { - return $digit % 2 === 0; - }; - for ($i=0; $i < 11; $i++) { - $faker->valid($evenValidator)->randomElement(array(1, 3, 5, 7, 9)); - } - } - - /** - * @expectedException InvalidArgumentException - */ - public function testValidThrowsExceptionWhenParameterIsNotCollable() - { - $faker = new \Faker\Generator(); - $faker->addProvider(new \Faker\Provider\Base($faker)); - $faker->valid(12)->randomElement(array(1, 3, 5, 7, 9)); - } - - /** - * @expectedException LengthException - * @expectedExceptionMessage Cannot get 2 elements, only 1 in array - */ - public function testRandomElementsThrowsWhenRequestingTooManyKeys() - { - BaseProvider::randomElements(array('foo'), 2); - } - - public function testRandomElements() - { - $this->assertCount(1, BaseProvider::randomElements(), 'Should work without any input'); - - $empty = BaseProvider::randomElements(array(), 0); - $this->assertInternalType('array', $empty); - $this->assertCount(0, $empty); - - $shuffled = BaseProvider::randomElements(array('foo', 'bar', 'baz'), 3); - $this->assertContains('foo', $shuffled); - $this->assertContains('bar', $shuffled); - $this->assertContains('baz', $shuffled); - - $allowDuplicates = BaseProvider::randomElements(array('foo', 'bar'), 3, true); - $this->assertCount(3, $allowDuplicates); - $this->assertContainsOnly('string', $allowDuplicates); - } -} - -class Collection extends \ArrayObject -{ -} diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/BiasedTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/BiasedTest.php deleted file mode 100644 index cce3dc0a..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/BiasedTest.php +++ /dev/null @@ -1,74 +0,0 @@ -generator = new Generator(); - $this->generator->addProvider(new Biased($this->generator)); - - $this->results = array_fill(1, self::MAX, 0); - } - - public function performFake($function) - { - for($i = 0; $i < self::NUMBERS; $i++) { - $this->results[$this->generator->biasedNumberBetween(1, self::MAX, $function)]++; - } - } - - public function testUnbiased() - { - $this->performFake(array('\Faker\Provider\Biased', 'unbiased')); - - // assert that all numbers are near the expected unbiased value - foreach ($this->results as $number => $amount) { - // integral - $assumed = (1 / self::MAX * $number) - (1 / self::MAX * ($number - 1)); - // calculate the fraction of the whole area - $assumed /= 1; - $this->assertGreaterThan(self::NUMBERS * $assumed * .95, $amount, "Value was more than 5 percent under the expected value"); - $this->assertLessThan(self::NUMBERS * $assumed * 1.05, $amount, "Value was more than 5 percent over the expected value"); - } - } - - public function testLinearHigh() - { - $this->performFake(array('\Faker\Provider\Biased', 'linearHigh')); - - foreach ($this->results as $number => $amount) { - // integral - $assumed = 0.5 * pow(1 / self::MAX * $number, 2) - 0.5 * pow(1 / self::MAX * ($number - 1), 2); - // calculate the fraction of the whole area - $assumed /= pow(1, 2) * .5; - $this->assertGreaterThan(self::NUMBERS * $assumed * .9, $amount, "Value was more than 10 percent under the expected value"); - $this->assertLessThan(self::NUMBERS * $assumed * 1.1, $amount, "Value was more than 10 percent over the expected value"); - } - } - - public function testLinearLow() - { - $this->performFake(array('\Faker\Provider\Biased', 'linearLow')); - - foreach ($this->results as $number => $amount) { - // integral - $assumed = -0.5 * pow(1 / self::MAX * $number, 2) - -0.5 * pow(1 / self::MAX * ($number - 1), 2); - // shift the graph up - $assumed += 1 / self::MAX; - // calculate the fraction of the whole area - $assumed /= pow(1, 2) * .5; - $this->assertGreaterThan(self::NUMBERS * $assumed * .9, $amount, "Value was more than 10 percent under the expected value"); - $this->assertLessThan(self::NUMBERS * $assumed * 1.1, $amount, "Value was more than 10 percent over the expected value"); - } - } -} diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/ColorTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/ColorTest.php deleted file mode 100644 index ff5edac2..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/ColorTest.php +++ /dev/null @@ -1,54 +0,0 @@ -assertRegExp('/^#[a-f0-9]{6}$/i', Color::hexColor()); - } - - public function testSafeHexColor() - { - $this->assertRegExp('/^#[a-f0-9]{6}$/i', Color::safeHexColor()); - } - - public function testRgbColorAsArray() - { - $this->assertEquals(3, count(Color::rgbColorAsArray())); - } - - public function testRgbColor() - { - $regexp = '([01]?[0-9]?[0-9]|2[0-4][0-9]|25[0-5])'; - $this->assertRegExp('/^' . $regexp . ',' . $regexp . ',' . $regexp . '$/i', Color::rgbColor()); - } - - public function testRgbCssColor() - { - $regexp = '([01]?[0-9]?[0-9]|2[0-4][0-9]|25[0-5])'; - $this->assertRegExp('/^rgb\(' . $regexp . ',' . $regexp . ',' . $regexp . '\)$/i', Color::rgbCssColor()); - } - - public function testRgbaCssColor() - { - $regexp = '([01]?[0-9]?[0-9]|2[0-4][0-9]|25[0-5])'; - $regexpAlpha = '([01]?(\.\d+)?)'; - $this->assertRegExp('/^rgba\(' . $regexp . ',' . $regexp . ',' . $regexp . ',' . $regexpAlpha . '\)$/i', Color::rgbaCssColor()); - } - - public function testSafeColorName() - { - $this->assertRegExp('/^[\w]+$/', Color::safeColorName()); - } - - public function testColorName() - { - $this->assertRegExp('/^[\w]+$/', Color::colorName()); - } -} diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/CompanyTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/CompanyTest.php deleted file mode 100644 index 28ce0eb4..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/CompanyTest.php +++ /dev/null @@ -1,31 +0,0 @@ -addProvider(new Company($faker)); - $faker->addProvider(new Lorem($faker)); - $this->faker = $faker; - } - - public function testJobTitle() - { - $jobTitle = $this->faker->jobTitle(); - $pattern = '/^[A-Za-z]+$/'; - $this->assertRegExp($pattern, $jobTitle); - } -} diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/DateTimeTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/DateTimeTest.php deleted file mode 100644 index ec3ad867..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/DateTimeTest.php +++ /dev/null @@ -1,282 +0,0 @@ -defaultTz = 'UTC'; - DateTimeProvider::setDefaultTimezone($this->defaultTz); - } - - public function tearDown() - { - DateTimeProvider::setDefaultTimezone(); - } - - public function testPreferDefaultTimezoneOverSystemTimezone() - { - /** - * Set the system timezone to something *other* than the timezone used - * in setUp(). - */ - $originalSystemTimezone = date_default_timezone_get(); - $systemTimezone = 'Antarctica/Vostok'; - date_default_timezone_set($systemTimezone); - - /** - * Get a new date/time value and assert that it prefers the default - * timezone over the system timezone. - */ - $date = DateTimeProvider::dateTime(); - $this->assertNotSame($systemTimezone, $date->getTimezone()->getName()); - $this->assertSame($this->defaultTz, $date->getTimezone()->getName()); - - /** - * Restore the system timezone. - */ - date_default_timezone_set($originalSystemTimezone); - } - - public function testUseSystemTimezoneWhenDefaultTimezoneIsNotSet() - { - /** - * Set the system timezone to something *other* than the timezone used - * in setUp() *and* reset the default timezone. - */ - $originalSystemTimezone = date_default_timezone_get(); - $originalDefaultTimezone = DateTimeProvider::getDefaultTimezone(); - $systemTimezone = 'Antarctica/Vostok'; - date_default_timezone_set($systemTimezone); - DateTimeProvider::setDefaultTimezone(); - - /** - * Get a new date/time value and assert that it uses the system timezone - * and not the system timezone. - */ - $date = DateTimeProvider::dateTime(); - $this->assertSame($systemTimezone, $date->getTimezone()->getName()); - $this->assertNotSame($this->defaultTz, $date->getTimezone()->getName()); - - /** - * Restore the system timezone. - */ - date_default_timezone_set($originalSystemTimezone); - } - - public function testUnixTime() - { - $timestamp = DateTimeProvider::unixTime(); - $this->assertInternalType('int', $timestamp); - $this->assertGreaterThanOrEqual(0, $timestamp); - $this->assertLessThanOrEqual(time(), $timestamp); - } - - public function testDateTime() - { - $date = DateTimeProvider::dateTime(); - $this->assertInstanceOf('\DateTime', $date); - $this->assertGreaterThanOrEqual(new \DateTime('@0'), $date); - $this->assertLessThanOrEqual(new \DateTime(), $date); - $this->assertEquals(new \DateTimeZone($this->defaultTz), $date->getTimezone()); - } - - public function testDateTimeWithTimezone() - { - $date = DateTimeProvider::dateTime('now', 'America/New_York'); - $this->assertEquals($date->getTimezone(), new \DateTimeZone('America/New_York')); - } - - public function testDateTimeAD() - { - $date = DateTimeProvider::dateTimeAD(); - $this->assertInstanceOf('\DateTime', $date); - $this->assertGreaterThanOrEqual(new \DateTime('0000-01-01 00:00:00'), $date); - $this->assertLessThanOrEqual(new \DateTime(), $date); - $this->assertEquals(new \DateTimeZone($this->defaultTz), $date->getTimezone()); - } - - public function testDateTimeThisCentury() - { - $date = DateTimeProvider::dateTimeThisCentury(); - $this->assertInstanceOf('\DateTime', $date); - $this->assertGreaterThanOrEqual(new \DateTime('-100 year'), $date); - $this->assertLessThanOrEqual(new \DateTime(), $date); - $this->assertEquals(new \DateTimeZone($this->defaultTz), $date->getTimezone()); - } - - public function testDateTimeThisDecade() - { - $date = DateTimeProvider::dateTimeThisDecade(); - $this->assertInstanceOf('\DateTime', $date); - $this->assertGreaterThanOrEqual(new \DateTime('-10 year'), $date); - $this->assertLessThanOrEqual(new \DateTime(), $date); - $this->assertEquals(new \DateTimeZone($this->defaultTz), $date->getTimezone()); - } - - public function testDateTimeThisYear() - { - $date = DateTimeProvider::dateTimeThisYear(); - $this->assertInstanceOf('\DateTime', $date); - $this->assertGreaterThanOrEqual(new \DateTime('-1 year'), $date); - $this->assertLessThanOrEqual(new \DateTime(), $date); - $this->assertEquals(new \DateTimeZone($this->defaultTz), $date->getTimezone()); - } - - public function testDateTimeThisMonth() - { - $date = DateTimeProvider::dateTimeThisMonth(); - $this->assertInstanceOf('\DateTime', $date); - $this->assertGreaterThanOrEqual(new \DateTime('-1 month'), $date); - $this->assertLessThanOrEqual(new \DateTime(), $date); - $this->assertEquals(new \DateTimeZone($this->defaultTz), $date->getTimezone()); - } - - public function testDateTimeThisCenturyWithTimezone() - { - $date = DateTimeProvider::dateTimeThisCentury('now', 'America/New_York'); - $this->assertEquals($date->getTimezone(), new \DateTimeZone('America/New_York')); - } - - public function testDateTimeThisDecadeWithTimezone() - { - $date = DateTimeProvider::dateTimeThisDecade('now', 'America/New_York'); - $this->assertEquals($date->getTimezone(), new \DateTimeZone('America/New_York')); - } - - public function testDateTimeThisYearWithTimezone() - { - $date = DateTimeProvider::dateTimeThisYear('now', 'America/New_York'); - $this->assertEquals($date->getTimezone(), new \DateTimeZone('America/New_York')); - } - - public function testDateTimeThisMonthWithTimezone() - { - $date = DateTimeProvider::dateTimeThisMonth('now', 'America/New_York'); - $this->assertEquals($date->getTimezone(), new \DateTimeZone('America/New_York')); - } - - public function testIso8601() - { - $date = DateTimeProvider::iso8601(); - $this->assertRegExp('/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}[+-Z](\d{4})?$/', $date); - $this->assertGreaterThanOrEqual(new \DateTime('@0'), new \DateTime($date)); - $this->assertLessThanOrEqual(new \DateTime(), new \DateTime($date)); - } - - public function testDate() - { - $date = DateTimeProvider::date(); - $this->assertRegExp('/^\d{4}-\d{2}-\d{2}$/', $date); - $this->assertGreaterThanOrEqual(new \DateTime('@0'), new \DateTime($date)); - $this->assertLessThanOrEqual(new \DateTime(), new \DateTime($date)); - } - - public function testTime() - { - $date = DateTimeProvider::time(); - $this->assertRegExp('/^\d{2}:\d{2}:\d{2}$/', $date); - } - - /** - * - * @dataProvider providerDateTimeBetween - */ - public function testDateTimeBetween($start, $end) - { - $date = DateTimeProvider::dateTimeBetween($start, $end); - $this->assertInstanceOf('\DateTime', $date); - $this->assertGreaterThanOrEqual(new \DateTime($start), $date); - $this->assertLessThanOrEqual(new \DateTime($end), $date); - $this->assertEquals(new \DateTimeZone($this->defaultTz), $date->getTimezone()); - } - - public function providerDateTimeBetween() - { - return array( - array('-1 year', false), - array('-1 year', null), - array('-1 day', '-1 hour'), - array('-1 day', 'now'), - ); - } - - /** - * - * @dataProvider providerDateTimeInInterval - */ - public function testDateTimeInInterval($start, $interval = "+5 days", $isInFuture) - { - $date = DateTimeProvider::dateTimeInInterval($start, $interval); - $this->assertInstanceOf('\DateTime', $date); - - $_interval = \DateInterval::createFromDateString($interval); - $_start = new \DateTime($start); - if ($isInFuture) { - $this->assertGreaterThanOrEqual($_start, $date); - $this->assertLessThanOrEqual($_start->add($_interval), $date); - } else { - $this->assertLessThanOrEqual($_start, $date); - $this->assertGreaterThanOrEqual($_start->add($_interval), $date); - } - } - - public function providerDateTimeInInterval() - { - return array( - array('-1 year', '+5 days', true), - array('-1 day', '-1 hour', false), - array('-1 day', '+1 hour', true), - ); - } - - public function testFixedSeedWithMaximumTimestamp() - { - $max = '2118-03-01 12:00:00'; - - mt_srand(1); - $unixTime = DateTimeProvider::unixTime($max); - $datetimeAD = DateTimeProvider::dateTimeAD($max); - $dateTime1 = DateTimeProvider::dateTime($max); - $dateTimeBetween = DateTimeProvider::dateTimeBetween('2014-03-01 06:00:00', $max); - $date = DateTimeProvider::date('Y-m-d', $max); - $time = DateTimeProvider::time('H:i:s', $max); - $iso8601 = DateTimeProvider::iso8601($max); - $dateTimeThisCentury = DateTimeProvider::dateTimeThisCentury($max); - $dateTimeThisDecade = DateTimeProvider::dateTimeThisDecade($max); - $dateTimeThisMonth = DateTimeProvider::dateTimeThisMonth($max); - $amPm = DateTimeProvider::amPm($max); - $dayOfMonth = DateTimeProvider::dayOfMonth($max); - $dayOfWeek = DateTimeProvider::dayOfWeek($max); - $month = DateTimeProvider::month($max); - $monthName = DateTimeProvider::monthName($max); - $year = DateTimeProvider::year($max); - $dateTimeThisYear = DateTimeProvider::dateTimeThisYear($max); - mt_srand(); - - //regenerate Random Date with same seed and same maximum end timestamp - mt_srand(1); - $this->assertEquals($unixTime, DateTimeProvider::unixTime($max)); - $this->assertEquals($datetimeAD, DateTimeProvider::dateTimeAD($max)); - $this->assertEquals($dateTime1, DateTimeProvider::dateTime($max)); - $this->assertEquals($dateTimeBetween, DateTimeProvider::dateTimeBetween('2014-03-01 06:00:00', $max)); - $this->assertEquals($date, DateTimeProvider::date('Y-m-d', $max)); - $this->assertEquals($time, DateTimeProvider::time('H:i:s', $max)); - $this->assertEquals($iso8601, DateTimeProvider::iso8601($max)); - $this->assertEquals($dateTimeThisCentury, DateTimeProvider::dateTimeThisCentury($max)); - $this->assertEquals($dateTimeThisDecade, DateTimeProvider::dateTimeThisDecade($max)); - $this->assertEquals($dateTimeThisMonth, DateTimeProvider::dateTimeThisMonth($max)); - $this->assertEquals($amPm, DateTimeProvider::amPm($max)); - $this->assertEquals($dayOfMonth, DateTimeProvider::dayOfMonth($max)); - $this->assertEquals($dayOfWeek, DateTimeProvider::dayOfWeek($max)); - $this->assertEquals($month, DateTimeProvider::month($max)); - $this->assertEquals($monthName, DateTimeProvider::monthName($max)); - $this->assertEquals($year, DateTimeProvider::year($max)); - $this->assertEquals($dateTimeThisYear, DateTimeProvider::dateTimeThisYear($max)); - mt_srand(); - } -} diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/HtmlLoremTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/HtmlLoremTest.php deleted file mode 100644 index f7814faf..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/HtmlLoremTest.php +++ /dev/null @@ -1,30 +0,0 @@ -addProvider(new HtmlLorem($faker)); - $node = $faker->randomHtml(6, 10); - $this->assertStringStartsWith("", $node); - $this->assertStringEndsWith("\n", $node); - } - - public function testRandomHtmlReturnsValidHTMLString(){ - $faker = new Generator(); - $faker->addProvider(new HtmlLorem($faker)); - $node = $faker->randomHtml(6, 10); - $dom = new \DOMDocument(); - $error = $dom->loadHTML($node); - $this->assertTrue($error); - } - -} diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/ImageTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/ImageTest.php deleted file mode 100644 index c73992ce..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/ImageTest.php +++ /dev/null @@ -1,76 +0,0 @@ -assertRegExp('#^https://lorempixel.com/640/480/#', Image::imageUrl()); - } - - public function testImageUrlAcceptsCustomWidthAndHeight() - { - $this->assertRegExp('#^https://lorempixel.com/800/400/#', Image::imageUrl(800, 400)); - } - - public function testImageUrlAcceptsCustomCategory() - { - $this->assertRegExp('#^https://lorempixel.com/800/400/nature/#', Image::imageUrl(800, 400, 'nature')); - } - - public function testImageUrlAcceptsCustomText() - { - $this->assertRegExp('#^https://lorempixel.com/800/400/nature/Faker#', Image::imageUrl(800, 400, 'nature', false, 'Faker')); - } - - public function testImageUrlAddsARandomGetParameterByDefault() - { - $url = Image::imageUrl(800, 400); - $splitUrl = preg_split('/\?/', $url); - - $this->assertEquals(count($splitUrl), 2); - $this->assertRegexp('#\d{5}#', $splitUrl[1]); - } - - /** - * @expectedException \InvalidArgumentException - */ - public function testUrlWithDimensionsAndBadCategory() - { - Image::imageUrl(800, 400, 'bullhonky'); - } - - public function testDownloadWithDefaults() - { - $url = "http://lorempixel.com/"; - $curlPing = curl_init($url); - curl_setopt($curlPing, CURLOPT_TIMEOUT, 5); - curl_setopt($curlPing, CURLOPT_CONNECTTIMEOUT, 5); - curl_setopt($curlPing, CURLOPT_RETURNTRANSFER, true); - $data = curl_exec($curlPing); - $httpCode = curl_getinfo($curlPing, CURLINFO_HTTP_CODE); - curl_close($curlPing); - - if ($httpCode < 200 | $httpCode > 300) { - $this->markTestSkipped("LoremPixel is offline, skipping image download"); - } - - $file = Image::image(sys_get_temp_dir()); - $this->assertFileExists($file); - if (function_exists('getimagesize')) { - list($width, $height, $type, $attr) = getimagesize($file); - $this->assertEquals(640, $width); - $this->assertEquals(480, $height); - $this->assertEquals(constant('IMAGETYPE_JPEG'), $type); - } else { - $this->assertEquals('jpg', pathinfo($file, PATHINFO_EXTENSION)); - } - if (file_exists($file)) { - unlink($file); - } - } -} diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/InternetTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/InternetTest.php deleted file mode 100644 index 93fe7b48..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/InternetTest.php +++ /dev/null @@ -1,167 +0,0 @@ -addProvider(new Lorem($faker)); - $faker->addProvider(new Person($faker)); - $faker->addProvider(new Internet($faker)); - $faker->addProvider(new Company($faker)); - $this->faker = $faker; - } - - public function localeDataProvider() - { - $providerPath = realpath(__DIR__ . '/../../../src/Faker/Provider'); - $localePaths = array_filter(glob($providerPath . '/*', GLOB_ONLYDIR)); - foreach ($localePaths as $path) { - $parts = explode('/', $path); - $locales[] = array($parts[count($parts) - 1]); - } - - return $locales; - } - - /** - * @link http://stackoverflow.com/questions/12026842/how-to-validate-an-email-address-in-php - * - * @dataProvider localeDataProvider - */ - public function testEmailIsValid($locale) - { - if ($locale !== 'en_US' && !class_exists('Transliterator')) { - $this->markTestSkipped('Transliterator class not available (intl extension)'); - } - - $this->loadLocalProviders($locale); - $pattern = '/^(?!(?:(?:\\x22?\\x5C[\\x00-\\x7E]\\x22?)|(?:\\x22?[^\\x5C\\x22]\\x22?)){255,})(?!(?:(?:\\x22?\\x5C[\\x00-\\x7E]\\x22?)|(?:\\x22?[^\\x5C\\x22]\\x22?)){65,}@)(?:(?:[\\x21\\x23-\\x27\\x2A\\x2B\\x2D\\x2F-\\x39\\x3D\\x3F\\x5E-\\x7E]+)|(?:\\x22(?:[\\x01-\\x08\\x0B\\x0C\\x0E-\\x1F\\x21\\x23-\\x5B\\x5D-\\x7F]|(?:\\x5C[\\x00-\\x7F]))*\\x22))(?:\\.(?:(?:[\\x21\\x23-\\x27\\x2A\\x2B\\x2D\\x2F-\\x39\\x3D\\x3F\\x5E-\\x7E]+)|(?:\\x22(?:[\\x01-\\x08\\x0B\\x0C\\x0E-\\x1F\\x21\\x23-\\x5B\\x5D-\\x7F]|(?:\\x5C[\\x00-\\x7F]))*\\x22)))*@(?:(?:(?!.*[^.]{64,})(?:(?:(?:xn--)?[a-z0-9]+(?:-+[a-z0-9]+)*\\.){1,126}){1,}(?:(?:[a-z][a-z0-9]*)|(?:(?:xn--)[a-z0-9]+))(?:-+[a-z0-9]+)*)|(?:\\[(?:(?:IPv6:(?:(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){7})|(?:(?!(?:.*[a-f0-9][:\\]]){7,})(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){0,5})?::(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){0,5})?)))|(?:(?:IPv6:(?:(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){5}:)|(?:(?!(?:.*[a-f0-9]:){5,})(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){0,3})?::(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){0,3}:)?)))?(?:(?:25[0-5])|(?:2[0-4][0-9])|(?:1[0-9]{2})|(?:[1-9]?[0-9]))(?:\\.(?:(?:25[0-5])|(?:2[0-4][0-9])|(?:1[0-9]{2})|(?:[1-9]?[0-9]))){3}))\\]))$/iD'; - $emailAddress = $this->faker->email(); - $this->assertRegExp($pattern, $emailAddress); - } - - /** - * @dataProvider localeDataProvider - */ - public function testUsernameIsValid($locale) - { - if ($locale !== 'en_US' && !class_exists('Transliterator')) { - $this->markTestSkipped('Transliterator class not available (intl extension)'); - } - - $this->loadLocalProviders($locale); - $pattern = '/^[A-Za-z0-9]+([._][A-Za-z0-9]+)*$/'; - $username = $this->faker->username(); - $this->assertRegExp($pattern, $username); - } - - /** - * @dataProvider localeDataProvider - */ - public function testDomainnameIsValid($locale) - { - if ($locale !== 'en_US' && !class_exists('Transliterator')) { - $this->markTestSkipped('Transliterator class not available (intl extension)'); - } - - $this->loadLocalProviders($locale); - $pattern = '/^[a-z]+(\.[a-z]+)+$/'; - $domainName = $this->faker->domainName(); - $this->assertRegExp($pattern, $domainName); - } - - /** - * @dataProvider localeDataProvider - */ - public function testDomainwordIsValid($locale) - { - if ($locale !== 'en_US' && !class_exists('Transliterator')) { - $this->markTestSkipped('Transliterator class not available (intl extension)'); - } - - $this->loadLocalProviders($locale); - $pattern = '/^[a-z]+$/'; - $domainWord = $this->faker->domainWord(); - $this->assertRegExp($pattern, $domainWord); - } - - public function loadLocalProviders($locale) - { - $providerPath = realpath(__DIR__ . '/../../../src/Faker/Provider'); - if (file_exists($providerPath.'/'.$locale.'/Internet.php')) { - $internet = "\\Faker\\Provider\\$locale\\Internet"; - $this->faker->addProvider(new $internet($this->faker)); - } - if (file_exists($providerPath.'/'.$locale.'/Person.php')) { - $person = "\\Faker\\Provider\\$locale\\Person"; - $this->faker->addProvider(new $person($this->faker)); - } - if (file_exists($providerPath.'/'.$locale.'/Company.php')) { - $company = "\\Faker\\Provider\\$locale\\Company"; - $this->faker->addProvider(new $company($this->faker)); - } - } - - public function testPasswordIsValid() - { - $this->assertRegexp('/^.{6}$/', $this->faker->password(6, 6)); - } - - public function testSlugIsValid() - { - $pattern = '/^[a-z0-9-]+$/'; - $slug = $this->faker->slug(); - $this->assertSame(preg_match($pattern, $slug), 1); - } - - public function testUrlIsValid() - { - $url = $this->faker->url(); - $this->assertNotFalse(filter_var($url, FILTER_VALIDATE_URL)); - } - - public function testLocalIpv4() - { - $this->assertNotFalse(filter_var(Internet::localIpv4(), FILTER_VALIDATE_IP, FILTER_FLAG_IPV4)); - } - - public function testIpv4() - { - $this->assertNotFalse(filter_var($this->faker->ipv4(), FILTER_VALIDATE_IP, FILTER_FLAG_IPV4)); - } - - public function testIpv4NotLocalNetwork() - { - $this->assertNotRegExp('/\A0\./', $this->faker->ipv4()); - } - - public function testIpv4NotBroadcast() - { - $this->assertNotEquals('255.255.255.255', $this->faker->ipv4()); - } - - public function testIpv6() - { - $this->assertNotFalse(filter_var($this->faker->ipv6(), FILTER_VALIDATE_IP, FILTER_FLAG_IPV6)); - } - - public function testMacAddress() - { - $this->assertRegExp('/^([0-9A-F]{2}[:]){5}([0-9A-F]{2})$/i', Internet::macAddress()); - } -} diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/LocalizationTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/LocalizationTest.php deleted file mode 100644 index 6cfcc891..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/LocalizationTest.php +++ /dev/null @@ -1,27 +0,0 @@ -assertNotNull($faker->name(), 'Localized Name Provider ' . $matches[1] . ' does not throw errors'); - } - } - - public function testLocalizedAddressProvidersDoNotThrowErrors() - { - foreach (glob(__DIR__ . '/../../../src/Faker/Provider/*/Address.php') as $localizedAddress) { - preg_match('#/([a-zA-Z_]+)/Address\.php#', $localizedAddress, $matches); - $faker = Factory::create($matches[1]); - $this->assertNotNull($faker->address(), 'Localized Address Provider ' . $matches[1] . ' does not throw errors'); - } - } -} diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/LoremTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/LoremTest.php deleted file mode 100644 index 16d98891..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/LoremTest.php +++ /dev/null @@ -1,109 +0,0 @@ -assertEquals('Word word word word.', TestableLorem::text(24)); - } - - public function testTextReturnsSentencesWhenAskedSizeLessThan100() - { - $this->assertEquals('This is a test sentence. This is a test sentence. This is a test sentence.', TestableLorem::text(99)); - } - - public function testTextReturnsParagraphsWhenAskedSizeGreaterOrEqualThanThan100() - { - $this->assertEquals('This is a test paragraph. It has three sentences. Exactly three.', TestableLorem::text(100)); - } - - public function testSentenceWithZeroNbWordsReturnsEmptyString() - { - $this->assertEquals('', Lorem::sentence(0)); - } - - public function testSentenceWithNegativeNbWordsReturnsEmptyString() - { - $this->assertEquals('', Lorem::sentence(-1)); - } - - public function testParagraphWithZeroNbSentencesReturnsEmptyString() - { - $this->assertEquals('', Lorem::paragraph(0)); - } - - public function testParagraphWithNegativeNbSentencesReturnsEmptyString() - { - $this->assertEquals('', Lorem::paragraph(-1)); - } - - public function testSentenceWithPositiveNbWordsReturnsAtLeastOneWord() - { - $sentence = Lorem::sentence(1); - - $this->assertGreaterThan(1, strlen($sentence)); - $this->assertGreaterThanOrEqual(1, count(explode(' ', $sentence))); - } - - public function testParagraphWithPositiveNbSentencesReturnsAtLeastOneWord() - { - $paragraph = Lorem::paragraph(1); - - $this->assertGreaterThan(1, strlen($paragraph)); - $this->assertGreaterThanOrEqual(1, count(explode(' ', $paragraph))); - } - - public function testWordssAsText() - { - $words = TestableLorem::words(2, true); - - $this->assertEquals('word word', $words); - } - - public function testSentencesAsText() - { - $sentences = TestableLorem::sentences(2, true); - - $this->assertEquals('This is a test sentence. This is a test sentence.', $sentences); - } - - public function testParagraphsAsText() - { - $paragraphs = TestableLorem::paragraphs(2, true); - - $expected = "This is a test paragraph. It has three sentences. Exactly three.\n\nThis is a test paragraph. It has three sentences. Exactly three."; - $this->assertEquals($expected, $paragraphs); - } -} - -class TestableLorem extends Lorem -{ - - public static function word() - { - return 'word'; - } - - public static function sentence($nbWords = 5, $variableNbWords = true) - { - return 'This is a test sentence.'; - } - - public static function paragraph($nbSentences = 3, $variableNbSentences = true) - { - return 'This is a test paragraph. It has three sentences. Exactly three.'; - } -} diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/MiscellaneousTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/MiscellaneousTest.php deleted file mode 100644 index 6a29cd55..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/MiscellaneousTest.php +++ /dev/null @@ -1,59 +0,0 @@ -assertContains(Miscellaneous::boolean(), array(true, false)); - } - - public function testMd5() - { - $this->assertRegExp('/^[a-z0-9]{32}$/', Miscellaneous::md5()); - } - - public function testSha1() - { - $this->assertRegExp('/^[a-z0-9]{40}$/', Miscellaneous::sha1()); - } - - public function testSha256() - { - $this->assertRegExp('/^[a-z0-9]{64}$/', Miscellaneous::sha256()); - } - - public function testLocale() - { - $this->assertRegExp('/^[a-z]{2,3}_[A-Z]{2}$/', Miscellaneous::locale()); - } - - public function testCountryCode() - { - $this->assertRegExp('/^[A-Z]{2}$/', Miscellaneous::countryCode()); - } - - public function testCountryISOAlpha3() - { - $this->assertRegExp('/^[A-Z]{3}$/', Miscellaneous::countryISOAlpha3()); - } - - public function testLanguage() - { - $this->assertRegExp('/^[a-z]{2}$/', Miscellaneous::languageCode()); - } - - public function testCurrencyCode() - { - $this->assertRegExp('/^[A-Z]{3}$/', Miscellaneous::currencyCode()); - } - - public function testEmoji() - { - $this->assertRegExp('/^[\x{1F600}-\x{1F637}]$/u', Miscellaneous::emoji()); - } -} diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/PaymentTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/PaymentTest.php deleted file mode 100644 index 966b9d63..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/PaymentTest.php +++ /dev/null @@ -1,209 +0,0 @@ -addProvider(new BaseProvider($faker)); - $faker->addProvider(new DateTimeProvider($faker)); - $faker->addProvider(new PersonProvider($faker)); - $faker->addProvider(new PaymentProvider($faker)); - $this->faker = $faker; - } - - public function localeDataProvider() - { - $providerPath = realpath(__DIR__ . '/../../../src/Faker/Provider'); - $localePaths = array_filter(glob($providerPath . '/*', GLOB_ONLYDIR)); - foreach ($localePaths as $path) { - $parts = explode('/', $path); - $locales[] = array($parts[count($parts) - 1]); - } - - return $locales; - } - - public function loadLocalProviders($locale) - { - $providerPath = realpath(__DIR__ . '/../../../src/Faker/Provider'); - if (file_exists($providerPath.'/'.$locale.'/Payment.php')) { - $payment = "\\Faker\\Provider\\$locale\\Payment"; - $this->faker->addProvider(new $payment($this->faker)); - } - } - - public function testCreditCardTypeReturnsValidVendorName() - { - $this->assertContains($this->faker->creditCardType, array('Visa', 'Visa Retired', 'MasterCard', 'American Express', 'Discover Card')); - } - - public function creditCardNumberProvider() - { - return array( - array('Discover Card', '/^6011\d{12}$/'), - array('Visa', '/^4\d{15}$/'), - array('Visa Retired', '/^4\d{12}$/'), - array('MasterCard', '/^(5[1-5]|2[2-7])\d{14}$/') - ); - } - - /** - * @dataProvider creditCardNumberProvider - */ - public function testCreditCardNumberReturnsValidCreditCardNumber($type, $regexp) - { - $cardNumber = $this->faker->creditCardNumber($type); - $this->assertRegExp($regexp, $cardNumber); - $this->assertTrue(Luhn::isValid($cardNumber)); - } - - public function testCreditCardNumberCanFormatOutput() - { - $this->assertRegExp('/^6011-\d{4}-\d{4}-\d{4}$/', $this->faker->creditCardNumber('Discover Card', true)); - } - - public function testCreditCardExpirationDateReturnsValidDateByDefault() - { - $expirationDate = $this->faker->creditCardExpirationDate; - $this->assertTrue(intval($expirationDate->format('U')) > strtotime('now')); - $this->assertTrue(intval($expirationDate->format('U')) < strtotime('+36 months')); - } - - public function testRandomCard() - { - $cardDetails = $this->faker->creditCardDetails; - $this->assertEquals(count($cardDetails), 4); - $this->assertEquals(array('type', 'number', 'name', 'expirationDate'), array_keys($cardDetails)); - } - - protected $ibanFormats = array( - 'AD' => '/^AD\d{2}\d{4}\d{4}[A-Z0-9]{12}$/', - 'AE' => '/^AE\d{2}\d{3}\d{16}$/', - 'AL' => '/^AL\d{2}\d{8}[A-Z0-9]{16}$/', - 'AT' => '/^AT\d{2}\d{5}\d{11}$/', - 'AZ' => '/^AZ\d{2}[A-Z]{4}[A-Z0-9]{20}$/', - 'BA' => '/^BA\d{2}\d{3}\d{3}\d{8}\d{2}$/', - 'BE' => '/^BE\d{2}\d{3}\d{7}\d{2}$/', - 'BG' => '/^BG\d{2}[A-Z]{4}\d{4}\d{2}[A-Z0-9]{8}$/', - 'BH' => '/^BH\d{2}[A-Z]{4}[A-Z0-9]{14}$/', - 'BR' => '/^BR\d{2}\d{8}\d{5}\d{10}[A-Z]{1}[A-Z0-9]{1}$/', - 'CH' => '/^CH\d{2}\d{5}[A-Z0-9]{12}$/', - 'CR' => '/^CR\d{2}\d{3}\d{14}$/', - 'CY' => '/^CY\d{2}\d{3}\d{5}[A-Z0-9]{16}$/', - 'CZ' => '/^CZ\d{2}\d{4}\d{6}\d{10}$/', - 'DE' => '/^DE\d{2}\d{8}\d{10}$/', - 'DK' => '/^DK\d{2}\d{4}\d{9}\d{1}$/', - 'DO' => '/^DO\d{2}[A-Z0-9]{4}\d{20}$/', - 'EE' => '/^EE\d{2}\d{2}\d{2}\d{11}\d{1}$/', - 'ES' => '/^ES\d{2}\d{4}\d{4}\d{1}\d{1}\d{10}$/', - 'FI' => '/^FI\d{2}\d{6}\d{7}\d{1}$/', - 'FR' => '/^FR\d{2}\d{5}\d{5}[A-Z0-9]{11}\d{2}$/', - 'GB' => '/^GB\d{2}[A-Z]{4}\d{6}\d{8}$/', - 'GE' => '/^GE\d{2}[A-Z]{2}\d{16}$/', - 'GI' => '/^GI\d{2}[A-Z]{4}[A-Z0-9]{15}$/', - 'GR' => '/^GR\d{2}\d{3}\d{4}[A-Z0-9]{16}$/', - 'GT' => '/^GT\d{2}[A-Z0-9]{4}[A-Z0-9]{20}$/', - 'HR' => '/^HR\d{2}\d{7}\d{10}$/', - 'HU' => '/^HU\d{2}\d{3}\d{4}\d{1}\d{15}\d{1}$/', - 'IE' => '/^IE\d{2}[A-Z]{4}\d{6}\d{8}$/', - 'IL' => '/^IL\d{2}\d{3}\d{3}\d{13}$/', - 'IS' => '/^IS\d{2}\d{4}\d{2}\d{6}\d{10}$/', - 'IT' => '/^IT\d{2}[A-Z]{1}\d{5}\d{5}[A-Z0-9]{12}$/', - 'KW' => '/^KW\d{2}[A-Z]{4}\d{22}$/', - 'KZ' => '/^KZ\d{2}\d{3}[A-Z0-9]{13}$/', - 'LB' => '/^LB\d{2}\d{4}[A-Z0-9]{20}$/', - 'LI' => '/^LI\d{2}\d{5}[A-Z0-9]{12}$/', - 'LT' => '/^LT\d{2}\d{5}\d{11}$/', - 'LU' => '/^LU\d{2}\d{3}[A-Z0-9]{13}$/', - 'LV' => '/^LV\d{2}[A-Z]{4}[A-Z0-9]{13}$/', - 'MC' => '/^MC\d{2}\d{5}\d{5}[A-Z0-9]{11}\d{2}$/', - 'MD' => '/^MD\d{2}[A-Z0-9]{2}[A-Z0-9]{18}$/', - 'ME' => '/^ME\d{2}\d{3}\d{13}\d{2}$/', - 'MK' => '/^MK\d{2}\d{3}[A-Z0-9]{10}\d{2}$/', - 'MR' => '/^MR\d{2}\d{5}\d{5}\d{11}\d{2}$/', - 'MT' => '/^MT\d{2}[A-Z]{4}\d{5}[A-Z0-9]{18}$/', - 'MU' => '/^MU\d{2}[A-Z]{4}\d{2}\d{2}\d{12}\d{3}[A-Z]{3}$/', - 'NL' => '/^NL\d{2}[A-Z]{4}\d{10}$/', - 'NO' => '/^NO\d{2}\d{4}\d{6}\d{1}$/', - 'PK' => '/^PK\d{2}[A-Z]{4}[A-Z0-9]{16}$/', - 'PL' => '/^PL\d{2}\d{8}\d{16}$/', - 'PS' => '/^PS\d{2}[A-Z]{4}[A-Z0-9]{21}$/', - 'PT' => '/^PT\d{2}\d{4}\d{4}\d{11}\d{2}$/', - 'RO' => '/^RO\d{2}[A-Z]{4}[A-Z0-9]{16}$/', - 'RS' => '/^RS\d{2}\d{3}\d{13}\d{2}$/', - 'SA' => '/^SA\d{2}\d{2}[A-Z0-9]{18}$/', - 'SE' => '/^SE\d{2}\d{3}\d{16}\d{1}$/', - 'SI' => '/^SI\d{2}\d{5}\d{8}\d{2}$/', - 'SK' => '/^SK\d{2}\d{4}\d{6}\d{10}$/', - 'SM' => '/^SM\d{2}[A-Z]{1}\d{5}\d{5}[A-Z0-9]{12}$/', - 'TN' => '/^TN\d{2}\d{2}\d{3}\d{13}\d{2}$/', - 'TR' => '/^TR\d{2}\d{5}\d{1}[A-Z0-9]{16}$/', - 'VG' => '/^VG\d{2}[A-Z]{4}\d{16}$/', - ); - - /** - * @dataProvider localeDataProvider - */ - public function testBankAccountNumber($locale) - { - $parts = explode('_', $locale); - $countryCode = array_pop($parts); - - if (!isset($this->ibanFormats[$countryCode])) { - // No IBAN format available - return; - } - - $this->loadLocalProviders($locale); - - try { - $iban = $this->faker->bankAccountNumber; - } catch (\InvalidArgumentException $e) { - // Not implemented, nothing to test - $this->markTestSkipped("bankAccountNumber not implemented for $locale"); - return; - } - - // Test format - $this->assertRegExp($this->ibanFormats[$countryCode], $iban); - - // Test checksum - $this->assertTrue(Iban::isValid($iban), "Checksum for $iban is invalid"); - } - - public function ibanFormatProvider() - { - $return = array(); - foreach ($this->ibanFormats as $countryCode => $regex) { - $return[] = array($countryCode, $regex); - } - return $return; - } - /** - * @dataProvider ibanFormatProvider - */ - public function testIban($countryCode, $regex) - { - $iban = $this->faker->iban($countryCode); - - // Test format - $this->assertRegExp($regex, $iban); - - // Test checksum - $this->assertTrue(Iban::isValid($iban), "Checksum for $iban is invalid"); - } -} diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/PersonTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/PersonTest.php deleted file mode 100644 index f53076f7..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/PersonTest.php +++ /dev/null @@ -1,87 +0,0 @@ -addProvider(new Person($faker)); - $this->assertContains($faker->firstName($gender), $expected); - } - - public function firstNameProvider() - { - return array( - array(null, array('John', 'Jane')), - array('foobar', array('John', 'Jane')), - array('male', array('John')), - array('female', array('Jane')), - ); - } - - public function testFirstNameMale() - { - $this->assertContains(Person::firstNameMale(), array('John')); - } - - public function testFirstNameFemale() - { - $this->assertContains(Person::firstNameFemale(), array('Jane')); - } - - /** - * @dataProvider titleProvider - */ - public function testTitle($gender, $expected) - { - $faker = new Generator(); - $faker->addProvider(new Person($faker)); - $this->assertContains($faker->title($gender), $expected); - } - - public function titleProvider() - { - return array( - array(null, array('Mr.', 'Mrs.', 'Ms.', 'Miss', 'Dr.', 'Prof.')), - array('foobar', array('Mr.', 'Mrs.', 'Ms.', 'Miss', 'Dr.', 'Prof.')), - array('male', array('Mr.', 'Dr.', 'Prof.')), - array('female', array('Mrs.', 'Ms.', 'Miss', 'Dr.', 'Prof.')), - ); - } - - public function testTitleMale() - { - $this->assertContains(Person::titleMale(), array('Mr.', 'Dr.', 'Prof.')); - } - - public function testTitleFemale() - { - $this->assertContains(Person::titleFemale(), array('Mrs.', 'Ms.', 'Miss', 'Dr.', 'Prof.')); - } - - public function testLastNameReturnsDoe() - { - $faker = new Generator(); - $faker->addProvider(new Person($faker)); - $this->assertEquals($faker->lastName(), 'Doe'); - } - - public function testNameReturnsFirstNameAndLastName() - { - $faker = new Generator(); - $faker->addProvider(new Person($faker)); - $this->assertContains($faker->name(), array('John Doe', 'Jane Doe')); - $this->assertContains($faker->name('foobar'), array('John Doe', 'Jane Doe')); - $this->assertContains($faker->name('male'), array('John Doe')); - $this->assertContains($faker->name('female'), array('Jane Doe')); - } -} diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/PhoneNumberTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/PhoneNumberTest.php deleted file mode 100644 index 520ecea3..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/PhoneNumberTest.php +++ /dev/null @@ -1,36 +0,0 @@ -addProvider(new PhoneNumber($faker)); - $this->faker = $faker; - } - - public function testPhoneNumberFormat() - { - $number = $this->faker->e164PhoneNumber(); - $this->assertRegExp('/^\+[0-9]{11,}$/', $number); - } - - public function testImeiReturnsValidNumber() - { - $imei = $this->faker->imei(); - $this->assertTrue(Luhn::isValid($imei)); - } -} diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/ProviderOverrideTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/ProviderOverrideTest.php deleted file mode 100644 index 61d7d63a..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/ProviderOverrideTest.php +++ /dev/null @@ -1,194 +0,0 @@ - - */ - -namespace Faker\Test\Provider; - -use Faker; -use PHPUnit\Framework\TestCase; - -/** - * Class ProviderOverrideTest - * - * @package Faker\Test\Provider - * - * This class tests a large portion of all locale specific providers. It does not test the entire stack, because each - * locale specific provider (can) has specific implementations. The goal of this test is to test the common denominator - * and to try to catch possible invalid multi-byte sequences. - */ -class ProviderOverrideTest extends TestCase -{ - /** - * Constants with regular expression patterns for testing the output. - * - * Regular expressions are sensitive for malformed strings (e.g.: strings with incorrect encodings) so by using - * PCRE for the tests, even though they seem fairly pointless, we test for incorrect encodings also. - */ - const TEST_STRING_REGEX = '/.+/u'; - - /** - * Slightly more specific for e-mail, the point isn't to properly validate e-mails. - */ - const TEST_EMAIL_REGEX = '/^(.+)@(.+)$/ui'; - - /** - * @dataProvider localeDataProvider - * @param string $locale - */ - public function testAddress($locale = null) - { - $faker = Faker\Factory::create($locale); - - $this->assertRegExp(static::TEST_STRING_REGEX, $faker->city); - $this->assertRegExp(static::TEST_STRING_REGEX, $faker->postcode); - $this->assertRegExp(static::TEST_STRING_REGEX, $faker->address); - $this->assertRegExp(static::TEST_STRING_REGEX, $faker->country); - } - - - /** - * @dataProvider localeDataProvider - * @param string $locale - */ - public function testCompany($locale = null) - { - $faker = Faker\Factory::create($locale); - - $this->assertRegExp(static::TEST_STRING_REGEX, $faker->company); - } - - - /** - * @dataProvider localeDataProvider - * @param string $locale - */ - public function testDateTime($locale = null) - { - $faker = Faker\Factory::create($locale); - - $this->assertRegExp(static::TEST_STRING_REGEX, $faker->century); - $this->assertRegExp(static::TEST_STRING_REGEX, $faker->timezone); - } - - - /** - * @dataProvider localeDataProvider - * @param string $locale - */ - public function testInternet($locale = null) - { - if ($locale && $locale !== 'en_US' && !class_exists('Transliterator')) { - $this->markTestSkipped('Transliterator class not available (intl extension)'); - } - - $faker = Faker\Factory::create($locale); - - $this->assertRegExp(static::TEST_STRING_REGEX, $faker->userName); - - $this->assertRegExp(static::TEST_EMAIL_REGEX, $faker->email); - $this->assertRegExp(static::TEST_EMAIL_REGEX, $faker->safeEmail); - $this->assertRegExp(static::TEST_EMAIL_REGEX, $faker->freeEmail); - $this->assertRegExp(static::TEST_EMAIL_REGEX, $faker->companyEmail); - } - - - /** - * @dataProvider localeDataProvider - * @param string $locale - */ - public function testPerson($locale = null) - { - $faker = Faker\Factory::create($locale); - - $this->assertRegExp(static::TEST_STRING_REGEX, $faker->name); - $this->assertRegExp(static::TEST_STRING_REGEX, $faker->title); - $this->assertRegExp(static::TEST_STRING_REGEX, $faker->firstName); - $this->assertRegExp(static::TEST_STRING_REGEX, $faker->lastName); - } - - - /** - * @dataProvider localeDataProvider - * @param string $locale - */ - public function testPhoneNumber($locale = null) - { - $faker = Faker\Factory::create($locale); - - $this->assertRegExp(static::TEST_STRING_REGEX, $faker->phoneNumber); - } - - - /** - * @dataProvider localeDataProvider - * @param string $locale - */ - public function testUserAgent($locale = null) - { - $faker = Faker\Factory::create($locale); - - $this->assertRegExp(static::TEST_STRING_REGEX, $faker->userAgent); - } - - - /** - * @dataProvider localeDataProvider - * - * @param null $locale - * @param string $locale - */ - public function testUuid($locale = null) - { - $faker = Faker\Factory::create($locale); - - $this->assertRegExp(static::TEST_STRING_REGEX, $faker->uuid); - } - - - /** - * @return array - */ - public function localeDataProvider() - { - $locales = $this->getAllLocales(); - $data = array(); - - foreach ($locales as $locale) { - $data[] = array( - $locale - ); - } - - return $data; - } - - - /** - * Returns all locales as array values - * - * @return array - */ - private function getAllLocales() - { - static $locales = array(); - - if ( ! empty($locales)) { - return $locales; - } - - // Finding all PHP files in the xx_XX directories - $providerDir = __DIR__ .'/../../../src/Faker/Provider'; - foreach (glob($providerDir .'/*_*/*.php') as $file) { - $localisation = basename(dirname($file)); - - if (isset($locales[ $localisation ])) { - continue; - } - - $locales[ $localisation ] = $localisation; - } - - return $locales; - } -} diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/TextTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/TextTest.php deleted file mode 100644 index a43d8d43..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/TextTest.php +++ /dev/null @@ -1,55 +0,0 @@ -addProvider(new Text($generator)); - $generator->seed(0); - - $lengths = array(10, 20, 50, 70, 90, 120, 150, 200, 500); - - foreach ($lengths as $length) { - $this->assertLessThan($length, $generator->realText($length)); - } - } - - /** - * @expectedException \InvalidArgumentException - */ - public function testTextMaxIndex() - { - $generator = new Generator(); - $generator->addProvider(new Text($generator)); - $generator->seed(0); - $generator->realText(200, 11); - } - - /** - * @expectedException \InvalidArgumentException - */ - public function testTextMinIndex() - { - $generator = new Generator(); - $generator->addProvider(new Text($generator)); - $generator->seed(0); - $generator->realText(200, 0); - } - - /** - * @expectedException \InvalidArgumentException - */ - public function testTextMinLength() - { - $generator = new Generator(); - $generator->addProvider(new Text($generator)); - $generator->seed(0); - $generator->realText(9); - } -} diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/UserAgentTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/UserAgentTest.php deleted file mode 100644 index 5ba2459c..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/UserAgentTest.php +++ /dev/null @@ -1,39 +0,0 @@ -assertNotNull(UserAgent::userAgent()); - } - - public function testFirefoxUserAgent() - { - $this->stringContains(' Firefox/', UserAgent::firefox()); - } - - public function testSafariUserAgent() - { - $this->stringContains('Safari/', UserAgent::safari()); - } - - public function testInternetExplorerUserAgent() - { - $this->assertStringStartsWith('Mozilla/5.0 (compatible; MSIE ', UserAgent::internetExplorer()); - } - - public function testOperaUserAgent() - { - $this->assertStringStartsWith('Opera/', UserAgent::opera()); - } - - public function testChromeUserAgent() - { - $this->stringContains('(KHTML, like Gecko) Chrome/', UserAgent::chrome()); - } -} diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/UuidTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/UuidTest.php deleted file mode 100644 index 5c639cac..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/UuidTest.php +++ /dev/null @@ -1,32 +0,0 @@ -assertTrue($this->isUuid($uuid)); - } - - public function testUuidExpectedSeed() - { - if (pack('L', 0x6162797A) == pack('N', 0x6162797A)) { - $this->markTestSkipped('Big Endian'); - } - $faker = new Generator(); - $faker->seed(123); - $this->assertEquals("8e2e0c84-50dd-367c-9e66-f3ab455c78d6", BaseProvider::uuid()); - $this->assertEquals("073eb60a-902c-30ab-93d0-a94db371f6c8", BaseProvider::uuid()); - } - - protected function isUuid($uuid) - { - return is_string($uuid) && (bool) preg_match('/^[a-f0-9]{8,8}-(?:[a-f0-9]{4,4}-){3,3}[a-f0-9]{12,12}$/i', $uuid); - } -} diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/ar_JO/InternetTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/ar_JO/InternetTest.php deleted file mode 100644 index 33d70c43..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/ar_JO/InternetTest.php +++ /dev/null @@ -1,33 +0,0 @@ -addProvider(new Person($faker)); - $faker->addProvider(new Internet($faker)); - $faker->addProvider(new Company($faker)); - $this->faker = $faker; - } - - public function testEmailIsValid() - { - $email = $this->faker->email(); - $this->assertNotFalse(filter_var($email, FILTER_VALIDATE_EMAIL)); - } -} diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/ar_SA/InternetTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/ar_SA/InternetTest.php deleted file mode 100644 index 8059f000..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/ar_SA/InternetTest.php +++ /dev/null @@ -1,33 +0,0 @@ -addProvider(new Person($faker)); - $faker->addProvider(new Internet($faker)); - $faker->addProvider(new Company($faker)); - $this->faker = $faker; - } - - public function testEmailIsValid() - { - $email = $this->faker->email(); - $this->assertNotFalse(filter_var($email, FILTER_VALIDATE_EMAIL)); - } -} diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/at_AT/PaymentTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/at_AT/PaymentTest.php deleted file mode 100644 index f62dae81..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/at_AT/PaymentTest.php +++ /dev/null @@ -1,31 +0,0 @@ -addProvider(new Payment($faker)); - $this->faker = $faker; - } - - public function testVatIsValid() - { - $vat = $this->faker->vat(); - $unspacedVat = $this->faker->vat(false); - $this->assertRegExp('/^(AT U\d{8})$/', $vat); - $this->assertRegExp('/^(ATU\d{8})$/', $unspacedVat); - } -} diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/bg_BG/PaymentTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/bg_BG/PaymentTest.php deleted file mode 100644 index b5645f9b..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/bg_BG/PaymentTest.php +++ /dev/null @@ -1,31 +0,0 @@ -addProvider(new Payment($faker)); - $this->faker = $faker; - } - - public function testVatIsValid() - { - $vat = $this->faker->vat(); - $unspacedVat = $this->faker->vat(false); - $this->assertRegExp('/^(BG \d{9,10})$/', $vat); - $this->assertRegExp('/^(BG\d{9,10})$/', $unspacedVat); - } -} diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/bn_BD/PersonTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/bn_BD/PersonTest.php deleted file mode 100644 index e82fe8b7..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/bn_BD/PersonTest.php +++ /dev/null @@ -1,30 +0,0 @@ -addProvider(new Person($faker)); - $this->faker = $faker; - } - - public function testIfFirstNameMaleCanReturnData() - { - $firstNameMale = $this->faker->firstNameMale(); - $this->assertNotEmpty($firstNameMale); - } - - public function testIfFirstNameFemaleCanReturnData() - { - $firstNameFemale = $this->faker->firstNameFemale(); - $this->assertNotEmpty($firstNameFemale); - } -} -?> diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/cs_CZ/PersonTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/cs_CZ/PersonTest.php deleted file mode 100644 index 0b198725..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/cs_CZ/PersonTest.php +++ /dev/null @@ -1,47 +0,0 @@ -addProvider(new Person($faker)); - $faker->addProvider(new Miscellaneous($faker)); - - for ($i = 0; $i < 1000; $i++) { - $birthNumber = $faker->birthNumber(); - $birthNumber = str_replace('/', '', $birthNumber); - - // check date - $year = intval(substr($birthNumber, 0, 2), 10); - $month = intval(substr($birthNumber, 2, 2), 10); - $day = intval(substr($birthNumber, 4, 2), 10); - - // make 4 digit year from 2 digit representation - $year += $year < 54 ? 2000 : 1900; - - // adjust special cases for month - if ($month > 50) $month -= 50; - if ($year >= 2004 && $month > 20) $month -= 20; - - $this->assertTrue(checkdate($month, $day, $year), "Birth number $birthNumber: date $year/$month/$day is invalid."); - - // check CRC if presented - if (strlen($birthNumber) == 10) { - $crc = intval(substr($birthNumber, -1), 10); - $refCrc = intval(substr($birthNumber, 0, -1), 10) % 11; - if ($refCrc == 10) { - $refCrc = 0; - } - $this->assertEquals($crc, $refCrc, "Birth number $birthNumber: checksum $crc doesn't match expected $refCrc."); - } - } - } -} diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/da_DK/InternetTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/da_DK/InternetTest.php deleted file mode 100644 index 43c09be4..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/da_DK/InternetTest.php +++ /dev/null @@ -1,33 +0,0 @@ -addProvider(new Person($faker)); - $faker->addProvider(new Internet($faker)); - $faker->addProvider(new Company($faker)); - $this->faker = $faker; - } - - public function testEmailIsValid() - { - $email = $this->faker->email(); - $this->assertNotFalse(filter_var($email, FILTER_VALIDATE_EMAIL)); - } -} diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/de_AT/InternetTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/de_AT/InternetTest.php deleted file mode 100644 index 1d778eea..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/de_AT/InternetTest.php +++ /dev/null @@ -1,33 +0,0 @@ -addProvider(new Person($faker)); - $faker->addProvider(new Internet($faker)); - $faker->addProvider(new Company($faker)); - $this->faker = $faker; - } - - public function testEmailIsValid() - { - $email = $this->faker->email(); - $this->assertNotFalse(filter_var($email, FILTER_VALIDATE_EMAIL)); - } -} diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/de_AT/PhoneNumberTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/de_AT/PhoneNumberTest.php deleted file mode 100644 index 7cc6e6b1..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/de_AT/PhoneNumberTest.php +++ /dev/null @@ -1,29 +0,0 @@ -addProvider(new PhoneNumber($faker)); - $this->faker = $faker; - } - - public function testPhoneNumberFormat() - { - $number = $this->faker->phoneNumber; - $this->assertRegExp('/^06\d{2} \d{7}|\+43 \d{4} \d{4}(-\d{2})?$/', $number); - } -} diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/de_CH/AddressTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/de_CH/AddressTest.php deleted file mode 100644 index 668f2117..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/de_CH/AddressTest.php +++ /dev/null @@ -1,70 +0,0 @@ -addProvider(new Address($faker)); - $faker->addProvider(new Person($faker)); - $this->faker = $faker; - } - - /** - * @test - */ - public function canton () - { - $canton = $this->faker->canton(); - $this->assertInternalType('array', $canton); - $this->assertCount(1, $canton); - - foreach ($canton as $cantonShort => $cantonName){ - $this->assertInternalType('string', $cantonShort); - $this->assertEquals(2, strlen($cantonShort)); - $this->assertInternalType('string', $cantonName); - $this->assertGreaterThan(2, strlen($cantonName)); - } - } - - /** - * @test - */ - public function cantonName () - { - $cantonName = $this->faker->cantonName(); - $this->assertInternalType('string', $cantonName); - $this->assertGreaterThan(2, strlen($cantonName)); - } - - /** - * @test - */ - public function cantonShort () - { - $cantonShort = $this->faker->cantonShort(); - $this->assertInternalType('string', $cantonShort); - $this->assertEquals(2, strlen($cantonShort)); - } - - /** - * @test - */ - public function address (){ - $address = $this->faker->address(); - $this->assertInternalType('string', $address); - } -} diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/de_CH/InternetTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/de_CH/InternetTest.php deleted file mode 100644 index 31dcc552..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/de_CH/InternetTest.php +++ /dev/null @@ -1,36 +0,0 @@ -addProvider(new Person($faker)); - $faker->addProvider(new Internet($faker)); - $faker->addProvider(new Company($faker)); - $this->faker = $faker; - } - - /** - * @test - */ - public function emailIsValid() - { - $email = $this->faker->email(); - $this->assertNotFalse(filter_var($email, FILTER_VALIDATE_EMAIL)); - } -} diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/de_CH/PhoneNumberTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/de_CH/PhoneNumberTest.php deleted file mode 100644 index 5102297c..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/de_CH/PhoneNumberTest.php +++ /dev/null @@ -1,33 +0,0 @@ -addProvider(new PhoneNumber($faker)); - $this->faker = $faker; - } - - public function testPhoneNumber() - { - $this->assertRegExp('/^0\d{2} ?\d{3} ?\d{2} ?\d{2}|\+41 ?(\(0\))?\d{2} ?\d{3} ?\d{2} ?\d{2}$/', $this->faker->phoneNumber()); - } - - public function testMobileNumber() - { - $this->assertRegExp('/^07[56789] ?\d{3} ?\d{2} ?\d{2}$/', $this->faker->mobileNumber()); - } -} diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/de_DE/InternetTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/de_DE/InternetTest.php deleted file mode 100644 index a15f3664..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/de_DE/InternetTest.php +++ /dev/null @@ -1,33 +0,0 @@ -addProvider(new Person($faker)); - $faker->addProvider(new Internet($faker)); - $faker->addProvider(new Company($faker)); - $this->faker = $faker; - } - - public function testEmailIsValid() - { - $email = $this->faker->email(); - $this->assertNotFalse(filter_var($email, FILTER_VALIDATE_EMAIL)); - } -} diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/el_GR/TextTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/el_GR/TextTest.php deleted file mode 100644 index 3f03dd3a..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/el_GR/TextTest.php +++ /dev/null @@ -1,57 +0,0 @@ -textClass = new \ReflectionClass('Faker\Provider\el_GR\Text'); - } - - protected function getMethod($name) { - $method = $this->textClass->getMethod($name); - - $method->setAccessible(true); - - return $method; - } - - /** @test */ - function testItShouldAppendEndPunctToTheEndOfString() - { - $this->assertSame( - 'Και δεν άκουσες το κλοπακλόπ, κλοπακλόπ, κλοπακλόπ.', - $this->getMethod('appendEnd')->invokeArgs(null, array('Και δεν άκουσες το κλοπακλόπ, κλοπακλόπ, κλοπακλόπ ')) - ); - - $this->assertSame( - 'Και δεν άκουσες το κλοπακλόπ, κλοπακλόπ, κλοπακλόπ.', - $this->getMethod('appendEnd')->invokeArgs(null, array('Και δεν άκουσες το κλοπακλόπ, κλοπακλόπ, κλοπακλόπ—')) - ); - - $this->assertSame( - 'Και δεν άκουσες το κλοπακλόπ, κλοπακλόπ, κλοπακλόπ.', - $this->getMethod('appendEnd')->invokeArgs(null, array('Και δεν άκουσες το κλοπακλόπ, κλοπακλόπ, κλοπακλόπ,')) - ); - - $this->assertSame( - 'Και δεν άκουσες το κλοπακλόπ, κλοπακλόπ, κλοπακλόπ!.', - $this->getMethod('appendEnd')->invokeArgs(null, array('Και δεν άκουσες το κλοπακλόπ, κλοπακλόπ, κλοπακλόπ! ')) - ); - - $this->assertSame( - 'Και δεν άκουσες το κλοπακλόπ, κλοπακλόπ, κλοπακλόπ.', - $this->getMethod('appendEnd')->invokeArgs(null, array('Και δεν άκουσες το κλοπακλόπ, κλοπακλόπ, κλοπακλόπ; ')) - ); - - $this->assertSame( - 'Και δεν άκουσες το κλοπακλόπ, κλοπακλόπ, κλοπακλόπ.', - $this->getMethod('appendEnd')->invokeArgs(null, array('Και δεν άκουσες το κλοπακλόπ, κλοπακλόπ, κλοπακλόπ: ')) - ); - } -} diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/en_AU/AddressTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/en_AU/AddressTest.php deleted file mode 100644 index b2f72e8b..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/en_AU/AddressTest.php +++ /dev/null @@ -1,49 +0,0 @@ -addProvider(new Address($faker)); - $this->faker = $faker; - } - - public function testCityPrefix() - { - $cityPrefix = $this->faker->cityPrefix(); - $this->assertNotEmpty($cityPrefix); - $this->assertInternalType('string', $cityPrefix); - $this->assertRegExp('/[A-Z][a-z]+/', $cityPrefix); - } - - public function testStreetSuffix() - { - $streetSuffix = $this->faker->streetSuffix(); - $this->assertNotEmpty($streetSuffix); - $this->assertInternalType('string', $streetSuffix); - $this->assertRegExp('/[A-Z][a-z]+/', $streetSuffix); - } - - public function testState() - { - $state = $this->faker->state(); - $this->assertNotEmpty($state); - $this->assertInternalType('string', $state); - $this->assertRegExp('/[A-Z][a-z]+/', $state); - } -} - -?> diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/en_CA/AddressTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/en_CA/AddressTest.php deleted file mode 100644 index 6b1ece72..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/en_CA/AddressTest.php +++ /dev/null @@ -1,69 +0,0 @@ -addProvider(new Address($faker)); - $this->faker = $faker; - } - - /** - * Test the validity of province - */ - public function testProvince() - { - $province = $this->faker->province(); - $this->assertNotEmpty($province); - $this->assertInternalType('string', $province); - $this->assertRegExp('/[A-Z][a-z]+/', $province); - } - - /** - * Test the validity of province abbreviation - */ - public function testProvinceAbbr() - { - $provinceAbbr = $this->faker->provinceAbbr(); - $this->assertNotEmpty($provinceAbbr); - $this->assertInternalType('string', $provinceAbbr); - $this->assertRegExp('/^[A-Z]{2}$/', $provinceAbbr); - } - - /** - * Test the validity of postcode letter - */ - public function testPostcodeLetter() - { - $postcodeLetter = $this->faker->randomPostcodeLetter(); - $this->assertNotEmpty($postcodeLetter); - $this->assertInternalType('string', $postcodeLetter); - $this->assertRegExp('/^[A-Z]{1}$/', $postcodeLetter); - } - - /** - * Test the validity of Canadian postcode - */ - public function testPostcode() - { - $postcode = $this->faker->postcode(); - $this->assertNotEmpty($postcode); - $this->assertInternalType('string', $postcode); - $this->assertRegExp('/^[A-Za-z]\d[A-Za-z][ -]?\d[A-Za-z]\d$/', $postcode); - } -} - -?> diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/en_GB/AddressTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/en_GB/AddressTest.php deleted file mode 100644 index 762e11a8..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/en_GB/AddressTest.php +++ /dev/null @@ -1,36 +0,0 @@ -addProvider(new Address($faker)); - $this->faker = $faker; - } - - /** - * - */ - public function testPostcode() - { - - $postcode = $this->faker->postcode(); - $this->assertNotEmpty($postcode); - $this->assertInternalType('string', $postcode); - $this->assertRegExp('@^(GIR ?0AA|[A-PR-UWYZ]([0-9]{1,2}|([A-HK-Y][0-9]([0-9ABEHMNPRV-Y])?)|[0-9][A-HJKPS-UW]) ?[0-9][ABD-HJLNP-UW-Z]{2})$@i', $postcode); - - } - -} diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/en_IN/AddressTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/en_IN/AddressTest.php deleted file mode 100644 index 125cbdf0..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/en_IN/AddressTest.php +++ /dev/null @@ -1,57 +0,0 @@ -addProvider(new Address($faker)); - $this->faker = $faker; - } - - public function testCity() - { - $city = $this->faker->city(); - $this->assertNotEmpty($city); - $this->assertInternalType('string', $city); - $this->assertRegExp('/[A-Z][a-z]+/', $city); - } - - public function testCountry() - { - $country = $this->faker->country(); - $this->assertNotEmpty($country); - $this->assertInternalType('string', $country); - $this->assertRegExp('/[A-Z][a-z]+/', $country); - } - - public function testLocalityName() - { - $localityName = $this->faker->localityName(); - $this->assertNotEmpty($localityName); - $this->assertInternalType('string', $localityName); - $this->assertRegExp('/[A-Z][a-z]+/', $localityName); - } - - public function testAreaSuffix() - { - $areaSuffix = $this->faker->areaSuffix(); - $this->assertNotEmpty($areaSuffix); - $this->assertInternalType('string', $areaSuffix); - $this->assertRegExp('/[A-Z][a-z]+/', $areaSuffix); - } -} - -?> diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/en_NG/AddressTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/en_NG/AddressTest.php deleted file mode 100644 index 27c591b7..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/en_NG/AddressTest.php +++ /dev/null @@ -1,57 +0,0 @@ -addProvider(new Address($faker)); - $this->faker = $faker; - } - - /** - * - */ - public function testPostcodeIsNotEmptyAndIsValid() - { - $postcode = $this->faker->postcode(); - - $this->assertNotEmpty($postcode); - $this->assertInternalType('string', $postcode); - } - - /** - * Test the name of the Nigerian State/County - */ - public function testCountyIsAValidString() - { - $county = $this->faker->county; - - $this->assertNotEmpty($county); - $this->assertInternalType('string', $county); - } - - /** - * Test the name of the Nigerian Region in a State. - */ - public function testRegionIsAValidString() - { - $region = $this->faker->region; - - $this->assertNotEmpty($region); - $this->assertInternalType('string', $region); - } - -} diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/en_NG/InternetTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/en_NG/InternetTest.php deleted file mode 100644 index 6ebc620f..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/en_NG/InternetTest.php +++ /dev/null @@ -1,33 +0,0 @@ -addProvider(new Person($faker)); - $faker->addProvider(new Internet($faker)); - $this->faker = $faker; - } - - public function testEmailIsValid() - { - $email = $this->faker->email(); - $this->assertNotFalse(filter_var($email, FILTER_VALIDATE_EMAIL)); - $this->assertNotEmpty($email); - $this->assertInternalType('string', $email); - } -} diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/en_NG/PersonTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/en_NG/PersonTest.php deleted file mode 100644 index 2180e36e..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/en_NG/PersonTest.php +++ /dev/null @@ -1,30 +0,0 @@ -addProvider(new Person($faker)); - $this->faker = $faker; - } - - public function testPersonNameIsAValidString() - { - $name = $this->faker->name; - - $this->assertNotEmpty($name); - $this->assertInternalType('string', $name); - } -} diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/en_NG/PhoneNumberTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/en_NG/PhoneNumberTest.php deleted file mode 100644 index c591b8ab..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/en_NG/PhoneNumberTest.php +++ /dev/null @@ -1,26 +0,0 @@ -addProvider(new PhoneNumber($faker)); - $this->faker = $faker; - } - - public function testPhoneNumberReturnsPhoneNumberWithOrWithoutCountryCode() - { - $phoneNumber = $this->faker->phoneNumber(); - - $this->assertNotEmpty($phoneNumber); - $this->assertInternalType('string', $phoneNumber); - $this->assertRegExp('/^(0|(\+234))\s?[789][01]\d\s?(\d{3}\s?\d{4})/', $phoneNumber); - } -} diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/en_NZ/PhoneNumberTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/en_NZ/PhoneNumberTest.php deleted file mode 100644 index 14b145c7..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/en_NZ/PhoneNumberTest.php +++ /dev/null @@ -1,36 +0,0 @@ -addProvider(new PhoneNumber($faker)); - $this->faker = $faker; - } - - public function testIfPhoneNumberCanReturnData() - { - $number = $this->faker->phoneNumber; - $this->assertNotEmpty($number); - } - - public function phoneNumberFormat() - { - $number = $this->faker->phoneNumber; - $this->assertRegExp('/(^\([0]\d{1}\))(\d{7}$)|(^\([0][2]\d{1}\))(\d{6,8}$)|([0][8][0][0])([\s])(\d{5,8}$)/', $number); - } -} -?> diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/en_PH/AddressTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/en_PH/AddressTest.php deleted file mode 100644 index 19367a49..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/en_PH/AddressTest.php +++ /dev/null @@ -1,50 +0,0 @@ -addProvider(new Address($faker)); - $this->faker = $faker; - } - - public function testProvince() - { - $province = $this->faker->province(); - $this->assertNotEmpty($province); - $this->assertInternalType('string', $province); - } - - public function testCity() - { - $city = $this->faker->city(); - $this->assertNotEmpty($city); - $this->assertInternalType('string', $city); - } - - public function testMunicipality() - { - $municipality = $this->faker->municipality(); - $this->assertNotEmpty($municipality); - $this->assertInternalType('string', $municipality); - } - - public function testBarangay() - { - $barangay = $this->faker->barangay(); - $this->assertInternalType('string', $barangay); - } -} diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/en_SG/AddressTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/en_SG/AddressTest.php deleted file mode 100644 index abc62aac..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/en_SG/AddressTest.php +++ /dev/null @@ -1,27 +0,0 @@ -addProvider(new Address($faker)); - $this->faker = $faker; - } - - public function testStreetNumber() - { - $this->assertRegExp('/^\d{2,3}$/', $this->faker->streetNumber()); - } - - public function testBlockNumber() - { - $this->assertRegExp('/^Blk\s*\d{2,3}[A-H]*$/i', $this->faker->blockNumber()); - } -} diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/en_SG/PhoneNumberTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/en_SG/PhoneNumberTest.php deleted file mode 100644 index c8bb13f8..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/en_SG/PhoneNumberTest.php +++ /dev/null @@ -1,46 +0,0 @@ -faker = Factory::create('en_SG'); - $this->faker->seed(1); - $this->faker->addProvider(new PhoneNumber($this->faker)); - } - - // http://en.wikipedia.org/wiki/Telephone_numbers_in_Singapore#Numbering_plan - // y means 0 to 8 only - // x means 0 to 9 - public function testMobilePhoneNumberStartWith9Returns9yxxxxxx() - { - $startsWith9 = false; - while (!$startsWith9) { - $mobileNumber = $this->faker->mobileNumber(); - $startsWith9 = preg_match('/^(\+65|65)?\s*9/', $mobileNumber); - } - - $this->assertRegExp('/^(\+65|65)?\s*9\s*[0-8]{3}\s*\d{4}$/', $mobileNumber); - } - - // http://en.wikipedia.org/wiki/Telephone_numbers_in_Singapore#Numbering_plan - // z means 1 to 9 only - // x means 0 to 9 - public function testMobilePhoneNumberStartWith7Or8Returns7Or8zxxxxxx() - { - $startsWith7Or8 = false; - while (!$startsWith7Or8) { - $mobileNumber = $this->faker->mobileNumber(); - $startsWith7Or8 = preg_match('/^(\+65|65)?\s*[7-8]/', $mobileNumber); - } - $this->assertRegExp('/^(\+65|65)?\s*[7-8]\s*[1-9]{3}\s*\d{4}$/', $mobileNumber); - } -} diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/en_UG/AddressTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/en_UG/AddressTest.php deleted file mode 100644 index 571d93fb..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/en_UG/AddressTest.php +++ /dev/null @@ -1,53 +0,0 @@ -addProvider(new Address($faker)); - $this->faker = $faker; - } - - /** - * @test - */ - public function testCityName() - { - $city = $this->faker->cityName(); - $this->assertNotEmpty($city); - $this->assertInternalType('string', $city); - } - - /** - * @test - */ - public function testDistrict() - { - $district = $this->faker->district(); - $this->assertNotEmpty($district); - $this->assertInternalType('string', $district); - } - - /** - * @test - */ - public function testRegion() - { - $region = $this->faker->region(); - $this->assertNotEmpty($region); - $this->assertInternaltype('string', $region); - } -} diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/en_US/CompanyTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/en_US/CompanyTest.php deleted file mode 100644 index 735d8339..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/en_US/CompanyTest.php +++ /dev/null @@ -1,33 +0,0 @@ -addProvider(new Company($faker)); - $this->faker = $faker; - } - - /** - * @link https://stackoverflow.com/questions/4242433/regex-for-ein-number-and-ssn-number-format-in-jquery/35471665#35471665 - */ - public function testEin() - { - $number = $this->faker->ein; - - // should be in the format ##-#######, with a valid prefix - $this->assertRegExp('/^(0[1-6]||1[0-6]|2[0-7]|[35]\d|[468][0-8]|7[1-7]|9[0-58-9])-\d{7}$/', $number); - } -} diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/en_US/PaymentTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/en_US/PaymentTest.php deleted file mode 100644 index ec82691b..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/en_US/PaymentTest.php +++ /dev/null @@ -1,85 +0,0 @@ -addProvider(new Payment($faker)); - $this->faker = $faker; - } - - public function testBankAccountNumber() - { - $accNo = $this->faker->bankAccountNumber; - $this->assertTrue(ctype_digit($accNo)); - $this->assertLessThanOrEqual(17, strlen($accNo)); - } - - public function testBankRoutingNumber() - { - $routingNo = $this->faker->bankRoutingNumber; - $this->assertRegExp('/^\d{9}$/', $routingNo); - $this->assertEquals(Payment::calculateRoutingNumberChecksum($routingNo), $routingNo[8]); - } - - public function routingNumberProvider() - { - return array( - array('122105155'), - array('082000549'), - array('121122676'), - array('122235821'), - array('102101645'), - array('102000021'), - array('123103729'), - array('071904779'), - array('081202759'), - array('074900783'), - array('104000029'), - array('073000545'), - array('101000187'), - array('042100175'), - array('083900363'), - array('091215927'), - array('091300023'), - array('091000022'), - array('081000210'), - array('101200453'), - array('092900383'), - array('104000029'), - array('121201694'), - array('107002312'), - array('091300023'), - array('041202582'), - array('042000013'), - array('123000220'), - array('091408501'), - array('064000059'), - array('124302150'), - array('125000105'), - array('075000022'), - array('307070115'), - array('091000022'), - ); - } - - /** - * @dataProvider routingNumberProvider - */ - public function testCalculateRoutingNumberChecksum($routingNo) - { - $this->assertEquals($routingNo[8], Payment::calculateRoutingNumberChecksum($routingNo), $routingNo); - } -} diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/en_US/PersonTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/en_US/PersonTest.php deleted file mode 100644 index 3ddb38b2..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/en_US/PersonTest.php +++ /dev/null @@ -1,48 +0,0 @@ -addProvider(new Person($faker)); - $this->faker = $faker; - } - - public function testSsn() - { - for ($i = 0; $i < 100; $i++) { - $number = $this->faker->ssn; - - // should be in the format ###-##-#### - $this->assertRegExp('/^[0-9]{3}-[0-9]{2}-[0-9]{4}$/', $number); - - $parts = explode("-", $number); - - // first part must be between 001 and 899, excluding 666 - $this->assertNotEquals(666, $parts[0]); - $this->assertGreaterThan(0, $parts[0]); - $this->assertLessThan(900, $parts[0]); - - // second part must be between 01 and 99 - $this->assertGreaterThan(0, $parts[1]); - $this->assertLessThan(100, $parts[1]); - - // the third part must be between 0001 and 9999 - $this->assertGreaterThan(0, $parts[2]); - $this->assertLessThan(10000, $parts[2]); - } - } -} diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/en_US/PhoneNumberTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/en_US/PhoneNumberTest.php deleted file mode 100644 index a54ff882..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/en_US/PhoneNumberTest.php +++ /dev/null @@ -1,85 +0,0 @@ -addProvider(new PhoneNumber($faker)); - $this->faker = $faker; - } - - public function testPhoneNumber() - { - for ($i = 0; $i < 100; $i++) { - $number = $this->faker->phoneNumber; - $baseNumber = preg_replace('/ *x.*$/', '', $number); // Remove possible extension - $digits = array_values(array_filter(str_split($baseNumber), 'ctype_digit')); - - // Prefix '1' allowed - if (count($digits) === 11) { - $this->assertEquals('1', $digits[0]); - $digits = array_slice($digits, 1); - } - - // 10 digits - $this->assertEquals(10, count($digits)); - - // Last two digits of area code cannot be identical - $this->assertNotEquals($digits[1], $digits[2]); - - // Last two digits of exchange code cannot be 1 - if ($digits[4] === 1) { - $this->assertNotEquals($digits[4], $digits[5]); - } - - // Test format - $this->assertRegExp('/^(\+?1)?([ -.]*\d{3}[ -.]*| *\(\d{3}\) *)\d{3}[-.]?\d{4}$/', $baseNumber); - } - } - - public function testTollFreeAreaCode() - { - $this->assertContains($this->faker->tollFreeAreaCode, array(800, 822, 833, 844, 855, 866, 877, 888, 880, 887, 889)); - } - - public function testTollFreePhoneNumber() - { - for ($i = 0; $i < 100; $i++) { - $number = $this->faker->tollFreePhoneNumber; - $digits = array_values(array_filter(str_split($number), 'ctype_digit')); - - // Prefix '1' allowed - if (count($digits) === 11) { - $this->assertEquals('1', $digits[0]); - $digits = array_slice($digits, 1); - } - - // 10 digits - $this->assertEquals(10, count($digits)); - - $areaCode = $digits[0] . $digits[1] . $digits[2]; - $this->assertContains($areaCode, array('800', '822', '833', '844', '855', '866', '877', '888', '880', '887', '889')); - - // Last two digits of exchange code cannot be 1 - if ($digits[4] === 1) { - $this->assertNotEquals($digits[4], $digits[5]); - } - - // Test format - $this->assertRegExp('/^(\+?1)?([ -.]*\d{3}[ -.]*| *\(\d{3}\) *)\d{3}[-.]?\d{4}$/', $number); - } - } -} diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/en_ZA/CompanyTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/en_ZA/CompanyTest.php deleted file mode 100644 index 0e51d492..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/en_ZA/CompanyTest.php +++ /dev/null @@ -1,27 +0,0 @@ -addProvider(new Company($faker)); - $this->faker = $faker; - } - - public function testGenerateValidCompanyNumber() - { - $companyRegNo = $this->faker->companyNumber(); - - $this->assertEquals(14, strlen($companyRegNo)); - $this->assertRegExp('#^\d{4}/\d{6}/\d{2}$#', $companyRegNo); - } -} diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/en_ZA/InternetTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/en_ZA/InternetTest.php deleted file mode 100644 index 02c29404..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/en_ZA/InternetTest.php +++ /dev/null @@ -1,33 +0,0 @@ -addProvider(new Person($faker)); - $faker->addProvider(new Internet($faker)); - $faker->addProvider(new Company($faker)); - $this->faker = $faker; - } - - public function testEmailIsValid() - { - $email = $this->faker->email(); - $this->assertNotFalse(filter_var($email, FILTER_VALIDATE_EMAIL)); - } -} diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/en_ZA/PersonTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/en_ZA/PersonTest.php deleted file mode 100644 index d7973e72..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/en_ZA/PersonTest.php +++ /dev/null @@ -1,69 +0,0 @@ -addProvider(new Person($faker)); - $faker->addProvider(new DateTime($faker)); - $this->faker = $faker; - } - - public function testIdNumberWithDefaults() - { - $idNumber = $this->faker->idNumber(); - - $this->assertEquals(13, strlen($idNumber)); - $this->assertRegExp('#^\d{13}$#', $idNumber); - $this->assertInternalType('string', $idNumber); - } - - public function testIdNumberForMales() - { - $idNumber = $this->faker->idNumber(new \DateTime(), true, 'male'); - - $genderDigit = substr($idNumber, 6, 1); - - $this->assertContains($genderDigit, array('5', '6', '7', '8', '9')); - } - - public function testIdNumberForFemales() - { - $idNumber = $this->faker->idNumber(new \DateTime(), true, 'female'); - - $genderDigit = substr($idNumber, 6, 1); - - $this->assertContains($genderDigit, array('0', '1', '2', '3', '4')); - } - - public function testLicenceCode() - { - $validLicenceCodes = array('A', 'A1', 'B', 'C', 'C1', 'C2', 'EB', 'EC', 'EC1', 'I', 'L', 'L1'); - - $this->assertContains($this->faker->licenceCode, $validLicenceCodes); - } - - public function testMaleTitles() - { - $validMaleTitles = array('Mr.', 'Dr.', 'Prof.', 'Rev.', 'Hon.'); - - $this->assertContains(Person::titleMale(), $validMaleTitles); - } - - public function testFemaleTitles() - { - $validateFemaleTitles = array('Mrs.', 'Ms.', 'Miss', 'Dr.', 'Prof.', 'Rev.', 'Hon.'); - - $this->assertContains(Person::titleFemale(), $validateFemaleTitles); - } -} diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/en_ZA/PhoneNumberTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/en_ZA/PhoneNumberTest.php deleted file mode 100644 index 37b781b5..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/en_ZA/PhoneNumberTest.php +++ /dev/null @@ -1,66 +0,0 @@ -addProvider(new PhoneNumber($faker)); - $this->faker = $faker; - } - - public function testPhoneNumber() - { - for ($i = 0; $i < 10; $i++) { - $number = $this->faker->phoneNumber; - - $digits = array_values(array_filter(str_split($number), 'ctype_digit')); - - // 10 digits - if($digits[0] = 2 && $digits[1] == 7) { - $this->assertLessThanOrEqual(11, count($digits)); - } else { - $this->assertGreaterThanOrEqual(10, count($digits)); - } - } - } - - public function testTollFreePhoneNumber() - { - for ($i = 0; $i < 10; $i++) { - $number = $this->faker->tollFreeNumber; - $digits = array_values(array_filter(str_split($number), 'ctype_digit')); - - if (count($digits) === 11) { - $this->assertEquals('0', $digits[0]); - } - - $areaCode = $digits[0] . $digits[1] . $digits[2] . $digits[3]; - $this->assertContains($areaCode, array('0800', '0860', '0861', '0862')); - } - } - - public function testCellPhoneNumber() - { - for ($i = 0; $i < 10; $i++) { - $number = $this->faker->mobileNumber; - $digits = array_values(array_filter(str_split($number), 'ctype_digit')); - - if($digits[0] = 2 && $digits[1] == 7) { - $this->assertLessThanOrEqual(11, count($digits)); - } else { - $this->assertGreaterThanOrEqual(10, count($digits)); - } - - $this->assertRegExp('/^(\+27|27)?(\()?0?([6][0-4]|[7][1-9]|[8][1-9])(\))?( |-|\.|_)?(\d{3})( |-|\.|_)?(\d{4})/', $number); - } - } -} diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/es_ES/PaymentTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/es_ES/PaymentTest.php deleted file mode 100644 index e636544b..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/es_ES/PaymentTest.php +++ /dev/null @@ -1,61 +0,0 @@ -addProvider(new Payment($faker)); - $this->faker = $faker; - } - - public function testVAT() - { - $vat = $this->faker->vat(); - - $this->assertTrue($this->isValidCIF($vat)); - } - - /** - * Validation taken from https://github.com/amnesty/drupal-nif-nie-cif-validator/ - * @link https://github.com/amnesty/drupal-nif-nie-cif-validator/blob/master/includes/nif-nie-cif.php - */ - function isValidCIF($docNumber) - { - $fixedDocNumber = strtoupper($docNumber); - - return $this->isValidCIFFormat($fixedDocNumber); - } - - function isValidCIFFormat($docNumber) - { - return $this->respectsDocPattern($docNumber, '/^[PQSNWR][0-9][0-9][0-9][0-9][0-9][0-9][0-9][A-Z0-9]/') - || - $this->respectsDocPattern($docNumber, '/^[ABCDEFGHJUV][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]/'); - } - - function respectsDocPattern($givenString, $pattern) - { - $isValid = FALSE; - $fixedString = strtoupper($givenString); - if (is_int(substr($fixedString, 0, 1))) { - $fixedString = substr("000000000" . $givenString, -9); - } - if (preg_match($pattern, $fixedString)) { - $isValid = TRUE; - } - return $isValid; - } - -} diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/es_ES/PersonTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/es_ES/PersonTest.php deleted file mode 100644 index e29f3f90..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/es_ES/PersonTest.php +++ /dev/null @@ -1,46 +0,0 @@ -seed(1); - $faker->addProvider(new Person($faker)); - $this->faker = $faker; - } - - public function testDNI() - { - $dni = $this->faker->dni; - $this->assertTrue($this->isValidDNI($dni)); - } - - // validation taken from http://kiwwito.com/php-function-for-spanish-dni-nie-validation/ - public function isValidDNI($string) - { - if (strlen($string) != 9 || - preg_match('/^[XYZ]?([0-9]{7,8})([A-Z])$/i', $string, $matches) !== 1) { - return false; - } - - $map = 'TRWAGMYFPDXBNJZSQVHLCKE'; - - list(, $number, $letter) = $matches; - - return strtoupper($letter) === $map[((int) $number) % 23]; - } - - public function testLicenceCode() - { - $validLicenceCodes = array('AM', 'A1', 'A2', 'A','B', 'B+E', 'C1', 'C1+E', 'C', 'C+E', 'D1', 'D1+E', 'D', 'D+E'); - - $this->assertContains($this->faker->licenceCode, $validLicenceCodes); - } -} diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/es_ES/TextTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/es_ES/TextTest.php deleted file mode 100644 index a8ae3486..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/es_ES/TextTest.php +++ /dev/null @@ -1,27 +0,0 @@ -addProvider(new Text($faker)); - $this->faker = $faker; - } - - public function testText() - { - $this->assertNotSame('', $this->faker->realtext(200, 2)); - } -} diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/es_PE/PersonTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/es_PE/PersonTest.php deleted file mode 100644 index 60149387..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/es_PE/PersonTest.php +++ /dev/null @@ -1,29 +0,0 @@ -seed(1); - $faker->addProvider(new Person($faker)); - $this->faker = $faker; - } - - public function testDNI() - { - $dni = $this->faker->dni; - $this->assertRegExp('/\A[0-9]{8}\Z/', $dni); - } -} diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/es_VE/CompanyTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/es_VE/CompanyTest.php deleted file mode 100644 index 3c9b162a..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/es_VE/CompanyTest.php +++ /dev/null @@ -1,43 +0,0 @@ - for Faker - * Date: 01/09/2017 - * Time: 09:45 PM - */ - -namespace Faker\Test\Provider\es_VE; - -use Faker\Generator; -use Faker\Provider\es_VE\Company; -use PHPUnit\Framework\TestCase; - -class CompanyTest extends TestCase -{ - /** - * @var Generator - */ - private $faker; - - public function setUp() - { - $faker = new Generator(); - $faker->seed(1); - $faker->addProvider(new Company($faker)); - $this->faker = $faker; - } - - /** - * national Id format validator - */ - public function testNationalId() - { - $pattern = '/^[VJGECP]-?\d{8}-?\d$/'; - $rif = $this->faker->taxpayerIdentificationNumber; - $this->assertRegExp($pattern, $rif); - - $rif = $this->faker->taxpayerIdentificationNumber('-'); - $this->assertRegExp($pattern, $rif); - } - - -} diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/es_VE/PersonTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/es_VE/PersonTest.php deleted file mode 100644 index bb42cd75..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/es_VE/PersonTest.php +++ /dev/null @@ -1,43 +0,0 @@ -seed(1); - $faker->addProvider(new Person($faker)); - $this->faker = $faker; - } - - /** - * national Id format validator - */ - public function testNationalId() - { - $pattern = '/(?:^V-?\d{5,9}$)|(?:^E-?\d{8,9}$)/'; - - $cedula = $this->faker->nationalId; - $this->assertRegExp($pattern, $cedula); - - $cedula = $this->faker->nationalId('-'); - $this->assertRegExp($pattern, $cedula); - } -} diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/fi_FI/InternetTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/fi_FI/InternetTest.php deleted file mode 100644 index 6009bbd1..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/fi_FI/InternetTest.php +++ /dev/null @@ -1,33 +0,0 @@ -addProvider(new Person($faker)); - $faker->addProvider(new Internet($faker)); - $faker->addProvider(new Company($faker)); - $this->faker = $faker; - } - - public function testEmailIsValid() - { - $email = $this->faker->email(); - $this->assertNotFalse(filter_var($email, FILTER_VALIDATE_EMAIL)); - } -} diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/fi_FI/PersonTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/fi_FI/PersonTest.php deleted file mode 100644 index b979666e..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/fi_FI/PersonTest.php +++ /dev/null @@ -1,82 +0,0 @@ -addProvider(new DateTime($faker)); - $faker->addProvider(new Person($faker)); - $this->faker = $faker; - } - - public function provideSeedAndExpectedReturn() - { - return array( - array(1, '1800-01-01', '010100+5207'), - array(2, '1930-08-08', '080830-508R'), - array(3, '1999-12-31', '311299-409D'), - array(4, '2000-01-01', '010100A039P'), - array(5, '2015-06-17', '170615A690X') - ); - } - - /** - * @dataProvider provideSeedAndExpectedReturn - */ - public function testPersonalIdentityNumberUsesBirthDateIfProvided($seed, $birthdate, $expected) - { - $faker = $this->faker; - $faker->seed($seed); - $pin = $faker->personalIdentityNumber(\DateTime::createFromFormat('Y-m-d', $birthdate)); - $this->assertEquals($expected, $pin); - } - - public function testPersonalIdentityNumberGeneratesCompliantNumbers() - { - if (strtotime('1800-01-01 00:00:00')) { - $min="1900"; - $max="2099"; - for ($i = 0; $i < 10; $i++) { - $birthdate = $this->faker->dateTimeBetween('1800-01-01 00:00:00', '1899-12-31 23:59:59'); - $pin = $this->faker->personalIdentityNumber($birthdate, NULL, true); - $this->assertRegExp('/^[0-9]{6}\+[0-9]{3}[0-9ABCDEFHJKLMNPRSTUVWXY]$/', $pin); - } - } else { // timestamp limit for 32-bit computer - $min="1902"; - $max="2037"; - } - for ($i = 0; $i < 10; $i++) { - $birthdate = $this->faker->dateTimeBetween("$min-01-01 00:00:00", '1999-12-31 23:59:59'); - $pin = $this->faker->personalIdentityNumber($birthdate); - $this->assertRegExp('/^[0-9]{6}-[0-9]{3}[0-9ABCDEFHJKLMNPRSTUVWXY]$/', $pin); - } - for ($i = 0; $i < 10; $i++) { - $birthdate = $this->faker->dateTimeBetween('2000-01-01 00:00:00', "$max-12-31 23:59:59"); - $pin = $this->faker->personalIdentityNumber($birthdate); - $this->assertRegExp('/^[0-9]{6}A[0-9]{3}[0-9ABCDEFHJKLMNPRSTUVWXY]$/', $pin); - } - } - - public function testPersonalIdentityNumberGeneratesOddValuesForMales() - { - $pin = $this->faker->personalIdentityNumber(null, 'male'); - $this->assertEquals(1, $pin{9} % 2); - } - - public function testPersonalIdentityNumberGeneratesEvenValuesForFemales() - { - $pin = $this->faker->personalIdentityNumber(null, 'female'); - $this->assertEquals(0, $pin{9} % 2); - } -} diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/fr_BE/PaymentTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/fr_BE/PaymentTest.php deleted file mode 100644 index 6944c55f..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/fr_BE/PaymentTest.php +++ /dev/null @@ -1,30 +0,0 @@ -addProvider(new Payment($faker)); - $this->faker = $faker; - } - - public function testVatIsValid() - { - $vat = $this->faker->vat(); - $unspacedVat = $this->faker->vat(false); - $this->assertRegExp('/^(BE 0\d{9})$/', $vat); - $this->assertRegExp('/^(BE0\d{9})$/', $unspacedVat); - } -} diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/fr_CH/AddressTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/fr_CH/AddressTest.php deleted file mode 100644 index 217ac9f6..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/fr_CH/AddressTest.php +++ /dev/null @@ -1,70 +0,0 @@ -addProvider(new Address($faker)); - $faker->addProvider(new Person($faker)); - $this->faker = $faker; - } - - /** - * @test - */ - public function canton () - { - $canton = $this->faker->canton(); - $this->assertInternalType('array', $canton); - $this->assertCount(1, $canton); - - foreach ($canton as $cantonShort => $cantonName){ - $this->assertInternalType('string', $cantonShort); - $this->assertEquals(2, strlen($cantonShort)); - $this->assertInternalType('string', $cantonName); - $this->assertGreaterThan(2, strlen($cantonName)); - } - } - - /** - * @test - */ - public function cantonName () - { - $cantonName = $this->faker->cantonName(); - $this->assertInternalType('string', $cantonName); - $this->assertGreaterThan(2, strlen($cantonName)); - } - - /** - * @test - */ - public function cantonShort () - { - $cantonShort = $this->faker->cantonShort(); - $this->assertInternalType('string', $cantonShort); - $this->assertEquals(2, strlen($cantonShort)); - } - - /** - * @test - */ - public function address (){ - $address = $this->faker->address(); - $this->assertInternalType('string', $address); - } -} diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/fr_CH/InternetTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/fr_CH/InternetTest.php deleted file mode 100644 index f4e94848..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/fr_CH/InternetTest.php +++ /dev/null @@ -1,36 +0,0 @@ -addProvider(new Person($faker)); - $faker->addProvider(new Internet($faker)); - $faker->addProvider(new Company($faker)); - $this->faker = $faker; - } - - /** - * @test - */ - public function emailIsValid() - { - $email = $this->faker->email(); - $this->assertNotFalse(filter_var($email, FILTER_VALIDATE_EMAIL)); - } -} diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/fr_CH/PhoneNumberTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/fr_CH/PhoneNumberTest.php deleted file mode 100644 index 7bfcca76..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/fr_CH/PhoneNumberTest.php +++ /dev/null @@ -1,33 +0,0 @@ -addProvider(new PhoneNumber($faker)); - $this->faker = $faker; - } - - public function testPhoneNumber() - { - $this->assertRegExp('/^0\d{2} ?\d{3} ?\d{2} ?\d{2}|\+41 ?(\(0\))?\d{2} ?\d{3} ?\d{2} ?\d{2}$/', $this->faker->phoneNumber()); - } - - public function testMobileNumber() - { - $this->assertRegExp('/^07[56789] ?\d{3} ?\d{2} ?\d{2}$/', $this->faker->mobileNumber()); - } -} diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/fr_FR/AddressTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/fr_FR/AddressTest.php deleted file mode 100644 index 50b40f4b..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/fr_FR/AddressTest.php +++ /dev/null @@ -1,33 +0,0 @@ -addProvider(new Address($faker)); - $this->faker = $faker; - } - - /** - * @test - */ - public function testSecondaryAddress() - { - $secondaryAdress = $this->faker->secondaryAddress(); - $this->assertNotEmpty($secondaryAdress); - $this->assertInternalType('string', $secondaryAdress); - } -} diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/fr_FR/CompanyTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/fr_FR/CompanyTest.php deleted file mode 100644 index 83e54d92..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/fr_FR/CompanyTest.php +++ /dev/null @@ -1,75 +0,0 @@ -addProvider(new Company($faker)); - $this->faker = $faker; - } - - public function testSiretReturnsAValidSiret() - { - $siret = $this->faker->siret(false); - $this->assertRegExp("/^\d{14}$/", $siret); - $this->assertTrue(Luhn::isValid($siret)); - } - - public function testSiretReturnsAWellFormattedSiret() - { - $siret = $this->faker->siret(); - $this->assertRegExp("/^\d{3}\s\d{3}\s\d{3}\s\d{5}$/", $siret); - $siret = str_replace(' ', '', $siret); - $this->assertTrue(Luhn::isValid($siret)); - } - - public function testSirenReturnsAValidSiren() - { - $siren = $this->faker->siren(false); - $this->assertRegExp("/^\d{9}$/", $siren); - $this->assertTrue(Luhn::isValid($siren)); - } - - public function testSirenReturnsAWellFormattedSiren() - { - $siren = $this->faker->siren(); - $this->assertRegExp("/^\d{3}\s\d{3}\s\d{3}$/", $siren); - $siren = str_replace(' ', '', $siren); - $this->assertTrue(Luhn::isValid($siren)); - } - - public function testCatchPhraseReturnsValidCatchPhrase() - { - $this->assertTrue(TestableCompany::isCatchPhraseValid($this->faker->catchPhrase())); - } - - public function testIsCatchPhraseValidReturnsFalseWhenAWordsAppearsTwice() - { - $isCatchPhraseValid = TestableCompany::isCatchPhraseValid('La sécurité de rouler en toute sécurité'); - $this->assertFalse($isCatchPhraseValid); - } - - public function testIsCatchPhraseValidReturnsTrueWhenNoWordAppearsTwice() - { - $isCatchPhraseValid = TestableCompany::isCatchPhraseValid('La sécurité de rouler en toute simplicité'); - $this->assertTrue($isCatchPhraseValid); - } -} - -class TestableCompany extends Company -{ - public static function isCatchPhraseValid($catchPhrase) - { - return parent::isCatchPhraseValid($catchPhrase); - } -} diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/fr_FR/PaymentTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/fr_FR/PaymentTest.php deleted file mode 100644 index d00a7c83..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/fr_FR/PaymentTest.php +++ /dev/null @@ -1,49 +0,0 @@ -addProvider(new Payment($faker)); - $this->faker = $faker; - } - - public function testFormattedVat() - { - $vat = $this->faker->vat(true); - $this->assertRegExp("/^FR\s\w{2}\s\d{3}\s\d{3}\s\d{3}$/", $vat); - - $vat = str_replace(' ', '', $vat); - $siren = substr($vat, 4, 12); - $this->assertTrue(Luhn::isValid($siren)); - - $key = (int) substr($siren, 2, 2); - if ($key === 0) { - $this->assertEqual($key, (12 + 3 * ($siren % 97)) % 97); - } - } - - public function testUnformattedVat() - { - $vat = $this->faker->vat(false); - $this->assertRegExp("/^FR\w{2}\d{9}$/", $vat); - - $siren = substr($vat, 4, 12); - $this->assertTrue(Luhn::isValid($siren)); - - $key = (int) substr($siren, 2, 2); - if ($key === 0) { - $this->assertEqual($key, (12 + 3 * ($siren % 97)) % 97); - } - } -} \ No newline at end of file diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/fr_FR/PersonTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/fr_FR/PersonTest.php deleted file mode 100644 index 8c5fc654..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/fr_FR/PersonTest.php +++ /dev/null @@ -1,37 +0,0 @@ -addProvider(new Person($faker)); - $this->faker = $faker; - } - - public function testNIRReturnsTheRightGender() - { - $nir = $this->faker->nir(\Faker\Provider\Person::GENDER_MALE); - $this->assertStringStartsWith('1', $nir); - } - - public function testNIRReturnsTheRightPattern() - { - $nir = $this->faker->nir; - $this->assertRegExp("/^[12]\d{5}[0-9A-B]\d{8}$/", $nir); - } - - public function testNIRFormattedReturnsTheRightPattern() - { - $nir = $this->faker->nir(null, true); - $this->assertRegExp("/^[12]\s\d{2}\s\d{2}\s\d{1}[0-9A-B]\s\d{3}\s\d{3}\s\d{2}$/", $nir); - } -} diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/fr_FR/PhoneNumberTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/fr_FR/PhoneNumberTest.php deleted file mode 100644 index d4179709..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/fr_FR/PhoneNumberTest.php +++ /dev/null @@ -1,57 +0,0 @@ -addProvider(new PhoneNumber($faker)); - $this->faker = $faker; - } - - public function testMobileNumber() - { - $mobileNumber = $this->faker->mobileNumber(); - $this->assertRegExp('/^(\+33 |\+33 \(0\)|0)(6|7)(?:(\s{1})?\d{2}){4}$/', $mobileNumber); - } - - public function testMobileNumber07Format() - { - $mobileNumberFormat = $this->faker->phoneNumber07(); - $this->assertRegExp('/^([3-9]{1})\d(\d{2}){3}$/', $mobileNumberFormat); - } - - public function testMobileNumber07WithSeparatorFormat() - { - $mobileNumberFormat = $this->faker->phoneNumber07WithSeparator(); - $this->assertRegExp('/^([3-9]{1})\d( \d{2}){3}$/', $mobileNumberFormat); - } - - public function testServiceNumber() - { - $serviceNumber = $this->faker->serviceNumber(); - $this->assertRegExp('/^(\+33 |\+33 \(0\)|0)8(?:(\s{1})?\d{2}){4}$/', $serviceNumber); - } - - public function testServiceNumberFormat() - { - $serviceNumberFormat = $this->faker->phoneNumber08(); - $this->assertRegExp('/^((0|1|2)\d{1}|9[^46])\d{6}$/', $serviceNumberFormat); - } - - public function testServiceNumberWithSeparatorFormat() - { - $serviceNumberFormat = $this->faker->phoneNumber08WithSeparator(); - $this->assertRegExp('/^((0|1|2)\d{1}|9[^46])( \d{2}){3}$/', $serviceNumberFormat); - } -} diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/fr_FR/TextTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/fr_FR/TextTest.php deleted file mode 100644 index c9c7a4ff..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/fr_FR/TextTest.php +++ /dev/null @@ -1,57 +0,0 @@ -textClass = new \ReflectionClass('Faker\Provider\fr_FR\Text'); - } - - protected function getMethod($name) { - $method = $this->textClass->getMethod($name); - - $method->setAccessible(true); - - return $method; - } - - /** @test */ - function testItShouldAppendEndPunctToTheEndOfString() - { - $this->assertSame( - 'Que faisaient-elles maintenant? À.', - $this->getMethod('appendEnd')->invokeArgs(null, array('Que faisaient-elles maintenant? À ')) - ); - - $this->assertSame( - 'Que faisaient-elles maintenant? À.', - $this->getMethod('appendEnd')->invokeArgs(null, array('Que faisaient-elles maintenant? À— ')) - ); - - $this->assertSame( - 'Que faisaient-elles maintenant? À.', - $this->getMethod('appendEnd')->invokeArgs(null, array('Que faisaient-elles maintenant? À,')) - ); - - $this->assertSame( - 'Que faisaient-elles maintenant? À!.', - $this->getMethod('appendEnd')->invokeArgs(null, array('Que faisaient-elles maintenant? À! ')) - ); - - $this->assertSame( - 'Que faisaient-elles maintenant? À.', - $this->getMethod('appendEnd')->invokeArgs(null, array('Que faisaient-elles maintenant? À: ')) - ); - - $this->assertSame( - 'Que faisaient-elles maintenant? À.', - $this->getMethod('appendEnd')->invokeArgs(null, array('Que faisaient-elles maintenant? À; ')) - ); - } -} diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/id_ID/PersonTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/id_ID/PersonTest.php deleted file mode 100644 index 5ebfeee4..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/id_ID/PersonTest.php +++ /dev/null @@ -1,41 +0,0 @@ -addProvider(new Person($faker)); - $this->faker = $faker; - } - - public function testIfFirstNameMaleCanReturnData() - { - $firstNameMale = $this->faker->firstNameMale(); - $this->assertNotEmpty($firstNameMale); - } - - public function testIfLastNameMaleCanReturnData() - { - $lastNameMale = $this->faker->lastNameMale(); - $this->assertNotEmpty($lastNameMale); - } - - public function testIfFirstNameFemaleCanReturnData() - { - $firstNameFemale = $this->faker->firstNameFemale(); - $this->assertNotEmpty($firstNameFemale); - } - - public function testIfLastNameFemaleCanReturnData() - { - $lastNameFemale = $this->faker->lastNameFemale(); - $this->assertNotEmpty($lastNameFemale); - } -} diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/it_CH/AddressTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/it_CH/AddressTest.php deleted file mode 100644 index 0f0df5e9..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/it_CH/AddressTest.php +++ /dev/null @@ -1,70 +0,0 @@ -addProvider(new Address($faker)); - $faker->addProvider(new Person($faker)); - $this->faker = $faker; - } - - /** - * @test - */ - public function canton () - { - $canton = $this->faker->canton(); - $this->assertInternalType('array', $canton); - $this->assertCount(1, $canton); - - foreach ($canton as $cantonShort => $cantonName){ - $this->assertInternalType('string', $cantonShort); - $this->assertEquals(2, strlen($cantonShort)); - $this->assertInternalType('string', $cantonName); - $this->assertGreaterThan(2, strlen($cantonName)); - } - } - - /** - * @test - */ - public function cantonName () - { - $cantonName = $this->faker->cantonName(); - $this->assertInternalType('string', $cantonName); - $this->assertGreaterThan(2, strlen($cantonName)); - } - - /** - * @test - */ - public function cantonShort () - { - $cantonShort = $this->faker->cantonShort(); - $this->assertInternalType('string', $cantonShort); - $this->assertEquals(2, strlen($cantonShort)); - } - - /** - * @test - */ - public function address (){ - $address = $this->faker->address(); - $this->assertInternalType('string', $address); - } -} diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/it_CH/InternetTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/it_CH/InternetTest.php deleted file mode 100644 index d46f6b7d..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/it_CH/InternetTest.php +++ /dev/null @@ -1,36 +0,0 @@ -addProvider(new Person($faker)); - $faker->addProvider(new Internet($faker)); - $faker->addProvider(new Company($faker)); - $this->faker = $faker; - } - - /** - * @test - */ - public function emailIsValid() - { - $email = $this->faker->email(); - $this->assertNotFalse(filter_var($email, FILTER_VALIDATE_EMAIL)); - } -} diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/it_CH/PhoneNumberTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/it_CH/PhoneNumberTest.php deleted file mode 100644 index 5cda5345..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/it_CH/PhoneNumberTest.php +++ /dev/null @@ -1,33 +0,0 @@ -addProvider(new PhoneNumber($faker)); - $this->faker = $faker; - } - - public function testPhoneNumber() - { - $this->assertRegExp('/^0\d{2} ?\d{3} ?\d{2} ?\d{2}|\+41 ?(\(0\))?\d{2} ?\d{3} ?\d{2} ?\d{2}$/', $this->faker->phoneNumber()); - } - - public function testMobileNumber() - { - $this->assertRegExp('/^07[56789] ?\d{3} ?\d{2} ?\d{2}$/', $this->faker->mobileNumber()); - } -} diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/it_IT/CompanyTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/it_IT/CompanyTest.php deleted file mode 100644 index 33977e13..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/it_IT/CompanyTest.php +++ /dev/null @@ -1,24 +0,0 @@ -addProvider(new Company($faker)); - $this->faker = $faker; - } - - public function testIfTaxIdCanReturnData() - { - $vatId = $this->faker->vatId(); - $this->assertRegExp('/^IT[0-9]{11}$/', $vatId); - } - -} diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/it_IT/PersonTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/it_IT/PersonTest.php deleted file mode 100644 index 3e7b1a4f..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/it_IT/PersonTest.php +++ /dev/null @@ -1,24 +0,0 @@ -addProvider(new Person($faker)); - $this->faker = $faker; - } - - public function testIfTaxIdCanReturnData() - { - $taxId = $this->faker->taxId(); - $this->assertRegExp('/^[a-zA-Z]{6}[0-9]{2}[a-zA-Z][0-9]{2}[a-zA-Z][0-9]{3}[a-zA-Z]$/', $taxId); - } - -} diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/ja_JP/InternetTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/ja_JP/InternetTest.php deleted file mode 100644 index b4a19fde..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/ja_JP/InternetTest.php +++ /dev/null @@ -1,28 +0,0 @@ -addProvider(new Internet($faker)); - $faker->seed(1); - - $this->assertEquals('akira72', $faker->userName); - } - - public function testDomainName() - { - $faker = new Generator(); - $faker->addProvider(new Internet($faker)); - $faker->seed(1); - - $this->assertEquals('nakajima.com', $faker->domainName); - } -} diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/ja_JP/PersonTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/ja_JP/PersonTest.php deleted file mode 100644 index e7854826..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/ja_JP/PersonTest.php +++ /dev/null @@ -1,55 +0,0 @@ -addProvider(new Person($faker)); - $faker->seed(1); - - $this->assertEquals('アオタ ミノル', $faker->kanaName('male')); - } - - public function testKanaNameFemaleReturns() - { - $faker = new Generator(); - $faker->addProvider(new Person($faker)); - $faker->seed(1); - - $this->assertEquals('アオタ ミキ', $faker->kanaName('female')); - } - - public function testFirstKanaNameMaleReturns() - { - $faker = new Generator(); - $faker->addProvider(new Person($faker)); - $faker->seed(1); - - $this->assertEquals('ヒデキ', $faker->firstKanaName('male')); - } - - public function testFirstKanaNameFemaleReturns() - { - $faker = new Generator(); - $faker->addProvider(new Person($faker)); - $faker->seed(1); - - $this->assertEquals('マアヤ', $faker->firstKanaName('female')); - } - - public function testLastKanaNameReturnsNakajima() - { - $faker = new Generator(); - $faker->addProvider(new Person($faker)); - $faker->seed(1); - - $this->assertEquals('ナカジマ', $faker->lastKanaName); - } -} diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/ja_JP/PhoneNumberTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/ja_JP/PhoneNumberTest.php deleted file mode 100644 index 158718a7..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/ja_JP/PhoneNumberTest.php +++ /dev/null @@ -1,22 +0,0 @@ -addProvider(new PhoneNumber($faker)); - - for ($i = 0; $i < 10; $i++) { - $phoneNumber = $faker->phoneNumber; - $this->assertNotEmpty($phoneNumber); - $this->assertRegExp('/^0\d{1,4}-\d{1,4}-\d{3,4}$/', $phoneNumber); - } - } -} diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/ka_GE/TextTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/ka_GE/TextTest.php deleted file mode 100644 index 0201ceee..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/ka_GE/TextTest.php +++ /dev/null @@ -1,57 +0,0 @@ -textClass = new \ReflectionClass('Faker\Provider\el_GR\Text'); - } - - protected function getMethod($name) { - $method = $this->textClass->getMethod($name); - - $method->setAccessible(true); - - return $method; - } - - /** @test */ - function testItShouldAppendEndPunctToTheEndOfString() - { - $this->assertSame( - 'ჭეშმáƒáƒ áƒ˜áƒ¢áƒ˜áƒ. ჩვენც ისე.', - $this->getMethod('appendEnd')->invokeArgs(null, array('ჭეშმáƒáƒ áƒ˜áƒ¢áƒ˜áƒ. ჩვენც ისე ')) - ); - - $this->assertSame( - 'ჭეშმáƒáƒ áƒ˜áƒ¢áƒ˜áƒ. ჩვენც ისე.', - $this->getMethod('appendEnd')->invokeArgs(null, array('ჭეშმáƒáƒ áƒ˜áƒ¢áƒ˜áƒ. ჩვენც ისე— ')) - ); - - $this->assertSame( - 'ჭეშმáƒáƒ áƒ˜áƒ¢áƒ˜áƒ. ჩვენც ისე.', - $this->getMethod('appendEnd')->invokeArgs(null, array('ჭეშმáƒáƒ áƒ˜áƒ¢áƒ˜áƒ. ჩვენც ისე, ')) - ); - - $this->assertSame( - 'ჭეშმáƒáƒ áƒ˜áƒ¢áƒ˜áƒ. ჩვენც ისე!.', - $this->getMethod('appendEnd')->invokeArgs(null, array('ჭეშმáƒáƒ áƒ˜áƒ¢áƒ˜áƒ. ჩვენც ისე! ')) - ); - - $this->assertSame( - 'ჭეშმáƒáƒ áƒ˜áƒ¢áƒ˜áƒ. ჩვენც ისე.', - $this->getMethod('appendEnd')->invokeArgs(null, array('ჭეშმáƒáƒ áƒ˜áƒ¢áƒ˜áƒ. ჩვენც ისე; ')) - ); - - $this->assertSame( - 'ჭეშმáƒáƒ áƒ˜áƒ¢áƒ˜áƒ. ჩვენც ისე.', - $this->getMethod('appendEnd')->invokeArgs(null, array('ჭეშმáƒáƒ áƒ˜áƒ¢áƒ˜áƒ. ჩვენც ისე: ')) - ); - } -} diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/kk_KZ/CompanyTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/kk_KZ/CompanyTest.php deleted file mode 100644 index b6a3c061..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/kk_KZ/CompanyTest.php +++ /dev/null @@ -1,32 +0,0 @@ -faker = new Generator(); - - $this->faker->addProvider(new Company($this->faker)); - } - - public function testBusinessIdentificationNumberIsValid() - { - $registrationDate = new \DateTime('now'); - $businessIdentificationNumber = $this->faker->businessIdentificationNumber($registrationDate); - $registrationDateAsString = $registrationDate->format('ym'); - - $this->assertRegExp( - "/^(" . $registrationDateAsString . ")([4-6]{1})([0-3]{1})(\\d{6})$/", - $businessIdentificationNumber - ); - } -} diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/kk_KZ/PersonTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/kk_KZ/PersonTest.php deleted file mode 100644 index c5657352..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/kk_KZ/PersonTest.php +++ /dev/null @@ -1,30 +0,0 @@ -faker = new Generator(); - - $this->faker->addProvider(new Person($this->faker)); - } - - public function testIndividualIdentificationNumberIsValid() - { - $birthDate = DateTime::dateTimeBetween('-30 years', '-10 years'); - $individualIdentificationNumber = $this->faker->individualIdentificationNumber($birthDate); - $controlDigit = Person::checkSum($individualIdentificationNumber); - - $this->assertSame($controlDigit, (int)substr($individualIdentificationNumber, 11, 1)); - } -} diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/kk_KZ/TextTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/kk_KZ/TextTest.php deleted file mode 100644 index 2c780506..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/kk_KZ/TextTest.php +++ /dev/null @@ -1,57 +0,0 @@ -textClass = new \ReflectionClass('Faker\Provider\kk_KZ\Text'); - } - - protected function getMethod($name) { - $method = $this->textClass->getMethod($name); - - $method->setAccessible(true); - - return $method; - } - - /** @test */ - function testItShouldAppendEndPunctToTheEndOfString() - { - $this->assertSame( - 'ÐрыÑтан баб кеÑенеÑÑ– - көне Отырар.', - $this->getMethod('appendEnd')->invokeArgs(null, array('ÐрыÑтан баб кеÑенеÑÑ– - көне Отырар ')) - ); - - $this->assertSame( - 'ÐрыÑтан баб кеÑенеÑÑ– - көне Отырар.', - $this->getMethod('appendEnd')->invokeArgs(null, array('ÐрыÑтан баб кеÑенеÑÑ– - көне Отырар— ')) - ); - - $this->assertSame( - 'ÐрыÑтан баб кеÑенеÑÑ– - көне Отырар.', - $this->getMethod('appendEnd')->invokeArgs(null, array('ÐрыÑтан баб кеÑенеÑÑ– - көне Отырар, ')) - ); - - $this->assertSame( - 'ÐрыÑтан баб кеÑенеÑÑ– - көне Отырар!.', - $this->getMethod('appendEnd')->invokeArgs(null, array('ÐрыÑтан баб кеÑенеÑÑ– - көне Отырар! ')) - ); - - $this->assertSame( - 'ÐрыÑтан баб кеÑенеÑÑ– - көне Отырар.', - $this->getMethod('appendEnd')->invokeArgs(null, array('ÐрыÑтан баб кеÑенеÑÑ– - көне Отырар: ')) - ); - - $this->assertSame( - 'ÐрыÑтан баб кеÑенеÑÑ– - көне Отырар.', - $this->getMethod('appendEnd')->invokeArgs(null, array('ÐрыÑтан баб кеÑенеÑÑ– - көне Отырар; ')) - ); - } -} diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/ko_KR/TextTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/ko_KR/TextTest.php deleted file mode 100644 index 336acc8a..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/ko_KR/TextTest.php +++ /dev/null @@ -1,57 +0,0 @@ -textClass = new \ReflectionClass('Faker\Provider\el_GR\Text'); - } - - protected function getMethod($name) { - $method = $this->textClass->getMethod($name); - - $method->setAccessible(true); - - return $method; - } - - /** @test */ - function testItShouldAppendEndPunctToTheEndOfString() - { - $this->assertSame( - '최ì„(崔晳)으로부터 ìµœí›„ì˜ íŽ¸ì§€ê°€.', - $this->getMethod('appendEnd')->invokeArgs(null, array('최ì„(崔晳)으로부터 ìµœí›„ì˜ íŽ¸ì§€ê°€ ')) - ); - - $this->assertSame( - '최ì„(崔晳)으로부터 ìµœí›„ì˜ íŽ¸ì§€ê°€.', - $this->getMethod('appendEnd')->invokeArgs(null, array('최ì„(崔晳)으로부터 ìµœí›„ì˜ íŽ¸ì§€ê°€â€”')) - ); - - $this->assertSame( - '최ì„(崔晳)으로부터 ìµœí›„ì˜ íŽ¸ì§€ê°€.', - $this->getMethod('appendEnd')->invokeArgs(null, array('최ì„(崔晳)으로부터 ìµœí›„ì˜ íŽ¸ì§€ê°€,')) - ); - - $this->assertSame( - '최ì„(崔晳)으로부터 ìµœí›„ì˜ íŽ¸ì§€ê°€!.', - $this->getMethod('appendEnd')->invokeArgs(null, array('최ì„(崔晳)으로부터 ìµœí›„ì˜ íŽ¸ì§€ê°€! ')) - ); - - $this->assertSame( - '최ì„(崔晳)으로부터 ìµœí›„ì˜ íŽ¸ì§€ê°€.', - $this->getMethod('appendEnd')->invokeArgs(null, array('최ì„(崔晳)으로부터 ìµœí›„ì˜ íŽ¸ì§€ê°€: ')) - ); - - $this->assertSame( - '최ì„(崔晳)으로부터 ìµœí›„ì˜ íŽ¸ì§€ê°€.', - $this->getMethod('appendEnd')->invokeArgs(null, array('최ì„(崔晳)으로부터 ìµœí›„ì˜ íŽ¸ì§€ê°€; ')) - ); - } -} diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/mn_MN/PersonTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/mn_MN/PersonTest.php deleted file mode 100644 index 232f8f4b..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/mn_MN/PersonTest.php +++ /dev/null @@ -1,28 +0,0 @@ -addProvider(new Person($faker)); - $faker->seed(1); - - $this->assertRegExp('/^[Ð-Я]{1}\.[\w\W]+$/u', $faker->name); - } - - public function testIdNumber() - { - $faker = new Generator(); - $faker->addProvider(new Person($faker)); - $faker->seed(2); - - $this->assertRegExp('/^[Ð-Я]{2}\d{8}$/u', $faker->idNumber); - } -} diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/ms_MY/PersonTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/ms_MY/PersonTest.php deleted file mode 100644 index c35c698d..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/ms_MY/PersonTest.php +++ /dev/null @@ -1,50 +0,0 @@ -addProvider(new Person($faker)); - $this->faker = $faker; - } - - /** - * @link https://en.wikipedia.org/wiki/Malaysian_identity_card#Structure_of_the_National_Registration_Identity_Card_Number_(NRIC) - */ - public function testPersonalIdentityCardNumber() - { - $myKadNumber = $this->faker->myKadNumber; - - $yy = substr($myKadNumber, 0, 2); - //match any year from 00-99 - $this->assertRegExp("/^[0-9]{2}$/", $yy); - - $mm = substr($myKadNumber, 2, 2); - //match any month from 01-12 - $this->assertRegExp("/^0[1-9]|1[0-2]$/", $mm); - - $dd = substr($myKadNumber, 4, 2); - //match any date from 01-31 - $this->assertRegExp("/^0[1-9]|1[0-9]|2[0-9]|3[0-1]$/", $dd); - - $pb = substr($myKadNumber, 6, 2); - //match any valid place of birth code from 01-59 except 17-20 - $this->assertRegExp("/^(0[1-9]|1[0-6])|(2[1-9]|3[0-9]|4[0-9]|5[0-9])$/", $pb); - - $nnnn = substr($myKadNumber, 8, 4); - //match any number from 0000-9999 - $this->assertRegExp("/^[0-9]{4}$/", $nnnn); - } -} diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/nl_BE/PaymentTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/nl_BE/PaymentTest.php deleted file mode 100644 index e8441033..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/nl_BE/PaymentTest.php +++ /dev/null @@ -1,30 +0,0 @@ -addProvider(new Payment($faker)); - $this->faker = $faker; - } - - public function testVatIsValid() - { - $vat = $this->faker->vat(); - $unspacedVat = $this->faker->vat(false); - $this->assertRegExp('/^(BE 0\d{9})$/', $vat); - $this->assertRegExp('/^(BE0\d{9})$/', $unspacedVat); - } -} diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/nl_BE/PersonTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/nl_BE/PersonTest.php deleted file mode 100644 index 4885cc3d..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/nl_BE/PersonTest.php +++ /dev/null @@ -1,54 +0,0 @@ -addProvider(new Person($faker)); - $this->faker = $faker; - } - - public function testRrnIsValid() - { - $rrn = $this->faker->rrn(); - - $this->assertEquals(11, strlen($rrn)); - - $ctrlNumber = substr($rrn, 9, 2); - $calcCtrl = 97 - (substr($rrn, 0, 9) % 97); - $altcalcCtrl = 97 - ((2 . substr($rrn, 0, 9)) % 97); - $this->assertContains($ctrlNumber, array($calcCtrl, $altcalcCtrl)); - - $middle = substr($rrn, 6, 3); - $this->assertGreaterThan(1, $middle); - $this->assertLessThan(997, $middle); - } - - public function testRrnIsMale() - { - $rrn = $this->faker->rrn('male'); - $this->assertEquals(substr($rrn, 6, 3) % 2, 1); - } - - public function testRrnIsFemale() - { - $rrn = $this->faker->rrn('female'); - $this->assertEquals(substr($rrn, 6, 3) % 2, 0); - } -} diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/nl_NL/CompanyTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/nl_NL/CompanyTest.php deleted file mode 100644 index 6d5484ce..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/nl_NL/CompanyTest.php +++ /dev/null @@ -1,35 +0,0 @@ -addProvider(new Company($faker)); - $this->faker = $faker; - } - - public function testGenerateValidVatNumber() - { - $vatNo = $this->faker->vat(); - - $this->assertEquals(14, strlen($vatNo)); - $this->assertRegExp('/^NL[0-9]{9}B[0-9]{2}$/', $vatNo); - } - - public function testGenerateValidBtwNumberAlias() - { - $btwNo = $this->faker->btw(); - - $this->assertEquals(14, strlen($btwNo)); - $this->assertRegExp('/^NL[0-9]{9}B[0-9]{2}$/', $btwNo); - } -} diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/nl_NL/PersonTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/nl_NL/PersonTest.php deleted file mode 100644 index c8735f5f..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/nl_NL/PersonTest.php +++ /dev/null @@ -1,33 +0,0 @@ -addProvider(new Person($faker)); - $this->faker = $faker; - } - - public function testGenerateValidIdNumber() - { - $idNumber = $this->faker->idNumber(); - $this->assertEquals(9, strlen($idNumber)); - - - $sum = -1 * $idNumber % 10; - for ($multiplier = 2; $idNumber > 0; $multiplier++) { - $val = ($idNumber /= 10) % 10; - $sum += $multiplier * $val; - } - $this->assertTrue($sum != 0 && $sum % 11 == 0); - } -} diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/pl_PL/AddressTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/pl_PL/AddressTest.php deleted file mode 100644 index bbfdf4d3..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/pl_PL/AddressTest.php +++ /dev/null @@ -1,32 +0,0 @@ -addProvider(new Address($faker)); - $this->faker = $faker; - } - - /** - * Test the validity of state - */ - public function testState() - { - $state = $this->faker->state(); - $this->assertNotEmpty($state); - $this->assertInternalType('string', $state); - $this->assertRegExp('/[a-z]+/', $state); - } -} diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/pl_PL/PersonTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/pl_PL/PersonTest.php deleted file mode 100644 index e5e0edc1..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/pl_PL/PersonTest.php +++ /dev/null @@ -1,101 +0,0 @@ -addProvider(new Person($faker)); - $this->faker = $faker; - } - - public function testPeselLenght() - { - $pesel = $this->faker->pesel(); - - $this->assertEquals(11, strlen($pesel)); - } - - public function testPeselDate() - { - $date = new DateTime('1990-01-01'); - $pesel = $this->faker->pesel($date); - - $this->assertEquals('90', substr($pesel, 0, 2)); - $this->assertEquals('01', substr($pesel, 2, 2)); - $this->assertEquals('01', substr($pesel, 4, 2)); - } - - public function testPeselDateWithYearAfter2000() - { - $date = new DateTime('2001-01-01'); - $pesel = $this->faker->pesel($date); - - $this->assertEquals('01', substr($pesel, 0, 2)); - $this->assertEquals('21', substr($pesel, 2, 2)); - $this->assertEquals('01', substr($pesel, 4, 2)); - } - - public function testPeselDateWithYearAfter2100() - { - $date = new DateTime('2101-01-01'); - $pesel = $this->faker->pesel($date); - - $this->assertEquals('01', substr($pesel, 0, 2)); - $this->assertEquals('41', substr($pesel, 2, 2)); - $this->assertEquals('01', substr($pesel, 4, 2)); - } - - public function testPeselDateWithYearAfter2200() - { - $date = new DateTime('2201-01-01'); - $pesel = $this->faker->pesel($date); - - $this->assertEquals('01', substr($pesel, 0, 2)); - $this->assertEquals('61', substr($pesel, 2, 2)); - $this->assertEquals('01', substr($pesel, 4, 2)); - } - - public function testPeselDateWithYearBefore1900() - { - $date = new DateTime('1801-01-01'); - $pesel = $this->faker->pesel($date); - - $this->assertEquals('01', substr($pesel, 0, 2)); - $this->assertEquals('81', substr($pesel, 2, 2)); - $this->assertEquals('01', substr($pesel, 4, 2)); - } - - public function testPeselSex() - { - $male = $this->faker->pesel(null, 'M'); - $female = $this->faker->pesel(null, 'F'); - - $this->assertEquals(1, $male[9] % 2); - $this->assertEquals(0, $female[9] % 2); - } - - public function testPeselCheckSum() - { - $pesel = $this->faker->pesel(); - $weights = array(1, 3, 7, 9, 1, 3, 7, 9, 1, 3, 1); - $sum = 0; - - foreach ($weights as $key => $weight) { - $sum += $pesel[$key] * $weight; - } - - $this->assertEquals(0, $sum % 10); - } -} diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/pt_BR/CompanyTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/pt_BR/CompanyTest.php deleted file mode 100644 index b0feecac..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/pt_BR/CompanyTest.php +++ /dev/null @@ -1,26 +0,0 @@ -addProvider(new Company($faker)); - $this->faker = $faker; - } - - public function testCnpjFormatIsValid() - { - $cnpj = $this->faker->cnpj(false); - $this->assertRegExp('/\d{8}\d{4}\d{2}/', $cnpj); - $cnpj = $this->faker->cnpj(true); - $this->assertRegExp('/\d{2}\.\d{3}\.\d{3}\/\d{4}-\d{2}/', $cnpj); - } -} diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/pt_BR/PersonTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/pt_BR/PersonTest.php deleted file mode 100644 index 0b8318dd..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/pt_BR/PersonTest.php +++ /dev/null @@ -1,34 +0,0 @@ -addProvider(new Person($faker)); - $this->faker = $faker; - } - - public function testCpfFormatIsValid() - { - $cpf = $this->faker->cpf(false); - $this->assertRegExp('/\d{9}\d{2}/', $cpf); - $cpf = $this->faker->cpf(true); - $this->assertRegExp('/\d{3}\.\d{3}\.\d{3}-\d{2}/', $cpf); - } - - public function testRgFormatIsValid() - { - $rg = $this->faker->rg(false); - $this->assertRegExp('/\d{8}\d/', $rg); - $rg = $this->faker->rg(true); - $this->assertRegExp('/\d{2}\.\d{3}\.\d{3}-[0-9X]/', $rg); - } -} diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/pt_PT/AddressTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/pt_PT/AddressTest.php deleted file mode 100644 index 3783fd52..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/pt_PT/AddressTest.php +++ /dev/null @@ -1,40 +0,0 @@ -addProvider(new Address($faker)); - $this->faker = $faker; - } - - public function testPostCodeIsValid() - { - $main = '[1-9]{1}[0-9]{2}[0,1,4,5,9]{1}'; - $pattern = "/^($main)|($main-[0-9]{3})+$/"; - $postcode = $this->faker->postcode(); - $this->assertSame(preg_match($pattern, $postcode), 1, $postcode); - } - - public function testAddressIsSingleLine() - { - $this->faker->addProvider(new Person($this->faker)); - - $address = $this->faker->address(); - $this->assertFalse(strstr($address, "\n")); - } -} diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/pt_PT/PersonTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/pt_PT/PersonTest.php deleted file mode 100644 index 662f12a7..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/pt_PT/PersonTest.php +++ /dev/null @@ -1,53 +0,0 @@ -addProvider(new Person($faker)); - $this->faker = $faker; - } - - public function testTaxpayerIdentificationNumberIsValid() - { - $tin = $this->faker->taxpayerIdentificationNumber(); - $this->assertTrue($this->isValidTin($tin), $tin); - } - - /** - * - * @link http://pt.wikipedia.org/wiki/N%C3%BAmero_de_identifica%C3%A7%C3%A3o_fiscal - * - * @param type $tin - * - * @return boolean - */ - public static function isValidTin($tin) - { - $regex = '(([1,2,3,5,6,8]{1}[0-9]{8})|((45)|(70)|(71)|(72)|(77)|(79)|(90|(98|(99))))[0-9]{7})'; - if (is_null($tin) || !is_numeric($tin) || !strlen($tin) == 9 || preg_match("/$regex/", $tin) !== 1) { - return false; - } - $n = str_split($tin); - // cd - Control Digit - $cd = ($n[0] * 9 + $n[1] * 8 + $n[2] * 7 + $n[3] * 6 + $n[4] * 5 + $n[5] * 4 + $n[6] * 3 + $n[7] * 2) % 11; - if ($cd === 0 || $cd === 1) { - $cd = 0; - } else { - $cd = 11 - $cd; - } - if ($cd === intval($n[8])) { - return true; - } - - return false; - } -} diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/pt_PT/PhoneNumberTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/pt_PT/PhoneNumberTest.php deleted file mode 100644 index fd5d3194..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/pt_PT/PhoneNumberTest.php +++ /dev/null @@ -1,26 +0,0 @@ -addProvider(new PhoneNumber($faker)); - $this->faker = $faker; - } - - public function testPhoneNumberReturnsPhoneNumberWithOrWithoutPrefix() - { - $this->assertRegExp('/^(9[1,2,3,6][0-9]{7})|(2[0-9]{8})|(\+351 [2][0-9]{8})|(\+351 9[1,2,3,6][0-9]{7})/', $this->faker->phoneNumber()); - } - public function testMobileNumberReturnsMobileNumberWithOrWithoutPrefix() - { - $this->assertRegExp('/^(9[1,2,3,6][0-9]{7})/', $this->faker->mobileNumber()); - } -} diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/ro_RO/PersonTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/ro_RO/PersonTest.php deleted file mode 100644 index 2c7fadce..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/ro_RO/PersonTest.php +++ /dev/null @@ -1,252 +0,0 @@ -addProvider(new DateTime($faker)); - $faker->addProvider(new Person($faker)); - $faker->setDefaultTimezone('Europe/Bucharest'); - $this->faker = $faker; - } - - public function tearDown() - { - $this->faker->setDefaultTimezone(); - } - - public function invalidGenderProvider() - { - return array( - array('elf'), - array('ent'), - array('fmle'), - array('mal'), - ); - } - - public function invalidYearProvider() - { - return array( - array(1652), - array(1799), - array(2100), - array(2252), - ); - } - - public function validYearProvider() - { - return array( - array(null), - array(''), - array(1800), - array(1850), - array(1900), - array(1990), - array(2000), - array(2099), - ); - } - - public function validCountyCodeProvider() - { - return array( - array('AB'), array('AR'), array('AG'), array('B'), array('BC'), array('BH'), array('BN'), array('BT'), - array('BV'), array('BR'), array('BZ'), array('CS'), array('CL'), array('CJ'), array('CT'), array('CV'), - array('DB'), array('DJ'), array('GL'), array('GR'), array('GJ'), array('HR'), array('HD'), array('IL'), - array('IS'), array('IF'), array('MM'), array('MH'), array('MS'), array('NT'), array('OT'), array('PH'), - array('SM'), array('SJ'), array('SB'), array('SV'), array('TR'), array('TM'), array('TL'), array('VS'), - array('VL'), array('VN'), array('B1'), array('B2'), array('B3'), array('B4'), array('B5'), array('B6') - ); - } - - public function invalidCountyCodeProvider() - { - return array( - array('JK'), array('REW'), array('x'), array('FF'), array('aaaddadaada') - ); - } - - public function validInputDataProvider() - { - return array( - array(Person::GENDER_MALE, '1981-06-16','B2', true, '181061642'), - array(Person::GENDER_FEMALE, '1981-06-16','B2', true, '281061642'), - array(Person::GENDER_MALE, '1981-06-16','B2', false, '981061642'), - array(Person::GENDER_FEMALE, '1981-06-16','B2', false, '981061642'), - ); - } - /** - * - */ - public function test_allRandom_returnsValidCnp() - { - $cnp = $this->faker->cnp; - $this->assertTrue( - $this->isValidCnp($cnp), - sprintf("Invalid CNP '%' generated", $cnp) - ); - } - - /** - * - */ - public function test_validGender_returnsValidCnp() - { - $cnp = $this->faker->cnp(Person::GENDER_MALE); - $this->assertTrue( - $this->isValidMaleCnp($cnp), - sprintf("Invalid CNP '%' generated for '%s' gender", $cnp, Person::GENDER_MALE) - ); - - $cnp = $this->faker->cnp(Person::GENDER_FEMALE); - $this->assertTrue( - $this->isValidFemaleCnp($cnp), - sprintf("Invalid CNP '%' generated for '%s' gender", $cnp, Person::GENDER_FEMALE) - ); - } - - /** - * @param string $value - * - * @dataProvider invalidGenderProvider - */ - public function test_invalidGender_throwsException($value) - { - $this->setExpectedException('InvalidArgumentException'); - $this->faker->cnp($value); - } - - /** - * @param string $value year of birth - * - * @dataProvider validYearProvider - */ - public function test_validYear_returnsValidCnp($value) - { - $cnp = $this->faker->cnp(null, $value); - $this->assertTrue( - $this->isValidCnp($cnp), - sprintf("Invalid CNP '%' generated for valid year '%s'", $cnp, $value) - ); - } - - /** - * @param string $value year of birth - * - * @dataProvider invalidYearProvider - */ - public function test_invalidYear_throwsException($value) - { - $this->setExpectedException('InvalidArgumentException'); - $this->faker->cnp(null, $value); - } - - /** - * @param $value - * @dataProvider validCountyCodeProvider - */ - public function test_validCountyCode_returnsValidCnp($value) - { - $cnp = $this->faker->cnp(null, null, $value); - $this->assertTrue( - $this->isValidCnp($cnp), - sprintf("Invalid CNP '%' generated for valid year '%s'", $cnp, $value) - ); - } - - /** - * @param $value - * @dataProvider invalidCountyCodeProvider - */ - public function test_invalidCountyCode_throwsException($value) - { - $this->setExpectedException('InvalidArgumentException'); - $this->faker->cnp(null, null, $value); - } - - /** - * - */ - public function test_nonResident_returnsValidCnp() - { - $cnp = $this->faker->cnp(null, null, null, false); - $this->assertTrue( - $this->isValidCnp($cnp), - sprintf("Invalid CNP '%' generated for non resident", $cnp) - ); - $this->assertStringStartsWith( - '9', - $cnp, - sprintf("Invalid CNP '%' generated for non resident (should start with 9)", $cnp) - ); - } - - /** - * - * @param $gender - * @param $dateOfBirth - * @param $county - * @param $isResident - * @param $expectedCnpStart - * - * @dataProvider validInputDataProvider - */ - public function test_validInputData_returnsValidCnp($gender, $dateOfBirth, $county, $isResident, $expectedCnpStart) - { - $cnp = $this->faker->cnp($gender, $dateOfBirth, $county, $isResident); - $this->assertStringStartsWith( - $expectedCnpStart, - $cnp, - sprintf("Invalid CNP '%' generated for non valid data", $cnp) - ); - } - - - protected function isValidFemaleCnp($value) - { - return $this->isValidCnp($value) && in_array($value[0], array(2, 4, 6, 8, 9)); - } - - protected function isValidMaleCnp($value) - { - return $this->isValidCnp($value) && in_array($value[0], array(1, 3, 5, 7, 9)); - } - - protected function isValidCnp($cnp) - { - if (preg_match(static::TEST_CNP_REGEX, $cnp) !== false) { - $checkNumber = 279146358279; - - $checksum = 0; - foreach (range(0, 11) as $digit) { - $checksum += (int)substr($cnp, $digit, 1) * (int)substr($checkNumber, $digit, 1); - } - $checksum = $checksum % 11; - $checksum = $checksum == 10 ? 1 : $checksum; - - if ($checksum == substr($cnp, -1)) { - return true; - } - } - - return false; - } -} diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/ro_RO/PhoneNumberTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/ro_RO/PhoneNumberTest.php deleted file mode 100644 index b7965cd8..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/ro_RO/PhoneNumberTest.php +++ /dev/null @@ -1,32 +0,0 @@ -addProvider(new PhoneNumber($faker)); - $this->faker = $faker; - } - - public function testPhoneNumberReturnsNormalPhoneNumber() - { - $this->assertRegExp('/^0(?:[23][13-7]|7\d)\d{7}$/', $this->faker->phoneNumber()); - } - - public function testTollFreePhoneNumberReturnsTollFreePhoneNumber() - { - $this->assertRegExp('/^08(?:0[01267]|70)\d{6}$/', $this->faker->tollFreePhoneNumber()); - } - - public function testPremiumRatePhoneNumberReturnsPremiumRatePhoneNumber() - { - $this->assertRegExp('/^090[036]\d{6}$/', $this->faker->premiumRatePhoneNumber()); - } -} diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/ru_RU/CompanyTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/ru_RU/CompanyTest.php deleted file mode 100644 index 8fbcf265..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/ru_RU/CompanyTest.php +++ /dev/null @@ -1,37 +0,0 @@ -addProvider(new Company($faker)); - $this->faker = $faker; - } - - public function testINN() - { - $this->assertRegExp('/^[0-9]{10}$/', $this->faker->inn); - $this->assertEquals("77", substr($this->faker->inn("77"), 0, 2)); - $this->assertEquals("02", substr($this->faker->inn(2), 0, 2)); - } - - public function testKPP() - { - $this->assertRegExp('/^[0-9]{9}$/', $this->faker->kpp); - $this->assertEquals("01001", substr($this->faker->kpp, -5, 5)); - $inn = $this->faker->inn; - $this->assertEquals(substr($inn, 0, 4), substr($this->faker->kpp($inn), 0, 4)); - } -} diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/ru_RU/TextTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/ru_RU/TextTest.php deleted file mode 100644 index bbb0eae6..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/ru_RU/TextTest.php +++ /dev/null @@ -1,57 +0,0 @@ -textClass = new \ReflectionClass('Faker\Provider\ru_RU\Text'); - } - - protected function getMethod($name) { - $method = $this->textClass->getMethod($name); - - $method->setAccessible(true); - - return $method; - } - - /** @test */ - function testItShouldAppendEndPunctToTheEndOfString() - { - $this->assertSame( - 'Ðа другой день Чичиков отправилÑÑ Ð½Ð° обед и вечер.', - $this->getMethod('appendEnd')->invokeArgs(null, array('Ðа другой день Чичиков отправилÑÑ Ð½Ð° обед и вечер ')) - ); - - $this->assertSame( - 'Ðа другой день Чичиков отправилÑÑ Ð½Ð° обед и вечер.', - $this->getMethod('appendEnd')->invokeArgs(null, array('Ðа другой день Чичиков отправилÑÑ Ð½Ð° обед и вечер—')) - ); - - $this->assertSame( - 'Ðа другой день Чичиков отправилÑÑ Ð½Ð° обед и вечер.', - $this->getMethod('appendEnd')->invokeArgs(null, array('Ðа другой день Чичиков отправилÑÑ Ð½Ð° обед и вечер,')) - ); - - $this->assertSame( - 'Ðа другой день Чичиков отправилÑÑ Ð½Ð° обед и вечер!.', - $this->getMethod('appendEnd')->invokeArgs(null, array('Ðа другой день Чичиков отправилÑÑ Ð½Ð° обед и вечер! ')) - ); - - $this->assertSame( - 'Ðа другой день Чичиков отправилÑÑ Ð½Ð° обед и вечер.', - $this->getMethod('appendEnd')->invokeArgs(null, array('Ðа другой день Чичиков отправилÑÑ Ð½Ð° обед и вечер; ')) - ); - - $this->assertSame( - 'Ðа другой день Чичиков отправилÑÑ Ð½Ð° обед и вечер.', - $this->getMethod('appendEnd')->invokeArgs(null, array('Ðа другой день Чичиков отправилÑÑ Ð½Ð° обед и вечер: ')) - ); - } -} diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/sv_SE/PersonTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/sv_SE/PersonTest.php deleted file mode 100644 index 584998da..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/sv_SE/PersonTest.php +++ /dev/null @@ -1,61 +0,0 @@ -addProvider(new Person($faker)); - $this->faker = $faker; - } - - public function provideSeedAndExpectedReturn() - { - return array( - array(1, '720727', '720727-5798'), - array(2, '710414', '710414-5664'), - array(3, '591012', '591012-4519'), - array(4, '180307', '180307-0356'), - array(5, '820904', '820904-7748') - ); - } - - /** - * @dataProvider provideSeedAndExpectedReturn - */ - public function testPersonalIdentityNumberUsesBirthDateIfProvided($seed, $birthdate, $expected) - { - $faker = $this->faker; - $faker->seed($seed); - $pin = $faker->personalIdentityNumber(\DateTime::createFromFormat('ymd', $birthdate)); - $this->assertEquals($expected, $pin); - } - - public function testPersonalIdentityNumberGeneratesLuhnCompliantNumbers() - { - $pin = str_replace('-', '', $this->faker->personalIdentityNumber()); - $this->assertTrue(Luhn::isValid($pin)); - } - - public function testPersonalIdentityNumberGeneratesOddValuesForMales() - { - $pin = $this->faker->personalIdentityNumber(null, 'male'); - $this->assertEquals(1, $pin{9} % 2); - } - - public function testPersonalIdentityNumberGeneratesEvenValuesForFemales() - { - $pin = $this->faker->personalIdentityNumber(null, 'female'); - $this->assertEquals(0, $pin{9} % 2); - } -} diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/tr_TR/CompanyTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/tr_TR/CompanyTest.php deleted file mode 100644 index badf905f..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/tr_TR/CompanyTest.php +++ /dev/null @@ -1,28 +0,0 @@ -addProvider(new Company($faker)); - $this->faker = $faker; - } - - public function testCompany() - { - $company = $this->faker->companyField; - $this->assertNotNull($company); - } -} diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/tr_TR/PaymentTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/tr_TR/PaymentTest.php deleted file mode 100644 index 7c8ffdb2..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/tr_TR/PaymentTest.php +++ /dev/null @@ -1,29 +0,0 @@ -addProvider(new Payment($faker)); - $this->faker = $faker; - } - - public function testBankAccountNumber() - { - $accNo = $this->faker->bankAccountNumber; - $this->assertEquals(substr($accNo, 0, 2), 'TR'); - $this->assertEquals(26, strlen($accNo)); - } -} diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/tr_TR/PersonTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/tr_TR/PersonTest.php deleted file mode 100644 index ad9db9c7..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/tr_TR/PersonTest.php +++ /dev/null @@ -1,34 +0,0 @@ -addProvider(new Person($faker)); - $this->faker = $faker; - } - - public function testTCNo() - { - for ($i = 0; $i < 100; $i++) { - $number = $this->faker->tcNo; - - $this->assertEquals(11, strlen($number)); - $this->assertTrue(TCNo::isValid($number)); - } - } -} diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/tr_TR/PhoneNumberTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/tr_TR/PhoneNumberTest.php deleted file mode 100644 index 0971d04b..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/tr_TR/PhoneNumberTest.php +++ /dev/null @@ -1,34 +0,0 @@ -addProvider(new PhoneNumber($faker)); - $this->faker = $faker; - } - - public function testPhoneNumber() - { - for ($i = 0; $i < 100; $i++) { - $number = $this->faker->phoneNumber; - $baseNumber = preg_replace('/ *x.*$/', '', $number); // Remove possible extension - $digits = array_values(array_filter(str_split($baseNumber), 'ctype_digit')); - - $this->assertGreaterThan(10, count($digits)); - } - } -} diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/uk_UA/AddressTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/uk_UA/AddressTest.php deleted file mode 100644 index 4c4a0612..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/uk_UA/AddressTest.php +++ /dev/null @@ -1,81 +0,0 @@ -addProvider(new Address($faker)); - $this->faker = $faker; - } - - public function testPostCodeIsValid() - { - $main = '[0-9]{5}'; - $pattern = "/^($main)|($main-[0-9]{3})+$/"; - $postcode = $this->faker->postcode; - $this->assertRegExp($pattern, $postcode, 'Post code ' . $postcode . ' is wrong!'); - } - - public function testEmptySuffixes() - { - $this->assertEmpty($this->faker->citySuffix, 'City suffix should be empty!'); - $this->assertEmpty($this->faker->streetSuffix, 'Street suffix should be empty!'); - } - - public function testStreetCyrOnly() - { - $pattern = "/[0-9Ð-ЩЯІЇЄЮа-щÑіїєюьIVXCM][0-9Ð-ЩЯІЇЄЮа-щÑіїєюь \'-.]*[Ð-Яа-Ñ.]/u"; - $streetName = $this->faker->streetName; - $this->assertSame( - preg_match($pattern, $streetName), - 1, - 'Street name ' . $streetName . ' is wrong!' - ); - } - - public function testCityNameCyrOnly() - { - $pattern = "/[Ð-ЩЯІЇЄЮа-щÑіїєюь][0-9Ð-ЩЯІЇЄЮа-щÑіїєюь \'-]*[Ð-Яа-Ñ]/u"; - $city = $this->faker->city; - $this->assertSame( - preg_match($pattern, $city), - 1, - 'City name ' . $city . ' is wrong!' - ); - } - - public function testRegionNameCyrOnly() - { - $pattern = "/[Ð-ЩЯІЇЄЮ][Ð-ЩЯІЇЄЮа-щÑіїєюь]*а$/u"; - $regionName = $this->faker->region; - $this->assertSame( - preg_match($pattern, $regionName), - 1, - 'Region name ' . $regionName . ' is wrong!' - ); - } - - public function testCountryCyrOnly() - { - $pattern = "/[Ð-ЩЯІЇЄЮа-щÑіїєюьIVXCM][Ð-ЩЯІЇЄЮа-щÑіїєюь \'-]*[Ð-Яа-Ñ.]/u"; - $country = $this->faker->country; - $this->assertSame( - preg_match($pattern, $country), - 1, - 'Country name ' . $country . ' is wrong!' - ); - } -} diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/uk_UA/PersonTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/uk_UA/PersonTest.php deleted file mode 100644 index a8d70f69..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/uk_UA/PersonTest.php +++ /dev/null @@ -1,57 +0,0 @@ -addProvider(new Person($faker)); - $faker->seed(1); - - $this->assertEquals('МакÑим', $faker->firstNameMale()); - } - - public function testFirstNameFemaleReturns() - { - $faker = new Generator(); - $faker->addProvider(new Person($faker)); - $faker->seed(1); - - $this->assertEquals('Людмила', $faker->firstNameFemale()); - } - - public function testMiddleNameMaleReturns() - { - $faker = new Generator(); - $faker->addProvider(new Person($faker)); - $faker->seed(1); - - $this->assertEquals('Миколайович', $faker->middleNameMale()); - } - - public function testMiddleNameFemaleReturns() - { - $faker = new Generator(); - $faker->addProvider(new Person($faker)); - $faker->seed(1); - - $this->assertEquals('Миколаївна', $faker->middleNameFemale()); - } - - public function testLastNameReturns() - { - $faker = new Generator(); - $faker->addProvider(new Person($faker)); - $faker->seed(1); - - $this->assertEquals('Броваренко', $faker->lastName()); - } - - -} diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/uk_UA/PhoneNumberTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/uk_UA/PhoneNumberTest.php deleted file mode 100644 index f7f9f14b..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/uk_UA/PhoneNumberTest.php +++ /dev/null @@ -1,36 +0,0 @@ -addProvider(new PhoneNumber($faker)); - $this->faker = $faker; - } - - public function testPhoneNumberFormat() - { - $pattern = "/((\+38)(((\(\d{3}\))\d{7}|(\(\d{4}\))\d{6})|(\d{8})))|0\d{9}/"; - $phoneNumber = $this->faker->phoneNumber; - $this->assertSame( - preg_match($pattern, $phoneNumber), - 1, - 'Phone number format ' . $phoneNumber . ' is wrong!' - ); - - } - -} diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/zh_TW/CompanyTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/zh_TW/CompanyTest.php deleted file mode 100644 index f2134b9b..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/zh_TW/CompanyTest.php +++ /dev/null @@ -1,27 +0,0 @@ -addProvider(new Company($faker)); - $this->faker = $faker; - } - - public function testVAT() - { - $this->assertEquals(8, floor(log10($this->faker->VAT) + 1)); - } -} diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/zh_TW/PersonTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/zh_TW/PersonTest.php deleted file mode 100644 index 167d0fa0..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/zh_TW/PersonTest.php +++ /dev/null @@ -1,45 +0,0 @@ -addProvider(new Person($faker)); - $this->faker = $faker; - } - - /** - * @see https://zh.wikipedia.org/wiki/%E4%B8%AD%E8%8F%AF%E6%B0%91%E5%9C%8B%E5%9C%8B%E6%B0%91%E8%BA%AB%E5%88%86%E8%AD%89 - */ - public function testPersonalIdentityNumber() - { - $id = $this->faker->personalIdentityNumber; - - $firstChar = substr($id, 0, 1); - $codesString = Person::$idBirthplaceCode[$firstChar] . substr($id, 1); - - // After transfer the first alphabet word into 2 digit number, there should be totally 11 numbers - $this->assertRegExp("/^[0-9]{11}$/", $codesString); - - $total = 0; - $codesArray = str_split($codesString); - foreach ($codesArray as $key => $code) { - $total += $code * Person::$idDigitValidator[$key]; - } - - // Validate - $this->assertEquals(0, ($total % 10)); - } -} diff --git a/vendor/fzaninotto/faker/test/Faker/Provider/zh_TW/TextTest.php b/vendor/fzaninotto/faker/test/Faker/Provider/zh_TW/TextTest.php deleted file mode 100644 index ab56f83c..00000000 --- a/vendor/fzaninotto/faker/test/Faker/Provider/zh_TW/TextTest.php +++ /dev/null @@ -1,79 +0,0 @@ -textClass = new \ReflectionClass('Faker\Provider\zh_TW\Text'); - } - - protected function getMethod($name) { - $method = $this->textClass->getMethod($name); - - $method->setAccessible(true); - - return $method; - } - - /** @test */ - function testItShouldExplodeTheStringToArray() - { - $this->assertSame( - array('中', 'æ–‡', '測', '試', '真', '有', 'è¶£'), - $this->getMethod('explode')->invokeArgs(null, array('中文測試真有趣')) - ); - - $this->assertSame( - array('標', '點', ',', '符', '號', 'ï¼'), - $this->getMethod('explode')->invokeArgs(null, array('標點,符號ï¼')) - ); - } - - /** @test */ - function testItShouldReturnTheStringLength() - { - $this->assertContains( - $this->getMethod('strlen')->invokeArgs(null, array('中文測試真有趣')), - array(7, 21) - ); - } - - /** @test */ - function testItShouldReturnTheCharacterIsValidStartOrNot() - { - $this->assertTrue($this->getMethod('validStart')->invokeArgs(null, array('中'))); - - $this->assertTrue($this->getMethod('validStart')->invokeArgs(null, array('2'))); - - $this->assertTrue($this->getMethod('validStart')->invokeArgs(null, array('Hello'))); - - $this->assertFalse($this->getMethod('validStart')->invokeArgs(null, array('。'))); - - $this->assertFalse($this->getMethod('validStart')->invokeArgs(null, array('ï¼'))); - } - - /** @test */ - function testItShouldAppendEndPunctToTheEndOfString() - { - $this->assertSame( - '中文測試真有趣。', - $this->getMethod('appendEnd')->invokeArgs(null, array('中文測試真有趣')) - ); - - $this->assertSame( - '中文測試真有趣。', - $this->getMethod('appendEnd')->invokeArgs(null, array('中文測試真有趣,')) - ); - - $this->assertSame( - '中文測試真有趣ï¼', - $this->getMethod('appendEnd')->invokeArgs(null, array('中文測試真有趣ï¼')) - ); - } -} diff --git a/vendor/fzaninotto/faker/test/documentor.php b/vendor/fzaninotto/faker/test/documentor.php deleted file mode 100644 index 1051ea28..00000000 --- a/vendor/fzaninotto/faker/test/documentor.php +++ /dev/null @@ -1,16 +0,0 @@ -seed(1); -$documentor = new Faker\Documentor($generator); -?> -getFormatters() as $provider => $formatters): ?> - -### `` - - $example): ?> - // - - -seed(5); - -echo ''; -?> - - - - -boolean(25)): ?> - - -
- streetAddress ?> - city ?> - postcode ?> - state ?> -
- -boolean(33)): ?> - bs ?> - -boolean(33)): ?> - - - -boolean(15)): ?> -
-text(400) ?> -]]> -
- -
- -
diff --git a/vendor/guzzlehttp/psr7/CHANGELOG.md b/vendor/guzzlehttp/psr7/CHANGELOG.md deleted file mode 100644 index 5c252b3a..00000000 --- a/vendor/guzzlehttp/psr7/CHANGELOG.md +++ /dev/null @@ -1,110 +0,0 @@ -# CHANGELOG - -## 1.4.2 - 2017-03-20 - -* Reverted BC break to `Uri::resolve` and `Uri::removeDotSegments` by removing - calls to `trigger_error` when deprecated methods are invoked. - -## 1.4.1 - 2017-02-27 - -* Reverted BC break by reintroducing behavior to automagically fix a URI with a - relative path and an authority by adding a leading slash to the path. It's only - deprecated now. -* Added triggering of silenced deprecation warnings. - -## 1.4.0 - 2017-02-21 - -* Fix `Stream::read` when length parameter <= 0. -* `copy_to_stream` reads bytes in chunks instead of `maxLen` into memory. -* Fix `ServerRequest::getUriFromGlobals` when `Host` header contains port. -* Ensure `ServerRequest::getUriFromGlobals` returns a URI in absolute form. -* Allow `parse_response` to parse a response without delimiting space and reason. -* Ensure each URI modification results in a valid URI according to PSR-7 discussions. - Invalid modifications will throw an exception instead of returning a wrong URI or - doing some magic. - - `(new Uri)->withPath('foo')->withHost('example.com')` will throw an exception - because the path of a URI with an authority must start with a slash "/" or be empty - - `(new Uri())->withScheme('http')` will return `'http://localhost'` -* Fix compatibility of URIs with `file` scheme and empty host. -* Added common URI utility methods based on RFC 3986 (see documentation in the readme): - - `Uri::isDefaultPort` - - `Uri::isAbsolute` - - `Uri::isNetworkPathReference` - - `Uri::isAbsolutePathReference` - - `Uri::isRelativePathReference` - - `Uri::isSameDocumentReference` - - `Uri::composeComponents` - - `UriNormalizer::normalize` - - `UriNormalizer::isEquivalent` - - `UriResolver::relativize` -* Deprecated `Uri::resolve` in favor of `UriResolver::resolve` -* Deprecated `Uri::removeDotSegments` in favor of `UriResolver::removeDotSegments` - -## 1.3.1 - 2016-06-25 - -* Fix `Uri::__toString` for network path references, e.g. `//example.org`. -* Fix missing lowercase normalization for host. -* Fix handling of URI components in case they are `'0'` in a lot of places, - e.g. as a user info password. -* Fix `Uri::withAddedHeader` to correctly merge headers with different case. -* Fix trimming of header values in `Uri::withAddedHeader`. Header values may - be surrounded by whitespace which should be ignored according to RFC 7230 - Section 3.2.4. This does not apply to header names. -* Fix `Uri::withAddedHeader` with an array of header values. -* Fix `Uri::resolve` when base path has no slash and handling of fragment. -* Fix handling of encoding in `Uri::with(out)QueryValue` so one can pass the - key/value both in encoded as well as decoded form to those methods. This is - consistent with withPath, withQuery etc. -* Fix `ServerRequest::withoutAttribute` when attribute value is null. - -## 1.3.0 - 2016-04-13 - -* Added remaining interfaces needed for full PSR7 compatibility - (ServerRequestInterface, UploadedFileInterface, etc.). -* Added support for stream_for from scalars. -* Can now extend Uri. -* Fixed a bug in validating request methods by making it more permissive. - -## 1.2.3 - 2016-02-18 - -* Fixed support in `GuzzleHttp\Psr7\CachingStream` for seeking forward on remote - streams, which can sometimes return fewer bytes than requested with `fread`. -* Fixed handling of gzipped responses with FNAME headers. - -## 1.2.2 - 2016-01-22 - -* Added support for URIs without any authority. -* Added support for HTTP 451 'Unavailable For Legal Reasons.' -* Added support for using '0' as a filename. -* Added support for including non-standard ports in Host headers. - -## 1.2.1 - 2015-11-02 - -* Now supporting negative offsets when seeking to SEEK_END. - -## 1.2.0 - 2015-08-15 - -* Body as `"0"` is now properly added to a response. -* Now allowing forward seeking in CachingStream. -* Now properly parsing HTTP requests that contain proxy targets in - `parse_request`. -* functions.php is now conditionally required. -* user-info is no longer dropped when resolving URIs. - -## 1.1.0 - 2015-06-24 - -* URIs can now be relative. -* `multipart/form-data` headers are now overridden case-insensitively. -* URI paths no longer encode the following characters because they are allowed - in URIs: "(", ")", "*", "!", "'" -* A port is no longer added to a URI when the scheme is missing and no port is - present. - -## 1.0.0 - 2015-05-19 - -Initial release. - -Currently unsupported: - -- `Psr\Http\Message\ServerRequestInterface` -- `Psr\Http\Message\UploadedFileInterface` diff --git a/vendor/guzzlehttp/psr7/LICENSE b/vendor/guzzlehttp/psr7/LICENSE deleted file mode 100644 index 581d95f9..00000000 --- a/vendor/guzzlehttp/psr7/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2015 Michael Dowling, https://github.com/mtdowling - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/vendor/guzzlehttp/psr7/README.md b/vendor/guzzlehttp/psr7/README.md deleted file mode 100644 index 16499358..00000000 --- a/vendor/guzzlehttp/psr7/README.md +++ /dev/null @@ -1,739 +0,0 @@ -# PSR-7 Message Implementation - -This repository contains a full [PSR-7](http://www.php-fig.org/psr/psr-7/) -message implementation, several stream decorators, and some helpful -functionality like query string parsing. - - -[![Build Status](https://travis-ci.org/guzzle/psr7.svg?branch=master)](https://travis-ci.org/guzzle/psr7) - - -# Stream implementation - -This package comes with a number of stream implementations and stream -decorators. - - -## AppendStream - -`GuzzleHttp\Psr7\AppendStream` - -Reads from multiple streams, one after the other. - -```php -use GuzzleHttp\Psr7; - -$a = Psr7\stream_for('abc, '); -$b = Psr7\stream_for('123.'); -$composed = new Psr7\AppendStream([$a, $b]); - -$composed->addStream(Psr7\stream_for(' Above all listen to me')); - -echo $composed; // abc, 123. Above all listen to me. -``` - - -## BufferStream - -`GuzzleHttp\Psr7\BufferStream` - -Provides a buffer stream that can be written to fill a buffer, and read -from to remove bytes from the buffer. - -This stream returns a "hwm" metadata value that tells upstream consumers -what the configured high water mark of the stream is, or the maximum -preferred size of the buffer. - -```php -use GuzzleHttp\Psr7; - -// When more than 1024 bytes are in the buffer, it will begin returning -// false to writes. This is an indication that writers should slow down. -$buffer = new Psr7\BufferStream(1024); -``` - - -## CachingStream - -The CachingStream is used to allow seeking over previously read bytes on -non-seekable streams. This can be useful when transferring a non-seekable -entity body fails due to needing to rewind the stream (for example, resulting -from a redirect). Data that is read from the remote stream will be buffered in -a PHP temp stream so that previously read bytes are cached first in memory, -then on disk. - -```php -use GuzzleHttp\Psr7; - -$original = Psr7\stream_for(fopen('http://www.google.com', 'r')); -$stream = new Psr7\CachingStream($original); - -$stream->read(1024); -echo $stream->tell(); -// 1024 - -$stream->seek(0); -echo $stream->tell(); -// 0 -``` - - -## DroppingStream - -`GuzzleHttp\Psr7\DroppingStream` - -Stream decorator that begins dropping data once the size of the underlying -stream becomes too full. - -```php -use GuzzleHttp\Psr7; - -// Create an empty stream -$stream = Psr7\stream_for(); - -// Start dropping data when the stream has more than 10 bytes -$dropping = new Psr7\DroppingStream($stream, 10); - -$dropping->write('01234567890123456789'); -echo $stream; // 0123456789 -``` - - -## FnStream - -`GuzzleHttp\Psr7\FnStream` - -Compose stream implementations based on a hash of functions. - -Allows for easy testing and extension of a provided stream without needing -to create a concrete class for a simple extension point. - -```php - -use GuzzleHttp\Psr7; - -$stream = Psr7\stream_for('hi'); -$fnStream = Psr7\FnStream::decorate($stream, [ - 'rewind' => function () use ($stream) { - echo 'About to rewind - '; - $stream->rewind(); - echo 'rewound!'; - } -]); - -$fnStream->rewind(); -// Outputs: About to rewind - rewound! -``` - - -## InflateStream - -`GuzzleHttp\Psr7\InflateStream` - -Uses PHP's zlib.inflate filter to inflate deflate or gzipped content. - -This stream decorator skips the first 10 bytes of the given stream to remove -the gzip header, converts the provided stream to a PHP stream resource, -then appends the zlib.inflate filter. The stream is then converted back -to a Guzzle stream resource to be used as a Guzzle stream. - - -## LazyOpenStream - -`GuzzleHttp\Psr7\LazyOpenStream` - -Lazily reads or writes to a file that is opened only after an IO operation -take place on the stream. - -```php -use GuzzleHttp\Psr7; - -$stream = new Psr7\LazyOpenStream('/path/to/file', 'r'); -// The file has not yet been opened... - -echo $stream->read(10); -// The file is opened and read from only when needed. -``` - - -## LimitStream - -`GuzzleHttp\Psr7\LimitStream` - -LimitStream can be used to read a subset or slice of an existing stream object. -This can be useful for breaking a large file into smaller pieces to be sent in -chunks (e.g. Amazon S3's multipart upload API). - -```php -use GuzzleHttp\Psr7; - -$original = Psr7\stream_for(fopen('/tmp/test.txt', 'r+')); -echo $original->getSize(); -// >>> 1048576 - -// Limit the size of the body to 1024 bytes and start reading from byte 2048 -$stream = new Psr7\LimitStream($original, 1024, 2048); -echo $stream->getSize(); -// >>> 1024 -echo $stream->tell(); -// >>> 0 -``` - - -## MultipartStream - -`GuzzleHttp\Psr7\MultipartStream` - -Stream that when read returns bytes for a streaming multipart or -multipart/form-data stream. - - -## NoSeekStream - -`GuzzleHttp\Psr7\NoSeekStream` - -NoSeekStream wraps a stream and does not allow seeking. - -```php -use GuzzleHttp\Psr7; - -$original = Psr7\stream_for('foo'); -$noSeek = new Psr7\NoSeekStream($original); - -echo $noSeek->read(3); -// foo -var_export($noSeek->isSeekable()); -// false -$noSeek->seek(0); -var_export($noSeek->read(3)); -// NULL -``` - - -## PumpStream - -`GuzzleHttp\Psr7\PumpStream` - -Provides a read only stream that pumps data from a PHP callable. - -When invoking the provided callable, the PumpStream will pass the amount of -data requested to read to the callable. The callable can choose to ignore -this value and return fewer or more bytes than requested. Any extra data -returned by the provided callable is buffered internally until drained using -the read() function of the PumpStream. The provided callable MUST return -false when there is no more data to read. - - -## Implementing stream decorators - -Creating a stream decorator is very easy thanks to the -`GuzzleHttp\Psr7\StreamDecoratorTrait`. This trait provides methods that -implement `Psr\Http\Message\StreamInterface` by proxying to an underlying -stream. Just `use` the `StreamDecoratorTrait` and implement your custom -methods. - -For example, let's say we wanted to call a specific function each time the last -byte is read from a stream. This could be implemented by overriding the -`read()` method. - -```php -use Psr\Http\Message\StreamInterface; -use GuzzleHttp\Psr7\StreamDecoratorTrait; - -class EofCallbackStream implements StreamInterface -{ - use StreamDecoratorTrait; - - private $callback; - - public function __construct(StreamInterface $stream, callable $cb) - { - $this->stream = $stream; - $this->callback = $cb; - } - - public function read($length) - { - $result = $this->stream->read($length); - - // Invoke the callback when EOF is hit. - if ($this->eof()) { - call_user_func($this->callback); - } - - return $result; - } -} -``` - -This decorator could be added to any existing stream and used like so: - -```php -use GuzzleHttp\Psr7; - -$original = Psr7\stream_for('foo'); - -$eofStream = new EofCallbackStream($original, function () { - echo 'EOF!'; -}); - -$eofStream->read(2); -$eofStream->read(1); -// echoes "EOF!" -$eofStream->seek(0); -$eofStream->read(3); -// echoes "EOF!" -``` - - -## PHP StreamWrapper - -You can use the `GuzzleHttp\Psr7\StreamWrapper` class if you need to use a -PSR-7 stream as a PHP stream resource. - -Use the `GuzzleHttp\Psr7\StreamWrapper::getResource()` method to create a PHP -stream from a PSR-7 stream. - -```php -use GuzzleHttp\Psr7\StreamWrapper; - -$stream = GuzzleHttp\Psr7\stream_for('hello!'); -$resource = StreamWrapper::getResource($stream); -echo fread($resource, 6); // outputs hello! -``` - - -# Function API - -There are various functions available under the `GuzzleHttp\Psr7` namespace. - - -## `function str` - -`function str(MessageInterface $message)` - -Returns the string representation of an HTTP message. - -```php -$request = new GuzzleHttp\Psr7\Request('GET', 'http://example.com'); -echo GuzzleHttp\Psr7\str($request); -``` - - -## `function uri_for` - -`function uri_for($uri)` - -This function accepts a string or `Psr\Http\Message\UriInterface` and returns a -UriInterface for the given value. If the value is already a `UriInterface`, it -is returned as-is. - -```php -$uri = GuzzleHttp\Psr7\uri_for('http://example.com'); -assert($uri === GuzzleHttp\Psr7\uri_for($uri)); -``` - - -## `function stream_for` - -`function stream_for($resource = '', array $options = [])` - -Create a new stream based on the input type. - -Options is an associative array that can contain the following keys: - -* - metadata: Array of custom metadata. -* - size: Size of the stream. - -This method accepts the following `$resource` types: - -- `Psr\Http\Message\StreamInterface`: Returns the value as-is. -- `string`: Creates a stream object that uses the given string as the contents. -- `resource`: Creates a stream object that wraps the given PHP stream resource. -- `Iterator`: If the provided value implements `Iterator`, then a read-only - stream object will be created that wraps the given iterable. Each time the - stream is read from, data from the iterator will fill a buffer and will be - continuously called until the buffer is equal to the requested read size. - Subsequent read calls will first read from the buffer and then call `next` - on the underlying iterator until it is exhausted. -- `object` with `__toString()`: If the object has the `__toString()` method, - the object will be cast to a string and then a stream will be returned that - uses the string value. -- `NULL`: When `null` is passed, an empty stream object is returned. -- `callable` When a callable is passed, a read-only stream object will be - created that invokes the given callable. The callable is invoked with the - number of suggested bytes to read. The callable can return any number of - bytes, but MUST return `false` when there is no more data to return. The - stream object that wraps the callable will invoke the callable until the - number of requested bytes are available. Any additional bytes will be - buffered and used in subsequent reads. - -```php -$stream = GuzzleHttp\Psr7\stream_for('foo'); -$stream = GuzzleHttp\Psr7\stream_for(fopen('/path/to/file', 'r')); - -$generator function ($bytes) { - for ($i = 0; $i < $bytes; $i++) { - yield ' '; - } -} - -$stream = GuzzleHttp\Psr7\stream_for($generator(100)); -``` - - -## `function parse_header` - -`function parse_header($header)` - -Parse an array of header values containing ";" separated data into an array of -associative arrays representing the header key value pair data of the header. -When a parameter does not contain a value, but just contains a key, this -function will inject a key with a '' string value. - - -## `function normalize_header` - -`function normalize_header($header)` - -Converts an array of header values that may contain comma separated headers -into an array of headers with no comma separated values. - - -## `function modify_request` - -`function modify_request(RequestInterface $request, array $changes)` - -Clone and modify a request with the given changes. This method is useful for -reducing the number of clones needed to mutate a message. - -The changes can be one of: - -- method: (string) Changes the HTTP method. -- set_headers: (array) Sets the given headers. -- remove_headers: (array) Remove the given headers. -- body: (mixed) Sets the given body. -- uri: (UriInterface) Set the URI. -- query: (string) Set the query string value of the URI. -- version: (string) Set the protocol version. - - -## `function rewind_body` - -`function rewind_body(MessageInterface $message)` - -Attempts to rewind a message body and throws an exception on failure. The body -of the message will only be rewound if a call to `tell()` returns a value other -than `0`. - - -## `function try_fopen` - -`function try_fopen($filename, $mode)` - -Safely opens a PHP stream resource using a filename. - -When fopen fails, PHP normally raises a warning. This function adds an error -handler that checks for errors and throws an exception instead. - - -## `function copy_to_string` - -`function copy_to_string(StreamInterface $stream, $maxLen = -1)` - -Copy the contents of a stream into a string until the given number of bytes -have been read. - - -## `function copy_to_stream` - -`function copy_to_stream(StreamInterface $source, StreamInterface $dest, $maxLen = -1)` - -Copy the contents of a stream into another stream until the given number of -bytes have been read. - - -## `function hash` - -`function hash(StreamInterface $stream, $algo, $rawOutput = false)` - -Calculate a hash of a Stream. This method reads the entire stream to calculate -a rolling hash (based on PHP's hash_init functions). - - -## `function readline` - -`function readline(StreamInterface $stream, $maxLength = null)` - -Read a line from the stream up to the maximum allowed buffer length. - - -## `function parse_request` - -`function parse_request($message)` - -Parses a request message string into a request object. - - -## `function parse_response` - -`function parse_response($message)` - -Parses a response message string into a response object. - - -## `function parse_query` - -`function parse_query($str, $urlEncoding = true)` - -Parse a query string into an associative array. - -If multiple values are found for the same key, the value of that key value pair -will become an array. This function does not parse nested PHP style arrays into -an associative array (e.g., `foo[a]=1&foo[b]=2` will be parsed into -`['foo[a]' => '1', 'foo[b]' => '2']`). - - -## `function build_query` - -`function build_query(array $params, $encoding = PHP_QUERY_RFC3986)` - -Build a query string from an array of key value pairs. - -This function can use the return value of parse_query() to build a query string. -This function does not modify the provided keys when an array is encountered -(like http_build_query would). - - -## `function mimetype_from_filename` - -`function mimetype_from_filename($filename)` - -Determines the mimetype of a file by looking at its extension. - - -## `function mimetype_from_extension` - -`function mimetype_from_extension($extension)` - -Maps a file extensions to a mimetype. - - -# Additional URI Methods - -Aside from the standard `Psr\Http\Message\UriInterface` implementation in form of the `GuzzleHttp\Psr7\Uri` class, -this library also provides additional functionality when working with URIs as static methods. - -## URI Types - -An instance of `Psr\Http\Message\UriInterface` can either be an absolute URI or a relative reference. -An absolute URI has a scheme. A relative reference is used to express a URI relative to another URI, -the base URI. Relative references can be divided into several forms according to -[RFC 3986 Section 4.2](https://tools.ietf.org/html/rfc3986#section-4.2): - -- network-path references, e.g. `//example.com/path` -- absolute-path references, e.g. `/path` -- relative-path references, e.g. `subpath` - -The following methods can be used to identify the type of the URI. - -### `GuzzleHttp\Psr7\Uri::isAbsolute` - -`public static function isAbsolute(UriInterface $uri): bool` - -Whether the URI is absolute, i.e. it has a scheme. - -### `GuzzleHttp\Psr7\Uri::isNetworkPathReference` - -`public static function isNetworkPathReference(UriInterface $uri): bool` - -Whether the URI is a network-path reference. A relative reference that begins with two slash characters is -termed an network-path reference. - -### `GuzzleHttp\Psr7\Uri::isAbsolutePathReference` - -`public static function isAbsolutePathReference(UriInterface $uri): bool` - -Whether the URI is a absolute-path reference. A relative reference that begins with a single slash character is -termed an absolute-path reference. - -### `GuzzleHttp\Psr7\Uri::isRelativePathReference` - -`public static function isRelativePathReference(UriInterface $uri): bool` - -Whether the URI is a relative-path reference. A relative reference that does not begin with a slash character is -termed a relative-path reference. - -### `GuzzleHttp\Psr7\Uri::isSameDocumentReference` - -`public static function isSameDocumentReference(UriInterface $uri, UriInterface $base = null): bool` - -Whether the URI is a same-document reference. A same-document reference refers to a URI that is, aside from its -fragment component, identical to the base URI. When no base URI is given, only an empty URI reference -(apart from its fragment) is considered a same-document reference. - -## URI Components - -Additional methods to work with URI components. - -### `GuzzleHttp\Psr7\Uri::isDefaultPort` - -`public static function isDefaultPort(UriInterface $uri): bool` - -Whether the URI has the default port of the current scheme. `Psr\Http\Message\UriInterface::getPort` may return null -or the standard port. This method can be used independently of the implementation. - -### `GuzzleHttp\Psr7\Uri::composeComponents` - -`public static function composeComponents($scheme, $authority, $path, $query, $fragment): string` - -Composes a URI reference string from its various components according to -[RFC 3986 Section 5.3](https://tools.ietf.org/html/rfc3986#section-5.3). Usually this method does not need to be called -manually but instead is used indirectly via `Psr\Http\Message\UriInterface::__toString`. - -### `GuzzleHttp\Psr7\Uri::fromParts` - -`public static function fromParts(array $parts): UriInterface` - -Creates a URI from a hash of [`parse_url`](http://php.net/manual/en/function.parse-url.php) components. - - -### `GuzzleHttp\Psr7\Uri::withQueryValue` - -`public static function withQueryValue(UriInterface $uri, $key, $value): UriInterface` - -Creates a new URI with a specific query string value. Any existing query string values that exactly match the -provided key are removed and replaced with the given key value pair. A value of null will set the query string -key without a value, e.g. "key" instead of "key=value". - - -### `GuzzleHttp\Psr7\Uri::withoutQueryValue` - -`public static function withoutQueryValue(UriInterface $uri, $key): UriInterface` - -Creates a new URI with a specific query string value removed. Any existing query string values that exactly match the -provided key are removed. - -## Reference Resolution - -`GuzzleHttp\Psr7\UriResolver` provides methods to resolve a URI reference in the context of a base URI according -to [RFC 3986 Section 5](https://tools.ietf.org/html/rfc3986#section-5). This is for example also what web browsers -do when resolving a link in a website based on the current request URI. - -### `GuzzleHttp\Psr7\UriResolver::resolve` - -`public static function resolve(UriInterface $base, UriInterface $rel): UriInterface` - -Converts the relative URI into a new URI that is resolved against the base URI. - -### `GuzzleHttp\Psr7\UriResolver::removeDotSegments` - -`public static function removeDotSegments(string $path): string` - -Removes dot segments from a path and returns the new path according to -[RFC 3986 Section 5.2.4](https://tools.ietf.org/html/rfc3986#section-5.2.4). - -### `GuzzleHttp\Psr7\UriResolver::relativize` - -`public static function relativize(UriInterface $base, UriInterface $target): UriInterface` - -Returns the target URI as a relative reference from the base URI. This method is the counterpart to resolve(): - -```php -(string) $target === (string) UriResolver::resolve($base, UriResolver::relativize($base, $target)) -``` - -One use-case is to use the current request URI as base URI and then generate relative links in your documents -to reduce the document size or offer self-contained downloadable document archives. - -```php -$base = new Uri('http://example.com/a/b/'); -echo UriResolver::relativize($base, new Uri('http://example.com/a/b/c')); // prints 'c'. -echo UriResolver::relativize($base, new Uri('http://example.com/a/x/y')); // prints '../x/y'. -echo UriResolver::relativize($base, new Uri('http://example.com/a/b/?q')); // prints '?q'. -echo UriResolver::relativize($base, new Uri('http://example.org/a/b/')); // prints '//example.org/a/b/'. -``` - -## Normalization and Comparison - -`GuzzleHttp\Psr7\UriNormalizer` provides methods to normalize and compare URIs according to -[RFC 3986 Section 6](https://tools.ietf.org/html/rfc3986#section-6). - -### `GuzzleHttp\Psr7\UriNormalizer::normalize` - -`public static function normalize(UriInterface $uri, $flags = self::PRESERVING_NORMALIZATIONS): UriInterface` - -Returns a normalized URI. The scheme and host component are already normalized to lowercase per PSR-7 UriInterface. -This methods adds additional normalizations that can be configured with the `$flags` parameter which is a bitmask -of normalizations to apply. The following normalizations are available: - -- `UriNormalizer::PRESERVING_NORMALIZATIONS` - - Default normalizations which only include the ones that preserve semantics. - -- `UriNormalizer::CAPITALIZE_PERCENT_ENCODING` - - All letters within a percent-encoding triplet (e.g., "%3A") are case-insensitive, and should be capitalized. - - Example: `http://example.org/a%c2%b1b` → `http://example.org/a%C2%B1b` - -- `UriNormalizer::DECODE_UNRESERVED_CHARACTERS` - - Decodes percent-encoded octets of unreserved characters. For consistency, percent-encoded octets in the ranges of - ALPHA (%41–%5A and %61–%7A), DIGIT (%30–%39), hyphen (%2D), period (%2E), underscore (%5F), or tilde (%7E) should - not be created by URI producers and, when found in a URI, should be decoded to their corresponding unreserved - characters by URI normalizers. - - Example: `http://example.org/%7Eusern%61me/` → `http://example.org/~username/` - -- `UriNormalizer::CONVERT_EMPTY_PATH` - - Converts the empty path to "/" for http and https URIs. - - Example: `http://example.org` → `http://example.org/` - -- `UriNormalizer::REMOVE_DEFAULT_HOST` - - Removes the default host of the given URI scheme from the URI. Only the "file" scheme defines the default host - "localhost". All of `file:/myfile`, `file:///myfile`, and `file://localhost/myfile` are equivalent according to - RFC 3986. - - Example: `file://localhost/myfile` → `file:///myfile` - -- `UriNormalizer::REMOVE_DEFAULT_PORT` - - Removes the default port of the given URI scheme from the URI. - - Example: `http://example.org:80/` → `http://example.org/` - -- `UriNormalizer::REMOVE_DOT_SEGMENTS` - - Removes unnecessary dot-segments. Dot-segments in relative-path references are not removed as it would - change the semantics of the URI reference. - - Example: `http://example.org/../a/b/../c/./d.html` → `http://example.org/a/c/d.html` - -- `UriNormalizer::REMOVE_DUPLICATE_SLASHES` - - Paths which include two or more adjacent slashes are converted to one. Webservers usually ignore duplicate slashes - and treat those URIs equivalent. But in theory those URIs do not need to be equivalent. So this normalization - may change the semantics. Encoded slashes (%2F) are not removed. - - Example: `http://example.org//foo///bar.html` → `http://example.org/foo/bar.html` - -- `UriNormalizer::SORT_QUERY_PARAMETERS` - - Sort query parameters with their values in alphabetical order. However, the order of parameters in a URI may be - significant (this is not defined by the standard). So this normalization is not safe and may change the semantics - of the URI. - - Example: `?lang=en&article=fred` → `?article=fred&lang=en` - -### `GuzzleHttp\Psr7\UriNormalizer::isEquivalent` - -`public static function isEquivalent(UriInterface $uri1, UriInterface $uri2, $normalizations = self::PRESERVING_NORMALIZATIONS): bool` - -Whether two URIs can be considered equivalent. Both URIs are normalized automatically before comparison with the given -`$normalizations` bitmask. The method also accepts relative URI references and returns true when they are equivalent. -This of course assumes they will be resolved against the same base URI. If this is not the case, determination of -equivalence or difference of relative references does not mean anything. diff --git a/vendor/guzzlehttp/psr7/composer.json b/vendor/guzzlehttp/psr7/composer.json deleted file mode 100644 index b1c5a90b..00000000 --- a/vendor/guzzlehttp/psr7/composer.json +++ /dev/null @@ -1,39 +0,0 @@ -{ - "name": "guzzlehttp/psr7", - "type": "library", - "description": "PSR-7 message implementation that also provides common utility methods", - "keywords": ["request", "response", "message", "stream", "http", "uri", "url"], - "license": "MIT", - "authors": [ - { - "name": "Michael Dowling", - "email": "mtdowling@gmail.com", - "homepage": "https://github.com/mtdowling" - }, - { - "name": "Tobias Schultze", - "homepage": "https://github.com/Tobion" - } - ], - "require": { - "php": ">=5.4.0", - "psr/http-message": "~1.0" - }, - "require-dev": { - "phpunit/phpunit": "~4.0" - }, - "provide": { - "psr/http-message-implementation": "1.0" - }, - "autoload": { - "psr-4": { - "GuzzleHttp\\Psr7\\": "src/" - }, - "files": ["src/functions_include.php"] - }, - "extra": { - "branch-alias": { - "dev-master": "1.4-dev" - } - } -} diff --git a/vendor/guzzlehttp/psr7/src/AppendStream.php b/vendor/guzzlehttp/psr7/src/AppendStream.php deleted file mode 100644 index 23039fd7..00000000 --- a/vendor/guzzlehttp/psr7/src/AppendStream.php +++ /dev/null @@ -1,233 +0,0 @@ -addStream($stream); - } - } - - public function __toString() - { - try { - $this->rewind(); - return $this->getContents(); - } catch (\Exception $e) { - return ''; - } - } - - /** - * Add a stream to the AppendStream - * - * @param StreamInterface $stream Stream to append. Must be readable. - * - * @throws \InvalidArgumentException if the stream is not readable - */ - public function addStream(StreamInterface $stream) - { - if (!$stream->isReadable()) { - throw new \InvalidArgumentException('Each stream must be readable'); - } - - // The stream is only seekable if all streams are seekable - if (!$stream->isSeekable()) { - $this->seekable = false; - } - - $this->streams[] = $stream; - } - - public function getContents() - { - return copy_to_string($this); - } - - /** - * Closes each attached stream. - * - * {@inheritdoc} - */ - public function close() - { - $this->pos = $this->current = 0; - - foreach ($this->streams as $stream) { - $stream->close(); - } - - $this->streams = []; - } - - /** - * Detaches each attached stream - * - * {@inheritdoc} - */ - public function detach() - { - $this->close(); - $this->detached = true; - } - - public function tell() - { - return $this->pos; - } - - /** - * Tries to calculate the size by adding the size of each stream. - * - * If any of the streams do not return a valid number, then the size of the - * append stream cannot be determined and null is returned. - * - * {@inheritdoc} - */ - public function getSize() - { - $size = 0; - - foreach ($this->streams as $stream) { - $s = $stream->getSize(); - if ($s === null) { - return null; - } - $size += $s; - } - - return $size; - } - - public function eof() - { - return !$this->streams || - ($this->current >= count($this->streams) - 1 && - $this->streams[$this->current]->eof()); - } - - public function rewind() - { - $this->seek(0); - } - - /** - * Attempts to seek to the given position. Only supports SEEK_SET. - * - * {@inheritdoc} - */ - public function seek($offset, $whence = SEEK_SET) - { - if (!$this->seekable) { - throw new \RuntimeException('This AppendStream is not seekable'); - } elseif ($whence !== SEEK_SET) { - throw new \RuntimeException('The AppendStream can only seek with SEEK_SET'); - } - - $this->pos = $this->current = 0; - - // Rewind each stream - foreach ($this->streams as $i => $stream) { - try { - $stream->rewind(); - } catch (\Exception $e) { - throw new \RuntimeException('Unable to seek stream ' - . $i . ' of the AppendStream', 0, $e); - } - } - - // Seek to the actual position by reading from each stream - while ($this->pos < $offset && !$this->eof()) { - $result = $this->read(min(8096, $offset - $this->pos)); - if ($result === '') { - break; - } - } - } - - /** - * Reads from all of the appended streams until the length is met or EOF. - * - * {@inheritdoc} - */ - public function read($length) - { - $buffer = ''; - $total = count($this->streams) - 1; - $remaining = $length; - $progressToNext = false; - - while ($remaining > 0) { - - // Progress to the next stream if needed. - if ($progressToNext || $this->streams[$this->current]->eof()) { - $progressToNext = false; - if ($this->current === $total) { - break; - } - $this->current++; - } - - $result = $this->streams[$this->current]->read($remaining); - - // Using a loose comparison here to match on '', false, and null - if ($result == null) { - $progressToNext = true; - continue; - } - - $buffer .= $result; - $remaining = $length - strlen($buffer); - } - - $this->pos += strlen($buffer); - - return $buffer; - } - - public function isReadable() - { - return true; - } - - public function isWritable() - { - return false; - } - - public function isSeekable() - { - return $this->seekable; - } - - public function write($string) - { - throw new \RuntimeException('Cannot write to an AppendStream'); - } - - public function getMetadata($key = null) - { - return $key ? null : []; - } -} diff --git a/vendor/guzzlehttp/psr7/src/BufferStream.php b/vendor/guzzlehttp/psr7/src/BufferStream.php deleted file mode 100644 index af4d4c22..00000000 --- a/vendor/guzzlehttp/psr7/src/BufferStream.php +++ /dev/null @@ -1,137 +0,0 @@ -hwm = $hwm; - } - - public function __toString() - { - return $this->getContents(); - } - - public function getContents() - { - $buffer = $this->buffer; - $this->buffer = ''; - - return $buffer; - } - - public function close() - { - $this->buffer = ''; - } - - public function detach() - { - $this->close(); - } - - public function getSize() - { - return strlen($this->buffer); - } - - public function isReadable() - { - return true; - } - - public function isWritable() - { - return true; - } - - public function isSeekable() - { - return false; - } - - public function rewind() - { - $this->seek(0); - } - - public function seek($offset, $whence = SEEK_SET) - { - throw new \RuntimeException('Cannot seek a BufferStream'); - } - - public function eof() - { - return strlen($this->buffer) === 0; - } - - public function tell() - { - throw new \RuntimeException('Cannot determine the position of a BufferStream'); - } - - /** - * Reads data from the buffer. - */ - public function read($length) - { - $currentLength = strlen($this->buffer); - - if ($length >= $currentLength) { - // No need to slice the buffer because we don't have enough data. - $result = $this->buffer; - $this->buffer = ''; - } else { - // Slice up the result to provide a subset of the buffer. - $result = substr($this->buffer, 0, $length); - $this->buffer = substr($this->buffer, $length); - } - - return $result; - } - - /** - * Writes data to the buffer. - */ - public function write($string) - { - $this->buffer .= $string; - - // TODO: What should happen here? - if (strlen($this->buffer) >= $this->hwm) { - return false; - } - - return strlen($string); - } - - public function getMetadata($key = null) - { - if ($key == 'hwm') { - return $this->hwm; - } - - return $key ? null : []; - } -} diff --git a/vendor/guzzlehttp/psr7/src/CachingStream.php b/vendor/guzzlehttp/psr7/src/CachingStream.php deleted file mode 100644 index ed68f086..00000000 --- a/vendor/guzzlehttp/psr7/src/CachingStream.php +++ /dev/null @@ -1,138 +0,0 @@ -remoteStream = $stream; - $this->stream = $target ?: new Stream(fopen('php://temp', 'r+')); - } - - public function getSize() - { - return max($this->stream->getSize(), $this->remoteStream->getSize()); - } - - public function rewind() - { - $this->seek(0); - } - - public function seek($offset, $whence = SEEK_SET) - { - if ($whence == SEEK_SET) { - $byte = $offset; - } elseif ($whence == SEEK_CUR) { - $byte = $offset + $this->tell(); - } elseif ($whence == SEEK_END) { - $size = $this->remoteStream->getSize(); - if ($size === null) { - $size = $this->cacheEntireStream(); - } - $byte = $size + $offset; - } else { - throw new \InvalidArgumentException('Invalid whence'); - } - - $diff = $byte - $this->stream->getSize(); - - if ($diff > 0) { - // Read the remoteStream until we have read in at least the amount - // of bytes requested, or we reach the end of the file. - while ($diff > 0 && !$this->remoteStream->eof()) { - $this->read($diff); - $diff = $byte - $this->stream->getSize(); - } - } else { - // We can just do a normal seek since we've already seen this byte. - $this->stream->seek($byte); - } - } - - public function read($length) - { - // Perform a regular read on any previously read data from the buffer - $data = $this->stream->read($length); - $remaining = $length - strlen($data); - - // More data was requested so read from the remote stream - if ($remaining) { - // If data was written to the buffer in a position that would have - // been filled from the remote stream, then we must skip bytes on - // the remote stream to emulate overwriting bytes from that - // position. This mimics the behavior of other PHP stream wrappers. - $remoteData = $this->remoteStream->read( - $remaining + $this->skipReadBytes - ); - - if ($this->skipReadBytes) { - $len = strlen($remoteData); - $remoteData = substr($remoteData, $this->skipReadBytes); - $this->skipReadBytes = max(0, $this->skipReadBytes - $len); - } - - $data .= $remoteData; - $this->stream->write($remoteData); - } - - return $data; - } - - public function write($string) - { - // When appending to the end of the currently read stream, you'll want - // to skip bytes from being read from the remote stream to emulate - // other stream wrappers. Basically replacing bytes of data of a fixed - // length. - $overflow = (strlen($string) + $this->tell()) - $this->remoteStream->tell(); - if ($overflow > 0) { - $this->skipReadBytes += $overflow; - } - - return $this->stream->write($string); - } - - public function eof() - { - return $this->stream->eof() && $this->remoteStream->eof(); - } - - /** - * Close both the remote stream and buffer stream - */ - public function close() - { - $this->remoteStream->close() && $this->stream->close(); - } - - private function cacheEntireStream() - { - $target = new FnStream(['write' => 'strlen']); - copy_to_stream($this, $target); - - return $this->tell(); - } -} diff --git a/vendor/guzzlehttp/psr7/src/DroppingStream.php b/vendor/guzzlehttp/psr7/src/DroppingStream.php deleted file mode 100644 index 8935c80d..00000000 --- a/vendor/guzzlehttp/psr7/src/DroppingStream.php +++ /dev/null @@ -1,42 +0,0 @@ -stream = $stream; - $this->maxLength = $maxLength; - } - - public function write($string) - { - $diff = $this->maxLength - $this->stream->getSize(); - - // Begin returning 0 when the underlying stream is too large. - if ($diff <= 0) { - return 0; - } - - // Write the stream or a subset of the stream if needed. - if (strlen($string) < $diff) { - return $this->stream->write($string); - } - - return $this->stream->write(substr($string, 0, $diff)); - } -} diff --git a/vendor/guzzlehttp/psr7/src/FnStream.php b/vendor/guzzlehttp/psr7/src/FnStream.php deleted file mode 100644 index cc9b4453..00000000 --- a/vendor/guzzlehttp/psr7/src/FnStream.php +++ /dev/null @@ -1,149 +0,0 @@ -methods = $methods; - - // Create the functions on the class - foreach ($methods as $name => $fn) { - $this->{'_fn_' . $name} = $fn; - } - } - - /** - * Lazily determine which methods are not implemented. - * @throws \BadMethodCallException - */ - public function __get($name) - { - throw new \BadMethodCallException(str_replace('_fn_', '', $name) - . '() is not implemented in the FnStream'); - } - - /** - * The close method is called on the underlying stream only if possible. - */ - public function __destruct() - { - if (isset($this->_fn_close)) { - call_user_func($this->_fn_close); - } - } - - /** - * Adds custom functionality to an underlying stream by intercepting - * specific method calls. - * - * @param StreamInterface $stream Stream to decorate - * @param array $methods Hash of method name to a closure - * - * @return FnStream - */ - public static function decorate(StreamInterface $stream, array $methods) - { - // If any of the required methods were not provided, then simply - // proxy to the decorated stream. - foreach (array_diff(self::$slots, array_keys($methods)) as $diff) { - $methods[$diff] = [$stream, $diff]; - } - - return new self($methods); - } - - public function __toString() - { - return call_user_func($this->_fn___toString); - } - - public function close() - { - return call_user_func($this->_fn_close); - } - - public function detach() - { - return call_user_func($this->_fn_detach); - } - - public function getSize() - { - return call_user_func($this->_fn_getSize); - } - - public function tell() - { - return call_user_func($this->_fn_tell); - } - - public function eof() - { - return call_user_func($this->_fn_eof); - } - - public function isSeekable() - { - return call_user_func($this->_fn_isSeekable); - } - - public function rewind() - { - call_user_func($this->_fn_rewind); - } - - public function seek($offset, $whence = SEEK_SET) - { - call_user_func($this->_fn_seek, $offset, $whence); - } - - public function isWritable() - { - return call_user_func($this->_fn_isWritable); - } - - public function write($string) - { - return call_user_func($this->_fn_write, $string); - } - - public function isReadable() - { - return call_user_func($this->_fn_isReadable); - } - - public function read($length) - { - return call_user_func($this->_fn_read, $length); - } - - public function getContents() - { - return call_user_func($this->_fn_getContents); - } - - public function getMetadata($key = null) - { - return call_user_func($this->_fn_getMetadata, $key); - } -} diff --git a/vendor/guzzlehttp/psr7/src/InflateStream.php b/vendor/guzzlehttp/psr7/src/InflateStream.php deleted file mode 100644 index 0051d3fe..00000000 --- a/vendor/guzzlehttp/psr7/src/InflateStream.php +++ /dev/null @@ -1,52 +0,0 @@ -read(10); - $filenameHeaderLength = $this->getLengthOfPossibleFilenameHeader($stream, $header); - // Skip the header, that is 10 + length of filename + 1 (nil) bytes - $stream = new LimitStream($stream, -1, 10 + $filenameHeaderLength); - $resource = StreamWrapper::getResource($stream); - stream_filter_append($resource, 'zlib.inflate', STREAM_FILTER_READ); - $this->stream = new Stream($resource); - } - - /** - * @param StreamInterface $stream - * @param $header - * @return int - */ - private function getLengthOfPossibleFilenameHeader(StreamInterface $stream, $header) - { - $filename_header_length = 0; - - if (substr(bin2hex($header), 6, 2) === '08') { - // we have a filename, read until nil - $filename_header_length = 1; - while ($stream->read(1) !== chr(0)) { - $filename_header_length++; - } - } - - return $filename_header_length; - } -} diff --git a/vendor/guzzlehttp/psr7/src/LazyOpenStream.php b/vendor/guzzlehttp/psr7/src/LazyOpenStream.php deleted file mode 100644 index 02cec3af..00000000 --- a/vendor/guzzlehttp/psr7/src/LazyOpenStream.php +++ /dev/null @@ -1,39 +0,0 @@ -filename = $filename; - $this->mode = $mode; - } - - /** - * Creates the underlying stream lazily when required. - * - * @return StreamInterface - */ - protected function createStream() - { - return stream_for(try_fopen($this->filename, $this->mode)); - } -} diff --git a/vendor/guzzlehttp/psr7/src/LimitStream.php b/vendor/guzzlehttp/psr7/src/LimitStream.php deleted file mode 100644 index 3c13d4f4..00000000 --- a/vendor/guzzlehttp/psr7/src/LimitStream.php +++ /dev/null @@ -1,155 +0,0 @@ -stream = $stream; - $this->setLimit($limit); - $this->setOffset($offset); - } - - public function eof() - { - // Always return true if the underlying stream is EOF - if ($this->stream->eof()) { - return true; - } - - // No limit and the underlying stream is not at EOF - if ($this->limit == -1) { - return false; - } - - return $this->stream->tell() >= $this->offset + $this->limit; - } - - /** - * Returns the size of the limited subset of data - * {@inheritdoc} - */ - public function getSize() - { - if (null === ($length = $this->stream->getSize())) { - return null; - } elseif ($this->limit == -1) { - return $length - $this->offset; - } else { - return min($this->limit, $length - $this->offset); - } - } - - /** - * Allow for a bounded seek on the read limited stream - * {@inheritdoc} - */ - public function seek($offset, $whence = SEEK_SET) - { - if ($whence !== SEEK_SET || $offset < 0) { - throw new \RuntimeException(sprintf( - 'Cannot seek to offset % with whence %s', - $offset, - $whence - )); - } - - $offset += $this->offset; - - if ($this->limit !== -1) { - if ($offset > $this->offset + $this->limit) { - $offset = $this->offset + $this->limit; - } - } - - $this->stream->seek($offset); - } - - /** - * Give a relative tell() - * {@inheritdoc} - */ - public function tell() - { - return $this->stream->tell() - $this->offset; - } - - /** - * Set the offset to start limiting from - * - * @param int $offset Offset to seek to and begin byte limiting from - * - * @throws \RuntimeException if the stream cannot be seeked. - */ - public function setOffset($offset) - { - $current = $this->stream->tell(); - - if ($current !== $offset) { - // If the stream cannot seek to the offset position, then read to it - if ($this->stream->isSeekable()) { - $this->stream->seek($offset); - } elseif ($current > $offset) { - throw new \RuntimeException("Could not seek to stream offset $offset"); - } else { - $this->stream->read($offset - $current); - } - } - - $this->offset = $offset; - } - - /** - * Set the limit of bytes that the decorator allows to be read from the - * stream. - * - * @param int $limit Number of bytes to allow to be read from the stream. - * Use -1 for no limit. - */ - public function setLimit($limit) - { - $this->limit = $limit; - } - - public function read($length) - { - if ($this->limit == -1) { - return $this->stream->read($length); - } - - // Check if the current position is less than the total allowed - // bytes + original offset - $remaining = ($this->offset + $this->limit) - $this->stream->tell(); - if ($remaining > 0) { - // Only return the amount of requested data, ensuring that the byte - // limit is not exceeded - return $this->stream->read(min($remaining, $length)); - } - - return ''; - } -} diff --git a/vendor/guzzlehttp/psr7/src/MessageTrait.php b/vendor/guzzlehttp/psr7/src/MessageTrait.php deleted file mode 100644 index 1e4da649..00000000 --- a/vendor/guzzlehttp/psr7/src/MessageTrait.php +++ /dev/null @@ -1,183 +0,0 @@ - array of values */ - private $headers = []; - - /** @var array Map of lowercase header name => original name at registration */ - private $headerNames = []; - - /** @var string */ - private $protocol = '1.1'; - - /** @var StreamInterface */ - private $stream; - - public function getProtocolVersion() - { - return $this->protocol; - } - - public function withProtocolVersion($version) - { - if ($this->protocol === $version) { - return $this; - } - - $new = clone $this; - $new->protocol = $version; - return $new; - } - - public function getHeaders() - { - return $this->headers; - } - - public function hasHeader($header) - { - return isset($this->headerNames[strtolower($header)]); - } - - public function getHeader($header) - { - $header = strtolower($header); - - if (!isset($this->headerNames[$header])) { - return []; - } - - $header = $this->headerNames[$header]; - - return $this->headers[$header]; - } - - public function getHeaderLine($header) - { - return implode(', ', $this->getHeader($header)); - } - - public function withHeader($header, $value) - { - if (!is_array($value)) { - $value = [$value]; - } - - $value = $this->trimHeaderValues($value); - $normalized = strtolower($header); - - $new = clone $this; - if (isset($new->headerNames[$normalized])) { - unset($new->headers[$new->headerNames[$normalized]]); - } - $new->headerNames[$normalized] = $header; - $new->headers[$header] = $value; - - return $new; - } - - public function withAddedHeader($header, $value) - { - if (!is_array($value)) { - $value = [$value]; - } - - $value = $this->trimHeaderValues($value); - $normalized = strtolower($header); - - $new = clone $this; - if (isset($new->headerNames[$normalized])) { - $header = $this->headerNames[$normalized]; - $new->headers[$header] = array_merge($this->headers[$header], $value); - } else { - $new->headerNames[$normalized] = $header; - $new->headers[$header] = $value; - } - - return $new; - } - - public function withoutHeader($header) - { - $normalized = strtolower($header); - - if (!isset($this->headerNames[$normalized])) { - return $this; - } - - $header = $this->headerNames[$normalized]; - - $new = clone $this; - unset($new->headers[$header], $new->headerNames[$normalized]); - - return $new; - } - - public function getBody() - { - if (!$this->stream) { - $this->stream = stream_for(''); - } - - return $this->stream; - } - - public function withBody(StreamInterface $body) - { - if ($body === $this->stream) { - return $this; - } - - $new = clone $this; - $new->stream = $body; - return $new; - } - - private function setHeaders(array $headers) - { - $this->headerNames = $this->headers = []; - foreach ($headers as $header => $value) { - if (!is_array($value)) { - $value = [$value]; - } - - $value = $this->trimHeaderValues($value); - $normalized = strtolower($header); - if (isset($this->headerNames[$normalized])) { - $header = $this->headerNames[$normalized]; - $this->headers[$header] = array_merge($this->headers[$header], $value); - } else { - $this->headerNames[$normalized] = $header; - $this->headers[$header] = $value; - } - } - } - - /** - * Trims whitespace from the header values. - * - * Spaces and tabs ought to be excluded by parsers when extracting the field value from a header field. - * - * header-field = field-name ":" OWS field-value OWS - * OWS = *( SP / HTAB ) - * - * @param string[] $values Header values - * - * @return string[] Trimmed header values - * - * @see https://tools.ietf.org/html/rfc7230#section-3.2.4 - */ - private function trimHeaderValues(array $values) - { - return array_map(function ($value) { - return trim($value, " \t"); - }, $values); - } -} diff --git a/vendor/guzzlehttp/psr7/src/MultipartStream.php b/vendor/guzzlehttp/psr7/src/MultipartStream.php deleted file mode 100644 index c0fd584f..00000000 --- a/vendor/guzzlehttp/psr7/src/MultipartStream.php +++ /dev/null @@ -1,153 +0,0 @@ -boundary = $boundary ?: sha1(uniqid('', true)); - $this->stream = $this->createStream($elements); - } - - /** - * Get the boundary - * - * @return string - */ - public function getBoundary() - { - return $this->boundary; - } - - public function isWritable() - { - return false; - } - - /** - * Get the headers needed before transferring the content of a POST file - */ - private function getHeaders(array $headers) - { - $str = ''; - foreach ($headers as $key => $value) { - $str .= "{$key}: {$value}\r\n"; - } - - return "--{$this->boundary}\r\n" . trim($str) . "\r\n\r\n"; - } - - /** - * Create the aggregate stream that will be used to upload the POST data - */ - protected function createStream(array $elements) - { - $stream = new AppendStream(); - - foreach ($elements as $element) { - $this->addElement($stream, $element); - } - - // Add the trailing boundary with CRLF - $stream->addStream(stream_for("--{$this->boundary}--\r\n")); - - return $stream; - } - - private function addElement(AppendStream $stream, array $element) - { - foreach (['contents', 'name'] as $key) { - if (!array_key_exists($key, $element)) { - throw new \InvalidArgumentException("A '{$key}' key is required"); - } - } - - $element['contents'] = stream_for($element['contents']); - - if (empty($element['filename'])) { - $uri = $element['contents']->getMetadata('uri'); - if (substr($uri, 0, 6) !== 'php://') { - $element['filename'] = $uri; - } - } - - list($body, $headers) = $this->createElement( - $element['name'], - $element['contents'], - isset($element['filename']) ? $element['filename'] : null, - isset($element['headers']) ? $element['headers'] : [] - ); - - $stream->addStream(stream_for($this->getHeaders($headers))); - $stream->addStream($body); - $stream->addStream(stream_for("\r\n")); - } - - /** - * @return array - */ - private function createElement($name, StreamInterface $stream, $filename, array $headers) - { - // Set a default content-disposition header if one was no provided - $disposition = $this->getHeader($headers, 'content-disposition'); - if (!$disposition) { - $headers['Content-Disposition'] = ($filename === '0' || $filename) - ? sprintf('form-data; name="%s"; filename="%s"', - $name, - basename($filename)) - : "form-data; name=\"{$name}\""; - } - - // Set a default content-length header if one was no provided - $length = $this->getHeader($headers, 'content-length'); - if (!$length) { - if ($length = $stream->getSize()) { - $headers['Content-Length'] = (string) $length; - } - } - - // Set a default Content-Type if one was not supplied - $type = $this->getHeader($headers, 'content-type'); - if (!$type && ($filename === '0' || $filename)) { - if ($type = mimetype_from_filename($filename)) { - $headers['Content-Type'] = $type; - } - } - - return [$stream, $headers]; - } - - private function getHeader(array $headers, $key) - { - $lowercaseHeader = strtolower($key); - foreach ($headers as $k => $v) { - if (strtolower($k) === $lowercaseHeader) { - return $v; - } - } - - return null; - } -} diff --git a/vendor/guzzlehttp/psr7/src/NoSeekStream.php b/vendor/guzzlehttp/psr7/src/NoSeekStream.php deleted file mode 100644 index 23322180..00000000 --- a/vendor/guzzlehttp/psr7/src/NoSeekStream.php +++ /dev/null @@ -1,22 +0,0 @@ -source = $source; - $this->size = isset($options['size']) ? $options['size'] : null; - $this->metadata = isset($options['metadata']) ? $options['metadata'] : []; - $this->buffer = new BufferStream(); - } - - public function __toString() - { - try { - return copy_to_string($this); - } catch (\Exception $e) { - return ''; - } - } - - public function close() - { - $this->detach(); - } - - public function detach() - { - $this->tellPos = false; - $this->source = null; - } - - public function getSize() - { - return $this->size; - } - - public function tell() - { - return $this->tellPos; - } - - public function eof() - { - return !$this->source; - } - - public function isSeekable() - { - return false; - } - - public function rewind() - { - $this->seek(0); - } - - public function seek($offset, $whence = SEEK_SET) - { - throw new \RuntimeException('Cannot seek a PumpStream'); - } - - public function isWritable() - { - return false; - } - - public function write($string) - { - throw new \RuntimeException('Cannot write to a PumpStream'); - } - - public function isReadable() - { - return true; - } - - public function read($length) - { - $data = $this->buffer->read($length); - $readLen = strlen($data); - $this->tellPos += $readLen; - $remaining = $length - $readLen; - - if ($remaining) { - $this->pump($remaining); - $data .= $this->buffer->read($remaining); - $this->tellPos += strlen($data) - $readLen; - } - - return $data; - } - - public function getContents() - { - $result = ''; - while (!$this->eof()) { - $result .= $this->read(1000000); - } - - return $result; - } - - public function getMetadata($key = null) - { - if (!$key) { - return $this->metadata; - } - - return isset($this->metadata[$key]) ? $this->metadata[$key] : null; - } - - private function pump($length) - { - if ($this->source) { - do { - $data = call_user_func($this->source, $length); - if ($data === false || $data === null) { - $this->source = null; - return; - } - $this->buffer->write($data); - $length -= strlen($data); - } while ($length > 0); - } - } -} diff --git a/vendor/guzzlehttp/psr7/src/Request.php b/vendor/guzzlehttp/psr7/src/Request.php deleted file mode 100644 index 08285484..00000000 --- a/vendor/guzzlehttp/psr7/src/Request.php +++ /dev/null @@ -1,142 +0,0 @@ -method = strtoupper($method); - $this->uri = $uri; - $this->setHeaders($headers); - $this->protocol = $version; - - if (!$this->hasHeader('Host')) { - $this->updateHostFromUri(); - } - - if ($body !== '' && $body !== null) { - $this->stream = stream_for($body); - } - } - - public function getRequestTarget() - { - if ($this->requestTarget !== null) { - return $this->requestTarget; - } - - $target = $this->uri->getPath(); - if ($target == '') { - $target = '/'; - } - if ($this->uri->getQuery() != '') { - $target .= '?' . $this->uri->getQuery(); - } - - return $target; - } - - public function withRequestTarget($requestTarget) - { - if (preg_match('#\s#', $requestTarget)) { - throw new InvalidArgumentException( - 'Invalid request target provided; cannot contain whitespace' - ); - } - - $new = clone $this; - $new->requestTarget = $requestTarget; - return $new; - } - - public function getMethod() - { - return $this->method; - } - - public function withMethod($method) - { - $new = clone $this; - $new->method = strtoupper($method); - return $new; - } - - public function getUri() - { - return $this->uri; - } - - public function withUri(UriInterface $uri, $preserveHost = false) - { - if ($uri === $this->uri) { - return $this; - } - - $new = clone $this; - $new->uri = $uri; - - if (!$preserveHost) { - $new->updateHostFromUri(); - } - - return $new; - } - - private function updateHostFromUri() - { - $host = $this->uri->getHost(); - - if ($host == '') { - return; - } - - if (($port = $this->uri->getPort()) !== null) { - $host .= ':' . $port; - } - - if (isset($this->headerNames['host'])) { - $header = $this->headerNames['host']; - } else { - $header = 'Host'; - $this->headerNames['host'] = 'Host'; - } - // Ensure Host is the first header. - // See: http://tools.ietf.org/html/rfc7230#section-5.4 - $this->headers = [$header => [$host]] + $this->headers; - } -} diff --git a/vendor/guzzlehttp/psr7/src/Response.php b/vendor/guzzlehttp/psr7/src/Response.php deleted file mode 100644 index 2830c6c9..00000000 --- a/vendor/guzzlehttp/psr7/src/Response.php +++ /dev/null @@ -1,132 +0,0 @@ - 'Continue', - 101 => 'Switching Protocols', - 102 => 'Processing', - 200 => 'OK', - 201 => 'Created', - 202 => 'Accepted', - 203 => 'Non-Authoritative Information', - 204 => 'No Content', - 205 => 'Reset Content', - 206 => 'Partial Content', - 207 => 'Multi-status', - 208 => 'Already Reported', - 300 => 'Multiple Choices', - 301 => 'Moved Permanently', - 302 => 'Found', - 303 => 'See Other', - 304 => 'Not Modified', - 305 => 'Use Proxy', - 306 => 'Switch Proxy', - 307 => 'Temporary Redirect', - 400 => 'Bad Request', - 401 => 'Unauthorized', - 402 => 'Payment Required', - 403 => 'Forbidden', - 404 => 'Not Found', - 405 => 'Method Not Allowed', - 406 => 'Not Acceptable', - 407 => 'Proxy Authentication Required', - 408 => 'Request Time-out', - 409 => 'Conflict', - 410 => 'Gone', - 411 => 'Length Required', - 412 => 'Precondition Failed', - 413 => 'Request Entity Too Large', - 414 => 'Request-URI Too Large', - 415 => 'Unsupported Media Type', - 416 => 'Requested range not satisfiable', - 417 => 'Expectation Failed', - 418 => 'I\'m a teapot', - 422 => 'Unprocessable Entity', - 423 => 'Locked', - 424 => 'Failed Dependency', - 425 => 'Unordered Collection', - 426 => 'Upgrade Required', - 428 => 'Precondition Required', - 429 => 'Too Many Requests', - 431 => 'Request Header Fields Too Large', - 451 => 'Unavailable For Legal Reasons', - 500 => 'Internal Server Error', - 501 => 'Not Implemented', - 502 => 'Bad Gateway', - 503 => 'Service Unavailable', - 504 => 'Gateway Time-out', - 505 => 'HTTP Version not supported', - 506 => 'Variant Also Negotiates', - 507 => 'Insufficient Storage', - 508 => 'Loop Detected', - 511 => 'Network Authentication Required', - ]; - - /** @var string */ - private $reasonPhrase = ''; - - /** @var int */ - private $statusCode = 200; - - /** - * @param int $status Status code - * @param array $headers Response headers - * @param string|null|resource|StreamInterface $body Response body - * @param string $version Protocol version - * @param string|null $reason Reason phrase (when empty a default will be used based on the status code) - */ - public function __construct( - $status = 200, - array $headers = [], - $body = null, - $version = '1.1', - $reason = null - ) { - $this->statusCode = (int) $status; - - if ($body !== '' && $body !== null) { - $this->stream = stream_for($body); - } - - $this->setHeaders($headers); - if ($reason == '' && isset(self::$phrases[$this->statusCode])) { - $this->reasonPhrase = self::$phrases[$this->statusCode]; - } else { - $this->reasonPhrase = (string) $reason; - } - - $this->protocol = $version; - } - - public function getStatusCode() - { - return $this->statusCode; - } - - public function getReasonPhrase() - { - return $this->reasonPhrase; - } - - public function withStatus($code, $reasonPhrase = '') - { - $new = clone $this; - $new->statusCode = (int) $code; - if ($reasonPhrase == '' && isset(self::$phrases[$new->statusCode])) { - $reasonPhrase = self::$phrases[$new->statusCode]; - } - $new->reasonPhrase = $reasonPhrase; - return $new; - } -} diff --git a/vendor/guzzlehttp/psr7/src/ServerRequest.php b/vendor/guzzlehttp/psr7/src/ServerRequest.php deleted file mode 100644 index 575aab84..00000000 --- a/vendor/guzzlehttp/psr7/src/ServerRequest.php +++ /dev/null @@ -1,358 +0,0 @@ -serverParams = $serverParams; - - parent::__construct($method, $uri, $headers, $body, $version); - } - - /** - * Return an UploadedFile instance array. - * - * @param array $files A array which respect $_FILES structure - * @throws InvalidArgumentException for unrecognized values - * @return array - */ - public static function normalizeFiles(array $files) - { - $normalized = []; - - foreach ($files as $key => $value) { - if ($value instanceof UploadedFileInterface) { - $normalized[$key] = $value; - } elseif (is_array($value) && isset($value['tmp_name'])) { - $normalized[$key] = self::createUploadedFileFromSpec($value); - } elseif (is_array($value)) { - $normalized[$key] = self::normalizeFiles($value); - continue; - } else { - throw new InvalidArgumentException('Invalid value in files specification'); - } - } - - return $normalized; - } - - /** - * Create and return an UploadedFile instance from a $_FILES specification. - * - * If the specification represents an array of values, this method will - * delegate to normalizeNestedFileSpec() and return that return value. - * - * @param array $value $_FILES struct - * @return array|UploadedFileInterface - */ - private static function createUploadedFileFromSpec(array $value) - { - if (is_array($value['tmp_name'])) { - return self::normalizeNestedFileSpec($value); - } - - return new UploadedFile( - $value['tmp_name'], - (int) $value['size'], - (int) $value['error'], - $value['name'], - $value['type'] - ); - } - - /** - * Normalize an array of file specifications. - * - * Loops through all nested files and returns a normalized array of - * UploadedFileInterface instances. - * - * @param array $files - * @return UploadedFileInterface[] - */ - private static function normalizeNestedFileSpec(array $files = []) - { - $normalizedFiles = []; - - foreach (array_keys($files['tmp_name']) as $key) { - $spec = [ - 'tmp_name' => $files['tmp_name'][$key], - 'size' => $files['size'][$key], - 'error' => $files['error'][$key], - 'name' => $files['name'][$key], - 'type' => $files['type'][$key], - ]; - $normalizedFiles[$key] = self::createUploadedFileFromSpec($spec); - } - - return $normalizedFiles; - } - - /** - * Return a ServerRequest populated with superglobals: - * $_GET - * $_POST - * $_COOKIE - * $_FILES - * $_SERVER - * - * @return ServerRequestInterface - */ - public static function fromGlobals() - { - $method = isset($_SERVER['REQUEST_METHOD']) ? $_SERVER['REQUEST_METHOD'] : 'GET'; - $headers = function_exists('getallheaders') ? getallheaders() : []; - $uri = self::getUriFromGlobals(); - $body = new LazyOpenStream('php://input', 'r+'); - $protocol = isset($_SERVER['SERVER_PROTOCOL']) ? str_replace('HTTP/', '', $_SERVER['SERVER_PROTOCOL']) : '1.1'; - - $serverRequest = new ServerRequest($method, $uri, $headers, $body, $protocol, $_SERVER); - - return $serverRequest - ->withCookieParams($_COOKIE) - ->withQueryParams($_GET) - ->withParsedBody($_POST) - ->withUploadedFiles(self::normalizeFiles($_FILES)); - } - - /** - * Get a Uri populated with values from $_SERVER. - * - * @return UriInterface - */ - public static function getUriFromGlobals() { - $uri = new Uri(''); - - $uri = $uri->withScheme(!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off' ? 'https' : 'http'); - - $hasPort = false; - if (isset($_SERVER['HTTP_HOST'])) { - $hostHeaderParts = explode(':', $_SERVER['HTTP_HOST']); - $uri = $uri->withHost($hostHeaderParts[0]); - if (isset($hostHeaderParts[1])) { - $hasPort = true; - $uri = $uri->withPort($hostHeaderParts[1]); - } - } elseif (isset($_SERVER['SERVER_NAME'])) { - $uri = $uri->withHost($_SERVER['SERVER_NAME']); - } elseif (isset($_SERVER['SERVER_ADDR'])) { - $uri = $uri->withHost($_SERVER['SERVER_ADDR']); - } - - if (!$hasPort && isset($_SERVER['SERVER_PORT'])) { - $uri = $uri->withPort($_SERVER['SERVER_PORT']); - } - - $hasQuery = false; - if (isset($_SERVER['REQUEST_URI'])) { - $requestUriParts = explode('?', $_SERVER['REQUEST_URI']); - $uri = $uri->withPath($requestUriParts[0]); - if (isset($requestUriParts[1])) { - $hasQuery = true; - $uri = $uri->withQuery($requestUriParts[1]); - } - } - - if (!$hasQuery && isset($_SERVER['QUERY_STRING'])) { - $uri = $uri->withQuery($_SERVER['QUERY_STRING']); - } - - return $uri; - } - - - /** - * {@inheritdoc} - */ - public function getServerParams() - { - return $this->serverParams; - } - - /** - * {@inheritdoc} - */ - public function getUploadedFiles() - { - return $this->uploadedFiles; - } - - /** - * {@inheritdoc} - */ - public function withUploadedFiles(array $uploadedFiles) - { - $new = clone $this; - $new->uploadedFiles = $uploadedFiles; - - return $new; - } - - /** - * {@inheritdoc} - */ - public function getCookieParams() - { - return $this->cookieParams; - } - - /** - * {@inheritdoc} - */ - public function withCookieParams(array $cookies) - { - $new = clone $this; - $new->cookieParams = $cookies; - - return $new; - } - - /** - * {@inheritdoc} - */ - public function getQueryParams() - { - return $this->queryParams; - } - - /** - * {@inheritdoc} - */ - public function withQueryParams(array $query) - { - $new = clone $this; - $new->queryParams = $query; - - return $new; - } - - /** - * {@inheritdoc} - */ - public function getParsedBody() - { - return $this->parsedBody; - } - - /** - * {@inheritdoc} - */ - public function withParsedBody($data) - { - $new = clone $this; - $new->parsedBody = $data; - - return $new; - } - - /** - * {@inheritdoc} - */ - public function getAttributes() - { - return $this->attributes; - } - - /** - * {@inheritdoc} - */ - public function getAttribute($attribute, $default = null) - { - if (false === array_key_exists($attribute, $this->attributes)) { - return $default; - } - - return $this->attributes[$attribute]; - } - - /** - * {@inheritdoc} - */ - public function withAttribute($attribute, $value) - { - $new = clone $this; - $new->attributes[$attribute] = $value; - - return $new; - } - - /** - * {@inheritdoc} - */ - public function withoutAttribute($attribute) - { - if (false === array_key_exists($attribute, $this->attributes)) { - return $this; - } - - $new = clone $this; - unset($new->attributes[$attribute]); - - return $new; - } -} diff --git a/vendor/guzzlehttp/psr7/src/Stream.php b/vendor/guzzlehttp/psr7/src/Stream.php deleted file mode 100644 index e3366287..00000000 --- a/vendor/guzzlehttp/psr7/src/Stream.php +++ /dev/null @@ -1,257 +0,0 @@ - [ - 'r' => true, 'w+' => true, 'r+' => true, 'x+' => true, 'c+' => true, - 'rb' => true, 'w+b' => true, 'r+b' => true, 'x+b' => true, - 'c+b' => true, 'rt' => true, 'w+t' => true, 'r+t' => true, - 'x+t' => true, 'c+t' => true, 'a+' => true - ], - 'write' => [ - 'w' => true, 'w+' => true, 'rw' => true, 'r+' => true, 'x+' => true, - 'c+' => true, 'wb' => true, 'w+b' => true, 'r+b' => true, - 'x+b' => true, 'c+b' => true, 'w+t' => true, 'r+t' => true, - 'x+t' => true, 'c+t' => true, 'a' => true, 'a+' => true - ] - ]; - - /** - * This constructor accepts an associative array of options. - * - * - size: (int) If a read stream would otherwise have an indeterminate - * size, but the size is known due to foreknowledge, then you can - * provide that size, in bytes. - * - metadata: (array) Any additional metadata to return when the metadata - * of the stream is accessed. - * - * @param resource $stream Stream resource to wrap. - * @param array $options Associative array of options. - * - * @throws \InvalidArgumentException if the stream is not a stream resource - */ - public function __construct($stream, $options = []) - { - if (!is_resource($stream)) { - throw new \InvalidArgumentException('Stream must be a resource'); - } - - if (isset($options['size'])) { - $this->size = $options['size']; - } - - $this->customMetadata = isset($options['metadata']) - ? $options['metadata'] - : []; - - $this->stream = $stream; - $meta = stream_get_meta_data($this->stream); - $this->seekable = $meta['seekable']; - $this->readable = isset(self::$readWriteHash['read'][$meta['mode']]); - $this->writable = isset(self::$readWriteHash['write'][$meta['mode']]); - $this->uri = $this->getMetadata('uri'); - } - - public function __get($name) - { - if ($name == 'stream') { - throw new \RuntimeException('The stream is detached'); - } - - throw new \BadMethodCallException('No value for ' . $name); - } - - /** - * Closes the stream when the destructed - */ - public function __destruct() - { - $this->close(); - } - - public function __toString() - { - try { - $this->seek(0); - return (string) stream_get_contents($this->stream); - } catch (\Exception $e) { - return ''; - } - } - - public function getContents() - { - $contents = stream_get_contents($this->stream); - - if ($contents === false) { - throw new \RuntimeException('Unable to read stream contents'); - } - - return $contents; - } - - public function close() - { - if (isset($this->stream)) { - if (is_resource($this->stream)) { - fclose($this->stream); - } - $this->detach(); - } - } - - public function detach() - { - if (!isset($this->stream)) { - return null; - } - - $result = $this->stream; - unset($this->stream); - $this->size = $this->uri = null; - $this->readable = $this->writable = $this->seekable = false; - - return $result; - } - - public function getSize() - { - if ($this->size !== null) { - return $this->size; - } - - if (!isset($this->stream)) { - return null; - } - - // Clear the stat cache if the stream has a URI - if ($this->uri) { - clearstatcache(true, $this->uri); - } - - $stats = fstat($this->stream); - if (isset($stats['size'])) { - $this->size = $stats['size']; - return $this->size; - } - - return null; - } - - public function isReadable() - { - return $this->readable; - } - - public function isWritable() - { - return $this->writable; - } - - public function isSeekable() - { - return $this->seekable; - } - - public function eof() - { - return !$this->stream || feof($this->stream); - } - - public function tell() - { - $result = ftell($this->stream); - - if ($result === false) { - throw new \RuntimeException('Unable to determine stream position'); - } - - return $result; - } - - public function rewind() - { - $this->seek(0); - } - - public function seek($offset, $whence = SEEK_SET) - { - if (!$this->seekable) { - throw new \RuntimeException('Stream is not seekable'); - } elseif (fseek($this->stream, $offset, $whence) === -1) { - throw new \RuntimeException('Unable to seek to stream position ' - . $offset . ' with whence ' . var_export($whence, true)); - } - } - - public function read($length) - { - if (!$this->readable) { - throw new \RuntimeException('Cannot read from non-readable stream'); - } - if ($length < 0) { - throw new \RuntimeException('Length parameter cannot be negative'); - } - - if (0 === $length) { - return ''; - } - - $string = fread($this->stream, $length); - if (false === $string) { - throw new \RuntimeException('Unable to read from stream'); - } - - return $string; - } - - public function write($string) - { - if (!$this->writable) { - throw new \RuntimeException('Cannot write to a non-writable stream'); - } - - // We can't know the size after writing anything - $this->size = null; - $result = fwrite($this->stream, $string); - - if ($result === false) { - throw new \RuntimeException('Unable to write to stream'); - } - - return $result; - } - - public function getMetadata($key = null) - { - if (!isset($this->stream)) { - return $key ? null : []; - } elseif (!$key) { - return $this->customMetadata + stream_get_meta_data($this->stream); - } elseif (isset($this->customMetadata[$key])) { - return $this->customMetadata[$key]; - } - - $meta = stream_get_meta_data($this->stream); - - return isset($meta[$key]) ? $meta[$key] : null; - } -} diff --git a/vendor/guzzlehttp/psr7/src/StreamDecoratorTrait.php b/vendor/guzzlehttp/psr7/src/StreamDecoratorTrait.php deleted file mode 100644 index daec6f52..00000000 --- a/vendor/guzzlehttp/psr7/src/StreamDecoratorTrait.php +++ /dev/null @@ -1,149 +0,0 @@ -stream = $stream; - } - - /** - * Magic method used to create a new stream if streams are not added in - * the constructor of a decorator (e.g., LazyOpenStream). - * - * @param string $name Name of the property (allows "stream" only). - * - * @return StreamInterface - */ - public function __get($name) - { - if ($name == 'stream') { - $this->stream = $this->createStream(); - return $this->stream; - } - - throw new \UnexpectedValueException("$name not found on class"); - } - - public function __toString() - { - try { - if ($this->isSeekable()) { - $this->seek(0); - } - return $this->getContents(); - } catch (\Exception $e) { - // Really, PHP? https://bugs.php.net/bug.php?id=53648 - trigger_error('StreamDecorator::__toString exception: ' - . (string) $e, E_USER_ERROR); - return ''; - } - } - - public function getContents() - { - return copy_to_string($this); - } - - /** - * Allow decorators to implement custom methods - * - * @param string $method Missing method name - * @param array $args Method arguments - * - * @return mixed - */ - public function __call($method, array $args) - { - $result = call_user_func_array([$this->stream, $method], $args); - - // Always return the wrapped object if the result is a return $this - return $result === $this->stream ? $this : $result; - } - - public function close() - { - $this->stream->close(); - } - - public function getMetadata($key = null) - { - return $this->stream->getMetadata($key); - } - - public function detach() - { - return $this->stream->detach(); - } - - public function getSize() - { - return $this->stream->getSize(); - } - - public function eof() - { - return $this->stream->eof(); - } - - public function tell() - { - return $this->stream->tell(); - } - - public function isReadable() - { - return $this->stream->isReadable(); - } - - public function isWritable() - { - return $this->stream->isWritable(); - } - - public function isSeekable() - { - return $this->stream->isSeekable(); - } - - public function rewind() - { - $this->seek(0); - } - - public function seek($offset, $whence = SEEK_SET) - { - $this->stream->seek($offset, $whence); - } - - public function read($length) - { - return $this->stream->read($length); - } - - public function write($string) - { - return $this->stream->write($string); - } - - /** - * Implement in subclasses to dynamically create streams when requested. - * - * @return StreamInterface - * @throws \BadMethodCallException - */ - protected function createStream() - { - throw new \BadMethodCallException('Not implemented'); - } -} diff --git a/vendor/guzzlehttp/psr7/src/StreamWrapper.php b/vendor/guzzlehttp/psr7/src/StreamWrapper.php deleted file mode 100644 index cf7b2232..00000000 --- a/vendor/guzzlehttp/psr7/src/StreamWrapper.php +++ /dev/null @@ -1,121 +0,0 @@ -isReadable()) { - $mode = $stream->isWritable() ? 'r+' : 'r'; - } elseif ($stream->isWritable()) { - $mode = 'w'; - } else { - throw new \InvalidArgumentException('The stream must be readable, ' - . 'writable, or both.'); - } - - return fopen('guzzle://stream', $mode, null, stream_context_create([ - 'guzzle' => ['stream' => $stream] - ])); - } - - /** - * Registers the stream wrapper if needed - */ - public static function register() - { - if (!in_array('guzzle', stream_get_wrappers())) { - stream_wrapper_register('guzzle', __CLASS__); - } - } - - public function stream_open($path, $mode, $options, &$opened_path) - { - $options = stream_context_get_options($this->context); - - if (!isset($options['guzzle']['stream'])) { - return false; - } - - $this->mode = $mode; - $this->stream = $options['guzzle']['stream']; - - return true; - } - - public function stream_read($count) - { - return $this->stream->read($count); - } - - public function stream_write($data) - { - return (int) $this->stream->write($data); - } - - public function stream_tell() - { - return $this->stream->tell(); - } - - public function stream_eof() - { - return $this->stream->eof(); - } - - public function stream_seek($offset, $whence) - { - $this->stream->seek($offset, $whence); - - return true; - } - - public function stream_stat() - { - static $modeMap = [ - 'r' => 33060, - 'r+' => 33206, - 'w' => 33188 - ]; - - return [ - 'dev' => 0, - 'ino' => 0, - 'mode' => $modeMap[$this->mode], - 'nlink' => 0, - 'uid' => 0, - 'gid' => 0, - 'rdev' => 0, - 'size' => $this->stream->getSize() ?: 0, - 'atime' => 0, - 'mtime' => 0, - 'ctime' => 0, - 'blksize' => 0, - 'blocks' => 0 - ]; - } -} diff --git a/vendor/guzzlehttp/psr7/src/UploadedFile.php b/vendor/guzzlehttp/psr7/src/UploadedFile.php deleted file mode 100644 index e62bd5c8..00000000 --- a/vendor/guzzlehttp/psr7/src/UploadedFile.php +++ /dev/null @@ -1,316 +0,0 @@ -setError($errorStatus); - $this->setSize($size); - $this->setClientFilename($clientFilename); - $this->setClientMediaType($clientMediaType); - - if ($this->isOk()) { - $this->setStreamOrFile($streamOrFile); - } - } - - /** - * Depending on the value set file or stream variable - * - * @param mixed $streamOrFile - * @throws InvalidArgumentException - */ - private function setStreamOrFile($streamOrFile) - { - if (is_string($streamOrFile)) { - $this->file = $streamOrFile; - } elseif (is_resource($streamOrFile)) { - $this->stream = new Stream($streamOrFile); - } elseif ($streamOrFile instanceof StreamInterface) { - $this->stream = $streamOrFile; - } else { - throw new InvalidArgumentException( - 'Invalid stream or file provided for UploadedFile' - ); - } - } - - /** - * @param int $error - * @throws InvalidArgumentException - */ - private function setError($error) - { - if (false === is_int($error)) { - throw new InvalidArgumentException( - 'Upload file error status must be an integer' - ); - } - - if (false === in_array($error, UploadedFile::$errors)) { - throw new InvalidArgumentException( - 'Invalid error status for UploadedFile' - ); - } - - $this->error = $error; - } - - /** - * @param int $size - * @throws InvalidArgumentException - */ - private function setSize($size) - { - if (false === is_int($size)) { - throw new InvalidArgumentException( - 'Upload file size must be an integer' - ); - } - - $this->size = $size; - } - - /** - * @param mixed $param - * @return boolean - */ - private function isStringOrNull($param) - { - return in_array(gettype($param), ['string', 'NULL']); - } - - /** - * @param mixed $param - * @return boolean - */ - private function isStringNotEmpty($param) - { - return is_string($param) && false === empty($param); - } - - /** - * @param string|null $clientFilename - * @throws InvalidArgumentException - */ - private function setClientFilename($clientFilename) - { - if (false === $this->isStringOrNull($clientFilename)) { - throw new InvalidArgumentException( - 'Upload file client filename must be a string or null' - ); - } - - $this->clientFilename = $clientFilename; - } - - /** - * @param string|null $clientMediaType - * @throws InvalidArgumentException - */ - private function setClientMediaType($clientMediaType) - { - if (false === $this->isStringOrNull($clientMediaType)) { - throw new InvalidArgumentException( - 'Upload file client media type must be a string or null' - ); - } - - $this->clientMediaType = $clientMediaType; - } - - /** - * Return true if there is no upload error - * - * @return boolean - */ - private function isOk() - { - return $this->error === UPLOAD_ERR_OK; - } - - /** - * @return boolean - */ - public function isMoved() - { - return $this->moved; - } - - /** - * @throws RuntimeException if is moved or not ok - */ - private function validateActive() - { - if (false === $this->isOk()) { - throw new RuntimeException('Cannot retrieve stream due to upload error'); - } - - if ($this->isMoved()) { - throw new RuntimeException('Cannot retrieve stream after it has already been moved'); - } - } - - /** - * {@inheritdoc} - * @throws RuntimeException if the upload was not successful. - */ - public function getStream() - { - $this->validateActive(); - - if ($this->stream instanceof StreamInterface) { - return $this->stream; - } - - return new LazyOpenStream($this->file, 'r+'); - } - - /** - * {@inheritdoc} - * - * @see http://php.net/is_uploaded_file - * @see http://php.net/move_uploaded_file - * @param string $targetPath Path to which to move the uploaded file. - * @throws RuntimeException if the upload was not successful. - * @throws InvalidArgumentException if the $path specified is invalid. - * @throws RuntimeException on any error during the move operation, or on - * the second or subsequent call to the method. - */ - public function moveTo($targetPath) - { - $this->validateActive(); - - if (false === $this->isStringNotEmpty($targetPath)) { - throw new InvalidArgumentException( - 'Invalid path provided for move operation; must be a non-empty string' - ); - } - - if ($this->file) { - $this->moved = php_sapi_name() == 'cli' - ? rename($this->file, $targetPath) - : move_uploaded_file($this->file, $targetPath); - } else { - copy_to_stream( - $this->getStream(), - new LazyOpenStream($targetPath, 'w') - ); - - $this->moved = true; - } - - if (false === $this->moved) { - throw new RuntimeException( - sprintf('Uploaded file could not be moved to %s', $targetPath) - ); - } - } - - /** - * {@inheritdoc} - * - * @return int|null The file size in bytes or null if unknown. - */ - public function getSize() - { - return $this->size; - } - - /** - * {@inheritdoc} - * - * @see http://php.net/manual/en/features.file-upload.errors.php - * @return int One of PHP's UPLOAD_ERR_XXX constants. - */ - public function getError() - { - return $this->error; - } - - /** - * {@inheritdoc} - * - * @return string|null The filename sent by the client or null if none - * was provided. - */ - public function getClientFilename() - { - return $this->clientFilename; - } - - /** - * {@inheritdoc} - */ - public function getClientMediaType() - { - return $this->clientMediaType; - } -} diff --git a/vendor/guzzlehttp/psr7/src/Uri.php b/vendor/guzzlehttp/psr7/src/Uri.php deleted file mode 100644 index f46c1db9..00000000 --- a/vendor/guzzlehttp/psr7/src/Uri.php +++ /dev/null @@ -1,702 +0,0 @@ - 80, - 'https' => 443, - 'ftp' => 21, - 'gopher' => 70, - 'nntp' => 119, - 'news' => 119, - 'telnet' => 23, - 'tn3270' => 23, - 'imap' => 143, - 'pop' => 110, - 'ldap' => 389, - ]; - - private static $charUnreserved = 'a-zA-Z0-9_\-\.~'; - private static $charSubDelims = '!\$&\'\(\)\*\+,;='; - private static $replaceQuery = ['=' => '%3D', '&' => '%26']; - - /** @var string Uri scheme. */ - private $scheme = ''; - - /** @var string Uri user info. */ - private $userInfo = ''; - - /** @var string Uri host. */ - private $host = ''; - - /** @var int|null Uri port. */ - private $port; - - /** @var string Uri path. */ - private $path = ''; - - /** @var string Uri query string. */ - private $query = ''; - - /** @var string Uri fragment. */ - private $fragment = ''; - - /** - * @param string $uri URI to parse - */ - public function __construct($uri = '') - { - // weak type check to also accept null until we can add scalar type hints - if ($uri != '') { - $parts = parse_url($uri); - if ($parts === false) { - throw new \InvalidArgumentException("Unable to parse URI: $uri"); - } - $this->applyParts($parts); - } - } - - public function __toString() - { - return self::composeComponents( - $this->scheme, - $this->getAuthority(), - $this->path, - $this->query, - $this->fragment - ); - } - - /** - * Composes a URI reference string from its various components. - * - * Usually this method does not need to be called manually but instead is used indirectly via - * `Psr\Http\Message\UriInterface::__toString`. - * - * PSR-7 UriInterface treats an empty component the same as a missing component as - * getQuery(), getFragment() etc. always return a string. This explains the slight - * difference to RFC 3986 Section 5.3. - * - * Another adjustment is that the authority separator is added even when the authority is missing/empty - * for the "file" scheme. This is because PHP stream functions like `file_get_contents` only work with - * `file:///myfile` but not with `file:/myfile` although they are equivalent according to RFC 3986. But - * `file:///` is the more common syntax for the file scheme anyway (Chrome for example redirects to - * that format). - * - * @param string $scheme - * @param string $authority - * @param string $path - * @param string $query - * @param string $fragment - * - * @return string - * - * @link https://tools.ietf.org/html/rfc3986#section-5.3 - */ - public static function composeComponents($scheme, $authority, $path, $query, $fragment) - { - $uri = ''; - - // weak type checks to also accept null until we can add scalar type hints - if ($scheme != '') { - $uri .= $scheme . ':'; - } - - if ($authority != ''|| $scheme === 'file') { - $uri .= '//' . $authority; - } - - $uri .= $path; - - if ($query != '') { - $uri .= '?' . $query; - } - - if ($fragment != '') { - $uri .= '#' . $fragment; - } - - return $uri; - } - - /** - * Whether the URI has the default port of the current scheme. - * - * `Psr\Http\Message\UriInterface::getPort` may return null or the standard port. This method can be used - * independently of the implementation. - * - * @param UriInterface $uri - * - * @return bool - */ - public static function isDefaultPort(UriInterface $uri) - { - return $uri->getPort() === null - || (isset(self::$defaultPorts[$uri->getScheme()]) && $uri->getPort() === self::$defaultPorts[$uri->getScheme()]); - } - - /** - * Whether the URI is absolute, i.e. it has a scheme. - * - * An instance of UriInterface can either be an absolute URI or a relative reference. This method returns true - * if it is the former. An absolute URI has a scheme. A relative reference is used to express a URI relative - * to another URI, the base URI. Relative references can be divided into several forms: - * - network-path references, e.g. '//example.com/path' - * - absolute-path references, e.g. '/path' - * - relative-path references, e.g. 'subpath' - * - * @param UriInterface $uri - * - * @return bool - * @see Uri::isNetworkPathReference - * @see Uri::isAbsolutePathReference - * @see Uri::isRelativePathReference - * @link https://tools.ietf.org/html/rfc3986#section-4 - */ - public static function isAbsolute(UriInterface $uri) - { - return $uri->getScheme() !== ''; - } - - /** - * Whether the URI is a network-path reference. - * - * A relative reference that begins with two slash characters is termed an network-path reference. - * - * @param UriInterface $uri - * - * @return bool - * @link https://tools.ietf.org/html/rfc3986#section-4.2 - */ - public static function isNetworkPathReference(UriInterface $uri) - { - return $uri->getScheme() === '' && $uri->getAuthority() !== ''; - } - - /** - * Whether the URI is a absolute-path reference. - * - * A relative reference that begins with a single slash character is termed an absolute-path reference. - * - * @param UriInterface $uri - * - * @return bool - * @link https://tools.ietf.org/html/rfc3986#section-4.2 - */ - public static function isAbsolutePathReference(UriInterface $uri) - { - return $uri->getScheme() === '' - && $uri->getAuthority() === '' - && isset($uri->getPath()[0]) - && $uri->getPath()[0] === '/'; - } - - /** - * Whether the URI is a relative-path reference. - * - * A relative reference that does not begin with a slash character is termed a relative-path reference. - * - * @param UriInterface $uri - * - * @return bool - * @link https://tools.ietf.org/html/rfc3986#section-4.2 - */ - public static function isRelativePathReference(UriInterface $uri) - { - return $uri->getScheme() === '' - && $uri->getAuthority() === '' - && (!isset($uri->getPath()[0]) || $uri->getPath()[0] !== '/'); - } - - /** - * Whether the URI is a same-document reference. - * - * A same-document reference refers to a URI that is, aside from its fragment - * component, identical to the base URI. When no base URI is given, only an empty - * URI reference (apart from its fragment) is considered a same-document reference. - * - * @param UriInterface $uri The URI to check - * @param UriInterface|null $base An optional base URI to compare against - * - * @return bool - * @link https://tools.ietf.org/html/rfc3986#section-4.4 - */ - public static function isSameDocumentReference(UriInterface $uri, UriInterface $base = null) - { - if ($base !== null) { - $uri = UriResolver::resolve($base, $uri); - - return ($uri->getScheme() === $base->getScheme()) - && ($uri->getAuthority() === $base->getAuthority()) - && ($uri->getPath() === $base->getPath()) - && ($uri->getQuery() === $base->getQuery()); - } - - return $uri->getScheme() === '' && $uri->getAuthority() === '' && $uri->getPath() === '' && $uri->getQuery() === ''; - } - - /** - * Removes dot segments from a path and returns the new path. - * - * @param string $path - * - * @return string - * - * @deprecated since version 1.4. Use UriResolver::removeDotSegments instead. - * @see UriResolver::removeDotSegments - */ - public static function removeDotSegments($path) - { - return UriResolver::removeDotSegments($path); - } - - /** - * Converts the relative URI into a new URI that is resolved against the base URI. - * - * @param UriInterface $base Base URI - * @param string|UriInterface $rel Relative URI - * - * @return UriInterface - * - * @deprecated since version 1.4. Use UriResolver::resolve instead. - * @see UriResolver::resolve - */ - public static function resolve(UriInterface $base, $rel) - { - if (!($rel instanceof UriInterface)) { - $rel = new self($rel); - } - - return UriResolver::resolve($base, $rel); - } - - /** - * Creates a new URI with a specific query string value removed. - * - * Any existing query string values that exactly match the provided key are - * removed. - * - * @param UriInterface $uri URI to use as a base. - * @param string $key Query string key to remove. - * - * @return UriInterface - */ - public static function withoutQueryValue(UriInterface $uri, $key) - { - $current = $uri->getQuery(); - if ($current === '') { - return $uri; - } - - $decodedKey = rawurldecode($key); - $result = array_filter(explode('&', $current), function ($part) use ($decodedKey) { - return rawurldecode(explode('=', $part)[0]) !== $decodedKey; - }); - - return $uri->withQuery(implode('&', $result)); - } - - /** - * Creates a new URI with a specific query string value. - * - * Any existing query string values that exactly match the provided key are - * removed and replaced with the given key value pair. - * - * A value of null will set the query string key without a value, e.g. "key" - * instead of "key=value". - * - * @param UriInterface $uri URI to use as a base. - * @param string $key Key to set. - * @param string|null $value Value to set - * - * @return UriInterface - */ - public static function withQueryValue(UriInterface $uri, $key, $value) - { - $current = $uri->getQuery(); - - if ($current === '') { - $result = []; - } else { - $decodedKey = rawurldecode($key); - $result = array_filter(explode('&', $current), function ($part) use ($decodedKey) { - return rawurldecode(explode('=', $part)[0]) !== $decodedKey; - }); - } - - // Query string separators ("=", "&") within the key or value need to be encoded - // (while preventing double-encoding) before setting the query string. All other - // chars that need percent-encoding will be encoded by withQuery(). - $key = strtr($key, self::$replaceQuery); - - if ($value !== null) { - $result[] = $key . '=' . strtr($value, self::$replaceQuery); - } else { - $result[] = $key; - } - - return $uri->withQuery(implode('&', $result)); - } - - /** - * Creates a URI from a hash of `parse_url` components. - * - * @param array $parts - * - * @return UriInterface - * @link http://php.net/manual/en/function.parse-url.php - * - * @throws \InvalidArgumentException If the components do not form a valid URI. - */ - public static function fromParts(array $parts) - { - $uri = new self(); - $uri->applyParts($parts); - $uri->validateState(); - - return $uri; - } - - public function getScheme() - { - return $this->scheme; - } - - public function getAuthority() - { - $authority = $this->host; - if ($this->userInfo !== '') { - $authority = $this->userInfo . '@' . $authority; - } - - if ($this->port !== null) { - $authority .= ':' . $this->port; - } - - return $authority; - } - - public function getUserInfo() - { - return $this->userInfo; - } - - public function getHost() - { - return $this->host; - } - - public function getPort() - { - return $this->port; - } - - public function getPath() - { - return $this->path; - } - - public function getQuery() - { - return $this->query; - } - - public function getFragment() - { - return $this->fragment; - } - - public function withScheme($scheme) - { - $scheme = $this->filterScheme($scheme); - - if ($this->scheme === $scheme) { - return $this; - } - - $new = clone $this; - $new->scheme = $scheme; - $new->removeDefaultPort(); - $new->validateState(); - - return $new; - } - - public function withUserInfo($user, $password = null) - { - $info = $user; - if ($password != '') { - $info .= ':' . $password; - } - - if ($this->userInfo === $info) { - return $this; - } - - $new = clone $this; - $new->userInfo = $info; - $new->validateState(); - - return $new; - } - - public function withHost($host) - { - $host = $this->filterHost($host); - - if ($this->host === $host) { - return $this; - } - - $new = clone $this; - $new->host = $host; - $new->validateState(); - - return $new; - } - - public function withPort($port) - { - $port = $this->filterPort($port); - - if ($this->port === $port) { - return $this; - } - - $new = clone $this; - $new->port = $port; - $new->removeDefaultPort(); - $new->validateState(); - - return $new; - } - - public function withPath($path) - { - $path = $this->filterPath($path); - - if ($this->path === $path) { - return $this; - } - - $new = clone $this; - $new->path = $path; - $new->validateState(); - - return $new; - } - - public function withQuery($query) - { - $query = $this->filterQueryAndFragment($query); - - if ($this->query === $query) { - return $this; - } - - $new = clone $this; - $new->query = $query; - - return $new; - } - - public function withFragment($fragment) - { - $fragment = $this->filterQueryAndFragment($fragment); - - if ($this->fragment === $fragment) { - return $this; - } - - $new = clone $this; - $new->fragment = $fragment; - - return $new; - } - - /** - * Apply parse_url parts to a URI. - * - * @param array $parts Array of parse_url parts to apply. - */ - private function applyParts(array $parts) - { - $this->scheme = isset($parts['scheme']) - ? $this->filterScheme($parts['scheme']) - : ''; - $this->userInfo = isset($parts['user']) ? $parts['user'] : ''; - $this->host = isset($parts['host']) - ? $this->filterHost($parts['host']) - : ''; - $this->port = isset($parts['port']) - ? $this->filterPort($parts['port']) - : null; - $this->path = isset($parts['path']) - ? $this->filterPath($parts['path']) - : ''; - $this->query = isset($parts['query']) - ? $this->filterQueryAndFragment($parts['query']) - : ''; - $this->fragment = isset($parts['fragment']) - ? $this->filterQueryAndFragment($parts['fragment']) - : ''; - if (isset($parts['pass'])) { - $this->userInfo .= ':' . $parts['pass']; - } - - $this->removeDefaultPort(); - } - - /** - * @param string $scheme - * - * @return string - * - * @throws \InvalidArgumentException If the scheme is invalid. - */ - private function filterScheme($scheme) - { - if (!is_string($scheme)) { - throw new \InvalidArgumentException('Scheme must be a string'); - } - - return strtolower($scheme); - } - - /** - * @param string $host - * - * @return string - * - * @throws \InvalidArgumentException If the host is invalid. - */ - private function filterHost($host) - { - if (!is_string($host)) { - throw new \InvalidArgumentException('Host must be a string'); - } - - return strtolower($host); - } - - /** - * @param int|null $port - * - * @return int|null - * - * @throws \InvalidArgumentException If the port is invalid. - */ - private function filterPort($port) - { - if ($port === null) { - return null; - } - - $port = (int) $port; - if (1 > $port || 0xffff < $port) { - throw new \InvalidArgumentException( - sprintf('Invalid port: %d. Must be between 1 and 65535', $port) - ); - } - - return $port; - } - - private function removeDefaultPort() - { - if ($this->port !== null && self::isDefaultPort($this)) { - $this->port = null; - } - } - - /** - * Filters the path of a URI - * - * @param string $path - * - * @return string - * - * @throws \InvalidArgumentException If the path is invalid. - */ - private function filterPath($path) - { - if (!is_string($path)) { - throw new \InvalidArgumentException('Path must be a string'); - } - - return preg_replace_callback( - '/(?:[^' . self::$charUnreserved . self::$charSubDelims . '%:@\/]++|%(?![A-Fa-f0-9]{2}))/', - [$this, 'rawurlencodeMatchZero'], - $path - ); - } - - /** - * Filters the query string or fragment of a URI. - * - * @param string $str - * - * @return string - * - * @throws \InvalidArgumentException If the query or fragment is invalid. - */ - private function filterQueryAndFragment($str) - { - if (!is_string($str)) { - throw new \InvalidArgumentException('Query and fragment must be a string'); - } - - return preg_replace_callback( - '/(?:[^' . self::$charUnreserved . self::$charSubDelims . '%:@\/\?]++|%(?![A-Fa-f0-9]{2}))/', - [$this, 'rawurlencodeMatchZero'], - $str - ); - } - - private function rawurlencodeMatchZero(array $match) - { - return rawurlencode($match[0]); - } - - private function validateState() - { - if ($this->host === '' && ($this->scheme === 'http' || $this->scheme === 'https')) { - $this->host = self::HTTP_DEFAULT_HOST; - } - - if ($this->getAuthority() === '') { - if (0 === strpos($this->path, '//')) { - throw new \InvalidArgumentException('The path of a URI without an authority must not start with two slashes "//"'); - } - if ($this->scheme === '' && false !== strpos(explode('/', $this->path, 2)[0], ':')) { - throw new \InvalidArgumentException('A relative URI must not have a path beginning with a segment containing a colon'); - } - } elseif (isset($this->path[0]) && $this->path[0] !== '/') { - @trigger_error( - 'The path of a URI with an authority must start with a slash "/" or be empty. Automagically fixing the URI ' . - 'by adding a leading slash to the path is deprecated since version 1.4 and will throw an exception instead.', - E_USER_DEPRECATED - ); - $this->path = '/'. $this->path; - //throw new \InvalidArgumentException('The path of a URI with an authority must start with a slash "/" or be empty'); - } - } -} diff --git a/vendor/guzzlehttp/psr7/src/UriNormalizer.php b/vendor/guzzlehttp/psr7/src/UriNormalizer.php deleted file mode 100644 index 384c29e5..00000000 --- a/vendor/guzzlehttp/psr7/src/UriNormalizer.php +++ /dev/null @@ -1,216 +0,0 @@ -getPath() === '' && - ($uri->getScheme() === 'http' || $uri->getScheme() === 'https') - ) { - $uri = $uri->withPath('/'); - } - - if ($flags & self::REMOVE_DEFAULT_HOST && $uri->getScheme() === 'file' && $uri->getHost() === 'localhost') { - $uri = $uri->withHost(''); - } - - if ($flags & self::REMOVE_DEFAULT_PORT && $uri->getPort() !== null && Uri::isDefaultPort($uri)) { - $uri = $uri->withPort(null); - } - - if ($flags & self::REMOVE_DOT_SEGMENTS && !Uri::isRelativePathReference($uri)) { - $uri = $uri->withPath(UriResolver::removeDotSegments($uri->getPath())); - } - - if ($flags & self::REMOVE_DUPLICATE_SLASHES) { - $uri = $uri->withPath(preg_replace('#//++#', '/', $uri->getPath())); - } - - if ($flags & self::SORT_QUERY_PARAMETERS && $uri->getQuery() !== '') { - $queryKeyValues = explode('&', $uri->getQuery()); - sort($queryKeyValues); - $uri = $uri->withQuery(implode('&', $queryKeyValues)); - } - - return $uri; - } - - /** - * Whether two URIs can be considered equivalent. - * - * Both URIs are normalized automatically before comparison with the given $normalizations bitmask. The method also - * accepts relative URI references and returns true when they are equivalent. This of course assumes they will be - * resolved against the same base URI. If this is not the case, determination of equivalence or difference of - * relative references does not mean anything. - * - * @param UriInterface $uri1 An URI to compare - * @param UriInterface $uri2 An URI to compare - * @param int $normalizations A bitmask of normalizations to apply, see constants - * - * @return bool - * @link https://tools.ietf.org/html/rfc3986#section-6.1 - */ - public static function isEquivalent(UriInterface $uri1, UriInterface $uri2, $normalizations = self::PRESERVING_NORMALIZATIONS) - { - return (string) self::normalize($uri1, $normalizations) === (string) self::normalize($uri2, $normalizations); - } - - private static function capitalizePercentEncoding(UriInterface $uri) - { - $regex = '/(?:%[A-Fa-f0-9]{2})++/'; - - $callback = function (array $match) { - return strtoupper($match[0]); - }; - - return - $uri->withPath( - preg_replace_callback($regex, $callback, $uri->getPath()) - )->withQuery( - preg_replace_callback($regex, $callback, $uri->getQuery()) - ); - } - - private static function decodeUnreservedCharacters(UriInterface $uri) - { - $regex = '/%(?:2D|2E|5F|7E|3[0-9]|[46][1-9A-F]|[57][0-9A])/i'; - - $callback = function (array $match) { - return rawurldecode($match[0]); - }; - - return - $uri->withPath( - preg_replace_callback($regex, $callback, $uri->getPath()) - )->withQuery( - preg_replace_callback($regex, $callback, $uri->getQuery()) - ); - } - - private function __construct() - { - // cannot be instantiated - } -} diff --git a/vendor/guzzlehttp/psr7/src/UriResolver.php b/vendor/guzzlehttp/psr7/src/UriResolver.php deleted file mode 100644 index c1cb8a27..00000000 --- a/vendor/guzzlehttp/psr7/src/UriResolver.php +++ /dev/null @@ -1,219 +0,0 @@ -getScheme() != '') { - return $rel->withPath(self::removeDotSegments($rel->getPath())); - } - - if ($rel->getAuthority() != '') { - $targetAuthority = $rel->getAuthority(); - $targetPath = self::removeDotSegments($rel->getPath()); - $targetQuery = $rel->getQuery(); - } else { - $targetAuthority = $base->getAuthority(); - if ($rel->getPath() === '') { - $targetPath = $base->getPath(); - $targetQuery = $rel->getQuery() != '' ? $rel->getQuery() : $base->getQuery(); - } else { - if ($rel->getPath()[0] === '/') { - $targetPath = $rel->getPath(); - } else { - if ($targetAuthority != '' && $base->getPath() === '') { - $targetPath = '/' . $rel->getPath(); - } else { - $lastSlashPos = strrpos($base->getPath(), '/'); - if ($lastSlashPos === false) { - $targetPath = $rel->getPath(); - } else { - $targetPath = substr($base->getPath(), 0, $lastSlashPos + 1) . $rel->getPath(); - } - } - } - $targetPath = self::removeDotSegments($targetPath); - $targetQuery = $rel->getQuery(); - } - } - - return new Uri(Uri::composeComponents( - $base->getScheme(), - $targetAuthority, - $targetPath, - $targetQuery, - $rel->getFragment() - )); - } - - /** - * Returns the target URI as a relative reference from the base URI. - * - * This method is the counterpart to resolve(): - * - * (string) $target === (string) UriResolver::resolve($base, UriResolver::relativize($base, $target)) - * - * One use-case is to use the current request URI as base URI and then generate relative links in your documents - * to reduce the document size or offer self-contained downloadable document archives. - * - * $base = new Uri('http://example.com/a/b/'); - * echo UriResolver::relativize($base, new Uri('http://example.com/a/b/c')); // prints 'c'. - * echo UriResolver::relativize($base, new Uri('http://example.com/a/x/y')); // prints '../x/y'. - * echo UriResolver::relativize($base, new Uri('http://example.com/a/b/?q')); // prints '?q'. - * echo UriResolver::relativize($base, new Uri('http://example.org/a/b/')); // prints '//example.org/a/b/'. - * - * This method also accepts a target that is already relative and will try to relativize it further. Only a - * relative-path reference will be returned as-is. - * - * echo UriResolver::relativize($base, new Uri('/a/b/c')); // prints 'c' as well - * - * @param UriInterface $base Base URI - * @param UriInterface $target Target URI - * - * @return UriInterface The relative URI reference - */ - public static function relativize(UriInterface $base, UriInterface $target) - { - if ($target->getScheme() !== '' && - ($base->getScheme() !== $target->getScheme() || $target->getAuthority() === '' && $base->getAuthority() !== '') - ) { - return $target; - } - - if (Uri::isRelativePathReference($target)) { - // As the target is already highly relative we return it as-is. It would be possible to resolve - // the target with `$target = self::resolve($base, $target);` and then try make it more relative - // by removing a duplicate query. But let's not do that automatically. - return $target; - } - - if ($target->getAuthority() !== '' && $base->getAuthority() !== $target->getAuthority()) { - return $target->withScheme(''); - } - - // We must remove the path before removing the authority because if the path starts with two slashes, the URI - // would turn invalid. And we also cannot set a relative path before removing the authority, as that is also - // invalid. - $emptyPathUri = $target->withScheme('')->withPath('')->withUserInfo('')->withPort(null)->withHost(''); - - if ($base->getPath() !== $target->getPath()) { - return $emptyPathUri->withPath(self::getRelativePath($base, $target)); - } - - if ($base->getQuery() === $target->getQuery()) { - // Only the target fragment is left. And it must be returned even if base and target fragment are the same. - return $emptyPathUri->withQuery(''); - } - - // If the base URI has a query but the target has none, we cannot return an empty path reference as it would - // inherit the base query component when resolving. - if ($target->getQuery() === '') { - $segments = explode('/', $target->getPath()); - $lastSegment = end($segments); - - return $emptyPathUri->withPath($lastSegment === '' ? './' : $lastSegment); - } - - return $emptyPathUri; - } - - private static function getRelativePath(UriInterface $base, UriInterface $target) - { - $sourceSegments = explode('/', $base->getPath()); - $targetSegments = explode('/', $target->getPath()); - array_pop($sourceSegments); - $targetLastSegment = array_pop($targetSegments); - foreach ($sourceSegments as $i => $segment) { - if (isset($targetSegments[$i]) && $segment === $targetSegments[$i]) { - unset($sourceSegments[$i], $targetSegments[$i]); - } else { - break; - } - } - $targetSegments[] = $targetLastSegment; - $relativePath = str_repeat('../', count($sourceSegments)) . implode('/', $targetSegments); - - // A reference to am empty last segment or an empty first sub-segment must be prefixed with "./". - // This also applies to a segment with a colon character (e.g., "file:colon") that cannot be used - // as the first segment of a relative-path reference, as it would be mistaken for a scheme name. - if ('' === $relativePath || false !== strpos(explode('/', $relativePath, 2)[0], ':')) { - $relativePath = "./$relativePath"; - } elseif ('/' === $relativePath[0]) { - if ($base->getAuthority() != '' && $base->getPath() === '') { - // In this case an extra slash is added by resolve() automatically. So we must not add one here. - $relativePath = ".$relativePath"; - } else { - $relativePath = "./$relativePath"; - } - } - - return $relativePath; - } - - private function __construct() - { - // cannot be instantiated - } -} diff --git a/vendor/guzzlehttp/psr7/src/functions.php b/vendor/guzzlehttp/psr7/src/functions.php deleted file mode 100644 index e40348d6..00000000 --- a/vendor/guzzlehttp/psr7/src/functions.php +++ /dev/null @@ -1,828 +0,0 @@ -getMethod() . ' ' - . $message->getRequestTarget()) - . ' HTTP/' . $message->getProtocolVersion(); - if (!$message->hasHeader('host')) { - $msg .= "\r\nHost: " . $message->getUri()->getHost(); - } - } elseif ($message instanceof ResponseInterface) { - $msg = 'HTTP/' . $message->getProtocolVersion() . ' ' - . $message->getStatusCode() . ' ' - . $message->getReasonPhrase(); - } else { - throw new \InvalidArgumentException('Unknown message type'); - } - - foreach ($message->getHeaders() as $name => $values) { - $msg .= "\r\n{$name}: " . implode(', ', $values); - } - - return "{$msg}\r\n\r\n" . $message->getBody(); -} - -/** - * Returns a UriInterface for the given value. - * - * This function accepts a string or {@see Psr\Http\Message\UriInterface} and - * returns a UriInterface for the given value. If the value is already a - * `UriInterface`, it is returned as-is. - * - * @param string|UriInterface $uri - * - * @return UriInterface - * @throws \InvalidArgumentException - */ -function uri_for($uri) -{ - if ($uri instanceof UriInterface) { - return $uri; - } elseif (is_string($uri)) { - return new Uri($uri); - } - - throw new \InvalidArgumentException('URI must be a string or UriInterface'); -} - -/** - * Create a new stream based on the input type. - * - * Options is an associative array that can contain the following keys: - * - metadata: Array of custom metadata. - * - size: Size of the stream. - * - * @param resource|string|null|int|float|bool|StreamInterface|callable $resource Entity body data - * @param array $options Additional options - * - * @return Stream - * @throws \InvalidArgumentException if the $resource arg is not valid. - */ -function stream_for($resource = '', array $options = []) -{ - if (is_scalar($resource)) { - $stream = fopen('php://temp', 'r+'); - if ($resource !== '') { - fwrite($stream, $resource); - fseek($stream, 0); - } - return new Stream($stream, $options); - } - - switch (gettype($resource)) { - case 'resource': - return new Stream($resource, $options); - case 'object': - if ($resource instanceof StreamInterface) { - return $resource; - } elseif ($resource instanceof \Iterator) { - return new PumpStream(function () use ($resource) { - if (!$resource->valid()) { - return false; - } - $result = $resource->current(); - $resource->next(); - return $result; - }, $options); - } elseif (method_exists($resource, '__toString')) { - return stream_for((string) $resource, $options); - } - break; - case 'NULL': - return new Stream(fopen('php://temp', 'r+'), $options); - } - - if (is_callable($resource)) { - return new PumpStream($resource, $options); - } - - throw new \InvalidArgumentException('Invalid resource type: ' . gettype($resource)); -} - -/** - * Parse an array of header values containing ";" separated data into an - * array of associative arrays representing the header key value pair - * data of the header. When a parameter does not contain a value, but just - * contains a key, this function will inject a key with a '' string value. - * - * @param string|array $header Header to parse into components. - * - * @return array Returns the parsed header values. - */ -function parse_header($header) -{ - static $trimmed = "\"' \n\t\r"; - $params = $matches = []; - - foreach (normalize_header($header) as $val) { - $part = []; - foreach (preg_split('/;(?=([^"]*"[^"]*")*[^"]*$)/', $val) as $kvp) { - if (preg_match_all('/<[^>]+>|[^=]+/', $kvp, $matches)) { - $m = $matches[0]; - if (isset($m[1])) { - $part[trim($m[0], $trimmed)] = trim($m[1], $trimmed); - } else { - $part[] = trim($m[0], $trimmed); - } - } - } - if ($part) { - $params[] = $part; - } - } - - return $params; -} - -/** - * Converts an array of header values that may contain comma separated - * headers into an array of headers with no comma separated values. - * - * @param string|array $header Header to normalize. - * - * @return array Returns the normalized header field values. - */ -function normalize_header($header) -{ - if (!is_array($header)) { - return array_map('trim', explode(',', $header)); - } - - $result = []; - foreach ($header as $value) { - foreach ((array) $value as $v) { - if (strpos($v, ',') === false) { - $result[] = $v; - continue; - } - foreach (preg_split('/,(?=([^"]*"[^"]*")*[^"]*$)/', $v) as $vv) { - $result[] = trim($vv); - } - } - } - - return $result; -} - -/** - * Clone and modify a request with the given changes. - * - * The changes can be one of: - * - method: (string) Changes the HTTP method. - * - set_headers: (array) Sets the given headers. - * - remove_headers: (array) Remove the given headers. - * - body: (mixed) Sets the given body. - * - uri: (UriInterface) Set the URI. - * - query: (string) Set the query string value of the URI. - * - version: (string) Set the protocol version. - * - * @param RequestInterface $request Request to clone and modify. - * @param array $changes Changes to apply. - * - * @return RequestInterface - */ -function modify_request(RequestInterface $request, array $changes) -{ - if (!$changes) { - return $request; - } - - $headers = $request->getHeaders(); - - if (!isset($changes['uri'])) { - $uri = $request->getUri(); - } else { - // Remove the host header if one is on the URI - if ($host = $changes['uri']->getHost()) { - $changes['set_headers']['Host'] = $host; - - if ($port = $changes['uri']->getPort()) { - $standardPorts = ['http' => 80, 'https' => 443]; - $scheme = $changes['uri']->getScheme(); - if (isset($standardPorts[$scheme]) && $port != $standardPorts[$scheme]) { - $changes['set_headers']['Host'] .= ':'.$port; - } - } - } - $uri = $changes['uri']; - } - - if (!empty($changes['remove_headers'])) { - $headers = _caseless_remove($changes['remove_headers'], $headers); - } - - if (!empty($changes['set_headers'])) { - $headers = _caseless_remove(array_keys($changes['set_headers']), $headers); - $headers = $changes['set_headers'] + $headers; - } - - if (isset($changes['query'])) { - $uri = $uri->withQuery($changes['query']); - } - - if ($request instanceof ServerRequestInterface) { - return new ServerRequest( - isset($changes['method']) ? $changes['method'] : $request->getMethod(), - $uri, - $headers, - isset($changes['body']) ? $changes['body'] : $request->getBody(), - isset($changes['version']) - ? $changes['version'] - : $request->getProtocolVersion(), - $request->getServerParams() - ); - } - - return new Request( - isset($changes['method']) ? $changes['method'] : $request->getMethod(), - $uri, - $headers, - isset($changes['body']) ? $changes['body'] : $request->getBody(), - isset($changes['version']) - ? $changes['version'] - : $request->getProtocolVersion() - ); -} - -/** - * Attempts to rewind a message body and throws an exception on failure. - * - * The body of the message will only be rewound if a call to `tell()` returns a - * value other than `0`. - * - * @param MessageInterface $message Message to rewind - * - * @throws \RuntimeException - */ -function rewind_body(MessageInterface $message) -{ - $body = $message->getBody(); - - if ($body->tell()) { - $body->rewind(); - } -} - -/** - * Safely opens a PHP stream resource using a filename. - * - * When fopen fails, PHP normally raises a warning. This function adds an - * error handler that checks for errors and throws an exception instead. - * - * @param string $filename File to open - * @param string $mode Mode used to open the file - * - * @return resource - * @throws \RuntimeException if the file cannot be opened - */ -function try_fopen($filename, $mode) -{ - $ex = null; - set_error_handler(function () use ($filename, $mode, &$ex) { - $ex = new \RuntimeException(sprintf( - 'Unable to open %s using mode %s: %s', - $filename, - $mode, - func_get_args()[1] - )); - }); - - $handle = fopen($filename, $mode); - restore_error_handler(); - - if ($ex) { - /** @var $ex \RuntimeException */ - throw $ex; - } - - return $handle; -} - -/** - * Copy the contents of a stream into a string until the given number of - * bytes have been read. - * - * @param StreamInterface $stream Stream to read - * @param int $maxLen Maximum number of bytes to read. Pass -1 - * to read the entire stream. - * @return string - * @throws \RuntimeException on error. - */ -function copy_to_string(StreamInterface $stream, $maxLen = -1) -{ - $buffer = ''; - - if ($maxLen === -1) { - while (!$stream->eof()) { - $buf = $stream->read(1048576); - // Using a loose equality here to match on '' and false. - if ($buf == null) { - break; - } - $buffer .= $buf; - } - return $buffer; - } - - $len = 0; - while (!$stream->eof() && $len < $maxLen) { - $buf = $stream->read($maxLen - $len); - // Using a loose equality here to match on '' and false. - if ($buf == null) { - break; - } - $buffer .= $buf; - $len = strlen($buffer); - } - - return $buffer; -} - -/** - * Copy the contents of a stream into another stream until the given number - * of bytes have been read. - * - * @param StreamInterface $source Stream to read from - * @param StreamInterface $dest Stream to write to - * @param int $maxLen Maximum number of bytes to read. Pass -1 - * to read the entire stream. - * - * @throws \RuntimeException on error. - */ -function copy_to_stream( - StreamInterface $source, - StreamInterface $dest, - $maxLen = -1 -) { - $bufferSize = 8192; - - if ($maxLen === -1) { - while (!$source->eof()) { - if (!$dest->write($source->read($bufferSize))) { - break; - } - } - } else { - $remaining = $maxLen; - while ($remaining > 0 && !$source->eof()) { - $buf = $source->read(min($bufferSize, $remaining)); - $len = strlen($buf); - if (!$len) { - break; - } - $remaining -= $len; - $dest->write($buf); - } - } -} - -/** - * Calculate a hash of a Stream - * - * @param StreamInterface $stream Stream to calculate the hash for - * @param string $algo Hash algorithm (e.g. md5, crc32, etc) - * @param bool $rawOutput Whether or not to use raw output - * - * @return string Returns the hash of the stream - * @throws \RuntimeException on error. - */ -function hash( - StreamInterface $stream, - $algo, - $rawOutput = false -) { - $pos = $stream->tell(); - - if ($pos > 0) { - $stream->rewind(); - } - - $ctx = hash_init($algo); - while (!$stream->eof()) { - hash_update($ctx, $stream->read(1048576)); - } - - $out = hash_final($ctx, (bool) $rawOutput); - $stream->seek($pos); - - return $out; -} - -/** - * Read a line from the stream up to the maximum allowed buffer length - * - * @param StreamInterface $stream Stream to read from - * @param int $maxLength Maximum buffer length - * - * @return string|bool - */ -function readline(StreamInterface $stream, $maxLength = null) -{ - $buffer = ''; - $size = 0; - - while (!$stream->eof()) { - // Using a loose equality here to match on '' and false. - if (null == ($byte = $stream->read(1))) { - return $buffer; - } - $buffer .= $byte; - // Break when a new line is found or the max length - 1 is reached - if ($byte === "\n" || ++$size === $maxLength - 1) { - break; - } - } - - return $buffer; -} - -/** - * Parses a request message string into a request object. - * - * @param string $message Request message string. - * - * @return Request - */ -function parse_request($message) -{ - $data = _parse_message($message); - $matches = []; - if (!preg_match('/^[\S]+\s+([a-zA-Z]+:\/\/|\/).*/', $data['start-line'], $matches)) { - throw new \InvalidArgumentException('Invalid request string'); - } - $parts = explode(' ', $data['start-line'], 3); - $version = isset($parts[2]) ? explode('/', $parts[2])[1] : '1.1'; - - $request = new Request( - $parts[0], - $matches[1] === '/' ? _parse_request_uri($parts[1], $data['headers']) : $parts[1], - $data['headers'], - $data['body'], - $version - ); - - return $matches[1] === '/' ? $request : $request->withRequestTarget($parts[1]); -} - -/** - * Parses a response message string into a response object. - * - * @param string $message Response message string. - * - * @return Response - */ -function parse_response($message) -{ - $data = _parse_message($message); - // According to https://tools.ietf.org/html/rfc7230#section-3.1.2 the space - // between status-code and reason-phrase is required. But browsers accept - // responses without space and reason as well. - if (!preg_match('/^HTTP\/.* [0-9]{3}( .*|$)/', $data['start-line'])) { - throw new \InvalidArgumentException('Invalid response string'); - } - $parts = explode(' ', $data['start-line'], 3); - - return new Response( - $parts[1], - $data['headers'], - $data['body'], - explode('/', $parts[0])[1], - isset($parts[2]) ? $parts[2] : null - ); -} - -/** - * Parse a query string into an associative array. - * - * If multiple values are found for the same key, the value of that key - * value pair will become an array. This function does not parse nested - * PHP style arrays into an associative array (e.g., foo[a]=1&foo[b]=2 will - * be parsed into ['foo[a]' => '1', 'foo[b]' => '2']). - * - * @param string $str Query string to parse - * @param bool|string $urlEncoding How the query string is encoded - * - * @return array - */ -function parse_query($str, $urlEncoding = true) -{ - $result = []; - - if ($str === '') { - return $result; - } - - if ($urlEncoding === true) { - $decoder = function ($value) { - return rawurldecode(str_replace('+', ' ', $value)); - }; - } elseif ($urlEncoding == PHP_QUERY_RFC3986) { - $decoder = 'rawurldecode'; - } elseif ($urlEncoding == PHP_QUERY_RFC1738) { - $decoder = 'urldecode'; - } else { - $decoder = function ($str) { return $str; }; - } - - foreach (explode('&', $str) as $kvp) { - $parts = explode('=', $kvp, 2); - $key = $decoder($parts[0]); - $value = isset($parts[1]) ? $decoder($parts[1]) : null; - if (!isset($result[$key])) { - $result[$key] = $value; - } else { - if (!is_array($result[$key])) { - $result[$key] = [$result[$key]]; - } - $result[$key][] = $value; - } - } - - return $result; -} - -/** - * Build a query string from an array of key value pairs. - * - * This function can use the return value of parse_query() to build a query - * string. This function does not modify the provided keys when an array is - * encountered (like http_build_query would). - * - * @param array $params Query string parameters. - * @param int|false $encoding Set to false to not encode, PHP_QUERY_RFC3986 - * to encode using RFC3986, or PHP_QUERY_RFC1738 - * to encode using RFC1738. - * @return string - */ -function build_query(array $params, $encoding = PHP_QUERY_RFC3986) -{ - if (!$params) { - return ''; - } - - if ($encoding === false) { - $encoder = function ($str) { return $str; }; - } elseif ($encoding === PHP_QUERY_RFC3986) { - $encoder = 'rawurlencode'; - } elseif ($encoding === PHP_QUERY_RFC1738) { - $encoder = 'urlencode'; - } else { - throw new \InvalidArgumentException('Invalid type'); - } - - $qs = ''; - foreach ($params as $k => $v) { - $k = $encoder($k); - if (!is_array($v)) { - $qs .= $k; - if ($v !== null) { - $qs .= '=' . $encoder($v); - } - $qs .= '&'; - } else { - foreach ($v as $vv) { - $qs .= $k; - if ($vv !== null) { - $qs .= '=' . $encoder($vv); - } - $qs .= '&'; - } - } - } - - return $qs ? (string) substr($qs, 0, -1) : ''; -} - -/** - * Determines the mimetype of a file by looking at its extension. - * - * @param $filename - * - * @return null|string - */ -function mimetype_from_filename($filename) -{ - return mimetype_from_extension(pathinfo($filename, PATHINFO_EXTENSION)); -} - -/** - * Maps a file extensions to a mimetype. - * - * @param $extension string The file extension. - * - * @return string|null - * @link http://svn.apache.org/repos/asf/httpd/httpd/branches/1.3.x/conf/mime.types - */ -function mimetype_from_extension($extension) -{ - static $mimetypes = [ - '7z' => 'application/x-7z-compressed', - 'aac' => 'audio/x-aac', - 'ai' => 'application/postscript', - 'aif' => 'audio/x-aiff', - 'asc' => 'text/plain', - 'asf' => 'video/x-ms-asf', - 'atom' => 'application/atom+xml', - 'avi' => 'video/x-msvideo', - 'bmp' => 'image/bmp', - 'bz2' => 'application/x-bzip2', - 'cer' => 'application/pkix-cert', - 'crl' => 'application/pkix-crl', - 'crt' => 'application/x-x509-ca-cert', - 'css' => 'text/css', - 'csv' => 'text/csv', - 'cu' => 'application/cu-seeme', - 'deb' => 'application/x-debian-package', - 'doc' => 'application/msword', - 'docx' => 'application/vnd.openxmlformats-officedocument.wordprocessingml.document', - 'dvi' => 'application/x-dvi', - 'eot' => 'application/vnd.ms-fontobject', - 'eps' => 'application/postscript', - 'epub' => 'application/epub+zip', - 'etx' => 'text/x-setext', - 'flac' => 'audio/flac', - 'flv' => 'video/x-flv', - 'gif' => 'image/gif', - 'gz' => 'application/gzip', - 'htm' => 'text/html', - 'html' => 'text/html', - 'ico' => 'image/x-icon', - 'ics' => 'text/calendar', - 'ini' => 'text/plain', - 'iso' => 'application/x-iso9660-image', - 'jar' => 'application/java-archive', - 'jpe' => 'image/jpeg', - 'jpeg' => 'image/jpeg', - 'jpg' => 'image/jpeg', - 'js' => 'text/javascript', - 'json' => 'application/json', - 'latex' => 'application/x-latex', - 'log' => 'text/plain', - 'm4a' => 'audio/mp4', - 'm4v' => 'video/mp4', - 'mid' => 'audio/midi', - 'midi' => 'audio/midi', - 'mov' => 'video/quicktime', - 'mp3' => 'audio/mpeg', - 'mp4' => 'video/mp4', - 'mp4a' => 'audio/mp4', - 'mp4v' => 'video/mp4', - 'mpe' => 'video/mpeg', - 'mpeg' => 'video/mpeg', - 'mpg' => 'video/mpeg', - 'mpg4' => 'video/mp4', - 'oga' => 'audio/ogg', - 'ogg' => 'audio/ogg', - 'ogv' => 'video/ogg', - 'ogx' => 'application/ogg', - 'pbm' => 'image/x-portable-bitmap', - 'pdf' => 'application/pdf', - 'pgm' => 'image/x-portable-graymap', - 'png' => 'image/png', - 'pnm' => 'image/x-portable-anymap', - 'ppm' => 'image/x-portable-pixmap', - 'ppt' => 'application/vnd.ms-powerpoint', - 'pptx' => 'application/vnd.openxmlformats-officedocument.presentationml.presentation', - 'ps' => 'application/postscript', - 'qt' => 'video/quicktime', - 'rar' => 'application/x-rar-compressed', - 'ras' => 'image/x-cmu-raster', - 'rss' => 'application/rss+xml', - 'rtf' => 'application/rtf', - 'sgm' => 'text/sgml', - 'sgml' => 'text/sgml', - 'svg' => 'image/svg+xml', - 'swf' => 'application/x-shockwave-flash', - 'tar' => 'application/x-tar', - 'tif' => 'image/tiff', - 'tiff' => 'image/tiff', - 'torrent' => 'application/x-bittorrent', - 'ttf' => 'application/x-font-ttf', - 'txt' => 'text/plain', - 'wav' => 'audio/x-wav', - 'webm' => 'video/webm', - 'wma' => 'audio/x-ms-wma', - 'wmv' => 'video/x-ms-wmv', - 'woff' => 'application/x-font-woff', - 'wsdl' => 'application/wsdl+xml', - 'xbm' => 'image/x-xbitmap', - 'xls' => 'application/vnd.ms-excel', - 'xlsx' => 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', - 'xml' => 'application/xml', - 'xpm' => 'image/x-xpixmap', - 'xwd' => 'image/x-xwindowdump', - 'yaml' => 'text/yaml', - 'yml' => 'text/yaml', - 'zip' => 'application/zip', - ]; - - $extension = strtolower($extension); - - return isset($mimetypes[$extension]) - ? $mimetypes[$extension] - : null; -} - -/** - * Parses an HTTP message into an associative array. - * - * The array contains the "start-line" key containing the start line of - * the message, "headers" key containing an associative array of header - * array values, and a "body" key containing the body of the message. - * - * @param string $message HTTP request or response to parse. - * - * @return array - * @internal - */ -function _parse_message($message) -{ - if (!$message) { - throw new \InvalidArgumentException('Invalid message'); - } - - // Iterate over each line in the message, accounting for line endings - $lines = preg_split('/(\\r?\\n)/', $message, -1, PREG_SPLIT_DELIM_CAPTURE); - $result = ['start-line' => array_shift($lines), 'headers' => [], 'body' => '']; - array_shift($lines); - - for ($i = 0, $totalLines = count($lines); $i < $totalLines; $i += 2) { - $line = $lines[$i]; - // If two line breaks were encountered, then this is the end of body - if (empty($line)) { - if ($i < $totalLines - 1) { - $result['body'] = implode('', array_slice($lines, $i + 2)); - } - break; - } - if (strpos($line, ':')) { - $parts = explode(':', $line, 2); - $key = trim($parts[0]); - $value = isset($parts[1]) ? trim($parts[1]) : ''; - $result['headers'][$key][] = $value; - } - } - - return $result; -} - -/** - * Constructs a URI for an HTTP request message. - * - * @param string $path Path from the start-line - * @param array $headers Array of headers (each value an array). - * - * @return string - * @internal - */ -function _parse_request_uri($path, array $headers) -{ - $hostKey = array_filter(array_keys($headers), function ($k) { - return strtolower($k) === 'host'; - }); - - // If no host is found, then a full URI cannot be constructed. - if (!$hostKey) { - return $path; - } - - $host = $headers[reset($hostKey)][0]; - $scheme = substr($host, -4) === ':443' ? 'https' : 'http'; - - return $scheme . '://' . $host . '/' . ltrim($path, '/'); -} - -/** @internal */ -function _caseless_remove($keys, array $data) -{ - $result = []; - - foreach ($keys as &$key) { - $key = strtolower($key); - } - - foreach ($data as $k => $v) { - if (!in_array(strtolower($k), $keys)) { - $result[$k] = $v; - } - } - - return $result; -} diff --git a/vendor/guzzlehttp/psr7/src/functions_include.php b/vendor/guzzlehttp/psr7/src/functions_include.php deleted file mode 100644 index 96a4a83a..00000000 --- a/vendor/guzzlehttp/psr7/src/functions_include.php +++ /dev/null @@ -1,6 +0,0 @@ -ignoringCase()); - -* Fixed Hamcrest_Core_IsInstanceOf to return false for native types. - -* Moved string-based matchers to Hamcrest_Text package. - StringContains, StringEndsWith, StringStartsWith, and SubstringMatcher - -* Hamcrest.php and Hamcrest_Matchers.php are now built from @factory doctags. - Added @factory doctag to every static factory method. - -* Hamcrest_Matchers and Hamcrest.php now import each matcher as-needed - and Hamcrest.php calls the matchers directly instead of Hamcrest_Matchers. - - -== Version 0.3.0: Released Jul 26 2010 == - -* Added running count to Hamcrest_MatcherAssert with methods to get and reset it. - This can be used by unit testing frameworks for reporting. - -* Added Hamcrest_Core_HasToString to assert return value of toString() or __toString(). - - assertThat($anObject, hasToString('foo')); - -* Added Hamcrest_Type_IsScalar to assert is_scalar(). - Matches values of type bool, int, float, double, and string. - - assertThat($count, scalarValue()); - assertThat('foo', scalarValue()); - -* Added Hamcrest_Collection package. - - - IsEmptyTraversable - - IsTraversableWithSize - - assertThat($iterator, emptyTraversable()); - assertThat($iterator, traversableWithSize(5)); - -* Added Hamcrest_Xml_HasXPath to assert XPath expressions or the content of nodes in an XML/HTML DOM. - - assertThat($dom, hasXPath('books/book/title')); - assertThat($dom, hasXPath('books/book[contains(title, "Alice")]', 3)); - assertThat($dom, hasXPath('books/book/title', 'Alice in Wonderland')); - assertThat($dom, hasXPath('count(books/book)', greaterThan(10))); - -* Added aliases to match the Java API. - - hasEntry() -> hasKeyValuePair() - hasValue() -> hasItemInArray() - contains() -> arrayContaining() - containsInAnyOrder() -> arrayContainingInAnyOrder() - -* Added optional subtype to Hamcrest_TypeSafeMatcher to enforce object class or resource type. - -* Hamcrest_TypeSafeDiagnosingMatcher now extends Hamcrest_TypeSafeMatcher. - - -== Version 0.2.0: Released Jul 14 2010 == - -Issues Fixed: 109, 111, 114, 115 - -* Description::appendValues() and appendValueList() accept Iterator and IteratorAggregate. [111] - BaseDescription::appendValue() handles IteratorAggregate. - -* assertThat() accepts a single boolean parameter and - wraps any non-Matcher third parameter with equalTo(). - -* Removed null return value from assertThat(). [114] - -* Fixed wrong variable name in contains(). [109] - -* Added Hamcrest_Core_IsSet to assert isset(). - - assertThat(array('foo' => 'bar'), set('foo')); - assertThat(array('foo' => 'bar'), notSet('bar')); - -* Added Hamcrest_Core_IsTypeOf to assert built-in types with gettype(). [115] - Types: array, boolean, double, integer, null, object, resource, and string. - Note that gettype() returns "double" for float values. - - assertThat($count, typeOf('integer')); - assertThat(3.14159, typeOf('double')); - assertThat(array('foo', 'bar'), typeOf('array')); - assertThat(new stdClass(), typeOf('object')); - -* Added type-specific matchers in new Hamcrest_Type package. - - - IsArray - - IsBoolean - - IsDouble (includes float values) - - IsInteger - - IsObject - - IsResource - - IsString - - assertThat($count, integerValue()); - assertThat(3.14159, floatValue()); - assertThat('foo', stringValue()); - -* Added Hamcrest_Type_IsNumeric to assert is_numeric(). - Matches values of type int and float/double or strings that are formatted as numbers. - - assertThat(5, numericValue()); - assertThat('-5e+3', numericValue()); - -* Added Hamcrest_Type_IsCallable to assert is_callable(). - - assertThat('preg_match', callable()); - assertThat(array('SomeClass', 'SomeMethod'), callable()); - assertThat(array($object, 'SomeMethod'), callable()); - assertThat($object, callable()); - assertThat(function ($x, $y) { return $x + $y; }, callable()); - -* Added Hamcrest_Text_MatchesPattern for regex matching with preg_match(). - - assertThat('foobar', matchesPattern('/o+b/')); - -* Added aliases: - - atLeast() for greaterThanOrEqualTo() - - atMost() for lessThanOrEqualTo() - - -== Version 0.1.0: Released Jul 7 2010 == - -* Created PEAR package - -* Core matchers - diff --git a/vendor/hamcrest/hamcrest-php/LICENSE.txt b/vendor/hamcrest/hamcrest-php/LICENSE.txt deleted file mode 100644 index 91cd329a..00000000 --- a/vendor/hamcrest/hamcrest-php/LICENSE.txt +++ /dev/null @@ -1,27 +0,0 @@ -BSD License - -Copyright (c) 2000-2014, www.hamcrest.org -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - -Redistributions of source code must retain the above copyright notice, this list of -conditions and the following disclaimer. Redistributions in binary form must reproduce -the above copyright notice, this list of conditions and the following disclaimer in -the documentation and/or other materials provided with the distribution. - -Neither the name of Hamcrest nor the names of its contributors may be used to endorse -or promote products derived from this software without specific prior written -permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY -EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES -OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT -SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED -TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR -BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY -WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH -DAMAGE. diff --git a/vendor/hamcrest/hamcrest-php/README.md b/vendor/hamcrest/hamcrest-php/README.md deleted file mode 100644 index 47c24f1f..00000000 --- a/vendor/hamcrest/hamcrest-php/README.md +++ /dev/null @@ -1,51 +0,0 @@ -This is the PHP port of Hamcrest Matchers -========================================= - -[![Scrutinizer Quality Score](https://scrutinizer-ci.com/g/hamcrest/hamcrest-php/badges/quality-score.png?s=754f5c0556419fc6204917ca9a9dcf2fa2b45ed0)](https://scrutinizer-ci.com/g/hamcrest/hamcrest-php/) -[![Build Status](https://travis-ci.org/hamcrest/hamcrest-php.png?branch=master)](https://travis-ci.org/hamcrest/hamcrest-php) -[![Coverage Status](https://coveralls.io/repos/hamcrest/hamcrest-php/badge.png)](https://coveralls.io/r/hamcrest/hamcrest-php) - -Hamcrest is a matching library originally written for Java, but -subsequently ported to many other languages. hamcrest-php is the -official PHP port of Hamcrest and essentially follows a literal -translation of the original Java API for Hamcrest, with a few -Exceptions, mostly down to PHP language barriers: - - 1. `instanceOf($theClass)` is actually `anInstanceOf($theClass)` - - 2. `both(containsString('a'))->and(containsString('b'))` - is actually `both(containsString('a'))->andAlso(containsString('b'))` - - 3. `either(containsString('a'))->or(containsString('b'))` - is actually `either(containsString('a'))->orElse(containsString('b'))` - - 4. Unless it would be non-semantic for a matcher to do so, hamcrest-php - allows dynamic typing for it's input, in "the PHP way". Exception are - where semantics surrounding the type itself would suggest otherwise, - such as stringContains() and greaterThan(). - - 5. Several official matchers have not been ported because they don't - make sense or don't apply in PHP: - - - `typeCompatibleWith($theClass)` - - `eventFrom($source)` - - `hasProperty($name)` ** - - `samePropertyValuesAs($obj)` ** - - 6. When most of the collections matchers are finally ported, PHP-specific - aliases will probably be created due to a difference in naming - conventions between Java's Arrays, Collections, Sets and Maps compared - with PHP's Arrays. - -Usage ------ - -Hamcrest matchers are easy to use as: - -```php -Hamcrest_MatcherAssert::assertThat('a', Hamcrest_Matchers::equalToIgnoringCase('A')); -``` - - ** [Unless we consider POPO's (Plain Old PHP Objects) akin to JavaBeans] - - The POPO thing is a joke. Java devs coin the term POJO's (Plain Old - Java Objects). diff --git a/vendor/hamcrest/hamcrest-php/TODO.txt b/vendor/hamcrest/hamcrest-php/TODO.txt deleted file mode 100644 index 92e1190d..00000000 --- a/vendor/hamcrest/hamcrest-php/TODO.txt +++ /dev/null @@ -1,22 +0,0 @@ -Still TODO Before Complete for PHP ----------------------------------- - -Port: - - - Hamcrest_Collection_* - - IsCollectionWithSize - - IsEmptyCollection - - IsIn - - IsTraversableContainingInAnyOrder - - IsTraversableContainingInOrder - - IsMapContaining (aliases) - -Aliasing/Deprecation (questionable): - - - Find and fix any factory methods that start with "is". - -Namespaces: - - - Investigate adding PHP 5.3+ namespace support in a way that still permits - use in PHP 5.2. - - Other than a parallel codebase, I don't see how this could be possible. diff --git a/vendor/hamcrest/hamcrest-php/composer.json b/vendor/hamcrest/hamcrest-php/composer.json deleted file mode 100644 index a1b48c1f..00000000 --- a/vendor/hamcrest/hamcrest-php/composer.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "name": "hamcrest/hamcrest-php", - "type": "library", - "description": "This is the PHP port of Hamcrest Matchers", - "keywords": ["test"], - "license": "BSD", - "authors": [ - ], - - "autoload": { - "classmap": ["hamcrest"], - "files": ["hamcrest/Hamcrest.php"] - }, - "autoload-dev": { - "classmap": ["tests", "generator"] - }, - - "require": { - "php": ">=5.3.2" - }, - - "require-dev": { - "satooshi/php-coveralls": "dev-master", - "phpunit/php-file-iterator": "1.3.3" - }, - - "replace": { - "kodova/hamcrest-php": "*", - "davedevelopment/hamcrest-php": "*", - "cordoval/hamcrest-php": "*" - } -} diff --git a/vendor/hamcrest/hamcrest-php/generator/FactoryCall.php b/vendor/hamcrest/hamcrest-php/generator/FactoryCall.php deleted file mode 100644 index 83965b2a..00000000 --- a/vendor/hamcrest/hamcrest-php/generator/FactoryCall.php +++ /dev/null @@ -1,41 +0,0 @@ -method = $method; - $this->name = $name; - } - - public function getMethod() - { - return $this->method; - } - - public function getName() - { - return $this->name; - } -} diff --git a/vendor/hamcrest/hamcrest-php/generator/FactoryClass.php b/vendor/hamcrest/hamcrest-php/generator/FactoryClass.php deleted file mode 100644 index 0c6bf78d..00000000 --- a/vendor/hamcrest/hamcrest-php/generator/FactoryClass.php +++ /dev/null @@ -1,72 +0,0 @@ -file = $file; - $this->reflector = $class; - $this->extractFactoryMethods(); - } - - public function extractFactoryMethods() - { - $this->methods = array(); - foreach ($this->getPublicStaticMethods() as $method) { - if ($method->isFactory()) { -// echo $this->getName() . '::' . $method->getName() . ' : ' . count($method->getCalls()) . PHP_EOL; - $this->methods[] = $method; - } - } - } - - public function getPublicStaticMethods() - { - $methods = array(); - foreach ($this->reflector->getMethods(ReflectionMethod::IS_STATIC) as $method) { - if ($method->isPublic() && $method->getDeclaringClass() == $this->reflector) { - $methods[] = new FactoryMethod($this, $method); - } - } - return $methods; - } - - public function getFile() - { - return $this->file; - } - - public function getName() - { - return $this->reflector->name; - } - - public function isFactory() - { - return !empty($this->methods); - } - - public function getMethods() - { - return $this->methods; - } -} diff --git a/vendor/hamcrest/hamcrest-php/generator/FactoryFile.php b/vendor/hamcrest/hamcrest-php/generator/FactoryFile.php deleted file mode 100644 index ac3d6c7d..00000000 --- a/vendor/hamcrest/hamcrest-php/generator/FactoryFile.php +++ /dev/null @@ -1,122 +0,0 @@ -file = $file; - $this->indent = $indent; - } - - abstract public function addCall(FactoryCall $call); - - abstract public function build(); - - public function addFileHeader() - { - $this->code = ''; - $this->addPart('file_header'); - } - - public function addPart($name) - { - $this->addCode($this->readPart($name)); - } - - public function addCode($code) - { - $this->code .= $code; - } - - public function readPart($name) - { - return file_get_contents(__DIR__ . "/parts/$name.txt"); - } - - public function generateFactoryCall(FactoryCall $call) - { - $method = $call->getMethod(); - $code = $method->getComment($this->indent) . PHP_EOL; - $code .= $this->generateDeclaration($call->getName(), $method); - // $code .= $this->generateImport($method); - $code .= $this->generateCall($method); - $code .= $this->generateClosing(); - return $code; - } - - public function generateDeclaration($name, FactoryMethod $method) - { - $code = $this->indent . $this->getDeclarationModifiers() - . 'function ' . $name . '(' - . $this->generateDeclarationArguments($method) - . ')' . PHP_EOL . $this->indent . '{' . PHP_EOL; - return $code; - } - - public function getDeclarationModifiers() - { - return ''; - } - - public function generateDeclarationArguments(FactoryMethod $method) - { - if ($method->acceptsVariableArguments()) { - return '/* args... */'; - } else { - return $method->getParameterDeclarations(); - } - } - - public function generateImport(FactoryMethod $method) - { - return $this->indent . self::INDENT . "require_once '" . $method->getClass()->getFile() . "';" . PHP_EOL; - } - - public function generateCall(FactoryMethod $method) - { - $code = ''; - if ($method->acceptsVariableArguments()) { - $code .= $this->indent . self::INDENT . '$args = func_get_args();' . PHP_EOL; - } - - $code .= $this->indent . self::INDENT . 'return '; - if ($method->acceptsVariableArguments()) { - $code .= 'call_user_func_array(array(\'' - . '\\' . $method->getClassName() . '\', \'' - . $method->getName() . '\'), $args);' . PHP_EOL; - } else { - $code .= '\\' . $method->getClassName() . '::' - . $method->getName() . '(' - . $method->getParameterInvocations() . ');' . PHP_EOL; - } - - return $code; - } - - public function generateClosing() - { - return $this->indent . '}' . PHP_EOL; - } - - public function write() - { - file_put_contents($this->file, $this->code); - } -} diff --git a/vendor/hamcrest/hamcrest-php/generator/FactoryGenerator.php b/vendor/hamcrest/hamcrest-php/generator/FactoryGenerator.php deleted file mode 100644 index 37f80b6e..00000000 --- a/vendor/hamcrest/hamcrest-php/generator/FactoryGenerator.php +++ /dev/null @@ -1,115 +0,0 @@ -path = $path; - $this->factoryFiles = array(); - } - - public function addFactoryFile(FactoryFile $factoryFile) - { - $this->factoryFiles[] = $factoryFile; - } - - public function generate() - { - $classes = $this->getClassesWithFactoryMethods(); - foreach ($classes as $class) { - foreach ($class->getMethods() as $method) { - foreach ($method->getCalls() as $call) { - foreach ($this->factoryFiles as $file) { - $file->addCall($call); - } - } - } - } - } - - public function write() - { - foreach ($this->factoryFiles as $file) { - $file->build(); - $file->write(); - } - } - - public function getClassesWithFactoryMethods() - { - $classes = array(); - $files = $this->getSortedFiles(); - foreach ($files as $file) { - $class = $this->getFactoryClass($file); - if ($class !== null) { - $classes[] = $class; - } - } - - return $classes; - } - - public function getSortedFiles() - { - $iter = \File_Iterator_Factory::getFileIterator($this->path, '.php'); - $files = array(); - foreach ($iter as $file) { - $files[] = $file; - } - sort($files, SORT_STRING); - - return $files; - } - - public function getFactoryClass($file) - { - $name = $this->getFactoryClassName($file); - if ($name !== null) { - require_once $file; - - if (class_exists($name)) { - $class = new FactoryClass(substr($file, strpos($file, 'Hamcrest/')), new ReflectionClass($name)); - if ($class->isFactory()) { - return $class; - } - } - } - - return null; - } - - public function getFactoryClassName($file) - { - $content = file_get_contents($file); - if (preg_match('/namespace\s+(.+);/', $content, $namespace) - && preg_match('/\n\s*class\s+(\w+)\s+extends\b/', $content, $className) - && preg_match('/@factory\b/', $content) - ) { - return $namespace[1] . '\\' . $className[1]; - } - - return null; - } -} diff --git a/vendor/hamcrest/hamcrest-php/generator/FactoryMethod.php b/vendor/hamcrest/hamcrest-php/generator/FactoryMethod.php deleted file mode 100644 index 44f8dc51..00000000 --- a/vendor/hamcrest/hamcrest-php/generator/FactoryMethod.php +++ /dev/null @@ -1,231 +0,0 @@ -class = $class; - $this->reflector = $reflector; - $this->extractCommentWithoutLeadingShashesAndStars(); - $this->extractFactoryNamesFromComment(); - $this->extractParameters(); - } - - public function extractCommentWithoutLeadingShashesAndStars() - { - $this->comment = explode("\n", $this->reflector->getDocComment()); - foreach ($this->comment as &$line) { - $line = preg_replace('#^\s*(/\\*+|\\*+/|\\*)\s?#', '', $line); - } - $this->trimLeadingBlankLinesFromComment(); - $this->trimTrailingBlankLinesFromComment(); - } - - public function trimLeadingBlankLinesFromComment() - { - while (count($this->comment) > 0) { - $line = array_shift($this->comment); - if (trim($line) != '') { - array_unshift($this->comment, $line); - break; - } - } - } - - public function trimTrailingBlankLinesFromComment() - { - while (count($this->comment) > 0) { - $line = array_pop($this->comment); - if (trim($line) != '') { - array_push($this->comment, $line); - break; - } - } - } - - public function extractFactoryNamesFromComment() - { - $this->calls = array(); - for ($i = 0; $i < count($this->comment); $i++) { - if ($this->extractFactoryNamesFromLine($this->comment[$i])) { - unset($this->comment[$i]); - } - } - $this->trimTrailingBlankLinesFromComment(); - } - - public function extractFactoryNamesFromLine($line) - { - if (preg_match('/^\s*@factory(\s+(.+))?$/', $line, $match)) { - $this->createCalls( - $this->extractFactoryNamesFromAnnotation( - isset($match[2]) ? trim($match[2]) : null - ) - ); - return true; - } - return false; - } - - public function extractFactoryNamesFromAnnotation($value) - { - $primaryName = $this->reflector->getName(); - if (empty($value)) { - return array($primaryName); - } - preg_match_all('/(\.{3}|-|[a-zA-Z_][a-zA-Z_0-9]*)/', $value, $match); - $names = $match[0]; - if (in_array('...', $names)) { - $this->isVarArgs = true; - } - if (!in_array('-', $names) && !in_array($primaryName, $names)) { - array_unshift($names, $primaryName); - } - return $names; - } - - public function createCalls(array $names) - { - $names = array_unique($names); - foreach ($names as $name) { - if ($name != '-' && $name != '...') { - $this->calls[] = new FactoryCall($this, $name); - } - } - } - - public function extractParameters() - { - $this->parameters = array(); - if (!$this->isVarArgs) { - foreach ($this->reflector->getParameters() as $parameter) { - $this->parameters[] = new FactoryParameter($this, $parameter); - } - } - } - - public function getParameterDeclarations() - { - if ($this->isVarArgs || !$this->hasParameters()) { - return ''; - } - $params = array(); - foreach ($this->parameters as /** @var $parameter FactoryParameter */ - $parameter) { - $params[] = $parameter->getDeclaration(); - } - return implode(', ', $params); - } - - public function getParameterInvocations() - { - if ($this->isVarArgs) { - return ''; - } - $params = array(); - foreach ($this->parameters as $parameter) { - $params[] = $parameter->getInvocation(); - } - return implode(', ', $params); - } - - - public function getClass() - { - return $this->class; - } - - public function getClassName() - { - return $this->class->getName(); - } - - public function getName() - { - return $this->reflector->name; - } - - public function isFactory() - { - return count($this->calls) > 0; - } - - public function getCalls() - { - return $this->calls; - } - - public function acceptsVariableArguments() - { - return $this->isVarArgs; - } - - public function hasParameters() - { - return !empty($this->parameters); - } - - public function getParameters() - { - return $this->parameters; - } - - public function getFullName() - { - return $this->getClassName() . '::' . $this->getName(); - } - - public function getCommentText() - { - return implode(PHP_EOL, $this->comment); - } - - public function getComment($indent = '') - { - $comment = $indent . '/**'; - foreach ($this->comment as $line) { - $comment .= PHP_EOL . rtrim($indent . ' * ' . $line); - } - $comment .= PHP_EOL . $indent . ' */'; - return $comment; - } -} diff --git a/vendor/hamcrest/hamcrest-php/generator/FactoryParameter.php b/vendor/hamcrest/hamcrest-php/generator/FactoryParameter.php deleted file mode 100644 index 93a76b38..00000000 --- a/vendor/hamcrest/hamcrest-php/generator/FactoryParameter.php +++ /dev/null @@ -1,69 +0,0 @@ -method = $method; - $this->reflector = $reflector; - } - - public function getDeclaration() - { - if ($this->reflector->isArray()) { - $code = 'array '; - } else { - $class = $this->reflector->getClass(); - if ($class !== null) { - $code = '\\' . $class->name . ' '; - } else { - $code = ''; - } - } - $code .= '$' . $this->reflector->name; - if ($this->reflector->isOptional()) { - $default = $this->reflector->getDefaultValue(); - if (is_null($default)) { - $default = 'null'; - } elseif (is_bool($default)) { - $default = $default ? 'true' : 'false'; - } elseif (is_string($default)) { - $default = "'" . $default . "'"; - } elseif (is_numeric($default)) { - $default = strval($default); - } elseif (is_array($default)) { - $default = 'array()'; - } else { - echo 'Warning: unknown default type for ' . $this->getMethod()->getFullName() . PHP_EOL; - var_dump($default); - $default = 'null'; - } - $code .= ' = ' . $default; - } - return $code; - } - - public function getInvocation() - { - return '$' . $this->reflector->name; - } - - public function getMethod() - { - return $this->method; - } -} diff --git a/vendor/hamcrest/hamcrest-php/generator/GlobalFunctionFile.php b/vendor/hamcrest/hamcrest-php/generator/GlobalFunctionFile.php deleted file mode 100644 index 5ee1b69f..00000000 --- a/vendor/hamcrest/hamcrest-php/generator/GlobalFunctionFile.php +++ /dev/null @@ -1,42 +0,0 @@ -functions = ''; - } - - public function addCall(FactoryCall $call) - { - $this->functions .= PHP_EOL . $this->generateFactoryCall($call); - } - - public function build() - { - $this->addFileHeader(); - $this->addPart('functions_imports'); - $this->addPart('functions_header'); - $this->addCode($this->functions); - $this->addPart('functions_footer'); - } - - public function generateFactoryCall(FactoryCall $call) - { - $code = "if (!function_exists('{$call->getName()}')) {"; - $code.= parent::generateFactoryCall($call); - $code.= "}\n"; - - return $code; - } -} diff --git a/vendor/hamcrest/hamcrest-php/generator/StaticMethodFile.php b/vendor/hamcrest/hamcrest-php/generator/StaticMethodFile.php deleted file mode 100644 index 44cec02f..00000000 --- a/vendor/hamcrest/hamcrest-php/generator/StaticMethodFile.php +++ /dev/null @@ -1,38 +0,0 @@ -methods = ''; - } - - public function addCall(FactoryCall $call) - { - $this->methods .= PHP_EOL . $this->generateFactoryCall($call); - } - - public function getDeclarationModifiers() - { - return 'public static '; - } - - public function build() - { - $this->addFileHeader(); - $this->addPart('matchers_imports'); - $this->addPart('matchers_header'); - $this->addCode($this->methods); - $this->addPart('matchers_footer'); - } -} diff --git a/vendor/hamcrest/hamcrest-php/generator/parts/file_header.txt b/vendor/hamcrest/hamcrest-php/generator/parts/file_header.txt deleted file mode 100644 index 7b352e44..00000000 --- a/vendor/hamcrest/hamcrest-php/generator/parts/file_header.txt +++ /dev/null @@ -1,7 +0,0 @@ - - * //With an identifier - * assertThat("assertion identifier", $apple->flavour(), equalTo("tasty")); - * //Without an identifier - * assertThat($apple->flavour(), equalTo("tasty")); - * //Evaluating a boolean expression - * assertThat("some error", $a > $b); - * - */ - function assertThat() - { - $args = func_get_args(); - call_user_func_array( - array('Hamcrest\MatcherAssert', 'assertThat'), - $args - ); - } -} diff --git a/vendor/hamcrest/hamcrest-php/generator/parts/functions_imports.txt b/vendor/hamcrest/hamcrest-php/generator/parts/functions_imports.txt deleted file mode 100644 index e69de29b..00000000 diff --git a/vendor/hamcrest/hamcrest-php/generator/parts/matchers_footer.txt b/vendor/hamcrest/hamcrest-php/generator/parts/matchers_footer.txt deleted file mode 100644 index 5c34318c..00000000 --- a/vendor/hamcrest/hamcrest-php/generator/parts/matchers_footer.txt +++ /dev/null @@ -1 +0,0 @@ -} diff --git a/vendor/hamcrest/hamcrest-php/generator/parts/matchers_header.txt b/vendor/hamcrest/hamcrest-php/generator/parts/matchers_header.txt deleted file mode 100644 index 4f8bb2b7..00000000 --- a/vendor/hamcrest/hamcrest-php/generator/parts/matchers_header.txt +++ /dev/null @@ -1,7 +0,0 @@ - - -/** - * A series of static factories for all hamcrest matchers. - */ -class Matchers -{ diff --git a/vendor/hamcrest/hamcrest-php/generator/parts/matchers_imports.txt b/vendor/hamcrest/hamcrest-php/generator/parts/matchers_imports.txt deleted file mode 100644 index 7dd68495..00000000 --- a/vendor/hamcrest/hamcrest-php/generator/parts/matchers_imports.txt +++ /dev/null @@ -1,2 +0,0 @@ - -namespace Hamcrest; \ No newline at end of file diff --git a/vendor/hamcrest/hamcrest-php/generator/run.php b/vendor/hamcrest/hamcrest-php/generator/run.php deleted file mode 100644 index 924d752f..00000000 --- a/vendor/hamcrest/hamcrest-php/generator/run.php +++ /dev/null @@ -1,37 +0,0 @@ -addFactoryFile(new StaticMethodFile(STATIC_MATCHERS_FILE)); -$generator->addFactoryFile(new GlobalFunctionFile(GLOBAL_FUNCTIONS_FILE)); -$generator->generate(); -$generator->write(); diff --git a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest.php b/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest.php deleted file mode 100644 index 8a719eb3..00000000 --- a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest.php +++ /dev/null @@ -1,805 +0,0 @@ - - * //With an identifier - * assertThat("assertion identifier", $apple->flavour(), equalTo("tasty")); - * //Without an identifier - * assertThat($apple->flavour(), equalTo("tasty")); - * //Evaluating a boolean expression - * assertThat("some error", $a > $b); - * - */ - function assertThat() - { - $args = func_get_args(); - call_user_func_array( - array('Hamcrest\MatcherAssert', 'assertThat'), - $args - ); - } -} - -if (!function_exists('anArray')) { /** - * Evaluates to true only if each $matcher[$i] is satisfied by $array[$i]. - */ - function anArray(/* args... */) - { - $args = func_get_args(); - return call_user_func_array(array('\Hamcrest\Arrays\IsArray', 'anArray'), $args); - } -} - -if (!function_exists('hasItemInArray')) { /** - * Evaluates to true if any item in an array satisfies the given matcher. - * - * @param mixed $item as a {@link Hamcrest\Matcher} or a value. - * - * @return \Hamcrest\Arrays\IsArrayContaining - */ - function hasItemInArray($item) - { - return \Hamcrest\Arrays\IsArrayContaining::hasItemInArray($item); - } -} - -if (!function_exists('hasValue')) { /** - * Evaluates to true if any item in an array satisfies the given matcher. - * - * @param mixed $item as a {@link Hamcrest\Matcher} or a value. - * - * @return \Hamcrest\Arrays\IsArrayContaining - */ - function hasValue($item) - { - return \Hamcrest\Arrays\IsArrayContaining::hasItemInArray($item); - } -} - -if (!function_exists('arrayContainingInAnyOrder')) { /** - * An array with elements that match the given matchers. - */ - function arrayContainingInAnyOrder(/* args... */) - { - $args = func_get_args(); - return call_user_func_array(array('\Hamcrest\Arrays\IsArrayContainingInAnyOrder', 'arrayContainingInAnyOrder'), $args); - } -} - -if (!function_exists('containsInAnyOrder')) { /** - * An array with elements that match the given matchers. - */ - function containsInAnyOrder(/* args... */) - { - $args = func_get_args(); - return call_user_func_array(array('\Hamcrest\Arrays\IsArrayContainingInAnyOrder', 'arrayContainingInAnyOrder'), $args); - } -} - -if (!function_exists('arrayContaining')) { /** - * An array with elements that match the given matchers in the same order. - */ - function arrayContaining(/* args... */) - { - $args = func_get_args(); - return call_user_func_array(array('\Hamcrest\Arrays\IsArrayContainingInOrder', 'arrayContaining'), $args); - } -} - -if (!function_exists('contains')) { /** - * An array with elements that match the given matchers in the same order. - */ - function contains(/* args... */) - { - $args = func_get_args(); - return call_user_func_array(array('\Hamcrest\Arrays\IsArrayContainingInOrder', 'arrayContaining'), $args); - } -} - -if (!function_exists('hasKeyInArray')) { /** - * Evaluates to true if any key in an array matches the given matcher. - * - * @param mixed $key as a {@link Hamcrest\Matcher} or a value. - * - * @return \Hamcrest\Arrays\IsArrayContainingKey - */ - function hasKeyInArray($key) - { - return \Hamcrest\Arrays\IsArrayContainingKey::hasKeyInArray($key); - } -} - -if (!function_exists('hasKey')) { /** - * Evaluates to true if any key in an array matches the given matcher. - * - * @param mixed $key as a {@link Hamcrest\Matcher} or a value. - * - * @return \Hamcrest\Arrays\IsArrayContainingKey - */ - function hasKey($key) - { - return \Hamcrest\Arrays\IsArrayContainingKey::hasKeyInArray($key); - } -} - -if (!function_exists('hasKeyValuePair')) { /** - * Test if an array has both an key and value in parity with each other. - */ - function hasKeyValuePair($key, $value) - { - return \Hamcrest\Arrays\IsArrayContainingKeyValuePair::hasKeyValuePair($key, $value); - } -} - -if (!function_exists('hasEntry')) { /** - * Test if an array has both an key and value in parity with each other. - */ - function hasEntry($key, $value) - { - return \Hamcrest\Arrays\IsArrayContainingKeyValuePair::hasKeyValuePair($key, $value); - } -} - -if (!function_exists('arrayWithSize')) { /** - * Does array size satisfy a given matcher? - * - * @param \Hamcrest\Matcher|int $size as a {@link Hamcrest\Matcher} or a value. - * - * @return \Hamcrest\Arrays\IsArrayWithSize - */ - function arrayWithSize($size) - { - return \Hamcrest\Arrays\IsArrayWithSize::arrayWithSize($size); - } -} - -if (!function_exists('emptyArray')) { /** - * Matches an empty array. - */ - function emptyArray() - { - return \Hamcrest\Arrays\IsArrayWithSize::emptyArray(); - } -} - -if (!function_exists('nonEmptyArray')) { /** - * Matches an empty array. - */ - function nonEmptyArray() - { - return \Hamcrest\Arrays\IsArrayWithSize::nonEmptyArray(); - } -} - -if (!function_exists('emptyTraversable')) { /** - * Returns true if traversable is empty. - */ - function emptyTraversable() - { - return \Hamcrest\Collection\IsEmptyTraversable::emptyTraversable(); - } -} - -if (!function_exists('nonEmptyTraversable')) { /** - * Returns true if traversable is not empty. - */ - function nonEmptyTraversable() - { - return \Hamcrest\Collection\IsEmptyTraversable::nonEmptyTraversable(); - } -} - -if (!function_exists('traversableWithSize')) { /** - * Does traversable size satisfy a given matcher? - */ - function traversableWithSize($size) - { - return \Hamcrest\Collection\IsTraversableWithSize::traversableWithSize($size); - } -} - -if (!function_exists('allOf')) { /** - * Evaluates to true only if ALL of the passed in matchers evaluate to true. - */ - function allOf(/* args... */) - { - $args = func_get_args(); - return call_user_func_array(array('\Hamcrest\Core\AllOf', 'allOf'), $args); - } -} - -if (!function_exists('anyOf')) { /** - * Evaluates to true if ANY of the passed in matchers evaluate to true. - */ - function anyOf(/* args... */) - { - $args = func_get_args(); - return call_user_func_array(array('\Hamcrest\Core\AnyOf', 'anyOf'), $args); - } -} - -if (!function_exists('noneOf')) { /** - * Evaluates to false if ANY of the passed in matchers evaluate to true. - */ - function noneOf(/* args... */) - { - $args = func_get_args(); - return call_user_func_array(array('\Hamcrest\Core\AnyOf', 'noneOf'), $args); - } -} - -if (!function_exists('both')) { /** - * This is useful for fluently combining matchers that must both pass. - * For example: - *
-     *   assertThat($string, both(containsString("a"))->andAlso(containsString("b")));
-     * 
- */ - function both(\Hamcrest\Matcher $matcher) - { - return \Hamcrest\Core\CombinableMatcher::both($matcher); - } -} - -if (!function_exists('either')) { /** - * This is useful for fluently combining matchers where either may pass, - * for example: - *
-     *   assertThat($string, either(containsString("a"))->orElse(containsString("b")));
-     * 
- */ - function either(\Hamcrest\Matcher $matcher) - { - return \Hamcrest\Core\CombinableMatcher::either($matcher); - } -} - -if (!function_exists('describedAs')) { /** - * Wraps an existing matcher and overrides the description when it fails. - */ - function describedAs(/* args... */) - { - $args = func_get_args(); - return call_user_func_array(array('\Hamcrest\Core\DescribedAs', 'describedAs'), $args); - } -} - -if (!function_exists('everyItem')) { /** - * @param Matcher $itemMatcher - * A matcher to apply to every element in an array. - * - * @return \Hamcrest\Core\Every - * Evaluates to TRUE for a collection in which every item matches $itemMatcher - */ - function everyItem(\Hamcrest\Matcher $itemMatcher) - { - return \Hamcrest\Core\Every::everyItem($itemMatcher); - } -} - -if (!function_exists('hasToString')) { /** - * Does array size satisfy a given matcher? - */ - function hasToString($matcher) - { - return \Hamcrest\Core\HasToString::hasToString($matcher); - } -} - -if (!function_exists('is')) { /** - * Decorates another Matcher, retaining the behavior but allowing tests - * to be slightly more expressive. - * - * For example: assertThat($cheese, equalTo($smelly)) - * vs. assertThat($cheese, is(equalTo($smelly))) - */ - function is($value) - { - return \Hamcrest\Core\Is::is($value); - } -} - -if (!function_exists('anything')) { /** - * This matcher always evaluates to true. - * - * @param string $description A meaningful string used when describing itself. - * - * @return \Hamcrest\Core\IsAnything - */ - function anything($description = 'ANYTHING') - { - return \Hamcrest\Core\IsAnything::anything($description); - } -} - -if (!function_exists('hasItem')) { /** - * Test if the value is an array containing this matcher. - * - * Example: - *
-     * assertThat(array('a', 'b'), hasItem(equalTo('b')));
-     * //Convenience defaults to equalTo()
-     * assertThat(array('a', 'b'), hasItem('b'));
-     * 
- */ - function hasItem(/* args... */) - { - $args = func_get_args(); - return call_user_func_array(array('\Hamcrest\Core\IsCollectionContaining', 'hasItem'), $args); - } -} - -if (!function_exists('hasItems')) { /** - * Test if the value is an array containing elements that match all of these - * matchers. - * - * Example: - *
-     * assertThat(array('a', 'b', 'c'), hasItems(equalTo('a'), equalTo('b')));
-     * 
- */ - function hasItems(/* args... */) - { - $args = func_get_args(); - return call_user_func_array(array('\Hamcrest\Core\IsCollectionContaining', 'hasItems'), $args); - } -} - -if (!function_exists('equalTo')) { /** - * Is the value equal to another value, as tested by the use of the "==" - * comparison operator? - */ - function equalTo($item) - { - return \Hamcrest\Core\IsEqual::equalTo($item); - } -} - -if (!function_exists('identicalTo')) { /** - * Tests of the value is identical to $value as tested by the "===" operator. - */ - function identicalTo($value) - { - return \Hamcrest\Core\IsIdentical::identicalTo($value); - } -} - -if (!function_exists('anInstanceOf')) { /** - * Is the value an instance of a particular type? - * This version assumes no relationship between the required type and - * the signature of the method that sets it up, for example in - * assertThat($anObject, anInstanceOf('Thing')); - */ - function anInstanceOf($theClass) - { - return \Hamcrest\Core\IsInstanceOf::anInstanceOf($theClass); - } -} - -if (!function_exists('any')) { /** - * Is the value an instance of a particular type? - * This version assumes no relationship between the required type and - * the signature of the method that sets it up, for example in - * assertThat($anObject, anInstanceOf('Thing')); - */ - function any($theClass) - { - return \Hamcrest\Core\IsInstanceOf::anInstanceOf($theClass); - } -} - -if (!function_exists('not')) { /** - * Matches if value does not match $value. - */ - function not($value) - { - return \Hamcrest\Core\IsNot::not($value); - } -} - -if (!function_exists('nullValue')) { /** - * Matches if value is null. - */ - function nullValue() - { - return \Hamcrest\Core\IsNull::nullValue(); - } -} - -if (!function_exists('notNullValue')) { /** - * Matches if value is not null. - */ - function notNullValue() - { - return \Hamcrest\Core\IsNull::notNullValue(); - } -} - -if (!function_exists('sameInstance')) { /** - * Creates a new instance of IsSame. - * - * @param mixed $object - * The predicate evaluates to true only when the argument is - * this object. - * - * @return \Hamcrest\Core\IsSame - */ - function sameInstance($object) - { - return \Hamcrest\Core\IsSame::sameInstance($object); - } -} - -if (!function_exists('typeOf')) { /** - * Is the value a particular built-in type? - */ - function typeOf($theType) - { - return \Hamcrest\Core\IsTypeOf::typeOf($theType); - } -} - -if (!function_exists('set')) { /** - * Matches if value (class, object, or array) has named $property. - */ - function set($property) - { - return \Hamcrest\Core\Set::set($property); - } -} - -if (!function_exists('notSet')) { /** - * Matches if value (class, object, or array) does not have named $property. - */ - function notSet($property) - { - return \Hamcrest\Core\Set::notSet($property); - } -} - -if (!function_exists('closeTo')) { /** - * Matches if value is a number equal to $value within some range of - * acceptable error $delta. - */ - function closeTo($value, $delta) - { - return \Hamcrest\Number\IsCloseTo::closeTo($value, $delta); - } -} - -if (!function_exists('comparesEqualTo')) { /** - * The value is not > $value, nor < $value. - */ - function comparesEqualTo($value) - { - return \Hamcrest\Number\OrderingComparison::comparesEqualTo($value); - } -} - -if (!function_exists('greaterThan')) { /** - * The value is > $value. - */ - function greaterThan($value) - { - return \Hamcrest\Number\OrderingComparison::greaterThan($value); - } -} - -if (!function_exists('greaterThanOrEqualTo')) { /** - * The value is >= $value. - */ - function greaterThanOrEqualTo($value) - { - return \Hamcrest\Number\OrderingComparison::greaterThanOrEqualTo($value); - } -} - -if (!function_exists('atLeast')) { /** - * The value is >= $value. - */ - function atLeast($value) - { - return \Hamcrest\Number\OrderingComparison::greaterThanOrEqualTo($value); - } -} - -if (!function_exists('lessThan')) { /** - * The value is < $value. - */ - function lessThan($value) - { - return \Hamcrest\Number\OrderingComparison::lessThan($value); - } -} - -if (!function_exists('lessThanOrEqualTo')) { /** - * The value is <= $value. - */ - function lessThanOrEqualTo($value) - { - return \Hamcrest\Number\OrderingComparison::lessThanOrEqualTo($value); - } -} - -if (!function_exists('atMost')) { /** - * The value is <= $value. - */ - function atMost($value) - { - return \Hamcrest\Number\OrderingComparison::lessThanOrEqualTo($value); - } -} - -if (!function_exists('isEmptyString')) { /** - * Matches if value is a zero-length string. - */ - function isEmptyString() - { - return \Hamcrest\Text\IsEmptyString::isEmptyString(); - } -} - -if (!function_exists('emptyString')) { /** - * Matches if value is a zero-length string. - */ - function emptyString() - { - return \Hamcrest\Text\IsEmptyString::isEmptyString(); - } -} - -if (!function_exists('isEmptyOrNullString')) { /** - * Matches if value is null or a zero-length string. - */ - function isEmptyOrNullString() - { - return \Hamcrest\Text\IsEmptyString::isEmptyOrNullString(); - } -} - -if (!function_exists('nullOrEmptyString')) { /** - * Matches if value is null or a zero-length string. - */ - function nullOrEmptyString() - { - return \Hamcrest\Text\IsEmptyString::isEmptyOrNullString(); - } -} - -if (!function_exists('isNonEmptyString')) { /** - * Matches if value is a non-zero-length string. - */ - function isNonEmptyString() - { - return \Hamcrest\Text\IsEmptyString::isNonEmptyString(); - } -} - -if (!function_exists('nonEmptyString')) { /** - * Matches if value is a non-zero-length string. - */ - function nonEmptyString() - { - return \Hamcrest\Text\IsEmptyString::isNonEmptyString(); - } -} - -if (!function_exists('equalToIgnoringCase')) { /** - * Matches if value is a string equal to $string, regardless of the case. - */ - function equalToIgnoringCase($string) - { - return \Hamcrest\Text\IsEqualIgnoringCase::equalToIgnoringCase($string); - } -} - -if (!function_exists('equalToIgnoringWhiteSpace')) { /** - * Matches if value is a string equal to $string, regardless of whitespace. - */ - function equalToIgnoringWhiteSpace($string) - { - return \Hamcrest\Text\IsEqualIgnoringWhiteSpace::equalToIgnoringWhiteSpace($string); - } -} - -if (!function_exists('matchesPattern')) { /** - * Matches if value is a string that matches regular expression $pattern. - */ - function matchesPattern($pattern) - { - return \Hamcrest\Text\MatchesPattern::matchesPattern($pattern); - } -} - -if (!function_exists('containsString')) { /** - * Matches if value is a string that contains $substring. - */ - function containsString($substring) - { - return \Hamcrest\Text\StringContains::containsString($substring); - } -} - -if (!function_exists('containsStringIgnoringCase')) { /** - * Matches if value is a string that contains $substring regardless of the case. - */ - function containsStringIgnoringCase($substring) - { - return \Hamcrest\Text\StringContainsIgnoringCase::containsStringIgnoringCase($substring); - } -} - -if (!function_exists('stringContainsInOrder')) { /** - * Matches if value contains $substrings in a constrained order. - */ - function stringContainsInOrder(/* args... */) - { - $args = func_get_args(); - return call_user_func_array(array('\Hamcrest\Text\StringContainsInOrder', 'stringContainsInOrder'), $args); - } -} - -if (!function_exists('endsWith')) { /** - * Matches if value is a string that ends with $substring. - */ - function endsWith($substring) - { - return \Hamcrest\Text\StringEndsWith::endsWith($substring); - } -} - -if (!function_exists('startsWith')) { /** - * Matches if value is a string that starts with $substring. - */ - function startsWith($substring) - { - return \Hamcrest\Text\StringStartsWith::startsWith($substring); - } -} - -if (!function_exists('arrayValue')) { /** - * Is the value an array? - */ - function arrayValue() - { - return \Hamcrest\Type\IsArray::arrayValue(); - } -} - -if (!function_exists('booleanValue')) { /** - * Is the value a boolean? - */ - function booleanValue() - { - return \Hamcrest\Type\IsBoolean::booleanValue(); - } -} - -if (!function_exists('boolValue')) { /** - * Is the value a boolean? - */ - function boolValue() - { - return \Hamcrest\Type\IsBoolean::booleanValue(); - } -} - -if (!function_exists('callableValue')) { /** - * Is the value callable? - */ - function callableValue() - { - return \Hamcrest\Type\IsCallable::callableValue(); - } -} - -if (!function_exists('doubleValue')) { /** - * Is the value a float/double? - */ - function doubleValue() - { - return \Hamcrest\Type\IsDouble::doubleValue(); - } -} - -if (!function_exists('floatValue')) { /** - * Is the value a float/double? - */ - function floatValue() - { - return \Hamcrest\Type\IsDouble::doubleValue(); - } -} - -if (!function_exists('integerValue')) { /** - * Is the value an integer? - */ - function integerValue() - { - return \Hamcrest\Type\IsInteger::integerValue(); - } -} - -if (!function_exists('intValue')) { /** - * Is the value an integer? - */ - function intValue() - { - return \Hamcrest\Type\IsInteger::integerValue(); - } -} - -if (!function_exists('numericValue')) { /** - * Is the value a numeric? - */ - function numericValue() - { - return \Hamcrest\Type\IsNumeric::numericValue(); - } -} - -if (!function_exists('objectValue')) { /** - * Is the value an object? - */ - function objectValue() - { - return \Hamcrest\Type\IsObject::objectValue(); - } -} - -if (!function_exists('anObject')) { /** - * Is the value an object? - */ - function anObject() - { - return \Hamcrest\Type\IsObject::objectValue(); - } -} - -if (!function_exists('resourceValue')) { /** - * Is the value a resource? - */ - function resourceValue() - { - return \Hamcrest\Type\IsResource::resourceValue(); - } -} - -if (!function_exists('scalarValue')) { /** - * Is the value a scalar (boolean, integer, double, or string)? - */ - function scalarValue() - { - return \Hamcrest\Type\IsScalar::scalarValue(); - } -} - -if (!function_exists('stringValue')) { /** - * Is the value a string? - */ - function stringValue() - { - return \Hamcrest\Type\IsString::stringValue(); - } -} - -if (!function_exists('hasXPath')) { /** - * Wraps $matcher with {@link Hamcrest\Core\IsEqual) - * if it's not a matcher and the XPath in count() - * if it's an integer. - */ - function hasXPath($xpath, $matcher = null) - { - return \Hamcrest\Xml\HasXPath::hasXPath($xpath, $matcher); - } -} diff --git a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/IsArray.php b/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/IsArray.php deleted file mode 100644 index 9ea56970..00000000 --- a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/IsArray.php +++ /dev/null @@ -1,118 +0,0 @@ -_elementMatchers = $elementMatchers; - } - - protected function matchesSafely($array) - { - if (array_keys($array) != array_keys($this->_elementMatchers)) { - return false; - } - - /** @var $matcher \Hamcrest\Matcher */ - foreach ($this->_elementMatchers as $k => $matcher) { - if (!$matcher->matches($array[$k])) { - return false; - } - } - - return true; - } - - protected function describeMismatchSafely($actual, Description $mismatchDescription) - { - if (count($actual) != count($this->_elementMatchers)) { - $mismatchDescription->appendText('array length was ' . count($actual)); - - return; - } elseif (array_keys($actual) != array_keys($this->_elementMatchers)) { - $mismatchDescription->appendText('array keys were ') - ->appendValueList( - $this->descriptionStart(), - $this->descriptionSeparator(), - $this->descriptionEnd(), - array_keys($actual) - ) - ; - - return; - } - - /** @var $matcher \Hamcrest\Matcher */ - foreach ($this->_elementMatchers as $k => $matcher) { - if (!$matcher->matches($actual[$k])) { - $mismatchDescription->appendText('element ')->appendValue($k) - ->appendText(' was ')->appendValue($actual[$k]); - - return; - } - } - } - - public function describeTo(Description $description) - { - $description->appendList( - $this->descriptionStart(), - $this->descriptionSeparator(), - $this->descriptionEnd(), - $this->_elementMatchers - ); - } - - /** - * Evaluates to true only if each $matcher[$i] is satisfied by $array[$i]. - * - * @factory ... - */ - public static function anArray(/* args... */) - { - $args = func_get_args(); - - return new self(Util::createMatcherArray($args)); - } - - // -- Protected Methods - - protected function descriptionStart() - { - return '['; - } - - protected function descriptionSeparator() - { - return ', '; - } - - protected function descriptionEnd() - { - return ']'; - } -} diff --git a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/IsArrayContaining.php b/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/IsArrayContaining.php deleted file mode 100644 index 0e4a1eda..00000000 --- a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/IsArrayContaining.php +++ /dev/null @@ -1,63 +0,0 @@ -_elementMatcher = $elementMatcher; - } - - protected function matchesSafely($array) - { - foreach ($array as $element) { - if ($this->_elementMatcher->matches($element)) { - return true; - } - } - - return false; - } - - protected function describeMismatchSafely($array, Description $mismatchDescription) - { - $mismatchDescription->appendText('was ')->appendValue($array); - } - - public function describeTo(Description $description) - { - $description - ->appendText('an array containing ') - ->appendDescriptionOf($this->_elementMatcher) - ; - } - - /** - * Evaluates to true if any item in an array satisfies the given matcher. - * - * @param mixed $item as a {@link Hamcrest\Matcher} or a value. - * - * @return \Hamcrest\Arrays\IsArrayContaining - * @factory hasValue - */ - public static function hasItemInArray($item) - { - return new self(Util::wrapValueWithIsEqual($item)); - } -} diff --git a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/IsArrayContainingInAnyOrder.php b/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/IsArrayContainingInAnyOrder.php deleted file mode 100644 index 9009026b..00000000 --- a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/IsArrayContainingInAnyOrder.php +++ /dev/null @@ -1,59 +0,0 @@ -_elementMatchers = $elementMatchers; - } - - protected function matchesSafelyWithDiagnosticDescription($array, Description $mismatchDescription) - { - $matching = new MatchingOnce($this->_elementMatchers, $mismatchDescription); - - foreach ($array as $element) { - if (!$matching->matches($element)) { - return false; - } - } - - return $matching->isFinished($array); - } - - public function describeTo(Description $description) - { - $description->appendList('[', ', ', ']', $this->_elementMatchers) - ->appendText(' in any order') - ; - } - - /** - * An array with elements that match the given matchers. - * - * @factory containsInAnyOrder ... - */ - public static function arrayContainingInAnyOrder(/* args... */) - { - $args = func_get_args(); - - return new self(Util::createMatcherArray($args)); - } -} diff --git a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/IsArrayContainingInOrder.php b/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/IsArrayContainingInOrder.php deleted file mode 100644 index 61157404..00000000 --- a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/IsArrayContainingInOrder.php +++ /dev/null @@ -1,57 +0,0 @@ -_elementMatchers = $elementMatchers; - } - - protected function matchesSafelyWithDiagnosticDescription($array, Description $mismatchDescription) - { - $series = new SeriesMatchingOnce($this->_elementMatchers, $mismatchDescription); - - foreach ($array as $element) { - if (!$series->matches($element)) { - return false; - } - } - - return $series->isFinished(); - } - - public function describeTo(Description $description) - { - $description->appendList('[', ', ', ']', $this->_elementMatchers); - } - - /** - * An array with elements that match the given matchers in the same order. - * - * @factory contains ... - */ - public static function arrayContaining(/* args... */) - { - $args = func_get_args(); - - return new self(Util::createMatcherArray($args)); - } -} diff --git a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/IsArrayContainingKey.php b/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/IsArrayContainingKey.php deleted file mode 100644 index 523477e7..00000000 --- a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/IsArrayContainingKey.php +++ /dev/null @@ -1,75 +0,0 @@ -_keyMatcher = $keyMatcher; - } - - protected function matchesSafely($array) - { - foreach ($array as $key => $element) { - if ($this->_keyMatcher->matches($key)) { - return true; - } - } - - return false; - } - - protected function describeMismatchSafely($array, Description $mismatchDescription) - { - //Not using appendValueList() so that keys can be shown - $mismatchDescription->appendText('array was ') - ->appendText('[') - ; - $loop = false; - foreach ($array as $key => $value) { - if ($loop) { - $mismatchDescription->appendText(', '); - } - $mismatchDescription->appendValue($key)->appendText(' => ')->appendValue($value); - $loop = true; - } - $mismatchDescription->appendText(']'); - } - - public function describeTo(Description $description) - { - $description - ->appendText('array with key ') - ->appendDescriptionOf($this->_keyMatcher) - ; - } - - /** - * Evaluates to true if any key in an array matches the given matcher. - * - * @param mixed $key as a {@link Hamcrest\Matcher} or a value. - * - * @return \Hamcrest\Arrays\IsArrayContainingKey - * @factory hasKey - */ - public static function hasKeyInArray($key) - { - return new self(Util::wrapValueWithIsEqual($key)); - } -} diff --git a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/IsArrayContainingKeyValuePair.php b/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/IsArrayContainingKeyValuePair.php deleted file mode 100644 index 9ac3eba8..00000000 --- a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/IsArrayContainingKeyValuePair.php +++ /dev/null @@ -1,80 +0,0 @@ -_keyMatcher = $keyMatcher; - $this->_valueMatcher = $valueMatcher; - } - - protected function matchesSafely($array) - { - foreach ($array as $key => $value) { - if ($this->_keyMatcher->matches($key) && $this->_valueMatcher->matches($value)) { - return true; - } - } - - return false; - } - - protected function describeMismatchSafely($array, Description $mismatchDescription) - { - //Not using appendValueList() so that keys can be shown - $mismatchDescription->appendText('array was ') - ->appendText('[') - ; - $loop = false; - foreach ($array as $key => $value) { - if ($loop) { - $mismatchDescription->appendText(', '); - } - $mismatchDescription->appendValue($key)->appendText(' => ')->appendValue($value); - $loop = true; - } - $mismatchDescription->appendText(']'); - } - - public function describeTo(Description $description) - { - $description->appendText('array containing [') - ->appendDescriptionOf($this->_keyMatcher) - ->appendText(' => ') - ->appendDescriptionOf($this->_valueMatcher) - ->appendText(']') - ; - } - - /** - * Test if an array has both an key and value in parity with each other. - * - * @factory hasEntry - */ - public static function hasKeyValuePair($key, $value) - { - return new self( - Util::wrapValueWithIsEqual($key), - Util::wrapValueWithIsEqual($value) - ); - } -} diff --git a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/IsArrayWithSize.php b/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/IsArrayWithSize.php deleted file mode 100644 index 074375ce..00000000 --- a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/IsArrayWithSize.php +++ /dev/null @@ -1,73 +0,0 @@ -_elementMatchers = $elementMatchers; - $this->_mismatchDescription = $mismatchDescription; - } - - public function matches($item) - { - return $this->_isNotSurplus($item) && $this->_isMatched($item); - } - - public function isFinished($items) - { - if (empty($this->_elementMatchers)) { - return true; - } - - $this->_mismatchDescription - ->appendText('No item matches: ')->appendList('', ', ', '', $this->_elementMatchers) - ->appendText(' in ')->appendValueList('[', ', ', ']', $items) - ; - - return false; - } - - // -- Private Methods - - private function _isNotSurplus($item) - { - if (empty($this->_elementMatchers)) { - $this->_mismatchDescription->appendText('Not matched: ')->appendValue($item); - - return false; - } - - return true; - } - - private function _isMatched($item) - { - /** @var $matcher \Hamcrest\Matcher */ - foreach ($this->_elementMatchers as $i => $matcher) { - if ($matcher->matches($item)) { - unset($this->_elementMatchers[$i]); - - return true; - } - } - - $this->_mismatchDescription->appendText('Not matched: ')->appendValue($item); - - return false; - } -} diff --git a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/SeriesMatchingOnce.php b/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/SeriesMatchingOnce.php deleted file mode 100644 index 12a912d8..00000000 --- a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/SeriesMatchingOnce.php +++ /dev/null @@ -1,75 +0,0 @@ -_elementMatchers = $elementMatchers; - $this->_keys = array_keys($elementMatchers); - $this->_mismatchDescription = $mismatchDescription; - } - - public function matches($item) - { - return $this->_isNotSurplus($item) && $this->_isMatched($item); - } - - public function isFinished() - { - if (!empty($this->_elementMatchers)) { - $nextMatcher = current($this->_elementMatchers); - $this->_mismatchDescription->appendText('No item matched: ')->appendDescriptionOf($nextMatcher); - - return false; - } - - return true; - } - - // -- Private Methods - - private function _isNotSurplus($item) - { - if (empty($this->_elementMatchers)) { - $this->_mismatchDescription->appendText('Not matched: ')->appendValue($item); - - return false; - } - - return true; - } - - private function _isMatched($item) - { - $this->_nextMatchKey = array_shift($this->_keys); - $nextMatcher = array_shift($this->_elementMatchers); - - if (!$nextMatcher->matches($item)) { - $this->_describeMismatch($nextMatcher, $item); - - return false; - } - - return true; - } - - private function _describeMismatch(Matcher $matcher, $item) - { - $this->_mismatchDescription->appendText('item with key ' . $this->_nextMatchKey . ': '); - $matcher->describeMismatch($item, $this->_mismatchDescription); - } -} diff --git a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/AssertionError.php b/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/AssertionError.php deleted file mode 100644 index 3a2a0e7c..00000000 --- a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/AssertionError.php +++ /dev/null @@ -1,10 +0,0 @@ -append($text); - - return $this; - } - - public function appendDescriptionOf(SelfDescribing $value) - { - $value->describeTo($this); - - return $this; - } - - public function appendValue($value) - { - if (is_null($value)) { - $this->append('null'); - } elseif (is_string($value)) { - $this->_toPhpSyntax($value); - } elseif (is_float($value)) { - $this->append('<'); - $this->append($value); - $this->append('F>'); - } elseif (is_bool($value)) { - $this->append('<'); - $this->append($value ? 'true' : 'false'); - $this->append('>'); - } elseif (is_array($value) || $value instanceof \Iterator || $value instanceof \IteratorAggregate) { - $this->appendValueList('[', ', ', ']', $value); - } elseif (is_object($value) && !method_exists($value, '__toString')) { - $this->append('<'); - $this->append(get_class($value)); - $this->append('>'); - } else { - $this->append('<'); - $this->append($value); - $this->append('>'); - } - - return $this; - } - - public function appendValueList($start, $separator, $end, $values) - { - $list = array(); - foreach ($values as $v) { - $list[] = new SelfDescribingValue($v); - } - - $this->appendList($start, $separator, $end, $list); - - return $this; - } - - public function appendList($start, $separator, $end, $values) - { - $this->append($start); - - $separate = false; - - foreach ($values as $value) { - /*if (!($value instanceof Hamcrest\SelfDescribing)) { - $value = new Hamcrest\Internal\SelfDescribingValue($value); - }*/ - - if ($separate) { - $this->append($separator); - } - - $this->appendDescriptionOf($value); - - $separate = true; - } - - $this->append($end); - - return $this; - } - - // -- Protected Methods - - /** - * Append the String $str to the description. - */ - abstract protected function append($str); - - // -- Private Methods - - private function _toPhpSyntax($value) - { - $str = '"'; - for ($i = 0, $len = strlen($value); $i < $len; ++$i) { - switch ($value[$i]) { - case '"': - $str .= '\\"'; - break; - - case "\t": - $str .= '\\t'; - break; - - case "\r": - $str .= '\\r'; - break; - - case "\n": - $str .= '\\n'; - break; - - default: - $str .= $value[$i]; - } - } - $str .= '"'; - $this->append($str); - } -} diff --git a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/BaseMatcher.php b/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/BaseMatcher.php deleted file mode 100644 index 286db3e1..00000000 --- a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/BaseMatcher.php +++ /dev/null @@ -1,25 +0,0 @@ -appendText('was ')->appendValue($item); - } - - public function __toString() - { - return StringDescription::toString($this); - } -} diff --git a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Collection/IsEmptyTraversable.php b/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Collection/IsEmptyTraversable.php deleted file mode 100644 index 8ab58ea5..00000000 --- a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Collection/IsEmptyTraversable.php +++ /dev/null @@ -1,71 +0,0 @@ -_empty = $empty; - } - - public function matches($item) - { - if (!$item instanceof \Traversable) { - return false; - } - - foreach ($item as $value) { - return !$this->_empty; - } - - return $this->_empty; - } - - public function describeTo(Description $description) - { - $description->appendText($this->_empty ? 'an empty traversable' : 'a non-empty traversable'); - } - - /** - * Returns true if traversable is empty. - * - * @factory - */ - public static function emptyTraversable() - { - if (!self::$_INSTANCE) { - self::$_INSTANCE = new self; - } - - return self::$_INSTANCE; - } - - /** - * Returns true if traversable is not empty. - * - * @factory - */ - public static function nonEmptyTraversable() - { - if (!self::$_NOT_INSTANCE) { - self::$_NOT_INSTANCE = new self(false); - } - - return self::$_NOT_INSTANCE; - } -} diff --git a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Collection/IsTraversableWithSize.php b/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Collection/IsTraversableWithSize.php deleted file mode 100644 index c95edc5c..00000000 --- a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Collection/IsTraversableWithSize.php +++ /dev/null @@ -1,47 +0,0 @@ -false
. - */ -class AllOf extends DiagnosingMatcher -{ - - private $_matchers; - - public function __construct(array $matchers) - { - Util::checkAllAreMatchers($matchers); - - $this->_matchers = $matchers; - } - - public function matchesWithDiagnosticDescription($item, Description $mismatchDescription) - { - /** @var $matcher \Hamcrest\Matcher */ - foreach ($this->_matchers as $matcher) { - if (!$matcher->matches($item)) { - $mismatchDescription->appendDescriptionOf($matcher)->appendText(' '); - $matcher->describeMismatch($item, $mismatchDescription); - - return false; - } - } - - return true; - } - - public function describeTo(Description $description) - { - $description->appendList('(', ' and ', ')', $this->_matchers); - } - - /** - * Evaluates to true only if ALL of the passed in matchers evaluate to true. - * - * @factory ... - */ - public static function allOf(/* args... */) - { - $args = func_get_args(); - - return new self(Util::createMatcherArray($args)); - } -} diff --git a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/AnyOf.php b/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/AnyOf.php deleted file mode 100644 index 4504279f..00000000 --- a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/AnyOf.php +++ /dev/null @@ -1,58 +0,0 @@ -true. - */ -class AnyOf extends ShortcutCombination -{ - - public function __construct(array $matchers) - { - parent::__construct($matchers); - } - - public function matches($item) - { - return $this->matchesWithShortcut($item, true); - } - - public function describeTo(Description $description) - { - $this->describeToWithOperator($description, 'or'); - } - - /** - * Evaluates to true if ANY of the passed in matchers evaluate to true. - * - * @factory ... - */ - public static function anyOf(/* args... */) - { - $args = func_get_args(); - - return new self(Util::createMatcherArray($args)); - } - - /** - * Evaluates to false if ANY of the passed in matchers evaluate to true. - * - * @factory ... - */ - public static function noneOf(/* args... */) - { - $args = func_get_args(); - - return IsNot::not( - new self(Util::createMatcherArray($args)) - ); - } -} diff --git a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/CombinableMatcher.php b/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/CombinableMatcher.php deleted file mode 100644 index e3b4aa78..00000000 --- a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/CombinableMatcher.php +++ /dev/null @@ -1,78 +0,0 @@ -_matcher = $matcher; - } - - public function matches($item) - { - return $this->_matcher->matches($item); - } - - public function describeTo(Description $description) - { - $description->appendDescriptionOf($this->_matcher); - } - - /** Diversion from Hamcrest-Java... Logical "and" not permitted */ - public function andAlso(Matcher $other) - { - return new self(new AllOf($this->_templatedListWith($other))); - } - - /** Diversion from Hamcrest-Java... Logical "or" not permitted */ - public function orElse(Matcher $other) - { - return new self(new AnyOf($this->_templatedListWith($other))); - } - - /** - * This is useful for fluently combining matchers that must both pass. - * For example: - *
-     *   assertThat($string, both(containsString("a"))->andAlso(containsString("b")));
-     * 
- * - * @factory - */ - public static function both(Matcher $matcher) - { - return new self($matcher); - } - - /** - * This is useful for fluently combining matchers where either may pass, - * for example: - *
-     *   assertThat($string, either(containsString("a"))->orElse(containsString("b")));
-     * 
- * - * @factory - */ - public static function either(Matcher $matcher) - { - return new self($matcher); - } - - // -- Private Methods - - private function _templatedListWith(Matcher $other) - { - return array($this->_matcher, $other); - } -} diff --git a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/DescribedAs.php b/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/DescribedAs.php deleted file mode 100644 index 5b2583fa..00000000 --- a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/DescribedAs.php +++ /dev/null @@ -1,68 +0,0 @@ -_descriptionTemplate = $descriptionTemplate; - $this->_matcher = $matcher; - $this->_values = $values; - } - - public function matches($item) - { - return $this->_matcher->matches($item); - } - - public function describeTo(Description $description) - { - $textStart = 0; - while (preg_match(self::ARG_PATTERN, $this->_descriptionTemplate, $matches, PREG_OFFSET_CAPTURE, $textStart)) { - $text = $matches[0][0]; - $index = $matches[1][0]; - $offset = $matches[0][1]; - - $description->appendText(substr($this->_descriptionTemplate, $textStart, $offset - $textStart)); - $description->appendValue($this->_values[$index]); - - $textStart = $offset + strlen($text); - } - - if ($textStart < strlen($this->_descriptionTemplate)) { - $description->appendText(substr($this->_descriptionTemplate, $textStart)); - } - } - - /** - * Wraps an existing matcher and overrides the description when it fails. - * - * @factory ... - */ - public static function describedAs(/* $description, Hamcrest\Matcher $matcher, $values... */) - { - $args = func_get_args(); - $description = array_shift($args); - $matcher = array_shift($args); - $values = $args; - - return new self($description, $matcher, $values); - } -} diff --git a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/Every.php b/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/Every.php deleted file mode 100644 index d686f8da..00000000 --- a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/Every.php +++ /dev/null @@ -1,56 +0,0 @@ -_matcher = $matcher; - } - - protected function matchesSafelyWithDiagnosticDescription($items, Description $mismatchDescription) - { - foreach ($items as $item) { - if (!$this->_matcher->matches($item)) { - $mismatchDescription->appendText('an item '); - $this->_matcher->describeMismatch($item, $mismatchDescription); - - return false; - } - } - - return true; - } - - public function describeTo(Description $description) - { - $description->appendText('every item is ')->appendDescriptionOf($this->_matcher); - } - - /** - * @param Matcher $itemMatcher - * A matcher to apply to every element in an array. - * - * @return \Hamcrest\Core\Every - * Evaluates to TRUE for a collection in which every item matches $itemMatcher - * - * @factory - */ - public static function everyItem(Matcher $itemMatcher) - { - return new self($itemMatcher); - } -} diff --git a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/HasToString.php b/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/HasToString.php deleted file mode 100644 index 45bd9102..00000000 --- a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/HasToString.php +++ /dev/null @@ -1,56 +0,0 @@ -toString(); - } - - return (string) $actual; - } - - /** - * Does array size satisfy a given matcher? - * - * @factory - */ - public static function hasToString($matcher) - { - return new self(Util::wrapValueWithIsEqual($matcher)); - } -} diff --git a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/Is.php b/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/Is.php deleted file mode 100644 index 41266dc1..00000000 --- a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/Is.php +++ /dev/null @@ -1,57 +0,0 @@ -_matcher = $matcher; - } - - public function matches($arg) - { - return $this->_matcher->matches($arg); - } - - public function describeTo(Description $description) - { - $description->appendText('is ')->appendDescriptionOf($this->_matcher); - } - - public function describeMismatch($item, Description $mismatchDescription) - { - $this->_matcher->describeMismatch($item, $mismatchDescription); - } - - /** - * Decorates another Matcher, retaining the behavior but allowing tests - * to be slightly more expressive. - * - * For example: assertThat($cheese, equalTo($smelly)) - * vs. assertThat($cheese, is(equalTo($smelly))) - * - * @factory - */ - public static function is($value) - { - return new self(Util::wrapValueWithIsEqual($value)); - } -} diff --git a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsAnything.php b/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsAnything.php deleted file mode 100644 index f20e6c0d..00000000 --- a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsAnything.php +++ /dev/null @@ -1,45 +0,0 @@ -true. - */ -class IsAnything extends BaseMatcher -{ - - private $_message; - - public function __construct($message = 'ANYTHING') - { - $this->_message = $message; - } - - public function matches($item) - { - return true; - } - - public function describeTo(Description $description) - { - $description->appendText($this->_message); - } - - /** - * This matcher always evaluates to true. - * - * @param string $description A meaningful string used when describing itself. - * - * @return \Hamcrest\Core\IsAnything - * @factory - */ - public static function anything($description = 'ANYTHING') - { - return new self($description); - } -} diff --git a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsCollectionContaining.php b/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsCollectionContaining.php deleted file mode 100644 index 5e60426d..00000000 --- a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsCollectionContaining.php +++ /dev/null @@ -1,93 +0,0 @@ -_elementMatcher = $elementMatcher; - } - - protected function matchesSafely($items) - { - foreach ($items as $item) { - if ($this->_elementMatcher->matches($item)) { - return true; - } - } - - return false; - } - - protected function describeMismatchSafely($items, Description $mismatchDescription) - { - $mismatchDescription->appendText('was ')->appendValue($items); - } - - public function describeTo(Description $description) - { - $description - ->appendText('a collection containing ') - ->appendDescriptionOf($this->_elementMatcher) - ; - } - - /** - * Test if the value is an array containing this matcher. - * - * Example: - *
-     * assertThat(array('a', 'b'), hasItem(equalTo('b')));
-     * //Convenience defaults to equalTo()
-     * assertThat(array('a', 'b'), hasItem('b'));
-     * 
- * - * @factory ... - */ - public static function hasItem() - { - $args = func_get_args(); - $firstArg = array_shift($args); - - return new self(Util::wrapValueWithIsEqual($firstArg)); - } - - /** - * Test if the value is an array containing elements that match all of these - * matchers. - * - * Example: - *
-     * assertThat(array('a', 'b', 'c'), hasItems(equalTo('a'), equalTo('b')));
-     * 
- * - * @factory ... - */ - public static function hasItems(/* args... */) - { - $args = func_get_args(); - $matchers = array(); - - foreach ($args as $arg) { - $matchers[] = self::hasItem($arg); - } - - return AllOf::allOf($matchers); - } -} diff --git a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsEqual.php b/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsEqual.php deleted file mode 100644 index 523fba0b..00000000 --- a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsEqual.php +++ /dev/null @@ -1,44 +0,0 @@ -_item = $item; - } - - public function matches($arg) - { - return (($arg == $this->_item) && ($this->_item == $arg)); - } - - public function describeTo(Description $description) - { - $description->appendValue($this->_item); - } - - /** - * Is the value equal to another value, as tested by the use of the "==" - * comparison operator? - * - * @factory - */ - public static function equalTo($item) - { - return new self($item); - } -} diff --git a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsIdentical.php b/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsIdentical.php deleted file mode 100644 index 28f7b36e..00000000 --- a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsIdentical.php +++ /dev/null @@ -1,38 +0,0 @@ -_value = $value; - } - - public function describeTo(Description $description) - { - $description->appendValue($this->_value); - } - - /** - * Tests of the value is identical to $value as tested by the "===" operator. - * - * @factory - */ - public static function identicalTo($value) - { - return new self($value); - } -} diff --git a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsInstanceOf.php b/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsInstanceOf.php deleted file mode 100644 index 7a5c92a6..00000000 --- a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsInstanceOf.php +++ /dev/null @@ -1,67 +0,0 @@ -_theClass = $theClass; - } - - protected function matchesWithDiagnosticDescription($item, Description $mismatchDescription) - { - if (!is_object($item)) { - $mismatchDescription->appendText('was ')->appendValue($item); - - return false; - } - - if (!($item instanceof $this->_theClass)) { - $mismatchDescription->appendText('[' . get_class($item) . '] ') - ->appendValue($item); - - return false; - } - - return true; - } - - public function describeTo(Description $description) - { - $description->appendText('an instance of ') - ->appendText($this->_theClass) - ; - } - - /** - * Is the value an instance of a particular type? - * This version assumes no relationship between the required type and - * the signature of the method that sets it up, for example in - * assertThat($anObject, anInstanceOf('Thing')); - * - * @factory any - */ - public static function anInstanceOf($theClass) - { - return new self($theClass); - } -} diff --git a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsNot.php b/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsNot.php deleted file mode 100644 index 167f0d06..00000000 --- a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsNot.php +++ /dev/null @@ -1,44 +0,0 @@ -_matcher = $matcher; - } - - public function matches($arg) - { - return !$this->_matcher->matches($arg); - } - - public function describeTo(Description $description) - { - $description->appendText('not ')->appendDescriptionOf($this->_matcher); - } - - /** - * Matches if value does not match $value. - * - * @factory - */ - public static function not($value) - { - return new self(Util::wrapValueWithIsEqual($value)); - } -} diff --git a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsNull.php b/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsNull.php deleted file mode 100644 index 91a454c1..00000000 --- a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsNull.php +++ /dev/null @@ -1,56 +0,0 @@ -appendText('null'); - } - - /** - * Matches if value is null. - * - * @factory - */ - public static function nullValue() - { - if (!self::$_INSTANCE) { - self::$_INSTANCE = new self(); - } - - return self::$_INSTANCE; - } - - /** - * Matches if value is not null. - * - * @factory - */ - public static function notNullValue() - { - if (!self::$_NOT_INSTANCE) { - self::$_NOT_INSTANCE = IsNot::not(self::nullValue()); - } - - return self::$_NOT_INSTANCE; - } -} diff --git a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsSame.php b/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsSame.php deleted file mode 100644 index 81078705..00000000 --- a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsSame.php +++ /dev/null @@ -1,51 +0,0 @@ -_object = $object; - } - - public function matches($object) - { - return ($object === $this->_object) && ($this->_object === $object); - } - - public function describeTo(Description $description) - { - $description->appendText('sameInstance(') - ->appendValue($this->_object) - ->appendText(')') - ; - } - - /** - * Creates a new instance of IsSame. - * - * @param mixed $object - * The predicate evaluates to true only when the argument is - * this object. - * - * @return \Hamcrest\Core\IsSame - * @factory - */ - public static function sameInstance($object) - { - return new self($object); - } -} diff --git a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsTypeOf.php b/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsTypeOf.php deleted file mode 100644 index d24f0f94..00000000 --- a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsTypeOf.php +++ /dev/null @@ -1,71 +0,0 @@ -_theType = strtolower($theType); - } - - public function matches($item) - { - return strtolower(gettype($item)) == $this->_theType; - } - - public function describeTo(Description $description) - { - $description->appendText(self::getTypeDescription($this->_theType)); - } - - public function describeMismatch($item, Description $description) - { - if ($item === null) { - $description->appendText('was null'); - } else { - $description->appendText('was ') - ->appendText(self::getTypeDescription(strtolower(gettype($item)))) - ->appendText(' ') - ->appendValue($item) - ; - } - } - - public static function getTypeDescription($type) - { - if ($type == 'null') { - return 'null'; - } - - return (strpos('aeiou', substr($type, 0, 1)) === false ? 'a ' : 'an ') - . $type; - } - - /** - * Is the value a particular built-in type? - * - * @factory - */ - public static function typeOf($theType) - { - return new self($theType); - } -} diff --git a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/Set.php b/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/Set.php deleted file mode 100644 index cdc45d53..00000000 --- a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/Set.php +++ /dev/null @@ -1,95 +0,0 @@ - - * assertThat(array('a', 'b'), set('b')); - * assertThat($foo, set('bar')); - * assertThat('Server', notSet('defaultPort')); - * - * - * @todo Replace $property with a matcher and iterate all property names. - */ -class Set extends BaseMatcher -{ - - private $_property; - private $_not; - - public function __construct($property, $not = false) - { - $this->_property = $property; - $this->_not = $not; - } - - public function matches($item) - { - if ($item === null) { - return false; - } - $property = $this->_property; - if (is_array($item)) { - $result = isset($item[$property]); - } elseif (is_object($item)) { - $result = isset($item->$property); - } elseif (is_string($item)) { - $result = isset($item::$$property); - } else { - throw new \InvalidArgumentException('Must pass an object, array, or class name'); - } - - return $this->_not ? !$result : $result; - } - - public function describeTo(Description $description) - { - $description->appendText($this->_not ? 'unset property ' : 'set property ')->appendText($this->_property); - } - - public function describeMismatch($item, Description $description) - { - $value = ''; - if (!$this->_not) { - $description->appendText('was not set'); - } else { - $property = $this->_property; - if (is_array($item)) { - $value = $item[$property]; - } elseif (is_object($item)) { - $value = $item->$property; - } elseif (is_string($item)) { - $value = $item::$$property; - } - parent::describeMismatch($value, $description); - } - } - - /** - * Matches if value (class, object, or array) has named $property. - * - * @factory - */ - public static function set($property) - { - return new self($property); - } - - /** - * Matches if value (class, object, or array) does not have named $property. - * - * @factory - */ - public static function notSet($property) - { - return new self($property, true); - } -} diff --git a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/ShortcutCombination.php b/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/ShortcutCombination.php deleted file mode 100644 index d93db74f..00000000 --- a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/ShortcutCombination.php +++ /dev/null @@ -1,43 +0,0 @@ - - */ - private $_matchers; - - public function __construct(array $matchers) - { - Util::checkAllAreMatchers($matchers); - - $this->_matchers = $matchers; - } - - protected function matchesWithShortcut($item, $shortcut) - { - /** @var $matcher \Hamcrest\Matcher */ - foreach ($this->_matchers as $matcher) { - if ($matcher->matches($item) == $shortcut) { - return $shortcut; - } - } - - return !$shortcut; - } - - public function describeToWithOperator(Description $description, $operator) - { - $description->appendList('(', ' ' . $operator . ' ', ')', $this->_matchers); - } -} diff --git a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Description.php b/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Description.php deleted file mode 100644 index 9a482dbf..00000000 --- a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Description.php +++ /dev/null @@ -1,70 +0,0 @@ -matchesWithDiagnosticDescription($item, new NullDescription()); - } - - public function describeMismatch($item, Description $mismatchDescription) - { - $this->matchesWithDiagnosticDescription($item, $mismatchDescription); - } - - abstract protected function matchesWithDiagnosticDescription($item, Description $mismatchDescription); -} diff --git a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/FeatureMatcher.php b/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/FeatureMatcher.php deleted file mode 100644 index 59f6cc73..00000000 --- a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/FeatureMatcher.php +++ /dev/null @@ -1,67 +0,0 @@ -featureValueOf() in a subclass to pull out the feature to be - * matched against. - */ -abstract class FeatureMatcher extends TypeSafeDiagnosingMatcher -{ - - private $_subMatcher; - private $_featureDescription; - private $_featureName; - - /** - * Constructor. - * - * @param string $type - * @param string $subtype - * @param \Hamcrest\Matcher $subMatcher The matcher to apply to the feature - * @param string $featureDescription Descriptive text to use in describeTo - * @param string $featureName Identifying text for mismatch message - */ - public function __construct($type, $subtype, Matcher $subMatcher, $featureDescription, $featureName) - { - parent::__construct($type, $subtype); - - $this->_subMatcher = $subMatcher; - $this->_featureDescription = $featureDescription; - $this->_featureName = $featureName; - } - - /** - * Implement this to extract the interesting feature. - * - * @param mixed $actual the target object - * - * @return mixed the feature to be matched - */ - abstract protected function featureValueOf($actual); - - public function matchesSafelyWithDiagnosticDescription($actual, Description $mismatchDescription) - { - $featureValue = $this->featureValueOf($actual); - - if (!$this->_subMatcher->matches($featureValue)) { - $mismatchDescription->appendText($this->_featureName) - ->appendText(' was ')->appendValue($featureValue); - - return false; - } - - return true; - } - - final public function describeTo(Description $description) - { - $description->appendText($this->_featureDescription)->appendText(' ') - ->appendDescriptionOf($this->_subMatcher) - ; - } -} diff --git a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Internal/SelfDescribingValue.php b/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Internal/SelfDescribingValue.php deleted file mode 100644 index 995da71d..00000000 --- a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Internal/SelfDescribingValue.php +++ /dev/null @@ -1,27 +0,0 @@ -_value = $value; - } - - public function describeTo(Description $description) - { - $description->appendValue($this->_value); - } -} diff --git a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Matcher.php b/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Matcher.php deleted file mode 100644 index e5dcf093..00000000 --- a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Matcher.php +++ /dev/null @@ -1,50 +0,0 @@ - - * Matcher implementations should NOT directly implement this interface. - * Instead, extend the {@link Hamcrest\BaseMatcher} abstract class, - * which will ensure that the Matcher API can grow to support - * new features and remain compatible with all Matcher implementations. - *

- * For easy access to common Matcher implementations, use the static factory - * methods in {@link Hamcrest\CoreMatchers}. - * - * @see Hamcrest\CoreMatchers - * @see Hamcrest\BaseMatcher - */ -interface Matcher extends SelfDescribing -{ - - /** - * Evaluates the matcher for argument $item. - * - * @param mixed $item the object against which the matcher is evaluated. - * - * @return boolean true if $item matches, - * otherwise false. - * - * @see Hamcrest\BaseMatcher - */ - public function matches($item); - - /** - * Generate a description of why the matcher has not accepted the item. - * The description will be part of a larger description of why a matching - * failed, so it should be concise. - * This method assumes that matches($item) is false, but - * will not check this. - * - * @param mixed $item The item that the Matcher has rejected. - * @param Description $description - * @return - */ - public function describeMismatch($item, Description $description); -} diff --git a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/MatcherAssert.php b/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/MatcherAssert.php deleted file mode 100644 index d546dbee..00000000 --- a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/MatcherAssert.php +++ /dev/null @@ -1,118 +0,0 @@ - - * // With an identifier - * assertThat("apple flavour", $apple->flavour(), equalTo("tasty")); - * // Without an identifier - * assertThat($apple->flavour(), equalTo("tasty")); - * // Evaluating a boolean expression - * assertThat("some error", $a > $b); - * assertThat($a > $b); - * - */ - public static function assertThat(/* $args ... */) - { - $args = func_get_args(); - switch (count($args)) { - case 1: - self::$_count++; - if (!$args[0]) { - throw new AssertionError(); - } - break; - - case 2: - self::$_count++; - if ($args[1] instanceof Matcher) { - self::doAssert('', $args[0], $args[1]); - } elseif (!$args[1]) { - throw new AssertionError($args[0]); - } - break; - - case 3: - self::$_count++; - self::doAssert( - $args[0], - $args[1], - Util::wrapValueWithIsEqual($args[2]) - ); - break; - - default: - throw new \InvalidArgumentException('assertThat() requires one to three arguments'); - } - } - - /** - * Returns the number of assertions performed. - * - * @return int - */ - public static function getCount() - { - return self::$_count; - } - - /** - * Resets the number of assertions performed to zero. - */ - public static function resetCount() - { - self::$_count = 0; - } - - /** - * Performs the actual assertion logic. - * - * If $matcher doesn't match $actual, - * throws a {@link Hamcrest\AssertionError} with a description - * of the failure along with the optional $identifier. - * - * @param string $identifier added to the message upon failure - * @param mixed $actual value to compare against $matcher - * @param \Hamcrest\Matcher $matcher applied to $actual - * @throws AssertionError - */ - private static function doAssert($identifier, $actual, Matcher $matcher) - { - if (!$matcher->matches($actual)) { - $description = new StringDescription(); - if (!empty($identifier)) { - $description->appendText($identifier . PHP_EOL); - } - $description->appendText('Expected: ') - ->appendDescriptionOf($matcher) - ->appendText(PHP_EOL . ' but: '); - - $matcher->describeMismatch($actual, $description); - - throw new AssertionError((string) $description); - } - } -} diff --git a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Matchers.php b/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Matchers.php deleted file mode 100644 index 23232e45..00000000 --- a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Matchers.php +++ /dev/null @@ -1,713 +0,0 @@ - - * assertThat($string, both(containsString("a"))->andAlso(containsString("b"))); - * - */ - public static function both(\Hamcrest\Matcher $matcher) - { - return \Hamcrest\Core\CombinableMatcher::both($matcher); - } - - /** - * This is useful for fluently combining matchers where either may pass, - * for example: - *

-     *   assertThat($string, either(containsString("a"))->orElse(containsString("b")));
-     * 
- */ - public static function either(\Hamcrest\Matcher $matcher) - { - return \Hamcrest\Core\CombinableMatcher::either($matcher); - } - - /** - * Wraps an existing matcher and overrides the description when it fails. - */ - public static function describedAs(/* args... */) - { - $args = func_get_args(); - return call_user_func_array(array('\Hamcrest\Core\DescribedAs', 'describedAs'), $args); - } - - /** - * @param Matcher $itemMatcher - * A matcher to apply to every element in an array. - * - * @return \Hamcrest\Core\Every - * Evaluates to TRUE for a collection in which every item matches $itemMatcher - */ - public static function everyItem(\Hamcrest\Matcher $itemMatcher) - { - return \Hamcrest\Core\Every::everyItem($itemMatcher); - } - - /** - * Does array size satisfy a given matcher? - */ - public static function hasToString($matcher) - { - return \Hamcrest\Core\HasToString::hasToString($matcher); - } - - /** - * Decorates another Matcher, retaining the behavior but allowing tests - * to be slightly more expressive. - * - * For example: assertThat($cheese, equalTo($smelly)) - * vs. assertThat($cheese, is(equalTo($smelly))) - */ - public static function is($value) - { - return \Hamcrest\Core\Is::is($value); - } - - /** - * This matcher always evaluates to true. - * - * @param string $description A meaningful string used when describing itself. - * - * @return \Hamcrest\Core\IsAnything - */ - public static function anything($description = 'ANYTHING') - { - return \Hamcrest\Core\IsAnything::anything($description); - } - - /** - * Test if the value is an array containing this matcher. - * - * Example: - *
-     * assertThat(array('a', 'b'), hasItem(equalTo('b')));
-     * //Convenience defaults to equalTo()
-     * assertThat(array('a', 'b'), hasItem('b'));
-     * 
- */ - public static function hasItem(/* args... */) - { - $args = func_get_args(); - return call_user_func_array(array('\Hamcrest\Core\IsCollectionContaining', 'hasItem'), $args); - } - - /** - * Test if the value is an array containing elements that match all of these - * matchers. - * - * Example: - *
-     * assertThat(array('a', 'b', 'c'), hasItems(equalTo('a'), equalTo('b')));
-     * 
- */ - public static function hasItems(/* args... */) - { - $args = func_get_args(); - return call_user_func_array(array('\Hamcrest\Core\IsCollectionContaining', 'hasItems'), $args); - } - - /** - * Is the value equal to another value, as tested by the use of the "==" - * comparison operator? - */ - public static function equalTo($item) - { - return \Hamcrest\Core\IsEqual::equalTo($item); - } - - /** - * Tests of the value is identical to $value as tested by the "===" operator. - */ - public static function identicalTo($value) - { - return \Hamcrest\Core\IsIdentical::identicalTo($value); - } - - /** - * Is the value an instance of a particular type? - * This version assumes no relationship between the required type and - * the signature of the method that sets it up, for example in - * assertThat($anObject, anInstanceOf('Thing')); - */ - public static function anInstanceOf($theClass) - { - return \Hamcrest\Core\IsInstanceOf::anInstanceOf($theClass); - } - - /** - * Is the value an instance of a particular type? - * This version assumes no relationship between the required type and - * the signature of the method that sets it up, for example in - * assertThat($anObject, anInstanceOf('Thing')); - */ - public static function any($theClass) - { - return \Hamcrest\Core\IsInstanceOf::anInstanceOf($theClass); - } - - /** - * Matches if value does not match $value. - */ - public static function not($value) - { - return \Hamcrest\Core\IsNot::not($value); - } - - /** - * Matches if value is null. - */ - public static function nullValue() - { - return \Hamcrest\Core\IsNull::nullValue(); - } - - /** - * Matches if value is not null. - */ - public static function notNullValue() - { - return \Hamcrest\Core\IsNull::notNullValue(); - } - - /** - * Creates a new instance of IsSame. - * - * @param mixed $object - * The predicate evaluates to true only when the argument is - * this object. - * - * @return \Hamcrest\Core\IsSame - */ - public static function sameInstance($object) - { - return \Hamcrest\Core\IsSame::sameInstance($object); - } - - /** - * Is the value a particular built-in type? - */ - public static function typeOf($theType) - { - return \Hamcrest\Core\IsTypeOf::typeOf($theType); - } - - /** - * Matches if value (class, object, or array) has named $property. - */ - public static function set($property) - { - return \Hamcrest\Core\Set::set($property); - } - - /** - * Matches if value (class, object, or array) does not have named $property. - */ - public static function notSet($property) - { - return \Hamcrest\Core\Set::notSet($property); - } - - /** - * Matches if value is a number equal to $value within some range of - * acceptable error $delta. - */ - public static function closeTo($value, $delta) - { - return \Hamcrest\Number\IsCloseTo::closeTo($value, $delta); - } - - /** - * The value is not > $value, nor < $value. - */ - public static function comparesEqualTo($value) - { - return \Hamcrest\Number\OrderingComparison::comparesEqualTo($value); - } - - /** - * The value is > $value. - */ - public static function greaterThan($value) - { - return \Hamcrest\Number\OrderingComparison::greaterThan($value); - } - - /** - * The value is >= $value. - */ - public static function greaterThanOrEqualTo($value) - { - return \Hamcrest\Number\OrderingComparison::greaterThanOrEqualTo($value); - } - - /** - * The value is >= $value. - */ - public static function atLeast($value) - { - return \Hamcrest\Number\OrderingComparison::greaterThanOrEqualTo($value); - } - - /** - * The value is < $value. - */ - public static function lessThan($value) - { - return \Hamcrest\Number\OrderingComparison::lessThan($value); - } - - /** - * The value is <= $value. - */ - public static function lessThanOrEqualTo($value) - { - return \Hamcrest\Number\OrderingComparison::lessThanOrEqualTo($value); - } - - /** - * The value is <= $value. - */ - public static function atMost($value) - { - return \Hamcrest\Number\OrderingComparison::lessThanOrEqualTo($value); - } - - /** - * Matches if value is a zero-length string. - */ - public static function isEmptyString() - { - return \Hamcrest\Text\IsEmptyString::isEmptyString(); - } - - /** - * Matches if value is a zero-length string. - */ - public static function emptyString() - { - return \Hamcrest\Text\IsEmptyString::isEmptyString(); - } - - /** - * Matches if value is null or a zero-length string. - */ - public static function isEmptyOrNullString() - { - return \Hamcrest\Text\IsEmptyString::isEmptyOrNullString(); - } - - /** - * Matches if value is null or a zero-length string. - */ - public static function nullOrEmptyString() - { - return \Hamcrest\Text\IsEmptyString::isEmptyOrNullString(); - } - - /** - * Matches if value is a non-zero-length string. - */ - public static function isNonEmptyString() - { - return \Hamcrest\Text\IsEmptyString::isNonEmptyString(); - } - - /** - * Matches if value is a non-zero-length string. - */ - public static function nonEmptyString() - { - return \Hamcrest\Text\IsEmptyString::isNonEmptyString(); - } - - /** - * Matches if value is a string equal to $string, regardless of the case. - */ - public static function equalToIgnoringCase($string) - { - return \Hamcrest\Text\IsEqualIgnoringCase::equalToIgnoringCase($string); - } - - /** - * Matches if value is a string equal to $string, regardless of whitespace. - */ - public static function equalToIgnoringWhiteSpace($string) - { - return \Hamcrest\Text\IsEqualIgnoringWhiteSpace::equalToIgnoringWhiteSpace($string); - } - - /** - * Matches if value is a string that matches regular expression $pattern. - */ - public static function matchesPattern($pattern) - { - return \Hamcrest\Text\MatchesPattern::matchesPattern($pattern); - } - - /** - * Matches if value is a string that contains $substring. - */ - public static function containsString($substring) - { - return \Hamcrest\Text\StringContains::containsString($substring); - } - - /** - * Matches if value is a string that contains $substring regardless of the case. - */ - public static function containsStringIgnoringCase($substring) - { - return \Hamcrest\Text\StringContainsIgnoringCase::containsStringIgnoringCase($substring); - } - - /** - * Matches if value contains $substrings in a constrained order. - */ - public static function stringContainsInOrder(/* args... */) - { - $args = func_get_args(); - return call_user_func_array(array('\Hamcrest\Text\StringContainsInOrder', 'stringContainsInOrder'), $args); - } - - /** - * Matches if value is a string that ends with $substring. - */ - public static function endsWith($substring) - { - return \Hamcrest\Text\StringEndsWith::endsWith($substring); - } - - /** - * Matches if value is a string that starts with $substring. - */ - public static function startsWith($substring) - { - return \Hamcrest\Text\StringStartsWith::startsWith($substring); - } - - /** - * Is the value an array? - */ - public static function arrayValue() - { - return \Hamcrest\Type\IsArray::arrayValue(); - } - - /** - * Is the value a boolean? - */ - public static function booleanValue() - { - return \Hamcrest\Type\IsBoolean::booleanValue(); - } - - /** - * Is the value a boolean? - */ - public static function boolValue() - { - return \Hamcrest\Type\IsBoolean::booleanValue(); - } - - /** - * Is the value callable? - */ - public static function callableValue() - { - return \Hamcrest\Type\IsCallable::callableValue(); - } - - /** - * Is the value a float/double? - */ - public static function doubleValue() - { - return \Hamcrest\Type\IsDouble::doubleValue(); - } - - /** - * Is the value a float/double? - */ - public static function floatValue() - { - return \Hamcrest\Type\IsDouble::doubleValue(); - } - - /** - * Is the value an integer? - */ - public static function integerValue() - { - return \Hamcrest\Type\IsInteger::integerValue(); - } - - /** - * Is the value an integer? - */ - public static function intValue() - { - return \Hamcrest\Type\IsInteger::integerValue(); - } - - /** - * Is the value a numeric? - */ - public static function numericValue() - { - return \Hamcrest\Type\IsNumeric::numericValue(); - } - - /** - * Is the value an object? - */ - public static function objectValue() - { - return \Hamcrest\Type\IsObject::objectValue(); - } - - /** - * Is the value an object? - */ - public static function anObject() - { - return \Hamcrest\Type\IsObject::objectValue(); - } - - /** - * Is the value a resource? - */ - public static function resourceValue() - { - return \Hamcrest\Type\IsResource::resourceValue(); - } - - /** - * Is the value a scalar (boolean, integer, double, or string)? - */ - public static function scalarValue() - { - return \Hamcrest\Type\IsScalar::scalarValue(); - } - - /** - * Is the value a string? - */ - public static function stringValue() - { - return \Hamcrest\Type\IsString::stringValue(); - } - - /** - * Wraps $matcher with {@link Hamcrest\Core\IsEqual) - * if it's not a matcher and the XPath in count() - * if it's an integer. - */ - public static function hasXPath($xpath, $matcher = null) - { - return \Hamcrest\Xml\HasXPath::hasXPath($xpath, $matcher); - } -} diff --git a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/NullDescription.php b/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/NullDescription.php deleted file mode 100644 index aae8e461..00000000 --- a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/NullDescription.php +++ /dev/null @@ -1,43 +0,0 @@ -_value = $value; - $this->_delta = $delta; - } - - protected function matchesSafely($item) - { - return $this->_actualDelta($item) <= 0.0; - } - - protected function describeMismatchSafely($item, Description $mismatchDescription) - { - $mismatchDescription->appendValue($item) - ->appendText(' differed by ') - ->appendValue($this->_actualDelta($item)) - ; - } - - public function describeTo(Description $description) - { - $description->appendText('a numeric value within ') - ->appendValue($this->_delta) - ->appendText(' of ') - ->appendValue($this->_value) - ; - } - - /** - * Matches if value is a number equal to $value within some range of - * acceptable error $delta. - * - * @factory - */ - public static function closeTo($value, $delta) - { - return new self($value, $delta); - } - - // -- Private Methods - - private function _actualDelta($item) - { - return (abs(($item - $this->_value)) - $this->_delta); - } -} diff --git a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Number/OrderingComparison.php b/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Number/OrderingComparison.php deleted file mode 100644 index 369d0cfa..00000000 --- a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Number/OrderingComparison.php +++ /dev/null @@ -1,132 +0,0 @@ -_value = $value; - $this->_minCompare = $minCompare; - $this->_maxCompare = $maxCompare; - } - - protected function matchesSafely($other) - { - $compare = $this->_compare($this->_value, $other); - - return ($this->_minCompare <= $compare) && ($compare <= $this->_maxCompare); - } - - protected function describeMismatchSafely($item, Description $mismatchDescription) - { - $mismatchDescription - ->appendValue($item)->appendText(' was ') - ->appendText($this->_comparison($this->_compare($this->_value, $item))) - ->appendText(' ')->appendValue($this->_value) - ; - } - - public function describeTo(Description $description) - { - $description->appendText('a value ') - ->appendText($this->_comparison($this->_minCompare)) - ; - if ($this->_minCompare != $this->_maxCompare) { - $description->appendText(' or ') - ->appendText($this->_comparison($this->_maxCompare)) - ; - } - $description->appendText(' ')->appendValue($this->_value); - } - - /** - * The value is not > $value, nor < $value. - * - * @factory - */ - public static function comparesEqualTo($value) - { - return new self($value, 0, 0); - } - - /** - * The value is > $value. - * - * @factory - */ - public static function greaterThan($value) - { - return new self($value, -1, -1); - } - - /** - * The value is >= $value. - * - * @factory atLeast - */ - public static function greaterThanOrEqualTo($value) - { - return new self($value, -1, 0); - } - - /** - * The value is < $value. - * - * @factory - */ - public static function lessThan($value) - { - return new self($value, 1, 1); - } - - /** - * The value is <= $value. - * - * @factory atMost - */ - public static function lessThanOrEqualTo($value) - { - return new self($value, 0, 1); - } - - // -- Private Methods - - private function _compare($left, $right) - { - $a = $left; - $b = $right; - - if ($a < $b) { - return -1; - } elseif ($a == $b) { - return 0; - } else { - return 1; - } - } - - private function _comparison($compare) - { - if ($compare > 0) { - return 'less than'; - } elseif ($compare == 0) { - return 'equal to'; - } else { - return 'greater than'; - } - } -} diff --git a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/SelfDescribing.php b/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/SelfDescribing.php deleted file mode 100644 index 872fdf9c..00000000 --- a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/SelfDescribing.php +++ /dev/null @@ -1,23 +0,0 @@ -_out = (string) $out; - } - - public function __toString() - { - return $this->_out; - } - - /** - * Return the description of a {@link Hamcrest\SelfDescribing} object as a - * String. - * - * @param \Hamcrest\SelfDescribing $selfDescribing - * The object to be described. - * - * @return string - * The description of the object. - */ - public static function toString(SelfDescribing $selfDescribing) - { - $self = new self(); - - return (string) $self->appendDescriptionOf($selfDescribing); - } - - /** - * Alias for {@link toString()}. - */ - public static function asString(SelfDescribing $selfDescribing) - { - return self::toString($selfDescribing); - } - - // -- Protected Methods - - protected function append($str) - { - $this->_out .= $str; - } -} diff --git a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/IsEmptyString.php b/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/IsEmptyString.php deleted file mode 100644 index 2ae61b96..00000000 --- a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/IsEmptyString.php +++ /dev/null @@ -1,85 +0,0 @@ -_empty = $empty; - } - - public function matches($item) - { - return $this->_empty - ? ($item === '') - : is_string($item) && $item !== ''; - } - - public function describeTo(Description $description) - { - $description->appendText($this->_empty ? 'an empty string' : 'a non-empty string'); - } - - /** - * Matches if value is a zero-length string. - * - * @factory emptyString - */ - public static function isEmptyString() - { - if (!self::$_INSTANCE) { - self::$_INSTANCE = new self(true); - } - - return self::$_INSTANCE; - } - - /** - * Matches if value is null or a zero-length string. - * - * @factory nullOrEmptyString - */ - public static function isEmptyOrNullString() - { - if (!self::$_NULL_OR_EMPTY_INSTANCE) { - self::$_NULL_OR_EMPTY_INSTANCE = AnyOf::anyOf( - IsNull::nullvalue(), - self::isEmptyString() - ); - } - - return self::$_NULL_OR_EMPTY_INSTANCE; - } - - /** - * Matches if value is a non-zero-length string. - * - * @factory nonEmptyString - */ - public static function isNonEmptyString() - { - if (!self::$_NOT_INSTANCE) { - self::$_NOT_INSTANCE = new self(false); - } - - return self::$_NOT_INSTANCE; - } -} diff --git a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/IsEqualIgnoringCase.php b/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/IsEqualIgnoringCase.php deleted file mode 100644 index 3836a8c3..00000000 --- a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/IsEqualIgnoringCase.php +++ /dev/null @@ -1,52 +0,0 @@ -_string = $string; - } - - protected function matchesSafely($item) - { - return strtolower($this->_string) === strtolower($item); - } - - protected function describeMismatchSafely($item, Description $mismatchDescription) - { - $mismatchDescription->appendText('was ')->appendText($item); - } - - public function describeTo(Description $description) - { - $description->appendText('equalToIgnoringCase(') - ->appendValue($this->_string) - ->appendText(')') - ; - } - - /** - * Matches if value is a string equal to $string, regardless of the case. - * - * @factory - */ - public static function equalToIgnoringCase($string) - { - return new self($string); - } -} diff --git a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/IsEqualIgnoringWhiteSpace.php b/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/IsEqualIgnoringWhiteSpace.php deleted file mode 100644 index 853692b0..00000000 --- a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/IsEqualIgnoringWhiteSpace.php +++ /dev/null @@ -1,66 +0,0 @@ -_string = $string; - } - - protected function matchesSafely($item) - { - return (strtolower($this->_stripSpace($item)) - === strtolower($this->_stripSpace($this->_string))); - } - - protected function describeMismatchSafely($item, Description $mismatchDescription) - { - $mismatchDescription->appendText('was ')->appendText($item); - } - - public function describeTo(Description $description) - { - $description->appendText('equalToIgnoringWhiteSpace(') - ->appendValue($this->_string) - ->appendText(')') - ; - } - - /** - * Matches if value is a string equal to $string, regardless of whitespace. - * - * @factory - */ - public static function equalToIgnoringWhiteSpace($string) - { - return new self($string); - } - - // -- Private Methods - - private function _stripSpace($string) - { - $parts = preg_split("/[\r\n\t ]+/", $string); - foreach ($parts as $i => $part) { - $parts[$i] = trim($part, " \r\n\t"); - } - - return trim(implode(' ', $parts), " \r\n\t"); - } -} diff --git a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/MatchesPattern.php b/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/MatchesPattern.php deleted file mode 100644 index fa0d68ee..00000000 --- a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/MatchesPattern.php +++ /dev/null @@ -1,40 +0,0 @@ -_substring, (string) $item) >= 1; - } - - protected function relationship() - { - return 'matching'; - } -} diff --git a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/StringContains.php b/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/StringContains.php deleted file mode 100644 index b92786b6..00000000 --- a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/StringContains.php +++ /dev/null @@ -1,45 +0,0 @@ -_substring); - } - - /** - * Matches if value is a string that contains $substring. - * - * @factory - */ - public static function containsString($substring) - { - return new self($substring); - } - - // -- Protected Methods - - protected function evalSubstringOf($item) - { - return (false !== strpos((string) $item, $this->_substring)); - } - - protected function relationship() - { - return 'containing'; - } -} diff --git a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/StringContainsIgnoringCase.php b/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/StringContainsIgnoringCase.php deleted file mode 100644 index 69f37c25..00000000 --- a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/StringContainsIgnoringCase.php +++ /dev/null @@ -1,40 +0,0 @@ -_substring)); - } - - protected function relationship() - { - return 'containing in any case'; - } -} diff --git a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/StringContainsInOrder.php b/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/StringContainsInOrder.php deleted file mode 100644 index e75de65d..00000000 --- a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/StringContainsInOrder.php +++ /dev/null @@ -1,66 +0,0 @@ -_substrings = $substrings; - } - - protected function matchesSafely($item) - { - $fromIndex = 0; - - foreach ($this->_substrings as $substring) { - if (false === $fromIndex = strpos($item, $substring, $fromIndex)) { - return false; - } - } - - return true; - } - - protected function describeMismatchSafely($item, Description $mismatchDescription) - { - $mismatchDescription->appendText('was ')->appendText($item); - } - - public function describeTo(Description $description) - { - $description->appendText('a string containing ') - ->appendValueList('', ', ', '', $this->_substrings) - ->appendText(' in order') - ; - } - - /** - * Matches if value contains $substrings in a constrained order. - * - * @factory ... - */ - public static function stringContainsInOrder(/* args... */) - { - $args = func_get_args(); - - if (isset($args[0]) && is_array($args[0])) { - $args = $args[0]; - } - - return new self($args); - } -} diff --git a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/StringEndsWith.php b/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/StringEndsWith.php deleted file mode 100644 index f802ee4d..00000000 --- a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/StringEndsWith.php +++ /dev/null @@ -1,40 +0,0 @@ -_substring))) === $this->_substring); - } - - protected function relationship() - { - return 'ending with'; - } -} diff --git a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/StringStartsWith.php b/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/StringStartsWith.php deleted file mode 100644 index 79c95656..00000000 --- a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/StringStartsWith.php +++ /dev/null @@ -1,40 +0,0 @@ -_substring)) === $this->_substring); - } - - protected function relationship() - { - return 'starting with'; - } -} diff --git a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/SubstringMatcher.php b/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/SubstringMatcher.php deleted file mode 100644 index e560ad62..00000000 --- a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/SubstringMatcher.php +++ /dev/null @@ -1,45 +0,0 @@ -_substring = $substring; - } - - protected function matchesSafely($item) - { - return $this->evalSubstringOf($item); - } - - protected function describeMismatchSafely($item, Description $mismatchDescription) - { - $mismatchDescription->appendText('was "')->appendText($item)->appendText('"'); - } - - public function describeTo(Description $description) - { - $description->appendText('a string ') - ->appendText($this->relationship()) - ->appendText(' ') - ->appendValue($this->_substring) - ; - } - - abstract protected function evalSubstringOf($string); - - abstract protected function relationship(); -} diff --git a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Type/IsArray.php b/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Type/IsArray.php deleted file mode 100644 index 9179102f..00000000 --- a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Type/IsArray.php +++ /dev/null @@ -1,32 +0,0 @@ -matchesSafelyWithDiagnosticDescription($item, new NullDescription()); - } - - final public function describeMismatchSafely($item, Description $mismatchDescription) - { - $this->matchesSafelyWithDiagnosticDescription($item, $mismatchDescription); - } - - // -- Protected Methods - - /** - * Subclasses should implement these. The item will already have been checked for - * the specific type. - */ - abstract protected function matchesSafelyWithDiagnosticDescription($item, Description $mismatchDescription); -} diff --git a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/TypeSafeMatcher.php b/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/TypeSafeMatcher.php deleted file mode 100644 index 56e299a9..00000000 --- a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/TypeSafeMatcher.php +++ /dev/null @@ -1,107 +0,0 @@ -_expectedType = $expectedType; - $this->_expectedSubtype = $expectedSubtype; - } - - final public function matches($item) - { - return $this->_isSafeType($item) && $this->matchesSafely($item); - } - - final public function describeMismatch($item, Description $mismatchDescription) - { - if (!$this->_isSafeType($item)) { - parent::describeMismatch($item, $mismatchDescription); - } else { - $this->describeMismatchSafely($item, $mismatchDescription); - } - } - - // -- Protected Methods - - /** - * The item will already have been checked for the specific type and subtype. - */ - abstract protected function matchesSafely($item); - - /** - * The item will already have been checked for the specific type and subtype. - */ - abstract protected function describeMismatchSafely($item, Description $mismatchDescription); - - // -- Private Methods - - private function _isSafeType($value) - { - switch ($this->_expectedType) { - - case self::TYPE_ANY: - return true; - - case self::TYPE_STRING: - return is_string($value) || is_numeric($value); - - case self::TYPE_NUMERIC: - return is_numeric($value) || is_string($value); - - case self::TYPE_ARRAY: - return is_array($value); - - case self::TYPE_OBJECT: - return is_object($value) - && ($this->_expectedSubtype === null - || $value instanceof $this->_expectedSubtype); - - case self::TYPE_RESOURCE: - return is_resource($value) - && ($this->_expectedSubtype === null - || get_resource_type($value) == $this->_expectedSubtype); - - case self::TYPE_BOOLEAN: - return true; - - default: - return true; - - } - } -} diff --git a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Util.php b/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Util.php deleted file mode 100644 index 50f92017..00000000 --- a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Util.php +++ /dev/null @@ -1,72 +0,0 @@ - all items are - */ - public static function createMatcherArray(array $items) - { - //Extract single array item - if (count($items) == 1 && is_array($items[0])) { - $items = $items[0]; - } - - //Replace non-matchers - foreach ($items as &$item) { - if (!($item instanceof Matcher)) { - $item = Core\IsEqual::equalTo($item); - } - } - - return $items; - } -} diff --git a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Xml/HasXPath.php b/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Xml/HasXPath.php deleted file mode 100644 index d9764e45..00000000 --- a/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Xml/HasXPath.php +++ /dev/null @@ -1,195 +0,0 @@ -_xpath = $xpath; - $this->_matcher = $matcher; - } - - /** - * Matches if the XPath matches against the DOM node and the matcher. - * - * @param string|\DOMNode $actual - * @param Description $mismatchDescription - * @return bool - */ - protected function matchesWithDiagnosticDescription($actual, Description $mismatchDescription) - { - if (is_string($actual)) { - $actual = $this->createDocument($actual); - } elseif (!$actual instanceof \DOMNode) { - $mismatchDescription->appendText('was ')->appendValue($actual); - - return false; - } - $result = $this->evaluate($actual); - if ($result instanceof \DOMNodeList) { - return $this->matchesContent($result, $mismatchDescription); - } else { - return $this->matchesExpression($result, $mismatchDescription); - } - } - - /** - * Creates and returns a DOMDocument from the given - * XML or HTML string. - * - * @param string $text - * @return \DOMDocument built from $text - * @throws \InvalidArgumentException if the document is not valid - */ - protected function createDocument($text) - { - $document = new \DOMDocument(); - if (preg_match('/^\s*<\?xml/', $text)) { - if (!@$document->loadXML($text)) { - throw new \InvalidArgumentException('Must pass a valid XML document'); - } - } else { - if (!@$document->loadHTML($text)) { - throw new \InvalidArgumentException('Must pass a valid HTML or XHTML document'); - } - } - - return $document; - } - - /** - * Applies the configured XPath to the DOM node and returns either - * the result if it's an expression or the node list if it's a query. - * - * @param \DOMNode $node context from which to issue query - * @return mixed result of expression or DOMNodeList from query - */ - protected function evaluate(\DOMNode $node) - { - if ($node instanceof \DOMDocument) { - $xpathDocument = new \DOMXPath($node); - - return $xpathDocument->evaluate($this->_xpath); - } else { - $xpathDocument = new \DOMXPath($node->ownerDocument); - - return $xpathDocument->evaluate($this->_xpath, $node); - } - } - - /** - * Matches if the list of nodes is not empty and the content of at least - * one node matches the configured matcher, if supplied. - * - * @param \DOMNodeList $nodes selected by the XPath query - * @param Description $mismatchDescription - * @return bool - */ - protected function matchesContent(\DOMNodeList $nodes, Description $mismatchDescription) - { - if ($nodes->length == 0) { - $mismatchDescription->appendText('XPath returned no results'); - } elseif ($this->_matcher === null) { - return true; - } else { - foreach ($nodes as $node) { - if ($this->_matcher->matches($node->textContent)) { - return true; - } - } - $content = array(); - foreach ($nodes as $node) { - $content[] = $node->textContent; - } - $mismatchDescription->appendText('XPath returned ') - ->appendValue($content); - } - - return false; - } - - /** - * Matches if the result of the XPath expression matches the configured - * matcher or evaluates to true if there is none. - * - * @param mixed $result result of the XPath expression - * @param Description $mismatchDescription - * @return bool - */ - protected function matchesExpression($result, Description $mismatchDescription) - { - if ($this->_matcher === null) { - if ($result) { - return true; - } - $mismatchDescription->appendText('XPath expression result was ') - ->appendValue($result); - } else { - if ($this->_matcher->matches($result)) { - return true; - } - $mismatchDescription->appendText('XPath expression result '); - $this->_matcher->describeMismatch($result, $mismatchDescription); - } - - return false; - } - - public function describeTo(Description $description) - { - $description->appendText('XML or HTML document with XPath "') - ->appendText($this->_xpath) - ->appendText('"'); - if ($this->_matcher !== null) { - $description->appendText(' '); - $this->_matcher->describeTo($description); - } - } - - /** - * Wraps $matcher with {@link Hamcrest\Core\IsEqual) - * if it's not a matcher and the XPath in count() - * if it's an integer. - * - * @factory - */ - public static function hasXPath($xpath, $matcher = null) - { - if ($matcher === null || $matcher instanceof Matcher) { - return new self($xpath, $matcher); - } elseif (is_int($matcher) && strpos($xpath, 'count(') !== 0) { - $xpath = 'count(' . $xpath . ')'; - } - - return new self($xpath, IsEqual::equalTo($matcher)); - } -} diff --git a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/AbstractMatcherTest.php b/vendor/hamcrest/hamcrest-php/tests/Hamcrest/AbstractMatcherTest.php deleted file mode 100644 index 6c52c0e5..00000000 --- a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/AbstractMatcherTest.php +++ /dev/null @@ -1,66 +0,0 @@ -assertTrue($matcher->matches($arg), $message); - } - - public function assertDoesNotMatch(\Hamcrest\Matcher $matcher, $arg, $message) - { - $this->assertFalse($matcher->matches($arg), $message); - } - - public function assertDescription($expected, \Hamcrest\Matcher $matcher) - { - $description = new \Hamcrest\StringDescription(); - $description->appendDescriptionOf($matcher); - $this->assertEquals($expected, (string) $description, 'Expected description'); - } - - public function assertMismatchDescription($expected, \Hamcrest\Matcher $matcher, $arg) - { - $description = new \Hamcrest\StringDescription(); - $this->assertFalse( - $matcher->matches($arg), - 'Precondtion: Matcher should not match item' - ); - $matcher->describeMismatch($arg, $description); - $this->assertEquals( - $expected, - (string) $description, - 'Expected mismatch description' - ); - } - - public function testIsNullSafe() - { - //Should not generate any notices - $this->createMatcher()->matches(null); - $this->createMatcher()->describeMismatch( - null, - new \Hamcrest\NullDescription() - ); - } - - public function testCopesWithUnknownTypes() - { - //Should not generate any notices - $this->createMatcher()->matches(new UnknownType()); - $this->createMatcher()->describeMismatch( - new UnknownType(), - new NullDescription() - ); - } -} diff --git a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Array/IsArrayContainingInAnyOrderTest.php b/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Array/IsArrayContainingInAnyOrderTest.php deleted file mode 100644 index 45d9f138..00000000 --- a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Array/IsArrayContainingInAnyOrderTest.php +++ /dev/null @@ -1,54 +0,0 @@ -assertDescription('[<1>, <2>] in any order', containsInAnyOrder(array(1, 2))); - } - - public function testMatchesItemsInAnyOrder() - { - $this->assertMatches(containsInAnyOrder(array(1, 2, 3)), array(1, 2, 3), 'in order'); - $this->assertMatches(containsInAnyOrder(array(1, 2, 3)), array(3, 2, 1), 'out of order'); - $this->assertMatches(containsInAnyOrder(array(1)), array(1), 'single'); - } - - public function testAppliesMatchersInAnyOrder() - { - $this->assertMatches( - containsInAnyOrder(array(1, 2, 3)), - array(1, 2, 3), - 'in order' - ); - $this->assertMatches( - containsInAnyOrder(array(1, 2, 3)), - array(3, 2, 1), - 'out of order' - ); - $this->assertMatches( - containsInAnyOrder(array(1)), - array(1), - 'single' - ); - } - - public function testMismatchesItemsInAnyOrder() - { - $matcher = containsInAnyOrder(array(1, 2, 3)); - - $this->assertMismatchDescription('was null', $matcher, null); - $this->assertMismatchDescription('No item matches: <1>, <2>, <3> in []', $matcher, array()); - $this->assertMismatchDescription('No item matches: <2>, <3> in [<1>]', $matcher, array(1)); - $this->assertMismatchDescription('Not matched: <4>', $matcher, array(4, 3, 2, 1)); - } -} diff --git a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Array/IsArrayContainingInOrderTest.php b/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Array/IsArrayContainingInOrderTest.php deleted file mode 100644 index 1868343f..00000000 --- a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Array/IsArrayContainingInOrderTest.php +++ /dev/null @@ -1,44 +0,0 @@ -assertDescription('[<1>, <2>]', arrayContaining(array(1, 2))); - } - - public function testMatchesItemsInOrder() - { - $this->assertMatches(arrayContaining(array(1, 2, 3)), array(1, 2, 3), 'in order'); - $this->assertMatches(arrayContaining(array(1)), array(1), 'single'); - } - - public function testAppliesMatchersInOrder() - { - $this->assertMatches( - arrayContaining(array(1, 2, 3)), - array(1, 2, 3), - 'in order' - ); - $this->assertMatches(arrayContaining(array(1)), array(1), 'single'); - } - - public function testMismatchesItemsInAnyOrder() - { - $matcher = arrayContaining(array(1, 2, 3)); - $this->assertMismatchDescription('was null', $matcher, null); - $this->assertMismatchDescription('No item matched: <1>', $matcher, array()); - $this->assertMismatchDescription('No item matched: <2>', $matcher, array(1)); - $this->assertMismatchDescription('item with key 0: was <4>', $matcher, array(4, 3, 2, 1)); - $this->assertMismatchDescription('item with key 2: was <4>', $matcher, array(1, 2, 4)); - } -} diff --git a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Array/IsArrayContainingKeyTest.php b/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Array/IsArrayContainingKeyTest.php deleted file mode 100644 index 31770d8d..00000000 --- a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Array/IsArrayContainingKeyTest.php +++ /dev/null @@ -1,62 +0,0 @@ -1); - - $this->assertMatches(hasKey('a'), $array, 'Matches single key'); - } - - public function testMatchesArrayContainingKey() - { - $array = array('a'=>1, 'b'=>2, 'c'=>3); - - $this->assertMatches(hasKey('a'), $array, 'Matches a'); - $this->assertMatches(hasKey('c'), $array, 'Matches c'); - } - - public function testMatchesArrayContainingKeyWithIntegerKeys() - { - $array = array(1=>'A', 2=>'B'); - - assertThat($array, hasKey(1)); - } - - public function testMatchesArrayContainingKeyWithNumberKeys() - { - $array = array(1=>'A', 2=>'B'); - - assertThat($array, hasKey(1)); - - // very ugly version! - assertThat($array, IsArrayContainingKey::hasKeyInArray(2)); - } - - public function testHasReadableDescription() - { - $this->assertDescription('array with key "a"', hasKey('a')); - } - - public function testDoesNotMatchEmptyArray() - { - $this->assertMismatchDescription('array was []', hasKey('Foo'), array()); - } - - public function testDoesNotMatchArrayMissingKey() - { - $array = array('a'=>1, 'b'=>2, 'c'=>3); - - $this->assertMismatchDescription('array was ["a" => <1>, "b" => <2>, "c" => <3>]', hasKey('d'), $array); - } -} diff --git a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Array/IsArrayContainingKeyValuePairTest.php b/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Array/IsArrayContainingKeyValuePairTest.php deleted file mode 100644 index a415f9f7..00000000 --- a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Array/IsArrayContainingKeyValuePairTest.php +++ /dev/null @@ -1,36 +0,0 @@ -1, 'b'=>2); - - $this->assertMatches(hasKeyValuePair(equalTo('a'), equalTo(1)), $array, 'matcherA'); - $this->assertMatches(hasKeyValuePair(equalTo('b'), equalTo(2)), $array, 'matcherB'); - $this->assertMismatchDescription( - 'array was ["a" => <1>, "b" => <2>]', - hasKeyValuePair(equalTo('c'), equalTo(3)), - $array - ); - } - - public function testDoesNotMatchNull() - { - $this->assertMismatchDescription('was null', hasKeyValuePair(anything(), anything()), null); - } - - public function testHasReadableDescription() - { - $this->assertDescription('array containing ["a" => <2>]', hasKeyValuePair(equalTo('a'), equalTo(2))); - } -} diff --git a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Array/IsArrayContainingTest.php b/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Array/IsArrayContainingTest.php deleted file mode 100644 index 8d5bd810..00000000 --- a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Array/IsArrayContainingTest.php +++ /dev/null @@ -1,50 +0,0 @@ -assertMatches( - hasItemInArray('a'), - array('a', 'b', 'c'), - "should matches array that contains 'a'" - ); - } - - public function testDoesNotMatchAnArrayThatDoesntContainAnElementMatchingTheGivenMatcher() - { - $this->assertDoesNotMatch( - hasItemInArray('a'), - array('b', 'c'), - "should not matches array that doesn't contain 'a'" - ); - $this->assertDoesNotMatch( - hasItemInArray('a'), - array(), - 'should not match empty array' - ); - } - - public function testDoesNotMatchNull() - { - $this->assertDoesNotMatch( - hasItemInArray('a'), - null, - 'should not match null' - ); - } - - public function testHasAReadableDescription() - { - $this->assertDescription('an array containing "a"', hasItemInArray('a')); - } -} diff --git a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Array/IsArrayTest.php b/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Array/IsArrayTest.php deleted file mode 100644 index e4db53e7..00000000 --- a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Array/IsArrayTest.php +++ /dev/null @@ -1,89 +0,0 @@ -assertMatches( - anArray(array(equalTo('a'), equalTo('b'), equalTo('c'))), - array('a', 'b', 'c'), - 'should match array with matching elements' - ); - } - - public function testDoesNotMatchAnArrayWhenElementsDoNotMatch() - { - $this->assertDoesNotMatch( - anArray(array(equalTo('a'), equalTo('b'))), - array('b', 'c'), - 'should not match array with different elements' - ); - } - - public function testDoesNotMatchAnArrayOfDifferentSize() - { - $this->assertDoesNotMatch( - anArray(array(equalTo('a'), equalTo('b'))), - array('a', 'b', 'c'), - 'should not match larger array' - ); - $this->assertDoesNotMatch( - anArray(array(equalTo('a'), equalTo('b'))), - array('a'), - 'should not match smaller array' - ); - } - - public function testDoesNotMatchNull() - { - $this->assertDoesNotMatch( - anArray(array(equalTo('a'))), - null, - 'should not match null' - ); - } - - public function testHasAReadableDescription() - { - $this->assertDescription( - '["a", "b"]', - anArray(array(equalTo('a'), equalTo('b'))) - ); - } - - public function testHasAReadableMismatchDescriptionWhenKeysDontMatch() - { - $this->assertMismatchDescription( - 'array keys were [<1>, <2>]', - anArray(array(equalTo('a'), equalTo('b'))), - array(1 => 'a', 2 => 'b') - ); - } - - public function testSupportsMatchesAssociativeArrays() - { - $this->assertMatches( - anArray(array('x'=>equalTo('a'), 'y'=>equalTo('b'), 'z'=>equalTo('c'))), - array('x'=>'a', 'y'=>'b', 'z'=>'c'), - 'should match associative array with matching elements' - ); - } - - public function testDoesNotMatchAnAssociativeArrayWhenKeysDoNotMatch() - { - $this->assertDoesNotMatch( - anArray(array('x'=>equalTo('a'), 'y'=>equalTo('b'))), - array('x'=>'b', 'z'=>'c'), - 'should not match array with different keys' - ); - } -} diff --git a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Array/IsArrayWithSizeTest.php b/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Array/IsArrayWithSizeTest.php deleted file mode 100644 index 8413c896..00000000 --- a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Array/IsArrayWithSizeTest.php +++ /dev/null @@ -1,37 +0,0 @@ -assertMatches(arrayWithSize(equalTo(3)), array(1, 2, 3), 'correct size'); - $this->assertDoesNotMatch(arrayWithSize(equalTo(2)), array(1, 2, 3), 'incorrect size'); - } - - public function testProvidesConvenientShortcutForArrayWithSizeEqualTo() - { - $this->assertMatches(arrayWithSize(3), array(1, 2, 3), 'correct size'); - $this->assertDoesNotMatch(arrayWithSize(2), array(1, 2, 3), 'incorrect size'); - } - - public function testEmptyArray() - { - $this->assertMatches(emptyArray(), array(), 'correct size'); - $this->assertDoesNotMatch(emptyArray(), array(1), 'incorrect size'); - } - - public function testHasAReadableDescription() - { - $this->assertDescription('an array with size <3>', arrayWithSize(equalTo(3))); - $this->assertDescription('an empty array', emptyArray()); - } -} diff --git a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/BaseMatcherTest.php b/vendor/hamcrest/hamcrest-php/tests/Hamcrest/BaseMatcherTest.php deleted file mode 100644 index 833e2c3e..00000000 --- a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/BaseMatcherTest.php +++ /dev/null @@ -1,23 +0,0 @@ -appendText('SOME DESCRIPTION'); - } - - public function testDescribesItselfWithToStringMethod() - { - $someMatcher = new \Hamcrest\SomeMatcher(); - $this->assertEquals('SOME DESCRIPTION', (string) $someMatcher); - } -} diff --git a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Collection/IsEmptyTraversableTest.php b/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Collection/IsEmptyTraversableTest.php deleted file mode 100644 index 2f15fb49..00000000 --- a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Collection/IsEmptyTraversableTest.php +++ /dev/null @@ -1,77 +0,0 @@ -assertMatches( - emptyTraversable(), - new \ArrayObject(array()), - 'an empty traversable' - ); - } - - public function testEmptyMatcherDoesNotMatchWhenNotEmpty() - { - $this->assertDoesNotMatch( - emptyTraversable(), - new \ArrayObject(array(1, 2, 3)), - 'a non-empty traversable' - ); - } - - public function testEmptyMatcherDoesNotMatchNull() - { - $this->assertDoesNotMatch( - emptyTraversable(), - null, - 'should not match null' - ); - } - - public function testEmptyMatcherHasAReadableDescription() - { - $this->assertDescription('an empty traversable', emptyTraversable()); - } - - public function testNonEmptyDoesNotMatchNull() - { - $this->assertDoesNotMatch( - nonEmptyTraversable(), - null, - 'should not match null' - ); - } - - public function testNonEmptyDoesNotMatchWhenEmpty() - { - $this->assertDoesNotMatch( - nonEmptyTraversable(), - new \ArrayObject(array()), - 'an empty traversable' - ); - } - - public function testNonEmptyMatchesWhenNotEmpty() - { - $this->assertMatches( - nonEmptyTraversable(), - new \ArrayObject(array(1, 2, 3)), - 'a non-empty traversable' - ); - } - - public function testNonEmptyNonEmptyMatcherHasAReadableDescription() - { - $this->assertDescription('a non-empty traversable', nonEmptyTraversable()); - } -} diff --git a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Collection/IsTraversableWithSizeTest.php b/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Collection/IsTraversableWithSizeTest.php deleted file mode 100644 index c1c67a7a..00000000 --- a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Collection/IsTraversableWithSizeTest.php +++ /dev/null @@ -1,57 +0,0 @@ -assertMatches( - traversableWithSize(equalTo(3)), - new \ArrayObject(array(1, 2, 3)), - 'correct size' - ); - } - - public function testDoesNotMatchWhenSizeIsIncorrect() - { - $this->assertDoesNotMatch( - traversableWithSize(equalTo(2)), - new \ArrayObject(array(1, 2, 3)), - 'incorrect size' - ); - } - - public function testDoesNotMatchNull() - { - $this->assertDoesNotMatch( - traversableWithSize(3), - null, - 'should not match null' - ); - } - - public function testProvidesConvenientShortcutForTraversableWithSizeEqualTo() - { - $this->assertMatches( - traversableWithSize(3), - new \ArrayObject(array(1, 2, 3)), - 'correct size' - ); - } - - public function testHasAReadableDescription() - { - $this->assertDescription( - 'a traversable with size <3>', - traversableWithSize(equalTo(3)) - ); - } -} diff --git a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Core/AllOfTest.php b/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Core/AllOfTest.php deleted file mode 100644 index 86b8c277..00000000 --- a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Core/AllOfTest.php +++ /dev/null @@ -1,56 +0,0 @@ -assertDescription( - '("good" and "bad" and "ugly")', - allOf('good', 'bad', 'ugly') - ); - } - - public function testMismatchDescriptionDescribesFirstFailingMatch() - { - $this->assertMismatchDescription( - '"good" was "bad"', - allOf('bad', 'good'), - 'bad' - ); - } -} diff --git a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Core/AnyOfTest.php b/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Core/AnyOfTest.php deleted file mode 100644 index 3d62b935..00000000 --- a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Core/AnyOfTest.php +++ /dev/null @@ -1,79 +0,0 @@ -assertDescription( - '("good" or "bad" or "ugly")', - anyOf('good', 'bad', 'ugly') - ); - } - - public function testNoneOfEvaluatesToTheLogicalDisjunctionOfTwoOtherMatchers() - { - assertThat('good', not(noneOf('bad', 'good'))); - assertThat('good', not(noneOf('good', 'good'))); - assertThat('good', not(noneOf('good', 'bad'))); - - assertThat('good', noneOf('bad', startsWith('b'))); - } - - public function testNoneOfEvaluatesToTheLogicalDisjunctionOfManyOtherMatchers() - { - assertThat('good', not(noneOf('bad', 'good', 'bad', 'bad', 'bad'))); - assertThat('good', noneOf('bad', 'bad', 'bad', 'bad', 'bad')); - } - - public function testNoneOfSupportsMixedTypes() - { - $combined = noneOf( - equalTo(new \Hamcrest\Core\SampleBaseClass('good')), - equalTo(new \Hamcrest\Core\SampleBaseClass('ugly')), - equalTo(new \Hamcrest\Core\SampleSubClass('good')) - ); - - assertThat(new \Hamcrest\Core\SampleSubClass('bad'), $combined); - } - - public function testNoneOfHasAReadableDescription() - { - $this->assertDescription( - 'not ("good" or "bad" or "ugly")', - noneOf('good', 'bad', 'ugly') - ); - } -} diff --git a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Core/CombinableMatcherTest.php b/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Core/CombinableMatcherTest.php deleted file mode 100644 index 4c226149..00000000 --- a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Core/CombinableMatcherTest.php +++ /dev/null @@ -1,59 +0,0 @@ -_either_3_or_4 = \Hamcrest\Core\CombinableMatcher::either(equalTo(3))->orElse(equalTo(4)); - $this->_not_3_and_not_4 = \Hamcrest\Core\CombinableMatcher::both(not(equalTo(3)))->andAlso(not(equalTo(4))); - } - - protected function createMatcher() - { - return \Hamcrest\Core\CombinableMatcher::either(equalTo('irrelevant'))->orElse(equalTo('ignored')); - } - - public function testBothAcceptsAndRejects() - { - assertThat(2, $this->_not_3_and_not_4); - assertThat(3, not($this->_not_3_and_not_4)); - } - - public function testAcceptsAndRejectsThreeAnds() - { - $tripleAnd = $this->_not_3_and_not_4->andAlso(equalTo(2)); - assertThat(2, $tripleAnd); - assertThat(3, not($tripleAnd)); - } - - public function testBothDescribesItself() - { - $this->assertEquals('(not <3> and not <4>)', (string) $this->_not_3_and_not_4); - $this->assertMismatchDescription('was <3>', $this->_not_3_and_not_4, 3); - } - - public function testEitherAcceptsAndRejects() - { - assertThat(3, $this->_either_3_or_4); - assertThat(6, not($this->_either_3_or_4)); - } - - public function testAcceptsAndRejectsThreeOrs() - { - $orTriple = $this->_either_3_or_4->orElse(greaterThan(10)); - - assertThat(11, $orTriple); - assertThat(9, not($orTriple)); - } - - public function testEitherDescribesItself() - { - $this->assertEquals('(<3> or <4>)', (string) $this->_either_3_or_4); - $this->assertMismatchDescription('was <6>', $this->_either_3_or_4, 6); - } -} diff --git a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Core/DescribedAsTest.php b/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Core/DescribedAsTest.php deleted file mode 100644 index 673ab41e..00000000 --- a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Core/DescribedAsTest.php +++ /dev/null @@ -1,36 +0,0 @@ -assertDescription('m1 description', $m1); - $this->assertDescription('m2 description', $m2); - } - - public function testAppendsValuesToDescription() - { - $m = describedAs('value 1 = %0, value 2 = %1', anything(), 33, 97); - - $this->assertDescription('value 1 = <33>, value 2 = <97>', $m); - } - - public function testDelegatesMatchingToAnotherMatcher() - { - $m1 = describedAs('irrelevant', anything()); - $m2 = describedAs('irrelevant', not(anything())); - - $this->assertTrue($m1->matches(new \stdClass())); - $this->assertFalse($m2->matches('hi')); - } -} diff --git a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Core/EveryTest.php b/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Core/EveryTest.php deleted file mode 100644 index 5eb153c5..00000000 --- a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Core/EveryTest.php +++ /dev/null @@ -1,30 +0,0 @@ -assertEquals('every item is a string containing "a"', (string) $each); - - $this->assertMismatchDescription('an item was "BbB"', $each, array('BbB')); - } -} diff --git a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Core/HasToStringTest.php b/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Core/HasToStringTest.php deleted file mode 100644 index e2e136dc..00000000 --- a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Core/HasToStringTest.php +++ /dev/null @@ -1,108 +0,0 @@ -assertMatches( - hasToString(equalTo('php')), - new \Hamcrest\Core\PhpForm(), - 'correct __toString' - ); - $this->assertMatches( - hasToString(equalTo('java')), - new \Hamcrest\Core\JavaForm(), - 'correct toString' - ); - } - - public function testPicksJavaOverPhpToString() - { - $this->assertMatches( - hasToString(equalTo('java')), - new \Hamcrest\Core\BothForms(), - 'correct toString' - ); - } - - public function testDoesNotMatchWhenToStringDoesNotMatch() - { - $this->assertDoesNotMatch( - hasToString(equalTo('mismatch')), - new \Hamcrest\Core\PhpForm(), - 'incorrect __toString' - ); - $this->assertDoesNotMatch( - hasToString(equalTo('mismatch')), - new \Hamcrest\Core\JavaForm(), - 'incorrect toString' - ); - $this->assertDoesNotMatch( - hasToString(equalTo('mismatch')), - new \Hamcrest\Core\BothForms(), - 'incorrect __toString' - ); - } - - public function testDoesNotMatchNull() - { - $this->assertDoesNotMatch( - hasToString(equalTo('a')), - null, - 'should not match null' - ); - } - - public function testProvidesConvenientShortcutForTraversableWithSizeEqualTo() - { - $this->assertMatches( - hasToString(equalTo('php')), - new \Hamcrest\Core\PhpForm(), - 'correct __toString' - ); - } - - public function testHasAReadableDescription() - { - $this->assertDescription( - 'an object with toString() "php"', - hasToString(equalTo('php')) - ); - } -} diff --git a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Core/IsAnythingTest.php b/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Core/IsAnythingTest.php deleted file mode 100644 index f68032e5..00000000 --- a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Core/IsAnythingTest.php +++ /dev/null @@ -1,29 +0,0 @@ -assertDescription('ANYTHING', anything()); - } - - public function testCanOverrideDescription() - { - $description = 'description'; - $this->assertDescription($description, anything($description)); - } -} diff --git a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Core/IsCollectionContainingTest.php b/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Core/IsCollectionContainingTest.php deleted file mode 100644 index a3929b54..00000000 --- a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Core/IsCollectionContainingTest.php +++ /dev/null @@ -1,91 +0,0 @@ -assertMatches( - $itemMatcher, - array('a', 'b', 'c'), - "should match list that contains 'a'" - ); - } - - public function testDoesNotMatchCollectionThatDoesntContainAnElementMatchingTheGivenMatcher() - { - $matcher1 = hasItem(equalTo('a')); - $this->assertDoesNotMatch( - $matcher1, - array('b', 'c'), - "should not match list that doesn't contain 'a'" - ); - - $matcher2 = hasItem(equalTo('a')); - $this->assertDoesNotMatch( - $matcher2, - array(), - 'should not match the empty list' - ); - } - - public function testDoesNotMatchNull() - { - $this->assertDoesNotMatch( - hasItem(equalTo('a')), - null, - 'should not match null' - ); - } - - public function testHasAReadableDescription() - { - $this->assertDescription('a collection containing "a"', hasItem(equalTo('a'))); - } - - public function testMatchesAllItemsInCollection() - { - $matcher1 = hasItems(equalTo('a'), equalTo('b'), equalTo('c')); - $this->assertMatches( - $matcher1, - array('a', 'b', 'c'), - 'should match list containing all items' - ); - - $matcher2 = hasItems('a', 'b', 'c'); - $this->assertMatches( - $matcher2, - array('a', 'b', 'c'), - 'should match list containing all items (without matchers)' - ); - - $matcher3 = hasItems(equalTo('a'), equalTo('b'), equalTo('c')); - $this->assertMatches( - $matcher3, - array('c', 'b', 'a'), - 'should match list containing all items in any order' - ); - - $matcher4 = hasItems(equalTo('a'), equalTo('b'), equalTo('c')); - $this->assertMatches( - $matcher4, - array('e', 'c', 'b', 'a', 'd'), - 'should match list containing all items plus others' - ); - - $matcher5 = hasItems(equalTo('a'), equalTo('b'), equalTo('c')); - $this->assertDoesNotMatch( - $matcher5, - array('e', 'c', 'b', 'd'), // 'a' missing - 'should not match list unless it contains all items' - ); - } -} diff --git a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Core/IsEqualTest.php b/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Core/IsEqualTest.php deleted file mode 100644 index 73e3ff07..00000000 --- a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Core/IsEqualTest.php +++ /dev/null @@ -1,102 +0,0 @@ -_arg = $arg; - } - - public function __toString() - { - return $this->_arg; - } -} - -class IsEqualTest extends \Hamcrest\AbstractMatcherTest -{ - - protected function createMatcher() - { - return \Hamcrest\Core\IsEqual::equalTo('irrelevant'); - } - - public function testComparesObjectsUsingEqualityOperator() - { - assertThat("hi", equalTo("hi")); - assertThat("bye", not(equalTo("hi"))); - - assertThat(1, equalTo(1)); - assertThat(1, not(equalTo(2))); - - assertThat("2", equalTo(2)); - } - - public function testCanCompareNullValues() - { - assertThat(null, equalTo(null)); - - assertThat(null, not(equalTo('hi'))); - assertThat('hi', not(equalTo(null))); - } - - public function testComparesTheElementsOfAnArray() - { - $s1 = array('a', 'b'); - $s2 = array('a', 'b'); - $s3 = array('c', 'd'); - $s4 = array('a', 'b', 'c', 'd'); - - assertThat($s1, equalTo($s1)); - assertThat($s2, equalTo($s1)); - assertThat($s3, not(equalTo($s1))); - assertThat($s4, not(equalTo($s1))); - } - - public function testComparesTheElementsOfAnArrayOfPrimitiveTypes() - { - $i1 = array(1, 2); - $i2 = array(1, 2); - $i3 = array(3, 4); - $i4 = array(1, 2, 3, 4); - - assertThat($i1, equalTo($i1)); - assertThat($i2, equalTo($i1)); - assertThat($i3, not(equalTo($i1))); - assertThat($i4, not(equalTo($i1))); - } - - public function testRecursivelyTestsElementsOfArrays() - { - $i1 = array(array(1, 2), array(3, 4)); - $i2 = array(array(1, 2), array(3, 4)); - $i3 = array(array(5, 6), array(7, 8)); - $i4 = array(array(1, 2, 3, 4), array(3, 4)); - - assertThat($i1, equalTo($i1)); - assertThat($i2, equalTo($i1)); - assertThat($i3, not(equalTo($i1))); - assertThat($i4, not(equalTo($i1))); - } - - public function testIncludesTheResultOfCallingToStringOnItsArgumentInTheDescription() - { - $argumentDescription = 'ARGUMENT DESCRIPTION'; - $argument = new \Hamcrest\Core\DummyToStringClass($argumentDescription); - $this->assertDescription('<' . $argumentDescription . '>', equalTo($argument)); - } - - public function testReturnsAnObviousDescriptionIfCreatedWithANestedMatcherByMistake() - { - $innerMatcher = equalTo('NestedMatcher'); - $this->assertDescription('<' . (string) $innerMatcher . '>', equalTo($innerMatcher)); - } - - public function testReturnsGoodDescriptionIfCreatedWithNullReference() - { - $this->assertDescription('null', equalTo(null)); - } -} diff --git a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Core/IsIdenticalTest.php b/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Core/IsIdenticalTest.php deleted file mode 100644 index 9cc27946..00000000 --- a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Core/IsIdenticalTest.php +++ /dev/null @@ -1,30 +0,0 @@ -assertDescription('"ARG"', identicalTo('ARG')); - } - - public function testReturnsReadableDescriptionFromToStringWhenInitialisedWithNull() - { - $this->assertDescription('null', identicalTo(null)); - } -} diff --git a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Core/IsInstanceOfTest.php b/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Core/IsInstanceOfTest.php deleted file mode 100644 index 7a5f095a..00000000 --- a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Core/IsInstanceOfTest.php +++ /dev/null @@ -1,51 +0,0 @@ -_baseClassInstance = new \Hamcrest\Core\SampleBaseClass('good'); - $this->_subClassInstance = new \Hamcrest\Core\SampleSubClass('good'); - } - - protected function createMatcher() - { - return \Hamcrest\Core\IsInstanceOf::anInstanceOf('stdClass'); - } - - public function testEvaluatesToTrueIfArgumentIsInstanceOfASpecificClass() - { - assertThat($this->_baseClassInstance, anInstanceOf('Hamcrest\Core\SampleBaseClass')); - assertThat($this->_subClassInstance, anInstanceOf('Hamcrest\Core\SampleSubClass')); - assertThat(null, not(anInstanceOf('Hamcrest\Core\SampleBaseClass'))); - assertThat(new \stdClass(), not(anInstanceOf('Hamcrest\Core\SampleBaseClass'))); - } - - public function testEvaluatesToFalseIfArgumentIsNotAnObject() - { - assertThat(null, not(anInstanceOf('Hamcrest\Core\SampleBaseClass'))); - assertThat(false, not(anInstanceOf('Hamcrest\Core\SampleBaseClass'))); - assertThat(5, not(anInstanceOf('Hamcrest\Core\SampleBaseClass'))); - assertThat('foo', not(anInstanceOf('Hamcrest\Core\SampleBaseClass'))); - assertThat(array(1, 2, 3), not(anInstanceOf('Hamcrest\Core\SampleBaseClass'))); - } - - public function testHasAReadableDescription() - { - $this->assertDescription('an instance of stdClass', anInstanceOf('stdClass')); - } - - public function testDecribesActualClassInMismatchMessage() - { - $this->assertMismatchDescription( - '[Hamcrest\Core\SampleBaseClass] ', - anInstanceOf('Hamcrest\Core\SampleSubClass'), - $this->_baseClassInstance - ); - } -} diff --git a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Core/IsNotTest.php b/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Core/IsNotTest.php deleted file mode 100644 index 09d4a652..00000000 --- a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Core/IsNotTest.php +++ /dev/null @@ -1,31 +0,0 @@ -assertMatches(not(equalTo('A')), 'B', 'should match'); - $this->assertDoesNotMatch(not(equalTo('B')), 'B', 'should not match'); - } - - public function testProvidesConvenientShortcutForNotEqualTo() - { - $this->assertMatches(not('A'), 'B', 'should match'); - $this->assertMatches(not('B'), 'A', 'should match'); - $this->assertDoesNotMatch(not('A'), 'A', 'should not match'); - $this->assertDoesNotMatch(not('B'), 'B', 'should not match'); - } - - public function testUsesDescriptionOfNegatedMatcherWithPrefix() - { - $this->assertDescription('not a value greater than <2>', not(greaterThan(2))); - $this->assertDescription('not "A"', not('A')); - } -} diff --git a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Core/IsNullTest.php b/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Core/IsNullTest.php deleted file mode 100644 index bfa42554..00000000 --- a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Core/IsNullTest.php +++ /dev/null @@ -1,20 +0,0 @@ -assertDescription('sameInstance("ARG")', sameInstance('ARG')); - } - - public function testReturnsReadableDescriptionFromToStringWhenInitialisedWithNull() - { - $this->assertDescription('sameInstance(null)', sameInstance(null)); - } -} diff --git a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Core/IsTest.php b/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Core/IsTest.php deleted file mode 100644 index bbd848b9..00000000 --- a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Core/IsTest.php +++ /dev/null @@ -1,33 +0,0 @@ -assertMatches(is(equalTo(true)), true, 'should match'); - $this->assertMatches(is(equalTo(false)), false, 'should match'); - $this->assertDoesNotMatch(is(equalTo(true)), false, 'should not match'); - $this->assertDoesNotMatch(is(equalTo(false)), true, 'should not match'); - } - - public function testGeneratesIsPrefixInDescription() - { - $this->assertDescription('is ', is(equalTo(true))); - } - - public function testProvidesConvenientShortcutForIsEqualTo() - { - $this->assertMatches(is('A'), 'A', 'should match'); - $this->assertMatches(is('B'), 'B', 'should match'); - $this->assertDoesNotMatch(is('A'), 'B', 'should not match'); - $this->assertDoesNotMatch(is('B'), 'A', 'should not match'); - $this->assertDescription('is "A"', is('A')); - } -} diff --git a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Core/IsTypeOfTest.php b/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Core/IsTypeOfTest.php deleted file mode 100644 index 3f48dea7..00000000 --- a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Core/IsTypeOfTest.php +++ /dev/null @@ -1,45 +0,0 @@ -assertDescription('a double', typeOf('double')); - $this->assertDescription('an integer', typeOf('integer')); - } - - public function testDecribesActualTypeInMismatchMessage() - { - $this->assertMismatchDescription('was null', typeOf('boolean'), null); - $this->assertMismatchDescription('was an integer <5>', typeOf('float'), 5); - } -} diff --git a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Core/SampleBaseClass.php b/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Core/SampleBaseClass.php deleted file mode 100644 index c953e7cd..00000000 --- a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Core/SampleBaseClass.php +++ /dev/null @@ -1,18 +0,0 @@ -_arg = $arg; - } - - public function __toString() - { - return $this->_arg; - } -} diff --git a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Core/SampleSubClass.php b/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Core/SampleSubClass.php deleted file mode 100644 index 822f1b64..00000000 --- a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Core/SampleSubClass.php +++ /dev/null @@ -1,6 +0,0 @@ -_instanceProperty); - } - - protected function createMatcher() - { - return \Hamcrest\Core\Set::set('property_name'); - } - - public function testEvaluatesToTrueIfArrayPropertyIsSet() - { - assertThat(array('foo' => 'bar'), set('foo')); - } - - public function testNegatedEvaluatesToFalseIfArrayPropertyIsSet() - { - assertThat(array('foo' => 'bar'), not(notSet('foo'))); - } - - public function testEvaluatesToTrueIfClassPropertyIsSet() - { - self::$_classProperty = 'bar'; - assertThat('Hamcrest\Core\SetTest', set('_classProperty')); - } - - public function testNegatedEvaluatesToFalseIfClassPropertyIsSet() - { - self::$_classProperty = 'bar'; - assertThat('Hamcrest\Core\SetTest', not(notSet('_classProperty'))); - } - - public function testEvaluatesToTrueIfObjectPropertyIsSet() - { - $this->_instanceProperty = 'bar'; - assertThat($this, set('_instanceProperty')); - } - - public function testNegatedEvaluatesToFalseIfObjectPropertyIsSet() - { - $this->_instanceProperty = 'bar'; - assertThat($this, not(notSet('_instanceProperty'))); - } - - public function testEvaluatesToFalseIfArrayPropertyIsNotSet() - { - assertThat(array('foo' => 'bar'), not(set('baz'))); - } - - public function testNegatedEvaluatesToTrueIfArrayPropertyIsNotSet() - { - assertThat(array('foo' => 'bar'), notSet('baz')); - } - - public function testEvaluatesToFalseIfClassPropertyIsNotSet() - { - assertThat('Hamcrest\Core\SetTest', not(set('_classProperty'))); - } - - public function testNegatedEvaluatesToTrueIfClassPropertyIsNotSet() - { - assertThat('Hamcrest\Core\SetTest', notSet('_classProperty')); - } - - public function testEvaluatesToFalseIfObjectPropertyIsNotSet() - { - assertThat($this, not(set('_instanceProperty'))); - } - - public function testNegatedEvaluatesToTrueIfObjectPropertyIsNotSet() - { - assertThat($this, notSet('_instanceProperty')); - } - - public function testHasAReadableDescription() - { - $this->assertDescription('set property foo', set('foo')); - $this->assertDescription('unset property bar', notSet('bar')); - } - - public function testDecribesPropertySettingInMismatchMessage() - { - $this->assertMismatchDescription( - 'was not set', - set('bar'), - array('foo' => 'bar') - ); - $this->assertMismatchDescription( - 'was "bar"', - notSet('foo'), - array('foo' => 'bar') - ); - self::$_classProperty = 'bar'; - $this->assertMismatchDescription( - 'was "bar"', - notSet('_classProperty'), - 'Hamcrest\Core\SetTest' - ); - $this->_instanceProperty = 'bar'; - $this->assertMismatchDescription( - 'was "bar"', - notSet('_instanceProperty'), - $this - ); - } -} diff --git a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/FeatureMatcherTest.php b/vendor/hamcrest/hamcrest-php/tests/Hamcrest/FeatureMatcherTest.php deleted file mode 100644 index 7543294a..00000000 --- a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/FeatureMatcherTest.php +++ /dev/null @@ -1,73 +0,0 @@ -_result = $result; - } - public function getResult() - { - return $this->_result; - } -} - -/* Test-specific subclass only */ -class ResultMatcher extends \Hamcrest\FeatureMatcher -{ - public function __construct() - { - parent::__construct(self::TYPE_ANY, null, equalTo('bar'), 'Thingy with result', 'result'); - } - public function featureValueOf($actual) - { - if ($actual instanceof \Hamcrest\Thingy) { - return $actual->getResult(); - } - } -} - -class FeatureMatcherTest extends \Hamcrest\AbstractMatcherTest -{ - - private $_resultMatcher; - - public function setUp() - { - $this->_resultMatcher = $this->_resultMatcher(); - } - - protected function createMatcher() - { - return $this->_resultMatcher(); - } - - public function testMatchesPartOfAnObject() - { - $this->assertMatches($this->_resultMatcher, new \Hamcrest\Thingy('bar'), 'feature'); - $this->assertDescription('Thingy with result "bar"', $this->_resultMatcher); - } - - public function testMismatchesPartOfAnObject() - { - $this->assertMismatchDescription( - 'result was "foo"', - $this->_resultMatcher, - new \Hamcrest\Thingy('foo') - ); - } - - public function testDoesNotGenerateNoticesForNull() - { - $this->assertMismatchDescription('result was null', $this->_resultMatcher, null); - } - - // -- Creation Methods - - private function _resultMatcher() - { - return new \Hamcrest\ResultMatcher(); - } -} diff --git a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/MatcherAssertTest.php b/vendor/hamcrest/hamcrest-php/tests/Hamcrest/MatcherAssertTest.php deleted file mode 100644 index 21837121..00000000 --- a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/MatcherAssertTest.php +++ /dev/null @@ -1,190 +0,0 @@ -getMessage()); - } - try { - \Hamcrest\MatcherAssert::assertThat(null); - self::fail('expected assertion failure'); - } catch (\Hamcrest\AssertionError $ex) { - self::assertEquals('', $ex->getMessage()); - } - try { - \Hamcrest\MatcherAssert::assertThat(''); - self::fail('expected assertion failure'); - } catch (\Hamcrest\AssertionError $ex) { - self::assertEquals('', $ex->getMessage()); - } - try { - \Hamcrest\MatcherAssert::assertThat(0); - self::fail('expected assertion failure'); - } catch (\Hamcrest\AssertionError $ex) { - self::assertEquals('', $ex->getMessage()); - } - try { - \Hamcrest\MatcherAssert::assertThat(0.0); - self::fail('expected assertion failure'); - } catch (\Hamcrest\AssertionError $ex) { - self::assertEquals('', $ex->getMessage()); - } - try { - \Hamcrest\MatcherAssert::assertThat(array()); - self::fail('expected assertion failure'); - } catch (\Hamcrest\AssertionError $ex) { - self::assertEquals('', $ex->getMessage()); - } - self::assertEquals(6, \Hamcrest\MatcherAssert::getCount(), 'assertion count'); - } - - public function testAssertThatWithIdentifierAndTrueArgPasses() - { - \Hamcrest\MatcherAssert::assertThat('identifier', true); - \Hamcrest\MatcherAssert::assertThat('identifier', 'non-empty'); - \Hamcrest\MatcherAssert::assertThat('identifier', 1); - \Hamcrest\MatcherAssert::assertThat('identifier', 3.14159); - \Hamcrest\MatcherAssert::assertThat('identifier', array(true)); - self::assertEquals(5, \Hamcrest\MatcherAssert::getCount(), 'assertion count'); - } - - public function testAssertThatWithIdentifierAndFalseArgFails() - { - try { - \Hamcrest\MatcherAssert::assertThat('identifier', false); - self::fail('expected assertion failure'); - } catch (\Hamcrest\AssertionError $ex) { - self::assertEquals('identifier', $ex->getMessage()); - } - try { - \Hamcrest\MatcherAssert::assertThat('identifier', null); - self::fail('expected assertion failure'); - } catch (\Hamcrest\AssertionError $ex) { - self::assertEquals('identifier', $ex->getMessage()); - } - try { - \Hamcrest\MatcherAssert::assertThat('identifier', ''); - self::fail('expected assertion failure'); - } catch (\Hamcrest\AssertionError $ex) { - self::assertEquals('identifier', $ex->getMessage()); - } - try { - \Hamcrest\MatcherAssert::assertThat('identifier', 0); - self::fail('expected assertion failure'); - } catch (\Hamcrest\AssertionError $ex) { - self::assertEquals('identifier', $ex->getMessage()); - } - try { - \Hamcrest\MatcherAssert::assertThat('identifier', 0.0); - self::fail('expected assertion failure'); - } catch (\Hamcrest\AssertionError $ex) { - self::assertEquals('identifier', $ex->getMessage()); - } - try { - \Hamcrest\MatcherAssert::assertThat('identifier', array()); - self::fail('expected assertion failure'); - } catch (\Hamcrest\AssertionError $ex) { - self::assertEquals('identifier', $ex->getMessage()); - } - self::assertEquals(6, \Hamcrest\MatcherAssert::getCount(), 'assertion count'); - } - - public function testAssertThatWithActualValueAndMatcherArgsThatMatchPasses() - { - \Hamcrest\MatcherAssert::assertThat(true, is(true)); - self::assertEquals(1, \Hamcrest\MatcherAssert::getCount(), 'assertion count'); - } - - public function testAssertThatWithActualValueAndMatcherArgsThatDontMatchFails() - { - $expected = 'expected'; - $actual = 'actual'; - - $expectedMessage = - 'Expected: "expected"' . PHP_EOL . - ' but: was "actual"'; - - try { - \Hamcrest\MatcherAssert::assertThat($actual, equalTo($expected)); - self::fail('expected assertion failure'); - } catch (\Hamcrest\AssertionError $ex) { - self::assertEquals($expectedMessage, $ex->getMessage()); - self::assertEquals(1, \Hamcrest\MatcherAssert::getCount(), 'assertion count'); - } - } - - public function testAssertThatWithIdentifierAndActualValueAndMatcherArgsThatMatchPasses() - { - \Hamcrest\MatcherAssert::assertThat('identifier', true, is(true)); - self::assertEquals(1, \Hamcrest\MatcherAssert::getCount(), 'assertion count'); - } - - public function testAssertThatWithIdentifierAndActualValueAndMatcherArgsThatDontMatchFails() - { - $expected = 'expected'; - $actual = 'actual'; - - $expectedMessage = - 'identifier' . PHP_EOL . - 'Expected: "expected"' . PHP_EOL . - ' but: was "actual"'; - - try { - \Hamcrest\MatcherAssert::assertThat('identifier', $actual, equalTo($expected)); - self::fail('expected assertion failure'); - } catch (\Hamcrest\AssertionError $ex) { - self::assertEquals($expectedMessage, $ex->getMessage()); - self::assertEquals(1, \Hamcrest\MatcherAssert::getCount(), 'assertion count'); - } - } - - public function testAssertThatWithNoArgsThrowsErrorAndDoesntIncrementCount() - { - try { - \Hamcrest\MatcherAssert::assertThat(); - self::fail('expected invalid argument exception'); - } catch (\InvalidArgumentException $ex) { - self::assertEquals(0, \Hamcrest\MatcherAssert::getCount(), 'assertion count'); - } - } - - public function testAssertThatWithFourArgsThrowsErrorAndDoesntIncrementCount() - { - try { - \Hamcrest\MatcherAssert::assertThat(1, 2, 3, 4); - self::fail('expected invalid argument exception'); - } catch (\InvalidArgumentException $ex) { - self::assertEquals(0, \Hamcrest\MatcherAssert::getCount(), 'assertion count'); - } - } -} diff --git a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Number/IsCloseToTest.php b/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Number/IsCloseToTest.php deleted file mode 100644 index 987d5526..00000000 --- a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Number/IsCloseToTest.php +++ /dev/null @@ -1,27 +0,0 @@ -assertTrue($p->matches(1.0)); - $this->assertTrue($p->matches(0.5)); - $this->assertTrue($p->matches(1.5)); - - $this->assertDoesNotMatch($p, 2.0, 'too large'); - $this->assertMismatchDescription('<2F> differed by <0.5F>', $p, 2.0); - $this->assertDoesNotMatch($p, 0.0, 'number too small'); - $this->assertMismatchDescription('<0F> differed by <0.5F>', $p, 0.0); - } -} diff --git a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Number/OrderingComparisonTest.php b/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Number/OrderingComparisonTest.php deleted file mode 100644 index a4c94d37..00000000 --- a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Number/OrderingComparisonTest.php +++ /dev/null @@ -1,41 +0,0 @@ -_text = $text; - } - - public function describeTo(\Hamcrest\Description $description) - { - $description->appendText($this->_text); - } -} - -class StringDescriptionTest extends \PhpUnit_Framework_TestCase -{ - - private $_description; - - public function setUp() - { - $this->_description = new \Hamcrest\StringDescription(); - } - - public function testAppendTextAppendsTextInformation() - { - $this->_description->appendText('foo')->appendText('bar'); - $this->assertEquals('foobar', (string) $this->_description); - } - - public function testAppendValueCanAppendTextTypes() - { - $this->_description->appendValue('foo'); - $this->assertEquals('"foo"', (string) $this->_description); - } - - public function testSpecialCharactersAreEscapedForStringTypes() - { - $this->_description->appendValue("foo\\bar\"zip\r\n"); - $this->assertEquals('"foo\\bar\\"zip\r\n"', (string) $this->_description); - } - - public function testIntegerValuesCanBeAppended() - { - $this->_description->appendValue(42); - $this->assertEquals('<42>', (string) $this->_description); - } - - public function testFloatValuesCanBeAppended() - { - $this->_description->appendValue(42.78); - $this->assertEquals('<42.78F>', (string) $this->_description); - } - - public function testNullValuesCanBeAppended() - { - $this->_description->appendValue(null); - $this->assertEquals('null', (string) $this->_description); - } - - public function testArraysCanBeAppended() - { - $this->_description->appendValue(array('foo', 42.78)); - $this->assertEquals('["foo", <42.78F>]', (string) $this->_description); - } - - public function testObjectsCanBeAppended() - { - $this->_description->appendValue(new \stdClass()); - $this->assertEquals('', (string) $this->_description); - } - - public function testBooleanValuesCanBeAppended() - { - $this->_description->appendValue(false); - $this->assertEquals('', (string) $this->_description); - } - - public function testListsOfvaluesCanBeAppended() - { - $this->_description->appendValue(array('foo', 42.78)); - $this->assertEquals('["foo", <42.78F>]', (string) $this->_description); - } - - public function testIterableOfvaluesCanBeAppended() - { - $items = new \ArrayObject(array('foo', 42.78)); - $this->_description->appendValue($items); - $this->assertEquals('["foo", <42.78F>]', (string) $this->_description); - } - - public function testIteratorOfvaluesCanBeAppended() - { - $items = new \ArrayObject(array('foo', 42.78)); - $this->_description->appendValue($items->getIterator()); - $this->assertEquals('["foo", <42.78F>]', (string) $this->_description); - } - - public function testListsOfvaluesCanBeAppendedManually() - { - $this->_description->appendValueList('@start@', '@sep@ ', '@end@', array('foo', 42.78)); - $this->assertEquals('@start@"foo"@sep@ <42.78F>@end@', (string) $this->_description); - } - - public function testIterableOfvaluesCanBeAppendedManually() - { - $items = new \ArrayObject(array('foo', 42.78)); - $this->_description->appendValueList('@start@', '@sep@ ', '@end@', $items); - $this->assertEquals('@start@"foo"@sep@ <42.78F>@end@', (string) $this->_description); - } - - public function testIteratorOfvaluesCanBeAppendedManually() - { - $items = new \ArrayObject(array('foo', 42.78)); - $this->_description->appendValueList('@start@', '@sep@ ', '@end@', $items->getIterator()); - $this->assertEquals('@start@"foo"@sep@ <42.78F>@end@', (string) $this->_description); - } - - public function testSelfDescribingObjectsCanBeAppended() - { - $this->_description - ->appendDescriptionOf(new \Hamcrest\SampleSelfDescriber('foo')) - ->appendDescriptionOf(new \Hamcrest\SampleSelfDescriber('bar')) - ; - $this->assertEquals('foobar', (string) $this->_description); - } - - public function testSelfDescribingObjectsCanBeAppendedAsLists() - { - $this->_description->appendList('@start@', '@sep@ ', '@end@', array( - new \Hamcrest\SampleSelfDescriber('foo'), - new \Hamcrest\SampleSelfDescriber('bar') - )); - $this->assertEquals('@start@foo@sep@ bar@end@', (string) $this->_description); - } - - public function testSelfDescribingObjectsCanBeAppendedAsIteratedLists() - { - $items = new \ArrayObject(array( - new \Hamcrest\SampleSelfDescriber('foo'), - new \Hamcrest\SampleSelfDescriber('bar') - )); - $this->_description->appendList('@start@', '@sep@ ', '@end@', $items); - $this->assertEquals('@start@foo@sep@ bar@end@', (string) $this->_description); - } - - public function testSelfDescribingObjectsCanBeAppendedAsIterators() - { - $items = new \ArrayObject(array( - new \Hamcrest\SampleSelfDescriber('foo'), - new \Hamcrest\SampleSelfDescriber('bar') - )); - $this->_description->appendList('@start@', '@sep@ ', '@end@', $items->getIterator()); - $this->assertEquals('@start@foo@sep@ bar@end@', (string) $this->_description); - } -} diff --git a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Text/IsEmptyStringTest.php b/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Text/IsEmptyStringTest.php deleted file mode 100644 index 8d5c56be..00000000 --- a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Text/IsEmptyStringTest.php +++ /dev/null @@ -1,86 +0,0 @@ -assertDoesNotMatch(emptyString(), null, 'null'); - } - - public function testEmptyDoesNotMatchZero() - { - $this->assertDoesNotMatch(emptyString(), 0, 'zero'); - } - - public function testEmptyDoesNotMatchFalse() - { - $this->assertDoesNotMatch(emptyString(), false, 'false'); - } - - public function testEmptyDoesNotMatchEmptyArray() - { - $this->assertDoesNotMatch(emptyString(), array(), 'empty array'); - } - - public function testEmptyMatchesEmptyString() - { - $this->assertMatches(emptyString(), '', 'empty string'); - } - - public function testEmptyDoesNotMatchNonEmptyString() - { - $this->assertDoesNotMatch(emptyString(), 'foo', 'non-empty string'); - } - - public function testEmptyHasAReadableDescription() - { - $this->assertDescription('an empty string', emptyString()); - } - - public function testEmptyOrNullMatchesNull() - { - $this->assertMatches(nullOrEmptyString(), null, 'null'); - } - - public function testEmptyOrNullMatchesEmptyString() - { - $this->assertMatches(nullOrEmptyString(), '', 'empty string'); - } - - public function testEmptyOrNullDoesNotMatchNonEmptyString() - { - $this->assertDoesNotMatch(nullOrEmptyString(), 'foo', 'non-empty string'); - } - - public function testEmptyOrNullHasAReadableDescription() - { - $this->assertDescription('(null or an empty string)', nullOrEmptyString()); - } - - public function testNonEmptyDoesNotMatchNull() - { - $this->assertDoesNotMatch(nonEmptyString(), null, 'null'); - } - - public function testNonEmptyDoesNotMatchEmptyString() - { - $this->assertDoesNotMatch(nonEmptyString(), '', 'empty string'); - } - - public function testNonEmptyMatchesNonEmptyString() - { - $this->assertMatches(nonEmptyString(), 'foo', 'non-empty string'); - } - - public function testNonEmptyHasAReadableDescription() - { - $this->assertDescription('a non-empty string', nonEmptyString()); - } -} diff --git a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Text/IsEqualIgnoringCaseTest.php b/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Text/IsEqualIgnoringCaseTest.php deleted file mode 100644 index 0539fd5c..00000000 --- a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Text/IsEqualIgnoringCaseTest.php +++ /dev/null @@ -1,40 +0,0 @@ -assertDescription( - 'equalToIgnoringCase("heLLo")', - equalToIgnoringCase('heLLo') - ); - } -} diff --git a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Text/IsEqualIgnoringWhiteSpaceTest.php b/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Text/IsEqualIgnoringWhiteSpaceTest.php deleted file mode 100644 index 6c2304f4..00000000 --- a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Text/IsEqualIgnoringWhiteSpaceTest.php +++ /dev/null @@ -1,51 +0,0 @@ -_matcher = \Hamcrest\Text\IsEqualIgnoringWhiteSpace::equalToIgnoringWhiteSpace( - "Hello World how\n are we? " - ); - } - - protected function createMatcher() - { - return $this->_matcher; - } - - public function testPassesIfWordsAreSameButWhitespaceDiffers() - { - assertThat('Hello World how are we?', $this->_matcher); - assertThat(" Hello \rWorld \t how are\nwe?", $this->_matcher); - } - - public function testFailsIfTextOtherThanWhitespaceDiffers() - { - assertThat('Hello PLANET how are we?', not($this->_matcher)); - assertThat('Hello World how are we', not($this->_matcher)); - } - - public function testFailsIfWhitespaceIsAddedOrRemovedInMidWord() - { - assertThat('HelloWorld how are we?', not($this->_matcher)); - assertThat('Hello Wo rld how are we?', not($this->_matcher)); - } - - public function testFailsIfMatchingAgainstNull() - { - assertThat(null, not($this->_matcher)); - } - - public function testHasAReadableDescription() - { - $this->assertDescription( - "equalToIgnoringWhiteSpace(\"Hello World how\\n are we? \")", - $this->_matcher - ); - } -} diff --git a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Text/MatchesPatternTest.php b/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Text/MatchesPatternTest.php deleted file mode 100644 index 4891598f..00000000 --- a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Text/MatchesPatternTest.php +++ /dev/null @@ -1,30 +0,0 @@ -assertDescription('a string matching "pattern"', matchesPattern('pattern')); - } -} diff --git a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Text/StringContainsIgnoringCaseTest.php b/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Text/StringContainsIgnoringCaseTest.php deleted file mode 100644 index 3b5b08e3..00000000 --- a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Text/StringContainsIgnoringCaseTest.php +++ /dev/null @@ -1,80 +0,0 @@ -_stringContains = \Hamcrest\Text\StringContainsIgnoringCase::containsStringIgnoringCase( - strtolower(self::EXCERPT) - ); - } - - protected function createMatcher() - { - return $this->_stringContains; - } - - public function testEvaluatesToTrueIfArgumentContainsSpecifiedSubstring() - { - $this->assertTrue( - $this->_stringContains->matches(self::EXCERPT . 'END'), - 'should be true if excerpt at beginning' - ); - $this->assertTrue( - $this->_stringContains->matches('START' . self::EXCERPT), - 'should be true if excerpt at end' - ); - $this->assertTrue( - $this->_stringContains->matches('START' . self::EXCERPT . 'END'), - 'should be true if excerpt in middle' - ); - $this->assertTrue( - $this->_stringContains->matches(self::EXCERPT . self::EXCERPT), - 'should be true if excerpt is repeated' - ); - - $this->assertFalse( - $this->_stringContains->matches('Something else'), - 'should not be true if excerpt is not in string' - ); - $this->assertFalse( - $this->_stringContains->matches(substr(self::EXCERPT, 1)), - 'should not be true if part of excerpt is in string' - ); - } - - public function testEvaluatesToTrueIfArgumentIsEqualToSubstring() - { - $this->assertTrue( - $this->_stringContains->matches(self::EXCERPT), - 'should be true if excerpt is entire string' - ); - } - - public function testEvaluatesToTrueIfArgumentContainsExactSubstring() - { - $this->assertTrue( - $this->_stringContains->matches(strtolower(self::EXCERPT)), - 'should be false if excerpt is entire string ignoring case' - ); - $this->assertTrue( - $this->_stringContains->matches('START' . strtolower(self::EXCERPT) . 'END'), - 'should be false if excerpt is contained in string ignoring case' - ); - } - - public function testHasAReadableDescription() - { - $this->assertDescription( - 'a string containing in any case "' - . strtolower(self::EXCERPT) . '"', - $this->_stringContains - ); - } -} diff --git a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Text/StringContainsInOrderTest.php b/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Text/StringContainsInOrderTest.php deleted file mode 100644 index 0be70629..00000000 --- a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Text/StringContainsInOrderTest.php +++ /dev/null @@ -1,42 +0,0 @@ -_m = \Hamcrest\Text\StringContainsInOrder::stringContainsInOrder(array('a', 'b', 'c')); - } - - protected function createMatcher() - { - return $this->_m; - } - - public function testMatchesOnlyIfStringContainsGivenSubstringsInTheSameOrder() - { - $this->assertMatches($this->_m, 'abc', 'substrings in order'); - $this->assertMatches($this->_m, '1a2b3c4', 'substrings separated'); - - $this->assertDoesNotMatch($this->_m, 'cab', 'substrings out of order'); - $this->assertDoesNotMatch($this->_m, 'xyz', 'no substrings in string'); - $this->assertDoesNotMatch($this->_m, 'ac', 'substring missing'); - $this->assertDoesNotMatch($this->_m, '', 'empty string'); - } - - public function testAcceptsVariableArguments() - { - $this->assertMatches(stringContainsInOrder('a', 'b', 'c'), 'abc', 'substrings as variable arguments'); - } - - public function testHasAReadableDescription() - { - $this->assertDescription( - 'a string containing "a", "b", "c" in order', - $this->_m - ); - } -} diff --git a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Text/StringContainsTest.php b/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Text/StringContainsTest.php deleted file mode 100644 index 203fd918..00000000 --- a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Text/StringContainsTest.php +++ /dev/null @@ -1,86 +0,0 @@ -_stringContains = \Hamcrest\Text\StringContains::containsString(self::EXCERPT); - } - - protected function createMatcher() - { - return $this->_stringContains; - } - - public function testEvaluatesToTrueIfArgumentContainsSubstring() - { - $this->assertTrue( - $this->_stringContains->matches(self::EXCERPT . 'END'), - 'should be true if excerpt at beginning' - ); - $this->assertTrue( - $this->_stringContains->matches('START' . self::EXCERPT), - 'should be true if excerpt at end' - ); - $this->assertTrue( - $this->_stringContains->matches('START' . self::EXCERPT . 'END'), - 'should be true if excerpt in middle' - ); - $this->assertTrue( - $this->_stringContains->matches(self::EXCERPT . self::EXCERPT), - 'should be true if excerpt is repeated' - ); - - $this->assertFalse( - $this->_stringContains->matches('Something else'), - 'should not be true if excerpt is not in string' - ); - $this->assertFalse( - $this->_stringContains->matches(substr(self::EXCERPT, 1)), - 'should not be true if part of excerpt is in string' - ); - } - - public function testEvaluatesToTrueIfArgumentIsEqualToSubstring() - { - $this->assertTrue( - $this->_stringContains->matches(self::EXCERPT), - 'should be true if excerpt is entire string' - ); - } - - public function testEvaluatesToFalseIfArgumentContainsSubstringIgnoringCase() - { - $this->assertFalse( - $this->_stringContains->matches(strtolower(self::EXCERPT)), - 'should be false if excerpt is entire string ignoring case' - ); - $this->assertFalse( - $this->_stringContains->matches('START' . strtolower(self::EXCERPT) . 'END'), - 'should be false if excerpt is contained in string ignoring case' - ); - } - - public function testIgnoringCaseReturnsCorrectMatcher() - { - $this->assertTrue( - $this->_stringContains->ignoringCase()->matches('EXceRpT'), - 'should be true if excerpt is entire string ignoring case' - ); - } - - public function testHasAReadableDescription() - { - $this->assertDescription( - 'a string containing "' - . self::EXCERPT . '"', - $this->_stringContains - ); - } -} diff --git a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Text/StringEndsWithTest.php b/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Text/StringEndsWithTest.php deleted file mode 100644 index fffa3c9c..00000000 --- a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Text/StringEndsWithTest.php +++ /dev/null @@ -1,62 +0,0 @@ -_stringEndsWith = \Hamcrest\Text\StringEndsWith::endsWith(self::EXCERPT); - } - - protected function createMatcher() - { - return $this->_stringEndsWith; - } - - public function testEvaluatesToTrueIfArgumentContainsSpecifiedSubstring() - { - $this->assertFalse( - $this->_stringEndsWith->matches(self::EXCERPT . 'END'), - 'should be false if excerpt at beginning' - ); - $this->assertTrue( - $this->_stringEndsWith->matches('START' . self::EXCERPT), - 'should be true if excerpt at end' - ); - $this->assertFalse( - $this->_stringEndsWith->matches('START' . self::EXCERPT . 'END'), - 'should be false if excerpt in middle' - ); - $this->assertTrue( - $this->_stringEndsWith->matches(self::EXCERPT . self::EXCERPT), - 'should be true if excerpt is at end and repeated' - ); - - $this->assertFalse( - $this->_stringEndsWith->matches('Something else'), - 'should be false if excerpt is not in string' - ); - $this->assertFalse( - $this->_stringEndsWith->matches(substr(self::EXCERPT, 0, strlen(self::EXCERPT) - 2)), - 'should be false if part of excerpt is at end of string' - ); - } - - public function testEvaluatesToTrueIfArgumentIsEqualToSubstring() - { - $this->assertTrue( - $this->_stringEndsWith->matches(self::EXCERPT), - 'should be true if excerpt is entire string' - ); - } - - public function testHasAReadableDescription() - { - $this->assertDescription('a string ending with "EXCERPT"', $this->_stringEndsWith); - } -} diff --git a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Text/StringStartsWithTest.php b/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Text/StringStartsWithTest.php deleted file mode 100644 index fc3761bd..00000000 --- a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Text/StringStartsWithTest.php +++ /dev/null @@ -1,62 +0,0 @@ -_stringStartsWith = \Hamcrest\Text\StringStartsWith::startsWith(self::EXCERPT); - } - - protected function createMatcher() - { - return $this->_stringStartsWith; - } - - public function testEvaluatesToTrueIfArgumentContainsSpecifiedSubstring() - { - $this->assertTrue( - $this->_stringStartsWith->matches(self::EXCERPT . 'END'), - 'should be true if excerpt at beginning' - ); - $this->assertFalse( - $this->_stringStartsWith->matches('START' . self::EXCERPT), - 'should be false if excerpt at end' - ); - $this->assertFalse( - $this->_stringStartsWith->matches('START' . self::EXCERPT . 'END'), - 'should be false if excerpt in middle' - ); - $this->assertTrue( - $this->_stringStartsWith->matches(self::EXCERPT . self::EXCERPT), - 'should be true if excerpt is at beginning and repeated' - ); - - $this->assertFalse( - $this->_stringStartsWith->matches('Something else'), - 'should be false if excerpt is not in string' - ); - $this->assertFalse( - $this->_stringStartsWith->matches(substr(self::EXCERPT, 1)), - 'should be false if part of excerpt is at start of string' - ); - } - - public function testEvaluatesToTrueIfArgumentIsEqualToSubstring() - { - $this->assertTrue( - $this->_stringStartsWith->matches(self::EXCERPT), - 'should be true if excerpt is entire string' - ); - } - - public function testHasAReadableDescription() - { - $this->assertDescription('a string starting with "EXCERPT"', $this->_stringStartsWith); - } -} diff --git a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Type/IsArrayTest.php b/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Type/IsArrayTest.php deleted file mode 100644 index d13c24d2..00000000 --- a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Type/IsArrayTest.php +++ /dev/null @@ -1,35 +0,0 @@ -assertDescription('an array', arrayValue()); - } - - public function testDecribesActualTypeInMismatchMessage() - { - $this->assertMismatchDescription('was null', arrayValue(), null); - $this->assertMismatchDescription('was a string "foo"', arrayValue(), 'foo'); - } -} diff --git a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Type/IsBooleanTest.php b/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Type/IsBooleanTest.php deleted file mode 100644 index 24309fc0..00000000 --- a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Type/IsBooleanTest.php +++ /dev/null @@ -1,35 +0,0 @@ -assertDescription('a boolean', booleanValue()); - } - - public function testDecribesActualTypeInMismatchMessage() - { - $this->assertMismatchDescription('was null', booleanValue(), null); - $this->assertMismatchDescription('was a string "foo"', booleanValue(), 'foo'); - } -} diff --git a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Type/IsCallableTest.php b/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Type/IsCallableTest.php deleted file mode 100644 index 5098e21b..00000000 --- a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Type/IsCallableTest.php +++ /dev/null @@ -1,103 +0,0 @@ -=')) { - $this->markTestSkipped('Closures require php 5.3'); - } - eval('assertThat(function () {}, callableValue());'); - } - - public function testEvaluatesToTrueIfArgumentImplementsInvoke() - { - if (!version_compare(PHP_VERSION, '5.3', '>=')) { - $this->markTestSkipped('Magic method __invoke() requires php 5.3'); - } - assertThat($this, callableValue()); - } - - public function testEvaluatesToFalseIfArgumentIsInvalidFunctionName() - { - if (function_exists('not_a_Hamcrest_function')) { - $this->markTestSkipped('Function "not_a_Hamcrest_function" must not exist'); - } - - assertThat('not_a_Hamcrest_function', not(callableValue())); - } - - public function testEvaluatesToFalseIfArgumentIsInvalidStaticMethodCallback() - { - assertThat( - array('Hamcrest\Type\IsCallableTest', 'noMethod'), - not(callableValue()) - ); - } - - public function testEvaluatesToFalseIfArgumentIsInvalidInstanceMethodCallback() - { - assertThat(array($this, 'noMethod'), not(callableValue())); - } - - public function testEvaluatesToFalseIfArgumentDoesntImplementInvoke() - { - assertThat(new \stdClass(), not(callableValue())); - } - - public function testEvaluatesToFalseIfArgumentDoesntMatchType() - { - assertThat(false, not(callableValue())); - assertThat(5.2, not(callableValue())); - } - - public function testHasAReadableDescription() - { - $this->assertDescription('a callable', callableValue()); - } - - public function testDecribesActualTypeInMismatchMessage() - { - $this->assertMismatchDescription( - 'was a string "invalid-function"', - callableValue(), - 'invalid-function' - ); - } -} diff --git a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Type/IsDoubleTest.php b/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Type/IsDoubleTest.php deleted file mode 100644 index 85c2a963..00000000 --- a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Type/IsDoubleTest.php +++ /dev/null @@ -1,35 +0,0 @@ -assertDescription('a double', doubleValue()); - } - - public function testDecribesActualTypeInMismatchMessage() - { - $this->assertMismatchDescription('was null', doubleValue(), null); - $this->assertMismatchDescription('was a string "foo"', doubleValue(), 'foo'); - } -} diff --git a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Type/IsIntegerTest.php b/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Type/IsIntegerTest.php deleted file mode 100644 index ce5a51a9..00000000 --- a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Type/IsIntegerTest.php +++ /dev/null @@ -1,36 +0,0 @@ -assertDescription('an integer', integerValue()); - } - - public function testDecribesActualTypeInMismatchMessage() - { - $this->assertMismatchDescription('was null', integerValue(), null); - $this->assertMismatchDescription('was a string "foo"', integerValue(), 'foo'); - } -} diff --git a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Type/IsNumericTest.php b/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Type/IsNumericTest.php deleted file mode 100644 index e7184857..00000000 --- a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Type/IsNumericTest.php +++ /dev/null @@ -1,49 +0,0 @@ -assertDescription('a number', numericValue()); - } - - public function testDecribesActualTypeInMismatchMessage() - { - $this->assertMismatchDescription('was null', numericValue(), null); - $this->assertMismatchDescription('was a string "foo"', numericValue(), 'foo'); - } -} diff --git a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Type/IsObjectTest.php b/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Type/IsObjectTest.php deleted file mode 100644 index a3b617c2..00000000 --- a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Type/IsObjectTest.php +++ /dev/null @@ -1,34 +0,0 @@ -assertDescription('an object', objectValue()); - } - - public function testDecribesActualTypeInMismatchMessage() - { - $this->assertMismatchDescription('was null', objectValue(), null); - $this->assertMismatchDescription('was a string "foo"', objectValue(), 'foo'); - } -} diff --git a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Type/IsResourceTest.php b/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Type/IsResourceTest.php deleted file mode 100644 index d6ea5348..00000000 --- a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Type/IsResourceTest.php +++ /dev/null @@ -1,34 +0,0 @@ -assertDescription('a resource', resourceValue()); - } - - public function testDecribesActualTypeInMismatchMessage() - { - $this->assertMismatchDescription('was null', resourceValue(), null); - $this->assertMismatchDescription('was a string "foo"', resourceValue(), 'foo'); - } -} diff --git a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Type/IsScalarTest.php b/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Type/IsScalarTest.php deleted file mode 100644 index 72a188d6..00000000 --- a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Type/IsScalarTest.php +++ /dev/null @@ -1,39 +0,0 @@ -assertDescription('a scalar', scalarValue()); - } - - public function testDecribesActualTypeInMismatchMessage() - { - $this->assertMismatchDescription('was null', scalarValue(), null); - $this->assertMismatchDescription('was an array ["foo"]', scalarValue(), array('foo')); - } -} diff --git a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Type/IsStringTest.php b/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Type/IsStringTest.php deleted file mode 100644 index 557d5913..00000000 --- a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Type/IsStringTest.php +++ /dev/null @@ -1,35 +0,0 @@ -assertDescription('a string', stringValue()); - } - - public function testDecribesActualTypeInMismatchMessage() - { - $this->assertMismatchDescription('was null', stringValue(), null); - $this->assertMismatchDescription('was a double <5.2F>', stringValue(), 5.2); - } -} diff --git a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/UtilTest.php b/vendor/hamcrest/hamcrest-php/tests/Hamcrest/UtilTest.php deleted file mode 100644 index 0c2cd043..00000000 --- a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/UtilTest.php +++ /dev/null @@ -1,80 +0,0 @@ -assertSame($matcher, $newMatcher); - } - - public function testWrapValueWithIsEqualWrapsPrimitive() - { - $matcher = \Hamcrest\Util::wrapValueWithIsEqual('foo'); - $this->assertInstanceOf('Hamcrest\Core\IsEqual', $matcher); - $this->assertTrue($matcher->matches('foo')); - } - - public function testCheckAllAreMatchersAcceptsMatchers() - { - \Hamcrest\Util::checkAllAreMatchers(array( - new \Hamcrest\Text\MatchesPattern('/fo+/'), - new \Hamcrest\Core\IsEqual('foo'), - )); - } - - /** - * @expectedException InvalidArgumentException - */ - public function testCheckAllAreMatchersFailsForPrimitive() - { - \Hamcrest\Util::checkAllAreMatchers(array( - new \Hamcrest\Text\MatchesPattern('/fo+/'), - 'foo', - )); - } - - private function callAndAssertCreateMatcherArray($items) - { - $matchers = \Hamcrest\Util::createMatcherArray($items); - $this->assertInternalType('array', $matchers); - $this->assertSameSize($items, $matchers); - foreach ($matchers as $matcher) { - $this->assertInstanceOf('\Hamcrest\Matcher', $matcher); - } - - return $matchers; - } - - public function testCreateMatcherArrayLeavesMatchersUntouched() - { - $matcher = new \Hamcrest\Text\MatchesPattern('/fo+/'); - $items = array($matcher); - $matchers = $this->callAndAssertCreateMatcherArray($items); - $this->assertSame($matcher, $matchers[0]); - } - - public function testCreateMatcherArrayWrapsPrimitiveWithIsEqualMatcher() - { - $matchers = $this->callAndAssertCreateMatcherArray(array('foo')); - $this->assertInstanceOf('Hamcrest\Core\IsEqual', $matchers[0]); - $this->assertTrue($matchers[0]->matches('foo')); - } - - public function testCreateMatcherArrayDoesntModifyOriginalArray() - { - $items = array('foo'); - $this->callAndAssertCreateMatcherArray($items); - $this->assertSame('foo', $items[0]); - } - - public function testCreateMatcherArrayUnwrapsSingleArrayElement() - { - $matchers = $this->callAndAssertCreateMatcherArray(array(array('foo'))); - $this->assertInstanceOf('Hamcrest\Core\IsEqual', $matchers[0]); - $this->assertTrue($matchers[0]->matches('foo')); - } -} diff --git a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Xml/HasXPathTest.php b/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Xml/HasXPathTest.php deleted file mode 100644 index 67748871..00000000 --- a/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Xml/HasXPathTest.php +++ /dev/null @@ -1,198 +0,0 @@ - - - - alice - Alice Frankel - admin - - - bob - Bob Frankel - user - - - charlie - Charlie Chan - user - - -XML; - self::$doc = new \DOMDocument(); - self::$doc->loadXML(self::$xml); - - self::$html = << - - Home Page - - -

Heading

-

Some text

- - -HTML; - } - - protected function createMatcher() - { - return \Hamcrest\Xml\HasXPath::hasXPath('/users/user'); - } - - public function testMatchesWhenXPathIsFound() - { - assertThat('one match', self::$doc, hasXPath('user[id = "bob"]')); - assertThat('two matches', self::$doc, hasXPath('user[role = "user"]')); - } - - public function testDoesNotMatchWhenXPathIsNotFound() - { - assertThat( - 'no match', - self::$doc, - not(hasXPath('user[contains(id, "frank")]')) - ); - } - - public function testMatchesWhenExpressionWithoutMatcherEvaluatesToTrue() - { - assertThat( - 'one match', - self::$doc, - hasXPath('count(user[id = "bob"])') - ); - } - - public function testDoesNotMatchWhenExpressionWithoutMatcherEvaluatesToFalse() - { - assertThat( - 'no matches', - self::$doc, - not(hasXPath('count(user[id = "frank"])')) - ); - } - - public function testMatchesWhenExpressionIsEqual() - { - assertThat( - 'one match', - self::$doc, - hasXPath('count(user[id = "bob"])', 1) - ); - assertThat( - 'two matches', - self::$doc, - hasXPath('count(user[role = "user"])', 2) - ); - } - - public function testDoesNotMatchWhenExpressionIsNotEqual() - { - assertThat( - 'no match', - self::$doc, - not(hasXPath('count(user[id = "frank"])', 2)) - ); - assertThat( - 'one match', - self::$doc, - not(hasXPath('count(user[role = "admin"])', 2)) - ); - } - - public function testMatchesWhenContentMatches() - { - assertThat( - 'one match', - self::$doc, - hasXPath('user/name', containsString('ice')) - ); - assertThat( - 'two matches', - self::$doc, - hasXPath('user/role', equalTo('user')) - ); - } - - public function testDoesNotMatchWhenContentDoesNotMatch() - { - assertThat( - 'no match', - self::$doc, - not(hasXPath('user/name', containsString('Bobby'))) - ); - assertThat( - 'no matches', - self::$doc, - not(hasXPath('user/role', equalTo('owner'))) - ); - } - - public function testProvidesConvenientShortcutForHasXPathEqualTo() - { - assertThat('matches', self::$doc, hasXPath('count(user)', 3)); - assertThat('matches', self::$doc, hasXPath('user[2]/id', 'bob')); - } - - public function testProvidesConvenientShortcutForHasXPathCountEqualTo() - { - assertThat('matches', self::$doc, hasXPath('user[id = "charlie"]', 1)); - } - - public function testMatchesAcceptsXmlString() - { - assertThat('accepts XML string', self::$xml, hasXPath('user')); - } - - public function testMatchesAcceptsHtmlString() - { - assertThat('accepts HTML string', self::$html, hasXPath('body/h1', 'Heading')); - } - - public function testHasAReadableDescription() - { - $this->assertDescription( - 'XML or HTML document with XPath "/users/user"', - hasXPath('/users/user') - ); - $this->assertDescription( - 'XML or HTML document with XPath "count(/users/user)" <2>', - hasXPath('/users/user', 2) - ); - $this->assertDescription( - 'XML or HTML document with XPath "/users/user/name"' - . ' a string starting with "Alice"', - hasXPath('/users/user/name', startsWith('Alice')) - ); - } - - public function testHasAReadableMismatchDescription() - { - $this->assertMismatchDescription( - 'XPath returned no results', - hasXPath('/users/name'), - self::$doc - ); - $this->assertMismatchDescription( - 'XPath expression result was <3F>', - hasXPath('/users/user', 2), - self::$doc - ); - $this->assertMismatchDescription( - 'XPath returned ["alice", "bob", "charlie"]', - hasXPath('/users/user/id', 'Frank'), - self::$doc - ); - } -} diff --git a/vendor/hamcrest/hamcrest-php/tests/bootstrap.php b/vendor/hamcrest/hamcrest-php/tests/bootstrap.php deleted file mode 100644 index 35a696cd..00000000 --- a/vendor/hamcrest/hamcrest-php/tests/bootstrap.php +++ /dev/null @@ -1,18 +0,0 @@ - - - - . - - - - - - ../hamcrest - - - diff --git a/vendor/intervention/image/LICENSE b/vendor/intervention/image/LICENSE deleted file mode 100644 index bc444ba2..00000000 --- a/vendor/intervention/image/LICENSE +++ /dev/null @@ -1,9 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2014 Oliver Vogel - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. \ No newline at end of file diff --git a/vendor/intervention/image/composer.json b/vendor/intervention/image/composer.json deleted file mode 100644 index d7df4a23..00000000 --- a/vendor/intervention/image/composer.json +++ /dev/null @@ -1,47 +0,0 @@ -{ - "name": "intervention/image", - "description": "Image handling and manipulation library with support for Laravel integration", - "homepage": "http://image.intervention.io/", - "keywords": ["image", "gd", "imagick", "laravel", "watermark", "thumbnail"], - "license": "MIT", - "authors": [ - { - "name": "Oliver Vogel", - "email": "oliver@olivervogel.com", - "homepage": "http://olivervogel.com/" - } - ], - "require": { - "php": ">=5.4.0", - "ext-fileinfo": "*", - "guzzlehttp/psr7": "~1.1" - }, - "require-dev": { - "phpunit/phpunit": "^4.8 || ^5.7", - "mockery/mockery": "~0.9.2" - }, - "suggest": { - "ext-gd": "to use GD library based image processing.", - "ext-imagick": "to use Imagick based image processing.", - "intervention/imagecache": "Caching extension for the Intervention Image library" - }, - "autoload": { - "psr-4": { - "Intervention\\Image\\": "src/Intervention/Image" - } - }, - "extra": { - "branch-alias": { - "dev-master": "2.4-dev" - }, - "laravel": { - "providers": [ - "Intervention\\Image\\ImageServiceProvider" - ], - "aliases": { - "Image": "Intervention\\Image\\Facades\\Image" - } - } - }, - "minimum-stability": "stable" -} diff --git a/vendor/intervention/image/provides.json b/vendor/intervention/image/provides.json deleted file mode 100644 index a8cd1b6a..00000000 --- a/vendor/intervention/image/provides.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "providers": [ - "Intervention\\Image\\ImageServiceProvider" - ], - "aliases": [ - { - "alias": "Image", - "facade": "Intervention\\Image\\Facades\\Image" - } - ] -} diff --git a/vendor/intervention/image/src/Intervention/Image/AbstractColor.php b/vendor/intervention/image/src/Intervention/Image/AbstractColor.php deleted file mode 100644 index 28cbaf29..00000000 --- a/vendor/intervention/image/src/Intervention/Image/AbstractColor.php +++ /dev/null @@ -1,226 +0,0 @@ -parse($value); - } - - /** - * Parses given value as color - * - * @param mixed $value - * @return \Intervention\Image\AbstractColor - */ - public function parse($value) - { - switch (true) { - - case is_string($value): - $this->initFromString($value); - break; - - case is_int($value): - $this->initFromInteger($value); - break; - - case is_array($value): - $this->initFromArray($value); - break; - - case is_object($value): - $this->initFromObject($value); - break; - - case is_null($value): - $this->initFromArray([255, 255, 255, 0]); - break; - - default: - throw new \Intervention\Image\Exception\NotReadableException( - "Color format ({$value}) cannot be read." - ); - } - - return $this; - } - - /** - * Formats current color instance into given format - * - * @param string $type - * @return mixed - */ - public function format($type) - { - switch (strtolower($type)) { - - case 'rgba': - return $this->getRgba(); - - case 'hex': - return $this->getHex('#'); - - case 'int': - case 'integer': - return $this->getInt(); - - case 'array': - return $this->getArray(); - - case 'obj': - case 'object': - return $this; - - default: - throw new \Intervention\Image\Exception\NotSupportedException( - "Color format ({$type}) is not supported." - ); - } - } - - /** - * Reads RGBA values from string into array - * - * @param string $value - * @return array - */ - protected function rgbaFromString($value) - { - $result = false; - - // parse color string in hexidecimal format like #cccccc or cccccc or ccc - $hexPattern = '/^#?([a-f0-9]{1,2})([a-f0-9]{1,2})([a-f0-9]{1,2})$/i'; - - // parse color string in format rgb(140, 140, 140) - $rgbPattern = '/^rgb ?\(([0-9]{1,3}), ?([0-9]{1,3}), ?([0-9]{1,3})\)$/i'; - - // parse color string in format rgba(255, 0, 0, 0.5) - $rgbaPattern = '/^rgba ?\(([0-9]{1,3}), ?([0-9]{1,3}), ?([0-9]{1,3}), ?([0-9.]{1,4})\)$/i'; - - if (preg_match($hexPattern, $value, $matches)) { - $result = []; - $result[0] = strlen($matches[1]) == '1' ? hexdec($matches[1].$matches[1]) : hexdec($matches[1]); - $result[1] = strlen($matches[2]) == '1' ? hexdec($matches[2].$matches[2]) : hexdec($matches[2]); - $result[2] = strlen($matches[3]) == '1' ? hexdec($matches[3].$matches[3]) : hexdec($matches[3]); - $result[3] = 1; - } elseif (preg_match($rgbPattern, $value, $matches)) { - $result = []; - $result[0] = ($matches[1] >= 0 && $matches[1] <= 255) ? intval($matches[1]) : 0; - $result[1] = ($matches[2] >= 0 && $matches[2] <= 255) ? intval($matches[2]) : 0; - $result[2] = ($matches[3] >= 0 && $matches[3] <= 255) ? intval($matches[3]) : 0; - $result[3] = 1; - } elseif (preg_match($rgbaPattern, $value, $matches)) { - $result = []; - $result[0] = ($matches[1] >= 0 && $matches[1] <= 255) ? intval($matches[1]) : 0; - $result[1] = ($matches[2] >= 0 && $matches[2] <= 255) ? intval($matches[2]) : 0; - $result[2] = ($matches[3] >= 0 && $matches[3] <= 255) ? intval($matches[3]) : 0; - $result[3] = ($matches[4] >= 0 && $matches[4] <= 1) ? $matches[4] : 0; - } else { - throw new \Intervention\Image\Exception\NotReadableException( - "Unable to read color ({$value})." - ); - } - - return $result; - } -} diff --git a/vendor/intervention/image/src/Intervention/Image/AbstractDecoder.php b/vendor/intervention/image/src/Intervention/Image/AbstractDecoder.php deleted file mode 100644 index 54e1ee9d..00000000 --- a/vendor/intervention/image/src/Intervention/Image/AbstractDecoder.php +++ /dev/null @@ -1,358 +0,0 @@ -data = $data; - } - - /** - * Init from given URL - * - * @param string $url - * @return \Intervention\Image\Image - */ - public function initFromUrl($url) - { - - $options = [ - 'http' => [ - 'method'=>"GET", - 'header'=>"Accept-language: en\r\n". - "User-Agent: Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.2 (KHTML, like Gecko) Chrome/22.0.1216.0 Safari/537.2\r\n" - ] - ]; - - $context = stream_context_create($options); - - - if ($data = @file_get_contents($url, false, $context)) { - return $this->initFromBinary($data); - } - - throw new \Intervention\Image\Exception\NotReadableException( - "Unable to init from given url (".$url.")." - ); - } - - /** - * Init from given stream - * - * @param StreamInterface|resource $stream - * @return \Intervention\Image\Image - */ - public function initFromStream($stream) - { - if (!$stream instanceof StreamInterface) { - $stream = new Stream($stream); - } - - try { - $offset = $stream->tell(); - } catch (\RuntimeException $e) { - $offset = 0; - } - - $shouldAndCanSeek = $offset !== 0 && $stream->isSeekable(); - - if ($shouldAndCanSeek) { - $stream->rewind(); - } - - try { - $data = $stream->getContents(); - } catch (\RuntimeException $e) { - $data = null; - } - - if ($shouldAndCanSeek) { - $stream->seek($offset); - } - - if ($data) { - return $this->initFromBinary($data); - } - - throw new \Intervention\Image\Exception\NotReadableException( - "Unable to init from given stream" - ); - } - - /** - * Determines if current source data is GD resource - * - * @return boolean - */ - public function isGdResource() - { - if (is_resource($this->data)) { - return (get_resource_type($this->data) == 'gd'); - } - - return false; - } - - /** - * Determines if current source data is Imagick object - * - * @return boolean - */ - public function isImagick() - { - return is_a($this->data, 'Imagick'); - } - - /** - * Determines if current source data is Intervention\Image\Image object - * - * @return boolean - */ - public function isInterventionImage() - { - return is_a($this->data, '\Intervention\Image\Image'); - } - - /** - * Determines if current data is SplFileInfo object - * - * @return boolean - */ - public function isSplFileInfo() - { - return is_a($this->data, 'SplFileInfo'); - } - - /** - * Determines if current data is Symfony UploadedFile component - * - * @return boolean - */ - public function isSymfonyUpload() - { - return is_a($this->data, 'Symfony\Component\HttpFoundation\File\UploadedFile'); - } - - /** - * Determines if current source data is file path - * - * @return boolean - */ - public function isFilePath() - { - if (is_string($this->data)) { - try { - return is_file($this->data); - } catch (\Exception $e) { - return false; - } - } - - return false; - } - - /** - * Determines if current source data is url - * - * @return boolean - */ - public function isUrl() - { - return (bool) filter_var($this->data, FILTER_VALIDATE_URL); - } - - /** - * Determines if current source data is a stream resource - * - * @return boolean - */ - public function isStream() - { - if ($this->data instanceof StreamInterface) return true; - if (!is_resource($this->data)) return false; - if (get_resource_type($this->data) !== 'stream') return false; - - return true; - } - - /** - * Determines if current source data is binary data - * - * @return boolean - */ - public function isBinary() - { - if (is_string($this->data)) { - $mime = finfo_buffer(finfo_open(FILEINFO_MIME_TYPE), $this->data); - return (substr($mime, 0, 4) != 'text' && $mime != 'application/x-empty'); - } - - return false; - } - - /** - * Determines if current source data is data-url - * - * @return boolean - */ - public function isDataUrl() - { - $data = $this->decodeDataUrl($this->data); - - return is_null($data) ? false : true; - } - - /** - * Determines if current source data is base64 encoded - * - * @return boolean - */ - public function isBase64() - { - if (!is_string($this->data)) { - return false; - } - - return base64_encode(base64_decode($this->data)) === $this->data; - } - - /** - * Initiates new Image from Intervention\Image\Image - * - * @param Image $object - * @return \Intervention\Image\Image - */ - public function initFromInterventionImage($object) - { - return $object; - } - - /** - * Parses and decodes binary image data from data-url - * - * @param string $data_url - * @return string - */ - private function decodeDataUrl($data_url) - { - if (!is_string($data_url)) { - return null; - } - - $pattern = "/^data:(?:image\/[a-zA-Z\-\.]+)(?:charset=\".+\")?;base64,(?P.+)$/"; - preg_match($pattern, $data_url, $matches); - - if (is_array($matches) && array_key_exists('data', $matches)) { - return base64_decode($matches['data']); - } - - return null; - } - - /** - * Initiates new image from mixed data - * - * @param mixed $data - * @return \Intervention\Image\Image - */ - public function init($data) - { - $this->data = $data; - - switch (true) { - - case $this->isGdResource(): - return $this->initFromGdResource($this->data); - - case $this->isImagick(): - return $this->initFromImagick($this->data); - - case $this->isInterventionImage(): - return $this->initFromInterventionImage($this->data); - - case $this->isSplFileInfo(): - return $this->initFromPath($this->data->getRealPath()); - - case $this->isBinary(): - return $this->initFromBinary($this->data); - - case $this->isUrl(): - return $this->initFromUrl($this->data); - - case $this->isStream(): - return $this->initFromStream($this->data); - - case $this->isDataUrl(): - return $this->initFromBinary($this->decodeDataUrl($this->data)); - - case $this->isFilePath(): - return $this->initFromPath($this->data); - - // isBase64 has to be after isFilePath to prevent false positives - case $this->isBase64(): - return $this->initFromBinary(base64_decode($this->data)); - - default: - throw new Exception\NotReadableException("Image source not readable"); - } - } - - /** - * Decoder object transforms to string source data - * - * @return string - */ - public function __toString() - { - return (string) $this->data; - } -} diff --git a/vendor/intervention/image/src/Intervention/Image/AbstractDriver.php b/vendor/intervention/image/src/Intervention/Image/AbstractDriver.php deleted file mode 100644 index 29ad9d59..00000000 --- a/vendor/intervention/image/src/Intervention/Image/AbstractDriver.php +++ /dev/null @@ -1,134 +0,0 @@ -decoder->init($data); - } - - /** - * Encodes given image - * - * @param Image $image - * @param string $format - * @param int $quality - * @return \Intervention\Image\Image - */ - public function encode($image, $format, $quality) - { - return $this->encoder->process($image, $format, $quality); - } - - /** - * Executes named command on given image - * - * @param Image $image - * @param string $name - * @param array $arguments - * @return \Intervention\Image\Commands\AbstractCommand - */ - public function executeCommand($image, $name, $arguments) - { - $commandName = $this->getCommandClassName($name); - $command = new $commandName($arguments); - $command->execute($image); - - return $command; - } - - /** - * Returns classname of given command name - * - * @param string $name - * @return string - */ - private function getCommandClassName($name) - { - $name = mb_convert_case($name[0], MB_CASE_UPPER, 'utf-8') . mb_substr($name, 1, mb_strlen($name)); - - $drivername = $this->getDriverName(); - $classnameLocal = sprintf('\Intervention\Image\%s\Commands\%sCommand', $drivername, ucfirst($name)); - $classnameGlobal = sprintf('\Intervention\Image\Commands\%sCommand', ucfirst($name)); - - if (class_exists($classnameLocal)) { - return $classnameLocal; - } elseif (class_exists($classnameGlobal)) { - return $classnameGlobal; - } - - throw new \Intervention\Image\Exception\NotSupportedException( - "Command ({$name}) is not available for driver ({$drivername})." - ); - } - - /** - * Returns name of current driver instance - * - * @return string - */ - public function getDriverName() - { - $reflect = new \ReflectionClass($this); - $namespace = $reflect->getNamespaceName(); - - return substr(strrchr($namespace, "\\"), 1); - } -} diff --git a/vendor/intervention/image/src/Intervention/Image/AbstractEncoder.php b/vendor/intervention/image/src/Intervention/Image/AbstractEncoder.php deleted file mode 100644 index 357b8f48..00000000 --- a/vendor/intervention/image/src/Intervention/Image/AbstractEncoder.php +++ /dev/null @@ -1,241 +0,0 @@ -setImage($image); - $this->setFormat($format); - $this->setQuality($quality); - - switch (strtolower($this->format)) { - - case 'data-url': - $this->result = $this->processDataUrl(); - break; - - case 'gif': - case 'image/gif': - $this->result = $this->processGif(); - break; - - case 'png': - case 'image/png': - case 'image/x-png': - $this->result = $this->processPng(); - break; - - case 'jpg': - case 'jpeg': - case 'image/jpg': - case 'image/jpeg': - case 'image/pjpeg': - $this->result = $this->processJpeg(); - break; - - case 'tif': - case 'tiff': - case 'image/tiff': - case 'image/tif': - case 'image/x-tif': - case 'image/x-tiff': - $this->result = $this->processTiff(); - break; - - case 'bmp': - case 'bmp': - case 'ms-bmp': - case 'x-bitmap': - case 'x-bmp': - case 'x-ms-bmp': - case 'x-win-bitmap': - case 'x-windows-bmp': - case 'x-xbitmap': - case 'image/ms-bmp': - case 'image/x-bitmap': - case 'image/x-bmp': - case 'image/x-ms-bmp': - case 'image/x-win-bitmap': - case 'image/x-windows-bmp': - case 'image/x-xbitmap': - $this->result = $this->processBmp(); - break; - - case 'ico': - case 'image/x-ico': - case 'image/x-icon': - case 'image/vnd.microsoft.icon': - $this->result = $this->processIco(); - break; - - case 'psd': - case 'image/vnd.adobe.photoshop': - $this->result = $this->processPsd(); - break; - - case 'webp': - case 'image/webp': - case 'image/x-webp': - $this->result = $this->processWebp(); - break; - - default: - throw new \Intervention\Image\Exception\NotSupportedException( - "Encoding format ({$format}) is not supported." - ); - } - - $this->setImage(null); - - return $image->setEncoded($this->result); - } - - /** - * Processes and returns encoded image as data-url string - * - * @return string - */ - protected function processDataUrl() - { - $mime = $this->image->mime ? $this->image->mime : 'image/png'; - - return sprintf('data:%s;base64,%s', - $mime, - base64_encode($this->process($this->image, $mime, $this->quality)) - ); - } - - /** - * Sets image to process - * - * @param Image $image - */ - protected function setImage($image) - { - $this->image = $image; - } - - /** - * Determines output format - * - * @param string $format - */ - protected function setFormat($format = null) - { - if ($format == '' && $this->image instanceof Image) { - $format = $this->image->mime; - } - - $this->format = $format ? $format : 'jpg'; - - return $this; - } - - /** - * Determines output quality - * - * @param int $quality - */ - protected function setQuality($quality) - { - $quality = is_null($quality) ? 90 : $quality; - $quality = $quality === 0 ? 1 : $quality; - - if ($quality < 0 || $quality > 100) { - throw new \Intervention\Image\Exception\InvalidArgumentException( - 'Quality must range from 0 to 100.' - ); - } - - $this->quality = intval($quality); - - return $this; - } -} diff --git a/vendor/intervention/image/src/Intervention/Image/AbstractFont.php b/vendor/intervention/image/src/Intervention/Image/AbstractFont.php deleted file mode 100644 index 0b9b9799..00000000 --- a/vendor/intervention/image/src/Intervention/Image/AbstractFont.php +++ /dev/null @@ -1,267 +0,0 @@ -text = $text; - } - - /** - * Set text to be written - * - * @param String $text - * @return void - */ - public function text($text) - { - $this->text = $text; - - return $this; - } - - /** - * Get text to be written - * - * @return String - */ - public function getText() - { - return $this->text; - } - - /** - * Set font size in pixels - * - * @param int $size - * @return void - */ - public function size($size) - { - $this->size = $size; - - return $this; - } - - /** - * Get font size in pixels - * - * @return int - */ - public function getSize() - { - return $this->size; - } - - /** - * Set color of text to be written - * - * @param mixed $color - * @return void - */ - public function color($color) - { - $this->color = $color; - - return $this; - } - - /** - * Get color of text - * - * @return mixed - */ - public function getColor() - { - return $this->color; - } - - /** - * Set rotation angle of text - * - * @param int $angle - * @return void - */ - public function angle($angle) - { - $this->angle = $angle; - - return $this; - } - - /** - * Get rotation angle of text - * - * @return int - */ - public function getAngle() - { - return $this->angle; - } - - /** - * Set horizontal text alignment - * - * @param string $align - * @return void - */ - public function align($align) - { - $this->align = $align; - - return $this; - } - - /** - * Get horizontal text alignment - * - * @return string - */ - public function getAlign() - { - return $this->align; - } - - /** - * Set vertical text alignment - * - * @param string $valign - * @return void - */ - public function valign($valign) - { - $this->valign = $valign; - - return $this; - } - - /** - * Get vertical text alignment - * - * @return string - */ - public function getValign() - { - return $this->valign; - } - - /** - * Set path to font file - * - * @param string $file - * @return void - */ - public function file($file) - { - $this->file = $file; - - return $this; - } - - /** - * Get path to font file - * - * @return string - */ - public function getFile() - { - return $this->file; - } - - /** - * Checks if current font has access to an applicable font file - * - * @return boolean - */ - protected function hasApplicableFontFile() - { - if (is_string($this->file)) { - return file_exists($this->file); - } - - return false; - } - - /** - * Counts lines of text to be written - * - * @return int - */ - public function countLines() - { - return count(explode(PHP_EOL, $this->text)); - } -} diff --git a/vendor/intervention/image/src/Intervention/Image/AbstractShape.php b/vendor/intervention/image/src/Intervention/Image/AbstractShape.php deleted file mode 100644 index cd4a9f1c..00000000 --- a/vendor/intervention/image/src/Intervention/Image/AbstractShape.php +++ /dev/null @@ -1,71 +0,0 @@ -background = $color; - } - - /** - * Set border width and color of current shape - * - * @param int $width - * @param string $color - * @return void - */ - public function border($width, $color = null) - { - $this->border_width = is_numeric($width) ? intval($width) : 0; - $this->border_color = is_null($color) ? '#000000' : $color; - } - - /** - * Determines if current shape has border - * - * @return boolean - */ - public function hasBorder() - { - return ($this->border_width >= 1); - } -} diff --git a/vendor/intervention/image/src/Intervention/Image/Commands/AbstractCommand.php b/vendor/intervention/image/src/Intervention/Image/Commands/AbstractCommand.php deleted file mode 100644 index cf9ca108..00000000 --- a/vendor/intervention/image/src/Intervention/Image/Commands/AbstractCommand.php +++ /dev/null @@ -1,79 +0,0 @@ -arguments = $arguments; - } - - /** - * Creates new argument instance from given argument key - * - * @param int $key - * @return \Intervention\Image\Commands\Argument - */ - public function argument($key) - { - return new \Intervention\Image\Commands\Argument($this, $key); - } - - /** - * Returns output data of current command - * - * @return mixed - */ - public function getOutput() - { - return $this->output ? $this->output : null; - } - - /** - * Determines if current instance has output data - * - * @return boolean - */ - public function hasOutput() - { - return ! is_null($this->output); - } - - /** - * Sets output data of current command - * - * @param mixed $value - */ - public function setOutput($value) - { - $this->output = $value; - } -} diff --git a/vendor/intervention/image/src/Intervention/Image/Commands/Argument.php b/vendor/intervention/image/src/Intervention/Image/Commands/Argument.php deleted file mode 100644 index 40a8f629..00000000 --- a/vendor/intervention/image/src/Intervention/Image/Commands/Argument.php +++ /dev/null @@ -1,225 +0,0 @@ -command = $command; - $this->key = $key; - } - - /** - * Returns name of current arguments command - * - * @return string - */ - public function getCommandName() - { - preg_match("/\\\\([\w]+)Command$/", get_class($this->command), $matches); - return isset($matches[1]) ? lcfirst($matches[1]).'()' : 'Method'; - } - - /** - * Returns value of current argument - * - * @param mixed $default - * @return mixed - */ - public function value($default = null) - { - $arguments = $this->command->arguments; - - if (is_array($arguments)) { - return isset($arguments[$this->key]) ? $arguments[$this->key] : $default; - } - - return $default; - } - - /** - * Defines current argument as required - * - * @return \Intervention\Image\Commands\Argument - */ - public function required() - { - if ( ! array_key_exists($this->key, $this->command->arguments)) { - throw new \Intervention\Image\Exception\InvalidArgumentException( - sprintf("Missing argument %d for %s", $this->key + 1, $this->getCommandName()) - ); - } - - return $this; - } - - /** - * Determines that current argument must be of given type - * - * @return \Intervention\Image\Commands\Argument - */ - public function type($type) - { - $fail = false; - - $value = $this->value(); - - if (is_null($value)) { - return $this; - } - - switch (strtolower($type)) { - - case 'bool': - case 'boolean': - $fail = ! is_bool($value); - $message = sprintf('%s accepts only boolean values as argument %d.', $this->getCommandName(), $this->key + 1); - break; - - case 'int': - case 'integer': - $fail = ! is_integer($value); - $message = sprintf('%s accepts only integer values as argument %d.', $this->getCommandName(), $this->key + 1); - break; - - case 'num': - case 'numeric': - $fail = ! is_numeric($value); - $message = sprintf('%s accepts only numeric values as argument %d.', $this->getCommandName(), $this->key + 1); - break; - - case 'str': - case 'string': - $fail = ! is_string($value); - $message = sprintf('%s accepts only string values as argument %d.', $this->getCommandName(), $this->key + 1); - break; - - case 'array': - $fail = ! is_array($value); - $message = sprintf('%s accepts only array as argument %d.', $this->getCommandName(), $this->key + 1); - break; - - case 'closure': - $fail = ! is_a($value, '\Closure'); - $message = sprintf('%s accepts only Closure as argument %d.', $this->getCommandName(), $this->key + 1); - break; - - case 'digit': - $fail = ! $this->isDigit($value); - $message = sprintf('%s accepts only integer values as argument %d.', $this->getCommandName(), $this->key + 1); - break; - } - - if ($fail) { - - $message = isset($message) ? $message : sprintf("Missing argument for %d.", $this->key); - - throw new \Intervention\Image\Exception\InvalidArgumentException( - $message - ); - } - - return $this; - } - - /** - * Determines that current argument value must be numeric between given values - * - * @return \Intervention\Image\Commands\Argument - */ - public function between($x, $y) - { - $value = $this->type('numeric')->value(); - - if (is_null($value)) { - return $this; - } - - $alpha = min($x, $y); - $omega = max($x, $y); - - if ($value < $alpha || $value > $omega) { - throw new \Intervention\Image\Exception\InvalidArgumentException( - sprintf('Argument %d must be between %s and %s.', $this->key, $x, $y) - ); - } - - return $this; - } - - /** - * Determines that current argument must be over a minimum value - * - * @return \Intervention\Image\Commands\Argument - */ - public function min($value) - { - $v = $this->type('numeric')->value(); - - if (is_null($v)) { - return $this; - } - - if ($v < $value) { - throw new \Intervention\Image\Exception\InvalidArgumentException( - sprintf('Argument %d must be at least %s.', $this->key, $value) - ); - } - - return $this; - } - - /** - * Determines that current argument must be under a maxiumum value - * - * @return \Intervention\Image\Commands\Argument - */ - public function max($value) - { - $v = $this->type('numeric')->value(); - - if (is_null($v)) { - return $this; - } - - if ($v > $value) { - throw new \Intervention\Image\Exception\InvalidArgumentException( - sprintf('Argument %d may not be greater than %s.', $this->key, $value) - ); - } - - return $this; - } - - /** - * Checks if value is "PHP" integer (120 but also 120.0) - * - * @param mixed $value - * @return boolean - */ - private function isDigit($value) - { - return is_numeric($value) ? intval($value) == $value : false; - } -} diff --git a/vendor/intervention/image/src/Intervention/Image/Commands/ChecksumCommand.php b/vendor/intervention/image/src/Intervention/Image/Commands/ChecksumCommand.php deleted file mode 100644 index 9acc4030..00000000 --- a/vendor/intervention/image/src/Intervention/Image/Commands/ChecksumCommand.php +++ /dev/null @@ -1,29 +0,0 @@ -getSize(); - - for ($x=0; $x <= ($size->width-1); $x++) { - for ($y=0; $y <= ($size->height-1); $y++) { - $colors[] = $image->pickColor($x, $y, 'array'); - } - } - - $this->setOutput(md5(serialize($colors))); - - return true; - } -} diff --git a/vendor/intervention/image/src/Intervention/Image/Commands/CircleCommand.php b/vendor/intervention/image/src/Intervention/Image/Commands/CircleCommand.php deleted file mode 100644 index 2fc38ddf..00000000 --- a/vendor/intervention/image/src/Intervention/Image/Commands/CircleCommand.php +++ /dev/null @@ -1,35 +0,0 @@ -argument(0)->type('numeric')->required()->value(); - $x = $this->argument(1)->type('numeric')->required()->value(); - $y = $this->argument(2)->type('numeric')->required()->value(); - $callback = $this->argument(3)->type('closure')->value(); - - $circle_classname = sprintf('\Intervention\Image\%s\Shapes\CircleShape', - $image->getDriver()->getDriverName()); - - $circle = new $circle_classname($diameter); - - if ($callback instanceof Closure) { - $callback($circle); - } - - $circle->applyToImage($image, $x, $y); - - return true; - } -} diff --git a/vendor/intervention/image/src/Intervention/Image/Commands/EllipseCommand.php b/vendor/intervention/image/src/Intervention/Image/Commands/EllipseCommand.php deleted file mode 100644 index 4f364eca..00000000 --- a/vendor/intervention/image/src/Intervention/Image/Commands/EllipseCommand.php +++ /dev/null @@ -1,36 +0,0 @@ -argument(0)->type('numeric')->required()->value(); - $height = $this->argument(1)->type('numeric')->required()->value(); - $x = $this->argument(2)->type('numeric')->required()->value(); - $y = $this->argument(3)->type('numeric')->required()->value(); - $callback = $this->argument(4)->type('closure')->value(); - - $ellipse_classname = sprintf('\Intervention\Image\%s\Shapes\EllipseShape', - $image->getDriver()->getDriverName()); - - $ellipse = new $ellipse_classname($width, $height); - - if ($callback instanceof Closure) { - $callback($ellipse); - } - - $ellipse->applyToImage($image, $x, $y); - - return true; - } -} diff --git a/vendor/intervention/image/src/Intervention/Image/Commands/ExifCommand.php b/vendor/intervention/image/src/Intervention/Image/Commands/ExifCommand.php deleted file mode 100644 index 2986cae8..00000000 --- a/vendor/intervention/image/src/Intervention/Image/Commands/ExifCommand.php +++ /dev/null @@ -1,37 +0,0 @@ -argument(0)->value(); - - // try to read exif data from image file - $data = @exif_read_data($image->dirname .'/'. $image->basename); - - if (! is_null($key) && is_array($data)) { - $data = array_key_exists($key, $data) ? $data[$key] : false; - } - - $this->setOutput($data); - - return true; - } -} diff --git a/vendor/intervention/image/src/Intervention/Image/Commands/IptcCommand.php b/vendor/intervention/image/src/Intervention/Image/Commands/IptcCommand.php deleted file mode 100644 index 88e8fd35..00000000 --- a/vendor/intervention/image/src/Intervention/Image/Commands/IptcCommand.php +++ /dev/null @@ -1,64 +0,0 @@ -argument(0)->value(); - - $info = []; - @getimagesize($image->dirname .'/'. $image->basename, $info); - - $data = []; - - if (array_key_exists('APP13', $info)) { - $iptc = iptcparse($info['APP13']); - - if (is_array($iptc)) { - $data['DocumentTitle'] = isset($iptc["2#005"][0]) ? $iptc["2#005"][0] : null; - $data['Urgency'] = isset($iptc["2#010"][0]) ? $iptc["2#010"][0] : null; - $data['Category'] = isset($iptc["2#015"][0]) ? $iptc["2#015"][0] : null; - $data['Subcategories'] = isset($iptc["2#020"][0]) ? $iptc["2#020"][0] : null; - $data['Keywords'] = isset($iptc["2#025"][0]) ? $iptc["2#025"] : null; - $data['SpecialInstructions'] = isset($iptc["2#040"][0]) ? $iptc["2#040"][0] : null; - $data['CreationDate'] = isset($iptc["2#055"][0]) ? $iptc["2#055"][0] : null; - $data['CreationTime'] = isset($iptc["2#060"][0]) ? $iptc["2#060"][0] : null; - $data['AuthorByline'] = isset($iptc["2#080"][0]) ? $iptc["2#080"][0] : null; - $data['AuthorTitle'] = isset($iptc["2#085"][0]) ? $iptc["2#085"][0] : null; - $data['City'] = isset($iptc["2#090"][0]) ? $iptc["2#090"][0] : null; - $data['SubLocation'] = isset($iptc["2#092"][0]) ? $iptc["2#092"][0] : null; - $data['State'] = isset($iptc["2#095"][0]) ? $iptc["2#095"][0] : null; - $data['Country'] = isset($iptc["2#101"][0]) ? $iptc["2#101"][0] : null; - $data['OTR'] = isset($iptc["2#103"][0]) ? $iptc["2#103"][0] : null; - $data['Headline'] = isset($iptc["2#105"][0]) ? $iptc["2#105"][0] : null; - $data['Source'] = isset($iptc["2#110"][0]) ? $iptc["2#110"][0] : null; - $data['PhotoSource'] = isset($iptc["2#115"][0]) ? $iptc["2#115"][0] : null; - $data['Copyright'] = isset($iptc["2#116"][0]) ? $iptc["2#116"][0] : null; - $data['Caption'] = isset($iptc["2#120"][0]) ? $iptc["2#120"][0] : null; - $data['CaptionWriter'] = isset($iptc["2#122"][0]) ? $iptc["2#122"][0] : null; - } - } - - if (! is_null($key) && is_array($data)) { - $data = array_key_exists($key, $data) ? $data[$key] : false; - } - - $this->setOutput($data); - - return true; - } -} diff --git a/vendor/intervention/image/src/Intervention/Image/Commands/LineCommand.php b/vendor/intervention/image/src/Intervention/Image/Commands/LineCommand.php deleted file mode 100644 index 0089c649..00000000 --- a/vendor/intervention/image/src/Intervention/Image/Commands/LineCommand.php +++ /dev/null @@ -1,36 +0,0 @@ -argument(0)->type('numeric')->required()->value(); - $y1 = $this->argument(1)->type('numeric')->required()->value(); - $x2 = $this->argument(2)->type('numeric')->required()->value(); - $y2 = $this->argument(3)->type('numeric')->required()->value(); - $callback = $this->argument(4)->type('closure')->value(); - - $line_classname = sprintf('\Intervention\Image\%s\Shapes\LineShape', - $image->getDriver()->getDriverName()); - - $line = new $line_classname($x2, $y2); - - if ($callback instanceof Closure) { - $callback($line); - } - - $line->applyToImage($image, $x1, $y1); - - return true; - } -} diff --git a/vendor/intervention/image/src/Intervention/Image/Commands/OrientateCommand.php b/vendor/intervention/image/src/Intervention/Image/Commands/OrientateCommand.php deleted file mode 100644 index 552482cb..00000000 --- a/vendor/intervention/image/src/Intervention/Image/Commands/OrientateCommand.php +++ /dev/null @@ -1,48 +0,0 @@ -exif('Orientation')) { - - case 2: - $image->flip(); - break; - - case 3: - $image->rotate(180); - break; - - case 4: - $image->rotate(180)->flip(); - break; - - case 5: - $image->rotate(270)->flip(); - break; - - case 6: - $image->rotate(270); - break; - - case 7: - $image->rotate(90)->flip(); - break; - - case 8: - $image->rotate(90); - break; - } - - return true; - } -} diff --git a/vendor/intervention/image/src/Intervention/Image/Commands/PolygonCommand.php b/vendor/intervention/image/src/Intervention/Image/Commands/PolygonCommand.php deleted file mode 100644 index e46e3fff..00000000 --- a/vendor/intervention/image/src/Intervention/Image/Commands/PolygonCommand.php +++ /dev/null @@ -1,48 +0,0 @@ -argument(0)->type('array')->required()->value(); - $callback = $this->argument(1)->type('closure')->value(); - - $vertices_count = count($points); - - // check if number if coordinates is even - if ($vertices_count % 2 !== 0) { - throw new \Intervention\Image\Exception\InvalidArgumentException( - "The number of given polygon vertices must be even." - ); - } - - if ($vertices_count < 6) { - throw new \Intervention\Image\Exception\InvalidArgumentException( - "You must have at least 3 points in your array." - ); - } - - $polygon_classname = sprintf('\Intervention\Image\%s\Shapes\PolygonShape', - $image->getDriver()->getDriverName()); - - $polygon = new $polygon_classname($points); - - if ($callback instanceof Closure) { - $callback($polygon); - } - - $polygon->applyToImage($image); - - return true; - } -} diff --git a/vendor/intervention/image/src/Intervention/Image/Commands/PsrResponseCommand.php b/vendor/intervention/image/src/Intervention/Image/Commands/PsrResponseCommand.php deleted file mode 100644 index d75cd903..00000000 --- a/vendor/intervention/image/src/Intervention/Image/Commands/PsrResponseCommand.php +++ /dev/null @@ -1,45 +0,0 @@ -argument(0)->value(); - $quality = $this->argument(1)->between(0, 100)->value(); - - //Encoded property will be populated at this moment - $stream = $image->stream($format, $quality); - - $mimetype = finfo_buffer( - finfo_open(FILEINFO_MIME_TYPE), - $image->getEncoded() - ); - - $this->setOutput(new Response( - 200, - [ - 'Content-Type' => $mimetype, - 'Content-Length' => strlen($image->getEncoded()) - ], - $stream - )); - - return true; - } -} \ No newline at end of file diff --git a/vendor/intervention/image/src/Intervention/Image/Commands/RectangleCommand.php b/vendor/intervention/image/src/Intervention/Image/Commands/RectangleCommand.php deleted file mode 100644 index 3a2074c5..00000000 --- a/vendor/intervention/image/src/Intervention/Image/Commands/RectangleCommand.php +++ /dev/null @@ -1,36 +0,0 @@ -argument(0)->type('numeric')->required()->value(); - $y1 = $this->argument(1)->type('numeric')->required()->value(); - $x2 = $this->argument(2)->type('numeric')->required()->value(); - $y2 = $this->argument(3)->type('numeric')->required()->value(); - $callback = $this->argument(4)->type('closure')->value(); - - $rectangle_classname = sprintf('\Intervention\Image\%s\Shapes\RectangleShape', - $image->getDriver()->getDriverName()); - - $rectangle = new $rectangle_classname($x1, $y1, $x2, $y2); - - if ($callback instanceof Closure) { - $callback($rectangle); - } - - $rectangle->applyToImage($image, $x1, $y1); - - return true; - } -} diff --git a/vendor/intervention/image/src/Intervention/Image/Commands/ResponseCommand.php b/vendor/intervention/image/src/Intervention/Image/Commands/ResponseCommand.php deleted file mode 100644 index 7903b5af..00000000 --- a/vendor/intervention/image/src/Intervention/Image/Commands/ResponseCommand.php +++ /dev/null @@ -1,26 +0,0 @@ -argument(0)->value(); - $quality = $this->argument(1)->between(0, 100)->value(); - - $response = new Response($image, $format, $quality); - - $this->setOutput($response->make()); - - return true; - } -} diff --git a/vendor/intervention/image/src/Intervention/Image/Commands/StreamCommand.php b/vendor/intervention/image/src/Intervention/Image/Commands/StreamCommand.php deleted file mode 100644 index 111c4756..00000000 --- a/vendor/intervention/image/src/Intervention/Image/Commands/StreamCommand.php +++ /dev/null @@ -1,25 +0,0 @@ -argument(0)->value(); - $quality = $this->argument(1)->between(0, 100)->value(); - - $this->setOutput(\GuzzleHttp\Psr7\stream_for( - $image->encode($format, $quality)->getEncoded() - )); - - return true; - } -} \ No newline at end of file diff --git a/vendor/intervention/image/src/Intervention/Image/Commands/TextCommand.php b/vendor/intervention/image/src/Intervention/Image/Commands/TextCommand.php deleted file mode 100644 index 4aebd8e8..00000000 --- a/vendor/intervention/image/src/Intervention/Image/Commands/TextCommand.php +++ /dev/null @@ -1,34 +0,0 @@ -argument(0)->required()->value(); - $x = $this->argument(1)->type('numeric')->value(0); - $y = $this->argument(2)->type('numeric')->value(0); - $callback = $this->argument(3)->type('closure')->value(); - - $fontclassname = sprintf('\Intervention\Image\%s\Font', - $image->getDriver()->getDriverName()); - - $font = new $fontclassname($text); - - if ($callback instanceof Closure) { - $callback($font); - } - - $font->applyToImage($image, $x, $y); - - return true; - } -} diff --git a/vendor/intervention/image/src/Intervention/Image/Constraint.php b/vendor/intervention/image/src/Intervention/Image/Constraint.php deleted file mode 100644 index 44bdd67a..00000000 --- a/vendor/intervention/image/src/Intervention/Image/Constraint.php +++ /dev/null @@ -1,92 +0,0 @@ -size = $size; - } - - /** - * Returns current size of constraint - * - * @return \Intervention\Image\Size - */ - public function getSize() - { - return $this->size; - } - - /** - * Fix the given argument in current constraint - * - * @param int $type - * @return void - */ - public function fix($type) - { - $this->fixed = ($this->fixed & ~(1 << $type)) | (1 << $type); - } - - /** - * Checks if given argument is fixed in current constraint - * - * @param int $type - * @return boolean - */ - public function isFixed($type) - { - return (bool) ($this->fixed & (1 << $type)); - } - - /** - * Fixes aspect ratio in current constraint - * - * @return void - */ - public function aspectRatio() - { - $this->fix(self::ASPECTRATIO); - } - - /** - * Fixes possibility to size up in current constraint - * - * @return void - */ - public function upsize() - { - $this->fix(self::UPSIZE); - } -} diff --git a/vendor/intervention/image/src/Intervention/Image/Exception/ImageException.php b/vendor/intervention/image/src/Intervention/Image/Exception/ImageException.php deleted file mode 100644 index 83e6b91f..00000000 --- a/vendor/intervention/image/src/Intervention/Image/Exception/ImageException.php +++ /dev/null @@ -1,8 +0,0 @@ -dirname = array_key_exists('dirname', $info) ? $info['dirname'] : null; - $this->basename = array_key_exists('basename', $info) ? $info['basename'] : null; - $this->extension = array_key_exists('extension', $info) ? $info['extension'] : null; - $this->filename = array_key_exists('filename', $info) ? $info['filename'] : null; - - if (file_exists($path) && is_file($path)) { - $this->mime = finfo_file(finfo_open(FILEINFO_MIME_TYPE), $path); - } - - return $this; - } - - /** - * Get file size - * - * @return mixed - */ - public function filesize() - { - $path = $this->basePath(); - - if (file_exists($path) && is_file($path)) { - return filesize($path); - } - - return false; - } - - /** - * Get fully qualified path - * - * @return string - */ - public function basePath() - { - if ($this->dirname && $this->basename) { - return ($this->dirname .'/'. $this->basename); - } - - return null; - } - -} diff --git a/vendor/intervention/image/src/Intervention/Image/Filters/DemoFilter.php b/vendor/intervention/image/src/Intervention/Image/Filters/DemoFilter.php deleted file mode 100644 index f5aac05b..00000000 --- a/vendor/intervention/image/src/Intervention/Image/Filters/DemoFilter.php +++ /dev/null @@ -1,42 +0,0 @@ -size = is_numeric($size) ? intval($size) : self::DEFAULT_SIZE; - } - - /** - * Applies filter effects to given image - * - * @param \Intervention\Image\Image $image - * @return \Intervention\Image\Image - */ - public function applyFilter(\Intervention\Image\Image $image) - { - $image->pixelate($this->size); - $image->greyscale(); - - return $image; - } -} diff --git a/vendor/intervention/image/src/Intervention/Image/Filters/FilterInterface.php b/vendor/intervention/image/src/Intervention/Image/Filters/FilterInterface.php deleted file mode 100644 index 27c0beef..00000000 --- a/vendor/intervention/image/src/Intervention/Image/Filters/FilterInterface.php +++ /dev/null @@ -1,14 +0,0 @@ -a = ($value >> 24) & 0xFF; - $this->r = ($value >> 16) & 0xFF; - $this->g = ($value >> 8) & 0xFF; - $this->b = $value & 0xFF; - } - - /** - * Initiates color object from given array - * - * @param array $value - * @return \Intervention\Image\AbstractColor - */ - public function initFromArray($array) - { - $array = array_values($array); - - if (count($array) == 4) { - - // color array with alpha value - list($r, $g, $b, $a) = $array; - $this->a = $this->alpha2gd($a); - - } elseif (count($array) == 3) { - - // color array without alpha value - list($r, $g, $b) = $array; - $this->a = 0; - - } - - $this->r = $r; - $this->g = $g; - $this->b = $b; - } - - /** - * Initiates color object from given string - * - * @param string $value - * @return \Intervention\Image\AbstractColor - */ - public function initFromString($value) - { - if ($color = $this->rgbaFromString($value)) { - $this->r = $color[0]; - $this->g = $color[1]; - $this->b = $color[2]; - $this->a = $this->alpha2gd($color[3]); - } - } - - /** - * Initiates color object from given R, G and B values - * - * @param int $r - * @param int $g - * @param int $b - * @return \Intervention\Image\AbstractColor - */ - public function initFromRgb($r, $g, $b) - { - $this->r = intval($r); - $this->g = intval($g); - $this->b = intval($b); - $this->a = 0; - } - - /** - * Initiates color object from given R, G, B and A values - * - * @param int $r - * @param int $g - * @param int $b - * @param float $a - * @return \Intervention\Image\AbstractColor - */ - public function initFromRgba($r, $g, $b, $a = 1) - { - $this->r = intval($r); - $this->g = intval($g); - $this->b = intval($b); - $this->a = $this->alpha2gd($a); - } - - /** - * Initiates color object from given ImagickPixel object - * - * @param ImagickPixel $value - * @return \Intervention\Image\AbstractColor - */ - public function initFromObject($value) - { - throw new \Intervention\Image\Exception\NotSupportedException( - "GD colors cannot init from ImagickPixel objects." - ); - } - - /** - * Calculates integer value of current color instance - * - * @return int - */ - public function getInt() - { - return ($this->a << 24) + ($this->r << 16) + ($this->g << 8) + $this->b; - } - - /** - * Calculates hexadecimal value of current color instance - * - * @param string $prefix - * @return string - */ - public function getHex($prefix = '') - { - return sprintf('%s%02x%02x%02x', $prefix, $this->r, $this->g, $this->b); - } - - /** - * Calculates RGB(A) in array format of current color instance - * - * @return array - */ - public function getArray() - { - return [$this->r, $this->g, $this->b, round(1 - $this->a / 127, 2)]; - } - - /** - * Calculates RGBA in string format of current color instance - * - * @return string - */ - public function getRgba() - { - return sprintf('rgba(%d, %d, %d, %.2F)', $this->r, $this->g, $this->b, round(1 - $this->a / 127, 2)); - } - - /** - * Determines if current color is different from given color - * - * @param AbstractColor $color - * @param int $tolerance - * @return boolean - */ - public function differs(AbstractColor $color, $tolerance = 0) - { - $color_tolerance = round($tolerance * 2.55); - $alpha_tolerance = round($tolerance * 1.27); - - $delta = [ - 'r' => abs($color->r - $this->r), - 'g' => abs($color->g - $this->g), - 'b' => abs($color->b - $this->b), - 'a' => abs($color->a - $this->a) - ]; - - return ( - $delta['r'] > $color_tolerance or - $delta['g'] > $color_tolerance or - $delta['b'] > $color_tolerance or - $delta['a'] > $alpha_tolerance - ); - } - - /** - * Convert rgba alpha (0-1) value to gd value (0-127) - * - * @param float $input - * @return int - */ - private function alpha2gd($input) - { - $oldMin = 0; - $oldMax = 1; - - $newMin = 127; - $newMax = 0; - - return ceil(((($input- $oldMin) * ($newMax - $newMin)) / ($oldMax - $oldMin)) + $newMin); - } -} diff --git a/vendor/intervention/image/src/Intervention/Image/Gd/Commands/BackupCommand.php b/vendor/intervention/image/src/Intervention/Image/Gd/Commands/BackupCommand.php deleted file mode 100644 index 98b3c725..00000000 --- a/vendor/intervention/image/src/Intervention/Image/Gd/Commands/BackupCommand.php +++ /dev/null @@ -1,23 +0,0 @@ -argument(0)->value(); - - // clone current image resource - $clone = clone $image; - $image->setBackup($clone->getCore(), $backupName); - - return true; - } -} diff --git a/vendor/intervention/image/src/Intervention/Image/Gd/Commands/BlurCommand.php b/vendor/intervention/image/src/Intervention/Image/Gd/Commands/BlurCommand.php deleted file mode 100644 index d53f59d7..00000000 --- a/vendor/intervention/image/src/Intervention/Image/Gd/Commands/BlurCommand.php +++ /dev/null @@ -1,23 +0,0 @@ -argument(0)->between(0, 100)->value(1); - - for ($i=0; $i < intval($amount); $i++) { - imagefilter($image->getCore(), IMG_FILTER_GAUSSIAN_BLUR); - } - - return true; - } -} diff --git a/vendor/intervention/image/src/Intervention/Image/Gd/Commands/BrightnessCommand.php b/vendor/intervention/image/src/Intervention/Image/Gd/Commands/BrightnessCommand.php deleted file mode 100644 index de4263f7..00000000 --- a/vendor/intervention/image/src/Intervention/Image/Gd/Commands/BrightnessCommand.php +++ /dev/null @@ -1,19 +0,0 @@ -argument(0)->between(-100, 100)->required()->value(); - - return imagefilter($image->getCore(), IMG_FILTER_BRIGHTNESS, ($level * 2.55)); - } -} diff --git a/vendor/intervention/image/src/Intervention/Image/Gd/Commands/ColorizeCommand.php b/vendor/intervention/image/src/Intervention/Image/Gd/Commands/ColorizeCommand.php deleted file mode 100644 index 8f539638..00000000 --- a/vendor/intervention/image/src/Intervention/Image/Gd/Commands/ColorizeCommand.php +++ /dev/null @@ -1,27 +0,0 @@ -argument(0)->between(-100, 100)->required()->value(); - $green = $this->argument(1)->between(-100, 100)->required()->value(); - $blue = $this->argument(2)->between(-100, 100)->required()->value(); - - // normalize colorize levels - $red = round($red * 2.55); - $green = round($green * 2.55); - $blue = round($blue * 2.55); - - // apply filter - return imagefilter($image->getCore(), IMG_FILTER_COLORIZE, $red, $green, $blue); - } -} diff --git a/vendor/intervention/image/src/Intervention/Image/Gd/Commands/ContrastCommand.php b/vendor/intervention/image/src/Intervention/Image/Gd/Commands/ContrastCommand.php deleted file mode 100644 index e43b761a..00000000 --- a/vendor/intervention/image/src/Intervention/Image/Gd/Commands/ContrastCommand.php +++ /dev/null @@ -1,19 +0,0 @@ -argument(0)->between(-100, 100)->required()->value(); - - return imagefilter($image->getCore(), IMG_FILTER_CONTRAST, ($level * -1)); - } -} diff --git a/vendor/intervention/image/src/Intervention/Image/Gd/Commands/CropCommand.php b/vendor/intervention/image/src/Intervention/Image/Gd/Commands/CropCommand.php deleted file mode 100644 index b7f59542..00000000 --- a/vendor/intervention/image/src/Intervention/Image/Gd/Commands/CropCommand.php +++ /dev/null @@ -1,40 +0,0 @@ -argument(0)->type('digit')->required()->value(); - $height = $this->argument(1)->type('digit')->required()->value(); - $x = $this->argument(2)->type('digit')->value(); - $y = $this->argument(3)->type('digit')->value(); - - if (is_null($width) || is_null($height)) { - throw new \Intervention\Image\Exception\InvalidArgumentException( - "Width and height of cutout needs to be defined." - ); - } - - $cropped = new Size($width, $height); - $position = new Point($x, $y); - - // align boxes - if (is_null($x) && is_null($y)) { - $position = $image->getSize()->align('center')->relativePosition($cropped->align('center')); - } - - // crop image core - return $this->modify($image, 0, 0, $position->x, $position->y, $cropped->width, $cropped->height, $cropped->width, $cropped->height); - } -} diff --git a/vendor/intervention/image/src/Intervention/Image/Gd/Commands/DestroyCommand.php b/vendor/intervention/image/src/Intervention/Image/Gd/Commands/DestroyCommand.php deleted file mode 100644 index 18383307..00000000 --- a/vendor/intervention/image/src/Intervention/Image/Gd/Commands/DestroyCommand.php +++ /dev/null @@ -1,25 +0,0 @@ -getCore()); - - // destroy backups - foreach ($image->getBackups() as $backup) { - imagedestroy($backup); - } - - return true; - } -} diff --git a/vendor/intervention/image/src/Intervention/Image/Gd/Commands/FillCommand.php b/vendor/intervention/image/src/Intervention/Image/Gd/Commands/FillCommand.php deleted file mode 100644 index aaecb7fb..00000000 --- a/vendor/intervention/image/src/Intervention/Image/Gd/Commands/FillCommand.php +++ /dev/null @@ -1,68 +0,0 @@ -argument(0)->value(); - $x = $this->argument(1)->type('digit')->value(); - $y = $this->argument(2)->type('digit')->value(); - - $width = $image->getWidth(); - $height = $image->getHeight(); - $resource = $image->getCore(); - - try { - - // set image tile filling - $source = new Decoder; - $tile = $source->init($filling); - imagesettile($image->getCore(), $tile->getCore()); - $filling = IMG_COLOR_TILED; - - } catch (\Intervention\Image\Exception\NotReadableException $e) { - - // set solid color filling - $color = new Color($filling); - $filling = $color->getInt(); - } - - imagealphablending($resource, true); - - if (is_int($x) && is_int($y)) { - - // resource should be visible through transparency - $base = $image->getDriver()->newImage($width, $height)->getCore(); - imagecopy($base, $resource, 0, 0, 0, 0, $width, $height); - - // floodfill if exact position is defined - imagefill($resource, $x, $y, $filling); - - // copy filled original over base - imagecopy($base, $resource, 0, 0, 0, 0, $width, $height); - - // set base as new resource-core - $image->setCore($base); - imagedestroy($resource); - - } else { - // fill whole image otherwise - imagefilledrectangle($resource, 0, 0, $width - 1, $height - 1, $filling); - } - - isset($tile) ? imagedestroy($tile->getCore()) : null; - - return true; - } -} diff --git a/vendor/intervention/image/src/Intervention/Image/Gd/Commands/FitCommand.php b/vendor/intervention/image/src/Intervention/Image/Gd/Commands/FitCommand.php deleted file mode 100644 index d861ad94..00000000 --- a/vendor/intervention/image/src/Intervention/Image/Gd/Commands/FitCommand.php +++ /dev/null @@ -1,32 +0,0 @@ -argument(0)->type('digit')->required()->value(); - $height = $this->argument(1)->type('digit')->value($width); - $constraints = $this->argument(2)->type('closure')->value(); - $position = $this->argument(3)->type('string')->value('center'); - - // calculate size - $cropped = $image->getSize()->fit(new Size($width, $height), $position); - $resized = clone $cropped; - $resized = $resized->resize($width, $height, $constraints); - - // modify image - $this->modify($image, 0, 0, $cropped->pivot->x, $cropped->pivot->y, $resized->getWidth(), $resized->getHeight(), $cropped->getWidth(), $cropped->getHeight()); - - return true; - } -} diff --git a/vendor/intervention/image/src/Intervention/Image/Gd/Commands/FlipCommand.php b/vendor/intervention/image/src/Intervention/Image/Gd/Commands/FlipCommand.php deleted file mode 100644 index aa8f230e..00000000 --- a/vendor/intervention/image/src/Intervention/Image/Gd/Commands/FlipCommand.php +++ /dev/null @@ -1,37 +0,0 @@ -argument(0)->value('h'); - - $size = $image->getSize(); - $dst = clone $size; - - switch (strtolower($mode)) { - case 2: - case 'v': - case 'vert': - case 'vertical': - $size->pivot->y = $size->height - 1; - $size->height = $size->height * (-1); - break; - - default: - $size->pivot->x = $size->width - 1; - $size->width = $size->width * (-1); - break; - } - - return $this->modify($image, 0, 0, $size->pivot->x, $size->pivot->y, $dst->width, $dst->height, $size->width, $size->height); - } -} diff --git a/vendor/intervention/image/src/Intervention/Image/Gd/Commands/GammaCommand.php b/vendor/intervention/image/src/Intervention/Image/Gd/Commands/GammaCommand.php deleted file mode 100644 index 366f1180..00000000 --- a/vendor/intervention/image/src/Intervention/Image/Gd/Commands/GammaCommand.php +++ /dev/null @@ -1,19 +0,0 @@ -argument(0)->type('numeric')->required()->value(); - - return imagegammacorrect($image->getCore(), 1, $gamma); - } -} diff --git a/vendor/intervention/image/src/Intervention/Image/Gd/Commands/GetSizeCommand.php b/vendor/intervention/image/src/Intervention/Image/Gd/Commands/GetSizeCommand.php deleted file mode 100644 index 89ee2848..00000000 --- a/vendor/intervention/image/src/Intervention/Image/Gd/Commands/GetSizeCommand.php +++ /dev/null @@ -1,24 +0,0 @@ -setOutput(new Size( - imagesx($image->getCore()), - imagesy($image->getCore()) - )); - - return true; - } -} diff --git a/vendor/intervention/image/src/Intervention/Image/Gd/Commands/GreyscaleCommand.php b/vendor/intervention/image/src/Intervention/Image/Gd/Commands/GreyscaleCommand.php deleted file mode 100644 index ded8e0d8..00000000 --- a/vendor/intervention/image/src/Intervention/Image/Gd/Commands/GreyscaleCommand.php +++ /dev/null @@ -1,17 +0,0 @@ -getCore(), IMG_FILTER_GRAYSCALE); - } -} diff --git a/vendor/intervention/image/src/Intervention/Image/Gd/Commands/HeightenCommand.php b/vendor/intervention/image/src/Intervention/Image/Gd/Commands/HeightenCommand.php deleted file mode 100644 index d31e9cde..00000000 --- a/vendor/intervention/image/src/Intervention/Image/Gd/Commands/HeightenCommand.php +++ /dev/null @@ -1,28 +0,0 @@ -argument(0)->type('digit')->required()->value(); - $additionalConstraints = $this->argument(1)->type('closure')->value(); - - $this->arguments[0] = null; - $this->arguments[1] = $height; - $this->arguments[2] = function ($constraint) use ($additionalConstraints) { - $constraint->aspectRatio(); - if(is_callable($additionalConstraints)) - $additionalConstraints($constraint); - }; - - return parent::execute($image); - } -} diff --git a/vendor/intervention/image/src/Intervention/Image/Gd/Commands/InsertCommand.php b/vendor/intervention/image/src/Intervention/Image/Gd/Commands/InsertCommand.php deleted file mode 100644 index eba75f01..00000000 --- a/vendor/intervention/image/src/Intervention/Image/Gd/Commands/InsertCommand.php +++ /dev/null @@ -1,32 +0,0 @@ -argument(0)->required()->value(); - $position = $this->argument(1)->type('string')->value(); - $x = $this->argument(2)->type('digit')->value(0); - $y = $this->argument(3)->type('digit')->value(0); - - // build watermark - $watermark = $image->getDriver()->init($source); - - // define insertion point - $image_size = $image->getSize()->align($position, $x, $y); - $watermark_size = $watermark->getSize()->align($position); - $target = $image_size->relativePosition($watermark_size); - - // insert image at position - imagealphablending($image->getCore(), true); - return imagecopy($image->getCore(), $watermark->getCore(), $target->x, $target->y, 0, 0, $watermark_size->width, $watermark_size->height); - } -} diff --git a/vendor/intervention/image/src/Intervention/Image/Gd/Commands/InterlaceCommand.php b/vendor/intervention/image/src/Intervention/Image/Gd/Commands/InterlaceCommand.php deleted file mode 100644 index e8f4b184..00000000 --- a/vendor/intervention/image/src/Intervention/Image/Gd/Commands/InterlaceCommand.php +++ /dev/null @@ -1,21 +0,0 @@ -argument(0)->type('bool')->value(true); - - imageinterlace($image->getCore(), $mode); - - return true; - } -} diff --git a/vendor/intervention/image/src/Intervention/Image/Gd/Commands/InvertCommand.php b/vendor/intervention/image/src/Intervention/Image/Gd/Commands/InvertCommand.php deleted file mode 100644 index f72e7e30..00000000 --- a/vendor/intervention/image/src/Intervention/Image/Gd/Commands/InvertCommand.php +++ /dev/null @@ -1,17 +0,0 @@ -getCore(), IMG_FILTER_NEGATE); - } -} diff --git a/vendor/intervention/image/src/Intervention/Image/Gd/Commands/LimitColorsCommand.php b/vendor/intervention/image/src/Intervention/Image/Gd/Commands/LimitColorsCommand.php deleted file mode 100644 index 27955e79..00000000 --- a/vendor/intervention/image/src/Intervention/Image/Gd/Commands/LimitColorsCommand.php +++ /dev/null @@ -1,51 +0,0 @@ -argument(0)->value(); - $matte = $this->argument(1)->value(); - - // get current image size - $size = $image->getSize(); - - // create empty canvas - $resource = imagecreatetruecolor($size->width, $size->height); - - // define matte - if (is_null($matte)) { - $matte = imagecolorallocatealpha($resource, 255, 255, 255, 127); - } else { - $matte = $image->getDriver()->parseColor($matte)->getInt(); - } - - // fill with matte and copy original image - imagefill($resource, 0, 0, $matte); - - // set transparency - imagecolortransparent($resource, $matte); - - // copy original image - imagecopy($resource, $image->getCore(), 0, 0, 0, 0, $size->width, $size->height); - - if (is_numeric($count) && $count <= 256) { - // decrease colors - imagetruecolortopalette($resource, true, $count); - } - - // set new resource - $image->setCore($resource); - - return true; - } -} diff --git a/vendor/intervention/image/src/Intervention/Image/Gd/Commands/MaskCommand.php b/vendor/intervention/image/src/Intervention/Image/Gd/Commands/MaskCommand.php deleted file mode 100644 index ef88d4db..00000000 --- a/vendor/intervention/image/src/Intervention/Image/Gd/Commands/MaskCommand.php +++ /dev/null @@ -1,81 +0,0 @@ -argument(0)->value(); - $mask_w_alpha = $this->argument(1)->type('bool')->value(false); - - $image_size = $image->getSize(); - - // create empty canvas - $canvas = $image->getDriver()->newImage($image_size->width, $image_size->height, [0,0,0,0]); - - // build mask image from source - $mask = $image->getDriver()->init($mask_source); - $mask_size = $mask->getSize(); - - // resize mask to size of current image (if necessary) - if ($mask_size != $image_size) { - $mask->resize($image_size->width, $image_size->height); - } - - imagealphablending($canvas->getCore(), false); - - if ( ! $mask_w_alpha) { - // mask from greyscale image - imagefilter($mask->getCore(), IMG_FILTER_GRAYSCALE); - } - - // redraw old image pixel by pixel considering alpha map - for ($x=0; $x < $image_size->width; $x++) { - for ($y=0; $y < $image_size->height; $y++) { - - $color = $image->pickColor($x, $y, 'array'); - $alpha = $mask->pickColor($x, $y, 'array'); - - if ($mask_w_alpha) { - $alpha = $alpha[3]; // use alpha channel as mask - } else { - - if ($alpha[3] == 0) { // transparent as black - $alpha = 0; - } else { - - // $alpha = floatval(round((($alpha[0] + $alpha[1] + $alpha[3]) / 3) / 255, 2)); - - // image is greyscale, so channel doesn't matter (use red channel) - $alpha = floatval(round($alpha[0] / 255, 2)); - } - - } - - // preserve alpha of original image... - if ($color[3] < $alpha) { - $alpha = $color[3]; - } - - // replace alpha value - $color[3] = $alpha; - - // redraw pixel - $canvas->pixel($color, $x, $y); - } - } - - - // replace current image with masked instance - $image->setCore($canvas->getCore()); - - return true; - } -} diff --git a/vendor/intervention/image/src/Intervention/Image/Gd/Commands/OpacityCommand.php b/vendor/intervention/image/src/Intervention/Image/Gd/Commands/OpacityCommand.php deleted file mode 100644 index 081e68a4..00000000 --- a/vendor/intervention/image/src/Intervention/Image/Gd/Commands/OpacityCommand.php +++ /dev/null @@ -1,29 +0,0 @@ -argument(0)->between(0, 100)->required()->value(); - - // get size of image - $size = $image->getSize(); - - // build temp alpha mask - $mask_color = sprintf('rgba(0, 0, 0, %.1F)', $transparency / 100); - $mask = $image->getDriver()->newImage($size->width, $size->height, $mask_color); - - // mask image - $image->mask($mask->getCore(), true); - - return true; - } -} diff --git a/vendor/intervention/image/src/Intervention/Image/Gd/Commands/PickColorCommand.php b/vendor/intervention/image/src/Intervention/Image/Gd/Commands/PickColorCommand.php deleted file mode 100644 index 9fb4bb42..00000000 --- a/vendor/intervention/image/src/Intervention/Image/Gd/Commands/PickColorCommand.php +++ /dev/null @@ -1,36 +0,0 @@ -argument(0)->type('digit')->required()->value(); - $y = $this->argument(1)->type('digit')->required()->value(); - $format = $this->argument(2)->type('string')->value('array'); - - // pick color - $color = imagecolorat($image->getCore(), $x, $y); - - if ( ! imageistruecolor($image->getCore())) { - $color = imagecolorsforindex($image->getCore(), $color); - $color['alpha'] = round(1 - $color['alpha'] / 127, 2); - } - - $color = new Color($color); - - // format to output - $this->setOutput($color->format($format)); - - return true; - } -} diff --git a/vendor/intervention/image/src/Intervention/Image/Gd/Commands/PixelCommand.php b/vendor/intervention/image/src/Intervention/Image/Gd/Commands/PixelCommand.php deleted file mode 100644 index 67f3e3b9..00000000 --- a/vendor/intervention/image/src/Intervention/Image/Gd/Commands/PixelCommand.php +++ /dev/null @@ -1,24 +0,0 @@ -argument(0)->required()->value(); - $color = new Color($color); - $x = $this->argument(1)->type('digit')->required()->value(); - $y = $this->argument(2)->type('digit')->required()->value(); - - return imagesetpixel($image->getCore(), $x, $y, $color->getInt()); - } -} diff --git a/vendor/intervention/image/src/Intervention/Image/Gd/Commands/PixelateCommand.php b/vendor/intervention/image/src/Intervention/Image/Gd/Commands/PixelateCommand.php deleted file mode 100644 index 2e2093d7..00000000 --- a/vendor/intervention/image/src/Intervention/Image/Gd/Commands/PixelateCommand.php +++ /dev/null @@ -1,19 +0,0 @@ -argument(0)->type('digit')->value(10); - - return imagefilter($image->getCore(), IMG_FILTER_PIXELATE, $size, true); - } -} diff --git a/vendor/intervention/image/src/Intervention/Image/Gd/Commands/ResetCommand.php b/vendor/intervention/image/src/Intervention/Image/Gd/Commands/ResetCommand.php deleted file mode 100644 index c8d2e4a1..00000000 --- a/vendor/intervention/image/src/Intervention/Image/Gd/Commands/ResetCommand.php +++ /dev/null @@ -1,35 +0,0 @@ -argument(0)->value(); - - if (is_resource($backup = $image->getBackup($backupName))) { - - // destroy current resource - imagedestroy($image->getCore()); - - // clone backup - $backup = $image->getDriver()->cloneCore($backup); - - // reset to new resource - $image->setCore($backup); - - return true; - } - - throw new \Intervention\Image\Exception\RuntimeException( - "Backup not available. Call backup() before reset()." - ); - } -} diff --git a/vendor/intervention/image/src/Intervention/Image/Gd/Commands/ResizeCanvasCommand.php b/vendor/intervention/image/src/Intervention/Image/Gd/Commands/ResizeCanvasCommand.php deleted file mode 100644 index 70739fff..00000000 --- a/vendor/intervention/image/src/Intervention/Image/Gd/Commands/ResizeCanvasCommand.php +++ /dev/null @@ -1,81 +0,0 @@ -argument(0)->type('digit')->required()->value(); - $height = $this->argument(1)->type('digit')->required()->value(); - $anchor = $this->argument(2)->value('center'); - $relative = $this->argument(3)->type('boolean')->value(false); - $bgcolor = $this->argument(4)->value(); - - $original_width = $image->getWidth(); - $original_height = $image->getHeight(); - - // check of only width or height is set - $width = is_null($width) ? $original_width : intval($width); - $height = is_null($height) ? $original_height : intval($height); - - // check on relative width/height - if ($relative) { - $width = $original_width + $width; - $height = $original_height + $height; - } - - // check for negative width/height - $width = ($width <= 0) ? $width + $original_width : $width; - $height = ($height <= 0) ? $height + $original_height : $height; - - // create new canvas - $canvas = $image->getDriver()->newImage($width, $height, $bgcolor); - - // set copy position - $canvas_size = $canvas->getSize()->align($anchor); - $image_size = $image->getSize()->align($anchor); - $canvas_pos = $image_size->relativePosition($canvas_size); - $image_pos = $canvas_size->relativePosition($image_size); - - if ($width <= $original_width) { - $dst_x = 0; - $src_x = $canvas_pos->x; - $src_w = $canvas_size->width; - } else { - $dst_x = $image_pos->x; - $src_x = 0; - $src_w = $original_width; - } - - if ($height <= $original_height) { - $dst_y = 0; - $src_y = $canvas_pos->y; - $src_h = $canvas_size->height; - } else { - $dst_y = $image_pos->y; - $src_y = 0; - $src_h = $original_height; - } - - // make image area transparent to keep transparency - // even if background-color is set - $transparent = imagecolorallocatealpha($canvas->getCore(), 255, 255, 255, 127); - imagealphablending($canvas->getCore(), false); // do not blend / just overwrite - imagefilledrectangle($canvas->getCore(), $dst_x, $dst_y, $dst_x + $src_w - 1, $dst_y + $src_h - 1, $transparent); - - // copy image into new canvas - imagecopy($canvas->getCore(), $image->getCore(), $dst_x, $dst_y, $src_x, $src_y, $src_w, $src_h); - - // set new core to canvas - $image->setCore($canvas->getCore()); - - return true; - } -} diff --git a/vendor/intervention/image/src/Intervention/Image/Gd/Commands/ResizeCommand.php b/vendor/intervention/image/src/Intervention/Image/Gd/Commands/ResizeCommand.php deleted file mode 100644 index b76df3a9..00000000 --- a/vendor/intervention/image/src/Intervention/Image/Gd/Commands/ResizeCommand.php +++ /dev/null @@ -1,82 +0,0 @@ -argument(0)->value(); - $height = $this->argument(1)->value(); - $constraints = $this->argument(2)->type('closure')->value(); - - // resize box - $resized = $image->getSize()->resize($width, $height, $constraints); - - // modify image - $this->modify($image, 0, 0, 0, 0, $resized->getWidth(), $resized->getHeight(), $image->getWidth(), $image->getHeight()); - - return true; - } - - /** - * Wrapper function for 'imagecopyresampled' - * - * @param Image $image - * @param int $dst_x - * @param int $dst_y - * @param int $src_x - * @param int $src_y - * @param int $dst_w - * @param int $dst_h - * @param int $src_w - * @param int $src_h - * @return boolean - */ - protected function modify($image, $dst_x, $dst_y, $src_x, $src_y, $dst_w, $dst_h, $src_w, $src_h) - { - // create new image - $modified = imagecreatetruecolor($dst_w, $dst_h); - - // get current image - $resource = $image->getCore(); - - // preserve transparency - $transIndex = imagecolortransparent($resource); - - if ($transIndex != -1) { - $rgba = imagecolorsforindex($modified, $transIndex); - $transColor = imagecolorallocatealpha($modified, $rgba['red'], $rgba['green'], $rgba['blue'], 127); - imagefill($modified, 0, 0, $transColor); - imagecolortransparent($modified, $transColor); - } else { - imagealphablending($modified, false); - imagesavealpha($modified, true); - } - - // copy content from resource - $result = imagecopyresampled( - $modified, - $resource, - $dst_x, - $dst_y, - $src_x, - $src_y, - $dst_w, - $dst_h, - $src_w, - $src_h - ); - - // set new content as recource - $image->setCore($modified); - - return $result; - } -} diff --git a/vendor/intervention/image/src/Intervention/Image/Gd/Commands/RotateCommand.php b/vendor/intervention/image/src/Intervention/Image/Gd/Commands/RotateCommand.php deleted file mode 100644 index 698f514a..00000000 --- a/vendor/intervention/image/src/Intervention/Image/Gd/Commands/RotateCommand.php +++ /dev/null @@ -1,29 +0,0 @@ -argument(0)->type('numeric')->required()->value(); - $color = $this->argument(1)->value(); - $color = new Color($color); - - // restrict rotations beyond 360 degrees, since the end result is the same - $angle %= 360; - - // rotate image - $image->setCore(imagerotate($image->getCore(), $angle, $color->getInt())); - - return true; - } -} diff --git a/vendor/intervention/image/src/Intervention/Image/Gd/Commands/SharpenCommand.php b/vendor/intervention/image/src/Intervention/Image/Gd/Commands/SharpenCommand.php deleted file mode 100644 index 4c0cc50f..00000000 --- a/vendor/intervention/image/src/Intervention/Image/Gd/Commands/SharpenCommand.php +++ /dev/null @@ -1,32 +0,0 @@ -argument(0)->between(0, 100)->value(10); - - // build matrix - $min = $amount >= 10 ? $amount * -0.01 : 0; - $max = $amount * -0.025; - $abs = ((4 * $min + 4 * $max) * -1) + 1; - $div = 1; - - $matrix = [ - [$min, $max, $min], - [$max, $abs, $max], - [$min, $max, $min] - ]; - - // apply the matrix - return imageconvolution($image->getCore(), $matrix, $div, 0); - } -} diff --git a/vendor/intervention/image/src/Intervention/Image/Gd/Commands/TrimCommand.php b/vendor/intervention/image/src/Intervention/Image/Gd/Commands/TrimCommand.php deleted file mode 100644 index 2e369752..00000000 --- a/vendor/intervention/image/src/Intervention/Image/Gd/Commands/TrimCommand.php +++ /dev/null @@ -1,176 +0,0 @@ -argument(0)->type('string')->value(); - $away = $this->argument(1)->value(); - $tolerance = $this->argument(2)->type('numeric')->value(0); - $feather = $this->argument(3)->type('numeric')->value(0); - - $width = $image->getWidth(); - $height = $image->getHeight(); - - // default values - $checkTransparency = false; - - // define borders to trim away - if (is_null($away)) { - $away = ['top', 'right', 'bottom', 'left']; - } elseif (is_string($away)) { - $away = [$away]; - } - - // lower border names - foreach ($away as $key => $value) { - $away[$key] = strtolower($value); - } - - // define base color position - switch (strtolower($base)) { - case 'transparent': - case 'trans': - $checkTransparency = true; - $base_x = 0; - $base_y = 0; - break; - - case 'bottom-right': - case 'right-bottom': - $base_x = $width - 1; - $base_y = $height - 1; - break; - - default: - case 'top-left': - case 'left-top': - $base_x = 0; - $base_y = 0; - break; - } - - // pick base color - if ($checkTransparency) { - $color = new Color; // color will only be used to compare alpha channel - } else { - $color = $image->pickColor($base_x, $base_y, 'object'); - } - - $top_x = 0; - $top_y = 0; - $bottom_x = $width; - $bottom_y = $height; - - // search upper part of image for colors to trim away - if (in_array('top', $away)) { - - for ($y=0; $y < ceil($height/2); $y++) { - for ($x=0; $x < $width; $x++) { - - $checkColor = $image->pickColor($x, $y, 'object'); - - if ($checkTransparency) { - $checkColor->r = $color->r; - $checkColor->g = $color->g; - $checkColor->b = $color->b; - } - - if ($color->differs($checkColor, $tolerance)) { - $top_y = max(0, $y - $feather); - break 2; - } - - } - } - - } - - // search left part of image for colors to trim away - if (in_array('left', $away)) { - - for ($x=0; $x < ceil($width/2); $x++) { - for ($y=$top_y; $y < $height; $y++) { - - $checkColor = $image->pickColor($x, $y, 'object'); - - if ($checkTransparency) { - $checkColor->r = $color->r; - $checkColor->g = $color->g; - $checkColor->b = $color->b; - } - - if ($color->differs($checkColor, $tolerance)) { - $top_x = max(0, $x - $feather); - break 2; - } - - } - } - - } - - // search lower part of image for colors to trim away - if (in_array('bottom', $away)) { - - for ($y=($height-1); $y >= floor($height/2)-1; $y--) { - for ($x=$top_x; $x < $width; $x++) { - - $checkColor = $image->pickColor($x, $y, 'object'); - - if ($checkTransparency) { - $checkColor->r = $color->r; - $checkColor->g = $color->g; - $checkColor->b = $color->b; - } - - if ($color->differs($checkColor, $tolerance)) { - $bottom_y = min($height, $y+1 + $feather); - break 2; - } - - } - } - - } - - // search right part of image for colors to trim away - if (in_array('right', $away)) { - - for ($x=($width-1); $x >= floor($width/2)-1; $x--) { - for ($y=$top_y; $y < $bottom_y; $y++) { - - $checkColor = $image->pickColor($x, $y, 'object'); - - if ($checkTransparency) { - $checkColor->r = $color->r; - $checkColor->g = $color->g; - $checkColor->b = $color->b; - } - - if ($color->differs($checkColor, $tolerance)) { - $bottom_x = min($width, $x+1 + $feather); - break 2; - } - - } - } - - } - - - // trim parts of image - return $this->modify($image, 0, 0, $top_x, $top_y, ($bottom_x-$top_x), ($bottom_y-$top_y), ($bottom_x-$top_x), ($bottom_y-$top_y)); - - } -} diff --git a/vendor/intervention/image/src/Intervention/Image/Gd/Commands/WidenCommand.php b/vendor/intervention/image/src/Intervention/Image/Gd/Commands/WidenCommand.php deleted file mode 100644 index 43000d5d..00000000 --- a/vendor/intervention/image/src/Intervention/Image/Gd/Commands/WidenCommand.php +++ /dev/null @@ -1,28 +0,0 @@ -argument(0)->type('digit')->required()->value(); - $additionalConstraints = $this->argument(1)->type('closure')->value(); - - $this->arguments[0] = $width; - $this->arguments[1] = null; - $this->arguments[2] = function ($constraint) use ($additionalConstraints) { - $constraint->aspectRatio(); - if(is_callable($additionalConstraints)) - $additionalConstraints($constraint); - }; - - return parent::execute($image); - } -} diff --git a/vendor/intervention/image/src/Intervention/Image/Gd/Decoder.php b/vendor/intervention/image/src/Intervention/Image/Gd/Decoder.php deleted file mode 100644 index 4fe821e5..00000000 --- a/vendor/intervention/image/src/Intervention/Image/Gd/Decoder.php +++ /dev/null @@ -1,153 +0,0 @@ -gdResourceToTruecolor($core); - - // build image - $image = $this->initFromGdResource($core); - $image->mime = $mime; - $image->setFileInfoFromPath($path); - - return $image; - } - - /** - * Initiates new image from GD resource - * - * @param Resource $resource - * @return \Intervention\Image\Image - */ - public function initFromGdResource($resource) - { - return new Image(new Driver, $resource); - } - - /** - * Initiates new image from Imagick object - * - * @param Imagick $object - * @return \Intervention\Image\Image - */ - public function initFromImagick(\Imagick $object) - { - throw new \Intervention\Image\Exception\NotSupportedException( - "Gd driver is unable to init from Imagick object." - ); - } - - /** - * Initiates new image from binary data - * - * @param string $data - * @return \Intervention\Image\Image - */ - public function initFromBinary($binary) - { - $resource = @imagecreatefromstring($binary); - - if ($resource === false) { - throw new \Intervention\Image\Exception\NotReadableException( - "Unable to init from given binary data." - ); - } - - $image = $this->initFromGdResource($resource); - $image->mime = finfo_buffer(finfo_open(FILEINFO_MIME_TYPE), $binary); - - return $image; - } - - /** - * Transform GD resource into Truecolor version - * - * @param resource $resource - * @return bool - */ - public function gdResourceToTruecolor(&$resource) - { - $width = imagesx($resource); - $height = imagesy($resource); - - // new canvas - $canvas = imagecreatetruecolor($width, $height); - - // fill with transparent color - imagealphablending($canvas, false); - $transparent = imagecolorallocatealpha($canvas, 255, 255, 255, 127); - imagefilledrectangle($canvas, 0, 0, $width, $height, $transparent); - imagecolortransparent($canvas, $transparent); - imagealphablending($canvas, true); - - // copy original - imagecopy($canvas, $resource, 0, 0, 0, 0, $width, $height); - imagedestroy($resource); - - $resource = $canvas; - - return true; - } -} diff --git a/vendor/intervention/image/src/Intervention/Image/Gd/Driver.php b/vendor/intervention/image/src/Intervention/Image/Gd/Driver.php deleted file mode 100644 index b5a2d72e..00000000 --- a/vendor/intervention/image/src/Intervention/Image/Gd/Driver.php +++ /dev/null @@ -1,86 +0,0 @@ -coreAvailable()) { - throw new \Intervention\Image\Exception\NotSupportedException( - "GD Library extension not available with this PHP installation." - ); - } - - $this->decoder = $decoder ? $decoder : new Decoder; - $this->encoder = $encoder ? $encoder : new Encoder; - } - - /** - * Creates new image instance - * - * @param int $width - * @param int $height - * @param mixed $background - * @return \Intervention\Image\Image - */ - public function newImage($width, $height, $background = null) - { - // create empty resource - $core = imagecreatetruecolor($width, $height); - $image = new \Intervention\Image\Image(new static, $core); - - // set background color - $background = new Color($background); - imagefill($image->getCore(), 0, 0, $background->getInt()); - - return $image; - } - - /** - * Reads given string into color object - * - * @param string $value - * @return AbstractColor - */ - public function parseColor($value) - { - return new Color($value); - } - - /** - * Checks if core module installation is available - * - * @return boolean - */ - protected function coreAvailable() - { - return (extension_loaded('gd') && function_exists('gd_info')); - } - - /** - * Returns clone of given core - * - * @return mixed - */ - public function cloneCore($core) - { - $width = imagesx($core); - $height = imagesy($core); - $clone = imagecreatetruecolor($width, $height); - imagealphablending($clone, false); - imagesavealpha($clone, true); - $transparency = imagecolorallocatealpha($clone, 0, 0, 0, 127); - imagefill($clone, 0, 0, $transparency); - - imagecopy($clone, $core, 0, 0, 0, 0, $width, $height); - - return $clone; - } -} diff --git a/vendor/intervention/image/src/Intervention/Image/Gd/Encoder.php b/vendor/intervention/image/src/Intervention/Image/Gd/Encoder.php deleted file mode 100644 index a3fd2f12..00000000 --- a/vendor/intervention/image/src/Intervention/Image/Gd/Encoder.php +++ /dev/null @@ -1,122 +0,0 @@ -image->getCore(), null, $this->quality); - $this->image->mime = image_type_to_mime_type(IMAGETYPE_JPEG); - $buffer = ob_get_contents(); - ob_end_clean(); - - return $buffer; - } - - /** - * Processes and returns encoded image as PNG string - * - * @return string - */ - protected function processPng() - { - ob_start(); - $resource = $this->image->getCore(); - imagealphablending($resource, false); - imagesavealpha($resource, true); - imagepng($resource, null, -1); - $this->image->mime = image_type_to_mime_type(IMAGETYPE_PNG); - $buffer = ob_get_contents(); - ob_end_clean(); - - return $buffer; - } - - /** - * Processes and returns encoded image as GIF string - * - * @return string - */ - protected function processGif() - { - ob_start(); - imagegif($this->image->getCore()); - $this->image->mime = image_type_to_mime_type(IMAGETYPE_GIF); - $buffer = ob_get_contents(); - ob_end_clean(); - - return $buffer; - } - - protected function processWebp() - { - if ( ! function_exists('imagewebp')) { - throw new \Intervention\Image\Exception\NotSupportedException( - "Webp format is not supported by PHP installation." - ); - } - - ob_start(); - imagewebp($this->image->getCore(), null, $this->quality); - $this->image->mime = defined('IMAGETYPE_WEBP') ? image_type_to_mime_type(IMAGETYPE_WEBP) : 'image/webp'; - $buffer = ob_get_contents(); - ob_end_clean(); - - return $buffer; - } - - /** - * Processes and returns encoded image as TIFF string - * - * @return string - */ - protected function processTiff() - { - throw new \Intervention\Image\Exception\NotSupportedException( - "TIFF format is not supported by Gd Driver." - ); - } - - /** - * Processes and returns encoded image as BMP string - * - * @return string - */ - protected function processBmp() - { - throw new \Intervention\Image\Exception\NotSupportedException( - "BMP format is not supported by Gd Driver." - ); - } - - /** - * Processes and returns encoded image as ICO string - * - * @return string - */ - protected function processIco() - { - throw new \Intervention\Image\Exception\NotSupportedException( - "ICO format is not supported by Gd Driver." - ); - } - - /** - * Processes and returns encoded image as PSD string - * - * @return string - */ - protected function processPsd() - { - throw new \Intervention\Image\Exception\NotSupportedException( - "PSD format is not supported by Gd Driver." - ); - } -} diff --git a/vendor/intervention/image/src/Intervention/Image/Gd/Font.php b/vendor/intervention/image/src/Intervention/Image/Gd/Font.php deleted file mode 100644 index 828c7af7..00000000 --- a/vendor/intervention/image/src/Intervention/Image/Gd/Font.php +++ /dev/null @@ -1,255 +0,0 @@ -size * 0.75)); - } - - /** - * Filter function to access internal integer font values - * - * @return int - */ - private function getInternalFont() - { - $internalfont = is_null($this->file) ? 1 : $this->file; - $internalfont = is_numeric($internalfont) ? $internalfont : false; - - if ( ! in_array($internalfont, [1, 2, 3, 4, 5])) { - throw new \Intervention\Image\Exception\NotSupportedException( - sprintf('Internal GD font (%s) not available. Use only 1-5.', $internalfont) - ); - } - - return intval($internalfont); - } - - /** - * Get width of an internal font character - * - * @return int - */ - private function getInternalFontWidth() - { - return $this->getInternalFont() + 4; - } - - /** - * Get height of an internal font character - * - * @return int - */ - private function getInternalFontHeight() - { - switch ($this->getInternalFont()) { - case 1: - return 8; - - case 2: - return 14; - - case 3: - return 14; - - case 4: - return 16; - - case 5: - return 16; - } - } - - /** - * Calculates bounding box of current font setting - * - * @return Array - */ - public function getBoxSize() - { - $box = []; - - if ($this->hasApplicableFontFile()) { - - // get bounding box with angle 0 - $box = imagettfbbox($this->getPointSize(), 0, $this->file, $this->text); - - // rotate points manually - if ($this->angle != 0) { - - $angle = pi() * 2 - $this->angle * pi() * 2 / 360; - - for ($i=0; $i<4; $i++) { - $x = $box[$i * 2]; - $y = $box[$i * 2 + 1]; - $box[$i * 2] = cos($angle) * $x - sin($angle) * $y; - $box[$i * 2 + 1] = sin($angle) * $x + cos($angle) * $y; - } - } - - $box['width'] = intval(abs($box[4] - $box[0])); - $box['height'] = intval(abs($box[5] - $box[1])); - - } else { - - // get current internal font size - $width = $this->getInternalFontWidth(); - $height = $this->getInternalFontHeight(); - - if (strlen($this->text) == 0) { - // no text -> no boxsize - $box['width'] = 0; - $box['height'] = 0; - } else { - // calculate boxsize - $box['width'] = strlen($this->text) * $width; - $box['height'] = $height; - } - } - - return $box; - } - - /** - * Draws font to given image at given position - * - * @param Image $image - * @param int $posx - * @param int $posy - * @return void - */ - public function applyToImage(Image $image, $posx = 0, $posy = 0) - { - // parse text color - $color = new Color($this->color); - - if ($this->hasApplicableFontFile()) { - - if ($this->angle != 0 || is_string($this->align) || is_string($this->valign)) { - - $box = $this->getBoxSize(); - - $align = is_null($this->align) ? 'left' : strtolower($this->align); - $valign = is_null($this->valign) ? 'bottom' : strtolower($this->valign); - - // correction on position depending on v/h alignment - switch ($align.'-'.$valign) { - - case 'center-top': - $posx = $posx - round(($box[6]+$box[4])/2); - $posy = $posy - round(($box[7]+$box[5])/2); - break; - - case 'right-top': - $posx = $posx - $box[4]; - $posy = $posy - $box[5]; - break; - - case 'left-top': - $posx = $posx - $box[6]; - $posy = $posy - $box[7]; - break; - - case 'center-center': - case 'center-middle': - $posx = $posx - round(($box[0]+$box[4])/2); - $posy = $posy - round(($box[1]+$box[5])/2); - break; - - case 'right-center': - case 'right-middle': - $posx = $posx - round(($box[2]+$box[4])/2); - $posy = $posy - round(($box[3]+$box[5])/2); - break; - - case 'left-center': - case 'left-middle': - $posx = $posx - round(($box[0]+$box[6])/2); - $posy = $posy - round(($box[1]+$box[7])/2); - break; - - case 'center-bottom': - $posx = $posx - round(($box[0]+$box[2])/2); - $posy = $posy - round(($box[1]+$box[3])/2); - break; - - case 'right-bottom': - $posx = $posx - $box[2]; - $posy = $posy - $box[3]; - break; - - case 'left-bottom': - $posx = $posx - $box[0]; - $posy = $posy - $box[1]; - break; - } - } - - // enable alphablending for imagettftext - imagealphablending($image->getCore(), true); - - // draw ttf text - imagettftext($image->getCore(), $this->getPointSize(), $this->angle, $posx, $posy, $color->getInt(), $this->file, $this->text); - - } else { - - // get box size - $box = $this->getBoxSize(); - $width = $box['width']; - $height = $box['height']; - - // internal font specific position corrections - if ($this->getInternalFont() == 1) { - $top_correction = 1; - $bottom_correction = 2; - } elseif ($this->getInternalFont() == 3) { - $top_correction = 2; - $bottom_correction = 4; - } else { - $top_correction = 3; - $bottom_correction = 4; - } - - // x-position corrections for horizontal alignment - switch (strtolower($this->align)) { - case 'center': - $posx = ceil($posx - ($width / 2)); - break; - - case 'right': - $posx = ceil($posx - $width) + 1; - break; - } - - // y-position corrections for vertical alignment - switch (strtolower($this->valign)) { - case 'center': - case 'middle': - $posy = ceil($posy - ($height / 2)); - break; - - case 'top': - $posy = ceil($posy - $top_correction); - break; - - default: - case 'bottom': - $posy = round($posy - $height + $bottom_correction); - break; - } - - // draw text - imagestring($image->getCore(), $this->getInternalFont(), $posx, $posy, $this->text, $color->getInt()); - } - } -} diff --git a/vendor/intervention/image/src/Intervention/Image/Gd/Shapes/CircleShape.php b/vendor/intervention/image/src/Intervention/Image/Gd/Shapes/CircleShape.php deleted file mode 100644 index c3c42144..00000000 --- a/vendor/intervention/image/src/Intervention/Image/Gd/Shapes/CircleShape.php +++ /dev/null @@ -1,40 +0,0 @@ -width = is_numeric($diameter) ? intval($diameter) : $this->diameter; - $this->height = is_numeric($diameter) ? intval($diameter) : $this->diameter; - $this->diameter = is_numeric($diameter) ? intval($diameter) : $this->diameter; - } - - /** - * Draw current circle on given image - * - * @param Image $image - * @param int $x - * @param int $y - * @return boolean - */ - public function applyToImage(Image $image, $x = 0, $y = 0) - { - return parent::applyToImage($image, $x, $y); - } -} diff --git a/vendor/intervention/image/src/Intervention/Image/Gd/Shapes/EllipseShape.php b/vendor/intervention/image/src/Intervention/Image/Gd/Shapes/EllipseShape.php deleted file mode 100644 index c2e81c04..00000000 --- a/vendor/intervention/image/src/Intervention/Image/Gd/Shapes/EllipseShape.php +++ /dev/null @@ -1,64 +0,0 @@ -width = is_numeric($width) ? intval($width) : $this->width; - $this->height = is_numeric($height) ? intval($height) : $this->height; - } - - /** - * Draw ellipse instance on given image - * - * @param Image $image - * @param int $x - * @param int $y - * @return boolean - */ - public function applyToImage(Image $image, $x = 0, $y = 0) - { - // parse background color - $background = new Color($this->background); - - if ($this->hasBorder()) { - // slightly smaller ellipse to keep 1px bordered edges clean - imagefilledellipse($image->getCore(), $x, $y, $this->width-1, $this->height-1, $background->getInt()); - - $border_color = new Color($this->border_color); - imagesetthickness($image->getCore(), $this->border_width); - - // gd's imageellipse doesn't respect imagesetthickness so i use imagearc with 359.9 degrees here - imagearc($image->getCore(), $x, $y, $this->width, $this->height, 0, 359.99, $border_color->getInt()); - } else { - imagefilledellipse($image->getCore(), $x, $y, $this->width, $this->height, $background->getInt()); - } - - return true; - } -} diff --git a/vendor/intervention/image/src/Intervention/Image/Gd/Shapes/LineShape.php b/vendor/intervention/image/src/Intervention/Image/Gd/Shapes/LineShape.php deleted file mode 100644 index c1eedd68..00000000 --- a/vendor/intervention/image/src/Intervention/Image/Gd/Shapes/LineShape.php +++ /dev/null @@ -1,89 +0,0 @@ -x = is_numeric($x) ? intval($x) : $this->x; - $this->y = is_numeric($y) ? intval($y) : $this->y; - } - - /** - * Set current line color - * - * @param string $color - * @return void - */ - public function color($color) - { - $this->color = $color; - } - - /** - * Set current line width in pixels - * - * @param int $width - * @return void - */ - public function width($width) - { - throw new \Intervention\Image\Exception\NotSupportedException( - "Line width is not supported by GD driver." - ); - } - - /** - * Draw current instance of line to given endpoint on given image - * - * @param Image $image - * @param int $x - * @param int $y - * @return boolean - */ - public function applyToImage(Image $image, $x = 0, $y = 0) - { - $color = new Color($this->color); - imageline($image->getCore(), $x, $y, $this->x, $this->y, $color->getInt()); - - return true; - } -} diff --git a/vendor/intervention/image/src/Intervention/Image/Gd/Shapes/PolygonShape.php b/vendor/intervention/image/src/Intervention/Image/Gd/Shapes/PolygonShape.php deleted file mode 100644 index b11c6a11..00000000 --- a/vendor/intervention/image/src/Intervention/Image/Gd/Shapes/PolygonShape.php +++ /dev/null @@ -1,48 +0,0 @@ -points = $points; - } - - /** - * Draw polygon on given image - * - * @param Image $image - * @param int $x - * @param int $y - * @return boolean - */ - public function applyToImage(Image $image, $x = 0, $y = 0) - { - $background = new Color($this->background); - imagefilledpolygon($image->getCore(), $this->points, intval(count($this->points) / 2), $background->getInt()); - - if ($this->hasBorder()) { - $border_color = new Color($this->border_color); - imagesetthickness($image->getCore(), $this->border_width); - imagepolygon($image->getCore(), $this->points, intval(count($this->points) / 2), $border_color->getInt()); - } - - return true; - } -} diff --git a/vendor/intervention/image/src/Intervention/Image/Gd/Shapes/RectangleShape.php b/vendor/intervention/image/src/Intervention/Image/Gd/Shapes/RectangleShape.php deleted file mode 100644 index 72449496..00000000 --- a/vendor/intervention/image/src/Intervention/Image/Gd/Shapes/RectangleShape.php +++ /dev/null @@ -1,75 +0,0 @@ -x1 = is_numeric($x1) ? intval($x1) : $this->x1; - $this->y1 = is_numeric($y1) ? intval($y1) : $this->y1; - $this->x2 = is_numeric($x2) ? intval($x2) : $this->x2; - $this->y2 = is_numeric($y2) ? intval($y2) : $this->y2; - } - - /** - * Draw rectangle to given image at certain position - * - * @param Image $image - * @param int $x - * @param int $y - * @return boolean - */ - public function applyToImage(Image $image, $x = 0, $y = 0) - { - $background = new Color($this->background); - imagefilledrectangle($image->getCore(), $this->x1, $this->y1, $this->x2, $this->y2, $background->getInt()); - - if ($this->hasBorder()) { - $border_color = new Color($this->border_color); - imagesetthickness($image->getCore(), $this->border_width); - imagerectangle($image->getCore(), $this->x1, $this->y1, $this->x2, $this->y2, $border_color->getInt()); - } - - return true; - } -} diff --git a/vendor/intervention/image/src/Intervention/Image/Image.php b/vendor/intervention/image/src/Intervention/Image/Image.php deleted file mode 100644 index 6c8dbf07..00000000 --- a/vendor/intervention/image/src/Intervention/Image/Image.php +++ /dev/null @@ -1,363 +0,0 @@ -driver = $driver; - $this->core = $core; - } - - /** - * Magic method to catch all image calls - * usually any AbstractCommand - * - * @param string $name - * @param Array $arguments - * @return mixed - */ - public function __call($name, $arguments) - { - $command = $this->driver->executeCommand($this, $name, $arguments); - return $command->hasOutput() ? $command->getOutput() : $this; - } - - /** - * Starts encoding of current image - * - * @param string $format - * @param int $quality - * @return \Intervention\Image\Image - */ - public function encode($format = null, $quality = 90) - { - return $this->driver->encode($this, $format, $quality); - } - - /** - * Saves encoded image in filesystem - * - * @param string $path - * @param int $quality - * @return \Intervention\Image\Image - */ - public function save($path = null, $quality = null) - { - $path = is_null($path) ? $this->basePath() : $path; - - if (is_null($path)) { - throw new Exception\NotWritableException( - "Can't write to undefined path." - ); - } - - $data = $this->encode(pathinfo($path, PATHINFO_EXTENSION), $quality); - $saved = @file_put_contents($path, $data); - - if ($saved === false) { - throw new Exception\NotWritableException( - "Can't write image data to path ({$path})" - ); - } - - // set new file info - $this->setFileInfoFromPath($path); - - return $this; - } - - /** - * Runs a given filter on current image - * - * @param FiltersFilterInterface $filter - * @return \Intervention\Image\Image - */ - public function filter(Filters\FilterInterface $filter) - { - return $filter->applyFilter($this); - } - - /** - * Returns current image driver - * - * @return \Intervention\Image\AbstractDriver - */ - public function getDriver() - { - return $this->driver; - } - - /** - * Sets current image driver - * @param AbstractDriver $driver - */ - public function setDriver(AbstractDriver $driver) - { - $this->driver = $driver; - - return $this; - } - - /** - * Returns current image resource/obj - * - * @return mixed - */ - public function getCore() - { - return $this->core; - } - - /** - * Sets current image resource - * - * @param mixed $core - */ - public function setCore($core) - { - $this->core = $core; - - return $this; - } - - /** - * Returns current image backup - * - * @param string $name - * @return mixed - */ - public function getBackup($name = null) - { - $name = is_null($name) ? 'default' : $name; - - if ( ! $this->backupExists($name)) { - throw new \Intervention\Image\Exception\RuntimeException( - "Backup with name ({$name}) not available. Call backup() before reset()." - ); - } - - return $this->backups[$name]; - } - - /** - * Returns all backups attached to image - * - * @return array - */ - public function getBackups() - { - return $this->backups; - } - - /** - * Sets current image backup - * - * @param mixed $resource - * @param string $name - * @return self - */ - public function setBackup($resource, $name = null) - { - $name = is_null($name) ? 'default' : $name; - - $this->backups[$name] = $resource; - - return $this; - } - - /** - * Checks if named backup exists - * - * @param string $name - * @return bool - */ - private function backupExists($name) - { - return array_key_exists($name, $this->backups); - } - - /** - * Checks if current image is already encoded - * - * @return boolean - */ - public function isEncoded() - { - return ! empty($this->encoded); - } - - /** - * Returns encoded image data of current image - * - * @return string - */ - public function getEncoded() - { - return $this->encoded; - } - - /** - * Sets encoded image buffer - * - * @param string $value - */ - public function setEncoded($value) - { - $this->encoded = $value; - - return $this; - } - - /** - * Calculates current image width - * - * @return int - */ - public function getWidth() - { - return $this->getSize()->width; - } - - /** - * Alias of getWidth() - * - * @return int - */ - public function width() - { - return $this->getWidth(); - } - - /** - * Calculates current image height - * - * @return int - */ - public function getHeight() - { - return $this->getSize()->height; - } - - /** - * Alias of getHeight - * - * @return int - */ - public function height() - { - return $this->getHeight(); - } - - /** - * Reads mime type - * - * @return string - */ - public function mime() - { - return $this->mime; - } - - /** - * Returns encoded image data in string conversion - * - * @return string - */ - public function __toString() - { - return $this->encoded; - } - - /** - * Cloning an image - */ - public function __clone() - { - $this->core = $this->driver->cloneCore($this->core); - } -} diff --git a/vendor/intervention/image/src/Intervention/Image/ImageManager.php b/vendor/intervention/image/src/Intervention/Image/ImageManager.php deleted file mode 100644 index 7c9f1c91..00000000 --- a/vendor/intervention/image/src/Intervention/Image/ImageManager.php +++ /dev/null @@ -1,140 +0,0 @@ - 'gd' - ]; - - /** - * Creates new instance of Image Manager - * - * @param array $config - */ - public function __construct(array $config = []) - { - $this->checkRequirements(); - $this->configure($config); - } - - /** - * Overrides configuration settings - * - * @param array $config - * - * @return self - */ - public function configure(array $config = []) - { - $this->config = array_replace($this->config, $config); - - return $this; - } - - /** - * Initiates an Image instance from different input types - * - * @param mixed $data - * - * @return \Intervention\Image\Image - */ - public function make($data) - { - return $this->createDriver()->init($data); - } - - /** - * Creates an empty image canvas - * - * @param int $width - * @param int $height - * @param mixed $background - * - * @return \Intervention\Image\Image - */ - public function canvas($width, $height, $background = null) - { - return $this->createDriver()->newImage($width, $height, $background); - } - - /** - * Create new cached image and run callback - * (requires additional package intervention/imagecache) - * - * @param Closure $callback - * @param int $lifetime - * @param boolean $returnObj - * - * @return Image - */ - public function cache(Closure $callback, $lifetime = null, $returnObj = false) - { - if (class_exists('Intervention\\Image\\ImageCache')) { - // create imagecache - $imagecache = new ImageCache($this); - - // run callback - if (is_callable($callback)) { - $callback($imagecache); - } - - return $imagecache->get($lifetime, $returnObj); - } - - throw new \Intervention\Image\Exception\MissingDependencyException( - "Please install package intervention/imagecache before running this function." - ); - } - - /** - * Creates a driver instance according to config settings - * - * @return \Intervention\Image\AbstractDriver - */ - private function createDriver() - { - if (is_string($this->config['driver'])) { - $drivername = ucfirst($this->config['driver']); - $driverclass = sprintf('Intervention\\Image\\%s\\Driver', $drivername); - - if (class_exists($driverclass)) { - return new $driverclass; - } - - throw new \Intervention\Image\Exception\NotSupportedException( - "Driver ({$drivername}) could not be instantiated." - ); - } - - if ($this->config['driver'] instanceof AbstractDriver) { - return $this->config['driver']; - } - - throw new \Intervention\Image\Exception\NotSupportedException( - "Unknown driver type." - ); - } - - /** - * Check if all requirements are available - * - * @return void - */ - private function checkRequirements() - { - if ( ! function_exists('finfo_buffer')) { - throw new \Intervention\Image\Exception\MissingDependencyException( - "PHP Fileinfo extension must be installed/enabled to use Intervention Image." - ); - } - } -} diff --git a/vendor/intervention/image/src/Intervention/Image/ImageManagerStatic.php b/vendor/intervention/image/src/Intervention/Image/ImageManagerStatic.php deleted file mode 100644 index ad549c8c..00000000 --- a/vendor/intervention/image/src/Intervention/Image/ImageManagerStatic.php +++ /dev/null @@ -1,87 +0,0 @@ -configure($config); - } - - /** - * Statically initiates an Image instance from different input types - * - * @param mixed $data - * - * @return \Intervention\Image\Image - */ - public static function make($data) - { - return self::getManager()->make($data); - } - - /** - * Statically creates an empty image canvas - * - * @param int $width - * @param int $height - * @param mixed $background - * - * @return \Intervention\Image\Image - */ - public static function canvas($width, $height, $background = null) - { - return self::getManager()->canvas($width, $height, $background); - } - - /** - * Create new cached image and run callback statically - * - * @param Closure $callback - * @param int $lifetime - * @param boolean $returnObj - * - * @return mixed - */ - public static function cache(Closure $callback, $lifetime = null, $returnObj = false) - { - return self::getManager()->cache($callback, $lifetime, $returnObj); - } -} diff --git a/vendor/intervention/image/src/Intervention/Image/ImageServiceProvider.php b/vendor/intervention/image/src/Intervention/Image/ImageServiceProvider.php deleted file mode 100644 index 1e6351df..00000000 --- a/vendor/intervention/image/src/Intervention/Image/ImageServiceProvider.php +++ /dev/null @@ -1,85 +0,0 @@ -provider = $this->getProvider(); - } - - /** - * Bootstrap the application events. - * - * @return void - */ - public function boot() - { - if (method_exists($this->provider, 'boot')) { - return $this->provider->boot(); - } - } - - /** - * Register the service provider. - * - * @return void - */ - public function register() - { - return $this->provider->register(); - } - - /** - * Return ServiceProvider according to Laravel version - * - * @return \Intervention\Image\Provider\ProviderInterface - */ - private function getProvider() - { - if ($this->app instanceof \Laravel\Lumen\Application) { - $provider = '\Intervention\Image\ImageServiceProviderLumen'; - } elseif (version_compare(\Illuminate\Foundation\Application::VERSION, '5.0', '<')) { - $provider = '\Intervention\Image\ImageServiceProviderLaravel4'; - } else { - $provider = '\Intervention\Image\ImageServiceProviderLaravel5'; - } - - return new $provider($this->app); - } - - /** - * Get the services provided by the provider. - * - * @return array - */ - public function provides() - { - return ['image']; - } -} diff --git a/vendor/intervention/image/src/Intervention/Image/ImageServiceProviderLaravel4.php b/vendor/intervention/image/src/Intervention/Image/ImageServiceProviderLaravel4.php deleted file mode 100755 index 3b1388f2..00000000 --- a/vendor/intervention/image/src/Intervention/Image/ImageServiceProviderLaravel4.php +++ /dev/null @@ -1,112 +0,0 @@ -package('intervention/image'); - - // try to create imagecache route only if imagecache is present - if (class_exists('Intervention\\Image\\ImageCache')) { - - $app = $this->app; - - // load imagecache config - $app['config']->package('intervention/imagecache', __DIR__.'/../../../../imagecache/src/config', 'imagecache'); - $config = $app['config']; - - // create dynamic manipulation route - if (is_string($config->get('imagecache::route'))) { - - // add original to route templates - $config->set('imagecache::templates.original', null); - - // setup image manipulator route - $app['router']->get($config->get('imagecache::route').'/{template}/{filename}', ['as' => 'imagecache', function ($template, $filename) use ($app, $config) { - - // disable session cookies for image route - $app['config']->set('session.driver', 'array'); - - // find file - foreach ($config->get('imagecache::paths') as $path) { - // don't allow '..' in filenames - $image_path = $path.'/'.str_replace('..', '', $filename); - if (file_exists($image_path) && is_file($image_path)) { - break; - } else { - $image_path = false; - } - } - - // abort if file not found - if ($image_path === false) { - $app->abort(404); - } - - // define template callback - $callback = $config->get("imagecache::templates.{$template}"); - - if (is_callable($callback) || class_exists($callback)) { - - // image manipulation based on callback - $content = $app['image']->cache(function ($image) use ($image_path, $callback) { - - switch (true) { - case is_callable($callback): - return $callback($image->make($image_path)); - break; - - case class_exists($callback): - return $image->make($image_path)->filter(new $callback); - break; - } - - }, $config->get('imagecache::lifetime')); - - } else { - - // get original image file contents - $content = file_get_contents($image_path); - } - - // define mime type - $mime = finfo_buffer(finfo_open(FILEINFO_MIME_TYPE), $content); - - // return http response - return new IlluminateResponse($content, 200, [ - 'Content-Type' => $mime, - 'Cache-Control' => 'max-age='.($config->get('imagecache::lifetime')*60).', public', - 'Etag' => md5($content) - ]); - - }])->where(['template' => join('|', array_keys($config->get('imagecache::templates'))), 'filename' => '[ \w\\.\\/\\-]+']); - } - } - } - - /** - * Register the service provider. - * - * @return void - */ - public function register() - { - $app = $this->app; - - $app['image'] = $app->share(function ($app) { - return new ImageManager($app['config']->get('image::config')); - }); - - $app->alias('image', 'Intervention\Image\ImageManager'); - } -} diff --git a/vendor/intervention/image/src/Intervention/Image/ImageServiceProviderLaravel5.php b/vendor/intervention/image/src/Intervention/Image/ImageServiceProviderLaravel5.php deleted file mode 100644 index ea04fec5..00000000 --- a/vendor/intervention/image/src/Intervention/Image/ImageServiceProviderLaravel5.php +++ /dev/null @@ -1,89 +0,0 @@ -publishes([ - __DIR__.'/../../config/config.php' => config_path('image.php') - ]); - - // setup intervention/imagecache if package is installed - $this->cacheIsInstalled() ? $this->bootstrapImageCache() : null; - } - - /** - * Register the service provider. - * - * @return void - */ - public function register() - { - $app = $this->app; - - // merge default config - $this->mergeConfigFrom( - __DIR__.'/../../config/config.php', - 'image' - ); - - // create image - $app->singleton('image', function ($app) { - return new ImageManager($app['config']->get('image')); - }); - - $app->alias('image', 'Intervention\Image\ImageManager'); - } - - /** - * Bootstrap imagecache - * - * @return void - */ - private function bootstrapImageCache() - { - $app = $this->app; - $config = __DIR__.'/../../../../imagecache/src/config/config.php'; - - $this->publishes([ - $config => config_path('imagecache.php') - ]); - - // merge default config - $this->mergeConfigFrom( - $config, - 'imagecache' - ); - - // imagecache route - if (is_string(config('imagecache.route'))) { - - $filename_pattern = '[ \w\\.\\/\\-\\@\(\)]+'; - - // route to access template applied image file - $app['router']->get(config('imagecache.route').'/{template}/{filename}', [ - 'uses' => 'Intervention\Image\ImageCacheController@getResponse', - 'as' => 'imagecache' - ])->where(['filename' => $filename_pattern]); - } - } -} diff --git a/vendor/intervention/image/src/Intervention/Image/ImageServiceProviderLeague.php b/vendor/intervention/image/src/Intervention/Image/ImageServiceProviderLeague.php deleted file mode 100644 index b756a61f..00000000 --- a/vendor/intervention/image/src/Intervention/Image/ImageServiceProviderLeague.php +++ /dev/null @@ -1,42 +0,0 @@ -config = $config; - } - - /** - * Register the server provider. - * - * @return void - */ - public function register() - { - $this->getContainer()->share('Intervention\Image\ImageManager', function () { - return new ImageManager($this->config); - }); - } -} diff --git a/vendor/intervention/image/src/Intervention/Image/ImageServiceProviderLumen.php b/vendor/intervention/image/src/Intervention/Image/ImageServiceProviderLumen.php deleted file mode 100644 index 4a381ccd..00000000 --- a/vendor/intervention/image/src/Intervention/Image/ImageServiceProviderLumen.php +++ /dev/null @@ -1,34 +0,0 @@ -app; - - // merge default config - $this->mergeConfigFrom( - __DIR__.'/../../config/config.php', - 'image' - ); - - // set configuration - $app->configure('image'); - - // create image - $app->singleton('image',function ($app) { - return new ImageManager($app['config']->get('image')); - }); - - $app->alias('image', 'Intervention\Image\ImageManager'); - } -} diff --git a/vendor/intervention/image/src/Intervention/Image/Imagick/Color.php b/vendor/intervention/image/src/Intervention/Image/Imagick/Color.php deleted file mode 100644 index 91db8217..00000000 --- a/vendor/intervention/image/src/Intervention/Image/Imagick/Color.php +++ /dev/null @@ -1,277 +0,0 @@ -> 24) & 0xFF; - $r = ($value >> 16) & 0xFF; - $g = ($value >> 8) & 0xFF; - $b = $value & 0xFF; - $a = $this->rgb2alpha($a); - - $this->setPixel($r, $g, $b, $a); - } - - /** - * Initiates color object from given array - * - * @param array $value - * @return \Intervention\Image\AbstractColor - */ - public function initFromArray($array) - { - $array = array_values($array); - - if (count($array) == 4) { - - // color array with alpha value - list($r, $g, $b, $a) = $array; - - } elseif (count($array) == 3) { - - // color array without alpha value - list($r, $g, $b) = $array; - $a = 1; - } - - $this->setPixel($r, $g, $b, $a); - } - - /** - * Initiates color object from given string - * - * @param string $value - * - * @return \Intervention\Image\AbstractColor - */ - public function initFromString($value) - { - if ($color = $this->rgbaFromString($value)) { - $this->setPixel($color[0], $color[1], $color[2], $color[3]); - } - } - - /** - * Initiates color object from given ImagickPixel object - * - * @param ImagickPixel $value - * - * @return \Intervention\Image\AbstractColor - */ - public function initFromObject($value) - { - if (is_a($value, '\ImagickPixel')) { - $this->pixel = $value; - } - } - - /** - * Initiates color object from given R, G and B values - * - * @param int $r - * @param int $g - * @param int $b - * - * @return \Intervention\Image\AbstractColor - */ - public function initFromRgb($r, $g, $b) - { - $this->setPixel($r, $g, $b); - } - - /** - * Initiates color object from given R, G, B and A values - * - * @param int $r - * @param int $g - * @param int $b - * @param float $a - * - * @return \Intervention\Image\AbstractColor - */ - public function initFromRgba($r, $g, $b, $a) - { - $this->setPixel($r, $g, $b, $a); - } - - /** - * Calculates integer value of current color instance - * - * @return int - */ - public function getInt() - { - $r = $this->getRedValue(); - $g = $this->getGreenValue(); - $b = $this->getBlueValue(); - $a = intval(round($this->getAlphaValue() * 255)); - - return intval(($a << 24) + ($r << 16) + ($g << 8) + $b); - } - - /** - * Calculates hexadecimal value of current color instance - * - * @param string $prefix - * - * @return string - */ - public function getHex($prefix = '') - { - return sprintf('%s%02x%02x%02x', $prefix, - $this->getRedValue(), - $this->getGreenValue(), - $this->getBlueValue() - ); - } - - /** - * Calculates RGB(A) in array format of current color instance - * - * @return array - */ - public function getArray() - { - return [ - $this->getRedValue(), - $this->getGreenValue(), - $this->getBlueValue(), - $this->getAlphaValue() - ]; - } - - /** - * Calculates RGBA in string format of current color instance - * - * @return string - */ - public function getRgba() - { - return sprintf('rgba(%d, %d, %d, %.2F)', - $this->getRedValue(), - $this->getGreenValue(), - $this->getBlueValue(), - $this->getAlphaValue() - ); - } - - /** - * Determines if current color is different from given color - * - * @param AbstractColor $color - * @param int $tolerance - * @return boolean - */ - public function differs(\Intervention\Image\AbstractColor $color, $tolerance = 0) - { - $color_tolerance = round($tolerance * 2.55); - $alpha_tolerance = round($tolerance); - - $delta = [ - 'r' => abs($color->getRedValue() - $this->getRedValue()), - 'g' => abs($color->getGreenValue() - $this->getGreenValue()), - 'b' => abs($color->getBlueValue() - $this->getBlueValue()), - 'a' => abs($color->getAlphaValue() - $this->getAlphaValue()) - ]; - - return ( - $delta['r'] > $color_tolerance or - $delta['g'] > $color_tolerance or - $delta['b'] > $color_tolerance or - $delta['a'] > $alpha_tolerance - ); - } - - /** - * Returns RGB red value of current color - * - * @return int - */ - public function getRedValue() - { - return intval(round($this->pixel->getColorValue(\Imagick::COLOR_RED) * 255)); - } - - /** - * Returns RGB green value of current color - * - * @return int - */ - public function getGreenValue() - { - return intval(round($this->pixel->getColorValue(\Imagick::COLOR_GREEN) * 255)); - } - - /** - * Returns RGB blue value of current color - * - * @return int - */ - public function getBlueValue() - { - return intval(round($this->pixel->getColorValue(\Imagick::COLOR_BLUE) * 255)); - } - - /** - * Returns RGB alpha value of current color - * - * @return float - */ - public function getAlphaValue() - { - return round($this->pixel->getColorValue(\Imagick::COLOR_ALPHA), 2); - } - - /** - * Initiates ImagickPixel from given RGBA values - * - * @return \ImagickPixel - */ - private function setPixel($r, $g, $b, $a = null) - { - $a = is_null($a) ? 1 : $a; - - return $this->pixel = new \ImagickPixel( - sprintf('rgba(%d, %d, %d, %.2F)', $r, $g, $b, $a) - ); - } - - /** - * Returns current color as ImagickPixel - * - * @return \ImagickPixel - */ - public function getPixel() - { - return $this->pixel; - } - - /** - * Calculates RGA integer alpha value into float value - * - * @param int $value - * @return float - */ - private function rgb2alpha($value) - { - // (255 -> 1.0) / (0 -> 0.0) - return (float) round($value/255, 2); - } - -} diff --git a/vendor/intervention/image/src/Intervention/Image/Imagick/Commands/BackupCommand.php b/vendor/intervention/image/src/Intervention/Image/Imagick/Commands/BackupCommand.php deleted file mode 100644 index 60dedb2b..00000000 --- a/vendor/intervention/image/src/Intervention/Image/Imagick/Commands/BackupCommand.php +++ /dev/null @@ -1,23 +0,0 @@ -argument(0)->value(); - - // clone current image resource - $clone = clone $image; - $image->setBackup($clone->getCore(), $backupName); - - return true; - } -} diff --git a/vendor/intervention/image/src/Intervention/Image/Imagick/Commands/BlurCommand.php b/vendor/intervention/image/src/Intervention/Image/Imagick/Commands/BlurCommand.php deleted file mode 100644 index b037c151..00000000 --- a/vendor/intervention/image/src/Intervention/Image/Imagick/Commands/BlurCommand.php +++ /dev/null @@ -1,19 +0,0 @@ -argument(0)->between(0, 100)->value(1); - - return $image->getCore()->blurImage(1 * $amount, 0.5 * $amount); - } -} diff --git a/vendor/intervention/image/src/Intervention/Image/Imagick/Commands/BrightnessCommand.php b/vendor/intervention/image/src/Intervention/Image/Imagick/Commands/BrightnessCommand.php deleted file mode 100644 index eefb1802..00000000 --- a/vendor/intervention/image/src/Intervention/Image/Imagick/Commands/BrightnessCommand.php +++ /dev/null @@ -1,19 +0,0 @@ -argument(0)->between(-100, 100)->required()->value(); - - return $image->getCore()->modulateImage(100 + $level, 100, 100); - } -} diff --git a/vendor/intervention/image/src/Intervention/Image/Imagick/Commands/ColorizeCommand.php b/vendor/intervention/image/src/Intervention/Image/Imagick/Commands/ColorizeCommand.php deleted file mode 100644 index 51142be2..00000000 --- a/vendor/intervention/image/src/Intervention/Image/Imagick/Commands/ColorizeCommand.php +++ /dev/null @@ -1,42 +0,0 @@ -argument(0)->between(-100, 100)->required()->value(); - $green = $this->argument(1)->between(-100, 100)->required()->value(); - $blue = $this->argument(2)->between(-100, 100)->required()->value(); - - // normalize colorize levels - $red = $this->normalizeLevel($red); - $green = $this->normalizeLevel($green); - $blue = $this->normalizeLevel($blue); - - $qrange = $image->getCore()->getQuantumRange(); - - // apply - $image->getCore()->levelImage(0, $red, $qrange['quantumRangeLong'], \Imagick::CHANNEL_RED); - $image->getCore()->levelImage(0, $green, $qrange['quantumRangeLong'], \Imagick::CHANNEL_GREEN); - $image->getCore()->levelImage(0, $blue, $qrange['quantumRangeLong'], \Imagick::CHANNEL_BLUE); - - return true; - } - - private function normalizeLevel($level) - { - if ($level > 0) { - return $level/5; - } else { - return ($level+100)/100; - } - } -} diff --git a/vendor/intervention/image/src/Intervention/Image/Imagick/Commands/ContrastCommand.php b/vendor/intervention/image/src/Intervention/Image/Imagick/Commands/ContrastCommand.php deleted file mode 100644 index 113a2186..00000000 --- a/vendor/intervention/image/src/Intervention/Image/Imagick/Commands/ContrastCommand.php +++ /dev/null @@ -1,19 +0,0 @@ -argument(0)->between(-100, 100)->required()->value(); - - return $image->getCore()->sigmoidalContrastImage($level > 0, $level / 4, 0); - } -} diff --git a/vendor/intervention/image/src/Intervention/Image/Imagick/Commands/CropCommand.php b/vendor/intervention/image/src/Intervention/Image/Imagick/Commands/CropCommand.php deleted file mode 100644 index 21c7184b..00000000 --- a/vendor/intervention/image/src/Intervention/Image/Imagick/Commands/CropCommand.php +++ /dev/null @@ -1,43 +0,0 @@ -argument(0)->type('digit')->required()->value(); - $height = $this->argument(1)->type('digit')->required()->value(); - $x = $this->argument(2)->type('digit')->value(); - $y = $this->argument(3)->type('digit')->value(); - - if (is_null($width) || is_null($height)) { - throw new \Intervention\Image\Exception\InvalidArgumentException( - "Width and height of cutout needs to be defined." - ); - } - - $cropped = new Size($width, $height); - $position = new Point($x, $y); - - // align boxes - if (is_null($x) && is_null($y)) { - $position = $image->getSize()->align('center')->relativePosition($cropped->align('center')); - } - - // crop image core - $image->getCore()->cropImage($cropped->width, $cropped->height, $position->x, $position->y); - $image->getCore()->setImagePage(0,0,0,0); - - return true; - } -} diff --git a/vendor/intervention/image/src/Intervention/Image/Imagick/Commands/DestroyCommand.php b/vendor/intervention/image/src/Intervention/Image/Imagick/Commands/DestroyCommand.php deleted file mode 100644 index d98062d8..00000000 --- a/vendor/intervention/image/src/Intervention/Image/Imagick/Commands/DestroyCommand.php +++ /dev/null @@ -1,25 +0,0 @@ -getCore()->clear(); - - // destroy backups - foreach ($image->getBackups() as $backup) { - $backup->clear(); - } - - return true; - } -} diff --git a/vendor/intervention/image/src/Intervention/Image/Imagick/Commands/ExifCommand.php b/vendor/intervention/image/src/Intervention/Image/Imagick/Commands/ExifCommand.php deleted file mode 100644 index 924522ca..00000000 --- a/vendor/intervention/image/src/Intervention/Image/Imagick/Commands/ExifCommand.php +++ /dev/null @@ -1,62 +0,0 @@ -preferExtension = false; - } - - /** - * Read Exif data from the given image - * - * @param \Intervention\Image\Image $image - * @return boolean - */ - public function execute($image) - { - if ($this->preferExtension && function_exists('exif_read_data')) { - return parent::execute($image); - } - - $core = $image->getCore(); - - if ( ! method_exists($core, 'getImageProperties')) { - throw new \Intervention\Image\Exception\NotSupportedException( - "Reading Exif data is not supported by this PHP installation." - ); - } - - $requestedKey = $this->argument(0)->value(); - if ($requestedKey !== null) { - $this->setOutput($core->getImageProperty('exif:' . $requestedKey)); - return true; - } - - $exif = []; - $properties = $core->getImageProperties(); - foreach ($properties as $key => $value) { - if (substr($key, 0, 5) !== 'exif:') { - continue; - } - - $exif[substr($key, 5)] = $value; - } - - $this->setOutput($exif); - return true; - } -} diff --git a/vendor/intervention/image/src/Intervention/Image/Imagick/Commands/FillCommand.php b/vendor/intervention/image/src/Intervention/Image/Imagick/Commands/FillCommand.php deleted file mode 100644 index bfac75fb..00000000 --- a/vendor/intervention/image/src/Intervention/Image/Imagick/Commands/FillCommand.php +++ /dev/null @@ -1,103 +0,0 @@ -argument(0)->value(); - $x = $this->argument(1)->type('digit')->value(); - $y = $this->argument(2)->type('digit')->value(); - - $imagick = $image->getCore(); - - try { - // set image filling - $source = new Decoder; - $filling = $source->init($filling); - - } catch (\Intervention\Image\Exception\NotReadableException $e) { - - // set solid color filling - $filling = new Color($filling); - } - - // flood fill if coordinates are set - if (is_int($x) && is_int($y)) { - - // flood fill with texture - if ($filling instanceof Image) { - - // create tile - $tile = clone $image->getCore(); - - // mask away color at position - $tile->transparentPaintImage($tile->getImagePixelColor($x, $y), 0, 0, false); - - // create canvas - $canvas = clone $image->getCore(); - - // fill canvas with texture - $canvas = $canvas->textureImage($filling->getCore()); - - // merge canvas and tile - $canvas->compositeImage($tile, \Imagick::COMPOSITE_DEFAULT, 0, 0); - - // replace image core - $image->setCore($canvas); - - // flood fill with color - } elseif ($filling instanceof Color) { - - // create canvas with filling - $canvas = new \Imagick; - $canvas->newImage($image->getWidth(), $image->getHeight(), $filling->getPixel(), 'png'); - - // create tile to put on top - $tile = clone $image->getCore(); - - // mask away color at pos. - $tile->transparentPaintImage($tile->getImagePixelColor($x, $y), 0, 0, false); - - // save alpha channel of original image - $alpha = clone $image->getCore(); - - // merge original with canvas and tile - $image->getCore()->compositeImage($canvas, \Imagick::COMPOSITE_DEFAULT, 0, 0); - $image->getCore()->compositeImage($tile, \Imagick::COMPOSITE_DEFAULT, 0, 0); - - // restore alpha channel of original image - $image->getCore()->compositeImage($alpha, \Imagick::COMPOSITE_COPYOPACITY, 0, 0); - } - - } else { - - if ($filling instanceof Image) { - - // fill whole image with texture - $image->setCore($image->getCore()->textureImage($filling->getCore())); - - } elseif ($filling instanceof Color) { - - // fill whole image with color - $draw = new \ImagickDraw(); - $draw->setFillColor($filling->getPixel()); - $draw->rectangle(0, 0, $image->getWidth(), $image->getHeight()); - $image->getCore()->drawImage($draw); - } - } - - return true; - } -} diff --git a/vendor/intervention/image/src/Intervention/Image/Imagick/Commands/FitCommand.php b/vendor/intervention/image/src/Intervention/Image/Imagick/Commands/FitCommand.php deleted file mode 100644 index f2c60d21..00000000 --- a/vendor/intervention/image/src/Intervention/Image/Imagick/Commands/FitCommand.php +++ /dev/null @@ -1,41 +0,0 @@ -argument(0)->type('digit')->required()->value(); - $height = $this->argument(1)->type('digit')->value($width); - $constraints = $this->argument(2)->type('closure')->value(); - $position = $this->argument(3)->type('string')->value('center'); - - // calculate size - $cropped = $image->getSize()->fit(new Size($width, $height), $position); - $resized = clone $cropped; - $resized = $resized->resize($width, $height, $constraints); - - // crop image - $image->getCore()->cropImage( - $cropped->width, - $cropped->height, - $cropped->pivot->x, - $cropped->pivot->y - ); - - // resize image - $image->getCore()->scaleImage($resized->getWidth(), $resized->getHeight()); - $image->getCore()->setImagePage(0,0,0,0); - - return true; - } -} diff --git a/vendor/intervention/image/src/Intervention/Image/Imagick/Commands/FlipCommand.php b/vendor/intervention/image/src/Intervention/Image/Imagick/Commands/FlipCommand.php deleted file mode 100644 index cdb03c52..00000000 --- a/vendor/intervention/image/src/Intervention/Image/Imagick/Commands/FlipCommand.php +++ /dev/null @@ -1,25 +0,0 @@ -argument(0)->value('h'); - - if (in_array(strtolower($mode), [2, 'v', 'vert', 'vertical'])) { - // flip vertical - return $image->getCore()->flipImage(); - } else { - // flip horizontal - return $image->getCore()->flopImage(); - } - } -} diff --git a/vendor/intervention/image/src/Intervention/Image/Imagick/Commands/GammaCommand.php b/vendor/intervention/image/src/Intervention/Image/Imagick/Commands/GammaCommand.php deleted file mode 100644 index e70cbdd3..00000000 --- a/vendor/intervention/image/src/Intervention/Image/Imagick/Commands/GammaCommand.php +++ /dev/null @@ -1,19 +0,0 @@ -argument(0)->type('numeric')->required()->value(); - - return $image->getCore()->gammaImage($gamma); - } -} diff --git a/vendor/intervention/image/src/Intervention/Image/Imagick/Commands/GetSizeCommand.php b/vendor/intervention/image/src/Intervention/Image/Imagick/Commands/GetSizeCommand.php deleted file mode 100644 index 65b1078d..00000000 --- a/vendor/intervention/image/src/Intervention/Image/Imagick/Commands/GetSizeCommand.php +++ /dev/null @@ -1,27 +0,0 @@ -getCore(); - - $this->setOutput(new Size( - $core->getImageWidth(), - $core->getImageHeight() - )); - - return true; - } -} diff --git a/vendor/intervention/image/src/Intervention/Image/Imagick/Commands/GreyscaleCommand.php b/vendor/intervention/image/src/Intervention/Image/Imagick/Commands/GreyscaleCommand.php deleted file mode 100644 index bb3f4726..00000000 --- a/vendor/intervention/image/src/Intervention/Image/Imagick/Commands/GreyscaleCommand.php +++ /dev/null @@ -1,17 +0,0 @@ -getCore()->modulateImage(100, 0, 100); - } -} diff --git a/vendor/intervention/image/src/Intervention/Image/Imagick/Commands/HeightenCommand.php b/vendor/intervention/image/src/Intervention/Image/Imagick/Commands/HeightenCommand.php deleted file mode 100644 index 0b61e50c..00000000 --- a/vendor/intervention/image/src/Intervention/Image/Imagick/Commands/HeightenCommand.php +++ /dev/null @@ -1,28 +0,0 @@ -argument(0)->type('digit')->required()->value(); - $additionalConstraints = $this->argument(1)->type('closure')->value(); - - $this->arguments[0] = null; - $this->arguments[1] = $height; - $this->arguments[2] = function ($constraint) use ($additionalConstraints) { - $constraint->aspectRatio(); - if(is_callable($additionalConstraints)) - $additionalConstraints($constraint); - }; - - return parent::execute($image); - } -} diff --git a/vendor/intervention/image/src/Intervention/Image/Imagick/Commands/InsertCommand.php b/vendor/intervention/image/src/Intervention/Image/Imagick/Commands/InsertCommand.php deleted file mode 100644 index 542feb2a..00000000 --- a/vendor/intervention/image/src/Intervention/Image/Imagick/Commands/InsertCommand.php +++ /dev/null @@ -1,31 +0,0 @@ -argument(0)->required()->value(); - $position = $this->argument(1)->type('string')->value(); - $x = $this->argument(2)->type('digit')->value(0); - $y = $this->argument(3)->type('digit')->value(0); - - // build watermark - $watermark = $image->getDriver()->init($source); - - // define insertion point - $image_size = $image->getSize()->align($position, $x, $y); - $watermark_size = $watermark->getSize()->align($position); - $target = $image_size->relativePosition($watermark_size); - - // insert image at position - return $image->getCore()->compositeImage($watermark->getCore(), \Imagick::COMPOSITE_DEFAULT, $target->x, $target->y); - } -} diff --git a/vendor/intervention/image/src/Intervention/Image/Imagick/Commands/InterlaceCommand.php b/vendor/intervention/image/src/Intervention/Image/Imagick/Commands/InterlaceCommand.php deleted file mode 100644 index 82cddd4c..00000000 --- a/vendor/intervention/image/src/Intervention/Image/Imagick/Commands/InterlaceCommand.php +++ /dev/null @@ -1,27 +0,0 @@ -argument(0)->type('bool')->value(true); - - if ($mode) { - $mode = \Imagick::INTERLACE_LINE; - } else { - $mode = \Imagick::INTERLACE_NO; - } - - $image->getCore()->setInterlaceScheme($mode); - - return true; - } -} diff --git a/vendor/intervention/image/src/Intervention/Image/Imagick/Commands/InvertCommand.php b/vendor/intervention/image/src/Intervention/Image/Imagick/Commands/InvertCommand.php deleted file mode 100644 index 125fbdde..00000000 --- a/vendor/intervention/image/src/Intervention/Image/Imagick/Commands/InvertCommand.php +++ /dev/null @@ -1,17 +0,0 @@ -getCore()->negateImage(false); - } -} diff --git a/vendor/intervention/image/src/Intervention/Image/Imagick/Commands/LimitColorsCommand.php b/vendor/intervention/image/src/Intervention/Image/Imagick/Commands/LimitColorsCommand.php deleted file mode 100644 index 7308180f..00000000 --- a/vendor/intervention/image/src/Intervention/Image/Imagick/Commands/LimitColorsCommand.php +++ /dev/null @@ -1,57 +0,0 @@ -argument(0)->value(); - $matte = $this->argument(1)->value(); - - // get current image size - $size = $image->getSize(); - - // build 2 color alpha mask from original alpha - $alpha = clone $image->getCore(); - $alpha->separateImageChannel(\Imagick::CHANNEL_ALPHA); - $alpha->transparentPaintImage('#ffffff', 0, 0, false); - $alpha->separateImageChannel(\Imagick::CHANNEL_ALPHA); - $alpha->negateImage(false); - - if ($matte) { - - // get matte color - $mattecolor = $image->getDriver()->parseColor($matte)->getPixel(); - - // create matte image - $canvas = new \Imagick; - $canvas->newImage($size->width, $size->height, $mattecolor, 'png'); - - // lower colors of original and copy to matte - $image->getCore()->quantizeImage($count, \Imagick::COLORSPACE_RGB, 0, false, false); - $canvas->compositeImage($image->getCore(), \Imagick::COMPOSITE_DEFAULT, 0, 0); - - // copy new alpha to canvas - $canvas->compositeImage($alpha, \Imagick::COMPOSITE_COPYOPACITY, 0, 0); - - // replace core - $image->setCore($canvas); - - } else { - - $image->getCore()->quantizeImage($count, \Imagick::COLORSPACE_RGB, 0, false, false); - $image->getCore()->compositeImage($alpha, \Imagick::COMPOSITE_COPYOPACITY, 0, 0); - - } - - return true; - - } -} diff --git a/vendor/intervention/image/src/Intervention/Image/Imagick/Commands/MaskCommand.php b/vendor/intervention/image/src/Intervention/Image/Imagick/Commands/MaskCommand.php deleted file mode 100644 index 2dfc697b..00000000 --- a/vendor/intervention/image/src/Intervention/Image/Imagick/Commands/MaskCommand.php +++ /dev/null @@ -1,58 +0,0 @@ -argument(0)->value(); - $mask_w_alpha = $this->argument(1)->type('bool')->value(false); - - // get imagick - $imagick = $image->getCore(); - - // build mask image from source - $mask = $image->getDriver()->init($mask_source); - - // resize mask to size of current image (if necessary) - $image_size = $image->getSize(); - if ($mask->getSize() != $image_size) { - $mask->resize($image_size->width, $image_size->height); - } - - $imagick->setImageMatte(true); - - if ($mask_w_alpha) { - - // just mask with alpha map - $imagick->compositeImage($mask->getCore(), \Imagick::COMPOSITE_DSTIN, 0, 0); - - } else { - - // get alpha channel of original as greyscale image - $original_alpha = clone $imagick; - $original_alpha->separateImageChannel(\Imagick::CHANNEL_ALPHA); - - // use red channel from mask ask alpha - $mask_alpha = clone $mask->getCore(); - $mask_alpha->compositeImage($mask->getCore(), \Imagick::COMPOSITE_DEFAULT, 0, 0); - // $mask_alpha->setImageAlphaChannel(\Imagick::ALPHACHANNEL_DEACTIVATE); - $mask_alpha->separateImageChannel(\Imagick::CHANNEL_ALL); - - // combine both alphas from original and mask - $original_alpha->compositeImage($mask_alpha, \Imagick::COMPOSITE_COPYOPACITY, 0, 0); - - // mask the image with the alpha combination - $imagick->compositeImage($original_alpha, \Imagick::COMPOSITE_DSTIN, 0, 0); - } - - return true; - } -} diff --git a/vendor/intervention/image/src/Intervention/Image/Imagick/Commands/OpacityCommand.php b/vendor/intervention/image/src/Intervention/Image/Imagick/Commands/OpacityCommand.php deleted file mode 100644 index 57ed006b..00000000 --- a/vendor/intervention/image/src/Intervention/Image/Imagick/Commands/OpacityCommand.php +++ /dev/null @@ -1,21 +0,0 @@ -argument(0)->between(0, 100)->required()->value(); - - $transparency = $transparency > 0 ? (100 / $transparency) : 1000; - - return $image->getCore()->evaluateImage(\Imagick::EVALUATE_DIVIDE, $transparency, \Imagick::CHANNEL_ALPHA); - } -} diff --git a/vendor/intervention/image/src/Intervention/Image/Imagick/Commands/PickColorCommand.php b/vendor/intervention/image/src/Intervention/Image/Imagick/Commands/PickColorCommand.php deleted file mode 100644 index 8daa0f95..00000000 --- a/vendor/intervention/image/src/Intervention/Image/Imagick/Commands/PickColorCommand.php +++ /dev/null @@ -1,29 +0,0 @@ -argument(0)->type('digit')->required()->value(); - $y = $this->argument(1)->type('digit')->required()->value(); - $format = $this->argument(2)->type('string')->value('array'); - - // pick color - $color = new Color($image->getCore()->getImagePixelColor($x, $y)); - - // format to output - $this->setOutput($color->format($format)); - - return true; - } -} diff --git a/vendor/intervention/image/src/Intervention/Image/Imagick/Commands/PixelCommand.php b/vendor/intervention/image/src/Intervention/Image/Imagick/Commands/PixelCommand.php deleted file mode 100644 index b9e6d395..00000000 --- a/vendor/intervention/image/src/Intervention/Image/Imagick/Commands/PixelCommand.php +++ /dev/null @@ -1,30 +0,0 @@ -argument(0)->required()->value(); - $color = new Color($color); - $x = $this->argument(1)->type('digit')->required()->value(); - $y = $this->argument(2)->type('digit')->required()->value(); - - // prepare pixel - $draw = new \ImagickDraw; - $draw->setFillColor($color->getPixel()); - $draw->point($x, $y); - - // apply pixel - return $image->getCore()->drawImage($draw); - } -} diff --git a/vendor/intervention/image/src/Intervention/Image/Imagick/Commands/PixelateCommand.php b/vendor/intervention/image/src/Intervention/Image/Imagick/Commands/PixelateCommand.php deleted file mode 100644 index 75f2218f..00000000 --- a/vendor/intervention/image/src/Intervention/Image/Imagick/Commands/PixelateCommand.php +++ /dev/null @@ -1,25 +0,0 @@ -argument(0)->type('digit')->value(10); - - $width = $image->getWidth(); - $height = $image->getHeight(); - - $image->getCore()->scaleImage(max(1, ($width / $size)), max(1, ($height / $size))); - $image->getCore()->scaleImage($width, $height); - - return true; - } -} diff --git a/vendor/intervention/image/src/Intervention/Image/Imagick/Commands/ResetCommand.php b/vendor/intervention/image/src/Intervention/Image/Imagick/Commands/ResetCommand.php deleted file mode 100644 index ee5a2cdf..00000000 --- a/vendor/intervention/image/src/Intervention/Image/Imagick/Commands/ResetCommand.php +++ /dev/null @@ -1,37 +0,0 @@ -argument(0)->value(); - - $backup = $image->getBackup($backupName); - - if ($backup instanceof \Imagick) { - - // destroy current core - $image->getCore()->clear(); - - // clone backup - $backup = clone $backup; - - // reset to new resource - $image->setCore($backup); - - return true; - } - - throw new \Intervention\Image\Exception\RuntimeException( - "Backup not available. Call backup({$backupName}) before reset()." - ); - } -} diff --git a/vendor/intervention/image/src/Intervention/Image/Imagick/Commands/ResizeCanvasCommand.php b/vendor/intervention/image/src/Intervention/Image/Imagick/Commands/ResizeCanvasCommand.php deleted file mode 100644 index f394c15d..00000000 --- a/vendor/intervention/image/src/Intervention/Image/Imagick/Commands/ResizeCanvasCommand.php +++ /dev/null @@ -1,89 +0,0 @@ -argument(0)->type('digit')->required()->value(); - $height = $this->argument(1)->type('digit')->required()->value(); - $anchor = $this->argument(2)->value('center'); - $relative = $this->argument(3)->type('boolean')->value(false); - $bgcolor = $this->argument(4)->value(); - - $original_width = $image->getWidth(); - $original_height = $image->getHeight(); - - // check of only width or height is set - $width = is_null($width) ? $original_width : intval($width); - $height = is_null($height) ? $original_height : intval($height); - - // check on relative width/height - if ($relative) { - $width = $original_width + $width; - $height = $original_height + $height; - } - - // check for negative width/height - $width = ($width <= 0) ? $width + $original_width : $width; - $height = ($height <= 0) ? $height + $original_height : $height; - - // create new canvas - $canvas = $image->getDriver()->newImage($width, $height, $bgcolor); - - // set copy position - $canvas_size = $canvas->getSize()->align($anchor); - $image_size = $image->getSize()->align($anchor); - $canvas_pos = $image_size->relativePosition($canvas_size); - $image_pos = $canvas_size->relativePosition($image_size); - - if ($width <= $original_width) { - $dst_x = 0; - $src_x = $canvas_pos->x; - $src_w = $canvas_size->width; - } else { - $dst_x = $image_pos->x; - $src_x = 0; - $src_w = $original_width; - } - - if ($height <= $original_height) { - $dst_y = 0; - $src_y = $canvas_pos->y; - $src_h = $canvas_size->height; - } else { - $dst_y = $image_pos->y; - $src_y = 0; - $src_h = $original_height; - } - - // make image area transparent to keep transparency - // even if background-color is set - $rect = new \ImagickDraw; - $fill = $canvas->pickColor(0, 0, 'hex'); - $fill = $fill == '#ff0000' ? '#00ff00' : '#ff0000'; - $rect->setFillColor($fill); - $rect->rectangle($dst_x, $dst_y, $dst_x + $src_w - 1, $dst_y + $src_h - 1); - $canvas->getCore()->drawImage($rect); - $canvas->getCore()->transparentPaintImage($fill, 0, 0, false); - - $canvas->getCore()->setImageColorspace($image->getCore()->getImageColorspace()); - - // copy image into new canvas - $image->getCore()->cropImage($src_w, $src_h, $src_x, $src_y); - $canvas->getCore()->compositeImage($image->getCore(), \Imagick::COMPOSITE_DEFAULT, $dst_x, $dst_y); - $canvas->getCore()->setImagePage(0,0,0,0); - - // set new core to canvas - $image->setCore($canvas->getCore()); - - return true; - } -} diff --git a/vendor/intervention/image/src/Intervention/Image/Imagick/Commands/ResizeCommand.php b/vendor/intervention/image/src/Intervention/Image/Imagick/Commands/ResizeCommand.php deleted file mode 100644 index 9ccc202c..00000000 --- a/vendor/intervention/image/src/Intervention/Image/Imagick/Commands/ResizeCommand.php +++ /dev/null @@ -1,27 +0,0 @@ -argument(0)->value(); - $height = $this->argument(1)->value(); - $constraints = $this->argument(2)->type('closure')->value(); - - // resize box - $resized = $image->getSize()->resize($width, $height, $constraints); - - // modify image - $image->getCore()->scaleImage($resized->getWidth(), $resized->getHeight()); - - return true; - } -} diff --git a/vendor/intervention/image/src/Intervention/Image/Imagick/Commands/RotateCommand.php b/vendor/intervention/image/src/Intervention/Image/Imagick/Commands/RotateCommand.php deleted file mode 100644 index c4503a6c..00000000 --- a/vendor/intervention/image/src/Intervention/Image/Imagick/Commands/RotateCommand.php +++ /dev/null @@ -1,29 +0,0 @@ -argument(0)->type('numeric')->required()->value(); - $color = $this->argument(1)->value(); - $color = new Color($color); - - // restrict rotations beyond 360 degrees, since the end result is the same - $angle %= 360; - - // rotate image - $image->getCore()->rotateImage($color->getPixel(), ($angle * -1)); - - return true; - } -} diff --git a/vendor/intervention/image/src/Intervention/Image/Imagick/Commands/SharpenCommand.php b/vendor/intervention/image/src/Intervention/Image/Imagick/Commands/SharpenCommand.php deleted file mode 100644 index 4f2fc8c2..00000000 --- a/vendor/intervention/image/src/Intervention/Image/Imagick/Commands/SharpenCommand.php +++ /dev/null @@ -1,19 +0,0 @@ -argument(0)->between(0, 100)->value(10); - - return $image->getCore()->unsharpMaskImage(1, 1, $amount / 6.25, 0); - } -} diff --git a/vendor/intervention/image/src/Intervention/Image/Imagick/Commands/TrimCommand.php b/vendor/intervention/image/src/Intervention/Image/Imagick/Commands/TrimCommand.php deleted file mode 100644 index f0959032..00000000 --- a/vendor/intervention/image/src/Intervention/Image/Imagick/Commands/TrimCommand.php +++ /dev/null @@ -1,120 +0,0 @@ -argument(0)->type('string')->value(); - $away = $this->argument(1)->value(); - $tolerance = $this->argument(2)->type('numeric')->value(0); - $feather = $this->argument(3)->type('numeric')->value(0); - - $width = $image->getWidth(); - $height = $image->getHeight(); - - $checkTransparency = false; - - // define borders to trim away - if (is_null($away)) { - $away = ['top', 'right', 'bottom', 'left']; - } elseif (is_string($away)) { - $away = [$away]; - } - - // lower border names - foreach ($away as $key => $value) { - $away[$key] = strtolower($value); - } - - // define base color position - switch (strtolower($base)) { - case 'transparent': - case 'trans': - $checkTransparency = true; - $base_x = 0; - $base_y = 0; - break; - - case 'bottom-right': - case 'right-bottom': - $base_x = $width - 1; - $base_y = $height - 1; - break; - - default: - case 'top-left': - case 'left-top': - $base_x = 0; - $base_y = 0; - break; - } - - // pick base color - if ($checkTransparency) { - $base_color = new Color; // color will only be used to compare alpha channel - } else { - $base_color = $image->pickColor($base_x, $base_y, 'object'); - } - - // trim on clone to get only coordinates - $trimed = clone $image->getCore(); - - // add border to trim specific color - $trimed->borderImage($base_color->getPixel(), 1, 1); - - // trim image - $trimed->trimImage(65850 / 100 * $tolerance); - - // get coordinates of trim - $imagePage = $trimed->getImagePage(); - list($crop_x, $crop_y) = [$imagePage['x']-1, $imagePage['y']-1]; - // $trimed->setImagePage(0, 0, 0, 0); - list($crop_width, $crop_height) = [$trimed->width, $trimed->height]; - - // adjust settings if right should not be trimed - if ( ! in_array('right', $away)) { - $crop_width = $crop_width + ($width - ($width - $crop_x)); - } - - // adjust settings if bottom should not be trimed - if ( ! in_array('bottom', $away)) { - $crop_height = $crop_height + ($height - ($height - $crop_y)); - } - - // adjust settings if left should not be trimed - if ( ! in_array('left', $away)) { - $crop_width = $crop_width + $crop_x; - $crop_x = 0; - } - - // adjust settings if top should not be trimed - if ( ! in_array('top', $away)) { - $crop_height = $crop_height + $crop_y; - $crop_y = 0; - } - - // add feather - $crop_width = min($width, ($crop_width + $feather * 2)); - $crop_height = min($height, ($crop_height + $feather * 2)); - $crop_x = max(0, ($crop_x - $feather)); - $crop_y = max(0, ($crop_y - $feather)); - - // finally crop based on page - $image->getCore()->cropImage($crop_width, $crop_height, $crop_x, $crop_y); - $image->getCore()->setImagePage(0,0,0,0); - - $trimed->destroy(); - - return true; - } -} diff --git a/vendor/intervention/image/src/Intervention/Image/Imagick/Commands/WidenCommand.php b/vendor/intervention/image/src/Intervention/Image/Imagick/Commands/WidenCommand.php deleted file mode 100644 index a1967534..00000000 --- a/vendor/intervention/image/src/Intervention/Image/Imagick/Commands/WidenCommand.php +++ /dev/null @@ -1,28 +0,0 @@ -argument(0)->type('digit')->required()->value(); - $additionalConstraints = $this->argument(1)->type('closure')->value(); - - $this->arguments[0] = $width; - $this->arguments[1] = null; - $this->arguments[2] = function ($constraint) use ($additionalConstraints) { - $constraint->aspectRatio(); - if(is_callable($additionalConstraints)) - $additionalConstraints($constraint); - }; - - return parent::execute($image); - } -} diff --git a/vendor/intervention/image/src/Intervention/Image/Imagick/Decoder.php b/vendor/intervention/image/src/Intervention/Image/Imagick/Decoder.php deleted file mode 100644 index 8cf2420a..00000000 --- a/vendor/intervention/image/src/Intervention/Image/Imagick/Decoder.php +++ /dev/null @@ -1,121 +0,0 @@ -setBackgroundColor(new \ImagickPixel('transparent')); - $core->readImage($path); - $core->setImageType(defined('\Imagick::IMGTYPE_TRUECOLORALPHA') ? \Imagick::IMGTYPE_TRUECOLORALPHA : \Imagick::IMGTYPE_TRUECOLORMATTE); - - } catch (\ImagickException $e) { - throw new \Intervention\Image\Exception\NotReadableException( - "Unable to read image from path ({$path}).", - 0, - $e - ); - } - - // build image - $image = $this->initFromImagick($core); - $image->setFileInfoFromPath($path); - - return $image; - } - - /** - * Initiates new image from GD resource - * - * @param Resource $resource - * @return \Intervention\Image\Image - */ - public function initFromGdResource($resource) - { - throw new \Intervention\Image\Exception\NotSupportedException( - 'Imagick driver is unable to init from GD resource.' - ); - } - - /** - * Initiates new image from Imagick object - * - * @param Imagick $object - * @return \Intervention\Image\Image - */ - public function initFromImagick(\Imagick $object) - { - // currently animations are not supported - // so all images are turned into static - $object = $this->removeAnimation($object); - - // reset image orientation - $object->setImageOrientation(\Imagick::ORIENTATION_UNDEFINED); - - return new Image(new Driver, $object); - } - - /** - * Initiates new image from binary data - * - * @param string $data - * @return \Intervention\Image\Image - */ - public function initFromBinary($binary) - { - $core = new \Imagick; - - try { - $core->setBackgroundColor(new \ImagickPixel('transparent')); - - $core->readImageBlob($binary); - - } catch (\ImagickException $e) { - throw new \Intervention\Image\Exception\NotReadableException( - "Unable to read image from binary data.", - 0, - $e - ); - } - - // build image - $image = $this->initFromImagick($core); - $image->mime = finfo_buffer(finfo_open(FILEINFO_MIME_TYPE), $binary); - - return $image; - } - - /** - * Turns object into one frame Imagick object - * by removing all frames except first - * - * @param Imagick $object - * @return Imagick - */ - private function removeAnimation(\Imagick $object) - { - $imagick = new \Imagick; - - foreach ($object as $frame) { - $imagick->addImage($frame->getImage()); - break; - } - - $object->destroy(); - - return $imagick; - } -} diff --git a/vendor/intervention/image/src/Intervention/Image/Imagick/Driver.php b/vendor/intervention/image/src/Intervention/Image/Imagick/Driver.php deleted file mode 100644 index 1f2fcc6c..00000000 --- a/vendor/intervention/image/src/Intervention/Image/Imagick/Driver.php +++ /dev/null @@ -1,70 +0,0 @@ -coreAvailable()) { - throw new \Intervention\Image\Exception\NotSupportedException( - "ImageMagick module not available with this PHP installation." - ); - } - - $this->decoder = $decoder ? $decoder : new Decoder; - $this->encoder = $encoder ? $encoder : new Encoder; - } - - /** - * Creates new image instance - * - * @param int $width - * @param int $height - * @param mixed $background - * @return \Intervention\Image\Image - */ - public function newImage($width, $height, $background = null) - { - $background = new Color($background); - - // create empty core - $core = new \Imagick; - $core->newImage($width, $height, $background->getPixel(), 'png'); - $core->setType(\Imagick::IMGTYPE_UNDEFINED); - $core->setImageType(\Imagick::IMGTYPE_UNDEFINED); - $core->setColorspace(\Imagick::COLORSPACE_UNDEFINED); - - // build image - $image = new \Intervention\Image\Image(new static, $core); - - return $image; - } - - /** - * Reads given string into color object - * - * @param string $value - * @return AbstractColor - */ - public function parseColor($value) - { - return new Color($value); - } - - /** - * Checks if core module installation is available - * - * @return boolean - */ - protected function coreAvailable() - { - return (extension_loaded('imagick') && class_exists('Imagick')); - } -} diff --git a/vendor/intervention/image/src/Intervention/Image/Imagick/Encoder.php b/vendor/intervention/image/src/Intervention/Image/Imagick/Encoder.php deleted file mode 100644 index 44452f24..00000000 --- a/vendor/intervention/image/src/Intervention/Image/Imagick/Encoder.php +++ /dev/null @@ -1,168 +0,0 @@ -image->getCore(); - $imagick->setImageBackgroundColor('white'); - $imagick->setBackgroundColor('white'); - $imagick = $imagick->mergeImageLayers(\Imagick::LAYERMETHOD_MERGE); - $imagick->setFormat($format); - $imagick->setImageFormat($format); - $imagick->setCompression($compression); - $imagick->setImageCompression($compression); - $imagick->setCompressionQuality($this->quality); - $imagick->setImageCompressionQuality($this->quality); - - return $imagick->getImagesBlob(); - } - - /** - * Processes and returns encoded image as PNG string - * - * @return string - */ - protected function processPng() - { - $format = 'png'; - $compression = \Imagick::COMPRESSION_ZIP; - - $imagick = $this->image->getCore(); - $imagick->setFormat($format); - $imagick->setImageFormat($format); - $imagick->setCompression($compression); - $imagick->setImageCompression($compression); - - return $imagick->getImagesBlob(); - } - - /** - * Processes and returns encoded image as GIF string - * - * @return string - */ - protected function processGif() - { - $format = 'gif'; - $compression = \Imagick::COMPRESSION_LZW; - - $imagick = $this->image->getCore(); - $imagick->setFormat($format); - $imagick->setImageFormat($format); - $imagick->setCompression($compression); - $imagick->setImageCompression($compression); - - return $imagick->getImagesBlob(); - } - - protected function processWebp() - { - if ( ! \Imagick::queryFormats('WEBP')) { - throw new \Intervention\Image\Exception\NotSupportedException( - "Webp format is not supported by Imagick installation." - ); - } - - $format = 'webp'; - $compression = \Imagick::COMPRESSION_JPEG; - - $imagick = $this->image->getCore(); - $imagick = $imagick->mergeImageLayers(\Imagick::LAYERMETHOD_MERGE); - $imagick->setFormat($format); - $imagick->setImageFormat($format); - $imagick->setCompression($compression); - $imagick->setImageCompression($compression); - $imagick->setImageCompressionQuality($this->quality); - - return $imagick->getImagesBlob(); - } - - /** - * Processes and returns encoded image as TIFF string - * - * @return string - */ - protected function processTiff() - { - $format = 'tiff'; - $compression = \Imagick::COMPRESSION_UNDEFINED; - - $imagick = $this->image->getCore(); - $imagick->setFormat($format); - $imagick->setImageFormat($format); - $imagick->setCompression($compression); - $imagick->setImageCompression($compression); - $imagick->setCompressionQuality($this->quality); - $imagick->setImageCompressionQuality($this->quality); - - return $imagick->getImagesBlob(); - } - - /** - * Processes and returns encoded image as BMP string - * - * @return string - */ - protected function processBmp() - { - $format = 'bmp'; - $compression = \Imagick::COMPRESSION_UNDEFINED; - - $imagick = $this->image->getCore(); - $imagick->setFormat($format); - $imagick->setImageFormat($format); - $imagick->setCompression($compression); - $imagick->setImageCompression($compression); - - return $imagick->getImagesBlob(); - } - - /** - * Processes and returns encoded image as ICO string - * - * @return string - */ - protected function processIco() - { - $format = 'ico'; - $compression = \Imagick::COMPRESSION_UNDEFINED; - - $imagick = $this->image->getCore(); - $imagick->setFormat($format); - $imagick->setImageFormat($format); - $imagick->setCompression($compression); - $imagick->setImageCompression($compression); - - return $imagick->getImagesBlob(); - } - - /** - * Processes and returns encoded image as PSD string - * - * @return string - */ - protected function processPsd() - { - $format = 'psd'; - $compression = \Imagick::COMPRESSION_UNDEFINED; - - $imagick = $this->image->getCore(); - $imagick->setFormat($format); - $imagick->setImageFormat($format); - $imagick->setCompression($compression); - $imagick->setImageCompression($compression); - - return $imagick->getImagesBlob(); - } -} diff --git a/vendor/intervention/image/src/Intervention/Image/Imagick/Font.php b/vendor/intervention/image/src/Intervention/Image/Imagick/Font.php deleted file mode 100644 index 7b926679..00000000 --- a/vendor/intervention/image/src/Intervention/Image/Imagick/Font.php +++ /dev/null @@ -1,118 +0,0 @@ -setStrokeAntialias(true); - $draw->setTextAntialias(true); - - // set font file - if ($this->hasApplicableFontFile()) { - $draw->setFont($this->file); - } else { - throw new \Intervention\Image\Exception\RuntimeException( - "Font file must be provided to apply text to image." - ); - } - - // parse text color - $color = new Color($this->color); - - $draw->setFontSize($this->size); - $draw->setFillColor($color->getPixel()); - - // align horizontal - switch (strtolower($this->align)) { - case 'center': - $align = \Imagick::ALIGN_CENTER; - break; - - case 'right': - $align = \Imagick::ALIGN_RIGHT; - break; - - default: - $align = \Imagick::ALIGN_LEFT; - break; - } - - $draw->setTextAlignment($align); - - // align vertical - if (strtolower($this->valign) != 'bottom') { - - // calculate box size - $dimensions = $image->getCore()->queryFontMetrics($draw, $this->text); - - // corrections on y-position - switch (strtolower($this->valign)) { - case 'center': - case 'middle': - $posy = $posy + $dimensions['textHeight'] * 0.65 / 2; - break; - - case 'top': - $posy = $posy + $dimensions['textHeight'] * 0.65; - break; - } - } - - // apply to image - $image->getCore()->annotateImage($draw, $posx, $posy, $this->angle * (-1), $this->text); - } - - /** - * Calculates bounding box of current font setting - * - * @return array - */ - public function getBoxSize() - { - $box = []; - - // build draw object - $draw = new \ImagickDraw(); - $draw->setStrokeAntialias(true); - $draw->setTextAntialias(true); - - // set font file - if ($this->hasApplicableFontFile()) { - $draw->setFont($this->file); - } else { - throw new \Intervention\Image\Exception\RuntimeException( - "Font file must be provided to apply text to image." - ); - } - - $draw->setFontSize($this->size); - - $dimensions = (new \Imagick())->queryFontMetrics($draw, $this->text); - - if (strlen($this->text) == 0) { - // no text -> no boxsize - $box['width'] = 0; - $box['height'] = 0; - } else { - // get boxsize - $box['width'] = intval(abs($dimensions['textWidth'])); - $box['height'] = intval(abs($dimensions['textHeight'])); - } - - return $box; - } -} diff --git a/vendor/intervention/image/src/Intervention/Image/Imagick/Shapes/CircleShape.php b/vendor/intervention/image/src/Intervention/Image/Imagick/Shapes/CircleShape.php deleted file mode 100644 index 24172ea1..00000000 --- a/vendor/intervention/image/src/Intervention/Image/Imagick/Shapes/CircleShape.php +++ /dev/null @@ -1,40 +0,0 @@ -width = is_numeric($diameter) ? intval($diameter) : $this->diameter; - $this->height = is_numeric($diameter) ? intval($diameter) : $this->diameter; - $this->diameter = is_numeric($diameter) ? intval($diameter) : $this->diameter; - } - - /** - * Draw current circle on given image - * - * @param Image $image - * @param int $x - * @param int $y - * @return boolean - */ - public function applyToImage(Image $image, $x = 0, $y = 0) - { - return parent::applyToImage($image, $x, $y); - } -} diff --git a/vendor/intervention/image/src/Intervention/Image/Imagick/Shapes/EllipseShape.php b/vendor/intervention/image/src/Intervention/Image/Imagick/Shapes/EllipseShape.php deleted file mode 100644 index 1b89942f..00000000 --- a/vendor/intervention/image/src/Intervention/Image/Imagick/Shapes/EllipseShape.php +++ /dev/null @@ -1,65 +0,0 @@ -width = is_numeric($width) ? intval($width) : $this->width; - $this->height = is_numeric($height) ? intval($height) : $this->height; - } - - /** - * Draw ellipse instance on given image - * - * @param Image $image - * @param int $x - * @param int $y - * @return boolean - */ - public function applyToImage(Image $image, $x = 0, $y = 0) - { - $circle = new \ImagickDraw; - - // set background - $bgcolor = new Color($this->background); - $circle->setFillColor($bgcolor->getPixel()); - - // set border - if ($this->hasBorder()) { - $border_color = new Color($this->border_color); - $circle->setStrokeWidth($this->border_width); - $circle->setStrokeColor($border_color->getPixel()); - } - - $circle->ellipse($x, $y, $this->width / 2, $this->height / 2, 0, 360); - - $image->getCore()->drawImage($circle); - - return true; - } -} diff --git a/vendor/intervention/image/src/Intervention/Image/Imagick/Shapes/LineShape.php b/vendor/intervention/image/src/Intervention/Image/Imagick/Shapes/LineShape.php deleted file mode 100644 index 638b97b6..00000000 --- a/vendor/intervention/image/src/Intervention/Image/Imagick/Shapes/LineShape.php +++ /dev/null @@ -1,93 +0,0 @@ -x = is_numeric($x) ? intval($x) : $this->x; - $this->y = is_numeric($y) ? intval($y) : $this->y; - } - - /** - * Set current line color - * - * @param string $color - * @return void - */ - public function color($color) - { - $this->color = $color; - } - - /** - * Set current line width in pixels - * - * @param int $width - * @return void - */ - public function width($width) - { - $this->width = $width; - } - - /** - * Draw current instance of line to given endpoint on given image - * - * @param Image $image - * @param int $x - * @param int $y - * @return boolean - */ - public function applyToImage(Image $image, $x = 0, $y = 0) - { - $line = new \ImagickDraw; - - $color = new Color($this->color); - $line->setStrokeColor($color->getPixel()); - $line->setStrokeWidth($this->width); - - $line->line($this->x, $this->y, $x, $y); - $image->getCore()->drawImage($line); - - return true; - } -} diff --git a/vendor/intervention/image/src/Intervention/Image/Imagick/Shapes/PolygonShape.php b/vendor/intervention/image/src/Intervention/Image/Imagick/Shapes/PolygonShape.php deleted file mode 100644 index 4c087b37..00000000 --- a/vendor/intervention/image/src/Intervention/Image/Imagick/Shapes/PolygonShape.php +++ /dev/null @@ -1,80 +0,0 @@ -points = $this->formatPoints($points); - } - - /** - * Draw polygon on given image - * - * @param Image $image - * @param int $x - * @param int $y - * @return boolean - */ - public function applyToImage(Image $image, $x = 0, $y = 0) - { - $polygon = new \ImagickDraw; - - // set background - $bgcolor = new Color($this->background); - $polygon->setFillColor($bgcolor->getPixel()); - - // set border - if ($this->hasBorder()) { - $border_color = new Color($this->border_color); - $polygon->setStrokeWidth($this->border_width); - $polygon->setStrokeColor($border_color->getPixel()); - } - - $polygon->polygon($this->points); - - $image->getCore()->drawImage($polygon); - - return true; - } - - /** - * Format polygon points to Imagick format - * - * @param Array $points - * @return Array - */ - private function formatPoints($points) - { - $ipoints = []; - $count = 1; - - foreach ($points as $key => $value) { - if ($count%2 === 0) { - $y = $value; - $ipoints[] = ['x' => $x, 'y' => $y]; - } else { - $x = $value; - } - $count++; - } - - return $ipoints; - } -} diff --git a/vendor/intervention/image/src/Intervention/Image/Imagick/Shapes/RectangleShape.php b/vendor/intervention/image/src/Intervention/Image/Imagick/Shapes/RectangleShape.php deleted file mode 100644 index 2d1a09f5..00000000 --- a/vendor/intervention/image/src/Intervention/Image/Imagick/Shapes/RectangleShape.php +++ /dev/null @@ -1,83 +0,0 @@ -x1 = is_numeric($x1) ? intval($x1) : $this->x1; - $this->y1 = is_numeric($y1) ? intval($y1) : $this->y1; - $this->x2 = is_numeric($x2) ? intval($x2) : $this->x2; - $this->y2 = is_numeric($y2) ? intval($y2) : $this->y2; - } - - /** - * Draw rectangle to given image at certain position - * - * @param Image $image - * @param int $x - * @param int $y - * @return boolean - */ - public function applyToImage(Image $image, $x = 0, $y = 0) - { - $rectangle = new \ImagickDraw; - - // set background - $bgcolor = new Color($this->background); - $rectangle->setFillColor($bgcolor->getPixel()); - - // set border - if ($this->hasBorder()) { - $border_color = new Color($this->border_color); - $rectangle->setStrokeWidth($this->border_width); - $rectangle->setStrokeColor($border_color->getPixel()); - } - - $rectangle->rectangle($this->x1, $this->y1, $this->x2, $this->y2); - - $image->getCore()->drawImage($rectangle); - - return true; - } -} diff --git a/vendor/intervention/image/src/Intervention/Image/Point.php b/vendor/intervention/image/src/Intervention/Image/Point.php deleted file mode 100644 index d51452e0..00000000 --- a/vendor/intervention/image/src/Intervention/Image/Point.php +++ /dev/null @@ -1,64 +0,0 @@ -x = is_numeric($x) ? intval($x) : 0; - $this->y = is_numeric($y) ? intval($y) : 0; - } - - /** - * Sets X coordinate - * - * @param int $x - */ - public function setX($x) - { - $this->x = intval($x); - } - - /** - * Sets Y coordinate - * - * @param int $y - */ - public function setY($y) - { - $this->y = intval($y); - } - - /** - * Sets both X and Y coordinate - * - * @param int $x - * @param int $y - */ - public function setPosition($x, $y) - { - $this->setX($x); - $this->setY($y); - } -} diff --git a/vendor/intervention/image/src/Intervention/Image/Response.php b/vendor/intervention/image/src/Intervention/Image/Response.php deleted file mode 100644 index 8e5c7cac..00000000 --- a/vendor/intervention/image/src/Intervention/Image/Response.php +++ /dev/null @@ -1,69 +0,0 @@ -image = $image; - $this->format = $format ? $format : $image->mime; - $this->quality = $quality ? $quality : 90; - } - - /** - * Builds response according to settings - * - * @return mixed - */ - public function make() - { - $this->image->encode($this->format, $this->quality); - $data = $this->image->getEncoded(); - $mime = finfo_buffer(finfo_open(FILEINFO_MIME_TYPE), $data); - $length = strlen($data); - - if (function_exists('app') && is_a($app = app(), 'Illuminate\Foundation\Application')) { - - $response = \Illuminate\Support\Facades\Response::make($data); - $response->header('Content-Type', $mime); - $response->header('Content-Length', $length); - - } else { - - header('Content-Type: ' . $mime); - header('Content-Length: ' . $length); - $response = $data; - } - - return $response; - } -} diff --git a/vendor/intervention/image/src/Intervention/Image/Size.php b/vendor/intervention/image/src/Intervention/Image/Size.php deleted file mode 100644 index 667784ca..00000000 --- a/vendor/intervention/image/src/Intervention/Image/Size.php +++ /dev/null @@ -1,373 +0,0 @@ -width = is_numeric($width) ? intval($width) : 1; - $this->height = is_numeric($height) ? intval($height) : 1; - $this->pivot = $pivot ? $pivot : new Point; - } - - /** - * Set the width and height absolutely - * - * @param int $width - * @param int $height - */ - public function set($width, $height) - { - $this->width = $width; - $this->height = $height; - } - - /** - * Set current pivot point - * - * @param Point $point - */ - public function setPivot(Point $point) - { - $this->pivot = $point; - } - - /** - * Get the current width - * - * @return int - */ - public function getWidth() - { - return $this->width; - } - - /** - * Get the current height - * - * @return int - */ - public function getHeight() - { - return $this->height; - } - - /** - * Calculate the current aspect ratio - * - * @return float - */ - public function getRatio() - { - return $this->width / $this->height; - } - - /** - * Resize to desired width and/or height - * - * @param int $width - * @param int $height - * @param Closure $callback - * @return Size - */ - public function resize($width, $height, Closure $callback = null) - { - if (is_null($width) && is_null($height)) { - throw new \Intervention\Image\Exception\InvalidArgumentException( - "Width or height needs to be defined." - ); - } - - // new size with dominant width - $dominant_w_size = clone $this; - $dominant_w_size->resizeHeight($height, $callback); - $dominant_w_size->resizeWidth($width, $callback); - - // new size with dominant height - $dominant_h_size = clone $this; - $dominant_h_size->resizeWidth($width, $callback); - $dominant_h_size->resizeHeight($height, $callback); - - // decide which size to use - if ($dominant_h_size->fitsInto(new self($width, $height))) { - $this->set($dominant_h_size->width, $dominant_h_size->height); - } else { - $this->set($dominant_w_size->width, $dominant_w_size->height); - } - - return $this; - } - - /** - * Scale size according to given constraints - * - * @param int $width - * @param Closure $callback - * @return Size - */ - private function resizeWidth($width, Closure $callback = null) - { - $constraint = $this->getConstraint($callback); - - if ($constraint->isFixed(Constraint::UPSIZE)) { - $max_width = $constraint->getSize()->getWidth(); - $max_height = $constraint->getSize()->getHeight(); - } - - if (is_numeric($width)) { - - if ($constraint->isFixed(Constraint::UPSIZE)) { - $this->width = ($width > $max_width) ? $max_width : $width; - } else { - $this->width = $width; - } - - if ($constraint->isFixed(Constraint::ASPECTRATIO)) { - $h = intval(round($this->width / $constraint->getSize()->getRatio())); - - if ($constraint->isFixed(Constraint::UPSIZE)) { - $this->height = ($h > $max_height) ? $max_height : $h; - } else { - $this->height = $h; - } - } - } - } - - /** - * Scale size according to given constraints - * - * @param int $height - * @param Closure $callback - * @return Size - */ - private function resizeHeight($height, Closure $callback = null) - { - $constraint = $this->getConstraint($callback); - - if ($constraint->isFixed(Constraint::UPSIZE)) { - $max_width = $constraint->getSize()->getWidth(); - $max_height = $constraint->getSize()->getHeight(); - } - - if (is_numeric($height)) { - - if ($constraint->isFixed(Constraint::UPSIZE)) { - $this->height = ($height > $max_height) ? $max_height : $height; - } else { - $this->height = $height; - } - - if ($constraint->isFixed(Constraint::ASPECTRATIO)) { - $w = intval(round($this->height * $constraint->getSize()->getRatio())); - - if ($constraint->isFixed(Constraint::UPSIZE)) { - $this->width = ($w > $max_width) ? $max_width : $w; - } else { - $this->width = $w; - } - } - } - } - - /** - * Calculate the relative position to another Size - * based on the pivot point settings of both sizes. - * - * @param Size $size - * @return \Intervention\Image\Point - */ - public function relativePosition(Size $size) - { - $x = $this->pivot->x - $size->pivot->x; - $y = $this->pivot->y - $size->pivot->y; - - return new Point($x, $y); - } - - /** - * Resize given Size to best fitting size of current size. - * - * @param Size $size - * @return \Intervention\Image\Size - */ - public function fit(Size $size, $position = 'center') - { - // create size with auto height - $auto_height = clone $size; - - $auto_height->resize($this->width, null, function ($constraint) { - $constraint->aspectRatio(); - }); - - // decide which version to use - if ($auto_height->fitsInto($this)) { - - $size = $auto_height; - - } else { - - // create size with auto width - $auto_width = clone $size; - - $auto_width->resize(null, $this->height, function ($constraint) { - $constraint->aspectRatio(); - }); - - $size = $auto_width; - } - - $this->align($position); - $size->align($position); - $size->setPivot($this->relativePosition($size)); - - return $size; - } - - /** - * Checks if given size fits into current size - * - * @param Size $size - * @return boolean - */ - public function fitsInto(Size $size) - { - return ($this->width <= $size->width) && ($this->height <= $size->height); - } - - /** - * Aligns current size's pivot point to given position - * and moves point automatically by offset. - * - * @param string $position - * @param int $offset_x - * @param int $offset_y - * @return \Intervention\Image\Size - */ - public function align($position, $offset_x = 0, $offset_y = 0) - { - switch (strtolower($position)) { - - case 'top': - case 'top-center': - case 'top-middle': - case 'center-top': - case 'middle-top': - $x = intval($this->width / 2); - $y = 0 + $offset_y; - break; - - case 'top-right': - case 'right-top': - $x = $this->width - $offset_x; - $y = 0 + $offset_y; - break; - - case 'left': - case 'left-center': - case 'left-middle': - case 'center-left': - case 'middle-left': - $x = 0 + $offset_x; - $y = intval($this->height / 2); - break; - - case 'right': - case 'right-center': - case 'right-middle': - case 'center-right': - case 'middle-right': - $x = $this->width - $offset_x; - $y = intval($this->height / 2); - break; - - case 'bottom-left': - case 'left-bottom': - $x = 0 + $offset_x; - $y = $this->height - $offset_y; - break; - - case 'bottom': - case 'bottom-center': - case 'bottom-middle': - case 'center-bottom': - case 'middle-bottom': - $x = intval($this->width / 2); - $y = $this->height - $offset_y; - break; - - case 'bottom-right': - case 'right-bottom': - $x = $this->width - $offset_x; - $y = $this->height - $offset_y; - break; - - case 'center': - case 'middle': - case 'center-center': - case 'middle-middle': - $x = intval($this->width / 2); - $y = intval($this->height / 2); - break; - - default: - case 'top-left': - case 'left-top': - $x = 0 + $offset_x; - $y = 0 + $offset_y; - break; - } - - $this->pivot->setPosition($x, $y); - - return $this; - } - - /** - * Runs constraints on current size - * - * @param Closure $callback - * @return \Intervention\Image\Constraint - */ - private function getConstraint(Closure $callback = null) - { - $constraint = new Constraint(clone $this); - - if (is_callable($callback)) { - $callback($constraint); - } - - return $constraint; - } -} diff --git a/vendor/intervention/image/src/config/config.php b/vendor/intervention/image/src/config/config.php deleted file mode 100644 index 2b1d2c3e..00000000 --- a/vendor/intervention/image/src/config/config.php +++ /dev/null @@ -1,20 +0,0 @@ - 'gd' - -]; diff --git a/vendor/jakub-onderka/php-console-color/.travis.yml b/vendor/jakub-onderka/php-console-color/.travis.yml deleted file mode 100644 index 4671dca5..00000000 --- a/vendor/jakub-onderka/php-console-color/.travis.yml +++ /dev/null @@ -1,15 +0,0 @@ -language: php - -php: - - 5.3.3 - - 5.4 - - 5.5 - -before_script: - - composer self-update - - composer install --no-interaction --prefer-source --dev - -script: - - ant phplint - - ant phpcs - - ant phpunit \ No newline at end of file diff --git a/vendor/jakub-onderka/php-console-color/build.xml b/vendor/jakub-onderka/php-console-color/build.xml deleted file mode 100644 index bb4ba66d..00000000 --- a/vendor/jakub-onderka/php-console-color/build.xml +++ /dev/null @@ -1,93 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/vendor/jakub-onderka/php-console-color/composer.json b/vendor/jakub-onderka/php-console-color/composer.json deleted file mode 100644 index 0721abca..00000000 --- a/vendor/jakub-onderka/php-console-color/composer.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "name": "jakub-onderka/php-console-color", - "license": "BSD-2-Clause", - "version": "0.1", - "authors": [ - { - "name": "Jakub Onderka", - "email": "jakub.onderka@gmail.com" - } - ], - "autoload": { - "psr-0": {"JakubOnderka\\PhpConsoleColor": "src/"} - }, - "require": { - "php": ">=5.3.2" - }, - "require-dev": { - "phpunit/phpunit": "3.7.*", - "jakub-onderka/php-parallel-lint": "0.*", - "jakub-onderka/php-var-dump-check": "0.*", - "squizlabs/php_codesniffer": "1.*", - "jakub-onderka/php-code-style": "1.0" - } -} \ No newline at end of file diff --git a/vendor/jakub-onderka/php-console-color/example.php b/vendor/jakub-onderka/php-console-color/example.php deleted file mode 100644 index 5e698a24..00000000 --- a/vendor/jakub-onderka/php-console-color/example.php +++ /dev/null @@ -1,38 +0,0 @@ -isSupported() ? 'Yes' : 'No') . "\n"; -echo "256 colors are supported: " . ($consoleColor->are256ColorsSupported() ? 'Yes' : 'No') . "\n\n"; - -if ($consoleColor->isSupported()) { - foreach ($consoleColor->getPossibleStyles() as $style) { - echo $consoleColor->apply($style, $style) . "\n"; - } -} - -echo "\n"; - -if ($consoleColor->are256ColorsSupported()) { - echo "Foreground colors:\n"; - for ($i = 1; $i <= 255; $i++) { - echo $consoleColor->apply("color_$i", str_pad($i, 6, ' ', STR_PAD_BOTH)); - - if ($i % 15 === 0) { - echo "\n"; - } - } - - echo "\nBackground colors:\n"; - - for ($i = 1; $i <= 255; $i++) { - echo $consoleColor->apply("bg_color_$i", str_pad($i, 6, ' ', STR_PAD_BOTH)); - - if ($i % 15 === 0) { - echo "\n"; - } - } - - echo "\n"; -} diff --git a/vendor/jakub-onderka/php-console-color/phpunit.xml b/vendor/jakub-onderka/php-console-color/phpunit.xml deleted file mode 100644 index 74011d9d..00000000 --- a/vendor/jakub-onderka/php-console-color/phpunit.xml +++ /dev/null @@ -1,15 +0,0 @@ - - - - - tests/* - - - - - - - vendor - - - \ No newline at end of file diff --git a/vendor/jakub-onderka/php-console-color/src/JakubOnderka/PhpConsoleColor/ConsoleColor.php b/vendor/jakub-onderka/php-console-color/src/JakubOnderka/PhpConsoleColor/ConsoleColor.php deleted file mode 100644 index c367a765..00000000 --- a/vendor/jakub-onderka/php-console-color/src/JakubOnderka/PhpConsoleColor/ConsoleColor.php +++ /dev/null @@ -1,280 +0,0 @@ - null, - 'bold' => '1', - 'dark' => '2', - 'italic' => '3', - 'underline' => '4', - 'blink' => '5', - 'reverse' => '7', - 'concealed' => '8', - - 'default' => '39', - 'black' => '30', - 'red' => '31', - 'green' => '32', - 'yellow' => '33', - 'blue' => '34', - 'magenta' => '35', - 'cyan' => '36', - 'light_gray' => '37', - - 'dark_gray' => '90', - 'light_red' => '91', - 'light_green' => '92', - 'light_yellow' => '93', - 'light_blue' => '94', - 'light_magenta' => '95', - 'light_cyan' => '96', - 'white' => '97', - - 'bg_default' => '49', - 'bg_black' => '40', - 'bg_red' => '41', - 'bg_green' => '42', - 'bg_yellow' => '43', - 'bg_blue' => '44', - 'bg_magenta' => '45', - 'bg_cyan' => '46', - 'bg_light_gray' => '47', - - 'bg_dark_gray' => '100', - 'bg_light_red' => '101', - 'bg_light_green' => '102', - 'bg_light_yellow' => '103', - 'bg_light_blue' => '104', - 'bg_light_magenta' => '105', - 'bg_light_cyan' => '106', - 'bg_white' => '107', - ); - - /** @var array */ - private $themes = array(); - - public function __construct() - { - $this->isSupported = $this->isSupported(); - } - - /** - * @param string|array $style - * @param string $text - * @return string - * @throws InvalidStyleException - * @throws \InvalidArgumentException - */ - public function apply($style, $text) - { - if (!$this->isStyleForced() && !$this->isSupported()) { - return $text; - } - - if (is_string($style)) { - $style = array($style); - } - if (!is_array($style)) { - throw new \InvalidArgumentException("Style must be string or array."); - } - - $sequences = array(); - - foreach ($style as $s) { - if (isset($this->themes[$s])) { - $sequences = array_merge($sequences, $this->themeSequence($s)); - } else if ($this->isValidStyle($s)) { - $sequences[] = $this->styleSequence($s); - } else { - throw new InvalidStyleException($s); - } - } - - $sequences = array_filter($sequences, function ($val) { - return $val !== null; - }); - - if (empty($sequences)) { - return $text; - } - - return $this->escSequence(implode(';', $sequences)) . $text . $this->escSequence(self::RESET_STYLE); - } - - /** - * @param bool $forceStyle - */ - public function setForceStyle($forceStyle) - { - $this->forceStyle = (bool) $forceStyle; - } - - /** - * @return bool - */ - public function isStyleForced() - { - return $this->forceStyle; - } - - /** - * @param array $themes - * @throws InvalidStyleException - * @throws \InvalidArgumentException - */ - public function setThemes(array $themes) - { - $this->themes = array(); - foreach ($themes as $name => $styles) { - $this->addTheme($name, $styles); - } - } - - /** - * @param string $name - * @param array|string $styles - * @throws \InvalidArgumentException - * @throws InvalidStyleException - */ - public function addTheme($name, $styles) - { - if (is_string($styles)) { - $styles = array($styles); - } - if (!is_array($styles)) { - throw new \InvalidArgumentException("Style must be string or array."); - } - - foreach ($styles as $style) { - if (!$this->isValidStyle($style)) { - throw new InvalidStyleException($style); - } - } - - $this->themes[$name] = $styles; - } - - /** - * @return array - */ - public function getThemes() - { - return $this->themes; - } - - /** - * @param string $name - * @return bool - */ - public function hasTheme($name) - { - return isset($this->themes[$name]); - } - - /** - * @param string $name - */ - public function removeTheme($name) - { - unset($this->themes[$name]); - } - - /** - * @return bool - */ - public function isSupported() - { - if (DIRECTORY_SEPARATOR === '\\') { - return getenv('ANSICON') !== false || getenv('ConEmuANSI') === 'ON'; - } - - return function_exists('posix_isatty') && @posix_isatty(STDOUT); - } - - /** - * @return bool - */ - public function are256ColorsSupported() - { - return DIRECTORY_SEPARATOR === '/' && strpos(getenv('TERM'), '256color') !== false; - } - - /** - * @return array - */ - public function getPossibleStyles() - { - return array_keys($this->styles); - } - - /** - * @param string $name - * @return string - * @throws InvalidStyleException - */ - private function themeSequence($name) - { - $sequences = array(); - foreach ($this->themes[$name] as $style) { - $sequences[] = $this->styleSequence($style); - } - return $sequences; - } - - /** - * @param string $style - * @return string - * @throws InvalidStyleException - */ - private function styleSequence($style) - { - if (array_key_exists($style, $this->styles)) { - return $this->styles[$style]; - } - - if (!$this->are256ColorsSupported()) { - return null; - } - - preg_match(self::COLOR256_REGEXP, $style, $matches); - - $type = $matches[1] === 'bg_' ? self::BACKGROUND : self::FOREGROUND; - $value = $matches[2]; - - return "$type;5;$value"; - } - - /** - * @param string $style - * @return bool - */ - private function isValidStyle($style) - { - return array_key_exists($style, $this->styles) || preg_match(self::COLOR256_REGEXP, $style); - } - - /** - * @param string|int $value - * @return string - */ - private function escSequence($value) - { - return "\033[{$value}m"; - } -} \ No newline at end of file diff --git a/vendor/jakub-onderka/php-console-color/src/JakubOnderka/PhpConsoleColor/InvalidStyleException.php b/vendor/jakub-onderka/php-console-color/src/JakubOnderka/PhpConsoleColor/InvalidStyleException.php deleted file mode 100644 index 6f1586f6..00000000 --- a/vendor/jakub-onderka/php-console-color/src/JakubOnderka/PhpConsoleColor/InvalidStyleException.php +++ /dev/null @@ -1,10 +0,0 @@ -isSupportedForce = $isSupported; - } - - public function isSupported() - { - return $this->isSupportedForce; - } - - public function setAre256ColorsSupported($are256ColorsSupported) - { - $this->are256ColorsSupportedForce = $are256ColorsSupported; - } - - public function are256ColorsSupported() - { - return $this->are256ColorsSupportedForce; - } -} - -class ConsoleColorTest extends \PHPUnit_Framework_TestCase -{ - /** @var ConsoleColorWithForceSupport */ - private $uut; - - protected function setUp() - { - $this->uut = new ConsoleColorWithForceSupport(); - } - - public function testNone() - { - $output = $this->uut->apply('none', 'text'); - $this->assertEquals("text", $output); - } - - public function testBold() - { - $output = $this->uut->apply('bold', 'text'); - $this->assertEquals("\033[1mtext\033[0m", $output); - } - - public function testBoldColorsAreNotSupported() - { - $this->uut->setIsSupported(false); - - $output = $this->uut->apply('bold', 'text'); - $this->assertEquals("text", $output); - } - - public function testBoldColorsAreNotSupportedButAreForced() - { - $this->uut->setIsSupported(false); - $this->uut->setForceStyle(true); - - $output = $this->uut->apply('bold', 'text'); - $this->assertEquals("\033[1mtext\033[0m", $output); - } - - public function testDark() - { - $output = $this->uut->apply('dark', 'text'); - $this->assertEquals("\033[2mtext\033[0m", $output); - } - - public function testBoldAndDark() - { - $output = $this->uut->apply(array('bold', 'dark'), 'text'); - $this->assertEquals("\033[1;2mtext\033[0m", $output); - } - - public function test256ColorForeground() - { - $output = $this->uut->apply('color_255', 'text'); - $this->assertEquals("\033[38;5;255mtext\033[0m", $output); - } - - public function test256ColorWithoutSupport() - { - $this->uut->setAre256ColorsSupported(false); - - $output = $this->uut->apply('color_255', 'text'); - $this->assertEquals("text", $output); - } - - public function test256ColorBackground() - { - $output = $this->uut->apply('bg_color_255', 'text'); - $this->assertEquals("\033[48;5;255mtext\033[0m", $output); - } - - public function test256ColorForegroundAndBackground() - { - $output = $this->uut->apply(array('color_200', 'bg_color_255'), 'text'); - $this->assertEquals("\033[38;5;200;48;5;255mtext\033[0m", $output); - } - - public function testSetOwnTheme() - { - $this->uut->setThemes(array('bold_dark' => array('bold', 'dark'))); - $output = $this->uut->apply(array('bold_dark'), 'text'); - $this->assertEquals("\033[1;2mtext\033[0m", $output); - } - - public function testAddOwnTheme() - { - $this->uut->addTheme('bold_own', 'bold'); - $output = $this->uut->apply(array('bold_own'), 'text'); - $this->assertEquals("\033[1mtext\033[0m", $output); - } - - public function testAddOwnThemeArray() - { - $this->uut->addTheme('bold_dark', array('bold', 'dark')); - $output = $this->uut->apply(array('bold_dark'), 'text'); - $this->assertEquals("\033[1;2mtext\033[0m", $output); - } - - public function testOwnWithStyle() - { - $this->uut->addTheme('bold_dark', array('bold', 'dark')); - $output = $this->uut->apply(array('bold_dark', 'italic'), 'text'); - $this->assertEquals("\033[1;2;3mtext\033[0m", $output); - } - - public function testHasAndRemoveTheme() - { - $this->assertFalse($this->uut->hasTheme('bold_dark')); - - $this->uut->addTheme('bold_dark', array('bold', 'dark')); - $this->assertTrue($this->uut->hasTheme('bold_dark')); - - $this->uut->removeTheme('bold_dark'); - $this->assertFalse($this->uut->hasTheme('bold_dark')); - } - - public function testApplyInvalidArgument() - { - $this->setExpectedException('\InvalidArgumentException'); - $this->uut->apply(new stdClass(), 'text'); - } - - public function testApplyInvalidStyleName() - { - $this->setExpectedException('\JakubOnderka\PhpConsoleColor\InvalidStyleException'); - $this->uut->apply('invalid', 'text'); - } - - public function testApplyInvalid256Color() - { - $this->setExpectedException('\JakubOnderka\PhpConsoleColor\InvalidStyleException'); - $this->uut->apply('color_2134', 'text'); - } - - public function testThemeInvalidStyle() - { - $this->setExpectedException('\JakubOnderka\PhpConsoleColor\InvalidStyleException'); - $this->uut->addTheme('invalid', array('invalid')); - } - - public function testForceStyle() - { - $this->assertFalse($this->uut->isStyleForced()); - $this->uut->setForceStyle(true); - $this->assertTrue($this->uut->isStyleForced()); - } - - public function testGetPossibleStyles() - { - $this->assertInternalType('array', $this->uut->getPossibleStyles()); - $this->assertNotEmpty($this->uut->getPossibleStyles()); - } -} - diff --git a/vendor/jakub-onderka/php-console-color/tests/bootstrap.php b/vendor/jakub-onderka/php-console-color/tests/bootstrap.php deleted file mode 100644 index 7500417e..00000000 --- a/vendor/jakub-onderka/php-console-color/tests/bootstrap.php +++ /dev/null @@ -1,2 +0,0 @@ -getWholeFile($fileContent); -``` - ------- - -[![Build Status](https://travis-ci.org/JakubOnderka/PHP-Console-Highlighter.svg?branch=master)](https://travis-ci.org/JakubOnderka/PHP-Console-Highlighter) diff --git a/vendor/jakub-onderka/php-console-highlighter/build.xml b/vendor/jakub-onderka/php-console-highlighter/build.xml deleted file mode 100644 index d656ea9d..00000000 --- a/vendor/jakub-onderka/php-console-highlighter/build.xml +++ /dev/null @@ -1,93 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/vendor/jakub-onderka/php-console-highlighter/composer.json b/vendor/jakub-onderka/php-console-highlighter/composer.json deleted file mode 100644 index bd2f47a2..00000000 --- a/vendor/jakub-onderka/php-console-highlighter/composer.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "name": "jakub-onderka/php-console-highlighter", - "type": "library", - "license": "MIT", - "authors": [ - { - "name": "Jakub Onderka", - "email": "acci@acci.cz", - "homepage": "http://www.acci.cz/" - } - ], - "autoload": { - "psr-0": {"JakubOnderka\\PhpConsoleHighlighter": "src/"} - }, - "require": { - "php": ">=5.3.0", - "jakub-onderka/php-console-color": "~0.1" - }, - "require-dev": { - "phpunit/phpunit": "~4.0", - "jakub-onderka/php-parallel-lint": "~0.5", - "jakub-onderka/php-var-dump-check": "~0.1", - "squizlabs/php_codesniffer": "~1.5", - "jakub-onderka/php-code-style": "~1.0" - } -} diff --git a/vendor/jakub-onderka/php-console-highlighter/examples/snippet.php b/vendor/jakub-onderka/php-console-highlighter/examples/snippet.php deleted file mode 100644 index 1bf6ac3b..00000000 --- a/vendor/jakub-onderka/php-console-highlighter/examples/snippet.php +++ /dev/null @@ -1,10 +0,0 @@ -getCodeSnippet($fileContent, 3); \ No newline at end of file diff --git a/vendor/jakub-onderka/php-console-highlighter/examples/whole_file.php b/vendor/jakub-onderka/php-console-highlighter/examples/whole_file.php deleted file mode 100644 index 2a023d80..00000000 --- a/vendor/jakub-onderka/php-console-highlighter/examples/whole_file.php +++ /dev/null @@ -1,10 +0,0 @@ -getWholeFile($fileContent); \ No newline at end of file diff --git a/vendor/jakub-onderka/php-console-highlighter/examples/whole_file_line_numbers.php b/vendor/jakub-onderka/php-console-highlighter/examples/whole_file_line_numbers.php deleted file mode 100644 index f9178f2d..00000000 --- a/vendor/jakub-onderka/php-console-highlighter/examples/whole_file_line_numbers.php +++ /dev/null @@ -1,10 +0,0 @@ -getWholeFileWithLineNumbers($fileContent); \ No newline at end of file diff --git a/vendor/jakub-onderka/php-console-highlighter/phpunit.xml b/vendor/jakub-onderka/php-console-highlighter/phpunit.xml deleted file mode 100644 index 74011d9d..00000000 --- a/vendor/jakub-onderka/php-console-highlighter/phpunit.xml +++ /dev/null @@ -1,15 +0,0 @@ - - - - - tests/* - - - - - - - vendor - - - \ No newline at end of file diff --git a/vendor/jakub-onderka/php-console-highlighter/src/JakubOnderka/PhpConsoleHighlighter/Highlighter.php b/vendor/jakub-onderka/php-console-highlighter/src/JakubOnderka/PhpConsoleHighlighter/Highlighter.php deleted file mode 100644 index b908e931..00000000 --- a/vendor/jakub-onderka/php-console-highlighter/src/JakubOnderka/PhpConsoleHighlighter/Highlighter.php +++ /dev/null @@ -1,267 +0,0 @@ - 'red', - self::TOKEN_COMMENT => 'yellow', - self::TOKEN_KEYWORD => 'green', - self::TOKEN_DEFAULT => 'default', - self::TOKEN_HTML => 'cyan', - - self::ACTUAL_LINE_MARK => 'red', - self::LINE_NUMBER => 'dark_gray', - ); - - /** - * @param ConsoleColor $color - */ - public function __construct(ConsoleColor $color) - { - $this->color = $color; - - foreach ($this->defaultTheme as $name => $styles) { - if (!$this->color->hasTheme($name)) { - $this->color->addTheme($name, $styles); - } - } - } - - /** - * @param string $source - * @param int $lineNumber - * @param int $linesBefore - * @param int $linesAfter - * @return string - * @throws \JakubOnderka\PhpConsoleColor\InvalidStyleException - * @throws \InvalidArgumentException - */ - public function getCodeSnippet($source, $lineNumber, $linesBefore = 2, $linesAfter = 2) - { - $tokenLines = $this->getHighlightedLines($source); - - $offset = $lineNumber - $linesBefore - 1; - $offset = max($offset, 0); - $length = $linesAfter + $linesBefore + 1; - $tokenLines = array_slice($tokenLines, $offset, $length, $preserveKeys = true); - - $lines = $this->colorLines($tokenLines); - - return $this->lineNumbers($lines, $lineNumber); - } - - /** - * @param string $source - * @return string - * @throws \JakubOnderka\PhpConsoleColor\InvalidStyleException - * @throws \InvalidArgumentException - */ - public function getWholeFile($source) - { - $tokenLines = $this->getHighlightedLines($source); - $lines = $this->colorLines($tokenLines); - return implode(PHP_EOL, $lines); - } - - /** - * @param string $source - * @return string - * @throws \JakubOnderka\PhpConsoleColor\InvalidStyleException - * @throws \InvalidArgumentException - */ - public function getWholeFileWithLineNumbers($source) - { - $tokenLines = $this->getHighlightedLines($source); - $lines = $this->colorLines($tokenLines); - return $this->lineNumbers($lines); - } - - /** - * @param string $source - * @return array - */ - private function getHighlightedLines($source) - { - $source = str_replace(array("\r\n", "\r"), "\n", $source); - $tokens = $this->tokenize($source); - return $this->splitToLines($tokens); - } - - /** - * @param string $source - * @return array - */ - private function tokenize($source) - { - $tokens = token_get_all($source); - - $output = array(); - $currentType = null; - $buffer = ''; - - foreach ($tokens as $token) { - if (is_array($token)) { - switch ($token[0]) { - case T_INLINE_HTML: - $newType = self::TOKEN_HTML; - break; - - case T_COMMENT: - case T_DOC_COMMENT: - $newType = self::TOKEN_COMMENT; - break; - - case T_ENCAPSED_AND_WHITESPACE: - case T_CONSTANT_ENCAPSED_STRING: - $newType = self::TOKEN_STRING; - break; - - case T_WHITESPACE: - break; - - case T_OPEN_TAG: - case T_OPEN_TAG_WITH_ECHO: - case T_CLOSE_TAG: - case T_STRING: - case T_VARIABLE: - - // Constants - case T_DIR: - case T_FILE: - case T_METHOD_C: - case T_DNUMBER: - case T_LNUMBER: - case T_NS_C: - case T_LINE: - case T_CLASS_C: - case T_FUNC_C: - //case T_TRAIT_C: - $newType = self::TOKEN_DEFAULT; - break; - - default: - // Compatibility with PHP 5.3 - if (defined('T_TRAIT_C') && $token[0] === T_TRAIT_C) { - $newType = self::TOKEN_DEFAULT; - } else { - $newType = self::TOKEN_KEYWORD; - } - } - } else { - $newType = $token === '"' ? self::TOKEN_STRING : self::TOKEN_KEYWORD; - } - - if ($currentType === null) { - $currentType = $newType; - } - - if ($currentType != $newType) { - $output[] = array($currentType, $buffer); - $buffer = ''; - $currentType = $newType; - } - - $buffer .= is_array($token) ? $token[1] : $token; - } - - if (isset($newType)) { - $output[] = array($newType, $buffer); - } - - return $output; - } - - /** - * @param array $tokens - * @return array - */ - private function splitToLines(array $tokens) - { - $lines = array(); - - $line = array(); - foreach ($tokens as $token) { - foreach (explode("\n", $token[1]) as $count => $tokenLine) { - if ($count > 0) { - $lines[] = $line; - $line = array(); - } - - if ($tokenLine === '') { - continue; - } - - $line[] = array($token[0], $tokenLine); - } - } - - $lines[] = $line; - - return $lines; - } - - /** - * @param array $tokenLines - * @return array - * @throws \JakubOnderka\PhpConsoleColor\InvalidStyleException - * @throws \InvalidArgumentException - */ - private function colorLines(array $tokenLines) - { - $lines = array(); - foreach ($tokenLines as $lineCount => $tokenLine) { - $line = ''; - foreach ($tokenLine as $token) { - list($tokenType, $tokenValue) = $token; - if ($this->color->hasTheme($tokenType)) { - $line .= $this->color->apply($tokenType, $tokenValue); - } else { - $line .= $tokenValue; - } - } - $lines[$lineCount] = $line; - } - - return $lines; - } - - /** - * @param array $lines - * @param null|int $markLine - * @return string - * @throws \JakubOnderka\PhpConsoleColor\InvalidStyleException - */ - private function lineNumbers(array $lines, $markLine = null) - { - end($lines); - $lineStrlen = strlen(key($lines) + 1); - - $snippet = ''; - foreach ($lines as $i => $line) { - if ($markLine !== null) { - $snippet .= ($markLine === $i + 1 ? $this->color->apply(self::ACTUAL_LINE_MARK, ' > ') : ' '); - } - - $snippet .= $this->color->apply(self::LINE_NUMBER, str_pad($i + 1, $lineStrlen, ' ', STR_PAD_LEFT) . '| '); - $snippet .= $line . PHP_EOL; - } - - return $snippet; - } -} \ No newline at end of file diff --git a/vendor/jakub-onderka/php-console-highlighter/tests/JakubOnderka/PhpConsoleHighligter/HigligterTest.php b/vendor/jakub-onderka/php-console-highlighter/tests/JakubOnderka/PhpConsoleHighligter/HigligterTest.php deleted file mode 100644 index 269d03da..00000000 --- a/vendor/jakub-onderka/php-console-highlighter/tests/JakubOnderka/PhpConsoleHighligter/HigligterTest.php +++ /dev/null @@ -1,263 +0,0 @@ -getMock('\JakubOnderka\PhpConsoleColor\ConsoleColor'); - - $mock->expects($this->any()) - ->method('apply') - ->will($this->returnCallback(function ($style, $text) { - return "<$style>$text"; - })); - - $mock->expects($this->any()) - ->method('hasTheme') - ->will($this->returnValue(true)); - - return $mock; - } - - protected function setUp() - { - $this->uut = new Highlighter($this->getConsoleColorMock()); - } - - protected function compare($original, $expected) - { - $output = $this->uut->getWholeFile($original); - $this->assertEquals($expected, $output); - } - - public function testVariable() - { - $this->compare( - << -echo \$a; -EOL - ); - } - - public function testInteger() - { - $this->compare( - << -echo 43; -EOL - ); - } - - public function testFloat() - { - $this->compare( - << -echo 43.3; -EOL - ); - } - - public function testHex() - { - $this->compare( - << -echo 0x43; -EOL - ); - } - - public function testBasicFunction() - { - $this->compare( - << -function plus(\$a, \$b) { - return \$a + \$b; -} -EOL - ); - } - - public function testStringNormal() - { - $this->compare( - << -echo 'Ahoj světe'; -EOL - ); - } - - public function testStringDouble() - { - $this->compare( - << -echo "Ahoj světe"; -EOL - ); - } - - public function testInstanceof() - { - $this->compare( - << -\$a instanceof stdClass; -EOL - ); - } - - /* - * Constants - */ - public function testConstant() - { - $constants = array( - '__FILE__', - '__LINE__', - '__CLASS__', - '__FUNCTION__', - '__METHOD__', - '__TRAIT__', - '__DIR__', - '__NAMESPACE__' - ); - - foreach ($constants as $constant) { - $this->compare( - << -$constant; -EOL - ); - } - } - - /* - * Comments - */ - public function testComment() - { - $this->compare( - << -/* Ahoj */ -EOL - ); - } - - public function testDocComment() - { - $this->compare( - << -/** Ahoj */ -EOL - ); - } - - public function testInlineComment() - { - $this->compare( - << -// Ahoj -EOL - ); - } - - public function testHashComment() - { - $this->compare( - << -# Ahoj -EOL - ); - } - - public function testEmpty() - { - $this->compare( - '' - , - '' - ); - } -} \ No newline at end of file diff --git a/vendor/jakub-onderka/php-console-highlighter/tests/bootstrap.php b/vendor/jakub-onderka/php-console-highlighter/tests/bootstrap.php deleted file mode 100644 index 7500417e..00000000 --- a/vendor/jakub-onderka/php-console-highlighter/tests/bootstrap.php +++ /dev/null @@ -1,2 +0,0 @@ -

- -

-Build Status -Total Downloads -Latest Stable Version -License -

- -## About Laravel - -> **Note:** This repository contains the core code of the Laravel framework. If you want to build an application using Laravel 5, visit the main [Laravel repository](https://github.com/laravel/laravel). - -Laravel is a web application framework with expressive, elegant syntax. We believe development must be an enjoyable, creative experience to be truly fulfilling. Laravel attempts to take the pain out of development by easing common tasks used in the majority of web projects, such as: - -- [Simple, fast routing engine](https://laravel.com/docs/routing). -- [Powerful dependency injection container](https://laravel.com/docs/container). -- Multiple back-ends for [session](https://laravel.com/docs/session) and [cache](https://laravel.com/docs/cache) storage. -- Database agnostic [schema migrations](https://laravel.com/docs/migrations). -- [Robust background job processing](https://laravel.com/docs/queues). -- [Real-time event broadcasting](https://laravel.com/docs/broadcasting). - -Laravel is accessible, yet powerful, providing tools needed for large, robust applications. A superb combination of simplicity, elegance, and innovation gives you a complete toolset required to build any application with which you are tasked - -## Learning Laravel - -Laravel has the most extensive and thorough documentation and video tutorial library of any modern web application framework. The [Laravel documentation](https://laravel.com/docs) is in-depth and complete, making it a breeze to get started learning the framework. - -If you're not in the mood to read, [Laracasts](https://laracasts.com) contains over 1100 video tutorials covering a range of topics including Laravel, modern PHP, unit testing, JavaScript, and more. Boost the skill level of yourself and your entire team by digging into our comprehensive video library. - -## Contributing - -Thank you for considering contributing to the Laravel framework! The contribution guide can be found in the [Laravel documentation](https://laravel.com/docs/contributions). - -## Code of Conduct - -In order to ensure that the Laravel community is welcoming to all, please review and abide by the [Code of Conduct](CODE_OF_CONDUCT.md). - -## Security Vulnerabilities - -If you discover a security vulnerability within Laravel, please send an e-mail to Taylor Otwell via [taylor@laravel.com](mailto:taylor@laravel.com). All security vulnerabilities will be promptly addressed. - -## License - -The Laravel framework is open-sourced software licensed under the [MIT license](https://opensource.org/licenses/MIT). diff --git a/vendor/laravel/framework/composer.json b/vendor/laravel/framework/composer.json deleted file mode 100644 index 2942e7a4..00000000 --- a/vendor/laravel/framework/composer.json +++ /dev/null @@ -1,136 +0,0 @@ -{ - "name": "laravel/framework", - "description": "The Laravel Framework.", - "keywords": ["framework", "laravel"], - "license": "MIT", - "homepage": "https://laravel.com", - "support": { - "issues": "https://github.com/laravel/framework/issues", - "source": "https://github.com/laravel/framework" - }, - "authors": [ - { - "name": "Taylor Otwell", - "email": "taylor@laravel.com" - } - ], - "require": { - "php": "^7.1.3", - "ext-mbstring": "*", - "ext-openssl": "*", - "doctrine/inflector": "~1.1", - "dragonmantank/cron-expression": "~2.0", - "erusev/parsedown": "~1.7", - "league/flysystem": "^1.0.8", - "monolog/monolog": "~1.12", - "nesbot/carbon": "1.25.*", - "psr/container": "~1.0", - "psr/simple-cache": "^1.0", - "ramsey/uuid": "^3.7", - "swiftmailer/swiftmailer": "~6.0", - "symfony/console": "~4.0", - "symfony/debug": "~4.0", - "symfony/finder": "~4.0", - "symfony/http-foundation": "~4.0", - "symfony/http-kernel": "~4.0", - "symfony/process": "~4.0", - "symfony/routing": "~4.0", - "symfony/var-dumper": "~4.0", - "tijsverkoyen/css-to-inline-styles": "^2.2.1", - "vlucas/phpdotenv": "~2.2" - }, - "replace": { - "illuminate/auth": "self.version", - "illuminate/broadcasting": "self.version", - "illuminate/bus": "self.version", - "illuminate/cache": "self.version", - "illuminate/config": "self.version", - "illuminate/console": "self.version", - "illuminate/container": "self.version", - "illuminate/contracts": "self.version", - "illuminate/cookie": "self.version", - "illuminate/database": "self.version", - "illuminate/encryption": "self.version", - "illuminate/events": "self.version", - "illuminate/filesystem": "self.version", - "illuminate/hashing": "self.version", - "illuminate/http": "self.version", - "illuminate/log": "self.version", - "illuminate/mail": "self.version", - "illuminate/notifications": "self.version", - "illuminate/pagination": "self.version", - "illuminate/pipeline": "self.version", - "illuminate/queue": "self.version", - "illuminate/redis": "self.version", - "illuminate/routing": "self.version", - "illuminate/session": "self.version", - "illuminate/support": "self.version", - "illuminate/translation": "self.version", - "illuminate/validation": "self.version", - "illuminate/view": "self.version" - }, - "conflict": { - "tightenco/collect": "<5.5.33" - }, - "require-dev": { - "aws/aws-sdk-php": "~3.0", - "doctrine/dbal": "~2.6", - "filp/whoops": "^2.1.4", - "league/flysystem-cached-adapter": "~1.0", - "mockery/mockery": "~1.0", - "moontoast/math": "^1.1", - "orchestra/testbench-core": "3.6.*", - "pda/pheanstalk": "~3.0", - "phpunit/phpunit": "~7.0", - "predis/predis": "^1.1.1", - "symfony/css-selector": "~4.0", - "symfony/dom-crawler": "~4.0" - }, - "autoload": { - "files": [ - "src/Illuminate/Foundation/helpers.php", - "src/Illuminate/Support/helpers.php" - ], - "psr-4": { - "Illuminate\\": "src/Illuminate/" - } - }, - "autoload-dev": { - "files": [ - "tests/Database/stubs/MigrationCreatorFakeMigration.php" - ], - "psr-4": { - "Illuminate\\Tests\\": "tests/" - } - }, - "extra": { - "branch-alias": { - "dev-master": "5.6-dev" - } - }, - "suggest": { - "ext-pcntl": "Required to use all features of the queue worker.", - "ext-posix": "Required to use all features of the queue worker.", - "aws/aws-sdk-php": "Required to use the SQS queue driver and SES mail driver (~3.0).", - "doctrine/dbal": "Required to rename columns and drop SQLite columns (~2.6).", - "fzaninotto/faker": "Required to use the eloquent factory builder (~1.4).", - "guzzlehttp/guzzle": "Required to use the Mailgun and Mandrill mail drivers and the ping methods on schedules (~6.0).", - "laravel/tinker": "Required to use the tinker console command (~1.0).", - "league/flysystem-aws-s3-v3": "Required to use the Flysystem S3 driver (~1.0).", - "league/flysystem-cached-adapter": "Required to use the Flysystem cache (~1.0).", - "league/flysystem-rackspace": "Required to use the Flysystem Rackspace driver (~1.0).", - "league/flysystem-sftp": "Required to use the Flysystem SFTP driver (~1.0).", - "nexmo/client": "Required to use the Nexmo transport (~1.0).", - "pda/pheanstalk": "Required to use the beanstalk queue driver (~3.0).", - "predis/predis": "Required to use the redis cache and queue drivers (~1.0).", - "pusher/pusher-php-server": "Required to use the Pusher broadcast driver (~3.0).", - "symfony/css-selector": "Required to use some of the crawler integration testing tools (~4.0).", - "symfony/dom-crawler": "Required to use most of the crawler integration testing tools (~4.0).", - "symfony/psr-http-message-bridge": "Required to psr7 bridging features (~1.0)." - }, - "config": { - "sort-packages": true - }, - "minimum-stability": "dev", - "prefer-stable": true -} diff --git a/vendor/laravel/framework/src/Illuminate/Auth/Access/AuthorizationException.php b/vendor/laravel/framework/src/Illuminate/Auth/Access/AuthorizationException.php deleted file mode 100644 index dc0753e2..00000000 --- a/vendor/laravel/framework/src/Illuminate/Auth/Access/AuthorizationException.php +++ /dev/null @@ -1,10 +0,0 @@ -policies = $policies; - $this->container = $container; - $this->abilities = $abilities; - $this->userResolver = $userResolver; - $this->afterCallbacks = $afterCallbacks; - $this->beforeCallbacks = $beforeCallbacks; - } - - /** - * Determine if a given ability has been defined. - * - * @param string|array $ability - * @return bool - */ - public function has($ability) - { - $abilities = is_array($ability) ? $ability : func_get_args(); - - foreach ($abilities as $ability) { - if (! isset($this->abilities[$ability])) { - return false; - } - } - - return true; - } - - /** - * Define a new ability. - * - * @param string $ability - * @param callable|string $callback - * @return $this - * - * @throws \InvalidArgumentException - */ - public function define($ability, $callback) - { - if (is_callable($callback)) { - $this->abilities[$ability] = $callback; - } elseif (is_string($callback) && Str::contains($callback, '@')) { - $this->abilities[$ability] = $this->buildAbilityCallback($ability, $callback); - } else { - throw new InvalidArgumentException("Callback must be a callable or a 'Class@method' string."); - } - - return $this; - } - - /** - * Define abilities for a resource. - * - * @param string $name - * @param string $class - * @param array|null $abilities - * @return $this - */ - public function resource($name, $class, array $abilities = null) - { - $abilities = $abilities ?: [ - 'view' => 'view', - 'create' => 'create', - 'update' => 'update', - 'delete' => 'delete', - ]; - - foreach ($abilities as $ability => $method) { - $this->define($name.'.'.$ability, $class.'@'.$method); - } - - return $this; - } - - /** - * Create the ability callback for a callback string. - * - * @param string $ability - * @param string $callback - * @return \Closure - */ - protected function buildAbilityCallback($ability, $callback) - { - return function () use ($ability, $callback) { - list($class, $method) = Str::parseCallback($callback); - - $policy = $this->resolvePolicy($class); - - $arguments = func_get_args(); - - $user = array_shift($arguments); - - $result = $this->callPolicyBefore( - $policy, $user, $ability, $arguments - ); - - if (! is_null($result)) { - return $result; - } - - return $policy->{$method}(...func_get_args()); - }; - } - - /** - * Define a policy class for a given class type. - * - * @param string $class - * @param string $policy - * @return $this - */ - public function policy($class, $policy) - { - $this->policies[$class] = $policy; - - return $this; - } - - /** - * Register a callback to run before all Gate checks. - * - * @param callable $callback - * @return $this - */ - public function before(callable $callback) - { - $this->beforeCallbacks[] = $callback; - - return $this; - } - - /** - * Register a callback to run after all Gate checks. - * - * @param callable $callback - * @return $this - */ - public function after(callable $callback) - { - $this->afterCallbacks[] = $callback; - - return $this; - } - - /** - * Determine if the given ability should be granted for the current user. - * - * @param string $ability - * @param array|mixed $arguments - * @return bool - */ - public function allows($ability, $arguments = []) - { - return $this->check($ability, $arguments); - } - - /** - * Determine if the given ability should be denied for the current user. - * - * @param string $ability - * @param array|mixed $arguments - * @return bool - */ - public function denies($ability, $arguments = []) - { - return ! $this->allows($ability, $arguments); - } - - /** - * Determine if all of the given abilities should be granted for the current user. - * - * @param iterable|string $abilities - * @param array|mixed $arguments - * @return bool - */ - public function check($abilities, $arguments = []) - { - return collect($abilities)->every(function ($ability) use ($arguments) { - try { - return (bool) $this->raw($ability, $arguments); - } catch (AuthorizationException $e) { - return false; - } - }); - } - - /** - * Determine if any one of the given abilities should be granted for the current user. - * - * @param iterable|string $abilities - * @param array|mixed $arguments - * @return bool - */ - public function any($abilities, $arguments = []) - { - return collect($abilities)->contains(function ($ability) use ($arguments) { - return $this->check($ability, $arguments); - }); - } - - /** - * Determine if the given ability should be granted for the current user. - * - * @param string $ability - * @param array|mixed $arguments - * @return \Illuminate\Auth\Access\Response - * - * @throws \Illuminate\Auth\Access\AuthorizationException - */ - public function authorize($ability, $arguments = []) - { - $result = $this->raw($ability, $arguments); - - if ($result instanceof Response) { - return $result; - } - - return $result ? $this->allow() : $this->deny(); - } - - /** - * Get the raw result from the authorization callback. - * - * @param string $ability - * @param array|mixed $arguments - * @return mixed - */ - protected function raw($ability, $arguments = []) - { - if (! $user = $this->resolveUser()) { - return false; - } - - $arguments = Arr::wrap($arguments); - - // First we will call the "before" callbacks for the Gate. If any of these give - // back a non-null response, we will immediately return that result in order - // to let the developers override all checks for some authorization cases. - $result = $this->callBeforeCallbacks( - $user, $ability, $arguments - ); - - if (is_null($result)) { - $result = $this->callAuthCallback($user, $ability, $arguments); - } - - // After calling the authorization callback, we will call the "after" callbacks - // that are registered with the Gate, which allows a developer to do logging - // if that is required for this application. Then we'll return the result. - $this->callAfterCallbacks( - $user, $ability, $arguments, $result - ); - - return $result; - } - - /** - * Resolve and call the appropriate authorization callback. - * - * @param \Illuminate\Contracts\Auth\Authenticatable $user - * @param string $ability - * @param array $arguments - * @return bool - */ - protected function callAuthCallback($user, $ability, array $arguments) - { - $callback = $this->resolveAuthCallback($user, $ability, $arguments); - - return $callback($user, ...$arguments); - } - - /** - * Call all of the before callbacks and return if a result is given. - * - * @param \Illuminate\Contracts\Auth\Authenticatable $user - * @param string $ability - * @param array $arguments - * @return bool|null - */ - protected function callBeforeCallbacks($user, $ability, array $arguments) - { - $arguments = array_merge([$user, $ability], [$arguments]); - - foreach ($this->beforeCallbacks as $before) { - if (! is_null($result = $before(...$arguments))) { - return $result; - } - } - } - - /** - * Call all of the after callbacks with check result. - * - * @param \Illuminate\Contracts\Auth\Authenticatable $user - * @param string $ability - * @param array $arguments - * @param bool $result - * @return void - */ - protected function callAfterCallbacks($user, $ability, array $arguments, $result) - { - $arguments = array_merge([$user, $ability, $result], [$arguments]); - - foreach ($this->afterCallbacks as $after) { - $after(...$arguments); - } - } - - /** - * Resolve the callable for the given ability and arguments. - * - * @param \Illuminate\Contracts\Auth\Authenticatable $user - * @param string $ability - * @param array $arguments - * @return callable - */ - protected function resolveAuthCallback($user, $ability, array $arguments) - { - if (isset($arguments[0]) && - ! is_null($policy = $this->getPolicyFor($arguments[0])) && - $callback = $this->resolvePolicyCallback($user, $ability, $arguments, $policy)) { - return $callback; - } - - if (isset($this->abilities[$ability])) { - return $this->abilities[$ability]; - } - - return function () { - return false; - }; - } - - /** - * Get a policy instance for a given class. - * - * @param object|string $class - * @return mixed - */ - public function getPolicyFor($class) - { - if (is_object($class)) { - $class = get_class($class); - } - - if (! is_string($class)) { - return; - } - - if (isset($this->policies[$class])) { - return $this->resolvePolicy($this->policies[$class]); - } - - foreach ($this->policies as $expected => $policy) { - if (is_subclass_of($class, $expected)) { - return $this->resolvePolicy($policy); - } - } - } - - /** - * Build a policy class instance of the given type. - * - * @param object|string $class - * @return mixed - */ - public function resolvePolicy($class) - { - return $this->container->make($class); - } - - /** - * Resolve the callback for a policy check. - * - * @param \Illuminate\Contracts\Auth\Authenticatable $user - * @param string $ability - * @param array $arguments - * @param mixed $policy - * @return bool|callable - */ - protected function resolvePolicyCallback($user, $ability, array $arguments, $policy) - { - if (! is_callable([$policy, $this->formatAbilityToMethod($ability)])) { - return false; - } - - return function () use ($user, $ability, $arguments, $policy) { - // This callback will be responsible for calling the policy's before method and - // running this policy method if necessary. This is used to when objects are - // mapped to policy objects in the user's configurations or on this class. - $result = $this->callPolicyBefore( - $policy, $user, $ability, $arguments - ); - - // When we receive a non-null result from this before method, we will return it - // as the "final" results. This will allow developers to override the checks - // in this policy to return the result for all rules defined in the class. - if (! is_null($result)) { - return $result; - } - - $ability = $this->formatAbilityToMethod($ability); - - // If this first argument is a string, that means they are passing a class name - // to the policy. We will remove the first argument from this argument array - // because this policy already knows what type of models it can authorize. - if (isset($arguments[0]) && is_string($arguments[0])) { - array_shift($arguments); - } - - return is_callable([$policy, $ability]) - ? $policy->{$ability}($user, ...$arguments) - : false; - }; - } - - /** - * Call the "before" method on the given policy, if applicable. - * - * @param mixed $policy - * @param \Illuminate\Contracts\Auth\Authenticatable $user - * @param string $ability - * @param array $arguments - * @return mixed - */ - protected function callPolicyBefore($policy, $user, $ability, $arguments) - { - if (method_exists($policy, 'before')) { - return $policy->before($user, $ability, ...$arguments); - } - } - - /** - * Format the policy ability into a method name. - * - * @param string $ability - * @return string - */ - protected function formatAbilityToMethod($ability) - { - return strpos($ability, '-') !== false ? Str::camel($ability) : $ability; - } - - /** - * Get a gate instance for the given user. - * - * @param \Illuminate\Contracts\Auth\Authenticatable|mixed $user - * @return static - */ - public function forUser($user) - { - $callback = function () use ($user) { - return $user; - }; - - return new static( - $this->container, $callback, $this->abilities, - $this->policies, $this->beforeCallbacks, $this->afterCallbacks - ); - } - - /** - * Resolve the user from the user resolver. - * - * @return mixed - */ - protected function resolveUser() - { - return call_user_func($this->userResolver); - } - - /** - * Get all of the defined abilities. - * - * @return array - */ - public function abilities() - { - return $this->abilities; - } - - /** - * Get all of the defined policies. - * - * @return array - */ - public function policies() - { - return $this->policies; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Auth/Access/HandlesAuthorization.php b/vendor/laravel/framework/src/Illuminate/Auth/Access/HandlesAuthorization.php deleted file mode 100644 index 1a597bb9..00000000 --- a/vendor/laravel/framework/src/Illuminate/Auth/Access/HandlesAuthorization.php +++ /dev/null @@ -1,30 +0,0 @@ -message = $message; - } - - /** - * Get the response message. - * - * @return string|null - */ - public function message() - { - return $this->message; - } - - /** - * Get the string representation of the message. - * - * @return string|null - */ - public function __toString() - { - return $this->message(); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Auth/AuthManager.php b/vendor/laravel/framework/src/Illuminate/Auth/AuthManager.php deleted file mode 100755 index 05fefe17..00000000 --- a/vendor/laravel/framework/src/Illuminate/Auth/AuthManager.php +++ /dev/null @@ -1,294 +0,0 @@ -app = $app; - - $this->userResolver = function ($guard = null) { - return $this->guard($guard)->user(); - }; - } - - /** - * Attempt to get the guard from the local cache. - * - * @param string $name - * @return \Illuminate\Contracts\Auth\Guard|\Illuminate\Contracts\Auth\StatefulGuard - */ - public function guard($name = null) - { - $name = $name ?: $this->getDefaultDriver(); - - return $this->guards[$name] ?? $this->guards[$name] = $this->resolve($name); - } - - /** - * Resolve the given guard. - * - * @param string $name - * @return \Illuminate\Contracts\Auth\Guard|\Illuminate\Contracts\Auth\StatefulGuard - * - * @throws \InvalidArgumentException - */ - protected function resolve($name) - { - $config = $this->getConfig($name); - - if (is_null($config)) { - throw new InvalidArgumentException("Auth guard [{$name}] is not defined."); - } - - if (isset($this->customCreators[$config['driver']])) { - return $this->callCustomCreator($name, $config); - } - - $driverMethod = 'create'.ucfirst($config['driver']).'Driver'; - - if (method_exists($this, $driverMethod)) { - return $this->{$driverMethod}($name, $config); - } - - throw new InvalidArgumentException("Auth driver [{$config['driver']}] for guard [{$name}] is not defined."); - } - - /** - * Call a custom driver creator. - * - * @param string $name - * @param array $config - * @return mixed - */ - protected function callCustomCreator($name, array $config) - { - return $this->customCreators[$config['driver']]($this->app, $name, $config); - } - - /** - * Create a session based authentication guard. - * - * @param string $name - * @param array $config - * @return \Illuminate\Auth\SessionGuard - */ - public function createSessionDriver($name, $config) - { - $provider = $this->createUserProvider($config['provider'] ?? null); - - $guard = new SessionGuard($name, $provider, $this->app['session.store']); - - // When using the remember me functionality of the authentication services we - // will need to be set the encryption instance of the guard, which allows - // secure, encrypted cookie values to get generated for those cookies. - if (method_exists($guard, 'setCookieJar')) { - $guard->setCookieJar($this->app['cookie']); - } - - if (method_exists($guard, 'setDispatcher')) { - $guard->setDispatcher($this->app['events']); - } - - if (method_exists($guard, 'setRequest')) { - $guard->setRequest($this->app->refresh('request', $guard, 'setRequest')); - } - - return $guard; - } - - /** - * Create a token based authentication guard. - * - * @param string $name - * @param array $config - * @return \Illuminate\Auth\TokenGuard - */ - public function createTokenDriver($name, $config) - { - // The token guard implements a basic API token based guard implementation - // that takes an API token field from the request and matches it to the - // user in the database or another persistence layer where users are. - $guard = new TokenGuard( - $this->createUserProvider($config['provider'] ?? null), - $this->app['request'] - ); - - $this->app->refresh('request', $guard, 'setRequest'); - - return $guard; - } - - /** - * Get the guard configuration. - * - * @param string $name - * @return array - */ - protected function getConfig($name) - { - return $this->app['config']["auth.guards.{$name}"]; - } - - /** - * Get the default authentication driver name. - * - * @return string - */ - public function getDefaultDriver() - { - return $this->app['config']['auth.defaults.guard']; - } - - /** - * Set the default guard driver the factory should serve. - * - * @param string $name - * @return void - */ - public function shouldUse($name) - { - $name = $name ?: $this->getDefaultDriver(); - - $this->setDefaultDriver($name); - - $this->userResolver = function ($name = null) { - return $this->guard($name)->user(); - }; - } - - /** - * Set the default authentication driver name. - * - * @param string $name - * @return void - */ - public function setDefaultDriver($name) - { - $this->app['config']['auth.defaults.guard'] = $name; - } - - /** - * Register a new callback based request guard. - * - * @param string $driver - * @param callable $callback - * @return $this - */ - public function viaRequest($driver, callable $callback) - { - return $this->extend($driver, function () use ($callback) { - $guard = new RequestGuard($callback, $this->app['request'], $this->createUserProvider()); - - $this->app->refresh('request', $guard, 'setRequest'); - - return $guard; - }); - } - - /** - * Get the user resolver callback. - * - * @return \Closure - */ - public function userResolver() - { - return $this->userResolver; - } - - /** - * Set the callback to be used to resolve users. - * - * @param \Closure $userResolver - * @return $this - */ - public function resolveUsersUsing(Closure $userResolver) - { - $this->userResolver = $userResolver; - - return $this; - } - - /** - * Register a custom driver creator Closure. - * - * @param string $driver - * @param \Closure $callback - * @return $this - */ - public function extend($driver, Closure $callback) - { - $this->customCreators[$driver] = $callback; - - return $this; - } - - /** - * Register a custom provider creator Closure. - * - * @param string $name - * @param \Closure $callback - * @return $this - */ - public function provider($name, Closure $callback) - { - $this->customProviderCreators[$name] = $callback; - - return $this; - } - - /** - * Dynamically call the default driver instance. - * - * @param string $method - * @param array $parameters - * @return mixed - */ - public function __call($method, $parameters) - { - return $this->guard()->{$method}(...$parameters); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Auth/AuthServiceProvider.php b/vendor/laravel/framework/src/Illuminate/Auth/AuthServiceProvider.php deleted file mode 100755 index 2820beb4..00000000 --- a/vendor/laravel/framework/src/Illuminate/Auth/AuthServiceProvider.php +++ /dev/null @@ -1,90 +0,0 @@ -registerAuthenticator(); - - $this->registerUserResolver(); - - $this->registerAccessGate(); - - $this->registerRequestRebindHandler(); - } - - /** - * Register the authenticator services. - * - * @return void - */ - protected function registerAuthenticator() - { - $this->app->singleton('auth', function ($app) { - // Once the authentication service has actually been requested by the developer - // we will set a variable in the application indicating such. This helps us - // know that we need to set any queued cookies in the after event later. - $app['auth.loaded'] = true; - - return new AuthManager($app); - }); - - $this->app->singleton('auth.driver', function ($app) { - return $app['auth']->guard(); - }); - } - - /** - * Register a resolver for the authenticated user. - * - * @return void - */ - protected function registerUserResolver() - { - $this->app->bind( - AuthenticatableContract::class, function ($app) { - return call_user_func($app['auth']->userResolver()); - } - ); - } - - /** - * Register the access gate service. - * - * @return void - */ - protected function registerAccessGate() - { - $this->app->singleton(GateContract::class, function ($app) { - return new Gate($app, function () use ($app) { - return call_user_func($app['auth']->userResolver()); - }); - }); - } - - /** - * Register a resolver for the authenticated user. - * - * @return void - */ - protected function registerRequestRebindHandler() - { - $this->app->rebinding('request', function ($app, $request) { - $request->setUserResolver(function ($guard = null) use ($app) { - return call_user_func($app['auth']->userResolver(), $guard); - }); - }); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Auth/Authenticatable.php b/vendor/laravel/framework/src/Illuminate/Auth/Authenticatable.php deleted file mode 100644 index d7578a3d..00000000 --- a/vendor/laravel/framework/src/Illuminate/Auth/Authenticatable.php +++ /dev/null @@ -1,78 +0,0 @@ -getKeyName(); - } - - /** - * Get the unique identifier for the user. - * - * @return mixed - */ - public function getAuthIdentifier() - { - return $this->{$this->getAuthIdentifierName()}; - } - - /** - * Get the password for the user. - * - * @return string - */ - public function getAuthPassword() - { - return $this->password; - } - - /** - * Get the token value for the "remember me" session. - * - * @return string|null - */ - public function getRememberToken() - { - if (! empty($this->getRememberTokenName())) { - return (string) $this->{$this->getRememberTokenName()}; - } - } - - /** - * Set the token value for the "remember me" session. - * - * @param string $value - * @return void - */ - public function setRememberToken($value) - { - if (! empty($this->getRememberTokenName())) { - $this->{$this->getRememberTokenName()} = $value; - } - } - - /** - * Get the column name for the "remember me" token. - * - * @return string - */ - public function getRememberTokenName() - { - return $this->rememberTokenName; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Auth/AuthenticationException.php b/vendor/laravel/framework/src/Illuminate/Auth/AuthenticationException.php deleted file mode 100644 index 3445b23a..00000000 --- a/vendor/laravel/framework/src/Illuminate/Auth/AuthenticationException.php +++ /dev/null @@ -1,39 +0,0 @@ -guards = $guards; - } - - /** - * Get the guards that were checked. - * - * @return array - */ - public function guards() - { - return $this->guards; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Auth/Console/AuthMakeCommand.php b/vendor/laravel/framework/src/Illuminate/Auth/Console/AuthMakeCommand.php deleted file mode 100644 index 52041fa3..00000000 --- a/vendor/laravel/framework/src/Illuminate/Auth/Console/AuthMakeCommand.php +++ /dev/null @@ -1,119 +0,0 @@ - 'auth/login.blade.php', - 'auth/register.stub' => 'auth/register.blade.php', - 'auth/passwords/email.stub' => 'auth/passwords/email.blade.php', - 'auth/passwords/reset.stub' => 'auth/passwords/reset.blade.php', - 'layouts/app.stub' => 'layouts/app.blade.php', - 'home.stub' => 'home.blade.php', - ]; - - /** - * Execute the console command. - * - * @return void - */ - public function handle() - { - $this->createDirectories(); - - $this->exportViews(); - - if (! $this->option('views')) { - file_put_contents( - app_path('Http/Controllers/HomeController.php'), - $this->compileControllerStub() - ); - - file_put_contents( - base_path('routes/web.php'), - file_get_contents(__DIR__.'/stubs/make/routes.stub'), - FILE_APPEND - ); - } - - $this->info('Authentication scaffolding generated successfully.'); - } - - /** - * Create the directories for the files. - * - * @return void - */ - protected function createDirectories() - { - if (! is_dir($directory = resource_path('views/layouts'))) { - mkdir($directory, 0755, true); - } - - if (! is_dir($directory = resource_path('views/auth/passwords'))) { - mkdir($directory, 0755, true); - } - } - - /** - * Export the authentication views. - * - * @return void - */ - protected function exportViews() - { - foreach ($this->views as $key => $value) { - if (file_exists($view = resource_path('views/'.$value)) && ! $this->option('force')) { - if (! $this->confirm("The [{$value}] view already exists. Do you want to replace it?")) { - continue; - } - } - - copy( - __DIR__.'/stubs/make/views/'.$key, - $view - ); - } - } - - /** - * Compiles the HomeController stub. - * - * @return string - */ - protected function compileControllerStub() - { - return str_replace( - '{{namespace}}', - $this->getAppNamespace(), - file_get_contents(__DIR__.'/stubs/make/controllers/HomeController.stub') - ); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Auth/Console/ClearResetsCommand.php b/vendor/laravel/framework/src/Illuminate/Auth/Console/ClearResetsCommand.php deleted file mode 100644 index 57c3bd50..00000000 --- a/vendor/laravel/framework/src/Illuminate/Auth/Console/ClearResetsCommand.php +++ /dev/null @@ -1,34 +0,0 @@ -laravel['auth.password']->broker($this->argument('name'))->getRepository()->deleteExpired(); - - $this->info('Expired reset tokens cleared!'); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Auth/Console/stubs/make/controllers/HomeController.stub b/vendor/laravel/framework/src/Illuminate/Auth/Console/stubs/make/controllers/HomeController.stub deleted file mode 100644 index 8e0007ad..00000000 --- a/vendor/laravel/framework/src/Illuminate/Auth/Console/stubs/make/controllers/HomeController.stub +++ /dev/null @@ -1,28 +0,0 @@ -middleware('auth'); - } - - /** - * Show the application dashboard. - * - * @return \Illuminate\Http\Response - */ - public function index() - { - return view('home'); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Auth/Console/stubs/make/routes.stub b/vendor/laravel/framework/src/Illuminate/Auth/Console/stubs/make/routes.stub deleted file mode 100644 index 2c37ded9..00000000 --- a/vendor/laravel/framework/src/Illuminate/Auth/Console/stubs/make/routes.stub +++ /dev/null @@ -1,4 +0,0 @@ - -Auth::routes(); - -Route::get('/home', 'HomeController@index')->name('home'); diff --git a/vendor/laravel/framework/src/Illuminate/Auth/Console/stubs/make/views/auth/login.stub b/vendor/laravel/framework/src/Illuminate/Auth/Console/stubs/make/views/auth/login.stub deleted file mode 100644 index 474be66e..00000000 --- a/vendor/laravel/framework/src/Illuminate/Auth/Console/stubs/make/views/auth/login.stub +++ /dev/null @@ -1,71 +0,0 @@ -@extends('layouts.app') - -@section('content') -
-
-
-
-
{{ __('Login') }}
- -
-
- @csrf - -
- - -
- - - @if ($errors->has('email')) - - {{ $errors->first('email') }} - - @endif -
-
- -
- - -
- - - @if ($errors->has('password')) - - {{ $errors->first('password') }} - - @endif -
-
- -
-
-
- - - -
-
-
- -
-
- - - - {{ __('Forgot Your Password?') }} - -
-
-
-
-
-
-
-
-@endsection diff --git a/vendor/laravel/framework/src/Illuminate/Auth/Console/stubs/make/views/auth/passwords/email.stub b/vendor/laravel/framework/src/Illuminate/Auth/Console/stubs/make/views/auth/passwords/email.stub deleted file mode 100644 index 12e80834..00000000 --- a/vendor/laravel/framework/src/Illuminate/Auth/Console/stubs/make/views/auth/passwords/email.stub +++ /dev/null @@ -1,47 +0,0 @@ -@extends('layouts.app') - -@section('content') -
-
-
-
-
{{ __('Reset Password') }}
- -
- @if (session('status')) - - @endif - -
- @csrf - -
- - -
- - - @if ($errors->has('email')) - - {{ $errors->first('email') }} - - @endif -
-
- -
-
- -
-
-
-
-
-
-
-
-@endsection diff --git a/vendor/laravel/framework/src/Illuminate/Auth/Console/stubs/make/views/auth/passwords/reset.stub b/vendor/laravel/framework/src/Illuminate/Auth/Console/stubs/make/views/auth/passwords/reset.stub deleted file mode 100644 index 35576628..00000000 --- a/vendor/laravel/framework/src/Illuminate/Auth/Console/stubs/make/views/auth/passwords/reset.stub +++ /dev/null @@ -1,65 +0,0 @@ -@extends('layouts.app') - -@section('content') -
-
-
-
-
{{ __('Reset Password') }}
- -
-
- @csrf - - - -
- - -
- - - @if ($errors->has('email')) - - {{ $errors->first('email') }} - - @endif -
-
- -
- - -
- - - @if ($errors->has('password')) - - {{ $errors->first('password') }} - - @endif -
-
- -
- - -
- -
-
- -
-
- -
-
-
-
-
-
-
-
-@endsection diff --git a/vendor/laravel/framework/src/Illuminate/Auth/Console/stubs/make/views/auth/register.stub b/vendor/laravel/framework/src/Illuminate/Auth/Console/stubs/make/views/auth/register.stub deleted file mode 100644 index f9dd6629..00000000 --- a/vendor/laravel/framework/src/Illuminate/Auth/Console/stubs/make/views/auth/register.stub +++ /dev/null @@ -1,77 +0,0 @@ -@extends('layouts.app') - -@section('content') -
-
-
-
-
{{ __('Register') }}
- -
-
- @csrf - -
- - -
- - - @if ($errors->has('name')) - - {{ $errors->first('name') }} - - @endif -
-
- -
- - -
- - - @if ($errors->has('email')) - - {{ $errors->first('email') }} - - @endif -
-
- -
- - -
- - - @if ($errors->has('password')) - - {{ $errors->first('password') }} - - @endif -
-
- -
- - -
- -
-
- -
-
- -
-
-
-
-
-
-
-
-@endsection diff --git a/vendor/laravel/framework/src/Illuminate/Auth/Console/stubs/make/views/home.stub b/vendor/laravel/framework/src/Illuminate/Auth/Console/stubs/make/views/home.stub deleted file mode 100644 index 05dfca92..00000000 --- a/vendor/laravel/framework/src/Illuminate/Auth/Console/stubs/make/views/home.stub +++ /dev/null @@ -1,23 +0,0 @@ -@extends('layouts.app') - -@section('content') -
-
-
-
-
Dashboard
- -
- @if (session('status')) - - @endif - - You are logged in! -
-
-
-
-
-@endsection diff --git a/vendor/laravel/framework/src/Illuminate/Auth/Console/stubs/make/views/layouts/app.stub b/vendor/laravel/framework/src/Illuminate/Auth/Console/stubs/make/views/layouts/app.stub deleted file mode 100644 index f6e81e3d..00000000 --- a/vendor/laravel/framework/src/Illuminate/Auth/Console/stubs/make/views/layouts/app.stub +++ /dev/null @@ -1,79 +0,0 @@ - - - - - - - - - - - {{ config('app.name', 'Laravel') }} - - - - - - - - - - - - -
- - -
- @yield('content') -
-
- - diff --git a/vendor/laravel/framework/src/Illuminate/Auth/CreatesUserProviders.php b/vendor/laravel/framework/src/Illuminate/Auth/CreatesUserProviders.php deleted file mode 100644 index 46416b5e..00000000 --- a/vendor/laravel/framework/src/Illuminate/Auth/CreatesUserProviders.php +++ /dev/null @@ -1,94 +0,0 @@ -getProviderConfiguration($provider))) { - return; - } - - if (isset($this->customProviderCreators[$driver = ($config['driver'] ?? null)])) { - return call_user_func( - $this->customProviderCreators[$driver], $this->app, $config - ); - } - - switch ($driver) { - case 'database': - return $this->createDatabaseProvider($config); - case 'eloquent': - return $this->createEloquentProvider($config); - default: - throw new InvalidArgumentException( - "Authentication user provider [{$driver}] is not defined." - ); - } - } - - /** - * Get the user provider configuration. - * - * @param string|null $provider - * @return array|null - */ - protected function getProviderConfiguration($provider) - { - if ($provider = $provider ?: $this->getDefaultUserProvider()) { - return $this->app['config']['auth.providers.'.$provider]; - } - } - - /** - * Create an instance of the database user provider. - * - * @param array $config - * @return \Illuminate\Auth\DatabaseUserProvider - */ - protected function createDatabaseProvider($config) - { - $connection = $this->app['db']->connection(); - - return new DatabaseUserProvider($connection, $this->app['hash'], $config['table']); - } - - /** - * Create an instance of the Eloquent user provider. - * - * @param array $config - * @return \Illuminate\Auth\EloquentUserProvider - */ - protected function createEloquentProvider($config) - { - return new EloquentUserProvider($this->app['hash'], $config['model']); - } - - /** - * Get the default user provider name. - * - * @return string - */ - public function getDefaultUserProvider() - { - return $this->app['config']['auth.defaults.provider']; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Auth/DatabaseUserProvider.php b/vendor/laravel/framework/src/Illuminate/Auth/DatabaseUserProvider.php deleted file mode 100755 index f8005b7d..00000000 --- a/vendor/laravel/framework/src/Illuminate/Auth/DatabaseUserProvider.php +++ /dev/null @@ -1,159 +0,0 @@ -conn = $conn; - $this->table = $table; - $this->hasher = $hasher; - } - - /** - * Retrieve a user by their unique identifier. - * - * @param mixed $identifier - * @return \Illuminate\Contracts\Auth\Authenticatable|null - */ - public function retrieveById($identifier) - { - $user = $this->conn->table($this->table)->find($identifier); - - return $this->getGenericUser($user); - } - - /** - * Retrieve a user by their unique identifier and "remember me" token. - * - * @param mixed $identifier - * @param string $token - * @return \Illuminate\Contracts\Auth\Authenticatable|null - */ - public function retrieveByToken($identifier, $token) - { - $user = $this->getGenericUser( - $this->conn->table($this->table)->find($identifier) - ); - - return $user && $user->getRememberToken() && hash_equals($user->getRememberToken(), $token) - ? $user : null; - } - - /** - * Update the "remember me" token for the given user in storage. - * - * @param \Illuminate\Contracts\Auth\Authenticatable $user - * @param string $token - * @return void - */ - public function updateRememberToken(UserContract $user, $token) - { - $this->conn->table($this->table) - ->where($user->getAuthIdentifierName(), $user->getAuthIdentifier()) - ->update([$user->getRememberTokenName() => $token]); - } - - /** - * Retrieve a user by the given credentials. - * - * @param array $credentials - * @return \Illuminate\Contracts\Auth\Authenticatable|null - */ - public function retrieveByCredentials(array $credentials) - { - if (empty($credentials) || - (count($credentials) === 1 && - array_key_exists('password', $credentials))) { - return; - } - - // First we will add each credential element to the query as a where clause. - // Then we can execute the query and, if we found a user, return it in a - // generic "user" object that will be utilized by the Guard instances. - $query = $this->conn->table($this->table); - - foreach ($credentials as $key => $value) { - if (Str::contains($key, 'password')) { - continue; - } - - if (is_array($value) || $value instanceof Arrayable) { - $query->whereIn($key, $value); - } else { - $query->where($key, $value); - } - } - - // Now we are ready to execute the query to see if we have an user matching - // the given credentials. If not, we will just return nulls and indicate - // that there are no matching users for these given credential arrays. - $user = $query->first(); - - return $this->getGenericUser($user); - } - - /** - * Get the generic user. - * - * @param mixed $user - * @return \Illuminate\Auth\GenericUser|null - */ - protected function getGenericUser($user) - { - if (! is_null($user)) { - return new GenericUser((array) $user); - } - } - - /** - * Validate a user against the given credentials. - * - * @param \Illuminate\Contracts\Auth\Authenticatable $user - * @param array $credentials - * @return bool - */ - public function validateCredentials(UserContract $user, array $credentials) - { - return $this->hasher->check( - $credentials['password'], $user->getAuthPassword() - ); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Auth/EloquentUserProvider.php b/vendor/laravel/framework/src/Illuminate/Auth/EloquentUserProvider.php deleted file mode 100755 index e7b447d2..00000000 --- a/vendor/laravel/framework/src/Illuminate/Auth/EloquentUserProvider.php +++ /dev/null @@ -1,202 +0,0 @@ -model = $model; - $this->hasher = $hasher; - } - - /** - * Retrieve a user by their unique identifier. - * - * @param mixed $identifier - * @return \Illuminate\Contracts\Auth\Authenticatable|null - */ - public function retrieveById($identifier) - { - $model = $this->createModel(); - - return $model->newQuery() - ->where($model->getAuthIdentifierName(), $identifier) - ->first(); - } - - /** - * Retrieve a user by their unique identifier and "remember me" token. - * - * @param mixed $identifier - * @param string $token - * @return \Illuminate\Contracts\Auth\Authenticatable|null - */ - public function retrieveByToken($identifier, $token) - { - $model = $this->createModel(); - - $model = $model->where($model->getAuthIdentifierName(), $identifier)->first(); - - if (! $model) { - return null; - } - - $rememberToken = $model->getRememberToken(); - - return $rememberToken && hash_equals($rememberToken, $token) ? $model : null; - } - - /** - * Update the "remember me" token for the given user in storage. - * - * @param \Illuminate\Contracts\Auth\Authenticatable $user - * @param string $token - * @return void - */ - public function updateRememberToken(UserContract $user, $token) - { - $user->setRememberToken($token); - - $timestamps = $user->timestamps; - - $user->timestamps = false; - - $user->save(); - - $user->timestamps = $timestamps; - } - - /** - * Retrieve a user by the given credentials. - * - * @param array $credentials - * @return \Illuminate\Contracts\Auth\Authenticatable|null - */ - public function retrieveByCredentials(array $credentials) - { - if (empty($credentials) || - (count($credentials) === 1 && - array_key_exists('password', $credentials))) { - return; - } - - // First we will add each credential element to the query as a where clause. - // Then we can execute the query and, if we found a user, return it in a - // Eloquent User "model" that will be utilized by the Guard instances. - $query = $this->createModel()->newQuery(); - - foreach ($credentials as $key => $value) { - if (Str::contains($key, 'password')) { - continue; - } - - if (is_array($value) || $value instanceof Arrayable) { - $query->whereIn($key, $value); - } else { - $query->where($key, $value); - } - } - - return $query->first(); - } - - /** - * Validate a user against the given credentials. - * - * @param \Illuminate\Contracts\Auth\Authenticatable $user - * @param array $credentials - * @return bool - */ - public function validateCredentials(UserContract $user, array $credentials) - { - $plain = $credentials['password']; - - return $this->hasher->check($plain, $user->getAuthPassword()); - } - - /** - * Create a new instance of the model. - * - * @return \Illuminate\Database\Eloquent\Model - */ - public function createModel() - { - $class = '\\'.ltrim($this->model, '\\'); - - return new $class; - } - - /** - * Gets the hasher implementation. - * - * @return \Illuminate\Contracts\Hashing\Hasher - */ - public function getHasher() - { - return $this->hasher; - } - - /** - * Sets the hasher implementation. - * - * @param \Illuminate\Contracts\Hashing\Hasher $hasher - * @return $this - */ - public function setHasher(HasherContract $hasher) - { - $this->hasher = $hasher; - - return $this; - } - - /** - * Gets the name of the Eloquent user model. - * - * @return string - */ - public function getModel() - { - return $this->model; - } - - /** - * Sets the name of the Eloquent user model. - * - * @param string $model - * @return $this - */ - public function setModel($model) - { - $this->model = $model; - - return $this; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Auth/Events/Attempting.php b/vendor/laravel/framework/src/Illuminate/Auth/Events/Attempting.php deleted file mode 100644 index 8353021f..00000000 --- a/vendor/laravel/framework/src/Illuminate/Auth/Events/Attempting.php +++ /dev/null @@ -1,33 +0,0 @@ -remember = $remember; - $this->credentials = $credentials; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Auth/Events/Authenticated.php b/vendor/laravel/framework/src/Illuminate/Auth/Events/Authenticated.php deleted file mode 100644 index f33c198d..00000000 --- a/vendor/laravel/framework/src/Illuminate/Auth/Events/Authenticated.php +++ /dev/null @@ -1,28 +0,0 @@ -user = $user; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Auth/Events/Failed.php b/vendor/laravel/framework/src/Illuminate/Auth/Events/Failed.php deleted file mode 100644 index 31e999c9..00000000 --- a/vendor/laravel/framework/src/Illuminate/Auth/Events/Failed.php +++ /dev/null @@ -1,33 +0,0 @@ -user = $user; - $this->credentials = $credentials; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Auth/Events/Lockout.php b/vendor/laravel/framework/src/Illuminate/Auth/Events/Lockout.php deleted file mode 100644 index 347943fe..00000000 --- a/vendor/laravel/framework/src/Illuminate/Auth/Events/Lockout.php +++ /dev/null @@ -1,26 +0,0 @@ -request = $request; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Auth/Events/Login.php b/vendor/laravel/framework/src/Illuminate/Auth/Events/Login.php deleted file mode 100644 index 88167459..00000000 --- a/vendor/laravel/framework/src/Illuminate/Auth/Events/Login.php +++ /dev/null @@ -1,37 +0,0 @@ -user = $user; - $this->remember = $remember; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Auth/Events/Logout.php b/vendor/laravel/framework/src/Illuminate/Auth/Events/Logout.php deleted file mode 100644 index ea788e71..00000000 --- a/vendor/laravel/framework/src/Illuminate/Auth/Events/Logout.php +++ /dev/null @@ -1,28 +0,0 @@ -user = $user; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Auth/Events/PasswordReset.php b/vendor/laravel/framework/src/Illuminate/Auth/Events/PasswordReset.php deleted file mode 100644 index f57b3c94..00000000 --- a/vendor/laravel/framework/src/Illuminate/Auth/Events/PasswordReset.php +++ /dev/null @@ -1,28 +0,0 @@ -user = $user; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Auth/Events/Registered.php b/vendor/laravel/framework/src/Illuminate/Auth/Events/Registered.php deleted file mode 100644 index f84058cf..00000000 --- a/vendor/laravel/framework/src/Illuminate/Auth/Events/Registered.php +++ /dev/null @@ -1,28 +0,0 @@ -user = $user; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Auth/GenericUser.php b/vendor/laravel/framework/src/Illuminate/Auth/GenericUser.php deleted file mode 100755 index b6880c0c..00000000 --- a/vendor/laravel/framework/src/Illuminate/Auth/GenericUser.php +++ /dev/null @@ -1,134 +0,0 @@ -attributes = $attributes; - } - - /** - * Get the name of the unique identifier for the user. - * - * @return string - */ - public function getAuthIdentifierName() - { - return 'id'; - } - - /** - * Get the unique identifier for the user. - * - * @return mixed - */ - public function getAuthIdentifier() - { - $name = $this->getAuthIdentifierName(); - - return $this->attributes[$name]; - } - - /** - * Get the password for the user. - * - * @return string - */ - public function getAuthPassword() - { - return $this->attributes['password']; - } - - /** - * Get the "remember me" token value. - * - * @return string - */ - public function getRememberToken() - { - return $this->attributes[$this->getRememberTokenName()]; - } - - /** - * Set the "remember me" token value. - * - * @param string $value - * @return void - */ - public function setRememberToken($value) - { - $this->attributes[$this->getRememberTokenName()] = $value; - } - - /** - * Get the column name for the "remember me" token. - * - * @return string - */ - public function getRememberTokenName() - { - return 'remember_token'; - } - - /** - * Dynamically access the user's attributes. - * - * @param string $key - * @return mixed - */ - public function __get($key) - { - return $this->attributes[$key]; - } - - /** - * Dynamically set an attribute on the user. - * - * @param string $key - * @param mixed $value - * @return void - */ - public function __set($key, $value) - { - $this->attributes[$key] = $value; - } - - /** - * Dynamically check if a value is set on the user. - * - * @param string $key - * @return bool - */ - public function __isset($key) - { - return isset($this->attributes[$key]); - } - - /** - * Dynamically unset a value on the user. - * - * @param string $key - * @return void - */ - public function __unset($key) - { - unset($this->attributes[$key]); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Auth/GuardHelpers.php b/vendor/laravel/framework/src/Illuminate/Auth/GuardHelpers.php deleted file mode 100644 index 7c41f4d6..00000000 --- a/vendor/laravel/framework/src/Illuminate/Auth/GuardHelpers.php +++ /dev/null @@ -1,118 +0,0 @@ -user())) { - return $user; - } - - throw new AuthenticationException; - } - - /** - * Determine if the guard has a user instance. - * - * @return bool - */ - public function hasUser() - { - return ! is_null($this->user); - } - - /** - * Determine if the current user is authenticated. - * - * @return bool - */ - public function check() - { - return ! is_null($this->user()); - } - - /** - * Determine if the current user is a guest. - * - * @return bool - */ - public function guest() - { - return ! $this->check(); - } - - /** - * Get the ID for the currently authenticated user. - * - * @return int|null - */ - public function id() - { - if ($this->user()) { - return $this->user()->getAuthIdentifier(); - } - } - - /** - * Set the current user. - * - * @param \Illuminate\Contracts\Auth\Authenticatable $user - * @return $this - */ - public function setUser(AuthenticatableContract $user) - { - $this->user = $user; - - return $this; - } - - /** - * Get the user provider used by the guard. - * - * @return \Illuminate\Contracts\Auth\UserProvider - */ - public function getProvider() - { - return $this->provider; - } - - /** - * Set the user provider used by the guard. - * - * @param \Illuminate\Contracts\Auth\UserProvider $provider - * @return void - */ - public function setProvider(UserProvider $provider) - { - $this->provider = $provider; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Auth/Middleware/Authenticate.php b/vendor/laravel/framework/src/Illuminate/Auth/Middleware/Authenticate.php deleted file mode 100644 index 21ea4b22..00000000 --- a/vendor/laravel/framework/src/Illuminate/Auth/Middleware/Authenticate.php +++ /dev/null @@ -1,68 +0,0 @@ -auth = $auth; - } - - /** - * Handle an incoming request. - * - * @param \Illuminate\Http\Request $request - * @param \Closure $next - * @param string[] ...$guards - * @return mixed - * - * @throws \Illuminate\Auth\AuthenticationException - */ - public function handle($request, Closure $next, ...$guards) - { - $this->authenticate($guards); - - return $next($request); - } - - /** - * Determine if the user is logged in to any of the given guards. - * - * @param array $guards - * @return void - * - * @throws \Illuminate\Auth\AuthenticationException - */ - protected function authenticate(array $guards) - { - if (empty($guards)) { - return $this->auth->authenticate(); - } - - foreach ($guards as $guard) { - if ($this->auth->guard($guard)->check()) { - return $this->auth->shouldUse($guard); - } - } - - throw new AuthenticationException('Unauthenticated.', $guards); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Auth/Middleware/AuthenticateWithBasicAuth.php b/vendor/laravel/framework/src/Illuminate/Auth/Middleware/AuthenticateWithBasicAuth.php deleted file mode 100644 index 71f8be87..00000000 --- a/vendor/laravel/framework/src/Illuminate/Auth/Middleware/AuthenticateWithBasicAuth.php +++ /dev/null @@ -1,40 +0,0 @@ -auth = $auth; - } - - /** - * Handle an incoming request. - * - * @param \Illuminate\Http\Request $request - * @param \Closure $next - * @param string|null $guard - * @return mixed - */ - public function handle($request, Closure $next, $guard = null) - { - return $this->auth->guard($guard)->basic() ?: $next($request); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Auth/Middleware/Authorize.php b/vendor/laravel/framework/src/Illuminate/Auth/Middleware/Authorize.php deleted file mode 100644 index 0993b3b4..00000000 --- a/vendor/laravel/framework/src/Illuminate/Auth/Middleware/Authorize.php +++ /dev/null @@ -1,100 +0,0 @@ -auth = $auth; - $this->gate = $gate; - } - - /** - * Handle an incoming request. - * - * @param \Illuminate\Http\Request $request - * @param \Closure $next - * @param string $ability - * @param array|null ...$models - * @return mixed - * - * @throws \Illuminate\Auth\AuthenticationException - * @throws \Illuminate\Auth\Access\AuthorizationException - */ - public function handle($request, Closure $next, $ability, ...$models) - { - $this->auth->authenticate(); - - $this->gate->authorize($ability, $this->getGateArguments($request, $models)); - - return $next($request); - } - - /** - * Get the arguments parameter for the gate. - * - * @param \Illuminate\Http\Request $request - * @param array|null $models - * @return array|string|\Illuminate\Database\Eloquent\Model - */ - protected function getGateArguments($request, $models) - { - if (is_null($models)) { - return []; - } - - return collect($models)->map(function ($model) use ($request) { - return $model instanceof Model ? $model : $this->getModel($request, $model); - })->all(); - } - - /** - * Get the model to authorize. - * - * @param \Illuminate\Http\Request $request - * @param string $model - * @return \Illuminate\Database\Eloquent\Model|string - */ - protected function getModel($request, $model) - { - return $this->isClassName($model) ? $model : $request->route($model); - } - - /** - * Checks if the given string looks like a fully qualified class name. - * - * @param string $value - * @return bool - */ - protected function isClassName($value) - { - return strpos($value, '\\') !== false; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Auth/Notifications/ResetPassword.php b/vendor/laravel/framework/src/Illuminate/Auth/Notifications/ResetPassword.php deleted file mode 100644 index c2978fe6..00000000 --- a/vendor/laravel/framework/src/Illuminate/Auth/Notifications/ResetPassword.php +++ /dev/null @@ -1,76 +0,0 @@ -token = $token; - } - - /** - * Get the notification's channels. - * - * @param mixed $notifiable - * @return array|string - */ - public function via($notifiable) - { - return ['mail']; - } - - /** - * Build the mail representation of the notification. - * - * @param mixed $notifiable - * @return \Illuminate\Notifications\Messages\MailMessage - */ - public function toMail($notifiable) - { - if (static::$toMailCallback) { - return call_user_func(static::$toMailCallback, $notifiable, $this->token); - } - - return (new MailMessage) - ->subject(Lang::getFromJson('Reset Password Notification')) - ->line(Lang::getFromJson('You are receiving this email because we received a password reset request for your account.')) - ->action(Lang::getFromJson('Reset Password'), url(config('app.url').route('password.reset', $this->token, false))) - ->line(Lang::getFromJson('If you did not request a password reset, no further action is required.')); - } - - /** - * Set a callback that should be used when building the notification mail message. - * - * @param \Closure $callback - * @return void - */ - public static function toMailUsing($callback) - { - static::$toMailCallback = $callback; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Auth/Passwords/CanResetPassword.php b/vendor/laravel/framework/src/Illuminate/Auth/Passwords/CanResetPassword.php deleted file mode 100644 index 918a288f..00000000 --- a/vendor/laravel/framework/src/Illuminate/Auth/Passwords/CanResetPassword.php +++ /dev/null @@ -1,29 +0,0 @@ -email; - } - - /** - * Send the password reset notification. - * - * @param string $token - * @return void - */ - public function sendPasswordResetNotification($token) - { - $this->notify(new ResetPasswordNotification($token)); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Auth/Passwords/DatabaseTokenRepository.php b/vendor/laravel/framework/src/Illuminate/Auth/Passwords/DatabaseTokenRepository.php deleted file mode 100755 index c4701759..00000000 --- a/vendor/laravel/framework/src/Illuminate/Auth/Passwords/DatabaseTokenRepository.php +++ /dev/null @@ -1,204 +0,0 @@ -table = $table; - $this->hasher = $hasher; - $this->hashKey = $hashKey; - $this->expires = $expires * 60; - $this->connection = $connection; - } - - /** - * Create a new token record. - * - * @param \Illuminate\Contracts\Auth\CanResetPassword $user - * @return string - */ - public function create(CanResetPasswordContract $user) - { - $email = $user->getEmailForPasswordReset(); - - $this->deleteExisting($user); - - // We will create a new, random token for the user so that we can e-mail them - // a safe link to the password reset form. Then we will insert a record in - // the database so that we can verify the token within the actual reset. - $token = $this->createNewToken(); - - $this->getTable()->insert($this->getPayload($email, $token)); - - return $token; - } - - /** - * Delete all existing reset tokens from the database. - * - * @param \Illuminate\Contracts\Auth\CanResetPassword $user - * @return int - */ - protected function deleteExisting(CanResetPasswordContract $user) - { - return $this->getTable()->where('email', $user->getEmailForPasswordReset())->delete(); - } - - /** - * Build the record payload for the table. - * - * @param string $email - * @param string $token - * @return array - */ - protected function getPayload($email, $token) - { - return ['email' => $email, 'token' => $this->hasher->make($token), 'created_at' => new Carbon]; - } - - /** - * Determine if a token record exists and is valid. - * - * @param \Illuminate\Contracts\Auth\CanResetPassword $user - * @param string $token - * @return bool - */ - public function exists(CanResetPasswordContract $user, $token) - { - $record = (array) $this->getTable()->where( - 'email', $user->getEmailForPasswordReset() - )->first(); - - return $record && - ! $this->tokenExpired($record['created_at']) && - $this->hasher->check($token, $record['token']); - } - - /** - * Determine if the token has expired. - * - * @param string $createdAt - * @return bool - */ - protected function tokenExpired($createdAt) - { - return Carbon::parse($createdAt)->addSeconds($this->expires)->isPast(); - } - - /** - * Delete a token record by user. - * - * @param \Illuminate\Contracts\Auth\CanResetPassword $user - * @return void - */ - public function delete(CanResetPasswordContract $user) - { - $this->deleteExisting($user); - } - - /** - * Delete expired tokens. - * - * @return void - */ - public function deleteExpired() - { - $expiredAt = Carbon::now()->subSeconds($this->expires); - - $this->getTable()->where('created_at', '<', $expiredAt)->delete(); - } - - /** - * Create a new token for the user. - * - * @return string - */ - public function createNewToken() - { - return hash_hmac('sha256', Str::random(40), $this->hashKey); - } - - /** - * Get the database connection instance. - * - * @return \Illuminate\Database\ConnectionInterface - */ - public function getConnection() - { - return $this->connection; - } - - /** - * Begin a new database query against the table. - * - * @return \Illuminate\Database\Query\Builder - */ - protected function getTable() - { - return $this->connection->table($this->table); - } - - /** - * Get the hasher instance. - * - * @return \Illuminate\Contracts\Hashing\Hasher - */ - public function getHasher() - { - return $this->hasher; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Auth/Passwords/PasswordBroker.php b/vendor/laravel/framework/src/Illuminate/Auth/Passwords/PasswordBroker.php deleted file mode 100755 index 07d046fb..00000000 --- a/vendor/laravel/framework/src/Illuminate/Auth/Passwords/PasswordBroker.php +++ /dev/null @@ -1,242 +0,0 @@ -users = $users; - $this->tokens = $tokens; - } - - /** - * Send a password reset link to a user. - * - * @param array $credentials - * @return string - */ - public function sendResetLink(array $credentials) - { - // First we will check to see if we found a user at the given credentials and - // if we did not we will redirect back to this current URI with a piece of - // "flash" data in the session to indicate to the developers the errors. - $user = $this->getUser($credentials); - - if (is_null($user)) { - return static::INVALID_USER; - } - - // Once we have the reset token, we are ready to send the message out to this - // user with a link to reset their password. We will then redirect back to - // the current URI having nothing set in the session to indicate errors. - $user->sendPasswordResetNotification( - $this->tokens->create($user) - ); - - return static::RESET_LINK_SENT; - } - - /** - * Reset the password for the given token. - * - * @param array $credentials - * @param \Closure $callback - * @return mixed - */ - public function reset(array $credentials, Closure $callback) - { - // If the responses from the validate method is not a user instance, we will - // assume that it is a redirect and simply return it from this method and - // the user is properly redirected having an error message on the post. - $user = $this->validateReset($credentials); - - if (! $user instanceof CanResetPasswordContract) { - return $user; - } - - $password = $credentials['password']; - - // Once the reset has been validated, we'll call the given callback with the - // new password. This gives the user an opportunity to store the password - // in their persistent storage. Then we'll delete the token and return. - $callback($user, $password); - - $this->tokens->delete($user); - - return static::PASSWORD_RESET; - } - - /** - * Validate a password reset for the given credentials. - * - * @param array $credentials - * @return \Illuminate\Contracts\Auth\CanResetPassword|string - */ - protected function validateReset(array $credentials) - { - if (is_null($user = $this->getUser($credentials))) { - return static::INVALID_USER; - } - - if (! $this->validateNewPassword($credentials)) { - return static::INVALID_PASSWORD; - } - - if (! $this->tokens->exists($user, $credentials['token'])) { - return static::INVALID_TOKEN; - } - - return $user; - } - - /** - * Set a custom password validator. - * - * @param \Closure $callback - * @return void - */ - public function validator(Closure $callback) - { - $this->passwordValidator = $callback; - } - - /** - * Determine if the passwords match for the request. - * - * @param array $credentials - * @return bool - */ - public function validateNewPassword(array $credentials) - { - if (isset($this->passwordValidator)) { - list($password, $confirm) = [ - $credentials['password'], - $credentials['password_confirmation'], - ]; - - return call_user_func( - $this->passwordValidator, $credentials - ) && $password === $confirm; - } - - return $this->validatePasswordWithDefaults($credentials); - } - - /** - * Determine if the passwords are valid for the request. - * - * @param array $credentials - * @return bool - */ - protected function validatePasswordWithDefaults(array $credentials) - { - list($password, $confirm) = [ - $credentials['password'], - $credentials['password_confirmation'], - ]; - - return $password === $confirm && mb_strlen($password) >= 6; - } - - /** - * Get the user for the given credentials. - * - * @param array $credentials - * @return \Illuminate\Contracts\Auth\CanResetPassword|null - * - * @throws \UnexpectedValueException - */ - public function getUser(array $credentials) - { - $credentials = Arr::except($credentials, ['token']); - - $user = $this->users->retrieveByCredentials($credentials); - - if ($user && ! $user instanceof CanResetPasswordContract) { - throw new UnexpectedValueException('User must implement CanResetPassword interface.'); - } - - return $user; - } - - /** - * Create a new password reset token for the given user. - * - * @param \Illuminate\Contracts\Auth\CanResetPassword $user - * @return string - */ - public function createToken(CanResetPasswordContract $user) - { - return $this->tokens->create($user); - } - - /** - * Delete password reset tokens of the given user. - * - * @param \Illuminate\Contracts\Auth\CanResetPassword $user - * @return void - */ - public function deleteToken(CanResetPasswordContract $user) - { - $this->tokens->delete($user); - } - - /** - * Validate the given password reset token. - * - * @param \Illuminate\Contracts\Auth\CanResetPassword $user - * @param string $token - * @return bool - */ - public function tokenExists(CanResetPasswordContract $user, $token) - { - return $this->tokens->exists($user, $token); - } - - /** - * Get the password reset token repository implementation. - * - * @return \Illuminate\Auth\Passwords\TokenRepositoryInterface - */ - public function getRepository() - { - return $this->tokens; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Auth/Passwords/PasswordBrokerManager.php b/vendor/laravel/framework/src/Illuminate/Auth/Passwords/PasswordBrokerManager.php deleted file mode 100644 index 1d943bd6..00000000 --- a/vendor/laravel/framework/src/Illuminate/Auth/Passwords/PasswordBrokerManager.php +++ /dev/null @@ -1,147 +0,0 @@ -app = $app; - } - - /** - * Attempt to get the broker from the local cache. - * - * @param string|null $name - * @return \Illuminate\Contracts\Auth\PasswordBroker - */ - public function broker($name = null) - { - $name = $name ?: $this->getDefaultDriver(); - - return isset($this->brokers[$name]) - ? $this->brokers[$name] - : $this->brokers[$name] = $this->resolve($name); - } - - /** - * Resolve the given broker. - * - * @param string $name - * @return \Illuminate\Contracts\Auth\PasswordBroker - * - * @throws \InvalidArgumentException - */ - protected function resolve($name) - { - $config = $this->getConfig($name); - - if (is_null($config)) { - throw new InvalidArgumentException("Password resetter [{$name}] is not defined."); - } - - // The password broker uses a token repository to validate tokens and send user - // password e-mails, as well as validating that password reset process as an - // aggregate service of sorts providing a convenient interface for resets. - return new PasswordBroker( - $this->createTokenRepository($config), - $this->app['auth']->createUserProvider($config['provider'] ?? null) - ); - } - - /** - * Create a token repository instance based on the given configuration. - * - * @param array $config - * @return \Illuminate\Auth\Passwords\TokenRepositoryInterface - */ - protected function createTokenRepository(array $config) - { - $key = $this->app['config']['app.key']; - - if (Str::startsWith($key, 'base64:')) { - $key = base64_decode(substr($key, 7)); - } - - $connection = $config['connection'] ?? null; - - return new DatabaseTokenRepository( - $this->app['db']->connection($connection), - $this->app['hash'], - $config['table'], - $key, - $config['expire'] - ); - } - - /** - * Get the password broker configuration. - * - * @param string $name - * @return array - */ - protected function getConfig($name) - { - return $this->app['config']["auth.passwords.{$name}"]; - } - - /** - * Get the default password broker name. - * - * @return string - */ - public function getDefaultDriver() - { - return $this->app['config']['auth.defaults.passwords']; - } - - /** - * Set the default password broker name. - * - * @param string $name - * @return void - */ - public function setDefaultDriver($name) - { - $this->app['config']['auth.defaults.passwords'] = $name; - } - - /** - * Dynamically call the default driver instance. - * - * @param string $method - * @param array $parameters - * @return mixed - */ - public function __call($method, $parameters) - { - return $this->broker()->{$method}(...$parameters); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Auth/Passwords/PasswordResetServiceProvider.php b/vendor/laravel/framework/src/Illuminate/Auth/Passwords/PasswordResetServiceProvider.php deleted file mode 100755 index 165ecaf9..00000000 --- a/vendor/laravel/framework/src/Illuminate/Auth/Passwords/PasswordResetServiceProvider.php +++ /dev/null @@ -1,51 +0,0 @@ -registerPasswordBroker(); - } - - /** - * Register the password broker instance. - * - * @return void - */ - protected function registerPasswordBroker() - { - $this->app->singleton('auth.password', function ($app) { - return new PasswordBrokerManager($app); - }); - - $this->app->bind('auth.password.broker', function ($app) { - return $app->make('auth.password')->broker(); - }); - } - - /** - * Get the services provided by the provider. - * - * @return array - */ - public function provides() - { - return ['auth.password', 'auth.password.broker']; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Auth/Passwords/TokenRepositoryInterface.php b/vendor/laravel/framework/src/Illuminate/Auth/Passwords/TokenRepositoryInterface.php deleted file mode 100755 index dcd06e8d..00000000 --- a/vendor/laravel/framework/src/Illuminate/Auth/Passwords/TokenRepositoryInterface.php +++ /dev/null @@ -1,40 +0,0 @@ -recaller = $recaller; - } - - /** - * Get the user ID from the recaller. - * - * @return string - */ - public function id() - { - return explode('|', $this->recaller, 3)[0]; - } - - /** - * Get the "remember token" token from the recaller. - * - * @return string - */ - public function token() - { - return explode('|', $this->recaller, 3)[1]; - } - - /** - * Get the password from the recaller. - * - * @return string - */ - public function hash() - { - return explode('|', $this->recaller, 3)[2]; - } - - /** - * Determine if the recaller is valid. - * - * @return bool - */ - public function valid() - { - return $this->properString() && $this->hasAllSegments(); - } - - /** - * Determine if the recaller is an invalid string. - * - * @return bool - */ - protected function properString() - { - return is_string($this->recaller) && Str::contains($this->recaller, '|'); - } - - /** - * Determine if the recaller has all segments. - * - * @return bool - */ - protected function hasAllSegments() - { - $segments = explode('|', $this->recaller); - - return count($segments) == 3 && trim($segments[0]) !== '' && trim($segments[1]) !== ''; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Auth/RequestGuard.php b/vendor/laravel/framework/src/Illuminate/Auth/RequestGuard.php deleted file mode 100644 index 2adc2cc3..00000000 --- a/vendor/laravel/framework/src/Illuminate/Auth/RequestGuard.php +++ /dev/null @@ -1,87 +0,0 @@ -request = $request; - $this->callback = $callback; - $this->provider = $provider; - } - - /** - * Get the currently authenticated user. - * - * @return \Illuminate\Contracts\Auth\Authenticatable|null - */ - public function user() - { - // If we've already retrieved the user for the current request we can just - // return it back immediately. We do not want to fetch the user data on - // every call to this method because that would be tremendously slow. - if (! is_null($this->user)) { - return $this->user; - } - - return $this->user = call_user_func( - $this->callback, $this->request, $this->getProvider() - ); - } - - /** - * Validate a user's credentials. - * - * @param array $credentials - * @return bool - */ - public function validate(array $credentials = []) - { - return ! is_null((new static( - $this->callback, $credentials['request'], $this->getProvider() - ))->user()); - } - - /** - * Set the current request instance. - * - * @param \Illuminate\Http\Request $request - * @return $this - */ - public function setRequest(Request $request) - { - $this->request = $request; - - return $this; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Auth/SessionGuard.php b/vendor/laravel/framework/src/Illuminate/Auth/SessionGuard.php deleted file mode 100644 index 25b5b229..00000000 --- a/vendor/laravel/framework/src/Illuminate/Auth/SessionGuard.php +++ /dev/null @@ -1,774 +0,0 @@ -name = $name; - $this->session = $session; - $this->request = $request; - $this->provider = $provider; - } - - /** - * Get the currently authenticated user. - * - * @return \Illuminate\Contracts\Auth\Authenticatable|null - */ - public function user() - { - if ($this->loggedOut) { - return; - } - - // If we've already retrieved the user for the current request we can just - // return it back immediately. We do not want to fetch the user data on - // every call to this method because that would be tremendously slow. - if (! is_null($this->user)) { - return $this->user; - } - - $id = $this->session->get($this->getName()); - - // First we will try to load the user using the identifier in the session if - // one exists. Otherwise we will check for a "remember me" cookie in this - // request, and if one exists, attempt to retrieve the user using that. - if (! is_null($id)) { - if ($this->user = $this->provider->retrieveById($id)) { - $this->fireAuthenticatedEvent($this->user); - } - } - - // If the user is null, but we decrypt a "recaller" cookie we can attempt to - // pull the user data on that cookie which serves as a remember cookie on - // the application. Once we have a user we can return it to the caller. - $recaller = $this->recaller(); - - if (is_null($this->user) && ! is_null($recaller)) { - $this->user = $this->userFromRecaller($recaller); - - if ($this->user) { - $this->updateSession($this->user->getAuthIdentifier()); - - $this->fireLoginEvent($this->user, true); - } - } - - return $this->user; - } - - /** - * Pull a user from the repository by its "remember me" cookie token. - * - * @param \Illuminate\Auth\Recaller $recaller - * @return mixed - */ - protected function userFromRecaller($recaller) - { - if (! $recaller->valid() || $this->recallAttempted) { - return; - } - - // If the user is null, but we decrypt a "recaller" cookie we can attempt to - // pull the user data on that cookie which serves as a remember cookie on - // the application. Once we have a user we can return it to the caller. - $this->recallAttempted = true; - - $this->viaRemember = ! is_null($user = $this->provider->retrieveByToken( - $recaller->id(), $recaller->token() - )); - - return $user; - } - - /** - * Get the decrypted recaller cookie for the request. - * - * @return \Illuminate\Auth\Recaller|null - */ - protected function recaller() - { - if (is_null($this->request)) { - return; - } - - if ($recaller = $this->request->cookies->get($this->getRecallerName())) { - return new Recaller($recaller); - } - } - - /** - * Get the ID for the currently authenticated user. - * - * @return int|null - */ - public function id() - { - if ($this->loggedOut) { - return; - } - - return $this->user() - ? $this->user()->getAuthIdentifier() - : $this->session->get($this->getName()); - } - - /** - * Log a user into the application without sessions or cookies. - * - * @param array $credentials - * @return bool - */ - public function once(array $credentials = []) - { - $this->fireAttemptEvent($credentials); - - if ($this->validate($credentials)) { - $this->setUser($this->lastAttempted); - - return true; - } - - return false; - } - - /** - * Log the given user ID into the application without sessions or cookies. - * - * @param mixed $id - * @return \Illuminate\Contracts\Auth\Authenticatable|false - */ - public function onceUsingId($id) - { - if (! is_null($user = $this->provider->retrieveById($id))) { - $this->setUser($user); - - return $user; - } - - return false; - } - - /** - * Validate a user's credentials. - * - * @param array $credentials - * @return bool - */ - public function validate(array $credentials = []) - { - $this->lastAttempted = $user = $this->provider->retrieveByCredentials($credentials); - - return $this->hasValidCredentials($user, $credentials); - } - - /** - * Attempt to authenticate using HTTP Basic Auth. - * - * @param string $field - * @param array $extraConditions - * @return \Symfony\Component\HttpFoundation\Response|null - */ - public function basic($field = 'email', $extraConditions = []) - { - if ($this->check()) { - return; - } - - // If a username is set on the HTTP basic request, we will return out without - // interrupting the request lifecycle. Otherwise, we'll need to generate a - // request indicating that the given credentials were invalid for login. - if ($this->attemptBasic($this->getRequest(), $field, $extraConditions)) { - return; - } - - return $this->failedBasicResponse(); - } - - /** - * Perform a stateless HTTP Basic login attempt. - * - * @param string $field - * @param array $extraConditions - * @return \Symfony\Component\HttpFoundation\Response|null - */ - public function onceBasic($field = 'email', $extraConditions = []) - { - $credentials = $this->basicCredentials($this->getRequest(), $field); - - if (! $this->once(array_merge($credentials, $extraConditions))) { - return $this->failedBasicResponse(); - } - } - - /** - * Attempt to authenticate using basic authentication. - * - * @param \Symfony\Component\HttpFoundation\Request $request - * @param string $field - * @param array $extraConditions - * @return bool - */ - protected function attemptBasic(Request $request, $field, $extraConditions = []) - { - if (! $request->getUser()) { - return false; - } - - return $this->attempt(array_merge( - $this->basicCredentials($request, $field), $extraConditions - )); - } - - /** - * Get the credential array for a HTTP Basic request. - * - * @param \Symfony\Component\HttpFoundation\Request $request - * @param string $field - * @return array - */ - protected function basicCredentials(Request $request, $field) - { - return [$field => $request->getUser(), 'password' => $request->getPassword()]; - } - - /** - * Get the response for basic authentication. - * - * @return void - * @throws \Symfony\Component\HttpKernel\Exception\UnauthorizedHttpException - */ - protected function failedBasicResponse() - { - throw new UnauthorizedHttpException('Basic', 'Invalid credentials.'); - } - - /** - * Attempt to authenticate a user using the given credentials. - * - * @param array $credentials - * @param bool $remember - * @return bool - */ - public function attempt(array $credentials = [], $remember = false) - { - $this->fireAttemptEvent($credentials, $remember); - - $this->lastAttempted = $user = $this->provider->retrieveByCredentials($credentials); - - // If an implementation of UserInterface was returned, we'll ask the provider - // to validate the user against the given credentials, and if they are in - // fact valid we'll log the users into the application and return true. - if ($this->hasValidCredentials($user, $credentials)) { - $this->login($user, $remember); - - return true; - } - - // If the authentication attempt fails we will fire an event so that the user - // may be notified of any suspicious attempts to access their account from - // an unrecognized user. A developer may listen to this event as needed. - $this->fireFailedEvent($user, $credentials); - - return false; - } - - /** - * Determine if the user matches the credentials. - * - * @param mixed $user - * @param array $credentials - * @return bool - */ - protected function hasValidCredentials($user, $credentials) - { - return ! is_null($user) && $this->provider->validateCredentials($user, $credentials); - } - - /** - * Log the given user ID into the application. - * - * @param mixed $id - * @param bool $remember - * @return \Illuminate\Contracts\Auth\Authenticatable|false - */ - public function loginUsingId($id, $remember = false) - { - if (! is_null($user = $this->provider->retrieveById($id))) { - $this->login($user, $remember); - - return $user; - } - - return false; - } - - /** - * Log a user into the application. - * - * @param \Illuminate\Contracts\Auth\Authenticatable $user - * @param bool $remember - * @return void - */ - public function login(AuthenticatableContract $user, $remember = false) - { - $this->updateSession($user->getAuthIdentifier()); - - // If the user should be permanently "remembered" by the application we will - // queue a permanent cookie that contains the encrypted copy of the user - // identifier. We will then decrypt this later to retrieve the users. - if ($remember) { - $this->ensureRememberTokenIsSet($user); - - $this->queueRecallerCookie($user); - } - - // If we have an event dispatcher instance set we will fire an event so that - // any listeners will hook into the authentication events and run actions - // based on the login and logout events fired from the guard instances. - $this->fireLoginEvent($user, $remember); - - $this->setUser($user); - } - - /** - * Update the session with the given ID. - * - * @param string $id - * @return void - */ - protected function updateSession($id) - { - $this->session->put($this->getName(), $id); - - $this->session->migrate(true); - } - - /** - * Create a new "remember me" token for the user if one doesn't already exist. - * - * @param \Illuminate\Contracts\Auth\Authenticatable $user - * @return void - */ - protected function ensureRememberTokenIsSet(AuthenticatableContract $user) - { - if (empty($user->getRememberToken())) { - $this->cycleRememberToken($user); - } - } - - /** - * Queue the recaller cookie into the cookie jar. - * - * @param \Illuminate\Contracts\Auth\Authenticatable $user - * @return void - */ - protected function queueRecallerCookie(AuthenticatableContract $user) - { - $this->getCookieJar()->queue($this->createRecaller( - $user->getAuthIdentifier().'|'.$user->getRememberToken().'|'.$user->getAuthPassword() - )); - } - - /** - * Create a "remember me" cookie for a given ID. - * - * @param string $value - * @return \Symfony\Component\HttpFoundation\Cookie - */ - protected function createRecaller($value) - { - return $this->getCookieJar()->forever($this->getRecallerName(), $value); - } - - /** - * Log the user out of the application. - * - * @return void - */ - public function logout() - { - $user = $this->user(); - - // If we have an event dispatcher instance, we can fire off the logout event - // so any further processing can be done. This allows the developer to be - // listening for anytime a user signs out of this application manually. - $this->clearUserDataFromStorage(); - - if (! is_null($this->user)) { - $this->cycleRememberToken($user); - } - - if (isset($this->events)) { - $this->events->dispatch(new Events\Logout($user)); - } - - // Once we have fired the logout event we will clear the users out of memory - // so they are no longer available as the user is no longer considered as - // being signed into this application and should not be available here. - $this->user = null; - - $this->loggedOut = true; - } - - /** - * Remove the user data from the session and cookies. - * - * @return void - */ - protected function clearUserDataFromStorage() - { - $this->session->remove($this->getName()); - - if (! is_null($this->recaller())) { - $this->getCookieJar()->queue($this->getCookieJar() - ->forget($this->getRecallerName())); - } - } - - /** - * Refresh the "remember me" token for the user. - * - * @param \Illuminate\Contracts\Auth\Authenticatable $user - * @return void - */ - protected function cycleRememberToken(AuthenticatableContract $user) - { - $user->setRememberToken($token = Str::random(60)); - - $this->provider->updateRememberToken($user, $token); - } - - /** - * Invalidate other sessions for the current user. - * - * The application must be using the AuthenticateSession middleware. - * - * @param string $password - * @param string $attribute - * @return null|bool - */ - public function logoutOtherDevices($password, $attribute = 'password') - { - if (! $this->user()) { - return; - } - - return tap($this->user()->forceFill([ - $attribute => Hash::make($password), - ]))->save(); - } - - /** - * Register an authentication attempt event listener. - * - * @param mixed $callback - * @return void - */ - public function attempting($callback) - { - if (isset($this->events)) { - $this->events->listen(Events\Attempting::class, $callback); - } - } - - /** - * Fire the attempt event with the arguments. - * - * @param array $credentials - * @param bool $remember - * @return void - */ - protected function fireAttemptEvent(array $credentials, $remember = false) - { - if (isset($this->events)) { - $this->events->dispatch(new Events\Attempting( - $credentials, $remember - )); - } - } - - /** - * Fire the login event if the dispatcher is set. - * - * @param \Illuminate\Contracts\Auth\Authenticatable $user - * @param bool $remember - * @return void - */ - protected function fireLoginEvent($user, $remember = false) - { - if (isset($this->events)) { - $this->events->dispatch(new Events\Login($user, $remember)); - } - } - - /** - * Fire the authenticated event if the dispatcher is set. - * - * @param \Illuminate\Contracts\Auth\Authenticatable $user - * @return void - */ - protected function fireAuthenticatedEvent($user) - { - if (isset($this->events)) { - $this->events->dispatch(new Events\Authenticated($user)); - } - } - - /** - * Fire the failed authentication attempt event with the given arguments. - * - * @param \Illuminate\Contracts\Auth\Authenticatable|null $user - * @param array $credentials - * @return void - */ - protected function fireFailedEvent($user, array $credentials) - { - if (isset($this->events)) { - $this->events->dispatch(new Events\Failed($user, $credentials)); - } - } - - /** - * Get the last user we attempted to authenticate. - * - * @return \Illuminate\Contracts\Auth\Authenticatable - */ - public function getLastAttempted() - { - return $this->lastAttempted; - } - - /** - * Get a unique identifier for the auth session value. - * - * @return string - */ - public function getName() - { - return 'login_'.$this->name.'_'.sha1(static::class); - } - - /** - * Get the name of the cookie used to store the "recaller". - * - * @return string - */ - public function getRecallerName() - { - return 'remember_'.$this->name.'_'.sha1(static::class); - } - - /** - * Determine if the user was authenticated via "remember me" cookie. - * - * @return bool - */ - public function viaRemember() - { - return $this->viaRemember; - } - - /** - * Get the cookie creator instance used by the guard. - * - * @return \Illuminate\Contracts\Cookie\QueueingFactory - * - * @throws \RuntimeException - */ - public function getCookieJar() - { - if (! isset($this->cookie)) { - throw new RuntimeException('Cookie jar has not been set.'); - } - - return $this->cookie; - } - - /** - * Set the cookie creator instance used by the guard. - * - * @param \Illuminate\Contracts\Cookie\QueueingFactory $cookie - * @return void - */ - public function setCookieJar(CookieJar $cookie) - { - $this->cookie = $cookie; - } - - /** - * Get the event dispatcher instance. - * - * @return \Illuminate\Contracts\Events\Dispatcher - */ - public function getDispatcher() - { - return $this->events; - } - - /** - * Set the event dispatcher instance. - * - * @param \Illuminate\Contracts\Events\Dispatcher $events - * @return void - */ - public function setDispatcher(Dispatcher $events) - { - $this->events = $events; - } - - /** - * Get the session store used by the guard. - * - * @return \Illuminate\Contracts\Session\Session - */ - public function getSession() - { - return $this->session; - } - - /** - * Return the currently cached user. - * - * @return \Illuminate\Contracts\Auth\Authenticatable|null - */ - public function getUser() - { - return $this->user; - } - - /** - * Set the current user. - * - * @param \Illuminate\Contracts\Auth\Authenticatable $user - * @return $this - */ - public function setUser(AuthenticatableContract $user) - { - $this->user = $user; - - $this->loggedOut = false; - - $this->fireAuthenticatedEvent($user); - - return $this; - } - - /** - * Get the current request instance. - * - * @return \Symfony\Component\HttpFoundation\Request - */ - public function getRequest() - { - return $this->request ?: Request::createFromGlobals(); - } - - /** - * Set the current request instance. - * - * @param \Symfony\Component\HttpFoundation\Request $request - * @return $this - */ - public function setRequest(Request $request) - { - $this->request = $request; - - return $this; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Auth/TokenGuard.php b/vendor/laravel/framework/src/Illuminate/Auth/TokenGuard.php deleted file mode 100644 index 56ac19b1..00000000 --- a/vendor/laravel/framework/src/Illuminate/Auth/TokenGuard.php +++ /dev/null @@ -1,135 +0,0 @@ -request = $request; - $this->provider = $provider; - $this->inputKey = $inputKey; - $this->storageKey = $storageKey; - } - - /** - * Get the currently authenticated user. - * - * @return \Illuminate\Contracts\Auth\Authenticatable|null - */ - public function user() - { - // If we've already retrieved the user for the current request we can just - // return it back immediately. We do not want to fetch the user data on - // every call to this method because that would be tremendously slow. - if (! is_null($this->user)) { - return $this->user; - } - - $user = null; - - $token = $this->getTokenForRequest(); - - if (! empty($token)) { - $user = $this->provider->retrieveByCredentials( - [$this->storageKey => $token] - ); - } - - return $this->user = $user; - } - - /** - * Get the token for the current request. - * - * @return string - */ - public function getTokenForRequest() - { - $token = $this->request->query($this->inputKey); - - if (empty($token)) { - $token = $this->request->input($this->inputKey); - } - - if (empty($token)) { - $token = $this->request->bearerToken(); - } - - if (empty($token)) { - $token = $this->request->getPassword(); - } - - return $token; - } - - /** - * Validate a user's credentials. - * - * @param array $credentials - * @return bool - */ - public function validate(array $credentials = []) - { - if (empty($credentials[$this->inputKey])) { - return false; - } - - $credentials = [$this->storageKey => $credentials[$this->inputKey]]; - - if ($this->provider->retrieveByCredentials($credentials)) { - return true; - } - - return false; - } - - /** - * Set the current request instance. - * - * @param \Illuminate\Http\Request $request - * @return $this - */ - public function setRequest(Request $request) - { - $this->request = $request; - - return $this; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Auth/composer.json b/vendor/laravel/framework/src/Illuminate/Auth/composer.json deleted file mode 100644 index 896c871a..00000000 --- a/vendor/laravel/framework/src/Illuminate/Auth/composer.json +++ /dev/null @@ -1,42 +0,0 @@ -{ - "name": "illuminate/auth", - "description": "The Illuminate Auth package.", - "license": "MIT", - "homepage": "https://laravel.com", - "support": { - "issues": "https://github.com/laravel/framework/issues", - "source": "https://github.com/laravel/framework" - }, - "authors": [ - { - "name": "Taylor Otwell", - "email": "taylor@laravel.com" - } - ], - "require": { - "php": "^7.1.3", - "illuminate/contracts": "5.6.*", - "illuminate/http": "5.6.*", - "illuminate/queue": "5.6.*", - "illuminate/support": "5.6.*" - }, - "autoload": { - "psr-4": { - "Illuminate\\Auth\\": "" - } - }, - "extra": { - "branch-alias": { - "dev-master": "5.6-dev" - } - }, - "suggest": { - "illuminate/console": "Required to use the auth:clear-resets command (5.6.*).", - "illuminate/queue": "Required to fire login / logout events (5.6.*).", - "illuminate/session": "Required to use the session based guard (5.6.*)." - }, - "config": { - "sort-packages": true - }, - "minimum-stability": "dev" -} diff --git a/vendor/laravel/framework/src/Illuminate/Broadcasting/BroadcastController.php b/vendor/laravel/framework/src/Illuminate/Broadcasting/BroadcastController.php deleted file mode 100644 index f71c9237..00000000 --- a/vendor/laravel/framework/src/Illuminate/Broadcasting/BroadcastController.php +++ /dev/null @@ -1,21 +0,0 @@ -event = $event; - } - - /** - * Handle the queued job. - * - * @param \Illuminate\Contracts\Broadcasting\Broadcaster $broadcaster - * @return void - */ - public function handle(Broadcaster $broadcaster) - { - $name = method_exists($this->event, 'broadcastAs') - ? $this->event->broadcastAs() : get_class($this->event); - - $broadcaster->broadcast( - Arr::wrap($this->event->broadcastOn()), $name, - $this->getPayloadFromEvent($this->event) - ); - } - - /** - * Get the payload for the given event. - * - * @param mixed $event - * @return array - */ - protected function getPayloadFromEvent($event) - { - if (method_exists($event, 'broadcastWith')) { - return array_merge( - $event->broadcastWith(), ['socket' => data_get($event, 'socket')] - ); - } - - $payload = []; - - foreach ((new ReflectionClass($event))->getProperties(ReflectionProperty::IS_PUBLIC) as $property) { - $payload[$property->getName()] = $this->formatProperty($property->getValue($event)); - } - - unset($payload['broadcastQueue']); - - return $payload; - } - - /** - * Format the given value for a property. - * - * @param mixed $value - * @return mixed - */ - protected function formatProperty($value) - { - if ($value instanceof Arrayable) { - return $value->toArray(); - } - - return $value; - } - - /** - * Get the display name for the queued job. - * - * @return string - */ - public function displayName() - { - return get_class($this->event); - } - - /** - * Prepare the instance for cloning. - * - * @return void - */ - public function __clone() - { - $this->event = clone $this->event; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Broadcasting/BroadcastException.php b/vendor/laravel/framework/src/Illuminate/Broadcasting/BroadcastException.php deleted file mode 100644 index 8fd55f7c..00000000 --- a/vendor/laravel/framework/src/Illuminate/Broadcasting/BroadcastException.php +++ /dev/null @@ -1,10 +0,0 @@ -app = $app; - } - - /** - * Register the routes for handling broadcast authentication and sockets. - * - * @param array|null $attributes - * @return void - */ - public function routes(array $attributes = null) - { - if ($this->app->routesAreCached()) { - return; - } - - $attributes = $attributes ?: ['middleware' => ['web']]; - - $this->app['router']->group($attributes, function ($router) { - $router->match( - ['get', 'post'], '/broadcasting/auth', - '\\'.BroadcastController::class.'@authenticate' - ); - }); - } - - /** - * Get the socket ID for the given request. - * - * @param \Illuminate\Http\Request|null $request - * @return string|null - */ - public function socket($request = null) - { - if (! $request && ! $this->app->bound('request')) { - return; - } - - $request = $request ?: $this->app['request']; - - return $request->header('X-Socket-ID'); - } - - /** - * Begin broadcasting an event. - * - * @param mixed|null $event - * @return \Illuminate\Broadcasting\PendingBroadcast|void - */ - public function event($event = null) - { - return new PendingBroadcast($this->app->make('events'), $event); - } - - /** - * Queue the given event for broadcast. - * - * @param mixed $event - * @return void - */ - public function queue($event) - { - $connection = $event instanceof ShouldBroadcastNow ? 'sync' : null; - - if (is_null($connection) && isset($event->connection)) { - $connection = $event->connection; - } - - $queue = null; - - if (method_exists($event, 'broadcastQueue')) { - $queue = $event->broadcastQueue(); - } elseif (isset($event->broadcastQueue)) { - $queue = $event->broadcastQueue; - } elseif (isset($event->queue)) { - $queue = $event->queue; - } - - $this->app->make('queue')->connection($connection)->pushOn( - $queue, new BroadcastEvent(clone $event) - ); - } - - /** - * Get a driver instance. - * - * @param string $driver - * @return mixed - */ - public function connection($driver = null) - { - return $this->driver($driver); - } - - /** - * Get a driver instance. - * - * @param string|null $name - * @return mixed - */ - public function driver($name = null) - { - $name = $name ?: $this->getDefaultDriver(); - - return $this->drivers[$name] = $this->get($name); - } - - /** - * Attempt to get the connection from the local cache. - * - * @param string $name - * @return \Illuminate\Contracts\Broadcasting\Broadcaster - */ - protected function get($name) - { - return $this->drivers[$name] ?? $this->resolve($name); - } - - /** - * Resolve the given store. - * - * @param string $name - * @return \Illuminate\Contracts\Broadcasting\Broadcaster - * - * @throws \InvalidArgumentException - */ - protected function resolve($name) - { - $config = $this->getConfig($name); - - if (is_null($config)) { - throw new InvalidArgumentException("Broadcaster [{$name}] is not defined."); - } - - if (isset($this->customCreators[$config['driver']])) { - return $this->callCustomCreator($config); - } - - $driverMethod = 'create'.ucfirst($config['driver']).'Driver'; - - if (! method_exists($this, $driverMethod)) { - throw new InvalidArgumentException("Driver [{$config['driver']}] is not supported."); - } - - return $this->{$driverMethod}($config); - } - - /** - * Call a custom driver creator. - * - * @param array $config - * @return mixed - */ - protected function callCustomCreator(array $config) - { - return $this->customCreators[$config['driver']]($this->app, $config); - } - - /** - * Create an instance of the driver. - * - * @param array $config - * @return \Illuminate\Contracts\Broadcasting\Broadcaster - */ - protected function createPusherDriver(array $config) - { - return new PusherBroadcaster( - new Pusher($config['key'], $config['secret'], - $config['app_id'], $config['options'] ?? []) - ); - } - - /** - * Create an instance of the driver. - * - * @param array $config - * @return \Illuminate\Contracts\Broadcasting\Broadcaster - */ - protected function createRedisDriver(array $config) - { - return new RedisBroadcaster( - $this->app->make('redis'), $config['connection'] ?? null - ); - } - - /** - * Create an instance of the driver. - * - * @param array $config - * @return \Illuminate\Contracts\Broadcasting\Broadcaster - */ - protected function createLogDriver(array $config) - { - return new LogBroadcaster( - $this->app->make(LoggerInterface::class) - ); - } - - /** - * Create an instance of the driver. - * - * @param array $config - * @return \Illuminate\Contracts\Broadcasting\Broadcaster - */ - protected function createNullDriver(array $config) - { - return new NullBroadcaster; - } - - /** - * Get the connection configuration. - * - * @param string $name - * @return array - */ - protected function getConfig($name) - { - return $this->app['config']["broadcasting.connections.{$name}"]; - } - - /** - * Get the default driver name. - * - * @return string - */ - public function getDefaultDriver() - { - return $this->app['config']['broadcasting.default']; - } - - /** - * Set the default driver name. - * - * @param string $name - * @return void - */ - public function setDefaultDriver($name) - { - $this->app['config']['broadcasting.default'] = $name; - } - - /** - * Register a custom driver creator Closure. - * - * @param string $driver - * @param \Closure $callback - * @return $this - */ - public function extend($driver, Closure $callback) - { - $this->customCreators[$driver] = $callback; - - return $this; - } - - /** - * Dynamically call the default driver instance. - * - * @param string $method - * @param array $parameters - * @return mixed - */ - public function __call($method, $parameters) - { - return $this->driver()->$method(...$parameters); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Broadcasting/BroadcastServiceProvider.php b/vendor/laravel/framework/src/Illuminate/Broadcasting/BroadcastServiceProvider.php deleted file mode 100644 index adf88a6f..00000000 --- a/vendor/laravel/framework/src/Illuminate/Broadcasting/BroadcastServiceProvider.php +++ /dev/null @@ -1,51 +0,0 @@ -app->singleton(BroadcastManager::class, function ($app) { - return new BroadcastManager($app); - }); - - $this->app->singleton(BroadcasterContract::class, function ($app) { - return $app->make(BroadcastManager::class)->connection(); - }); - - $this->app->alias( - BroadcastManager::class, BroadcastingFactory::class - ); - } - - /** - * Get the services provided by the provider. - * - * @return array - */ - public function provides() - { - return [ - BroadcastManager::class, - BroadcastingFactory::class, - BroadcasterContract::class, - ]; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Broadcasting/Broadcasters/Broadcaster.php b/vendor/laravel/framework/src/Illuminate/Broadcasting/Broadcasters/Broadcaster.php deleted file mode 100644 index 18a8fefb..00000000 --- a/vendor/laravel/framework/src/Illuminate/Broadcasting/Broadcasters/Broadcaster.php +++ /dev/null @@ -1,259 +0,0 @@ -channels[$channel] = $callback; - - return $this; - } - - /** - * Authenticate the incoming request for a given channel. - * - * @param \Illuminate\Http\Request $request - * @param string $channel - * @return mixed - * @throws \Symfony\Component\HttpKernel\Exception\AccessDeniedHttpException - */ - protected function verifyUserCanAccessChannel($request, $channel) - { - foreach ($this->channels as $pattern => $callback) { - if (! Str::is(preg_replace('/\{(.*?)\}/', '*', $pattern), $channel)) { - continue; - } - - $parameters = $this->extractAuthParameters($pattern, $channel, $callback); - - $handler = $this->normalizeChannelHandlerToCallable($callback); - - if ($result = $handler($request->user(), ...$parameters)) { - return $this->validAuthenticationResponse($request, $result); - } - } - - throw new AccessDeniedHttpException; - } - - /** - * Extract the parameters from the given pattern and channel. - * - * @param string $pattern - * @param string $channel - * @param callable|string $callback - * @return array - */ - protected function extractAuthParameters($pattern, $channel, $callback) - { - $callbackParameters = $this->extractParameters($callback); - - return collect($this->extractChannelKeys($pattern, $channel))->reject(function ($value, $key) { - return is_numeric($key); - })->map(function ($value, $key) use ($callbackParameters) { - return $this->resolveBinding($key, $value, $callbackParameters); - })->values()->all(); - } - - /** - * Extracts the parameters out of what the user passed to handle the channel authentication. - * - * @param callable|string $callback - * @return \ReflectionParameter[] - * @throws \Exception - */ - protected function extractParameters($callback) - { - if (is_callable($callback)) { - return (new ReflectionFunction($callback))->getParameters(); - } elseif (is_string($callback)) { - return $this->extractParametersFromClass($callback); - } - - throw new Exception('Given channel handler is an unknown type.'); - } - - /** - * Extracts the parameters out of a class channel's "join" method. - * - * @param string $callback - * @return \ReflectionParameter[] - * @throws \Exception - */ - protected function extractParametersFromClass($callback) - { - $reflection = new ReflectionClass($callback); - - if (! $reflection->hasMethod('join')) { - throw new Exception('Class based channel must define a "join" method.'); - } - - return $reflection->getMethod('join')->getParameters(); - } - - /** - * Extract the channel keys from the incoming channel name. - * - * @param string $pattern - * @param string $channel - * @return array - */ - protected function extractChannelKeys($pattern, $channel) - { - preg_match('/^'.preg_replace('/\{(.*?)\}/', '(?<$1>[^\.]+)', $pattern).'/', $channel, $keys); - - return $keys; - } - - /** - * Resolve the given parameter binding. - * - * @param string $key - * @param string $value - * @param array $callbackParameters - * @return mixed - */ - protected function resolveBinding($key, $value, $callbackParameters) - { - $newValue = $this->resolveExplicitBindingIfPossible($key, $value); - - return $newValue === $value ? $this->resolveImplicitBindingIfPossible( - $key, $value, $callbackParameters - ) : $newValue; - } - - /** - * Resolve an explicit parameter binding if applicable. - * - * @param string $key - * @param mixed $value - * @return mixed - */ - protected function resolveExplicitBindingIfPossible($key, $value) - { - $binder = $this->binder(); - - if ($binder && $binder->getBindingCallback($key)) { - return call_user_func($binder->getBindingCallback($key), $value); - } - - return $value; - } - - /** - * Resolve an implicit parameter binding if applicable. - * - * @param string $key - * @param mixed $value - * @param array $callbackParameters - * @return mixed - * @throws \Symfony\Component\HttpKernel\Exception\AccessDeniedHttpException - */ - protected function resolveImplicitBindingIfPossible($key, $value, $callbackParameters) - { - foreach ($callbackParameters as $parameter) { - if (! $this->isImplicitlyBindable($key, $parameter)) { - continue; - } - - $instance = $parameter->getClass()->newInstance(); - - if (! $model = $instance->resolveRouteBinding($value)) { - throw new AccessDeniedHttpException; - } - - return $model; - } - - return $value; - } - - /** - * Determine if a given key and parameter is implicitly bindable. - * - * @param string $key - * @param \ReflectionParameter $parameter - * @return bool - */ - protected function isImplicitlyBindable($key, $parameter) - { - return $parameter->name === $key && $parameter->getClass() && - $parameter->getClass()->isSubclassOf(UrlRoutable::class); - } - - /** - * Format the channel array into an array of strings. - * - * @param array $channels - * @return array - */ - protected function formatChannels(array $channels) - { - return array_map(function ($channel) { - return (string) $channel; - }, $channels); - } - - /** - * Get the model binding registrar instance. - * - * @return \Illuminate\Contracts\Routing\BindingRegistrar - */ - protected function binder() - { - if (! $this->bindingRegistrar) { - $this->bindingRegistrar = Container::getInstance()->bound(BindingRegistrar::class) - ? Container::getInstance()->make(BindingRegistrar::class) : null; - } - - return $this->bindingRegistrar; - } - - /** - * Normalize the given callback into a callable. - * - * @param mixed $callback - * @return callable|\Closure - */ - protected function normalizeChannelHandlerToCallable($callback) - { - return is_callable($callback) ? $callback : function (...$args) use ($callback) { - return Container::getInstance() - ->make($callback) - ->join(...$args); - }; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Broadcasting/Broadcasters/LogBroadcaster.php b/vendor/laravel/framework/src/Illuminate/Broadcasting/Broadcasters/LogBroadcaster.php deleted file mode 100644 index 50877dc9..00000000 --- a/vendor/laravel/framework/src/Illuminate/Broadcasting/Broadcasters/LogBroadcaster.php +++ /dev/null @@ -1,54 +0,0 @@ -logger = $logger; - } - - /** - * {@inheritdoc} - */ - public function auth($request) - { - // - } - - /** - * {@inheritdoc} - */ - public function validAuthenticationResponse($request, $result) - { - // - } - - /** - * {@inheritdoc} - */ - public function broadcast(array $channels, $event, array $payload = []) - { - $channels = implode(', ', $this->formatChannels($channels)); - - $payload = json_encode($payload, JSON_PRETTY_PRINT); - - $this->logger->info('Broadcasting ['.$event.'] on channels ['.$channels.'] with payload:'.PHP_EOL.$payload); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Broadcasting/Broadcasters/NullBroadcaster.php b/vendor/laravel/framework/src/Illuminate/Broadcasting/Broadcasters/NullBroadcaster.php deleted file mode 100644 index 6205c90c..00000000 --- a/vendor/laravel/framework/src/Illuminate/Broadcasting/Broadcasters/NullBroadcaster.php +++ /dev/null @@ -1,30 +0,0 @@ -pusher = $pusher; - } - - /** - * Authenticate the incoming request for a given channel. - * - * @param \Illuminate\Http\Request $request - * @return mixed - * @throws \Symfony\Component\HttpKernel\Exception\AccessDeniedHttpException - */ - public function auth($request) - { - if (Str::startsWith($request->channel_name, ['private-', 'presence-']) && - ! $request->user()) { - throw new AccessDeniedHttpException; - } - - $channelName = Str::startsWith($request->channel_name, 'private-') - ? Str::replaceFirst('private-', '', $request->channel_name) - : Str::replaceFirst('presence-', '', $request->channel_name); - - return parent::verifyUserCanAccessChannel( - $request, $channelName - ); - } - - /** - * Return the valid authentication response. - * - * @param \Illuminate\Http\Request $request - * @param mixed $result - * @return mixed - */ - public function validAuthenticationResponse($request, $result) - { - if (Str::startsWith($request->channel_name, 'private')) { - return $this->decodePusherResponse( - $request, $this->pusher->socket_auth($request->channel_name, $request->socket_id) - ); - } - - return $this->decodePusherResponse( - $request, - $this->pusher->presence_auth( - $request->channel_name, $request->socket_id, - $request->user()->getAuthIdentifier(), $result - ) - ); - } - - /** - * Decode the given Pusher response. - * - * @param \Illuminate\Http\Request $request - * @param mixed $response - * @return array - */ - protected function decodePusherResponse($request, $response) - { - if (! $request->input('callback', false)) { - return json_decode($response, true); - } - - return response()->json(json_decode($response, true)) - ->withCallback($request->callback); - } - - /** - * Broadcast the given event. - * - * @param array $channels - * @param string $event - * @param array $payload - * @return void - */ - public function broadcast(array $channels, $event, array $payload = []) - { - $socket = Arr::pull($payload, 'socket'); - - $response = $this->pusher->trigger( - $this->formatChannels($channels), $event, $payload, $socket, true - ); - - if ((is_array($response) && $response['status'] >= 200 && $response['status'] <= 299) - || $response === true) { - return; - } - - throw new BroadcastException( - is_bool($response) ? 'Failed to connect to Pusher.' : $response['body'] - ); - } - - /** - * Get the Pusher SDK instance. - * - * @return \Pusher\Pusher - */ - public function getPusher() - { - return $this->pusher; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Broadcasting/Broadcasters/RedisBroadcaster.php b/vendor/laravel/framework/src/Illuminate/Broadcasting/Broadcasters/RedisBroadcaster.php deleted file mode 100644 index ccda0e65..00000000 --- a/vendor/laravel/framework/src/Illuminate/Broadcasting/Broadcasters/RedisBroadcaster.php +++ /dev/null @@ -1,103 +0,0 @@ -redis = $redis; - $this->connection = $connection; - } - - /** - * Authenticate the incoming request for a given channel. - * - * @param \Illuminate\Http\Request $request - * @return mixed - * @throws \Symfony\Component\HttpKernel\Exception\AccessDeniedHttpException - */ - public function auth($request) - { - if (Str::startsWith($request->channel_name, ['private-', 'presence-']) && - ! $request->user()) { - throw new AccessDeniedHttpException; - } - - $channelName = Str::startsWith($request->channel_name, 'private-') - ? Str::replaceFirst('private-', '', $request->channel_name) - : Str::replaceFirst('presence-', '', $request->channel_name); - - return parent::verifyUserCanAccessChannel( - $request, $channelName - ); - } - - /** - * Return the valid authentication response. - * - * @param \Illuminate\Http\Request $request - * @param mixed $result - * @return mixed - */ - public function validAuthenticationResponse($request, $result) - { - if (is_bool($result)) { - return json_encode($result); - } - - return json_encode(['channel_data' => [ - 'user_id' => $request->user()->getAuthIdentifier(), - 'user_info' => $result, - ]]); - } - - /** - * Broadcast the given event. - * - * @param array $channels - * @param string $event - * @param array $payload - * @return void - */ - public function broadcast(array $channels, $event, array $payload = []) - { - $connection = $this->redis->connection($this->connection); - - $payload = json_encode([ - 'event' => $event, - 'data' => $payload, - 'socket' => Arr::pull($payload, 'socket'), - ]); - - foreach ($this->formatChannels($channels) as $channel) { - $connection->publish($channel, $payload); - } - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Broadcasting/Channel.php b/vendor/laravel/framework/src/Illuminate/Broadcasting/Channel.php deleted file mode 100644 index 798d6026..00000000 --- a/vendor/laravel/framework/src/Illuminate/Broadcasting/Channel.php +++ /dev/null @@ -1,34 +0,0 @@ -name = $name; - } - - /** - * Convert the channel instance to a string. - * - * @return string - */ - public function __toString() - { - return $this->name; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Broadcasting/InteractsWithSockets.php b/vendor/laravel/framework/src/Illuminate/Broadcasting/InteractsWithSockets.php deleted file mode 100644 index 6be0791a..00000000 --- a/vendor/laravel/framework/src/Illuminate/Broadcasting/InteractsWithSockets.php +++ /dev/null @@ -1,39 +0,0 @@ -socket = Broadcast::socket(); - - return $this; - } - - /** - * Broadcast the event to everyone. - * - * @return $this - */ - public function broadcastToEveryone() - { - $this->socket = null; - - return $this; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Broadcasting/PendingBroadcast.php b/vendor/laravel/framework/src/Illuminate/Broadcasting/PendingBroadcast.php deleted file mode 100644 index b7550290..00000000 --- a/vendor/laravel/framework/src/Illuminate/Broadcasting/PendingBroadcast.php +++ /dev/null @@ -1,59 +0,0 @@ -event = $event; - $this->events = $events; - } - - /** - * Broadcast the event to everyone except the current user. - * - * @return $this - */ - public function toOthers() - { - if (method_exists($this->event, 'dontBroadcastToCurrentUser')) { - $this->event->dontBroadcastToCurrentUser(); - } - - return $this; - } - - /** - * Handle the object's destruction. - * - * @return void - */ - public function __destruct() - { - $this->events->dispatch($this->event); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Broadcasting/PresenceChannel.php b/vendor/laravel/framework/src/Illuminate/Broadcasting/PresenceChannel.php deleted file mode 100644 index 22de12d3..00000000 --- a/vendor/laravel/framework/src/Illuminate/Broadcasting/PresenceChannel.php +++ /dev/null @@ -1,17 +0,0 @@ -app->singleton(Dispatcher::class, function ($app) { - return new Dispatcher($app, function ($connection = null) use ($app) { - return $app[QueueFactoryContract::class]->connection($connection); - }); - }); - - $this->app->alias( - Dispatcher::class, DispatcherContract::class - ); - - $this->app->alias( - Dispatcher::class, QueueingDispatcherContract::class - ); - } - - /** - * Get the services provided by the provider. - * - * @return array - */ - public function provides() - { - return [ - Dispatcher::class, - DispatcherContract::class, - QueueingDispatcherContract::class, - ]; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Bus/Dispatcher.php b/vendor/laravel/framework/src/Illuminate/Bus/Dispatcher.php deleted file mode 100644 index 1a7b9a40..00000000 --- a/vendor/laravel/framework/src/Illuminate/Bus/Dispatcher.php +++ /dev/null @@ -1,212 +0,0 @@ -container = $container; - $this->queueResolver = $queueResolver; - $this->pipeline = new Pipeline($container); - } - - /** - * Dispatch a command to its appropriate handler. - * - * @param mixed $command - * @return mixed - */ - public function dispatch($command) - { - if ($this->queueResolver && $this->commandShouldBeQueued($command)) { - return $this->dispatchToQueue($command); - } - - return $this->dispatchNow($command); - } - - /** - * Dispatch a command to its appropriate handler in the current process. - * - * @param mixed $command - * @param mixed $handler - * @return mixed - */ - public function dispatchNow($command, $handler = null) - { - if ($handler || $handler = $this->getCommandHandler($command)) { - $callback = function ($command) use ($handler) { - return $handler->handle($command); - }; - } else { - $callback = function ($command) { - return $this->container->call([$command, 'handle']); - }; - } - - return $this->pipeline->send($command)->through($this->pipes)->then($callback); - } - - /** - * Determine if the given command has a handler. - * - * @param mixed $command - * @return bool - */ - public function hasCommandHandler($command) - { - return array_key_exists(get_class($command), $this->handlers); - } - - /** - * Retrieve the handler for a command. - * - * @param mixed $command - * @return bool|mixed - */ - public function getCommandHandler($command) - { - if ($this->hasCommandHandler($command)) { - return $this->container->make($this->handlers[get_class($command)]); - } - - return false; - } - - /** - * Determine if the given command should be queued. - * - * @param mixed $command - * @return bool - */ - protected function commandShouldBeQueued($command) - { - return $command instanceof ShouldQueue; - } - - /** - * Dispatch a command to its appropriate handler behind a queue. - * - * @param mixed $command - * @return mixed - * - * @throws \RuntimeException - */ - public function dispatchToQueue($command) - { - $connection = $command->connection ?? null; - - $queue = call_user_func($this->queueResolver, $connection); - - if (! $queue instanceof Queue) { - throw new RuntimeException('Queue resolver did not return a Queue implementation.'); - } - - if (method_exists($command, 'queue')) { - return $command->queue($queue, $command); - } - - return $this->pushCommandToQueue($queue, $command); - } - - /** - * Push the command onto the given queue instance. - * - * @param \Illuminate\Contracts\Queue\Queue $queue - * @param mixed $command - * @return mixed - */ - protected function pushCommandToQueue($queue, $command) - { - if (isset($command->queue, $command->delay)) { - return $queue->laterOn($command->queue, $command->delay, $command); - } - - if (isset($command->queue)) { - return $queue->pushOn($command->queue, $command); - } - - if (isset($command->delay)) { - return $queue->later($command->delay, $command); - } - - return $queue->push($command); - } - - /** - * Set the pipes through which commands should be piped before dispatching. - * - * @param array $pipes - * @return $this - */ - public function pipeThrough(array $pipes) - { - $this->pipes = $pipes; - - return $this; - } - - /** - * Map a command to a handler. - * - * @param array $map - * @return $this - */ - public function map(array $map) - { - $this->handlers = array_merge($this->handlers, $map); - - return $this; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Bus/Queueable.php b/vendor/laravel/framework/src/Illuminate/Bus/Queueable.php deleted file mode 100644 index 48cee186..00000000 --- a/vendor/laravel/framework/src/Illuminate/Bus/Queueable.php +++ /dev/null @@ -1,150 +0,0 @@ -connection = $connection; - - return $this; - } - - /** - * Set the desired queue for the job. - * - * @param string|null $queue - * @return $this - */ - public function onQueue($queue) - { - $this->queue = $queue; - - return $this; - } - - /** - * Set the desired connection for the chain. - * - * @param string|null $connection - * @return $this - */ - public function allOnConnection($connection) - { - $this->chainConnection = $connection; - $this->connection = $connection; - - return $this; - } - - /** - * Set the desired queue for the chain. - * - * @param string|null $queue - * @return $this - */ - public function allOnQueue($queue) - { - $this->chainQueue = $queue; - $this->queue = $queue; - - return $this; - } - - /** - * Set the desired delay for the job. - * - * @param \DateTimeInterface|\DateInterval|int|null $delay - * @return $this - */ - public function delay($delay) - { - $this->delay = $delay; - - return $this; - } - - /** - * Set the jobs that should run if this job is successful. - * - * @param array $chain - * @return $this - */ - public function chain($chain) - { - $this->chained = collect($chain)->map(function ($job) { - return serialize($job); - })->all(); - - return $this; - } - - /** - * Dispatch the next job on the chain. - * - * @return void - */ - public function dispatchNextJobInChain() - { - if (! empty($this->chained)) { - dispatch(tap(unserialize(array_shift($this->chained)), function ($next) { - $next->chained = $this->chained; - - $next->onConnection($next->connection ?: $this->chainConnection); - $next->onQueue($next->queue ?: $this->chainQueue); - - $next->chainConnection = $this->chainConnection; - $next->chainQueue = $this->chainQueue; - })); - } - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Bus/composer.json b/vendor/laravel/framework/src/Illuminate/Bus/composer.json deleted file mode 100644 index 4939a99d..00000000 --- a/vendor/laravel/framework/src/Illuminate/Bus/composer.json +++ /dev/null @@ -1,36 +0,0 @@ -{ - "name": "illuminate/bus", - "description": "The Illuminate Bus package.", - "license": "MIT", - "homepage": "https://laravel.com", - "support": { - "issues": "https://github.com/laravel/framework/issues", - "source": "https://github.com/laravel/framework" - }, - "authors": [ - { - "name": "Taylor Otwell", - "email": "taylor@laravel.com" - } - ], - "require": { - "php": "^7.1.3", - "illuminate/contracts": "5.6.*", - "illuminate/pipeline": "5.6.*", - "illuminate/support": "5.6.*" - }, - "autoload": { - "psr-4": { - "Illuminate\\Bus\\": "" - } - }, - "extra": { - "branch-alias": { - "dev-master": "5.6-dev" - } - }, - "config": { - "sort-packages": true - }, - "minimum-stability": "dev" -} diff --git a/vendor/laravel/framework/src/Illuminate/Cache/ApcStore.php b/vendor/laravel/framework/src/Illuminate/Cache/ApcStore.php deleted file mode 100755 index db11ea4e..00000000 --- a/vendor/laravel/framework/src/Illuminate/Cache/ApcStore.php +++ /dev/null @@ -1,132 +0,0 @@ -apc = $apc; - $this->prefix = $prefix; - } - - /** - * Retrieve an item from the cache by key. - * - * @param string|array $key - * @return mixed - */ - public function get($key) - { - $value = $this->apc->get($this->prefix.$key); - - if ($value !== false) { - return $value; - } - } - - /** - * Store an item in the cache for a given number of minutes. - * - * @param string $key - * @param mixed $value - * @param float|int $minutes - * @return void - */ - public function put($key, $value, $minutes) - { - $this->apc->put($this->prefix.$key, $value, (int) ($minutes * 60)); - } - - /** - * Increment the value of an item in the cache. - * - * @param string $key - * @param mixed $value - * @return int|bool - */ - public function increment($key, $value = 1) - { - return $this->apc->increment($this->prefix.$key, $value); - } - - /** - * Decrement the value of an item in the cache. - * - * @param string $key - * @param mixed $value - * @return int|bool - */ - public function decrement($key, $value = 1) - { - return $this->apc->decrement($this->prefix.$key, $value); - } - - /** - * Store an item in the cache indefinitely. - * - * @param string $key - * @param mixed $value - * @return void - */ - public function forever($key, $value) - { - $this->put($key, $value, 0); - } - - /** - * Remove an item from the cache. - * - * @param string $key - * @return bool - */ - public function forget($key) - { - return $this->apc->delete($this->prefix.$key); - } - - /** - * Remove all items from the cache. - * - * @return bool - */ - public function flush() - { - return $this->apc->flush(); - } - - /** - * Get the cache key prefix. - * - * @return string - */ - public function getPrefix() - { - return $this->prefix; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Cache/ApcWrapper.php b/vendor/laravel/framework/src/Illuminate/Cache/ApcWrapper.php deleted file mode 100755 index 42e76aaa..00000000 --- a/vendor/laravel/framework/src/Illuminate/Cache/ApcWrapper.php +++ /dev/null @@ -1,92 +0,0 @@ -apcu = function_exists('apcu_fetch'); - } - - /** - * Get an item from the cache. - * - * @param string $key - * @return mixed - */ - public function get($key) - { - return $this->apcu ? apcu_fetch($key) : apc_fetch($key); - } - - /** - * Store an item in the cache. - * - * @param string $key - * @param mixed $value - * @param int $seconds - * @return array|bool - */ - public function put($key, $value, $seconds) - { - return $this->apcu ? apcu_store($key, $value, $seconds) : apc_store($key, $value, $seconds); - } - - /** - * Increment the value of an item in the cache. - * - * @param string $key - * @param mixed $value - * @return int|bool - */ - public function increment($key, $value) - { - return $this->apcu ? apcu_inc($key, $value) : apc_inc($key, $value); - } - - /** - * Decrement the value of an item in the cache. - * - * @param string $key - * @param mixed $value - * @return int|bool - */ - public function decrement($key, $value) - { - return $this->apcu ? apcu_dec($key, $value) : apc_dec($key, $value); - } - - /** - * Remove an item from the cache. - * - * @param string $key - * @return bool - */ - public function delete($key) - { - return $this->apcu ? apcu_delete($key) : apc_delete($key); - } - - /** - * Remove all items from the cache. - * - * @return bool - */ - public function flush() - { - return $this->apcu ? apcu_clear_cache() : apc_clear_cache('user'); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Cache/ArrayStore.php b/vendor/laravel/framework/src/Illuminate/Cache/ArrayStore.php deleted file mode 100644 index 806f9711..00000000 --- a/vendor/laravel/framework/src/Illuminate/Cache/ArrayStore.php +++ /dev/null @@ -1,115 +0,0 @@ -storage[$key] ?? null; - } - - /** - * Store an item in the cache for a given number of minutes. - * - * @param string $key - * @param mixed $value - * @param float|int $minutes - * @return void - */ - public function put($key, $value, $minutes) - { - $this->storage[$key] = $value; - } - - /** - * Increment the value of an item in the cache. - * - * @param string $key - * @param mixed $value - * @return int - */ - public function increment($key, $value = 1) - { - $this->storage[$key] = ! isset($this->storage[$key]) - ? $value : ((int) $this->storage[$key]) + $value; - - return $this->storage[$key]; - } - - /** - * Decrement the value of an item in the cache. - * - * @param string $key - * @param mixed $value - * @return int - */ - public function decrement($key, $value = 1) - { - return $this->increment($key, $value * -1); - } - - /** - * Store an item in the cache indefinitely. - * - * @param string $key - * @param mixed $value - * @return void - */ - public function forever($key, $value) - { - $this->put($key, $value, 0); - } - - /** - * Remove an item from the cache. - * - * @param string $key - * @return bool - */ - public function forget($key) - { - unset($this->storage[$key]); - - return true; - } - - /** - * Remove all items from the cache. - * - * @return bool - */ - public function flush() - { - $this->storage = []; - - return true; - } - - /** - * Get the cache key prefix. - * - * @return string - */ - public function getPrefix() - { - return ''; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Cache/CacheManager.php b/vendor/laravel/framework/src/Illuminate/Cache/CacheManager.php deleted file mode 100755 index 550249e5..00000000 --- a/vendor/laravel/framework/src/Illuminate/Cache/CacheManager.php +++ /dev/null @@ -1,306 +0,0 @@ -app = $app; - } - - /** - * Get a cache store instance by name. - * - * @param string|null $name - * @return \Illuminate\Contracts\Cache\Repository - */ - public function store($name = null) - { - $name = $name ?: $this->getDefaultDriver(); - - return $this->stores[$name] = $this->get($name); - } - - /** - * Get a cache driver instance. - * - * @param string|null $driver - * @return mixed - */ - public function driver($driver = null) - { - return $this->store($driver); - } - - /** - * Attempt to get the store from the local cache. - * - * @param string $name - * @return \Illuminate\Contracts\Cache\Repository - */ - protected function get($name) - { - return $this->stores[$name] ?? $this->resolve($name); - } - - /** - * Resolve the given store. - * - * @param string $name - * @return \Illuminate\Contracts\Cache\Repository - * - * @throws \InvalidArgumentException - */ - protected function resolve($name) - { - $config = $this->getConfig($name); - - if (is_null($config)) { - throw new InvalidArgumentException("Cache store [{$name}] is not defined."); - } - - if (isset($this->customCreators[$config['driver']])) { - return $this->callCustomCreator($config); - } else { - $driverMethod = 'create'.ucfirst($config['driver']).'Driver'; - - if (method_exists($this, $driverMethod)) { - return $this->{$driverMethod}($config); - } else { - throw new InvalidArgumentException("Driver [{$config['driver']}] is not supported."); - } - } - } - - /** - * Call a custom driver creator. - * - * @param array $config - * @return mixed - */ - protected function callCustomCreator(array $config) - { - return $this->customCreators[$config['driver']]($this->app, $config); - } - - /** - * Create an instance of the APC cache driver. - * - * @param array $config - * @return \Illuminate\Cache\ApcStore - */ - protected function createApcDriver(array $config) - { - $prefix = $this->getPrefix($config); - - return $this->repository(new ApcStore(new ApcWrapper, $prefix)); - } - - /** - * Create an instance of the array cache driver. - * - * @return \Illuminate\Cache\ArrayStore - */ - protected function createArrayDriver() - { - return $this->repository(new ArrayStore); - } - - /** - * Create an instance of the file cache driver. - * - * @param array $config - * @return \Illuminate\Cache\FileStore - */ - protected function createFileDriver(array $config) - { - return $this->repository(new FileStore($this->app['files'], $config['path'])); - } - - /** - * Create an instance of the Memcached cache driver. - * - * @param array $config - * @return \Illuminate\Cache\MemcachedStore - */ - protected function createMemcachedDriver(array $config) - { - $prefix = $this->getPrefix($config); - - $memcached = $this->app['memcached.connector']->connect( - $config['servers'], - $config['persistent_id'] ?? null, - $config['options'] ?? [], - array_filter($config['sasl'] ?? []) - ); - - return $this->repository(new MemcachedStore($memcached, $prefix)); - } - - /** - * Create an instance of the Null cache driver. - * - * @return \Illuminate\Cache\NullStore - */ - protected function createNullDriver() - { - return $this->repository(new NullStore); - } - - /** - * Create an instance of the Redis cache driver. - * - * @param array $config - * @return \Illuminate\Cache\RedisStore - */ - protected function createRedisDriver(array $config) - { - $redis = $this->app['redis']; - - $connection = $config['connection'] ?? 'default'; - - return $this->repository(new RedisStore($redis, $this->getPrefix($config), $connection)); - } - - /** - * Create an instance of the database cache driver. - * - * @param array $config - * @return \Illuminate\Cache\DatabaseStore - */ - protected function createDatabaseDriver(array $config) - { - $connection = $this->app['db']->connection($config['connection'] ?? null); - - return $this->repository( - new DatabaseStore( - $connection, $config['table'], $this->getPrefix($config) - ) - ); - } - - /** - * Create a new cache repository with the given implementation. - * - * @param \Illuminate\Contracts\Cache\Store $store - * @return \Illuminate\Cache\Repository - */ - public function repository(Store $store) - { - $repository = new Repository($store); - - if ($this->app->bound(DispatcherContract::class)) { - $repository->setEventDispatcher( - $this->app[DispatcherContract::class] - ); - } - - return $repository; - } - - /** - * Get the cache prefix. - * - * @param array $config - * @return string - */ - protected function getPrefix(array $config) - { - return $config['prefix'] ?? $this->app['config']['cache.prefix']; - } - - /** - * Get the cache connection configuration. - * - * @param string $name - * @return array - */ - protected function getConfig($name) - { - return $this->app['config']["cache.stores.{$name}"]; - } - - /** - * Get the default cache driver name. - * - * @return string - */ - public function getDefaultDriver() - { - return $this->app['config']['cache.default']; - } - - /** - * Set the default cache driver name. - * - * @param string $name - * @return void - */ - public function setDefaultDriver($name) - { - $this->app['config']['cache.default'] = $name; - } - - /** - * Register a custom driver creator Closure. - * - * @param string $driver - * @param \Closure $callback - * @return $this - */ - public function extend($driver, Closure $callback) - { - $this->customCreators[$driver] = $callback->bindTo($this, $this); - - return $this; - } - - /** - * Dynamically call the default driver instance. - * - * @param string $method - * @param array $parameters - * @return mixed - */ - public function __call($method, $parameters) - { - return $this->store()->$method(...$parameters); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Cache/CacheServiceProvider.php b/vendor/laravel/framework/src/Illuminate/Cache/CacheServiceProvider.php deleted file mode 100755 index 8eb5ed60..00000000 --- a/vendor/laravel/framework/src/Illuminate/Cache/CacheServiceProvider.php +++ /dev/null @@ -1,47 +0,0 @@ -app->singleton('cache', function ($app) { - return new CacheManager($app); - }); - - $this->app->singleton('cache.store', function ($app) { - return $app['cache']->driver(); - }); - - $this->app->singleton('memcached.connector', function () { - return new MemcachedConnector; - }); - } - - /** - * Get the services provided by the provider. - * - * @return array - */ - public function provides() - { - return [ - 'cache', 'cache.store', 'memcached.connector', - ]; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Cache/Console/CacheTableCommand.php b/vendor/laravel/framework/src/Illuminate/Cache/Console/CacheTableCommand.php deleted file mode 100644 index bde2d4b9..00000000 --- a/vendor/laravel/framework/src/Illuminate/Cache/Console/CacheTableCommand.php +++ /dev/null @@ -1,81 +0,0 @@ -files = $files; - $this->composer = $composer; - } - - /** - * Execute the console command. - * - * @return void - */ - public function handle() - { - $fullPath = $this->createBaseMigration(); - - $this->files->put($fullPath, $this->files->get(__DIR__.'/stubs/cache.stub')); - - $this->info('Migration created successfully!'); - - $this->composer->dumpAutoloads(); - } - - /** - * Create a base migration file for the table. - * - * @return string - */ - protected function createBaseMigration() - { - $name = 'create_cache_table'; - - $path = $this->laravel->databasePath().'/migrations'; - - return $this->laravel['migration.creator']->create($name, $path); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Cache/Console/ClearCommand.php b/vendor/laravel/framework/src/Illuminate/Cache/Console/ClearCommand.php deleted file mode 100755 index 34f2a4d8..00000000 --- a/vendor/laravel/framework/src/Illuminate/Cache/Console/ClearCommand.php +++ /dev/null @@ -1,141 +0,0 @@ -cache = $cache; - $this->files = $files; - } - - /** - * Execute the console command. - * - * @return void - */ - public function handle() - { - $this->laravel['events']->fire( - 'cache:clearing', [$this->argument('store'), $this->tags()] - ); - - $this->cache()->flush(); - - $this->flushFacades(); - - $this->laravel['events']->fire( - 'cache:cleared', [$this->argument('store'), $this->tags()] - ); - - $this->info('Application cache cleared!'); - } - - /** - * Flush the real-time facades stored in the cache directory. - * - * @return void - */ - public function flushFacades() - { - if (! $this->files->exists($storagePath = storage_path('framework/cache'))) { - return; - } - - foreach ($this->files->files($storagePath) as $file) { - if (preg_match('/facade-.*\.php$/', $file)) { - $this->files->delete($file); - } - } - } - - /** - * Get the cache instance for the command. - * - * @return \Illuminate\Cache\Repository - */ - protected function cache() - { - $cache = $this->cache->store($this->argument('store')); - - return empty($this->tags()) ? $cache : $cache->tags($this->tags()); - } - - /** - * Get the tags passed to the command. - * - * @return array - */ - protected function tags() - { - return array_filter(explode(',', $this->option('tags'))); - } - - /** - * Get the console command arguments. - * - * @return array - */ - protected function getArguments() - { - return [ - ['store', InputArgument::OPTIONAL, 'The name of the store you would like to clear.'], - ]; - } - - /** - * Get the console command options. - * - * @return array - */ - protected function getOptions() - { - return [ - ['tags', null, InputOption::VALUE_OPTIONAL, 'The cache tags you would like to clear.', null], - ]; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Cache/Console/ForgetCommand.php b/vendor/laravel/framework/src/Illuminate/Cache/Console/ForgetCommand.php deleted file mode 100755 index 646dc146..00000000 --- a/vendor/laravel/framework/src/Illuminate/Cache/Console/ForgetCommand.php +++ /dev/null @@ -1,57 +0,0 @@ -cache = $cache; - } - - /** - * Execute the console command. - * - * @return void - */ - public function handle() - { - $this->cache->store($this->argument('store'))->forget( - $this->argument('key') - ); - - $this->info('The ['.$this->argument('key').'] key has been removed from the cache.'); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Cache/Console/stubs/cache.stub b/vendor/laravel/framework/src/Illuminate/Cache/Console/stubs/cache.stub deleted file mode 100644 index 058afe69..00000000 --- a/vendor/laravel/framework/src/Illuminate/Cache/Console/stubs/cache.stub +++ /dev/null @@ -1,32 +0,0 @@ -string('key')->unique(); - $table->mediumText('value'); - $table->integer('expiration'); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::dropIfExists('cache'); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Cache/DatabaseStore.php b/vendor/laravel/framework/src/Illuminate/Cache/DatabaseStore.php deleted file mode 100755 index 2306fb06..00000000 --- a/vendor/laravel/framework/src/Illuminate/Cache/DatabaseStore.php +++ /dev/null @@ -1,256 +0,0 @@ -table = $table; - $this->prefix = $prefix; - $this->connection = $connection; - } - - /** - * Retrieve an item from the cache by key. - * - * @param string|array $key - * @return mixed - */ - public function get($key) - { - $prefixed = $this->prefix.$key; - - $cache = $this->table()->where('key', '=', $prefixed)->first(); - - // If we have a cache record we will check the expiration time against current - // time on the system and see if the record has expired. If it has, we will - // remove the records from the database table so it isn't returned again. - if (is_null($cache)) { - return; - } - - $cache = is_array($cache) ? (object) $cache : $cache; - - // If this cache expiration date is past the current time, we will remove this - // item from the cache. Then we will return a null value since the cache is - // expired. We will use "Carbon" to make this comparison with the column. - if ($this->currentTime() >= $cache->expiration) { - $this->forget($key); - - return; - } - - return unserialize($cache->value); - } - - /** - * Store an item in the cache for a given number of minutes. - * - * @param string $key - * @param mixed $value - * @param float|int $minutes - * @return void - */ - public function put($key, $value, $minutes) - { - $key = $this->prefix.$key; - - $value = serialize($value); - - $expiration = $this->getTime() + (int) ($minutes * 60); - - try { - $this->table()->insert(compact('key', 'value', 'expiration')); - } catch (Exception $e) { - $this->table()->where('key', $key)->update(compact('value', 'expiration')); - } - } - - /** - * Increment the value of an item in the cache. - * - * @param string $key - * @param mixed $value - * @return int|bool - */ - public function increment($key, $value = 1) - { - return $this->incrementOrDecrement($key, $value, function ($current, $value) { - return $current + $value; - }); - } - - /** - * Decrement the value of an item in the cache. - * - * @param string $key - * @param mixed $value - * @return int|bool - */ - public function decrement($key, $value = 1) - { - return $this->incrementOrDecrement($key, $value, function ($current, $value) { - return $current - $value; - }); - } - - /** - * Increment or decrement an item in the cache. - * - * @param string $key - * @param mixed $value - * @param \Closure $callback - * @return int|bool - */ - protected function incrementOrDecrement($key, $value, Closure $callback) - { - return $this->connection->transaction(function () use ($key, $value, $callback) { - $prefixed = $this->prefix.$key; - - $cache = $this->table()->where('key', $prefixed) - ->lockForUpdate()->first(); - - // If there is no value in the cache, we will return false here. Otherwise the - // value will be decrypted and we will proceed with this function to either - // increment or decrement this value based on the given action callbacks. - if (is_null($cache)) { - return false; - } - - $cache = is_array($cache) ? (object) $cache : $cache; - - $current = unserialize($cache->value); - - // Here we'll call this callback function that was given to the function which - // is used to either increment or decrement the function. We use a callback - // so we do not have to recreate all this logic in each of the functions. - $new = $callback((int) $current, $value); - - if (! is_numeric($current)) { - return false; - } - - // Here we will update the values in the table. We will also encrypt the value - // since database cache values are encrypted by default with secure storage - // that can't be easily read. We will return the new value after storing. - $this->table()->where('key', $prefixed)->update([ - 'value' => serialize($new), - ]); - - return $new; - }); - } - - /** - * Get the current system time. - * - * @return int - */ - protected function getTime() - { - return $this->currentTime(); - } - - /** - * Store an item in the cache indefinitely. - * - * @param string $key - * @param mixed $value - * @return void - */ - public function forever($key, $value) - { - $this->put($key, $value, 5256000); - } - - /** - * Remove an item from the cache. - * - * @param string $key - * @return bool - */ - public function forget($key) - { - $this->table()->where('key', '=', $this->prefix.$key)->delete(); - - return true; - } - - /** - * Remove all items from the cache. - * - * @return bool - */ - public function flush() - { - return (bool) $this->table()->delete(); - } - - /** - * Get a query builder for the cache table. - * - * @return \Illuminate\Database\Query\Builder - */ - protected function table() - { - return $this->connection->table($this->table); - } - - /** - * Get the underlying database connection. - * - * @return \Illuminate\Database\ConnectionInterface - */ - public function getConnection() - { - return $this->connection; - } - - /** - * Get the cache key prefix. - * - * @return string - */ - public function getPrefix() - { - return $this->prefix; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Cache/Events/CacheEvent.php b/vendor/laravel/framework/src/Illuminate/Cache/Events/CacheEvent.php deleted file mode 100644 index 6c9d42c5..00000000 --- a/vendor/laravel/framework/src/Illuminate/Cache/Events/CacheEvent.php +++ /dev/null @@ -1,46 +0,0 @@ -key = $key; - $this->tags = $tags; - } - - /** - * Set the tags for the cache event. - * - * @param array $tags - * @return $this - */ - public function setTags($tags) - { - $this->tags = $tags; - - return $this; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Cache/Events/CacheHit.php b/vendor/laravel/framework/src/Illuminate/Cache/Events/CacheHit.php deleted file mode 100644 index 976c9e4f..00000000 --- a/vendor/laravel/framework/src/Illuminate/Cache/Events/CacheHit.php +++ /dev/null @@ -1,28 +0,0 @@ -value = $value; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Cache/Events/CacheMissed.php b/vendor/laravel/framework/src/Illuminate/Cache/Events/CacheMissed.php deleted file mode 100644 index d2a5c9f9..00000000 --- a/vendor/laravel/framework/src/Illuminate/Cache/Events/CacheMissed.php +++ /dev/null @@ -1,8 +0,0 @@ -value = $value; - $this->minutes = $minutes; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Cache/FileStore.php b/vendor/laravel/framework/src/Illuminate/Cache/FileStore.php deleted file mode 100755 index cead4ac8..00000000 --- a/vendor/laravel/framework/src/Illuminate/Cache/FileStore.php +++ /dev/null @@ -1,262 +0,0 @@ -files = $files; - $this->directory = $directory; - } - - /** - * Retrieve an item from the cache by key. - * - * @param string|array $key - * @return mixed - */ - public function get($key) - { - return $this->getPayload($key)['data'] ?? null; - } - - /** - * Store an item in the cache for a given number of minutes. - * - * @param string $key - * @param mixed $value - * @param float|int $minutes - * @return void - */ - public function put($key, $value, $minutes) - { - $this->ensureCacheDirectoryExists($path = $this->path($key)); - - $this->files->put( - $path, $this->expiration($minutes).serialize($value), true - ); - } - - /** - * Create the file cache directory if necessary. - * - * @param string $path - * @return void - */ - protected function ensureCacheDirectoryExists($path) - { - if (! $this->files->exists(dirname($path))) { - $this->files->makeDirectory(dirname($path), 0777, true, true); - } - } - - /** - * Increment the value of an item in the cache. - * - * @param string $key - * @param mixed $value - * @return int - */ - public function increment($key, $value = 1) - { - $raw = $this->getPayload($key); - - return tap(((int) $raw['data']) + $value, function ($newValue) use ($key, $raw) { - $this->put($key, $newValue, $raw['time'] ?? 0); - }); - } - - /** - * Decrement the value of an item in the cache. - * - * @param string $key - * @param mixed $value - * @return int - */ - public function decrement($key, $value = 1) - { - return $this->increment($key, $value * -1); - } - - /** - * Store an item in the cache indefinitely. - * - * @param string $key - * @param mixed $value - * @return void - */ - public function forever($key, $value) - { - $this->put($key, $value, 0); - } - - /** - * Remove an item from the cache. - * - * @param string $key - * @return bool - */ - public function forget($key) - { - if ($this->files->exists($file = $this->path($key))) { - return $this->files->delete($file); - } - - return false; - } - - /** - * Remove all items from the cache. - * - * @return bool - */ - public function flush() - { - if (! $this->files->isDirectory($this->directory)) { - return false; - } - - foreach ($this->files->directories($this->directory) as $directory) { - if (! $this->files->deleteDirectory($directory)) { - return false; - } - } - - return true; - } - - /** - * Retrieve an item and expiry time from the cache by key. - * - * @param string $key - * @return array - */ - protected function getPayload($key) - { - $path = $this->path($key); - - // If the file doesn't exist, we obviously cannot return the cache so we will - // just return null. Otherwise, we'll get the contents of the file and get - // the expiration UNIX timestamps from the start of the file's contents. - try { - $expire = substr( - $contents = $this->files->get($path, true), 0, 10 - ); - } catch (Exception $e) { - return $this->emptyPayload(); - } - - // If the current time is greater than expiration timestamps we will delete - // the file and return null. This helps clean up the old files and keeps - // this directory much cleaner for us as old files aren't hanging out. - if ($this->currentTime() >= $expire) { - $this->forget($key); - - return $this->emptyPayload(); - } - - $data = unserialize(substr($contents, 10)); - - // Next, we'll extract the number of minutes that are remaining for a cache - // so that we can properly retain the time for things like the increment - // operation that may be performed on this cache on a later operation. - $time = ($expire - $this->currentTime()) / 60; - - return compact('data', 'time'); - } - - /** - * Get a default empty payload for the cache. - * - * @return array - */ - protected function emptyPayload() - { - return ['data' => null, 'time' => null]; - } - - /** - * Get the full path for the given cache key. - * - * @param string $key - * @return string - */ - protected function path($key) - { - $parts = array_slice(str_split($hash = sha1($key), 2), 0, 2); - - return $this->directory.'/'.implode('/', $parts).'/'.$hash; - } - - /** - * Get the expiration time based on the given minutes. - * - * @param float|int $minutes - * @return int - */ - protected function expiration($minutes) - { - $time = $this->availableAt((int) ($minutes * 60)); - - return $minutes === 0 || $time > 9999999999 ? 9999999999 : (int) $time; - } - - /** - * Get the Filesystem instance. - * - * @return \Illuminate\Filesystem\Filesystem - */ - public function getFilesystem() - { - return $this->files; - } - - /** - * Get the working directory of the cache. - * - * @return string - */ - public function getDirectory() - { - return $this->directory; - } - - /** - * Get the cache key prefix. - * - * @return string - */ - public function getPrefix() - { - return ''; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Cache/Lock.php b/vendor/laravel/framework/src/Illuminate/Cache/Lock.php deleted file mode 100644 index e81bee6e..00000000 --- a/vendor/laravel/framework/src/Illuminate/Cache/Lock.php +++ /dev/null @@ -1,93 +0,0 @@ -name = $name; - $this->seconds = $seconds; - } - - /** - * Attempt to acquire the lock. - * - * @return bool - */ - abstract public function acquire(); - - /** - * Attempt to acquire the lock. - * - * @param callable|null $callback - * @return bool - */ - public function get($callback = null) - { - $result = $this->acquire(); - - if ($result && is_callable($callback)) { - return tap($callback(), function () { - $this->release(); - }); - } - - return $result; - } - - /** - * Attempt to acquire the lock for the given number of seconds. - * - * @param int $seconds - * @param callable|null $callback - * @return bool - * @throws \Illuminate\Contracts\Cache\LockTimeoutException - */ - public function block($seconds, $callback = null) - { - $starting = $this->currentTime(); - - while (! $this->acquire()) { - usleep(250 * 1000); - - if ($this->currentTime() - $seconds >= $starting) { - throw new LockTimeoutException; - } - } - - if (is_callable($callback)) { - return tap($callback(), function () { - $this->release(); - }); - } - - return true; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Cache/MemcachedConnector.php b/vendor/laravel/framework/src/Illuminate/Cache/MemcachedConnector.php deleted file mode 100755 index a4593b34..00000000 --- a/vendor/laravel/framework/src/Illuminate/Cache/MemcachedConnector.php +++ /dev/null @@ -1,87 +0,0 @@ -getMemcached( - $connectionId, $credentials, $options - ); - - if (! $memcached->getServerList()) { - // For each server in the array, we'll just extract the configuration and add - // the server to the Memcached connection. Once we have added all of these - // servers we'll verify the connection is successful and return it back. - foreach ($servers as $server) { - $memcached->addServer( - $server['host'], $server['port'], $server['weight'] - ); - } - } - - return $memcached; - } - - /** - * Get a new Memcached instance. - * - * @param string|null $connectionId - * @param array $credentials - * @param array $options - * @return \Memcached - */ - protected function getMemcached($connectionId, array $credentials, array $options) - { - $memcached = $this->createMemcachedInstance($connectionId); - - if (count($credentials) === 2) { - $this->setCredentials($memcached, $credentials); - } - - if (count($options)) { - $memcached->setOptions($options); - } - - return $memcached; - } - - /** - * Create the Memcached instance. - * - * @param string|null $connectionId - * @return \Memcached - */ - protected function createMemcachedInstance($connectionId) - { - return empty($connectionId) ? new Memcached : new Memcached($connectionId); - } - - /** - * Set the SASL credentials on the Memcached connection. - * - * @param \Memcached $memcached - * @param array $credentials - * @return void - */ - protected function setCredentials($memcached, $credentials) - { - list($username, $password) = $credentials; - - $memcached->setOption(Memcached::OPT_BINARY_PROTOCOL, true); - - $memcached->setSaslAuthData($username, $password); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Cache/MemcachedLock.php b/vendor/laravel/framework/src/Illuminate/Cache/MemcachedLock.php deleted file mode 100644 index 1b0627cc..00000000 --- a/vendor/laravel/framework/src/Illuminate/Cache/MemcachedLock.php +++ /dev/null @@ -1,52 +0,0 @@ -memcached = $memcached; - } - - /** - * Attempt to acquire the lock. - * - * @return bool - */ - public function acquire() - { - return $this->memcached->add( - $this->name, 1, $this->seconds - ); - } - - /** - * Release the lock. - * - * @return void - */ - public function release() - { - $this->memcached->delete($this->name); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Cache/MemcachedStore.php b/vendor/laravel/framework/src/Illuminate/Cache/MemcachedStore.php deleted file mode 100755 index 00ba8b7c..00000000 --- a/vendor/laravel/framework/src/Illuminate/Cache/MemcachedStore.php +++ /dev/null @@ -1,250 +0,0 @@ -= 3.0.0. - * - * @var bool - */ - protected $onVersionThree; - - /** - * Create a new Memcached store. - * - * @param \Memcached $memcached - * @param string $prefix - * @return void - */ - public function __construct($memcached, $prefix = '') - { - $this->setPrefix($prefix); - $this->memcached = $memcached; - - $this->onVersionThree = (new ReflectionMethod('Memcached', 'getMulti')) - ->getNumberOfParameters() == 2; - } - - /** - * Retrieve an item from the cache by key. - * - * @param string $key - * @return mixed - */ - public function get($key) - { - $value = $this->memcached->get($this->prefix.$key); - - if ($this->memcached->getResultCode() == 0) { - return $value; - } - } - - /** - * Retrieve multiple items from the cache by key. - * - * Items not found in the cache will have a null value. - * - * @param array $keys - * @return array - */ - public function many(array $keys) - { - $prefixedKeys = array_map(function ($key) { - return $this->prefix.$key; - }, $keys); - - if ($this->onVersionThree) { - $values = $this->memcached->getMulti($prefixedKeys, Memcached::GET_PRESERVE_ORDER); - } else { - $null = null; - - $values = $this->memcached->getMulti($prefixedKeys, $null, Memcached::GET_PRESERVE_ORDER); - } - - if ($this->memcached->getResultCode() != 0) { - return array_fill_keys($keys, null); - } - - return array_combine($keys, $values); - } - - /** - * Store an item in the cache for a given number of minutes. - * - * @param string $key - * @param mixed $value - * @param float|int $minutes - * @return void - */ - public function put($key, $value, $minutes) - { - $this->memcached->set($this->prefix.$key, $value, $this->toTimestamp($minutes)); - } - - /** - * Store multiple items in the cache for a given number of minutes. - * - * @param array $values - * @param float|int $minutes - * @return void - */ - public function putMany(array $values, $minutes) - { - $prefixedValues = []; - - foreach ($values as $key => $value) { - $prefixedValues[$this->prefix.$key] = $value; - } - - $this->memcached->setMulti($prefixedValues, $this->toTimestamp($minutes)); - } - - /** - * Store an item in the cache if the key doesn't exist. - * - * @param string $key - * @param mixed $value - * @param float|int $minutes - * @return bool - */ - public function add($key, $value, $minutes) - { - return $this->memcached->add($this->prefix.$key, $value, $this->toTimestamp($minutes)); - } - - /** - * Increment the value of an item in the cache. - * - * @param string $key - * @param mixed $value - * @return int|bool - */ - public function increment($key, $value = 1) - { - return $this->memcached->increment($this->prefix.$key, $value); - } - - /** - * Decrement the value of an item in the cache. - * - * @param string $key - * @param mixed $value - * @return int|bool - */ - public function decrement($key, $value = 1) - { - return $this->memcached->decrement($this->prefix.$key, $value); - } - - /** - * Store an item in the cache indefinitely. - * - * @param string $key - * @param mixed $value - * @return void - */ - public function forever($key, $value) - { - $this->put($key, $value, 0); - } - - /** - * Get a lock instance. - * - * @param string $name - * @param int $seconds - * @return \Illuminate\Contracts\Cache\Lock - */ - public function lock($name, $seconds = 0) - { - return new MemcachedLock($this->memcached, $this->prefix.$name, $seconds); - } - - /** - * Remove an item from the cache. - * - * @param string $key - * @return bool - */ - public function forget($key) - { - return $this->memcached->delete($this->prefix.$key); - } - - /** - * Remove all items from the cache. - * - * @return bool - */ - public function flush() - { - return $this->memcached->flush(); - } - - /** - * Get the UNIX timestamp for the given number of minutes. - * - * @param int $minutes - * @return int - */ - protected function toTimestamp($minutes) - { - return $minutes > 0 ? $this->availableAt($minutes * 60) : 0; - } - - /** - * Get the underlying Memcached connection. - * - * @return \Memcached - */ - public function getMemcached() - { - return $this->memcached; - } - - /** - * Get the cache key prefix. - * - * @return string - */ - public function getPrefix() - { - return $this->prefix; - } - - /** - * Set the cache key prefix. - * - * @param string $prefix - * @return void - */ - public function setPrefix($prefix) - { - $this->prefix = ! empty($prefix) ? $prefix.':' : ''; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Cache/NullStore.php b/vendor/laravel/framework/src/Illuminate/Cache/NullStore.php deleted file mode 100755 index 16e869c8..00000000 --- a/vendor/laravel/framework/src/Illuminate/Cache/NullStore.php +++ /dev/null @@ -1,108 +0,0 @@ -cache = $cache; - } - - /** - * Determine if the given key has been "accessed" too many times. - * - * @param string $key - * @param int $maxAttempts - * @return bool - */ - public function tooManyAttempts($key, $maxAttempts) - { - if ($this->attempts($key) >= $maxAttempts) { - if ($this->cache->has($key.':timer')) { - return true; - } - - $this->resetAttempts($key); - } - - return false; - } - - /** - * Increment the counter for a given key for a given decay time. - * - * @param string $key - * @param float|int $decayMinutes - * @return int - */ - public function hit($key, $decayMinutes = 1) - { - $this->cache->add( - $key.':timer', $this->availableAt($decayMinutes * 60), $decayMinutes - ); - - $added = $this->cache->add($key, 0, $decayMinutes); - - $hits = (int) $this->cache->increment($key); - - if (! $added && $hits == 1) { - $this->cache->put($key, 1, $decayMinutes); - } - - return $hits; - } - - /** - * Get the number of attempts for the given key. - * - * @param string $key - * @return mixed - */ - public function attempts($key) - { - return $this->cache->get($key, 0); - } - - /** - * Reset the number of attempts for the given key. - * - * @param string $key - * @return mixed - */ - public function resetAttempts($key) - { - return $this->cache->forget($key); - } - - /** - * Get the number of retries left for the given key. - * - * @param string $key - * @param int $maxAttempts - * @return int - */ - public function retriesLeft($key, $maxAttempts) - { - $attempts = $this->attempts($key); - - return $maxAttempts - $attempts; - } - - /** - * Clear the hits and lockout timer for the given key. - * - * @param string $key - * @return void - */ - public function clear($key) - { - $this->resetAttempts($key); - - $this->cache->forget($key.':timer'); - } - - /** - * Get the number of seconds until the "key" is accessible again. - * - * @param string $key - * @return int - */ - public function availableIn($key) - { - return $this->cache->get($key.':timer') - $this->currentTime(); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Cache/RedisLock.php b/vendor/laravel/framework/src/Illuminate/Cache/RedisLock.php deleted file mode 100644 index c15569fe..00000000 --- a/vendor/laravel/framework/src/Illuminate/Cache/RedisLock.php +++ /dev/null @@ -1,56 +0,0 @@ -redis = $redis; - } - - /** - * Attempt to acquire the lock. - * - * @return bool - */ - public function acquire() - { - $result = $this->redis->setnx($this->name, 1); - - if ($result === 1 && $this->seconds > 0) { - $this->redis->expire($this->name, $this->seconds); - } - - return $result === 1; - } - - /** - * Release the lock. - * - * @return void - */ - public function release() - { - $this->redis->del($this->name); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Cache/RedisStore.php b/vendor/laravel/framework/src/Illuminate/Cache/RedisStore.php deleted file mode 100755 index b448e464..00000000 --- a/vendor/laravel/framework/src/Illuminate/Cache/RedisStore.php +++ /dev/null @@ -1,289 +0,0 @@ -redis = $redis; - $this->setPrefix($prefix); - $this->setConnection($connection); - } - - /** - * Retrieve an item from the cache by key. - * - * @param string|array $key - * @return mixed - */ - public function get($key) - { - $value = $this->connection()->get($this->prefix.$key); - - return ! is_null($value) ? $this->unserialize($value) : null; - } - - /** - * Retrieve multiple items from the cache by key. - * - * Items not found in the cache will have a null value. - * - * @param array $keys - * @return array - */ - public function many(array $keys) - { - $results = []; - - $values = $this->connection()->mget(array_map(function ($key) { - return $this->prefix.$key; - }, $keys)); - - foreach ($values as $index => $value) { - $results[$keys[$index]] = ! is_null($value) ? $this->unserialize($value) : null; - } - - return $results; - } - - /** - * Store an item in the cache for a given number of minutes. - * - * @param string $key - * @param mixed $value - * @param float|int $minutes - * @return void - */ - public function put($key, $value, $minutes) - { - $this->connection()->setex( - $this->prefix.$key, (int) max(1, $minutes * 60), $this->serialize($value) - ); - } - - /** - * Store multiple items in the cache for a given number of minutes. - * - * @param array $values - * @param float|int $minutes - * @return void - */ - public function putMany(array $values, $minutes) - { - $this->connection()->multi(); - - foreach ($values as $key => $value) { - $this->put($key, $value, $minutes); - } - - $this->connection()->exec(); - } - - /** - * Store an item in the cache if the key doesn't exist. - * - * @param string $key - * @param mixed $value - * @param float|int $minutes - * @return bool - */ - public function add($key, $value, $minutes) - { - $lua = "return redis.call('exists',KEYS[1])<1 and redis.call('setex',KEYS[1],ARGV[2],ARGV[1])"; - - return (bool) $this->connection()->eval( - $lua, 1, $this->prefix.$key, $this->serialize($value), (int) max(1, $minutes * 60) - ); - } - - /** - * Increment the value of an item in the cache. - * - * @param string $key - * @param mixed $value - * @return int - */ - public function increment($key, $value = 1) - { - return $this->connection()->incrby($this->prefix.$key, $value); - } - - /** - * Decrement the value of an item in the cache. - * - * @param string $key - * @param mixed $value - * @return int - */ - public function decrement($key, $value = 1) - { - return $this->connection()->decrby($this->prefix.$key, $value); - } - - /** - * Store an item in the cache indefinitely. - * - * @param string $key - * @param mixed $value - * @return void - */ - public function forever($key, $value) - { - $this->connection()->set($this->prefix.$key, $this->serialize($value)); - } - - /** - * Get a lock instance. - * - * @param string $name - * @param int $seconds - * @return \Illuminate\Contracts\Cache\Lock - */ - public function lock($name, $seconds = 0) - { - return new RedisLock($this->connection(), $this->prefix.$name, $seconds); - } - - /** - * Remove an item from the cache. - * - * @param string $key - * @return bool - */ - public function forget($key) - { - return (bool) $this->connection()->del($this->prefix.$key); - } - - /** - * Remove all items from the cache. - * - * @return bool - */ - public function flush() - { - $this->connection()->flushdb(); - - return true; - } - - /** - * Begin executing a new tags operation. - * - * @param array|mixed $names - * @return \Illuminate\Cache\RedisTaggedCache - */ - public function tags($names) - { - return new RedisTaggedCache( - $this, new TagSet($this, is_array($names) ? $names : func_get_args()) - ); - } - - /** - * Get the Redis connection instance. - * - * @return \Predis\ClientInterface - */ - public function connection() - { - return $this->redis->connection($this->connection); - } - - /** - * Set the connection name to be used. - * - * @param string $connection - * @return void - */ - public function setConnection($connection) - { - $this->connection = $connection; - } - - /** - * Get the Redis database instance. - * - * @return \Illuminate\Contracts\Redis\Factory - */ - public function getRedis() - { - return $this->redis; - } - - /** - * Get the cache key prefix. - * - * @return string - */ - public function getPrefix() - { - return $this->prefix; - } - - /** - * Set the cache key prefix. - * - * @param string $prefix - * @return void - */ - public function setPrefix($prefix) - { - $this->prefix = ! empty($prefix) ? $prefix.':' : ''; - } - - /** - * Serialize the value. - * - * @param mixed $value - * @return mixed - */ - protected function serialize($value) - { - return is_numeric($value) ? $value : serialize($value); - } - - /** - * Unserialize the value. - * - * @param mixed $value - * @return mixed - */ - protected function unserialize($value) - { - return is_numeric($value) ? $value : unserialize($value); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Cache/RedisTaggedCache.php b/vendor/laravel/framework/src/Illuminate/Cache/RedisTaggedCache.php deleted file mode 100644 index 12209caf..00000000 --- a/vendor/laravel/framework/src/Illuminate/Cache/RedisTaggedCache.php +++ /dev/null @@ -1,194 +0,0 @@ -pushStandardKeys($this->tags->getNamespace(), $key); - - parent::put($key, $value, $minutes); - } - - /** - * Increment the value of an item in the cache. - * - * @param string $key - * @param mixed $value - * @return void - */ - public function increment($key, $value = 1) - { - $this->pushStandardKeys($this->tags->getNamespace(), $key); - - parent::increment($key, $value); - } - - /** - * Decrement the value of an item in the cache. - * - * @param string $key - * @param mixed $value - * @return void - */ - public function decrement($key, $value = 1) - { - $this->pushStandardKeys($this->tags->getNamespace(), $key); - - parent::decrement($key, $value); - } - - /** - * Store an item in the cache indefinitely. - * - * @param string $key - * @param mixed $value - * @return void - */ - public function forever($key, $value) - { - $this->pushForeverKeys($this->tags->getNamespace(), $key); - - parent::forever($key, $value); - } - - /** - * Remove all items from the cache. - * - * @return void - */ - public function flush() - { - $this->deleteForeverKeys(); - $this->deleteStandardKeys(); - - parent::flush(); - } - - /** - * Store standard key references into store. - * - * @param string $namespace - * @param string $key - * @return void - */ - protected function pushStandardKeys($namespace, $key) - { - $this->pushKeys($namespace, $key, self::REFERENCE_KEY_STANDARD); - } - - /** - * Store forever key references into store. - * - * @param string $namespace - * @param string $key - * @return void - */ - protected function pushForeverKeys($namespace, $key) - { - $this->pushKeys($namespace, $key, self::REFERENCE_KEY_FOREVER); - } - - /** - * Store a reference to the cache key against the reference key. - * - * @param string $namespace - * @param string $key - * @param string $reference - * @return void - */ - protected function pushKeys($namespace, $key, $reference) - { - $fullKey = $this->store->getPrefix().sha1($namespace).':'.$key; - - foreach (explode('|', $namespace) as $segment) { - $this->store->connection()->sadd($this->referenceKey($segment, $reference), $fullKey); - } - } - - /** - * Delete all of the items that were stored forever. - * - * @return void - */ - protected function deleteForeverKeys() - { - $this->deleteKeysByReference(self::REFERENCE_KEY_FOREVER); - } - - /** - * Delete all standard items. - * - * @return void - */ - protected function deleteStandardKeys() - { - $this->deleteKeysByReference(self::REFERENCE_KEY_STANDARD); - } - - /** - * Find and delete all of the items that were stored against a reference. - * - * @param string $reference - * @return void - */ - protected function deleteKeysByReference($reference) - { - foreach (explode('|', $this->tags->getNamespace()) as $segment) { - $this->deleteValues($segment = $this->referenceKey($segment, $reference)); - - $this->store->connection()->del($segment); - } - } - - /** - * Delete item keys that have been stored against a reference. - * - * @param string $referenceKey - * @return void - */ - protected function deleteValues($referenceKey) - { - $values = array_unique($this->store->connection()->smembers($referenceKey)); - - if (count($values) > 0) { - foreach (array_chunk($values, 1000) as $valuesChunk) { - call_user_func_array([$this->store->connection(), 'del'], $valuesChunk); - } - } - } - - /** - * Get the reference key for the segment. - * - * @param string $segment - * @param string $suffix - * @return string - */ - protected function referenceKey($segment, $suffix) - { - return $this->store->getPrefix().$segment.':'.$suffix; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Cache/Repository.php b/vendor/laravel/framework/src/Illuminate/Cache/Repository.php deleted file mode 100755 index 16319a09..00000000 --- a/vendor/laravel/framework/src/Illuminate/Cache/Repository.php +++ /dev/null @@ -1,586 +0,0 @@ -store = $store; - } - - /** - * Determine if an item exists in the cache. - * - * @param string $key - * @return bool - */ - public function has($key) - { - return ! is_null($this->get($key)); - } - - /** - * Retrieve an item from the cache by key. - * - * @param string $key - * @param mixed $default - * @return mixed - */ - public function get($key, $default = null) - { - if (is_array($key)) { - return $this->many($key); - } - - $value = $this->store->get($this->itemKey($key)); - - // If we could not find the cache value, we will fire the missed event and get - // the default value for this cache value. This default could be a callback - // so we will execute the value function which will resolve it if needed. - if (is_null($value)) { - $this->event(new CacheMissed($key)); - - $value = value($default); - } else { - $this->event(new CacheHit($key, $value)); - } - - return $value; - } - - /** - * Retrieve multiple items from the cache by key. - * - * Items not found in the cache will have a null value. - * - * @param array $keys - * @return array - */ - public function many(array $keys) - { - $values = $this->store->many(collect($keys)->map(function ($value, $key) { - return is_string($key) ? $key : $value; - })->values()->all()); - - return collect($values)->map(function ($value, $key) use ($keys) { - return $this->handleManyResult($keys, $key, $value); - })->all(); - } - - /** - * {@inheritdoc} - */ - public function getMultiple($keys, $default = null) - { - if (is_null($default)) { - return $this->many($keys); - } - - foreach ($keys as $key) { - if (! isset($default[$key])) { - $default[$key] = null; - } - } - - return $this->many($default); - } - - /** - * Handle a result for the "many" method. - * - * @param array $keys - * @param string $key - * @param mixed $value - * @return mixed - */ - protected function handleManyResult($keys, $key, $value) - { - // If we could not find the cache value, we will fire the missed event and get - // the default value for this cache value. This default could be a callback - // so we will execute the value function which will resolve it if needed. - if (is_null($value)) { - $this->event(new CacheMissed($key)); - - return isset($keys[$key]) ? value($keys[$key]) : null; - } - - // If we found a valid value we will fire the "hit" event and return the value - // back from this function. The "hit" event gives developers an opportunity - // to listen for every possible cache "hit" throughout this applications. - $this->event(new CacheHit($key, $value)); - - return $value; - } - - /** - * Retrieve an item from the cache and delete it. - * - * @param string $key - * @param mixed $default - * @return mixed - */ - public function pull($key, $default = null) - { - return tap($this->get($key, $default), function ($value) use ($key) { - $this->forget($key); - }); - } - - /** - * Store an item in the cache. - * - * @param string $key - * @param mixed $value - * @param \DateTimeInterface|\DateInterval|float|int|null $minutes - * @return void - */ - public function put($key, $value, $minutes = null) - { - if (is_array($key)) { - return $this->putMany($key, $value); - } - - if (! is_null($minutes = $this->getMinutes($minutes))) { - $this->store->put($this->itemKey($key), $value, $minutes); - - $this->event(new KeyWritten($key, $value, $minutes)); - } - } - - /** - * {@inheritdoc} - */ - public function set($key, $value, $ttl = null) - { - $this->put($key, $value, $ttl); - } - - /** - * Store multiple items in the cache for a given number of minutes. - * - * @param array $values - * @param \DateTimeInterface|\DateInterval|float|int $minutes - * @return void - */ - public function putMany(array $values, $minutes) - { - if (! is_null($minutes = $this->getMinutes($minutes))) { - $this->store->putMany($values, $minutes); - - foreach ($values as $key => $value) { - $this->event(new KeyWritten($key, $value, $minutes)); - } - } - } - - /** - * {@inheritdoc} - */ - public function setMultiple($values, $ttl = null) - { - $this->putMany($values, $ttl); - } - - /** - * Store an item in the cache if the key does not exist. - * - * @param string $key - * @param mixed $value - * @param \DateTimeInterface|\DateInterval|float|int $minutes - * @return bool - */ - public function add($key, $value, $minutes) - { - if (is_null($minutes = $this->getMinutes($minutes))) { - return false; - } - - // If the store has an "add" method we will call the method on the store so it - // has a chance to override this logic. Some drivers better support the way - // this operation should work with a total "atomic" implementation of it. - if (method_exists($this->store, 'add')) { - return $this->store->add( - $this->itemKey($key), $value, $minutes - ); - } - - // If the value did not exist in the cache, we will put the value in the cache - // so it exists for subsequent requests. Then, we will return true so it is - // easy to know if the value gets added. Otherwise, we will return false. - if (is_null($this->get($key))) { - $this->put($key, $value, $minutes); - - return true; - } - - return false; - } - - /** - * Increment the value of an item in the cache. - * - * @param string $key - * @param mixed $value - * @return int|bool - */ - public function increment($key, $value = 1) - { - return $this->store->increment($key, $value); - } - - /** - * Decrement the value of an item in the cache. - * - * @param string $key - * @param mixed $value - * @return int|bool - */ - public function decrement($key, $value = 1) - { - return $this->store->decrement($key, $value); - } - - /** - * Store an item in the cache indefinitely. - * - * @param string $key - * @param mixed $value - * @return void - */ - public function forever($key, $value) - { - $this->store->forever($this->itemKey($key), $value); - - $this->event(new KeyWritten($key, $value, 0)); - } - - /** - * Get an item from the cache, or store the default value. - * - * @param string $key - * @param \DateTimeInterface|\DateInterval|float|int $minutes - * @param \Closure $callback - * @return mixed - */ - public function remember($key, $minutes, Closure $callback) - { - $value = $this->get($key); - - // If the item exists in the cache we will just return this immediately and if - // not we will execute the given Closure and cache the result of that for a - // given number of minutes so it's available for all subsequent requests. - if (! is_null($value)) { - return $value; - } - - $this->put($key, $value = $callback(), $minutes); - - return $value; - } - - /** - * Get an item from the cache, or store the default value forever. - * - * @param string $key - * @param \Closure $callback - * @return mixed - */ - public function sear($key, Closure $callback) - { - return $this->rememberForever($key, $callback); - } - - /** - * Get an item from the cache, or store the default value forever. - * - * @param string $key - * @param \Closure $callback - * @return mixed - */ - public function rememberForever($key, Closure $callback) - { - $value = $this->get($key); - - // If the item exists in the cache we will just return this immediately and if - // not we will execute the given Closure and cache the result of that for a - // given number of minutes so it's available for all subsequent requests. - if (! is_null($value)) { - return $value; - } - - $this->forever($key, $value = $callback()); - - return $value; - } - - /** - * Remove an item from the cache. - * - * @param string $key - * @return bool - */ - public function forget($key) - { - return tap($this->store->forget($this->itemKey($key)), function () use ($key) { - $this->event(new KeyForgotten($key)); - }); - } - - /** - * {@inheritdoc} - */ - public function delete($key) - { - return $this->forget($key); - } - - /** - * {@inheritdoc} - */ - public function deleteMultiple($keys) - { - foreach ($keys as $key) { - $this->forget($key); - } - - return true; - } - - /** - * {@inheritdoc} - */ - public function clear() - { - return $this->store->flush(); - } - - /** - * Begin executing a new tags operation if the store supports it. - * - * @param array|mixed $names - * @return \Illuminate\Cache\TaggedCache - * - * @throws \BadMethodCallException - */ - public function tags($names) - { - if (! method_exists($this->store, 'tags')) { - throw new BadMethodCallException('This cache store does not support tagging.'); - } - - $cache = $this->store->tags(is_array($names) ? $names : func_get_args()); - - if (! is_null($this->events)) { - $cache->setEventDispatcher($this->events); - } - - return $cache->setDefaultCacheTime($this->default); - } - - /** - * Format the key for a cache item. - * - * @param string $key - * @return string - */ - protected function itemKey($key) - { - return $key; - } - - /** - * Get the default cache time. - * - * @return float|int - */ - public function getDefaultCacheTime() - { - return $this->default; - } - - /** - * Set the default cache time in minutes. - * - * @param float|int $minutes - * @return $this - */ - public function setDefaultCacheTime($minutes) - { - $this->default = $minutes; - - return $this; - } - - /** - * Get the cache store implementation. - * - * @return \Illuminate\Contracts\Cache\Store - */ - public function getStore() - { - return $this->store; - } - - /** - * Fire an event for this cache instance. - * - * @param string $event - * @return void - */ - protected function event($event) - { - if (isset($this->events)) { - $this->events->dispatch($event); - } - } - - /** - * Set the event dispatcher instance. - * - * @param \Illuminate\Contracts\Events\Dispatcher $events - * @return void - */ - public function setEventDispatcher(Dispatcher $events) - { - $this->events = $events; - } - - /** - * Determine if a cached value exists. - * - * @param string $key - * @return bool - */ - public function offsetExists($key) - { - return $this->has($key); - } - - /** - * Retrieve an item from the cache by key. - * - * @param string $key - * @return mixed - */ - public function offsetGet($key) - { - return $this->get($key); - } - - /** - * Store an item in the cache for the default time. - * - * @param string $key - * @param mixed $value - * @return void - */ - public function offsetSet($key, $value) - { - $this->put($key, $value, $this->default); - } - - /** - * Remove an item from the cache. - * - * @param string $key - * @return void - */ - public function offsetUnset($key) - { - $this->forget($key); - } - - /** - * Calculate the number of minutes with the given duration. - * - * @param \DateTimeInterface|\DateInterval|float|int $duration - * @return float|int|null - */ - protected function getMinutes($duration) - { - $duration = $this->parseDateInterval($duration); - - if ($duration instanceof DateTimeInterface) { - $duration = Carbon::now()->diffInSeconds(Carbon::createFromTimestamp($duration->getTimestamp()), false) / 60; - } - - return (int) ($duration * 60) > 0 ? $duration : null; - } - - /** - * Handle dynamic calls into macros or pass missing methods to the store. - * - * @param string $method - * @param array $parameters - * @return mixed - */ - public function __call($method, $parameters) - { - if (static::hasMacro($method)) { - return $this->macroCall($method, $parameters); - } - - return $this->store->$method(...$parameters); - } - - /** - * Clone cache repository instance. - * - * @return void - */ - public function __clone() - { - $this->store = clone $this->store; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Cache/RetrievesMultipleKeys.php b/vendor/laravel/framework/src/Illuminate/Cache/RetrievesMultipleKeys.php deleted file mode 100644 index 4d467975..00000000 --- a/vendor/laravel/framework/src/Illuminate/Cache/RetrievesMultipleKeys.php +++ /dev/null @@ -1,39 +0,0 @@ -get($key); - } - - return $return; - } - - /** - * Store multiple items in the cache for a given number of minutes. - * - * @param array $values - * @param float|int $minutes - * @return void - */ - public function putMany(array $values, $minutes) - { - foreach ($values as $key => $value) { - $this->put($key, $value, $minutes); - } - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Cache/TagSet.php b/vendor/laravel/framework/src/Illuminate/Cache/TagSet.php deleted file mode 100644 index 214d6481..00000000 --- a/vendor/laravel/framework/src/Illuminate/Cache/TagSet.php +++ /dev/null @@ -1,110 +0,0 @@ -store = $store; - $this->names = $names; - } - - /** - * Reset all tags in the set. - * - * @return void - */ - public function reset() - { - array_walk($this->names, [$this, 'resetTag']); - } - - /** - * Reset the tag and return the new tag identifier. - * - * @param string $name - * @return string - */ - public function resetTag($name) - { - $this->store->forever($this->tagKey($name), $id = str_replace('.', '', uniqid('', true))); - - return $id; - } - - /** - * Get a unique namespace that changes when any of the tags are flushed. - * - * @return string - */ - public function getNamespace() - { - return implode('|', $this->tagIds()); - } - - /** - * Get an array of tag identifiers for all of the tags in the set. - * - * @return array - */ - protected function tagIds() - { - return array_map([$this, 'tagId'], $this->names); - } - - /** - * Get the unique tag identifier for a given tag. - * - * @param string $name - * @return string - */ - public function tagId($name) - { - return $this->store->get($this->tagKey($name)) ?: $this->resetTag($name); - } - - /** - * Get the tag identifier key for a given tag. - * - * @param string $name - * @return string - */ - public function tagKey($name) - { - return 'tag:'.$name.':key'; - } - - /** - * Get all of the tag names in the set. - * - * @return array - */ - public function getNames() - { - return $this->names; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Cache/TaggableStore.php b/vendor/laravel/framework/src/Illuminate/Cache/TaggableStore.php deleted file mode 100644 index ba00fa45..00000000 --- a/vendor/laravel/framework/src/Illuminate/Cache/TaggableStore.php +++ /dev/null @@ -1,17 +0,0 @@ -tags = $tags; - } - - /** - * Increment the value of an item in the cache. - * - * @param string $key - * @param mixed $value - * @return void - */ - public function increment($key, $value = 1) - { - $this->store->increment($this->itemKey($key), $value); - } - - /** - * Decrement the value of an item in the cache. - * - * @param string $key - * @param mixed $value - * @return void - */ - public function decrement($key, $value = 1) - { - $this->store->decrement($this->itemKey($key), $value); - } - - /** - * Remove all items from the cache. - * - * @return void - */ - public function flush() - { - $this->tags->reset(); - } - - /** - * {@inheritdoc} - */ - protected function itemKey($key) - { - return $this->taggedItemKey($key); - } - - /** - * Get a fully qualified key for a tagged item. - * - * @param string $key - * @return string - */ - public function taggedItemKey($key) - { - return sha1($this->tags->getNamespace()).':'.$key; - } - - /** - * Fire an event for this cache instance. - * - * @param string $event - * @return void - */ - protected function event($event) - { - parent::event($event->setTags($this->tags->getNames())); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Cache/composer.json b/vendor/laravel/framework/src/Illuminate/Cache/composer.json deleted file mode 100755 index 48b7e1bb..00000000 --- a/vendor/laravel/framework/src/Illuminate/Cache/composer.json +++ /dev/null @@ -1,40 +0,0 @@ -{ - "name": "illuminate/cache", - "description": "The Illuminate Cache package.", - "license": "MIT", - "homepage": "https://laravel.com", - "support": { - "issues": "https://github.com/laravel/framework/issues", - "source": "https://github.com/laravel/framework" - }, - "authors": [ - { - "name": "Taylor Otwell", - "email": "taylor@laravel.com" - } - ], - "require": { - "php": "^7.1.3", - "illuminate/contracts": "5.6.*", - "illuminate/support": "5.6.*" - }, - "autoload": { - "psr-4": { - "Illuminate\\Cache\\": "" - } - }, - "extra": { - "branch-alias": { - "dev-master": "5.6-dev" - } - }, - "suggest": { - "illuminate/database": "Required to use the database cache driver (5.6.*).", - "illuminate/filesystem": "Required to use the file cache driver (5.6.*).", - "illuminate/redis": "Required to use the redis cache driver (5.6.*)." - }, - "config": { - "sort-packages": true - }, - "minimum-stability": "dev" -} diff --git a/vendor/laravel/framework/src/Illuminate/Config/Repository.php b/vendor/laravel/framework/src/Illuminate/Config/Repository.php deleted file mode 100644 index 56644eba..00000000 --- a/vendor/laravel/framework/src/Illuminate/Config/Repository.php +++ /dev/null @@ -1,179 +0,0 @@ -items = $items; - } - - /** - * Determine if the given configuration value exists. - * - * @param string $key - * @return bool - */ - public function has($key) - { - return Arr::has($this->items, $key); - } - - /** - * Get the specified configuration value. - * - * @param array|string $key - * @param mixed $default - * @return mixed - */ - public function get($key, $default = null) - { - if (is_array($key)) { - return $this->getMany($key); - } - - return Arr::get($this->items, $key, $default); - } - - /** - * Get many configuration values. - * - * @param array $keys - * @return array - */ - public function getMany($keys) - { - $config = []; - - foreach ($keys as $key => $default) { - if (is_numeric($key)) { - list($key, $default) = [$default, null]; - } - - $config[$key] = Arr::get($this->items, $key, $default); - } - - return $config; - } - - /** - * Set a given configuration value. - * - * @param array|string $key - * @param mixed $value - * @return void - */ - public function set($key, $value = null) - { - $keys = is_array($key) ? $key : [$key => $value]; - - foreach ($keys as $key => $value) { - Arr::set($this->items, $key, $value); - } - } - - /** - * Prepend a value onto an array configuration value. - * - * @param string $key - * @param mixed $value - * @return void - */ - public function prepend($key, $value) - { - $array = $this->get($key); - - array_unshift($array, $value); - - $this->set($key, $array); - } - - /** - * Push a value onto an array configuration value. - * - * @param string $key - * @param mixed $value - * @return void - */ - public function push($key, $value) - { - $array = $this->get($key); - - $array[] = $value; - - $this->set($key, $array); - } - - /** - * Get all of the configuration items for the application. - * - * @return array - */ - public function all() - { - return $this->items; - } - - /** - * Determine if the given configuration option exists. - * - * @param string $key - * @return bool - */ - public function offsetExists($key) - { - return $this->has($key); - } - - /** - * Get a configuration option. - * - * @param string $key - * @return mixed - */ - public function offsetGet($key) - { - return $this->get($key); - } - - /** - * Set a configuration option. - * - * @param string $key - * @param mixed $value - * @return void - */ - public function offsetSet($key, $value) - { - $this->set($key, $value); - } - - /** - * Unset a configuration option. - * - * @param string $key - * @return void - */ - public function offsetUnset($key) - { - $this->set($key, null); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Config/composer.json b/vendor/laravel/framework/src/Illuminate/Config/composer.json deleted file mode 100755 index f79f6f56..00000000 --- a/vendor/laravel/framework/src/Illuminate/Config/composer.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "name": "illuminate/config", - "description": "The Illuminate Config package.", - "license": "MIT", - "homepage": "https://laravel.com", - "support": { - "issues": "https://github.com/laravel/framework/issues", - "source": "https://github.com/laravel/framework" - }, - "authors": [ - { - "name": "Taylor Otwell", - "email": "taylor@laravel.com" - } - ], - "require": { - "php": "^7.1.3", - "illuminate/contracts": "5.6.*", - "illuminate/support": "5.6.*" - }, - "autoload": { - "psr-4": { - "Illuminate\\Config\\": "" - } - }, - "extra": { - "branch-alias": { - "dev-master": "5.6-dev" - } - }, - "config": { - "sort-packages": true - }, - "minimum-stability": "dev" -} diff --git a/vendor/laravel/framework/src/Illuminate/Console/Application.php b/vendor/laravel/framework/src/Illuminate/Console/Application.php deleted file mode 100755 index e836f71c..00000000 --- a/vendor/laravel/framework/src/Illuminate/Console/Application.php +++ /dev/null @@ -1,296 +0,0 @@ -laravel = $laravel; - $this->events = $events; - $this->setAutoExit(false); - $this->setCatchExceptions(false); - - $this->events->dispatch(new Events\ArtisanStarting($this)); - - $this->bootstrap(); - } - - /** - * {@inheritdoc} - */ - public function run(InputInterface $input = null, OutputInterface $output = null) - { - $commandName = $this->getCommandName( - $input = $input ?: new ArgvInput - ); - - $this->events->fire( - new Events\CommandStarting( - $commandName, $input, $output = $output ?: new ConsoleOutput - ) - ); - - $exitCode = parent::run($input, $output); - - $this->events->fire( - new Events\CommandFinished($commandName, $input, $output, $exitCode) - ); - - return $exitCode; - } - - /** - * Determine the proper PHP executable. - * - * @return string - */ - public static function phpBinary() - { - return ProcessUtils::escapeArgument((new PhpExecutableFinder)->find(false)); - } - - /** - * Determine the proper Artisan executable. - * - * @return string - */ - public static function artisanBinary() - { - return defined('ARTISAN_BINARY') ? ProcessUtils::escapeArgument(ARTISAN_BINARY) : 'artisan'; - } - - /** - * Format the given command as a fully-qualified executable command. - * - * @param string $string - * @return string - */ - public static function formatCommandString($string) - { - return sprintf('%s %s %s', static::phpBinary(), static::artisanBinary(), $string); - } - - /** - * Register a console "starting" bootstrapper. - * - * @param \Closure $callback - * @return void - */ - public static function starting(Closure $callback) - { - static::$bootstrappers[] = $callback; - } - - /** - * Bootstrap the console application. - * - * @return void - */ - protected function bootstrap() - { - foreach (static::$bootstrappers as $bootstrapper) { - $bootstrapper($this); - } - } - - /** - * Clear the console application bootstrappers. - * - * @return void - */ - public static function forgetBootstrappers() - { - static::$bootstrappers = []; - } - - /** - * Run an Artisan console command by name. - * - * @param string $command - * @param array $parameters - * @param \Symfony\Component\Console\Output\OutputInterface|null $outputBuffer - * @return int - * - * @throws \Symfony\Component\Console\Exception\CommandNotFoundException - */ - public function call($command, array $parameters = [], $outputBuffer = null) - { - if (is_subclass_of($command, SymfonyCommand::class)) { - $command = $this->laravel->make($command)->getName(); - } - - if (! $this->has($command)) { - throw new CommandNotFoundException(sprintf('The command "%s" does not exist.', $command)); - } - - array_unshift($parameters, $command); - - $this->lastOutput = $outputBuffer ?: new BufferedOutput; - - $this->setCatchExceptions(false); - - $result = $this->run(new ArrayInput($parameters), $this->lastOutput); - - $this->setCatchExceptions(true); - - return $result; - } - - /** - * Get the output for the last run command. - * - * @return string - */ - public function output() - { - return $this->lastOutput && method_exists($this->lastOutput, 'fetch') - ? $this->lastOutput->fetch() - : ''; - } - - /** - * Add a command to the console. - * - * @param \Symfony\Component\Console\Command\Command $command - * @return \Symfony\Component\Console\Command\Command - */ - public function add(SymfonyCommand $command) - { - if ($command instanceof Command) { - $command->setLaravel($this->laravel); - } - - return $this->addToParent($command); - } - - /** - * Add the command to the parent instance. - * - * @param \Symfony\Component\Console\Command\Command $command - * @return \Symfony\Component\Console\Command\Command - */ - protected function addToParent(SymfonyCommand $command) - { - return parent::add($command); - } - - /** - * Add a command, resolving through the application. - * - * @param string $command - * @return \Symfony\Component\Console\Command\Command - */ - public function resolve($command) - { - return $this->add($this->laravel->make($command)); - } - - /** - * Resolve an array of commands through the application. - * - * @param array|mixed $commands - * @return $this - */ - public function resolveCommands($commands) - { - $commands = is_array($commands) ? $commands : func_get_args(); - - foreach ($commands as $command) { - $this->resolve($command); - } - - return $this; - } - - /** - * Get the default input definitions for the applications. - * - * This is used to add the --env option to every available command. - * - * @return \Symfony\Component\Console\Input\InputDefinition - */ - protected function getDefaultInputDefinition() - { - return tap(parent::getDefaultInputDefinition(), function ($definition) { - $definition->addOption($this->getEnvironmentOption()); - }); - } - - /** - * Get the global environment option for the definition. - * - * @return \Symfony\Component\Console\Input\InputOption - */ - protected function getEnvironmentOption() - { - $message = 'The environment the command should run under'; - - return new InputOption('--env', null, InputOption::VALUE_OPTIONAL, $message); - } - - /** - * Get the Laravel application instance. - * - * @return \Illuminate\Contracts\Foundation\Application - */ - public function getLaravel() - { - return $this->laravel; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Console/Command.php b/vendor/laravel/framework/src/Illuminate/Console/Command.php deleted file mode 100755 index 203d2a1f..00000000 --- a/vendor/laravel/framework/src/Illuminate/Console/Command.php +++ /dev/null @@ -1,597 +0,0 @@ - OutputInterface::VERBOSITY_VERBOSE, - 'vv' => OutputInterface::VERBOSITY_VERY_VERBOSE, - 'vvv' => OutputInterface::VERBOSITY_DEBUG, - 'quiet' => OutputInterface::VERBOSITY_QUIET, - 'normal' => OutputInterface::VERBOSITY_NORMAL, - ]; - - /** - * Create a new console command instance. - * - * @return void - */ - public function __construct() - { - // We will go ahead and set the name, description, and parameters on console - // commands just to make things a little easier on the developer. This is - // so they don't have to all be manually specified in the constructors. - if (isset($this->signature)) { - $this->configureUsingFluentDefinition(); - } else { - parent::__construct($this->name); - } - - // Once we have constructed the command, we'll set the description and other - // related properties of the command. If a signature wasn't used to build - // the command we'll set the arguments and the options on this command. - $this->setDescription($this->description); - - $this->setHidden($this->hidden); - - if (! isset($this->signature)) { - $this->specifyParameters(); - } - } - - /** - * Configure the console command using a fluent definition. - * - * @return void - */ - protected function configureUsingFluentDefinition() - { - list($name, $arguments, $options) = Parser::parse($this->signature); - - parent::__construct($this->name = $name); - - // After parsing the signature we will spin through the arguments and options - // and set them on this command. These will already be changed into proper - // instances of these "InputArgument" and "InputOption" Symfony classes. - foreach ($arguments as $argument) { - $this->getDefinition()->addArgument($argument); - } - - foreach ($options as $option) { - $this->getDefinition()->addOption($option); - } - } - - /** - * Specify the arguments and options on the command. - * - * @return void - */ - protected function specifyParameters() - { - // We will loop through all of the arguments and options for the command and - // set them all on the base command instance. This specifies what can get - // passed into these commands as "parameters" to control the execution. - foreach ($this->getArguments() as $arguments) { - call_user_func_array([$this, 'addArgument'], $arguments); - } - - foreach ($this->getOptions() as $options) { - call_user_func_array([$this, 'addOption'], $options); - } - } - - /** - * Run the console command. - * - * @param \Symfony\Component\Console\Input\InputInterface $input - * @param \Symfony\Component\Console\Output\OutputInterface $output - * @return int - */ - public function run(InputInterface $input, OutputInterface $output) - { - return parent::run( - $this->input = $input, $this->output = new OutputStyle($input, $output) - ); - } - - /** - * Execute the console command. - * - * @param \Symfony\Component\Console\Input\InputInterface $input - * @param \Symfony\Component\Console\Output\OutputInterface $output - * @return mixed - */ - protected function execute(InputInterface $input, OutputInterface $output) - { - return $this->laravel->call([$this, 'handle']); - } - - /** - * Call another console command. - * - * @param string $command - * @param array $arguments - * @return int - */ - public function call($command, array $arguments = []) - { - $arguments['command'] = $command; - - return $this->getApplication()->find($command)->run( - $this->createInputFromArguments($arguments), $this->output - ); - } - - /** - * Call another console command silently. - * - * @param string $command - * @param array $arguments - * @return int - */ - public function callSilent($command, array $arguments = []) - { - $arguments['command'] = $command; - - return $this->getApplication()->find($command)->run( - $this->createInputFromArguments($arguments), new NullOutput - ); - } - - /** - * Create an input instance from the given arguments. - * - * @param array $arguments - * @return \Symfony\Component\Console\Input\ArrayInput - */ - protected function createInputFromArguments(array $arguments) - { - return tap(new ArrayInput($arguments), function ($input) { - if ($input->hasParameterOption(['--no-interaction'], true)) { - $input->setInteractive(false); - } - }); - } - - /** - * Determine if the given argument is present. - * - * @param string|int $name - * @return bool - */ - public function hasArgument($name) - { - return $this->input->hasArgument($name); - } - - /** - * Get the value of a command argument. - * - * @param string|null $key - * @return string|array - */ - public function argument($key = null) - { - if (is_null($key)) { - return $this->input->getArguments(); - } - - return $this->input->getArgument($key); - } - - /** - * Get all of the arguments passed to the command. - * - * @return array - */ - public function arguments() - { - return $this->argument(); - } - - /** - * Determine if the given option is present. - * - * @param string $name - * @return bool - */ - public function hasOption($name) - { - return $this->input->hasOption($name); - } - - /** - * Get the value of a command option. - * - * @param string|null $key - * @return string|array - */ - public function option($key = null) - { - if (is_null($key)) { - return $this->input->getOptions(); - } - - return $this->input->getOption($key); - } - - /** - * Get all of the options passed to the command. - * - * @return array - */ - public function options() - { - return $this->option(); - } - - /** - * Confirm a question with the user. - * - * @param string $question - * @param bool $default - * @return bool - */ - public function confirm($question, $default = false) - { - return $this->output->confirm($question, $default); - } - - /** - * Prompt the user for input. - * - * @param string $question - * @param string|null $default - * @return string - */ - public function ask($question, $default = null) - { - return $this->output->ask($question, $default); - } - - /** - * Prompt the user for input with auto completion. - * - * @param string $question - * @param array $choices - * @param string|null $default - * @return string - */ - public function anticipate($question, array $choices, $default = null) - { - return $this->askWithCompletion($question, $choices, $default); - } - - /** - * Prompt the user for input with auto completion. - * - * @param string $question - * @param array $choices - * @param string|null $default - * @return string - */ - public function askWithCompletion($question, array $choices, $default = null) - { - $question = new Question($question, $default); - - $question->setAutocompleterValues($choices); - - return $this->output->askQuestion($question); - } - - /** - * Prompt the user for input but hide the answer from the console. - * - * @param string $question - * @param bool $fallback - * @return string - */ - public function secret($question, $fallback = true) - { - $question = new Question($question); - - $question->setHidden(true)->setHiddenFallback($fallback); - - return $this->output->askQuestion($question); - } - - /** - * Give the user a single choice from an array of answers. - * - * @param string $question - * @param array $choices - * @param string|null $default - * @param mixed|null $attempts - * @param bool|null $multiple - * @return string - */ - public function choice($question, array $choices, $default = null, $attempts = null, $multiple = null) - { - $question = new ChoiceQuestion($question, $choices, $default); - - $question->setMaxAttempts($attempts)->setMultiselect($multiple); - - return $this->output->askQuestion($question); - } - - /** - * Format input to textual table. - * - * @param array $headers - * @param \Illuminate\Contracts\Support\Arrayable|array $rows - * @param string $tableStyle - * @param array $columnStyles - * @return void - */ - public function table($headers, $rows, $tableStyle = 'default', array $columnStyles = []) - { - $table = new Table($this->output); - - if ($rows instanceof Arrayable) { - $rows = $rows->toArray(); - } - - $table->setHeaders((array) $headers)->setRows($rows)->setStyle($tableStyle); - - foreach ($columnStyles as $columnIndex => $columnStyle) { - $table->setColumnStyle($columnIndex, $columnStyle); - } - - $table->render(); - } - - /** - * Write a string as information output. - * - * @param string $string - * @param null|int|string $verbosity - * @return void - */ - public function info($string, $verbosity = null) - { - $this->line($string, 'info', $verbosity); - } - - /** - * Write a string as standard output. - * - * @param string $string - * @param string $style - * @param null|int|string $verbosity - * @return void - */ - public function line($string, $style = null, $verbosity = null) - { - $styled = $style ? "<$style>$string" : $string; - - $this->output->writeln($styled, $this->parseVerbosity($verbosity)); - } - - /** - * Write a string as comment output. - * - * @param string $string - * @param null|int|string $verbosity - * @return void - */ - public function comment($string, $verbosity = null) - { - $this->line($string, 'comment', $verbosity); - } - - /** - * Write a string as question output. - * - * @param string $string - * @param null|int|string $verbosity - * @return void - */ - public function question($string, $verbosity = null) - { - $this->line($string, 'question', $verbosity); - } - - /** - * Write a string as error output. - * - * @param string $string - * @param null|int|string $verbosity - * @return void - */ - public function error($string, $verbosity = null) - { - $this->line($string, 'error', $verbosity); - } - - /** - * Write a string as warning output. - * - * @param string $string - * @param null|int|string $verbosity - * @return void - */ - public function warn($string, $verbosity = null) - { - if (! $this->output->getFormatter()->hasStyle('warning')) { - $style = new OutputFormatterStyle('yellow'); - - $this->output->getFormatter()->setStyle('warning', $style); - } - - $this->line($string, 'warning', $verbosity); - } - - /** - * Write a string in an alert box. - * - * @param string $string - * @return void - */ - public function alert($string) - { - $length = Str::length(strip_tags($string)) + 12; - - $this->comment(str_repeat('*', $length)); - $this->comment('* '.$string.' *'); - $this->comment(str_repeat('*', $length)); - - $this->output->newLine(); - } - - /** - * Set the verbosity level. - * - * @param string|int $level - * @return void - */ - protected function setVerbosity($level) - { - $this->verbosity = $this->parseVerbosity($level); - } - - /** - * Get the verbosity level in terms of Symfony's OutputInterface level. - * - * @param string|int|null $level - * @return int - */ - protected function parseVerbosity($level = null) - { - if (isset($this->verbosityMap[$level])) { - $level = $this->verbosityMap[$level]; - } elseif (! is_int($level)) { - $level = $this->verbosity; - } - - return $level; - } - - /** - * Get the console command arguments. - * - * @return array - */ - protected function getArguments() - { - return []; - } - - /** - * Get the console command options. - * - * @return array - */ - protected function getOptions() - { - return []; - } - - /** - * Get the output implementation. - * - * @return \Symfony\Component\Console\Output\OutputInterface - */ - public function getOutput() - { - return $this->output; - } - - /** - * Get the Laravel application instance. - * - * @return \Illuminate\Contracts\Foundation\Application - */ - public function getLaravel() - { - return $this->laravel; - } - - /** - * Set the Laravel application instance. - * - * @param \Illuminate\Contracts\Container\Container $laravel - * @return void - */ - public function setLaravel($laravel) - { - $this->laravel = $laravel; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Console/ConfirmableTrait.php b/vendor/laravel/framework/src/Illuminate/Console/ConfirmableTrait.php deleted file mode 100644 index 71722153..00000000 --- a/vendor/laravel/framework/src/Illuminate/Console/ConfirmableTrait.php +++ /dev/null @@ -1,54 +0,0 @@ -getDefaultConfirmCallback() : $callback; - - $shouldConfirm = $callback instanceof Closure ? call_user_func($callback) : $callback; - - if ($shouldConfirm) { - if ($this->option('force')) { - return true; - } - - $this->alert($warning); - - $confirmed = $this->confirm('Do you really wish to run this command?'); - - if (! $confirmed) { - $this->comment('Command Cancelled!'); - - return false; - } - } - - return true; - } - - /** - * Get the default confirmation callback. - * - * @return \Closure - */ - protected function getDefaultConfirmCallback() - { - return function () { - return $this->getLaravel()->environment() == 'production'; - }; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Console/DetectsApplicationNamespace.php b/vendor/laravel/framework/src/Illuminate/Console/DetectsApplicationNamespace.php deleted file mode 100644 index cb5e8e84..00000000 --- a/vendor/laravel/framework/src/Illuminate/Console/DetectsApplicationNamespace.php +++ /dev/null @@ -1,18 +0,0 @@ -getNamespace(); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Console/Events/ArtisanStarting.php b/vendor/laravel/framework/src/Illuminate/Console/Events/ArtisanStarting.php deleted file mode 100644 index f228ac52..00000000 --- a/vendor/laravel/framework/src/Illuminate/Console/Events/ArtisanStarting.php +++ /dev/null @@ -1,24 +0,0 @@ -artisan = $artisan; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Console/Events/CommandFinished.php b/vendor/laravel/framework/src/Illuminate/Console/Events/CommandFinished.php deleted file mode 100644 index ef066af3..00000000 --- a/vendor/laravel/framework/src/Illuminate/Console/Events/CommandFinished.php +++ /dev/null @@ -1,54 +0,0 @@ -input = $input; - $this->output = $output; - $this->command = $command; - $this->exitCode = $exitCode; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Console/Events/CommandStarting.php b/vendor/laravel/framework/src/Illuminate/Console/Events/CommandStarting.php deleted file mode 100644 index c6238b5d..00000000 --- a/vendor/laravel/framework/src/Illuminate/Console/Events/CommandStarting.php +++ /dev/null @@ -1,45 +0,0 @@ -input = $input; - $this->output = $output; - $this->command = $command; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Console/GeneratorCommand.php b/vendor/laravel/framework/src/Illuminate/Console/GeneratorCommand.php deleted file mode 100644 index 32d26e9e..00000000 --- a/vendor/laravel/framework/src/Illuminate/Console/GeneratorCommand.php +++ /dev/null @@ -1,237 +0,0 @@ -files = $files; - } - - /** - * Get the stub file for the generator. - * - * @return string - */ - abstract protected function getStub(); - - /** - * Execute the console command. - * - * @return bool|null - */ - public function handle() - { - $name = $this->qualifyClass($this->getNameInput()); - - $path = $this->getPath($name); - - // First we will check to see if the class already exists. If it does, we don't want - // to create the class and overwrite the user's code. So, we will bail out so the - // code is untouched. Otherwise, we will continue generating this class' files. - if ((! $this->hasOption('force') || - ! $this->option('force')) && - $this->alreadyExists($this->getNameInput())) { - $this->error($this->type.' already exists!'); - - return false; - } - - // Next, we will generate the path to the location where this class' file should get - // written. Then, we will build the class and make the proper replacements on the - // stub files so that it gets the correctly formatted namespace and class name. - $this->makeDirectory($path); - - $this->files->put($path, $this->buildClass($name)); - - $this->info($this->type.' created successfully.'); - } - - /** - * Parse the class name and format according to the root namespace. - * - * @param string $name - * @return string - */ - protected function qualifyClass($name) - { - $name = ltrim($name, '\\/'); - - $rootNamespace = $this->rootNamespace(); - - if (Str::startsWith($name, $rootNamespace)) { - return $name; - } - - $name = str_replace('/', '\\', $name); - - return $this->qualifyClass( - $this->getDefaultNamespace(trim($rootNamespace, '\\')).'\\'.$name - ); - } - - /** - * Get the default namespace for the class. - * - * @param string $rootNamespace - * @return string - */ - protected function getDefaultNamespace($rootNamespace) - { - return $rootNamespace; - } - - /** - * Determine if the class already exists. - * - * @param string $rawName - * @return bool - */ - protected function alreadyExists($rawName) - { - return $this->files->exists($this->getPath($this->qualifyClass($rawName))); - } - - /** - * Get the destination class path. - * - * @param string $name - * @return string - */ - protected function getPath($name) - { - $name = Str::replaceFirst($this->rootNamespace(), '', $name); - - return $this->laravel['path'].'/'.str_replace('\\', '/', $name).'.php'; - } - - /** - * Build the directory for the class if necessary. - * - * @param string $path - * @return string - */ - protected function makeDirectory($path) - { - if (! $this->files->isDirectory(dirname($path))) { - $this->files->makeDirectory(dirname($path), 0777, true, true); - } - - return $path; - } - - /** - * Build the class with the given name. - * - * @param string $name - * @return string - */ - protected function buildClass($name) - { - $stub = $this->files->get($this->getStub()); - - return $this->replaceNamespace($stub, $name)->replaceClass($stub, $name); - } - - /** - * Replace the namespace for the given stub. - * - * @param string $stub - * @param string $name - * @return $this - */ - protected function replaceNamespace(&$stub, $name) - { - $stub = str_replace( - ['DummyNamespace', 'DummyRootNamespace', 'NamespacedDummyUserModel'], - [$this->getNamespace($name), $this->rootNamespace(), config('auth.providers.users.model')], - $stub - ); - - return $this; - } - - /** - * Get the full namespace for a given class, without the class name. - * - * @param string $name - * @return string - */ - protected function getNamespace($name) - { - return trim(implode('\\', array_slice(explode('\\', $name), 0, -1)), '\\'); - } - - /** - * Replace the class name for the given stub. - * - * @param string $stub - * @param string $name - * @return string - */ - protected function replaceClass($stub, $name) - { - $class = str_replace($this->getNamespace($name).'\\', '', $name); - - return str_replace('DummyClass', $class, $stub); - } - - /** - * Get the desired class name from the input. - * - * @return string - */ - protected function getNameInput() - { - return trim($this->argument('name')); - } - - /** - * Get the root namespace for the class. - * - * @return string - */ - protected function rootNamespace() - { - return $this->laravel->getNamespace(); - } - - /** - * Get the console command arguments. - * - * @return array - */ - protected function getArguments() - { - return [ - ['name', InputArgument::REQUIRED, 'The name of the class'], - ]; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Console/OutputStyle.php b/vendor/laravel/framework/src/Illuminate/Console/OutputStyle.php deleted file mode 100644 index 925e66da..00000000 --- a/vendor/laravel/framework/src/Illuminate/Console/OutputStyle.php +++ /dev/null @@ -1,71 +0,0 @@ -output = $output; - - parent::__construct($input, $output); - } - - /** - * Returns whether verbosity is quiet (-q). - * - * @return bool - */ - public function isQuiet() - { - return $this->output->isQuiet(); - } - - /** - * Returns whether verbosity is verbose (-v). - * - * @return bool - */ - public function isVerbose() - { - return $this->output->isVerbose(); - } - - /** - * Returns whether verbosity is very verbose (-vv). - * - * @return bool - */ - public function isVeryVerbose() - { - return $this->output->isVeryVerbose(); - } - - /** - * Returns whether verbosity is debug (-vvv). - * - * @return bool - */ - public function isDebug() - { - return $this->output->isDebug(); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Console/Parser.php b/vendor/laravel/framework/src/Illuminate/Console/Parser.php deleted file mode 100644 index 92753119..00000000 --- a/vendor/laravel/framework/src/Illuminate/Console/Parser.php +++ /dev/null @@ -1,146 +0,0 @@ -cache = $cache; - } - - /** - * Attempt to obtain an event mutex for the given event. - * - * @param \Illuminate\Console\Scheduling\Event $event - * @return bool - */ - public function create(Event $event) - { - return $this->cache->store($this->store)->add( - $event->mutexName(), true, $event->expiresAt - ); - } - - /** - * Determine if an event mutex exists for the given event. - * - * @param \Illuminate\Console\Scheduling\Event $event - * @return bool - */ - public function exists(Event $event) - { - return $this->cache->store($this->store)->has($event->mutexName()); - } - - /** - * Clear the event mutex for the given event. - * - * @param \Illuminate\Console\Scheduling\Event $event - * @return void - */ - public function forget(Event $event) - { - $this->cache->store($this->store)->forget($event->mutexName()); - } - - /** - * Specify the cache store that should be used. - * - * @param string $store - * @return $this - */ - public function useStore($store) - { - $this->store = $store; - - return $this; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheSchedulingMutex.php b/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheSchedulingMutex.php deleted file mode 100644 index dfa20348..00000000 --- a/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheSchedulingMutex.php +++ /dev/null @@ -1,75 +0,0 @@ -cache = $cache; - } - - /** - * Attempt to obtain a scheduling mutex for the given event. - * - * @param \Illuminate\Console\Scheduling\Event $event - * @param \DateTimeInterface $time - * @return bool - */ - public function create(Event $event, DateTimeInterface $time) - { - return $this->cache->store($this->store)->add( - $event->mutexName().$time->format('Hi'), true, 60 - ); - } - - /** - * Determine if a scheduling mutex exists for the given event. - * - * @param \Illuminate\Console\Scheduling\Event $event - * @param \DateTimeInterface $time - * @return bool - */ - public function exists(Event $event, DateTimeInterface $time) - { - return $this->cache->store($this->store)->has( - $event->mutexName().$time->format('Hi') - ); - } - - /** - * Specify the cache store that should be used. - * - * @param string $store - * @return $this - */ - public function useStore($store) - { - $this->store = $store; - - return $this; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CallbackEvent.php b/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CallbackEvent.php deleted file mode 100644 index 1b54a1aa..00000000 --- a/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CallbackEvent.php +++ /dev/null @@ -1,164 +0,0 @@ -mutex = $mutex; - $this->callback = $callback; - $this->parameters = $parameters; - } - - /** - * Run the given event. - * - * @param \Illuminate\Contracts\Container\Container $container - * @return mixed - * - * @throws \Exception - */ - public function run(Container $container) - { - if ($this->description && $this->withoutOverlapping && - ! $this->mutex->create($this)) { - return; - } - - $pid = getmypid(); - - register_shutdown_function(function () use ($pid) { - if ($pid === getmypid()) { - $this->removeMutex(); - } - }); - - parent::callBeforeCallbacks($container); - - try { - $response = $container->call($this->callback, $this->parameters); - } finally { - $this->removeMutex(); - - parent::callAfterCallbacks($container); - } - - return $response; - } - - /** - * Clear the mutex for the event. - * - * @return void - */ - protected function removeMutex() - { - if ($this->description) { - $this->mutex->forget($this); - } - } - - /** - * Do not allow the event to overlap each other. - * - * @param int $expiresAt - * @return $this - * - * @throws \LogicException - */ - public function withoutOverlapping($expiresAt = 1440) - { - if (! isset($this->description)) { - throw new LogicException( - "A scheduled event name is required to prevent overlapping. Use the 'name' method before 'withoutOverlapping'." - ); - } - - $this->withoutOverlapping = true; - - $this->expiresAt = $expiresAt; - - return $this->skip(function () { - return $this->mutex->exists($this); - }); - } - - /** - * Allow the event to only run on one server for each cron expression. - * - * @return $this - * - * @throws \LogicException - */ - public function onOneServer() - { - if (! isset($this->description)) { - throw new LogicException( - "A scheduled event name is required to only run on one server. Use the 'name' method before 'onOneServer'." - ); - } - - $this->onOneServer = true; - - return $this; - } - - /** - * Get the mutex name for the scheduled command. - * - * @return string - */ - public function mutexName() - { - return 'framework/schedule-'.sha1($this->description); - } - - /** - * Get the summary of the event for display. - * - * @return string - */ - public function getSummaryForDisplay() - { - if (is_string($this->description)) { - return $this->description; - } - - return is_string($this->callback) ? $this->callback : 'Closure'; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CommandBuilder.php b/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CommandBuilder.php deleted file mode 100644 index df7cdf61..00000000 --- a/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CommandBuilder.php +++ /dev/null @@ -1,71 +0,0 @@ -runInBackground) { - return $this->buildBackgroundCommand($event); - } - - return $this->buildForegroundCommand($event); - } - - /** - * Build the command for running the event in the foreground. - * - * @param \Illuminate\Console\Scheduling\Event $event - * @return string - */ - protected function buildForegroundCommand(Event $event) - { - $output = ProcessUtils::escapeArgument($event->output); - - return $this->ensureCorrectUser( - $event, $event->command.($event->shouldAppendOutput ? ' >> ' : ' > ').$output.' 2>&1' - ); - } - - /** - * Build the command for running the event in the background. - * - * @param \Illuminate\Console\Scheduling\Event $event - * @return string - */ - protected function buildBackgroundCommand(Event $event) - { - $output = ProcessUtils::escapeArgument($event->output); - - $redirect = $event->shouldAppendOutput ? ' >> ' : ' > '; - - $finished = Application::formatCommandString('schedule:finish').' "'.$event->mutexName().'"'; - - return $this->ensureCorrectUser($event, - '('.$event->command.$redirect.$output.' 2>&1 '.(windows_os() ? '&' : ';').' '.$finished.') > ' - .ProcessUtils::escapeArgument($event->getDefaultOutput()).' 2>&1 &' - ); - } - - /** - * Finalize the event's command syntax with the correct user. - * - * @param \Illuminate\Console\Scheduling\Event $event - * @param string $command - * @return string - */ - protected function ensureCorrectUser(Event $event, $command) - { - return $event->user && ! windows_os() ? 'sudo -u '.$event->user.' -- sh -c \''.$command.'\'' : $command; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php b/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php deleted file mode 100644 index f9ae2584..00000000 --- a/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php +++ /dev/null @@ -1,721 +0,0 @@ -mutex = $mutex; - $this->command = $command; - $this->output = $this->getDefaultOutput(); - } - - /** - * Get the default output depending on the OS. - * - * @return string - */ - public function getDefaultOutput() - { - return (DIRECTORY_SEPARATOR == '\\') ? 'NUL' : '/dev/null'; - } - - /** - * Run the given event. - * - * @param \Illuminate\Contracts\Container\Container $container - * @return void - */ - public function run(Container $container) - { - if ($this->withoutOverlapping && - ! $this->mutex->create($this)) { - return; - } - - $this->runInBackground - ? $this->runCommandInBackground($container) - : $this->runCommandInForeground($container); - } - - /** - * Get the mutex name for the scheduled command. - * - * @return string - */ - public function mutexName() - { - return 'framework'.DIRECTORY_SEPARATOR.'schedule-'.sha1($this->expression.$this->command); - } - - /** - * Run the command in the foreground. - * - * @param \Illuminate\Contracts\Container\Container $container - * @return void - */ - protected function runCommandInForeground(Container $container) - { - $this->callBeforeCallbacks($container); - - (new Process( - $this->buildCommand(), base_path(), null, null, null - ))->run(); - - $this->callAfterCallbacks($container); - } - - /** - * Run the command in the background. - * - * @param \Illuminate\Contracts\Container\Container $container - * @return void - */ - protected function runCommandInBackground(Container $container) - { - $this->callBeforeCallbacks($container); - - (new Process( - $this->buildCommand(), base_path(), null, null, null - ))->run(); - } - - /** - * Call all of the "before" callbacks for the event. - * - * @param \Illuminate\Contracts\Container\Container $container - * @return void - */ - public function callBeforeCallbacks(Container $container) - { - foreach ($this->beforeCallbacks as $callback) { - $container->call($callback); - } - } - - /** - * Call all of the "after" callbacks for the event. - * - * @param \Illuminate\Contracts\Container\Container $container - * @return void - */ - public function callAfterCallbacks(Container $container) - { - foreach ($this->afterCallbacks as $callback) { - $container->call($callback); - } - } - - /** - * Build the command string. - * - * @return string - */ - public function buildCommand() - { - return (new CommandBuilder)->buildCommand($this); - } - - /** - * Determine if the given event should run based on the Cron expression. - * - * @param \Illuminate\Contracts\Foundation\Application $app - * @return bool - */ - public function isDue($app) - { - if (! $this->runsInMaintenanceMode() && $app->isDownForMaintenance()) { - return false; - } - - return $this->expressionPasses() && - $this->runsInEnvironment($app->environment()); - } - - /** - * Determine if the event runs in maintenance mode. - * - * @return bool - */ - public function runsInMaintenanceMode() - { - return $this->evenInMaintenanceMode; - } - - /** - * Determine if the Cron expression passes. - * - * @return bool - */ - protected function expressionPasses() - { - $date = Carbon::now(); - - if ($this->timezone) { - $date->setTimezone($this->timezone); - } - - return CronExpression::factory($this->expression)->isDue($date->toDateTimeString()); - } - - /** - * Determine if the event runs in the given environment. - * - * @param string $environment - * @return bool - */ - public function runsInEnvironment($environment) - { - return empty($this->environments) || in_array($environment, $this->environments); - } - - /** - * Determine if the filters pass for the event. - * - * @param \Illuminate\Contracts\Foundation\Application $app - * @return bool - */ - public function filtersPass($app) - { - foreach ($this->filters as $callback) { - if (! $app->call($callback)) { - return false; - } - } - - foreach ($this->rejects as $callback) { - if ($app->call($callback)) { - return false; - } - } - - return true; - } - - /** - * Send the output of the command to a given location. - * - * @param string $location - * @param bool $append - * @return $this - */ - public function sendOutputTo($location, $append = false) - { - $this->output = $location; - - $this->shouldAppendOutput = $append; - - return $this; - } - - /** - * Append the output of the command to a given location. - * - * @param string $location - * @return $this - */ - public function appendOutputTo($location) - { - return $this->sendOutputTo($location, true); - } - - /** - * E-mail the results of the scheduled operation. - * - * @param array|mixed $addresses - * @param bool $onlyIfOutputExists - * @return $this - * - * @throws \LogicException - */ - public function emailOutputTo($addresses, $onlyIfOutputExists = false) - { - $this->ensureOutputIsBeingCapturedForEmail(); - - $addresses = Arr::wrap($addresses); - - return $this->then(function (Mailer $mailer) use ($addresses, $onlyIfOutputExists) { - $this->emailOutput($mailer, $addresses, $onlyIfOutputExists); - }); - } - - /** - * E-mail the results of the scheduled operation if it produces output. - * - * @param array|mixed $addresses - * @return $this - * - * @throws \LogicException - */ - public function emailWrittenOutputTo($addresses) - { - return $this->emailOutputTo($addresses, true); - } - - /** - * Ensure that output is being captured for email. - * - * @return void - */ - protected function ensureOutputIsBeingCapturedForEmail() - { - if (is_null($this->output) || $this->output == $this->getDefaultOutput()) { - $this->sendOutputTo(storage_path('logs/schedule-'.sha1($this->mutexName()).'.log')); - } - } - - /** - * E-mail the output of the event to the recipients. - * - * @param \Illuminate\Contracts\Mail\Mailer $mailer - * @param array $addresses - * @param bool $onlyIfOutputExists - * @return void - */ - protected function emailOutput(Mailer $mailer, $addresses, $onlyIfOutputExists = false) - { - $text = file_exists($this->output) ? file_get_contents($this->output) : ''; - - if ($onlyIfOutputExists && empty($text)) { - return; - } - - $mailer->raw($text, function ($m) use ($addresses) { - $m->to($addresses)->subject($this->getEmailSubject()); - }); - } - - /** - * Get the e-mail subject line for output results. - * - * @return string - */ - protected function getEmailSubject() - { - if ($this->description) { - return $this->description; - } - - return "Scheduled Job Output For [{$this->command}]"; - } - - /** - * Register a callback to ping a given URL before the job runs. - * - * @param string $url - * @return $this - */ - public function pingBefore($url) - { - return $this->before(function () use ($url) { - (new HttpClient)->get($url); - }); - } - - /** - * Register a callback to ping a given URL before the job runs if the given condition is true. - * - * @param bool $value - * @param string $url - * @return $this - */ - public function pingBeforeIf($value, $url) - { - return $value ? $this->pingBefore($url) : $this; - } - - /** - * Register a callback to ping a given URL after the job runs. - * - * @param string $url - * @return $this - */ - public function thenPing($url) - { - return $this->then(function () use ($url) { - (new HttpClient)->get($url); - }); - } - - /** - * Register a callback to ping a given URL after the job runs if the given condition is true. - * - * @param bool $value - * @param string $url - * @return $this - */ - public function thenPingIf($value, $url) - { - return $value ? $this->thenPing($url) : $this; - } - - /** - * State that the command should run in background. - * - * @return $this - */ - public function runInBackground() - { - $this->runInBackground = true; - - return $this; - } - - /** - * Set which user the command should run as. - * - * @param string $user - * @return $this - */ - public function user($user) - { - $this->user = $user; - - return $this; - } - - /** - * Limit the environments the command should run in. - * - * @param array|mixed $environments - * @return $this - */ - public function environments($environments) - { - $this->environments = is_array($environments) ? $environments : func_get_args(); - - return $this; - } - - /** - * State that the command should run even in maintenance mode. - * - * @return $this - */ - public function evenInMaintenanceMode() - { - $this->evenInMaintenanceMode = true; - - return $this; - } - - /** - * Do not allow the event to overlap each other. - * - * @param int $expiresAt - * @return $this - */ - public function withoutOverlapping($expiresAt = 1440) - { - $this->withoutOverlapping = true; - - $this->expiresAt = $expiresAt; - - return $this->then(function () { - $this->mutex->forget($this); - })->skip(function () { - return $this->mutex->exists($this); - }); - } - - /** - * Allow the event to only run on one server for each cron expression. - * - * @return $this - */ - public function onOneServer() - { - $this->onOneServer = true; - - return $this; - } - - /** - * Register a callback to further filter the schedule. - * - * @param \Closure|bool $callback - * @return $this - */ - public function when($callback) - { - $this->filters[] = is_callable($callback) ? $callback : function () use ($callback) { - return $callback; - }; - - return $this; - } - - /** - * Register a callback to further filter the schedule. - * - * @param \Closure|bool $callback - * @return $this - */ - public function skip($callback) - { - $this->rejects[] = is_callable($callback) ? $callback : function () use ($callback) { - return $callback; - }; - - return $this; - } - - /** - * Register a callback to be called before the operation. - * - * @param \Closure $callback - * @return $this - */ - public function before(Closure $callback) - { - $this->beforeCallbacks[] = $callback; - - return $this; - } - - /** - * Register a callback to be called after the operation. - * - * @param \Closure $callback - * @return $this - */ - public function after(Closure $callback) - { - return $this->then($callback); - } - - /** - * Register a callback to be called after the operation. - * - * @param \Closure $callback - * @return $this - */ - public function then(Closure $callback) - { - $this->afterCallbacks[] = $callback; - - return $this; - } - - /** - * Set the human-friendly description of the event. - * - * @param string $description - * @return $this - */ - public function name($description) - { - return $this->description($description); - } - - /** - * Set the human-friendly description of the event. - * - * @param string $description - * @return $this - */ - public function description($description) - { - $this->description = $description; - - return $this; - } - - /** - * Get the summary of the event for display. - * - * @return string - */ - public function getSummaryForDisplay() - { - if (is_string($this->description)) { - return $this->description; - } - - return $this->buildCommand(); - } - - /** - * Determine the next due date for an event. - * - * @param \DateTime|string $currentTime - * @param int $nth - * @param bool $allowCurrentDate - * @return \Illuminate\Support\Carbon - */ - public function nextRunDate($currentTime = 'now', $nth = 0, $allowCurrentDate = false) - { - return Carbon::instance(CronExpression::factory( - $this->getExpression() - )->getNextRunDate($currentTime, $nth, $allowCurrentDate)); - } - - /** - * Get the Cron expression for the event. - * - * @return string - */ - public function getExpression() - { - return $this->expression; - } - - /** - * Set the event mutex implementation to be used. - * - * @param \Illuminate\Console\Scheduling\EventMutex $mutex - * @return $this - */ - public function preventOverlapsUsing(EventMutex $mutex) - { - $this->mutex = $mutex; - - return $this; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Console/Scheduling/EventMutex.php b/vendor/laravel/framework/src/Illuminate/Console/Scheduling/EventMutex.php deleted file mode 100644 index 1840e242..00000000 --- a/vendor/laravel/framework/src/Illuminate/Console/Scheduling/EventMutex.php +++ /dev/null @@ -1,30 +0,0 @@ -expression = $expression; - - return $this; - } - - /** - * Schedule the event to run between start and end time. - * - * @param string $startTime - * @param string $endTime - * @return $this - */ - public function between($startTime, $endTime) - { - return $this->when($this->inTimeInterval($startTime, $endTime)); - } - - /** - * Schedule the event to not run between start and end time. - * - * @param string $startTime - * @param string $endTime - * @return $this - */ - public function unlessBetween($startTime, $endTime) - { - return $this->skip($this->inTimeInterval($startTime, $endTime)); - } - - /** - * Schedule the event to run between start and end time. - * - * @param string $startTime - * @param string $endTime - * @return \Closure - */ - private function inTimeInterval($startTime, $endTime) - { - return function () use ($startTime, $endTime) { - return Carbon::now($this->timezone)->between( - Carbon::parse($startTime, $this->timezone), - Carbon::parse($endTime, $this->timezone), - true - ); - }; - } - - /** - * Schedule the event to run every minute. - * - * @return $this - */ - public function everyMinute() - { - return $this->spliceIntoPosition(1, '*'); - } - - /** - * Schedule the event to run every five minutes. - * - * @return $this - */ - public function everyFiveMinutes() - { - return $this->spliceIntoPosition(1, '*/5'); - } - - /** - * Schedule the event to run every ten minutes. - * - * @return $this - */ - public function everyTenMinutes() - { - return $this->spliceIntoPosition(1, '*/10'); - } - - /** - * Schedule the event to run every fifteen minutes. - * - * @return $this - */ - public function everyFifteenMinutes() - { - return $this->spliceIntoPosition(1, '*/15'); - } - - /** - * Schedule the event to run every thirty minutes. - * - * @return $this - */ - public function everyThirtyMinutes() - { - return $this->spliceIntoPosition(1, '0,30'); - } - - /** - * Schedule the event to run hourly. - * - * @return $this - */ - public function hourly() - { - return $this->spliceIntoPosition(1, 0); - } - - /** - * Schedule the event to run hourly at a given offset in the hour. - * - * @param int $offset - * @return $this - */ - public function hourlyAt($offset) - { - return $this->spliceIntoPosition(1, $offset); - } - - /** - * Schedule the event to run daily. - * - * @return $this - */ - public function daily() - { - return $this->spliceIntoPosition(1, 0) - ->spliceIntoPosition(2, 0); - } - - /** - * Schedule the command at a given time. - * - * @param string $time - * @return $this - */ - public function at($time) - { - return $this->dailyAt($time); - } - - /** - * Schedule the event to run daily at a given time (10:00, 19:30, etc). - * - * @param string $time - * @return $this - */ - public function dailyAt($time) - { - $segments = explode(':', $time); - - return $this->spliceIntoPosition(2, (int) $segments[0]) - ->spliceIntoPosition(1, count($segments) == 2 ? (int) $segments[1] : '0'); - } - - /** - * Schedule the event to run twice daily. - * - * @param int $first - * @param int $second - * @return $this - */ - public function twiceDaily($first = 1, $second = 13) - { - $hours = $first.','.$second; - - return $this->spliceIntoPosition(1, 0) - ->spliceIntoPosition(2, $hours); - } - - /** - * Schedule the event to run only on weekdays. - * - * @return $this - */ - public function weekdays() - { - return $this->spliceIntoPosition(5, '1-5'); - } - - /** - * Schedule the event to run only on weekends. - * - * @return $this - */ - public function weekends() - { - return $this->spliceIntoPosition(5, '0,6'); - } - - /** - * Schedule the event to run only on Mondays. - * - * @return $this - */ - public function mondays() - { - return $this->days(1); - } - - /** - * Schedule the event to run only on Tuesdays. - * - * @return $this - */ - public function tuesdays() - { - return $this->days(2); - } - - /** - * Schedule the event to run only on Wednesdays. - * - * @return $this - */ - public function wednesdays() - { - return $this->days(3); - } - - /** - * Schedule the event to run only on Thursdays. - * - * @return $this - */ - public function thursdays() - { - return $this->days(4); - } - - /** - * Schedule the event to run only on Fridays. - * - * @return $this - */ - public function fridays() - { - return $this->days(5); - } - - /** - * Schedule the event to run only on Saturdays. - * - * @return $this - */ - public function saturdays() - { - return $this->days(6); - } - - /** - * Schedule the event to run only on Sundays. - * - * @return $this - */ - public function sundays() - { - return $this->days(0); - } - - /** - * Schedule the event to run weekly. - * - * @return $this - */ - public function weekly() - { - return $this->spliceIntoPosition(1, 0) - ->spliceIntoPosition(2, 0) - ->spliceIntoPosition(5, 0); - } - - /** - * Schedule the event to run weekly on a given day and time. - * - * @param int $day - * @param string $time - * @return $this - */ - public function weeklyOn($day, $time = '0:0') - { - $this->dailyAt($time); - - return $this->spliceIntoPosition(5, $day); - } - - /** - * Schedule the event to run monthly. - * - * @return $this - */ - public function monthly() - { - return $this->spliceIntoPosition(1, 0) - ->spliceIntoPosition(2, 0) - ->spliceIntoPosition(3, 1); - } - - /** - * Schedule the event to run monthly on a given day and time. - * - * @param int $day - * @param string $time - * @return $this - */ - public function monthlyOn($day = 1, $time = '0:0') - { - $this->dailyAt($time); - - return $this->spliceIntoPosition(3, $day); - } - - /** - * Schedule the event to run twice monthly. - * - * @param int $first - * @param int $second - * @return $this - */ - public function twiceMonthly($first = 1, $second = 16) - { - $days = $first.','.$second; - - return $this->spliceIntoPosition(1, 0) - ->spliceIntoPosition(2, 0) - ->spliceIntoPosition(3, $days); - } - - /** - * Schedule the event to run quarterly. - * - * @return $this - */ - public function quarterly() - { - return $this->spliceIntoPosition(1, 0) - ->spliceIntoPosition(2, 0) - ->spliceIntoPosition(3, 1) - ->spliceIntoPosition(4, '1-12/3'); - } - - /** - * Schedule the event to run yearly. - * - * @return $this - */ - public function yearly() - { - return $this->spliceIntoPosition(1, 0) - ->spliceIntoPosition(2, 0) - ->spliceIntoPosition(3, 1) - ->spliceIntoPosition(4, 1); - } - - /** - * Set the days of the week the command should run on. - * - * @param array|mixed $days - * @return $this - */ - public function days($days) - { - $days = is_array($days) ? $days : func_get_args(); - - return $this->spliceIntoPosition(5, implode(',', $days)); - } - - /** - * Set the timezone the date should be evaluated on. - * - * @param \DateTimeZone|string $timezone - * @return $this - */ - public function timezone($timezone) - { - $this->timezone = $timezone; - - return $this; - } - - /** - * Splice the given value into the given position of the expression. - * - * @param int $position - * @param string $value - * @return $this - */ - protected function spliceIntoPosition($position, $value) - { - $segments = explode(' ', $this->expression); - - $segments[$position - 1] = $value; - - return $this->cron(implode(' ', $segments)); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Schedule.php b/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Schedule.php deleted file mode 100644 index be99741f..00000000 --- a/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Schedule.php +++ /dev/null @@ -1,196 +0,0 @@ -eventMutex = $container->bound(EventMutex::class) - ? $container->make(EventMutex::class) - : $container->make(CacheEventMutex::class); - - $this->schedulingMutex = $container->bound(SchedulingMutex::class) - ? $container->make(SchedulingMutex::class) - : $container->make(CacheSchedulingMutex::class); - } - - /** - * Add a new callback event to the schedule. - * - * @param string|callable $callback - * @param array $parameters - * @return \Illuminate\Console\Scheduling\CallbackEvent - */ - public function call($callback, array $parameters = []) - { - $this->events[] = $event = new CallbackEvent( - $this->eventMutex, $callback, $parameters - ); - - return $event; - } - - /** - * Add a new Artisan command event to the schedule. - * - * @param string $command - * @param array $parameters - * @return \Illuminate\Console\Scheduling\Event - */ - public function command($command, array $parameters = []) - { - if (class_exists($command)) { - $command = Container::getInstance()->make($command)->getName(); - } - - return $this->exec( - Application::formatCommandString($command), $parameters - ); - } - - /** - * Add a new job callback event to the schedule. - * - * @param object|string $job - * @param string|null $queue - * @return \Illuminate\Console\Scheduling\CallbackEvent - */ - public function job($job, $queue = null) - { - return $this->call(function () use ($job, $queue) { - $job = is_string($job) ? resolve($job) : $job; - - if ($job instanceof ShouldQueue) { - dispatch($job)->onQueue($queue); - } else { - dispatch_now($job); - } - })->name(is_string($job) ? $job : get_class($job)); - } - - /** - * Add a new command event to the schedule. - * - * @param string $command - * @param array $parameters - * @return \Illuminate\Console\Scheduling\Event - */ - public function exec($command, array $parameters = []) - { - if (count($parameters)) { - $command .= ' '.$this->compileParameters($parameters); - } - - $this->events[] = $event = new Event($this->eventMutex, $command); - - return $event; - } - - /** - * Compile parameters for a command. - * - * @param array $parameters - * @return string - */ - protected function compileParameters(array $parameters) - { - return collect($parameters)->map(function ($value, $key) { - if (is_array($value)) { - $value = collect($value)->map(function ($value) { - return ProcessUtils::escapeArgument($value); - })->implode(' '); - } elseif (! is_numeric($value) && ! preg_match('/^(-.$|--.*)/i', $value)) { - $value = ProcessUtils::escapeArgument($value); - } - - return is_numeric($key) ? $value : "{$key}={$value}"; - })->implode(' '); - } - - /** - * Determine if the server is allowed to run this event. - * - * @param \Illuminate\Console\Scheduling\Event $event - * @param \DateTimeInterface $time - * @return bool - */ - public function serverShouldRun(Event $event, DateTimeInterface $time) - { - return $this->schedulingMutex->create($event, $time); - } - - /** - * Get all of the events on the schedule that are due. - * - * @param \Illuminate\Contracts\Foundation\Application $app - * @return \Illuminate\Support\Collection - */ - public function dueEvents($app) - { - return collect($this->events)->filter->isDue($app); - } - - /** - * Get all of the events on the schedule. - * - * @return \Illuminate\Console\Scheduling\Event[] - */ - public function events() - { - return $this->events; - } - - /** - * Specify the cache store that should be used to store mutexes. - * - * @param string $store - * @return $this - */ - public function useCache($store) - { - if ($this->eventMutex instanceof CacheEventMutex) { - $this->eventMutex->useStore($store); - } - - if ($this->schedulingMutex instanceof CacheSchedulingMutex) { - $this->schedulingMutex->useStore($store); - } - - return $this; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleFinishCommand.php b/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleFinishCommand.php deleted file mode 100644 index f697ea81..00000000 --- a/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleFinishCommand.php +++ /dev/null @@ -1,61 +0,0 @@ -schedule = $schedule; - - parent::__construct(); - } - - /** - * Execute the console command. - * - * @return void - */ - public function handle() - { - collect($this->schedule->events())->filter(function ($value) { - return $value->mutexName() == $this->argument('id'); - })->each->callAfterCallbacks($this->laravel); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php b/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php deleted file mode 100644 index 21695438..00000000 --- a/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php +++ /dev/null @@ -1,115 +0,0 @@ -schedule = $schedule; - - $this->startedAt = Carbon::now(); - - parent::__construct(); - } - - /** - * Execute the console command. - * - * @return void - */ - public function handle() - { - foreach ($this->schedule->dueEvents($this->laravel) as $event) { - if (! $event->filtersPass($this->laravel)) { - continue; - } - - if ($event->onOneServer) { - $this->runSingleServerEvent($event); - } else { - $this->runEvent($event); - } - - $this->eventsRan = true; - } - - if (! $this->eventsRan) { - $this->info('No scheduled commands are ready to run.'); - } - } - - /** - * Run the given single server event. - * - * @param \Illuminate\Console\Scheduling\Event $event - * @return void - */ - protected function runSingleServerEvent($event) - { - if ($this->schedule->serverShouldRun($event, $this->startedAt)) { - $this->runEvent($event); - } else { - $this->line('Skipping command (has already run on another server): '.$event->getSummaryForDisplay()); - } - } - - /** - * Run the given event. - * - * @param \Illuminate\Console\Scheduling\Event $event - * @return void - */ - protected function runEvent($event) - { - $this->line('Running scheduled command: '.$event->getSummaryForDisplay()); - - $event->run($this->laravel); - - $this->eventsRan = true; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Console/Scheduling/SchedulingMutex.php b/vendor/laravel/framework/src/Illuminate/Console/Scheduling/SchedulingMutex.php deleted file mode 100644 index ab4e87da..00000000 --- a/vendor/laravel/framework/src/Illuminate/Console/Scheduling/SchedulingMutex.php +++ /dev/null @@ -1,26 +0,0 @@ -make($segments[0]), $method], $parameters - ); - } - - /** - * Call a method that has been bound to the container. - * - * @param \Illuminate\Container\Container $container - * @param callable $callback - * @param mixed $default - * @return mixed - */ - protected static function callBoundMethod($container, $callback, $default) - { - if (! is_array($callback)) { - return $default instanceof Closure ? $default() : $default; - } - - // Here we need to turn the array callable into a Class@method string we can use to - // examine the container and see if there are any method bindings for this given - // method. If there are, we can call this method binding callback immediately. - $method = static::normalizeMethod($callback); - - if ($container->hasMethodBinding($method)) { - return $container->callMethodBinding($method, $callback[0]); - } - - return $default instanceof Closure ? $default() : $default; - } - - /** - * Normalize the given callback into a Class@method string. - * - * @param callable $callback - * @return string - */ - protected static function normalizeMethod($callback) - { - $class = is_string($callback[0]) ? $callback[0] : get_class($callback[0]); - - return "{$class}@{$callback[1]}"; - } - - /** - * Get all dependencies for a given method. - * - * @param \Illuminate\Container\Container $container - * @param callable|string $callback - * @param array $parameters - * @return array - */ - protected static function getMethodDependencies($container, $callback, array $parameters = []) - { - $dependencies = []; - - foreach (static::getCallReflector($callback)->getParameters() as $parameter) { - static::addDependencyForCallParameter($container, $parameter, $parameters, $dependencies); - } - - return array_merge($dependencies, $parameters); - } - - /** - * Get the proper reflection instance for the given callback. - * - * @param callable|string $callback - * @return \ReflectionFunctionAbstract - */ - protected static function getCallReflector($callback) - { - if (is_string($callback) && strpos($callback, '::') !== false) { - $callback = explode('::', $callback); - } - - return is_array($callback) - ? new ReflectionMethod($callback[0], $callback[1]) - : new ReflectionFunction($callback); - } - - /** - * Get the dependency for the given call parameter. - * - * @param \Illuminate\Container\Container $container - * @param \ReflectionParameter $parameter - * @param array $parameters - * @param array $dependencies - * @return mixed - */ - protected static function addDependencyForCallParameter($container, $parameter, - array &$parameters, &$dependencies) - { - if (array_key_exists($parameter->name, $parameters)) { - $dependencies[] = $parameters[$parameter->name]; - - unset($parameters[$parameter->name]); - } elseif ($parameter->getClass() && array_key_exists($parameter->getClass()->name, $parameters)) { - $dependencies[] = $parameters[$parameter->getClass()->name]; - - unset($parameters[$parameter->getClass()->name]); - } elseif ($parameter->getClass()) { - $dependencies[] = $container->make($parameter->getClass()->name); - } elseif ($parameter->isDefaultValueAvailable()) { - $dependencies[] = $parameter->getDefaultValue(); - } - } - - /** - * Determine if the given string is in Class@method syntax. - * - * @param mixed $callback - * @return bool - */ - protected static function isCallableWithAtSign($callback) - { - return is_string($callback) && strpos($callback, '@') !== false; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Container/Container.php b/vendor/laravel/framework/src/Illuminate/Container/Container.php deleted file mode 100755 index 63c8b878..00000000 --- a/vendor/laravel/framework/src/Illuminate/Container/Container.php +++ /dev/null @@ -1,1260 +0,0 @@ -getAlias($concrete)); - } - - /** - * Determine if the given abstract type has been bound. - * - * @param string $abstract - * @return bool - */ - public function bound($abstract) - { - return isset($this->bindings[$abstract]) || - isset($this->instances[$abstract]) || - $this->isAlias($abstract); - } - - /** - * {@inheritdoc} - */ - public function has($id) - { - return $this->bound($id); - } - - /** - * Determine if the given abstract type has been resolved. - * - * @param string $abstract - * @return bool - */ - public function resolved($abstract) - { - if ($this->isAlias($abstract)) { - $abstract = $this->getAlias($abstract); - } - - return isset($this->resolved[$abstract]) || - isset($this->instances[$abstract]); - } - - /** - * Determine if a given type is shared. - * - * @param string $abstract - * @return bool - */ - public function isShared($abstract) - { - return isset($this->instances[$abstract]) || - (isset($this->bindings[$abstract]['shared']) && - $this->bindings[$abstract]['shared'] === true); - } - - /** - * Determine if a given string is an alias. - * - * @param string $name - * @return bool - */ - public function isAlias($name) - { - return isset($this->aliases[$name]); - } - - /** - * Register a binding with the container. - * - * @param string $abstract - * @param \Closure|string|null $concrete - * @param bool $shared - * @return void - */ - public function bind($abstract, $concrete = null, $shared = false) - { - // If no concrete type was given, we will simply set the concrete type to the - // abstract type. After that, the concrete type to be registered as shared - // without being forced to state their classes in both of the parameters. - $this->dropStaleInstances($abstract); - - if (is_null($concrete)) { - $concrete = $abstract; - } - - // If the factory is not a Closure, it means it is just a class name which is - // bound into this container to the abstract type and we will just wrap it - // up inside its own Closure to give us more convenience when extending. - if (! $concrete instanceof Closure) { - $concrete = $this->getClosure($abstract, $concrete); - } - - $this->bindings[$abstract] = compact('concrete', 'shared'); - - // If the abstract type was already resolved in this container we'll fire the - // rebound listener so that any objects which have already gotten resolved - // can have their copy of the object updated via the listener callbacks. - if ($this->resolved($abstract)) { - $this->rebound($abstract); - } - } - - /** - * Get the Closure to be used when building a type. - * - * @param string $abstract - * @param string $concrete - * @return \Closure - */ - protected function getClosure($abstract, $concrete) - { - return function ($container, $parameters = []) use ($abstract, $concrete) { - if ($abstract == $concrete) { - return $container->build($concrete); - } - - return $container->make($concrete, $parameters); - }; - } - - /** - * Determine if the container has a method binding. - * - * @param string $method - * @return bool - */ - public function hasMethodBinding($method) - { - return isset($this->methodBindings[$method]); - } - - /** - * Bind a callback to resolve with Container::call. - * - * @param array|string $method - * @param \Closure $callback - * @return void - */ - public function bindMethod($method, $callback) - { - $this->methodBindings[$this->parseBindMethod($method)] = $callback; - } - - /** - * Get the method to be bound in class@method format. - * - * @param array|string $method - * @return string - */ - protected function parseBindMethod($method) - { - if (is_array($method)) { - return $method[0].'@'.$method[1]; - } - - return $method; - } - - /** - * Get the method binding for the given method. - * - * @param string $method - * @param mixed $instance - * @return mixed - */ - public function callMethodBinding($method, $instance) - { - return call_user_func($this->methodBindings[$method], $instance, $this); - } - - /** - * Add a contextual binding to the container. - * - * @param string $concrete - * @param string $abstract - * @param \Closure|string $implementation - * @return void - */ - public function addContextualBinding($concrete, $abstract, $implementation) - { - $this->contextual[$concrete][$this->getAlias($abstract)] = $implementation; - } - - /** - * Register a binding if it hasn't already been registered. - * - * @param string $abstract - * @param \Closure|string|null $concrete - * @param bool $shared - * @return void - */ - public function bindIf($abstract, $concrete = null, $shared = false) - { - if (! $this->bound($abstract)) { - $this->bind($abstract, $concrete, $shared); - } - } - - /** - * Register a shared binding in the container. - * - * @param string $abstract - * @param \Closure|string|null $concrete - * @return void - */ - public function singleton($abstract, $concrete = null) - { - $this->bind($abstract, $concrete, true); - } - - /** - * "Extend" an abstract type in the container. - * - * @param string $abstract - * @param \Closure $closure - * @return void - * - * @throws \InvalidArgumentException - */ - public function extend($abstract, Closure $closure) - { - $abstract = $this->getAlias($abstract); - - if (isset($this->instances[$abstract])) { - $this->instances[$abstract] = $closure($this->instances[$abstract], $this); - - $this->rebound($abstract); - } else { - $this->extenders[$abstract][] = $closure; - - if ($this->resolved($abstract)) { - $this->rebound($abstract); - } - } - } - - /** - * Register an existing instance as shared in the container. - * - * @param string $abstract - * @param mixed $instance - * @return mixed - */ - public function instance($abstract, $instance) - { - $this->removeAbstractAlias($abstract); - - $isBound = $this->bound($abstract); - - unset($this->aliases[$abstract]); - - // We'll check to determine if this type has been bound before, and if it has - // we will fire the rebound callbacks registered with the container and it - // can be updated with consuming classes that have gotten resolved here. - $this->instances[$abstract] = $instance; - - if ($isBound) { - $this->rebound($abstract); - } - - return $instance; - } - - /** - * Remove an alias from the contextual binding alias cache. - * - * @param string $searched - * @return void - */ - protected function removeAbstractAlias($searched) - { - if (! isset($this->aliases[$searched])) { - return; - } - - foreach ($this->abstractAliases as $abstract => $aliases) { - foreach ($aliases as $index => $alias) { - if ($alias == $searched) { - unset($this->abstractAliases[$abstract][$index]); - } - } - } - } - - /** - * Assign a set of tags to a given binding. - * - * @param array|string $abstracts - * @param array|mixed ...$tags - * @return void - */ - public function tag($abstracts, $tags) - { - $tags = is_array($tags) ? $tags : array_slice(func_get_args(), 1); - - foreach ($tags as $tag) { - if (! isset($this->tags[$tag])) { - $this->tags[$tag] = []; - } - - foreach ((array) $abstracts as $abstract) { - $this->tags[$tag][] = $abstract; - } - } - } - - /** - * Resolve all of the bindings for a given tag. - * - * @param string $tag - * @return array - */ - public function tagged($tag) - { - $results = []; - - if (isset($this->tags[$tag])) { - foreach ($this->tags[$tag] as $abstract) { - $results[] = $this->make($abstract); - } - } - - return $results; - } - - /** - * Alias a type to a different name. - * - * @param string $abstract - * @param string $alias - * @return void - */ - public function alias($abstract, $alias) - { - $this->aliases[$alias] = $abstract; - - $this->abstractAliases[$abstract][] = $alias; - } - - /** - * Bind a new callback to an abstract's rebind event. - * - * @param string $abstract - * @param \Closure $callback - * @return mixed - */ - public function rebinding($abstract, Closure $callback) - { - $this->reboundCallbacks[$abstract = $this->getAlias($abstract)][] = $callback; - - if ($this->bound($abstract)) { - return $this->make($abstract); - } - } - - /** - * Refresh an instance on the given target and method. - * - * @param string $abstract - * @param mixed $target - * @param string $method - * @return mixed - */ - public function refresh($abstract, $target, $method) - { - return $this->rebinding($abstract, function ($app, $instance) use ($target, $method) { - $target->{$method}($instance); - }); - } - - /** - * Fire the "rebound" callbacks for the given abstract type. - * - * @param string $abstract - * @return void - */ - protected function rebound($abstract) - { - $instance = $this->make($abstract); - - foreach ($this->getReboundCallbacks($abstract) as $callback) { - call_user_func($callback, $this, $instance); - } - } - - /** - * Get the rebound callbacks for a given type. - * - * @param string $abstract - * @return array - */ - protected function getReboundCallbacks($abstract) - { - if (isset($this->reboundCallbacks[$abstract])) { - return $this->reboundCallbacks[$abstract]; - } - - return []; - } - - /** - * Wrap the given closure such that its dependencies will be injected when executed. - * - * @param \Closure $callback - * @param array $parameters - * @return \Closure - */ - public function wrap(Closure $callback, array $parameters = []) - { - return function () use ($callback, $parameters) { - return $this->call($callback, $parameters); - }; - } - - /** - * Call the given Closure / class@method and inject its dependencies. - * - * @param callable|string $callback - * @param array $parameters - * @param string|null $defaultMethod - * @return mixed - */ - public function call($callback, array $parameters = [], $defaultMethod = null) - { - return BoundMethod::call($this, $callback, $parameters, $defaultMethod); - } - - /** - * Get a closure to resolve the given type from the container. - * - * @param string $abstract - * @return \Closure - */ - public function factory($abstract) - { - return function () use ($abstract) { - return $this->make($abstract); - }; - } - - /** - * An alias function name for make(). - * - * @param string $abstract - * @param array $parameters - * @return mixed - */ - public function makeWith($abstract, array $parameters = []) - { - return $this->make($abstract, $parameters); - } - - /** - * Resolve the given type from the container. - * - * @param string $abstract - * @param array $parameters - * @return mixed - */ - public function make($abstract, array $parameters = []) - { - return $this->resolve($abstract, $parameters); - } - - /** - * {@inheritdoc} - */ - public function get($id) - { - if ($this->has($id)) { - return $this->resolve($id); - } - - throw new EntryNotFoundException; - } - - /** - * Resolve the given type from the container. - * - * @param string $abstract - * @param array $parameters - * @return mixed - */ - protected function resolve($abstract, $parameters = []) - { - $abstract = $this->getAlias($abstract); - - $needsContextualBuild = ! empty($parameters) || ! is_null( - $this->getContextualConcrete($abstract) - ); - - // If an instance of the type is currently being managed as a singleton we'll - // just return an existing instance instead of instantiating new instances - // so the developer can keep using the same objects instance every time. - if (isset($this->instances[$abstract]) && ! $needsContextualBuild) { - return $this->instances[$abstract]; - } - - $this->with[] = $parameters; - - $concrete = $this->getConcrete($abstract); - - // We're ready to instantiate an instance of the concrete type registered for - // the binding. This will instantiate the types, as well as resolve any of - // its "nested" dependencies recursively until all have gotten resolved. - if ($this->isBuildable($concrete, $abstract)) { - $object = $this->build($concrete); - } else { - $object = $this->make($concrete); - } - - // If we defined any extenders for this type, we'll need to spin through them - // and apply them to the object being built. This allows for the extension - // of services, such as changing configuration or decorating the object. - foreach ($this->getExtenders($abstract) as $extender) { - $object = $extender($object, $this); - } - - // If the requested type is registered as a singleton we'll want to cache off - // the instances in "memory" so we can return it later without creating an - // entirely new instance of an object on each subsequent request for it. - if ($this->isShared($abstract) && ! $needsContextualBuild) { - $this->instances[$abstract] = $object; - } - - $this->fireResolvingCallbacks($abstract, $object); - - // Before returning, we will also set the resolved flag to "true" and pop off - // the parameter overrides for this build. After those two things are done - // we will be ready to return back the fully constructed class instance. - $this->resolved[$abstract] = true; - - array_pop($this->with); - - return $object; - } - - /** - * Get the concrete type for a given abstract. - * - * @param string $abstract - * @return mixed $concrete - */ - protected function getConcrete($abstract) - { - if (! is_null($concrete = $this->getContextualConcrete($abstract))) { - return $concrete; - } - - // If we don't have a registered resolver or concrete for the type, we'll just - // assume each type is a concrete name and will attempt to resolve it as is - // since the container should be able to resolve concretes automatically. - if (isset($this->bindings[$abstract])) { - return $this->bindings[$abstract]['concrete']; - } - - return $abstract; - } - - /** - * Get the contextual concrete binding for the given abstract. - * - * @param string $abstract - * @return string|null - */ - protected function getContextualConcrete($abstract) - { - if (! is_null($binding = $this->findInContextualBindings($abstract))) { - return $binding; - } - - // Next we need to see if a contextual binding might be bound under an alias of the - // given abstract type. So, we will need to check if any aliases exist with this - // type and then spin through them and check for contextual bindings on these. - if (empty($this->abstractAliases[$abstract])) { - return; - } - - foreach ($this->abstractAliases[$abstract] as $alias) { - if (! is_null($binding = $this->findInContextualBindings($alias))) { - return $binding; - } - } - } - - /** - * Find the concrete binding for the given abstract in the contextual binding array. - * - * @param string $abstract - * @return string|null - */ - protected function findInContextualBindings($abstract) - { - if (isset($this->contextual[end($this->buildStack)][$abstract])) { - return $this->contextual[end($this->buildStack)][$abstract]; - } - } - - /** - * Determine if the given concrete is buildable. - * - * @param mixed $concrete - * @param string $abstract - * @return bool - */ - protected function isBuildable($concrete, $abstract) - { - return $concrete === $abstract || $concrete instanceof Closure; - } - - /** - * Instantiate a concrete instance of the given type. - * - * @param string $concrete - * @return mixed - * - * @throws \Illuminate\Contracts\Container\BindingResolutionException - */ - public function build($concrete) - { - // If the concrete type is actually a Closure, we will just execute it and - // hand back the results of the functions, which allows functions to be - // used as resolvers for more fine-tuned resolution of these objects. - if ($concrete instanceof Closure) { - return $concrete($this, $this->getLastParameterOverride()); - } - - $reflector = new ReflectionClass($concrete); - - // If the type is not instantiable, the developer is attempting to resolve - // an abstract type such as an Interface of Abstract Class and there is - // no binding registered for the abstractions so we need to bail out. - if (! $reflector->isInstantiable()) { - return $this->notInstantiable($concrete); - } - - $this->buildStack[] = $concrete; - - $constructor = $reflector->getConstructor(); - - // If there are no constructors, that means there are no dependencies then - // we can just resolve the instances of the objects right away, without - // resolving any other types or dependencies out of these containers. - if (is_null($constructor)) { - array_pop($this->buildStack); - - return new $concrete; - } - - $dependencies = $constructor->getParameters(); - - // Once we have all the constructor's parameters we can create each of the - // dependency instances and then use the reflection instances to make a - // new instance of this class, injecting the created dependencies in. - $instances = $this->resolveDependencies( - $dependencies - ); - - array_pop($this->buildStack); - - return $reflector->newInstanceArgs($instances); - } - - /** - * Resolve all of the dependencies from the ReflectionParameters. - * - * @param array $dependencies - * @return array - */ - protected function resolveDependencies(array $dependencies) - { - $results = []; - - foreach ($dependencies as $dependency) { - // If this dependency has a override for this particular build we will use - // that instead as the value. Otherwise, we will continue with this run - // of resolutions and let reflection attempt to determine the result. - if ($this->hasParameterOverride($dependency)) { - $results[] = $this->getParameterOverride($dependency); - - continue; - } - - // If the class is null, it means the dependency is a string or some other - // primitive type which we can not resolve since it is not a class and - // we will just bomb out with an error since we have no-where to go. - $results[] = is_null($dependency->getClass()) - ? $this->resolvePrimitive($dependency) - : $this->resolveClass($dependency); - } - - return $results; - } - - /** - * Determine if the given dependency has a parameter override. - * - * @param \ReflectionParameter $dependency - * @return bool - */ - protected function hasParameterOverride($dependency) - { - return array_key_exists( - $dependency->name, $this->getLastParameterOverride() - ); - } - - /** - * Get a parameter override for a dependency. - * - * @param \ReflectionParameter $dependency - * @return mixed - */ - protected function getParameterOverride($dependency) - { - return $this->getLastParameterOverride()[$dependency->name]; - } - - /** - * Get the last parameter override. - * - * @return array - */ - protected function getLastParameterOverride() - { - return count($this->with) ? end($this->with) : []; - } - - /** - * Resolve a non-class hinted primitive dependency. - * - * @param \ReflectionParameter $parameter - * @return mixed - * - * @throws \Illuminate\Contracts\Container\BindingResolutionException - */ - protected function resolvePrimitive(ReflectionParameter $parameter) - { - if (! is_null($concrete = $this->getContextualConcrete('$'.$parameter->name))) { - return $concrete instanceof Closure ? $concrete($this) : $concrete; - } - - if ($parameter->isDefaultValueAvailable()) { - return $parameter->getDefaultValue(); - } - - $this->unresolvablePrimitive($parameter); - } - - /** - * Resolve a class based dependency from the container. - * - * @param \ReflectionParameter $parameter - * @return mixed - * - * @throws \Illuminate\Contracts\Container\BindingResolutionException - */ - protected function resolveClass(ReflectionParameter $parameter) - { - try { - return $this->make($parameter->getClass()->name); - } - - // If we can not resolve the class instance, we will check to see if the value - // is optional, and if it is we will return the optional parameter value as - // the value of the dependency, similarly to how we do this with scalars. - catch (BindingResolutionException $e) { - if ($parameter->isOptional()) { - return $parameter->getDefaultValue(); - } - - throw $e; - } - } - - /** - * Throw an exception that the concrete is not instantiable. - * - * @param string $concrete - * @return void - * - * @throws \Illuminate\Contracts\Container\BindingResolutionException - */ - protected function notInstantiable($concrete) - { - if (! empty($this->buildStack)) { - $previous = implode(', ', $this->buildStack); - - $message = "Target [$concrete] is not instantiable while building [$previous]."; - } else { - $message = "Target [$concrete] is not instantiable."; - } - - throw new BindingResolutionException($message); - } - - /** - * Throw an exception for an unresolvable primitive. - * - * @param \ReflectionParameter $parameter - * @return void - * - * @throws \Illuminate\Contracts\Container\BindingResolutionException - */ - protected function unresolvablePrimitive(ReflectionParameter $parameter) - { - $message = "Unresolvable dependency resolving [$parameter] in class {$parameter->getDeclaringClass()->getName()}"; - - throw new BindingResolutionException($message); - } - - /** - * Register a new resolving callback. - * - * @param \Closure|string $abstract - * @param \Closure|null $callback - * @return void - */ - public function resolving($abstract, Closure $callback = null) - { - if (is_string($abstract)) { - $abstract = $this->getAlias($abstract); - } - - if (is_null($callback) && $abstract instanceof Closure) { - $this->globalResolvingCallbacks[] = $abstract; - } else { - $this->resolvingCallbacks[$abstract][] = $callback; - } - } - - /** - * Register a new after resolving callback for all types. - * - * @param \Closure|string $abstract - * @param \Closure|null $callback - * @return void - */ - public function afterResolving($abstract, Closure $callback = null) - { - if (is_string($abstract)) { - $abstract = $this->getAlias($abstract); - } - - if ($abstract instanceof Closure && is_null($callback)) { - $this->globalAfterResolvingCallbacks[] = $abstract; - } else { - $this->afterResolvingCallbacks[$abstract][] = $callback; - } - } - - /** - * Fire all of the resolving callbacks. - * - * @param string $abstract - * @param mixed $object - * @return void - */ - protected function fireResolvingCallbacks($abstract, $object) - { - $this->fireCallbackArray($object, $this->globalResolvingCallbacks); - - $this->fireCallbackArray( - $object, $this->getCallbacksForType($abstract, $object, $this->resolvingCallbacks) - ); - - $this->fireAfterResolvingCallbacks($abstract, $object); - } - - /** - * Fire all of the after resolving callbacks. - * - * @param string $abstract - * @param mixed $object - * @return void - */ - protected function fireAfterResolvingCallbacks($abstract, $object) - { - $this->fireCallbackArray($object, $this->globalAfterResolvingCallbacks); - - $this->fireCallbackArray( - $object, $this->getCallbacksForType($abstract, $object, $this->afterResolvingCallbacks) - ); - } - - /** - * Get all callbacks for a given type. - * - * @param string $abstract - * @param object $object - * @param array $callbacksPerType - * - * @return array - */ - protected function getCallbacksForType($abstract, $object, array $callbacksPerType) - { - $results = []; - - foreach ($callbacksPerType as $type => $callbacks) { - if ($type === $abstract || $object instanceof $type) { - $results = array_merge($results, $callbacks); - } - } - - return $results; - } - - /** - * Fire an array of callbacks with an object. - * - * @param mixed $object - * @param array $callbacks - * @return void - */ - protected function fireCallbackArray($object, array $callbacks) - { - foreach ($callbacks as $callback) { - $callback($object, $this); - } - } - - /** - * Get the container's bindings. - * - * @return array - */ - public function getBindings() - { - return $this->bindings; - } - - /** - * Get the alias for an abstract if available. - * - * @param string $abstract - * @return string - * - * @throws \LogicException - */ - public function getAlias($abstract) - { - if (! isset($this->aliases[$abstract])) { - return $abstract; - } - - if ($this->aliases[$abstract] === $abstract) { - throw new LogicException("[{$abstract}] is aliased to itself."); - } - - return $this->getAlias($this->aliases[$abstract]); - } - - /** - * Get the extender callbacks for a given type. - * - * @param string $abstract - * @return array - */ - protected function getExtenders($abstract) - { - $abstract = $this->getAlias($abstract); - - if (isset($this->extenders[$abstract])) { - return $this->extenders[$abstract]; - } - - return []; - } - - /** - * Remove all of the extender callbacks for a given type. - * - * @param string $abstract - * @return void - */ - public function forgetExtenders($abstract) - { - unset($this->extenders[$this->getAlias($abstract)]); - } - - /** - * Drop all of the stale instances and aliases. - * - * @param string $abstract - * @return void - */ - protected function dropStaleInstances($abstract) - { - unset($this->instances[$abstract], $this->aliases[$abstract]); - } - - /** - * Remove a resolved instance from the instance cache. - * - * @param string $abstract - * @return void - */ - public function forgetInstance($abstract) - { - unset($this->instances[$abstract]); - } - - /** - * Clear all of the instances from the container. - * - * @return void - */ - public function forgetInstances() - { - $this->instances = []; - } - - /** - * Flush the container of all bindings and resolved instances. - * - * @return void - */ - public function flush() - { - $this->aliases = []; - $this->resolved = []; - $this->bindings = []; - $this->instances = []; - $this->abstractAliases = []; - } - - /** - * Set the globally available instance of the container. - * - * @return static - */ - public static function getInstance() - { - if (is_null(static::$instance)) { - static::$instance = new static; - } - - return static::$instance; - } - - /** - * Set the shared instance of the container. - * - * @param \Illuminate\Contracts\Container\Container|null $container - * @return \Illuminate\Contracts\Container\Container|static - */ - public static function setInstance(ContainerContract $container = null) - { - return static::$instance = $container; - } - - /** - * Determine if a given offset exists. - * - * @param string $key - * @return bool - */ - public function offsetExists($key) - { - return $this->bound($key); - } - - /** - * Get the value at a given offset. - * - * @param string $key - * @return mixed - */ - public function offsetGet($key) - { - return $this->make($key); - } - - /** - * Set the value at a given offset. - * - * @param string $key - * @param mixed $value - * @return void - */ - public function offsetSet($key, $value) - { - $this->bind($key, $value instanceof Closure ? $value : function () use ($value) { - return $value; - }); - } - - /** - * Unset the value at a given offset. - * - * @param string $key - * @return void - */ - public function offsetUnset($key) - { - unset($this->bindings[$key], $this->instances[$key], $this->resolved[$key]); - } - - /** - * Dynamically access container services. - * - * @param string $key - * @return mixed - */ - public function __get($key) - { - return $this[$key]; - } - - /** - * Dynamically set container services. - * - * @param string $key - * @param mixed $value - * @return void - */ - public function __set($key, $value) - { - $this[$key] = $value; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Container/ContextualBindingBuilder.php b/vendor/laravel/framework/src/Illuminate/Container/ContextualBindingBuilder.php deleted file mode 100644 index 58b70cee..00000000 --- a/vendor/laravel/framework/src/Illuminate/Container/ContextualBindingBuilder.php +++ /dev/null @@ -1,68 +0,0 @@ -concrete = $concrete; - $this->container = $container; - } - - /** - * Define the abstract target that depends on the context. - * - * @param string $abstract - * @return $this - */ - public function needs($abstract) - { - $this->needs = $abstract; - - return $this; - } - - /** - * Define the implementation for the contextual binding. - * - * @param \Closure|string $implementation - * @return void - */ - public function give($implementation) - { - $this->container->addContextualBinding( - $this->concrete, $this->needs, $implementation - ); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Container/EntryNotFoundException.php b/vendor/laravel/framework/src/Illuminate/Container/EntryNotFoundException.php deleted file mode 100644 index 42669214..00000000 --- a/vendor/laravel/framework/src/Illuminate/Container/EntryNotFoundException.php +++ /dev/null @@ -1,11 +0,0 @@ -id = $id; - $this->class = $class; - $this->relations = $relations; - $this->connection = $connection; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Contracts/Debug/ExceptionHandler.php b/vendor/laravel/framework/src/Illuminate/Contracts/Debug/ExceptionHandler.php deleted file mode 100644 index e3f18a59..00000000 --- a/vendor/laravel/framework/src/Illuminate/Contracts/Debug/ExceptionHandler.php +++ /dev/null @@ -1,34 +0,0 @@ -getPathAndDomain($path, $domain, $secure, $sameSite); - - $time = ($minutes == 0) ? 0 : $this->availableAt($minutes * 60); - - return new Cookie($name, $value, $time, $path, $domain, $secure, $httpOnly, $raw, $sameSite); - } - - /** - * Create a cookie that lasts "forever" (five years). - * - * @param string $name - * @param string $value - * @param string $path - * @param string $domain - * @param bool|null $secure - * @param bool $httpOnly - * @param bool $raw - * @param string|null $sameSite - * @return \Symfony\Component\HttpFoundation\Cookie - */ - public function forever($name, $value, $path = null, $domain = null, $secure = null, $httpOnly = true, $raw = false, $sameSite = null) - { - return $this->make($name, $value, 2628000, $path, $domain, $secure, $httpOnly, $raw, $sameSite); - } - - /** - * Expire the given cookie. - * - * @param string $name - * @param string $path - * @param string $domain - * @return \Symfony\Component\HttpFoundation\Cookie - */ - public function forget($name, $path = null, $domain = null) - { - return $this->make($name, null, -2628000, $path, $domain); - } - - /** - * Determine if a cookie has been queued. - * - * @param string $key - * @return bool - */ - public function hasQueued($key) - { - return ! is_null($this->queued($key)); - } - - /** - * Get a queued cookie instance. - * - * @param string $key - * @param mixed $default - * @return \Symfony\Component\HttpFoundation\Cookie - */ - public function queued($key, $default = null) - { - return Arr::get($this->queued, $key, $default); - } - - /** - * Queue a cookie to send with the next response. - * - * @param array $parameters - * @return void - */ - public function queue(...$parameters) - { - if (head($parameters) instanceof Cookie) { - $cookie = head($parameters); - } else { - $cookie = call_user_func_array([$this, 'make'], $parameters); - } - - $this->queued[$cookie->getName()] = $cookie; - } - - /** - * Remove a cookie from the queue. - * - * @param string $name - * @return void - */ - public function unqueue($name) - { - unset($this->queued[$name]); - } - - /** - * Get the path and domain, or the default values. - * - * @param string $path - * @param string $domain - * @param bool|null $secure - * @param string $sameSite - * @return array - */ - protected function getPathAndDomain($path, $domain, $secure = null, $sameSite = null) - { - return [$path ?: $this->path, $domain ?: $this->domain, is_bool($secure) ? $secure : $this->secure, $sameSite ?: $this->sameSite]; - } - - /** - * Set the default path and domain for the jar. - * - * @param string $path - * @param string $domain - * @param bool $secure - * @param string $sameSite - * @return $this - */ - public function setDefaultPathAndDomain($path, $domain, $secure = false, $sameSite = null) - { - list($this->path, $this->domain, $this->secure, $this->sameSite) = [$path, $domain, $secure, $sameSite]; - - return $this; - } - - /** - * Get the cookies which have been queued for the next request. - * - * @return \Symfony\Component\HttpFoundation\Cookie[] - */ - public function getQueuedCookies() - { - return $this->queued; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Cookie/CookieServiceProvider.php b/vendor/laravel/framework/src/Illuminate/Cookie/CookieServiceProvider.php deleted file mode 100755 index 7c82dc14..00000000 --- a/vendor/laravel/framework/src/Illuminate/Cookie/CookieServiceProvider.php +++ /dev/null @@ -1,24 +0,0 @@ -app->singleton('cookie', function ($app) { - $config = $app->make('config')->get('session'); - - return (new CookieJar)->setDefaultPathAndDomain( - $config['path'], $config['domain'], $config['secure'], $config['same_site'] ?? null - ); - }); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/AddQueuedCookiesToResponse.php b/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/AddQueuedCookiesToResponse.php deleted file mode 100644 index 4caa5741..00000000 --- a/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/AddQueuedCookiesToResponse.php +++ /dev/null @@ -1,45 +0,0 @@ -cookies = $cookies; - } - - /** - * Handle an incoming request. - * - * @param \Illuminate\Http\Request $request - * @param \Closure $next - * @return mixed - */ - public function handle($request, Closure $next) - { - $response = $next($request); - - foreach ($this->cookies->getQueuedCookies() as $cookie) { - $response->headers->setCookie($cookie); - } - - return $response; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/EncryptCookies.php b/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/EncryptCookies.php deleted file mode 100644 index 5c289af0..00000000 --- a/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/EncryptCookies.php +++ /dev/null @@ -1,164 +0,0 @@ -encrypter = $encrypter; - } - - /** - * Disable encryption for the given cookie name(s). - * - * @param string|array $name - * @return void - */ - public function disableFor($name) - { - $this->except = array_merge($this->except, (array) $name); - } - - /** - * Handle an incoming request. - * - * @param \Illuminate\Http\Request $request - * @param \Closure $next - * @return \Symfony\Component\HttpFoundation\Response - */ - public function handle($request, Closure $next) - { - return $this->encrypt($next($this->decrypt($request))); - } - - /** - * Decrypt the cookies on the request. - * - * @param \Symfony\Component\HttpFoundation\Request $request - * @return \Symfony\Component\HttpFoundation\Request - */ - protected function decrypt(Request $request) - { - foreach ($request->cookies as $key => $cookie) { - if ($this->isDisabled($key)) { - continue; - } - - try { - $request->cookies->set($key, $this->decryptCookie($cookie)); - } catch (DecryptException $e) { - $request->cookies->set($key, null); - } - } - - return $request; - } - - /** - * Decrypt the given cookie and return the value. - * - * @param string|array $cookie - * @return string|array - */ - protected function decryptCookie($cookie) - { - return is_array($cookie) - ? $this->decryptArray($cookie) - : $this->encrypter->decrypt($cookie); - } - - /** - * Decrypt an array based cookie. - * - * @param array $cookie - * @return array - */ - protected function decryptArray(array $cookie) - { - $decrypted = []; - - foreach ($cookie as $key => $value) { - if (is_string($value)) { - $decrypted[$key] = $this->encrypter->decrypt($value); - } - } - - return $decrypted; - } - - /** - * Encrypt the cookies on an outgoing response. - * - * @param \Symfony\Component\HttpFoundation\Response $response - * @return \Symfony\Component\HttpFoundation\Response - */ - protected function encrypt(Response $response) - { - foreach ($response->headers->getCookies() as $cookie) { - if ($this->isDisabled($cookie->getName())) { - continue; - } - - $response->headers->setCookie($this->duplicate( - $cookie, $this->encrypter->encrypt($cookie->getValue()) - )); - } - - return $response; - } - - /** - * Duplicate a cookie with a new value. - * - * @param \Symfony\Component\HttpFoundation\Cookie $cookie - * @param mixed $value - * @return \Symfony\Component\HttpFoundation\Cookie - */ - protected function duplicate(Cookie $cookie, $value) - { - return new Cookie( - $cookie->getName(), $value, $cookie->getExpiresTime(), - $cookie->getPath(), $cookie->getDomain(), $cookie->isSecure(), - $cookie->isHttpOnly(), $cookie->isRaw(), $cookie->getSameSite() - ); - } - - /** - * Determine whether encryption has been disabled for the given cookie. - * - * @param string $name - * @return bool - */ - public function isDisabled($name) - { - return in_array($name, $this->except); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Cookie/composer.json b/vendor/laravel/framework/src/Illuminate/Cookie/composer.json deleted file mode 100755 index d46dd119..00000000 --- a/vendor/laravel/framework/src/Illuminate/Cookie/composer.json +++ /dev/null @@ -1,37 +0,0 @@ -{ - "name": "illuminate/cookie", - "description": "The Illuminate Cookie package.", - "license": "MIT", - "homepage": "https://laravel.com", - "support": { - "issues": "https://github.com/laravel/framework/issues", - "source": "https://github.com/laravel/framework" - }, - "authors": [ - { - "name": "Taylor Otwell", - "email": "taylor@laravel.com" - } - ], - "require": { - "php": "^7.1.3", - "illuminate/contracts": "5.6.*", - "illuminate/support": "5.6.*", - "symfony/http-foundation": "~4.0", - "symfony/http-kernel": "~4.0" - }, - "autoload": { - "psr-4": { - "Illuminate\\Cookie\\": "" - } - }, - "extra": { - "branch-alias": { - "dev-master": "5.6-dev" - } - }, - "config": { - "sort-packages": true - }, - "minimum-stability": "dev" -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/Capsule/Manager.php b/vendor/laravel/framework/src/Illuminate/Database/Capsule/Manager.php deleted file mode 100755 index b82a792c..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/Capsule/Manager.php +++ /dev/null @@ -1,201 +0,0 @@ -setupContainer($container ?: new Container); - - // Once we have the container setup, we will setup the default configuration - // options in the container "config" binding. This will make the database - // manager work correctly out of the box without extreme configuration. - $this->setupDefaultConfiguration(); - - $this->setupManager(); - } - - /** - * Setup the default database configuration options. - * - * @return void - */ - protected function setupDefaultConfiguration() - { - $this->container['config']['database.fetch'] = PDO::FETCH_OBJ; - - $this->container['config']['database.default'] = 'default'; - } - - /** - * Build the database manager instance. - * - * @return void - */ - protected function setupManager() - { - $factory = new ConnectionFactory($this->container); - - $this->manager = new DatabaseManager($this->container, $factory); - } - - /** - * Get a connection instance from the global manager. - * - * @param string $connection - * @return \Illuminate\Database\Connection - */ - public static function connection($connection = null) - { - return static::$instance->getConnection($connection); - } - - /** - * Get a fluent query builder instance. - * - * @param string $table - * @param string $connection - * @return \Illuminate\Database\Query\Builder - */ - public static function table($table, $connection = null) - { - return static::$instance->connection($connection)->table($table); - } - - /** - * Get a schema builder instance. - * - * @param string $connection - * @return \Illuminate\Database\Schema\Builder - */ - public static function schema($connection = null) - { - return static::$instance->connection($connection)->getSchemaBuilder(); - } - - /** - * Get a registered connection instance. - * - * @param string $name - * @return \Illuminate\Database\Connection - */ - public function getConnection($name = null) - { - return $this->manager->connection($name); - } - - /** - * Register a connection with the manager. - * - * @param array $config - * @param string $name - * @return void - */ - public function addConnection(array $config, $name = 'default') - { - $connections = $this->container['config']['database.connections']; - - $connections[$name] = $config; - - $this->container['config']['database.connections'] = $connections; - } - - /** - * Bootstrap Eloquent so it is ready for usage. - * - * @return void - */ - public function bootEloquent() - { - Eloquent::setConnectionResolver($this->manager); - - // If we have an event dispatcher instance, we will go ahead and register it - // with the Eloquent ORM, allowing for model callbacks while creating and - // updating "model" instances; however, it is not necessary to operate. - if ($dispatcher = $this->getEventDispatcher()) { - Eloquent::setEventDispatcher($dispatcher); - } - } - - /** - * Set the fetch mode for the database connections. - * - * @param int $fetchMode - * @return $this - */ - public function setFetchMode($fetchMode) - { - $this->container['config']['database.fetch'] = $fetchMode; - - return $this; - } - - /** - * Get the database manager instance. - * - * @return \Illuminate\Database\DatabaseManager - */ - public function getDatabaseManager() - { - return $this->manager; - } - - /** - * Get the current event dispatcher instance. - * - * @return \Illuminate\Contracts\Events\Dispatcher|null - */ - public function getEventDispatcher() - { - if ($this->container->bound('events')) { - return $this->container['events']; - } - } - - /** - * Set the event dispatcher instance to be used by connections. - * - * @param \Illuminate\Contracts\Events\Dispatcher $dispatcher - * @return void - */ - public function setEventDispatcher(Dispatcher $dispatcher) - { - $this->container->instance('events', $dispatcher); - } - - /** - * Dynamically pass methods to the default connection. - * - * @param string $method - * @param array $parameters - * @return mixed - */ - public static function __callStatic($method, $parameters) - { - return static::connection()->$method(...$parameters); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/Concerns/BuildsQueries.php b/vendor/laravel/framework/src/Illuminate/Database/Concerns/BuildsQueries.php deleted file mode 100644 index 1051f2c9..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/Concerns/BuildsQueries.php +++ /dev/null @@ -1,161 +0,0 @@ -enforceOrderBy(); - - $page = 1; - - do { - // We'll execute the query for the given page and get the results. If there are - // no results we can just break and return from here. When there are results - // we will call the callback with the current chunk of these results here. - $results = $this->forPage($page, $count)->get(); - - $countResults = $results->count(); - - if ($countResults == 0) { - break; - } - - // On each chunk result set, we will pass them to the callback and then let the - // developer take care of everything within the callback, which allows us to - // keep the memory low for spinning through large result sets for working. - if ($callback($results, $page) === false) { - return false; - } - - unset($results); - - $page++; - } while ($countResults == $count); - - return true; - } - - /** - * Execute a callback over each item while chunking. - * - * @param callable $callback - * @param int $count - * @return bool - */ - public function each(callable $callback, $count = 1000) - { - return $this->chunk($count, function ($results) use ($callback) { - foreach ($results as $key => $value) { - if ($callback($value, $key) === false) { - return false; - } - } - }); - } - - /** - * Execute the query and get the first result. - * - * @param array $columns - * @return \Illuminate\Database\Eloquent\Model|object|static|null - */ - public function first($columns = ['*']) - { - return $this->take(1)->get($columns)->first(); - } - - /** - * Apply the callback's query changes if the given "value" is true. - * - * @param mixed $value - * @param callable $callback - * @param callable $default - * @return mixed - */ - public function when($value, $callback, $default = null) - { - if ($value) { - return $callback($this, $value) ?: $this; - } elseif ($default) { - return $default($this, $value) ?: $this; - } - - return $this; - } - - /** - * Pass the query to a given callback. - * - * @param \Closure $callback - * @return \Illuminate\Database\Query\Builder - */ - public function tap($callback) - { - return $this->when(true, $callback); - } - - /** - * Apply the callback's query changes if the given "value" is false. - * - * @param mixed $value - * @param callable $callback - * @param callable $default - * @return mixed - */ - public function unless($value, $callback, $default = null) - { - if (! $value) { - return $callback($this, $value) ?: $this; - } elseif ($default) { - return $default($this, $value) ?: $this; - } - - return $this; - } - - /** - * Create a new length-aware paginator instance. - * - * @param \Illuminate\Support\Collection $items - * @param int $total - * @param int $perPage - * @param int $currentPage - * @param array $options - * @return \Illuminate\Pagination\LengthAwarePaginator - */ - protected function paginator($items, $total, $perPage, $currentPage, $options) - { - return Container::getInstance()->makeWith(LengthAwarePaginator::class, compact( - 'items', 'total', 'perPage', 'currentPage', 'options' - )); - } - - /** - * Create a new simple paginator instance. - * - * @param \Illuminate\Support\Collection $items - * @param int $perPage - * @param int $currentPage - * @param array $options - * @return \Illuminate\Pagination\Paginator - */ - protected function simplePaginator($items, $perPage, $currentPage, $options) - { - return Container::getInstance()->makeWith(Paginator::class, compact( - 'items', 'perPage', 'currentPage', 'options' - )); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/Concerns/ManagesTransactions.php b/vendor/laravel/framework/src/Illuminate/Database/Concerns/ManagesTransactions.php deleted file mode 100644 index 1b731242..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/Concerns/ManagesTransactions.php +++ /dev/null @@ -1,219 +0,0 @@ -beginTransaction(); - - // We'll simply execute the given callback within a try / catch block and if we - // catch any exception we can rollback this transaction so that none of this - // gets actually persisted to a database or stored in a permanent fashion. - try { - return tap($callback($this), function ($result) { - $this->commit(); - }); - } - - // If we catch an exception we'll rollback this transaction and try again if we - // are not out of attempts. If we are out of attempts we will just throw the - // exception back out and let the developer handle an uncaught exceptions. - catch (Exception $e) { - $this->handleTransactionException( - $e, $currentAttempt, $attempts - ); - } catch (Throwable $e) { - $this->rollBack(); - - throw $e; - } - } - } - - /** - * Handle an exception encountered when running a transacted statement. - * - * @param \Exception $e - * @param int $currentAttempt - * @param int $maxAttempts - * @return void - * - * @throws \Exception - */ - protected function handleTransactionException($e, $currentAttempt, $maxAttempts) - { - // On a deadlock, MySQL rolls back the entire transaction so we can't just - // retry the query. We have to throw this exception all the way out and - // let the developer handle it in another way. We will decrement too. - if ($this->causedByDeadlock($e) && - $this->transactions > 1) { - $this->transactions--; - - throw $e; - } - - // If there was an exception we will rollback this transaction and then we - // can check if we have exceeded the maximum attempt count for this and - // if we haven't we will return and try this query again in our loop. - $this->rollBack(); - - if ($this->causedByDeadlock($e) && - $currentAttempt < $maxAttempts) { - return; - } - - throw $e; - } - - /** - * Start a new database transaction. - * - * @return void - * @throws \Exception - */ - public function beginTransaction() - { - $this->createTransaction(); - - $this->transactions++; - - $this->fireConnectionEvent('beganTransaction'); - } - - /** - * Create a transaction within the database. - * - * @return void - */ - protected function createTransaction() - { - if ($this->transactions == 0) { - try { - $this->getPdo()->beginTransaction(); - } catch (Exception $e) { - $this->handleBeginTransactionException($e); - } - } elseif ($this->transactions >= 1 && $this->queryGrammar->supportsSavepoints()) { - $this->createSavepoint(); - } - } - - /** - * Create a save point within the database. - * - * @return void - */ - protected function createSavepoint() - { - $this->getPdo()->exec( - $this->queryGrammar->compileSavepoint('trans'.($this->transactions + 1)) - ); - } - - /** - * Handle an exception from a transaction beginning. - * - * @param \Throwable $e - * @return void - * - * @throws \Exception - */ - protected function handleBeginTransactionException($e) - { - if ($this->causedByLostConnection($e)) { - $this->reconnect(); - - $this->pdo->beginTransaction(); - } else { - throw $e; - } - } - - /** - * Commit the active database transaction. - * - * @return void - */ - public function commit() - { - if ($this->transactions == 1) { - $this->getPdo()->commit(); - } - - $this->transactions = max(0, $this->transactions - 1); - - $this->fireConnectionEvent('committed'); - } - - /** - * Rollback the active database transaction. - * - * @param int|null $toLevel - * @return void - */ - public function rollBack($toLevel = null) - { - // We allow developers to rollback to a certain transaction level. We will verify - // that this given transaction level is valid before attempting to rollback to - // that level. If it's not we will just return out and not attempt anything. - $toLevel = is_null($toLevel) - ? $this->transactions - 1 - : $toLevel; - - if ($toLevel < 0 || $toLevel >= $this->transactions) { - return; - } - - // Next, we will actually perform this rollback within this database and fire the - // rollback event. We will also set the current transaction level to the given - // level that was passed into this method so it will be right from here out. - $this->performRollBack($toLevel); - - $this->transactions = $toLevel; - - $this->fireConnectionEvent('rollingBack'); - } - - /** - * Perform a rollback within the database. - * - * @param int $toLevel - * @return void - */ - protected function performRollBack($toLevel) - { - if ($toLevel == 0) { - $this->getPdo()->rollBack(); - } elseif ($this->queryGrammar->supportsSavepoints()) { - $this->getPdo()->exec( - $this->queryGrammar->compileSavepointRollBack('trans'.($toLevel + 1)) - ); - } - } - - /** - * Get the number of active transactions. - * - * @return int - */ - public function transactionLevel() - { - return $this->transactions; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/Connection.php b/vendor/laravel/framework/src/Illuminate/Database/Connection.php deleted file mode 100755 index 379256ec..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/Connection.php +++ /dev/null @@ -1,1248 +0,0 @@ -pdo = $pdo; - - // First we will setup the default properties. We keep track of the DB - // name we are connected to since it is needed when some reflective - // type commands are run such as checking whether a table exists. - $this->database = $database; - - $this->tablePrefix = $tablePrefix; - - $this->config = $config; - - // We need to initialize a query grammar and the query post processors - // which are both very important parts of the database abstractions - // so we initialize these to their default values while starting. - $this->useDefaultQueryGrammar(); - - $this->useDefaultPostProcessor(); - } - - /** - * Set the query grammar to the default implementation. - * - * @return void - */ - public function useDefaultQueryGrammar() - { - $this->queryGrammar = $this->getDefaultQueryGrammar(); - } - - /** - * Get the default query grammar instance. - * - * @return \Illuminate\Database\Query\Grammars\Grammar - */ - protected function getDefaultQueryGrammar() - { - return new QueryGrammar; - } - - /** - * Set the schema grammar to the default implementation. - * - * @return void - */ - public function useDefaultSchemaGrammar() - { - $this->schemaGrammar = $this->getDefaultSchemaGrammar(); - } - - /** - * Get the default schema grammar instance. - * - * @return \Illuminate\Database\Schema\Grammars\Grammar - */ - protected function getDefaultSchemaGrammar() - { - // - } - - /** - * Set the query post processor to the default implementation. - * - * @return void - */ - public function useDefaultPostProcessor() - { - $this->postProcessor = $this->getDefaultPostProcessor(); - } - - /** - * Get the default post processor instance. - * - * @return \Illuminate\Database\Query\Processors\Processor - */ - protected function getDefaultPostProcessor() - { - return new Processor; - } - - /** - * Get a schema builder instance for the connection. - * - * @return \Illuminate\Database\Schema\Builder - */ - public function getSchemaBuilder() - { - if (is_null($this->schemaGrammar)) { - $this->useDefaultSchemaGrammar(); - } - - return new SchemaBuilder($this); - } - - /** - * Begin a fluent query against a database table. - * - * @param string $table - * @return \Illuminate\Database\Query\Builder - */ - public function table($table) - { - return $this->query()->from($table); - } - - /** - * Get a new query builder instance. - * - * @return \Illuminate\Database\Query\Builder - */ - public function query() - { - return new QueryBuilder( - $this, $this->getQueryGrammar(), $this->getPostProcessor() - ); - } - - /** - * Run a select statement and return a single result. - * - * @param string $query - * @param array $bindings - * @param bool $useReadPdo - * @return mixed - */ - public function selectOne($query, $bindings = [], $useReadPdo = true) - { - $records = $this->select($query, $bindings, $useReadPdo); - - return array_shift($records); - } - - /** - * Run a select statement against the database. - * - * @param string $query - * @param array $bindings - * @return array - */ - public function selectFromWriteConnection($query, $bindings = []) - { - return $this->select($query, $bindings, false); - } - - /** - * Run a select statement against the database. - * - * @param string $query - * @param array $bindings - * @param bool $useReadPdo - * @return array - */ - public function select($query, $bindings = [], $useReadPdo = true) - { - return $this->run($query, $bindings, function ($query, $bindings) use ($useReadPdo) { - if ($this->pretending()) { - return []; - } - - // For select statements, we'll simply execute the query and return an array - // of the database result set. Each element in the array will be a single - // row from the database table, and will either be an array or objects. - $statement = $this->prepared($this->getPdoForSelect($useReadPdo) - ->prepare($query)); - - $this->bindValues($statement, $this->prepareBindings($bindings)); - - $statement->execute(); - - return $statement->fetchAll(); - }); - } - - /** - * Run a select statement against the database and returns a generator. - * - * @param string $query - * @param array $bindings - * @param bool $useReadPdo - * @return \Generator - */ - public function cursor($query, $bindings = [], $useReadPdo = true) - { - $statement = $this->run($query, $bindings, function ($query, $bindings) use ($useReadPdo) { - if ($this->pretending()) { - return []; - } - - // First we will create a statement for the query. Then, we will set the fetch - // mode and prepare the bindings for the query. Once that's done we will be - // ready to execute the query against the database and return the cursor. - $statement = $this->prepared($this->getPdoForSelect($useReadPdo) - ->prepare($query)); - - $this->bindValues( - $statement, $this->prepareBindings($bindings) - ); - - // Next, we'll execute the query against the database and return the statement - // so we can return the cursor. The cursor will use a PHP generator to give - // back one row at a time without using a bunch of memory to render them. - $statement->execute(); - - return $statement; - }); - - while ($record = $statement->fetch()) { - yield $record; - } - } - - /** - * Configure the PDO prepared statement. - * - * @param \PDOStatement $statement - * @return \PDOStatement - */ - protected function prepared(PDOStatement $statement) - { - $statement->setFetchMode($this->fetchMode); - - $this->event(new Events\StatementPrepared( - $this, $statement - )); - - return $statement; - } - - /** - * Get the PDO connection to use for a select query. - * - * @param bool $useReadPdo - * @return \PDO - */ - protected function getPdoForSelect($useReadPdo = true) - { - return $useReadPdo ? $this->getReadPdo() : $this->getPdo(); - } - - /** - * Run an insert statement against the database. - * - * @param string $query - * @param array $bindings - * @return bool - */ - public function insert($query, $bindings = []) - { - return $this->statement($query, $bindings); - } - - /** - * Run an update statement against the database. - * - * @param string $query - * @param array $bindings - * @return int - */ - public function update($query, $bindings = []) - { - return $this->affectingStatement($query, $bindings); - } - - /** - * Run a delete statement against the database. - * - * @param string $query - * @param array $bindings - * @return int - */ - public function delete($query, $bindings = []) - { - return $this->affectingStatement($query, $bindings); - } - - /** - * Execute an SQL statement and return the boolean result. - * - * @param string $query - * @param array $bindings - * @return bool - */ - public function statement($query, $bindings = []) - { - return $this->run($query, $bindings, function ($query, $bindings) { - if ($this->pretending()) { - return true; - } - - $statement = $this->getPdo()->prepare($query); - - $this->bindValues($statement, $this->prepareBindings($bindings)); - - $this->recordsHaveBeenModified(); - - return $statement->execute(); - }); - } - - /** - * Run an SQL statement and get the number of rows affected. - * - * @param string $query - * @param array $bindings - * @return int - */ - public function affectingStatement($query, $bindings = []) - { - return $this->run($query, $bindings, function ($query, $bindings) { - if ($this->pretending()) { - return 0; - } - - // For update or delete statements, we want to get the number of rows affected - // by the statement and return that back to the developer. We'll first need - // to execute the statement and then we'll use PDO to fetch the affected. - $statement = $this->getPdo()->prepare($query); - - $this->bindValues($statement, $this->prepareBindings($bindings)); - - $statement->execute(); - - $this->recordsHaveBeenModified( - ($count = $statement->rowCount()) > 0 - ); - - return $count; - }); - } - - /** - * Run a raw, unprepared query against the PDO connection. - * - * @param string $query - * @return bool - */ - public function unprepared($query) - { - return $this->run($query, [], function ($query) { - if ($this->pretending()) { - return true; - } - - $this->recordsHaveBeenModified( - $change = $this->getPdo()->exec($query) !== false - ); - - return $change; - }); - } - - /** - * Execute the given callback in "dry run" mode. - * - * @param \Closure $callback - * @return array - */ - public function pretend(Closure $callback) - { - return $this->withFreshQueryLog(function () use ($callback) { - $this->pretending = true; - - // Basically to make the database connection "pretend", we will just return - // the default values for all the query methods, then we will return an - // array of queries that were "executed" within the Closure callback. - $callback($this); - - $this->pretending = false; - - return $this->queryLog; - }); - } - - /** - * Execute the given callback in "dry run" mode. - * - * @param \Closure $callback - * @return array - */ - protected function withFreshQueryLog($callback) - { - $loggingQueries = $this->loggingQueries; - - // First we will back up the value of the logging queries property and then - // we'll be ready to run callbacks. This query log will also get cleared - // so we will have a new log of all the queries that are executed now. - $this->enableQueryLog(); - - $this->queryLog = []; - - // Now we'll execute this callback and capture the result. Once it has been - // executed we will restore the value of query logging and give back the - // value of hte callback so the original callers can have the results. - $result = $callback(); - - $this->loggingQueries = $loggingQueries; - - return $result; - } - - /** - * Bind values to their parameters in the given statement. - * - * @param \PDOStatement $statement - * @param array $bindings - * @return void - */ - public function bindValues($statement, $bindings) - { - foreach ($bindings as $key => $value) { - $statement->bindValue( - is_string($key) ? $key : $key + 1, $value, - is_int($value) ? PDO::PARAM_INT : PDO::PARAM_STR - ); - } - } - - /** - * Prepare the query bindings for execution. - * - * @param array $bindings - * @return array - */ - public function prepareBindings(array $bindings) - { - $grammar = $this->getQueryGrammar(); - - foreach ($bindings as $key => $value) { - // We need to transform all instances of DateTimeInterface into the actual - // date string. Each query grammar maintains its own date string format - // so we'll just ask the grammar for the format to get from the date. - if ($value instanceof DateTimeInterface) { - $bindings[$key] = $value->format($grammar->getDateFormat()); - } elseif (is_bool($value)) { - $bindings[$key] = (int) $value; - } - } - - return $bindings; - } - - /** - * Run a SQL statement and log its execution context. - * - * @param string $query - * @param array $bindings - * @param \Closure $callback - * @return mixed - * - * @throws \Illuminate\Database\QueryException - */ - protected function run($query, $bindings, Closure $callback) - { - $this->reconnectIfMissingConnection(); - - $start = microtime(true); - - // Here we will run this query. If an exception occurs we'll determine if it was - // caused by a connection that has been lost. If that is the cause, we'll try - // to re-establish connection and re-run the query with a fresh connection. - try { - $result = $this->runQueryCallback($query, $bindings, $callback); - } catch (QueryException $e) { - $result = $this->handleQueryException( - $e, $query, $bindings, $callback - ); - } - - // Once we have run the query we will calculate the time that it took to run and - // then log the query, bindings, and execution time so we will report them on - // the event that the developer needs them. We'll log time in milliseconds. - $this->logQuery( - $query, $bindings, $this->getElapsedTime($start) - ); - - return $result; - } - - /** - * Run a SQL statement. - * - * @param string $query - * @param array $bindings - * @param \Closure $callback - * @return mixed - * - * @throws \Illuminate\Database\QueryException - */ - protected function runQueryCallback($query, $bindings, Closure $callback) - { - // To execute the statement, we'll simply call the callback, which will actually - // run the SQL against the PDO connection. Then we can calculate the time it - // took to execute and log the query SQL, bindings and time in our memory. - try { - $result = $callback($query, $bindings); - } - - // If an exception occurs when attempting to run a query, we'll format the error - // message to include the bindings with SQL, which will make this exception a - // lot more helpful to the developer instead of just the database's errors. - catch (Exception $e) { - throw new QueryException( - $query, $this->prepareBindings($bindings), $e - ); - } - - return $result; - } - - /** - * Log a query in the connection's query log. - * - * @param string $query - * @param array $bindings - * @param float|null $time - * @return void - */ - public function logQuery($query, $bindings, $time = null) - { - $this->event(new QueryExecuted($query, $bindings, $time, $this)); - - if ($this->loggingQueries) { - $this->queryLog[] = compact('query', 'bindings', 'time'); - } - } - - /** - * Get the elapsed time since a given starting point. - * - * @param int $start - * @return float - */ - protected function getElapsedTime($start) - { - return round((microtime(true) - $start) * 1000, 2); - } - - /** - * Handle a query exception. - * - * @param \Exception $e - * @param string $query - * @param array $bindings - * @param \Closure $callback - * @return mixed - * @throws \Exception - */ - protected function handleQueryException($e, $query, $bindings, Closure $callback) - { - if ($this->transactions >= 1) { - throw $e; - } - - return $this->tryAgainIfCausedByLostConnection( - $e, $query, $bindings, $callback - ); - } - - /** - * Handle a query exception that occurred during query execution. - * - * @param \Illuminate\Database\QueryException $e - * @param string $query - * @param array $bindings - * @param \Closure $callback - * @return mixed - * - * @throws \Illuminate\Database\QueryException - */ - protected function tryAgainIfCausedByLostConnection(QueryException $e, $query, $bindings, Closure $callback) - { - if ($this->causedByLostConnection($e->getPrevious())) { - $this->reconnect(); - - return $this->runQueryCallback($query, $bindings, $callback); - } - - throw $e; - } - - /** - * Reconnect to the database. - * - * @return void - * - * @throws \LogicException - */ - public function reconnect() - { - if (is_callable($this->reconnector)) { - return call_user_func($this->reconnector, $this); - } - - throw new LogicException('Lost connection and no reconnector available.'); - } - - /** - * Reconnect to the database if a PDO connection is missing. - * - * @return void - */ - protected function reconnectIfMissingConnection() - { - if (is_null($this->pdo)) { - $this->reconnect(); - } - } - - /** - * Disconnect from the underlying PDO connection. - * - * @return void - */ - public function disconnect() - { - $this->setPdo(null)->setReadPdo(null); - } - - /** - * Register a database query listener with the connection. - * - * @param \Closure $callback - * @return void - */ - public function listen(Closure $callback) - { - if (isset($this->events)) { - $this->events->listen(Events\QueryExecuted::class, $callback); - } - } - - /** - * Fire an event for this connection. - * - * @param string $event - * @return array|null - */ - protected function fireConnectionEvent($event) - { - if (! isset($this->events)) { - return; - } - - switch ($event) { - case 'beganTransaction': - return $this->events->dispatch(new Events\TransactionBeginning($this)); - case 'committed': - return $this->events->dispatch(new Events\TransactionCommitted($this)); - case 'rollingBack': - return $this->events->dispatch(new Events\TransactionRolledBack($this)); - } - } - - /** - * Fire the given event if possible. - * - * @param mixed $event - * @return void - */ - protected function event($event) - { - if (isset($this->events)) { - $this->events->dispatch($event); - } - } - - /** - * Get a new raw query expression. - * - * @param mixed $value - * @return \Illuminate\Database\Query\Expression - */ - public function raw($value) - { - return new Expression($value); - } - - /** - * Indicate if any records have been modified. - * - * @param bool $value - * @return void - */ - public function recordsHaveBeenModified($value = true) - { - if (! $this->recordsModified) { - $this->recordsModified = $value; - } - } - - /** - * Is Doctrine available? - * - * @return bool - */ - public function isDoctrineAvailable() - { - return class_exists('Doctrine\DBAL\Connection'); - } - - /** - * Get a Doctrine Schema Column instance. - * - * @param string $table - * @param string $column - * @return \Doctrine\DBAL\Schema\Column - */ - public function getDoctrineColumn($table, $column) - { - $schema = $this->getDoctrineSchemaManager(); - - return $schema->listTableDetails($table)->getColumn($column); - } - - /** - * Get the Doctrine DBAL schema manager for the connection. - * - * @return \Doctrine\DBAL\Schema\AbstractSchemaManager - */ - public function getDoctrineSchemaManager() - { - return $this->getDoctrineDriver()->getSchemaManager($this->getDoctrineConnection()); - } - - /** - * Get the Doctrine DBAL database connection instance. - * - * @return \Doctrine\DBAL\Connection - */ - public function getDoctrineConnection() - { - if (is_null($this->doctrineConnection)) { - $driver = $this->getDoctrineDriver(); - - $this->doctrineConnection = new DoctrineConnection([ - 'pdo' => $this->getPdo(), - 'dbname' => $this->getConfig('database'), - 'driver' => $driver->getName(), - ], $driver); - } - - return $this->doctrineConnection; - } - - /** - * Get the current PDO connection. - * - * @return \PDO - */ - public function getPdo() - { - if ($this->pdo instanceof Closure) { - return $this->pdo = call_user_func($this->pdo); - } - - return $this->pdo; - } - - /** - * Get the current PDO connection used for reading. - * - * @return \PDO - */ - public function getReadPdo() - { - if ($this->transactions > 0) { - return $this->getPdo(); - } - - if ($this->recordsModified && $this->getConfig('sticky')) { - return $this->getPdo(); - } - - if ($this->readPdo instanceof Closure) { - return $this->readPdo = call_user_func($this->readPdo); - } - - return $this->readPdo ?: $this->getPdo(); - } - - /** - * Set the PDO connection. - * - * @param \PDO|\Closure|null $pdo - * @return $this - */ - public function setPdo($pdo) - { - $this->transactions = 0; - - $this->pdo = $pdo; - - return $this; - } - - /** - * Set the PDO connection used for reading. - * - * @param \PDO|\Closure|null $pdo - * @return $this - */ - public function setReadPdo($pdo) - { - $this->readPdo = $pdo; - - return $this; - } - - /** - * Set the reconnect instance on the connection. - * - * @param callable $reconnector - * @return $this - */ - public function setReconnector(callable $reconnector) - { - $this->reconnector = $reconnector; - - return $this; - } - - /** - * Get the database connection name. - * - * @return string|null - */ - public function getName() - { - return $this->getConfig('name'); - } - - /** - * Get an option from the configuration options. - * - * @param string|null $option - * @return mixed - */ - public function getConfig($option = null) - { - return Arr::get($this->config, $option); - } - - /** - * Get the PDO driver name. - * - * @return string - */ - public function getDriverName() - { - return $this->getConfig('driver'); - } - - /** - * Get the query grammar used by the connection. - * - * @return \Illuminate\Database\Query\Grammars\Grammar - */ - public function getQueryGrammar() - { - return $this->queryGrammar; - } - - /** - * Set the query grammar used by the connection. - * - * @param \Illuminate\Database\Query\Grammars\Grammar $grammar - * @return void - */ - public function setQueryGrammar(Query\Grammars\Grammar $grammar) - { - $this->queryGrammar = $grammar; - } - - /** - * Get the schema grammar used by the connection. - * - * @return \Illuminate\Database\Schema\Grammars\Grammar - */ - public function getSchemaGrammar() - { - return $this->schemaGrammar; - } - - /** - * Set the schema grammar used by the connection. - * - * @param \Illuminate\Database\Schema\Grammars\Grammar $grammar - * @return void - */ - public function setSchemaGrammar(Schema\Grammars\Grammar $grammar) - { - $this->schemaGrammar = $grammar; - } - - /** - * Get the query post processor used by the connection. - * - * @return \Illuminate\Database\Query\Processors\Processor - */ - public function getPostProcessor() - { - return $this->postProcessor; - } - - /** - * Set the query post processor used by the connection. - * - * @param \Illuminate\Database\Query\Processors\Processor $processor - * @return void - */ - public function setPostProcessor(Processor $processor) - { - $this->postProcessor = $processor; - } - - /** - * Get the event dispatcher used by the connection. - * - * @return \Illuminate\Contracts\Events\Dispatcher - */ - public function getEventDispatcher() - { - return $this->events; - } - - /** - * Set the event dispatcher instance on the connection. - * - * @param \Illuminate\Contracts\Events\Dispatcher $events - * @return void - */ - public function setEventDispatcher(Dispatcher $events) - { - $this->events = $events; - } - - /** - * Unset the event dispatcher for this connection. - * - * @return void - */ - public function unsetEventDispatcher() - { - $this->events = null; - } - - /** - * Determine if the connection in a "dry run". - * - * @return bool - */ - public function pretending() - { - return $this->pretending === true; - } - - /** - * Get the connection query log. - * - * @return array - */ - public function getQueryLog() - { - return $this->queryLog; - } - - /** - * Clear the query log. - * - * @return void - */ - public function flushQueryLog() - { - $this->queryLog = []; - } - - /** - * Enable the query log on the connection. - * - * @return void - */ - public function enableQueryLog() - { - $this->loggingQueries = true; - } - - /** - * Disable the query log on the connection. - * - * @return void - */ - public function disableQueryLog() - { - $this->loggingQueries = false; - } - - /** - * Determine whether we're logging queries. - * - * @return bool - */ - public function logging() - { - return $this->loggingQueries; - } - - /** - * Get the name of the connected database. - * - * @return string - */ - public function getDatabaseName() - { - return $this->database; - } - - /** - * Set the name of the connected database. - * - * @param string $database - * @return string - */ - public function setDatabaseName($database) - { - $this->database = $database; - } - - /** - * Get the table prefix for the connection. - * - * @return string - */ - public function getTablePrefix() - { - return $this->tablePrefix; - } - - /** - * Set the table prefix in use by the connection. - * - * @param string $prefix - * @return void - */ - public function setTablePrefix($prefix) - { - $this->tablePrefix = $prefix; - - $this->getQueryGrammar()->setTablePrefix($prefix); - } - - /** - * Set the table prefix and return the grammar. - * - * @param \Illuminate\Database\Grammar $grammar - * @return \Illuminate\Database\Grammar - */ - public function withTablePrefix(Grammar $grammar) - { - $grammar->setTablePrefix($this->tablePrefix); - - return $grammar; - } - - /** - * Register a connection resolver. - * - * @param string $driver - * @param \Closure $callback - * @return void - */ - public static function resolverFor($driver, Closure $callback) - { - static::$resolvers[$driver] = $callback; - } - - /** - * Get the connection resolver for the given driver. - * - * @param string $driver - * @return mixed - */ - public static function getResolver($driver) - { - return static::$resolvers[$driver] ?? null; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/ConnectionInterface.php b/vendor/laravel/framework/src/Illuminate/Database/ConnectionInterface.php deleted file mode 100755 index 9262d6fd..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/ConnectionInterface.php +++ /dev/null @@ -1,150 +0,0 @@ - $connection) { - $this->addConnection($name, $connection); - } - } - - /** - * Get a database connection instance. - * - * @param string $name - * @return \Illuminate\Database\ConnectionInterface - */ - public function connection($name = null) - { - if (is_null($name)) { - $name = $this->getDefaultConnection(); - } - - return $this->connections[$name]; - } - - /** - * Add a connection to the resolver. - * - * @param string $name - * @param \Illuminate\Database\ConnectionInterface $connection - * @return void - */ - public function addConnection($name, ConnectionInterface $connection) - { - $this->connections[$name] = $connection; - } - - /** - * Check if a connection has been registered. - * - * @param string $name - * @return bool - */ - public function hasConnection($name) - { - return isset($this->connections[$name]); - } - - /** - * Get the default connection name. - * - * @return string - */ - public function getDefaultConnection() - { - return $this->default; - } - - /** - * Set the default connection name. - * - * @param string $name - * @return void - */ - public function setDefaultConnection($name) - { - $this->default = $name; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/ConnectionResolverInterface.php b/vendor/laravel/framework/src/Illuminate/Database/ConnectionResolverInterface.php deleted file mode 100755 index eb0397a5..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/ConnectionResolverInterface.php +++ /dev/null @@ -1,29 +0,0 @@ -container = $container; - } - - /** - * Establish a PDO connection based on the configuration. - * - * @param array $config - * @param string $name - * @return \Illuminate\Database\Connection - */ - public function make(array $config, $name = null) - { - $config = $this->parseConfig($config, $name); - - if (isset($config['read'])) { - return $this->createReadWriteConnection($config); - } - - return $this->createSingleConnection($config); - } - - /** - * Parse and prepare the database configuration. - * - * @param array $config - * @param string $name - * @return array - */ - protected function parseConfig(array $config, $name) - { - return Arr::add(Arr::add($config, 'prefix', ''), 'name', $name); - } - - /** - * Create a single database connection instance. - * - * @param array $config - * @return \Illuminate\Database\Connection - */ - protected function createSingleConnection(array $config) - { - $pdo = $this->createPdoResolver($config); - - return $this->createConnection( - $config['driver'], $pdo, $config['database'], $config['prefix'], $config - ); - } - - /** - * Create a single database connection instance. - * - * @param array $config - * @return \Illuminate\Database\Connection - */ - protected function createReadWriteConnection(array $config) - { - $connection = $this->createSingleConnection($this->getWriteConfig($config)); - - return $connection->setReadPdo($this->createReadPdo($config)); - } - - /** - * Create a new PDO instance for reading. - * - * @param array $config - * @return \Closure - */ - protected function createReadPdo(array $config) - { - return $this->createPdoResolver($this->getReadConfig($config)); - } - - /** - * Get the read configuration for a read / write connection. - * - * @param array $config - * @return array - */ - protected function getReadConfig(array $config) - { - return $this->mergeReadWriteConfig( - $config, $this->getReadWriteConfig($config, 'read') - ); - } - - /** - * Get the read configuration for a read / write connection. - * - * @param array $config - * @return array - */ - protected function getWriteConfig(array $config) - { - return $this->mergeReadWriteConfig( - $config, $this->getReadWriteConfig($config, 'write') - ); - } - - /** - * Get a read / write level configuration. - * - * @param array $config - * @param string $type - * @return array - */ - protected function getReadWriteConfig(array $config, $type) - { - return isset($config[$type][0]) - ? Arr::random($config[$type]) - : $config[$type]; - } - - /** - * Merge a configuration for a read / write connection. - * - * @param array $config - * @param array $merge - * @return array - */ - protected function mergeReadWriteConfig(array $config, array $merge) - { - return Arr::except(array_merge($config, $merge), ['read', 'write']); - } - - /** - * Create a new Closure that resolves to a PDO instance. - * - * @param array $config - * @return \Closure - */ - protected function createPdoResolver(array $config) - { - return array_key_exists('host', $config) - ? $this->createPdoResolverWithHosts($config) - : $this->createPdoResolverWithoutHosts($config); - } - - /** - * Create a new Closure that resolves to a PDO instance with a specific host or an array of hosts. - * - * @param array $config - * @return \Closure - */ - protected function createPdoResolverWithHosts(array $config) - { - return function () use ($config) { - foreach (Arr::shuffle($hosts = $this->parseHosts($config)) as $key => $host) { - $config['host'] = $host; - - try { - return $this->createConnector($config)->connect($config); - } catch (PDOException $e) { - continue; - } - } - - throw $e; - }; - } - - /** - * Parse the hosts configuration item into an array. - * - * @param array $config - * @return array - */ - protected function parseHosts(array $config) - { - $hosts = Arr::wrap($config['host']); - - if (empty($hosts)) { - throw new InvalidArgumentException('Database hosts array is empty.'); - } - - return $hosts; - } - - /** - * Create a new Closure that resolves to a PDO instance where there is no configured host. - * - * @param array $config - * @return \Closure - */ - protected function createPdoResolverWithoutHosts(array $config) - { - return function () use ($config) { - return $this->createConnector($config)->connect($config); - }; - } - - /** - * Create a connector instance based on the configuration. - * - * @param array $config - * @return \Illuminate\Database\Connectors\ConnectorInterface - * - * @throws \InvalidArgumentException - */ - public function createConnector(array $config) - { - if (! isset($config['driver'])) { - throw new InvalidArgumentException('A driver must be specified.'); - } - - if ($this->container->bound($key = "db.connector.{$config['driver']}")) { - return $this->container->make($key); - } - - switch ($config['driver']) { - case 'mysql': - return new MySqlConnector; - case 'pgsql': - return new PostgresConnector; - case 'sqlite': - return new SQLiteConnector; - case 'sqlsrv': - return new SqlServerConnector; - } - - throw new InvalidArgumentException("Unsupported driver [{$config['driver']}]"); - } - - /** - * Create a new connection instance. - * - * @param string $driver - * @param \PDO|\Closure $connection - * @param string $database - * @param string $prefix - * @param array $config - * @return \Illuminate\Database\Connection - * - * @throws \InvalidArgumentException - */ - protected function createConnection($driver, $connection, $database, $prefix = '', array $config = []) - { - if ($resolver = Connection::getResolver($driver)) { - return $resolver($connection, $database, $prefix, $config); - } - - switch ($driver) { - case 'mysql': - return new MySqlConnection($connection, $database, $prefix, $config); - case 'pgsql': - return new PostgresConnection($connection, $database, $prefix, $config); - case 'sqlite': - return new SQLiteConnection($connection, $database, $prefix, $config); - case 'sqlsrv': - return new SqlServerConnection($connection, $database, $prefix, $config); - } - - throw new InvalidArgumentException("Unsupported driver [{$driver}]"); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php b/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php deleted file mode 100755 index 4a2c82fb..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php +++ /dev/null @@ -1,137 +0,0 @@ - PDO::CASE_NATURAL, - PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, - PDO::ATTR_ORACLE_NULLS => PDO::NULL_NATURAL, - PDO::ATTR_STRINGIFY_FETCHES => false, - PDO::ATTR_EMULATE_PREPARES => false, - ]; - - /** - * Create a new PDO connection. - * - * @param string $dsn - * @param array $config - * @param array $options - * @return \PDO - */ - public function createConnection($dsn, array $config, array $options) - { - list($username, $password) = [ - $config['username'] ?? null, $config['password'] ?? null, - ]; - - try { - return $this->createPdoConnection( - $dsn, $username, $password, $options - ); - } catch (Exception $e) { - return $this->tryAgainIfCausedByLostConnection( - $e, $dsn, $username, $password, $options - ); - } - } - - /** - * Create a new PDO connection instance. - * - * @param string $dsn - * @param string $username - * @param string $password - * @param array $options - * @return \PDO - */ - protected function createPdoConnection($dsn, $username, $password, $options) - { - if (class_exists(PDOConnection::class) && ! $this->isPersistentConnection($options)) { - return new PDOConnection($dsn, $username, $password, $options); - } - - return new PDO($dsn, $username, $password, $options); - } - - /** - * Determine if the connection is persistent. - * - * @param array $options - * @return bool - */ - protected function isPersistentConnection($options) - { - return isset($options[PDO::ATTR_PERSISTENT]) && - $options[PDO::ATTR_PERSISTENT]; - } - - /** - * Handle an exception that occurred during connect execution. - * - * @param \Throwable $e - * @param string $dsn - * @param string $username - * @param string $password - * @param array $options - * @return \PDO - * - * @throws \Exception - */ - protected function tryAgainIfCausedByLostConnection(Throwable $e, $dsn, $username, $password, $options) - { - if ($this->causedByLostConnection($e)) { - return $this->createPdoConnection($dsn, $username, $password, $options); - } - - throw $e; - } - - /** - * Get the PDO options based on the configuration. - * - * @param array $config - * @return array - */ - public function getOptions(array $config) - { - $options = $config['options'] ?? []; - - return array_diff_key($this->options, $options) + $options; - } - - /** - * Get the default PDO connection options. - * - * @return array - */ - public function getDefaultOptions() - { - return $this->options; - } - - /** - * Set the default PDO connection options. - * - * @param array $options - * @return void - */ - public function setDefaultOptions(array $options) - { - $this->options = $options; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectorInterface.php b/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectorInterface.php deleted file mode 100755 index 08597ac0..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectorInterface.php +++ /dev/null @@ -1,14 +0,0 @@ -getDsn($config); - - $options = $this->getOptions($config); - - // We need to grab the PDO options that should be used while making the brand - // new connection instance. The PDO options control various aspects of the - // connection's behavior, and some might be specified by the developers. - $connection = $this->createConnection($dsn, $config, $options); - - if (! empty($config['database'])) { - $connection->exec("use `{$config['database']}`;"); - } - - $this->configureEncoding($connection, $config); - - // Next, we will check to see if a timezone has been specified in this config - // and if it has we will issue a statement to modify the timezone with the - // database. Setting this DB timezone is an optional configuration item. - $this->configureTimezone($connection, $config); - - $this->setModes($connection, $config); - - return $connection; - } - - /** - * Set the connection character set and collation. - * - * @param \PDO $connection - * @param array $config - * @return void - */ - protected function configureEncoding($connection, array $config) - { - if (! isset($config['charset'])) { - return $connection; - } - - $connection->prepare( - "set names '{$config['charset']}'".$this->getCollation($config) - )->execute(); - } - - /** - * Get the collation for the configuration. - * - * @param array $config - * @return string - */ - protected function getCollation(array $config) - { - return isset($config['collation']) ? " collate '{$config['collation']}'" : ''; - } - - /** - * Set the timezone on the connection. - * - * @param \PDO $connection - * @param array $config - * @return void - */ - protected function configureTimezone($connection, array $config) - { - if (isset($config['timezone'])) { - $connection->prepare('set time_zone="'.$config['timezone'].'"')->execute(); - } - } - - /** - * Create a DSN string from a configuration. - * - * Chooses socket or host/port based on the 'unix_socket' config value. - * - * @param array $config - * @return string - */ - protected function getDsn(array $config) - { - return $this->hasSocket($config) - ? $this->getSocketDsn($config) - : $this->getHostDsn($config); - } - - /** - * Determine if the given configuration array has a UNIX socket value. - * - * @param array $config - * @return bool - */ - protected function hasSocket(array $config) - { - return isset($config['unix_socket']) && ! empty($config['unix_socket']); - } - - /** - * Get the DSN string for a socket configuration. - * - * @param array $config - * @return string - */ - protected function getSocketDsn(array $config) - { - return "mysql:unix_socket={$config['unix_socket']};dbname={$config['database']}"; - } - - /** - * Get the DSN string for a host / port configuration. - * - * @param array $config - * @return string - */ - protected function getHostDsn(array $config) - { - extract($config, EXTR_SKIP); - - return isset($port) - ? "mysql:host={$host};port={$port};dbname={$database}" - : "mysql:host={$host};dbname={$database}"; - } - - /** - * Set the modes for the connection. - * - * @param \PDO $connection - * @param array $config - * @return void - */ - protected function setModes(PDO $connection, array $config) - { - if (isset($config['modes'])) { - $this->setCustomModes($connection, $config); - } elseif (isset($config['strict'])) { - if ($config['strict']) { - $connection->prepare($this->strictMode($connection))->execute(); - } else { - $connection->prepare("set session sql_mode='NO_ENGINE_SUBSTITUTION'")->execute(); - } - } - } - - /** - * Set the custom modes on the connection. - * - * @param \PDO $connection - * @param array $config - * @return void - */ - protected function setCustomModes(PDO $connection, array $config) - { - $modes = implode(',', $config['modes']); - - $connection->prepare("set session sql_mode='{$modes}'")->execute(); - } - - /** - * Get the query to enable strict mode. - * - * @param \PDO $connection - * @return string - */ - protected function strictMode(PDO $connection) - { - if (version_compare($connection->getAttribute(PDO::ATTR_SERVER_VERSION), '8.0.11') >= 0) { - return "set session sql_mode='ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION'"; - } - - return "set session sql_mode='ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'"; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php b/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php deleted file mode 100755 index 5129b4b4..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php +++ /dev/null @@ -1,174 +0,0 @@ - PDO::CASE_NATURAL, - PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, - PDO::ATTR_ORACLE_NULLS => PDO::NULL_NATURAL, - PDO::ATTR_STRINGIFY_FETCHES => false, - ]; - - /** - * Establish a database connection. - * - * @param array $config - * @return \PDO - */ - public function connect(array $config) - { - // First we'll create the basic DSN and connection instance connecting to the - // using the configuration option specified by the developer. We will also - // set the default character set on the connections to UTF-8 by default. - $connection = $this->createConnection( - $this->getDsn($config), $config, $this->getOptions($config) - ); - - $this->configureEncoding($connection, $config); - - // Next, we will check to see if a timezone has been specified in this config - // and if it has we will issue a statement to modify the timezone with the - // database. Setting this DB timezone is an optional configuration item. - $this->configureTimezone($connection, $config); - - $this->configureSchema($connection, $config); - - // Postgres allows an application_name to be set by the user and this name is - // used to when monitoring the application with pg_stat_activity. So we'll - // determine if the option has been specified and run a statement if so. - $this->configureApplicationName($connection, $config); - - return $connection; - } - - /** - * Set the connection character set and collation. - * - * @param \PDO $connection - * @param array $config - * @return void - */ - protected function configureEncoding($connection, $config) - { - $charset = $config['charset']; - - $connection->prepare("set names '$charset'")->execute(); - } - - /** - * Set the timezone on the connection. - * - * @param \PDO $connection - * @param array $config - * @return void - */ - protected function configureTimezone($connection, array $config) - { - if (isset($config['timezone'])) { - $timezone = $config['timezone']; - - $connection->prepare("set time zone '{$timezone}'")->execute(); - } - } - - /** - * Set the schema on the connection. - * - * @param \PDO $connection - * @param array $config - * @return void - */ - protected function configureSchema($connection, $config) - { - if (isset($config['schema'])) { - $schema = $this->formatSchema($config['schema']); - - $connection->prepare("set search_path to {$schema}")->execute(); - } - } - - /** - * Format the schema for the DSN. - * - * @param array|string $schema - * @return string - */ - protected function formatSchema($schema) - { - if (is_array($schema)) { - return '"'.implode('", "', $schema).'"'; - } - - return '"'.$schema.'"'; - } - - /** - * Set the schema on the connection. - * - * @param \PDO $connection - * @param array $config - * @return void - */ - protected function configureApplicationName($connection, $config) - { - if (isset($config['application_name'])) { - $applicationName = $config['application_name']; - - $connection->prepare("set application_name to '$applicationName'")->execute(); - } - } - - /** - * Create a DSN string from a configuration. - * - * @param array $config - * @return string - */ - protected function getDsn(array $config) - { - // First we will create the basic DSN setup as well as the port if it is in - // in the configuration options. This will give us the basic DSN we will - // need to establish the PDO connections and return them back for use. - extract($config, EXTR_SKIP); - - $host = isset($host) ? "host={$host};" : ''; - - $dsn = "pgsql:{$host}dbname={$database}"; - - // If a port was specified, we will add it to this Postgres DSN connections - // format. Once we have done that we are ready to return this connection - // string back out for usage, as this has been fully constructed here. - if (isset($config['port'])) { - $dsn .= ";port={$port}"; - } - - return $this->addSslOptions($dsn, $config); - } - - /** - * Add the SSL options to the DSN. - * - * @param string $dsn - * @param array $config - * @return string - */ - protected function addSslOptions($dsn, array $config) - { - foreach (['sslmode', 'sslcert', 'sslkey', 'sslrootcert'] as $option) { - if (isset($config[$option])) { - $dsn .= ";{$option}={$config[$option]}"; - } - } - - return $dsn; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/Connectors/SQLiteConnector.php b/vendor/laravel/framework/src/Illuminate/Database/Connectors/SQLiteConnector.php deleted file mode 100755 index ae8e4e76..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/Connectors/SQLiteConnector.php +++ /dev/null @@ -1,39 +0,0 @@ -getOptions($config); - - // SQLite supports "in-memory" databases that only last as long as the owning - // connection does. These are useful for tests or for short lifetime store - // querying. In-memory databases may only have a single open connection. - if ($config['database'] == ':memory:') { - return $this->createConnection('sqlite::memory:', $config, $options); - } - - $path = realpath($config['database']); - - // Here we'll verify that the SQLite database exists before going any further - // as the developer probably wants to know if the database exists and this - // SQLite driver will not throw any exception if it does not by default. - if ($path === false) { - throw new InvalidArgumentException("Database ({$config['database']}) does not exist."); - } - - return $this->createConnection("sqlite:{$path}", $config, $options); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/Connectors/SqlServerConnector.php b/vendor/laravel/framework/src/Illuminate/Database/Connectors/SqlServerConnector.php deleted file mode 100755 index 87525d12..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/Connectors/SqlServerConnector.php +++ /dev/null @@ -1,183 +0,0 @@ - PDO::CASE_NATURAL, - PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, - PDO::ATTR_ORACLE_NULLS => PDO::NULL_NATURAL, - PDO::ATTR_STRINGIFY_FETCHES => false, - ]; - - /** - * Establish a database connection. - * - * @param array $config - * @return \PDO - */ - public function connect(array $config) - { - $options = $this->getOptions($config); - - return $this->createConnection($this->getDsn($config), $config, $options); - } - - /** - * Create a DSN string from a configuration. - * - * @param array $config - * @return string - */ - protected function getDsn(array $config) - { - // First we will create the basic DSN setup as well as the port if it is in - // in the configuration options. This will give us the basic DSN we will - // need to establish the PDO connections and return them back for use. - if (in_array('dblib', $this->getAvailableDrivers())) { - return $this->getDblibDsn($config); - } elseif ($this->prefersOdbc($config)) { - return $this->getOdbcDsn($config); - } - - return $this->getSqlSrvDsn($config); - } - - /** - * Determine if the database configuration prefers ODBC. - * - * @param array $config - * @return bool - */ - protected function prefersOdbc(array $config) - { - return in_array('odbc', $this->getAvailableDrivers()) && - ($config['odbc'] ?? null) === true; - } - - /** - * Get the DSN string for a DbLib connection. - * - * @param array $config - * @return string - */ - protected function getDblibDsn(array $config) - { - return $this->buildConnectString('dblib', array_merge([ - 'host' => $this->buildHostString($config, ':'), - 'dbname' => $config['database'], - ], Arr::only($config, ['appname', 'charset', 'version']))); - } - - /** - * Get the DSN string for an ODBC connection. - * - * @param array $config - * @return string - */ - protected function getOdbcDsn(array $config) - { - return isset($config['odbc_datasource_name']) - ? 'odbc:'.$config['odbc_datasource_name'] : ''; - } - - /** - * Get the DSN string for a SqlSrv connection. - * - * @param array $config - * @return string - */ - protected function getSqlSrvDsn(array $config) - { - $arguments = [ - 'Server' => $this->buildHostString($config, ','), - ]; - - if (isset($config['database'])) { - $arguments['Database'] = $config['database']; - } - - if (isset($config['readonly'])) { - $arguments['ApplicationIntent'] = 'ReadOnly'; - } - - if (isset($config['pooling']) && $config['pooling'] === false) { - $arguments['ConnectionPooling'] = '0'; - } - - if (isset($config['appname'])) { - $arguments['APP'] = $config['appname']; - } - - if (isset($config['encrypt'])) { - $arguments['Encrypt'] = $config['encrypt']; - } - - if (isset($config['trust_server_certificate'])) { - $arguments['TrustServerCertificate'] = $config['trust_server_certificate']; - } - - if (isset($config['multiple_active_result_sets']) && $config['multiple_active_result_sets'] === false) { - $arguments['MultipleActiveResultSets'] = 'false'; - } - - if (isset($config['transaction_isolation'])) { - $arguments['TransactionIsolation'] = $config['transaction_isolation']; - } - - if (isset($config['multi_subnet_failover'])) { - $arguments['MultiSubnetFailover'] = $config['multi_subnet_failover']; - } - - return $this->buildConnectString('sqlsrv', $arguments); - } - - /** - * Build a connection string from the given arguments. - * - * @param string $driver - * @param array $arguments - * @return string - */ - protected function buildConnectString($driver, array $arguments) - { - return $driver.':'.implode(';', array_map(function ($key) use ($arguments) { - return sprintf('%s=%s', $key, $arguments[$key]); - }, array_keys($arguments))); - } - - /** - * Build a host string from the given configuration. - * - * @param array $config - * @param string $separator - * @return string - */ - protected function buildHostString(array $config, $separator) - { - if (isset($config['port']) && ! empty($config['port'])) { - return $config['host'].$separator.$config['port']; - } else { - return $config['host']; - } - } - - /** - * Get the available PDO drivers. - * - * @return array - */ - protected function getAvailableDrivers() - { - return PDO::getAvailableDrivers(); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/Console/Factories/FactoryMakeCommand.php b/vendor/laravel/framework/src/Illuminate/Database/Console/Factories/FactoryMakeCommand.php deleted file mode 100644 index 86341594..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/Console/Factories/FactoryMakeCommand.php +++ /dev/null @@ -1,84 +0,0 @@ -option('model') - ? $this->qualifyClass($this->option('model')) - : 'Model'; - - return str_replace( - 'DummyModel', $model, parent::buildClass($name) - ); - } - - /** - * Get the destination class path. - * - * @param string $name - * @return string - */ - protected function getPath($name) - { - $name = str_replace( - ['\\', '/'], '', $this->argument('name') - ); - - return $this->laravel->databasePath()."/factories/{$name}.php"; - } - - /** - * Get the console command options. - * - * @return array - */ - protected function getOptions() - { - return [ - ['model', 'm', InputOption::VALUE_OPTIONAL, 'The name of the model'], - ]; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/Console/Factories/stubs/factory.stub b/vendor/laravel/framework/src/Illuminate/Database/Console/Factories/stubs/factory.stub deleted file mode 100644 index 9e3f90b6..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/Console/Factories/stubs/factory.stub +++ /dev/null @@ -1,9 +0,0 @@ -define(DummyModel::class, function (Faker $faker) { - return [ - // - ]; -}); diff --git a/vendor/laravel/framework/src/Illuminate/Database/Console/Migrations/BaseCommand.php b/vendor/laravel/framework/src/Illuminate/Database/Console/Migrations/BaseCommand.php deleted file mode 100755 index 6c4f2550..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/Console/Migrations/BaseCommand.php +++ /dev/null @@ -1,51 +0,0 @@ -input->hasOption('path') && $this->option('path')) { - return collect($this->option('path'))->map(function ($path) { - return ! $this->usingRealPath() - ? $this->laravel->basePath().'/'.$path - : $path; - })->all(); - } - - return array_merge( - $this->migrator->paths(), [$this->getMigrationPath()] - ); - } - - /** - * Determine if the given path(s) are pre-resolved "real" paths. - * - * @return bool - */ - protected function usingRealPath() - { - return $this->input->hasOption('realpath') && $this->option('realpath'); - } - - /** - * Get the path to the migration directory. - * - * @return string - */ - protected function getMigrationPath() - { - return $this->laravel->databasePath().DIRECTORY_SEPARATOR.'migrations'; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/Console/Migrations/FreshCommand.php b/vendor/laravel/framework/src/Illuminate/Database/Console/Migrations/FreshCommand.php deleted file mode 100644 index f23d7654..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/Console/Migrations/FreshCommand.php +++ /dev/null @@ -1,136 +0,0 @@ -confirmToProceed()) { - return; - } - - $database = $this->input->getOption('database'); - - if ($this->option('drop-views')) { - $this->dropAllViews($database); - - $this->info('Dropped all views successfully.'); - } - - $this->dropAllTables($database); - - $this->info('Dropped all tables successfully.'); - - $this->call('migrate', [ - '--database' => $database, - '--path' => $this->input->getOption('path'), - '--realpath' => $this->input->getOption('realpath'), - '--force' => true, - ]); - - if ($this->needsSeeding()) { - $this->runSeeder($database); - } - } - - /** - * Drop all of the database tables. - * - * @param string $database - * @return void - */ - protected function dropAllTables($database) - { - $this->laravel['db']->connection($database) - ->getSchemaBuilder() - ->dropAllTables(); - } - - /** - * Drop all of the database views. - * - * @param string $database - * @return void - */ - protected function dropAllViews($database) - { - $this->laravel['db']->connection($database) - ->getSchemaBuilder() - ->dropAllViews(); - } - - /** - * Determine if the developer has requested database seeding. - * - * @return bool - */ - protected function needsSeeding() - { - return $this->option('seed') || $this->option('seeder'); - } - - /** - * Run the database seeder command. - * - * @param string $database - * @return void - */ - protected function runSeeder($database) - { - $this->call('db:seed', [ - '--database' => $database, - '--class' => $this->option('seeder') ?: 'DatabaseSeeder', - '--force' => $this->option('force'), - ]); - } - - /** - * Get the console command options. - * - * @return array - */ - protected function getOptions() - { - return [ - ['database', null, InputOption::VALUE_OPTIONAL, 'The database connection to use.'], - - ['drop-views', null, InputOption::VALUE_NONE, 'Drop all tables and views.'], - - ['force', null, InputOption::VALUE_NONE, 'Force the operation to run when in production.'], - - ['path', null, InputOption::VALUE_OPTIONAL, 'The path to the migrations files to be executed.'], - - ['realpath', null, InputOption::VALUE_NONE, 'Indicate any provided migration file paths are pre-resolved absolute paths.'], - - ['seed', null, InputOption::VALUE_NONE, 'Indicates if the seed task should be re-run.'], - - ['seeder', null, InputOption::VALUE_OPTIONAL, 'The class name of the root seeder.'], - ]; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/Console/Migrations/InstallCommand.php b/vendor/laravel/framework/src/Illuminate/Database/Console/Migrations/InstallCommand.php deleted file mode 100755 index d9200240..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/Console/Migrations/InstallCommand.php +++ /dev/null @@ -1,70 +0,0 @@ -repository = $repository; - } - - /** - * Execute the console command. - * - * @return void - */ - public function handle() - { - $this->repository->setSource($this->input->getOption('database')); - - $this->repository->createRepository(); - - $this->info('Migration table created successfully.'); - } - - /** - * Get the console command options. - * - * @return array - */ - protected function getOptions() - { - return [ - ['database', null, InputOption::VALUE_OPTIONAL, 'The database connection to use.'], - ]; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/Console/Migrations/MigrateCommand.php b/vendor/laravel/framework/src/Illuminate/Database/Console/Migrations/MigrateCommand.php deleted file mode 100755 index dbeaed41..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/Console/Migrations/MigrateCommand.php +++ /dev/null @@ -1,103 +0,0 @@ -migrator = $migrator; - } - - /** - * Execute the console command. - * - * @return void - */ - public function handle() - { - if (! $this->confirmToProceed()) { - return; - } - - $this->prepareDatabase(); - - // Next, we will check to see if a path option has been defined. If it has - // we will use the path relative to the root of this installation folder - // so that migrations may be run for any path within the applications. - $this->migrator->run($this->getMigrationPaths(), [ - 'pretend' => $this->option('pretend'), - 'step' => $this->option('step'), - ]); - - // Once the migrator has run we will grab the note output and send it out to - // the console screen, since the migrator itself functions without having - // any instances of the OutputInterface contract passed into the class. - foreach ($this->migrator->getNotes() as $note) { - $this->output->writeln($note); - } - - // Finally, if the "seed" option has been given, we will re-run the database - // seed task to re-populate the database, which is convenient when adding - // a migration and a seed at the same time, as it is only this command. - if ($this->option('seed')) { - $this->call('db:seed', ['--force' => true]); - } - } - - /** - * Prepare the migration database for running. - * - * @return void - */ - protected function prepareDatabase() - { - $this->migrator->setConnection($this->option('database')); - - if (! $this->migrator->repositoryExists()) { - $this->call( - 'migrate:install', ['--database' => $this->option('database')] - ); - } - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/Console/Migrations/MigrateMakeCommand.php b/vendor/laravel/framework/src/Illuminate/Database/Console/Migrations/MigrateMakeCommand.php deleted file mode 100644 index cb6ff823..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/Console/Migrations/MigrateMakeCommand.php +++ /dev/null @@ -1,140 +0,0 @@ -creator = $creator; - $this->composer = $composer; - } - - /** - * Execute the console command. - * - * @return void - */ - public function handle() - { - // It's possible for the developer to specify the tables to modify in this - // schema operation. The developer may also specify if this table needs - // to be freshly created so we can create the appropriate migrations. - $name = Str::snake(trim($this->input->getArgument('name'))); - - $table = $this->input->getOption('table'); - - $create = $this->input->getOption('create') ?: false; - - // If no table was given as an option but a create option is given then we - // will use the "create" option as the table name. This allows the devs - // to pass a table name into this option as a short-cut for creating. - if (! $table && is_string($create)) { - $table = $create; - - $create = true; - } - - // Next, we will attempt to guess the table name if this the migration has - // "create" in the name. This will allow us to provide a convenient way - // of creating migrations that create new tables for the application. - if (! $table) { - [$table, $create] = TableGuesser::guess($name); - } - - // Now we are ready to write the migration out to disk. Once we've written - // the migration out, we will dump-autoload for the entire framework to - // make sure that the migrations are registered by the class loaders. - $this->writeMigration($name, $table, $create); - - $this->composer->dumpAutoloads(); - } - - /** - * Write the migration file to disk. - * - * @param string $name - * @param string $table - * @param bool $create - * @return string - */ - protected function writeMigration($name, $table, $create) - { - $file = pathinfo($this->creator->create( - $name, $this->getMigrationPath(), $table, $create - ), PATHINFO_FILENAME); - - $this->line("Created Migration: {$file}"); - } - - /** - * Get migration path (either specified by '--path' option or default location). - * - * @return string - */ - protected function getMigrationPath() - { - if (! is_null($targetPath = $this->input->getOption('path'))) { - return ! $this->usingRealPath() - ? $this->laravel->basePath().'/'.$targetPath - : $targetPath; - } - - return parent::getMigrationPath(); - } - - /** - * Determine if the given path(s) are pre-resolved "real" paths. - * - * @return bool - */ - protected function usingRealPath() - { - return $this->input->hasOption('realpath') && $this->option('realpath'); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/Console/Migrations/RefreshCommand.php b/vendor/laravel/framework/src/Illuminate/Database/Console/Migrations/RefreshCommand.php deleted file mode 100755 index 8041483e..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/Console/Migrations/RefreshCommand.php +++ /dev/null @@ -1,159 +0,0 @@ -confirmToProceed()) { - return; - } - - // Next we'll gather some of the options so that we can have the right options - // to pass to the commands. This includes options such as which database to - // use and the path to use for the migration. Then we'll run the command. - $database = $this->input->getOption('database'); - - $path = $this->input->getOption('path'); - - $force = $this->input->getOption('force'); - - // If the "step" option is specified it means we only want to rollback a small - // number of migrations before migrating again. For example, the user might - // only rollback and remigrate the latest four migrations instead of all. - $step = $this->input->getOption('step') ?: 0; - - if ($step > 0) { - $this->runRollback($database, $path, $step, $force); - } else { - $this->runReset($database, $path, $force); - } - - // The refresh command is essentially just a brief aggregate of a few other of - // the migration commands and just provides a convenient wrapper to execute - // them in succession. We'll also see if we need to re-seed the database. - $this->call('migrate', [ - '--database' => $database, - '--path' => $path, - '--realpath' => $this->input->getOption('realpath'), - '--force' => $force, - ]); - - if ($this->needsSeeding()) { - $this->runSeeder($database); - } - } - - /** - * Run the rollback command. - * - * @param string $database - * @param string $path - * @param bool $step - * @param bool $force - * @return void - */ - protected function runRollback($database, $path, $step, $force) - { - $this->call('migrate:rollback', [ - '--database' => $database, - '--path' => $path, - '--realpath' => $this->input->getOption('realpath'), - '--step' => $step, - '--force' => $force, - ]); - } - - /** - * Run the reset command. - * - * @param string $database - * @param string $path - * @param bool $force - * @return void - */ - protected function runReset($database, $path, $force) - { - $this->call('migrate:reset', [ - '--database' => $database, - '--path' => $path, - '--realpath' => $this->input->getOption('realpath'), - '--force' => $force, - ]); - } - - /** - * Determine if the developer has requested database seeding. - * - * @return bool - */ - protected function needsSeeding() - { - return $this->option('seed') || $this->option('seeder'); - } - - /** - * Run the database seeder command. - * - * @param string $database - * @return void - */ - protected function runSeeder($database) - { - $this->call('db:seed', [ - '--database' => $database, - '--class' => $this->option('seeder') ?: 'DatabaseSeeder', - '--force' => $this->option('force'), - ]); - } - - /** - * Get the console command options. - * - * @return array - */ - protected function getOptions() - { - return [ - ['database', null, InputOption::VALUE_OPTIONAL, 'The database connection to use.'], - - ['force', null, InputOption::VALUE_NONE, 'Force the operation to run when in production.'], - - ['path', null, InputOption::VALUE_OPTIONAL, 'The path to the migrations files to be executed.'], - - ['realpath', null, InputOption::VALUE_NONE, 'Indicate any provided migration file paths are pre-resolved absolute paths.'], - - ['seed', null, InputOption::VALUE_NONE, 'Indicates if the seed task should be re-run.'], - - ['seeder', null, InputOption::VALUE_OPTIONAL, 'The class name of the root seeder.'], - - ['step', null, InputOption::VALUE_OPTIONAL, 'The number of migrations to be reverted & re-run.'], - ]; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/Console/Migrations/ResetCommand.php b/vendor/laravel/framework/src/Illuminate/Database/Console/Migrations/ResetCommand.php deleted file mode 100755 index c887ac49..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/Console/Migrations/ResetCommand.php +++ /dev/null @@ -1,98 +0,0 @@ -migrator = $migrator; - } - - /** - * Execute the console command. - * - * @return void - */ - public function handle() - { - if (! $this->confirmToProceed()) { - return; - } - - $this->migrator->setConnection($this->option('database')); - - // First, we'll make sure that the migration table actually exists before we - // start trying to rollback and re-run all of the migrations. If it's not - // present we'll just bail out with an info message for the developers. - if (! $this->migrator->repositoryExists()) { - return $this->comment('Migration table not found.'); - } - - $this->migrator->reset( - $this->getMigrationPaths(), $this->option('pretend') - ); - - // Once the migrator has run we will grab the note output and send it out to - // the console screen, since the migrator itself functions without having - // any instances of the OutputInterface contract passed into the class. - foreach ($this->migrator->getNotes() as $note) { - $this->output->writeln($note); - } - } - - /** - * Get the console command options. - * - * @return array - */ - protected function getOptions() - { - return [ - ['database', null, InputOption::VALUE_OPTIONAL, 'The database connection to use.'], - - ['force', null, InputOption::VALUE_NONE, 'Force the operation to run when in production.'], - - ['path', null, InputOption::VALUE_OPTIONAL | InputOption::VALUE_IS_ARRAY, 'The path(s) to the migrations files to be executed.'], - - ['realpath', null, InputOption::VALUE_NONE, 'Indicate any provided migration file paths are pre-resolved absolute paths.'], - - ['pretend', null, InputOption::VALUE_NONE, 'Dump the SQL queries that would be run.'], - ]; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/Console/Migrations/RollbackCommand.php b/vendor/laravel/framework/src/Illuminate/Database/Console/Migrations/RollbackCommand.php deleted file mode 100755 index eac23263..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/Console/Migrations/RollbackCommand.php +++ /dev/null @@ -1,96 +0,0 @@ -migrator = $migrator; - } - - /** - * Execute the console command. - * - * @return void - */ - public function handle() - { - if (! $this->confirmToProceed()) { - return; - } - - $this->migrator->setConnection($this->option('database')); - - $this->migrator->rollback( - $this->getMigrationPaths(), [ - 'pretend' => $this->option('pretend'), - 'step' => (int) $this->option('step'), - ] - ); - - // Once the migrator has run we will grab the note output and send it out to - // the console screen, since the migrator itself functions without having - // any instances of the OutputInterface contract passed into the class. - foreach ($this->migrator->getNotes() as $note) { - $this->output->writeln($note); - } - } - - /** - * Get the console command options. - * - * @return array - */ - protected function getOptions() - { - return [ - ['database', null, InputOption::VALUE_OPTIONAL, 'The database connection to use.'], - - ['force', null, InputOption::VALUE_NONE, 'Force the operation to run when in production.'], - - ['path', null, InputOption::VALUE_OPTIONAL, 'The path to the migrations files to be executed.'], - - ['realpath', null, InputOption::VALUE_NONE, 'Indicate any provided migration file paths are pre-resolved absolute paths.'], - - ['pretend', null, InputOption::VALUE_NONE, 'Dump the SQL queries that would be run.'], - - ['step', null, InputOption::VALUE_OPTIONAL, 'The number of migrations to be reverted.'], - ]; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/Console/Migrations/StatusCommand.php b/vendor/laravel/framework/src/Illuminate/Database/Console/Migrations/StatusCommand.php deleted file mode 100644 index 93ed51a7..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/Console/Migrations/StatusCommand.php +++ /dev/null @@ -1,113 +0,0 @@ -migrator = $migrator; - } - - /** - * Execute the console command. - * - * @return void - */ - public function handle() - { - $this->migrator->setConnection($this->option('database')); - - if (! $this->migrator->repositoryExists()) { - return $this->error('No migrations found.'); - } - - $ran = $this->migrator->getRepository()->getRan(); - - $batches = $this->migrator->getRepository()->getMigrationBatches(); - - if (count($migrations = $this->getStatusFor($ran, $batches)) > 0) { - $this->table(['Ran?', 'Migration', 'Batch'], $migrations); - } else { - $this->error('No migrations found'); - } - } - - /** - * Get the status for the given ran migrations. - * - * @param array $ran - * @param array $batches - * @return \Illuminate\Support\Collection - */ - protected function getStatusFor(array $ran, array $batches) - { - return Collection::make($this->getAllMigrationFiles()) - ->map(function ($migration) use ($ran, $batches) { - $migrationName = $this->migrator->getMigrationName($migration); - - return in_array($migrationName, $ran) - ? ['Y', $migrationName, $batches[$migrationName]] - : ['N', $migrationName]; - }); - } - - /** - * Get an array of all of the migration files. - * - * @return array - */ - protected function getAllMigrationFiles() - { - return $this->migrator->getMigrationFiles($this->getMigrationPaths()); - } - - /** - * Get the console command options. - * - * @return array - */ - protected function getOptions() - { - return [ - ['database', null, InputOption::VALUE_OPTIONAL, 'The database connection to use.'], - - ['path', null, InputOption::VALUE_OPTIONAL, 'The path to the migrations files to use.'], - - ['realpath', null, InputOption::VALUE_NONE, 'Indicate any provided migration file paths are pre-resolved absolute paths.'], - ]; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/Console/Migrations/TableGuesser.php b/vendor/laravel/framework/src/Illuminate/Database/Console/Migrations/TableGuesser.php deleted file mode 100644 index edcd706f..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/Console/Migrations/TableGuesser.php +++ /dev/null @@ -1,23 +0,0 @@ -resolver = $resolver; - } - - /** - * Execute the console command. - * - * @return void - */ - public function handle() - { - if (! $this->confirmToProceed()) { - return; - } - - $this->resolver->setDefaultConnection($this->getDatabase()); - - Model::unguarded(function () { - $this->getSeeder()->__invoke(); - }); - } - - /** - * Get a seeder instance from the container. - * - * @return \Illuminate\Database\Seeder - */ - protected function getSeeder() - { - $class = $this->laravel->make($this->input->getOption('class')); - - return $class->setContainer($this->laravel)->setCommand($this); - } - - /** - * Get the name of the database connection to use. - * - * @return string - */ - protected function getDatabase() - { - $database = $this->input->getOption('database'); - - return $database ?: $this->laravel['config']['database.default']; - } - - /** - * Get the console command options. - * - * @return array - */ - protected function getOptions() - { - return [ - ['class', null, InputOption::VALUE_OPTIONAL, 'The class name of the root seeder', 'DatabaseSeeder'], - - ['database', null, InputOption::VALUE_OPTIONAL, 'The database connection to seed'], - - ['force', null, InputOption::VALUE_NONE, 'Force the operation to run when in production.'], - ]; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/Console/Seeds/SeederMakeCommand.php b/vendor/laravel/framework/src/Illuminate/Database/Console/Seeds/SeederMakeCommand.php deleted file mode 100644 index 6e85e3e4..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/Console/Seeds/SeederMakeCommand.php +++ /dev/null @@ -1,96 +0,0 @@ -composer = $composer; - } - - /** - * Execute the console command. - * - * @return void - */ - public function handle() - { - parent::handle(); - - $this->composer->dumpAutoloads(); - } - - /** - * Get the stub file for the generator. - * - * @return string - */ - protected function getStub() - { - return __DIR__.'/stubs/seeder.stub'; - } - - /** - * Get the destination class path. - * - * @param string $name - * @return string - */ - protected function getPath($name) - { - return $this->laravel->databasePath().'/seeds/'.$name.'.php'; - } - - /** - * Parse the class name and format according to the root namespace. - * - * @param string $name - * @return string - */ - protected function qualifyClass($name) - { - return $name; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/Console/Seeds/stubs/seeder.stub b/vendor/laravel/framework/src/Illuminate/Database/Console/Seeds/stubs/seeder.stub deleted file mode 100644 index 4aa38454..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/Console/Seeds/stubs/seeder.stub +++ /dev/null @@ -1,16 +0,0 @@ -app = $app; - $this->factory = $factory; - } - - /** - * Get a database connection instance. - * - * @param string $name - * @return \Illuminate\Database\Connection - */ - public function connection($name = null) - { - list($database, $type) = $this->parseConnectionName($name); - - $name = $name ?: $database; - - // If we haven't created this connection, we'll create it based on the config - // provided in the application. Once we've created the connections we will - // set the "fetch mode" for PDO which determines the query return types. - if (! isset($this->connections[$name])) { - $this->connections[$name] = $this->configure( - $this->makeConnection($database), $type - ); - } - - return $this->connections[$name]; - } - - /** - * Parse the connection into an array of the name and read / write type. - * - * @param string $name - * @return array - */ - protected function parseConnectionName($name) - { - $name = $name ?: $this->getDefaultConnection(); - - return Str::endsWith($name, ['::read', '::write']) - ? explode('::', $name, 2) : [$name, null]; - } - - /** - * Make the database connection instance. - * - * @param string $name - * @return \Illuminate\Database\Connection - */ - protected function makeConnection($name) - { - $config = $this->configuration($name); - - // First we will check by the connection name to see if an extension has been - // registered specifically for that connection. If it has we will call the - // Closure and pass it the config allowing it to resolve the connection. - if (isset($this->extensions[$name])) { - return call_user_func($this->extensions[$name], $config, $name); - } - - // Next we will check to see if an extension has been registered for a driver - // and will call the Closure if so, which allows us to have a more generic - // resolver for the drivers themselves which applies to all connections. - if (isset($this->extensions[$driver = $config['driver']])) { - return call_user_func($this->extensions[$driver], $config, $name); - } - - return $this->factory->make($config, $name); - } - - /** - * Get the configuration for a connection. - * - * @param string $name - * @return array - * - * @throws \InvalidArgumentException - */ - protected function configuration($name) - { - $name = $name ?: $this->getDefaultConnection(); - - // To get the database connection configuration, we will just pull each of the - // connection configurations and get the configurations for the given name. - // If the configuration doesn't exist, we'll throw an exception and bail. - $connections = $this->app['config']['database.connections']; - - if (is_null($config = Arr::get($connections, $name))) { - throw new InvalidArgumentException("Database [{$name}] not configured."); - } - - return $config; - } - - /** - * Prepare the database connection instance. - * - * @param \Illuminate\Database\Connection $connection - * @param string $type - * @return \Illuminate\Database\Connection - */ - protected function configure(Connection $connection, $type) - { - $connection = $this->setPdoForType($connection, $type); - - // First we'll set the fetch mode and a few other dependencies of the database - // connection. This method basically just configures and prepares it to get - // used by the application. Once we're finished we'll return it back out. - if ($this->app->bound('events')) { - $connection->setEventDispatcher($this->app['events']); - } - - // Here we'll set a reconnector callback. This reconnector can be any callable - // so we will set a Closure to reconnect from this manager with the name of - // the connection, which will allow us to reconnect from the connections. - $connection->setReconnector(function ($connection) { - $this->reconnect($connection->getName()); - }); - - return $connection; - } - - /** - * Prepare the read / write mode for database connection instance. - * - * @param \Illuminate\Database\Connection $connection - * @param string $type - * @return \Illuminate\Database\Connection - */ - protected function setPdoForType(Connection $connection, $type = null) - { - if ($type == 'read') { - $connection->setPdo($connection->getReadPdo()); - } elseif ($type == 'write') { - $connection->setReadPdo($connection->getPdo()); - } - - return $connection; - } - - /** - * Disconnect from the given database and remove from local cache. - * - * @param string $name - * @return void - */ - public function purge($name = null) - { - $name = $name ?: $this->getDefaultConnection(); - - $this->disconnect($name); - - unset($this->connections[$name]); - } - - /** - * Disconnect from the given database. - * - * @param string $name - * @return void - */ - public function disconnect($name = null) - { - if (isset($this->connections[$name = $name ?: $this->getDefaultConnection()])) { - $this->connections[$name]->disconnect(); - } - } - - /** - * Reconnect to the given database. - * - * @param string $name - * @return \Illuminate\Database\Connection - */ - public function reconnect($name = null) - { - $this->disconnect($name = $name ?: $this->getDefaultConnection()); - - if (! isset($this->connections[$name])) { - return $this->connection($name); - } - - return $this->refreshPdoConnections($name); - } - - /** - * Refresh the PDO connections on a given connection. - * - * @param string $name - * @return \Illuminate\Database\Connection - */ - protected function refreshPdoConnections($name) - { - $fresh = $this->makeConnection($name); - - return $this->connections[$name] - ->setPdo($fresh->getPdo()) - ->setReadPdo($fresh->getReadPdo()); - } - - /** - * Get the default connection name. - * - * @return string - */ - public function getDefaultConnection() - { - return $this->app['config']['database.default']; - } - - /** - * Set the default connection name. - * - * @param string $name - * @return void - */ - public function setDefaultConnection($name) - { - $this->app['config']['database.default'] = $name; - } - - /** - * Get all of the support drivers. - * - * @return array - */ - public function supportedDrivers() - { - return ['mysql', 'pgsql', 'sqlite', 'sqlsrv']; - } - - /** - * Get all of the drivers that are actually available. - * - * @return array - */ - public function availableDrivers() - { - return array_intersect( - $this->supportedDrivers(), - str_replace('dblib', 'sqlsrv', PDO::getAvailableDrivers()) - ); - } - - /** - * Register an extension connection resolver. - * - * @param string $name - * @param callable $resolver - * @return void - */ - public function extend($name, callable $resolver) - { - $this->extensions[$name] = $resolver; - } - - /** - * Return all of the created connections. - * - * @return array - */ - public function getConnections() - { - return $this->connections; - } - - /** - * Dynamically pass methods to the default connection. - * - * @param string $method - * @param array $parameters - * @return mixed - */ - public function __call($method, $parameters) - { - return $this->connection()->$method(...$parameters); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/DatabaseServiceProvider.php b/vendor/laravel/framework/src/Illuminate/Database/DatabaseServiceProvider.php deleted file mode 100755 index a8ee7b03..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/DatabaseServiceProvider.php +++ /dev/null @@ -1,99 +0,0 @@ -app['db']); - - Model::setEventDispatcher($this->app['events']); - } - - /** - * Register the service provider. - * - * @return void - */ - public function register() - { - Model::clearBootedModels(); - - $this->registerConnectionServices(); - - $this->registerEloquentFactory(); - - $this->registerQueueableEntityResolver(); - } - - /** - * Register the primary database bindings. - * - * @return void - */ - protected function registerConnectionServices() - { - // The connection factory is used to create the actual connection instances on - // the database. We will inject the factory into the manager so that it may - // make the connections while they are actually needed and not of before. - $this->app->singleton('db.factory', function ($app) { - return new ConnectionFactory($app); - }); - - // The database manager is used to resolve various connections, since multiple - // connections might be managed. It also implements the connection resolver - // interface which may be used by other components requiring connections. - $this->app->singleton('db', function ($app) { - return new DatabaseManager($app, $app['db.factory']); - }); - - $this->app->bind('db.connection', function ($app) { - return $app['db']->connection(); - }); - } - - /** - * Register the Eloquent factory instance in the container. - * - * @return void - */ - protected function registerEloquentFactory() - { - $this->app->singleton(FakerGenerator::class, function ($app) { - return FakerFactory::create($app['config']->get('app.faker_locale', 'en_US')); - }); - - $this->app->singleton(EloquentFactory::class, function ($app) { - return EloquentFactory::construct( - $app->make(FakerGenerator::class), $this->app->databasePath('factories') - ); - }); - } - - /** - * Register the queueable entity resolver implementation. - * - * @return void - */ - protected function registerQueueableEntityResolver() - { - $this->app->singleton(EntityResolver::class, function () { - return new QueueEntityResolver; - }); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/DetectsDeadlocks.php b/vendor/laravel/framework/src/Illuminate/Database/DetectsDeadlocks.php deleted file mode 100644 index a8193eeb..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/DetectsDeadlocks.php +++ /dev/null @@ -1,32 +0,0 @@ -getMessage(); - - return Str::contains($message, [ - 'Deadlock found when trying to get lock', - 'deadlock detected', - 'The database file is locked', - 'database is locked', - 'database table is locked', - 'A table in the database is locked', - 'has been chosen as the deadlock victim', - 'Lock wait timeout exceeded; try restarting transaction', - 'WSREP detected deadlock/conflict and aborted the transaction. Try restarting the transaction', - ]); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/DetectsLostConnections.php b/vendor/laravel/framework/src/Illuminate/Database/DetectsLostConnections.php deleted file mode 100644 index 8e3ec7d1..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/DetectsLostConnections.php +++ /dev/null @@ -1,39 +0,0 @@ -getMessage(); - - return Str::contains($message, [ - 'server has gone away', - 'no connection to the server', - 'Lost connection', - 'is dead or not enabled', - 'Error while sending', - 'decryption failed or bad record mac', - 'server closed the connection unexpectedly', - 'SSL connection has been closed unexpectedly', - 'Error writing data to the connection', - 'Resource deadlock avoided', - 'Transaction() on null', - 'child connection forced to terminate due to client_idle_limit', - 'query_wait_timeout', - 'reset by peer', - 'Physical connection is not usable', - 'TCP Provider: Error code 0x68', - ]); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Builder.php b/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Builder.php deleted file mode 100755 index f5a583cb..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Builder.php +++ /dev/null @@ -1,1330 +0,0 @@ -query = $query; - } - - /** - * Create and return an un-saved model instance. - * - * @param array $attributes - * @return \Illuminate\Database\Eloquent\Model - */ - public function make(array $attributes = []) - { - return $this->newModelInstance($attributes); - } - - /** - * Register a new global scope. - * - * @param string $identifier - * @param \Illuminate\Database\Eloquent\Scope|\Closure $scope - * @return $this - */ - public function withGlobalScope($identifier, $scope) - { - $this->scopes[$identifier] = $scope; - - if (method_exists($scope, 'extend')) { - $scope->extend($this); - } - - return $this; - } - - /** - * Remove a registered global scope. - * - * @param \Illuminate\Database\Eloquent\Scope|string $scope - * @return $this - */ - public function withoutGlobalScope($scope) - { - if (! is_string($scope)) { - $scope = get_class($scope); - } - - unset($this->scopes[$scope]); - - $this->removedScopes[] = $scope; - - return $this; - } - - /** - * Remove all or passed registered global scopes. - * - * @param array|null $scopes - * @return $this - */ - public function withoutGlobalScopes(array $scopes = null) - { - if (is_array($scopes)) { - foreach ($scopes as $scope) { - $this->withoutGlobalScope($scope); - } - } else { - $this->scopes = []; - } - - return $this; - } - - /** - * Get an array of global scopes that were removed from the query. - * - * @return array - */ - public function removedScopes() - { - return $this->removedScopes; - } - - /** - * Add a where clause on the primary key to the query. - * - * @param mixed $id - * @return $this - */ - public function whereKey($id) - { - if (is_array($id) || $id instanceof Arrayable) { - $this->query->whereIn($this->model->getQualifiedKeyName(), $id); - - return $this; - } - - return $this->where($this->model->getQualifiedKeyName(), '=', $id); - } - - /** - * Add a where clause on the primary key to the query. - * - * @param mixed $id - * @return $this - */ - public function whereKeyNot($id) - { - if (is_array($id) || $id instanceof Arrayable) { - $this->query->whereNotIn($this->model->getQualifiedKeyName(), $id); - - return $this; - } - - return $this->where($this->model->getQualifiedKeyName(), '!=', $id); - } - - /** - * Add a basic where clause to the query. - * - * @param string|array|\Closure $column - * @param mixed $operator - * @param mixed $value - * @param string $boolean - * @return $this - */ - public function where($column, $operator = null, $value = null, $boolean = 'and') - { - if ($column instanceof Closure) { - $column($query = $this->model->newModelQuery()); - - $this->query->addNestedWhereQuery($query->getQuery(), $boolean); - } else { - $this->query->where(...func_get_args()); - } - - return $this; - } - - /** - * Add an "or where" clause to the query. - * - * @param \Closure|array|string $column - * @param mixed $operator - * @param mixed $value - * @return \Illuminate\Database\Eloquent\Builder|static - */ - public function orWhere($column, $operator = null, $value = null) - { - list($value, $operator) = $this->query->prepareValueAndOperator( - $value, $operator, func_num_args() === 2 - ); - - return $this->where($column, $operator, $value, 'or'); - } - - /** - * Create a collection of models from plain arrays. - * - * @param array $items - * @return \Illuminate\Database\Eloquent\Collection - */ - public function hydrate(array $items) - { - $instance = $this->newModelInstance(); - - return $instance->newCollection(array_map(function ($item) use ($instance) { - return $instance->newFromBuilder($item); - }, $items)); - } - - /** - * Create a collection of models from a raw query. - * - * @param string $query - * @param array $bindings - * @return \Illuminate\Database\Eloquent\Collection - */ - public function fromQuery($query, $bindings = []) - { - return $this->hydrate( - $this->query->getConnection()->select($query, $bindings) - ); - } - - /** - * Find a model by its primary key. - * - * @param mixed $id - * @param array $columns - * @return \Illuminate\Database\Eloquent\Model|\Illuminate\Database\Eloquent\Collection|static[]|static|null - */ - public function find($id, $columns = ['*']) - { - if (is_array($id) || $id instanceof Arrayable) { - return $this->findMany($id, $columns); - } - - return $this->whereKey($id)->first($columns); - } - - /** - * Find multiple models by their primary keys. - * - * @param \Illuminate\Contracts\Support\Arrayable|array $ids - * @param array $columns - * @return \Illuminate\Database\Eloquent\Collection - */ - public function findMany($ids, $columns = ['*']) - { - if (empty($ids)) { - return $this->model->newCollection(); - } - - return $this->whereKey($ids)->get($columns); - } - - /** - * Find a model by its primary key or throw an exception. - * - * @param mixed $id - * @param array $columns - * @return \Illuminate\Database\Eloquent\Model|\Illuminate\Database\Eloquent\Collection - * - * @throws \Illuminate\Database\Eloquent\ModelNotFoundException - */ - public function findOrFail($id, $columns = ['*']) - { - $result = $this->find($id, $columns); - - if (is_array($id)) { - if (count($result) === count(array_unique($id))) { - return $result; - } - } elseif (! is_null($result)) { - return $result; - } - - throw (new ModelNotFoundException)->setModel( - get_class($this->model), $id - ); - } - - /** - * Find a model by its primary key or return fresh model instance. - * - * @param mixed $id - * @param array $columns - * @return \Illuminate\Database\Eloquent\Model - */ - public function findOrNew($id, $columns = ['*']) - { - if (! is_null($model = $this->find($id, $columns))) { - return $model; - } - - return $this->newModelInstance(); - } - - /** - * Get the first record matching the attributes or instantiate it. - * - * @param array $attributes - * @param array $values - * @return \Illuminate\Database\Eloquent\Model - */ - public function firstOrNew(array $attributes, array $values = []) - { - if (! is_null($instance = $this->where($attributes)->first())) { - return $instance; - } - - return $this->newModelInstance($attributes + $values); - } - - /** - * Get the first record matching the attributes or create it. - * - * @param array $attributes - * @param array $values - * @return \Illuminate\Database\Eloquent\Model - */ - public function firstOrCreate(array $attributes, array $values = []) - { - if (! is_null($instance = $this->where($attributes)->first())) { - return $instance; - } - - return tap($this->newModelInstance($attributes + $values), function ($instance) { - $instance->save(); - }); - } - - /** - * Create or update a record matching the attributes, and fill it with values. - * - * @param array $attributes - * @param array $values - * @return \Illuminate\Database\Eloquent\Model - */ - public function updateOrCreate(array $attributes, array $values = []) - { - return tap($this->firstOrNew($attributes), function ($instance) use ($values) { - $instance->fill($values)->save(); - }); - } - - /** - * Execute the query and get the first result or throw an exception. - * - * @param array $columns - * @return \Illuminate\Database\Eloquent\Model|static - * - * @throws \Illuminate\Database\Eloquent\ModelNotFoundException - */ - public function firstOrFail($columns = ['*']) - { - if (! is_null($model = $this->first($columns))) { - return $model; - } - - throw (new ModelNotFoundException)->setModel(get_class($this->model)); - } - - /** - * Execute the query and get the first result or call a callback. - * - * @param \Closure|array $columns - * @param \Closure|null $callback - * @return \Illuminate\Database\Eloquent\Model|static|mixed - */ - public function firstOr($columns = ['*'], Closure $callback = null) - { - if ($columns instanceof Closure) { - $callback = $columns; - - $columns = ['*']; - } - - if (! is_null($model = $this->first($columns))) { - return $model; - } - - return call_user_func($callback); - } - - /** - * Get a single column's value from the first result of a query. - * - * @param string $column - * @return mixed - */ - public function value($column) - { - if ($result = $this->first([$column])) { - return $result->{$column}; - } - } - - /** - * Execute the query as a "select" statement. - * - * @param array $columns - * @return \Illuminate\Database\Eloquent\Collection|static[] - */ - public function get($columns = ['*']) - { - $builder = $this->applyScopes(); - - // If we actually found models we will also eager load any relationships that - // have been specified as needing to be eager loaded, which will solve the - // n+1 query issue for the developers to avoid running a lot of queries. - if (count($models = $builder->getModels($columns)) > 0) { - $models = $builder->eagerLoadRelations($models); - } - - return $builder->getModel()->newCollection($models); - } - - /** - * Get the hydrated models without eager loading. - * - * @param array $columns - * @return \Illuminate\Database\Eloquent\Model[] - */ - public function getModels($columns = ['*']) - { - return $this->model->hydrate( - $this->query->get($columns)->all() - )->all(); - } - - /** - * Eager load the relationships for the models. - * - * @param array $models - * @return array - */ - public function eagerLoadRelations(array $models) - { - foreach ($this->eagerLoad as $name => $constraints) { - // For nested eager loads we'll skip loading them here and they will be set as an - // eager load on the query to retrieve the relation so that they will be eager - // loaded on that query, because that is where they get hydrated as models. - if (strpos($name, '.') === false) { - $models = $this->eagerLoadRelation($models, $name, $constraints); - } - } - - return $models; - } - - /** - * Eagerly load the relationship on a set of models. - * - * @param array $models - * @param string $name - * @param \Closure $constraints - * @return array - */ - protected function eagerLoadRelation(array $models, $name, Closure $constraints) - { - // First we will "back up" the existing where conditions on the query so we can - // add our eager constraints. Then we will merge the wheres that were on the - // query back to it in order that any where conditions might be specified. - $relation = $this->getRelation($name); - - $relation->addEagerConstraints($models); - - $constraints($relation); - - // Once we have the results, we just match those back up to their parent models - // using the relationship instance. Then we just return the finished arrays - // of models which have been eagerly hydrated and are readied for return. - return $relation->match( - $relation->initRelation($models, $name), - $relation->getEager(), $name - ); - } - - /** - * Get the relation instance for the given relation name. - * - * @param string $name - * @return \Illuminate\Database\Eloquent\Relations\Relation - */ - public function getRelation($name) - { - // We want to run a relationship query without any constrains so that we will - // not have to remove these where clauses manually which gets really hacky - // and error prone. We don't want constraints because we add eager ones. - $relation = Relation::noConstraints(function () use ($name) { - try { - return $this->getModel()->{$name}(); - } catch (BadMethodCallException $e) { - throw RelationNotFoundException::make($this->getModel(), $name); - } - }); - - $nested = $this->relationsNestedUnder($name); - - // If there are nested relationships set on the query, we will put those onto - // the query instances so that they can be handled after this relationship - // is loaded. In this way they will all trickle down as they are loaded. - if (count($nested) > 0) { - $relation->getQuery()->with($nested); - } - - return $relation; - } - - /** - * Get the deeply nested relations for a given top-level relation. - * - * @param string $relation - * @return array - */ - protected function relationsNestedUnder($relation) - { - $nested = []; - - // We are basically looking for any relationships that are nested deeper than - // the given top-level relationship. We will just check for any relations - // that start with the given top relations and adds them to our arrays. - foreach ($this->eagerLoad as $name => $constraints) { - if ($this->isNestedUnder($relation, $name)) { - $nested[substr($name, strlen($relation.'.'))] = $constraints; - } - } - - return $nested; - } - - /** - * Determine if the relationship is nested. - * - * @param string $relation - * @param string $name - * @return bool - */ - protected function isNestedUnder($relation, $name) - { - return Str::contains($name, '.') && Str::startsWith($name, $relation.'.'); - } - - /** - * Get a generator for the given query. - * - * @return \Generator - */ - public function cursor() - { - foreach ($this->applyScopes()->query->cursor() as $record) { - yield $this->model->newFromBuilder($record); - } - } - - /** - * Chunk the results of a query by comparing numeric IDs. - * - * @param int $count - * @param callable $callback - * @param string $column - * @param string|null $alias - * @return bool - */ - public function chunkById($count, callable $callback, $column = null, $alias = null) - { - $column = is_null($column) ? $this->getModel()->getKeyName() : $column; - - $alias = is_null($alias) ? $column : $alias; - - $lastId = null; - - do { - $clone = clone $this; - - // We'll execute the query for the given page and get the results. If there are - // no results we can just break and return from here. When there are results - // we will call the callback with the current chunk of these results here. - $results = $clone->forPageAfterId($count, $lastId, $column)->get(); - - $countResults = $results->count(); - - if ($countResults == 0) { - break; - } - - // On each chunk result set, we will pass them to the callback and then let the - // developer take care of everything within the callback, which allows us to - // keep the memory low for spinning through large result sets for working. - if ($callback($results) === false) { - return false; - } - - $lastId = $results->last()->{$alias}; - - unset($results); - } while ($countResults == $count); - - return true; - } - - /** - * Add a generic "order by" clause if the query doesn't already have one. - * - * @return void - */ - protected function enforceOrderBy() - { - if (empty($this->query->orders) && empty($this->query->unionOrders)) { - $this->orderBy($this->model->getQualifiedKeyName(), 'asc'); - } - } - - /** - * Get an array with the values of a given column. - * - * @param string $column - * @param string|null $key - * @return \Illuminate\Support\Collection - */ - public function pluck($column, $key = null) - { - $results = $this->toBase()->pluck($column, $key); - - // If the model has a mutator for the requested column, we will spin through - // the results and mutate the values so that the mutated version of these - // columns are returned as you would expect from these Eloquent models. - if (! $this->model->hasGetMutator($column) && - ! $this->model->hasCast($column) && - ! in_array($column, $this->model->getDates())) { - return $results; - } - - return $results->map(function ($value) use ($column) { - return $this->model->newFromBuilder([$column => $value])->{$column}; - }); - } - - /** - * Paginate the given query. - * - * @param int $perPage - * @param array $columns - * @param string $pageName - * @param int|null $page - * @return \Illuminate\Contracts\Pagination\LengthAwarePaginator - * - * @throws \InvalidArgumentException - */ - public function paginate($perPage = null, $columns = ['*'], $pageName = 'page', $page = null) - { - $page = $page ?: Paginator::resolveCurrentPage($pageName); - - $perPage = $perPage ?: $this->model->getPerPage(); - - $results = ($total = $this->toBase()->getCountForPagination()) - ? $this->forPage($page, $perPage)->get($columns) - : $this->model->newCollection(); - - return $this->paginator($results, $total, $perPage, $page, [ - 'path' => Paginator::resolveCurrentPath(), - 'pageName' => $pageName, - ]); - } - - /** - * Paginate the given query into a simple paginator. - * - * @param int $perPage - * @param array $columns - * @param string $pageName - * @param int|null $page - * @return \Illuminate\Contracts\Pagination\Paginator - */ - public function simplePaginate($perPage = null, $columns = ['*'], $pageName = 'page', $page = null) - { - $page = $page ?: Paginator::resolveCurrentPage($pageName); - - $perPage = $perPage ?: $this->model->getPerPage(); - - // Next we will set the limit and offset for this query so that when we get the - // results we get the proper section of results. Then, we'll create the full - // paginator instances for these results with the given page and per page. - $this->skip(($page - 1) * $perPage)->take($perPage + 1); - - return $this->simplePaginator($this->get($columns), $perPage, $page, [ - 'path' => Paginator::resolveCurrentPath(), - 'pageName' => $pageName, - ]); - } - - /** - * Save a new model and return the instance. - * - * @param array $attributes - * @return \Illuminate\Database\Eloquent\Model|$this - */ - public function create(array $attributes = []) - { - return tap($this->newModelInstance($attributes), function ($instance) { - $instance->save(); - }); - } - - /** - * Save a new model and return the instance. Allow mass-assignment. - * - * @param array $attributes - * @return \Illuminate\Database\Eloquent\Model|$this - */ - public function forceCreate(array $attributes) - { - return $this->model->unguarded(function () use ($attributes) { - return $this->newModelInstance()->create($attributes); - }); - } - - /** - * Update a record in the database. - * - * @param array $values - * @return int - */ - public function update(array $values) - { - return $this->toBase()->update($this->addUpdatedAtColumn($values)); - } - - /** - * Increment a column's value by a given amount. - * - * @param string $column - * @param float|int $amount - * @param array $extra - * @return int - */ - public function increment($column, $amount = 1, array $extra = []) - { - return $this->toBase()->increment( - $column, $amount, $this->addUpdatedAtColumn($extra) - ); - } - - /** - * Decrement a column's value by a given amount. - * - * @param string $column - * @param float|int $amount - * @param array $extra - * @return int - */ - public function decrement($column, $amount = 1, array $extra = []) - { - return $this->toBase()->decrement( - $column, $amount, $this->addUpdatedAtColumn($extra) - ); - } - - /** - * Add the "updated at" column to an array of values. - * - * @param array $values - * @return array - */ - protected function addUpdatedAtColumn(array $values) - { - if (! $this->model->usesTimestamps()) { - return $values; - } - - return Arr::add( - $values, $this->model->getUpdatedAtColumn(), - $this->model->freshTimestampString() - ); - } - - /** - * Delete a record from the database. - * - * @return mixed - */ - public function delete() - { - if (isset($this->onDelete)) { - return call_user_func($this->onDelete, $this); - } - - return $this->toBase()->delete(); - } - - /** - * Run the default delete function on the builder. - * - * Since we do not apply scopes here, the row will actually be deleted. - * - * @return mixed - */ - public function forceDelete() - { - return $this->query->delete(); - } - - /** - * Register a replacement for the default delete function. - * - * @param \Closure $callback - * @return void - */ - public function onDelete(Closure $callback) - { - $this->onDelete = $callback; - } - - /** - * Call the given local model scopes. - * - * @param array $scopes - * @return mixed - */ - public function scopes(array $scopes) - { - $builder = $this; - - foreach ($scopes as $scope => $parameters) { - // If the scope key is an integer, then the scope was passed as the value and - // the parameter list is empty, so we will format the scope name and these - // parameters here. Then, we'll be ready to call the scope on the model. - if (is_int($scope)) { - list($scope, $parameters) = [$parameters, []]; - } - - // Next we'll pass the scope callback to the callScope method which will take - // care of grouping the "wheres" properly so the logical order doesn't get - // messed up when adding scopes. Then we'll return back out the builder. - $builder = $builder->callScope( - [$this->model, 'scope'.ucfirst($scope)], - (array) $parameters - ); - } - - return $builder; - } - - /** - * Apply the scopes to the Eloquent builder instance and return it. - * - * @return \Illuminate\Database\Eloquent\Builder|static - */ - public function applyScopes() - { - if (! $this->scopes) { - return $this; - } - - $builder = clone $this; - - foreach ($this->scopes as $identifier => $scope) { - if (! isset($builder->scopes[$identifier])) { - continue; - } - - $builder->callScope(function (Builder $builder) use ($scope) { - // If the scope is a Closure we will just go ahead and call the scope with the - // builder instance. The "callScope" method will properly group the clauses - // that are added to this query so "where" clauses maintain proper logic. - if ($scope instanceof Closure) { - $scope($builder); - } - - // If the scope is a scope object, we will call the apply method on this scope - // passing in the builder and the model instance. After we run all of these - // scopes we will return back the builder instance to the outside caller. - if ($scope instanceof Scope) { - $scope->apply($builder, $this->getModel()); - } - }); - } - - return $builder; - } - - /** - * Apply the given scope on the current builder instance. - * - * @param callable $scope - * @param array $parameters - * @return mixed - */ - protected function callScope(callable $scope, $parameters = []) - { - array_unshift($parameters, $this); - - $query = $this->getQuery(); - - // We will keep track of how many wheres are on the query before running the - // scope so that we can properly group the added scope constraints in the - // query as their own isolated nested where statement and avoid issues. - $originalWhereCount = is_null($query->wheres) - ? 0 : count($query->wheres); - - $result = $scope(...array_values($parameters)) ?? $this; - - if (count((array) $query->wheres) > $originalWhereCount) { - $this->addNewWheresWithinGroup($query, $originalWhereCount); - } - - return $result; - } - - /** - * Nest where conditions by slicing them at the given where count. - * - * @param \Illuminate\Database\Query\Builder $query - * @param int $originalWhereCount - * @return void - */ - protected function addNewWheresWithinGroup(QueryBuilder $query, $originalWhereCount) - { - // Here, we totally remove all of the where clauses since we are going to - // rebuild them as nested queries by slicing the groups of wheres into - // their own sections. This is to prevent any confusing logic order. - $allWheres = $query->wheres; - - $query->wheres = []; - - $this->groupWhereSliceForScope( - $query, array_slice($allWheres, 0, $originalWhereCount) - ); - - $this->groupWhereSliceForScope( - $query, array_slice($allWheres, $originalWhereCount) - ); - } - - /** - * Slice where conditions at the given offset and add them to the query as a nested condition. - * - * @param \Illuminate\Database\Query\Builder $query - * @param array $whereSlice - * @return void - */ - protected function groupWhereSliceForScope(QueryBuilder $query, $whereSlice) - { - $whereBooleans = collect($whereSlice)->pluck('boolean'); - - // Here we'll check if the given subset of where clauses contains any "or" - // booleans and in this case create a nested where expression. That way - // we don't add any unnecessary nesting thus keeping the query clean. - if ($whereBooleans->contains('or')) { - $query->wheres[] = $this->createNestedWhere( - $whereSlice, $whereBooleans->first() - ); - } else { - $query->wheres = array_merge($query->wheres, $whereSlice); - } - } - - /** - * Create a where array with nested where conditions. - * - * @param array $whereSlice - * @param string $boolean - * @return array - */ - protected function createNestedWhere($whereSlice, $boolean = 'and') - { - $whereGroup = $this->getQuery()->forNestedWhere(); - - $whereGroup->wheres = $whereSlice; - - return ['type' => 'Nested', 'query' => $whereGroup, 'boolean' => $boolean]; - } - - /** - * Set the relationships that should be eager loaded. - * - * @param mixed $relations - * @return $this - */ - public function with($relations) - { - $eagerLoad = $this->parseWithRelations(is_string($relations) ? func_get_args() : $relations); - - $this->eagerLoad = array_merge($this->eagerLoad, $eagerLoad); - - return $this; - } - - /** - * Prevent the specified relations from being eager loaded. - * - * @param mixed $relations - * @return $this - */ - public function without($relations) - { - $this->eagerLoad = array_diff_key($this->eagerLoad, array_flip( - is_string($relations) ? func_get_args() : $relations - )); - - return $this; - } - - /** - * Create a new instance of the model being queried. - * - * @param array $attributes - * @return \Illuminate\Database\Eloquent\Model - */ - public function newModelInstance($attributes = []) - { - return $this->model->newInstance($attributes)->setConnection( - $this->query->getConnection()->getName() - ); - } - - /** - * Parse a list of relations into individuals. - * - * @param array $relations - * @return array - */ - protected function parseWithRelations(array $relations) - { - $results = []; - - foreach ($relations as $name => $constraints) { - // If the "relation" value is actually a numeric key, we can assume that no - // constraints have been specified for the eager load and we'll just put - // an empty Closure with the loader so that we can treat all the same. - if (is_numeric($name)) { - $name = $constraints; - - list($name, $constraints) = Str::contains($name, ':') - ? $this->createSelectWithConstraint($name) - : [$name, function () { - // - }]; - } - - // We need to separate out any nested includes. Which allows the developers - // to load deep relationships using "dots" without stating each level of - // the relationship with its own key in the array of eager load names. - $results = $this->addNestedWiths($name, $results); - - $results[$name] = $constraints; - } - - return $results; - } - - /** - * Create a constraint to select the given columns for the relation. - * - * @param string $name - * @return array - */ - protected function createSelectWithConstraint($name) - { - return [explode(':', $name)[0], function ($query) use ($name) { - $query->select(explode(',', explode(':', $name)[1])); - }]; - } - - /** - * Parse the nested relationships in a relation. - * - * @param string $name - * @param array $results - * @return array - */ - protected function addNestedWiths($name, $results) - { - $progress = []; - - // If the relation has already been set on the result array, we will not set it - // again, since that would override any constraints that were already placed - // on the relationships. We will only set the ones that are not specified. - foreach (explode('.', $name) as $segment) { - $progress[] = $segment; - - if (! isset($results[$last = implode('.', $progress)])) { - $results[$last] = function () { - // - }; - } - } - - return $results; - } - - /** - * Get the underlying query builder instance. - * - * @return \Illuminate\Database\Query\Builder - */ - public function getQuery() - { - return $this->query; - } - - /** - * Set the underlying query builder instance. - * - * @param \Illuminate\Database\Query\Builder $query - * @return $this - */ - public function setQuery($query) - { - $this->query = $query; - - return $this; - } - - /** - * Get a base query builder instance. - * - * @return \Illuminate\Database\Query\Builder - */ - public function toBase() - { - return $this->applyScopes()->getQuery(); - } - - /** - * Get the relationships being eagerly loaded. - * - * @return array - */ - public function getEagerLoads() - { - return $this->eagerLoad; - } - - /** - * Set the relationships being eagerly loaded. - * - * @param array $eagerLoad - * @return $this - */ - public function setEagerLoads(array $eagerLoad) - { - $this->eagerLoad = $eagerLoad; - - return $this; - } - - /** - * Get the model instance being queried. - * - * @return \Illuminate\Database\Eloquent\Model - */ - public function getModel() - { - return $this->model; - } - - /** - * Set a model instance for the model being queried. - * - * @param \Illuminate\Database\Eloquent\Model $model - * @return $this - */ - public function setModel(Model $model) - { - $this->model = $model; - - $this->query->from($model->getTable()); - - return $this; - } - - /** - * Qualify the given column name by the model's table. - * - * @param string $column - * @return string - */ - public function qualifyColumn($column) - { - return $this->model->qualifyColumn($column); - } - - /** - * Get the given macro by name. - * - * @param string $name - * @return \Closure - */ - public function getMacro($name) - { - return Arr::get($this->localMacros, $name); - } - - /** - * Dynamically handle calls into the query instance. - * - * @param string $method - * @param array $parameters - * @return mixed - */ - public function __call($method, $parameters) - { - if ($method === 'macro') { - $this->localMacros[$parameters[0]] = $parameters[1]; - - return; - } - - if (isset($this->localMacros[$method])) { - array_unshift($parameters, $this); - - return $this->localMacros[$method](...$parameters); - } - - if (isset(static::$macros[$method])) { - if (static::$macros[$method] instanceof Closure) { - return call_user_func_array(static::$macros[$method]->bindTo($this, static::class), $parameters); - } - - return call_user_func_array(static::$macros[$method], $parameters); - } - - if (method_exists($this->model, $scope = 'scope'.ucfirst($method))) { - return $this->callScope([$this->model, $scope], $parameters); - } - - if (in_array($method, $this->passthru)) { - return $this->toBase()->{$method}(...$parameters); - } - - $this->query->{$method}(...$parameters); - - return $this; - } - - /** - * Dynamically handle calls into the query instance. - * - * @param string $method - * @param array $parameters - * @return mixed - * - * @throws \BadMethodCallException - */ - public static function __callStatic($method, $parameters) - { - if ($method === 'macro') { - static::$macros[$parameters[0]] = $parameters[1]; - - return; - } - - if (! isset(static::$macros[$method])) { - throw new BadMethodCallException(sprintf( - 'Method %s::%s does not exist.', static::class, $method - )); - } - - if (static::$macros[$method] instanceof Closure) { - return call_user_func_array(Closure::bind(static::$macros[$method], null, static::class), $parameters); - } - - return call_user_func_array(static::$macros[$method], $parameters); - } - - /** - * Force a clone of the underlying query builder when cloning. - * - * @return void - */ - public function __clone() - { - $this->query = clone $this->query; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Collection.php b/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Collection.php deleted file mode 100755 index ad2a7a11..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Collection.php +++ /dev/null @@ -1,552 +0,0 @@ -getKey(); - } - - if ($key instanceof Arrayable) { - $key = $key->toArray(); - } - - if (is_array($key)) { - if ($this->isEmpty()) { - return new static; - } - - return $this->whereIn($this->first()->getKeyName(), $key); - } - - return Arr::first($this->items, function ($model) use ($key) { - return $model->getKey() == $key; - }, $default); - } - - /** - * Load a set of relationships onto the collection. - * - * @param array|string $relations - * @return $this - */ - public function load($relations) - { - if ($this->isNotEmpty()) { - if (is_string($relations)) { - $relations = func_get_args(); - } - - $query = $this->first()->newQueryWithoutRelationships()->with($relations); - - $this->items = $query->eagerLoadRelations($this->items); - } - - return $this; - } - - /** - * Load a set of relationships onto the collection if they are not already eager loaded. - * - * @param array|string $relations - * @return $this - */ - public function loadMissing($relations) - { - if (is_string($relations)) { - $relations = func_get_args(); - } - - foreach ($relations as $key => $value) { - if (is_numeric($key)) { - $key = $value; - } - - $segments = explode('.', explode(':', $key)[0]); - - if (Str::contains($key, ':')) { - $segments[count($segments) - 1] .= ':'.explode(':', $key)[1]; - } - - $path = array_combine($segments, $segments); - - if (is_callable($value)) { - $path[end($segments)] = $value; - } - - $this->loadMissingRelation($this, $path); - } - - return $this; - } - - /** - * Load a relationship path if it is not already eager loaded. - * - * @param \Illuminate\Database\Eloquent\Collection $models - * @param array $path - * @return void - */ - protected function loadMissingRelation(Collection $models, array $path) - { - $relation = array_splice($path, 0, 1); - - $name = explode(':', key($relation))[0]; - - if (is_string(reset($relation))) { - $relation = reset($relation); - } - - $models->filter(function ($model) use ($name) { - return ! is_null($model) && ! $model->relationLoaded($name); - })->load($relation); - - if (empty($path)) { - return; - } - - $models = $models->pluck($name); - - if ($models->first() instanceof BaseCollection) { - $models = $models->collapse(); - } - - $this->loadMissingRelation(new static($models), $path); - } - - /** - * Load a set of relationships onto the mixed relationship collection. - * - * @param string $relation - * @param array $relations - * @return $this - */ - public function loadMorph($relation, $relations) - { - $this->pluck($relation) - ->filter() - ->groupBy(function ($model) { - return get_class($model); - }) - ->filter(function ($models, $className) use ($relations) { - return Arr::has($relations, $className); - }) - ->each(function ($models, $className) use ($relations) { - $className::with($relations[$className]) - ->eagerLoadRelations($models->all()); - }); - - return $this; - } - - /** - * Add an item to the collection. - * - * @param mixed $item - * @return $this - */ - public function add($item) - { - $this->items[] = $item; - - return $this; - } - - /** - * Determine if a key exists in the collection. - * - * @param mixed $key - * @param mixed $operator - * @param mixed $value - * @return bool - */ - public function contains($key, $operator = null, $value = null) - { - if (func_num_args() > 1 || $this->useAsCallable($key)) { - return parent::contains(...func_get_args()); - } - - if ($key instanceof Model) { - return parent::contains(function ($model) use ($key) { - return $model->is($key); - }); - } - - return parent::contains(function ($model) use ($key) { - return $model->getKey() == $key; - }); - } - - /** - * Get the array of primary keys. - * - * @return array - */ - public function modelKeys() - { - return array_map(function ($model) { - return $model->getKey(); - }, $this->items); - } - - /** - * Merge the collection with the given items. - * - * @param \ArrayAccess|array $items - * @return static - */ - public function merge($items) - { - $dictionary = $this->getDictionary(); - - foreach ($items as $item) { - $dictionary[$item->getKey()] = $item; - } - - return new static(array_values($dictionary)); - } - - /** - * Run a map over each of the items. - * - * @param callable $callback - * @return \Illuminate\Support\Collection|static - */ - public function map(callable $callback) - { - $result = parent::map($callback); - - return $result->contains(function ($item) { - return ! $item instanceof Model; - }) ? $result->toBase() : $result; - } - - /** - * Reload a fresh model instance from the database for all the entities. - * - * @param array|string $with - * @return static - */ - public function fresh($with = []) - { - if ($this->isEmpty()) { - return new static; - } - - $model = $this->first(); - - $freshModels = $model->newQueryWithoutScopes() - ->with(is_string($with) ? func_get_args() : $with) - ->whereIn($model->getKeyName(), $this->modelKeys()) - ->get() - ->getDictionary(); - - return $this->map(function ($model) use ($freshModels) { - return $model->exists && isset($freshModels[$model->getKey()]) - ? $freshModels[$model->getKey()] : null; - }); - } - - /** - * Diff the collection with the given items. - * - * @param \ArrayAccess|array $items - * @return static - */ - public function diff($items) - { - $diff = new static; - - $dictionary = $this->getDictionary($items); - - foreach ($this->items as $item) { - if (! isset($dictionary[$item->getKey()])) { - $diff->add($item); - } - } - - return $diff; - } - - /** - * Intersect the collection with the given items. - * - * @param \ArrayAccess|array $items - * @return static - */ - public function intersect($items) - { - $intersect = new static; - - $dictionary = $this->getDictionary($items); - - foreach ($this->items as $item) { - if (isset($dictionary[$item->getKey()])) { - $intersect->add($item); - } - } - - return $intersect; - } - - /** - * Return only unique items from the collection. - * - * @param string|callable|null $key - * @param bool $strict - * @return static|\Illuminate\Support\Collection - */ - public function unique($key = null, $strict = false) - { - if (! is_null($key)) { - return parent::unique($key, $strict); - } - - return new static(array_values($this->getDictionary())); - } - - /** - * Returns only the models from the collection with the specified keys. - * - * @param mixed $keys - * @return static - */ - public function only($keys) - { - if (is_null($keys)) { - return new static($this->items); - } - - $dictionary = Arr::only($this->getDictionary(), $keys); - - return new static(array_values($dictionary)); - } - - /** - * Returns all models in the collection except the models with specified keys. - * - * @param mixed $keys - * @return static - */ - public function except($keys) - { - $dictionary = Arr::except($this->getDictionary(), $keys); - - return new static(array_values($dictionary)); - } - - /** - * Make the given, typically visible, attributes hidden across the entire collection. - * - * @param array|string $attributes - * @return $this - */ - public function makeHidden($attributes) - { - return $this->each(function ($model) use ($attributes) { - $model->addHidden($attributes); - }); - } - - /** - * Make the given, typically hidden, attributes visible across the entire collection. - * - * @param array|string $attributes - * @return $this - */ - public function makeVisible($attributes) - { - return $this->each(function ($model) use ($attributes) { - $model->makeVisible($attributes); - }); - } - - /** - * Get a dictionary keyed by primary keys. - * - * @param \ArrayAccess|array|null $items - * @return array - */ - public function getDictionary($items = null) - { - $items = is_null($items) ? $this->items : $items; - - $dictionary = []; - - foreach ($items as $value) { - $dictionary[$value->getKey()] = $value; - } - - return $dictionary; - } - - /** - * The following methods are intercepted to always return base collections. - */ - - /** - * Get an array with the values of a given key. - * - * @param string $value - * @param string|null $key - * @return \Illuminate\Support\Collection - */ - public function pluck($value, $key = null) - { - return $this->toBase()->pluck($value, $key); - } - - /** - * Get the keys of the collection items. - * - * @return \Illuminate\Support\Collection - */ - public function keys() - { - return $this->toBase()->keys(); - } - - /** - * Zip the collection together with one or more arrays. - * - * @param mixed ...$items - * @return \Illuminate\Support\Collection - */ - public function zip($items) - { - return call_user_func_array([$this->toBase(), 'zip'], func_get_args()); - } - - /** - * Collapse the collection of items into a single array. - * - * @return \Illuminate\Support\Collection - */ - public function collapse() - { - return $this->toBase()->collapse(); - } - - /** - * Get a flattened array of the items in the collection. - * - * @param int $depth - * @return \Illuminate\Support\Collection - */ - public function flatten($depth = INF) - { - return $this->toBase()->flatten($depth); - } - - /** - * Flip the items in the collection. - * - * @return \Illuminate\Support\Collection - */ - public function flip() - { - return $this->toBase()->flip(); - } - - /** - * Pad collection to the specified length with a value. - * - * @param int $size - * @param mixed $value - * @return \Illuminate\Support\Collection - */ - public function pad($size, $value) - { - return $this->toBase()->pad($size, $value); - } - - /** - * Get the type of the entities being queued. - * - * @return string|null - * @throws \LogicException - */ - public function getQueueableClass() - { - if ($this->isEmpty()) { - return; - } - - $class = get_class($this->first()); - - $this->each(function ($model) use ($class) { - if (get_class($model) !== $class) { - throw new LogicException('Queueing collections with multiple model types is not supported.'); - } - }); - - return $class; - } - - /** - * Get the identifiers for all of the entities. - * - * @return array - */ - public function getQueueableIds() - { - if ($this->isEmpty()) { - return []; - } - - return $this->first() instanceof Pivot - ? $this->map->getQueueableId()->all() - : $this->modelKeys(); - } - - /** - * Get the relationships of the entities being queued. - * - * @return array - */ - public function getQueueableRelations() - { - return $this->isNotEmpty() ? $this->first()->getQueueableRelations() : []; - } - - /** - * Get the connection of the entities being queued. - * - * @return string|null - * @throws \LogicException - */ - public function getQueueableConnection() - { - if ($this->isEmpty()) { - return; - } - - $connection = $this->first()->getConnectionName(); - - $this->each(function ($model) use ($connection) { - if ($model->getConnectionName() !== $connection) { - throw new LogicException('Queueing collections with multiple model connections is not supported.'); - } - }); - - return $connection; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/GuardsAttributes.php b/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/GuardsAttributes.php deleted file mode 100644 index 96317cf5..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/GuardsAttributes.php +++ /dev/null @@ -1,193 +0,0 @@ -fillable; - } - - /** - * Set the fillable attributes for the model. - * - * @param array $fillable - * @return $this - */ - public function fillable(array $fillable) - { - $this->fillable = $fillable; - - return $this; - } - - /** - * Get the guarded attributes for the model. - * - * @return array - */ - public function getGuarded() - { - return $this->guarded; - } - - /** - * Set the guarded attributes for the model. - * - * @param array $guarded - * @return $this - */ - public function guard(array $guarded) - { - $this->guarded = $guarded; - - return $this; - } - - /** - * Disable all mass assignable restrictions. - * - * @param bool $state - * @return void - */ - public static function unguard($state = true) - { - static::$unguarded = $state; - } - - /** - * Enable the mass assignment restrictions. - * - * @return void - */ - public static function reguard() - { - static::$unguarded = false; - } - - /** - * Determine if current state is "unguarded". - * - * @return bool - */ - public static function isUnguarded() - { - return static::$unguarded; - } - - /** - * Run the given callable while being unguarded. - * - * @param callable $callback - * @return mixed - */ - public static function unguarded(callable $callback) - { - if (static::$unguarded) { - return $callback(); - } - - static::unguard(); - - try { - return $callback(); - } finally { - static::reguard(); - } - } - - /** - * Determine if the given attribute may be mass assigned. - * - * @param string $key - * @return bool - */ - public function isFillable($key) - { - if (static::$unguarded) { - return true; - } - - // If the key is in the "fillable" array, we can of course assume that it's - // a fillable attribute. Otherwise, we will check the guarded array when - // we need to determine if the attribute is black-listed on the model. - if (in_array($key, $this->getFillable())) { - return true; - } - - // If the attribute is explicitly listed in the "guarded" array then we can - // return false immediately. This means this attribute is definitely not - // fillable and there is no point in going any further in this method. - if ($this->isGuarded($key)) { - return false; - } - - return empty($this->getFillable()) && - ! Str::startsWith($key, '_'); - } - - /** - * Determine if the given key is guarded. - * - * @param string $key - * @return bool - */ - public function isGuarded($key) - { - return in_array($key, $this->getGuarded()) || $this->getGuarded() == ['*']; - } - - /** - * Determine if the model is totally guarded. - * - * @return bool - */ - public function totallyGuarded() - { - return count($this->getFillable()) == 0 && $this->getGuarded() == ['*']; - } - - /** - * Get the fillable attributes of a given array. - * - * @param array $attributes - * @return array - */ - protected function fillableFromArray(array $attributes) - { - if (count($this->getFillable()) > 0 && ! static::$unguarded) { - return array_intersect_key($attributes, array_flip($this->getFillable())); - } - - return $attributes; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/HasAttributes.php b/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/HasAttributes.php deleted file mode 100644 index 5067a5b5..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/HasAttributes.php +++ /dev/null @@ -1,1174 +0,0 @@ -addDateAttributesToArray( - $attributes = $this->getArrayableAttributes() - ); - - $attributes = $this->addMutatedAttributesToArray( - $attributes, $mutatedAttributes = $this->getMutatedAttributes() - ); - - // Next we will handle any casts that have been setup for this model and cast - // the values to their appropriate type. If the attribute has a mutator we - // will not perform the cast on those attributes to avoid any confusion. - $attributes = $this->addCastAttributesToArray( - $attributes, $mutatedAttributes - ); - - // Here we will grab all of the appended, calculated attributes to this model - // as these attributes are not really in the attributes array, but are run - // when we need to array or JSON the model for convenience to the coder. - foreach ($this->getArrayableAppends() as $key) { - $attributes[$key] = $this->mutateAttributeForArray($key, null); - } - - return $attributes; - } - - /** - * Add the date attributes to the attributes array. - * - * @param array $attributes - * @return array - */ - protected function addDateAttributesToArray(array $attributes) - { - foreach ($this->getDates() as $key) { - if (! isset($attributes[$key])) { - continue; - } - - $attributes[$key] = $this->serializeDate( - $this->asDateTime($attributes[$key]) - ); - } - - return $attributes; - } - - /** - * Add the mutated attributes to the attributes array. - * - * @param array $attributes - * @param array $mutatedAttributes - * @return array - */ - protected function addMutatedAttributesToArray(array $attributes, array $mutatedAttributes) - { - foreach ($mutatedAttributes as $key) { - // We want to spin through all the mutated attributes for this model and call - // the mutator for the attribute. We cache off every mutated attributes so - // we don't have to constantly check on attributes that actually change. - if (! array_key_exists($key, $attributes)) { - continue; - } - - // Next, we will call the mutator for this attribute so that we can get these - // mutated attribute's actual values. After we finish mutating each of the - // attributes we will return this final array of the mutated attributes. - $attributes[$key] = $this->mutateAttributeForArray( - $key, $attributes[$key] - ); - } - - return $attributes; - } - - /** - * Add the casted attributes to the attributes array. - * - * @param array $attributes - * @param array $mutatedAttributes - * @return array - */ - protected function addCastAttributesToArray(array $attributes, array $mutatedAttributes) - { - foreach ($this->getCasts() as $key => $value) { - if (! array_key_exists($key, $attributes) || in_array($key, $mutatedAttributes)) { - continue; - } - - // Here we will cast the attribute. Then, if the cast is a date or datetime cast - // then we will serialize the date for the array. This will convert the dates - // to strings based on the date format specified for these Eloquent models. - $attributes[$key] = $this->castAttribute( - $key, $attributes[$key] - ); - - // If the attribute cast was a date or a datetime, we will serialize the date as - // a string. This allows the developers to customize how dates are serialized - // into an array without affecting how they are persisted into the storage. - if ($attributes[$key] && - ($value === 'date' || $value === 'datetime')) { - $attributes[$key] = $this->serializeDate($attributes[$key]); - } - - if ($attributes[$key] && $this->isCustomDateTimeCast($value)) { - $attributes[$key] = $attributes[$key]->format(explode(':', $value, 2)[1]); - } - } - - return $attributes; - } - - /** - * Get an attribute array of all arrayable attributes. - * - * @return array - */ - protected function getArrayableAttributes() - { - return $this->getArrayableItems($this->attributes); - } - - /** - * Get all of the appendable values that are arrayable. - * - * @return array - */ - protected function getArrayableAppends() - { - if (! count($this->appends)) { - return []; - } - - return $this->getArrayableItems( - array_combine($this->appends, $this->appends) - ); - } - - /** - * Get the model's relationships in array form. - * - * @return array - */ - public function relationsToArray() - { - $attributes = []; - - foreach ($this->getArrayableRelations() as $key => $value) { - // If the values implements the Arrayable interface we can just call this - // toArray method on the instances which will convert both models and - // collections to their proper array form and we'll set the values. - if ($value instanceof Arrayable) { - $relation = $value->toArray(); - } - - // If the value is null, we'll still go ahead and set it in this list of - // attributes since null is used to represent empty relationships if - // if it a has one or belongs to type relationships on the models. - elseif (is_null($value)) { - $relation = $value; - } - - // If the relationships snake-casing is enabled, we will snake case this - // key so that the relation attribute is snake cased in this returned - // array to the developers, making this consistent with attributes. - if (static::$snakeAttributes) { - $key = Str::snake($key); - } - - // If the relation value has been set, we will set it on this attributes - // list for returning. If it was not arrayable or null, we'll not set - // the value on the array because it is some type of invalid value. - if (isset($relation) || is_null($value)) { - $attributes[$key] = $relation; - } - - unset($relation); - } - - return $attributes; - } - - /** - * Get an attribute array of all arrayable relations. - * - * @return array - */ - protected function getArrayableRelations() - { - return $this->getArrayableItems($this->relations); - } - - /** - * Get an attribute array of all arrayable values. - * - * @param array $values - * @return array - */ - protected function getArrayableItems(array $values) - { - if (count($this->getVisible()) > 0) { - $values = array_intersect_key($values, array_flip($this->getVisible())); - } - - if (count($this->getHidden()) > 0) { - $values = array_diff_key($values, array_flip($this->getHidden())); - } - - return $values; - } - - /** - * Get an attribute from the model. - * - * @param string $key - * @return mixed - */ - public function getAttribute($key) - { - if (! $key) { - return; - } - - // If the attribute exists in the attribute array or has a "get" mutator we will - // get the attribute's value. Otherwise, we will proceed as if the developers - // are asking for a relationship's value. This covers both types of values. - if (array_key_exists($key, $this->attributes) || - $this->hasGetMutator($key)) { - return $this->getAttributeValue($key); - } - - // Here we will determine if the model base class itself contains this given key - // since we don't want to treat any of those methods as relationships because - // they are all intended as helper methods and none of these are relations. - if (method_exists(self::class, $key)) { - return; - } - - return $this->getRelationValue($key); - } - - /** - * Get a plain attribute (not a relationship). - * - * @param string $key - * @return mixed - */ - public function getAttributeValue($key) - { - $value = $this->getAttributeFromArray($key); - - // If the attribute has a get mutator, we will call that then return what - // it returns as the value, which is useful for transforming values on - // retrieval from the model to a form that is more useful for usage. - if ($this->hasGetMutator($key)) { - return $this->mutateAttribute($key, $value); - } - - // If the attribute exists within the cast array, we will convert it to - // an appropriate native PHP type dependant upon the associated value - // given with the key in the pair. Dayle made this comment line up. - if ($this->hasCast($key)) { - return $this->castAttribute($key, $value); - } - - // If the attribute is listed as a date, we will convert it to a DateTime - // instance on retrieval, which makes it quite convenient to work with - // date fields without having to create a mutator for each property. - if (in_array($key, $this->getDates()) && - ! is_null($value)) { - return $this->asDateTime($value); - } - - return $value; - } - - /** - * Get an attribute from the $attributes array. - * - * @param string $key - * @return mixed - */ - protected function getAttributeFromArray($key) - { - if (isset($this->attributes[$key])) { - return $this->attributes[$key]; - } - } - - /** - * Get a relationship. - * - * @param string $key - * @return mixed - */ - public function getRelationValue($key) - { - // If the key already exists in the relationships array, it just means the - // relationship has already been loaded, so we'll just return it out of - // here because there is no need to query within the relations twice. - if ($this->relationLoaded($key)) { - return $this->relations[$key]; - } - - // If the "attribute" exists as a method on the model, we will just assume - // it is a relationship and will load and return results from the query - // and hydrate the relationship's value on the "relationships" array. - if (method_exists($this, $key)) { - return $this->getRelationshipFromMethod($key); - } - } - - /** - * Get a relationship value from a method. - * - * @param string $method - * @return mixed - * - * @throws \LogicException - */ - protected function getRelationshipFromMethod($method) - { - $relation = $this->$method(); - - if (! $relation instanceof Relation) { - throw new LogicException(sprintf( - '%s::%s must return a relationship instance.', static::class, $method - )); - } - - return tap($relation->getResults(), function ($results) use ($method) { - $this->setRelation($method, $results); - }); - } - - /** - * Determine if a get mutator exists for an attribute. - * - * @param string $key - * @return bool - */ - public function hasGetMutator($key) - { - return method_exists($this, 'get'.Str::studly($key).'Attribute'); - } - - /** - * Get the value of an attribute using its mutator. - * - * @param string $key - * @param mixed $value - * @return mixed - */ - protected function mutateAttribute($key, $value) - { - return $this->{'get'.Str::studly($key).'Attribute'}($value); - } - - /** - * Get the value of an attribute using its mutator for array conversion. - * - * @param string $key - * @param mixed $value - * @return mixed - */ - protected function mutateAttributeForArray($key, $value) - { - $value = $this->mutateAttribute($key, $value); - - return $value instanceof Arrayable ? $value->toArray() : $value; - } - - /** - * Cast an attribute to a native PHP type. - * - * @param string $key - * @param mixed $value - * @return mixed - */ - protected function castAttribute($key, $value) - { - if (is_null($value)) { - return $value; - } - - switch ($this->getCastType($key)) { - case 'int': - case 'integer': - return (int) $value; - case 'real': - case 'float': - case 'double': - return (float) $value; - case 'string': - return (string) $value; - case 'bool': - case 'boolean': - return (bool) $value; - case 'object': - return $this->fromJson($value, true); - case 'array': - case 'json': - return $this->fromJson($value); - case 'collection': - return new BaseCollection($this->fromJson($value)); - case 'date': - return $this->asDate($value); - case 'datetime': - case 'custom_datetime': - return $this->asDateTime($value); - case 'timestamp': - return $this->asTimestamp($value); - default: - return $value; - } - } - - /** - * Get the type of cast for a model attribute. - * - * @param string $key - * @return string - */ - protected function getCastType($key) - { - if ($this->isCustomDateTimeCast($this->getCasts()[$key])) { - return 'custom_datetime'; - } - - return trim(strtolower($this->getCasts()[$key])); - } - - /** - * Determine if the cast type is a custom date time cast. - * - * @param string $cast - * @return bool - */ - protected function isCustomDateTimeCast($cast) - { - return strncmp($cast, 'date:', 5) === 0 || - strncmp($cast, 'datetime:', 9) === 0; - } - - /** - * Set a given attribute on the model. - * - * @param string $key - * @param mixed $value - * @return mixed - */ - public function setAttribute($key, $value) - { - // First we will check for the presence of a mutator for the set operation - // which simply lets the developers tweak the attribute as it is set on - // the model, such as "json_encoding" an listing of data for storage. - if ($this->hasSetMutator($key)) { - return $this->setMutatedAttributeValue($key, $value); - } - - // If an attribute is listed as a "date", we'll convert it from a DateTime - // instance into a form proper for storage on the database tables using - // the connection grammar's date format. We will auto set the values. - elseif ($value && $this->isDateAttribute($key)) { - $value = $this->fromDateTime($value); - } - - if ($this->isJsonCastable($key) && ! is_null($value)) { - $value = $this->castAttributeAsJson($key, $value); - } - - // If this attribute contains a JSON ->, we'll set the proper value in the - // attribute's underlying array. This takes care of properly nesting an - // attribute in the array's value in the case of deeply nested items. - if (Str::contains($key, '->')) { - return $this->fillJsonAttribute($key, $value); - } - - $this->attributes[$key] = $value; - - return $this; - } - - /** - * Determine if a set mutator exists for an attribute. - * - * @param string $key - * @return bool - */ - public function hasSetMutator($key) - { - return method_exists($this, 'set'.Str::studly($key).'Attribute'); - } - - /** - * Set the value of an attribute using its mutator. - * - * @param string $key - * @param mixed $value - * @return mixed - */ - protected function setMutatedAttributeValue($key, $value) - { - return $this->{'set'.Str::studly($key).'Attribute'}($value); - } - - /** - * Determine if the given attribute is a date or date castable. - * - * @param string $key - * @return bool - */ - protected function isDateAttribute($key) - { - return in_array($key, $this->getDates()) || - $this->isDateCastable($key); - } - - /** - * Set a given JSON attribute on the model. - * - * @param string $key - * @param mixed $value - * @return $this - */ - public function fillJsonAttribute($key, $value) - { - list($key, $path) = explode('->', $key, 2); - - $this->attributes[$key] = $this->asJson($this->getArrayAttributeWithValue( - $path, $key, $value - )); - - return $this; - } - - /** - * Get an array attribute with the given key and value set. - * - * @param string $path - * @param string $key - * @param mixed $value - * @return $this - */ - protected function getArrayAttributeWithValue($path, $key, $value) - { - return tap($this->getArrayAttributeByKey($key), function (&$array) use ($path, $value) { - Arr::set($array, str_replace('->', '.', $path), $value); - }); - } - - /** - * Get an array attribute or return an empty array if it is not set. - * - * @param string $key - * @return array - */ - protected function getArrayAttributeByKey($key) - { - return isset($this->attributes[$key]) ? - $this->fromJson($this->attributes[$key]) : []; - } - - /** - * Cast the given attribute to JSON. - * - * @param string $key - * @param mixed $value - * @return string - */ - protected function castAttributeAsJson($key, $value) - { - $value = $this->asJson($value); - - if ($value === false) { - throw JsonEncodingException::forAttribute( - $this, $key, json_last_error_msg() - ); - } - - return $value; - } - - /** - * Encode the given value as JSON. - * - * @param mixed $value - * @return string - */ - protected function asJson($value) - { - return json_encode($value); - } - - /** - * Decode the given JSON back into an array or object. - * - * @param string $value - * @param bool $asObject - * @return mixed - */ - public function fromJson($value, $asObject = false) - { - return json_decode($value, ! $asObject); - } - - /** - * Return a timestamp as DateTime object with time set to 00:00:00. - * - * @param mixed $value - * @return \Illuminate\Support\Carbon - */ - protected function asDate($value) - { - return $this->asDateTime($value)->startOfDay(); - } - - /** - * Return a timestamp as DateTime object. - * - * @param mixed $value - * @return \Illuminate\Support\Carbon - */ - protected function asDateTime($value) - { - // If this value is already a Carbon instance, we shall just return it as is. - // This prevents us having to re-instantiate a Carbon instance when we know - // it already is one, which wouldn't be fulfilled by the DateTime check. - if ($value instanceof Carbon) { - return $value; - } - - // If the value is already a DateTime instance, we will just skip the rest of - // these checks since they will be a waste of time, and hinder performance - // when checking the field. We will just return the DateTime right away. - if ($value instanceof DateTimeInterface) { - return new Carbon( - $value->format('Y-m-d H:i:s.u'), $value->getTimezone() - ); - } - - // If this value is an integer, we will assume it is a UNIX timestamp's value - // and format a Carbon object from this timestamp. This allows flexibility - // when defining your date fields as they might be UNIX timestamps here. - if (is_numeric($value)) { - return Carbon::createFromTimestamp($value); - } - - // If the value is in simply year, month, day format, we will instantiate the - // Carbon instances from that format. Again, this provides for simple date - // fields on the database, while still supporting Carbonized conversion. - if ($this->isStandardDateFormat($value)) { - return Carbon::createFromFormat('Y-m-d', $value)->startOfDay(); - } - - // Finally, we will just assume this date is in the format used by default on - // the database connection and use that format to create the Carbon object - // that is returned back out to the developers after we convert it here. - return Carbon::createFromFormat( - str_replace('.v', '.u', $this->getDateFormat()), $value - ); - } - - /** - * Determine if the given value is a standard date format. - * - * @param string $value - * @return bool - */ - protected function isStandardDateFormat($value) - { - return preg_match('/^(\d{4})-(\d{1,2})-(\d{1,2})$/', $value); - } - - /** - * Convert a DateTime to a storable string. - * - * @param \DateTime|int $value - * @return string - */ - public function fromDateTime($value) - { - return empty($value) ? $value : $this->asDateTime($value)->format( - $this->getDateFormat() - ); - } - - /** - * Return a timestamp as unix timestamp. - * - * @param mixed $value - * @return int - */ - protected function asTimestamp($value) - { - return $this->asDateTime($value)->getTimestamp(); - } - - /** - * Prepare a date for array / JSON serialization. - * - * @param \DateTimeInterface $date - * @return string - */ - protected function serializeDate(DateTimeInterface $date) - { - return $date->format($this->getDateFormat()); - } - - /** - * Get the attributes that should be converted to dates. - * - * @return array - */ - public function getDates() - { - $defaults = [static::CREATED_AT, static::UPDATED_AT]; - - return $this->usesTimestamps() - ? array_unique(array_merge($this->dates, $defaults)) - : $this->dates; - } - - /** - * Get the format for database stored dates. - * - * @return string - */ - public function getDateFormat() - { - return $this->dateFormat ?: $this->getConnection()->getQueryGrammar()->getDateFormat(); - } - - /** - * Set the date format used by the model. - * - * @param string $format - * @return $this - */ - public function setDateFormat($format) - { - $this->dateFormat = $format; - - return $this; - } - - /** - * Determine whether an attribute should be cast to a native type. - * - * @param string $key - * @param array|string|null $types - * @return bool - */ - public function hasCast($key, $types = null) - { - if (array_key_exists($key, $this->getCasts())) { - return $types ? in_array($this->getCastType($key), (array) $types, true) : true; - } - - return false; - } - - /** - * Get the casts array. - * - * @return array - */ - public function getCasts() - { - if ($this->getIncrementing()) { - return array_merge([$this->getKeyName() => $this->getKeyType()], $this->casts); - } - - return $this->casts; - } - - /** - * Determine whether a value is Date / DateTime castable for inbound manipulation. - * - * @param string $key - * @return bool - */ - protected function isDateCastable($key) - { - return $this->hasCast($key, ['date', 'datetime']); - } - - /** - * Determine whether a value is JSON castable for inbound manipulation. - * - * @param string $key - * @return bool - */ - protected function isJsonCastable($key) - { - return $this->hasCast($key, ['array', 'json', 'object', 'collection']); - } - - /** - * Get all of the current attributes on the model. - * - * @return array - */ - public function getAttributes() - { - return $this->attributes; - } - - /** - * Set the array of model attributes. No checking is done. - * - * @param array $attributes - * @param bool $sync - * @return $this - */ - public function setRawAttributes(array $attributes, $sync = false) - { - $this->attributes = $attributes; - - if ($sync) { - $this->syncOriginal(); - } - - return $this; - } - - /** - * Get the model's original attribute values. - * - * @param string|null $key - * @param mixed $default - * @return mixed|array - */ - public function getOriginal($key = null, $default = null) - { - return Arr::get($this->original, $key, $default); - } - - /** - * Get a subset of the model's attributes. - * - * @param array|mixed $attributes - * @return array - */ - public function only($attributes) - { - $results = []; - - foreach (is_array($attributes) ? $attributes : func_get_args() as $attribute) { - $results[$attribute] = $this->getAttribute($attribute); - } - - return $results; - } - - /** - * Sync the original attributes with the current. - * - * @return $this - */ - public function syncOriginal() - { - $this->original = $this->attributes; - - return $this; - } - - /** - * Sync a single original attribute with its current value. - * - * @param string $attribute - * @return $this - */ - public function syncOriginalAttribute($attribute) - { - $this->original[$attribute] = $this->attributes[$attribute]; - - return $this; - } - - /** - * Sync the changed attributes. - * - * @return $this - */ - public function syncChanges() - { - $this->changes = $this->getDirty(); - - return $this; - } - - /** - * Determine if the model or given attribute(s) have been modified. - * - * @param array|string|null $attributes - * @return bool - */ - public function isDirty($attributes = null) - { - return $this->hasChanges( - $this->getDirty(), is_array($attributes) ? $attributes : func_get_args() - ); - } - - /** - * Determine if the model or given attribute(s) have remained the same. - * - * @param array|string|null $attributes - * @return bool - */ - public function isClean($attributes = null) - { - return ! $this->isDirty(...func_get_args()); - } - - /** - * Determine if the model or given attribute(s) have been modified. - * - * @param array|string|null $attributes - * @return bool - */ - public function wasChanged($attributes = null) - { - return $this->hasChanges( - $this->getChanges(), is_array($attributes) ? $attributes : func_get_args() - ); - } - - /** - * Determine if the given attributes were changed. - * - * @param array $changes - * @param array|string|null $attributes - * @return bool - */ - protected function hasChanges($changes, $attributes = null) - { - // If no specific attributes were provided, we will just see if the dirty array - // already contains any attributes. If it does we will just return that this - // count is greater than zero. Else, we need to check specific attributes. - if (empty($attributes)) { - return count($changes) > 0; - } - - // Here we will spin through every attribute and see if this is in the array of - // dirty attributes. If it is, we will return true and if we make it through - // all of the attributes for the entire array we will return false at end. - foreach (Arr::wrap($attributes) as $attribute) { - if (array_key_exists($attribute, $changes)) { - return true; - } - } - - return false; - } - - /** - * Get the attributes that have been changed since last sync. - * - * @return array - */ - public function getDirty() - { - $dirty = []; - - foreach ($this->getAttributes() as $key => $value) { - if (! $this->originalIsEquivalent($key, $value)) { - $dirty[$key] = $value; - } - } - - return $dirty; - } - - /** - * Get the attributes that were changed. - * - * @return array - */ - public function getChanges() - { - return $this->changes; - } - - /** - * Determine if the new and old values for a given key are equivalent. - * - * @param string $key - * @param mixed $current - * @return bool - */ - protected function originalIsEquivalent($key, $current) - { - if (! array_key_exists($key, $this->original)) { - return false; - } - - $original = $this->getOriginal($key); - - if ($current === $original) { - return true; - } elseif (is_null($current)) { - return false; - } elseif ($this->isDateAttribute($key)) { - return $this->fromDateTime($current) === - $this->fromDateTime($original); - } elseif ($this->hasCast($key)) { - return $this->castAttribute($key, $current) === - $this->castAttribute($key, $original); - } - - return is_numeric($current) && is_numeric($original) - && strcmp((string) $current, (string) $original) === 0; - } - - /** - * Append attributes to query when building a query. - * - * @param array|string $attributes - * @return $this - */ - public function append($attributes) - { - $this->appends = array_unique( - array_merge($this->appends, is_string($attributes) ? func_get_args() : $attributes) - ); - - return $this; - } - - /** - * Set the accessors to append to model arrays. - * - * @param array $appends - * @return $this - */ - public function setAppends(array $appends) - { - $this->appends = $appends; - - return $this; - } - - /** - * Get the mutated attributes for a given instance. - * - * @return array - */ - public function getMutatedAttributes() - { - $class = static::class; - - if (! isset(static::$mutatorCache[$class])) { - static::cacheMutatedAttributes($class); - } - - return static::$mutatorCache[$class]; - } - - /** - * Extract and cache all the mutated attributes of a class. - * - * @param string $class - * @return void - */ - public static function cacheMutatedAttributes($class) - { - static::$mutatorCache[$class] = collect(static::getMutatorMethods($class))->map(function ($match) { - return lcfirst(static::$snakeAttributes ? Str::snake($match) : $match); - })->all(); - } - - /** - * Get all of the attribute mutator methods. - * - * @param mixed $class - * @return array - */ - protected static function getMutatorMethods($class) - { - preg_match_all('/(?<=^|;)get([^;]+?)Attribute(;|$)/', implode(';', get_class_methods($class)), $matches); - - return $matches[1]; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/HasEvents.php b/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/HasEvents.php deleted file mode 100644 index 2f6def1e..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/HasEvents.php +++ /dev/null @@ -1,354 +0,0 @@ -registerObserver($class); - } - } - - /** - * Register a single observer with the model. - * - * @param object|string $class - * @return void - */ - protected function registerObserver($class) - { - $className = is_string($class) ? $class : get_class($class); - - // When registering a model observer, we will spin through the possible events - // and determine if this observer has that method. If it does, we will hook - // it into the model's event system, making it convenient to watch these. - foreach ($this->getObservableEvents() as $event) { - if (method_exists($class, $event)) { - static::registerModelEvent($event, $className.'@'.$event); - } - } - } - - /** - * Get the observable event names. - * - * @return array - */ - public function getObservableEvents() - { - return array_merge( - [ - 'retrieved', 'creating', 'created', 'updating', 'updated', - 'saving', 'saved', 'restoring', 'restored', - 'deleting', 'deleted', 'forceDeleted', - ], - $this->observables - ); - } - - /** - * Set the observable event names. - * - * @param array $observables - * @return $this - */ - public function setObservableEvents(array $observables) - { - $this->observables = $observables; - - return $this; - } - - /** - * Add an observable event name. - * - * @param array|mixed $observables - * @return void - */ - public function addObservableEvents($observables) - { - $this->observables = array_unique(array_merge( - $this->observables, is_array($observables) ? $observables : func_get_args() - )); - } - - /** - * Remove an observable event name. - * - * @param array|mixed $observables - * @return void - */ - public function removeObservableEvents($observables) - { - $this->observables = array_diff( - $this->observables, is_array($observables) ? $observables : func_get_args() - ); - } - - /** - * Register a model event with the dispatcher. - * - * @param string $event - * @param \Closure|string $callback - * @return void - */ - protected static function registerModelEvent($event, $callback) - { - if (isset(static::$dispatcher)) { - $name = static::class; - - static::$dispatcher->listen("eloquent.{$event}: {$name}", $callback); - } - } - - /** - * Fire the given event for the model. - * - * @param string $event - * @param bool $halt - * @return mixed - */ - protected function fireModelEvent($event, $halt = true) - { - if (! isset(static::$dispatcher)) { - return true; - } - - // First, we will get the proper method to call on the event dispatcher, and then we - // will attempt to fire a custom, object based event for the given event. If that - // returns a result we can return that result, or we'll call the string events. - $method = $halt ? 'until' : 'fire'; - - $result = $this->filterModelEventResults( - $this->fireCustomModelEvent($event, $method) - ); - - if ($result === false) { - return false; - } - - return ! empty($result) ? $result : static::$dispatcher->{$method}( - "eloquent.{$event}: ".static::class, $this - ); - } - - /** - * Fire a custom model event for the given event. - * - * @param string $event - * @param string $method - * @return mixed|null - */ - protected function fireCustomModelEvent($event, $method) - { - if (! isset($this->dispatchesEvents[$event])) { - return; - } - - $result = static::$dispatcher->$method(new $this->dispatchesEvents[$event]($this)); - - if (! is_null($result)) { - return $result; - } - } - - /** - * Filter the model event results. - * - * @param mixed $result - * @return mixed - */ - protected function filterModelEventResults($result) - { - if (is_array($result)) { - $result = array_filter($result, function ($response) { - return ! is_null($response); - }); - } - - return $result; - } - - /** - * Register a retrieved model event with the dispatcher. - * - * @param \Closure|string $callback - * @return void - */ - public static function retrieved($callback) - { - static::registerModelEvent('retrieved', $callback); - } - - /** - * Register a saving model event with the dispatcher. - * - * @param \Closure|string $callback - * @return void - */ - public static function saving($callback) - { - static::registerModelEvent('saving', $callback); - } - - /** - * Register a saved model event with the dispatcher. - * - * @param \Closure|string $callback - * @return void - */ - public static function saved($callback) - { - static::registerModelEvent('saved', $callback); - } - - /** - * Register an updating model event with the dispatcher. - * - * @param \Closure|string $callback - * @return void - */ - public static function updating($callback) - { - static::registerModelEvent('updating', $callback); - } - - /** - * Register an updated model event with the dispatcher. - * - * @param \Closure|string $callback - * @return void - */ - public static function updated($callback) - { - static::registerModelEvent('updated', $callback); - } - - /** - * Register a creating model event with the dispatcher. - * - * @param \Closure|string $callback - * @return void - */ - public static function creating($callback) - { - static::registerModelEvent('creating', $callback); - } - - /** - * Register a created model event with the dispatcher. - * - * @param \Closure|string $callback - * @return void - */ - public static function created($callback) - { - static::registerModelEvent('created', $callback); - } - - /** - * Register a deleting model event with the dispatcher. - * - * @param \Closure|string $callback - * @return void - */ - public static function deleting($callback) - { - static::registerModelEvent('deleting', $callback); - } - - /** - * Register a deleted model event with the dispatcher. - * - * @param \Closure|string $callback - * @return void - */ - public static function deleted($callback) - { - static::registerModelEvent('deleted', $callback); - } - - /** - * Remove all of the event listeners for the model. - * - * @return void - */ - public static function flushEventListeners() - { - if (! isset(static::$dispatcher)) { - return; - } - - $instance = new static; - - foreach ($instance->getObservableEvents() as $event) { - static::$dispatcher->forget("eloquent.{$event}: ".static::class); - } - - foreach (array_values($instance->dispatchesEvents) as $event) { - static::$dispatcher->forget($event); - } - } - - /** - * Get the event dispatcher instance. - * - * @return \Illuminate\Contracts\Events\Dispatcher - */ - public static function getEventDispatcher() - { - return static::$dispatcher; - } - - /** - * Set the event dispatcher instance. - * - * @param \Illuminate\Contracts\Events\Dispatcher $dispatcher - * @return void - */ - public static function setEventDispatcher(Dispatcher $dispatcher) - { - static::$dispatcher = $dispatcher; - } - - /** - * Unset the event dispatcher for models. - * - * @return void - */ - public static function unsetEventDispatcher() - { - static::$dispatcher = null; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/HasGlobalScopes.php b/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/HasGlobalScopes.php deleted file mode 100644 index 97a549f6..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/HasGlobalScopes.php +++ /dev/null @@ -1,71 +0,0 @@ -newRelatedInstance($related); - - $foreignKey = $foreignKey ?: $this->getForeignKey(); - - $localKey = $localKey ?: $this->getKeyName(); - - return $this->newHasOne($instance->newQuery(), $this, $instance->getTable().'.'.$foreignKey, $localKey); - } - - /** - * Instantiate a new HasOne relationship. - * - * @param \Illuminate\Database\Eloquent\Builder $query - * @param \Illuminate\Database\Eloquent\Model $parent - * @param string $foreignKey - * @param string $localKey - * @return \Illuminate\Database\Eloquent\Relations\HasOne - */ - protected function newHasOne(Builder $query, Model $parent, $foreignKey, $localKey) - { - return new HasOne($query, $parent, $foreignKey, $localKey); - } - - /** - * Define a polymorphic one-to-one relationship. - * - * @param string $related - * @param string $name - * @param string $type - * @param string $id - * @param string $localKey - * @return \Illuminate\Database\Eloquent\Relations\MorphOne - */ - public function morphOne($related, $name, $type = null, $id = null, $localKey = null) - { - $instance = $this->newRelatedInstance($related); - - list($type, $id) = $this->getMorphs($name, $type, $id); - - $table = $instance->getTable(); - - $localKey = $localKey ?: $this->getKeyName(); - - return $this->newMorphOne($instance->newQuery(), $this, $table.'.'.$type, $table.'.'.$id, $localKey); - } - - /** - * Instantiate a new MorphOne relationship. - * - * @param \Illuminate\Database\Eloquent\Builder $query - * @param \Illuminate\Database\Eloquent\Model $parent - * @param string $type - * @param string $id - * @param string $localKey - * @return \Illuminate\Database\Eloquent\Relations\MorphOne - */ - protected function newMorphOne(Builder $query, Model $parent, $type, $id, $localKey) - { - return new MorphOne($query, $parent, $type, $id, $localKey); - } - - /** - * Define an inverse one-to-one or many relationship. - * - * @param string $related - * @param string $foreignKey - * @param string $ownerKey - * @param string $relation - * @return \Illuminate\Database\Eloquent\Relations\BelongsTo - */ - public function belongsTo($related, $foreignKey = null, $ownerKey = null, $relation = null) - { - // If no relation name was given, we will use this debug backtrace to extract - // the calling method's name and use that as the relationship name as most - // of the time this will be what we desire to use for the relationships. - if (is_null($relation)) { - $relation = $this->guessBelongsToRelation(); - } - - $instance = $this->newRelatedInstance($related); - - // If no foreign key was supplied, we can use a backtrace to guess the proper - // foreign key name by using the name of the relationship function, which - // when combined with an "_id" should conventionally match the columns. - if (is_null($foreignKey)) { - $foreignKey = Str::snake($relation).'_'.$instance->getKeyName(); - } - - // Once we have the foreign key names, we'll just create a new Eloquent query - // for the related models and returns the relationship instance which will - // actually be responsible for retrieving and hydrating every relations. - $ownerKey = $ownerKey ?: $instance->getKeyName(); - - return $this->newBelongsTo( - $instance->newQuery(), $this, $foreignKey, $ownerKey, $relation - ); - } - - /** - * Instantiate a new BelongsTo relationship. - * - * @param \Illuminate\Database\Eloquent\Builder $query - * @param \Illuminate\Database\Eloquent\Model $child - * @param string $foreignKey - * @param string $ownerKey - * @param string $relation - * @return \Illuminate\Database\Eloquent\Relations\BelongsTo - */ - protected function newBelongsTo(Builder $query, Model $child, $foreignKey, $ownerKey, $relation) - { - return new BelongsTo($query, $child, $foreignKey, $ownerKey, $relation); - } - - /** - * Define a polymorphic, inverse one-to-one or many relationship. - * - * @param string $name - * @param string $type - * @param string $id - * @param string $ownerKey - * @return \Illuminate\Database\Eloquent\Relations\MorphTo - */ - public function morphTo($name = null, $type = null, $id = null, $ownerKey = null) - { - // If no name is provided, we will use the backtrace to get the function name - // since that is most likely the name of the polymorphic interface. We can - // use that to get both the class and foreign key that will be utilized. - $name = $name ?: $this->guessBelongsToRelation(); - - list($type, $id) = $this->getMorphs( - Str::snake($name), $type, $id - ); - - // If the type value is null it is probably safe to assume we're eager loading - // the relationship. In this case we'll just pass in a dummy query where we - // need to remove any eager loads that may already be defined on a model. - return empty($class = $this->{$type}) - ? $this->morphEagerTo($name, $type, $id, $ownerKey) - : $this->morphInstanceTo($class, $name, $type, $id, $ownerKey); - } - - /** - * Define a polymorphic, inverse one-to-one or many relationship. - * - * @param string $name - * @param string $type - * @param string $id - * @param string $ownerKey - * @return \Illuminate\Database\Eloquent\Relations\MorphTo - */ - protected function morphEagerTo($name, $type, $id, $ownerKey) - { - return $this->newMorphTo( - $this->newQuery()->setEagerLoads([]), $this, $id, $ownerKey, $type, $name - ); - } - - /** - * Define a polymorphic, inverse one-to-one or many relationship. - * - * @param string $target - * @param string $name - * @param string $type - * @param string $id - * @param string $ownerKey - * @return \Illuminate\Database\Eloquent\Relations\MorphTo - */ - protected function morphInstanceTo($target, $name, $type, $id, $ownerKey) - { - $instance = $this->newRelatedInstance( - static::getActualClassNameForMorph($target) - ); - - return $this->newMorphTo( - $instance->newQuery(), $this, $id, $ownerKey ?? $instance->getKeyName(), $type, $name - ); - } - - /** - * Instantiate a new MorphTo relationship. - * - * @param \Illuminate\Database\Eloquent\Builder $query - * @param \Illuminate\Database\Eloquent\Model $parent - * @param string $foreignKey - * @param string $ownerKey - * @param string $type - * @param string $relation - * @return \Illuminate\Database\Eloquent\Relations\MorphTo - */ - protected function newMorphTo(Builder $query, Model $parent, $foreignKey, $ownerKey, $type, $relation) - { - return new MorphTo($query, $parent, $foreignKey, $ownerKey, $type, $relation); - } - - /** - * Retrieve the actual class name for a given morph class. - * - * @param string $class - * @return string - */ - public static function getActualClassNameForMorph($class) - { - return Arr::get(Relation::morphMap() ?: [], $class, $class); - } - - /** - * Guess the "belongs to" relationship name. - * - * @return string - */ - protected function guessBelongsToRelation() - { - list($one, $two, $caller) = debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS, 3); - - return $caller['function']; - } - - /** - * Define a one-to-many relationship. - * - * @param string $related - * @param string $foreignKey - * @param string $localKey - * @return \Illuminate\Database\Eloquent\Relations\HasMany - */ - public function hasMany($related, $foreignKey = null, $localKey = null) - { - $instance = $this->newRelatedInstance($related); - - $foreignKey = $foreignKey ?: $this->getForeignKey(); - - $localKey = $localKey ?: $this->getKeyName(); - - return $this->newHasMany( - $instance->newQuery(), $this, $instance->getTable().'.'.$foreignKey, $localKey - ); - } - - /** - * Instantiate a new HasMany relationship. - * - * @param \Illuminate\Database\Eloquent\Builder $query - * @param \Illuminate\Database\Eloquent\Model $parent - * @param string $foreignKey - * @param string $localKey - * @return \Illuminate\Database\Eloquent\Relations\HasMany - */ - protected function newHasMany(Builder $query, Model $parent, $foreignKey, $localKey) - { - return new HasMany($query, $parent, $foreignKey, $localKey); - } - - /** - * Define a has-many-through relationship. - * - * @param string $related - * @param string $through - * @param string|null $firstKey - * @param string|null $secondKey - * @param string|null $localKey - * @param string|null $secondLocalKey - * @return \Illuminate\Database\Eloquent\Relations\HasManyThrough - */ - public function hasManyThrough($related, $through, $firstKey = null, $secondKey = null, $localKey = null, $secondLocalKey = null) - { - $through = new $through; - - $firstKey = $firstKey ?: $this->getForeignKey(); - - $secondKey = $secondKey ?: $through->getForeignKey(); - - return $this->newHasManyThrough( - $this->newRelatedInstance($related)->newQuery(), $this, $through, - $firstKey, $secondKey, $localKey ?: $this->getKeyName(), - $secondLocalKey ?: $through->getKeyName() - ); - } - - /** - * Instantiate a new HasManyThrough relationship. - * - * @param \Illuminate\Database\Eloquent\Builder $query - * @param \Illuminate\Database\Eloquent\Model $farParent - * @param \Illuminate\Database\Eloquent\Model $throughParent - * @param string $firstKey - * @param string $secondKey - * @param string $localKey - * @param string $secondLocalKey - * @return \Illuminate\Database\Eloquent\Relations\HasManyThrough - */ - protected function newHasManyThrough(Builder $query, Model $farParent, Model $throughParent, $firstKey, $secondKey, $localKey, $secondLocalKey) - { - return new HasManyThrough($query, $farParent, $throughParent, $firstKey, $secondKey, $localKey, $secondLocalKey); - } - - /** - * Define a polymorphic one-to-many relationship. - * - * @param string $related - * @param string $name - * @param string $type - * @param string $id - * @param string $localKey - * @return \Illuminate\Database\Eloquent\Relations\MorphMany - */ - public function morphMany($related, $name, $type = null, $id = null, $localKey = null) - { - $instance = $this->newRelatedInstance($related); - - // Here we will gather up the morph type and ID for the relationship so that we - // can properly query the intermediate table of a relation. Finally, we will - // get the table and create the relationship instances for the developers. - list($type, $id) = $this->getMorphs($name, $type, $id); - - $table = $instance->getTable(); - - $localKey = $localKey ?: $this->getKeyName(); - - return $this->newMorphMany($instance->newQuery(), $this, $table.'.'.$type, $table.'.'.$id, $localKey); - } - - /** - * Instantiate a new MorphMany relationship. - * - * @param \Illuminate\Database\Eloquent\Builder $query - * @param \Illuminate\Database\Eloquent\Model $parent - * @param string $type - * @param string $id - * @param string $localKey - * @return \Illuminate\Database\Eloquent\Relations\MorphMany - */ - protected function newMorphMany(Builder $query, Model $parent, $type, $id, $localKey) - { - return new MorphMany($query, $parent, $type, $id, $localKey); - } - - /** - * Define a many-to-many relationship. - * - * @param string $related - * @param string $table - * @param string $foreignPivotKey - * @param string $relatedPivotKey - * @param string $parentKey - * @param string $relatedKey - * @param string $relation - * @return \Illuminate\Database\Eloquent\Relations\BelongsToMany - */ - public function belongsToMany($related, $table = null, $foreignPivotKey = null, $relatedPivotKey = null, - $parentKey = null, $relatedKey = null, $relation = null) - { - // If no relationship name was passed, we will pull backtraces to get the - // name of the calling function. We will use that function name as the - // title of this relation since that is a great convention to apply. - if (is_null($relation)) { - $relation = $this->guessBelongsToManyRelation(); - } - - // First, we'll need to determine the foreign key and "other key" for the - // relationship. Once we have determined the keys we'll make the query - // instances as well as the relationship instances we need for this. - $instance = $this->newRelatedInstance($related); - - $foreignPivotKey = $foreignPivotKey ?: $this->getForeignKey(); - - $relatedPivotKey = $relatedPivotKey ?: $instance->getForeignKey(); - - // If no table name was provided, we can guess it by concatenating the two - // models using underscores in alphabetical order. The two model names - // are transformed to snake case from their default CamelCase also. - if (is_null($table)) { - $table = $this->joiningTable($related); - } - - return $this->newBelongsToMany( - $instance->newQuery(), $this, $table, $foreignPivotKey, - $relatedPivotKey, $parentKey ?: $this->getKeyName(), - $relatedKey ?: $instance->getKeyName(), $relation - ); - } - - /** - * Instantiate a new BelongsToMany relationship. - * - * @param \Illuminate\Database\Eloquent\Builder $query - * @param \Illuminate\Database\Eloquent\Model $parent - * @param string $table - * @param string $foreignPivotKey - * @param string $relatedPivotKey - * @param string $parentKey - * @param string $relatedKey - * @param string $relationName - * @return \Illuminate\Database\Eloquent\Relations\BelongsToMany - */ - protected function newBelongsToMany(Builder $query, Model $parent, $table, $foreignPivotKey, $relatedPivotKey, - $parentKey, $relatedKey, $relationName = null) - { - return new BelongsToMany($query, $parent, $table, $foreignPivotKey, $relatedPivotKey, $parentKey, $relatedKey, $relationName); - } - - /** - * Define a polymorphic many-to-many relationship. - * - * @param string $related - * @param string $name - * @param string $table - * @param string $foreignPivotKey - * @param string $relatedPivotKey - * @param string $parentKey - * @param string $relatedKey - * @param bool $inverse - * @return \Illuminate\Database\Eloquent\Relations\MorphToMany - */ - public function morphToMany($related, $name, $table = null, $foreignPivotKey = null, - $relatedPivotKey = null, $parentKey = null, - $relatedKey = null, $inverse = false) - { - $caller = $this->guessBelongsToManyRelation(); - - // First, we will need to determine the foreign key and "other key" for the - // relationship. Once we have determined the keys we will make the query - // instances, as well as the relationship instances we need for these. - $instance = $this->newRelatedInstance($related); - - $foreignPivotKey = $foreignPivotKey ?: $name.'_id'; - - $relatedPivotKey = $relatedPivotKey ?: $instance->getForeignKey(); - - // Now we're ready to create a new query builder for this related model and - // the relationship instances for this relation. This relations will set - // appropriate query constraints then entirely manages the hydrations. - $table = $table ?: Str::plural($name); - - return $this->newMorphToMany( - $instance->newQuery(), $this, $name, $table, - $foreignPivotKey, $relatedPivotKey, $parentKey ?: $this->getKeyName(), - $relatedKey ?: $instance->getKeyName(), $caller, $inverse - ); - } - - /** - * Instantiate a new HasManyThrough relationship. - * - * @param \Illuminate\Database\Eloquent\Builder $query - * @param \Illuminate\Database\Eloquent\Model $parent - * @param string $name - * @param string $table - * @param string $foreignPivotKey - * @param string $relatedPivotKey - * @param string $parentKey - * @param string $relatedKey - * @param string $relationName - * @param bool $inverse - * @return \Illuminate\Database\Eloquent\Relations\MorphToMany - */ - protected function newMorphToMany(Builder $query, Model $parent, $name, $table, $foreignPivotKey, - $relatedPivotKey, $parentKey, $relatedKey, - $relationName = null, $inverse = false) - { - return new MorphToMany($query, $parent, $name, $table, $foreignPivotKey, $relatedPivotKey, $parentKey, $relatedKey, - $relationName, $inverse); - } - - /** - * Define a polymorphic, inverse many-to-many relationship. - * - * @param string $related - * @param string $name - * @param string $table - * @param string $foreignPivotKey - * @param string $relatedPivotKey - * @param string $parentKey - * @param string $relatedKey - * @return \Illuminate\Database\Eloquent\Relations\MorphToMany - */ - public function morphedByMany($related, $name, $table = null, $foreignPivotKey = null, - $relatedPivotKey = null, $parentKey = null, $relatedKey = null) - { - $foreignPivotKey = $foreignPivotKey ?: $this->getForeignKey(); - - // For the inverse of the polymorphic many-to-many relations, we will change - // the way we determine the foreign and other keys, as it is the opposite - // of the morph-to-many method since we're figuring out these inverses. - $relatedPivotKey = $relatedPivotKey ?: $name.'_id'; - - return $this->morphToMany( - $related, $name, $table, $foreignPivotKey, - $relatedPivotKey, $parentKey, $relatedKey, true - ); - } - - /** - * Get the relationship name of the belongs to many. - * - * @return string - */ - protected function guessBelongsToManyRelation() - { - $caller = Arr::first(debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS), function ($trace) { - return ! in_array($trace['function'], Model::$manyMethods); - }); - - return ! is_null($caller) ? $caller['function'] : null; - } - - /** - * Get the joining table name for a many-to-many relation. - * - * @param string $related - * @return string - */ - public function joiningTable($related) - { - // The joining table name, by convention, is simply the snake cased models - // sorted alphabetically and concatenated with an underscore, so we can - // just sort the models and join them together to get the table name. - $models = [ - Str::snake(class_basename($related)), - Str::snake(class_basename($this)), - ]; - - // Now that we have the model names in an array we can just sort them and - // use the implode function to join them together with an underscores, - // which is typically used by convention within the database system. - sort($models); - - return strtolower(implode('_', $models)); - } - - /** - * Determine if the model touches a given relation. - * - * @param string $relation - * @return bool - */ - public function touches($relation) - { - return in_array($relation, $this->touches); - } - - /** - * Touch the owning relations of the model. - * - * @return void - */ - public function touchOwners() - { - foreach ($this->touches as $relation) { - $this->$relation()->touch(); - - if ($this->$relation instanceof self) { - $this->$relation->fireModelEvent('saved', false); - - $this->$relation->touchOwners(); - } elseif ($this->$relation instanceof Collection) { - $this->$relation->each(function (Model $relation) { - $relation->touchOwners(); - }); - } - } - } - - /** - * Get the polymorphic relationship columns. - * - * @param string $name - * @param string $type - * @param string $id - * @return array - */ - protected function getMorphs($name, $type, $id) - { - return [$type ?: $name.'_type', $id ?: $name.'_id']; - } - - /** - * Get the class name for polymorphic relations. - * - * @return string - */ - public function getMorphClass() - { - $morphMap = Relation::morphMap(); - - if (! empty($morphMap) && in_array(static::class, $morphMap)) { - return array_search(static::class, $morphMap, true); - } - - return static::class; - } - - /** - * Create a new model instance for a related model. - * - * @param string $class - * @return mixed - */ - protected function newRelatedInstance($class) - { - return tap(new $class, function ($instance) { - if (! $instance->getConnectionName()) { - $instance->setConnection($this->connection); - } - }); - } - - /** - * Get all the loaded relations for the instance. - * - * @return array - */ - public function getRelations() - { - return $this->relations; - } - - /** - * Get a specified relationship. - * - * @param string $relation - * @return mixed - */ - public function getRelation($relation) - { - return $this->relations[$relation]; - } - - /** - * Determine if the given relation is loaded. - * - * @param string $key - * @return bool - */ - public function relationLoaded($key) - { - return array_key_exists($key, $this->relations); - } - - /** - * Set the given relationship on the model. - * - * @param string $relation - * @param mixed $value - * @return $this - */ - public function setRelation($relation, $value) - { - $this->relations[$relation] = $value; - - return $this; - } - - /** - * Unset a loaded relationship. - * - * @param string $relation - * @return $this - */ - public function unsetRelation($relation) - { - unset($this->relations[$relation]); - - return $this; - } - - /** - * Set the entire relations array on the model. - * - * @param array $relations - * @return $this - */ - public function setRelations(array $relations) - { - $this->relations = $relations; - - return $this; - } - - /** - * Get the relationships that are touched on save. - * - * @return array - */ - public function getTouchedRelations() - { - return $this->touches; - } - - /** - * Set the relationships that are touched on save. - * - * @param array $touches - * @return $this - */ - public function setTouchedRelations(array $touches) - { - $this->touches = $touches; - - return $this; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/HasTimestamps.php b/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/HasTimestamps.php deleted file mode 100644 index 8e3d488e..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/HasTimestamps.php +++ /dev/null @@ -1,126 +0,0 @@ -usesTimestamps()) { - return false; - } - - $this->updateTimestamps(); - - return $this->save(); - } - - /** - * Update the creation and update timestamps. - * - * @return void - */ - protected function updateTimestamps() - { - $time = $this->freshTimestamp(); - - if (! is_null(static::UPDATED_AT) && ! $this->isDirty(static::UPDATED_AT)) { - $this->setUpdatedAt($time); - } - - if (! $this->exists && ! is_null(static::CREATED_AT) && - ! $this->isDirty(static::CREATED_AT)) { - $this->setCreatedAt($time); - } - } - - /** - * Set the value of the "created at" attribute. - * - * @param mixed $value - * @return $this - */ - public function setCreatedAt($value) - { - $this->{static::CREATED_AT} = $value; - - return $this; - } - - /** - * Set the value of the "updated at" attribute. - * - * @param mixed $value - * @return $this - */ - public function setUpdatedAt($value) - { - $this->{static::UPDATED_AT} = $value; - - return $this; - } - - /** - * Get a fresh timestamp for the model. - * - * @return \Illuminate\Support\Carbon - */ - public function freshTimestamp() - { - return new Carbon; - } - - /** - * Get a fresh timestamp for the model. - * - * @return string - */ - public function freshTimestampString() - { - return $this->fromDateTime($this->freshTimestamp()); - } - - /** - * Determine if the model uses timestamps. - * - * @return bool - */ - public function usesTimestamps() - { - return $this->timestamps; - } - - /** - * Get the name of the "created at" column. - * - * @return string - */ - public function getCreatedAtColumn() - { - return static::CREATED_AT; - } - - /** - * Get the name of the "updated at" column. - * - * @return string - */ - public function getUpdatedAtColumn() - { - return static::UPDATED_AT; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/HidesAttributes.php b/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/HidesAttributes.php deleted file mode 100644 index 7bd9ef93..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/HidesAttributes.php +++ /dev/null @@ -1,126 +0,0 @@ -hidden; - } - - /** - * Set the hidden attributes for the model. - * - * @param array $hidden - * @return $this - */ - public function setHidden(array $hidden) - { - $this->hidden = $hidden; - - return $this; - } - - /** - * Add hidden attributes for the model. - * - * @param array|string|null $attributes - * @return void - */ - public function addHidden($attributes = null) - { - $this->hidden = array_merge( - $this->hidden, is_array($attributes) ? $attributes : func_get_args() - ); - } - - /** - * Get the visible attributes for the model. - * - * @return array - */ - public function getVisible() - { - return $this->visible; - } - - /** - * Set the visible attributes for the model. - * - * @param array $visible - * @return $this - */ - public function setVisible(array $visible) - { - $this->visible = $visible; - - return $this; - } - - /** - * Add visible attributes for the model. - * - * @param array|string|null $attributes - * @return void - */ - public function addVisible($attributes = null) - { - $this->visible = array_merge( - $this->visible, is_array($attributes) ? $attributes : func_get_args() - ); - } - - /** - * Make the given, typically hidden, attributes visible. - * - * @param array|string $attributes - * @return $this - */ - public function makeVisible($attributes) - { - $this->hidden = array_diff($this->hidden, (array) $attributes); - - if (! empty($this->visible)) { - $this->addVisible($attributes); - } - - return $this; - } - - /** - * Make the given, typically visible, attributes hidden. - * - * @param array|string $attributes - * @return $this - */ - public function makeHidden($attributes) - { - $attributes = (array) $attributes; - - $this->visible = array_diff($this->visible, $attributes); - - $this->hidden = array_unique(array_merge($this->hidden, $attributes)); - - return $this; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/QueriesRelationships.php b/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/QueriesRelationships.php deleted file mode 100644 index 5f2ec2da..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/QueriesRelationships.php +++ /dev/null @@ -1,314 +0,0 @@ -=', $count = 1, $boolean = 'and', Closure $callback = null) - { - if (strpos($relation, '.') !== false) { - return $this->hasNested($relation, $operator, $count, $boolean, $callback); - } - - $relation = $this->getRelationWithoutConstraints($relation); - - // If we only need to check for the existence of the relation, then we can optimize - // the subquery to only run a "where exists" clause instead of this full "count" - // clause. This will make these queries run much faster compared with a count. - $method = $this->canUseExistsForExistenceCheck($operator, $count) - ? 'getRelationExistenceQuery' - : 'getRelationExistenceCountQuery'; - - $hasQuery = $relation->{$method}( - $relation->getRelated()->newQuery(), $this - ); - - // Next we will call any given callback as an "anonymous" scope so they can get the - // proper logical grouping of the where clauses if needed by this Eloquent query - // builder. Then, we will be ready to finalize and return this query instance. - if ($callback) { - $hasQuery->callScope($callback); - } - - return $this->addHasWhere( - $hasQuery, $relation, $operator, $count, $boolean - ); - } - - /** - * Add nested relationship count / exists conditions to the query. - * - * Sets up recursive call to whereHas until we finish the nested relation. - * - * @param string $relations - * @param string $operator - * @param int $count - * @param string $boolean - * @param \Closure|null $callback - * @return \Illuminate\Database\Eloquent\Builder|static - */ - protected function hasNested($relations, $operator = '>=', $count = 1, $boolean = 'and', $callback = null) - { - $relations = explode('.', $relations); - - $closure = function ($q) use (&$closure, &$relations, $operator, $count, $callback) { - // In order to nest "has", we need to add count relation constraints on the - // callback Closure. We'll do this by simply passing the Closure its own - // reference to itself so it calls itself recursively on each segment. - count($relations) > 1 - ? $q->whereHas(array_shift($relations), $closure) - : $q->has(array_shift($relations), $operator, $count, 'and', $callback); - }; - - return $this->has(array_shift($relations), '>=', 1, $boolean, $closure); - } - - /** - * Add a relationship count / exists condition to the query with an "or". - * - * @param string $relation - * @param string $operator - * @param int $count - * @return \Illuminate\Database\Eloquent\Builder|static - */ - public function orHas($relation, $operator = '>=', $count = 1) - { - return $this->has($relation, $operator, $count, 'or'); - } - - /** - * Add a relationship count / exists condition to the query. - * - * @param string $relation - * @param string $boolean - * @param \Closure|null $callback - * @return \Illuminate\Database\Eloquent\Builder|static - */ - public function doesntHave($relation, $boolean = 'and', Closure $callback = null) - { - return $this->has($relation, '<', 1, $boolean, $callback); - } - - /** - * Add a relationship count / exists condition to the query with an "or". - * - * @param string $relation - * @return \Illuminate\Database\Eloquent\Builder|static - */ - public function orDoesntHave($relation) - { - return $this->doesntHave($relation, 'or'); - } - - /** - * Add a relationship count / exists condition to the query with where clauses. - * - * @param string $relation - * @param \Closure|null $callback - * @param string $operator - * @param int $count - * @return \Illuminate\Database\Eloquent\Builder|static - */ - public function whereHas($relation, Closure $callback = null, $operator = '>=', $count = 1) - { - return $this->has($relation, $operator, $count, 'and', $callback); - } - - /** - * Add a relationship count / exists condition to the query with where clauses and an "or". - * - * @param string $relation - * @param \Closure $callback - * @param string $operator - * @param int $count - * @return \Illuminate\Database\Eloquent\Builder|static - */ - public function orWhereHas($relation, Closure $callback = null, $operator = '>=', $count = 1) - { - return $this->has($relation, $operator, $count, 'or', $callback); - } - - /** - * Add a relationship count / exists condition to the query with where clauses. - * - * @param string $relation - * @param \Closure|null $callback - * @return \Illuminate\Database\Eloquent\Builder|static - */ - public function whereDoesntHave($relation, Closure $callback = null) - { - return $this->doesntHave($relation, 'and', $callback); - } - - /** - * Add a relationship count / exists condition to the query with where clauses and an "or". - * - * @param string $relation - * @param \Closure $callback - * @return \Illuminate\Database\Eloquent\Builder|static - */ - public function orWhereDoesntHave($relation, Closure $callback = null) - { - return $this->doesntHave($relation, 'or', $callback); - } - - /** - * Add subselect queries to count the relations. - * - * @param mixed $relations - * @return $this - */ - public function withCount($relations) - { - if (empty($relations)) { - return $this; - } - - if (is_null($this->query->columns)) { - $this->query->select([$this->query->from.'.*']); - } - - $relations = is_array($relations) ? $relations : func_get_args(); - - foreach ($this->parseWithRelations($relations) as $name => $constraints) { - // First we will determine if the name has been aliased using an "as" clause on the name - // and if it has we will extract the actual relationship name and the desired name of - // the resulting column. This allows multiple counts on the same relationship name. - $segments = explode(' ', $name); - - unset($alias); - - if (count($segments) == 3 && Str::lower($segments[1]) == 'as') { - list($name, $alias) = [$segments[0], $segments[2]]; - } - - $relation = $this->getRelationWithoutConstraints($name); - - // Here we will get the relationship count query and prepare to add it to the main query - // as a sub-select. First, we'll get the "has" query and use that to get the relation - // count query. We will normalize the relation name then append _count as the name. - $query = $relation->getRelationExistenceCountQuery( - $relation->getRelated()->newQuery(), $this - ); - - $query->callScope($constraints); - - $query = $query->mergeConstraintsFrom($relation->getQuery())->toBase(); - - if (count($query->columns) > 1) { - $query->columns = [$query->columns[0]]; - } - - // Finally we will add the proper result column alias to the query and run the subselect - // statement against the query builder. Then we will return the builder instance back - // to the developer for further constraint chaining that needs to take place on it. - $column = $alias ?? Str::snake($name.'_count'); - - $this->selectSub($query, $column); - } - - return $this; - } - - /** - * Add the "has" condition where clause to the query. - * - * @param \Illuminate\Database\Eloquent\Builder $hasQuery - * @param \Illuminate\Database\Eloquent\Relations\Relation $relation - * @param string $operator - * @param int $count - * @param string $boolean - * @return \Illuminate\Database\Eloquent\Builder|static - */ - protected function addHasWhere(Builder $hasQuery, Relation $relation, $operator, $count, $boolean) - { - $hasQuery->mergeConstraintsFrom($relation->getQuery()); - - return $this->canUseExistsForExistenceCheck($operator, $count) - ? $this->addWhereExistsQuery($hasQuery->toBase(), $boolean, $operator === '<' && $count === 1) - : $this->addWhereCountQuery($hasQuery->toBase(), $operator, $count, $boolean); - } - - /** - * Merge the where constraints from another query to the current query. - * - * @param \Illuminate\Database\Eloquent\Builder $from - * @return \Illuminate\Database\Eloquent\Builder|static - */ - public function mergeConstraintsFrom(Builder $from) - { - $whereBindings = $from->getQuery()->getRawBindings()['where'] ?? []; - - // Here we have some other query that we want to merge the where constraints from. We will - // copy over any where constraints on the query as well as remove any global scopes the - // query might have removed. Then we will return ourselves with the finished merging. - return $this->withoutGlobalScopes( - $from->removedScopes() - )->mergeWheres( - $from->getQuery()->wheres, $whereBindings - ); - } - - /** - * Add a sub-query count clause to this query. - * - * @param \Illuminate\Database\Query\Builder $query - * @param string $operator - * @param int $count - * @param string $boolean - * @return $this - */ - protected function addWhereCountQuery(QueryBuilder $query, $operator = '>=', $count = 1, $boolean = 'and') - { - $this->query->addBinding($query->getBindings(), 'where'); - - return $this->where( - new Expression('('.$query->toSql().')'), - $operator, - is_numeric($count) ? new Expression($count) : $count, - $boolean - ); - } - - /** - * Get the "has relation" base query instance. - * - * @param string $relation - * @return \Illuminate\Database\Eloquent\Relations\Relation - */ - protected function getRelationWithoutConstraints($relation) - { - return Relation::noConstraints(function () use ($relation) { - return $this->getModel()->{$relation}(); - }); - } - - /** - * Check if we can run an "exists" query to optimize performance. - * - * @param string $operator - * @param int $count - * @return bool - */ - protected function canUseExistsForExistenceCheck($operator, $count) - { - return ($operator === '>=' || $operator === '<') && $count === 1; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Factory.php b/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Factory.php deleted file mode 100644 index 82917ae3..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Factory.php +++ /dev/null @@ -1,326 +0,0 @@ -faker = $faker; - } - - /** - * Create a new factory container. - * - * @param \Faker\Generator $faker - * @param string|null $pathToFactories - * @return static - */ - public static function construct(Faker $faker, $pathToFactories = null) - { - $pathToFactories = $pathToFactories ?: database_path('factories'); - - return (new static($faker))->load($pathToFactories); - } - - /** - * Define a class with a given short-name. - * - * @param string $class - * @param string $name - * @param callable $attributes - * @return $this - */ - public function defineAs($class, $name, callable $attributes) - { - return $this->define($class, $attributes, $name); - } - - /** - * Define a class with a given set of attributes. - * - * @param string $class - * @param callable $attributes - * @param string $name - * @return $this - */ - public function define($class, callable $attributes, $name = 'default') - { - $this->definitions[$class][$name] = $attributes; - - return $this; - } - - /** - * Define a state with a given set of attributes. - * - * @param string $class - * @param string $state - * @param callable|array $attributes - * @return $this - */ - public function state($class, $state, $attributes) - { - $this->states[$class][$state] = $attributes; - - return $this; - } - - /** - * Define a callback to run after making a model. - * - * @param string $class - * @param callable $callback - * @param string $name - * @return $this - */ - public function afterMaking($class, callable $callback, $name = 'default') - { - $this->afterMaking[$class][$name][] = $callback; - - return $this; - } - - /** - * Define a callback to run after making a model with given state. - * - * @param string $class - * @param string $state - * @param callable $callback - * @return $this - */ - public function afterMakingState($class, $state, callable $callback) - { - return $this->afterMaking($class, $callback, $state); - } - - /** - * Define a callback to run after creating a model. - * - * @param string $class - * @param callable $callback - * @param string $name - * @return $this - */ - public function afterCreating($class, callable $callback, $name = 'default') - { - $this->afterCreating[$class][$name][] = $callback; - - return $this; - } - - /** - * Define a callback to run after creating a model with given state. - * - * @param string $class - * @param string $state - * @param callable $callback - * @return $this - */ - public function afterCreatingState($class, $state, callable $callback) - { - return $this->afterCreating($class, $callback, $state); - } - - /** - * Create an instance of the given model and persist it to the database. - * - * @param string $class - * @param array $attributes - * @return mixed - */ - public function create($class, array $attributes = []) - { - return $this->of($class)->create($attributes); - } - - /** - * Create an instance of the given model and type and persist it to the database. - * - * @param string $class - * @param string $name - * @param array $attributes - * @return mixed - */ - public function createAs($class, $name, array $attributes = []) - { - return $this->of($class, $name)->create($attributes); - } - - /** - * Create an instance of the given model. - * - * @param string $class - * @param array $attributes - * @return mixed - */ - public function make($class, array $attributes = []) - { - return $this->of($class)->make($attributes); - } - - /** - * Create an instance of the given model and type. - * - * @param string $class - * @param string $name - * @param array $attributes - * @return mixed - */ - public function makeAs($class, $name, array $attributes = []) - { - return $this->of($class, $name)->make($attributes); - } - - /** - * Get the raw attribute array for a given named model. - * - * @param string $class - * @param string $name - * @param array $attributes - * @return array - */ - public function rawOf($class, $name, array $attributes = []) - { - return $this->raw($class, $attributes, $name); - } - - /** - * Get the raw attribute array for a given model. - * - * @param string $class - * @param array $attributes - * @param string $name - * @return array - */ - public function raw($class, array $attributes = [], $name = 'default') - { - return array_merge( - call_user_func($this->definitions[$class][$name], $this->faker), $attributes - ); - } - - /** - * Create a builder for the given model. - * - * @param string $class - * @param string $name - * @return \Illuminate\Database\Eloquent\FactoryBuilder - */ - public function of($class, $name = 'default') - { - return new FactoryBuilder( - $class, $name, $this->definitions, $this->states, - $this->afterMaking, $this->afterCreating, $this->faker - ); - } - - /** - * Load factories from path. - * - * @param string $path - * @return $this - */ - public function load($path) - { - $factory = $this; - - if (is_dir($path)) { - foreach (Finder::create()->files()->name('*.php')->in($path) as $file) { - require $file->getRealPath(); - } - } - - return $factory; - } - - /** - * Determine if the given offset exists. - * - * @param string $offset - * @return bool - */ - public function offsetExists($offset) - { - return isset($this->definitions[$offset]); - } - - /** - * Get the value of the given offset. - * - * @param string $offset - * @return mixed - */ - public function offsetGet($offset) - { - return $this->make($offset); - } - - /** - * Set the given offset to the given value. - * - * @param string $offset - * @param callable $value - * @return void - */ - public function offsetSet($offset, $value) - { - return $this->define($offset, $value); - } - - /** - * Unset the value at the given offset. - * - * @param string $offset - * @return void - */ - public function offsetUnset($offset) - { - unset($this->definitions[$offset]); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/FactoryBuilder.php b/vendor/laravel/framework/src/Illuminate/Database/Eloquent/FactoryBuilder.php deleted file mode 100644 index 3005cb68..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/FactoryBuilder.php +++ /dev/null @@ -1,435 +0,0 @@ -name = $name; - $this->class = $class; - $this->faker = $faker; - $this->states = $states; - $this->definitions = $definitions; - $this->afterMaking = $afterMaking; - $this->afterCreating = $afterCreating; - } - - /** - * Set the amount of models you wish to create / make. - * - * @param int $amount - * @return $this - */ - public function times($amount) - { - $this->amount = $amount; - - return $this; - } - - /** - * Set the states to be applied to the model. - * - * @param array|mixed $states - * @return $this - */ - public function states($states) - { - $this->activeStates = is_array($states) ? $states : func_get_args(); - - return $this; - } - - /** - * Set the database connection on which the model instance should be persisted. - * - * @param string $name - * @return $this - */ - public function connection($name) - { - $this->connection = $name; - - return $this; - } - - /** - * Create a model and persist it in the database if requested. - * - * @param array $attributes - * @return \Closure - */ - public function lazy(array $attributes = []) - { - return function () use ($attributes) { - return $this->create($attributes); - }; - } - - /** - * Create a collection of models and persist them to the database. - * - * @param array $attributes - * @return mixed - */ - public function create(array $attributes = []) - { - $results = $this->make($attributes); - - if ($results instanceof Model) { - $this->store(collect([$results])); - - $this->callAfterCreating(collect([$results])); - } else { - $this->store($results); - - $this->callAfterCreating($results); - } - - return $results; - } - - /** - * Set the connection name on the results and store them. - * - * @param \Illuminate\Support\Collection $results - * @return void - */ - protected function store($results) - { - $results->each(function ($model) { - if (! isset($this->connection)) { - $model->setConnection($model->newQueryWithoutScopes()->getConnection()->getName()); - } - - $model->save(); - }); - } - - /** - * Create a collection of models. - * - * @param array $attributes - * @return mixed - */ - public function make(array $attributes = []) - { - if ($this->amount === null) { - return tap($this->makeInstance($attributes), function ($instance) { - $this->callAfterMaking(collect([$instance])); - }); - } - - if ($this->amount < 1) { - return (new $this->class)->newCollection(); - } - - $instances = (new $this->class)->newCollection(array_map(function () use ($attributes) { - return $this->makeInstance($attributes); - }, range(1, $this->amount))); - - $this->callAfterMaking($instances); - - return $instances; - } - - /** - * Create an array of raw attribute arrays. - * - * @param array $attributes - * @return mixed - */ - public function raw(array $attributes = []) - { - if ($this->amount === null) { - return $this->getRawAttributes($attributes); - } - - if ($this->amount < 1) { - return []; - } - - return array_map(function () use ($attributes) { - return $this->getRawAttributes($attributes); - }, range(1, $this->amount)); - } - - /** - * Get a raw attributes array for the model. - * - * @param array $attributes - * @return mixed - * - * @throws \InvalidArgumentException - */ - protected function getRawAttributes(array $attributes = []) - { - if (! isset($this->definitions[$this->class][$this->name])) { - throw new InvalidArgumentException("Unable to locate factory with name [{$this->name}] [{$this->class}]."); - } - - $definition = call_user_func( - $this->definitions[$this->class][$this->name], - $this->faker, $attributes - ); - - return $this->expandAttributes( - array_merge($this->applyStates($definition, $attributes), $attributes) - ); - } - - /** - * Make an instance of the model with the given attributes. - * - * @param array $attributes - * @return \Illuminate\Database\Eloquent\Model - */ - protected function makeInstance(array $attributes = []) - { - return Model::unguarded(function () use ($attributes) { - $instance = new $this->class( - $this->getRawAttributes($attributes) - ); - - if (isset($this->connection)) { - $instance->setConnection($this->connection); - } - - return $instance; - }); - } - - /** - * Apply the active states to the model definition array. - * - * @param array $definition - * @param array $attributes - * @return array - */ - protected function applyStates(array $definition, array $attributes = []) - { - foreach ($this->activeStates as $state) { - if (! isset($this->states[$this->class][$state])) { - if ($this->stateHasAfterCallback($state)) { - continue; - } - - throw new InvalidArgumentException("Unable to locate [{$state}] state for [{$this->class}]."); - } - - $definition = array_merge( - $definition, - $this->stateAttributes($state, $attributes) - ); - } - - return $definition; - } - - /** - * Get the state attributes. - * - * @param string $state - * @param array $attributes - * @return array - */ - protected function stateAttributes($state, array $attributes) - { - $stateAttributes = $this->states[$this->class][$state]; - - if (! is_callable($stateAttributes)) { - return $stateAttributes; - } - - return call_user_func( - $stateAttributes, - $this->faker, $attributes - ); - } - - /** - * Expand all attributes to their underlying values. - * - * @param array $attributes - * @return array - */ - protected function expandAttributes(array $attributes) - { - foreach ($attributes as &$attribute) { - if (is_callable($attribute) && ! is_string($attribute) && ! is_array($attribute)) { - $attribute = $attribute($attributes); - } - - if ($attribute instanceof static) { - $attribute = $attribute->create()->getKey(); - } - - if ($attribute instanceof Model) { - $attribute = $attribute->getKey(); - } - } - - return $attributes; - } - - /** - * Run after making callbacks on a collection of models. - * - * @param \Illuminate\Support\Collection $models - * @return void - */ - public function callAfterMaking($models) - { - $this->callAfter($this->afterMaking, $models); - } - - /** - * Run after creating callbacks on a collection of models. - * - * @param \Illuminate\Support\Collection $models - * @return void - */ - public function callAfterCreating($models) - { - $this->callAfter($this->afterCreating, $models); - } - - /** - * Call after callbacks for each model and state. - * - * @param array $afterCallbacks - * @param \Illuminate\Support\Collection $models - * @return void - */ - protected function callAfter(array $afterCallbacks, $models) - { - $states = array_merge([$this->name], $this->activeStates); - - $models->each(function ($model) use ($states, $afterCallbacks) { - foreach ($states as $state) { - $this->callAfterCallbacks($afterCallbacks, $model, $state); - } - }); - } - - /** - * Call after callbacks for each model and state. - * - * @param array $afterCallbacks - * @param \Illuminate\Database\Eloquent\Model $model - * @param string $state - * @return void - */ - protected function callAfterCallbacks(array $afterCallbacks, $model, $state) - { - if (! isset($afterCallbacks[$this->class][$state])) { - return; - } - - foreach ($afterCallbacks[$this->class][$state] as $callback) { - $callback($model, $this->faker); - } - } - - /** - * Determine if the given state has an "after" callback. - * - * @param string $state - * @return bool - */ - protected function stateHasAfterCallback($state) - { - return isset($this->afterMaking[$this->class][$state]) || - isset($this->afterCreating[$this->class][$state]); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/JsonEncodingException.php b/vendor/laravel/framework/src/Illuminate/Database/Eloquent/JsonEncodingException.php deleted file mode 100644 index 5878b0f7..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/JsonEncodingException.php +++ /dev/null @@ -1,35 +0,0 @@ -getKey().'] to JSON: '.$message); - } - - /** - * Create a new JSON encoding exception for an attribute. - * - * @param mixed $model - * @param mixed $key - * @param string $message - * @return static - */ - public static function forAttribute($model, $key, $message) - { - $class = get_class($model); - - return new static("Unable to encode attribute [{$key}] for model [{$class}] to JSON: {$message}."); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/MassAssignmentException.php b/vendor/laravel/framework/src/Illuminate/Database/Eloquent/MassAssignmentException.php deleted file mode 100755 index 7c81aae5..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/MassAssignmentException.php +++ /dev/null @@ -1,10 +0,0 @@ -bootIfNotBooted(); - - $this->syncOriginal(); - - $this->fill($attributes); - } - - /** - * Check if the model needs to be booted and if so, do it. - * - * @return void - */ - protected function bootIfNotBooted() - { - if (! isset(static::$booted[static::class])) { - static::$booted[static::class] = true; - - $this->fireModelEvent('booting', false); - - static::boot(); - - $this->fireModelEvent('booted', false); - } - } - - /** - * The "booting" method of the model. - * - * @return void - */ - protected static function boot() - { - static::bootTraits(); - } - - /** - * Boot all of the bootable traits on the model. - * - * @return void - */ - protected static function bootTraits() - { - $class = static::class; - - $booted = []; - - foreach (class_uses_recursive($class) as $trait) { - $method = 'boot'.class_basename($trait); - - if (method_exists($class, $method) && ! in_array($method, $booted)) { - forward_static_call([$class, $method]); - - $booted[] = $method; - } - } - } - - /** - * Clear the list of booted models so they will be re-booted. - * - * @return void - */ - public static function clearBootedModels() - { - static::$booted = []; - - static::$globalScopes = []; - } - - /** - * Disables relationship model touching for the current class during given callback scope. - * - * @param callable $callback - * @return void - */ - public static function withoutTouching(callable $callback) - { - static::withoutTouchingOn([static::class], $callback); - } - - /** - * Disables relationship model touching for the given model classes during given callback scope. - * - * @param array $models - * @param callable $callback - * @return void - */ - public static function withoutTouchingOn(array $models, callable $callback) - { - static::$ignoreOnTouch = array_values(array_merge(static::$ignoreOnTouch, $models)); - - try { - call_user_func($callback); - } finally { - static::$ignoreOnTouch = array_values(array_diff(static::$ignoreOnTouch, $models)); - } - } - - /** - * Determine if the given model is ignoring touches. - * - * @param string|null $class - * @return bool - */ - public static function isIgnoringTouch($class = null) - { - $class = $class ?: static::class; - - foreach (static::$ignoreOnTouch as $ignoredClass) { - if ($class === $ignoredClass || is_subclass_of($class, $ignoredClass)) { - return true; - } - } - - return false; - } - - /** - * Fill the model with an array of attributes. - * - * @param array $attributes - * @return $this - * - * @throws \Illuminate\Database\Eloquent\MassAssignmentException - */ - public function fill(array $attributes) - { - $totallyGuarded = $this->totallyGuarded(); - - foreach ($this->fillableFromArray($attributes) as $key => $value) { - $key = $this->removeTableFromKey($key); - - // The developers may choose to place some attributes in the "fillable" array - // which means only those attributes may be set through mass assignment to - // the model, and all others will just get ignored for security reasons. - if ($this->isFillable($key)) { - $this->setAttribute($key, $value); - } elseif ($totallyGuarded) { - throw new MassAssignmentException(sprintf( - 'Add [%s] to fillable property to allow mass assignment on [%s].', - $key, get_class($this) - )); - } - } - - return $this; - } - - /** - * Fill the model with an array of attributes. Force mass assignment. - * - * @param array $attributes - * @return $this - */ - public function forceFill(array $attributes) - { - return static::unguarded(function () use ($attributes) { - return $this->fill($attributes); - }); - } - - /** - * Qualify the given column name by the model's table. - * - * @param string $column - * @return string - */ - public function qualifyColumn($column) - { - if (Str::contains($column, '.')) { - return $column; - } - - return $this->getTable().'.'.$column; - } - - /** - * Remove the table name from a given key. - * - * @param string $key - * @return string - */ - protected function removeTableFromKey($key) - { - return Str::contains($key, '.') ? last(explode('.', $key)) : $key; - } - - /** - * Create a new instance of the given model. - * - * @param array $attributes - * @param bool $exists - * @return static - */ - public function newInstance($attributes = [], $exists = false) - { - // This method just provides a convenient way for us to generate fresh model - // instances of this current model. It is particularly useful during the - // hydration of new objects via the Eloquent query builder instances. - $model = new static((array) $attributes); - - $model->exists = $exists; - - $model->setConnection( - $this->getConnectionName() - ); - - return $model; - } - - /** - * Create a new model instance that is existing. - * - * @param array $attributes - * @param string|null $connection - * @return static - */ - public function newFromBuilder($attributes = [], $connection = null) - { - $model = $this->newInstance([], true); - - $model->setRawAttributes((array) $attributes, true); - - $model->setConnection($connection ?: $this->getConnectionName()); - - $model->fireModelEvent('retrieved', false); - - return $model; - } - - /** - * Begin querying the model on a given connection. - * - * @param string|null $connection - * @return \Illuminate\Database\Eloquent\Builder - */ - public static function on($connection = null) - { - // First we will just create a fresh instance of this model, and then we can - // set the connection on the model so that it is be used for the queries - // we execute, as well as being set on each relationship we retrieve. - $instance = new static; - - $instance->setConnection($connection); - - return $instance->newQuery(); - } - - /** - * Begin querying the model on the write connection. - * - * @return \Illuminate\Database\Query\Builder - */ - public static function onWriteConnection() - { - $instance = new static; - - return $instance->newQuery()->useWritePdo(); - } - - /** - * Get all of the models from the database. - * - * @param array|mixed $columns - * @return \Illuminate\Database\Eloquent\Collection|static[] - */ - public static function all($columns = ['*']) - { - return (new static)->newQuery()->get( - is_array($columns) ? $columns : func_get_args() - ); - } - - /** - * Begin querying a model with eager loading. - * - * @param array|string $relations - * @return \Illuminate\Database\Eloquent\Builder|static - */ - public static function with($relations) - { - return (new static)->newQuery()->with( - is_string($relations) ? func_get_args() : $relations - ); - } - - /** - * Eager load relations on the model. - * - * @param array|string $relations - * @return $this - */ - public function load($relations) - { - $query = $this->newQueryWithoutRelationships()->with( - is_string($relations) ? func_get_args() : $relations - ); - - $query->eagerLoadRelations([$this]); - - return $this; - } - - /** - * Eager load relations on the model if they are not already eager loaded. - * - * @param array|string $relations - * @return $this - */ - public function loadMissing($relations) - { - $relations = is_string($relations) ? func_get_args() : $relations; - - $this->newCollection([$this])->loadMissing($relations); - - return $this; - } - - /** - * Increment a column's value by a given amount. - * - * @param string $column - * @param float|int $amount - * @param array $extra - * @return int - */ - protected function increment($column, $amount = 1, array $extra = []) - { - return $this->incrementOrDecrement($column, $amount, $extra, 'increment'); - } - - /** - * Decrement a column's value by a given amount. - * - * @param string $column - * @param float|int $amount - * @param array $extra - * @return int - */ - protected function decrement($column, $amount = 1, array $extra = []) - { - return $this->incrementOrDecrement($column, $amount, $extra, 'decrement'); - } - - /** - * Run the increment or decrement method on the model. - * - * @param string $column - * @param float|int $amount - * @param array $extra - * @param string $method - * @return int - */ - protected function incrementOrDecrement($column, $amount, $extra, $method) - { - $query = $this->newQuery(); - - if (! $this->exists) { - return $query->{$method}($column, $amount, $extra); - } - - $this->incrementOrDecrementAttributeValue($column, $amount, $extra, $method); - - return $query->where( - $this->getKeyName(), $this->getKey() - )->{$method}($column, $amount, $extra); - } - - /** - * Increment the underlying attribute value and sync with original. - * - * @param string $column - * @param float|int $amount - * @param array $extra - * @param string $method - * @return void - */ - protected function incrementOrDecrementAttributeValue($column, $amount, $extra, $method) - { - $this->{$column} = $this->{$column} + ($method == 'increment' ? $amount : $amount * -1); - - $this->forceFill($extra); - - $this->syncOriginalAttribute($column); - } - - /** - * Update the model in the database. - * - * @param array $attributes - * @param array $options - * @return bool - */ - public function update(array $attributes = [], array $options = []) - { - if (! $this->exists) { - return false; - } - - return $this->fill($attributes)->save($options); - } - - /** - * Save the model and all of its relationships. - * - * @return bool - */ - public function push() - { - if (! $this->save()) { - return false; - } - - // To sync all of the relationships to the database, we will simply spin through - // the relationships and save each model via this "push" method, which allows - // us to recurse into all of these nested relations for the model instance. - foreach ($this->relations as $models) { - $models = $models instanceof Collection - ? $models->all() : [$models]; - - foreach (array_filter($models) as $model) { - if (! $model->push()) { - return false; - } - } - } - - return true; - } - - /** - * Save the model to the database. - * - * @param array $options - * @return bool - */ - public function save(array $options = []) - { - $query = $this->newModelQuery(); - - // If the "saving" event returns false we'll bail out of the save and return - // false, indicating that the save failed. This provides a chance for any - // listeners to cancel save operations if validations fail or whatever. - if ($this->fireModelEvent('saving') === false) { - return false; - } - - // If the model already exists in the database we can just update our record - // that is already in this database using the current IDs in this "where" - // clause to only update this model. Otherwise, we'll just insert them. - if ($this->exists) { - $saved = $this->isDirty() ? - $this->performUpdate($query) : true; - } - - // If the model is brand new, we'll insert it into our database and set the - // ID attribute on the model to the value of the newly inserted row's ID - // which is typically an auto-increment value managed by the database. - else { - $saved = $this->performInsert($query); - - if (! $this->getConnectionName() && - $connection = $query->getConnection()) { - $this->setConnection($connection->getName()); - } - } - - // If the model is successfully saved, we need to do a few more things once - // that is done. We will call the "saved" method here to run any actions - // we need to happen after a model gets successfully saved right here. - if ($saved) { - $this->finishSave($options); - } - - return $saved; - } - - /** - * Save the model to the database using transaction. - * - * @param array $options - * @return bool - * - * @throws \Throwable - */ - public function saveOrFail(array $options = []) - { - return $this->getConnection()->transaction(function () use ($options) { - return $this->save($options); - }); - } - - /** - * Perform any actions that are necessary after the model is saved. - * - * @param array $options - * @return void - */ - protected function finishSave(array $options) - { - $this->fireModelEvent('saved', false); - - if ($this->isDirty() && ($options['touch'] ?? true)) { - $this->touchOwners(); - } - - $this->syncOriginal(); - } - - /** - * Perform a model update operation. - * - * @param \Illuminate\Database\Eloquent\Builder $query - * @return bool - */ - protected function performUpdate(Builder $query) - { - // If the updating event returns false, we will cancel the update operation so - // developers can hook Validation systems into their models and cancel this - // operation if the model does not pass validation. Otherwise, we update. - if ($this->fireModelEvent('updating') === false) { - return false; - } - - // First we need to create a fresh query instance and touch the creation and - // update timestamp on the model which are maintained by us for developer - // convenience. Then we will just continue saving the model instances. - if ($this->usesTimestamps()) { - $this->updateTimestamps(); - } - - // Once we have run the update operation, we will fire the "updated" event for - // this model instance. This will allow developers to hook into these after - // models are updated, giving them a chance to do any special processing. - $dirty = $this->getDirty(); - - if (count($dirty) > 0) { - $this->setKeysForSaveQuery($query)->update($dirty); - - $this->fireModelEvent('updated', false); - - $this->syncChanges(); - } - - return true; - } - - /** - * Set the keys for a save update query. - * - * @param \Illuminate\Database\Eloquent\Builder $query - * @return \Illuminate\Database\Eloquent\Builder - */ - protected function setKeysForSaveQuery(Builder $query) - { - $query->where($this->getKeyName(), '=', $this->getKeyForSaveQuery()); - - return $query; - } - - /** - * Get the primary key value for a save query. - * - * @return mixed - */ - protected function getKeyForSaveQuery() - { - return $this->original[$this->getKeyName()] - ?? $this->getKey(); - } - - /** - * Perform a model insert operation. - * - * @param \Illuminate\Database\Eloquent\Builder $query - * @return bool - */ - protected function performInsert(Builder $query) - { - if ($this->fireModelEvent('creating') === false) { - return false; - } - - // First we'll need to create a fresh query instance and touch the creation and - // update timestamps on this model, which are maintained by us for developer - // convenience. After, we will just continue saving these model instances. - if ($this->usesTimestamps()) { - $this->updateTimestamps(); - } - - // If the model has an incrementing key, we can use the "insertGetId" method on - // the query builder, which will give us back the final inserted ID for this - // table from the database. Not all tables have to be incrementing though. - $attributes = $this->attributes; - - if ($this->getIncrementing()) { - $this->insertAndSetId($query, $attributes); - } - - // If the table isn't incrementing we'll simply insert these attributes as they - // are. These attribute arrays must contain an "id" column previously placed - // there by the developer as the manually determined key for these models. - else { - if (empty($attributes)) { - return true; - } - - $query->insert($attributes); - } - - // We will go ahead and set the exists property to true, so that it is set when - // the created event is fired, just in case the developer tries to update it - // during the event. This will allow them to do so and run an update here. - $this->exists = true; - - $this->wasRecentlyCreated = true; - - $this->fireModelEvent('created', false); - - return true; - } - - /** - * Insert the given attributes and set the ID on the model. - * - * @param \Illuminate\Database\Eloquent\Builder $query - * @param array $attributes - * @return void - */ - protected function insertAndSetId(Builder $query, $attributes) - { - $id = $query->insertGetId($attributes, $keyName = $this->getKeyName()); - - $this->setAttribute($keyName, $id); - } - - /** - * Destroy the models for the given IDs. - * - * @param array|int $ids - * @return int - */ - public static function destroy($ids) - { - // We'll initialize a count here so we will return the total number of deletes - // for the operation. The developers can then check this number as a boolean - // type value or get this total count of records deleted for logging, etc. - $count = 0; - - $ids = is_array($ids) ? $ids : func_get_args(); - - // We will actually pull the models from the database table and call delete on - // each of them individually so that their events get fired properly with a - // correct set of attributes in case the developers wants to check these. - $key = ($instance = new static)->getKeyName(); - - foreach ($instance->whereIn($key, $ids)->get() as $model) { - if ($model->delete()) { - $count++; - } - } - - return $count; - } - - /** - * Delete the model from the database. - * - * @return bool|null - * - * @throws \Exception - */ - public function delete() - { - if (is_null($this->getKeyName())) { - throw new Exception('No primary key defined on model.'); - } - - // If the model doesn't exist, there is nothing to delete so we'll just return - // immediately and not do anything else. Otherwise, we will continue with a - // deletion process on the model, firing the proper events, and so forth. - if (! $this->exists) { - return; - } - - if ($this->fireModelEvent('deleting') === false) { - return false; - } - - // Here, we'll touch the owning models, verifying these timestamps get updated - // for the models. This will allow any caching to get broken on the parents - // by the timestamp. Then we will go ahead and delete the model instance. - $this->touchOwners(); - - $this->performDeleteOnModel(); - - // Once the model has been deleted, we will fire off the deleted event so that - // the developers may hook into post-delete operations. We will then return - // a boolean true as the delete is presumably successful on the database. - $this->fireModelEvent('deleted', false); - - return true; - } - - /** - * Force a hard delete on a soft deleted model. - * - * This method protects developers from running forceDelete when trait is missing. - * - * @return bool|null - */ - public function forceDelete() - { - return $this->delete(); - } - - /** - * Perform the actual delete query on this model instance. - * - * @return void - */ - protected function performDeleteOnModel() - { - $this->setKeysForSaveQuery($this->newModelQuery())->delete(); - - $this->exists = false; - } - - /** - * Begin querying the model. - * - * @return \Illuminate\Database\Eloquent\Builder - */ - public static function query() - { - return (new static)->newQuery(); - } - - /** - * Get a new query builder for the model's table. - * - * @return \Illuminate\Database\Eloquent\Builder - */ - public function newQuery() - { - return $this->registerGlobalScopes($this->newQueryWithoutScopes()); - } - - /** - * Get a new query builder that doesn't have any global scopes or eager loading. - * - * @return \Illuminate\Database\Eloquent\Builder|static - */ - public function newModelQuery() - { - return $this->newEloquentBuilder( - $this->newBaseQueryBuilder() - )->setModel($this); - } - - /** - * Get a new query builder with no relationships loaded. - * - * @return \Illuminate\Database\Eloquent\Builder - */ - public function newQueryWithoutRelationships() - { - return $this->registerGlobalScopes( - $this->newEloquentBuilder($this->newBaseQueryBuilder())->setModel($this) - ); - } - - /** - * Register the global scopes for this builder instance. - * - * @param \Illuminate\Database\Eloquent\Builder $builder - * @return \Illuminate\Database\Eloquent\Builder - */ - public function registerGlobalScopes($builder) - { - foreach ($this->getGlobalScopes() as $identifier => $scope) { - $builder->withGlobalScope($identifier, $scope); - } - - return $builder; - } - - /** - * Get a new query builder that doesn't have any global scopes. - * - * @return \Illuminate\Database\Eloquent\Builder|static - */ - public function newQueryWithoutScopes() - { - return $this->newModelQuery() - ->with($this->with) - ->withCount($this->withCount); - } - - /** - * Get a new query instance without a given scope. - * - * @param \Illuminate\Database\Eloquent\Scope|string $scope - * @return \Illuminate\Database\Eloquent\Builder - */ - public function newQueryWithoutScope($scope) - { - return $this->newQuery()->withoutGlobalScope($scope); - } - - /** - * Get a new query to restore one or more models by their queueable IDs. - * - * @param array|int $ids - * @return \Illuminate\Database\Eloquent\Builder - */ - public function newQueryForRestoration($ids) - { - return is_array($ids) - ? $this->newQueryWithoutScopes()->whereIn($this->getQualifiedKeyName(), $ids) - : $this->newQueryWithoutScopes()->whereKey($ids); - } - - /** - * Create a new Eloquent query builder for the model. - * - * @param \Illuminate\Database\Query\Builder $query - * @return \Illuminate\Database\Eloquent\Builder|static - */ - public function newEloquentBuilder($query) - { - return new Builder($query); - } - - /** - * Get a new query builder instance for the connection. - * - * @return \Illuminate\Database\Query\Builder - */ - protected function newBaseQueryBuilder() - { - $connection = $this->getConnection(); - - return new QueryBuilder( - $connection, $connection->getQueryGrammar(), $connection->getPostProcessor() - ); - } - - /** - * Create a new Eloquent Collection instance. - * - * @param array $models - * @return \Illuminate\Database\Eloquent\Collection - */ - public function newCollection(array $models = []) - { - return new Collection($models); - } - - /** - * Create a new pivot model instance. - * - * @param \Illuminate\Database\Eloquent\Model $parent - * @param array $attributes - * @param string $table - * @param bool $exists - * @param string|null $using - * @return \Illuminate\Database\Eloquent\Relations\Pivot - */ - public function newPivot(self $parent, array $attributes, $table, $exists, $using = null) - { - return $using ? $using::fromRawAttributes($parent, $attributes, $table, $exists) - : Pivot::fromAttributes($parent, $attributes, $table, $exists); - } - - /** - * Convert the model instance to an array. - * - * @return array - */ - public function toArray() - { - return array_merge($this->attributesToArray(), $this->relationsToArray()); - } - - /** - * Convert the model instance to JSON. - * - * @param int $options - * @return string - * - * @throws \Illuminate\Database\Eloquent\JsonEncodingException - */ - public function toJson($options = 0) - { - $json = json_encode($this->jsonSerialize(), $options); - - if (JSON_ERROR_NONE !== json_last_error()) { - throw JsonEncodingException::forModel($this, json_last_error_msg()); - } - - return $json; - } - - /** - * Convert the object into something JSON serializable. - * - * @return array - */ - public function jsonSerialize() - { - return $this->toArray(); - } - - /** - * Reload a fresh model instance from the database. - * - * @param array|string $with - * @return static|null - */ - public function fresh($with = []) - { - if (! $this->exists) { - return; - } - - return static::newQueryWithoutScopes() - ->with(is_string($with) ? func_get_args() : $with) - ->where($this->getKeyName(), $this->getKey()) - ->first(); - } - - /** - * Reload the current model instance with fresh attributes from the database. - * - * @return $this - */ - public function refresh() - { - if (! $this->exists) { - return $this; - } - - $this->setRawAttributes( - static::newQueryWithoutScopes()->findOrFail($this->getKey())->attributes - ); - - $this->load(collect($this->relations)->except('pivot')->keys()->toArray()); - - $this->syncOriginal(); - - return $this; - } - - /** - * Clone the model into a new, non-existing instance. - * - * @param array|null $except - * @return \Illuminate\Database\Eloquent\Model - */ - public function replicate(array $except = null) - { - $defaults = [ - $this->getKeyName(), - $this->getCreatedAtColumn(), - $this->getUpdatedAtColumn(), - ]; - - $attributes = Arr::except( - $this->attributes, $except ? array_unique(array_merge($except, $defaults)) : $defaults - ); - - return tap(new static, function ($instance) use ($attributes) { - $instance->setRawAttributes($attributes); - - $instance->setRelations($this->relations); - }); - } - - /** - * Determine if two models have the same ID and belong to the same table. - * - * @param \Illuminate\Database\Eloquent\Model|null $model - * @return bool - */ - public function is($model) - { - return ! is_null($model) && - $this->getKey() === $model->getKey() && - $this->getTable() === $model->getTable() && - $this->getConnectionName() === $model->getConnectionName(); - } - - /** - * Determine if two models are not the same. - * - * @param \Illuminate\Database\Eloquent\Model|null $model - * @return bool - */ - public function isNot($model) - { - return ! $this->is($model); - } - - /** - * Get the database connection for the model. - * - * @return \Illuminate\Database\Connection - */ - public function getConnection() - { - return static::resolveConnection($this->getConnectionName()); - } - - /** - * Get the current connection name for the model. - * - * @return string - */ - public function getConnectionName() - { - return $this->connection; - } - - /** - * Set the connection associated with the model. - * - * @param string $name - * @return $this - */ - public function setConnection($name) - { - $this->connection = $name; - - return $this; - } - - /** - * Resolve a connection instance. - * - * @param string|null $connection - * @return \Illuminate\Database\Connection - */ - public static function resolveConnection($connection = null) - { - return static::$resolver->connection($connection); - } - - /** - * Get the connection resolver instance. - * - * @return \Illuminate\Database\ConnectionResolverInterface - */ - public static function getConnectionResolver() - { - return static::$resolver; - } - - /** - * Set the connection resolver instance. - * - * @param \Illuminate\Database\ConnectionResolverInterface $resolver - * @return void - */ - public static function setConnectionResolver(Resolver $resolver) - { - static::$resolver = $resolver; - } - - /** - * Unset the connection resolver for models. - * - * @return void - */ - public static function unsetConnectionResolver() - { - static::$resolver = null; - } - - /** - * Get the table associated with the model. - * - * @return string - */ - public function getTable() - { - if (! isset($this->table)) { - return str_replace( - '\\', '', Str::snake(Str::plural(class_basename($this))) - ); - } - - return $this->table; - } - - /** - * Set the table associated with the model. - * - * @param string $table - * @return $this - */ - public function setTable($table) - { - $this->table = $table; - - return $this; - } - - /** - * Get the primary key for the model. - * - * @return string - */ - public function getKeyName() - { - return $this->primaryKey; - } - - /** - * Set the primary key for the model. - * - * @param string $key - * @return $this - */ - public function setKeyName($key) - { - $this->primaryKey = $key; - - return $this; - } - - /** - * Get the table qualified key name. - * - * @return string - */ - public function getQualifiedKeyName() - { - return $this->qualifyColumn($this->getKeyName()); - } - - /** - * Get the auto-incrementing key type. - * - * @return string - */ - public function getKeyType() - { - return $this->keyType; - } - - /** - * Set the data type for the primary key. - * - * @param string $type - * @return $this - */ - public function setKeyType($type) - { - $this->keyType = $type; - - return $this; - } - - /** - * Get the value indicating whether the IDs are incrementing. - * - * @return bool - */ - public function getIncrementing() - { - return $this->incrementing; - } - - /** - * Set whether IDs are incrementing. - * - * @param bool $value - * @return $this - */ - public function setIncrementing($value) - { - $this->incrementing = $value; - - return $this; - } - - /** - * Get the value of the model's primary key. - * - * @return mixed - */ - public function getKey() - { - return $this->getAttribute($this->getKeyName()); - } - - /** - * Get the queueable identity for the entity. - * - * @return mixed - */ - public function getQueueableId() - { - return $this->getKey(); - } - - /** - * Get the queueable relationships for the entity. - * - * @return array - */ - public function getQueueableRelations() - { - $relations = []; - - foreach ($this->getRelations() as $key => $relation) { - if (method_exists($this, $key)) { - $relations[] = $key; - } - - if ($relation instanceof QueueableCollection) { - foreach ($relation->getQueueableRelations() as $collectionValue) { - $relations[] = $key.'.'.$collectionValue; - } - } - - if ($relation instanceof QueueableEntity) { - foreach ($relation->getQueueableRelations() as $entityKey => $entityValue) { - $relations[] = $key.'.'.$entityValue; - } - } - } - - return array_unique($relations); - } - - /** - * Get the queueable connection for the entity. - * - * @return mixed - */ - public function getQueueableConnection() - { - return $this->getConnectionName(); - } - - /** - * Get the value of the model's route key. - * - * @return mixed - */ - public function getRouteKey() - { - return $this->getAttribute($this->getRouteKeyName()); - } - - /** - * Get the route key for the model. - * - * @return string - */ - public function getRouteKeyName() - { - return $this->getKeyName(); - } - - /** - * Retrieve the model for a bound value. - * - * @param mixed $value - * @return \Illuminate\Database\Eloquent\Model|null - */ - public function resolveRouteBinding($value) - { - return $this->where($this->getRouteKeyName(), $value)->first(); - } - - /** - * Get the default foreign key name for the model. - * - * @return string - */ - public function getForeignKey() - { - return Str::snake(class_basename($this)).'_'.$this->getKeyName(); - } - - /** - * Get the number of models to return per page. - * - * @return int - */ - public function getPerPage() - { - return $this->perPage; - } - - /** - * Set the number of models to return per page. - * - * @param int $perPage - * @return $this - */ - public function setPerPage($perPage) - { - $this->perPage = $perPage; - - return $this; - } - - /** - * Dynamically retrieve attributes on the model. - * - * @param string $key - * @return mixed - */ - public function __get($key) - { - return $this->getAttribute($key); - } - - /** - * Dynamically set attributes on the model. - * - * @param string $key - * @param mixed $value - * @return void - */ - public function __set($key, $value) - { - $this->setAttribute($key, $value); - } - - /** - * Determine if the given attribute exists. - * - * @param mixed $offset - * @return bool - */ - public function offsetExists($offset) - { - return ! is_null($this->getAttribute($offset)); - } - - /** - * Get the value for a given offset. - * - * @param mixed $offset - * @return mixed - */ - public function offsetGet($offset) - { - return $this->getAttribute($offset); - } - - /** - * Set the value for a given offset. - * - * @param mixed $offset - * @param mixed $value - * @return void - */ - public function offsetSet($offset, $value) - { - $this->setAttribute($offset, $value); - } - - /** - * Unset the value for a given offset. - * - * @param mixed $offset - * @return void - */ - public function offsetUnset($offset) - { - unset($this->attributes[$offset], $this->relations[$offset]); - } - - /** - * Determine if an attribute or relation exists on the model. - * - * @param string $key - * @return bool - */ - public function __isset($key) - { - return $this->offsetExists($key); - } - - /** - * Unset an attribute on the model. - * - * @param string $key - * @return void - */ - public function __unset($key) - { - $this->offsetUnset($key); - } - - /** - * Handle dynamic method calls into the model. - * - * @param string $method - * @param array $parameters - * @return mixed - */ - public function __call($method, $parameters) - { - if (in_array($method, ['increment', 'decrement'])) { - return $this->$method(...$parameters); - } - - return $this->newQuery()->$method(...$parameters); - } - - /** - * Handle dynamic static method calls into the method. - * - * @param string $method - * @param array $parameters - * @return mixed - */ - public static function __callStatic($method, $parameters) - { - return (new static)->$method(...$parameters); - } - - /** - * Convert the model to its string representation. - * - * @return string - */ - public function __toString() - { - return $this->toJson(); - } - - /** - * When a model is being unserialized, check if it needs to be booted. - * - * @return void - */ - public function __wakeup() - { - $this->bootIfNotBooted(); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/ModelNotFoundException.php b/vendor/laravel/framework/src/Illuminate/Database/Eloquent/ModelNotFoundException.php deleted file mode 100755 index c3db8242..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/ModelNotFoundException.php +++ /dev/null @@ -1,66 +0,0 @@ -model = $model; - $this->ids = Arr::wrap($ids); - - $this->message = "No query results for model [{$model}]"; - - if (count($this->ids) > 0) { - $this->message .= ' '.implode(', ', $this->ids); - } else { - $this->message .= '.'; - } - - return $this; - } - - /** - * Get the affected Eloquent model. - * - * @return string - */ - public function getModel() - { - return $this->model; - } - - /** - * Get the affected Eloquent model IDs. - * - * @return int|array - */ - public function getIds() - { - return $this->ids; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/QueueEntityResolver.php b/vendor/laravel/framework/src/Illuminate/Database/Eloquent/QueueEntityResolver.php deleted file mode 100644 index 22fccf24..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/QueueEntityResolver.php +++ /dev/null @@ -1,29 +0,0 @@ -find($id); - - if ($instance) { - return $instance; - } - - throw new EntityNotFoundException($type, $id); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/RelationNotFoundException.php b/vendor/laravel/framework/src/Illuminate/Database/Eloquent/RelationNotFoundException.php deleted file mode 100755 index 088429cc..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/RelationNotFoundException.php +++ /dev/null @@ -1,41 +0,0 @@ -model = $model; - $instance->relation = $relation; - - return $instance; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/BelongsTo.php b/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/BelongsTo.php deleted file mode 100755 index 7ba395bb..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/BelongsTo.php +++ /dev/null @@ -1,362 +0,0 @@ -ownerKey = $ownerKey; - $this->relation = $relation; - $this->foreignKey = $foreignKey; - - // In the underlying base relationship class, this variable is referred to as - // the "parent" since most relationships are not inversed. But, since this - // one is we will create a "child" variable for much better readability. - $this->child = $child; - - parent::__construct($query, $child); - } - - /** - * Get the results of the relationship. - * - * @return mixed - */ - public function getResults() - { - return $this->query->first() ?: $this->getDefaultFor($this->parent); - } - - /** - * Set the base constraints on the relation query. - * - * @return void - */ - public function addConstraints() - { - if (static::$constraints) { - // For belongs to relationships, which are essentially the inverse of has one - // or has many relationships, we need to actually query on the primary key - // of the related models matching on the foreign key that's on a parent. - $table = $this->related->getTable(); - - $this->query->where($table.'.'.$this->ownerKey, '=', $this->child->{$this->foreignKey}); - } - } - - /** - * Set the constraints for an eager load of the relation. - * - * @param array $models - * @return void - */ - public function addEagerConstraints(array $models) - { - // We'll grab the primary key name of the related models since it could be set to - // a non-standard name and not "id". We will then construct the constraint for - // our eagerly loading query so it returns the proper models from execution. - $key = $this->related->getTable().'.'.$this->ownerKey; - - $this->query->whereIn($key, $this->getEagerModelKeys($models)); - } - - /** - * Gather the keys from an array of related models. - * - * @param array $models - * @return array - */ - protected function getEagerModelKeys(array $models) - { - $keys = []; - - // First we need to gather all of the keys from the parent models so we know what - // to query for via the eager loading query. We will add them to an array then - // execute a "where in" statement to gather up all of those related records. - foreach ($models as $model) { - if (! is_null($value = $model->{$this->foreignKey})) { - $keys[] = $value; - } - } - - // If there are no keys that were not null we will just return an array with null - // so this query wont fail plus returns zero results, which should be what the - // developer expects to happen in this situation. Otherwise we'll sort them. - if (count($keys) === 0) { - return [null]; - } - - sort($keys); - - return array_values(array_unique($keys)); - } - - /** - * Initialize the relation on a set of models. - * - * @param array $models - * @param string $relation - * @return array - */ - public function initRelation(array $models, $relation) - { - foreach ($models as $model) { - $model->setRelation($relation, $this->getDefaultFor($model)); - } - - return $models; - } - - /** - * Match the eagerly loaded results to their parents. - * - * @param array $models - * @param \Illuminate\Database\Eloquent\Collection $results - * @param string $relation - * @return array - */ - public function match(array $models, Collection $results, $relation) - { - $foreign = $this->foreignKey; - - $owner = $this->ownerKey; - - // First we will get to build a dictionary of the child models by their primary - // key of the relationship, then we can easily match the children back onto - // the parents using that dictionary and the primary key of the children. - $dictionary = []; - - foreach ($results as $result) { - $dictionary[$result->getAttribute($owner)] = $result; - } - - // Once we have the dictionary constructed, we can loop through all the parents - // and match back onto their children using these keys of the dictionary and - // the primary key of the children to map them onto the correct instances. - foreach ($models as $model) { - if (isset($dictionary[$model->{$foreign}])) { - $model->setRelation($relation, $dictionary[$model->{$foreign}]); - } - } - - return $models; - } - - /** - * Update the parent model on the relationship. - * - * @param array $attributes - * @return mixed - */ - public function update(array $attributes) - { - return $this->getResults()->fill($attributes)->save(); - } - - /** - * Associate the model instance to the given parent. - * - * @param \Illuminate\Database\Eloquent\Model|int|string $model - * @return \Illuminate\Database\Eloquent\Model - */ - public function associate($model) - { - $ownerKey = $model instanceof Model ? $model->getAttribute($this->ownerKey) : $model; - - $this->child->setAttribute($this->foreignKey, $ownerKey); - - if ($model instanceof Model) { - $this->child->setRelation($this->relation, $model); - } - - return $this->child; - } - - /** - * Dissociate previously associated model from the given parent. - * - * @return \Illuminate\Database\Eloquent\Model - */ - public function dissociate() - { - $this->child->setAttribute($this->foreignKey, null); - - return $this->child->setRelation($this->relation, null); - } - - /** - * Add the constraints for a relationship query. - * - * @param \Illuminate\Database\Eloquent\Builder $query - * @param \Illuminate\Database\Eloquent\Builder $parentQuery - * @param array|mixed $columns - * @return \Illuminate\Database\Eloquent\Builder - */ - public function getRelationExistenceQuery(Builder $query, Builder $parentQuery, $columns = ['*']) - { - if ($parentQuery->getQuery()->from == $query->getQuery()->from) { - return $this->getRelationExistenceQueryForSelfRelation($query, $parentQuery, $columns); - } - - return $query->select($columns)->whereColumn( - $this->getQualifiedForeignKey(), '=', $query->qualifyColumn($this->ownerKey) - ); - } - - /** - * Add the constraints for a relationship query on the same table. - * - * @param \Illuminate\Database\Eloquent\Builder $query - * @param \Illuminate\Database\Eloquent\Builder $parentQuery - * @param array|mixed $columns - * @return \Illuminate\Database\Eloquent\Builder - */ - public function getRelationExistenceQueryForSelfRelation(Builder $query, Builder $parentQuery, $columns = ['*']) - { - $query->select($columns)->from( - $query->getModel()->getTable().' as '.$hash = $this->getRelationCountHash() - ); - - $query->getModel()->setTable($hash); - - return $query->whereColumn( - $hash.'.'.$query->getModel()->getKeyName(), '=', $this->getQualifiedForeignKey() - ); - } - - /** - * Get a relationship join table hash. - * - * @return string - */ - public function getRelationCountHash() - { - return 'laravel_reserved_'.static::$selfJoinCount++; - } - - /** - * Determine if the related model has an auto-incrementing ID. - * - * @return bool - */ - protected function relationHasIncrementingId() - { - return $this->related->getIncrementing() && - $this->related->getKeyType() === 'int'; - } - - /** - * Make a new related instance for the given model. - * - * @param \Illuminate\Database\Eloquent\Model $parent - * @return \Illuminate\Database\Eloquent\Model - */ - protected function newRelatedInstanceFor(Model $parent) - { - return $this->related->newInstance(); - } - - /** - * Get the foreign key of the relationship. - * - * @return string - */ - public function getForeignKey() - { - return $this->foreignKey; - } - - /** - * Get the fully qualified foreign key of the relationship. - * - * @return string - */ - public function getQualifiedForeignKey() - { - return $this->child->qualifyColumn($this->foreignKey); - } - - /** - * Get the associated key of the relationship. - * - * @return string - */ - public function getOwnerKey() - { - return $this->ownerKey; - } - - /** - * Get the fully qualified associated key of the relationship. - * - * @return string - */ - public function getQualifiedOwnerKeyName() - { - return $this->related->qualifyColumn($this->ownerKey); - } - - /** - * Get the name of the relationship. - * - * @return string - */ - public function getRelation() - { - return $this->relation; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/BelongsToMany.php b/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/BelongsToMany.php deleted file mode 100755 index f39e9059..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/BelongsToMany.php +++ /dev/null @@ -1,1040 +0,0 @@ -table = $table; - $this->parentKey = $parentKey; - $this->relatedKey = $relatedKey; - $this->relationName = $relationName; - $this->relatedPivotKey = $relatedPivotKey; - $this->foreignPivotKey = $foreignPivotKey; - - parent::__construct($query, $parent); - } - - /** - * Set the base constraints on the relation query. - * - * @return void - */ - public function addConstraints() - { - $this->performJoin(); - - if (static::$constraints) { - $this->addWhereConstraints(); - } - } - - /** - * Set the join clause for the relation query. - * - * @param \Illuminate\Database\Eloquent\Builder|null $query - * @return $this - */ - protected function performJoin($query = null) - { - $query = $query ?: $this->query; - - // We need to join to the intermediate table on the related model's primary - // key column with the intermediate table's foreign key for the related - // model instance. Then we can set the "where" for the parent models. - $baseTable = $this->related->getTable(); - - $key = $baseTable.'.'.$this->relatedKey; - - $query->join($this->table, $key, '=', $this->getQualifiedRelatedPivotKeyName()); - - return $this; - } - - /** - * Set the where clause for the relation query. - * - * @return $this - */ - protected function addWhereConstraints() - { - $this->query->where( - $this->getQualifiedForeignPivotKeyName(), '=', $this->parent->{$this->parentKey} - ); - - return $this; - } - - /** - * Set the constraints for an eager load of the relation. - * - * @param array $models - * @return void - */ - public function addEagerConstraints(array $models) - { - $this->query->whereIn($this->getQualifiedForeignPivotKeyName(), $this->getKeys($models, $this->parentKey)); - } - - /** - * Initialize the relation on a set of models. - * - * @param array $models - * @param string $relation - * @return array - */ - public function initRelation(array $models, $relation) - { - foreach ($models as $model) { - $model->setRelation($relation, $this->related->newCollection()); - } - - return $models; - } - - /** - * Match the eagerly loaded results to their parents. - * - * @param array $models - * @param \Illuminate\Database\Eloquent\Collection $results - * @param string $relation - * @return array - */ - public function match(array $models, Collection $results, $relation) - { - $dictionary = $this->buildDictionary($results); - - // Once we have an array dictionary of child objects we can easily match the - // children back to their parent using the dictionary and the keys on the - // the parent models. Then we will return the hydrated models back out. - foreach ($models as $model) { - if (isset($dictionary[$key = $model->{$this->parentKey}])) { - $model->setRelation( - $relation, $this->related->newCollection($dictionary[$key]) - ); - } - } - - return $models; - } - - /** - * Build model dictionary keyed by the relation's foreign key. - * - * @param \Illuminate\Database\Eloquent\Collection $results - * @return array - */ - protected function buildDictionary(Collection $results) - { - // First we will build a dictionary of child models keyed by the foreign key - // of the relation so that we will easily and quickly match them to their - // parents without having a possibly slow inner loops for every models. - $dictionary = []; - - foreach ($results as $result) { - $dictionary[$result->{$this->accessor}->{$this->foreignPivotKey}][] = $result; - } - - return $dictionary; - } - - /** - * Get the class being used for pivot models. - * - * @return string - */ - public function getPivotClass() - { - return $this->using ?? Pivot::class; - } - - /** - * Specify the custom pivot model to use for the relationship. - * - * @param string $class - * @return \Illuminate\Database\Eloquent\Relations\BelongsToMany - */ - public function using($class) - { - $this->using = $class; - - return $this; - } - - /** - * Specify the custom pivot accessor to use for the relationship. - * - * @param string $accessor - * @return \Illuminate\Database\Eloquent\Relations\BelongsToMany - */ - public function as($accessor) - { - $this->accessor = $accessor; - - return $this; - } - - /** - * Set a where clause for a pivot table column. - * - * @param string $column - * @param string $operator - * @param mixed $value - * @param string $boolean - * @return \Illuminate\Database\Eloquent\Relations\BelongsToMany - */ - public function wherePivot($column, $operator = null, $value = null, $boolean = 'and') - { - $this->pivotWheres[] = func_get_args(); - - return $this->where($this->table.'.'.$column, $operator, $value, $boolean); - } - - /** - * Set a "where in" clause for a pivot table column. - * - * @param string $column - * @param mixed $values - * @param string $boolean - * @param bool $not - * @return \Illuminate\Database\Eloquent\Relations\BelongsToMany - */ - public function wherePivotIn($column, $values, $boolean = 'and', $not = false) - { - $this->pivotWhereIns[] = func_get_args(); - - return $this->whereIn($this->table.'.'.$column, $values, $boolean, $not); - } - - /** - * Set an "or where" clause for a pivot table column. - * - * @param string $column - * @param string $operator - * @param mixed $value - * @return \Illuminate\Database\Eloquent\Relations\BelongsToMany - */ - public function orWherePivot($column, $operator = null, $value = null) - { - return $this->wherePivot($column, $operator, $value, 'or'); - } - - /** - * Set a where clause for a pivot table column. - * - * In addition, new pivot records will receive this value. - * - * @param string $column - * @param mixed $value - * @return \Illuminate\Database\Eloquent\Relations\BelongsToMany - */ - public function withPivotValue($column, $value = null) - { - if (is_array($column)) { - foreach ($column as $name => $value) { - $this->withPivotValue($name, $value); - } - - return $this; - } - - if (is_null($value)) { - throw new InvalidArgumentException('The provided value may not be null.'); - } - - $this->pivotValues[] = compact('column', 'value'); - - return $this->wherePivot($column, '=', $value); - } - - /** - * Set an "or where in" clause for a pivot table column. - * - * @param string $column - * @param mixed $values - * @return \Illuminate\Database\Eloquent\Relations\BelongsToMany - */ - public function orWherePivotIn($column, $values) - { - return $this->wherePivotIn($column, $values, 'or'); - } - - /** - * Find a related model by its primary key or return new instance of the related model. - * - * @param mixed $id - * @param array $columns - * @return \Illuminate\Support\Collection|\Illuminate\Database\Eloquent\Model - */ - public function findOrNew($id, $columns = ['*']) - { - if (is_null($instance = $this->find($id, $columns))) { - $instance = $this->related->newInstance(); - } - - return $instance; - } - - /** - * Get the first related model record matching the attributes or instantiate it. - * - * @param array $attributes - * @return \Illuminate\Database\Eloquent\Model - */ - public function firstOrNew(array $attributes) - { - if (is_null($instance = $this->where($attributes)->first())) { - $instance = $this->related->newInstance($attributes); - } - - return $instance; - } - - /** - * Get the first related record matching the attributes or create it. - * - * @param array $attributes - * @param array $joining - * @param bool $touch - * @return \Illuminate\Database\Eloquent\Model - */ - public function firstOrCreate(array $attributes, array $joining = [], $touch = true) - { - if (is_null($instance = $this->where($attributes)->first())) { - $instance = $this->create($attributes, $joining, $touch); - } - - return $instance; - } - - /** - * Create or update a related record matching the attributes, and fill it with values. - * - * @param array $attributes - * @param array $values - * @param array $joining - * @param bool $touch - * @return \Illuminate\Database\Eloquent\Model - */ - public function updateOrCreate(array $attributes, array $values = [], array $joining = [], $touch = true) - { - if (is_null($instance = $this->where($attributes)->first())) { - return $this->create($values, $joining, $touch); - } - - $instance->fill($values); - - $instance->save(['touch' => false]); - - return $instance; - } - - /** - * Find a related model by its primary key. - * - * @param mixed $id - * @param array $columns - * @return \Illuminate\Database\Eloquent\Model|\Illuminate\Database\Eloquent\Collection|null - */ - public function find($id, $columns = ['*']) - { - return is_array($id) ? $this->findMany($id, $columns) : $this->where( - $this->getRelated()->getQualifiedKeyName(), '=', $id - )->first($columns); - } - - /** - * Find multiple related models by their primary keys. - * - * @param mixed $ids - * @param array $columns - * @return \Illuminate\Database\Eloquent\Collection - */ - public function findMany($ids, $columns = ['*']) - { - return empty($ids) ? $this->getRelated()->newCollection() : $this->whereIn( - $this->getRelated()->getQualifiedKeyName(), $ids - )->get($columns); - } - - /** - * Find a related model by its primary key or throw an exception. - * - * @param mixed $id - * @param array $columns - * @return \Illuminate\Database\Eloquent\Model|\Illuminate\Database\Eloquent\Collection - * - * @throws \Illuminate\Database\Eloquent\ModelNotFoundException - */ - public function findOrFail($id, $columns = ['*']) - { - $result = $this->find($id, $columns); - - if (is_array($id)) { - if (count($result) === count(array_unique($id))) { - return $result; - } - } elseif (! is_null($result)) { - return $result; - } - - throw (new ModelNotFoundException)->setModel(get_class($this->related)); - } - - /** - * Execute the query and get the first result. - * - * @param array $columns - * @return mixed - */ - public function first($columns = ['*']) - { - $results = $this->take(1)->get($columns); - - return count($results) > 0 ? $results->first() : null; - } - - /** - * Execute the query and get the first result or throw an exception. - * - * @param array $columns - * @return \Illuminate\Database\Eloquent\Model|static - * - * @throws \Illuminate\Database\Eloquent\ModelNotFoundException - */ - public function firstOrFail($columns = ['*']) - { - if (! is_null($model = $this->first($columns))) { - return $model; - } - - throw (new ModelNotFoundException)->setModel(get_class($this->related)); - } - - /** - * Get the results of the relationship. - * - * @return mixed - */ - public function getResults() - { - return $this->get(); - } - - /** - * Execute the query as a "select" statement. - * - * @param array $columns - * @return \Illuminate\Database\Eloquent\Collection - */ - public function get($columns = ['*']) - { - // First we'll add the proper select columns onto the query so it is run with - // the proper columns. Then, we will get the results and hydrate out pivot - // models with the result of those columns as a separate model relation. - $columns = $this->query->getQuery()->columns ? [] : $columns; - - $builder = $this->query->applyScopes(); - - $models = $builder->addSelect( - $this->shouldSelect($columns) - )->getModels(); - - $this->hydratePivotRelation($models); - - // If we actually found models we will also eager load any relationships that - // have been specified as needing to be eager loaded. This will solve the - // n + 1 query problem for the developer and also increase performance. - if (count($models) > 0) { - $models = $builder->eagerLoadRelations($models); - } - - return $this->related->newCollection($models); - } - - /** - * Get the select columns for the relation query. - * - * @param array $columns - * @return \Illuminate\Database\Eloquent\Relations\BelongsToMany - */ - protected function shouldSelect(array $columns = ['*']) - { - if ($columns == ['*']) { - $columns = [$this->related->getTable().'.*']; - } - - return array_merge($columns, $this->aliasedPivotColumns()); - } - - /** - * Get the pivot columns for the relation. - * - * "pivot_" is prefixed ot each column for easy removal later. - * - * @return array - */ - protected function aliasedPivotColumns() - { - $defaults = [$this->foreignPivotKey, $this->relatedPivotKey]; - - return collect(array_merge($defaults, $this->pivotColumns))->map(function ($column) { - return $this->table.'.'.$column.' as pivot_'.$column; - })->unique()->all(); - } - - /** - * Get a paginator for the "select" statement. - * - * @param int $perPage - * @param array $columns - * @param string $pageName - * @param int|null $page - * @return \Illuminate\Contracts\Pagination\LengthAwarePaginator - */ - public function paginate($perPage = null, $columns = ['*'], $pageName = 'page', $page = null) - { - $this->query->addSelect($this->shouldSelect($columns)); - - return tap($this->query->paginate($perPage, $columns, $pageName, $page), function ($paginator) { - $this->hydratePivotRelation($paginator->items()); - }); - } - - /** - * Paginate the given query into a simple paginator. - * - * @param int $perPage - * @param array $columns - * @param string $pageName - * @param int|null $page - * @return \Illuminate\Contracts\Pagination\Paginator - */ - public function simplePaginate($perPage = null, $columns = ['*'], $pageName = 'page', $page = null) - { - $this->query->addSelect($this->shouldSelect($columns)); - - return tap($this->query->simplePaginate($perPage, $columns, $pageName, $page), function ($paginator) { - $this->hydratePivotRelation($paginator->items()); - }); - } - - /** - * Chunk the results of the query. - * - * @param int $count - * @param callable $callback - * @return bool - */ - public function chunk($count, callable $callback) - { - $this->query->addSelect($this->shouldSelect()); - - return $this->query->chunk($count, function ($results) use ($callback) { - $this->hydratePivotRelation($results->all()); - - return $callback($results); - }); - } - - /** - * Hydrate the pivot table relationship on the models. - * - * @param array $models - * @return void - */ - protected function hydratePivotRelation(array $models) - { - // To hydrate the pivot relationship, we will just gather the pivot attributes - // and create a new Pivot model, which is basically a dynamic model that we - // will set the attributes, table, and connections on it so it will work. - foreach ($models as $model) { - $model->setRelation($this->accessor, $this->newExistingPivot( - $this->migratePivotAttributes($model) - )); - } - } - - /** - * Get the pivot attributes from a model. - * - * @param \Illuminate\Database\Eloquent\Model $model - * @return array - */ - protected function migratePivotAttributes(Model $model) - { - $values = []; - - foreach ($model->getAttributes() as $key => $value) { - // To get the pivots attributes we will just take any of the attributes which - // begin with "pivot_" and add those to this arrays, as well as unsetting - // them from the parent's models since they exist in a different table. - if (strpos($key, 'pivot_') === 0) { - $values[substr($key, 6)] = $value; - - unset($model->$key); - } - } - - return $values; - } - - /** - * If we're touching the parent model, touch. - * - * @return void - */ - public function touchIfTouching() - { - if ($this->touchingParent()) { - $this->getParent()->touch(); - } - - if ($this->getParent()->touches($this->relationName)) { - $this->touch(); - } - } - - /** - * Determine if we should touch the parent on sync. - * - * @return bool - */ - protected function touchingParent() - { - return $this->getRelated()->touches($this->guessInverseRelation()); - } - - /** - * Attempt to guess the name of the inverse of the relation. - * - * @return string - */ - protected function guessInverseRelation() - { - return Str::camel(Str::plural(class_basename($this->getParent()))); - } - - /** - * Touch all of the related models for the relationship. - * - * E.g.: Touch all roles associated with this user. - * - * @return void - */ - public function touch() - { - $key = $this->getRelated()->getKeyName(); - - $columns = [ - $this->related->getUpdatedAtColumn() => $this->related->freshTimestampString(), - ]; - - // If we actually have IDs for the relation, we will run the query to update all - // the related model's timestamps, to make sure these all reflect the changes - // to the parent models. This will help us keep any caching synced up here. - if (count($ids = $this->allRelatedIds()) > 0) { - $this->getRelated()->newQuery()->whereIn($key, $ids)->update($columns); - } - } - - /** - * Get all of the IDs for the related models. - * - * @return \Illuminate\Support\Collection - */ - public function allRelatedIds() - { - return $this->newPivotQuery()->pluck($this->relatedPivotKey); - } - - /** - * Save a new model and attach it to the parent model. - * - * @param \Illuminate\Database\Eloquent\Model $model - * @param array $pivotAttributes - * @param bool $touch - * @return \Illuminate\Database\Eloquent\Model - */ - public function save(Model $model, array $pivotAttributes = [], $touch = true) - { - $model->save(['touch' => false]); - - $this->attach($model->getKey(), $pivotAttributes, $touch); - - return $model; - } - - /** - * Save an array of new models and attach them to the parent model. - * - * @param \Illuminate\Support\Collection|array $models - * @param array $pivotAttributes - * @return array - */ - public function saveMany($models, array $pivotAttributes = []) - { - foreach ($models as $key => $model) { - $this->save($model, (array) ($pivotAttributes[$key] ?? []), false); - } - - $this->touchIfTouching(); - - return $models; - } - - /** - * Create a new instance of the related model. - * - * @param array $attributes - * @param array $joining - * @param bool $touch - * @return \Illuminate\Database\Eloquent\Model - */ - public function create(array $attributes = [], array $joining = [], $touch = true) - { - $instance = $this->related->newInstance($attributes); - - // Once we save the related model, we need to attach it to the base model via - // through intermediate table so we'll use the existing "attach" method to - // accomplish this which will insert the record and any more attributes. - $instance->save(['touch' => false]); - - $this->attach($instance->getKey(), $joining, $touch); - - return $instance; - } - - /** - * Create an array of new instances of the related models. - * - * @param array $records - * @param array $joinings - * @return array - */ - public function createMany(array $records, array $joinings = []) - { - $instances = []; - - foreach ($records as $key => $record) { - $instances[] = $this->create($record, (array) ($joinings[$key] ?? []), false); - } - - $this->touchIfTouching(); - - return $instances; - } - - /** - * Add the constraints for a relationship query. - * - * @param \Illuminate\Database\Eloquent\Builder $query - * @param \Illuminate\Database\Eloquent\Builder $parentQuery - * @param array|mixed $columns - * @return \Illuminate\Database\Eloquent\Builder - */ - public function getRelationExistenceQuery(Builder $query, Builder $parentQuery, $columns = ['*']) - { - if ($parentQuery->getQuery()->from == $query->getQuery()->from) { - return $this->getRelationExistenceQueryForSelfJoin($query, $parentQuery, $columns); - } - - $this->performJoin($query); - - return parent::getRelationExistenceQuery($query, $parentQuery, $columns); - } - - /** - * Add the constraints for a relationship query on the same table. - * - * @param \Illuminate\Database\Eloquent\Builder $query - * @param \Illuminate\Database\Eloquent\Builder $parentQuery - * @param array|mixed $columns - * @return \Illuminate\Database\Eloquent\Builder - */ - public function getRelationExistenceQueryForSelfJoin(Builder $query, Builder $parentQuery, $columns = ['*']) - { - $query->select($columns); - - $query->from($this->related->getTable().' as '.$hash = $this->getRelationCountHash()); - - $this->related->setTable($hash); - - $this->performJoin($query); - - return parent::getRelationExistenceQuery($query, $parentQuery, $columns); - } - - /** - * Get the key for comparing against the parent key in "has" query. - * - * @return string - */ - public function getExistenceCompareKey() - { - return $this->getQualifiedForeignPivotKeyName(); - } - - /** - * Get a relationship join table hash. - * - * @return string - */ - public function getRelationCountHash() - { - return 'laravel_reserved_'.static::$selfJoinCount++; - } - - /** - * Specify that the pivot table has creation and update timestamps. - * - * @param mixed $createdAt - * @param mixed $updatedAt - * @return \Illuminate\Database\Eloquent\Relations\BelongsToMany - */ - public function withTimestamps($createdAt = null, $updatedAt = null) - { - $this->withTimestamps = true; - - $this->pivotCreatedAt = $createdAt; - $this->pivotUpdatedAt = $updatedAt; - - return $this->withPivot($this->createdAt(), $this->updatedAt()); - } - - /** - * Get the name of the "created at" column. - * - * @return string - */ - public function createdAt() - { - return $this->pivotCreatedAt ?: $this->parent->getCreatedAtColumn(); - } - - /** - * Get the name of the "updated at" column. - * - * @return string - */ - public function updatedAt() - { - return $this->pivotUpdatedAt ?: $this->parent->getUpdatedAtColumn(); - } - - /** - * Get the foreign key for the relation. - * - * @return string - */ - public function getForeignPivotKeyName() - { - return $this->foreignPivotKey; - } - - /** - * Get the fully qualified foreign key for the relation. - * - * @return string - */ - public function getQualifiedForeignPivotKeyName() - { - return $this->table.'.'.$this->foreignPivotKey; - } - - /** - * Get the "related key" for the relation. - * - * @return string - */ - public function getRelatedPivotKeyName() - { - return $this->relatedPivotKey; - } - - /** - * Get the fully qualified "related key" for the relation. - * - * @return string - */ - public function getQualifiedRelatedPivotKeyName() - { - return $this->table.'.'.$this->relatedPivotKey; - } - - /** - * Get the fully qualified parent key name for the relation. - * - * @return string - */ - public function getQualifiedParentKeyName() - { - return $this->parent->qualifyColumn($this->parentKey); - } - - /** - * Get the intermediate table for the relationship. - * - * @return string - */ - public function getTable() - { - return $this->table; - } - - /** - * Get the relationship name for the relationship. - * - * @return string - */ - public function getRelationName() - { - return $this->relationName; - } - - /** - * Get the name of the pivot accessor for this relationship. - * - * @return string - */ - public function getPivotAccessor() - { - return $this->accessor; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/Concerns/InteractsWithPivotTable.php b/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/Concerns/InteractsWithPivotTable.php deleted file mode 100644 index 5c488aee..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/Concerns/InteractsWithPivotTable.php +++ /dev/null @@ -1,538 +0,0 @@ - [], 'detached' => [], - ]; - - $records = $this->formatRecordsList($this->parseIds($ids)); - - // Next, we will determine which IDs should get removed from the join table by - // checking which of the given ID/records is in the list of current records - // and removing all of those rows from this "intermediate" joining table. - $detach = array_values(array_intersect( - $this->newPivotQuery()->pluck($this->relatedPivotKey)->all(), - array_keys($records) - )); - - if (count($detach) > 0) { - $this->detach($detach, false); - - $changes['detached'] = $this->castKeys($detach); - } - - // Finally, for all of the records which were not "detached", we'll attach the - // records into the intermediate table. Then, we will add those attaches to - // this change list and get ready to return these results to the callers. - $attach = array_diff_key($records, array_flip($detach)); - - if (count($attach) > 0) { - $this->attach($attach, [], false); - - $changes['attached'] = array_keys($attach); - } - - // Once we have finished attaching or detaching the records, we will see if we - // have done any attaching or detaching, and if we have we will touch these - // relationships if they are configured to touch on any database updates. - if ($touch && (count($changes['attached']) || - count($changes['detached']))) { - $this->touchIfTouching(); - } - - return $changes; - } - - /** - * Sync the intermediate tables with a list of IDs without detaching. - * - * @param \Illuminate\Database\Eloquent\Collection|\Illuminate\Support\Collection|array $ids - * @return array - */ - public function syncWithoutDetaching($ids) - { - return $this->sync($ids, false); - } - - /** - * Sync the intermediate tables with a list of IDs or collection of models. - * - * @param \Illuminate\Database\Eloquent\Collection|\Illuminate\Support\Collection|array $ids - * @param bool $detaching - * @return array - */ - public function sync($ids, $detaching = true) - { - $changes = [ - 'attached' => [], 'detached' => [], 'updated' => [], - ]; - - // First we need to attach any of the associated models that are not currently - // in this joining table. We'll spin through the given IDs, checking to see - // if they exist in the array of current ones, and if not we will insert. - $current = $this->newPivotQuery()->pluck( - $this->relatedPivotKey - )->all(); - - $detach = array_diff($current, array_keys( - $records = $this->formatRecordsList($this->parseIds($ids)) - )); - - // Next, we will take the differences of the currents and given IDs and detach - // all of the entities that exist in the "current" array but are not in the - // array of the new IDs given to the method which will complete the sync. - if ($detaching && count($detach) > 0) { - $this->detach($detach); - - $changes['detached'] = $this->castKeys($detach); - } - - // Now we are finally ready to attach the new records. Note that we'll disable - // touching until after the entire operation is complete so we don't fire a - // ton of touch operations until we are totally done syncing the records. - $changes = array_merge( - $changes, $this->attachNew($records, $current, false) - ); - - // Once we have finished attaching or detaching the records, we will see if we - // have done any attaching or detaching, and if we have we will touch these - // relationships if they are configured to touch on any database updates. - if (count($changes['attached']) || - count($changes['updated'])) { - $this->touchIfTouching(); - } - - return $changes; - } - - /** - * Format the sync / toggle record list so that it is keyed by ID. - * - * @param array $records - * @return array - */ - protected function formatRecordsList(array $records) - { - return collect($records)->mapWithKeys(function ($attributes, $id) { - if (! is_array($attributes)) { - list($id, $attributes) = [$attributes, []]; - } - - return [$id => $attributes]; - })->all(); - } - - /** - * Attach all of the records that aren't in the given current records. - * - * @param array $records - * @param array $current - * @param bool $touch - * @return array - */ - protected function attachNew(array $records, array $current, $touch = true) - { - $changes = ['attached' => [], 'updated' => []]; - - foreach ($records as $id => $attributes) { - // If the ID is not in the list of existing pivot IDs, we will insert a new pivot - // record, otherwise, we will just update this existing record on this joining - // table, so that the developers will easily update these records pain free. - if (! in_array($id, $current)) { - $this->attach($id, $attributes, $touch); - - $changes['attached'][] = $this->castKey($id); - } - - // Now we'll try to update an existing pivot record with the attributes that were - // given to the method. If the model is actually updated we will add it to the - // list of updated pivot records so we return them back out to the consumer. - elseif (count($attributes) > 0 && - $this->updateExistingPivot($id, $attributes, $touch)) { - $changes['updated'][] = $this->castKey($id); - } - } - - return $changes; - } - - /** - * Update an existing pivot record on the table. - * - * @param mixed $id - * @param array $attributes - * @param bool $touch - * @return int - */ - public function updateExistingPivot($id, array $attributes, $touch = true) - { - if (in_array($this->updatedAt(), $this->pivotColumns)) { - $attributes = $this->addTimestampsToAttachment($attributes, true); - } - - $updated = $this->newPivotStatementForId($this->parseId($id))->update( - $this->castAttributes($attributes) - ); - - if ($touch) { - $this->touchIfTouching(); - } - - return $updated; - } - - /** - * Attach a model to the parent. - * - * @param mixed $id - * @param array $attributes - * @param bool $touch - * @return void - */ - public function attach($id, array $attributes = [], $touch = true) - { - // Here we will insert the attachment records into the pivot table. Once we have - // inserted the records, we will touch the relationships if necessary and the - // function will return. We can parse the IDs before inserting the records. - $this->newPivotStatement()->insert($this->formatAttachRecords( - $this->parseIds($id), $attributes - )); - - if ($touch) { - $this->touchIfTouching(); - } - } - - /** - * Create an array of records to insert into the pivot table. - * - * @param array $ids - * @param array $attributes - * @return array - */ - protected function formatAttachRecords($ids, array $attributes) - { - $records = []; - - $hasTimestamps = ($this->hasPivotColumn($this->createdAt()) || - $this->hasPivotColumn($this->updatedAt())); - - // To create the attachment records, we will simply spin through the IDs given - // and create a new record to insert for each ID. Each ID may actually be a - // key in the array, with extra attributes to be placed in other columns. - foreach ($ids as $key => $value) { - $records[] = $this->formatAttachRecord( - $key, $value, $attributes, $hasTimestamps - ); - } - - return $records; - } - - /** - * Create a full attachment record payload. - * - * @param int $key - * @param mixed $value - * @param array $attributes - * @param bool $hasTimestamps - * @return array - */ - protected function formatAttachRecord($key, $value, $attributes, $hasTimestamps) - { - list($id, $attributes) = $this->extractAttachIdAndAttributes($key, $value, $attributes); - - return array_merge( - $this->baseAttachRecord($id, $hasTimestamps), $this->castAttributes($attributes) - ); - } - - /** - * Get the attach record ID and extra attributes. - * - * @param mixed $key - * @param mixed $value - * @param array $attributes - * @return array - */ - protected function extractAttachIdAndAttributes($key, $value, array $attributes) - { - return is_array($value) - ? [$key, array_merge($value, $attributes)] - : [$value, $attributes]; - } - - /** - * Create a new pivot attachment record. - * - * @param int $id - * @param bool $timed - * @return array - */ - protected function baseAttachRecord($id, $timed) - { - $record[$this->relatedPivotKey] = $id; - - $record[$this->foreignPivotKey] = $this->parent->{$this->parentKey}; - - // If the record needs to have creation and update timestamps, we will make - // them by calling the parent model's "freshTimestamp" method which will - // provide us with a fresh timestamp in this model's preferred format. - if ($timed) { - $record = $this->addTimestampsToAttachment($record); - } - - foreach ($this->pivotValues as $value) { - $record[$value['column']] = $value['value']; - } - - return $record; - } - - /** - * Set the creation and update timestamps on an attach record. - * - * @param array $record - * @param bool $exists - * @return array - */ - protected function addTimestampsToAttachment(array $record, $exists = false) - { - $fresh = $this->parent->freshTimestamp(); - - if ($this->using) { - $pivotModel = new $this->using; - - $fresh = $fresh->format($pivotModel->getDateFormat()); - } - - if (! $exists && $this->hasPivotColumn($this->createdAt())) { - $record[$this->createdAt()] = $fresh; - } - - if ($this->hasPivotColumn($this->updatedAt())) { - $record[$this->updatedAt()] = $fresh; - } - - return $record; - } - - /** - * Determine whether the given column is defined as a pivot column. - * - * @param string $column - * @return bool - */ - protected function hasPivotColumn($column) - { - return in_array($column, $this->pivotColumns); - } - - /** - * Detach models from the relationship. - * - * @param mixed $ids - * @param bool $touch - * @return int - */ - public function detach($ids = null, $touch = true) - { - $query = $this->newPivotQuery(); - - // If associated IDs were passed to the method we will only delete those - // associations, otherwise all of the association ties will be broken. - // We'll return the numbers of affected rows when we do the deletes. - if (! is_null($ids)) { - $ids = $this->parseIds($ids); - - if (empty($ids)) { - return 0; - } - - $query->whereIn($this->relatedPivotKey, (array) $ids); - } - - // Once we have all of the conditions set on the statement, we are ready - // to run the delete on the pivot table. Then, if the touch parameter - // is true, we will go ahead and touch all related models to sync. - $results = $query->delete(); - - if ($touch) { - $this->touchIfTouching(); - } - - return $results; - } - - /** - * Create a new pivot model instance. - * - * @param array $attributes - * @param bool $exists - * @return \Illuminate\Database\Eloquent\Relations\Pivot - */ - public function newPivot(array $attributes = [], $exists = false) - { - $pivot = $this->related->newPivot( - $this->parent, $attributes, $this->table, $exists, $this->using - ); - - return $pivot->setPivotKeys($this->foreignPivotKey, $this->relatedPivotKey); - } - - /** - * Create a new existing pivot model instance. - * - * @param array $attributes - * @return \Illuminate\Database\Eloquent\Relations\Pivot - */ - public function newExistingPivot(array $attributes = []) - { - return $this->newPivot($attributes, true); - } - - /** - * Get a new plain query builder for the pivot table. - * - * @return \Illuminate\Database\Query\Builder - */ - public function newPivotStatement() - { - return $this->query->getQuery()->newQuery()->from($this->table); - } - - /** - * Get a new pivot statement for a given "other" ID. - * - * @param mixed $id - * @return \Illuminate\Database\Query\Builder - */ - public function newPivotStatementForId($id) - { - return $this->newPivotQuery()->where($this->relatedPivotKey, $id); - } - - /** - * Create a new query builder for the pivot table. - * - * @return \Illuminate\Database\Query\Builder - */ - protected function newPivotQuery() - { - $query = $this->newPivotStatement(); - - foreach ($this->pivotWheres as $arguments) { - call_user_func_array([$query, 'where'], $arguments); - } - - foreach ($this->pivotWhereIns as $arguments) { - call_user_func_array([$query, 'whereIn'], $arguments); - } - - return $query->where($this->foreignPivotKey, $this->parent->{$this->parentKey}); - } - - /** - * Set the columns on the pivot table to retrieve. - * - * @param array|mixed $columns - * @return $this - */ - public function withPivot($columns) - { - $this->pivotColumns = array_merge( - $this->pivotColumns, is_array($columns) ? $columns : func_get_args() - ); - - return $this; - } - - /** - * Get all of the IDs from the given mixed value. - * - * @param mixed $value - * @return array - */ - protected function parseIds($value) - { - if ($value instanceof Model) { - return [$value->getKey()]; - } - - if ($value instanceof Collection) { - return $value->modelKeys(); - } - - if ($value instanceof BaseCollection) { - return $value->toArray(); - } - - return (array) $value; - } - - /** - * Get the ID from the given mixed value. - * - * @param mixed $value - * @return mixed - */ - protected function parseId($value) - { - return $value instanceof Model ? $value->getKey() : $value; - } - - /** - * Cast the given keys to integers if they are numeric and string otherwise. - * - * @param array $keys - * @return array - */ - protected function castKeys(array $keys) - { - return (array) array_map(function ($v) { - return $this->castKey($v); - }, $keys); - } - - /** - * Cast the given key to an integer if it is numeric. - * - * @param mixed $key - * @return mixed - */ - protected function castKey($key) - { - return is_numeric($key) ? (int) $key : (string) $key; - } - - /** - * Cast the given pivot attributes. - * - * @param array $attributes - * @return array - */ - protected function castAttributes($attributes) - { - return $this->using - ? $this->newPivot()->fill($attributes)->getAttributes() - : $attributes; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/Concerns/SupportsDefaultModels.php b/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/Concerns/SupportsDefaultModels.php deleted file mode 100644 index 74e758f5..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/Concerns/SupportsDefaultModels.php +++ /dev/null @@ -1,63 +0,0 @@ -withDefault = $callback; - - return $this; - } - - /** - * Get the default value for this relation. - * - * @param \Illuminate\Database\Eloquent\Model $parent - * @return \Illuminate\Database\Eloquent\Model|null - */ - protected function getDefaultFor(Model $parent) - { - if (! $this->withDefault) { - return; - } - - $instance = $this->newRelatedInstanceFor($parent); - - if (is_callable($this->withDefault)) { - return call_user_func($this->withDefault, $instance, $parent) ?: $instance; - } - - if (is_array($this->withDefault)) { - $instance->forceFill($this->withDefault); - } - - return $instance; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/HasMany.php b/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/HasMany.php deleted file mode 100755 index 6149e475..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/HasMany.php +++ /dev/null @@ -1,47 +0,0 @@ -query->get(); - } - - /** - * Initialize the relation on a set of models. - * - * @param array $models - * @param string $relation - * @return array - */ - public function initRelation(array $models, $relation) - { - foreach ($models as $model) { - $model->setRelation($relation, $this->related->newCollection()); - } - - return $models; - } - - /** - * Match the eagerly loaded results to their parents. - * - * @param array $models - * @param \Illuminate\Database\Eloquent\Collection $results - * @param string $relation - * @return array - */ - public function match(array $models, Collection $results, $relation) - { - return $this->matchMany($models, $results, $relation); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/HasManyThrough.php b/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/HasManyThrough.php deleted file mode 100644 index b0a02cc9..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/HasManyThrough.php +++ /dev/null @@ -1,556 +0,0 @@ -localKey = $localKey; - $this->firstKey = $firstKey; - $this->secondKey = $secondKey; - $this->farParent = $farParent; - $this->throughParent = $throughParent; - $this->secondLocalKey = $secondLocalKey; - - parent::__construct($query, $throughParent); - } - - /** - * Set the base constraints on the relation query. - * - * @return void - */ - public function addConstraints() - { - $localValue = $this->farParent[$this->localKey]; - - $this->performJoin(); - - if (static::$constraints) { - $this->query->where($this->getQualifiedFirstKeyName(), '=', $localValue); - } - } - - /** - * Set the join clause on the query. - * - * @param \Illuminate\Database\Eloquent\Builder|null $query - * @return void - */ - protected function performJoin(Builder $query = null) - { - $query = $query ?: $this->query; - - $farKey = $this->getQualifiedFarKeyName(); - - $query->join($this->throughParent->getTable(), $this->getQualifiedParentKeyName(), '=', $farKey); - - if ($this->throughParentSoftDeletes()) { - $query->whereNull($this->throughParent->getQualifiedDeletedAtColumn()); - } - } - - /** - * Get the fully qualified parent key name. - * - * @return string - */ - public function getQualifiedParentKeyName() - { - return $this->parent->qualifyColumn($this->secondLocalKey); - } - - /** - * Determine whether "through" parent of the relation uses Soft Deletes. - * - * @return bool - */ - public function throughParentSoftDeletes() - { - return in_array(SoftDeletes::class, class_uses_recursive( - get_class($this->throughParent) - )); - } - - /** - * Set the constraints for an eager load of the relation. - * - * @param array $models - * @return void - */ - public function addEagerConstraints(array $models) - { - $this->query->whereIn( - $this->getQualifiedFirstKeyName(), $this->getKeys($models, $this->localKey) - ); - } - - /** - * Initialize the relation on a set of models. - * - * @param array $models - * @param string $relation - * @return array - */ - public function initRelation(array $models, $relation) - { - foreach ($models as $model) { - $model->setRelation($relation, $this->related->newCollection()); - } - - return $models; - } - - /** - * Match the eagerly loaded results to their parents. - * - * @param array $models - * @param \Illuminate\Database\Eloquent\Collection $results - * @param string $relation - * @return array - */ - public function match(array $models, Collection $results, $relation) - { - $dictionary = $this->buildDictionary($results); - - // Once we have the dictionary we can simply spin through the parent models to - // link them up with their children using the keyed dictionary to make the - // matching very convenient and easy work. Then we'll just return them. - foreach ($models as $model) { - if (isset($dictionary[$key = $model->getAttribute($this->localKey)])) { - $model->setRelation( - $relation, $this->related->newCollection($dictionary[$key]) - ); - } - } - - return $models; - } - - /** - * Build model dictionary keyed by the relation's foreign key. - * - * @param \Illuminate\Database\Eloquent\Collection $results - * @return array - */ - protected function buildDictionary(Collection $results) - { - $dictionary = []; - - // First we will create a dictionary of models keyed by the foreign key of the - // relationship as this will allow us to quickly access all of the related - // models without having to do nested looping which will be quite slow. - foreach ($results as $result) { - $dictionary[$result->{$this->firstKey}][] = $result; - } - - return $dictionary; - } - - /** - * Get the first related model record matching the attributes or instantiate it. - * - * @param array $attributes - * @return \Illuminate\Database\Eloquent\Model - */ - public function firstOrNew(array $attributes) - { - if (is_null($instance = $this->where($attributes)->first())) { - $instance = $this->related->newInstance($attributes); - } - - return $instance; - } - - /** - * Create or update a related record matching the attributes, and fill it with values. - * - * @param array $attributes - * @param array $values - * @return \Illuminate\Database\Eloquent\Model - */ - public function updateOrCreate(array $attributes, array $values = []) - { - $instance = $this->firstOrNew($attributes); - - $instance->fill($values)->save(); - - return $instance; - } - - /** - * Execute the query and get the first related model. - * - * @param array $columns - * @return mixed - */ - public function first($columns = ['*']) - { - $results = $this->take(1)->get($columns); - - return count($results) > 0 ? $results->first() : null; - } - - /** - * Execute the query and get the first result or throw an exception. - * - * @param array $columns - * @return \Illuminate\Database\Eloquent\Model|static - * - * @throws \Illuminate\Database\Eloquent\ModelNotFoundException - */ - public function firstOrFail($columns = ['*']) - { - if (! is_null($model = $this->first($columns))) { - return $model; - } - - throw (new ModelNotFoundException)->setModel(get_class($this->related)); - } - - /** - * Find a related model by its primary key. - * - * @param mixed $id - * @param array $columns - * @return \Illuminate\Database\Eloquent\Model|\Illuminate\Database\Eloquent\Collection|null - */ - public function find($id, $columns = ['*']) - { - if (is_array($id)) { - return $this->findMany($id, $columns); - } - - return $this->where( - $this->getRelated()->getQualifiedKeyName(), '=', $id - )->first($columns); - } - - /** - * Find multiple related models by their primary keys. - * - * @param mixed $ids - * @param array $columns - * @return \Illuminate\Database\Eloquent\Collection - */ - public function findMany($ids, $columns = ['*']) - { - if (empty($ids)) { - return $this->getRelated()->newCollection(); - } - - return $this->whereIn( - $this->getRelated()->getQualifiedKeyName(), $ids - )->get($columns); - } - - /** - * Find a related model by its primary key or throw an exception. - * - * @param mixed $id - * @param array $columns - * @return \Illuminate\Database\Eloquent\Model|\Illuminate\Database\Eloquent\Collection - * - * @throws \Illuminate\Database\Eloquent\ModelNotFoundException - */ - public function findOrFail($id, $columns = ['*']) - { - $result = $this->find($id, $columns); - - if (is_array($id)) { - if (count($result) === count(array_unique($id))) { - return $result; - } - } elseif (! is_null($result)) { - return $result; - } - - throw (new ModelNotFoundException)->setModel(get_class($this->related)); - } - - /** - * Get the results of the relationship. - * - * @return mixed - */ - public function getResults() - { - return $this->get(); - } - - /** - * Execute the query as a "select" statement. - * - * @param array $columns - * @return \Illuminate\Database\Eloquent\Collection - */ - public function get($columns = ['*']) - { - $builder = $this->prepareQueryBuilder($columns); - - $models = $builder->getModels(); - - // If we actually found models we will also eager load any relationships that - // have been specified as needing to be eager loaded. This will solve the - // n + 1 query problem for the developer and also increase performance. - if (count($models) > 0) { - $models = $builder->eagerLoadRelations($models); - } - - return $this->related->newCollection($models); - } - - /** - * Get a paginator for the "select" statement. - * - * @param int $perPage - * @param array $columns - * @param string $pageName - * @param int $page - * @return \Illuminate\Contracts\Pagination\LengthAwarePaginator - */ - public function paginate($perPage = null, $columns = ['*'], $pageName = 'page', $page = null) - { - $this->query->addSelect($this->shouldSelect($columns)); - - return $this->query->paginate($perPage, $columns, $pageName, $page); - } - - /** - * Paginate the given query into a simple paginator. - * - * @param int $perPage - * @param array $columns - * @param string $pageName - * @param int|null $page - * @return \Illuminate\Contracts\Pagination\Paginator - */ - public function simplePaginate($perPage = null, $columns = ['*'], $pageName = 'page', $page = null) - { - $this->query->addSelect($this->shouldSelect($columns)); - - return $this->query->simplePaginate($perPage, $columns, $pageName, $page); - } - - /** - * Set the select clause for the relation query. - * - * @param array $columns - * @return array - */ - protected function shouldSelect(array $columns = ['*']) - { - if ($columns == ['*']) { - $columns = [$this->related->getTable().'.*']; - } - - return array_merge($columns, [$this->getQualifiedFirstKeyName()]); - } - - /** - * Chunk the results of the query. - * - * @param int $count - * @param callable $callback - * @return bool - */ - public function chunk($count, callable $callback) - { - return $this->prepareQueryBuilder()->chunk($count, $callback); - } - - /** - * Execute a callback over each item while chunking. - * - * @param callable $callback - * @param int $count - * @return bool - */ - public function each(callable $callback, $count = 1000) - { - return $this->chunk($count, function ($results) use ($callback) { - foreach ($results as $key => $value) { - if ($callback($value, $key) === false) { - return false; - } - } - }); - } - - /** - * Prepare the query builder for query execution. - * - * @param array $columns - * @return \Illuminate\Database\Eloquent\Builder - */ - protected function prepareQueryBuilder($columns = ['*']) - { - return $this->query->applyScopes()->addSelect( - $this->shouldSelect($this->query->getQuery()->columns ? [] : $columns) - ); - } - - /** - * Add the constraints for a relationship query. - * - * @param \Illuminate\Database\Eloquent\Builder $query - * @param \Illuminate\Database\Eloquent\Builder $parentQuery - * @param array|mixed $columns - * @return \Illuminate\Database\Eloquent\Builder - */ - public function getRelationExistenceQuery(Builder $query, Builder $parentQuery, $columns = ['*']) - { - if ($parentQuery->getQuery()->from == $query->getQuery()->from) { - return $this->getRelationExistenceQueryForSelfRelation($query, $parentQuery, $columns); - } - - $this->performJoin($query); - - return $query->select($columns)->whereColumn( - $this->getQualifiedLocalKeyName(), '=', $this->getQualifiedFirstKeyName() - ); - } - - /** - * Add the constraints for a relationship query on the same table. - * - * @param \Illuminate\Database\Eloquent\Builder $query - * @param \Illuminate\Database\Eloquent\Builder $parentQuery - * @param array|mixed $columns - * @return \Illuminate\Database\Eloquent\Builder - */ - public function getRelationExistenceQueryForSelfRelation(Builder $query, Builder $parentQuery, $columns = ['*']) - { - $query->from($query->getModel()->getTable().' as '.$hash = $this->getRelationCountHash()); - - $query->join($this->throughParent->getTable(), $this->getQualifiedParentKeyName(), '=', $hash.'.'.$this->secondLocalKey); - - if ($this->throughParentSoftDeletes()) { - $query->whereNull($this->throughParent->getQualifiedDeletedAtColumn()); - } - - $query->getModel()->setTable($hash); - - return $query->select($columns)->whereColumn( - $parentQuery->getQuery()->from.'.'.$query->getModel()->getKeyName(), '=', $this->getQualifiedFirstKeyName() - ); - } - - /** - * Get a relationship join table hash. - * - * @return string - */ - public function getRelationCountHash() - { - return 'laravel_reserved_'.static::$selfJoinCount++; - } - - /** - * Get the qualified foreign key on the related model. - * - * @return string - */ - public function getQualifiedFarKeyName() - { - return $this->getQualifiedForeignKeyName(); - } - - /** - * Get the qualified foreign key on the "through" model. - * - * @return string - */ - public function getQualifiedFirstKeyName() - { - return $this->throughParent->qualifyColumn($this->firstKey); - } - - /** - * Get the qualified foreign key on the related model. - * - * @return string - */ - public function getQualifiedForeignKeyName() - { - return $this->related->qualifyColumn($this->secondKey); - } - - /** - * Get the qualified local key on the far parent model. - * - * @return string - */ - public function getQualifiedLocalKeyName() - { - return $this->farParent->qualifyColumn($this->localKey); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/HasOne.php b/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/HasOne.php deleted file mode 100755 index 858e5d07..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/HasOne.php +++ /dev/null @@ -1,64 +0,0 @@ -query->first() ?: $this->getDefaultFor($this->parent); - } - - /** - * Initialize the relation on a set of models. - * - * @param array $models - * @param string $relation - * @return array - */ - public function initRelation(array $models, $relation) - { - foreach ($models as $model) { - $model->setRelation($relation, $this->getDefaultFor($model)); - } - - return $models; - } - - /** - * Match the eagerly loaded results to their parents. - * - * @param array $models - * @param \Illuminate\Database\Eloquent\Collection $results - * @param string $relation - * @return array - */ - public function match(array $models, Collection $results, $relation) - { - return $this->matchOne($models, $results, $relation); - } - - /** - * Make a new related instance for the given model. - * - * @param \Illuminate\Database\Eloquent\Model $parent - * @return \Illuminate\Database\Eloquent\Model - */ - public function newRelatedInstanceFor(Model $parent) - { - return $this->related->newInstance()->setAttribute( - $this->getForeignKeyName(), $parent->{$this->localKey} - ); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/HasOneOrMany.php b/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/HasOneOrMany.php deleted file mode 100755 index 20b2b4f7..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/HasOneOrMany.php +++ /dev/null @@ -1,423 +0,0 @@ -localKey = $localKey; - $this->foreignKey = $foreignKey; - - parent::__construct($query, $parent); - } - - /** - * Create and return an un-saved instance of the related model. - * - * @param array $attributes - * @return \Illuminate\Database\Eloquent\Model - */ - public function make(array $attributes = []) - { - return tap($this->related->newInstance($attributes), function ($instance) { - $this->setForeignAttributesForCreate($instance); - }); - } - - /** - * Set the base constraints on the relation query. - * - * @return void - */ - public function addConstraints() - { - if (static::$constraints) { - $this->query->where($this->foreignKey, '=', $this->getParentKey()); - - $this->query->whereNotNull($this->foreignKey); - } - } - - /** - * Set the constraints for an eager load of the relation. - * - * @param array $models - * @return void - */ - public function addEagerConstraints(array $models) - { - $this->query->whereIn( - $this->foreignKey, $this->getKeys($models, $this->localKey) - ); - } - - /** - * Match the eagerly loaded results to their single parents. - * - * @param array $models - * @param \Illuminate\Database\Eloquent\Collection $results - * @param string $relation - * @return array - */ - public function matchOne(array $models, Collection $results, $relation) - { - return $this->matchOneOrMany($models, $results, $relation, 'one'); - } - - /** - * Match the eagerly loaded results to their many parents. - * - * @param array $models - * @param \Illuminate\Database\Eloquent\Collection $results - * @param string $relation - * @return array - */ - public function matchMany(array $models, Collection $results, $relation) - { - return $this->matchOneOrMany($models, $results, $relation, 'many'); - } - - /** - * Match the eagerly loaded results to their many parents. - * - * @param array $models - * @param \Illuminate\Database\Eloquent\Collection $results - * @param string $relation - * @param string $type - * @return array - */ - protected function matchOneOrMany(array $models, Collection $results, $relation, $type) - { - $dictionary = $this->buildDictionary($results); - - // Once we have the dictionary we can simply spin through the parent models to - // link them up with their children using the keyed dictionary to make the - // matching very convenient and easy work. Then we'll just return them. - foreach ($models as $model) { - if (isset($dictionary[$key = $model->getAttribute($this->localKey)])) { - $model->setRelation( - $relation, $this->getRelationValue($dictionary, $key, $type) - ); - } - } - - return $models; - } - - /** - * Get the value of a relationship by one or many type. - * - * @param array $dictionary - * @param string $key - * @param string $type - * @return mixed - */ - protected function getRelationValue(array $dictionary, $key, $type) - { - $value = $dictionary[$key]; - - return $type == 'one' ? reset($value) : $this->related->newCollection($value); - } - - /** - * Build model dictionary keyed by the relation's foreign key. - * - * @param \Illuminate\Database\Eloquent\Collection $results - * @return array - */ - protected function buildDictionary(Collection $results) - { - $foreign = $this->getForeignKeyName(); - - return $results->mapToDictionary(function ($result) use ($foreign) { - return [$result->{$foreign} => $result]; - })->all(); - } - - /** - * Find a model by its primary key or return new instance of the related model. - * - * @param mixed $id - * @param array $columns - * @return \Illuminate\Support\Collection|\Illuminate\Database\Eloquent\Model - */ - public function findOrNew($id, $columns = ['*']) - { - if (is_null($instance = $this->find($id, $columns))) { - $instance = $this->related->newInstance(); - - $this->setForeignAttributesForCreate($instance); - } - - return $instance; - } - - /** - * Get the first related model record matching the attributes or instantiate it. - * - * @param array $attributes - * @param array $values - * @return \Illuminate\Database\Eloquent\Model - */ - public function firstOrNew(array $attributes, array $values = []) - { - if (is_null($instance = $this->where($attributes)->first())) { - $instance = $this->related->newInstance($attributes + $values); - - $this->setForeignAttributesForCreate($instance); - } - - return $instance; - } - - /** - * Get the first related record matching the attributes or create it. - * - * @param array $attributes - * @param array $values - * @return \Illuminate\Database\Eloquent\Model - */ - public function firstOrCreate(array $attributes, array $values = []) - { - if (is_null($instance = $this->where($attributes)->first())) { - $instance = $this->create($attributes + $values); - } - - return $instance; - } - - /** - * Create or update a related record matching the attributes, and fill it with values. - * - * @param array $attributes - * @param array $values - * @return \Illuminate\Database\Eloquent\Model - */ - public function updateOrCreate(array $attributes, array $values = []) - { - return tap($this->firstOrNew($attributes), function ($instance) use ($values) { - $instance->fill($values); - - $instance->save(); - }); - } - - /** - * Attach a model instance to the parent model. - * - * @param \Illuminate\Database\Eloquent\Model $model - * @return \Illuminate\Database\Eloquent\Model|false - */ - public function save(Model $model) - { - $this->setForeignAttributesForCreate($model); - - return $model->save() ? $model : false; - } - - /** - * Attach a collection of models to the parent instance. - * - * @param \Traversable|array $models - * @return \Traversable|array - */ - public function saveMany($models) - { - foreach ($models as $model) { - $this->save($model); - } - - return $models; - } - - /** - * Create a new instance of the related model. - * - * @param array $attributes - * @return \Illuminate\Database\Eloquent\Model - */ - public function create(array $attributes = []) - { - return tap($this->related->newInstance($attributes), function ($instance) { - $this->setForeignAttributesForCreate($instance); - - $instance->save(); - }); - } - - /** - * Create a Collection of new instances of the related model. - * - * @param array $records - * @return \Illuminate\Database\Eloquent\Collection - */ - public function createMany(array $records) - { - $instances = $this->related->newCollection(); - - foreach ($records as $record) { - $instances->push($this->create($record)); - } - - return $instances; - } - - /** - * Set the foreign ID for creating a related model. - * - * @param \Illuminate\Database\Eloquent\Model $model - * @return void - */ - protected function setForeignAttributesForCreate(Model $model) - { - $model->setAttribute($this->getForeignKeyName(), $this->getParentKey()); - } - - /** - * Perform an update on all the related models. - * - * @param array $attributes - * @return int - */ - public function update(array $attributes) - { - if ($this->related->usesTimestamps() && ! is_null($this->relatedUpdatedAt())) { - $attributes[$this->relatedUpdatedAt()] = $this->related->freshTimestampString(); - } - - return $this->query->update($attributes); - } - - /** - * Add the constraints for a relationship query. - * - * @param \Illuminate\Database\Eloquent\Builder $query - * @param \Illuminate\Database\Eloquent\Builder $parentQuery - * @param array|mixed $columns - * @return \Illuminate\Database\Eloquent\Builder - */ - public function getRelationExistenceQuery(Builder $query, Builder $parentQuery, $columns = ['*']) - { - if ($query->getQuery()->from == $parentQuery->getQuery()->from) { - return $this->getRelationExistenceQueryForSelfRelation($query, $parentQuery, $columns); - } - - return parent::getRelationExistenceQuery($query, $parentQuery, $columns); - } - - /** - * Add the constraints for a relationship query on the same table. - * - * @param \Illuminate\Database\Eloquent\Builder $query - * @param \Illuminate\Database\Eloquent\Builder $parentQuery - * @param array|mixed $columns - * @return \Illuminate\Database\Eloquent\Builder - */ - public function getRelationExistenceQueryForSelfRelation(Builder $query, Builder $parentQuery, $columns = ['*']) - { - $query->from($query->getModel()->getTable().' as '.$hash = $this->getRelationCountHash()); - - $query->getModel()->setTable($hash); - - return $query->select($columns)->whereColumn( - $this->getQualifiedParentKeyName(), '=', $hash.'.'.$this->getForeignKeyName() - ); - } - - /** - * Get a relationship join table hash. - * - * @return string - */ - public function getRelationCountHash() - { - return 'laravel_reserved_'.static::$selfJoinCount++; - } - - /** - * Get the key for comparing against the parent key in "has" query. - * - * @return string - */ - public function getExistenceCompareKey() - { - return $this->getQualifiedForeignKeyName(); - } - - /** - * Get the key value of the parent's local key. - * - * @return mixed - */ - public function getParentKey() - { - return $this->parent->getAttribute($this->localKey); - } - - /** - * Get the fully qualified parent key name. - * - * @return string - */ - public function getQualifiedParentKeyName() - { - return $this->parent->qualifyColumn($this->localKey); - } - - /** - * Get the plain foreign key. - * - * @return string - */ - public function getForeignKeyName() - { - $segments = explode('.', $this->getQualifiedForeignKeyName()); - - return end($segments); - } - - /** - * Get the foreign key for the relationship. - * - * @return string - */ - public function getQualifiedForeignKeyName() - { - return $this->foreignKey; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/MorphMany.php b/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/MorphMany.php deleted file mode 100755 index e2a5c5a3..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/MorphMany.php +++ /dev/null @@ -1,47 +0,0 @@ -query->get(); - } - - /** - * Initialize the relation on a set of models. - * - * @param array $models - * @param string $relation - * @return array - */ - public function initRelation(array $models, $relation) - { - foreach ($models as $model) { - $model->setRelation($relation, $this->related->newCollection()); - } - - return $models; - } - - /** - * Match the eagerly loaded results to their parents. - * - * @param array $models - * @param \Illuminate\Database\Eloquent\Collection $results - * @param string $relation - * @return array - */ - public function match(array $models, Collection $results, $relation) - { - return $this->matchMany($models, $results, $relation); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/MorphOne.php b/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/MorphOne.php deleted file mode 100755 index 520a7ec9..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/MorphOne.php +++ /dev/null @@ -1,64 +0,0 @@ -query->first() ?: $this->getDefaultFor($this->parent); - } - - /** - * Initialize the relation on a set of models. - * - * @param array $models - * @param string $relation - * @return array - */ - public function initRelation(array $models, $relation) - { - foreach ($models as $model) { - $model->setRelation($relation, $this->getDefaultFor($model)); - } - - return $models; - } - - /** - * Match the eagerly loaded results to their parents. - * - * @param array $models - * @param \Illuminate\Database\Eloquent\Collection $results - * @param string $relation - * @return array - */ - public function match(array $models, Collection $results, $relation) - { - return $this->matchOne($models, $results, $relation); - } - - /** - * Make a new related instance for the given model. - * - * @param \Illuminate\Database\Eloquent\Model $parent - * @return \Illuminate\Database\Eloquent\Model - */ - public function newRelatedInstanceFor(Model $parent) - { - return $this->related->newInstance() - ->setAttribute($this->getForeignKeyName(), $parent->{$this->localKey}) - ->setAttribute($this->getMorphType(), $this->morphClass); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/MorphOneOrMany.php b/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/MorphOneOrMany.php deleted file mode 100755 index 7e300543..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/MorphOneOrMany.php +++ /dev/null @@ -1,140 +0,0 @@ -morphType = $type; - - $this->morphClass = $parent->getMorphClass(); - - parent::__construct($query, $parent, $id, $localKey); - } - - /** - * Set the base constraints on the relation query. - * - * @return void - */ - public function addConstraints() - { - if (static::$constraints) { - parent::addConstraints(); - - $this->query->where($this->morphType, $this->morphClass); - } - } - - /** - * Set the constraints for an eager load of the relation. - * - * @param array $models - * @return void - */ - public function addEagerConstraints(array $models) - { - parent::addEagerConstraints($models); - - $this->query->where($this->morphType, $this->morphClass); - } - - /** - * Attach a model instance to the parent model. - * - * @param \Illuminate\Database\Eloquent\Model $model - * @return \Illuminate\Database\Eloquent\Model - */ - public function save(Model $model) - { - $model->setAttribute($this->getMorphType(), $this->morphClass); - - return parent::save($model); - } - - /** - * Set the foreign ID and type for creating a related model. - * - * @param \Illuminate\Database\Eloquent\Model $model - * @return void - */ - protected function setForeignAttributesForCreate(Model $model) - { - $model->{$this->getForeignKeyName()} = $this->getParentKey(); - - $model->{$this->getMorphType()} = $this->morphClass; - } - - /** - * Get the relationship query. - * - * @param \Illuminate\Database\Eloquent\Builder $query - * @param \Illuminate\Database\Eloquent\Builder $parentQuery - * @param array|mixed $columns - * @return \Illuminate\Database\Eloquent\Builder - */ - public function getRelationExistenceQuery(Builder $query, Builder $parentQuery, $columns = ['*']) - { - return parent::getRelationExistenceQuery($query, $parentQuery, $columns)->where( - $this->morphType, $this->morphClass - ); - } - - /** - * Get the foreign key "type" name. - * - * @return string - */ - public function getQualifiedMorphType() - { - return $this->morphType; - } - - /** - * Get the plain morph type name without the table. - * - * @return string - */ - public function getMorphType() - { - return last(explode('.', $this->morphType)); - } - - /** - * Get the class name of the parent model. - * - * @return string - */ - public function getMorphClass() - { - return $this->morphClass; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/MorphPivot.php b/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/MorphPivot.php deleted file mode 100644 index a8a9210f..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/MorphPivot.php +++ /dev/null @@ -1,150 +0,0 @@ -where($this->morphType, $this->morphClass); - - return parent::setKeysForSaveQuery($query); - } - - /** - * Delete the pivot model record from the database. - * - * @return int - */ - public function delete() - { - $query = $this->getDeleteQuery(); - - $query->where($this->morphType, $this->morphClass); - - return $query->delete(); - } - - /** - * Set the morph type for the pivot. - * - * @param string $morphType - * @return $this - */ - public function setMorphType($morphType) - { - $this->morphType = $morphType; - - return $this; - } - - /** - * Set the morph class for the pivot. - * - * @param string $morphClass - * @return \Illuminate\Database\Eloquent\Relations\MorphPivot - */ - public function setMorphClass($morphClass) - { - $this->morphClass = $morphClass; - - return $this; - } - - /** - * Get the queueable identity for the entity. - * - * @return mixed - */ - public function getQueueableId() - { - if (isset($this->attributes[$this->getKeyName()])) { - return $this->getKey(); - } - - return sprintf( - '%s:%s:%s:%s:%s:%s', - $this->foreignKey, $this->getAttribute($this->foreignKey), - $this->relatedKey, $this->getAttribute($this->relatedKey), - $this->morphType, $this->morphClass - ); - } - - /** - * Get a new query to restore one or more models by their queueable IDs. - * - * @param array|int $ids - * @return \Illuminate\Database\Eloquent\Builder - */ - public function newQueryForRestoration($ids) - { - if (is_array($ids)) { - return $this->newQueryForCollectionRestoration($ids); - } - - if (! Str::contains($ids, ':')) { - return parent::newQueryForRestoration($ids); - } - - $segments = explode(':', $ids); - - return $this->newQueryWithoutScopes() - ->where($segments[0], $segments[1]) - ->where($segments[2], $segments[3]) - ->where($segments[4], $segments[5]); - } - - /** - * Get a new query to restore multiple models by their queueable IDs. - * - * @param array|int $ids - * @return \Illuminate\Database\Eloquent\Builder - */ - protected function newQueryForCollectionRestoration(array $ids) - { - if (! Str::contains($ids[0], ':')) { - return parent::newQueryForRestoration($ids); - } - - $query = $this->newQueryWithoutScopes(); - - foreach ($ids as $id) { - $segments = explode(':', $id); - - $query->orWhere(function ($query) use ($segments) { - return $query->where($segments[0], $segments[1]) - ->where($segments[2], $segments[3]) - ->where($segments[4], $segments[5]); - }); - } - - return $query; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/MorphTo.php b/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/MorphTo.php deleted file mode 100644 index 46e7d8c7..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/MorphTo.php +++ /dev/null @@ -1,283 +0,0 @@ -morphType = $type; - - parent::__construct($query, $parent, $foreignKey, $ownerKey, $relation); - } - - /** - * Set the constraints for an eager load of the relation. - * - * @param array $models - * @return void - */ - public function addEagerConstraints(array $models) - { - $this->buildDictionary($this->models = Collection::make($models)); - } - - /** - * Build a dictionary with the models. - * - * @param \Illuminate\Database\Eloquent\Collection $models - * @return void - */ - protected function buildDictionary(Collection $models) - { - foreach ($models as $model) { - if ($model->{$this->morphType}) { - $this->dictionary[$model->{$this->morphType}][$model->{$this->foreignKey}][] = $model; - } - } - } - - /** - * Get the results of the relationship. - * - * @return mixed - */ - public function getResults() - { - return $this->ownerKey ? parent::getResults() : null; - } - - /** - * Get the results of the relationship. - * - * Called via eager load method of Eloquent query builder. - * - * @return mixed - */ - public function getEager() - { - foreach (array_keys($this->dictionary) as $type) { - $this->matchToMorphParents($type, $this->getResultsByType($type)); - } - - return $this->models; - } - - /** - * Get all of the relation results for a type. - * - * @param string $type - * @return \Illuminate\Database\Eloquent\Collection - */ - protected function getResultsByType($type) - { - $instance = $this->createModelByType($type); - - $ownerKey = $this->ownerKey ?? $instance->getKeyName(); - - $query = $this->replayMacros($instance->newQuery()) - ->mergeConstraintsFrom($this->getQuery()) - ->with($this->getQuery()->getEagerLoads()); - - return $query->whereIn( - $instance->getTable().'.'.$ownerKey, $this->gatherKeysByType($type) - )->get(); - } - - /** - * Gather all of the foreign keys for a given type. - * - * @param string $type - * @return array - */ - protected function gatherKeysByType($type) - { - return collect($this->dictionary[$type])->map(function ($models) { - return head($models)->{$this->foreignKey}; - })->values()->unique()->all(); - } - - /** - * Create a new model instance by type. - * - * @param string $type - * @return \Illuminate\Database\Eloquent\Model - */ - public function createModelByType($type) - { - $class = Model::getActualClassNameForMorph($type); - - return new $class; - } - - /** - * Match the eagerly loaded results to their parents. - * - * @param array $models - * @param \Illuminate\Database\Eloquent\Collection $results - * @param string $relation - * @return array - */ - public function match(array $models, Collection $results, $relation) - { - return $models; - } - - /** - * Match the results for a given type to their parents. - * - * @param string $type - * @param \Illuminate\Database\Eloquent\Collection $results - * @return void - */ - protected function matchToMorphParents($type, Collection $results) - { - foreach ($results as $result) { - $ownerKey = ! is_null($this->ownerKey) ? $result->{$this->ownerKey} : $result->getKey(); - - if (isset($this->dictionary[$type][$ownerKey])) { - foreach ($this->dictionary[$type][$ownerKey] as $model) { - $model->setRelation($this->relation, $result); - } - } - } - } - - /** - * Associate the model instance to the given parent. - * - * @param \Illuminate\Database\Eloquent\Model $model - * @return \Illuminate\Database\Eloquent\Model - */ - public function associate($model) - { - $this->parent->setAttribute( - $this->foreignKey, $model instanceof Model ? $model->getKey() : null - ); - - $this->parent->setAttribute( - $this->morphType, $model instanceof Model ? $model->getMorphClass() : null - ); - - return $this->parent->setRelation($this->relation, $model); - } - - /** - * Dissociate previously associated model from the given parent. - * - * @return \Illuminate\Database\Eloquent\Model - */ - public function dissociate() - { - $this->parent->setAttribute($this->foreignKey, null); - - $this->parent->setAttribute($this->morphType, null); - - return $this->parent->setRelation($this->relation, null); - } - - /** - * Get the foreign key "type" name. - * - * @return string - */ - public function getMorphType() - { - return $this->morphType; - } - - /** - * Get the dictionary used by the relationship. - * - * @return array - */ - public function getDictionary() - { - return $this->dictionary; - } - - /** - * Replay stored macro calls on the actual related instance. - * - * @param \Illuminate\Database\Eloquent\Builder $query - * @return \Illuminate\Database\Eloquent\Builder - */ - protected function replayMacros(Builder $query) - { - foreach ($this->macroBuffer as $macro) { - $query->{$macro['method']}(...$macro['parameters']); - } - - return $query; - } - - /** - * Handle dynamic method calls to the relationship. - * - * @param string $method - * @param array $parameters - * @return mixed - */ - public function __call($method, $parameters) - { - try { - return parent::__call($method, $parameters); - } - - // If we tried to call a method that does not exist on the parent Builder instance, - // we'll assume that we want to call a query macro (e.g. withTrashed) that only - // exists on related models. We will just store the call and replay it later. - catch (BadMethodCallException $e) { - $this->macroBuffer[] = compact('method', 'parameters'); - - return $this; - } - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/MorphToMany.php b/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/MorphToMany.php deleted file mode 100644 index f97c465d..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/MorphToMany.php +++ /dev/null @@ -1,184 +0,0 @@ -inverse = $inverse; - $this->morphType = $name.'_type'; - $this->morphClass = $inverse ? $query->getModel()->getMorphClass() : $parent->getMorphClass(); - - parent::__construct( - $query, $parent, $table, $foreignPivotKey, - $relatedPivotKey, $parentKey, $relatedKey, $relationName - ); - } - - /** - * Set the where clause for the relation query. - * - * @return $this - */ - protected function addWhereConstraints() - { - parent::addWhereConstraints(); - - $this->query->where($this->table.'.'.$this->morphType, $this->morphClass); - - return $this; - } - - /** - * Set the constraints for an eager load of the relation. - * - * @param array $models - * @return void - */ - public function addEagerConstraints(array $models) - { - parent::addEagerConstraints($models); - - $this->query->where($this->table.'.'.$this->morphType, $this->morphClass); - } - - /** - * Create a new pivot attachment record. - * - * @param int $id - * @param bool $timed - * @return array - */ - protected function baseAttachRecord($id, $timed) - { - return Arr::add( - parent::baseAttachRecord($id, $timed), $this->morphType, $this->morphClass - ); - } - - /** - * Add the constraints for a relationship count query. - * - * @param \Illuminate\Database\Eloquent\Builder $query - * @param \Illuminate\Database\Eloquent\Builder $parentQuery - * @param array|mixed $columns - * @return \Illuminate\Database\Eloquent\Builder - */ - public function getRelationExistenceQuery(Builder $query, Builder $parentQuery, $columns = ['*']) - { - return parent::getRelationExistenceQuery($query, $parentQuery, $columns)->where( - $this->table.'.'.$this->morphType, $this->morphClass - ); - } - - /** - * Create a new query builder for the pivot table. - * - * @return \Illuminate\Database\Query\Builder - */ - protected function newPivotQuery() - { - return parent::newPivotQuery()->where($this->morphType, $this->morphClass); - } - - /** - * Create a new pivot model instance. - * - * @param array $attributes - * @param bool $exists - * @return \Illuminate\Database\Eloquent\Relations\Pivot - */ - public function newPivot(array $attributes = [], $exists = false) - { - $using = $this->using; - - $pivot = $using ? $using::fromRawAttributes($this->parent, $attributes, $this->table, $exists) - : MorphPivot::fromAttributes($this->parent, $attributes, $this->table, $exists); - - $pivot->setPivotKeys($this->foreignPivotKey, $this->relatedPivotKey) - ->setMorphType($this->morphType) - ->setMorphClass($this->morphClass); - - return $pivot; - } - - /** - * Get the pivot columns for the relation. - * - * "pivot_" is prefixed at each column for easy removal later. - * - * @return array - */ - protected function aliasedPivotColumns() - { - $defaults = [$this->foreignPivotKey, $this->relatedPivotKey, $this->morphType]; - - return collect(array_merge($defaults, $this->pivotColumns))->map(function ($column) { - return $this->table.'.'.$column.' as pivot_'.$column; - })->unique()->all(); - } - - /** - * Get the foreign key "type" name. - * - * @return string - */ - public function getMorphType() - { - return $this->morphType; - } - - /** - * Get the class name of the parent model. - * - * @return string - */ - public function getMorphClass() - { - return $this->morphClass; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/Pivot.php b/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/Pivot.php deleted file mode 100755 index dd7d3567..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/Pivot.php +++ /dev/null @@ -1,302 +0,0 @@ -setConnection($parent->getConnectionName()) - ->setTable($table) - ->forceFill($attributes) - ->syncOriginal(); - - // We store off the parent instance so we will access the timestamp column names - // for the model, since the pivot model timestamps aren't easily configurable - // from the developer's point of view. We can use the parents to get these. - $instance->pivotParent = $parent; - - $instance->exists = $exists; - - $instance->timestamps = $instance->hasTimestampAttributes(); - - return $instance; - } - - /** - * Create a new pivot model from raw values returned from a query. - * - * @param \Illuminate\Database\Eloquent\Model $parent - * @param array $attributes - * @param string $table - * @param bool $exists - * @return static - */ - public static function fromRawAttributes(Model $parent, $attributes, $table, $exists = false) - { - $instance = static::fromAttributes($parent, [], $table, $exists); - - $instance->setRawAttributes($attributes, true); - - $instance->timestamps = $instance->hasTimestampAttributes(); - - return $instance; - } - - /** - * Set the keys for a save update query. - * - * @param \Illuminate\Database\Eloquent\Builder $query - * @return \Illuminate\Database\Eloquent\Builder - */ - protected function setKeysForSaveQuery(Builder $query) - { - if (isset($this->attributes[$this->getKeyName()])) { - return parent::setKeysForSaveQuery($query); - } - - $query->where($this->foreignKey, $this->getOriginal( - $this->foreignKey, $this->getAttribute($this->foreignKey) - )); - - return $query->where($this->relatedKey, $this->getOriginal( - $this->relatedKey, $this->getAttribute($this->relatedKey) - )); - } - - /** - * Delete the pivot model record from the database. - * - * @return int - */ - public function delete() - { - if (isset($this->attributes[$this->getKeyName()])) { - return parent::delete(); - } - - return $this->getDeleteQuery()->delete(); - } - - /** - * Get the query builder for a delete operation on the pivot. - * - * @return \Illuminate\Database\Eloquent\Builder - */ - protected function getDeleteQuery() - { - return $this->newQuery()->where([ - $this->foreignKey => $this->getOriginal($this->foreignKey, $this->getAttribute($this->foreignKey)), - $this->relatedKey => $this->getOriginal($this->relatedKey, $this->getAttribute($this->relatedKey)), - ]); - } - - /** - * Get the table associated with the model. - * - * @return string - */ - public function getTable() - { - if (! isset($this->table)) { - $this->setTable(str_replace( - '\\', '', Str::snake(Str::singular(class_basename($this))) - )); - } - - return $this->table; - } - - /** - * Get the foreign key column name. - * - * @return string - */ - public function getForeignKey() - { - return $this->foreignKey; - } - - /** - * Get the "related key" column name. - * - * @return string - */ - public function getRelatedKey() - { - return $this->relatedKey; - } - - /** - * Get the "related key" column name. - * - * @return string - */ - public function getOtherKey() - { - return $this->getRelatedKey(); - } - - /** - * Set the key names for the pivot model instance. - * - * @param string $foreignKey - * @param string $relatedKey - * @return $this - */ - public function setPivotKeys($foreignKey, $relatedKey) - { - $this->foreignKey = $foreignKey; - - $this->relatedKey = $relatedKey; - - return $this; - } - - /** - * Determine if the pivot model has timestamp attributes. - * - * @return bool - */ - public function hasTimestampAttributes() - { - return array_key_exists($this->getCreatedAtColumn(), $this->attributes); - } - - /** - * Get the name of the "created at" column. - * - * @return string - */ - public function getCreatedAtColumn() - { - return ($this->pivotParent) - ? $this->pivotParent->getCreatedAtColumn() - : parent::getCreatedAtColumn(); - } - - /** - * Get the name of the "updated at" column. - * - * @return string - */ - public function getUpdatedAtColumn() - { - return ($this->pivotParent) - ? $this->pivotParent->getUpdatedAtColumn() - : parent::getUpdatedAtColumn(); - } - - /** - * Get the queueable identity for the entity. - * - * @return mixed - */ - public function getQueueableId() - { - if (isset($this->attributes[$this->getKeyName()])) { - return $this->getKey(); - } - - return sprintf( - '%s:%s:%s:%s', - $this->foreignKey, $this->getAttribute($this->foreignKey), - $this->relatedKey, $this->getAttribute($this->relatedKey) - ); - } - - /** - * Get a new query to restore one or more models by their queueable IDs. - * - * @param array|int $ids - * @return \Illuminate\Database\Eloquent\Builder - */ - public function newQueryForRestoration($ids) - { - if (is_array($ids)) { - return $this->newQueryForCollectionRestoration($ids); - } - - if (! Str::contains($ids, ':')) { - return parent::newQueryForRestoration($ids); - } - - $segments = explode(':', $ids); - - return $this->newQueryWithoutScopes() - ->where($segments[0], $segments[1]) - ->where($segments[2], $segments[3]); - } - - /** - * Get a new query to restore multiple models by their queueable IDs. - * - * @param array|int $ids - * @return \Illuminate\Database\Eloquent\Builder - */ - protected function newQueryForCollectionRestoration(array $ids) - { - if (! Str::contains($ids[0], ':')) { - return parent::newQueryForRestoration($ids); - } - - $query = $this->newQueryWithoutScopes(); - - foreach ($ids as $id) { - $segments = explode(':', $id); - - $query->orWhere(function ($query) use ($segments) { - return $query->where($segments[0], $segments[1]) - ->where($segments[2], $segments[3]); - }); - } - - return $query; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/Relation.php b/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/Relation.php deleted file mode 100755 index ae6ddbf4..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/Relation.php +++ /dev/null @@ -1,387 +0,0 @@ -query = $query; - $this->parent = $parent; - $this->related = $query->getModel(); - - $this->addConstraints(); - } - - /** - * Run a callback with constraints disabled on the relation. - * - * @param \Closure $callback - * @return mixed - */ - public static function noConstraints(Closure $callback) - { - $previous = static::$constraints; - - static::$constraints = false; - - // When resetting the relation where clause, we want to shift the first element - // off of the bindings, leaving only the constraints that the developers put - // as "extra" on the relationships, and not original relation constraints. - try { - return call_user_func($callback); - } finally { - static::$constraints = $previous; - } - } - - /** - * Set the base constraints on the relation query. - * - * @return void - */ - abstract public function addConstraints(); - - /** - * Set the constraints for an eager load of the relation. - * - * @param array $models - * @return void - */ - abstract public function addEagerConstraints(array $models); - - /** - * Initialize the relation on a set of models. - * - * @param array $models - * @param string $relation - * @return array - */ - abstract public function initRelation(array $models, $relation); - - /** - * Match the eagerly loaded results to their parents. - * - * @param array $models - * @param \Illuminate\Database\Eloquent\Collection $results - * @param string $relation - * @return array - */ - abstract public function match(array $models, Collection $results, $relation); - - /** - * Get the results of the relationship. - * - * @return mixed - */ - abstract public function getResults(); - - /** - * Get the relationship for eager loading. - * - * @return \Illuminate\Database\Eloquent\Collection - */ - public function getEager() - { - return $this->get(); - } - - /** - * Execute the query as a "select" statement. - * - * @param array $columns - * @return \Illuminate\Database\Eloquent\Collection - */ - public function get($columns = ['*']) - { - return $this->query->get($columns); - } - - /** - * Touch all of the related models for the relationship. - * - * @return void - */ - public function touch() - { - $model = $this->getRelated(); - - if (! $model::isIgnoringTouch()) { - $this->rawUpdate([ - $model->getUpdatedAtColumn() => $model->freshTimestampString(), - ]); - } - } - - /** - * Run a raw update against the base query. - * - * @param array $attributes - * @return int - */ - public function rawUpdate(array $attributes = []) - { - return $this->query->withoutGlobalScopes()->update($attributes); - } - - /** - * Add the constraints for a relationship count query. - * - * @param \Illuminate\Database\Eloquent\Builder $query - * @param \Illuminate\Database\Eloquent\Builder $parentQuery - * @return \Illuminate\Database\Eloquent\Builder - */ - public function getRelationExistenceCountQuery(Builder $query, Builder $parentQuery) - { - return $this->getRelationExistenceQuery( - $query, $parentQuery, new Expression('count(*)') - )->setBindings([], 'select'); - } - - /** - * Add the constraints for an internal relationship existence query. - * - * Essentially, these queries compare on column names like whereColumn. - * - * @param \Illuminate\Database\Eloquent\Builder $query - * @param \Illuminate\Database\Eloquent\Builder $parentQuery - * @param array|mixed $columns - * @return \Illuminate\Database\Eloquent\Builder - */ - public function getRelationExistenceQuery(Builder $query, Builder $parentQuery, $columns = ['*']) - { - return $query->select($columns)->whereColumn( - $this->getQualifiedParentKeyName(), '=', $this->getExistenceCompareKey() - ); - } - - /** - * Get all of the primary keys for an array of models. - * - * @param array $models - * @param string $key - * @return array - */ - protected function getKeys(array $models, $key = null) - { - return collect($models)->map(function ($value) use ($key) { - return $key ? $value->getAttribute($key) : $value->getKey(); - })->values()->unique()->sort()->all(); - } - - /** - * Get the underlying query for the relation. - * - * @return \Illuminate\Database\Eloquent\Builder - */ - public function getQuery() - { - return $this->query; - } - - /** - * Get the base query builder driving the Eloquent builder. - * - * @return \Illuminate\Database\Query\Builder - */ - public function getBaseQuery() - { - return $this->query->getQuery(); - } - - /** - * Get the parent model of the relation. - * - * @return \Illuminate\Database\Eloquent\Model - */ - public function getParent() - { - return $this->parent; - } - - /** - * Get the fully qualified parent key name. - * - * @return string - */ - public function getQualifiedParentKeyName() - { - return $this->parent->getQualifiedKeyName(); - } - - /** - * Get the related model of the relation. - * - * @return \Illuminate\Database\Eloquent\Model - */ - public function getRelated() - { - return $this->related; - } - - /** - * Get the name of the "created at" column. - * - * @return string - */ - public function createdAt() - { - return $this->parent->getCreatedAtColumn(); - } - - /** - * Get the name of the "updated at" column. - * - * @return string - */ - public function updatedAt() - { - return $this->parent->getUpdatedAtColumn(); - } - - /** - * Get the name of the related model's "updated at" column. - * - * @return string - */ - public function relatedUpdatedAt() - { - return $this->related->getUpdatedAtColumn(); - } - - /** - * Set or get the morph map for polymorphic relations. - * - * @param array|null $map - * @param bool $merge - * @return array - */ - public static function morphMap(array $map = null, $merge = true) - { - $map = static::buildMorphMapFromModels($map); - - if (is_array($map)) { - static::$morphMap = $merge && static::$morphMap - ? $map + static::$morphMap : $map; - } - - return static::$morphMap; - } - - /** - * Builds a table-keyed array from model class names. - * - * @param string[]|null $models - * @return array|null - */ - protected static function buildMorphMapFromModels(array $models = null) - { - if (is_null($models) || Arr::isAssoc($models)) { - return $models; - } - - return array_combine(array_map(function ($model) { - return (new $model)->getTable(); - }, $models), $models); - } - - /** - * Get the model associated with a custom polymorphic type. - * - * @param string $alias - * @return string|null - */ - public static function getMorphedModel($alias) - { - return self::$morphMap[$alias] ?? null; - } - - /** - * Handle dynamic method calls to the relationship. - * - * @param string $method - * @param array $parameters - * @return mixed - */ - public function __call($method, $parameters) - { - if (static::hasMacro($method)) { - return $this->macroCall($method, $parameters); - } - - $result = $this->query->{$method}(...$parameters); - - if ($result === $this->query) { - return $this; - } - - return $result; - } - - /** - * Force a clone of the underlying query builder when cloning. - * - * @return void - */ - public function __clone() - { - $this->query = clone $this->query; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Scope.php b/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Scope.php deleted file mode 100644 index 63cba6a5..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Scope.php +++ /dev/null @@ -1,15 +0,0 @@ -forceDeleting = true; - - return tap($this->delete(), function ($deleted) { - $this->forceDeleting = false; - - if ($deleted) { - $this->fireModelEvent('forceDeleted', false); - } - }); - } - - /** - * Perform the actual delete query on this model instance. - * - * @return mixed - */ - protected function performDeleteOnModel() - { - if ($this->forceDeleting) { - $this->exists = false; - - return $this->newModelQuery()->where($this->getKeyName(), $this->getKey())->forceDelete(); - } - - return $this->runSoftDelete(); - } - - /** - * Perform the actual delete query on this model instance. - * - * @return void - */ - protected function runSoftDelete() - { - $query = $this->newModelQuery()->where($this->getKeyName(), $this->getKey()); - - $time = $this->freshTimestamp(); - - $columns = [$this->getDeletedAtColumn() => $this->fromDateTime($time)]; - - $this->{$this->getDeletedAtColumn()} = $time; - - if ($this->timestamps && ! is_null($this->getUpdatedAtColumn())) { - $this->{$this->getUpdatedAtColumn()} = $time; - - $columns[$this->getUpdatedAtColumn()] = $this->fromDateTime($time); - } - - if ($query->update($columns)) { - $this->syncOriginal(); - } - } - - /** - * Restore a soft-deleted model instance. - * - * @return bool|null - */ - public function restore() - { - // If the restoring event does not return false, we will proceed with this - // restore operation. Otherwise, we bail out so the developer will stop - // the restore totally. We will clear the deleted timestamp and save. - if ($this->fireModelEvent('restoring') === false) { - return false; - } - - $this->{$this->getDeletedAtColumn()} = null; - - // Once we have saved the model, we will fire the "restored" event so this - // developer will do anything they need to after a restore operation is - // totally finished. Then we will return the result of the save call. - $this->exists = true; - - $result = $this->save(); - - $this->fireModelEvent('restored', false); - - return $result; - } - - /** - * Determine if the model instance has been soft-deleted. - * - * @return bool - */ - public function trashed() - { - return ! is_null($this->{$this->getDeletedAtColumn()}); - } - - /** - * Register a restoring model event with the dispatcher. - * - * @param \Closure|string $callback - * @return void - */ - public static function restoring($callback) - { - static::registerModelEvent('restoring', $callback); - } - - /** - * Register a restored model event with the dispatcher. - * - * @param \Closure|string $callback - * @return void - */ - public static function restored($callback) - { - static::registerModelEvent('restored', $callback); - } - - /** - * Determine if the model is currently force deleting. - * - * @return bool - */ - public function isForceDeleting() - { - return $this->forceDeleting; - } - - /** - * Get the name of the "deleted at" column. - * - * @return string - */ - public function getDeletedAtColumn() - { - return defined('static::DELETED_AT') ? static::DELETED_AT : 'deleted_at'; - } - - /** - * Get the fully qualified "deleted at" column. - * - * @return string - */ - public function getQualifiedDeletedAtColumn() - { - return $this->qualifyColumn($this->getDeletedAtColumn()); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/SoftDeletingScope.php b/vendor/laravel/framework/src/Illuminate/Database/Eloquent/SoftDeletingScope.php deleted file mode 100644 index 0d516966..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/SoftDeletingScope.php +++ /dev/null @@ -1,131 +0,0 @@ -whereNull($model->getQualifiedDeletedAtColumn()); - } - - /** - * Extend the query builder with the needed functions. - * - * @param \Illuminate\Database\Eloquent\Builder $builder - * @return void - */ - public function extend(Builder $builder) - { - foreach ($this->extensions as $extension) { - $this->{"add{$extension}"}($builder); - } - - $builder->onDelete(function (Builder $builder) { - $column = $this->getDeletedAtColumn($builder); - - return $builder->update([ - $column => $builder->getModel()->freshTimestampString(), - ]); - }); - } - - /** - * Get the "deleted at" column for the builder. - * - * @param \Illuminate\Database\Eloquent\Builder $builder - * @return string - */ - protected function getDeletedAtColumn(Builder $builder) - { - if (count((array) $builder->getQuery()->joins) > 0) { - return $builder->getModel()->getQualifiedDeletedAtColumn(); - } - - return $builder->getModel()->getDeletedAtColumn(); - } - - /** - * Add the restore extension to the builder. - * - * @param \Illuminate\Database\Eloquent\Builder $builder - * @return void - */ - protected function addRestore(Builder $builder) - { - $builder->macro('restore', function (Builder $builder) { - $builder->withTrashed(); - - return $builder->update([$builder->getModel()->getDeletedAtColumn() => null]); - }); - } - - /** - * Add the with-trashed extension to the builder. - * - * @param \Illuminate\Database\Eloquent\Builder $builder - * @return void - */ - protected function addWithTrashed(Builder $builder) - { - $builder->macro('withTrashed', function (Builder $builder, $withTrashed = true) { - if (! $withTrashed) { - return $builder->withoutTrashed(); - } - - return $builder->withoutGlobalScope($this); - }); - } - - /** - * Add the without-trashed extension to the builder. - * - * @param \Illuminate\Database\Eloquent\Builder $builder - * @return void - */ - protected function addWithoutTrashed(Builder $builder) - { - $builder->macro('withoutTrashed', function (Builder $builder) { - $model = $builder->getModel(); - - $builder->withoutGlobalScope($this)->whereNull( - $model->getQualifiedDeletedAtColumn() - ); - - return $builder; - }); - } - - /** - * Add the only-trashed extension to the builder. - * - * @param \Illuminate\Database\Eloquent\Builder $builder - * @return void - */ - protected function addOnlyTrashed(Builder $builder) - { - $builder->macro('onlyTrashed', function (Builder $builder) { - $model = $builder->getModel(); - - $builder->withoutGlobalScope($this)->whereNotNull( - $model->getQualifiedDeletedAtColumn() - ); - - return $builder; - }); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/Events/ConnectionEvent.php b/vendor/laravel/framework/src/Illuminate/Database/Events/ConnectionEvent.php deleted file mode 100644 index 818c7850..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/Events/ConnectionEvent.php +++ /dev/null @@ -1,32 +0,0 @@ -connection = $connection; - $this->connectionName = $connection->getName(); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/Events/QueryExecuted.php b/vendor/laravel/framework/src/Illuminate/Database/Events/QueryExecuted.php deleted file mode 100644 index 833a21e6..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/Events/QueryExecuted.php +++ /dev/null @@ -1,59 +0,0 @@ -sql = $sql; - $this->time = $time; - $this->bindings = $bindings; - $this->connection = $connection; - $this->connectionName = $connection->getName(); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/Events/StatementPrepared.php b/vendor/laravel/framework/src/Illuminate/Database/Events/StatementPrepared.php deleted file mode 100644 index 2f603235..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/Events/StatementPrepared.php +++ /dev/null @@ -1,33 +0,0 @@ -statement = $statement; - $this->connection = $connection; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/Events/TransactionBeginning.php b/vendor/laravel/framework/src/Illuminate/Database/Events/TransactionBeginning.php deleted file mode 100644 index 3287b5c8..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/Events/TransactionBeginning.php +++ /dev/null @@ -1,8 +0,0 @@ -isExpression($table)) { - return $this->wrap($this->tablePrefix.$table, true); - } - - return $this->getValue($table); - } - - /** - * Wrap a value in keyword identifiers. - * - * @param \Illuminate\Database\Query\Expression|string $value - * @param bool $prefixAlias - * @return string - */ - public function wrap($value, $prefixAlias = false) - { - if ($this->isExpression($value)) { - return $this->getValue($value); - } - - // If the value being wrapped has a column alias we will need to separate out - // the pieces so we can wrap each of the segments of the expression on its - // own, and then join these both back together using the "as" connector. - if (stripos($value, ' as ') !== false) { - return $this->wrapAliasedValue($value, $prefixAlias); - } - - return $this->wrapSegments(explode('.', $value)); - } - - /** - * Wrap a value that has an alias. - * - * @param string $value - * @param bool $prefixAlias - * @return string - */ - protected function wrapAliasedValue($value, $prefixAlias = false) - { - $segments = preg_split('/\s+as\s+/i', $value); - - // If we are wrapping a table we need to prefix the alias with the table prefix - // as well in order to generate proper syntax. If this is a column of course - // no prefix is necessary. The condition will be true when from wrapTable. - if ($prefixAlias) { - $segments[1] = $this->tablePrefix.$segments[1]; - } - - return $this->wrap( - $segments[0]).' as '.$this->wrapValue($segments[1] - ); - } - - /** - * Wrap the given value segments. - * - * @param array $segments - * @return string - */ - protected function wrapSegments($segments) - { - return collect($segments)->map(function ($segment, $key) use ($segments) { - return $key == 0 && count($segments) > 1 - ? $this->wrapTable($segment) - : $this->wrapValue($segment); - })->implode('.'); - } - - /** - * Wrap a single string in keyword identifiers. - * - * @param string $value - * @return string - */ - protected function wrapValue($value) - { - if ($value !== '*') { - return '"'.str_replace('"', '""', $value).'"'; - } - - return $value; - } - - /** - * Convert an array of column names into a delimited string. - * - * @param array $columns - * @return string - */ - public function columnize(array $columns) - { - return implode(', ', array_map([$this, 'wrap'], $columns)); - } - - /** - * Create query parameter place-holders for an array. - * - * @param array $values - * @return string - */ - public function parameterize(array $values) - { - return implode(', ', array_map([$this, 'parameter'], $values)); - } - - /** - * Get the appropriate query parameter place-holder for a value. - * - * @param mixed $value - * @return string - */ - public function parameter($value) - { - return $this->isExpression($value) ? $this->getValue($value) : '?'; - } - - /** - * Quote the given string literal. - * - * @param string|array $value - * @return string - */ - public function quoteString($value) - { - if (is_array($value)) { - return implode(', ', array_map([$this, __FUNCTION__], $value)); - } - - return "'$value'"; - } - - /** - * Determine if the given value is a raw expression. - * - * @param mixed $value - * @return bool - */ - public function isExpression($value) - { - return $value instanceof Expression; - } - - /** - * Get the value of a raw expression. - * - * @param \Illuminate\Database\Query\Expression $expression - * @return string - */ - public function getValue($expression) - { - return $expression->getValue(); - } - - /** - * Get the format for database stored dates. - * - * @return string - */ - public function getDateFormat() - { - return 'Y-m-d H:i:s'; - } - - /** - * Get the grammar's table prefix. - * - * @return string - */ - public function getTablePrefix() - { - return $this->tablePrefix; - } - - /** - * Set the grammar's table prefix. - * - * @param string $prefix - * @return $this - */ - public function setTablePrefix($prefix) - { - $this->tablePrefix = $prefix; - - return $this; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/MigrationServiceProvider.php b/vendor/laravel/framework/src/Illuminate/Database/MigrationServiceProvider.php deleted file mode 100755 index a8b92ab6..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/MigrationServiceProvider.php +++ /dev/null @@ -1,87 +0,0 @@ -registerRepository(); - - $this->registerMigrator(); - - $this->registerCreator(); - } - - /** - * Register the migration repository service. - * - * @return void - */ - protected function registerRepository() - { - $this->app->singleton('migration.repository', function ($app) { - $table = $app['config']['database.migrations']; - - return new DatabaseMigrationRepository($app['db'], $table); - }); - } - - /** - * Register the migrator service. - * - * @return void - */ - protected function registerMigrator() - { - // The migrator is responsible for actually running and rollback the migration - // files in the application. We'll pass in our database connection resolver - // so the migrator can resolve any of these connections when it needs to. - $this->app->singleton('migrator', function ($app) { - $repository = $app['migration.repository']; - - return new Migrator($repository, $app['db'], $app['files']); - }); - } - - /** - * Register the migration creator. - * - * @return void - */ - protected function registerCreator() - { - $this->app->singleton('migration.creator', function ($app) { - return new MigrationCreator($app['files']); - }); - } - - /** - * Get the services provided by the provider. - * - * @return array - */ - public function provides() - { - return [ - 'migrator', 'migration.repository', 'migration.creator', - ]; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/Migrations/DatabaseMigrationRepository.php b/vendor/laravel/framework/src/Illuminate/Database/Migrations/DatabaseMigrationRepository.php deleted file mode 100755 index 1ace1a6f..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/Migrations/DatabaseMigrationRepository.php +++ /dev/null @@ -1,212 +0,0 @@ -table = $table; - $this->resolver = $resolver; - } - - /** - * Get the completed migrations. - * - * @return array - */ - public function getRan() - { - return $this->table() - ->orderBy('batch', 'asc') - ->orderBy('migration', 'asc') - ->pluck('migration')->all(); - } - - /** - * Get list of migrations. - * - * @param int $steps - * @return array - */ - public function getMigrations($steps) - { - $query = $this->table()->where('batch', '>=', '1'); - - return $query->orderBy('batch', 'desc') - ->orderBy('migration', 'desc') - ->take($steps)->get()->all(); - } - - /** - * Get the last migration batch. - * - * @return array - */ - public function getLast() - { - $query = $this->table()->where('batch', $this->getLastBatchNumber()); - - return $query->orderBy('migration', 'desc')->get()->all(); - } - - /** - * Get the completed migrations with their batch numbers. - * - * @return array - */ - public function getMigrationBatches() - { - return $this->table() - ->orderBy('batch', 'asc') - ->orderBy('migration', 'asc') - ->pluck('batch', 'migration')->all(); - } - - /** - * Log that a migration was run. - * - * @param string $file - * @param int $batch - * @return void - */ - public function log($file, $batch) - { - $record = ['migration' => $file, 'batch' => $batch]; - - $this->table()->insert($record); - } - - /** - * Remove a migration from the log. - * - * @param object $migration - * @return void - */ - public function delete($migration) - { - $this->table()->where('migration', $migration->migration)->delete(); - } - - /** - * Get the next migration batch number. - * - * @return int - */ - public function getNextBatchNumber() - { - return $this->getLastBatchNumber() + 1; - } - - /** - * Get the last migration batch number. - * - * @return int - */ - public function getLastBatchNumber() - { - return $this->table()->max('batch'); - } - - /** - * Create the migration repository data store. - * - * @return void - */ - public function createRepository() - { - $schema = $this->getConnection()->getSchemaBuilder(); - - $schema->create($this->table, function ($table) { - // The migrations table is responsible for keeping track of which of the - // migrations have actually run for the application. We'll create the - // table to hold the migration file's path as well as the batch ID. - $table->increments('id'); - $table->string('migration'); - $table->integer('batch'); - }); - } - - /** - * Determine if the migration repository exists. - * - * @return bool - */ - public function repositoryExists() - { - $schema = $this->getConnection()->getSchemaBuilder(); - - return $schema->hasTable($this->table); - } - - /** - * Get a query builder for the migration table. - * - * @return \Illuminate\Database\Query\Builder - */ - protected function table() - { - return $this->getConnection()->table($this->table)->useWritePdo(); - } - - /** - * Get the connection resolver instance. - * - * @return \Illuminate\Database\ConnectionResolverInterface - */ - public function getConnectionResolver() - { - return $this->resolver; - } - - /** - * Resolve the database connection instance. - * - * @return \Illuminate\Database\Connection - */ - public function getConnection() - { - return $this->resolver->connection($this->connection); - } - - /** - * Set the information source to gather data. - * - * @param string $name - * @return void - */ - public function setSource($name) - { - $this->connection = $name; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/Migrations/Migration.php b/vendor/laravel/framework/src/Illuminate/Database/Migrations/Migration.php deleted file mode 100755 index ac1b9e7f..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/Migrations/Migration.php +++ /dev/null @@ -1,30 +0,0 @@ -connection; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/Migrations/MigrationCreator.php b/vendor/laravel/framework/src/Illuminate/Database/Migrations/MigrationCreator.php deleted file mode 100755 index 685e03c6..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/Migrations/MigrationCreator.php +++ /dev/null @@ -1,203 +0,0 @@ -files = $files; - } - - /** - * Create a new migration at the given path. - * - * @param string $name - * @param string $path - * @param string $table - * @param bool $create - * @return string - * @throws \Exception - */ - public function create($name, $path, $table = null, $create = false) - { - $this->ensureMigrationDoesntAlreadyExist($name); - - // First we will get the stub file for the migration, which serves as a type - // of template for the migration. Once we have those we will populate the - // various place-holders, save the file, and run the post create event. - $stub = $this->getStub($table, $create); - - $this->files->put( - $path = $this->getPath($name, $path), - $this->populateStub($name, $stub, $table) - ); - - // Next, we will fire any hooks that are supposed to fire after a migration is - // created. Once that is done we'll be ready to return the full path to the - // migration file so it can be used however it's needed by the developer. - $this->firePostCreateHooks($table); - - return $path; - } - - /** - * Ensure that a migration with the given name doesn't already exist. - * - * @param string $name - * @return void - * - * @throws \InvalidArgumentException - */ - protected function ensureMigrationDoesntAlreadyExist($name) - { - if (class_exists($className = $this->getClassName($name))) { - throw new InvalidArgumentException("A {$className} class already exists."); - } - } - - /** - * Get the migration stub file. - * - * @param string $table - * @param bool $create - * @return string - */ - protected function getStub($table, $create) - { - if (is_null($table)) { - return $this->files->get($this->stubPath().'/blank.stub'); - } - - // We also have stubs for creating new tables and modifying existing tables - // to save the developer some typing when they are creating a new tables - // or modifying existing tables. We'll grab the appropriate stub here. - $stub = $create ? 'create.stub' : 'update.stub'; - - return $this->files->get($this->stubPath()."/{$stub}"); - } - - /** - * Populate the place-holders in the migration stub. - * - * @param string $name - * @param string $stub - * @param string $table - * @return string - */ - protected function populateStub($name, $stub, $table) - { - $stub = str_replace('DummyClass', $this->getClassName($name), $stub); - - // Here we will replace the table place-holders with the table specified by - // the developer, which is useful for quickly creating a tables creation - // or update migration from the console instead of typing it manually. - if (! is_null($table)) { - $stub = str_replace('DummyTable', $table, $stub); - } - - return $stub; - } - - /** - * Get the class name of a migration name. - * - * @param string $name - * @return string - */ - protected function getClassName($name) - { - return Str::studly($name); - } - - /** - * Get the full path to the migration. - * - * @param string $name - * @param string $path - * @return string - */ - protected function getPath($name, $path) - { - return $path.'/'.$this->getDatePrefix().'_'.$name.'.php'; - } - - /** - * Fire the registered post create hooks. - * - * @param string $table - * @return void - */ - protected function firePostCreateHooks($table) - { - foreach ($this->postCreate as $callback) { - call_user_func($callback, $table); - } - } - - /** - * Register a post migration create hook. - * - * @param \Closure $callback - * @return void - */ - public function afterCreate(Closure $callback) - { - $this->postCreate[] = $callback; - } - - /** - * Get the date prefix for the migration. - * - * @return string - */ - protected function getDatePrefix() - { - return date('Y_m_d_His'); - } - - /** - * Get the path to the stubs. - * - * @return string - */ - public function stubPath() - { - return __DIR__.'/stubs'; - } - - /** - * Get the filesystem instance. - * - * @return \Illuminate\Filesystem\Filesystem - */ - public function getFilesystem() - { - return $this->files; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/Migrations/MigrationRepositoryInterface.php b/vendor/laravel/framework/src/Illuminate/Database/Migrations/MigrationRepositoryInterface.php deleted file mode 100755 index 410326a9..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/Migrations/MigrationRepositoryInterface.php +++ /dev/null @@ -1,81 +0,0 @@ -files = $files; - $this->resolver = $resolver; - $this->repository = $repository; - } - - /** - * Run the pending migrations at a given path. - * - * @param array|string $paths - * @param array $options - * @return array - */ - public function run($paths = [], array $options = []) - { - $this->notes = []; - - // Once we grab all of the migration files for the path, we will compare them - // against the migrations that have already been run for this package then - // run each of the outstanding migrations against a database connection. - $files = $this->getMigrationFiles($paths); - - $this->requireFiles($migrations = $this->pendingMigrations( - $files, $this->repository->getRan() - )); - - // Once we have all these migrations that are outstanding we are ready to run - // we will go ahead and run them "up". This will execute each migration as - // an operation against a database. Then we'll return this list of them. - $this->runPending($migrations, $options); - - return $migrations; - } - - /** - * Get the migration files that have not yet run. - * - * @param array $files - * @param array $ran - * @return array - */ - protected function pendingMigrations($files, $ran) - { - return Collection::make($files) - ->reject(function ($file) use ($ran) { - return in_array($this->getMigrationName($file), $ran); - })->values()->all(); - } - - /** - * Run an array of migrations. - * - * @param array $migrations - * @param array $options - * @return void - */ - public function runPending(array $migrations, array $options = []) - { - // First we will just make sure that there are any migrations to run. If there - // aren't, we will just make a note of it to the developer so they're aware - // that all of the migrations have been run against this database system. - if (count($migrations) === 0) { - $this->note('Nothing to migrate.'); - - return; - } - - // Next, we will get the next batch number for the migrations so we can insert - // correct batch number in the database migrations repository when we store - // each migration's execution. We will also extract a few of the options. - $batch = $this->repository->getNextBatchNumber(); - - $pretend = $options['pretend'] ?? false; - - $step = $options['step'] ?? false; - - // Once we have the array of migrations, we will spin through them and run the - // migrations "up" so the changes are made to the databases. We'll then log - // that the migration was run so we don't repeat it next time we execute. - foreach ($migrations as $file) { - $this->runUp($file, $batch, $pretend); - - if ($step) { - $batch++; - } - } - } - - /** - * Run "up" a migration instance. - * - * @param string $file - * @param int $batch - * @param bool $pretend - * @return void - */ - protected function runUp($file, $batch, $pretend) - { - // First we will resolve a "real" instance of the migration class from this - // migration file name. Once we have the instances we can run the actual - // command such as "up" or "down", or we can just simulate the action. - $migration = $this->resolve( - $name = $this->getMigrationName($file) - ); - - if ($pretend) { - return $this->pretendToRun($migration, 'up'); - } - - $this->note("Migrating: {$name}"); - - $this->runMigration($migration, 'up'); - - // Once we have run a migrations class, we will log that it was run in this - // repository so that we don't try to run it next time we do a migration - // in the application. A migration repository keeps the migrate order. - $this->repository->log($name, $batch); - - $this->note("Migrated: {$name}"); - } - - /** - * Rollback the last migration operation. - * - * @param array|string $paths - * @param array $options - * @return array - */ - public function rollback($paths = [], array $options = []) - { - $this->notes = []; - - // We want to pull in the last batch of migrations that ran on the previous - // migration operation. We'll then reverse those migrations and run each - // of them "down" to reverse the last migration "operation" which ran. - $migrations = $this->getMigrationsForRollback($options); - - if (count($migrations) === 0) { - $this->note('Nothing to rollback.'); - - return []; - } - - return $this->rollbackMigrations($migrations, $paths, $options); - } - - /** - * Get the migrations for a rollback operation. - * - * @param array $options - * @return array - */ - protected function getMigrationsForRollback(array $options) - { - if (($steps = $options['step'] ?? 0) > 0) { - return $this->repository->getMigrations($steps); - } else { - return $this->repository->getLast(); - } - } - - /** - * Rollback the given migrations. - * - * @param array $migrations - * @param array|string $paths - * @param array $options - * @return array - */ - protected function rollbackMigrations(array $migrations, $paths, array $options) - { - $rolledBack = []; - - $this->requireFiles($files = $this->getMigrationFiles($paths)); - - // Next we will run through all of the migrations and call the "down" method - // which will reverse each migration in order. This getLast method on the - // repository already returns these migration's names in reverse order. - foreach ($migrations as $migration) { - $migration = (object) $migration; - - if (! $file = Arr::get($files, $migration->migration)) { - $this->note("Migration not found: {$migration->migration}"); - - continue; - } - - $rolledBack[] = $file; - - $this->runDown( - $file, $migration, - $options['pretend'] ?? false - ); - } - - return $rolledBack; - } - - /** - * Rolls all of the currently applied migrations back. - * - * @param array|string $paths - * @param bool $pretend - * @return array - */ - public function reset($paths = [], $pretend = false) - { - $this->notes = []; - - // Next, we will reverse the migration list so we can run them back in the - // correct order for resetting this database. This will allow us to get - // the database back into its "empty" state ready for the migrations. - $migrations = array_reverse($this->repository->getRan()); - - if (count($migrations) === 0) { - $this->note('Nothing to rollback.'); - - return []; - } - - return $this->resetMigrations($migrations, $paths, $pretend); - } - - /** - * Reset the given migrations. - * - * @param array $migrations - * @param array $paths - * @param bool $pretend - * @return array - */ - protected function resetMigrations(array $migrations, array $paths, $pretend = false) - { - // Since the getRan method that retrieves the migration name just gives us the - // migration name, we will format the names into objects with the name as a - // property on the objects so that we can pass it to the rollback method. - $migrations = collect($migrations)->map(function ($m) { - return (object) ['migration' => $m]; - })->all(); - - return $this->rollbackMigrations( - $migrations, $paths, compact('pretend') - ); - } - - /** - * Run "down" a migration instance. - * - * @param string $file - * @param object $migration - * @param bool $pretend - * @return void - */ - protected function runDown($file, $migration, $pretend) - { - // First we will get the file name of the migration so we can resolve out an - // instance of the migration. Once we get an instance we can either run a - // pretend execution of the migration or we can run the real migration. - $instance = $this->resolve( - $name = $this->getMigrationName($file) - ); - - $this->note("Rolling back: {$name}"); - - if ($pretend) { - return $this->pretendToRun($instance, 'down'); - } - - $this->runMigration($instance, 'down'); - - // Once we have successfully run the migration "down" we will remove it from - // the migration repository so it will be considered to have not been run - // by the application then will be able to fire by any later operation. - $this->repository->delete($migration); - - $this->note("Rolled back: {$name}"); - } - - /** - * Run a migration inside a transaction if the database supports it. - * - * @param object $migration - * @param string $method - * @return void - */ - protected function runMigration($migration, $method) - { - $connection = $this->resolveConnection( - $migration->getConnection() - ); - - $callback = function () use ($migration, $method) { - if (method_exists($migration, $method)) { - $migration->{$method}(); - } - }; - - $this->getSchemaGrammar($connection)->supportsSchemaTransactions() - && $migration->withinTransaction - ? $connection->transaction($callback) - : $callback(); - } - - /** - * Pretend to run the migrations. - * - * @param object $migration - * @param string $method - * @return void - */ - protected function pretendToRun($migration, $method) - { - foreach ($this->getQueries($migration, $method) as $query) { - $name = get_class($migration); - - $this->note("{$name}: {$query['query']}"); - } - } - - /** - * Get all of the queries that would be run for a migration. - * - * @param object $migration - * @param string $method - * @return array - */ - protected function getQueries($migration, $method) - { - // Now that we have the connections we can resolve it and pretend to run the - // queries against the database returning the array of raw SQL statements - // that would get fired against the database system for this migration. - $db = $this->resolveConnection( - $migration->getConnection() - ); - - return $db->pretend(function () use ($migration, $method) { - if (method_exists($migration, $method)) { - $migration->{$method}(); - } - }); - } - - /** - * Resolve a migration instance from a file. - * - * @param string $file - * @return object - */ - public function resolve($file) - { - $class = Str::studly(implode('_', array_slice(explode('_', $file), 4))); - - return new $class; - } - - /** - * Get all of the migration files in a given path. - * - * @param string|array $paths - * @return array - */ - public function getMigrationFiles($paths) - { - return Collection::make($paths)->flatMap(function ($path) { - return $this->files->glob($path.'/*_*.php'); - })->filter()->sortBy(function ($file) { - return $this->getMigrationName($file); - })->values()->keyBy(function ($file) { - return $this->getMigrationName($file); - })->all(); - } - - /** - * Require in all the migration files in a given path. - * - * @param array $files - * @return void - */ - public function requireFiles(array $files) - { - foreach ($files as $file) { - $this->files->requireOnce($file); - } - } - - /** - * Get the name of the migration. - * - * @param string $path - * @return string - */ - public function getMigrationName($path) - { - return str_replace('.php', '', basename($path)); - } - - /** - * Register a custom migration path. - * - * @param string $path - * @return void - */ - public function path($path) - { - $this->paths = array_unique(array_merge($this->paths, [$path])); - } - - /** - * Get all of the custom migration paths. - * - * @return array - */ - public function paths() - { - return $this->paths; - } - - /** - * Get the default connection name. - * - * @return string - */ - public function getConnection() - { - return $this->connection; - } - - /** - * Set the default connection name. - * - * @param string $name - * @return void - */ - public function setConnection($name) - { - if (! is_null($name)) { - $this->resolver->setDefaultConnection($name); - } - - $this->repository->setSource($name); - - $this->connection = $name; - } - - /** - * Resolve the database connection instance. - * - * @param string $connection - * @return \Illuminate\Database\Connection - */ - public function resolveConnection($connection) - { - return $this->resolver->connection($connection ?: $this->connection); - } - - /** - * Get the schema grammar out of a migration connection. - * - * @param \Illuminate\Database\Connection $connection - * @return \Illuminate\Database\Schema\Grammars\Grammar - */ - protected function getSchemaGrammar($connection) - { - if (is_null($grammar = $connection->getSchemaGrammar())) { - $connection->useDefaultSchemaGrammar(); - - $grammar = $connection->getSchemaGrammar(); - } - - return $grammar; - } - - /** - * Get the migration repository instance. - * - * @return \Illuminate\Database\Migrations\MigrationRepositoryInterface - */ - public function getRepository() - { - return $this->repository; - } - - /** - * Determine if the migration repository exists. - * - * @return bool - */ - public function repositoryExists() - { - return $this->repository->repositoryExists(); - } - - /** - * Get the file system instance. - * - * @return \Illuminate\Filesystem\Filesystem - */ - public function getFilesystem() - { - return $this->files; - } - - /** - * Raise a note event for the migrator. - * - * @param string $message - * @return void - */ - protected function note($message) - { - $this->notes[] = $message; - } - - /** - * Get the notes for the last operation. - * - * @return array - */ - public function getNotes() - { - return $this->notes; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/Migrations/stubs/blank.stub b/vendor/laravel/framework/src/Illuminate/Database/Migrations/stubs/blank.stub deleted file mode 100755 index da4ce827..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/Migrations/stubs/blank.stub +++ /dev/null @@ -1,28 +0,0 @@ -increments('id'); - $table->timestamps(); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::dropIfExists('DummyTable'); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/Migrations/stubs/update.stub b/vendor/laravel/framework/src/Illuminate/Database/Migrations/stubs/update.stub deleted file mode 100755 index 1fd4f6ec..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/Migrations/stubs/update.stub +++ /dev/null @@ -1,32 +0,0 @@ -withTablePrefix(new QueryGrammar); - } - - /** - * Get a schema builder instance for the connection. - * - * @return \Illuminate\Database\Schema\MySqlBuilder - */ - public function getSchemaBuilder() - { - if (is_null($this->schemaGrammar)) { - $this->useDefaultSchemaGrammar(); - } - - return new MySqlBuilder($this); - } - - /** - * Get the default schema grammar instance. - * - * @return \Illuminate\Database\Schema\Grammars\MySqlGrammar - */ - protected function getDefaultSchemaGrammar() - { - return $this->withTablePrefix(new SchemaGrammar); - } - - /** - * Get the default post processor instance. - * - * @return \Illuminate\Database\Query\Processors\MySqlProcessor - */ - protected function getDefaultPostProcessor() - { - return new MySqlProcessor; - } - - /** - * Get the Doctrine DBAL driver. - * - * @return \Doctrine\DBAL\Driver\PDOMySql\Driver - */ - protected function getDoctrineDriver() - { - return new DoctrineDriver; - } - - /** - * Bind values to their parameters in the given statement. - * - * @param \PDOStatement $statement - * @param array $bindings - * @return void - */ - public function bindValues($statement, $bindings) - { - foreach ($bindings as $key => $value) { - $statement->bindValue( - is_string($key) ? $key : $key + 1, $value, - is_int($value) || is_float($value) ? PDO::PARAM_INT : PDO::PARAM_STR - ); - } - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/PostgresConnection.php b/vendor/laravel/framework/src/Illuminate/Database/PostgresConnection.php deleted file mode 100755 index 01804a7b..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/PostgresConnection.php +++ /dev/null @@ -1,66 +0,0 @@ -withTablePrefix(new QueryGrammar); - } - - /** - * Get a schema builder instance for the connection. - * - * @return \Illuminate\Database\Schema\PostgresBuilder - */ - public function getSchemaBuilder() - { - if (is_null($this->schemaGrammar)) { - $this->useDefaultSchemaGrammar(); - } - - return new PostgresBuilder($this); - } - - /** - * Get the default schema grammar instance. - * - * @return \Illuminate\Database\Schema\Grammars\PostgresGrammar - */ - protected function getDefaultSchemaGrammar() - { - return $this->withTablePrefix(new SchemaGrammar); - } - - /** - * Get the default post processor instance. - * - * @return \Illuminate\Database\Query\Processors\PostgresProcessor - */ - protected function getDefaultPostProcessor() - { - return new PostgresProcessor; - } - - /** - * Get the Doctrine DBAL driver. - * - * @return \Doctrine\DBAL\Driver\PDOPgSql\Driver - */ - protected function getDoctrineDriver() - { - return new DoctrineDriver; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php b/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php deleted file mode 100755 index 5420f4c6..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php +++ /dev/null @@ -1,2820 +0,0 @@ - [], - 'from' => [], - 'join' => [], - 'where' => [], - 'having' => [], - 'order' => [], - 'union' => [], - ]; - - /** - * An aggregate function and column to be run. - * - * @var array - */ - public $aggregate; - - /** - * The columns that should be returned. - * - * @var array - */ - public $columns; - - /** - * Indicates if the query returns distinct results. - * - * @var bool - */ - public $distinct = false; - - /** - * The table which the query is targeting. - * - * @var string - */ - public $from; - - /** - * The table joins for the query. - * - * @var array - */ - public $joins; - - /** - * The where constraints for the query. - * - * @var array - */ - public $wheres = []; - - /** - * The groupings for the query. - * - * @var array - */ - public $groups; - - /** - * The having constraints for the query. - * - * @var array - */ - public $havings; - - /** - * The orderings for the query. - * - * @var array - */ - public $orders; - - /** - * The maximum number of records to return. - * - * @var int - */ - public $limit; - - /** - * The number of records to skip. - * - * @var int - */ - public $offset; - - /** - * The query union statements. - * - * @var array - */ - public $unions; - - /** - * The maximum number of union records to return. - * - * @var int - */ - public $unionLimit; - - /** - * The number of union records to skip. - * - * @var int - */ - public $unionOffset; - - /** - * The orderings for the union query. - * - * @var array - */ - public $unionOrders; - - /** - * Indicates whether row locking is being used. - * - * @var string|bool - */ - public $lock; - - /** - * All of the available clause operators. - * - * @var array - */ - public $operators = [ - '=', '<', '>', '<=', '>=', '<>', '!=', '<=>', - 'like', 'like binary', 'not like', 'ilike', - '&', '|', '^', '<<', '>>', - 'rlike', 'regexp', 'not regexp', - '~', '~*', '!~', '!~*', 'similar to', - 'not similar to', 'not ilike', '~~*', '!~~*', - ]; - - /** - * Whether use write pdo for select. - * - * @var bool - */ - public $useWritePdo = false; - - /** - * Create a new query builder instance. - * - * @param \Illuminate\Database\ConnectionInterface $connection - * @param \Illuminate\Database\Query\Grammars\Grammar $grammar - * @param \Illuminate\Database\Query\Processors\Processor $processor - * @return void - */ - public function __construct(ConnectionInterface $connection, - Grammar $grammar = null, - Processor $processor = null) - { - $this->connection = $connection; - $this->grammar = $grammar ?: $connection->getQueryGrammar(); - $this->processor = $processor ?: $connection->getPostProcessor(); - } - - /** - * Set the columns to be selected. - * - * @param array|mixed $columns - * @return $this - */ - public function select($columns = ['*']) - { - $this->columns = is_array($columns) ? $columns : func_get_args(); - - return $this; - } - - /** - * Add a subselect expression to the query. - * - * @param \Closure|\Illuminate\Database\Query\Builder|string $query - * @param string $as - * @return \Illuminate\Database\Query\Builder|static - * - * @throws \InvalidArgumentException - */ - public function selectSub($query, $as) - { - list($query, $bindings) = $this->createSub($query); - - return $this->selectRaw( - '('.$query.') as '.$this->grammar->wrap($as), $bindings - ); - } - - /** - * Add a new "raw" select expression to the query. - * - * @param string $expression - * @param array $bindings - * @return \Illuminate\Database\Query\Builder|static - */ - public function selectRaw($expression, array $bindings = []) - { - $this->addSelect(new Expression($expression)); - - if ($bindings) { - $this->addBinding($bindings, 'select'); - } - - return $this; - } - - /** - * Makes "from" fetch from a subquery. - * - * @param \Closure|\Illuminate\Database\Query\Builder|string $query - * @param string $as - * @return \Illuminate\Database\Query\Builder|static - * - * @throws \InvalidArgumentException - */ - public function fromSub($query, $as) - { - list($query, $bindings) = $this->createSub($query); - - return $this->fromRaw('('.$query.') as '.$this->grammar->wrap($as), $bindings); - } - - /** - * Add a raw from clause to the query. - * - * @param string $expression - * @param mixed $bindings - * @return \Illuminate\Database\Query\Builder|static - */ - public function fromRaw($expression, $bindings = []) - { - $this->from = new Expression($expression); - - $this->addBinding($bindings, 'from'); - - return $this; - } - - /** - * Creates a subquery and parse it. - * - * @param \Closure|\Illuminate\Database\Query\Builder|string $query - * @return array - */ - protected function createSub($query) - { - // If the given query is a Closure, we will execute it while passing in a new - // query instance to the Closure. This will give the developer a chance to - // format and work with the query before we cast it to a raw SQL string. - if ($query instanceof Closure) { - $callback = $query; - - $callback($query = $this->forSubQuery()); - } - - return $this->parseSub($query); - } - - /** - * Parse the subquery into SQL and bindings. - * - * @param mixed $query - * @return array - */ - protected function parseSub($query) - { - if ($query instanceof self || $query instanceof EloquentBuilder) { - return [$query->toSql(), $query->getBindings()]; - } elseif (is_string($query)) { - return [$query, []]; - } else { - throw new InvalidArgumentException; - } - } - - /** - * Add a new select column to the query. - * - * @param array|mixed $column - * @return $this - */ - public function addSelect($column) - { - $column = is_array($column) ? $column : func_get_args(); - - $this->columns = array_merge((array) $this->columns, $column); - - return $this; - } - - /** - * Force the query to only return distinct results. - * - * @return $this - */ - public function distinct() - { - $this->distinct = true; - - return $this; - } - - /** - * Set the table which the query is targeting. - * - * @param string $table - * @return $this - */ - public function from($table) - { - $this->from = $table; - - return $this; - } - - /** - * Add a join clause to the query. - * - * @param string $table - * @param string $first - * @param string|null $operator - * @param string|null $second - * @param string $type - * @param bool $where - * @return $this - */ - public function join($table, $first, $operator = null, $second = null, $type = 'inner', $where = false) - { - $join = new JoinClause($this, $type, $table); - - // If the first "column" of the join is really a Closure instance the developer - // is trying to build a join with a complex "on" clause containing more than - // one condition, so we'll add the join and call a Closure with the query. - if ($first instanceof Closure) { - call_user_func($first, $join); - - $this->joins[] = $join; - - $this->addBinding($join->getBindings(), 'join'); - } - - // If the column is simply a string, we can assume the join simply has a basic - // "on" clause with a single condition. So we will just build the join with - // this simple join clauses attached to it. There is not a join callback. - else { - $method = $where ? 'where' : 'on'; - - $this->joins[] = $join->$method($first, $operator, $second); - - $this->addBinding($join->getBindings(), 'join'); - } - - return $this; - } - - /** - * Add a "join where" clause to the query. - * - * @param string $table - * @param string $first - * @param string $operator - * @param string $second - * @param string $type - * @return \Illuminate\Database\Query\Builder|static - */ - public function joinWhere($table, $first, $operator, $second, $type = 'inner') - { - return $this->join($table, $first, $operator, $second, $type, true); - } - - /** - * Add a subquery join clause to the query. - * - * @param \Closure|\Illuminate\Database\Query\Builder|string $query - * @param string $as - * @param string $first - * @param string|null $operator - * @param string|null $second - * @param string $type - * @param bool $where - * @return \Illuminate\Database\Query\Builder|static - * - * @throws \InvalidArgumentException - */ - public function joinSub($query, $as, $first, $operator = null, $second = null, $type = 'inner', $where = false) - { - list($query, $bindings) = $this->createSub($query); - - $expression = '('.$query.') as '.$this->grammar->wrap($as); - - $this->addBinding($bindings, 'join'); - - return $this->join(new Expression($expression), $first, $operator, $second, $type, $where); - } - - /** - * Add a left join to the query. - * - * @param string $table - * @param string $first - * @param string|null $operator - * @param string|null $second - * @return \Illuminate\Database\Query\Builder|static - */ - public function leftJoin($table, $first, $operator = null, $second = null) - { - return $this->join($table, $first, $operator, $second, 'left'); - } - - /** - * Add a "join where" clause to the query. - * - * @param string $table - * @param string $first - * @param string $operator - * @param string $second - * @return \Illuminate\Database\Query\Builder|static - */ - public function leftJoinWhere($table, $first, $operator, $second) - { - return $this->joinWhere($table, $first, $operator, $second, 'left'); - } - - /** - * Add a subquery left join to the query. - * - * @param \Closure|\Illuminate\Database\Query\Builder|string $query - * @param string $as - * @param string $first - * @param string|null $operator - * @param string|null $second - * @return \Illuminate\Database\Query\Builder|static - */ - public function leftJoinSub($query, $as, $first, $operator = null, $second = null) - { - return $this->joinSub($query, $as, $first, $operator, $second, 'left'); - } - - /** - * Add a right join to the query. - * - * @param string $table - * @param string $first - * @param string|null $operator - * @param string|null $second - * @return \Illuminate\Database\Query\Builder|static - */ - public function rightJoin($table, $first, $operator = null, $second = null) - { - return $this->join($table, $first, $operator, $second, 'right'); - } - - /** - * Add a "right join where" clause to the query. - * - * @param string $table - * @param string $first - * @param string $operator - * @param string $second - * @return \Illuminate\Database\Query\Builder|static - */ - public function rightJoinWhere($table, $first, $operator, $second) - { - return $this->joinWhere($table, $first, $operator, $second, 'right'); - } - - /** - * Add a subquery right join to the query. - * - * @param \Closure|\Illuminate\Database\Query\Builder|string $query - * @param string $as - * @param string $first - * @param string|null $operator - * @param string|null $second - * @return \Illuminate\Database\Query\Builder|static - */ - public function rightJoinSub($query, $as, $first, $operator = null, $second = null) - { - return $this->joinSub($query, $as, $first, $operator, $second, 'right'); - } - - /** - * Add a "cross join" clause to the query. - * - * @param string $table - * @param string|null $first - * @param string|null $operator - * @param string|null $second - * @return \Illuminate\Database\Query\Builder|static - */ - public function crossJoin($table, $first = null, $operator = null, $second = null) - { - if ($first) { - return $this->join($table, $first, $operator, $second, 'cross'); - } - - $this->joins[] = new JoinClause($this, 'cross', $table); - - return $this; - } - - /** - * Merge an array of where clauses and bindings. - * - * @param array $wheres - * @param array $bindings - * @return void - */ - public function mergeWheres($wheres, $bindings) - { - $this->wheres = array_merge($this->wheres, (array) $wheres); - - $this->bindings['where'] = array_values( - array_merge($this->bindings['where'], (array) $bindings) - ); - } - - /** - * Add a basic where clause to the query. - * - * @param string|array|\Closure $column - * @param mixed $operator - * @param mixed $value - * @param string $boolean - * @return $this - */ - public function where($column, $operator = null, $value = null, $boolean = 'and') - { - // If the column is an array, we will assume it is an array of key-value pairs - // and can add them each as a where clause. We will maintain the boolean we - // received when the method was called and pass it into the nested where. - if (is_array($column)) { - return $this->addArrayOfWheres($column, $boolean); - } - - // Here we will make some assumptions about the operator. If only 2 values are - // passed to the method, we will assume that the operator is an equals sign - // and keep going. Otherwise, we'll require the operator to be passed in. - list($value, $operator) = $this->prepareValueAndOperator( - $value, $operator, func_num_args() === 2 - ); - - // If the columns is actually a Closure instance, we will assume the developer - // wants to begin a nested where statement which is wrapped in parenthesis. - // We'll add that Closure to the query then return back out immediately. - if ($column instanceof Closure) { - return $this->whereNested($column, $boolean); - } - - // If the given operator is not found in the list of valid operators we will - // assume that the developer is just short-cutting the '=' operators and - // we will set the operators to '=' and set the values appropriately. - if ($this->invalidOperator($operator)) { - list($value, $operator) = [$operator, '=']; - } - - // If the value is a Closure, it means the developer is performing an entire - // sub-select within the query and we will need to compile the sub-select - // within the where clause to get the appropriate query record results. - if ($value instanceof Closure) { - return $this->whereSub($column, $operator, $value, $boolean); - } - - // If the value is "null", we will just assume the developer wants to add a - // where null clause to the query. So, we will allow a short-cut here to - // that method for convenience so the developer doesn't have to check. - if (is_null($value)) { - return $this->whereNull($column, $boolean, $operator !== '='); - } - - // If the column is making a JSON reference we'll check to see if the value - // is a boolean. If it is, we'll add the raw boolean string as an actual - // value to the query to ensure this is properly handled by the query. - if (Str::contains($column, '->') && is_bool($value)) { - $value = new Expression($value ? 'true' : 'false'); - } - - // Now that we are working with just a simple query we can put the elements - // in our array and add the query binding to our array of bindings that - // will be bound to each SQL statements when it is finally executed. - $type = 'Basic'; - - $this->wheres[] = compact( - 'type', 'column', 'operator', 'value', 'boolean' - ); - - if (! $value instanceof Expression) { - $this->addBinding($value, 'where'); - } - - return $this; - } - - /** - * Add an array of where clauses to the query. - * - * @param array $column - * @param string $boolean - * @param string $method - * @return $this - */ - protected function addArrayOfWheres($column, $boolean, $method = 'where') - { - return $this->whereNested(function ($query) use ($column, $method, $boolean) { - foreach ($column as $key => $value) { - if (is_numeric($key) && is_array($value)) { - $query->{$method}(...array_values($value)); - } else { - $query->$method($key, '=', $value, $boolean); - } - } - }, $boolean); - } - - /** - * Prepare the value and operator for a where clause. - * - * @param string $value - * @param string $operator - * @param bool $useDefault - * @return array - * - * @throws \InvalidArgumentException - */ - public function prepareValueAndOperator($value, $operator, $useDefault = false) - { - if ($useDefault) { - return [$operator, '=']; - } elseif ($this->invalidOperatorAndValue($operator, $value)) { - throw new InvalidArgumentException('Illegal operator and value combination.'); - } - - return [$value, $operator]; - } - - /** - * Determine if the given operator and value combination is legal. - * - * Prevents using Null values with invalid operators. - * - * @param string $operator - * @param mixed $value - * @return bool - */ - protected function invalidOperatorAndValue($operator, $value) - { - return is_null($value) && in_array($operator, $this->operators) && - ! in_array($operator, ['=', '<>', '!=']); - } - - /** - * Determine if the given operator is supported. - * - * @param string $operator - * @return bool - */ - protected function invalidOperator($operator) - { - return ! in_array(strtolower($operator), $this->operators, true) && - ! in_array(strtolower($operator), $this->grammar->getOperators(), true); - } - - /** - * Add an "or where" clause to the query. - * - * @param string|array|\Closure $column - * @param mixed $operator - * @param mixed $value - * @return \Illuminate\Database\Query\Builder|static - */ - public function orWhere($column, $operator = null, $value = null) - { - list($value, $operator) = $this->prepareValueAndOperator( - $value, $operator, func_num_args() === 2 - ); - - return $this->where($column, $operator, $value, 'or'); - } - - /** - * Add a "where" clause comparing two columns to the query. - * - * @param string|array $first - * @param string|null $operator - * @param string|null $second - * @param string|null $boolean - * @return \Illuminate\Database\Query\Builder|static - */ - public function whereColumn($first, $operator = null, $second = null, $boolean = 'and') - { - // If the column is an array, we will assume it is an array of key-value pairs - // and can add them each as a where clause. We will maintain the boolean we - // received when the method was called and pass it into the nested where. - if (is_array($first)) { - return $this->addArrayOfWheres($first, $boolean, 'whereColumn'); - } - - // If the given operator is not found in the list of valid operators we will - // assume that the developer is just short-cutting the '=' operators and - // we will set the operators to '=' and set the values appropriately. - if ($this->invalidOperator($operator)) { - list($second, $operator) = [$operator, '=']; - } - - // Finally, we will add this where clause into this array of clauses that we - // are building for the query. All of them will be compiled via a grammar - // once the query is about to be executed and run against the database. - $type = 'Column'; - - $this->wheres[] = compact( - 'type', 'first', 'operator', 'second', 'boolean' - ); - - return $this; - } - - /** - * Add an "or where" clause comparing two columns to the query. - * - * @param string|array $first - * @param string|null $operator - * @param string|null $second - * @return \Illuminate\Database\Query\Builder|static - */ - public function orWhereColumn($first, $operator = null, $second = null) - { - return $this->whereColumn($first, $operator, $second, 'or'); - } - - /** - * Add a raw where clause to the query. - * - * @param string $sql - * @param mixed $bindings - * @param string $boolean - * @return $this - */ - public function whereRaw($sql, $bindings = [], $boolean = 'and') - { - $this->wheres[] = ['type' => 'raw', 'sql' => $sql, 'boolean' => $boolean]; - - $this->addBinding((array) $bindings, 'where'); - - return $this; - } - - /** - * Add a raw or where clause to the query. - * - * @param string $sql - * @param mixed $bindings - * @return \Illuminate\Database\Query\Builder|static - */ - public function orWhereRaw($sql, $bindings = []) - { - return $this->whereRaw($sql, $bindings, 'or'); - } - - /** - * Add a "where in" clause to the query. - * - * @param string $column - * @param mixed $values - * @param string $boolean - * @param bool $not - * @return $this - */ - public function whereIn($column, $values, $boolean = 'and', $not = false) - { - $type = $not ? 'NotIn' : 'In'; - - if ($values instanceof EloquentBuilder) { - $values = $values->getQuery(); - } - - // If the value is a query builder instance we will assume the developer wants to - // look for any values that exists within this given query. So we will add the - // query accordingly so that this query is properly executed when it is run. - if ($values instanceof self) { - return $this->whereInExistingQuery( - $column, $values, $boolean, $not - ); - } - - // If the value of the where in clause is actually a Closure, we will assume that - // the developer is using a full sub-select for this "in" statement, and will - // execute those Closures, then we can re-construct the entire sub-selects. - if ($values instanceof Closure) { - return $this->whereInSub($column, $values, $boolean, $not); - } - - // Next, if the value is Arrayable we need to cast it to its raw array form so we - // have the underlying array value instead of an Arrayable object which is not - // able to be added as a binding, etc. We will then add to the wheres array. - if ($values instanceof Arrayable) { - $values = $values->toArray(); - } - - $this->wheres[] = compact('type', 'column', 'values', 'boolean'); - - // Finally we'll add a binding for each values unless that value is an expression - // in which case we will just skip over it since it will be the query as a raw - // string and not as a parameterized place-holder to be replaced by the PDO. - foreach ($values as $value) { - if (! $value instanceof Expression) { - $this->addBinding($value, 'where'); - } - } - - return $this; - } - - /** - * Add an "or where in" clause to the query. - * - * @param string $column - * @param mixed $values - * @return \Illuminate\Database\Query\Builder|static - */ - public function orWhereIn($column, $values) - { - return $this->whereIn($column, $values, 'or'); - } - - /** - * Add a "where not in" clause to the query. - * - * @param string $column - * @param mixed $values - * @param string $boolean - * @return \Illuminate\Database\Query\Builder|static - */ - public function whereNotIn($column, $values, $boolean = 'and') - { - return $this->whereIn($column, $values, $boolean, true); - } - - /** - * Add an "or where not in" clause to the query. - * - * @param string $column - * @param mixed $values - * @return \Illuminate\Database\Query\Builder|static - */ - public function orWhereNotIn($column, $values) - { - return $this->whereNotIn($column, $values, 'or'); - } - - /** - * Add a where in with a sub-select to the query. - * - * @param string $column - * @param \Closure $callback - * @param string $boolean - * @param bool $not - * @return $this - */ - protected function whereInSub($column, Closure $callback, $boolean, $not) - { - $type = $not ? 'NotInSub' : 'InSub'; - - // To create the exists sub-select, we will actually create a query and call the - // provided callback with the query so the developer may set any of the query - // conditions they want for the in clause, then we'll put it in this array. - call_user_func($callback, $query = $this->forSubQuery()); - - $this->wheres[] = compact('type', 'column', 'query', 'boolean'); - - $this->addBinding($query->getBindings(), 'where'); - - return $this; - } - - /** - * Add an external sub-select to the query. - * - * @param string $column - * @param \Illuminate\Database\Query\Builder|static $query - * @param string $boolean - * @param bool $not - * @return $this - */ - protected function whereInExistingQuery($column, $query, $boolean, $not) - { - $type = $not ? 'NotInSub' : 'InSub'; - - $this->wheres[] = compact('type', 'column', 'query', 'boolean'); - - $this->addBinding($query->getBindings(), 'where'); - - return $this; - } - - /** - * Add a "where null" clause to the query. - * - * @param string $column - * @param string $boolean - * @param bool $not - * @return $this - */ - public function whereNull($column, $boolean = 'and', $not = false) - { - $type = $not ? 'NotNull' : 'Null'; - - $this->wheres[] = compact('type', 'column', 'boolean'); - - return $this; - } - - /** - * Add an "or where null" clause to the query. - * - * @param string $column - * @return \Illuminate\Database\Query\Builder|static - */ - public function orWhereNull($column) - { - return $this->whereNull($column, 'or'); - } - - /** - * Add a "where not null" clause to the query. - * - * @param string $column - * @param string $boolean - * @return \Illuminate\Database\Query\Builder|static - */ - public function whereNotNull($column, $boolean = 'and') - { - return $this->whereNull($column, $boolean, true); - } - - /** - * Add a where between statement to the query. - * - * @param string $column - * @param array $values - * @param string $boolean - * @param bool $not - * @return $this - */ - public function whereBetween($column, array $values, $boolean = 'and', $not = false) - { - $type = 'between'; - - $this->wheres[] = compact('type', 'column', 'values', 'boolean', 'not'); - - $this->addBinding($this->cleanBindings($values), 'where'); - - return $this; - } - - /** - * Add an or where between statement to the query. - * - * @param string $column - * @param array $values - * @return \Illuminate\Database\Query\Builder|static - */ - public function orWhereBetween($column, array $values) - { - return $this->whereBetween($column, $values, 'or'); - } - - /** - * Add a where not between statement to the query. - * - * @param string $column - * @param array $values - * @param string $boolean - * @return \Illuminate\Database\Query\Builder|static - */ - public function whereNotBetween($column, array $values, $boolean = 'and') - { - return $this->whereBetween($column, $values, $boolean, true); - } - - /** - * Add an or where not between statement to the query. - * - * @param string $column - * @param array $values - * @return \Illuminate\Database\Query\Builder|static - */ - public function orWhereNotBetween($column, array $values) - { - return $this->whereNotBetween($column, $values, 'or'); - } - - /** - * Add an "or where not null" clause to the query. - * - * @param string $column - * @return \Illuminate\Database\Query\Builder|static - */ - public function orWhereNotNull($column) - { - return $this->whereNotNull($column, 'or'); - } - - /** - * Add a "where date" statement to the query. - * - * @param string $column - * @param string $operator - * @param mixed $value - * @param string $boolean - * @return \Illuminate\Database\Query\Builder|static - */ - public function whereDate($column, $operator, $value = null, $boolean = 'and') - { - list($value, $operator) = $this->prepareValueAndOperator( - $value, $operator, func_num_args() === 2 - ); - - return $this->addDateBasedWhere('Date', $column, $operator, $value, $boolean); - } - - /** - * Add an "or where date" statement to the query. - * - * @param string $column - * @param string $operator - * @param mixed $value - * @return \Illuminate\Database\Query\Builder|static - */ - public function orWhereDate($column, $operator, $value = null) - { - list($value, $operator) = $this->prepareValueAndOperator( - $value, $operator, func_num_args() === 2 - ); - - return $this->whereDate($column, $operator, $value, 'or'); - } - - /** - * Add a "where time" statement to the query. - * - * @param string $column - * @param string $operator - * @param mixed $value - * @param string $boolean - * @return \Illuminate\Database\Query\Builder|static - */ - public function whereTime($column, $operator, $value = null, $boolean = 'and') - { - list($value, $operator) = $this->prepareValueAndOperator( - $value, $operator, func_num_args() === 2 - ); - - return $this->addDateBasedWhere('Time', $column, $operator, $value, $boolean); - } - - /** - * Add an "or where time" statement to the query. - * - * @param string $column - * @param string $operator - * @param mixed $value - * @return \Illuminate\Database\Query\Builder|static - */ - public function orWhereTime($column, $operator, $value = null) - { - list($value, $operator) = $this->prepareValueAndOperator( - $value, $operator, func_num_args() === 2 - ); - - return $this->whereTime($column, $operator, $value, 'or'); - } - - /** - * Add a "where day" statement to the query. - * - * @param string $column - * @param string $operator - * @param mixed $value - * @param string $boolean - * @return \Illuminate\Database\Query\Builder|static - */ - public function whereDay($column, $operator, $value = null, $boolean = 'and') - { - list($value, $operator) = $this->prepareValueAndOperator( - $value, $operator, func_num_args() === 2 - ); - - return $this->addDateBasedWhere('Day', $column, $operator, $value, $boolean); - } - - /** - * Add an "or where day" statement to the query. - * - * @param string $column - * @param string $operator - * @param mixed $value - * @return \Illuminate\Database\Query\Builder|static - */ - public function orWhereDay($column, $operator, $value = null) - { - list($value, $operator) = $this->prepareValueAndOperator( - $value, $operator, func_num_args() === 2 - ); - - return $this->addDateBasedWhere('Day', $column, $operator, $value, 'or'); - } - - /** - * Add a "where month" statement to the query. - * - * @param string $column - * @param string $operator - * @param mixed $value - * @param string $boolean - * @return \Illuminate\Database\Query\Builder|static - */ - public function whereMonth($column, $operator, $value = null, $boolean = 'and') - { - list($value, $operator) = $this->prepareValueAndOperator( - $value, $operator, func_num_args() === 2 - ); - - return $this->addDateBasedWhere('Month', $column, $operator, $value, $boolean); - } - - /** - * Add an "or where month" statement to the query. - * - * @param string $column - * @param string $operator - * @param mixed $value - * @return \Illuminate\Database\Query\Builder|static - */ - public function orWhereMonth($column, $operator, $value = null) - { - list($value, $operator) = $this->prepareValueAndOperator( - $value, $operator, func_num_args() === 2 - ); - - return $this->addDateBasedWhere('Month', $column, $operator, $value, 'or'); - } - - /** - * Add a "where year" statement to the query. - * - * @param string $column - * @param string $operator - * @param mixed $value - * @param string $boolean - * @return \Illuminate\Database\Query\Builder|static - */ - public function whereYear($column, $operator, $value = null, $boolean = 'and') - { - list($value, $operator) = $this->prepareValueAndOperator( - $value, $operator, func_num_args() === 2 - ); - - return $this->addDateBasedWhere('Year', $column, $operator, $value, $boolean); - } - - /** - * Add an "or where year" statement to the query. - * - * @param string $column - * @param string $operator - * @param mixed $value - * @return \Illuminate\Database\Query\Builder|static - */ - public function orWhereYear($column, $operator, $value = null) - { - list($value, $operator) = $this->prepareValueAndOperator( - $value, $operator, func_num_args() === 2 - ); - - return $this->addDateBasedWhere('Year', $column, $operator, $value, 'or'); - } - - /** - * Add a date based (year, month, day, time) statement to the query. - * - * @param string $type - * @param string $column - * @param string $operator - * @param mixed $value - * @param string $boolean - * @return $this - */ - protected function addDateBasedWhere($type, $column, $operator, $value, $boolean = 'and') - { - $this->wheres[] = compact('column', 'type', 'boolean', 'operator', 'value'); - - if (! $value instanceof Expression) { - $this->addBinding($value, 'where'); - } - - return $this; - } - - /** - * Add a nested where statement to the query. - * - * @param \Closure $callback - * @param string $boolean - * @return \Illuminate\Database\Query\Builder|static - */ - public function whereNested(Closure $callback, $boolean = 'and') - { - call_user_func($callback, $query = $this->forNestedWhere()); - - return $this->addNestedWhereQuery($query, $boolean); - } - - /** - * Create a new query instance for nested where condition. - * - * @return \Illuminate\Database\Query\Builder - */ - public function forNestedWhere() - { - return $this->newQuery()->from($this->from); - } - - /** - * Add another query builder as a nested where to the query builder. - * - * @param \Illuminate\Database\Query\Builder|static $query - * @param string $boolean - * @return $this - */ - public function addNestedWhereQuery($query, $boolean = 'and') - { - if (count($query->wheres)) { - $type = 'Nested'; - - $this->wheres[] = compact('type', 'query', 'boolean'); - - $this->addBinding($query->getRawBindings()['where'], 'where'); - } - - return $this; - } - - /** - * Add a full sub-select to the query. - * - * @param string $column - * @param string $operator - * @param \Closure $callback - * @param string $boolean - * @return $this - */ - protected function whereSub($column, $operator, Closure $callback, $boolean) - { - $type = 'Sub'; - - // Once we have the query instance we can simply execute it so it can add all - // of the sub-select's conditions to itself, and then we can cache it off - // in the array of where clauses for the "main" parent query instance. - call_user_func($callback, $query = $this->forSubQuery()); - - $this->wheres[] = compact( - 'type', 'column', 'operator', 'query', 'boolean' - ); - - $this->addBinding($query->getBindings(), 'where'); - - return $this; - } - - /** - * Add an exists clause to the query. - * - * @param \Closure $callback - * @param string $boolean - * @param bool $not - * @return $this - */ - public function whereExists(Closure $callback, $boolean = 'and', $not = false) - { - $query = $this->forSubQuery(); - - // Similar to the sub-select clause, we will create a new query instance so - // the developer may cleanly specify the entire exists query and we will - // compile the whole thing in the grammar and insert it into the SQL. - call_user_func($callback, $query); - - return $this->addWhereExistsQuery($query, $boolean, $not); - } - - /** - * Add an or exists clause to the query. - * - * @param \Closure $callback - * @param bool $not - * @return \Illuminate\Database\Query\Builder|static - */ - public function orWhereExists(Closure $callback, $not = false) - { - return $this->whereExists($callback, 'or', $not); - } - - /** - * Add a where not exists clause to the query. - * - * @param \Closure $callback - * @param string $boolean - * @return \Illuminate\Database\Query\Builder|static - */ - public function whereNotExists(Closure $callback, $boolean = 'and') - { - return $this->whereExists($callback, $boolean, true); - } - - /** - * Add a where not exists clause to the query. - * - * @param \Closure $callback - * @return \Illuminate\Database\Query\Builder|static - */ - public function orWhereNotExists(Closure $callback) - { - return $this->orWhereExists($callback, true); - } - - /** - * Add an exists clause to the query. - * - * @param \Illuminate\Database\Query\Builder $query - * @param string $boolean - * @param bool $not - * @return $this - */ - public function addWhereExistsQuery(self $query, $boolean = 'and', $not = false) - { - $type = $not ? 'NotExists' : 'Exists'; - - $this->wheres[] = compact('type', 'operator', 'query', 'boolean'); - - $this->addBinding($query->getBindings(), 'where'); - - return $this; - } - - /** - * Adds a where condition using row values. - * - * @param array $columns - * @param string $operator - * @param array $values - * @param string $boolean - * @return $this - */ - public function whereRowValues($columns, $operator, $values, $boolean = 'and') - { - if (count($columns) !== count($values)) { - throw new InvalidArgumentException('The number of columns must match the number of values'); - } - - $type = 'RowValues'; - - $this->wheres[] = compact('type', 'columns', 'operator', 'values', 'boolean'); - - $this->addBinding($values); - - return $this; - } - - /** - * Adds a or where condition using row values. - * - * @param array $columns - * @param string $operator - * @param array $values - * @return $this - */ - public function orWhereRowValues($columns, $operator, $values) - { - return $this->whereRowValues($columns, $operator, $values, 'or'); - } - - /** - * Add a "where JSON contains" clause to the query. - * - * @param string $column - * @param mixed $value - * @param string $boolean - * @param bool $not - * @return $this - */ - public function whereJsonContains($column, $value, $boolean = 'and', $not = false) - { - $type = 'JsonContains'; - - $this->wheres[] = compact('type', 'column', 'value', 'boolean', 'not'); - - if (! $value instanceof Expression) { - $this->addBinding($this->grammar->prepareBindingForJsonContains($value)); - } - - return $this; - } - - /** - * Add a "or where JSON contains" clause to the query. - * - * @param string $column - * @param mixed $value - * @return $this - */ - public function orWhereJsonContains($column, $value) - { - return $this->whereJsonContains($column, $value, 'or'); - } - - /** - * Add a "where JSON not contains" clause to the query. - * - * @param string $column - * @param mixed $value - * @param string $boolean - * @return $this - */ - public function whereJsonDoesntContain($column, $value, $boolean = 'and') - { - return $this->whereJsonContains($column, $value, $boolean, true); - } - - /** - * Add a "or where JSON not contains" clause to the query. - * - * @param string $column - * @param mixed $value - * @return $this - */ - public function orWhereJsonDoesntContain($column, $value) - { - return $this->whereJsonDoesntContain($column, $value, 'or'); - } - - /** - * Handles dynamic "where" clauses to the query. - * - * @param string $method - * @param string $parameters - * @return $this - */ - public function dynamicWhere($method, $parameters) - { - $finder = substr($method, 5); - - $segments = preg_split( - '/(And|Or)(?=[A-Z])/', $finder, -1, PREG_SPLIT_DELIM_CAPTURE - ); - - // The connector variable will determine which connector will be used for the - // query condition. We will change it as we come across new boolean values - // in the dynamic method strings, which could contain a number of these. - $connector = 'and'; - - $index = 0; - - foreach ($segments as $segment) { - // If the segment is not a boolean connector, we can assume it is a column's name - // and we will add it to the query as a new constraint as a where clause, then - // we can keep iterating through the dynamic method string's segments again. - if ($segment !== 'And' && $segment !== 'Or') { - $this->addDynamic($segment, $connector, $parameters, $index); - - $index++; - } - - // Otherwise, we will store the connector so we know how the next where clause we - // find in the query should be connected to the previous ones, meaning we will - // have the proper boolean connector to connect the next where clause found. - else { - $connector = $segment; - } - } - - return $this; - } - - /** - * Add a single dynamic where clause statement to the query. - * - * @param string $segment - * @param string $connector - * @param array $parameters - * @param int $index - * @return void - */ - protected function addDynamic($segment, $connector, $parameters, $index) - { - // Once we have parsed out the columns and formatted the boolean operators we - // are ready to add it to this query as a where clause just like any other - // clause on the query. Then we'll increment the parameter index values. - $bool = strtolower($connector); - - $this->where(Str::snake($segment), '=', $parameters[$index], $bool); - } - - /** - * Add a "group by" clause to the query. - * - * @param array ...$groups - * @return $this - */ - public function groupBy(...$groups) - { - foreach ($groups as $group) { - $this->groups = array_merge( - (array) $this->groups, - Arr::wrap($group) - ); - } - - return $this; - } - - /** - * Add a "having" clause to the query. - * - * @param string $column - * @param string|null $operator - * @param string|null $value - * @param string $boolean - * @return $this - */ - public function having($column, $operator = null, $value = null, $boolean = 'and') - { - $type = 'Basic'; - - // Here we will make some assumptions about the operator. If only 2 values are - // passed to the method, we will assume that the operator is an equals sign - // and keep going. Otherwise, we'll require the operator to be passed in. - list($value, $operator) = $this->prepareValueAndOperator( - $value, $operator, func_num_args() === 2 - ); - - // If the given operator is not found in the list of valid operators we will - // assume that the developer is just short-cutting the '=' operators and - // we will set the operators to '=' and set the values appropriately. - if ($this->invalidOperator($operator)) { - list($value, $operator) = [$operator, '=']; - } - - $this->havings[] = compact('type', 'column', 'operator', 'value', 'boolean'); - - if (! $value instanceof Expression) { - $this->addBinding($value, 'having'); - } - - return $this; - } - - /** - * Add a "or having" clause to the query. - * - * @param string $column - * @param string|null $operator - * @param string|null $value - * @return \Illuminate\Database\Query\Builder|static - */ - public function orHaving($column, $operator = null, $value = null) - { - list($value, $operator) = $this->prepareValueAndOperator( - $value, $operator, func_num_args() === 2 - ); - - return $this->having($column, $operator, $value, 'or'); - } - - /** - * Add a raw having clause to the query. - * - * @param string $sql - * @param array $bindings - * @param string $boolean - * @return $this - */ - public function havingRaw($sql, array $bindings = [], $boolean = 'and') - { - $type = 'Raw'; - - $this->havings[] = compact('type', 'sql', 'boolean'); - - $this->addBinding($bindings, 'having'); - - return $this; - } - - /** - * Add a raw or having clause to the query. - * - * @param string $sql - * @param array $bindings - * @return \Illuminate\Database\Query\Builder|static - */ - public function orHavingRaw($sql, array $bindings = []) - { - return $this->havingRaw($sql, $bindings, 'or'); - } - - /** - * Add an "order by" clause to the query. - * - * @param string $column - * @param string $direction - * @return $this - */ - public function orderBy($column, $direction = 'asc') - { - $this->{$this->unions ? 'unionOrders' : 'orders'}[] = [ - 'column' => $column, - 'direction' => strtolower($direction) == 'asc' ? 'asc' : 'desc', - ]; - - return $this; - } - - /** - * Add a descending "order by" clause to the query. - * - * @param string $column - * @return $this - */ - public function orderByDesc($column) - { - return $this->orderBy($column, 'desc'); - } - - /** - * Add an "order by" clause for a timestamp to the query. - * - * @param string $column - * @return \Illuminate\Database\Query\Builder|static - */ - public function latest($column = 'created_at') - { - return $this->orderBy($column, 'desc'); - } - - /** - * Add an "order by" clause for a timestamp to the query. - * - * @param string $column - * @return \Illuminate\Database\Query\Builder|static - */ - public function oldest($column = 'created_at') - { - return $this->orderBy($column, 'asc'); - } - - /** - * Put the query's results in random order. - * - * @param string $seed - * @return $this - */ - public function inRandomOrder($seed = '') - { - return $this->orderByRaw($this->grammar->compileRandom($seed)); - } - - /** - * Add a raw "order by" clause to the query. - * - * @param string $sql - * @param array $bindings - * @return $this - */ - public function orderByRaw($sql, $bindings = []) - { - $type = 'Raw'; - - $this->{$this->unions ? 'unionOrders' : 'orders'}[] = compact('type', 'sql'); - - $this->addBinding($bindings, 'order'); - - return $this; - } - - /** - * Alias to set the "offset" value of the query. - * - * @param int $value - * @return \Illuminate\Database\Query\Builder|static - */ - public function skip($value) - { - return $this->offset($value); - } - - /** - * Set the "offset" value of the query. - * - * @param int $value - * @return $this - */ - public function offset($value) - { - $property = $this->unions ? 'unionOffset' : 'offset'; - - $this->$property = max(0, $value); - - return $this; - } - - /** - * Alias to set the "limit" value of the query. - * - * @param int $value - * @return \Illuminate\Database\Query\Builder|static - */ - public function take($value) - { - return $this->limit($value); - } - - /** - * Set the "limit" value of the query. - * - * @param int $value - * @return $this - */ - public function limit($value) - { - $property = $this->unions ? 'unionLimit' : 'limit'; - - if ($value >= 0) { - $this->$property = $value; - } - - return $this; - } - - /** - * Set the limit and offset for a given page. - * - * @param int $page - * @param int $perPage - * @return \Illuminate\Database\Query\Builder|static - */ - public function forPage($page, $perPage = 15) - { - return $this->skip(($page - 1) * $perPage)->take($perPage); - } - - /** - * Constrain the query to the next "page" of results after a given ID. - * - * @param int $perPage - * @param int|null $lastId - * @param string $column - * @return \Illuminate\Database\Query\Builder|static - */ - public function forPageAfterId($perPage = 15, $lastId = 0, $column = 'id') - { - $this->orders = $this->removeExistingOrdersFor($column); - - if (! is_null($lastId)) { - $this->where($column, '>', $lastId); - } - - return $this->orderBy($column, 'asc') - ->take($perPage); - } - - /** - * Get an array with all orders with a given column removed. - * - * @param string $column - * @return array - */ - protected function removeExistingOrdersFor($column) - { - return Collection::make($this->orders) - ->reject(function ($order) use ($column) { - return isset($order['column']) - ? $order['column'] === $column : false; - })->values()->all(); - } - - /** - * Add a union statement to the query. - * - * @param \Illuminate\Database\Query\Builder|\Closure $query - * @param bool $all - * @return \Illuminate\Database\Query\Builder|static - */ - public function union($query, $all = false) - { - if ($query instanceof Closure) { - call_user_func($query, $query = $this->newQuery()); - } - - $this->unions[] = compact('query', 'all'); - - $this->addBinding($query->getBindings(), 'union'); - - return $this; - } - - /** - * Add a union all statement to the query. - * - * @param \Illuminate\Database\Query\Builder|\Closure $query - * @return \Illuminate\Database\Query\Builder|static - */ - public function unionAll($query) - { - return $this->union($query, true); - } - - /** - * Lock the selected rows in the table. - * - * @param string|bool $value - * @return $this - */ - public function lock($value = true) - { - $this->lock = $value; - - if (! is_null($this->lock)) { - $this->useWritePdo(); - } - - return $this; - } - - /** - * Lock the selected rows in the table for updating. - * - * @return \Illuminate\Database\Query\Builder - */ - public function lockForUpdate() - { - return $this->lock(true); - } - - /** - * Share lock the selected rows in the table. - * - * @return \Illuminate\Database\Query\Builder - */ - public function sharedLock() - { - return $this->lock(false); - } - - /** - * Get the SQL representation of the query. - * - * @return string - */ - public function toSql() - { - return $this->grammar->compileSelect($this); - } - - /** - * Execute a query for a single record by ID. - * - * @param int $id - * @param array $columns - * @return mixed|static - */ - public function find($id, $columns = ['*']) - { - return $this->where('id', '=', $id)->first($columns); - } - - /** - * Get a single column's value from the first result of a query. - * - * @param string $column - * @return mixed - */ - public function value($column) - { - $result = (array) $this->first([$column]); - - return count($result) > 0 ? reset($result) : null; - } - - /** - * Execute the query as a "select" statement. - * - * @param array $columns - * @return \Illuminate\Support\Collection - */ - public function get($columns = ['*']) - { - return collect($this->onceWithColumns($columns, function () { - return $this->processor->processSelect($this, $this->runSelect()); - })); - } - - /** - * Run the query as a "select" statement against the connection. - * - * @return array - */ - protected function runSelect() - { - return $this->connection->select( - $this->toSql(), $this->getBindings(), ! $this->useWritePdo - ); - } - - /** - * Paginate the given query into a simple paginator. - * - * @param int $perPage - * @param array $columns - * @param string $pageName - * @param int|null $page - * @return \Illuminate\Contracts\Pagination\LengthAwarePaginator - */ - public function paginate($perPage = 15, $columns = ['*'], $pageName = 'page', $page = null) - { - $page = $page ?: Paginator::resolveCurrentPage($pageName); - - $total = $this->getCountForPagination($columns); - - $results = $total ? $this->forPage($page, $perPage)->get($columns) : collect(); - - return $this->paginator($results, $total, $perPage, $page, [ - 'path' => Paginator::resolveCurrentPath(), - 'pageName' => $pageName, - ]); - } - - /** - * Get a paginator only supporting simple next and previous links. - * - * This is more efficient on larger data-sets, etc. - * - * @param int $perPage - * @param array $columns - * @param string $pageName - * @param int|null $page - * @return \Illuminate\Contracts\Pagination\Paginator - */ - public function simplePaginate($perPage = 15, $columns = ['*'], $pageName = 'page', $page = null) - { - $page = $page ?: Paginator::resolveCurrentPage($pageName); - - $this->skip(($page - 1) * $perPage)->take($perPage + 1); - - return $this->simplePaginator($this->get($columns), $perPage, $page, [ - 'path' => Paginator::resolveCurrentPath(), - 'pageName' => $pageName, - ]); - } - - /** - * Get the count of the total records for the paginator. - * - * @param array $columns - * @return int - */ - public function getCountForPagination($columns = ['*']) - { - $results = $this->runPaginationCountQuery($columns); - - // Once we have run the pagination count query, we will get the resulting count and - // take into account what type of query it was. When there is a group by we will - // just return the count of the entire results set since that will be correct. - if (isset($this->groups)) { - return count($results); - } elseif (! isset($results[0])) { - return 0; - } elseif (is_object($results[0])) { - return (int) $results[0]->aggregate; - } - - return (int) array_change_key_case((array) $results[0])['aggregate']; - } - - /** - * Run a pagination count query. - * - * @param array $columns - * @return array - */ - protected function runPaginationCountQuery($columns = ['*']) - { - return $this->cloneWithout(['columns', 'orders', 'limit', 'offset']) - ->cloneWithoutBindings(['select', 'order']) - ->setAggregate('count', $this->withoutSelectAliases($columns)) - ->get()->all(); - } - - /** - * Remove the column aliases since they will break count queries. - * - * @param array $columns - * @return array - */ - protected function withoutSelectAliases(array $columns) - { - return array_map(function ($column) { - return is_string($column) && ($aliasPosition = stripos($column, ' as ')) !== false - ? substr($column, 0, $aliasPosition) : $column; - }, $columns); - } - - /** - * Get a generator for the given query. - * - * @return \Generator - */ - public function cursor() - { - if (is_null($this->columns)) { - $this->columns = ['*']; - } - - return $this->connection->cursor( - $this->toSql(), $this->getBindings(), ! $this->useWritePdo - ); - } - - /** - * Chunk the results of a query by comparing numeric IDs. - * - * @param int $count - * @param callable $callback - * @param string $column - * @param string $alias - * @return bool - */ - public function chunkById($count, callable $callback, $column = 'id', $alias = null) - { - $alias = $alias ?: $column; - - $lastId = null; - - do { - $clone = clone $this; - - // We'll execute the query for the given page and get the results. If there are - // no results we can just break and return from here. When there are results - // we will call the callback with the current chunk of these results here. - $results = $clone->forPageAfterId($count, $lastId, $column)->get(); - - $countResults = $results->count(); - - if ($countResults == 0) { - break; - } - - // On each chunk result set, we will pass them to the callback and then let the - // developer take care of everything within the callback, which allows us to - // keep the memory low for spinning through large result sets for working. - if ($callback($results) === false) { - return false; - } - - $lastId = $results->last()->{$alias}; - - unset($results); - } while ($countResults == $count); - - return true; - } - - /** - * Throw an exception if the query doesn't have an orderBy clause. - * - * @return void - * - * @throws \RuntimeException - */ - protected function enforceOrderBy() - { - if (empty($this->orders) && empty($this->unionOrders)) { - throw new RuntimeException('You must specify an orderBy clause when using this function.'); - } - } - - /** - * Get an array with the values of a given column. - * - * @param string $column - * @param string|null $key - * @return \Illuminate\Support\Collection - */ - public function pluck($column, $key = null) - { - // First, we will need to select the results of the query accounting for the - // given columns / key. Once we have the results, we will be able to take - // the results and get the exact data that was requested for the query. - $queryResult = $this->onceWithColumns( - is_null($key) ? [$column] : [$column, $key], - function () { - return $this->processor->processSelect( - $this, $this->runSelect() - ); - } - ); - - if (empty($queryResult)) { - return collect(); - } - - // If the columns are qualified with a table or have an alias, we cannot use - // those directly in the "pluck" operations since the results from the DB - // are only keyed by the column itself. We'll strip the table out here. - $column = $this->stripTableForPluck($column); - - $key = $this->stripTableForPluck($key); - - return is_array($queryResult[0]) - ? $this->pluckFromArrayColumn($queryResult, $column, $key) - : $this->pluckFromObjectColumn($queryResult, $column, $key); - } - - /** - * Strip off the table name or alias from a column identifier. - * - * @param string $column - * @return string|null - */ - protected function stripTableForPluck($column) - { - return is_null($column) ? $column : last(preg_split('~\.| ~', $column)); - } - - /** - * Retrieve column values from rows represented as objects. - * - * @param array $queryResult - * @param string $column - * @param string $key - * @return \Illuminate\Support\Collection - */ - protected function pluckFromObjectColumn($queryResult, $column, $key) - { - $results = []; - - if (is_null($key)) { - foreach ($queryResult as $row) { - $results[] = $row->$column; - } - } else { - foreach ($queryResult as $row) { - $results[$row->$key] = $row->$column; - } - } - - return collect($results); - } - - /** - * Retrieve column values from rows represented as arrays. - * - * @param array $queryResult - * @param string $column - * @param string $key - * @return \Illuminate\Support\Collection - */ - protected function pluckFromArrayColumn($queryResult, $column, $key) - { - $results = []; - - if (is_null($key)) { - foreach ($queryResult as $row) { - $results[] = $row[$column]; - } - } else { - foreach ($queryResult as $row) { - $results[$row[$key]] = $row[$column]; - } - } - - return collect($results); - } - - /** - * Concatenate values of a given column as a string. - * - * @param string $column - * @param string $glue - * @return string - */ - public function implode($column, $glue = '') - { - return $this->pluck($column)->implode($glue); - } - - /** - * Determine if any rows exist for the current query. - * - * @return bool - */ - public function exists() - { - $results = $this->connection->select( - $this->grammar->compileExists($this), $this->getBindings(), ! $this->useWritePdo - ); - - // If the results has rows, we will get the row and see if the exists column is a - // boolean true. If there is no results for this query we will return false as - // there are no rows for this query at all and we can return that info here. - if (isset($results[0])) { - $results = (array) $results[0]; - - return (bool) $results['exists']; - } - - return false; - } - - /** - * Determine if no rows exist for the current query. - * - * @return bool - */ - public function doesntExist() - { - return ! $this->exists(); - } - - /** - * Retrieve the "count" result of the query. - * - * @param string $columns - * @return int - */ - public function count($columns = '*') - { - return (int) $this->aggregate(__FUNCTION__, Arr::wrap($columns)); - } - - /** - * Retrieve the minimum value of a given column. - * - * @param string $column - * @return mixed - */ - public function min($column) - { - return $this->aggregate(__FUNCTION__, [$column]); - } - - /** - * Retrieve the maximum value of a given column. - * - * @param string $column - * @return mixed - */ - public function max($column) - { - return $this->aggregate(__FUNCTION__, [$column]); - } - - /** - * Retrieve the sum of the values of a given column. - * - * @param string $column - * @return mixed - */ - public function sum($column) - { - $result = $this->aggregate(__FUNCTION__, [$column]); - - return $result ?: 0; - } - - /** - * Retrieve the average of the values of a given column. - * - * @param string $column - * @return mixed - */ - public function avg($column) - { - return $this->aggregate(__FUNCTION__, [$column]); - } - - /** - * Alias for the "avg" method. - * - * @param string $column - * @return mixed - */ - public function average($column) - { - return $this->avg($column); - } - - /** - * Execute an aggregate function on the database. - * - * @param string $function - * @param array $columns - * @return mixed - */ - public function aggregate($function, $columns = ['*']) - { - $results = $this->cloneWithout(['columns']) - ->cloneWithoutBindings(['select']) - ->setAggregate($function, $columns) - ->get($columns); - - if (! $results->isEmpty()) { - return array_change_key_case((array) $results[0])['aggregate']; - } - } - - /** - * Execute a numeric aggregate function on the database. - * - * @param string $function - * @param array $columns - * @return float|int - */ - public function numericAggregate($function, $columns = ['*']) - { - $result = $this->aggregate($function, $columns); - - // If there is no result, we can obviously just return 0 here. Next, we will check - // if the result is an integer or float. If it is already one of these two data - // types we can just return the result as-is, otherwise we will convert this. - if (! $result) { - return 0; - } - - if (is_int($result) || is_float($result)) { - return $result; - } - - // If the result doesn't contain a decimal place, we will assume it is an int then - // cast it to one. When it does we will cast it to a float since it needs to be - // cast to the expected data type for the developers out of pure convenience. - return strpos((string) $result, '.') === false - ? (int) $result : (float) $result; - } - - /** - * Set the aggregate property without running the query. - * - * @param string $function - * @param array $columns - * @return $this - */ - protected function setAggregate($function, $columns) - { - $this->aggregate = compact('function', 'columns'); - - if (empty($this->groups)) { - $this->orders = null; - - $this->bindings['order'] = []; - } - - return $this; - } - - /** - * Execute the given callback while selecting the given columns. - * - * After running the callback, the columns are reset to the original value. - * - * @param array $columns - * @param callable $callback - * @return mixed - */ - protected function onceWithColumns($columns, $callback) - { - $original = $this->columns; - - if (is_null($original)) { - $this->columns = $columns; - } - - $result = $callback(); - - $this->columns = $original; - - return $result; - } - - /** - * Insert a new record into the database. - * - * @param array $values - * @return bool - */ - public function insert(array $values) - { - // Since every insert gets treated like a batch insert, we will make sure the - // bindings are structured in a way that is convenient when building these - // inserts statements by verifying these elements are actually an array. - if (empty($values)) { - return true; - } - - if (! is_array(reset($values))) { - $values = [$values]; - } - - // Here, we will sort the insert keys for every record so that each insert is - // in the same order for the record. We need to make sure this is the case - // so there are not any errors or problems when inserting these records. - else { - foreach ($values as $key => $value) { - ksort($value); - - $values[$key] = $value; - } - } - - // Finally, we will run this query against the database connection and return - // the results. We will need to also flatten these bindings before running - // the query so they are all in one huge, flattened array for execution. - return $this->connection->insert( - $this->grammar->compileInsert($this, $values), - $this->cleanBindings(Arr::flatten($values, 1)) - ); - } - - /** - * Insert a new record and get the value of the primary key. - * - * @param array $values - * @param string|null $sequence - * @return int - */ - public function insertGetId(array $values, $sequence = null) - { - $sql = $this->grammar->compileInsertGetId($this, $values, $sequence); - - $values = $this->cleanBindings($values); - - return $this->processor->processInsertGetId($this, $sql, $values, $sequence); - } - - /** - * Update a record in the database. - * - * @param array $values - * @return int - */ - public function update(array $values) - { - $sql = $this->grammar->compileUpdate($this, $values); - - return $this->connection->update($sql, $this->cleanBindings( - $this->grammar->prepareBindingsForUpdate($this->bindings, $values) - )); - } - - /** - * Insert or update a record matching the attributes, and fill it with values. - * - * @param array $attributes - * @param array $values - * @return bool - */ - public function updateOrInsert(array $attributes, array $values = []) - { - if (! $this->where($attributes)->exists()) { - return $this->insert(array_merge($attributes, $values)); - } - - return (bool) $this->take(1)->update($values); - } - - /** - * Increment a column's value by a given amount. - * - * @param string $column - * @param float|int $amount - * @param array $extra - * @return int - */ - public function increment($column, $amount = 1, array $extra = []) - { - if (! is_numeric($amount)) { - throw new InvalidArgumentException('Non-numeric value passed to increment method.'); - } - - $wrapped = $this->grammar->wrap($column); - - $columns = array_merge([$column => $this->raw("$wrapped + $amount")], $extra); - - return $this->update($columns); - } - - /** - * Decrement a column's value by a given amount. - * - * @param string $column - * @param float|int $amount - * @param array $extra - * @return int - */ - public function decrement($column, $amount = 1, array $extra = []) - { - if (! is_numeric($amount)) { - throw new InvalidArgumentException('Non-numeric value passed to decrement method.'); - } - - $wrapped = $this->grammar->wrap($column); - - $columns = array_merge([$column => $this->raw("$wrapped - $amount")], $extra); - - return $this->update($columns); - } - - /** - * Delete a record from the database. - * - * @param mixed $id - * @return int - */ - public function delete($id = null) - { - // If an ID is passed to the method, we will set the where clause to check the - // ID to let developers to simply and quickly remove a single row from this - // database without manually specifying the "where" clauses on the query. - if (! is_null($id)) { - $this->where($this->from.'.id', '=', $id); - } - - return $this->connection->delete( - $this->grammar->compileDelete($this), $this->cleanBindings( - $this->grammar->prepareBindingsForDelete($this->bindings) - ) - ); - } - - /** - * Run a truncate statement on the table. - * - * @return void - */ - public function truncate() - { - foreach ($this->grammar->compileTruncate($this) as $sql => $bindings) { - $this->connection->statement($sql, $bindings); - } - } - - /** - * Get a new instance of the query builder. - * - * @return \Illuminate\Database\Query\Builder - */ - public function newQuery() - { - return new static($this->connection, $this->grammar, $this->processor); - } - - /** - * Create a new query instance for a sub-query. - * - * @return \Illuminate\Database\Query\Builder - */ - protected function forSubQuery() - { - return $this->newQuery(); - } - - /** - * Create a raw database expression. - * - * @param mixed $value - * @return \Illuminate\Database\Query\Expression - */ - public function raw($value) - { - return $this->connection->raw($value); - } - - /** - * Get the current query value bindings in a flattened array. - * - * @return array - */ - public function getBindings() - { - return Arr::flatten($this->bindings); - } - - /** - * Get the raw array of bindings. - * - * @return array - */ - public function getRawBindings() - { - return $this->bindings; - } - - /** - * Set the bindings on the query builder. - * - * @param array $bindings - * @param string $type - * @return $this - * - * @throws \InvalidArgumentException - */ - public function setBindings(array $bindings, $type = 'where') - { - if (! array_key_exists($type, $this->bindings)) { - throw new InvalidArgumentException("Invalid binding type: {$type}."); - } - - $this->bindings[$type] = $bindings; - - return $this; - } - - /** - * Add a binding to the query. - * - * @param mixed $value - * @param string $type - * @return $this - * - * @throws \InvalidArgumentException - */ - public function addBinding($value, $type = 'where') - { - if (! array_key_exists($type, $this->bindings)) { - throw new InvalidArgumentException("Invalid binding type: {$type}."); - } - - if (is_array($value)) { - $this->bindings[$type] = array_values(array_merge($this->bindings[$type], $value)); - } else { - $this->bindings[$type][] = $value; - } - - return $this; - } - - /** - * Merge an array of bindings into our bindings. - * - * @param \Illuminate\Database\Query\Builder $query - * @return $this - */ - public function mergeBindings(self $query) - { - $this->bindings = array_merge_recursive($this->bindings, $query->bindings); - - return $this; - } - - /** - * Remove all of the expressions from a list of bindings. - * - * @param array $bindings - * @return array - */ - protected function cleanBindings(array $bindings) - { - return array_values(array_filter($bindings, function ($binding) { - return ! $binding instanceof Expression; - })); - } - - /** - * Get the database connection instance. - * - * @return \Illuminate\Database\ConnectionInterface - */ - public function getConnection() - { - return $this->connection; - } - - /** - * Get the database query processor instance. - * - * @return \Illuminate\Database\Query\Processors\Processor - */ - public function getProcessor() - { - return $this->processor; - } - - /** - * Get the query grammar instance. - * - * @return \Illuminate\Database\Query\Grammars\Grammar - */ - public function getGrammar() - { - return $this->grammar; - } - - /** - * Use the write pdo for query. - * - * @return $this - */ - public function useWritePdo() - { - $this->useWritePdo = true; - - return $this; - } - - /** - * Clone the query without the given properties. - * - * @param array $properties - * @return static - */ - public function cloneWithout(array $properties) - { - return tap(clone $this, function ($clone) use ($properties) { - foreach ($properties as $property) { - $clone->{$property} = null; - } - }); - } - - /** - * Clone the query without the given bindings. - * - * @param array $except - * @return static - */ - public function cloneWithoutBindings(array $except) - { - return tap(clone $this, function ($clone) use ($except) { - foreach ($except as $type) { - $clone->bindings[$type] = []; - } - }); - } - - /** - * Handle dynamic method calls into the method. - * - * @param string $method - * @param array $parameters - * @return mixed - * - * @throws \BadMethodCallException - */ - public function __call($method, $parameters) - { - if (static::hasMacro($method)) { - return $this->macroCall($method, $parameters); - } - - if (Str::startsWith($method, 'where')) { - return $this->dynamicWhere($method, $parameters); - } - - throw new BadMethodCallException(sprintf( - 'Method %s::%s does not exist.', static::class, $method - )); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/Query/Expression.php b/vendor/laravel/framework/src/Illuminate/Database/Query/Expression.php deleted file mode 100755 index de690299..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/Query/Expression.php +++ /dev/null @@ -1,44 +0,0 @@ -value = $value; - } - - /** - * Get the value of the expression. - * - * @return mixed - */ - public function getValue() - { - return $this->value; - } - - /** - * Get the value of the expression. - * - * @return string - */ - public function __toString() - { - return (string) $this->getValue(); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/Query/Grammars/Grammar.php b/vendor/laravel/framework/src/Illuminate/Database/Query/Grammars/Grammar.php deleted file mode 100755 index b9e002b2..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/Query/Grammars/Grammar.php +++ /dev/null @@ -1,977 +0,0 @@ -columns; - - if (is_null($query->columns)) { - $query->columns = ['*']; - } - - // To compile the query, we'll spin through each component of the query and - // see if that component exists. If it does we'll just call the compiler - // function for the component which is responsible for making the SQL. - $sql = trim($this->concatenate( - $this->compileComponents($query)) - ); - - $query->columns = $original; - - return $sql; - } - - /** - * Compile the components necessary for a select clause. - * - * @param \Illuminate\Database\Query\Builder $query - * @return array - */ - protected function compileComponents(Builder $query) - { - $sql = []; - - foreach ($this->selectComponents as $component) { - // To compile the query, we'll spin through each component of the query and - // see if that component exists. If it does we'll just call the compiler - // function for the component which is responsible for making the SQL. - if (! is_null($query->$component)) { - $method = 'compile'.ucfirst($component); - - $sql[$component] = $this->$method($query, $query->$component); - } - } - - return $sql; - } - - /** - * Compile an aggregated select clause. - * - * @param \Illuminate\Database\Query\Builder $query - * @param array $aggregate - * @return string - */ - protected function compileAggregate(Builder $query, $aggregate) - { - $column = $this->columnize($aggregate['columns']); - - // If the query has a "distinct" constraint and we're not asking for all columns - // we need to prepend "distinct" onto the column name so that the query takes - // it into account when it performs the aggregating operations on the data. - if ($query->distinct && $column !== '*') { - $column = 'distinct '.$column; - } - - return 'select '.$aggregate['function'].'('.$column.') as aggregate'; - } - - /** - * Compile the "select *" portion of the query. - * - * @param \Illuminate\Database\Query\Builder $query - * @param array $columns - * @return string|null - */ - protected function compileColumns(Builder $query, $columns) - { - // If the query is actually performing an aggregating select, we will let that - // compiler handle the building of the select clauses, as it will need some - // more syntax that is best handled by that function to keep things neat. - if (! is_null($query->aggregate)) { - return; - } - - $select = $query->distinct ? 'select distinct ' : 'select '; - - return $select.$this->columnize($columns); - } - - /** - * Compile the "from" portion of the query. - * - * @param \Illuminate\Database\Query\Builder $query - * @param string $table - * @return string - */ - protected function compileFrom(Builder $query, $table) - { - return 'from '.$this->wrapTable($table); - } - - /** - * Compile the "join" portions of the query. - * - * @param \Illuminate\Database\Query\Builder $query - * @param array $joins - * @return string - */ - protected function compileJoins(Builder $query, $joins) - { - return collect($joins)->map(function ($join) use ($query) { - $table = $this->wrapTable($join->table); - - $nestedJoins = is_null($join->joins) ? '' : ' '.$this->compileJoins($query, $join->joins); - - return trim("{$join->type} join {$table}{$nestedJoins} {$this->compileWheres($join)}"); - })->implode(' '); - } - - /** - * Compile the "where" portions of the query. - * - * @param \Illuminate\Database\Query\Builder $query - * @return string - */ - protected function compileWheres(Builder $query) - { - // Each type of where clauses has its own compiler function which is responsible - // for actually creating the where clauses SQL. This helps keep the code nice - // and maintainable since each clause has a very small method that it uses. - if (is_null($query->wheres)) { - return ''; - } - - // If we actually have some where clauses, we will strip off the first boolean - // operator, which is added by the query builders for convenience so we can - // avoid checking for the first clauses in each of the compilers methods. - if (count($sql = $this->compileWheresToArray($query)) > 0) { - return $this->concatenateWhereClauses($query, $sql); - } - - return ''; - } - - /** - * Get an array of all the where clauses for the query. - * - * @param \Illuminate\Database\Query\Builder $query - * @return array - */ - protected function compileWheresToArray($query) - { - return collect($query->wheres)->map(function ($where) use ($query) { - return $where['boolean'].' '.$this->{"where{$where['type']}"}($query, $where); - })->all(); - } - - /** - * Format the where clause statements into one string. - * - * @param \Illuminate\Database\Query\Builder $query - * @param array $sql - * @return string - */ - protected function concatenateWhereClauses($query, $sql) - { - $conjunction = $query instanceof JoinClause ? 'on' : 'where'; - - return $conjunction.' '.$this->removeLeadingBoolean(implode(' ', $sql)); - } - - /** - * Compile a raw where clause. - * - * @param \Illuminate\Database\Query\Builder $query - * @param array $where - * @return string - */ - protected function whereRaw(Builder $query, $where) - { - return $where['sql']; - } - - /** - * Compile a basic where clause. - * - * @param \Illuminate\Database\Query\Builder $query - * @param array $where - * @return string - */ - protected function whereBasic(Builder $query, $where) - { - $value = $this->parameter($where['value']); - - return $this->wrap($where['column']).' '.$where['operator'].' '.$value; - } - - /** - * Compile a "where in" clause. - * - * @param \Illuminate\Database\Query\Builder $query - * @param array $where - * @return string - */ - protected function whereIn(Builder $query, $where) - { - if (! empty($where['values'])) { - return $this->wrap($where['column']).' in ('.$this->parameterize($where['values']).')'; - } - - return '0 = 1'; - } - - /** - * Compile a "where not in" clause. - * - * @param \Illuminate\Database\Query\Builder $query - * @param array $where - * @return string - */ - protected function whereNotIn(Builder $query, $where) - { - if (! empty($where['values'])) { - return $this->wrap($where['column']).' not in ('.$this->parameterize($where['values']).')'; - } - - return '1 = 1'; - } - - /** - * Compile a where in sub-select clause. - * - * @param \Illuminate\Database\Query\Builder $query - * @param array $where - * @return string - */ - protected function whereInSub(Builder $query, $where) - { - return $this->wrap($where['column']).' in ('.$this->compileSelect($where['query']).')'; - } - - /** - * Compile a where not in sub-select clause. - * - * @param \Illuminate\Database\Query\Builder $query - * @param array $where - * @return string - */ - protected function whereNotInSub(Builder $query, $where) - { - return $this->wrap($where['column']).' not in ('.$this->compileSelect($where['query']).')'; - } - - /** - * Compile a "where null" clause. - * - * @param \Illuminate\Database\Query\Builder $query - * @param array $where - * @return string - */ - protected function whereNull(Builder $query, $where) - { - return $this->wrap($where['column']).' is null'; - } - - /** - * Compile a "where not null" clause. - * - * @param \Illuminate\Database\Query\Builder $query - * @param array $where - * @return string - */ - protected function whereNotNull(Builder $query, $where) - { - return $this->wrap($where['column']).' is not null'; - } - - /** - * Compile a "between" where clause. - * - * @param \Illuminate\Database\Query\Builder $query - * @param array $where - * @return string - */ - protected function whereBetween(Builder $query, $where) - { - $between = $where['not'] ? 'not between' : 'between'; - - $min = $this->parameter(reset($where['values'])); - - $max = $this->parameter(end($where['values'])); - - return $this->wrap($where['column']).' '.$between.' '.$min.' and '.$max; - } - - /** - * Compile a "where date" clause. - * - * @param \Illuminate\Database\Query\Builder $query - * @param array $where - * @return string - */ - protected function whereDate(Builder $query, $where) - { - return $this->dateBasedWhere('date', $query, $where); - } - - /** - * Compile a "where time" clause. - * - * @param \Illuminate\Database\Query\Builder $query - * @param array $where - * @return string - */ - protected function whereTime(Builder $query, $where) - { - return $this->dateBasedWhere('time', $query, $where); - } - - /** - * Compile a "where day" clause. - * - * @param \Illuminate\Database\Query\Builder $query - * @param array $where - * @return string - */ - protected function whereDay(Builder $query, $where) - { - return $this->dateBasedWhere('day', $query, $where); - } - - /** - * Compile a "where month" clause. - * - * @param \Illuminate\Database\Query\Builder $query - * @param array $where - * @return string - */ - protected function whereMonth(Builder $query, $where) - { - return $this->dateBasedWhere('month', $query, $where); - } - - /** - * Compile a "where year" clause. - * - * @param \Illuminate\Database\Query\Builder $query - * @param array $where - * @return string - */ - protected function whereYear(Builder $query, $where) - { - return $this->dateBasedWhere('year', $query, $where); - } - - /** - * Compile a date based where clause. - * - * @param string $type - * @param \Illuminate\Database\Query\Builder $query - * @param array $where - * @return string - */ - protected function dateBasedWhere($type, Builder $query, $where) - { - $value = $this->parameter($where['value']); - - return $type.'('.$this->wrap($where['column']).') '.$where['operator'].' '.$value; - } - - /** - * Compile a where clause comparing two columns.. - * - * @param \Illuminate\Database\Query\Builder $query - * @param array $where - * @return string - */ - protected function whereColumn(Builder $query, $where) - { - return $this->wrap($where['first']).' '.$where['operator'].' '.$this->wrap($where['second']); - } - - /** - * Compile a nested where clause. - * - * @param \Illuminate\Database\Query\Builder $query - * @param array $where - * @return string - */ - protected function whereNested(Builder $query, $where) - { - // Here we will calculate what portion of the string we need to remove. If this - // is a join clause query, we need to remove the "on" portion of the SQL and - // if it is a normal query we need to take the leading "where" of queries. - $offset = $query instanceof JoinClause ? 3 : 6; - - return '('.substr($this->compileWheres($where['query']), $offset).')'; - } - - /** - * Compile a where condition with a sub-select. - * - * @param \Illuminate\Database\Query\Builder $query - * @param array $where - * @return string - */ - protected function whereSub(Builder $query, $where) - { - $select = $this->compileSelect($where['query']); - - return $this->wrap($where['column']).' '.$where['operator']." ($select)"; - } - - /** - * Compile a where exists clause. - * - * @param \Illuminate\Database\Query\Builder $query - * @param array $where - * @return string - */ - protected function whereExists(Builder $query, $where) - { - return 'exists ('.$this->compileSelect($where['query']).')'; - } - - /** - * Compile a where exists clause. - * - * @param \Illuminate\Database\Query\Builder $query - * @param array $where - * @return string - */ - protected function whereNotExists(Builder $query, $where) - { - return 'not exists ('.$this->compileSelect($where['query']).')'; - } - - /** - * Compile a where row values condition. - * - * @param \Illuminate\Database\Query\Builder $query - * @param array $where - * @return string - */ - protected function whereRowValues(Builder $query, $where) - { - $values = $this->parameterize($where['values']); - - return '('.implode(', ', $where['columns']).') '.$where['operator'].' ('.$values.')'; - } - - /** - * Compile a "where JSON contains" clause. - * - * @param \Illuminate\Database\Query\Builder $query - * @param array $where - * @return string - */ - protected function whereJsonContains(Builder $query, $where) - { - $not = $where['not'] ? 'not ' : ''; - - return $not.$this->compileJsonContains( - $where['column'], $this->parameter($where['value']) - ); - } - - /** - * Compile a "JSON contains" statement into SQL. - * - * @param string $column - * @param string $value - * @return string - * @throws \RuntimeException - */ - protected function compileJsonContains($column, $value) - { - throw new RuntimeException('This database engine does not support JSON contains operations.'); - } - - /** - * Prepare the binding for a "JSON contains" statement. - * - * @param mixed $binding - * @return string - */ - public function prepareBindingForJsonContains($binding) - { - return json_encode($binding); - } - - /** - * Compile the "group by" portions of the query. - * - * @param \Illuminate\Database\Query\Builder $query - * @param array $groups - * @return string - */ - protected function compileGroups(Builder $query, $groups) - { - return 'group by '.$this->columnize($groups); - } - - /** - * Compile the "having" portions of the query. - * - * @param \Illuminate\Database\Query\Builder $query - * @param array $havings - * @return string - */ - protected function compileHavings(Builder $query, $havings) - { - $sql = implode(' ', array_map([$this, 'compileHaving'], $havings)); - - return 'having '.$this->removeLeadingBoolean($sql); - } - - /** - * Compile a single having clause. - * - * @param array $having - * @return string - */ - protected function compileHaving(array $having) - { - // If the having clause is "raw", we can just return the clause straight away - // without doing any more processing on it. Otherwise, we will compile the - // clause into SQL based on the components that make it up from builder. - if ($having['type'] === 'Raw') { - return $having['boolean'].' '.$having['sql']; - } - - return $this->compileBasicHaving($having); - } - - /** - * Compile a basic having clause. - * - * @param array $having - * @return string - */ - protected function compileBasicHaving($having) - { - $column = $this->wrap($having['column']); - - $parameter = $this->parameter($having['value']); - - return $having['boolean'].' '.$column.' '.$having['operator'].' '.$parameter; - } - - /** - * Compile the "order by" portions of the query. - * - * @param \Illuminate\Database\Query\Builder $query - * @param array $orders - * @return string - */ - protected function compileOrders(Builder $query, $orders) - { - if (! empty($orders)) { - return 'order by '.implode(', ', $this->compileOrdersToArray($query, $orders)); - } - - return ''; - } - - /** - * Compile the query orders to an array. - * - * @param \Illuminate\Database\Query\Builder $query - * @param array $orders - * @return array - */ - protected function compileOrdersToArray(Builder $query, $orders) - { - return array_map(function ($order) { - return ! isset($order['sql']) - ? $this->wrap($order['column']).' '.$order['direction'] - : $order['sql']; - }, $orders); - } - - /** - * Compile the random statement into SQL. - * - * @param string $seed - * @return string - */ - public function compileRandom($seed) - { - return 'RANDOM()'; - } - - /** - * Compile the "limit" portions of the query. - * - * @param \Illuminate\Database\Query\Builder $query - * @param int $limit - * @return string - */ - protected function compileLimit(Builder $query, $limit) - { - return 'limit '.(int) $limit; - } - - /** - * Compile the "offset" portions of the query. - * - * @param \Illuminate\Database\Query\Builder $query - * @param int $offset - * @return string - */ - protected function compileOffset(Builder $query, $offset) - { - return 'offset '.(int) $offset; - } - - /** - * Compile the "union" queries attached to the main query. - * - * @param \Illuminate\Database\Query\Builder $query - * @return string - */ - protected function compileUnions(Builder $query) - { - $sql = ''; - - foreach ($query->unions as $union) { - $sql .= $this->compileUnion($union); - } - - if (! empty($query->unionOrders)) { - $sql .= ' '.$this->compileOrders($query, $query->unionOrders); - } - - if (isset($query->unionLimit)) { - $sql .= ' '.$this->compileLimit($query, $query->unionLimit); - } - - if (isset($query->unionOffset)) { - $sql .= ' '.$this->compileOffset($query, $query->unionOffset); - } - - return ltrim($sql); - } - - /** - * Compile a single union statement. - * - * @param array $union - * @return string - */ - protected function compileUnion(array $union) - { - $conjunction = $union['all'] ? ' union all ' : ' union '; - - return $conjunction.$union['query']->toSql(); - } - - /** - * Compile an exists statement into SQL. - * - * @param \Illuminate\Database\Query\Builder $query - * @return string - */ - public function compileExists(Builder $query) - { - $select = $this->compileSelect($query); - - return "select exists({$select}) as {$this->wrap('exists')}"; - } - - /** - * Compile an insert statement into SQL. - * - * @param \Illuminate\Database\Query\Builder $query - * @param array $values - * @return string - */ - public function compileInsert(Builder $query, array $values) - { - // Essentially we will force every insert to be treated as a batch insert which - // simply makes creating the SQL easier for us since we can utilize the same - // basic routine regardless of an amount of records given to us to insert. - $table = $this->wrapTable($query->from); - - if (! is_array(reset($values))) { - $values = [$values]; - } - - $columns = $this->columnize(array_keys(reset($values))); - - // We need to build a list of parameter place-holders of values that are bound - // to the query. Each insert should have the exact same amount of parameter - // bindings so we will loop through the record and parameterize them all. - $parameters = collect($values)->map(function ($record) { - return '('.$this->parameterize($record).')'; - })->implode(', '); - - return "insert into $table ($columns) values $parameters"; - } - - /** - * Compile an insert and get ID statement into SQL. - * - * @param \Illuminate\Database\Query\Builder $query - * @param array $values - * @param string $sequence - * @return string - */ - public function compileInsertGetId(Builder $query, $values, $sequence) - { - return $this->compileInsert($query, $values); - } - - /** - * Compile an update statement into SQL. - * - * @param \Illuminate\Database\Query\Builder $query - * @param array $values - * @return string - */ - public function compileUpdate(Builder $query, $values) - { - $table = $this->wrapTable($query->from); - - // Each one of the columns in the update statements needs to be wrapped in the - // keyword identifiers, also a place-holder needs to be created for each of - // the values in the list of bindings so we can make the sets statements. - $columns = collect($values)->map(function ($value, $key) { - return $this->wrap($key).' = '.$this->parameter($value); - })->implode(', '); - - // If the query has any "join" clauses, we will setup the joins on the builder - // and compile them so we can attach them to this update, as update queries - // can get join statements to attach to other tables when they're needed. - $joins = ''; - - if (isset($query->joins)) { - $joins = ' '.$this->compileJoins($query, $query->joins); - } - - // Of course, update queries may also be constrained by where clauses so we'll - // need to compile the where clauses and attach it to the query so only the - // intended records are updated by the SQL statements we generate to run. - $wheres = $this->compileWheres($query); - - return trim("update {$table}{$joins} set $columns $wheres"); - } - - /** - * Prepare the bindings for an update statement. - * - * @param array $bindings - * @param array $values - * @return array - */ - public function prepareBindingsForUpdate(array $bindings, array $values) - { - $cleanBindings = Arr::except($bindings, ['join', 'select']); - - return array_values( - array_merge($bindings['join'], $values, Arr::flatten($cleanBindings)) - ); - } - - /** - * Compile a delete statement into SQL. - * - * @param \Illuminate\Database\Query\Builder $query - * @return string - */ - public function compileDelete(Builder $query) - { - $wheres = is_array($query->wheres) ? $this->compileWheres($query) : ''; - - return trim("delete from {$this->wrapTable($query->from)} $wheres"); - } - - /** - * Prepare the bindings for a delete statement. - * - * @param array $bindings - * @return array - */ - public function prepareBindingsForDelete(array $bindings) - { - return Arr::flatten($bindings); - } - - /** - * Compile a truncate table statement into SQL. - * - * @param \Illuminate\Database\Query\Builder $query - * @return array - */ - public function compileTruncate(Builder $query) - { - return ['truncate '.$this->wrapTable($query->from) => []]; - } - - /** - * Compile the lock into SQL. - * - * @param \Illuminate\Database\Query\Builder $query - * @param bool|string $value - * @return string - */ - protected function compileLock(Builder $query, $value) - { - return is_string($value) ? $value : ''; - } - - /** - * Determine if the grammar supports savepoints. - * - * @return bool - */ - public function supportsSavepoints() - { - return true; - } - - /** - * Compile the SQL statement to define a savepoint. - * - * @param string $name - * @return string - */ - public function compileSavepoint($name) - { - return 'SAVEPOINT '.$name; - } - - /** - * Compile the SQL statement to execute a savepoint rollback. - * - * @param string $name - * @return string - */ - public function compileSavepointRollBack($name) - { - return 'ROLLBACK TO SAVEPOINT '.$name; - } - - /** - * Wrap a value in keyword identifiers. - * - * @param \Illuminate\Database\Query\Expression|string $value - * @param bool $prefixAlias - * @return string - */ - public function wrap($value, $prefixAlias = false) - { - if ($this->isExpression($value)) { - return $this->getValue($value); - } - - // If the value being wrapped has a column alias we will need to separate out - // the pieces so we can wrap each of the segments of the expression on its - // own, and then join these both back together using the "as" connector. - if (stripos($value, ' as ') !== false) { - return $this->wrapAliasedValue($value, $prefixAlias); - } - - // If the given value is a JSON selector we will wrap it differently than a - // traditional value. We will need to split this path and wrap each part - // wrapped, etc. Otherwise, we will simply wrap the value as a string. - if ($this->isJsonSelector($value)) { - return $this->wrapJsonSelector($value); - } - - return $this->wrapSegments(explode('.', $value)); - } - - /** - * Wrap the given JSON selector. - * - * @param string $value - * @return string - */ - protected function wrapJsonSelector($value) - { - throw new RuntimeException('This database engine does not support JSON operations.'); - } - - /** - * Determine if the given string is a JSON selector. - * - * @param string $value - * @return bool - */ - protected function isJsonSelector($value) - { - return Str::contains($value, '->'); - } - - /** - * Concatenate an array of segments, removing empties. - * - * @param array $segments - * @return string - */ - protected function concatenate($segments) - { - return implode(' ', array_filter($segments, function ($value) { - return (string) $value !== ''; - })); - } - - /** - * Remove the leading boolean from a statement. - * - * @param string $value - * @return string - */ - protected function removeLeadingBoolean($value) - { - return preg_replace('/and |or /i', '', $value, 1); - } - - /** - * Get the grammar specific operators. - * - * @return array - */ - public function getOperators() - { - return $this->operators; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/Query/Grammars/MySqlGrammar.php b/vendor/laravel/framework/src/Illuminate/Database/Query/Grammars/MySqlGrammar.php deleted file mode 100755 index 38ac9cb3..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/Query/Grammars/MySqlGrammar.php +++ /dev/null @@ -1,316 +0,0 @@ -unions) { - $sql = '('.$sql.') '.$this->compileUnions($query); - } - - return $sql; - } - - /** - * Compile a "JSON contains" statement into SQL. - * - * @param string $column - * @param string $value - * @return string - */ - protected function compileJsonContains($column, $value) - { - return 'json_contains('.$this->wrap($column).', '.$value.')'; - } - - /** - * Compile a single union statement. - * - * @param array $union - * @return string - */ - protected function compileUnion(array $union) - { - $conjunction = $union['all'] ? ' union all ' : ' union '; - - return $conjunction.'('.$union['query']->toSql().')'; - } - - /** - * Compile the random statement into SQL. - * - * @param string $seed - * @return string - */ - public function compileRandom($seed) - { - return 'RAND('.$seed.')'; - } - - /** - * Compile the lock into SQL. - * - * @param \Illuminate\Database\Query\Builder $query - * @param bool|string $value - * @return string - */ - protected function compileLock(Builder $query, $value) - { - if (! is_string($value)) { - return $value ? 'for update' : 'lock in share mode'; - } - - return $value; - } - - /** - * Compile an update statement into SQL. - * - * @param \Illuminate\Database\Query\Builder $query - * @param array $values - * @return string - */ - public function compileUpdate(Builder $query, $values) - { - $table = $this->wrapTable($query->from); - - // Each one of the columns in the update statements needs to be wrapped in the - // keyword identifiers, also a place-holder needs to be created for each of - // the values in the list of bindings so we can make the sets statements. - $columns = $this->compileUpdateColumns($values); - - // If the query has any "join" clauses, we will setup the joins on the builder - // and compile them so we can attach them to this update, as update queries - // can get join statements to attach to other tables when they're needed. - $joins = ''; - - if (isset($query->joins)) { - $joins = ' '.$this->compileJoins($query, $query->joins); - } - - // Of course, update queries may also be constrained by where clauses so we'll - // need to compile the where clauses and attach it to the query so only the - // intended records are updated by the SQL statements we generate to run. - $where = $this->compileWheres($query); - - $sql = rtrim("update {$table}{$joins} set $columns $where"); - - // If the query has an order by clause we will compile it since MySQL supports - // order bys on update statements. We'll compile them using the typical way - // of compiling order bys. Then they will be appended to the SQL queries. - if (! empty($query->orders)) { - $sql .= ' '.$this->compileOrders($query, $query->orders); - } - - // Updates on MySQL also supports "limits", which allow you to easily update a - // single record very easily. This is not supported by all database engines - // so we have customized this update compiler here in order to add it in. - if (isset($query->limit)) { - $sql .= ' '.$this->compileLimit($query, $query->limit); - } - - return rtrim($sql); - } - - /** - * Compile all of the columns for an update statement. - * - * @param array $values - * @return string - */ - protected function compileUpdateColumns($values) - { - return collect($values)->map(function ($value, $key) { - if ($this->isJsonSelector($key)) { - return $this->compileJsonUpdateColumn($key, new JsonExpression($value)); - } - - return $this->wrap($key).' = '.$this->parameter($value); - })->implode(', '); - } - - /** - * Prepares a JSON column being updated using the JSON_SET function. - * - * @param string $key - * @param \Illuminate\Database\Query\JsonExpression $value - * @return string - */ - protected function compileJsonUpdateColumn($key, JsonExpression $value) - { - $path = explode('->', $key); - - $field = $this->wrapValue(array_shift($path)); - - $accessor = "'$.\"".implode('"."', $path)."\"'"; - - return "{$field} = json_set({$field}, {$accessor}, {$value->getValue()})"; - } - - /** - * Prepare the bindings for an update statement. - * - * Booleans, integers, and doubles are inserted into JSON updates as raw values. - * - * @param array $bindings - * @param array $values - * @return array - */ - public function prepareBindingsForUpdate(array $bindings, array $values) - { - $values = collect($values)->reject(function ($value, $column) { - return $this->isJsonSelector($column) && - in_array(gettype($value), ['boolean', 'integer', 'double']); - })->all(); - - return parent::prepareBindingsForUpdate($bindings, $values); - } - - /** - * Compile a delete statement into SQL. - * - * @param \Illuminate\Database\Query\Builder $query - * @return string - */ - public function compileDelete(Builder $query) - { - $table = $this->wrapTable($query->from); - - $where = is_array($query->wheres) ? $this->compileWheres($query) : ''; - - return isset($query->joins) - ? $this->compileDeleteWithJoins($query, $table, $where) - : $this->compileDeleteWithoutJoins($query, $table, $where); - } - - /** - * Prepare the bindings for a delete statement. - * - * @param array $bindings - * @return array - */ - public function prepareBindingsForDelete(array $bindings) - { - $cleanBindings = Arr::except($bindings, ['join', 'select']); - - return array_values( - array_merge($bindings['join'], Arr::flatten($cleanBindings)) - ); - } - - /** - * Compile a delete query that does not use joins. - * - * @param \Illuminate\Database\Query\Builder $query - * @param string $table - * @param array $where - * @return string - */ - protected function compileDeleteWithoutJoins($query, $table, $where) - { - $sql = trim("delete from {$table} {$where}"); - - // When using MySQL, delete statements may contain order by statements and limits - // so we will compile both of those here. Once we have finished compiling this - // we will return the completed SQL statement so it will be executed for us. - if (! empty($query->orders)) { - $sql .= ' '.$this->compileOrders($query, $query->orders); - } - - if (isset($query->limit)) { - $sql .= ' '.$this->compileLimit($query, $query->limit); - } - - return $sql; - } - - /** - * Compile a delete query that uses joins. - * - * @param \Illuminate\Database\Query\Builder $query - * @param string $table - * @param array $where - * @return string - */ - protected function compileDeleteWithJoins($query, $table, $where) - { - $joins = ' '.$this->compileJoins($query, $query->joins); - - $alias = stripos($table, ' as ') !== false - ? explode(' as ', $table)[1] : $table; - - return trim("delete {$alias} from {$table}{$joins} {$where}"); - } - - /** - * Wrap a single string in keyword identifiers. - * - * @param string $value - * @return string - */ - protected function wrapValue($value) - { - return $value === '*' ? $value : '`'.str_replace('`', '``', $value).'`'; - } - - /** - * Wrap the given JSON selector. - * - * @param string $value - * @return string - */ - protected function wrapJsonSelector($value) - { - $delimiter = str_contains($value, '->>') - ? '->>' - : '->'; - - $path = explode($delimiter, $value); - - $field = $this->wrapSegments(explode('.', array_shift($path))); - - return sprintf('%s'.$delimiter.'\'$.%s\'', $field, collect($path)->map(function ($part) { - return '"'.$part.'"'; - })->implode('.')); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/Query/Grammars/PostgresGrammar.php b/vendor/laravel/framework/src/Illuminate/Database/Query/Grammars/PostgresGrammar.php deleted file mode 100755 index b41299a5..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/Query/Grammars/PostgresGrammar.php +++ /dev/null @@ -1,336 +0,0 @@ -', '<=', '>=', '<>', '!=', - 'like', 'not like', 'between', 'ilike', 'not ilike', - '~', '&', '|', '#', '<<', '>>', '<<=', '>>=', - '&&', '@>', '<@', '?', '?|', '?&', '||', '-', '-', '#-', - 'is distinct from', 'is not distinct from', - ]; - - /** - * Compile a "where date" clause. - * - * @param \Illuminate\Database\Query\Builder $query - * @param array $where - * @return string - */ - protected function whereDate(Builder $query, $where) - { - $value = $this->parameter($where['value']); - - return $this->wrap($where['column']).'::date '.$where['operator'].' '.$value; - } - - /** - * Compile a "where time" clause. - * - * @param \Illuminate\Database\Query\Builder $query - * @param array $where - * @return string - */ - protected function whereTime(Builder $query, $where) - { - $value = $this->parameter($where['value']); - - return $this->wrap($where['column']).'::time '.$where['operator'].' '.$value; - } - - /** - * Compile a date based where clause. - * - * @param string $type - * @param \Illuminate\Database\Query\Builder $query - * @param array $where - * @return string - */ - protected function dateBasedWhere($type, Builder $query, $where) - { - $value = $this->parameter($where['value']); - - return 'extract('.$type.' from '.$this->wrap($where['column']).') '.$where['operator'].' '.$value; - } - - /** - * Compile a "JSON contains" statement into SQL. - * - * @param string $column - * @param string $value - * @return string - */ - protected function compileJsonContains($column, $value) - { - $column = str_replace('->>', '->', $this->wrap($column)); - - return '('.$column.')::jsonb @> '.$value; - } - - /** - * Compile the lock into SQL. - * - * @param \Illuminate\Database\Query\Builder $query - * @param bool|string $value - * @return string - */ - protected function compileLock(Builder $query, $value) - { - if (! is_string($value)) { - return $value ? 'for update' : 'for share'; - } - - return $value; - } - - /** - * {@inheritdoc} - */ - public function compileInsert(Builder $query, array $values) - { - $table = $this->wrapTable($query->from); - - return empty($values) - ? "insert into {$table} DEFAULT VALUES" - : parent::compileInsert($query, $values); - } - - /** - * Compile an insert and get ID statement into SQL. - * - * @param \Illuminate\Database\Query\Builder $query - * @param array $values - * @param string $sequence - * @return string - */ - public function compileInsertGetId(Builder $query, $values, $sequence) - { - if (is_null($sequence)) { - $sequence = 'id'; - } - - return $this->compileInsert($query, $values).' returning '.$this->wrap($sequence); - } - - /** - * Compile an update statement into SQL. - * - * @param \Illuminate\Database\Query\Builder $query - * @param array $values - * @return string - */ - public function compileUpdate(Builder $query, $values) - { - $table = $this->wrapTable($query->from); - - // Each one of the columns in the update statements needs to be wrapped in the - // keyword identifiers, also a place-holder needs to be created for each of - // the values in the list of bindings so we can make the sets statements. - $columns = $this->compileUpdateColumns($values); - - $from = $this->compileUpdateFrom($query); - - $where = $this->compileUpdateWheres($query); - - return trim("update {$table} set {$columns}{$from} {$where}"); - } - - /** - * Compile the columns for the update statement. - * - * @param array $values - * @return string - */ - protected function compileUpdateColumns($values) - { - // When gathering the columns for an update statement, we'll wrap each of the - // columns and convert it to a parameter value. Then we will concatenate a - // list of the columns that can be added into this update query clauses. - return collect($values)->map(function ($value, $key) { - return $this->wrap($key).' = '.$this->parameter($value); - })->implode(', '); - } - - /** - * Compile the "from" clause for an update with a join. - * - * @param \Illuminate\Database\Query\Builder $query - * @return string|null - */ - protected function compileUpdateFrom(Builder $query) - { - if (! isset($query->joins)) { - return ''; - } - - // When using Postgres, updates with joins list the joined tables in the from - // clause, which is different than other systems like MySQL. Here, we will - // compile out the tables that are joined and add them to a from clause. - $froms = collect($query->joins)->map(function ($join) { - return $this->wrapTable($join->table); - })->all(); - - if (count($froms) > 0) { - return ' from '.implode(', ', $froms); - } - } - - /** - * Compile the additional where clauses for updates with joins. - * - * @param \Illuminate\Database\Query\Builder $query - * @return string - */ - protected function compileUpdateWheres(Builder $query) - { - $baseWheres = $this->compileWheres($query); - - if (! isset($query->joins)) { - return $baseWheres; - } - - // Once we compile the join constraints, we will either use them as the where - // clause or append them to the existing base where clauses. If we need to - // strip the leading boolean we will do so when using as the only where. - $joinWheres = $this->compileUpdateJoinWheres($query); - - if (trim($baseWheres) == '') { - return 'where '.$this->removeLeadingBoolean($joinWheres); - } - - return $baseWheres.' '.$joinWheres; - } - - /** - * Compile the "join" clause where clauses for an update. - * - * @param \Illuminate\Database\Query\Builder $query - * @return string - */ - protected function compileUpdateJoinWheres(Builder $query) - { - $joinWheres = []; - - // Here we will just loop through all of the join constraints and compile them - // all out then implode them. This should give us "where" like syntax after - // everything has been built and then we will join it to the real wheres. - foreach ($query->joins as $join) { - foreach ($join->wheres as $where) { - $method = "where{$where['type']}"; - - $joinWheres[] = $where['boolean'].' '.$this->$method($query, $where); - } - } - - return implode(' ', $joinWheres); - } - - /** - * Prepare the bindings for an update statement. - * - * @param array $bindings - * @param array $values - * @return array - */ - public function prepareBindingsForUpdate(array $bindings, array $values) - { - // Update statements with "joins" in Postgres use an interesting syntax. We need to - // take all of the bindings and put them on the end of this array since they are - // added to the end of the "where" clause statements as typical where clauses. - $bindingsWithoutJoin = Arr::except($bindings, 'join'); - - return array_values( - array_merge($values, $bindings['join'], Arr::flatten($bindingsWithoutJoin)) - ); - } - - /** - * Compile a delete statement into SQL. - * - * @param \Illuminate\Database\Query\Builder $query - * @return string - */ - public function compileDelete(Builder $query) - { - $table = $this->wrapTable($query->from); - - return isset($query->joins) - ? $this->compileDeleteWithJoins($query, $table) - : parent::compileDelete($query); - } - - /** - * Compile a delete query that uses joins. - * - * @param \Illuminate\Database\Query\Builder $query - * @param string $table - * @return string - */ - protected function compileDeleteWithJoins($query, $table) - { - $using = ' USING '.collect($query->joins)->map(function ($join) { - return $this->wrapTable($join->table); - })->implode(', '); - - $where = count($query->wheres) > 0 ? ' '.$this->compileUpdateWheres($query) : ''; - - return trim("delete from {$table}{$using}{$where}"); - } - - /** - * Compile a truncate table statement into SQL. - * - * @param \Illuminate\Database\Query\Builder $query - * @return array - */ - public function compileTruncate(Builder $query) - { - return ['truncate '.$this->wrapTable($query->from).' restart identity' => []]; - } - - /** - * Wrap the given JSON selector. - * - * @param string $value - * @return string - */ - protected function wrapJsonSelector($value) - { - $path = explode('->', $value); - - $field = $this->wrapSegments(explode('.', array_shift($path))); - - $wrappedPath = $this->wrapJsonPathAttributes($path); - - $attribute = array_pop($wrappedPath); - - if (! empty($wrappedPath)) { - return $field.'->'.implode('->', $wrappedPath).'->>'.$attribute; - } - - return $field.'->>'.$attribute; - } - - /** - * Wrap the attributes of the give JSON path. - * - * @param array $path - * @return array - */ - protected function wrapJsonPathAttributes($path) - { - return array_map(function ($attribute) { - return "'$attribute'"; - }, $path); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/Query/Grammars/SQLiteGrammar.php b/vendor/laravel/framework/src/Illuminate/Database/Query/Grammars/SQLiteGrammar.php deleted file mode 100755 index 60973ae6..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/Query/Grammars/SQLiteGrammar.php +++ /dev/null @@ -1,276 +0,0 @@ -', '<=', '>=', '<>', '!=', - 'like', 'not like', 'ilike', - '&', '|', '<<', '>>', - ]; - - /** - * Compile a select query into SQL. - * - * @param \Illuminate\Database\Query\Builder $query - * @return string - */ - public function compileSelect(Builder $query) - { - $sql = parent::compileSelect($query); - - if ($query->unions) { - $sql = 'select * from ('.$sql.') '.$this->compileUnions($query); - } - - return $sql; - } - - /** - * Compile a single union statement. - * - * @param array $union - * @return string - */ - protected function compileUnion(array $union) - { - $conjunction = $union['all'] ? ' union all ' : ' union '; - - return $conjunction.'select * from ('.$union['query']->toSql().')'; - } - - /** - * Compile a "where date" clause. - * - * @param \Illuminate\Database\Query\Builder $query - * @param array $where - * @return string - */ - protected function whereDate(Builder $query, $where) - { - return $this->dateBasedWhere('%Y-%m-%d', $query, $where); - } - - /** - * Compile a "where day" clause. - * - * @param \Illuminate\Database\Query\Builder $query - * @param array $where - * @return string - */ - protected function whereDay(Builder $query, $where) - { - return $this->dateBasedWhere('%d', $query, $where); - } - - /** - * Compile a "where month" clause. - * - * @param \Illuminate\Database\Query\Builder $query - * @param array $where - * @return string - */ - protected function whereMonth(Builder $query, $where) - { - return $this->dateBasedWhere('%m', $query, $where); - } - - /** - * Compile a "where year" clause. - * - * @param \Illuminate\Database\Query\Builder $query - * @param array $where - * @return string - */ - protected function whereYear(Builder $query, $where) - { - return $this->dateBasedWhere('%Y', $query, $where); - } - - /** - * Compile a "where time" clause. - * - * @param \Illuminate\Database\Query\Builder $query - * @param array $where - * @return string - */ - protected function whereTime(Builder $query, $where) - { - return $this->dateBasedWhere('%H:%M:%S', $query, $where); - } - - /** - * Compile a date based where clause. - * - * @param string $type - * @param \Illuminate\Database\Query\Builder $query - * @param array $where - * @return string - */ - protected function dateBasedWhere($type, Builder $query, $where) - { - $value = $this->parameter($where['value']); - - return "strftime('{$type}', {$this->wrap($where['column'])}) {$where['operator']} cast({$value} as text)"; - } - - /** - * Compile an insert statement into SQL. - * - * @param \Illuminate\Database\Query\Builder $query - * @param array $values - * @return string - */ - public function compileInsert(Builder $query, array $values) - { - // Essentially we will force every insert to be treated as a batch insert which - // simply makes creating the SQL easier for us since we can utilize the same - // basic routine regardless of an amount of records given to us to insert. - $table = $this->wrapTable($query->from); - - if (! is_array(reset($values))) { - $values = [$values]; - } - - // If there is only one record being inserted, we will just use the usual query - // grammar insert builder because no special syntax is needed for the single - // row inserts in SQLite. However, if there are multiples, we'll continue. - if (count($values) === 1) { - return empty(reset($values)) - ? "insert into $table default values" - : parent::compileInsert($query, reset($values)); - } - - $names = $this->columnize(array_keys(reset($values))); - - $columns = []; - - // SQLite requires us to build the multi-row insert as a listing of select with - // unions joining them together. So we'll build out this list of columns and - // then join them all together with select unions to complete the queries. - foreach (array_keys(reset($values)) as $column) { - $columns[] = '? as '.$this->wrap($column); - } - - $columns = array_fill(0, count($values), implode(', ', $columns)); - - return "insert into $table ($names) select ".implode(' union all select ', $columns); - } - - /** - * Compile an update statement into SQL. - * - * @param \Illuminate\Database\Query\Builder $query - * @param array $values - * @return string - */ - public function compileUpdate(Builder $query, $values) - { - $table = $this->wrapTable($query->from); - - $columns = collect($values)->map(function ($value, $key) use ($query) { - return $this->wrap(Str::after($key, $query->from.'.')).' = '.$this->parameter($value); - })->implode(', '); - - if (isset($query->joins) || isset($query->limit)) { - $selectSql = parent::compileSelect($query->select("{$query->from}.rowid")); - - return "update {$table} set $columns where {$this->wrap('rowid')} in ({$selectSql})"; - } - - return trim("update {$table} set {$columns} {$this->compileWheres($query)}"); - } - - /** - * Prepare the bindings for an update statement. - * - * @param array $bindings - * @param array $values - * @return array - */ - public function prepareBindingsForUpdate(array $bindings, array $values) - { - $cleanBindings = Arr::except($bindings, ['select', 'join']); - - return array_values( - array_merge($values, $bindings['join'], Arr::flatten($cleanBindings)) - ); - } - - /** - * Compile a delete statement into SQL. - * - * @param \Illuminate\Database\Query\Builder $query - * @return string - */ - public function compileDelete(Builder $query) - { - if (isset($query->joins) || isset($query->limit)) { - $selectSql = parent::compileSelect($query->select("{$query->from}.rowid")); - - return "delete from {$this->wrapTable($query->from)} where {$this->wrap('rowid')} in ({$selectSql})"; - } - - $wheres = is_array($query->wheres) ? $this->compileWheres($query) : ''; - - return trim("delete from {$this->wrapTable($query->from)} $wheres"); - } - - /** - * Prepare the bindings for a delete statement. - * - * @param array $bindings - * @return array - */ - public function prepareBindingsForDelete(array $bindings) - { - $cleanBindings = Arr::except($bindings, ['select', 'join']); - - return array_values( - array_merge($bindings['join'], Arr::flatten($cleanBindings)) - ); - } - - /** - * Compile a truncate table statement into SQL. - * - * @param \Illuminate\Database\Query\Builder $query - * @return array - */ - public function compileTruncate(Builder $query) - { - return [ - 'delete from sqlite_sequence where name = ?' => [$query->from], - 'delete from '.$this->wrapTable($query->from) => [], - ]; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/Query/Grammars/SqlServerGrammar.php b/vendor/laravel/framework/src/Illuminate/Database/Query/Grammars/SqlServerGrammar.php deleted file mode 100755 index c47fb99e..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/Query/Grammars/SqlServerGrammar.php +++ /dev/null @@ -1,497 +0,0 @@ -', '<=', '>=', '!<', '!>', '<>', '!=', - 'like', 'not like', 'ilike', - '&', '&=', '|', '|=', '^', '^=', - ]; - - /** - * Compile a select query into SQL. - * - * @param \Illuminate\Database\Query\Builder $query - * @return string - */ - public function compileSelect(Builder $query) - { - if (! $query->offset) { - return parent::compileSelect($query); - } - - // If an offset is present on the query, we will need to wrap the query in - // a big "ANSI" offset syntax block. This is very nasty compared to the - // other database systems but is necessary for implementing features. - if (is_null($query->columns)) { - $query->columns = ['*']; - } - - return $this->compileAnsiOffset( - $query, $this->compileComponents($query) - ); - } - - /** - * Compile the "select *" portion of the query. - * - * @param \Illuminate\Database\Query\Builder $query - * @param array $columns - * @return string|null - */ - protected function compileColumns(Builder $query, $columns) - { - if (! is_null($query->aggregate)) { - return; - } - - $select = $query->distinct ? 'select distinct ' : 'select '; - - // If there is a limit on the query, but not an offset, we will add the top - // clause to the query, which serves as a "limit" type clause within the - // SQL Server system similar to the limit keywords available in MySQL. - if ($query->limit > 0 && $query->offset <= 0) { - $select .= 'top '.$query->limit.' '; - } - - return $select.$this->columnize($columns); - } - - /** - * Compile the "from" portion of the query. - * - * @param \Illuminate\Database\Query\Builder $query - * @param string $table - * @return string - */ - protected function compileFrom(Builder $query, $table) - { - $from = parent::compileFrom($query, $table); - - if (is_string($query->lock)) { - return $from.' '.$query->lock; - } - - if (! is_null($query->lock)) { - return $from.' with(rowlock,'.($query->lock ? 'updlock,' : '').'holdlock)'; - } - - return $from; - } - - /** - * Compile a "where date" clause. - * - * @param \Illuminate\Database\Query\Builder $query - * @param array $where - * @return string - */ - protected function whereDate(Builder $query, $where) - { - $value = $this->parameter($where['value']); - - return 'cast('.$this->wrap($where['column']).' as date) '.$where['operator'].' '.$value; - } - - /** - * Compile a "JSON contains" statement into SQL. - * - * @param string $column - * @param string $value - * @return string - */ - protected function compileJsonContains($column, $value) - { - $parts = explode('->', $column, 2); - - $field = $this->wrap($parts[0]); - - $path = count($parts) > 1 ? ', '.$this->wrapJsonPath($parts[1]) : ''; - - return $value.' in (select [value] from openjson('.$field.$path.'))'; - } - - /** - * Prepare the binding for a "JSON contains" statement. - * - * @param mixed $binding - * @return string - */ - public function prepareBindingForJsonContains($binding) - { - return is_bool($binding) ? json_encode($binding) : $binding; - } - - /** - * Create a full ANSI offset clause for the query. - * - * @param \Illuminate\Database\Query\Builder $query - * @param array $components - * @return string - */ - protected function compileAnsiOffset(Builder $query, $components) - { - // An ORDER BY clause is required to make this offset query work, so if one does - // not exist we'll just create a dummy clause to trick the database and so it - // does not complain about the queries for not having an "order by" clause. - if (empty($components['orders'])) { - $components['orders'] = 'order by (select 0)'; - } - - // We need to add the row number to the query so we can compare it to the offset - // and limit values given for the statements. So we will add an expression to - // the "select" that will give back the row numbers on each of the records. - $components['columns'] .= $this->compileOver($components['orders']); - - unset($components['orders']); - - // Next we need to calculate the constraints that should be placed on the query - // to get the right offset and limit from our query but if there is no limit - // set we will just handle the offset only since that is all that matters. - $sql = $this->concatenate($components); - - return $this->compileTableExpression($sql, $query); - } - - /** - * Compile the over statement for a table expression. - * - * @param string $orderings - * @return string - */ - protected function compileOver($orderings) - { - return ", row_number() over ({$orderings}) as row_num"; - } - - /** - * Compile a common table expression for a query. - * - * @param string $sql - * @param \Illuminate\Database\Query\Builder $query - * @return string - */ - protected function compileTableExpression($sql, $query) - { - $constraint = $this->compileRowConstraint($query); - - return "select * from ({$sql}) as temp_table where row_num {$constraint}"; - } - - /** - * Compile the limit / offset row constraint for a query. - * - * @param \Illuminate\Database\Query\Builder $query - * @return string - */ - protected function compileRowConstraint($query) - { - $start = $query->offset + 1; - - if ($query->limit > 0) { - $finish = $query->offset + $query->limit; - - return "between {$start} and {$finish}"; - } - - return ">= {$start}"; - } - - /** - * Compile the random statement into SQL. - * - * @param string $seed - * @return string - */ - public function compileRandom($seed) - { - return 'NEWID()'; - } - - /** - * Compile the "limit" portions of the query. - * - * @param \Illuminate\Database\Query\Builder $query - * @param int $limit - * @return string - */ - protected function compileLimit(Builder $query, $limit) - { - return ''; - } - - /** - * Compile the "offset" portions of the query. - * - * @param \Illuminate\Database\Query\Builder $query - * @param int $offset - * @return string - */ - protected function compileOffset(Builder $query, $offset) - { - return ''; - } - - /** - * Compile the lock into SQL. - * - * @param \Illuminate\Database\Query\Builder $query - * @param bool|string $value - * @return string - */ - protected function compileLock(Builder $query, $value) - { - return ''; - } - - /** - * Compile an exists statement into SQL. - * - * @param \Illuminate\Database\Query\Builder $query - * @return string - */ - public function compileExists(Builder $query) - { - $existsQuery = clone $query; - - $existsQuery->columns = []; - - return $this->compileSelect($existsQuery->selectRaw('1 [exists]')->limit(1)); - } - - /** - * Compile a delete statement into SQL. - * - * @param \Illuminate\Database\Query\Builder $query - * @return string - */ - public function compileDelete(Builder $query) - { - $table = $this->wrapTable($query->from); - - $where = is_array($query->wheres) ? $this->compileWheres($query) : ''; - - return isset($query->joins) - ? $this->compileDeleteWithJoins($query, $table, $where) - : trim("delete from {$table} {$where}"); - } - - /** - * Compile a delete statement with joins into SQL. - * - * @param \Illuminate\Database\Query\Builder $query - * @param string $table - * @param string $where - * @return string - */ - protected function compileDeleteWithJoins(Builder $query, $table, $where) - { - $joins = ' '.$this->compileJoins($query, $query->joins); - - $alias = stripos($table, ' as ') !== false - ? explode(' as ', $table)[1] : $table; - - return trim("delete {$alias} from {$table}{$joins} {$where}"); - } - - /** - * Compile a truncate table statement into SQL. - * - * @param \Illuminate\Database\Query\Builder $query - * @return array - */ - public function compileTruncate(Builder $query) - { - return ['truncate table '.$this->wrapTable($query->from) => []]; - } - - /** - * Compile an update statement into SQL. - * - * @param \Illuminate\Database\Query\Builder $query - * @param array $values - * @return string - */ - public function compileUpdate(Builder $query, $values) - { - list($table, $alias) = $this->parseUpdateTable($query->from); - - // Each one of the columns in the update statements needs to be wrapped in the - // keyword identifiers, also a place-holder needs to be created for each of - // the values in the list of bindings so we can make the sets statements. - $columns = collect($values)->map(function ($value, $key) { - return $this->wrap($key).' = '.$this->parameter($value); - })->implode(', '); - - // If the query has any "join" clauses, we will setup the joins on the builder - // and compile them so we can attach them to this update, as update queries - // can get join statements to attach to other tables when they're needed. - $joins = ''; - - if (isset($query->joins)) { - $joins = ' '.$this->compileJoins($query, $query->joins); - } - - // Of course, update queries may also be constrained by where clauses so we'll - // need to compile the where clauses and attach it to the query so only the - // intended records are updated by the SQL statements we generate to run. - $where = $this->compileWheres($query); - - if (! empty($joins)) { - return trim("update {$alias} set {$columns} from {$table}{$joins} {$where}"); - } - - return trim("update {$table}{$joins} set $columns $where"); - } - - /** - * Get the table and alias for the given table. - * - * @param string $table - * @return array - */ - protected function parseUpdateTable($table) - { - $table = $alias = $this->wrapTable($table); - - if (stripos($table, '] as [') !== false) { - $alias = '['.explode('] as [', $table)[1]; - } - - return [$table, $alias]; - } - - /** - * Prepare the bindings for an update statement. - * - * @param array $bindings - * @param array $values - * @return array - */ - public function prepareBindingsForUpdate(array $bindings, array $values) - { - // Update statements with joins in SQL Servers utilize an unique syntax. We need to - // take all of the bindings and put them on the end of this array since they are - // added to the end of the "where" clause statements as typical where clauses. - $bindingsWithoutJoin = Arr::except($bindings, 'join'); - - return array_values( - array_merge($values, $bindings['join'], Arr::flatten($bindingsWithoutJoin)) - ); - } - - /** - * Determine if the grammar supports savepoints. - * - * @return bool - */ - public function supportsSavepoints() - { - return true; - } - - /** - * Compile the SQL statement to define a savepoint. - * - * @param string $name - * @return string - */ - public function compileSavepoint($name) - { - return 'SAVE TRANSACTION '.$name; - } - - /** - * Compile the SQL statement to execute a savepoint rollback. - * - * @param string $name - * @return string - */ - public function compileSavepointRollBack($name) - { - return 'ROLLBACK TRANSACTION '.$name; - } - - /** - * Get the format for database stored dates. - * - * @return string - */ - public function getDateFormat() - { - return 'Y-m-d H:i:s.v'; - } - - /** - * Wrap a single string in keyword identifiers. - * - * @param string $value - * @return string - */ - protected function wrapValue($value) - { - return $value === '*' ? $value : '['.str_replace(']', ']]', $value).']'; - } - - /** - * Wrap the given JSON selector. - * - * @param string $value - * @return string - */ - protected function wrapJsonSelector($value) - { - $parts = explode('->', $value, 2); - - $field = $this->wrapSegments(explode('.', array_shift($parts))); - - return 'json_value('.$field.', '.$this->wrapJsonPath($parts[0]).')'; - } - - /** - * Wrap the given JSON path. - * - * @param string $value - * @return string - */ - protected function wrapJsonPath($value) - { - return '\'$."'.str_replace('->', '"."', $value).'"\''; - } - - /** - * Wrap a table in keyword identifiers. - * - * @param \Illuminate\Database\Query\Expression|string $table - * @return string - */ - public function wrapTable($table) - { - return $this->wrapTableValuedFunction(parent::wrapTable($table)); - } - - /** - * Wrap a table in keyword identifiers. - * - * @param string $table - * @return string - */ - protected function wrapTableValuedFunction($table) - { - if (preg_match('/^(.+?)(\(.*?\))]$/', $table, $matches) === 1) { - $table = $matches[1].']'.$matches[2]; - } - - return $table; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/Query/JoinClause.php b/vendor/laravel/framework/src/Illuminate/Database/Query/JoinClause.php deleted file mode 100755 index 4b32df29..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/Query/JoinClause.php +++ /dev/null @@ -1,110 +0,0 @@ -type = $type; - $this->table = $table; - $this->parentQuery = $parentQuery; - - parent::__construct( - $parentQuery->getConnection(), $parentQuery->getGrammar(), $parentQuery->getProcessor() - ); - } - - /** - * Add an "on" clause to the join. - * - * On clauses can be chained, e.g. - * - * $join->on('contacts.user_id', '=', 'users.id') - * ->on('contacts.info_id', '=', 'info.id') - * - * will produce the following SQL: - * - * on `contacts`.`user_id` = `users`.`id` and `contacts`.`info_id` = `info`.`id` - * - * @param \Closure|string $first - * @param string|null $operator - * @param string|null $second - * @param string $boolean - * @return $this - * - * @throws \InvalidArgumentException - */ - public function on($first, $operator = null, $second = null, $boolean = 'and') - { - if ($first instanceof Closure) { - return $this->whereNested($first, $boolean); - } - - return $this->whereColumn($first, $operator, $second, $boolean); - } - - /** - * Add an "or on" clause to the join. - * - * @param \Closure|string $first - * @param string|null $operator - * @param string|null $second - * @return \Illuminate\Database\Query\JoinClause - */ - public function orOn($first, $operator = null, $second = null) - { - return $this->on($first, $operator, $second, 'or'); - } - - /** - * Get a new instance of the join clause builder. - * - * @return \Illuminate\Database\Query\JoinClause - */ - public function newQuery() - { - return new static($this->parentQuery, $this->type, $this->table); - } - - /** - * Create a new query instance for sub-query. - * - * @return \Illuminate\Database\Query\Builder - */ - protected function forSubQuery() - { - return $this->parentQuery->newQuery(); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/Query/JsonExpression.php b/vendor/laravel/framework/src/Illuminate/Database/Query/JsonExpression.php deleted file mode 100644 index 5171cf61..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/Query/JsonExpression.php +++ /dev/null @@ -1,45 +0,0 @@ -getJsonBindingParameter($value) - ); - } - - /** - * Translate the given value into the appropriate JSON binding parameter. - * - * @param mixed $value - * @return string - */ - protected function getJsonBindingParameter($value) - { - switch ($type = gettype($value)) { - case 'boolean': - return $value ? 'true' : 'false'; - case 'integer': - case 'double': - return $value; - case 'string': - return '?'; - case 'object': - case 'array': - return '?'; - } - - throw new InvalidArgumentException("JSON value is of illegal type: {$type}"); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/Query/Processors/MySqlProcessor.php b/vendor/laravel/framework/src/Illuminate/Database/Query/Processors/MySqlProcessor.php deleted file mode 100644 index ce918385..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/Query/Processors/MySqlProcessor.php +++ /dev/null @@ -1,19 +0,0 @@ -column_name; - }, $results); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/Query/Processors/PostgresProcessor.php b/vendor/laravel/framework/src/Illuminate/Database/Query/Processors/PostgresProcessor.php deleted file mode 100755 index 90abf246..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/Query/Processors/PostgresProcessor.php +++ /dev/null @@ -1,41 +0,0 @@ -getConnection()->selectFromWriteConnection($sql, $values)[0]; - - $sequence = $sequence ?: 'id'; - - $id = is_object($result) ? $result->{$sequence} : $result[$sequence]; - - return is_numeric($id) ? (int) $id : $id; - } - - /** - * Process the results of a column listing query. - * - * @param array $results - * @return array - */ - public function processColumnListing($results) - { - return array_map(function ($result) { - return ((object) $result)->column_name; - }, $results); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/Query/Processors/Processor.php b/vendor/laravel/framework/src/Illuminate/Database/Query/Processors/Processor.php deleted file mode 100755 index f78429fb..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/Query/Processors/Processor.php +++ /dev/null @@ -1,49 +0,0 @@ -getConnection()->insert($sql, $values); - - $id = $query->getConnection()->getPdo()->lastInsertId($sequence); - - return is_numeric($id) ? (int) $id : $id; - } - - /** - * Process the results of a column listing query. - * - * @param array $results - * @return array - */ - public function processColumnListing($results) - { - return $results; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/Query/Processors/SQLiteProcessor.php b/vendor/laravel/framework/src/Illuminate/Database/Query/Processors/SQLiteProcessor.php deleted file mode 100644 index 65da1dff..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/Query/Processors/SQLiteProcessor.php +++ /dev/null @@ -1,19 +0,0 @@ -name; - }, $results); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/Query/Processors/SqlServerProcessor.php b/vendor/laravel/framework/src/Illuminate/Database/Query/Processors/SqlServerProcessor.php deleted file mode 100755 index 65140c49..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/Query/Processors/SqlServerProcessor.php +++ /dev/null @@ -1,69 +0,0 @@ -getConnection(); - - $connection->insert($sql, $values); - - if ($connection->getConfig('odbc') === true) { - $id = $this->processInsertGetIdForOdbc($connection); - } else { - $id = $connection->getPdo()->lastInsertId(); - } - - return is_numeric($id) ? (int) $id : $id; - } - - /** - * Process an "insert get ID" query for ODBC. - * - * @param \Illuminate\Database\Connection $connection - * @return int - * @throws \Exception - */ - protected function processInsertGetIdForOdbc(Connection $connection) - { - $result = $connection->selectFromWriteConnection( - 'SELECT CAST(COALESCE(SCOPE_IDENTITY(), @@IDENTITY) AS int) AS insertid' - ); - - if (! $result) { - throw new Exception('Unable to retrieve lastInsertID for ODBC.'); - } - - $row = $result[0]; - - return is_object($row) ? $row->insertid : $row['insertid']; - } - - /** - * Process the results of a column listing query. - * - * @param array $results - * @return array - */ - public function processColumnListing($results) - { - return array_map(function ($result) { - return ((object) $result)->name; - }, $results); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/QueryException.php b/vendor/laravel/framework/src/Illuminate/Database/QueryException.php deleted file mode 100644 index 9a3687d6..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/QueryException.php +++ /dev/null @@ -1,78 +0,0 @@ -sql = $sql; - $this->bindings = $bindings; - $this->code = $previous->getCode(); - $this->message = $this->formatMessage($sql, $bindings, $previous); - - if ($previous instanceof PDOException) { - $this->errorInfo = $previous->errorInfo; - } - } - - /** - * Format the SQL error message. - * - * @param string $sql - * @param array $bindings - * @param \Exception $previous - * @return string - */ - protected function formatMessage($sql, $bindings, $previous) - { - return $previous->getMessage().' (SQL: '.Str::replaceArray('?', $bindings, $sql).')'; - } - - /** - * Get the SQL for the query. - * - * @return string - */ - public function getSql() - { - return $this->sql; - } - - /** - * Get the bindings for the query. - * - * @return array - */ - public function getBindings() - { - return $this->bindings; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/README.md b/vendor/laravel/framework/src/Illuminate/Database/README.md deleted file mode 100755 index b3014b08..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/README.md +++ /dev/null @@ -1,69 +0,0 @@ -## Illuminate Database - -The Illuminate Database component is a full database toolkit for PHP, providing an expressive query builder, ActiveRecord style ORM, and schema builder. It currently supports MySQL, Postgres, SQL Server, and SQLite. It also serves as the database layer of the Laravel PHP framework. - -### Usage Instructions - -First, create a new "Capsule" manager instance. Capsule aims to make configuring the library for usage outside of the Laravel framework as easy as possible. - -```PHP -use Illuminate\Database\Capsule\Manager as Capsule; - -$capsule = new Capsule; - -$capsule->addConnection([ - 'driver' => 'mysql', - 'host' => 'localhost', - 'database' => 'database', - 'username' => 'root', - 'password' => 'password', - 'charset' => 'utf8', - 'collation' => 'utf8_unicode_ci', - 'prefix' => '', -]); - -// Set the event dispatcher used by Eloquent models... (optional) -use Illuminate\Events\Dispatcher; -use Illuminate\Container\Container; -$capsule->setEventDispatcher(new Dispatcher(new Container)); - -// Make this Capsule instance available globally via static methods... (optional) -$capsule->setAsGlobal(); - -// Setup the Eloquent ORM... (optional; unless you've used setEventDispatcher()) -$capsule->bootEloquent(); -``` - -> `composer require "illuminate/events"` required when you need to use observers with Eloquent. - -Once the Capsule instance has been registered. You may use it like so: - -**Using The Query Builder** - -```PHP -$users = Capsule::table('users')->where('votes', '>', 100)->get(); -``` -Other core methods may be accessed directly from the Capsule in the same manner as from the DB facade: -```PHP -$results = Capsule::select('select * from users where id = ?', array(1)); -``` - -**Using The Schema Builder** - -```PHP -Capsule::schema()->create('users', function ($table) { - $table->increments('id'); - $table->string('email')->unique(); - $table->timestamps(); -}); -``` - -**Using The Eloquent ORM** - -```PHP -class User extends Illuminate\Database\Eloquent\Model {} - -$users = User::where('votes', '>', 1)->get(); -``` - -For further documentation on using the various database facilities this library provides, consult the [Laravel framework documentation](https://laravel.com/docs). diff --git a/vendor/laravel/framework/src/Illuminate/Database/SQLiteConnection.php b/vendor/laravel/framework/src/Illuminate/Database/SQLiteConnection.php deleted file mode 100755 index a5ec3218..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/SQLiteConnection.php +++ /dev/null @@ -1,66 +0,0 @@ -withTablePrefix(new QueryGrammar); - } - - /** - * Get a schema builder instance for the connection. - * - * @return \Illuminate\Database\Schema\SQLiteBuilder - */ - public function getSchemaBuilder() - { - if (is_null($this->schemaGrammar)) { - $this->useDefaultSchemaGrammar(); - } - - return new SQLiteBuilder($this); - } - - /** - * Get the default schema grammar instance. - * - * @return \Illuminate\Database\Schema\Grammars\SQLiteGrammar - */ - protected function getDefaultSchemaGrammar() - { - return $this->withTablePrefix(new SchemaGrammar); - } - - /** - * Get the default post processor instance. - * - * @return \Illuminate\Database\Query\Processors\SQLiteProcessor - */ - protected function getDefaultPostProcessor() - { - return new SQLiteProcessor; - } - - /** - * Get the Doctrine DBAL driver. - * - * @return \Doctrine\DBAL\Driver\PDOSqlite\Driver - */ - protected function getDoctrineDriver() - { - return new DoctrineDriver; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/Schema/Blueprint.php b/vendor/laravel/framework/src/Illuminate/Database/Schema/Blueprint.php deleted file mode 100755 index 05fba8f1..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/Schema/Blueprint.php +++ /dev/null @@ -1,1351 +0,0 @@ -table = $table; - - if (! is_null($callback)) { - $callback($this); - } - } - - /** - * Execute the blueprint against the database. - * - * @param \Illuminate\Database\Connection $connection - * @param \Illuminate\Database\Schema\Grammars\Grammar $grammar - * @return void - */ - public function build(Connection $connection, Grammar $grammar) - { - foreach ($this->toSql($connection, $grammar) as $statement) { - $connection->statement($statement); - } - } - - /** - * Get the raw SQL statements for the blueprint. - * - * @param \Illuminate\Database\Connection $connection - * @param \Illuminate\Database\Schema\Grammars\Grammar $grammar - * @return array - */ - public function toSql(Connection $connection, Grammar $grammar) - { - $this->addImpliedCommands($grammar); - - $statements = []; - - // Each type of command has a corresponding compiler function on the schema - // grammar which is used to build the necessary SQL statements to build - // the blueprint element, so we'll just call that compilers function. - $this->ensureCommandsAreValid($connection); - - foreach ($this->commands as $command) { - $method = 'compile'.ucfirst($command->name); - - if (method_exists($grammar, $method)) { - if (! is_null($sql = $grammar->$method($this, $command, $connection))) { - $statements = array_merge($statements, (array) $sql); - } - } - } - - return $statements; - } - - /** - * Ensure the commands on the blueprint are valid for the connection type. - * - * @param \Illuminate\Database\Connection $connection - * @return void - */ - protected function ensureCommandsAreValid(Connection $connection) - { - if ($connection instanceof SQLiteConnection && - $this->commandsNamed(['dropColumn', 'renameColumn'])->count() > 1) { - throw new BadMethodCallException( - "SQLite doesn't support multiple calls to dropColumn / renameColumn in a single modification." - ); - } - } - - /** - * Get all of the commands matching the given names. - * - * @param array $names - * @return \Illuminate\Support\Collection - */ - protected function commandsNamed(array $names) - { - return collect($this->commands)->filter(function ($command) use ($names) { - return in_array($command->name, $names); - }); - } - - /** - * Add the commands that are implied by the blueprint's state. - * - * @param \Illuminate\Database\Schema\Grammars\Grammar $grammar - * @return void - */ - protected function addImpliedCommands(Grammar $grammar) - { - if (count($this->getAddedColumns()) > 0 && ! $this->creating()) { - array_unshift($this->commands, $this->createCommand('add')); - } - - if (count($this->getChangedColumns()) > 0 && ! $this->creating()) { - array_unshift($this->commands, $this->createCommand('change')); - } - - $this->addFluentIndexes(); - - $this->addFluentCommands($grammar); - } - - /** - * Add the index commands fluently specified on columns. - * - * @return void - */ - protected function addFluentIndexes() - { - foreach ($this->columns as $column) { - foreach (['primary', 'unique', 'index', 'spatialIndex'] as $index) { - // If the index has been specified on the given column, but is simply equal - // to "true" (boolean), no name has been specified for this index so the - // index method can be called without a name and it will generate one. - if ($column->{$index} === true) { - $this->{$index}($column->name); - - continue 2; - } - - // If the index has been specified on the given column, and it has a string - // value, we'll go ahead and call the index method and pass the name for - // the index since the developer specified the explicit name for this. - elseif (isset($column->{$index})) { - $this->{$index}($column->name, $column->{$index}); - - continue 2; - } - } - } - } - - /** - * Add the fluent commands specified on any columns. - * - * @param \Illuminate\Database\Schema\Grammars\Grammar $grammar - * @return void - */ - public function addFluentCommands(Grammar $grammar) - { - foreach ($this->columns as $column) { - foreach ($grammar->getFluentCommands() as $commandName) { - $attributeName = lcfirst($commandName); - - if (! isset($column->{$attributeName})) { - continue; - } - - $value = $column->{$attributeName}; - - $this->addCommand( - $commandName, compact('value', 'column') - ); - } - } - } - - /** - * Determine if the blueprint has a create command. - * - * @return bool - */ - protected function creating() - { - return collect($this->commands)->contains(function ($command) { - return $command->name == 'create'; - }); - } - - /** - * Indicate that the table needs to be created. - * - * @return \Illuminate\Support\Fluent - */ - public function create() - { - return $this->addCommand('create'); - } - - /** - * Indicate that the table needs to be temporary. - * - * @return void - */ - public function temporary() - { - $this->temporary = true; - } - - /** - * Indicate that the table should be dropped. - * - * @return \Illuminate\Support\Fluent - */ - public function drop() - { - return $this->addCommand('drop'); - } - - /** - * Indicate that the table should be dropped if it exists. - * - * @return \Illuminate\Support\Fluent - */ - public function dropIfExists() - { - return $this->addCommand('dropIfExists'); - } - - /** - * Indicate that the given columns should be dropped. - * - * @param array|mixed $columns - * @return \Illuminate\Support\Fluent - */ - public function dropColumn($columns) - { - $columns = is_array($columns) ? $columns : func_get_args(); - - return $this->addCommand('dropColumn', compact('columns')); - } - - /** - * Indicate that the given columns should be renamed. - * - * @param string $from - * @param string $to - * @return \Illuminate\Support\Fluent - */ - public function renameColumn($from, $to) - { - return $this->addCommand('renameColumn', compact('from', 'to')); - } - - /** - * Indicate that the given primary key should be dropped. - * - * @param string|array $index - * @return \Illuminate\Support\Fluent - */ - public function dropPrimary($index = null) - { - return $this->dropIndexCommand('dropPrimary', 'primary', $index); - } - - /** - * Indicate that the given unique key should be dropped. - * - * @param string|array $index - * @return \Illuminate\Support\Fluent - */ - public function dropUnique($index) - { - return $this->dropIndexCommand('dropUnique', 'unique', $index); - } - - /** - * Indicate that the given index should be dropped. - * - * @param string|array $index - * @return \Illuminate\Support\Fluent - */ - public function dropIndex($index) - { - return $this->dropIndexCommand('dropIndex', 'index', $index); - } - - /** - * Indicate that the given spatial index should be dropped. - * - * @param string|array $index - * @return \Illuminate\Support\Fluent - */ - public function dropSpatialIndex($index) - { - return $this->dropIndexCommand('dropSpatialIndex', 'spatialIndex', $index); - } - - /** - * Indicate that the given foreign key should be dropped. - * - * @param string|array $index - * @return \Illuminate\Support\Fluent - */ - public function dropForeign($index) - { - return $this->dropIndexCommand('dropForeign', 'foreign', $index); - } - - /** - * Indicate that the given indexes should be renamed. - * - * @param string $from - * @param string $to - * @return \Illuminate\Support\Fluent - */ - public function renameIndex($from, $to) - { - return $this->addCommand('renameIndex', compact('from', 'to')); - } - - /** - * Indicate that the timestamp columns should be dropped. - * - * @return void - */ - public function dropTimestamps() - { - $this->dropColumn('created_at', 'updated_at'); - } - - /** - * Indicate that the timestamp columns should be dropped. - * - * @return void - */ - public function dropTimestampsTz() - { - $this->dropTimestamps(); - } - - /** - * Indicate that the soft delete column should be dropped. - * - * @return void - */ - public function dropSoftDeletes() - { - $this->dropColumn('deleted_at'); - } - - /** - * Indicate that the soft delete column should be dropped. - * - * @return void - */ - public function dropSoftDeletesTz() - { - $this->dropSoftDeletes(); - } - - /** - * Indicate that the remember token column should be dropped. - * - * @return void - */ - public function dropRememberToken() - { - $this->dropColumn('remember_token'); - } - - /** - * Indicate that the polymorphic columns should be dropped. - * - * @param string $name - * @param string|null $indexName - * @return void - */ - public function dropMorphs($name, $indexName = null) - { - $this->dropIndex($indexName ?: $this->createIndexName('index', ["{$name}_type", "{$name}_id"])); - - $this->dropColumn("{$name}_type", "{$name}_id"); - } - - /** - * Rename the table to a given name. - * - * @param string $to - * @return \Illuminate\Support\Fluent - */ - public function rename($to) - { - return $this->addCommand('rename', compact('to')); - } - - /** - * Specify the primary key(s) for the table. - * - * @param string|array $columns - * @param string $name - * @param string|null $algorithm - * @return \Illuminate\Support\Fluent - */ - public function primary($columns, $name = null, $algorithm = null) - { - return $this->indexCommand('primary', $columns, $name, $algorithm); - } - - /** - * Specify a unique index for the table. - * - * @param string|array $columns - * @param string $name - * @param string|null $algorithm - * @return \Illuminate\Support\Fluent - */ - public function unique($columns, $name = null, $algorithm = null) - { - return $this->indexCommand('unique', $columns, $name, $algorithm); - } - - /** - * Specify an index for the table. - * - * @param string|array $columns - * @param string $name - * @param string|null $algorithm - * @return \Illuminate\Support\Fluent - */ - public function index($columns, $name = null, $algorithm = null) - { - return $this->indexCommand('index', $columns, $name, $algorithm); - } - - /** - * Specify a spatial index for the table. - * - * @param string|array $columns - * @param string $name - * @return \Illuminate\Support\Fluent - */ - public function spatialIndex($columns, $name = null) - { - return $this->indexCommand('spatialIndex', $columns, $name); - } - - /** - * Specify a foreign key for the table. - * - * @param string|array $columns - * @param string $name - * @return \Illuminate\Support\Fluent - */ - public function foreign($columns, $name = null) - { - return $this->indexCommand('foreign', $columns, $name); - } - - /** - * Create a new auto-incrementing integer (4-byte) column on the table. - * - * @param string $column - * @return \Illuminate\Support\Fluent - */ - public function increments($column) - { - return $this->unsignedInteger($column, true); - } - - /** - * Create a new auto-incrementing tiny integer (1-byte) column on the table. - * - * @param string $column - * @return \Illuminate\Support\Fluent - */ - public function tinyIncrements($column) - { - return $this->unsignedTinyInteger($column, true); - } - - /** - * Create a new auto-incrementing small integer (2-byte) column on the table. - * - * @param string $column - * @return \Illuminate\Support\Fluent - */ - public function smallIncrements($column) - { - return $this->unsignedSmallInteger($column, true); - } - - /** - * Create a new auto-incrementing medium integer (3-byte) column on the table. - * - * @param string $column - * @return \Illuminate\Support\Fluent - */ - public function mediumIncrements($column) - { - return $this->unsignedMediumInteger($column, true); - } - - /** - * Create a new auto-incrementing big integer (8-byte) column on the table. - * - * @param string $column - * @return \Illuminate\Support\Fluent - */ - public function bigIncrements($column) - { - return $this->unsignedBigInteger($column, true); - } - - /** - * Create a new char column on the table. - * - * @param string $column - * @param int $length - * @return \Illuminate\Support\Fluent - */ - public function char($column, $length = null) - { - $length = $length ?: Builder::$defaultStringLength; - - return $this->addColumn('char', $column, compact('length')); - } - - /** - * Create a new string column on the table. - * - * @param string $column - * @param int $length - * @return \Illuminate\Support\Fluent - */ - public function string($column, $length = null) - { - $length = $length ?: Builder::$defaultStringLength; - - return $this->addColumn('string', $column, compact('length')); - } - - /** - * Create a new text column on the table. - * - * @param string $column - * @return \Illuminate\Support\Fluent - */ - public function text($column) - { - return $this->addColumn('text', $column); - } - - /** - * Create a new medium text column on the table. - * - * @param string $column - * @return \Illuminate\Support\Fluent - */ - public function mediumText($column) - { - return $this->addColumn('mediumText', $column); - } - - /** - * Create a new long text column on the table. - * - * @param string $column - * @return \Illuminate\Support\Fluent - */ - public function longText($column) - { - return $this->addColumn('longText', $column); - } - - /** - * Create a new integer (4-byte) column on the table. - * - * @param string $column - * @param bool $autoIncrement - * @param bool $unsigned - * @return \Illuminate\Support\Fluent - */ - public function integer($column, $autoIncrement = false, $unsigned = false) - { - return $this->addColumn('integer', $column, compact('autoIncrement', 'unsigned')); - } - - /** - * Create a new tiny integer (1-byte) column on the table. - * - * @param string $column - * @param bool $autoIncrement - * @param bool $unsigned - * @return \Illuminate\Support\Fluent - */ - public function tinyInteger($column, $autoIncrement = false, $unsigned = false) - { - return $this->addColumn('tinyInteger', $column, compact('autoIncrement', 'unsigned')); - } - - /** - * Create a new small integer (2-byte) column on the table. - * - * @param string $column - * @param bool $autoIncrement - * @param bool $unsigned - * @return \Illuminate\Support\Fluent - */ - public function smallInteger($column, $autoIncrement = false, $unsigned = false) - { - return $this->addColumn('smallInteger', $column, compact('autoIncrement', 'unsigned')); - } - - /** - * Create a new medium integer (3-byte) column on the table. - * - * @param string $column - * @param bool $autoIncrement - * @param bool $unsigned - * @return \Illuminate\Support\Fluent - */ - public function mediumInteger($column, $autoIncrement = false, $unsigned = false) - { - return $this->addColumn('mediumInteger', $column, compact('autoIncrement', 'unsigned')); - } - - /** - * Create a new big integer (8-byte) column on the table. - * - * @param string $column - * @param bool $autoIncrement - * @param bool $unsigned - * @return \Illuminate\Support\Fluent - */ - public function bigInteger($column, $autoIncrement = false, $unsigned = false) - { - return $this->addColumn('bigInteger', $column, compact('autoIncrement', 'unsigned')); - } - - /** - * Create a new unsigned integer (4-byte) column on the table. - * - * @param string $column - * @param bool $autoIncrement - * @return \Illuminate\Support\Fluent - */ - public function unsignedInteger($column, $autoIncrement = false) - { - return $this->integer($column, $autoIncrement, true); - } - - /** - * Create a new unsigned tiny integer (1-byte) column on the table. - * - * @param string $column - * @param bool $autoIncrement - * @return \Illuminate\Support\Fluent - */ - public function unsignedTinyInteger($column, $autoIncrement = false) - { - return $this->tinyInteger($column, $autoIncrement, true); - } - - /** - * Create a new unsigned small integer (2-byte) column on the table. - * - * @param string $column - * @param bool $autoIncrement - * @return \Illuminate\Support\Fluent - */ - public function unsignedSmallInteger($column, $autoIncrement = false) - { - return $this->smallInteger($column, $autoIncrement, true); - } - - /** - * Create a new unsigned medium integer (3-byte) column on the table. - * - * @param string $column - * @param bool $autoIncrement - * @return \Illuminate\Support\Fluent - */ - public function unsignedMediumInteger($column, $autoIncrement = false) - { - return $this->mediumInteger($column, $autoIncrement, true); - } - - /** - * Create a new unsigned big integer (8-byte) column on the table. - * - * @param string $column - * @param bool $autoIncrement - * @return \Illuminate\Support\Fluent - */ - public function unsignedBigInteger($column, $autoIncrement = false) - { - return $this->bigInteger($column, $autoIncrement, true); - } - - /** - * Create a new float column on the table. - * - * @param string $column - * @param int $total - * @param int $places - * @return \Illuminate\Support\Fluent - */ - public function float($column, $total = 8, $places = 2) - { - return $this->addColumn('float', $column, compact('total', 'places')); - } - - /** - * Create a new double column on the table. - * - * @param string $column - * @param int|null $total - * @param int|null $places - * @return \Illuminate\Support\Fluent - */ - public function double($column, $total = null, $places = null) - { - return $this->addColumn('double', $column, compact('total', 'places')); - } - - /** - * Create a new decimal column on the table. - * - * @param string $column - * @param int $total - * @param int $places - * @return \Illuminate\Support\Fluent - */ - public function decimal($column, $total = 8, $places = 2) - { - return $this->addColumn('decimal', $column, compact('total', 'places')); - } - - /** - * Create a new unsigned decimal column on the table. - * - * @param string $column - * @param int $total - * @param int $places - * @return \Illuminate\Support\Fluent - */ - public function unsignedDecimal($column, $total = 8, $places = 2) - { - return $this->addColumn('decimal', $column, [ - 'total' => $total, 'places' => $places, 'unsigned' => true, - ]); - } - - /** - * Create a new boolean column on the table. - * - * @param string $column - * @return \Illuminate\Support\Fluent - */ - public function boolean($column) - { - return $this->addColumn('boolean', $column); - } - - /** - * Create a new enum column on the table. - * - * @param string $column - * @param array $allowed - * @return \Illuminate\Support\Fluent - */ - public function enum($column, array $allowed) - { - return $this->addColumn('enum', $column, compact('allowed')); - } - - /** - * Create a new json column on the table. - * - * @param string $column - * @return \Illuminate\Support\Fluent - */ - public function json($column) - { - return $this->addColumn('json', $column); - } - - /** - * Create a new jsonb column on the table. - * - * @param string $column - * @return \Illuminate\Support\Fluent - */ - public function jsonb($column) - { - return $this->addColumn('jsonb', $column); - } - - /** - * Create a new date column on the table. - * - * @param string $column - * @return \Illuminate\Support\Fluent - */ - public function date($column) - { - return $this->addColumn('date', $column); - } - - /** - * Create a new date-time column on the table. - * - * @param string $column - * @param int $precision - * @return \Illuminate\Support\Fluent - */ - public function dateTime($column, $precision = 0) - { - return $this->addColumn('dateTime', $column, compact('precision')); - } - - /** - * Create a new date-time column (with time zone) on the table. - * - * @param string $column - * @param int $precision - * @return \Illuminate\Support\Fluent - */ - public function dateTimeTz($column, $precision = 0) - { - return $this->addColumn('dateTimeTz', $column, compact('precision')); - } - - /** - * Create a new time column on the table. - * - * @param string $column - * @param int $precision - * @return \Illuminate\Support\Fluent - */ - public function time($column, $precision = 0) - { - return $this->addColumn('time', $column, compact('precision')); - } - - /** - * Create a new time column (with time zone) on the table. - * - * @param string $column - * @param int $precision - * @return \Illuminate\Support\Fluent - */ - public function timeTz($column, $precision = 0) - { - return $this->addColumn('timeTz', $column, compact('precision')); - } - - /** - * Create a new timestamp column on the table. - * - * @param string $column - * @param int $precision - * @return \Illuminate\Support\Fluent - */ - public function timestamp($column, $precision = 0) - { - return $this->addColumn('timestamp', $column, compact('precision')); - } - - /** - * Create a new timestamp (with time zone) column on the table. - * - * @param string $column - * @param int $precision - * @return \Illuminate\Support\Fluent - */ - public function timestampTz($column, $precision = 0) - { - return $this->addColumn('timestampTz', $column, compact('precision')); - } - - /** - * Add nullable creation and update timestamps to the table. - * - * @param int $precision - * @return void - */ - public function timestamps($precision = 0) - { - $this->timestamp('created_at', $precision)->nullable(); - - $this->timestamp('updated_at', $precision)->nullable(); - } - - /** - * Add nullable creation and update timestamps to the table. - * - * Alias for self::timestamps(). - * - * @param int $precision - * @return void - */ - public function nullableTimestamps($precision = 0) - { - $this->timestamps($precision); - } - - /** - * Add creation and update timestampTz columns to the table. - * - * @param int $precision - * @return void - */ - public function timestampsTz($precision = 0) - { - $this->timestampTz('created_at', $precision)->nullable(); - - $this->timestampTz('updated_at', $precision)->nullable(); - } - - /** - * Add a "deleted at" timestamp for the table. - * - * @param string $column - * @param int $precision - * @return \Illuminate\Support\Fluent - */ - public function softDeletes($column = 'deleted_at', $precision = 0) - { - return $this->timestamp($column, $precision)->nullable(); - } - - /** - * Add a "deleted at" timestampTz for the table. - * - * @param int $precision - * @return \Illuminate\Support\Fluent - */ - public function softDeletesTz($precision = 0) - { - return $this->timestampTz('deleted_at', $precision)->nullable(); - } - - /** - * Create a new year column on the table. - * - * @param string $column - * @return \Illuminate\Support\Fluent - */ - public function year($column) - { - return $this->addColumn('year', $column); - } - - /** - * Create a new binary column on the table. - * - * @param string $column - * @return \Illuminate\Support\Fluent - */ - public function binary($column) - { - return $this->addColumn('binary', $column); - } - - /** - * Create a new uuid column on the table. - * - * @param string $column - * @return \Illuminate\Support\Fluent - */ - public function uuid($column) - { - return $this->addColumn('uuid', $column); - } - - /** - * Create a new IP address column on the table. - * - * @param string $column - * @return \Illuminate\Support\Fluent - */ - public function ipAddress($column) - { - return $this->addColumn('ipAddress', $column); - } - - /** - * Create a new MAC address column on the table. - * - * @param string $column - * @return \Illuminate\Support\Fluent - */ - public function macAddress($column) - { - return $this->addColumn('macAddress', $column); - } - - /** - * Create a new geometry column on the table. - * - * @param string $column - * @return \Illuminate\Support\Fluent - */ - public function geometry($column) - { - return $this->addColumn('geometry', $column); - } - - /** - * Create a new point column on the table. - * - * @param string $column - * @param null|int $srid - * @return \Illuminate\Support\Fluent - */ - public function point($column, $srid = null) - { - return $this->addColumn('point', $column, compact('srid')); - } - - /** - * Create a new linestring column on the table. - * - * @param string $column - * @return \Illuminate\Support\Fluent - */ - public function lineString($column) - { - return $this->addColumn('linestring', $column); - } - - /** - * Create a new polygon column on the table. - * - * @param string $column - * @return \Illuminate\Support\Fluent - */ - public function polygon($column) - { - return $this->addColumn('polygon', $column); - } - - /** - * Create a new geometrycollection column on the table. - * - * @param string $column - * @return \Illuminate\Support\Fluent - */ - public function geometryCollection($column) - { - return $this->addColumn('geometrycollection', $column); - } - - /** - * Create a new multipoint column on the table. - * - * @param string $column - * @return \Illuminate\Support\Fluent - */ - public function multiPoint($column) - { - return $this->addColumn('multipoint', $column); - } - - /** - * Create a new multilinestring column on the table. - * - * @param string $column - * @return \Illuminate\Support\Fluent - */ - public function multiLineString($column) - { - return $this->addColumn('multilinestring', $column); - } - - /** - * Create a new multipolygon column on the table. - * - * @param string $column - * @return \Illuminate\Support\Fluent - */ - public function multiPolygon($column) - { - return $this->addColumn('multipolygon', $column); - } - - /** - * Add the proper columns for a polymorphic table. - * - * @param string $name - * @param string|null $indexName - * @return void - */ - public function morphs($name, $indexName = null) - { - $this->string("{$name}_type"); - - $this->unsignedBigInteger("{$name}_id"); - - $this->index(["{$name}_type", "{$name}_id"], $indexName); - } - - /** - * Add nullable columns for a polymorphic table. - * - * @param string $name - * @param string|null $indexName - * @return void - */ - public function nullableMorphs($name, $indexName = null) - { - $this->string("{$name}_type")->nullable(); - - $this->unsignedBigInteger("{$name}_id")->nullable(); - - $this->index(["{$name}_type", "{$name}_id"], $indexName); - } - - /** - * Adds the `remember_token` column to the table. - * - * @return \Illuminate\Support\Fluent - */ - public function rememberToken() - { - return $this->string('remember_token', 100)->nullable(); - } - - /** - * Add a new index command to the blueprint. - * - * @param string $type - * @param string|array $columns - * @param string $index - * @param string|null $algorithm - * @return \Illuminate\Support\Fluent - */ - protected function indexCommand($type, $columns, $index, $algorithm = null) - { - $columns = (array) $columns; - - // If no name was specified for this index, we will create one using a basic - // convention of the table name, followed by the columns, followed by an - // index type, such as primary or index, which makes the index unique. - $index = $index ?: $this->createIndexName($type, $columns); - - return $this->addCommand( - $type, compact('index', 'columns', 'algorithm') - ); - } - - /** - * Create a new drop index command on the blueprint. - * - * @param string $command - * @param string $type - * @param string|array $index - * @return \Illuminate\Support\Fluent - */ - protected function dropIndexCommand($command, $type, $index) - { - $columns = []; - - // If the given "index" is actually an array of columns, the developer means - // to drop an index merely by specifying the columns involved without the - // conventional name, so we will build the index name from the columns. - if (is_array($index)) { - $index = $this->createIndexName($type, $columns = $index); - } - - return $this->indexCommand($command, $columns, $index); - } - - /** - * Create a default index name for the table. - * - * @param string $type - * @param array $columns - * @return string - */ - protected function createIndexName($type, array $columns) - { - $index = strtolower($this->table.'_'.implode('_', $columns).'_'.$type); - - return str_replace(['-', '.'], '_', $index); - } - - /** - * Add a new column to the blueprint. - * - * @param string $type - * @param string $name - * @param array $parameters - * @return \Illuminate\Support\Fluent - */ - public function addColumn($type, $name, array $parameters = []) - { - $this->columns[] = $column = new Fluent( - array_merge(compact('type', 'name'), $parameters) - ); - - return $column; - } - - /** - * Remove a column from the schema blueprint. - * - * @param string $name - * @return $this - */ - public function removeColumn($name) - { - $this->columns = array_values(array_filter($this->columns, function ($c) use ($name) { - return $c['attributes']['name'] != $name; - })); - - return $this; - } - - /** - * Add a new command to the blueprint. - * - * @param string $name - * @param array $parameters - * @return \Illuminate\Support\Fluent - */ - protected function addCommand($name, array $parameters = []) - { - $this->commands[] = $command = $this->createCommand($name, $parameters); - - return $command; - } - - /** - * Create a new Fluent command. - * - * @param string $name - * @param array $parameters - * @return \Illuminate\Support\Fluent - */ - protected function createCommand($name, array $parameters = []) - { - return new Fluent(array_merge(compact('name'), $parameters)); - } - - /** - * Get the table the blueprint describes. - * - * @return string - */ - public function getTable() - { - return $this->table; - } - - /** - * Get the columns on the blueprint. - * - * @return \Illuminate\Support\Fluent[] - */ - public function getColumns() - { - return $this->columns; - } - - /** - * Get the commands on the blueprint. - * - * @return \Illuminate\Support\Fluent[] - */ - public function getCommands() - { - return $this->commands; - } - - /** - * Get the columns on the blueprint that should be added. - * - * @return \Illuminate\Support\Fluent[] - */ - public function getAddedColumns() - { - return array_filter($this->columns, function ($column) { - return ! $column->change; - }); - } - - /** - * Get the columns on the blueprint that should be changed. - * - * @return \Illuminate\Support\Fluent[] - */ - public function getChangedColumns() - { - return array_filter($this->columns, function ($column) { - return (bool) $column->change; - }); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/Schema/Builder.php b/vendor/laravel/framework/src/Illuminate/Database/Schema/Builder.php deleted file mode 100755 index db9dc965..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/Schema/Builder.php +++ /dev/null @@ -1,316 +0,0 @@ -connection = $connection; - $this->grammar = $connection->getSchemaGrammar(); - } - - /** - * Set the default string length for migrations. - * - * @param int $length - * @return void - */ - public static function defaultStringLength($length) - { - static::$defaultStringLength = $length; - } - - /** - * Determine if the given table exists. - * - * @param string $table - * @return bool - */ - public function hasTable($table) - { - $table = $this->connection->getTablePrefix().$table; - - return count($this->connection->select( - $this->grammar->compileTableExists(), [$table] - )) > 0; - } - - /** - * Determine if the given table has a given column. - * - * @param string $table - * @param string $column - * @return bool - */ - public function hasColumn($table, $column) - { - return in_array( - strtolower($column), array_map('strtolower', $this->getColumnListing($table)) - ); - } - - /** - * Determine if the given table has given columns. - * - * @param string $table - * @param array $columns - * @return bool - */ - public function hasColumns($table, array $columns) - { - $tableColumns = array_map('strtolower', $this->getColumnListing($table)); - - foreach ($columns as $column) { - if (! in_array(strtolower($column), $tableColumns)) { - return false; - } - } - - return true; - } - - /** - * Get the data type for the given column name. - * - * @param string $table - * @param string $column - * @return string - */ - public function getColumnType($table, $column) - { - $table = $this->connection->getTablePrefix().$table; - - return $this->connection->getDoctrineColumn($table, $column)->getType()->getName(); - } - - /** - * Get the column listing for a given table. - * - * @param string $table - * @return array - */ - public function getColumnListing($table) - { - $results = $this->connection->select($this->grammar->compileColumnListing( - $this->connection->getTablePrefix().$table - )); - - return $this->connection->getPostProcessor()->processColumnListing($results); - } - - /** - * Modify a table on the schema. - * - * @param string $table - * @param \Closure $callback - * @return void - */ - public function table($table, Closure $callback) - { - $this->build($this->createBlueprint($table, $callback)); - } - - /** - * Create a new table on the schema. - * - * @param string $table - * @param \Closure $callback - * @return void - */ - public function create($table, Closure $callback) - { - $this->build(tap($this->createBlueprint($table), function ($blueprint) use ($callback) { - $blueprint->create(); - - $callback($blueprint); - })); - } - - /** - * Drop a table from the schema. - * - * @param string $table - * @return void - */ - public function drop($table) - { - $this->build(tap($this->createBlueprint($table), function ($blueprint) { - $blueprint->drop(); - })); - } - - /** - * Drop a table from the schema if it exists. - * - * @param string $table - * @return void - */ - public function dropIfExists($table) - { - $this->build(tap($this->createBlueprint($table), function ($blueprint) { - $blueprint->dropIfExists(); - })); - } - - /** - * Drop all tables from the database. - * - * @return void - * - * @throws \LogicException - */ - public function dropAllTables() - { - throw new LogicException('This database driver does not support dropping all tables.'); - } - - /** - * Drop all views from the database. - * - * @return void - * - * @throws \LogicException - */ - public function dropAllViews() - { - throw new LogicException('This database driver does not support dropping all views.'); - } - - /** - * Rename a table on the schema. - * - * @param string $from - * @param string $to - * @return void - */ - public function rename($from, $to) - { - $this->build(tap($this->createBlueprint($from), function ($blueprint) use ($to) { - $blueprint->rename($to); - })); - } - - /** - * Enable foreign key constraints. - * - * @return bool - */ - public function enableForeignKeyConstraints() - { - return $this->connection->statement( - $this->grammar->compileEnableForeignKeyConstraints() - ); - } - - /** - * Disable foreign key constraints. - * - * @return bool - */ - public function disableForeignKeyConstraints() - { - return $this->connection->statement( - $this->grammar->compileDisableForeignKeyConstraints() - ); - } - - /** - * Execute the blueprint to build / modify the table. - * - * @param \Illuminate\Database\Schema\Blueprint $blueprint - * @return void - */ - protected function build(Blueprint $blueprint) - { - $blueprint->build($this->connection, $this->grammar); - } - - /** - * Create a new command set with a Closure. - * - * @param string $table - * @param \Closure|null $callback - * @return \Illuminate\Database\Schema\Blueprint - */ - protected function createBlueprint($table, Closure $callback = null) - { - if (isset($this->resolver)) { - return call_user_func($this->resolver, $table, $callback); - } - - return new Blueprint($table, $callback); - } - - /** - * Get the database connection instance. - * - * @return \Illuminate\Database\Connection - */ - public function getConnection() - { - return $this->connection; - } - - /** - * Set the database connection instance. - * - * @param \Illuminate\Database\Connection $connection - * @return $this - */ - public function setConnection(Connection $connection) - { - $this->connection = $connection; - - return $this; - } - - /** - * Set the Schema Blueprint resolver callback. - * - * @param \Closure $resolver - * @return void - */ - public function blueprintResolver(Closure $resolver) - { - $this->resolver = $resolver; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/Schema/Grammars/ChangeColumn.php b/vendor/laravel/framework/src/Illuminate/Database/Schema/Grammars/ChangeColumn.php deleted file mode 100644 index 4751ecbe..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/Schema/Grammars/ChangeColumn.php +++ /dev/null @@ -1,205 +0,0 @@ -isDoctrineAvailable()) { - throw new RuntimeException(sprintf( - 'Changing columns for table "%s" requires Doctrine DBAL; install "doctrine/dbal".', - $blueprint->getTable() - )); - } - - $tableDiff = static::getChangedDiff( - $grammar, $blueprint, $schema = $connection->getDoctrineSchemaManager() - ); - - if ($tableDiff !== false) { - return (array) $schema->getDatabasePlatform()->getAlterTableSQL($tableDiff); - } - - return []; - } - - /** - * Get the Doctrine table difference for the given changes. - * - * @param \Illuminate\Database\Schema\Grammars\Grammar $grammar - * @param \Illuminate\Database\Schema\Blueprint $blueprint - * @param \Doctrine\DBAL\Schema\AbstractSchemaManager $schema - * @return \Doctrine\DBAL\Schema\TableDiff|bool - */ - protected static function getChangedDiff($grammar, Blueprint $blueprint, SchemaManager $schema) - { - $current = $schema->listTableDetails($grammar->getTablePrefix().$blueprint->getTable()); - - return (new Comparator)->diffTable( - $current, static::getTableWithColumnChanges($blueprint, $current) - ); - } - - /** - * Get a copy of the given Doctrine table after making the column changes. - * - * @param \Illuminate\Database\Schema\Blueprint $blueprint - * @param \Doctrine\DBAL\Schema\Table $table - * @return \Doctrine\DBAL\Schema\Table - */ - protected static function getTableWithColumnChanges(Blueprint $blueprint, Table $table) - { - $table = clone $table; - - foreach ($blueprint->getChangedColumns() as $fluent) { - $column = static::getDoctrineColumn($table, $fluent); - - // Here we will spin through each fluent column definition and map it to the proper - // Doctrine column definitions - which is necessary because Laravel and Doctrine - // use some different terminology for various column attributes on the tables. - foreach ($fluent->getAttributes() as $key => $value) { - if (! is_null($option = static::mapFluentOptionToDoctrine($key))) { - if (method_exists($column, $method = 'set'.ucfirst($option))) { - $column->{$method}(static::mapFluentValueToDoctrine($option, $value)); - } - } - } - } - - return $table; - } - - /** - * Get the Doctrine column instance for a column change. - * - * @param \Doctrine\DBAL\Schema\Table $table - * @param \Illuminate\Support\Fluent $fluent - * @return \Doctrine\DBAL\Schema\Column - */ - protected static function getDoctrineColumn(Table $table, Fluent $fluent) - { - return $table->changeColumn( - $fluent['name'], static::getDoctrineColumnChangeOptions($fluent) - )->getColumn($fluent['name']); - } - - /** - * Get the Doctrine column change options. - * - * @param \Illuminate\Support\Fluent $fluent - * @return array - */ - protected static function getDoctrineColumnChangeOptions(Fluent $fluent) - { - $options = ['type' => static::getDoctrineColumnType($fluent['type'])]; - - if (in_array($fluent['type'], ['text', 'mediumText', 'longText'])) { - $options['length'] = static::calculateDoctrineTextLength($fluent['type']); - } - - return $options; - } - - /** - * Get the doctrine column type. - * - * @param string $type - * @return \Doctrine\DBAL\Types\Type - */ - protected static function getDoctrineColumnType($type) - { - $type = strtolower($type); - - switch ($type) { - case 'biginteger': - $type = 'bigint'; - break; - case 'smallinteger': - $type = 'smallint'; - break; - case 'mediumtext': - case 'longtext': - $type = 'text'; - break; - case 'binary': - $type = 'blob'; - break; - } - - return Type::getType($type); - } - - /** - * Calculate the proper column length to force the Doctrine text type. - * - * @param string $type - * @return int - */ - protected static function calculateDoctrineTextLength($type) - { - switch ($type) { - case 'mediumText': - return 65535 + 1; - case 'longText': - return 16777215 + 1; - default: - return 255 + 1; - } - } - - /** - * Get the matching Doctrine option for a given Fluent attribute name. - * - * @param string $attribute - * @return string|null - */ - protected static function mapFluentOptionToDoctrine($attribute) - { - switch ($attribute) { - case 'type': - case 'name': - return; - case 'nullable': - return 'notnull'; - case 'total': - return 'precision'; - case 'places': - return 'scale'; - default: - return $attribute; - } - } - - /** - * Get the matching Doctrine value for a given Fluent attribute. - * - * @param string $option - * @param mixed $value - * @return mixed - */ - protected static function mapFluentValueToDoctrine($option, $value) - { - return $option == 'notnull' ? ! $value : $value; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/Schema/Grammars/Grammar.php b/vendor/laravel/framework/src/Illuminate/Database/Schema/Grammars/Grammar.php deleted file mode 100755 index 1ea4dabc..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/Schema/Grammars/Grammar.php +++ /dev/null @@ -1,272 +0,0 @@ -wrapTable($blueprint), - $this->wrap($command->index) - ); - - // Once we have the initial portion of the SQL statement we will add on the - // key name, table name, and referenced columns. These will complete the - // main portion of the SQL statement and this SQL will almost be done. - $sql .= sprintf('foreign key (%s) references %s (%s)', - $this->columnize($command->columns), - $this->wrapTable($command->on), - $this->columnize((array) $command->references) - ); - - // Once we have the basic foreign key creation statement constructed we can - // build out the syntax for what should happen on an update or delete of - // the affected columns, which will get something like "cascade", etc. - if (! is_null($command->onDelete)) { - $sql .= " on delete {$command->onDelete}"; - } - - if (! is_null($command->onUpdate)) { - $sql .= " on update {$command->onUpdate}"; - } - - return $sql; - } - - /** - * Compile the blueprint's column definitions. - * - * @param \Illuminate\Database\Schema\Blueprint $blueprint - * @return array - */ - protected function getColumns(Blueprint $blueprint) - { - $columns = []; - - foreach ($blueprint->getAddedColumns() as $column) { - // Each of the column types have their own compiler functions which are tasked - // with turning the column definition into its SQL format for this platform - // used by the connection. The column's modifiers are compiled and added. - $sql = $this->wrap($column).' '.$this->getType($column); - - $columns[] = $this->addModifiers($sql, $blueprint, $column); - } - - return $columns; - } - - /** - * Get the SQL for the column data type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function getType(Fluent $column) - { - return $this->{'type'.ucfirst($column->type)}($column); - } - - /** - * Add the column modifiers to the definition. - * - * @param string $sql - * @param \Illuminate\Database\Schema\Blueprint $blueprint - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function addModifiers($sql, Blueprint $blueprint, Fluent $column) - { - foreach ($this->modifiers as $modifier) { - if (method_exists($this, $method = "modify{$modifier}")) { - $sql .= $this->{$method}($blueprint, $column); - } - } - - return $sql; - } - - /** - * Get the primary key command if it exists on the blueprint. - * - * @param \Illuminate\Database\Schema\Blueprint $blueprint - * @param string $name - * @return \Illuminate\Support\Fluent|null - */ - protected function getCommandByName(Blueprint $blueprint, $name) - { - $commands = $this->getCommandsByName($blueprint, $name); - - if (count($commands) > 0) { - return reset($commands); - } - } - - /** - * Get all of the commands with a given name. - * - * @param \Illuminate\Database\Schema\Blueprint $blueprint - * @param string $name - * @return array - */ - protected function getCommandsByName(Blueprint $blueprint, $name) - { - return array_filter($blueprint->getCommands(), function ($value) use ($name) { - return $value->name == $name; - }); - } - - /** - * Add a prefix to an array of values. - * - * @param string $prefix - * @param array $values - * @return array - */ - public function prefixArray($prefix, array $values) - { - return array_map(function ($value) use ($prefix) { - return $prefix.' '.$value; - }, $values); - } - - /** - * Wrap a table in keyword identifiers. - * - * @param mixed $table - * @return string - */ - public function wrapTable($table) - { - return parent::wrapTable( - $table instanceof Blueprint ? $table->getTable() : $table - ); - } - - /** - * Wrap a value in keyword identifiers. - * - * @param \Illuminate\Database\Query\Expression|string $value - * @param bool $prefixAlias - * @return string - */ - public function wrap($value, $prefixAlias = false) - { - return parent::wrap( - $value instanceof Fluent ? $value->name : $value, $prefixAlias - ); - } - - /** - * Format a value so that it can be used in "default" clauses. - * - * @param mixed $value - * @return string - */ - protected function getDefaultValue($value) - { - if ($value instanceof Expression) { - return $value; - } - - return is_bool($value) - ? "'".(int) $value."'" - : "'".(string) $value."'"; - } - - /** - * Create an empty Doctrine DBAL TableDiff from the Blueprint. - * - * @param \Illuminate\Database\Schema\Blueprint $blueprint - * @param \Doctrine\DBAL\Schema\AbstractSchemaManager $schema - * @return \Doctrine\DBAL\Schema\TableDiff - */ - public function getDoctrineTableDiff(Blueprint $blueprint, SchemaManager $schema) - { - $table = $this->getTablePrefix().$blueprint->getTable(); - - return tap(new TableDiff($table), function ($tableDiff) use ($schema, $table) { - $tableDiff->fromTable = $schema->listTableDetails($table); - }); - } - - /** - * Get the fluent commands for the grammar. - * - * @return array - */ - public function getFluentCommands() - { - return $this->fluentCommands; - } - - /** - * Check if this Grammar supports schema changes wrapped in a transaction. - * - * @return bool - */ - public function supportsSchemaTransactions() - { - return $this->transactions; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/Schema/Grammars/MySqlGrammar.php b/vendor/laravel/framework/src/Illuminate/Database/Schema/Grammars/MySqlGrammar.php deleted file mode 100755 index 2e5ec247..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/Schema/Grammars/MySqlGrammar.php +++ /dev/null @@ -1,1018 +0,0 @@ -compileCreateTable( - $blueprint, $command, $connection - ); - - // Once we have the primary SQL, we can add the encoding option to the SQL for - // the table. Then, we can check if a storage engine has been supplied for - // the table. If so, we will add the engine declaration to the SQL query. - $sql = $this->compileCreateEncoding( - $sql, $connection, $blueprint - ); - - // Finally, we will append the engine configuration onto this SQL statement as - // the final thing we do before returning this finished SQL. Once this gets - // added the query will be ready to execute against the real connections. - return $this->compileCreateEngine( - $sql, $connection, $blueprint - ); - } - - /** - * Create the main create table clause. - * - * @param \Illuminate\Database\Schema\Blueprint $blueprint - * @param \Illuminate\Support\Fluent $command - * @param \Illuminate\Database\Connection $connection - * @return string - */ - protected function compileCreateTable($blueprint, $command, $connection) - { - return sprintf('%s table %s (%s)', - $blueprint->temporary ? 'create temporary' : 'create', - $this->wrapTable($blueprint), - implode(', ', $this->getColumns($blueprint)) - ); - } - - /** - * Append the character set specifications to a command. - * - * @param string $sql - * @param \Illuminate\Database\Connection $connection - * @param \Illuminate\Database\Schema\Blueprint $blueprint - * @return string - */ - protected function compileCreateEncoding($sql, Connection $connection, Blueprint $blueprint) - { - // First we will set the character set if one has been set on either the create - // blueprint itself or on the root configuration for the connection that the - // table is being created on. We will add these to the create table query. - if (isset($blueprint->charset)) { - $sql .= ' default character set '.$blueprint->charset; - } elseif (! is_null($charset = $connection->getConfig('charset'))) { - $sql .= ' default character set '.$charset; - } - - // Next we will add the collation to the create table statement if one has been - // added to either this create table blueprint or the configuration for this - // connection that the query is targeting. We'll add it to this SQL query. - if (isset($blueprint->collation)) { - $sql .= " collate '{$blueprint->collation}'"; - } elseif (! is_null($collation = $connection->getConfig('collation'))) { - $sql .= " collate '{$collation}'"; - } - - return $sql; - } - - /** - * Append the engine specifications to a command. - * - * @param string $sql - * @param \Illuminate\Database\Connection $connection - * @param \Illuminate\Database\Schema\Blueprint $blueprint - * @return string - */ - protected function compileCreateEngine($sql, Connection $connection, Blueprint $blueprint) - { - if (isset($blueprint->engine)) { - return $sql.' engine = '.$blueprint->engine; - } elseif (! is_null($engine = $connection->getConfig('engine'))) { - return $sql.' engine = '.$engine; - } - - return $sql; - } - - /** - * Compile an add column command. - * - * @param \Illuminate\Database\Schema\Blueprint $blueprint - * @param \Illuminate\Support\Fluent $command - * @return string - */ - public function compileAdd(Blueprint $blueprint, Fluent $command) - { - $columns = $this->prefixArray('add', $this->getColumns($blueprint)); - - return 'alter table '.$this->wrapTable($blueprint).' '.implode(', ', $columns); - } - - /** - * Compile a primary key command. - * - * @param \Illuminate\Database\Schema\Blueprint $blueprint - * @param \Illuminate\Support\Fluent $command - * @return string - */ - public function compilePrimary(Blueprint $blueprint, Fluent $command) - { - $command->name(null); - - return $this->compileKey($blueprint, $command, 'primary key'); - } - - /** - * Compile a unique key command. - * - * @param \Illuminate\Database\Schema\Blueprint $blueprint - * @param \Illuminate\Support\Fluent $command - * @return string - */ - public function compileUnique(Blueprint $blueprint, Fluent $command) - { - return $this->compileKey($blueprint, $command, 'unique'); - } - - /** - * Compile a plain index key command. - * - * @param \Illuminate\Database\Schema\Blueprint $blueprint - * @param \Illuminate\Support\Fluent $command - * @return string - */ - public function compileIndex(Blueprint $blueprint, Fluent $command) - { - return $this->compileKey($blueprint, $command, 'index'); - } - - /** - * Compile a spatial index key command. - * - * @param \Illuminate\Database\Schema\Blueprint $blueprint - * @param \Illuminate\Support\Fluent $command - * @return string - */ - public function compileSpatialIndex(Blueprint $blueprint, Fluent $command) - { - return $this->compileKey($blueprint, $command, 'spatial index'); - } - - /** - * Compile an index creation command. - * - * @param \Illuminate\Database\Schema\Blueprint $blueprint - * @param \Illuminate\Support\Fluent $command - * @param string $type - * @return string - */ - protected function compileKey(Blueprint $blueprint, Fluent $command, $type) - { - return sprintf('alter table %s add %s %s%s(%s)', - $this->wrapTable($blueprint), - $type, - $this->wrap($command->index), - $command->algorithm ? ' using '.$command->algorithm : '', - $this->columnize($command->columns) - ); - } - - /** - * Compile a drop table command. - * - * @param \Illuminate\Database\Schema\Blueprint $blueprint - * @param \Illuminate\Support\Fluent $command - * @return string - */ - public function compileDrop(Blueprint $blueprint, Fluent $command) - { - return 'drop table '.$this->wrapTable($blueprint); - } - - /** - * Compile a drop table (if exists) command. - * - * @param \Illuminate\Database\Schema\Blueprint $blueprint - * @param \Illuminate\Support\Fluent $command - * @return string - */ - public function compileDropIfExists(Blueprint $blueprint, Fluent $command) - { - return 'drop table if exists '.$this->wrapTable($blueprint); - } - - /** - * Compile a drop column command. - * - * @param \Illuminate\Database\Schema\Blueprint $blueprint - * @param \Illuminate\Support\Fluent $command - * @return string - */ - public function compileDropColumn(Blueprint $blueprint, Fluent $command) - { - $columns = $this->prefixArray('drop', $this->wrapArray($command->columns)); - - return 'alter table '.$this->wrapTable($blueprint).' '.implode(', ', $columns); - } - - /** - * Compile a drop primary key command. - * - * @param \Illuminate\Database\Schema\Blueprint $blueprint - * @param \Illuminate\Support\Fluent $command - * @return string - */ - public function compileDropPrimary(Blueprint $blueprint, Fluent $command) - { - return 'alter table '.$this->wrapTable($blueprint).' drop primary key'; - } - - /** - * Compile a drop unique key command. - * - * @param \Illuminate\Database\Schema\Blueprint $blueprint - * @param \Illuminate\Support\Fluent $command - * @return string - */ - public function compileDropUnique(Blueprint $blueprint, Fluent $command) - { - $index = $this->wrap($command->index); - - return "alter table {$this->wrapTable($blueprint)} drop index {$index}"; - } - - /** - * Compile a drop index command. - * - * @param \Illuminate\Database\Schema\Blueprint $blueprint - * @param \Illuminate\Support\Fluent $command - * @return string - */ - public function compileDropIndex(Blueprint $blueprint, Fluent $command) - { - $index = $this->wrap($command->index); - - return "alter table {$this->wrapTable($blueprint)} drop index {$index}"; - } - - /** - * Compile a drop spatial index command. - * - * @param \Illuminate\Database\Schema\Blueprint $blueprint - * @param \Illuminate\Support\Fluent $command - * @return string - */ - public function compileDropSpatialIndex(Blueprint $blueprint, Fluent $command) - { - return $this->compileDropIndex($blueprint, $command); - } - - /** - * Compile a drop foreign key command. - * - * @param \Illuminate\Database\Schema\Blueprint $blueprint - * @param \Illuminate\Support\Fluent $command - * @return string - */ - public function compileDropForeign(Blueprint $blueprint, Fluent $command) - { - $index = $this->wrap($command->index); - - return "alter table {$this->wrapTable($blueprint)} drop foreign key {$index}"; - } - - /** - * Compile a rename table command. - * - * @param \Illuminate\Database\Schema\Blueprint $blueprint - * @param \Illuminate\Support\Fluent $command - * @return string - */ - public function compileRename(Blueprint $blueprint, Fluent $command) - { - $from = $this->wrapTable($blueprint); - - return "rename table {$from} to ".$this->wrapTable($command->to); - } - - /** - * Compile a rename index command. - * - * @param \Illuminate\Database\Schema\Blueprint $blueprint - * @param \Illuminate\Support\Fluent $command - * @return string - */ - public function compileRenameIndex(Blueprint $blueprint, Fluent $command) - { - return sprintf('alter table %s rename index %s to %s', - $this->wrapTable($blueprint), - $this->wrap($command->from), - $this->wrap($command->to) - ); - } - - /** - * Compile the SQL needed to drop all tables. - * - * @param array $tables - * @return string - */ - public function compileDropAllTables($tables) - { - return 'drop table '.implode(',', $this->wrapArray($tables)); - } - - /** - * Compile the SQL needed to drop all views. - * - * @param array $views - * @return string - */ - public function compileDropAllViews($views) - { - return 'drop view '.implode(',', $this->wrapArray($views)); - } - - /** - * Compile the SQL needed to retrieve all table names. - * - * @return string - */ - public function compileGetAllTables() - { - return 'SHOW FULL TABLES WHERE table_type = \'BASE TABLE\''; - } - - /** - * Compile the SQL needed to retrieve all view names. - * - * @return string - */ - public function compileGetAllViews() - { - return 'SHOW FULL TABLES WHERE table_type = \'VIEW\''; - } - - /** - * Compile the command to enable foreign key constraints. - * - * @return string - */ - public function compileEnableForeignKeyConstraints() - { - return 'SET FOREIGN_KEY_CHECKS=1;'; - } - - /** - * Compile the command to disable foreign key constraints. - * - * @return string - */ - public function compileDisableForeignKeyConstraints() - { - return 'SET FOREIGN_KEY_CHECKS=0;'; - } - - /** - * Create the column definition for a char type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeChar(Fluent $column) - { - return "char({$column->length})"; - } - - /** - * Create the column definition for a string type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeString(Fluent $column) - { - return "varchar({$column->length})"; - } - - /** - * Create the column definition for a text type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeText(Fluent $column) - { - return 'text'; - } - - /** - * Create the column definition for a medium text type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeMediumText(Fluent $column) - { - return 'mediumtext'; - } - - /** - * Create the column definition for a long text type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeLongText(Fluent $column) - { - return 'longtext'; - } - - /** - * Create the column definition for a big integer type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeBigInteger(Fluent $column) - { - return 'bigint'; - } - - /** - * Create the column definition for an integer type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeInteger(Fluent $column) - { - return 'int'; - } - - /** - * Create the column definition for a medium integer type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeMediumInteger(Fluent $column) - { - return 'mediumint'; - } - - /** - * Create the column definition for a tiny integer type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeTinyInteger(Fluent $column) - { - return 'tinyint'; - } - - /** - * Create the column definition for a small integer type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeSmallInteger(Fluent $column) - { - return 'smallint'; - } - - /** - * Create the column definition for a float type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeFloat(Fluent $column) - { - return $this->typeDouble($column); - } - - /** - * Create the column definition for a double type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeDouble(Fluent $column) - { - if ($column->total && $column->places) { - return "double({$column->total}, {$column->places})"; - } - - return 'double'; - } - - /** - * Create the column definition for a decimal type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeDecimal(Fluent $column) - { - return "decimal({$column->total}, {$column->places})"; - } - - /** - * Create the column definition for a boolean type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeBoolean(Fluent $column) - { - return 'tinyint(1)'; - } - - /** - * Create the column definition for an enumeration type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeEnum(Fluent $column) - { - return sprintf('enum(%s)', $this->quoteString($column->allowed)); - } - - /** - * Create the column definition for a json type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeJson(Fluent $column) - { - return 'json'; - } - - /** - * Create the column definition for a jsonb type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeJsonb(Fluent $column) - { - return 'json'; - } - - /** - * Create the column definition for a date type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeDate(Fluent $column) - { - return 'date'; - } - - /** - * Create the column definition for a date-time type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeDateTime(Fluent $column) - { - return $column->precision ? "datetime($column->precision)" : 'datetime'; - } - - /** - * Create the column definition for a date-time (with time zone) type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeDateTimeTz(Fluent $column) - { - return $this->typeDateTime($column); - } - - /** - * Create the column definition for a time type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeTime(Fluent $column) - { - return $column->precision ? "time($column->precision)" : 'time'; - } - - /** - * Create the column definition for a time (with time zone) type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeTimeTz(Fluent $column) - { - return $this->typeTime($column); - } - - /** - * Create the column definition for a timestamp type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeTimestamp(Fluent $column) - { - $columnType = $column->precision ? "timestamp($column->precision)" : 'timestamp'; - - return $column->useCurrent ? "$columnType default CURRENT_TIMESTAMP" : $columnType; - } - - /** - * Create the column definition for a timestamp (with time zone) type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeTimestampTz(Fluent $column) - { - return $this->typeTimestamp($column); - } - - /** - * Create the column definition for a year type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeYear(Fluent $column) - { - return 'year'; - } - - /** - * Create the column definition for a binary type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeBinary(Fluent $column) - { - return 'blob'; - } - - /** - * Create the column definition for a uuid type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeUuid(Fluent $column) - { - return 'char(36)'; - } - - /** - * Create the column definition for an IP address type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeIpAddress(Fluent $column) - { - return 'varchar(45)'; - } - - /** - * Create the column definition for a MAC address type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeMacAddress(Fluent $column) - { - return 'varchar(17)'; - } - - /** - * Create the column definition for a spatial Geometry type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - public function typeGeometry(Fluent $column) - { - return 'geometry'; - } - - /** - * Create the column definition for a spatial Point type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - public function typePoint(Fluent $column) - { - return 'point'; - } - - /** - * Create the column definition for a spatial LineString type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - public function typeLineString(Fluent $column) - { - return 'linestring'; - } - - /** - * Create the column definition for a spatial Polygon type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - public function typePolygon(Fluent $column) - { - return 'polygon'; - } - - /** - * Create the column definition for a spatial GeometryCollection type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - public function typeGeometryCollection(Fluent $column) - { - return 'geometrycollection'; - } - - /** - * Create the column definition for a spatial MultiPoint type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - public function typeMultiPoint(Fluent $column) - { - return 'multipoint'; - } - - /** - * Create the column definition for a spatial MultiLineString type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - public function typeMultiLineString(Fluent $column) - { - return 'multilinestring'; - } - - /** - * Create the column definition for a spatial MultiPolygon type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - public function typeMultiPolygon(Fluent $column) - { - return 'multipolygon'; - } - - /** - * Get the SQL for a generated virtual column modifier. - * - * @param \Illuminate\Database\Schema\Blueprint $blueprint - * @param \Illuminate\Support\Fluent $column - * @return string|null - */ - protected function modifyVirtualAs(Blueprint $blueprint, Fluent $column) - { - if (! is_null($column->virtualAs)) { - return " as ({$column->virtualAs})"; - } - } - - /** - * Get the SQL for a generated stored column modifier. - * - * @param \Illuminate\Database\Schema\Blueprint $blueprint - * @param \Illuminate\Support\Fluent $column - * @return string|null - */ - protected function modifyStoredAs(Blueprint $blueprint, Fluent $column) - { - if (! is_null($column->storedAs)) { - return " as ({$column->storedAs}) stored"; - } - } - - /** - * Get the SQL for an unsigned column modifier. - * - * @param \Illuminate\Database\Schema\Blueprint $blueprint - * @param \Illuminate\Support\Fluent $column - * @return string|null - */ - protected function modifyUnsigned(Blueprint $blueprint, Fluent $column) - { - if ($column->unsigned) { - return ' unsigned'; - } - } - - /** - * Get the SQL for a character set column modifier. - * - * @param \Illuminate\Database\Schema\Blueprint $blueprint - * @param \Illuminate\Support\Fluent $column - * @return string|null - */ - protected function modifyCharset(Blueprint $blueprint, Fluent $column) - { - if (! is_null($column->charset)) { - return ' character set '.$column->charset; - } - } - - /** - * Get the SQL for a collation column modifier. - * - * @param \Illuminate\Database\Schema\Blueprint $blueprint - * @param \Illuminate\Support\Fluent $column - * @return string|null - */ - protected function modifyCollate(Blueprint $blueprint, Fluent $column) - { - if (! is_null($column->collation)) { - return " collate '{$column->collation}'"; - } - } - - /** - * Get the SQL for a nullable column modifier. - * - * @param \Illuminate\Database\Schema\Blueprint $blueprint - * @param \Illuminate\Support\Fluent $column - * @return string|null - */ - protected function modifyNullable(Blueprint $blueprint, Fluent $column) - { - if (is_null($column->virtualAs) && is_null($column->storedAs)) { - return $column->nullable ? ' null' : ' not null'; - } - } - - /** - * Get the SQL for a default column modifier. - * - * @param \Illuminate\Database\Schema\Blueprint $blueprint - * @param \Illuminate\Support\Fluent $column - * @return string|null - */ - protected function modifyDefault(Blueprint $blueprint, Fluent $column) - { - if (! is_null($column->default)) { - return ' default '.$this->getDefaultValue($column->default); - } - } - - /** - * Get the SQL for an auto-increment column modifier. - * - * @param \Illuminate\Database\Schema\Blueprint $blueprint - * @param \Illuminate\Support\Fluent $column - * @return string|null - */ - protected function modifyIncrement(Blueprint $blueprint, Fluent $column) - { - if (in_array($column->type, $this->serials) && $column->autoIncrement) { - return ' auto_increment primary key'; - } - } - - /** - * Get the SQL for a "first" column modifier. - * - * @param \Illuminate\Database\Schema\Blueprint $blueprint - * @param \Illuminate\Support\Fluent $column - * @return string|null - */ - protected function modifyFirst(Blueprint $blueprint, Fluent $column) - { - if (! is_null($column->first)) { - return ' first'; - } - } - - /** - * Get the SQL for an "after" column modifier. - * - * @param \Illuminate\Database\Schema\Blueprint $blueprint - * @param \Illuminate\Support\Fluent $column - * @return string|null - */ - protected function modifyAfter(Blueprint $blueprint, Fluent $column) - { - if (! is_null($column->after)) { - return ' after '.$this->wrap($column->after); - } - } - - /** - * Get the SQL for a "comment" column modifier. - * - * @param \Illuminate\Database\Schema\Blueprint $blueprint - * @param \Illuminate\Support\Fluent $column - * @return string|null - */ - protected function modifyComment(Blueprint $blueprint, Fluent $column) - { - if (! is_null($column->comment)) { - return " comment '".addslashes($column->comment)."'"; - } - } - - /** - * Get the SQL for a SRID column modifier. - * - * @param \Illuminate\Database\Schema\Blueprint $blueprint - * @param \Illuminate\Support\Fluent $column - * @return string|null - */ - protected function modifySrid(Blueprint $blueprint, Fluent $column) - { - if (! is_null($column->srid) && is_int($column->srid) && $column->srid > 0) { - return ' srid '.$column->srid; - } - } - - /** - * Wrap a single string in keyword identifiers. - * - * @param string $value - * @return string - */ - protected function wrapValue($value) - { - if ($value !== '*') { - return '`'.str_replace('`', '``', $value).'`'; - } - - return $value; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/Schema/Grammars/PostgresGrammar.php b/vendor/laravel/framework/src/Illuminate/Database/Schema/Grammars/PostgresGrammar.php deleted file mode 100755 index c69ee0f8..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/Schema/Grammars/PostgresGrammar.php +++ /dev/null @@ -1,862 +0,0 @@ -temporary ? 'create temporary' : 'create', - $this->wrapTable($blueprint), - implode(', ', $this->getColumns($blueprint)) - ); - } - - /** - * Compile a column addition command. - * - * @param \Illuminate\Database\Schema\Blueprint $blueprint - * @param \Illuminate\Support\Fluent $command - * @return string - */ - public function compileAdd(Blueprint $blueprint, Fluent $command) - { - return sprintf('alter table %s %s', - $this->wrapTable($blueprint), - implode(', ', $this->prefixArray('add column', $this->getColumns($blueprint))) - ); - } - - /** - * Compile a primary key command. - * - * @param \Illuminate\Database\Schema\Blueprint $blueprint - * @param \Illuminate\Support\Fluent $command - * @return string - */ - public function compilePrimary(Blueprint $blueprint, Fluent $command) - { - $columns = $this->columnize($command->columns); - - return 'alter table '.$this->wrapTable($blueprint)." add primary key ({$columns})"; - } - - /** - * Compile a unique key command. - * - * @param \Illuminate\Database\Schema\Blueprint $blueprint - * @param \Illuminate\Support\Fluent $command - * @return string - */ - public function compileUnique(Blueprint $blueprint, Fluent $command) - { - return sprintf('alter table %s add constraint %s unique (%s)', - $this->wrapTable($blueprint), - $this->wrap($command->index), - $this->columnize($command->columns) - ); - } - - /** - * Compile a plain index key command. - * - * @param \Illuminate\Database\Schema\Blueprint $blueprint - * @param \Illuminate\Support\Fluent $command - * @return string - */ - public function compileIndex(Blueprint $blueprint, Fluent $command) - { - return sprintf('create index %s on %s%s (%s)', - $this->wrap($command->index), - $this->wrapTable($blueprint), - $command->algorithm ? ' using '.$command->algorithm : '', - $this->columnize($command->columns) - ); - } - - /** - * Compile a spatial index key command. - * - * @param \Illuminate\Database\Schema\Blueprint $blueprint - * @param \Illuminate\Support\Fluent $command - * @return string - */ - public function compileSpatialIndex(Blueprint $blueprint, Fluent $command) - { - $command->algorithm = 'gist'; - - return $this->compileIndex($blueprint, $command); - } - - /** - * Compile a foreign key command. - * - * @param \Illuminate\Database\Schema\Blueprint $blueprint - * @param \Illuminate\Support\Fluent $command - * @return string - */ - public function compileForeign(Blueprint $blueprint, Fluent $command) - { - $sql = parent::compileForeign($blueprint, $command); - - if (! is_null($command->deferrable)) { - $sql .= $command->deferrable ? ' deferrable' : ' not deferrable'; - } - - if ($command->deferrable && ! is_null($command->initiallyImmediate)) { - $sql .= $command->initiallyImmediate ? ' initially immediate' : ' initially deferred'; - } - - return $sql; - } - - /** - * Compile a drop table command. - * - * @param \Illuminate\Database\Schema\Blueprint $blueprint - * @param \Illuminate\Support\Fluent $command - * @return string - */ - public function compileDrop(Blueprint $blueprint, Fluent $command) - { - return 'drop table '.$this->wrapTable($blueprint); - } - - /** - * Compile a drop table (if exists) command. - * - * @param \Illuminate\Database\Schema\Blueprint $blueprint - * @param \Illuminate\Support\Fluent $command - * @return string - */ - public function compileDropIfExists(Blueprint $blueprint, Fluent $command) - { - return 'drop table if exists '.$this->wrapTable($blueprint); - } - - /** - * Compile the SQL needed to drop all tables. - * - * @param string $tables - * @return string - */ - public function compileDropAllTables($tables) - { - return 'drop table "'.implode('","', $tables).'" cascade'; - } - - /** - * Compile the SQL needed to drop all views. - * - * @param string $views - * @return string - */ - public function compileDropAllViews($views) - { - return 'drop view "'.implode('","', $views).'" cascade'; - } - - /** - * Compile the SQL needed to retrieve all table names. - * - * @param string $schema - * @return string - */ - public function compileGetAllTables($schema) - { - return "select tablename from pg_catalog.pg_tables where schemaname = '{$schema}'"; - } - - /** - * Compile the SQL needed to retrieve all view names. - * - * @param string $schema - * @return string - */ - public function compileGetAllViews($schema) - { - return "select viewname from pg_catalog.pg_views where schemaname = '{$schema}'"; - } - - /** - * Compile a drop column command. - * - * @param \Illuminate\Database\Schema\Blueprint $blueprint - * @param \Illuminate\Support\Fluent $command - * @return string - */ - public function compileDropColumn(Blueprint $blueprint, Fluent $command) - { - $columns = $this->prefixArray('drop column', $this->wrapArray($command->columns)); - - return 'alter table '.$this->wrapTable($blueprint).' '.implode(', ', $columns); - } - - /** - * Compile a drop primary key command. - * - * @param \Illuminate\Database\Schema\Blueprint $blueprint - * @param \Illuminate\Support\Fluent $command - * @return string - */ - public function compileDropPrimary(Blueprint $blueprint, Fluent $command) - { - $index = $this->wrap("{$blueprint->getTable()}_pkey"); - - return 'alter table '.$this->wrapTable($blueprint)." drop constraint {$index}"; - } - - /** - * Compile a drop unique key command. - * - * @param \Illuminate\Database\Schema\Blueprint $blueprint - * @param \Illuminate\Support\Fluent $command - * @return string - */ - public function compileDropUnique(Blueprint $blueprint, Fluent $command) - { - $index = $this->wrap($command->index); - - return "alter table {$this->wrapTable($blueprint)} drop constraint {$index}"; - } - - /** - * Compile a drop index command. - * - * @param \Illuminate\Database\Schema\Blueprint $blueprint - * @param \Illuminate\Support\Fluent $command - * @return string - */ - public function compileDropIndex(Blueprint $blueprint, Fluent $command) - { - return "drop index {$this->wrap($command->index)}"; - } - - /** - * Compile a drop spatial index command. - * - * @param \Illuminate\Database\Schema\Blueprint $blueprint - * @param \Illuminate\Support\Fluent $command - * @return string - */ - public function compileDropSpatialIndex(Blueprint $blueprint, Fluent $command) - { - return $this->compileDropIndex($blueprint, $command); - } - - /** - * Compile a drop foreign key command. - * - * @param \Illuminate\Database\Schema\Blueprint $blueprint - * @param \Illuminate\Support\Fluent $command - * @return string - */ - public function compileDropForeign(Blueprint $blueprint, Fluent $command) - { - $index = $this->wrap($command->index); - - return "alter table {$this->wrapTable($blueprint)} drop constraint {$index}"; - } - - /** - * Compile a rename table command. - * - * @param \Illuminate\Database\Schema\Blueprint $blueprint - * @param \Illuminate\Support\Fluent $command - * @return string - */ - public function compileRename(Blueprint $blueprint, Fluent $command) - { - $from = $this->wrapTable($blueprint); - - return "alter table {$from} rename to ".$this->wrapTable($command->to); - } - - /** - * Compile a rename index command. - * - * @param \Illuminate\Database\Schema\Blueprint $blueprint - * @param \Illuminate\Support\Fluent $command - * @return string - */ - public function compileRenameIndex(Blueprint $blueprint, Fluent $command) - { - return sprintf('alter index %s rename to %s', - $this->wrap($command->from), - $this->wrap($command->to) - ); - } - - /** - * Compile the command to enable foreign key constraints. - * - * @return string - */ - public function compileEnableForeignKeyConstraints() - { - return 'SET CONSTRAINTS ALL IMMEDIATE;'; - } - - /** - * Compile the command to disable foreign key constraints. - * - * @return string - */ - public function compileDisableForeignKeyConstraints() - { - return 'SET CONSTRAINTS ALL DEFERRED;'; - } - - /** - * Compile a comment command. - * - * @param \Illuminate\Database\Schema\Blueprint $blueprint - * @param \Illuminate\Support\Fluent $command - * @return string - */ - public function compileComment(Blueprint $blueprint, Fluent $command) - { - return sprintf('comment on column %s.%s is %s', - $this->wrapTable($blueprint), - $this->wrap($command->column->name), - "'".str_replace("'", "''", $command->value)."'" - ); - } - - /** - * Create the column definition for a char type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeChar(Fluent $column) - { - return "char({$column->length})"; - } - - /** - * Create the column definition for a string type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeString(Fluent $column) - { - return "varchar({$column->length})"; - } - - /** - * Create the column definition for a text type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeText(Fluent $column) - { - return 'text'; - } - - /** - * Create the column definition for a medium text type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeMediumText(Fluent $column) - { - return 'text'; - } - - /** - * Create the column definition for a long text type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeLongText(Fluent $column) - { - return 'text'; - } - - /** - * Create the column definition for an integer type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeInteger(Fluent $column) - { - return $column->autoIncrement ? 'serial' : 'integer'; - } - - /** - * Create the column definition for a big integer type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeBigInteger(Fluent $column) - { - return $column->autoIncrement ? 'bigserial' : 'bigint'; - } - - /** - * Create the column definition for a medium integer type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeMediumInteger(Fluent $column) - { - return $column->autoIncrement ? 'serial' : 'integer'; - } - - /** - * Create the column definition for a tiny integer type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeTinyInteger(Fluent $column) - { - return $column->autoIncrement ? 'smallserial' : 'smallint'; - } - - /** - * Create the column definition for a small integer type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeSmallInteger(Fluent $column) - { - return $column->autoIncrement ? 'smallserial' : 'smallint'; - } - - /** - * Create the column definition for a float type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeFloat(Fluent $column) - { - return $this->typeDouble($column); - } - - /** - * Create the column definition for a double type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeDouble(Fluent $column) - { - return 'double precision'; - } - - /** - * Create the column definition for a real type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeReal(Fluent $column) - { - return 'real'; - } - - /** - * Create the column definition for a decimal type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeDecimal(Fluent $column) - { - return "decimal({$column->total}, {$column->places})"; - } - - /** - * Create the column definition for a boolean type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeBoolean(Fluent $column) - { - return 'boolean'; - } - - /** - * Create the column definition for an enumeration type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeEnum(Fluent $column) - { - return sprintf( - 'varchar(255) check ("%s" in (%s))', - $column->name, - $this->quoteString($column->allowed) - ); - } - - /** - * Create the column definition for a json type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeJson(Fluent $column) - { - return 'json'; - } - - /** - * Create the column definition for a jsonb type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeJsonb(Fluent $column) - { - return 'jsonb'; - } - - /** - * Create the column definition for a date type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeDate(Fluent $column) - { - return 'date'; - } - - /** - * Create the column definition for a date-time type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeDateTime(Fluent $column) - { - return "timestamp($column->precision) without time zone"; - } - - /** - * Create the column definition for a date-time (with time zone) type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeDateTimeTz(Fluent $column) - { - return "timestamp($column->precision) with time zone"; - } - - /** - * Create the column definition for a time type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeTime(Fluent $column) - { - return "time($column->precision) without time zone"; - } - - /** - * Create the column definition for a time (with time zone) type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeTimeTz(Fluent $column) - { - return "time($column->precision) with time zone"; - } - - /** - * Create the column definition for a timestamp type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeTimestamp(Fluent $column) - { - $columnType = "timestamp($column->precision) without time zone"; - - return $column->useCurrent ? "$columnType default CURRENT_TIMESTAMP" : $columnType; - } - - /** - * Create the column definition for a timestamp (with time zone) type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeTimestampTz(Fluent $column) - { - $columnType = "timestamp($column->precision) with time zone"; - - return $column->useCurrent ? "$columnType default CURRENT_TIMESTAMP" : $columnType; - } - - /** - * Create the column definition for a year type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeYear(Fluent $column) - { - return $this->typeInteger($column); - } - - /** - * Create the column definition for a binary type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeBinary(Fluent $column) - { - return 'bytea'; - } - - /** - * Create the column definition for a uuid type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeUuid(Fluent $column) - { - return 'uuid'; - } - - /** - * Create the column definition for an IP address type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeIpAddress(Fluent $column) - { - return 'inet'; - } - - /** - * Create the column definition for a MAC address type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeMacAddress(Fluent $column) - { - return 'macaddr'; - } - - /** - * Create the column definition for a spatial Geometry type. - * - * @param \Illuminate\Support\Fluent $column - * @throws \RuntimeException - */ - protected function typeGeometry(Fluent $column) - { - throw new RuntimeException('The database driver in use does not support the Geometry spatial column type.'); - } - - /** - * Create the column definition for a spatial Point type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typePoint(Fluent $column) - { - return $this->formatPostGisType('point'); - } - - /** - * Create the column definition for a spatial LineString type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeLineString(Fluent $column) - { - return $this->formatPostGisType('linestring'); - } - - /** - * Create the column definition for a spatial Polygon type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typePolygon(Fluent $column) - { - return $this->formatPostGisType('polygon'); - } - - /** - * Create the column definition for a spatial GeometryCollection type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeGeometryCollection(Fluent $column) - { - return $this->formatPostGisType('geometrycollection'); - } - - /** - * Create the column definition for a spatial MultiPoint type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeMultiPoint(Fluent $column) - { - return $this->formatPostGisType('multipoint'); - } - - /** - * Create the column definition for a spatial MultiLineString type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - public function typeMultiLineString(Fluent $column) - { - return $this->formatPostGisType('multilinestring'); - } - - /** - * Create the column definition for a spatial MultiPolygon type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeMultiPolygon(Fluent $column) - { - return $this->formatPostGisType('multipolygon'); - } - - /** - * Format the column definition for a PostGIS spatial type. - * - * @param string $type - * @return string - */ - private function formatPostGisType(string $type) - { - return "geography($type, 4326)"; - } - - /** - * Get the SQL for a nullable column modifier. - * - * @param \Illuminate\Database\Schema\Blueprint $blueprint - * @param \Illuminate\Support\Fluent $column - * @return string|null - */ - protected function modifyNullable(Blueprint $blueprint, Fluent $column) - { - return $column->nullable ? ' null' : ' not null'; - } - - /** - * Get the SQL for a default column modifier. - * - * @param \Illuminate\Database\Schema\Blueprint $blueprint - * @param \Illuminate\Support\Fluent $column - * @return string|null - */ - protected function modifyDefault(Blueprint $blueprint, Fluent $column) - { - if (! is_null($column->default)) { - return ' default '.$this->getDefaultValue($column->default); - } - } - - /** - * Get the SQL for an auto-increment column modifier. - * - * @param \Illuminate\Database\Schema\Blueprint $blueprint - * @param \Illuminate\Support\Fluent $column - * @return string|null - */ - protected function modifyIncrement(Blueprint $blueprint, Fluent $column) - { - if (in_array($column->type, $this->serials) && $column->autoIncrement) { - return ' primary key'; - } - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/Schema/Grammars/RenameColumn.php b/vendor/laravel/framework/src/Illuminate/Database/Schema/Grammars/RenameColumn.php deleted file mode 100644 index a07c4feb..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/Schema/Grammars/RenameColumn.php +++ /dev/null @@ -1,69 +0,0 @@ -getDoctrineColumn( - $grammar->getTablePrefix().$blueprint->getTable(), $command->from - ); - - $schema = $connection->getDoctrineSchemaManager(); - - return (array) $schema->getDatabasePlatform()->getAlterTableSQL(static::getRenamedDiff( - $grammar, $blueprint, $command, $column, $schema - )); - } - - /** - * Get a new column instance with the new column name. - * - * @param \Illuminate\Database\Schema\Grammars\Grammar $grammar - * @param \Illuminate\Database\Schema\Blueprint $blueprint - * @param \Illuminate\Support\Fluent $command - * @param \Doctrine\DBAL\Schema\Column $column - * @param \Doctrine\DBAL\Schema\AbstractSchemaManager $schema - * @return \Doctrine\DBAL\Schema\TableDiff - */ - protected static function getRenamedDiff(Grammar $grammar, Blueprint $blueprint, Fluent $command, Column $column, SchemaManager $schema) - { - return static::setRenamedColumns( - $grammar->getDoctrineTableDiff($blueprint, $schema), $command, $column - ); - } - - /** - * Set the renamed columns on the table diff. - * - * @param \Doctrine\DBAL\Schema\TableDiff $tableDiff - * @param \Illuminate\Support\Fluent $command - * @param \Doctrine\DBAL\Schema\Column $column - * @return \Doctrine\DBAL\Schema\TableDiff - */ - protected static function setRenamedColumns(TableDiff $tableDiff, Fluent $command, Column $column) - { - $tableDiff->renamedColumns = [ - $command->from => new Column($command->to, $column->getType(), $column->toArray()), - ]; - - return $tableDiff; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/Schema/Grammars/SQLiteGrammar.php b/vendor/laravel/framework/src/Illuminate/Database/Schema/Grammars/SQLiteGrammar.php deleted file mode 100755 index a83869b2..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/Schema/Grammars/SQLiteGrammar.php +++ /dev/null @@ -1,847 +0,0 @@ -wrap(str_replace('.', '__', $table)).')'; - } - - /** - * Compile a create table command. - * - * @param \Illuminate\Database\Schema\Blueprint $blueprint - * @param \Illuminate\Support\Fluent $command - * @return string - */ - public function compileCreate(Blueprint $blueprint, Fluent $command) - { - return sprintf('%s table %s (%s%s%s)', - $blueprint->temporary ? 'create temporary' : 'create', - $this->wrapTable($blueprint), - implode(', ', $this->getColumns($blueprint)), - (string) $this->addForeignKeys($blueprint), - (string) $this->addPrimaryKeys($blueprint) - ); - } - - /** - * Get the foreign key syntax for a table creation statement. - * - * @param \Illuminate\Database\Schema\Blueprint $blueprint - * @return string|null - */ - protected function addForeignKeys(Blueprint $blueprint) - { - $foreigns = $this->getCommandsByName($blueprint, 'foreign'); - - return collect($foreigns)->reduce(function ($sql, $foreign) { - // Once we have all the foreign key commands for the table creation statement - // we'll loop through each of them and add them to the create table SQL we - // are building, since SQLite needs foreign keys on the tables creation. - $sql .= $this->getForeignKey($foreign); - - if (! is_null($foreign->onDelete)) { - $sql .= " on delete {$foreign->onDelete}"; - } - - // If this foreign key specifies the action to be taken on update we will add - // that to the statement here. We'll append it to this SQL and then return - // the SQL so we can keep adding any other foreign constraints onto this. - if (! is_null($foreign->onUpdate)) { - $sql .= " on update {$foreign->onUpdate}"; - } - - return $sql; - }, ''); - } - - /** - * Get the SQL for the foreign key. - * - * @param \Illuminate\Support\Fluent $foreign - * @return string - */ - protected function getForeignKey($foreign) - { - // We need to columnize the columns that the foreign key is being defined for - // so that it is a properly formatted list. Once we have done this, we can - // return the foreign key SQL declaration to the calling method for use. - return sprintf(', foreign key(%s) references %s(%s)', - $this->columnize($foreign->columns), - $this->wrapTable($foreign->on), - $this->columnize((array) $foreign->references) - ); - } - - /** - * Get the primary key syntax for a table creation statement. - * - * @param \Illuminate\Database\Schema\Blueprint $blueprint - * @return string|null - */ - protected function addPrimaryKeys(Blueprint $blueprint) - { - if (! is_null($primary = $this->getCommandByName($blueprint, 'primary'))) { - return ", primary key ({$this->columnize($primary->columns)})"; - } - } - - /** - * Compile alter table commands for adding columns. - * - * @param \Illuminate\Database\Schema\Blueprint $blueprint - * @param \Illuminate\Support\Fluent $command - * @return array - */ - public function compileAdd(Blueprint $blueprint, Fluent $command) - { - $columns = $this->prefixArray('add column', $this->getColumns($blueprint)); - - return collect($columns)->map(function ($column) use ($blueprint) { - return 'alter table '.$this->wrapTable($blueprint).' '.$column; - })->all(); - } - - /** - * Compile a unique key command. - * - * @param \Illuminate\Database\Schema\Blueprint $blueprint - * @param \Illuminate\Support\Fluent $command - * @return string - */ - public function compileUnique(Blueprint $blueprint, Fluent $command) - { - return sprintf('create unique index %s on %s (%s)', - $this->wrap($command->index), - $this->wrapTable($blueprint), - $this->columnize($command->columns) - ); - } - - /** - * Compile a plain index key command. - * - * @param \Illuminate\Database\Schema\Blueprint $blueprint - * @param \Illuminate\Support\Fluent $command - * @return string - */ - public function compileIndex(Blueprint $blueprint, Fluent $command) - { - return sprintf('create index %s on %s (%s)', - $this->wrap($command->index), - $this->wrapTable($blueprint), - $this->columnize($command->columns) - ); - } - - /** - * Compile a spatial index key command. - * - * @param \Illuminate\Database\Schema\Blueprint $blueprint - * @param \Illuminate\Support\Fluent $command - * @throws \RuntimeException - */ - public function compileSpatialIndex(Blueprint $blueprint, Fluent $command) - { - throw new RuntimeException('The database driver in use does not support spatial indexes.'); - } - - /** - * Compile a foreign key command. - * - * @param \Illuminate\Database\Schema\Blueprint $blueprint - * @param \Illuminate\Support\Fluent $command - * @return string - */ - public function compileForeign(Blueprint $blueprint, Fluent $command) - { - // Handled on table creation... - } - - /** - * Compile a drop table command. - * - * @param \Illuminate\Database\Schema\Blueprint $blueprint - * @param \Illuminate\Support\Fluent $command - * @return string - */ - public function compileDrop(Blueprint $blueprint, Fluent $command) - { - return 'drop table '.$this->wrapTable($blueprint); - } - - /** - * Compile a drop table (if exists) command. - * - * @param \Illuminate\Database\Schema\Blueprint $blueprint - * @param \Illuminate\Support\Fluent $command - * @return string - */ - public function compileDropIfExists(Blueprint $blueprint, Fluent $command) - { - return 'drop table if exists '.$this->wrapTable($blueprint); - } - - /** - * Compile the SQL needed to drop all tables. - * - * @return string - */ - public function compileDropAllTables() - { - return "delete from sqlite_master where type in ('table', 'index', 'trigger')"; - } - - /** - * Compile the SQL needed to drop all views. - * - * @return string - */ - public function compileDropAllViews() - { - return "delete from sqlite_master where type in ('view')"; - } - - /** - * Compile a drop column command. - * - * @param \Illuminate\Database\Schema\Blueprint $blueprint - * @param \Illuminate\Support\Fluent $command - * @param \Illuminate\Database\Connection $connection - * @return array - */ - public function compileDropColumn(Blueprint $blueprint, Fluent $command, Connection $connection) - { - $tableDiff = $this->getDoctrineTableDiff( - $blueprint, $schema = $connection->getDoctrineSchemaManager() - ); - - foreach ($command->columns as $name) { - $tableDiff->removedColumns[$name] = $connection->getDoctrineColumn( - $this->getTablePrefix().$blueprint->getTable(), $name - ); - } - - return (array) $schema->getDatabasePlatform()->getAlterTableSQL($tableDiff); - } - - /** - * Compile a drop unique key command. - * - * @param \Illuminate\Database\Schema\Blueprint $blueprint - * @param \Illuminate\Support\Fluent $command - * @return string - */ - public function compileDropUnique(Blueprint $blueprint, Fluent $command) - { - $index = $this->wrap($command->index); - - return "drop index {$index}"; - } - - /** - * Compile a drop index command. - * - * @param \Illuminate\Database\Schema\Blueprint $blueprint - * @param \Illuminate\Support\Fluent $command - * @return string - */ - public function compileDropIndex(Blueprint $blueprint, Fluent $command) - { - $index = $this->wrap($command->index); - - return "drop index {$index}"; - } - - /** - * Compile a drop spatial index command. - * - * @param \Illuminate\Database\Schema\Blueprint $blueprint - * @param \Illuminate\Support\Fluent $command - * @throws \RuntimeException - */ - public function compileDropSpatialIndex(Blueprint $blueprint, Fluent $command) - { - throw new RuntimeException('The database driver in use does not support spatial indexes.'); - } - - /** - * Compile a rename table command. - * - * @param \Illuminate\Database\Schema\Blueprint $blueprint - * @param \Illuminate\Support\Fluent $command - * @return string - */ - public function compileRename(Blueprint $blueprint, Fluent $command) - { - $from = $this->wrapTable($blueprint); - - return "alter table {$from} rename to ".$this->wrapTable($command->to); - } - - /** - * Compile a rename index command. - * - * @param \Illuminate\Database\Schema\Blueprint $blueprint - * @param \Illuminate\Support\Fluent $command - * @param \Illuminate\Database\Connection $connection - * @return array - */ - public function compileRenameIndex(Blueprint $blueprint, Fluent $command, Connection $connection) - { - $schemaManager = $connection->getDoctrineSchemaManager(); - - $indexes = $schemaManager->listTableIndexes($this->getTablePrefix().$blueprint->getTable()); - - $index = array_get($indexes, $command->from); - - if (! $index) { - throw new RuntimeException("Index [{$command->from}] does not exist."); - } - - $newIndex = new Index( - $command->to, $index->getColumns(), $index->isUnique(), - $index->isPrimary(), $index->getFlags(), $index->getOptions() - ); - - $platform = $schemaManager->getDatabasePlatform(); - - return [ - $platform->getDropIndexSQL($command->from, $this->getTablePrefix().$blueprint->getTable()), - $platform->getCreateIndexSQL($newIndex, $this->getTablePrefix().$blueprint->getTable()), - ]; - } - - /** - * Compile the command to enable foreign key constraints. - * - * @return string - */ - public function compileEnableForeignKeyConstraints() - { - return 'PRAGMA foreign_keys = ON;'; - } - - /** - * Compile the command to disable foreign key constraints. - * - * @return string - */ - public function compileDisableForeignKeyConstraints() - { - return 'PRAGMA foreign_keys = OFF;'; - } - - /** - * Compile the SQL needed to enable a writable schema. - * - * @return string - */ - public function compileEnableWriteableSchema() - { - return 'PRAGMA writable_schema = 1;'; - } - - /** - * Compile the SQL needed to disable a writable schema. - * - * @return string - */ - public function compileDisableWriteableSchema() - { - return 'PRAGMA writable_schema = 0;'; - } - - /** - * Create the column definition for a char type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeChar(Fluent $column) - { - return 'varchar'; - } - - /** - * Create the column definition for a string type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeString(Fluent $column) - { - return 'varchar'; - } - - /** - * Create the column definition for a text type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeText(Fluent $column) - { - return 'text'; - } - - /** - * Create the column definition for a medium text type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeMediumText(Fluent $column) - { - return 'text'; - } - - /** - * Create the column definition for a long text type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeLongText(Fluent $column) - { - return 'text'; - } - - /** - * Create the column definition for a integer type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeInteger(Fluent $column) - { - return 'integer'; - } - - /** - * Create the column definition for a big integer type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeBigInteger(Fluent $column) - { - return 'integer'; - } - - /** - * Create the column definition for a medium integer type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeMediumInteger(Fluent $column) - { - return 'integer'; - } - - /** - * Create the column definition for a tiny integer type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeTinyInteger(Fluent $column) - { - return 'integer'; - } - - /** - * Create the column definition for a small integer type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeSmallInteger(Fluent $column) - { - return 'integer'; - } - - /** - * Create the column definition for a float type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeFloat(Fluent $column) - { - return 'float'; - } - - /** - * Create the column definition for a double type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeDouble(Fluent $column) - { - return 'float'; - } - - /** - * Create the column definition for a decimal type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeDecimal(Fluent $column) - { - return 'numeric'; - } - - /** - * Create the column definition for a boolean type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeBoolean(Fluent $column) - { - return 'tinyint(1)'; - } - - /** - * Create the column definition for an enumeration type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeEnum(Fluent $column) - { - return sprintf( - 'varchar check ("%s" in (%s))', - $column->name, - $this->quoteString($column->allowed) - ); - } - - /** - * Create the column definition for a json type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeJson(Fluent $column) - { - return 'text'; - } - - /** - * Create the column definition for a jsonb type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeJsonb(Fluent $column) - { - return 'text'; - } - - /** - * Create the column definition for a date type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeDate(Fluent $column) - { - return 'date'; - } - - /** - * Create the column definition for a date-time type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeDateTime(Fluent $column) - { - return 'datetime'; - } - - /** - * Create the column definition for a date-time (with time zone) type. - * - * Note: "SQLite does not have a storage class set aside for storing dates and/or times." - * @link https://www.sqlite.org/datatype3.html - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeDateTimeTz(Fluent $column) - { - return $this->typeDateTime($column); - } - - /** - * Create the column definition for a time type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeTime(Fluent $column) - { - return 'time'; - } - - /** - * Create the column definition for a time (with time zone) type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeTimeTz(Fluent $column) - { - return $this->typeTime($column); - } - - /** - * Create the column definition for a timestamp type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeTimestamp(Fluent $column) - { - return $column->useCurrent ? 'datetime default CURRENT_TIMESTAMP' : 'datetime'; - } - - /** - * Create the column definition for a timestamp (with time zone) type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeTimestampTz(Fluent $column) - { - return $this->typeTimestamp($column); - } - - /** - * Create the column definition for a year type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeYear(Fluent $column) - { - return $this->typeInteger($column); - } - - /** - * Create the column definition for a binary type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeBinary(Fluent $column) - { - return 'blob'; - } - - /** - * Create the column definition for a uuid type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeUuid(Fluent $column) - { - return 'varchar'; - } - - /** - * Create the column definition for an IP address type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeIpAddress(Fluent $column) - { - return 'varchar'; - } - - /** - * Create the column definition for a MAC address type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeMacAddress(Fluent $column) - { - return 'varchar'; - } - - /** - * Create the column definition for a spatial Geometry type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - public function typeGeometry(Fluent $column) - { - return 'geometry'; - } - - /** - * Create the column definition for a spatial Point type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - public function typePoint(Fluent $column) - { - return 'point'; - } - - /** - * Create the column definition for a spatial LineString type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - public function typeLineString(Fluent $column) - { - return 'linestring'; - } - - /** - * Create the column definition for a spatial Polygon type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - public function typePolygon(Fluent $column) - { - return 'polygon'; - } - - /** - * Create the column definition for a spatial GeometryCollection type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - public function typeGeometryCollection(Fluent $column) - { - return 'geometrycollection'; - } - - /** - * Create the column definition for a spatial MultiPoint type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - public function typeMultiPoint(Fluent $column) - { - return 'multipoint'; - } - - /** - * Create the column definition for a spatial MultiLineString type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - public function typeMultiLineString(Fluent $column) - { - return 'multilinestring'; - } - - /** - * Create the column definition for a spatial MultiPolygon type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - public function typeMultiPolygon(Fluent $column) - { - return 'multipolygon'; - } - - /** - * Get the SQL for a nullable column modifier. - * - * @param \Illuminate\Database\Schema\Blueprint $blueprint - * @param \Illuminate\Support\Fluent $column - * @return string|null - */ - protected function modifyNullable(Blueprint $blueprint, Fluent $column) - { - return $column->nullable ? ' null' : ' not null'; - } - - /** - * Get the SQL for a default column modifier. - * - * @param \Illuminate\Database\Schema\Blueprint $blueprint - * @param \Illuminate\Support\Fluent $column - * @return string|null - */ - protected function modifyDefault(Blueprint $blueprint, Fluent $column) - { - if (! is_null($column->default)) { - return ' default '.$this->getDefaultValue($column->default); - } - } - - /** - * Get the SQL for an auto-increment column modifier. - * - * @param \Illuminate\Database\Schema\Blueprint $blueprint - * @param \Illuminate\Support\Fluent $column - * @return string|null - */ - protected function modifyIncrement(Blueprint $blueprint, Fluent $column) - { - if (in_array($column->type, $this->serials) && $column->autoIncrement) { - return ' primary key autoincrement'; - } - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/Schema/Grammars/SqlServerGrammar.php b/vendor/laravel/framework/src/Illuminate/Database/Schema/Grammars/SqlServerGrammar.php deleted file mode 100755 index 38f55fcf..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/Schema/Grammars/SqlServerGrammar.php +++ /dev/null @@ -1,804 +0,0 @@ -getColumns($blueprint)); - - return 'create table '.$this->wrapTable($blueprint)." ($columns)"; - } - - /** - * Compile a column addition table command. - * - * @param \Illuminate\Database\Schema\Blueprint $blueprint - * @param \Illuminate\Support\Fluent $command - * @return string - */ - public function compileAdd(Blueprint $blueprint, Fluent $command) - { - return sprintf('alter table %s add %s', - $this->wrapTable($blueprint), - implode(', ', $this->getColumns($blueprint)) - ); - } - - /** - * Compile a primary key command. - * - * @param \Illuminate\Database\Schema\Blueprint $blueprint - * @param \Illuminate\Support\Fluent $command - * @return string - */ - public function compilePrimary(Blueprint $blueprint, Fluent $command) - { - return sprintf('alter table %s add constraint %s primary key (%s)', - $this->wrapTable($blueprint), - $this->wrap($command->index), - $this->columnize($command->columns) - ); - } - - /** - * Compile a unique key command. - * - * @param \Illuminate\Database\Schema\Blueprint $blueprint - * @param \Illuminate\Support\Fluent $command - * @return string - */ - public function compileUnique(Blueprint $blueprint, Fluent $command) - { - return sprintf('create unique index %s on %s (%s)', - $this->wrap($command->index), - $this->wrapTable($blueprint), - $this->columnize($command->columns) - ); - } - - /** - * Compile a plain index key command. - * - * @param \Illuminate\Database\Schema\Blueprint $blueprint - * @param \Illuminate\Support\Fluent $command - * @return string - */ - public function compileIndex(Blueprint $blueprint, Fluent $command) - { - return sprintf('create index %s on %s (%s)', - $this->wrap($command->index), - $this->wrapTable($blueprint), - $this->columnize($command->columns) - ); - } - - /** - * Compile a spatial index key command. - * - * @param \Illuminate\Database\Schema\Blueprint $blueprint - * @param \Illuminate\Support\Fluent $command - * @return string - */ - public function compileSpatialIndex(Blueprint $blueprint, Fluent $command) - { - return sprintf('create spatial index %s on %s (%s)', - $this->wrap($command->index), - $this->wrapTable($blueprint), - $this->columnize($command->columns) - ); - } - - /** - * Compile a drop table command. - * - * @param \Illuminate\Database\Schema\Blueprint $blueprint - * @param \Illuminate\Support\Fluent $command - * @return string - */ - public function compileDrop(Blueprint $blueprint, Fluent $command) - { - return 'drop table '.$this->wrapTable($blueprint); - } - - /** - * Compile a drop table (if exists) command. - * - * @param \Illuminate\Database\Schema\Blueprint $blueprint - * @param \Illuminate\Support\Fluent $command - * @return string - */ - public function compileDropIfExists(Blueprint $blueprint, Fluent $command) - { - return sprintf('if exists (select * from INFORMATION_SCHEMA.TABLES where TABLE_NAME = %s) drop table %s', - "'".str_replace("'", "''", $this->getTablePrefix().$blueprint->getTable())."'", - $this->wrapTable($blueprint) - ); - } - - /** - * Compile the SQL needed to drop all tables. - * - * @return string - */ - public function compileDropAllTables() - { - return "EXEC sp_msforeachtable 'DROP TABLE ?'"; - } - - /** - * Compile a drop column command. - * - * @param \Illuminate\Database\Schema\Blueprint $blueprint - * @param \Illuminate\Support\Fluent $command - * @return string - */ - public function compileDropColumn(Blueprint $blueprint, Fluent $command) - { - $columns = $this->wrapArray($command->columns); - - return 'alter table '.$this->wrapTable($blueprint).' drop column '.implode(', ', $columns); - } - - /** - * Compile a drop primary key command. - * - * @param \Illuminate\Database\Schema\Blueprint $blueprint - * @param \Illuminate\Support\Fluent $command - * @return string - */ - public function compileDropPrimary(Blueprint $blueprint, Fluent $command) - { - $index = $this->wrap($command->index); - - return "alter table {$this->wrapTable($blueprint)} drop constraint {$index}"; - } - - /** - * Compile a drop unique key command. - * - * @param \Illuminate\Database\Schema\Blueprint $blueprint - * @param \Illuminate\Support\Fluent $command - * @return string - */ - public function compileDropUnique(Blueprint $blueprint, Fluent $command) - { - $index = $this->wrap($command->index); - - return "drop index {$index} on {$this->wrapTable($blueprint)}"; - } - - /** - * Compile a drop index command. - * - * @param \Illuminate\Database\Schema\Blueprint $blueprint - * @param \Illuminate\Support\Fluent $command - * @return string - */ - public function compileDropIndex(Blueprint $blueprint, Fluent $command) - { - $index = $this->wrap($command->index); - - return "drop index {$index} on {$this->wrapTable($blueprint)}"; - } - - /** - * Compile a drop spatial index command. - * - * @param \Illuminate\Database\Schema\Blueprint $blueprint - * @param \Illuminate\Support\Fluent $command - * @return string - */ - public function compileDropSpatialIndex(Blueprint $blueprint, Fluent $command) - { - return $this->compileDropIndex($blueprint, $command); - } - - /** - * Compile a drop foreign key command. - * - * @param \Illuminate\Database\Schema\Blueprint $blueprint - * @param \Illuminate\Support\Fluent $command - * @return string - */ - public function compileDropForeign(Blueprint $blueprint, Fluent $command) - { - $index = $this->wrap($command->index); - - return "alter table {$this->wrapTable($blueprint)} drop constraint {$index}"; - } - - /** - * Compile a rename table command. - * - * @param \Illuminate\Database\Schema\Blueprint $blueprint - * @param \Illuminate\Support\Fluent $command - * @return string - */ - public function compileRename(Blueprint $blueprint, Fluent $command) - { - $from = $this->wrapTable($blueprint); - - return "sp_rename {$from}, ".$this->wrapTable($command->to); - } - - /** - * Compile a rename index command. - * - * @param \Illuminate\Database\Schema\Blueprint $blueprint - * @param \Illuminate\Support\Fluent $command - * @return string - */ - public function compileRenameIndex(Blueprint $blueprint, Fluent $command) - { - return sprintf("sp_rename N'%s', %s, N'INDEX'", - $this->wrap($blueprint->getTable().'.'.$command->from), - $this->wrap($command->to) - ); - } - - /** - * Compile the command to enable foreign key constraints. - * - * @return string - */ - public function compileEnableForeignKeyConstraints() - { - return 'EXEC sp_msforeachtable @command1="print \'?\'", @command2="ALTER TABLE ? WITH CHECK CHECK CONSTRAINT all";'; - } - - /** - * Compile the command to disable foreign key constraints. - * - * @return string - */ - public function compileDisableForeignKeyConstraints() - { - return 'EXEC sp_msforeachtable "ALTER TABLE ? NOCHECK CONSTRAINT all";'; - } - - /** - * Create the column definition for a char type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeChar(Fluent $column) - { - return "nchar({$column->length})"; - } - - /** - * Create the column definition for a string type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeString(Fluent $column) - { - return "nvarchar({$column->length})"; - } - - /** - * Create the column definition for a text type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeText(Fluent $column) - { - return 'nvarchar(max)'; - } - - /** - * Create the column definition for a medium text type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeMediumText(Fluent $column) - { - return 'nvarchar(max)'; - } - - /** - * Create the column definition for a long text type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeLongText(Fluent $column) - { - return 'nvarchar(max)'; - } - - /** - * Create the column definition for an integer type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeInteger(Fluent $column) - { - return 'int'; - } - - /** - * Create the column definition for a big integer type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeBigInteger(Fluent $column) - { - return 'bigint'; - } - - /** - * Create the column definition for a medium integer type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeMediumInteger(Fluent $column) - { - return 'int'; - } - - /** - * Create the column definition for a tiny integer type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeTinyInteger(Fluent $column) - { - return 'tinyint'; - } - - /** - * Create the column definition for a small integer type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeSmallInteger(Fluent $column) - { - return 'smallint'; - } - - /** - * Create the column definition for a float type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeFloat(Fluent $column) - { - return 'float'; - } - - /** - * Create the column definition for a double type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeDouble(Fluent $column) - { - return 'float'; - } - - /** - * Create the column definition for a decimal type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeDecimal(Fluent $column) - { - return "decimal({$column->total}, {$column->places})"; - } - - /** - * Create the column definition for a boolean type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeBoolean(Fluent $column) - { - return 'bit'; - } - - /** - * Create the column definition for an enumeration type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeEnum(Fluent $column) - { - return sprintf( - 'nvarchar(255) check ("%s" in (%s))', - $column->name, - $this->quoteString($column->allowed) - ); - } - - /** - * Create the column definition for a json type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeJson(Fluent $column) - { - return 'nvarchar(max)'; - } - - /** - * Create the column definition for a jsonb type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeJsonb(Fluent $column) - { - return 'nvarchar(max)'; - } - - /** - * Create the column definition for a date type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeDate(Fluent $column) - { - return 'date'; - } - - /** - * Create the column definition for a date-time type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeDateTime(Fluent $column) - { - return $column->precision ? "datetime2($column->precision)" : 'datetime'; - } - - /** - * Create the column definition for a date-time (with time zone) type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeDateTimeTz(Fluent $column) - { - return $column->precision ? "datetimeoffset($column->precision)" : 'datetimeoffset'; - } - - /** - * Create the column definition for a time type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeTime(Fluent $column) - { - return $column->precision ? "time($column->precision)" : 'time'; - } - - /** - * Create the column definition for a time (with time zone) type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeTimeTz(Fluent $column) - { - return $this->typeTime($column); - } - - /** - * Create the column definition for a timestamp type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeTimestamp(Fluent $column) - { - $columnType = $column->precision ? "datetime2($column->precision)" : 'datetime'; - - return $column->useCurrent ? "$columnType default CURRENT_TIMESTAMP" : $columnType; - } - - /** - * Create the column definition for a timestamp (with time zone) type. - * - * @link https://msdn.microsoft.com/en-us/library/bb630289(v=sql.120).aspx - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeTimestampTz(Fluent $column) - { - if ($column->useCurrent) { - $columnType = $column->precision ? "datetimeoffset($column->precision)" : 'datetimeoffset'; - - return "$columnType default CURRENT_TIMESTAMP"; - } - - return "datetimeoffset($column->precision)"; - } - - /** - * Create the column definition for a year type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeYear(Fluent $column) - { - return $this->typeInteger($column); - } - - /** - * Create the column definition for a binary type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeBinary(Fluent $column) - { - return 'varbinary(max)'; - } - - /** - * Create the column definition for a uuid type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeUuid(Fluent $column) - { - return 'uniqueidentifier'; - } - - /** - * Create the column definition for an IP address type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeIpAddress(Fluent $column) - { - return 'nvarchar(45)'; - } - - /** - * Create the column definition for a MAC address type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - protected function typeMacAddress(Fluent $column) - { - return 'nvarchar(17)'; - } - - /** - * Create the column definition for a spatial Geometry type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - public function typeGeometry(Fluent $column) - { - return 'geography'; - } - - /** - * Create the column definition for a spatial Point type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - public function typePoint(Fluent $column) - { - return 'geography'; - } - - /** - * Create the column definition for a spatial LineString type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - public function typeLineString(Fluent $column) - { - return 'geography'; - } - - /** - * Create the column definition for a spatial Polygon type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - public function typePolygon(Fluent $column) - { - return 'geography'; - } - - /** - * Create the column definition for a spatial GeometryCollection type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - public function typeGeometryCollection(Fluent $column) - { - return 'geography'; - } - - /** - * Create the column definition for a spatial MultiPoint type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - public function typeMultiPoint(Fluent $column) - { - return 'geography'; - } - - /** - * Create the column definition for a spatial MultiLineString type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - public function typeMultiLineString(Fluent $column) - { - return 'geography'; - } - - /** - * Create the column definition for a spatial MultiPolygon type. - * - * @param \Illuminate\Support\Fluent $column - * @return string - */ - public function typeMultiPolygon(Fluent $column) - { - return 'geography'; - } - - /** - * Get the SQL for a collation column modifier. - * - * @param \Illuminate\Database\Schema\Blueprint $blueprint - * @param \Illuminate\Support\Fluent $column - * @return string|null - */ - protected function modifyCollate(Blueprint $blueprint, Fluent $column) - { - if (! is_null($column->collation)) { - return ' collate '.$column->collation; - } - } - - /** - * Get the SQL for a nullable column modifier. - * - * @param \Illuminate\Database\Schema\Blueprint $blueprint - * @param \Illuminate\Support\Fluent $column - * @return string|null - */ - protected function modifyNullable(Blueprint $blueprint, Fluent $column) - { - return $column->nullable ? ' null' : ' not null'; - } - - /** - * Get the SQL for a default column modifier. - * - * @param \Illuminate\Database\Schema\Blueprint $blueprint - * @param \Illuminate\Support\Fluent $column - * @return string|null - */ - protected function modifyDefault(Blueprint $blueprint, Fluent $column) - { - if (! is_null($column->default)) { - return ' default '.$this->getDefaultValue($column->default); - } - } - - /** - * Get the SQL for an auto-increment column modifier. - * - * @param \Illuminate\Database\Schema\Blueprint $blueprint - * @param \Illuminate\Support\Fluent $column - * @return string|null - */ - protected function modifyIncrement(Blueprint $blueprint, Fluent $column) - { - if (in_array($column->type, $this->serials) && $column->autoIncrement) { - return ' identity primary key'; - } - } - - /** - * Wrap a table in keyword identifiers. - * - * @param \Illuminate\Database\Query\Expression|string $table - * @return string - */ - public function wrapTable($table) - { - if ($table instanceof Blueprint && $table->temporary) { - $this->setTablePrefix('#'); - } - - return parent::wrapTable($table); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/Schema/MySqlBuilder.php b/vendor/laravel/framework/src/Illuminate/Database/Schema/MySqlBuilder.php deleted file mode 100755 index 85f3e92c..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/Schema/MySqlBuilder.php +++ /dev/null @@ -1,114 +0,0 @@ -connection->getTablePrefix().$table; - - return count($this->connection->select( - $this->grammar->compileTableExists(), [$this->connection->getDatabaseName(), $table] - )) > 0; - } - - /** - * Get the column listing for a given table. - * - * @param string $table - * @return array - */ - public function getColumnListing($table) - { - $table = $this->connection->getTablePrefix().$table; - - $results = $this->connection->select( - $this->grammar->compileColumnListing(), [$this->connection->getDatabaseName(), $table] - ); - - return $this->connection->getPostProcessor()->processColumnListing($results); - } - - /** - * Drop all tables from the database. - * - * @return void - */ - public function dropAllTables() - { - $tables = []; - - foreach ($this->getAllTables() as $row) { - $row = (array) $row; - - $tables[] = reset($row); - } - - if (empty($tables)) { - return; - } - - $this->disableForeignKeyConstraints(); - - $this->connection->statement( - $this->grammar->compileDropAllTables($tables) - ); - - $this->enableForeignKeyConstraints(); - } - - /** - * Drop all views from the database. - * - * @return void - */ - public function dropAllViews() - { - $views = []; - - foreach ($this->getAllViews() as $row) { - $row = (array) $row; - - $views[] = reset($row); - } - - if (empty($views)) { - return; - } - - $this->connection->statement( - $this->grammar->compileDropAllViews($views) - ); - } - - /** - * Get all of the table names for the database. - * - * @return array - */ - protected function getAllTables() - { - return $this->connection->select( - $this->grammar->compileGetAllTables() - ); - } - - /** - * Get all of the view names for the database. - * - * @return array - */ - protected function getAllViews() - { - return $this->connection->select( - $this->grammar->compileGetAllViews() - ); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/Schema/PostgresBuilder.php b/vendor/laravel/framework/src/Illuminate/Database/Schema/PostgresBuilder.php deleted file mode 100755 index aa2255ed..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/Schema/PostgresBuilder.php +++ /dev/null @@ -1,141 +0,0 @@ -parseSchemaAndTable($table); - - $table = $this->connection->getTablePrefix().$table; - - return count($this->connection->select( - $this->grammar->compileTableExists(), [$schema, $table] - )) > 0; - } - - /** - * Drop all tables from the database. - * - * @return void - */ - public function dropAllTables() - { - $tables = []; - - $excludedTables = ['spatial_ref_sys']; - - foreach ($this->getAllTables() as $row) { - $row = (array) $row; - - $table = reset($row); - - if (! in_array($table, $excludedTables)) { - $tables[] = $table; - } - } - - if (empty($tables)) { - return; - } - - $this->connection->statement( - $this->grammar->compileDropAllTables($tables) - ); - } - - /** - * Drop all views from the database. - * - * @return void - */ - public function dropAllViews() - { - $views = []; - - foreach ($this->getAllViews() as $row) { - $row = (array) $row; - - $views[] = reset($row); - } - - if (empty($views)) { - return; - } - - $this->connection->statement( - $this->grammar->compileDropAllViews($views) - ); - } - - /** - * Get all of the table names for the database. - * - * @return array - */ - protected function getAllTables() - { - return $this->connection->select( - $this->grammar->compileGetAllTables($this->connection->getConfig('schema')) - ); - } - - /** - * Get all of the view names for the database. - * - * @return array - */ - protected function getAllViews() - { - return $this->connection->select( - $this->grammar->compileGetAllViews($this->connection->getConfig('schema')) - ); - } - - /** - * Get the column listing for a given table. - * - * @param string $table - * @return array - */ - public function getColumnListing($table) - { - list($schema, $table) = $this->parseSchemaAndTable($table); - - $table = $this->connection->getTablePrefix().$table; - - $results = $this->connection->select( - $this->grammar->compileColumnListing(), [$schema, $table] - ); - - return $this->connection->getPostProcessor()->processColumnListing($results); - } - - /** - * Parse the table name and extract the schema and table. - * - * @param string $table - * @return array - */ - protected function parseSchemaAndTable($table) - { - $table = explode('.', $table); - - if (is_array($schema = $this->connection->getConfig('schema'))) { - if (in_array($table[0], $schema)) { - return [array_shift($table), implode('.', $table)]; - } - - $schema = head($schema); - } - - return [$schema ?: 'public', implode('.', $table)]; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/Schema/SQLiteBuilder.php b/vendor/laravel/framework/src/Illuminate/Database/Schema/SQLiteBuilder.php deleted file mode 100644 index 0f13dd2e..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/Schema/SQLiteBuilder.php +++ /dev/null @@ -1,48 +0,0 @@ -connection->getDatabaseName() !== ':memory:') { - return $this->refreshDatabaseFile(); - } - - $this->connection->select($this->grammar->compileEnableWriteableSchema()); - - $this->connection->select($this->grammar->compileDropAllTables()); - - $this->connection->select($this->grammar->compileDisableWriteableSchema()); - } - - /** - * Drop all views from the database. - * - * @return void - */ - public function dropAllViews() - { - $this->connection->select($this->grammar->compileEnableWriteableSchema()); - - $this->connection->select($this->grammar->compileDropAllViews()); - - $this->connection->select($this->grammar->compileDisableWriteableSchema()); - } - - /** - * Empty the database file. - * - * @return void - */ - public function refreshDatabaseFile() - { - file_put_contents($this->connection->getDatabaseName(), ''); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/Schema/SqlServerBuilder.php b/vendor/laravel/framework/src/Illuminate/Database/Schema/SqlServerBuilder.php deleted file mode 100644 index 2c54282d..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/Schema/SqlServerBuilder.php +++ /dev/null @@ -1,20 +0,0 @@ -disableForeignKeyConstraints(); - - $this->connection->statement($this->grammar->compileDropAllTables()); - - $this->enableForeignKeyConstraints(); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/Seeder.php b/vendor/laravel/framework/src/Illuminate/Database/Seeder.php deleted file mode 100755 index e4d30096..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/Seeder.php +++ /dev/null @@ -1,125 +0,0 @@ -command)) { - $this->command->getOutput()->writeln("Seeding: $class"); - } - - $this->resolve($class)->__invoke(); - } - - return $this; - } - - /** - * Silently seed the given connection from the given path. - * - * @param array|string $class - * @return void - */ - public function callSilent($class) - { - $this->call($class, true); - } - - /** - * Resolve an instance of the given seeder class. - * - * @param string $class - * @return \Illuminate\Database\Seeder - */ - protected function resolve($class) - { - if (isset($this->container)) { - $instance = $this->container->make($class); - - $instance->setContainer($this->container); - } else { - $instance = new $class; - } - - if (isset($this->command)) { - $instance->setCommand($this->command); - } - - return $instance; - } - - /** - * Set the IoC container instance. - * - * @param \Illuminate\Container\Container $container - * @return $this - */ - public function setContainer(Container $container) - { - $this->container = $container; - - return $this; - } - - /** - * Set the console command instance. - * - * @param \Illuminate\Console\Command $command - * @return $this - */ - public function setCommand(Command $command) - { - $this->command = $command; - - return $this; - } - - /** - * Run the database seeds. - * - * @return void - * - * @throws \InvalidArgumentException - */ - public function __invoke() - { - if (! method_exists($this, 'run')) { - throw new InvalidArgumentException('Method [run] missing from '.get_class($this)); - } - - return isset($this->container) - ? $this->container->call([$this, 'run']) - : $this->run(); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/SqlServerConnection.php b/vendor/laravel/framework/src/Illuminate/Database/SqlServerConnection.php deleted file mode 100755 index 95395637..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/SqlServerConnection.php +++ /dev/null @@ -1,113 +0,0 @@ -getDriverName() == 'sqlsrv') { - return parent::transaction($callback); - } - - $this->getPdo()->exec('BEGIN TRAN'); - - // We'll simply execute the given callback within a try / catch block - // and if we catch any exception we can rollback the transaction - // so that none of the changes are persisted to the database. - try { - $result = $callback($this); - - $this->getPdo()->exec('COMMIT TRAN'); - } - - // If we catch an exception, we will roll back so nothing gets messed - // up in the database. Then we'll re-throw the exception so it can - // be handled how the developer sees fit for their applications. - catch (Exception $e) { - $this->getPdo()->exec('ROLLBACK TRAN'); - - throw $e; - } catch (Throwable $e) { - $this->getPdo()->exec('ROLLBACK TRAN'); - - throw $e; - } - - return $result; - } - } - - /** - * Get the default query grammar instance. - * - * @return \Illuminate\Database\Query\Grammars\SqlServerGrammar - */ - protected function getDefaultQueryGrammar() - { - return $this->withTablePrefix(new QueryGrammar); - } - - /** - * Get a schema builder instance for the connection. - * - * @return \Illuminate\Database\Schema\SqlServerBuilder - */ - public function getSchemaBuilder() - { - if (is_null($this->schemaGrammar)) { - $this->useDefaultSchemaGrammar(); - } - - return new SqlServerBuilder($this); - } - - /** - * Get the default schema grammar instance. - * - * @return \Illuminate\Database\Schema\Grammars\SqlServerGrammar - */ - protected function getDefaultSchemaGrammar() - { - return $this->withTablePrefix(new SchemaGrammar); - } - - /** - * Get the default post processor instance. - * - * @return \Illuminate\Database\Query\Processors\SqlServerProcessor - */ - protected function getDefaultPostProcessor() - { - return new SqlServerProcessor; - } - - /** - * Get the Doctrine DBAL driver. - * - * @return \Doctrine\DBAL\Driver\PDOSqlsrv\Driver - */ - protected function getDoctrineDriver() - { - return new DoctrineDriver; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Database/composer.json b/vendor/laravel/framework/src/Illuminate/Database/composer.json deleted file mode 100644 index 652ac174..00000000 --- a/vendor/laravel/framework/src/Illuminate/Database/composer.json +++ /dev/null @@ -1,45 +0,0 @@ -{ - "name": "illuminate/database", - "description": "The Illuminate Database package.", - "license": "MIT", - "homepage": "https://laravel.com", - "support": { - "issues": "https://github.com/laravel/framework/issues", - "source": "https://github.com/laravel/framework" - }, - "keywords": ["laravel", "database", "sql", "orm"], - "authors": [ - { - "name": "Taylor Otwell", - "email": "taylor@laravel.com" - } - ], - "require": { - "php": "^7.1.3", - "illuminate/container": "5.6.*", - "illuminate/contracts": "5.6.*", - "illuminate/support": "5.6.*" - }, - "autoload": { - "psr-4": { - "Illuminate\\Database\\": "" - } - }, - "extra": { - "branch-alias": { - "dev-master": "5.6-dev" - } - }, - "suggest": { - "doctrine/dbal": "Required to rename columns and drop SQLite columns (~2.6).", - "fzaninotto/faker": "Required to use the eloquent factory builder (~1.4).", - "illuminate/console": "Required to use the database commands (5.6.*).", - "illuminate/events": "Required to use the observers with Eloquent (5.6.*).", - "illuminate/filesystem": "Required to use the migrations (5.6.*).", - "illuminate/pagination": "Required to paginate the result set (5.6.*)." - }, - "config": { - "sort-packages": true - }, - "minimum-stability": "dev" -} diff --git a/vendor/laravel/framework/src/Illuminate/Encryption/Encrypter.php b/vendor/laravel/framework/src/Illuminate/Encryption/Encrypter.php deleted file mode 100755 index 5f80599a..00000000 --- a/vendor/laravel/framework/src/Illuminate/Encryption/Encrypter.php +++ /dev/null @@ -1,251 +0,0 @@ -key = $key; - $this->cipher = $cipher; - } else { - throw new RuntimeException('The only supported ciphers are AES-128-CBC and AES-256-CBC with the correct key lengths.'); - } - } - - /** - * Determine if the given key and cipher combination is valid. - * - * @param string $key - * @param string $cipher - * @return bool - */ - public static function supported($key, $cipher) - { - $length = mb_strlen($key, '8bit'); - - return ($cipher === 'AES-128-CBC' && $length === 16) || - ($cipher === 'AES-256-CBC' && $length === 32); - } - - /** - * Create a new encryption key for the given cipher. - * - * @param string $cipher - * @return string - */ - public static function generateKey($cipher) - { - return random_bytes($cipher == 'AES-128-CBC' ? 16 : 32); - } - - /** - * Encrypt the given value. - * - * @param mixed $value - * @param bool $serialize - * @return string - * - * @throws \Illuminate\Contracts\Encryption\EncryptException - */ - public function encrypt($value, $serialize = true) - { - $iv = random_bytes(openssl_cipher_iv_length($this->cipher)); - - // First we will encrypt the value using OpenSSL. After this is encrypted we - // will proceed to calculating a MAC for the encrypted value so that this - // value can be verified later as not having been changed by the users. - $value = \openssl_encrypt( - $serialize ? serialize($value) : $value, - $this->cipher, $this->key, 0, $iv - ); - - if ($value === false) { - throw new EncryptException('Could not encrypt the data.'); - } - - // Once we get the encrypted value we'll go ahead and base64_encode the input - // vector and create the MAC for the encrypted value so we can then verify - // its authenticity. Then, we'll JSON the data into the "payload" array. - $mac = $this->hash($iv = base64_encode($iv), $value); - - $json = json_encode(compact('iv', 'value', 'mac')); - - if (json_last_error() !== JSON_ERROR_NONE) { - throw new EncryptException('Could not encrypt the data.'); - } - - return base64_encode($json); - } - - /** - * Encrypt a string without serialization. - * - * @param string $value - * @return string - */ - public function encryptString($value) - { - return $this->encrypt($value, false); - } - - /** - * Decrypt the given value. - * - * @param mixed $payload - * @param bool $unserialize - * @return mixed - * - * @throws \Illuminate\Contracts\Encryption\DecryptException - */ - public function decrypt($payload, $unserialize = true) - { - $payload = $this->getJsonPayload($payload); - - $iv = base64_decode($payload['iv']); - - // Here we will decrypt the value. If we are able to successfully decrypt it - // we will then unserialize it and return it out to the caller. If we are - // unable to decrypt this value we will throw out an exception message. - $decrypted = \openssl_decrypt( - $payload['value'], $this->cipher, $this->key, 0, $iv - ); - - if ($decrypted === false) { - throw new DecryptException('Could not decrypt the data.'); - } - - return $unserialize ? unserialize($decrypted) : $decrypted; - } - - /** - * Decrypt the given string without unserialization. - * - * @param string $payload - * @return string - */ - public function decryptString($payload) - { - return $this->decrypt($payload, false); - } - - /** - * Create a MAC for the given value. - * - * @param string $iv - * @param mixed $value - * @return string - */ - protected function hash($iv, $value) - { - return hash_hmac('sha256', $iv.$value, $this->key); - } - - /** - * Get the JSON array from the given payload. - * - * @param string $payload - * @return array - * - * @throws \Illuminate\Contracts\Encryption\DecryptException - */ - protected function getJsonPayload($payload) - { - $payload = json_decode(base64_decode($payload), true); - - // If the payload is not valid JSON or does not have the proper keys set we will - // assume it is invalid and bail out of the routine since we will not be able - // to decrypt the given value. We'll also check the MAC for this encryption. - if (! $this->validPayload($payload)) { - throw new DecryptException('The payload is invalid.'); - } - - if (! $this->validMac($payload)) { - throw new DecryptException('The MAC is invalid.'); - } - - return $payload; - } - - /** - * Verify that the encryption payload is valid. - * - * @param mixed $payload - * @return bool - */ - protected function validPayload($payload) - { - return is_array($payload) && isset($payload['iv'], $payload['value'], $payload['mac']) && - strlen(base64_decode($payload['iv'], true)) === openssl_cipher_iv_length($this->cipher); - } - - /** - * Determine if the MAC for the given payload is valid. - * - * @param array $payload - * @return bool - */ - protected function validMac(array $payload) - { - $calculated = $this->calculateMac($payload, $bytes = random_bytes(16)); - - return hash_equals( - hash_hmac('sha256', $payload['mac'], $bytes, true), $calculated - ); - } - - /** - * Calculate the hash of the given payload. - * - * @param array $payload - * @param string $bytes - * @return string - */ - protected function calculateMac($payload, $bytes) - { - return hash_hmac( - 'sha256', $this->hash($payload['iv'], $payload['value']), $bytes, true - ); - } - - /** - * Get the encryption key. - * - * @return string - */ - public function getKey() - { - return $this->key; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Encryption/EncryptionServiceProvider.php b/vendor/laravel/framework/src/Illuminate/Encryption/EncryptionServiceProvider.php deleted file mode 100755 index d75d95a7..00000000 --- a/vendor/laravel/framework/src/Illuminate/Encryption/EncryptionServiceProvider.php +++ /dev/null @@ -1,48 +0,0 @@ -app->singleton('encrypter', function ($app) { - $config = $app->make('config')->get('app'); - - // If the key starts with "base64:", we will need to decode the key before handing - // it off to the encrypter. Keys may be base-64 encoded for presentation and we - // want to make sure to convert them back to the raw bytes before encrypting. - if (Str::startsWith($key = $this->key($config), 'base64:')) { - $key = base64_decode(substr($key, 7)); - } - - return new Encrypter($key, $config['cipher']); - }); - } - - /** - * Extract the encryption key from the given configuration. - * - * @param array $config - * @return string - */ - protected function key(array $config) - { - return tap($config['key'], function ($key) { - if (empty($key)) { - throw new RuntimeException( - 'No application encryption key has been specified.' - ); - } - }); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Encryption/composer.json b/vendor/laravel/framework/src/Illuminate/Encryption/composer.json deleted file mode 100644 index 73486aba..00000000 --- a/vendor/laravel/framework/src/Illuminate/Encryption/composer.json +++ /dev/null @@ -1,37 +0,0 @@ -{ - "name": "illuminate/encryption", - "description": "The Illuminate Encryption package.", - "license": "MIT", - "homepage": "https://laravel.com", - "support": { - "issues": "https://github.com/laravel/framework/issues", - "source": "https://github.com/laravel/framework" - }, - "authors": [ - { - "name": "Taylor Otwell", - "email": "taylor@laravel.com" - } - ], - "require": { - "php": "^7.1.3", - "ext-mbstring": "*", - "ext-openssl": "*", - "illuminate/contracts": "5.6.*", - "illuminate/support": "5.6.*" - }, - "autoload": { - "psr-4": { - "Illuminate\\Encryption\\": "" - } - }, - "extra": { - "branch-alias": { - "dev-master": "5.6-dev" - } - }, - "config": { - "sort-packages": true - }, - "minimum-stability": "dev" -} diff --git a/vendor/laravel/framework/src/Illuminate/Events/CallQueuedListener.php b/vendor/laravel/framework/src/Illuminate/Events/CallQueuedListener.php deleted file mode 100644 index a66b4f99..00000000 --- a/vendor/laravel/framework/src/Illuminate/Events/CallQueuedListener.php +++ /dev/null @@ -1,160 +0,0 @@ -data = $data; - $this->class = $class; - $this->method = $method; - } - - /** - * Handle the queued job. - * - * @param \Illuminate\Container\Container $container - * @return void - */ - public function handle(Container $container) - { - $this->prepareData(); - - $handler = $this->setJobInstanceIfNecessary( - $this->job, $container->make($this->class) - ); - - call_user_func_array( - [$handler, $this->method], $this->data - ); - } - - /** - * Set the job instance of the given class if necessary. - * - * @param \Illuminate\Contracts\Queue\Job $job - * @param mixed $instance - * @return mixed - */ - protected function setJobInstanceIfNecessary(Job $job, $instance) - { - if (in_array(InteractsWithQueue::class, class_uses_recursive(get_class($instance)))) { - $instance->setJob($job); - } - - return $instance; - } - - /** - * Call the failed method on the job instance. - * - * The event instance and the exception will be passed. - * - * @param \Exception $e - * @return void - */ - public function failed($e) - { - $this->prepareData(); - - $handler = Container::getInstance()->make($this->class); - - $parameters = array_merge($this->data, [$e]); - - if (method_exists($handler, 'failed')) { - call_user_func_array([$handler, 'failed'], $parameters); - } - } - - /** - * Unserialize the data if needed. - * - * @return void - */ - protected function prepareData() - { - if (is_string($this->data)) { - $this->data = unserialize($this->data); - } - } - - /** - * Get the display name for the queued job. - * - * @return string - */ - public function displayName() - { - return $this->class; - } - - /** - * Prepare the instance for cloning. - * - * @return void - */ - public function __clone() - { - $this->data = array_map(function ($data) { - return is_object($data) ? clone $data : $data; - }, $this->data); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Events/Dispatcher.php b/vendor/laravel/framework/src/Illuminate/Events/Dispatcher.php deleted file mode 100755 index be3561b5..00000000 --- a/vendor/laravel/framework/src/Illuminate/Events/Dispatcher.php +++ /dev/null @@ -1,573 +0,0 @@ -container = $container ?: new Container; - } - - /** - * Register an event listener with the dispatcher. - * - * @param string|array $events - * @param mixed $listener - * @return void - */ - public function listen($events, $listener) - { - foreach ((array) $events as $event) { - if (Str::contains($event, '*')) { - $this->setupWildcardListen($event, $listener); - } else { - $this->listeners[$event][] = $this->makeListener($listener); - } - } - } - - /** - * Setup a wildcard listener callback. - * - * @param string $event - * @param mixed $listener - * @return void - */ - protected function setupWildcardListen($event, $listener) - { - $this->wildcards[$event][] = $this->makeListener($listener, true); - - $this->wildcardsCache = []; - } - - /** - * Determine if a given event has listeners. - * - * @param string $eventName - * @return bool - */ - public function hasListeners($eventName) - { - return isset($this->listeners[$eventName]) || isset($this->wildcards[$eventName]); - } - - /** - * Register an event and payload to be fired later. - * - * @param string $event - * @param array $payload - * @return void - */ - public function push($event, $payload = []) - { - $this->listen($event.'_pushed', function () use ($event, $payload) { - $this->dispatch($event, $payload); - }); - } - - /** - * Flush a set of pushed events. - * - * @param string $event - * @return void - */ - public function flush($event) - { - $this->dispatch($event.'_pushed'); - } - - /** - * Register an event subscriber with the dispatcher. - * - * @param object|string $subscriber - * @return void - */ - public function subscribe($subscriber) - { - $subscriber = $this->resolveSubscriber($subscriber); - - $subscriber->subscribe($this); - } - - /** - * Resolve the subscriber instance. - * - * @param object|string $subscriber - * @return mixed - */ - protected function resolveSubscriber($subscriber) - { - if (is_string($subscriber)) { - return $this->container->make($subscriber); - } - - return $subscriber; - } - - /** - * Fire an event until the first non-null response is returned. - * - * @param string|object $event - * @param mixed $payload - * @return array|null - */ - public function until($event, $payload = []) - { - return $this->dispatch($event, $payload, true); - } - - /** - * Fire an event and call the listeners. - * - * @param string|object $event - * @param mixed $payload - * @param bool $halt - * @return array|null - */ - public function fire($event, $payload = [], $halt = false) - { - return $this->dispatch($event, $payload, $halt); - } - - /** - * Fire an event and call the listeners. - * - * @param string|object $event - * @param mixed $payload - * @param bool $halt - * @return array|null - */ - public function dispatch($event, $payload = [], $halt = false) - { - // When the given "event" is actually an object we will assume it is an event - // object and use the class as the event name and this event itself as the - // payload to the handler, which makes object based events quite simple. - list($event, $payload) = $this->parseEventAndPayload( - $event, $payload - ); - - if ($this->shouldBroadcast($payload)) { - $this->broadcastEvent($payload[0]); - } - - $responses = []; - - foreach ($this->getListeners($event) as $listener) { - $response = $listener($event, $payload); - - // If a response is returned from the listener and event halting is enabled - // we will just return this response, and not call the rest of the event - // listeners. Otherwise we will add the response on the response list. - if ($halt && ! is_null($response)) { - return $response; - } - - // If a boolean false is returned from a listener, we will stop propagating - // the event to any further listeners down in the chain, else we keep on - // looping through the listeners and firing every one in our sequence. - if ($response === false) { - break; - } - - $responses[] = $response; - } - - return $halt ? null : $responses; - } - - /** - * Parse the given event and payload and prepare them for dispatching. - * - * @param mixed $event - * @param mixed $payload - * @return array - */ - protected function parseEventAndPayload($event, $payload) - { - if (is_object($event)) { - list($payload, $event) = [[$event], get_class($event)]; - } - - return [$event, Arr::wrap($payload)]; - } - - /** - * Determine if the payload has a broadcastable event. - * - * @param array $payload - * @return bool - */ - protected function shouldBroadcast(array $payload) - { - return isset($payload[0]) && - $payload[0] instanceof ShouldBroadcast && - $this->broadcastWhen($payload[0]); - } - - /** - * Check if event should be broadcasted by condition. - * - * @param mixed $event - * @return bool - */ - protected function broadcastWhen($event) - { - return method_exists($event, 'broadcastWhen') - ? $event->broadcastWhen() : true; - } - - /** - * Broadcast the given event class. - * - * @param \Illuminate\Contracts\Broadcasting\ShouldBroadcast $event - * @return void - */ - protected function broadcastEvent($event) - { - $this->container->make(BroadcastFactory::class)->queue($event); - } - - /** - * Get all of the listeners for a given event name. - * - * @param string $eventName - * @return array - */ - public function getListeners($eventName) - { - $listeners = $this->listeners[$eventName] ?? []; - - $listeners = array_merge( - $listeners, - $this->wildcardsCache[$eventName] ?? $this->getWildcardListeners($eventName) - ); - - return class_exists($eventName, false) - ? $this->addInterfaceListeners($eventName, $listeners) - : $listeners; - } - - /** - * Get the wildcard listeners for the event. - * - * @param string $eventName - * @return array - */ - protected function getWildcardListeners($eventName) - { - $wildcards = []; - - foreach ($this->wildcards as $key => $listeners) { - if (Str::is($key, $eventName)) { - $wildcards = array_merge($wildcards, $listeners); - } - } - - return $this->wildcardsCache[$eventName] = $wildcards; - } - - /** - * Add the listeners for the event's interfaces to the given array. - * - * @param string $eventName - * @param array $listeners - * @return array - */ - protected function addInterfaceListeners($eventName, array $listeners = []) - { - foreach (class_implements($eventName) as $interface) { - if (isset($this->listeners[$interface])) { - foreach ($this->listeners[$interface] as $names) { - $listeners = array_merge($listeners, (array) $names); - } - } - } - - return $listeners; - } - - /** - * Register an event listener with the dispatcher. - * - * @param \Closure|string $listener - * @param bool $wildcard - * @return \Closure - */ - public function makeListener($listener, $wildcard = false) - { - if (is_string($listener)) { - return $this->createClassListener($listener, $wildcard); - } - - return function ($event, $payload) use ($listener, $wildcard) { - if ($wildcard) { - return $listener($event, $payload); - } - - return $listener(...array_values($payload)); - }; - } - - /** - * Create a class based listener using the IoC container. - * - * @param string $listener - * @param bool $wildcard - * @return \Closure - */ - public function createClassListener($listener, $wildcard = false) - { - return function ($event, $payload) use ($listener, $wildcard) { - if ($wildcard) { - return call_user_func($this->createClassCallable($listener), $event, $payload); - } - - return call_user_func_array( - $this->createClassCallable($listener), $payload - ); - }; - } - - /** - * Create the class based event callable. - * - * @param string $listener - * @return callable - */ - protected function createClassCallable($listener) - { - list($class, $method) = $this->parseClassCallable($listener); - - if ($this->handlerShouldBeQueued($class)) { - return $this->createQueuedHandlerCallable($class, $method); - } - - return [$this->container->make($class), $method]; - } - - /** - * Parse the class listener into class and method. - * - * @param string $listener - * @return array - */ - protected function parseClassCallable($listener) - { - return Str::parseCallback($listener, 'handle'); - } - - /** - * Determine if the event handler class should be queued. - * - * @param string $class - * @return bool - */ - protected function handlerShouldBeQueued($class) - { - try { - return (new ReflectionClass($class))->implementsInterface( - ShouldQueue::class - ); - } catch (Exception $e) { - return false; - } - } - - /** - * Create a callable for putting an event handler on the queue. - * - * @param string $class - * @param string $method - * @return \Closure - */ - protected function createQueuedHandlerCallable($class, $method) - { - return function () use ($class, $method) { - $arguments = array_map(function ($a) { - return is_object($a) ? clone $a : $a; - }, func_get_args()); - - if ($this->handlerWantsToBeQueued($class, $arguments)) { - $this->queueHandler($class, $method, $arguments); - } - }; - } - - /** - * Determine if the event handler wants to be queued. - * - * @param string $class - * @param array $arguments - * @return bool - */ - protected function handlerWantsToBeQueued($class, $arguments) - { - if (method_exists($class, 'shouldQueue')) { - return $this->container->make($class)->shouldQueue($arguments[0]); - } - - return true; - } - - /** - * Queue the handler class. - * - * @param string $class - * @param string $method - * @param array $arguments - * @return void - */ - protected function queueHandler($class, $method, $arguments) - { - list($listener, $job) = $this->createListenerAndJob($class, $method, $arguments); - - $connection = $this->resolveQueue()->connection( - $listener->connection ?? null - ); - - $queue = $listener->queue ?? null; - - isset($listener->delay) - ? $connection->laterOn($queue, $listener->delay, $job) - : $connection->pushOn($queue, $job); - } - - /** - * Create the listener and job for a queued listener. - * - * @param string $class - * @param string $method - * @param array $arguments - * @return array - */ - protected function createListenerAndJob($class, $method, $arguments) - { - $listener = (new ReflectionClass($class))->newInstanceWithoutConstructor(); - - return [$listener, $this->propagateListenerOptions( - $listener, new CallQueuedListener($class, $method, $arguments) - )]; - } - - /** - * Propagate listener options to the job. - * - * @param mixed $listener - * @param mixed $job - * @return mixed - */ - protected function propagateListenerOptions($listener, $job) - { - return tap($job, function ($job) use ($listener) { - $job->tries = $listener->tries ?? null; - $job->timeout = $listener->timeout ?? null; - $job->timeoutAt = method_exists($listener, 'retryUntil') - ? $listener->retryUntil() : null; - }); - } - - /** - * Remove a set of listeners from the dispatcher. - * - * @param string $event - * @return void - */ - public function forget($event) - { - if (Str::contains($event, '*')) { - unset($this->wildcards[$event]); - } else { - unset($this->listeners[$event]); - } - } - - /** - * Forget all of the pushed listeners. - * - * @return void - */ - public function forgetPushed() - { - foreach ($this->listeners as $key => $value) { - if (Str::endsWith($key, '_pushed')) { - $this->forget($key); - } - } - } - - /** - * Get the queue implementation from the resolver. - * - * @return \Illuminate\Contracts\Queue\Queue - */ - protected function resolveQueue() - { - return call_user_func($this->queueResolver); - } - - /** - * Set the queue resolver implementation. - * - * @param callable $resolver - * @return $this - */ - public function setQueueResolver(callable $resolver) - { - $this->queueResolver = $resolver; - - return $this; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Events/EventServiceProvider.php b/vendor/laravel/framework/src/Illuminate/Events/EventServiceProvider.php deleted file mode 100755 index fa3ed6f6..00000000 --- a/vendor/laravel/framework/src/Illuminate/Events/EventServiceProvider.php +++ /dev/null @@ -1,23 +0,0 @@ -app->singleton('events', function ($app) { - return (new Dispatcher($app))->setQueueResolver(function () use ($app) { - return $app->make(QueueFactoryContract::class); - }); - }); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Events/composer.json b/vendor/laravel/framework/src/Illuminate/Events/composer.json deleted file mode 100755 index ceca4850..00000000 --- a/vendor/laravel/framework/src/Illuminate/Events/composer.json +++ /dev/null @@ -1,36 +0,0 @@ -{ - "name": "illuminate/events", - "description": "The Illuminate Events package.", - "license": "MIT", - "homepage": "https://laravel.com", - "support": { - "issues": "https://github.com/laravel/framework/issues", - "source": "https://github.com/laravel/framework" - }, - "authors": [ - { - "name": "Taylor Otwell", - "email": "taylor@laravel.com" - } - ], - "require": { - "php": "^7.1.3", - "illuminate/container": "5.6.*", - "illuminate/contracts": "5.6.*", - "illuminate/support": "5.6.*" - }, - "autoload": { - "psr-4": { - "Illuminate\\Events\\": "" - } - }, - "extra": { - "branch-alias": { - "dev-master": "5.6-dev" - } - }, - "config": { - "sort-packages": true - }, - "minimum-stability": "dev" -} diff --git a/vendor/laravel/framework/src/Illuminate/Filesystem/Cache.php b/vendor/laravel/framework/src/Illuminate/Filesystem/Cache.php deleted file mode 100644 index deb5fe5d..00000000 --- a/vendor/laravel/framework/src/Illuminate/Filesystem/Cache.php +++ /dev/null @@ -1,77 +0,0 @@ -key = $key; - $this->repository = $repository; - - if (! is_null($expire)) { - $this->expire = (int) ceil($expire / 60); - } - } - - /** - * Load the cache. - * - * @return void - */ - public function load() - { - $contents = $this->repository->get($this->key); - - if (! is_null($contents)) { - $this->setFromStorage($contents); - } - } - - /** - * Persist the cache. - * - * @return void - */ - public function save() - { - $contents = $this->getForStorage(); - - if (! is_null($this->expire)) { - $this->repository->put($this->key, $contents, $this->expire); - } else { - $this->repository->forever($this->key, $contents); - } - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php b/vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php deleted file mode 100644 index 65bd61ba..00000000 --- a/vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php +++ /dev/null @@ -1,566 +0,0 @@ -isFile($path)) { - return $lock ? $this->sharedGet($path) : file_get_contents($path); - } - - throw new FileNotFoundException("File does not exist at path {$path}"); - } - - /** - * Get contents of a file with shared access. - * - * @param string $path - * @return string - */ - public function sharedGet($path) - { - $contents = ''; - - $handle = fopen($path, 'rb'); - - if ($handle) { - try { - if (flock($handle, LOCK_SH)) { - clearstatcache(true, $path); - - $contents = fread($handle, $this->size($path) ?: 1); - - flock($handle, LOCK_UN); - } - } finally { - fclose($handle); - } - } - - return $contents; - } - - /** - * Get the returned value of a file. - * - * @param string $path - * @return mixed - * - * @throws \Illuminate\Contracts\Filesystem\FileNotFoundException - */ - public function getRequire($path) - { - if ($this->isFile($path)) { - return require $path; - } - - throw new FileNotFoundException("File does not exist at path {$path}"); - } - - /** - * Require the given file once. - * - * @param string $file - * @return mixed - */ - public function requireOnce($file) - { - require_once $file; - } - - /** - * Get the MD5 hash of the file at the given path. - * - * @param string $path - * @return string - */ - public function hash($path) - { - return md5_file($path); - } - - /** - * Write the contents of a file. - * - * @param string $path - * @param string $contents - * @param bool $lock - * @return int - */ - public function put($path, $contents, $lock = false) - { - return file_put_contents($path, $contents, $lock ? LOCK_EX : 0); - } - - /** - * Prepend to a file. - * - * @param string $path - * @param string $data - * @return int - */ - public function prepend($path, $data) - { - if ($this->exists($path)) { - return $this->put($path, $data.$this->get($path)); - } - - return $this->put($path, $data); - } - - /** - * Append to a file. - * - * @param string $path - * @param string $data - * @return int - */ - public function append($path, $data) - { - return file_put_contents($path, $data, FILE_APPEND); - } - - /** - * Get or set UNIX mode of a file or directory. - * - * @param string $path - * @param int $mode - * @return mixed - */ - public function chmod($path, $mode = null) - { - if ($mode) { - return chmod($path, $mode); - } - - return substr(sprintf('%o', fileperms($path)), -4); - } - - /** - * Delete the file at a given path. - * - * @param string|array $paths - * @return bool - */ - public function delete($paths) - { - $paths = is_array($paths) ? $paths : func_get_args(); - - $success = true; - - foreach ($paths as $path) { - try { - if (! @unlink($path)) { - $success = false; - } - } catch (ErrorException $e) { - $success = false; - } - } - - return $success; - } - - /** - * Move a file to a new location. - * - * @param string $path - * @param string $target - * @return bool - */ - public function move($path, $target) - { - return rename($path, $target); - } - - /** - * Copy a file to a new location. - * - * @param string $path - * @param string $target - * @return bool - */ - public function copy($path, $target) - { - return copy($path, $target); - } - - /** - * Create a hard link to the target file or directory. - * - * @param string $target - * @param string $link - * @return void - */ - public function link($target, $link) - { - if (! windows_os()) { - return symlink($target, $link); - } - - $mode = $this->isDirectory($target) ? 'J' : 'H'; - - exec("mklink /{$mode} \"{$link}\" \"{$target}\""); - } - - /** - * Extract the file name from a file path. - * - * @param string $path - * @return string - */ - public function name($path) - { - return pathinfo($path, PATHINFO_FILENAME); - } - - /** - * Extract the trailing name component from a file path. - * - * @param string $path - * @return string - */ - public function basename($path) - { - return pathinfo($path, PATHINFO_BASENAME); - } - - /** - * Extract the parent directory from a file path. - * - * @param string $path - * @return string - */ - public function dirname($path) - { - return pathinfo($path, PATHINFO_DIRNAME); - } - - /** - * Extract the file extension from a file path. - * - * @param string $path - * @return string - */ - public function extension($path) - { - return pathinfo($path, PATHINFO_EXTENSION); - } - - /** - * Get the file type of a given file. - * - * @param string $path - * @return string - */ - public function type($path) - { - return filetype($path); - } - - /** - * Get the mime-type of a given file. - * - * @param string $path - * @return string|false - */ - public function mimeType($path) - { - return finfo_file(finfo_open(FILEINFO_MIME_TYPE), $path); - } - - /** - * Get the file size of a given file. - * - * @param string $path - * @return int - */ - public function size($path) - { - return filesize($path); - } - - /** - * Get the file's last modification time. - * - * @param string $path - * @return int - */ - public function lastModified($path) - { - return filemtime($path); - } - - /** - * Determine if the given path is a directory. - * - * @param string $directory - * @return bool - */ - public function isDirectory($directory) - { - return is_dir($directory); - } - - /** - * Determine if the given path is readable. - * - * @param string $path - * @return bool - */ - public function isReadable($path) - { - return is_readable($path); - } - - /** - * Determine if the given path is writable. - * - * @param string $path - * @return bool - */ - public function isWritable($path) - { - return is_writable($path); - } - - /** - * Determine if the given path is a file. - * - * @param string $file - * @return bool - */ - public function isFile($file) - { - return is_file($file); - } - - /** - * Find path names matching a given pattern. - * - * @param string $pattern - * @param int $flags - * @return array - */ - public function glob($pattern, $flags = 0) - { - return glob($pattern, $flags); - } - - /** - * Get an array of all files in a directory. - * - * @param string $directory - * @param bool $hidden - * @return \Symfony\Component\Finder\SplFileInfo[] - */ - public function files($directory, $hidden = false) - { - return iterator_to_array( - Finder::create()->files()->ignoreDotFiles(! $hidden)->in($directory)->depth(0)->sortByName(), - false - ); - } - - /** - * Get all of the files from the given directory (recursive). - * - * @param string $directory - * @param bool $hidden - * @return \Symfony\Component\Finder\SplFileInfo[] - */ - public function allFiles($directory, $hidden = false) - { - return iterator_to_array( - Finder::create()->files()->ignoreDotFiles(! $hidden)->in($directory)->sortByName(), - false - ); - } - - /** - * Get all of the directories within a given directory. - * - * @param string $directory - * @return array - */ - public function directories($directory) - { - $directories = []; - - foreach (Finder::create()->in($directory)->directories()->depth(0)->sortByName() as $dir) { - $directories[] = $dir->getPathname(); - } - - return $directories; - } - - /** - * Create a directory. - * - * @param string $path - * @param int $mode - * @param bool $recursive - * @param bool $force - * @return bool - */ - public function makeDirectory($path, $mode = 0755, $recursive = false, $force = false) - { - if ($force) { - return @mkdir($path, $mode, $recursive); - } - - return mkdir($path, $mode, $recursive); - } - - /** - * Move a directory. - * - * @param string $from - * @param string $to - * @param bool $overwrite - * @return bool - */ - public function moveDirectory($from, $to, $overwrite = false) - { - if ($overwrite && $this->isDirectory($to)) { - if (! $this->deleteDirectory($to)) { - return false; - } - } - - return @rename($from, $to) === true; - } - - /** - * Copy a directory from one location to another. - * - * @param string $directory - * @param string $destination - * @param int $options - * @return bool - */ - public function copyDirectory($directory, $destination, $options = null) - { - if (! $this->isDirectory($directory)) { - return false; - } - - $options = $options ?: FilesystemIterator::SKIP_DOTS; - - // If the destination directory does not actually exist, we will go ahead and - // create it recursively, which just gets the destination prepared to copy - // the files over. Once we make the directory we'll proceed the copying. - if (! $this->isDirectory($destination)) { - $this->makeDirectory($destination, 0777, true); - } - - $items = new FilesystemIterator($directory, $options); - - foreach ($items as $item) { - // As we spin through items, we will check to see if the current file is actually - // a directory or a file. When it is actually a directory we will need to call - // back into this function recursively to keep copying these nested folders. - $target = $destination.'/'.$item->getBasename(); - - if ($item->isDir()) { - $path = $item->getPathname(); - - if (! $this->copyDirectory($path, $target, $options)) { - return false; - } - } - - // If the current items is just a regular file, we will just copy this to the new - // location and keep looping. If for some reason the copy fails we'll bail out - // and return false, so the developer is aware that the copy process failed. - else { - if (! $this->copy($item->getPathname(), $target)) { - return false; - } - } - } - - return true; - } - - /** - * Recursively delete a directory. - * - * The directory itself may be optionally preserved. - * - * @param string $directory - * @param bool $preserve - * @return bool - */ - public function deleteDirectory($directory, $preserve = false) - { - if (! $this->isDirectory($directory)) { - return false; - } - - $items = new FilesystemIterator($directory); - - foreach ($items as $item) { - // If the item is a directory, we can just recurse into the function and - // delete that sub-directory otherwise we'll just delete the file and - // keep iterating through each file until the directory is cleaned. - if ($item->isDir() && ! $item->isLink()) { - $this->deleteDirectory($item->getPathname()); - } - - // If the item is just a file, we can go ahead and delete it since we're - // just looping through and waxing all of the files in this directory - // and calling directories recursively, so we delete the real path. - else { - $this->delete($item->getPathname()); - } - } - - if (! $preserve) { - @rmdir($directory); - } - - return true; - } - - /** - * Empty the specified directory of all files and folders. - * - * @param string $directory - * @return bool - */ - public function cleanDirectory($directory) - { - return $this->deleteDirectory($directory, true); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Filesystem/FilesystemAdapter.php b/vendor/laravel/framework/src/Illuminate/Filesystem/FilesystemAdapter.php deleted file mode 100644 index 40024f21..00000000 --- a/vendor/laravel/framework/src/Illuminate/Filesystem/FilesystemAdapter.php +++ /dev/null @@ -1,686 +0,0 @@ -driver = $driver; - } - - /** - * Assert that the given file exists. - * - * @param string $path - * @return void - */ - public function assertExists($path) - { - PHPUnit::assertTrue( - $this->exists($path), "Unable to find a file at path [{$path}]." - ); - } - - /** - * Assert that the given file does not exist. - * - * @param string $path - * @return void - */ - public function assertMissing($path) - { - PHPUnit::assertFalse( - $this->exists($path), "Found unexpected file at path [{$path}]." - ); - } - - /** - * Determine if a file exists. - * - * @param string $path - * @return bool - */ - public function exists($path) - { - return $this->driver->has($path); - } - - /** - * Get the full path for the file at the given "short" path. - * - * @param string $path - * @return string - */ - public function path($path) - { - return $this->driver->getAdapter()->getPathPrefix().$path; - } - - /** - * Get the contents of a file. - * - * @param string $path - * @return string - * - * @throws \Illuminate\Contracts\Filesystem\FileNotFoundException - */ - public function get($path) - { - try { - return $this->driver->read($path); - } catch (FileNotFoundException $e) { - throw new ContractFileNotFoundException($path, $e->getCode(), $e); - } - } - - /** - * Create a streamed response for a given file. - * - * @param string $path - * @param string|null $name - * @param array|null $headers - * @param string|null $disposition - * @return \Symfony\Component\HttpFoundation\StreamedResponse - */ - public function response($path, $name = null, array $headers = [], $disposition = 'inline') - { - $response = new StreamedResponse; - - $disposition = $response->headers->makeDisposition($disposition, $name ?? basename($path)); - - $response->headers->replace($headers + [ - 'Content-Type' => $this->mimeType($path), - 'Content-Length' => $this->size($path), - 'Content-Disposition' => $disposition, - ]); - - $response->setCallback(function () use ($path) { - $stream = $this->driver->readStream($path); - fpassthru($stream); - fclose($stream); - }); - - return $response; - } - - /** - * Create a streamed download response for a given file. - * - * @param string $path - * @param string|null $name - * @param array|null $headers - * @return \Symfony\Component\HttpFoundation\StreamedResponse - */ - public function download($path, $name = null, array $headers = []) - { - return $this->response($path, $name, $headers, 'attachment'); - } - - /** - * Write the contents of a file. - * - * @param string $path - * @param string|resource $contents - * @param mixed $options - * @return bool - */ - public function put($path, $contents, $options = []) - { - $options = is_string($options) - ? ['visibility' => $options] - : (array) $options; - - // If the given contents is actually a file or uploaded file instance than we will - // automatically store the file using a stream. This provides a convenient path - // for the developer to store streams without managing them manually in code. - if ($contents instanceof File || - $contents instanceof UploadedFile) { - return $this->putFile($path, $contents, $options); - } - - return is_resource($contents) - ? $this->driver->putStream($path, $contents, $options) - : $this->driver->put($path, $contents, $options); - } - - /** - * Store the uploaded file on the disk. - * - * @param string $path - * @param \Illuminate\Http\File|\Illuminate\Http\UploadedFile $file - * @param array $options - * @return string|false - */ - public function putFile($path, $file, $options = []) - { - return $this->putFileAs($path, $file, $file->hashName(), $options); - } - - /** - * Store the uploaded file on the disk with a given name. - * - * @param string $path - * @param \Illuminate\Http\File|\Illuminate\Http\UploadedFile $file - * @param string $name - * @param array $options - * @return string|false - */ - public function putFileAs($path, $file, $name, $options = []) - { - $stream = fopen($file->getRealPath(), 'r'); - - // Next, we will format the path of the file and store the file using a stream since - // they provide better performance than alternatives. Once we write the file this - // stream will get closed automatically by us so the developer doesn't have to. - $result = $this->put( - $path = trim($path.'/'.$name, '/'), $stream, $options - ); - - if (is_resource($stream)) { - fclose($stream); - } - - return $result ? $path : false; - } - - /** - * Get the visibility for the given path. - * - * @param string $path - * @return string - */ - public function getVisibility($path) - { - if ($this->driver->getVisibility($path) == AdapterInterface::VISIBILITY_PUBLIC) { - return FilesystemContract::VISIBILITY_PUBLIC; - } - - return FilesystemContract::VISIBILITY_PRIVATE; - } - - /** - * Set the visibility for the given path. - * - * @param string $path - * @param string $visibility - * @return void - */ - public function setVisibility($path, $visibility) - { - return $this->driver->setVisibility($path, $this->parseVisibility($visibility)); - } - - /** - * Prepend to a file. - * - * @param string $path - * @param string $data - * @param string $separator - * @return int - */ - public function prepend($path, $data, $separator = PHP_EOL) - { - if ($this->exists($path)) { - return $this->put($path, $data.$separator.$this->get($path)); - } - - return $this->put($path, $data); - } - - /** - * Append to a file. - * - * @param string $path - * @param string $data - * @param string $separator - * @return int - */ - public function append($path, $data, $separator = PHP_EOL) - { - if ($this->exists($path)) { - return $this->put($path, $this->get($path).$separator.$data); - } - - return $this->put($path, $data); - } - - /** - * Delete the file at a given path. - * - * @param string|array $paths - * @return bool - */ - public function delete($paths) - { - $paths = is_array($paths) ? $paths : func_get_args(); - - $success = true; - - foreach ($paths as $path) { - try { - if (! $this->driver->delete($path)) { - $success = false; - } - } catch (FileNotFoundException $e) { - $success = false; - } - } - - return $success; - } - - /** - * Copy a file to a new location. - * - * @param string $from - * @param string $to - * @return bool - */ - public function copy($from, $to) - { - return $this->driver->copy($from, $to); - } - - /** - * Move a file to a new location. - * - * @param string $from - * @param string $to - * @return bool - */ - public function move($from, $to) - { - return $this->driver->rename($from, $to); - } - - /** - * Get the file size of a given file. - * - * @param string $path - * @return int - */ - public function size($path) - { - return $this->driver->getSize($path); - } - - /** - * Get the mime-type of a given file. - * - * @param string $path - * @return string|false - */ - public function mimeType($path) - { - return $this->driver->getMimetype($path); - } - - /** - * Get the file's last modification time. - * - * @param string $path - * @return int - */ - public function lastModified($path) - { - return $this->driver->getTimestamp($path); - } - - /** - * Get the URL for the file at the given path. - * - * @param string $path - * @return string - */ - public function url($path) - { - $adapter = $this->driver->getAdapter(); - - if ($adapter instanceof CachedAdapter) { - $adapter = $adapter->getAdapter(); - } - - if (method_exists($adapter, 'getUrl')) { - return $adapter->getUrl($path); - } elseif (method_exists($this->driver, 'getUrl')) { - return $this->driver->getUrl($path); - } elseif ($adapter instanceof AwsS3Adapter) { - return $this->getAwsUrl($adapter, $path); - } elseif ($adapter instanceof RackspaceAdapter) { - return $this->getRackspaceUrl($adapter, $path); - } elseif ($adapter instanceof LocalAdapter) { - return $this->getLocalUrl($path); - } else { - throw new RuntimeException('This driver does not support retrieving URLs.'); - } - } - - /** - * Get the URL for the file at the given path. - * - * @param \League\Flysystem\AwsS3v3\AwsS3Adapter $adapter - * @param string $path - * @return string - */ - protected function getAwsUrl($adapter, $path) - { - // If an explicit base URL has been set on the disk configuration then we will use - // it as the base URL instead of the default path. This allows the developer to - // have full control over the base path for this filesystem's generated URLs. - if (! is_null($url = $this->driver->getConfig()->get('url'))) { - return $this->concatPathToUrl($url, $adapter->getPathPrefix().$path); - } - - return $adapter->getClient()->getObjectUrl( - $adapter->getBucket(), $adapter->getPathPrefix().$path - ); - } - - /** - * Get the URL for the file at the given path. - * - * @param \League\Flysystem\Rackspace\RackspaceAdapter $adapter - * @param string $path - * @return string - */ - protected function getRackspaceUrl($adapter, $path) - { - return (string) $adapter->getContainer()->getObject($path)->getPublicUrl(); - } - - /** - * Get the URL for the file at the given path. - * - * @param string $path - * @return string - */ - protected function getLocalUrl($path) - { - $config = $this->driver->getConfig(); - - // If an explicit base URL has been set on the disk configuration then we will use - // it as the base URL instead of the default path. This allows the developer to - // have full control over the base path for this filesystem's generated URLs. - if ($config->has('url')) { - return $this->concatPathToUrl($config->get('url'), $path); - } - - $path = '/storage/'.$path; - - // If the path contains "storage/public", it probably means the developer is using - // the default disk to generate the path instead of the "public" disk like they - // are really supposed to use. We will remove the public from this path here. - if (Str::contains($path, '/storage/public/')) { - return Str::replaceFirst('/public/', '/', $path); - } - - return $path; - } - - /** - * Get a temporary URL for the file at the given path. - * - * @param string $path - * @param \DateTimeInterface $expiration - * @param array $options - * @return string - */ - public function temporaryUrl($path, $expiration, array $options = []) - { - $adapter = $this->driver->getAdapter(); - - if ($adapter instanceof CachedAdapter) { - $adapter = $adapter->getAdapter(); - } - - if (method_exists($adapter, 'getTemporaryUrl')) { - return $adapter->getTemporaryUrl($path, $expiration, $options); - } elseif ($adapter instanceof AwsS3Adapter) { - return $this->getAwsTemporaryUrl($adapter, $path, $expiration, $options); - } elseif ($adapter instanceof RackspaceAdapter) { - return $this->getRackspaceTemporaryUrl($adapter, $path, $expiration, $options); - } else { - throw new RuntimeException('This driver does not support creating temporary URLs.'); - } - } - - /** - * Get a temporary URL for the file at the given path. - * - * @param \League\Flysystem\AwsS3v3\AwsS3Adapter $adapter - * @param string $path - * @param \DateTimeInterface $expiration - * @param array $options - * @return string - */ - public function getAwsTemporaryUrl($adapter, $path, $expiration, $options) - { - $client = $adapter->getClient(); - - $command = $client->getCommand('GetObject', array_merge([ - 'Bucket' => $adapter->getBucket(), - 'Key' => $adapter->getPathPrefix().$path, - ], $options)); - - return (string) $client->createPresignedRequest( - $command, $expiration - )->getUri(); - } - - /** - * Get a temporary URL for the file at the given path. - * - * @param \League\Flysystem\Rackspace\RackspaceAdapter $adapter - * @param string $path - * @param \DateTimeInterface $expiration - * @param array $options - * @return string - */ - public function getRackspaceTemporaryUrl($adapter, $path, $expiration, $options) - { - return $adapter->getContainer()->getObject($path)->getTemporaryUrl( - Carbon::now()->diffInSeconds($expiration), - $options['method'] ?? 'GET', - $options['forcePublicUrl'] ?? true - ); - } - - /** - * Concatenate a path to a URL. - * - * @param string $url - * @param string $path - * @return string - */ - protected function concatPathToUrl($url, $path) - { - return rtrim($url, '/').'/'.ltrim($path, '/'); - } - - /** - * Get an array of all files in a directory. - * - * @param string|null $directory - * @param bool $recursive - * @return array - */ - public function files($directory = null, $recursive = false) - { - $contents = $this->driver->listContents($directory, $recursive); - - return $this->filterContentsByType($contents, 'file'); - } - - /** - * Get all of the files from the given directory (recursive). - * - * @param string|null $directory - * @return array - */ - public function allFiles($directory = null) - { - return $this->files($directory, true); - } - - /** - * Get all of the directories within a given directory. - * - * @param string|null $directory - * @param bool $recursive - * @return array - */ - public function directories($directory = null, $recursive = false) - { - $contents = $this->driver->listContents($directory, $recursive); - - return $this->filterContentsByType($contents, 'dir'); - } - - /** - * Get all (recursive) of the directories within a given directory. - * - * @param string|null $directory - * @return array - */ - public function allDirectories($directory = null) - { - return $this->directories($directory, true); - } - - /** - * Create a directory. - * - * @param string $path - * @return bool - */ - public function makeDirectory($path) - { - return $this->driver->createDir($path); - } - - /** - * Recursively delete a directory. - * - * @param string $directory - * @return bool - */ - public function deleteDirectory($directory) - { - return $this->driver->deleteDir($directory); - } - - /** - * Flush the Flysystem cache. - * - * @return void - */ - public function flushCache() - { - $adapter = $this->driver->getAdapter(); - - if ($adapter instanceof CachedAdapter) { - $adapter->getCache()->flush(); - } - } - - /** - * Get the Flysystem driver. - * - * @return \League\Flysystem\FilesystemInterface - */ - public function getDriver() - { - return $this->driver; - } - - /** - * Filter directory contents by type. - * - * @param array $contents - * @param string $type - * @return array - */ - protected function filterContentsByType($contents, $type) - { - return Collection::make($contents) - ->where('type', $type) - ->pluck('path') - ->values() - ->all(); - } - - /** - * Parse the given visibility value. - * - * @param string|null $visibility - * @return string|null - * - * @throws \InvalidArgumentException - */ - protected function parseVisibility($visibility) - { - if (is_null($visibility)) { - return; - } - - switch ($visibility) { - case FilesystemContract::VISIBILITY_PUBLIC: - return AdapterInterface::VISIBILITY_PUBLIC; - case FilesystemContract::VISIBILITY_PRIVATE: - return AdapterInterface::VISIBILITY_PRIVATE; - } - - throw new InvalidArgumentException("Unknown visibility: {$visibility}"); - } - - /** - * Pass dynamic methods call onto Flysystem. - * - * @param string $method - * @param array $parameters - * @return mixed - * - * @throws \BadMethodCallException - */ - public function __call($method, array $parameters) - { - return call_user_func_array([$this->driver, $method], $parameters); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Filesystem/FilesystemManager.php b/vendor/laravel/framework/src/Illuminate/Filesystem/FilesystemManager.php deleted file mode 100644 index 7897352c..00000000 --- a/vendor/laravel/framework/src/Illuminate/Filesystem/FilesystemManager.php +++ /dev/null @@ -1,401 +0,0 @@ -app = $app; - } - - /** - * Get a filesystem instance. - * - * @param string $name - * @return \Illuminate\Contracts\Filesystem\Filesystem - */ - public function drive($name = null) - { - return $this->disk($name); - } - - /** - * Get a filesystem instance. - * - * @param string $name - * @return \Illuminate\Contracts\Filesystem\Filesystem - */ - public function disk($name = null) - { - $name = $name ?: $this->getDefaultDriver(); - - return $this->disks[$name] = $this->get($name); - } - - /** - * Get a default cloud filesystem instance. - * - * @return \Illuminate\Contracts\Filesystem\Filesystem - */ - public function cloud() - { - $name = $this->getDefaultCloudDriver(); - - return $this->disks[$name] = $this->get($name); - } - - /** - * Attempt to get the disk from the local cache. - * - * @param string $name - * @return \Illuminate\Contracts\Filesystem\Filesystem - */ - protected function get($name) - { - return $this->disks[$name] ?? $this->resolve($name); - } - - /** - * Resolve the given disk. - * - * @param string $name - * @return \Illuminate\Contracts\Filesystem\Filesystem - * - * @throws \InvalidArgumentException - */ - protected function resolve($name) - { - $config = $this->getConfig($name); - - if (isset($this->customCreators[$config['driver']])) { - return $this->callCustomCreator($config); - } - - $driverMethod = 'create'.ucfirst($config['driver']).'Driver'; - - if (method_exists($this, $driverMethod)) { - return $this->{$driverMethod}($config); - } else { - throw new InvalidArgumentException("Driver [{$config['driver']}] is not supported."); - } - } - - /** - * Call a custom driver creator. - * - * @param array $config - * @return \Illuminate\Contracts\Filesystem\Filesystem - */ - protected function callCustomCreator(array $config) - { - $driver = $this->customCreators[$config['driver']]($this->app, $config); - - if ($driver instanceof FilesystemInterface) { - return $this->adapt($driver); - } - - return $driver; - } - - /** - * Create an instance of the local driver. - * - * @param array $config - * @return \Illuminate\Contracts\Filesystem\Filesystem - */ - public function createLocalDriver(array $config) - { - $permissions = $config['permissions'] ?? []; - - $links = ($config['links'] ?? null) === 'skip' - ? LocalAdapter::SKIP_LINKS - : LocalAdapter::DISALLOW_LINKS; - - return $this->adapt($this->createFlysystem(new LocalAdapter( - $config['root'], LOCK_EX, $links, $permissions - ), $config)); - } - - /** - * Create an instance of the ftp driver. - * - * @param array $config - * @return \Illuminate\Contracts\Filesystem\Filesystem - */ - public function createFtpDriver(array $config) - { - return $this->adapt($this->createFlysystem( - new FtpAdapter($config), $config - )); - } - - /** - * Create an instance of the sftp driver. - * - * @param array $config - * @return \Illuminate\Contracts\Filesystem\Filesystem - */ - public function createSftpDriver(array $config) - { - return $this->adapt($this->createFlysystem( - new SftpAdapter($config), $config - )); - } - - /** - * Create an instance of the Amazon S3 driver. - * - * @param array $config - * @return \Illuminate\Contracts\Filesystem\Cloud - */ - public function createS3Driver(array $config) - { - $s3Config = $this->formatS3Config($config); - - $root = $s3Config['root'] ?? null; - - $options = $config['options'] ?? []; - - return $this->adapt($this->createFlysystem( - new S3Adapter(new S3Client($s3Config), $s3Config['bucket'], $root, $options), $config - )); - } - - /** - * Format the given S3 configuration with the default options. - * - * @param array $config - * @return array - */ - protected function formatS3Config(array $config) - { - $config += ['version' => 'latest']; - - if ($config['key'] && $config['secret']) { - $config['credentials'] = Arr::only($config, ['key', 'secret', 'token']); - } - - return $config; - } - - /** - * Create an instance of the Rackspace driver. - * - * @param array $config - * @return \Illuminate\Contracts\Filesystem\Cloud - */ - public function createRackspaceDriver(array $config) - { - $client = new Rackspace($config['endpoint'], [ - 'username' => $config['username'], 'apiKey' => $config['key'], - ], $config['options'] ?? []); - - $root = $config['root'] ?? null; - - return $this->adapt($this->createFlysystem( - new RackspaceAdapter($this->getRackspaceContainer($client, $config), $root), $config - )); - } - - /** - * Get the Rackspace Cloud Files container. - * - * @param \OpenCloud\Rackspace $client - * @param array $config - * @return \OpenCloud\ObjectStore\Resource\Container - */ - protected function getRackspaceContainer(Rackspace $client, array $config) - { - $urlType = $config['url_type'] ?? null; - - $store = $client->objectStoreService('cloudFiles', $config['region'], $urlType); - - return $store->getContainer($config['container']); - } - - /** - * Create a Flysystem instance with the given adapter. - * - * @param \League\Flysystem\AdapterInterface $adapter - * @param array $config - * @return \League\Flysystem\FilesystemInterface - */ - protected function createFlysystem(AdapterInterface $adapter, array $config) - { - $cache = Arr::pull($config, 'cache'); - - $config = Arr::only($config, ['visibility', 'disable_asserts', 'url']); - - if ($cache) { - $adapter = new CachedAdapter($adapter, $this->createCacheStore($cache)); - } - - return new Flysystem($adapter, count($config) > 0 ? $config : null); - } - - /** - * Create a cache store instance. - * - * @param mixed $config - * @return \League\Flysystem\Cached\CacheInterface - * - * @throws \InvalidArgumentException - */ - protected function createCacheStore($config) - { - if ($config === true) { - return new MemoryStore; - } - - return new Cache( - $this->app['cache']->store($config['store']), - $config['prefix'] ?? 'flysystem', - $config['expire'] ?? null - ); - } - - /** - * Adapt the filesystem implementation. - * - * @param \League\Flysystem\FilesystemInterface $filesystem - * @return \Illuminate\Contracts\Filesystem\Filesystem - */ - protected function adapt(FilesystemInterface $filesystem) - { - return new FilesystemAdapter($filesystem); - } - - /** - * Set the given disk instance. - * - * @param string $name - * @param mixed $disk - * @return $this - */ - public function set($name, $disk) - { - $this->disks[$name] = $disk; - - return $this; - } - - /** - * Get the filesystem connection configuration. - * - * @param string $name - * @return array - */ - protected function getConfig($name) - { - return $this->app['config']["filesystems.disks.{$name}"]; - } - - /** - * Get the default driver name. - * - * @return string - */ - public function getDefaultDriver() - { - return $this->app['config']['filesystems.default']; - } - - /** - * Get the default cloud driver name. - * - * @return string - */ - public function getDefaultCloudDriver() - { - return $this->app['config']['filesystems.cloud']; - } - - /** - * Unset the given disk instances. - * - * @param array|string $disk - * @return $this - */ - public function forgetDisk($disk) - { - foreach ((array) $disk as $diskName) { - unset($this->disks[$diskName]); - } - - return $this; - } - - /** - * Register a custom driver creator Closure. - * - * @param string $driver - * @param \Closure $callback - * @return $this - */ - public function extend($driver, Closure $callback) - { - $this->customCreators[$driver] = $callback; - - return $this; - } - - /** - * Dynamically call the default driver instance. - * - * @param string $method - * @param array $parameters - * @return mixed - */ - public function __call($method, $parameters) - { - return $this->disk()->$method(...$parameters); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Filesystem/FilesystemServiceProvider.php b/vendor/laravel/framework/src/Illuminate/Filesystem/FilesystemServiceProvider.php deleted file mode 100644 index 69322705..00000000 --- a/vendor/laravel/framework/src/Illuminate/Filesystem/FilesystemServiceProvider.php +++ /dev/null @@ -1,82 +0,0 @@ -registerNativeFilesystem(); - - $this->registerFlysystem(); - } - - /** - * Register the native filesystem implementation. - * - * @return void - */ - protected function registerNativeFilesystem() - { - $this->app->singleton('files', function () { - return new Filesystem; - }); - } - - /** - * Register the driver based filesystem. - * - * @return void - */ - protected function registerFlysystem() - { - $this->registerManager(); - - $this->app->singleton('filesystem.disk', function () { - return $this->app['filesystem']->disk($this->getDefaultDriver()); - }); - - $this->app->singleton('filesystem.cloud', function () { - return $this->app['filesystem']->disk($this->getCloudDriver()); - }); - } - - /** - * Register the filesystem manager. - * - * @return void - */ - protected function registerManager() - { - $this->app->singleton('filesystem', function () { - return new FilesystemManager($this->app); - }); - } - - /** - * Get the default file driver. - * - * @return string - */ - protected function getDefaultDriver() - { - return $this->app['config']['filesystems.default']; - } - - /** - * Get the default cloud based file driver. - * - * @return string - */ - protected function getCloudDriver() - { - return $this->app['config']['filesystems.cloud']; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Filesystem/composer.json b/vendor/laravel/framework/src/Illuminate/Filesystem/composer.json deleted file mode 100644 index 041413ab..00000000 --- a/vendor/laravel/framework/src/Illuminate/Filesystem/composer.json +++ /dev/null @@ -1,43 +0,0 @@ -{ - "name": "illuminate/filesystem", - "description": "The Illuminate Filesystem package.", - "license": "MIT", - "homepage": "https://laravel.com", - "support": { - "issues": "https://github.com/laravel/framework/issues", - "source": "https://github.com/laravel/framework" - }, - "authors": [ - { - "name": "Taylor Otwell", - "email": "taylor@laravel.com" - } - ], - "require": { - "php": "^7.1.3", - "illuminate/contracts": "5.6.*", - "illuminate/support": "5.6.*", - "symfony/finder": "~4.0" - }, - "autoload": { - "psr-4": { - "Illuminate\\Filesystem\\": "" - } - }, - "extra": { - "branch-alias": { - "dev-master": "5.6-dev" - } - }, - "suggest": { - "league/flysystem": "Required to use the Flysystem local and FTP drivers (~1.0).", - "league/flysystem-aws-s3-v3": "Required to use the Flysystem S3 driver (~1.0).", - "league/flysystem-cached-adapter": "Required to use the Flysystem cache (~1.0).", - "league/flysystem-rackspace": "Required to use the Flysystem Rackspace driver (~1.0).", - "league/flysystem-sftp": "Required to use the Flysystem SFTP driver (~1.0)." - }, - "config": { - "sort-packages": true - }, - "minimum-stability": "dev" -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/AliasLoader.php b/vendor/laravel/framework/src/Illuminate/Foundation/AliasLoader.php deleted file mode 100755 index 63f38913..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/AliasLoader.php +++ /dev/null @@ -1,243 +0,0 @@ -aliases = $aliases; - } - - /** - * Get or create the singleton alias loader instance. - * - * @param array $aliases - * @return \Illuminate\Foundation\AliasLoader - */ - public static function getInstance(array $aliases = []) - { - if (is_null(static::$instance)) { - return static::$instance = new static($aliases); - } - - $aliases = array_merge(static::$instance->getAliases(), $aliases); - - static::$instance->setAliases($aliases); - - return static::$instance; - } - - /** - * Load a class alias if it is registered. - * - * @param string $alias - * @return bool|null - */ - public function load($alias) - { - if (static::$facadeNamespace && strpos($alias, static::$facadeNamespace) === 0) { - $this->loadFacade($alias); - - return true; - } - - if (isset($this->aliases[$alias])) { - return class_alias($this->aliases[$alias], $alias); - } - } - - /** - * Load a real-time facade for the given alias. - * - * @param string $alias - * @return void - */ - protected function loadFacade($alias) - { - require $this->ensureFacadeExists($alias); - } - - /** - * Ensure that the given alias has an existing real-time facade class. - * - * @param string $alias - * @return string - */ - protected function ensureFacadeExists($alias) - { - if (file_exists($path = storage_path('framework/cache/facade-'.sha1($alias).'.php'))) { - return $path; - } - - file_put_contents($path, $this->formatFacadeStub( - $alias, file_get_contents(__DIR__.'/stubs/facade.stub') - )); - - return $path; - } - - /** - * Format the facade stub with the proper namespace and class. - * - * @param string $alias - * @param string $stub - * @return string - */ - protected function formatFacadeStub($alias, $stub) - { - $replacements = [ - str_replace('/', '\\', dirname(str_replace('\\', '/', $alias))), - class_basename($alias), - substr($alias, strlen(static::$facadeNamespace)), - ]; - - return str_replace( - ['DummyNamespace', 'DummyClass', 'DummyTarget'], $replacements, $stub - ); - } - - /** - * Add an alias to the loader. - * - * @param string $class - * @param string $alias - * @return void - */ - public function alias($class, $alias) - { - $this->aliases[$class] = $alias; - } - - /** - * Register the loader on the auto-loader stack. - * - * @return void - */ - public function register() - { - if (! $this->registered) { - $this->prependToLoaderStack(); - - $this->registered = true; - } - } - - /** - * Prepend the load method to the auto-loader stack. - * - * @return void - */ - protected function prependToLoaderStack() - { - spl_autoload_register([$this, 'load'], true, true); - } - - /** - * Get the registered aliases. - * - * @return array - */ - public function getAliases() - { - return $this->aliases; - } - - /** - * Set the registered aliases. - * - * @param array $aliases - * @return void - */ - public function setAliases(array $aliases) - { - $this->aliases = $aliases; - } - - /** - * Indicates if the loader has been registered. - * - * @return bool - */ - public function isRegistered() - { - return $this->registered; - } - - /** - * Set the "registered" state of the loader. - * - * @param bool $value - * @return void - */ - public function setRegistered($value) - { - $this->registered = $value; - } - - /** - * Set the real-time facade namespace. - * - * @param string $namespace - * @return void - */ - public static function setFacadeNamespace($namespace) - { - static::$facadeNamespace = rtrim($namespace, '\\').'\\'; - } - - /** - * Set the value of the singleton alias loader. - * - * @param \Illuminate\Foundation\AliasLoader $loader - * @return void - */ - public static function setInstance($loader) - { - static::$instance = $loader; - } - - /** - * Clone method. - * - * @return void - */ - private function __clone() - { - // - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Application.php b/vendor/laravel/framework/src/Illuminate/Foundation/Application.php deleted file mode 100755 index 77fe0389..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Application.php +++ /dev/null @@ -1,1166 +0,0 @@ -setBasePath($basePath); - } - - $this->registerBaseBindings(); - - $this->registerBaseServiceProviders(); - - $this->registerCoreContainerAliases(); - } - - /** - * Get the version number of the application. - * - * @return string - */ - public function version() - { - return static::VERSION; - } - - /** - * Register the basic bindings into the container. - * - * @return void - */ - protected function registerBaseBindings() - { - static::setInstance($this); - - $this->instance('app', $this); - - $this->instance(Container::class, $this); - - $this->instance(PackageManifest::class, new PackageManifest( - new Filesystem, $this->basePath(), $this->getCachedPackagesPath() - )); - } - - /** - * Register all of the base service providers. - * - * @return void - */ - protected function registerBaseServiceProviders() - { - $this->register(new EventServiceProvider($this)); - - $this->register(new LogServiceProvider($this)); - - $this->register(new RoutingServiceProvider($this)); - } - - /** - * Run the given array of bootstrap classes. - * - * @param array $bootstrappers - * @return void - */ - public function bootstrapWith(array $bootstrappers) - { - $this->hasBeenBootstrapped = true; - - foreach ($bootstrappers as $bootstrapper) { - $this['events']->fire('bootstrapping: '.$bootstrapper, [$this]); - - $this->make($bootstrapper)->bootstrap($this); - - $this['events']->fire('bootstrapped: '.$bootstrapper, [$this]); - } - } - - /** - * Register a callback to run after loading the environment. - * - * @param \Closure $callback - * @return void - */ - public function afterLoadingEnvironment(Closure $callback) - { - return $this->afterBootstrapping( - LoadEnvironmentVariables::class, $callback - ); - } - - /** - * Register a callback to run before a bootstrapper. - * - * @param string $bootstrapper - * @param \Closure $callback - * @return void - */ - public function beforeBootstrapping($bootstrapper, Closure $callback) - { - $this['events']->listen('bootstrapping: '.$bootstrapper, $callback); - } - - /** - * Register a callback to run after a bootstrapper. - * - * @param string $bootstrapper - * @param \Closure $callback - * @return void - */ - public function afterBootstrapping($bootstrapper, Closure $callback) - { - $this['events']->listen('bootstrapped: '.$bootstrapper, $callback); - } - - /** - * Determine if the application has been bootstrapped before. - * - * @return bool - */ - public function hasBeenBootstrapped() - { - return $this->hasBeenBootstrapped; - } - - /** - * Set the base path for the application. - * - * @param string $basePath - * @return $this - */ - public function setBasePath($basePath) - { - $this->basePath = rtrim($basePath, '\/'); - - $this->bindPathsInContainer(); - - return $this; - } - - /** - * Bind all of the application paths in the container. - * - * @return void - */ - protected function bindPathsInContainer() - { - $this->instance('path', $this->path()); - $this->instance('path.base', $this->basePath()); - $this->instance('path.lang', $this->langPath()); - $this->instance('path.config', $this->configPath()); - $this->instance('path.public', $this->publicPath()); - $this->instance('path.storage', $this->storagePath()); - $this->instance('path.database', $this->databasePath()); - $this->instance('path.resources', $this->resourcePath()); - $this->instance('path.bootstrap', $this->bootstrapPath()); - } - - /** - * Get the path to the application "app" directory. - * - * @param string $path Optionally, a path to append to the app path - * @return string - */ - public function path($path = '') - { - return $this->basePath.DIRECTORY_SEPARATOR.'app'.($path ? DIRECTORY_SEPARATOR.$path : $path); - } - - /** - * Get the base path of the Laravel installation. - * - * @param string $path Optionally, a path to append to the base path - * @return string - */ - public function basePath($path = '') - { - return $this->basePath.($path ? DIRECTORY_SEPARATOR.$path : $path); - } - - /** - * Get the path to the bootstrap directory. - * - * @param string $path Optionally, a path to append to the bootstrap path - * @return string - */ - public function bootstrapPath($path = '') - { - return $this->basePath.DIRECTORY_SEPARATOR.'bootstrap'.($path ? DIRECTORY_SEPARATOR.$path : $path); - } - - /** - * Get the path to the application configuration files. - * - * @param string $path Optionally, a path to append to the config path - * @return string - */ - public function configPath($path = '') - { - return $this->basePath.DIRECTORY_SEPARATOR.'config'.($path ? DIRECTORY_SEPARATOR.$path : $path); - } - - /** - * Get the path to the database directory. - * - * @param string $path Optionally, a path to append to the database path - * @return string - */ - public function databasePath($path = '') - { - return ($this->databasePath ?: $this->basePath.DIRECTORY_SEPARATOR.'database').($path ? DIRECTORY_SEPARATOR.$path : $path); - } - - /** - * Set the database directory. - * - * @param string $path - * @return $this - */ - public function useDatabasePath($path) - { - $this->databasePath = $path; - - $this->instance('path.database', $path); - - return $this; - } - - /** - * Get the path to the language files. - * - * @return string - */ - public function langPath() - { - return $this->resourcePath().DIRECTORY_SEPARATOR.'lang'; - } - - /** - * Get the path to the public / web directory. - * - * @return string - */ - public function publicPath() - { - return $this->basePath.DIRECTORY_SEPARATOR.'public'; - } - - /** - * Get the path to the storage directory. - * - * @return string - */ - public function storagePath() - { - return $this->storagePath ?: $this->basePath.DIRECTORY_SEPARATOR.'storage'; - } - - /** - * Set the storage directory. - * - * @param string $path - * @return $this - */ - public function useStoragePath($path) - { - $this->storagePath = $path; - - $this->instance('path.storage', $path); - - return $this; - } - - /** - * Get the path to the resources directory. - * - * @param string $path - * @return string - */ - public function resourcePath($path = '') - { - return $this->basePath.DIRECTORY_SEPARATOR.'resources'.($path ? DIRECTORY_SEPARATOR.$path : $path); - } - - /** - * Get the path to the environment file directory. - * - * @return string - */ - public function environmentPath() - { - return $this->environmentPath ?: $this->basePath; - } - - /** - * Set the directory for the environment file. - * - * @param string $path - * @return $this - */ - public function useEnvironmentPath($path) - { - $this->environmentPath = $path; - - return $this; - } - - /** - * Set the environment file to be loaded during bootstrapping. - * - * @param string $file - * @return $this - */ - public function loadEnvironmentFrom($file) - { - $this->environmentFile = $file; - - return $this; - } - - /** - * Get the environment file the application is using. - * - * @return string - */ - public function environmentFile() - { - return $this->environmentFile ?: '.env'; - } - - /** - * Get the fully qualified path to the environment file. - * - * @return string - */ - public function environmentFilePath() - { - return $this->environmentPath().DIRECTORY_SEPARATOR.$this->environmentFile(); - } - - /** - * Get or check the current application environment. - * - * @return string|bool - */ - public function environment() - { - if (func_num_args() > 0) { - $patterns = is_array(func_get_arg(0)) ? func_get_arg(0) : func_get_args(); - - return Str::is($patterns, $this['env']); - } - - return $this['env']; - } - - /** - * Determine if application is in local environment. - * - * @return bool - */ - public function isLocal() - { - return $this['env'] == 'local'; - } - - /** - * Detect the application's current environment. - * - * @param \Closure $callback - * @return string - */ - public function detectEnvironment(Closure $callback) - { - $args = $_SERVER['argv'] ?? null; - - return $this['env'] = (new EnvironmentDetector)->detect($callback, $args); - } - - /** - * Determine if the application is running in the console. - * - * @return bool - */ - public function runningInConsole() - { - return php_sapi_name() === 'cli' || php_sapi_name() === 'phpdbg'; - } - - /** - * Determine if the application is running unit tests. - * - * @return bool - */ - public function runningUnitTests() - { - return $this['env'] === 'testing'; - } - - /** - * Register all of the configured providers. - * - * @return void - */ - public function registerConfiguredProviders() - { - $providers = Collection::make($this->config['app.providers']) - ->partition(function ($provider) { - return Str::startsWith($provider, 'Illuminate\\'); - }); - - $providers->splice(1, 0, [$this->make(PackageManifest::class)->providers()]); - - (new ProviderRepository($this, new Filesystem, $this->getCachedServicesPath())) - ->load($providers->collapse()->toArray()); - } - - /** - * Register a service provider with the application. - * - * @param \Illuminate\Support\ServiceProvider|string $provider - * @param array $options - * @param bool $force - * @return \Illuminate\Support\ServiceProvider - */ - public function register($provider, $options = [], $force = false) - { - if (($registered = $this->getProvider($provider)) && ! $force) { - return $registered; - } - - // If the given "provider" is a string, we will resolve it, passing in the - // application instance automatically for the developer. This is simply - // a more convenient way of specifying your service provider classes. - if (is_string($provider)) { - $provider = $this->resolveProvider($provider); - } - - if (method_exists($provider, 'register')) { - $provider->register(); - } - - // If there are bindings / singletons set as properties on the provider we - // will spin through them and register them with the application, which - // serves as a convenience layer while registering a lot of bindings. - if (property_exists($provider, 'bindings')) { - foreach ($provider->bindings as $key => $value) { - $this->bind($key, $value); - } - } - - if (property_exists($provider, 'singletons')) { - foreach ($provider->singletons as $key => $value) { - $this->singleton($key, $value); - } - } - - $this->markAsRegistered($provider); - - // If the application has already booted, we will call this boot method on - // the provider class so it has an opportunity to do its boot logic and - // will be ready for any usage by this developer's application logic. - if ($this->booted) { - $this->bootProvider($provider); - } - - return $provider; - } - - /** - * Get the registered service provider instance if it exists. - * - * @param \Illuminate\Support\ServiceProvider|string $provider - * @return \Illuminate\Support\ServiceProvider|null - */ - public function getProvider($provider) - { - return array_values($this->getProviders($provider))[0] ?? null; - } - - /** - * Get the registered service provider instances if any exist. - * - * @param \Illuminate\Support\ServiceProvider|string $provider - * @return array - */ - public function getProviders($provider) - { - $name = is_string($provider) ? $provider : get_class($provider); - - return Arr::where($this->serviceProviders, function ($value) use ($name) { - return $value instanceof $name; - }); - } - - /** - * Resolve a service provider instance from the class name. - * - * @param string $provider - * @return \Illuminate\Support\ServiceProvider - */ - public function resolveProvider($provider) - { - return new $provider($this); - } - - /** - * Mark the given provider as registered. - * - * @param \Illuminate\Support\ServiceProvider $provider - * @return void - */ - protected function markAsRegistered($provider) - { - $this->serviceProviders[] = $provider; - - $this->loadedProviders[get_class($provider)] = true; - } - - /** - * Load and boot all of the remaining deferred providers. - * - * @return void - */ - public function loadDeferredProviders() - { - // We will simply spin through each of the deferred providers and register each - // one and boot them if the application has booted. This should make each of - // the remaining services available to this application for immediate use. - foreach ($this->deferredServices as $service => $provider) { - $this->loadDeferredProvider($service); - } - - $this->deferredServices = []; - } - - /** - * Load the provider for a deferred service. - * - * @param string $service - * @return void - */ - public function loadDeferredProvider($service) - { - if (! isset($this->deferredServices[$service])) { - return; - } - - $provider = $this->deferredServices[$service]; - - // If the service provider has not already been loaded and registered we can - // register it with the application and remove the service from this list - // of deferred services, since it will already be loaded on subsequent. - if (! isset($this->loadedProviders[$provider])) { - $this->registerDeferredProvider($provider, $service); - } - } - - /** - * Register a deferred provider and service. - * - * @param string $provider - * @param string|null $service - * @return void - */ - public function registerDeferredProvider($provider, $service = null) - { - // Once the provider that provides the deferred service has been registered we - // will remove it from our local list of the deferred services with related - // providers so that this container does not try to resolve it out again. - if ($service) { - unset($this->deferredServices[$service]); - } - - $this->register($instance = new $provider($this)); - - if (! $this->booted) { - $this->booting(function () use ($instance) { - $this->bootProvider($instance); - }); - } - } - - /** - * Resolve the given type from the container. - * - * (Overriding Container::make) - * - * @param string $abstract - * @param array $parameters - * @return mixed - */ - public function make($abstract, array $parameters = []) - { - $abstract = $this->getAlias($abstract); - - if (isset($this->deferredServices[$abstract]) && ! isset($this->instances[$abstract])) { - $this->loadDeferredProvider($abstract); - } - - return parent::make($abstract, $parameters); - } - - /** - * Determine if the given abstract type has been bound. - * - * (Overriding Container::bound) - * - * @param string $abstract - * @return bool - */ - public function bound($abstract) - { - return isset($this->deferredServices[$abstract]) || parent::bound($abstract); - } - - /** - * Determine if the application has booted. - * - * @return bool - */ - public function isBooted() - { - return $this->booted; - } - - /** - * Boot the application's service providers. - * - * @return void - */ - public function boot() - { - if ($this->booted) { - return; - } - - // Once the application has booted we will also fire some "booted" callbacks - // for any listeners that need to do work after this initial booting gets - // finished. This is useful when ordering the boot-up processes we run. - $this->fireAppCallbacks($this->bootingCallbacks); - - array_walk($this->serviceProviders, function ($p) { - $this->bootProvider($p); - }); - - $this->booted = true; - - $this->fireAppCallbacks($this->bootedCallbacks); - } - - /** - * Boot the given service provider. - * - * @param \Illuminate\Support\ServiceProvider $provider - * @return mixed - */ - protected function bootProvider(ServiceProvider $provider) - { - if (method_exists($provider, 'boot')) { - return $this->call([$provider, 'boot']); - } - } - - /** - * Register a new boot listener. - * - * @param mixed $callback - * @return void - */ - public function booting($callback) - { - $this->bootingCallbacks[] = $callback; - } - - /** - * Register a new "booted" listener. - * - * @param mixed $callback - * @return void - */ - public function booted($callback) - { - $this->bootedCallbacks[] = $callback; - - if ($this->isBooted()) { - $this->fireAppCallbacks([$callback]); - } - } - - /** - * Call the booting callbacks for the application. - * - * @param array $callbacks - * @return void - */ - protected function fireAppCallbacks(array $callbacks) - { - foreach ($callbacks as $callback) { - call_user_func($callback, $this); - } - } - - /** - * {@inheritdoc} - */ - public function handle(SymfonyRequest $request, $type = self::MASTER_REQUEST, $catch = true) - { - return $this[HttpKernelContract::class]->handle(Request::createFromBase($request)); - } - - /** - * Determine if middleware has been disabled for the application. - * - * @return bool - */ - public function shouldSkipMiddleware() - { - return $this->bound('middleware.disable') && - $this->make('middleware.disable') === true; - } - - /** - * Get the path to the cached services.php file. - * - * @return string - */ - public function getCachedServicesPath() - { - return $this->bootstrapPath().'/cache/services.php'; - } - - /** - * Get the path to the cached packages.php file. - * - * @return string - */ - public function getCachedPackagesPath() - { - return $this->bootstrapPath().'/cache/packages.php'; - } - - /** - * Determine if the application configuration is cached. - * - * @return bool - */ - public function configurationIsCached() - { - return file_exists($this->getCachedConfigPath()); - } - - /** - * Get the path to the configuration cache file. - * - * @return string - */ - public function getCachedConfigPath() - { - return $this->bootstrapPath().'/cache/config.php'; - } - - /** - * Determine if the application routes are cached. - * - * @return bool - */ - public function routesAreCached() - { - return $this['files']->exists($this->getCachedRoutesPath()); - } - - /** - * Get the path to the routes cache file. - * - * @return string - */ - public function getCachedRoutesPath() - { - return $this->bootstrapPath().'/cache/routes.php'; - } - - /** - * Determine if the application is currently down for maintenance. - * - * @return bool - */ - public function isDownForMaintenance() - { - return file_exists($this->storagePath().'/framework/down'); - } - - /** - * Throw an HttpException with the given data. - * - * @param int $code - * @param string $message - * @param array $headers - * @return void - * - * @throws \Symfony\Component\HttpKernel\Exception\HttpException - */ - public function abort($code, $message = '', array $headers = []) - { - if ($code == 404) { - throw new NotFoundHttpException($message); - } - - throw new HttpException($code, $message, null, $headers); - } - - /** - * Register a terminating callback with the application. - * - * @param \Closure $callback - * @return $this - */ - public function terminating(Closure $callback) - { - $this->terminatingCallbacks[] = $callback; - - return $this; - } - - /** - * Terminate the application. - * - * @return void - */ - public function terminate() - { - foreach ($this->terminatingCallbacks as $terminating) { - $this->call($terminating); - } - } - - /** - * Get the service providers that have been loaded. - * - * @return array - */ - public function getLoadedProviders() - { - return $this->loadedProviders; - } - - /** - * Get the application's deferred services. - * - * @return array - */ - public function getDeferredServices() - { - return $this->deferredServices; - } - - /** - * Set the application's deferred services. - * - * @param array $services - * @return void - */ - public function setDeferredServices(array $services) - { - $this->deferredServices = $services; - } - - /** - * Add an array of services to the application's deferred services. - * - * @param array $services - * @return void - */ - public function addDeferredServices(array $services) - { - $this->deferredServices = array_merge($this->deferredServices, $services); - } - - /** - * Determine if the given service is a deferred service. - * - * @param string $service - * @return bool - */ - public function isDeferredService($service) - { - return isset($this->deferredServices[$service]); - } - - /** - * Configure the real-time facade namespace. - * - * @param string $namespace - * @return void - */ - public function provideFacades($namespace) - { - AliasLoader::setFacadeNamespace($namespace); - } - - /** - * Get the current application locale. - * - * @return string - */ - public function getLocale() - { - return $this['config']->get('app.locale'); - } - - /** - * Set the current application locale. - * - * @param string $locale - * @return void - */ - public function setLocale($locale) - { - $this['config']->set('app.locale', $locale); - - $this['translator']->setLocale($locale); - - $this['events']->dispatch(new Events\LocaleUpdated($locale)); - } - - /** - * Determine if application locale is the given locale. - * - * @param string $locale - * @return bool - */ - public function isLocale($locale) - { - return $this->getLocale() == $locale; - } - - /** - * Register the core class aliases in the container. - * - * @return void - */ - public function registerCoreContainerAliases() - { - foreach ([ - 'app' => [\Illuminate\Foundation\Application::class, \Illuminate\Contracts\Container\Container::class, \Illuminate\Contracts\Foundation\Application::class, \Psr\Container\ContainerInterface::class], - 'auth' => [\Illuminate\Auth\AuthManager::class, \Illuminate\Contracts\Auth\Factory::class], - 'auth.driver' => [\Illuminate\Contracts\Auth\Guard::class], - 'blade.compiler' => [\Illuminate\View\Compilers\BladeCompiler::class], - 'cache' => [\Illuminate\Cache\CacheManager::class, \Illuminate\Contracts\Cache\Factory::class], - 'cache.store' => [\Illuminate\Cache\Repository::class, \Illuminate\Contracts\Cache\Repository::class], - 'config' => [\Illuminate\Config\Repository::class, \Illuminate\Contracts\Config\Repository::class], - 'cookie' => [\Illuminate\Cookie\CookieJar::class, \Illuminate\Contracts\Cookie\Factory::class, \Illuminate\Contracts\Cookie\QueueingFactory::class], - 'encrypter' => [\Illuminate\Encryption\Encrypter::class, \Illuminate\Contracts\Encryption\Encrypter::class], - 'db' => [\Illuminate\Database\DatabaseManager::class], - 'db.connection' => [\Illuminate\Database\Connection::class, \Illuminate\Database\ConnectionInterface::class], - 'events' => [\Illuminate\Events\Dispatcher::class, \Illuminate\Contracts\Events\Dispatcher::class], - 'files' => [\Illuminate\Filesystem\Filesystem::class], - 'filesystem' => [\Illuminate\Filesystem\FilesystemManager::class, \Illuminate\Contracts\Filesystem\Factory::class], - 'filesystem.disk' => [\Illuminate\Contracts\Filesystem\Filesystem::class], - 'filesystem.cloud' => [\Illuminate\Contracts\Filesystem\Cloud::class], - 'hash' => [\Illuminate\Hashing\HashManager::class], - 'hash.driver' => [\Illuminate\Contracts\Hashing\Hasher::class], - 'translator' => [\Illuminate\Translation\Translator::class, \Illuminate\Contracts\Translation\Translator::class], - 'log' => [\Illuminate\Log\LogManager::class, \Psr\Log\LoggerInterface::class], - 'mailer' => [\Illuminate\Mail\Mailer::class, \Illuminate\Contracts\Mail\Mailer::class, \Illuminate\Contracts\Mail\MailQueue::class], - 'auth.password' => [\Illuminate\Auth\Passwords\PasswordBrokerManager::class, \Illuminate\Contracts\Auth\PasswordBrokerFactory::class], - 'auth.password.broker' => [\Illuminate\Auth\Passwords\PasswordBroker::class, \Illuminate\Contracts\Auth\PasswordBroker::class], - 'queue' => [\Illuminate\Queue\QueueManager::class, \Illuminate\Contracts\Queue\Factory::class, \Illuminate\Contracts\Queue\Monitor::class], - 'queue.connection' => [\Illuminate\Contracts\Queue\Queue::class], - 'queue.failer' => [\Illuminate\Queue\Failed\FailedJobProviderInterface::class], - 'redirect' => [\Illuminate\Routing\Redirector::class], - 'redis' => [\Illuminate\Redis\RedisManager::class, \Illuminate\Contracts\Redis\Factory::class], - 'request' => [\Illuminate\Http\Request::class, \Symfony\Component\HttpFoundation\Request::class], - 'router' => [\Illuminate\Routing\Router::class, \Illuminate\Contracts\Routing\Registrar::class, \Illuminate\Contracts\Routing\BindingRegistrar::class], - 'session' => [\Illuminate\Session\SessionManager::class], - 'session.store' => [\Illuminate\Session\Store::class, \Illuminate\Contracts\Session\Session::class], - 'url' => [\Illuminate\Routing\UrlGenerator::class, \Illuminate\Contracts\Routing\UrlGenerator::class], - 'validator' => [\Illuminate\Validation\Factory::class, \Illuminate\Contracts\Validation\Factory::class], - 'view' => [\Illuminate\View\Factory::class, \Illuminate\Contracts\View\Factory::class], - ] as $key => $aliases) { - foreach ($aliases as $alias) { - $this->alias($key, $alias); - } - } - } - - /** - * Flush the container of all bindings and resolved instances. - * - * @return void - */ - public function flush() - { - parent::flush(); - - $this->buildStack = []; - $this->loadedProviders = []; - $this->bootedCallbacks = []; - $this->bootingCallbacks = []; - $this->deferredServices = []; - $this->reboundCallbacks = []; - $this->serviceProviders = []; - $this->resolvingCallbacks = []; - $this->afterResolvingCallbacks = []; - $this->globalResolvingCallbacks = []; - } - - /** - * Get the application namespace. - * - * @return string - * - * @throws \RuntimeException - */ - public function getNamespace() - { - if (! is_null($this->namespace)) { - return $this->namespace; - } - - $composer = json_decode(file_get_contents(base_path('composer.json')), true); - - foreach ((array) data_get($composer, 'autoload.psr-4') as $namespace => $path) { - foreach ((array) $path as $pathChoice) { - if (realpath(app_path()) == realpath(base_path().'/'.$pathChoice)) { - return $this->namespace = $namespace; - } - } - } - - throw new RuntimeException('Unable to detect application namespace.'); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Auth/Access/Authorizable.php b/vendor/laravel/framework/src/Illuminate/Foundation/Auth/Access/Authorizable.php deleted file mode 100644 index 9e8e33bd..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Auth/Access/Authorizable.php +++ /dev/null @@ -1,44 +0,0 @@ -forUser($this)->check($ability, $arguments); - } - - /** - * Determine if the entity does not have a given ability. - * - * @param string $ability - * @param array|mixed $arguments - * @return bool - */ - public function cant($ability, $arguments = []) - { - return ! $this->can($ability, $arguments); - } - - /** - * Determine if the entity does not have a given ability. - * - * @param string $ability - * @param array|mixed $arguments - * @return bool - */ - public function cannot($ability, $arguments = []) - { - return $this->cant($ability, $arguments); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Auth/Access/AuthorizesRequests.php b/vendor/laravel/framework/src/Illuminate/Foundation/Auth/Access/AuthorizesRequests.php deleted file mode 100644 index ece53587..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Auth/Access/AuthorizesRequests.php +++ /dev/null @@ -1,126 +0,0 @@ -parseAbilityAndArguments($ability, $arguments); - - return app(Gate::class)->authorize($ability, $arguments); - } - - /** - * Authorize a given action for a user. - * - * @param \Illuminate\Contracts\Auth\Authenticatable|mixed $user - * @param mixed $ability - * @param mixed|array $arguments - * @return \Illuminate\Auth\Access\Response - * - * @throws \Illuminate\Auth\Access\AuthorizationException - */ - public function authorizeForUser($user, $ability, $arguments = []) - { - list($ability, $arguments) = $this->parseAbilityAndArguments($ability, $arguments); - - return app(Gate::class)->forUser($user)->authorize($ability, $arguments); - } - - /** - * Guesses the ability's name if it wasn't provided. - * - * @param mixed $ability - * @param mixed|array $arguments - * @return array - */ - protected function parseAbilityAndArguments($ability, $arguments) - { - if (is_string($ability) && strpos($ability, '\\') === false) { - return [$ability, $arguments]; - } - - $method = debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS, 3)[2]['function']; - - return [$this->normalizeGuessedAbilityName($method), $ability]; - } - - /** - * Normalize the ability name that has been guessed from the method name. - * - * @param string $ability - * @return string - */ - protected function normalizeGuessedAbilityName($ability) - { - $map = $this->resourceAbilityMap(); - - return $map[$ability] ?? $ability; - } - - /** - * Authorize a resource action based on the incoming request. - * - * @param string $model - * @param string|null $parameter - * @param array $options - * @param \Illuminate\Http\Request|null $request - * @return void - */ - public function authorizeResource($model, $parameter = null, array $options = [], $request = null) - { - $parameter = $parameter ?: Str::snake(class_basename($model)); - - $middleware = []; - - foreach ($this->resourceAbilityMap() as $method => $ability) { - $modelName = in_array($method, $this->resourceMethodsWithoutModels()) ? $model : $parameter; - - $middleware["can:{$ability},{$modelName}"][] = $method; - } - - foreach ($middleware as $middlewareName => $methods) { - $this->middleware($middlewareName, $options)->only($methods); - } - } - - /** - * Get the map of resource methods to ability names. - * - * @return array - */ - protected function resourceAbilityMap() - { - return [ - 'show' => 'view', - 'create' => 'create', - 'store' => 'create', - 'edit' => 'update', - 'update' => 'update', - 'destroy' => 'delete', - ]; - } - - /** - * Get the list of resource methods which do not have model parameters. - * - * @return array - */ - protected function resourceMethodsWithoutModels() - { - return ['index', 'create', 'store']; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Auth/AuthenticatesUsers.php b/vendor/laravel/framework/src/Illuminate/Foundation/Auth/AuthenticatesUsers.php deleted file mode 100644 index 5e4e43de..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Auth/AuthenticatesUsers.php +++ /dev/null @@ -1,182 +0,0 @@ -validateLogin($request); - - // If the class is using the ThrottlesLogins trait, we can automatically throttle - // the login attempts for this application. We'll key this by the username and - // the IP address of the client making these requests into this application. - if ($this->hasTooManyLoginAttempts($request)) { - $this->fireLockoutEvent($request); - - return $this->sendLockoutResponse($request); - } - - if ($this->attemptLogin($request)) { - return $this->sendLoginResponse($request); - } - - // If the login attempt was unsuccessful we will increment the number of attempts - // to login and redirect the user back to the login form. Of course, when this - // user surpasses their maximum number of attempts they will get locked out. - $this->incrementLoginAttempts($request); - - return $this->sendFailedLoginResponse($request); - } - - /** - * Validate the user login request. - * - * @param \Illuminate\Http\Request $request - * @return void - */ - protected function validateLogin(Request $request) - { - $this->validate($request, [ - $this->username() => 'required|string', - 'password' => 'required|string', - ]); - } - - /** - * Attempt to log the user into the application. - * - * @param \Illuminate\Http\Request $request - * @return bool - */ - protected function attemptLogin(Request $request) - { - return $this->guard()->attempt( - $this->credentials($request), $request->filled('remember') - ); - } - - /** - * Get the needed authorization credentials from the request. - * - * @param \Illuminate\Http\Request $request - * @return array - */ - protected function credentials(Request $request) - { - return $request->only($this->username(), 'password'); - } - - /** - * Send the response after the user was authenticated. - * - * @param \Illuminate\Http\Request $request - * @return \Illuminate\Http\Response - */ - protected function sendLoginResponse(Request $request) - { - $request->session()->regenerate(); - - $this->clearLoginAttempts($request); - - return $this->authenticated($request, $this->guard()->user()) - ?: redirect()->intended($this->redirectPath()); - } - - /** - * The user has been authenticated. - * - * @param \Illuminate\Http\Request $request - * @param mixed $user - * @return mixed - */ - protected function authenticated(Request $request, $user) - { - // - } - - /** - * Get the failed login response instance. - * - * @param \Illuminate\Http\Request $request - * @return \Symfony\Component\HttpFoundation\Response - * - * @throws \Illuminate\Validation\ValidationException - */ - protected function sendFailedLoginResponse(Request $request) - { - throw ValidationException::withMessages([ - $this->username() => [trans('auth.failed')], - ]); - } - - /** - * Get the login username to be used by the controller. - * - * @return string - */ - public function username() - { - return 'email'; - } - - /** - * Log the user out of the application. - * - * @param \Illuminate\Http\Request $request - * @return \Illuminate\Http\Response - */ - public function logout(Request $request) - { - $this->guard()->logout(); - - $request->session()->invalidate(); - - return $this->loggedOut($request) ?: redirect('/'); - } - - /** - * The user has logged out of the application. - * - * @param \Illuminate\Http\Request $request - * @return mixed - */ - protected function loggedOut(Request $request) - { - // - } - - /** - * Get the guard to be used during authentication. - * - * @return \Illuminate\Contracts\Auth\StatefulGuard - */ - protected function guard() - { - return Auth::guard(); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Auth/RedirectsUsers.php b/vendor/laravel/framework/src/Illuminate/Foundation/Auth/RedirectsUsers.php deleted file mode 100644 index cc992290..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Auth/RedirectsUsers.php +++ /dev/null @@ -1,20 +0,0 @@ -redirectTo(); - } - - return property_exists($this, 'redirectTo') ? $this->redirectTo : '/home'; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Auth/RegistersUsers.php b/vendor/laravel/framework/src/Illuminate/Foundation/Auth/RegistersUsers.php deleted file mode 100644 index f3238f28..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Auth/RegistersUsers.php +++ /dev/null @@ -1,62 +0,0 @@ -validator($request->all())->validate(); - - event(new Registered($user = $this->create($request->all()))); - - $this->guard()->login($user); - - return $this->registered($request, $user) - ?: redirect($this->redirectPath()); - } - - /** - * Get the guard to be used during registration. - * - * @return \Illuminate\Contracts\Auth\StatefulGuard - */ - protected function guard() - { - return Auth::guard(); - } - - /** - * The user has been registered. - * - * @param \Illuminate\Http\Request $request - * @param mixed $user - * @return mixed - */ - protected function registered(Request $request, $user) - { - // - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Auth/ResetsPasswords.php b/vendor/laravel/framework/src/Illuminate/Foundation/Auth/ResetsPasswords.php deleted file mode 100644 index d8bea843..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Auth/ResetsPasswords.php +++ /dev/null @@ -1,161 +0,0 @@ -with( - ['token' => $token, 'email' => $request->email] - ); - } - - /** - * Reset the given user's password. - * - * @param \Illuminate\Http\Request $request - * @return \Illuminate\Http\RedirectResponse|\Illuminate\Http\JsonResponse - */ - public function reset(Request $request) - { - $this->validate($request, $this->rules(), $this->validationErrorMessages()); - - // Here we will attempt to reset the user's password. If it is successful we - // will update the password on an actual user model and persist it to the - // database. Otherwise we will parse the error and return the response. - $response = $this->broker()->reset( - $this->credentials($request), function ($user, $password) { - $this->resetPassword($user, $password); - } - ); - - // If the password was successfully reset, we will redirect the user back to - // the application's home authenticated view. If there is an error we can - // redirect them back to where they came from with their error message. - return $response == Password::PASSWORD_RESET - ? $this->sendResetResponse($response) - : $this->sendResetFailedResponse($request, $response); - } - - /** - * Get the password reset validation rules. - * - * @return array - */ - protected function rules() - { - return [ - 'token' => 'required', - 'email' => 'required|email', - 'password' => 'required|confirmed|min:6', - ]; - } - - /** - * Get the password reset validation error messages. - * - * @return array - */ - protected function validationErrorMessages() - { - return []; - } - - /** - * Get the password reset credentials from the request. - * - * @param \Illuminate\Http\Request $request - * @return array - */ - protected function credentials(Request $request) - { - return $request->only( - 'email', 'password', 'password_confirmation', 'token' - ); - } - - /** - * Reset the given user's password. - * - * @param \Illuminate\Contracts\Auth\CanResetPassword $user - * @param string $password - * @return void - */ - protected function resetPassword($user, $password) - { - $user->password = Hash::make($password); - - $user->setRememberToken(Str::random(60)); - - $user->save(); - - event(new PasswordReset($user)); - - $this->guard()->login($user); - } - - /** - * Get the response for a successful password reset. - * - * @param string $response - * @return \Illuminate\Http\RedirectResponse|\Illuminate\Http\JsonResponse - */ - protected function sendResetResponse($response) - { - return redirect($this->redirectPath()) - ->with('status', trans($response)); - } - - /** - * Get the response for a failed password reset. - * - * @param \Illuminate\Http\Request $request - * @param string $response - * @return \Illuminate\Http\RedirectResponse|\Illuminate\Http\JsonResponse - */ - protected function sendResetFailedResponse(Request $request, $response) - { - return redirect()->back() - ->withInput($request->only('email')) - ->withErrors(['email' => trans($response)]); - } - - /** - * Get the broker to be used during password reset. - * - * @return \Illuminate\Contracts\Auth\PasswordBroker - */ - public function broker() - { - return Password::broker(); - } - - /** - * Get the guard to be used during password reset. - * - * @return \Illuminate\Contracts\Auth\StatefulGuard - */ - protected function guard() - { - return Auth::guard(); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Auth/SendsPasswordResetEmails.php b/vendor/laravel/framework/src/Illuminate/Foundation/Auth/SendsPasswordResetEmails.php deleted file mode 100644 index fd946ca9..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Auth/SendsPasswordResetEmails.php +++ /dev/null @@ -1,87 +0,0 @@ -validateEmail($request); - - // We will send the password reset link to this user. Once we have attempted - // to send the link, we will examine the response then see the message we - // need to show to the user. Finally, we'll send out a proper response. - $response = $this->broker()->sendResetLink( - $request->only('email') - ); - - return $response == Password::RESET_LINK_SENT - ? $this->sendResetLinkResponse($response) - : $this->sendResetLinkFailedResponse($request, $response); - } - - /** - * Validate the email for the given request. - * - * @param \Illuminate\Http\Request $request - * @return void - */ - protected function validateEmail(Request $request) - { - $this->validate($request, ['email' => 'required|email']); - } - - /** - * Get the response for a successful password reset link. - * - * @param string $response - * @return \Illuminate\Http\RedirectResponse|\Illuminate\Http\JsonResponse - */ - protected function sendResetLinkResponse($response) - { - return back()->with('status', trans($response)); - } - - /** - * Get the response for a failed password reset link. - * - * @param \Illuminate\Http\Request $request - * @param string $response - * @return \Illuminate\Http\RedirectResponse|\Illuminate\Http\JsonResponse - */ - protected function sendResetLinkFailedResponse(Request $request, $response) - { - return back() - ->withInput($request->only('email')) - ->withErrors(['email' => trans($response)]); - } - - /** - * Get the broker to be used during password reset. - * - * @return \Illuminate\Contracts\Auth\PasswordBroker - */ - public function broker() - { - return Password::broker(); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Auth/ThrottlesLogins.php b/vendor/laravel/framework/src/Illuminate/Foundation/Auth/ThrottlesLogins.php deleted file mode 100644 index fc50720f..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Auth/ThrottlesLogins.php +++ /dev/null @@ -1,120 +0,0 @@ -limiter()->tooManyAttempts( - $this->throttleKey($request), $this->maxAttempts() - ); - } - - /** - * Increment the login attempts for the user. - * - * @param \Illuminate\Http\Request $request - * @return void - */ - protected function incrementLoginAttempts(Request $request) - { - $this->limiter()->hit( - $this->throttleKey($request), $this->decayMinutes() - ); - } - - /** - * Redirect the user after determining they are locked out. - * - * @param \Illuminate\Http\Request $request - * @return void - * @throws \Illuminate\Validation\ValidationException - */ - protected function sendLockoutResponse(Request $request) - { - $seconds = $this->limiter()->availableIn( - $this->throttleKey($request) - ); - - throw ValidationException::withMessages([ - $this->username() => [Lang::get('auth.throttle', ['seconds' => $seconds])], - ])->status(429); - } - - /** - * Clear the login locks for the given user credentials. - * - * @param \Illuminate\Http\Request $request - * @return void - */ - protected function clearLoginAttempts(Request $request) - { - $this->limiter()->clear($this->throttleKey($request)); - } - - /** - * Fire an event when a lockout occurs. - * - * @param \Illuminate\Http\Request $request - * @return void - */ - protected function fireLockoutEvent(Request $request) - { - event(new Lockout($request)); - } - - /** - * Get the throttle key for the given request. - * - * @param \Illuminate\Http\Request $request - * @return string - */ - protected function throttleKey(Request $request) - { - return Str::lower($request->input($this->username())).'|'.$request->ip(); - } - - /** - * Get the rate limiter instance. - * - * @return \Illuminate\Cache\RateLimiter - */ - protected function limiter() - { - return app(RateLimiter::class); - } - - /** - * Get the maximum number of attempts to allow. - * - * @return int - */ - public function maxAttempts() - { - return property_exists($this, 'maxAttempts') ? $this->maxAttempts : 5; - } - - /** - * Get the number of minutes to throttle for. - * - * @return int - */ - public function decayMinutes() - { - return property_exists($this, 'decayMinutes') ? $this->decayMinutes : 1; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Auth/User.php b/vendor/laravel/framework/src/Illuminate/Foundation/Auth/User.php deleted file mode 100644 index 5c847785..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Auth/User.php +++ /dev/null @@ -1,19 +0,0 @@ -boot(); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/HandleExceptions.php b/vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/HandleExceptions.php deleted file mode 100644 index b7edb683..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/HandleExceptions.php +++ /dev/null @@ -1,161 +0,0 @@ -app = $app; - - error_reporting(-1); - - set_error_handler([$this, 'handleError']); - - set_exception_handler([$this, 'handleException']); - - register_shutdown_function([$this, 'handleShutdown']); - - if (! $app->environment('testing')) { - ini_set('display_errors', 'Off'); - } - } - - /** - * Convert PHP errors to ErrorException instances. - * - * @param int $level - * @param string $message - * @param string $file - * @param int $line - * @param array $context - * @return void - * - * @throws \ErrorException - */ - public function handleError($level, $message, $file = '', $line = 0, $context = []) - { - if (error_reporting() & $level) { - throw new ErrorException($message, 0, $level, $file, $line); - } - } - - /** - * Handle an uncaught exception from the application. - * - * Note: Most exceptions can be handled via the try / catch block in - * the HTTP and Console kernels. But, fatal error exceptions must - * be handled differently since they are not normal exceptions. - * - * @param \Throwable $e - * @return void - */ - public function handleException($e) - { - if (! $e instanceof Exception) { - $e = new FatalThrowableError($e); - } - - try { - $this->getExceptionHandler()->report($e); - } catch (Exception $e) { - // - } - - if ($this->app->runningInConsole()) { - $this->renderForConsole($e); - } else { - $this->renderHttpResponse($e); - } - } - - /** - * Render an exception to the console. - * - * @param \Exception $e - * @return void - */ - protected function renderForConsole(Exception $e) - { - $this->getExceptionHandler()->renderForConsole(new ConsoleOutput, $e); - } - - /** - * Render an exception as an HTTP response and send it. - * - * @param \Exception $e - * @return void - */ - protected function renderHttpResponse(Exception $e) - { - $this->getExceptionHandler()->render($this->app['request'], $e)->send(); - } - - /** - * Handle the PHP shutdown event. - * - * @return void - */ - public function handleShutdown() - { - if (! is_null($error = error_get_last()) && $this->isFatal($error['type'])) { - $this->handleException($this->fatalExceptionFromError($error, 0)); - } - } - - /** - * Create a new fatal exception instance from an error array. - * - * @param array $error - * @param int|null $traceOffset - * @return \Symfony\Component\Debug\Exception\FatalErrorException - */ - protected function fatalExceptionFromError(array $error, $traceOffset = null) - { - return new FatalErrorException( - $error['message'], $error['type'], 0, $error['file'], $error['line'], $traceOffset - ); - } - - /** - * Determine if the error type is fatal. - * - * @param int $type - * @return bool - */ - protected function isFatal($type) - { - return in_array($type, [E_COMPILE_ERROR, E_CORE_ERROR, E_ERROR, E_PARSE]); - } - - /** - * Get an instance of the exception handler. - * - * @return \Illuminate\Contracts\Debug\ExceptionHandler - */ - protected function getExceptionHandler() - { - return $this->app->make(ExceptionHandler::class); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/LoadConfiguration.php b/vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/LoadConfiguration.php deleted file mode 100644 index 859b1229..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/LoadConfiguration.php +++ /dev/null @@ -1,115 +0,0 @@ -getCachedConfigPath())) { - $items = require $cached; - - $loadedFromCache = true; - } - - // Next we will spin through all of the configuration files in the configuration - // directory and load each one into the repository. This will make all of the - // options available to the developer for use in various parts of this app. - $app->instance('config', $config = new Repository($items)); - - if (! isset($loadedFromCache)) { - $this->loadConfigurationFiles($app, $config); - } - - // Finally, we will set the application's environment based on the configuration - // values that were loaded. We will pass a callback which will be used to get - // the environment in a web context where an "--env" switch is not present. - $app->detectEnvironment(function () use ($config) { - return $config->get('app.env', 'production'); - }); - - date_default_timezone_set($config->get('app.timezone', 'UTC')); - - mb_internal_encoding('UTF-8'); - } - - /** - * Load the configuration items from all of the files. - * - * @param \Illuminate\Contracts\Foundation\Application $app - * @param \Illuminate\Contracts\Config\Repository $repository - * @return void - * @throws \Exception - */ - protected function loadConfigurationFiles(Application $app, RepositoryContract $repository) - { - $files = $this->getConfigurationFiles($app); - - if (! isset($files['app'])) { - throw new Exception('Unable to load the "app" configuration file.'); - } - - foreach ($files as $key => $path) { - $repository->set($key, require $path); - } - } - - /** - * Get all of the configuration files for the application. - * - * @param \Illuminate\Contracts\Foundation\Application $app - * @return array - */ - protected function getConfigurationFiles(Application $app) - { - $files = []; - - $configPath = realpath($app->configPath()); - - foreach (Finder::create()->files()->name('*.php')->in($configPath) as $file) { - $directory = $this->getNestedDirectory($file, $configPath); - - $files[$directory.basename($file->getRealPath(), '.php')] = $file->getRealPath(); - } - - ksort($files, SORT_NATURAL); - - return $files; - } - - /** - * Get the configuration file nesting path. - * - * @param \SplFileInfo $file - * @param string $configPath - * @return string - */ - protected function getNestedDirectory(SplFileInfo $file, $configPath) - { - $directory = $file->getPath(); - - if ($nested = trim(str_replace($configPath, '', $directory), DIRECTORY_SEPARATOR)) { - $nested = str_replace(DIRECTORY_SEPARATOR, '.', $nested).'.'; - } - - return $nested; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/LoadEnvironmentVariables.php b/vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/LoadEnvironmentVariables.php deleted file mode 100644 index 599c474c..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/LoadEnvironmentVariables.php +++ /dev/null @@ -1,78 +0,0 @@ -configurationIsCached()) { - return; - } - - $this->checkForSpecificEnvironmentFile($app); - - try { - (new Dotenv($app->environmentPath(), $app->environmentFile()))->load(); - } catch (InvalidPathException $e) { - // - } catch (InvalidFileException $e) { - die('The environment file is invalid: '.$e->getMessage()); - } - } - - /** - * Detect if a custom environment file matching the APP_ENV exists. - * - * @param \Illuminate\Contracts\Foundation\Application $app - * @return void - */ - protected function checkForSpecificEnvironmentFile($app) - { - if ($app->runningInConsole() && ($input = new ArgvInput)->hasParameterOption('--env')) { - if ($this->setEnvironmentFilePath( - $app, $app->environmentFile().'.'.$input->getParameterOption('--env') - )) { - return; - } - } - - if (! env('APP_ENV')) { - return; - } - - $this->setEnvironmentFilePath( - $app, $app->environmentFile().'.'.env('APP_ENV') - ); - } - - /** - * Load a custom environment file. - * - * @param \Illuminate\Contracts\Foundation\Application $app - * @param string $file - * @return bool - */ - protected function setEnvironmentFilePath($app, $file) - { - if (file_exists($app->environmentPath().'/'.$file)) { - $app->loadEnvironmentFrom($file); - - return true; - } - - return false; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/RegisterFacades.php b/vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/RegisterFacades.php deleted file mode 100644 index 62a42d07..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/RegisterFacades.php +++ /dev/null @@ -1,29 +0,0 @@ -make('config')->get('app.aliases', []), - $app->make(PackageManifest::class)->aliases() - ))->register(); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/RegisterProviders.php b/vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/RegisterProviders.php deleted file mode 100644 index f18375cf..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/RegisterProviders.php +++ /dev/null @@ -1,19 +0,0 @@ -registerConfiguredProviders(); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/SetRequestForConsole.php b/vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/SetRequestForConsole.php deleted file mode 100644 index fda735ba..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/SetRequestForConsole.php +++ /dev/null @@ -1,35 +0,0 @@ -make('config')->get('app.url', 'http://localhost'); - - $components = parse_url($uri); - - $server = $_SERVER; - - if (isset($components['path'])) { - $server = array_merge($server, [ - 'SCRIPT_FILENAME' => $components['path'], - 'SCRIPT_NAME' => $components['path'], - ]); - } - - $app->instance('request', Request::create( - $uri, 'GET', [], [], [], $server - )); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Bus/Dispatchable.php b/vendor/laravel/framework/src/Illuminate/Foundation/Bus/Dispatchable.php deleted file mode 100644 index bd509a96..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Bus/Dispatchable.php +++ /dev/null @@ -1,39 +0,0 @@ -dispatchNow(new static(...func_get_args())); - } - - /** - * Set the jobs that should run if this job is successful. - * - * @param array $chain - * @return \Illuminate\Foundation\Bus\PendingChain - */ - public static function withChain($chain) - { - return new PendingChain(get_called_class(), $chain); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Bus/DispatchesJobs.php b/vendor/laravel/framework/src/Illuminate/Foundation/Bus/DispatchesJobs.php deleted file mode 100644 index 46d6e5b4..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Bus/DispatchesJobs.php +++ /dev/null @@ -1,30 +0,0 @@ -dispatch($job); - } - - /** - * Dispatch a job to its appropriate handler in the current process. - * - * @param mixed $job - * @return mixed - */ - public function dispatchNow($job) - { - return app(Dispatcher::class)->dispatchNow($job); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Bus/PendingChain.php b/vendor/laravel/framework/src/Illuminate/Foundation/Bus/PendingChain.php deleted file mode 100644 index b3455367..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Bus/PendingChain.php +++ /dev/null @@ -1,45 +0,0 @@ -class = $class; - $this->chain = $chain; - } - - /** - * Dispatch the job with the given arguments. - * - * @return \Illuminate\Foundation\Bus\PendingDispatch - */ - public function dispatch() - { - return (new PendingDispatch( - new $this->class(...func_get_args()) - ))->chain($this->chain); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Bus/PendingDispatch.php b/vendor/laravel/framework/src/Illuminate/Foundation/Bus/PendingDispatch.php deleted file mode 100644 index 8ae625aa..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Bus/PendingDispatch.php +++ /dev/null @@ -1,114 +0,0 @@ -job = $job; - } - - /** - * Set the desired connection for the job. - * - * @param string|null $connection - * @return $this - */ - public function onConnection($connection) - { - $this->job->onConnection($connection); - - return $this; - } - - /** - * Set the desired queue for the job. - * - * @param string|null $queue - * @return $this - */ - public function onQueue($queue) - { - $this->job->onQueue($queue); - - return $this; - } - - /** - * Set the desired connection for the chain. - * - * @param string|null $connection - * @return $this - */ - public function allOnConnection($connection) - { - $this->job->allOnConnection($connection); - - return $this; - } - - /** - * Set the desired queue for the chain. - * - * @param string|null $queue - * @return $this - */ - public function allOnQueue($queue) - { - $this->job->allOnQueue($queue); - - return $this; - } - - /** - * Set the desired delay for the job. - * - * @param \DateTime|int|null $delay - * @return $this - */ - public function delay($delay) - { - $this->job->delay($delay); - - return $this; - } - - /** - * Set the jobs that should run if this job is successful. - * - * @param array $chain - * @return $this - */ - public function chain($chain) - { - $this->job->chain($chain); - - return $this; - } - - /** - * Handle the object's destruction. - * - * @return void - */ - public function __destruct() - { - app(Dispatcher::class)->dispatch($this->job); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/ComposerScripts.php b/vendor/laravel/framework/src/Illuminate/Foundation/ComposerScripts.php deleted file mode 100644 index fcda187f..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/ComposerScripts.php +++ /dev/null @@ -1,65 +0,0 @@ -getComposer()->getConfig()->get('vendor-dir').'/autoload.php'; - - static::clearCompiled(); - } - - /** - * Handle the post-update Composer event. - * - * @param \Composer\Script\Event $event - * @return void - */ - public static function postUpdate(Event $event) - { - require_once $event->getComposer()->getConfig()->get('vendor-dir').'/autoload.php'; - - static::clearCompiled(); - } - - /** - * Handle the post-autoload-dump Composer event. - * - * @param \Composer\Script\Event $event - * @return void - */ - public static function postAutoloadDump(Event $event) - { - require_once $event->getComposer()->getConfig()->get('vendor-dir').'/autoload.php'; - - static::clearCompiled(); - } - - /** - * Clear the cached Laravel bootstrapping files. - * - * @return void - */ - protected static function clearCompiled() - { - $laravel = new Application(getcwd()); - - if (file_exists($servicesPath = $laravel->getCachedServicesPath())) { - @unlink($servicesPath); - } - - if (file_exists($packagesPath = $laravel->getCachedPackagesPath())) { - @unlink($packagesPath); - } - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Console/AppNameCommand.php b/vendor/laravel/framework/src/Illuminate/Foundation/Console/AppNameCommand.php deleted file mode 100644 index e92b7a8f..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Console/AppNameCommand.php +++ /dev/null @@ -1,296 +0,0 @@ -files = $files; - $this->composer = $composer; - } - - /** - * Execute the console command. - * - * @return void - */ - public function handle() - { - $this->currentRoot = trim($this->laravel->getNamespace(), '\\'); - - $this->setAppDirectoryNamespace(); - $this->setBootstrapNamespaces(); - $this->setConfigNamespaces(); - $this->setComposerNamespace(); - $this->setDatabaseFactoryNamespaces(); - - $this->info('Application namespace set!'); - - $this->composer->dumpAutoloads(); - - $this->call('clear-compiled'); - } - - /** - * Set the namespace on the files in the app directory. - * - * @return void - */ - protected function setAppDirectoryNamespace() - { - $files = Finder::create() - ->in($this->laravel['path']) - ->contains($this->currentRoot) - ->name('*.php'); - - foreach ($files as $file) { - $this->replaceNamespace($file->getRealPath()); - } - } - - /** - * Replace the App namespace at the given path. - * - * @param string $path - * @return void - */ - protected function replaceNamespace($path) - { - $search = [ - 'namespace '.$this->currentRoot.';', - $this->currentRoot.'\\', - ]; - - $replace = [ - 'namespace '.$this->argument('name').';', - $this->argument('name').'\\', - ]; - - $this->replaceIn($path, $search, $replace); - } - - /** - * Set the bootstrap namespaces. - * - * @return void - */ - protected function setBootstrapNamespaces() - { - $search = [ - $this->currentRoot.'\\Http', - $this->currentRoot.'\\Console', - $this->currentRoot.'\\Exceptions', - ]; - - $replace = [ - $this->argument('name').'\\Http', - $this->argument('name').'\\Console', - $this->argument('name').'\\Exceptions', - ]; - - $this->replaceIn($this->getBootstrapPath(), $search, $replace); - } - - /** - * Set the namespace in the appropriate configuration files. - * - * @return void - */ - protected function setConfigNamespaces() - { - $this->setAppConfigNamespaces(); - $this->setAuthConfigNamespace(); - $this->setServicesConfigNamespace(); - } - - /** - * Set the application provider namespaces. - * - * @return void - */ - protected function setAppConfigNamespaces() - { - $search = [ - $this->currentRoot.'\\Providers', - $this->currentRoot.'\\Http\\Controllers\\', - ]; - - $replace = [ - $this->argument('name').'\\Providers', - $this->argument('name').'\\Http\\Controllers\\', - ]; - - $this->replaceIn($this->getConfigPath('app'), $search, $replace); - } - - /** - * Set the authentication User namespace. - * - * @return void - */ - protected function setAuthConfigNamespace() - { - $this->replaceIn( - $this->getConfigPath('auth'), - $this->currentRoot.'\\User', - $this->argument('name').'\\User' - ); - } - - /** - * Set the services User namespace. - * - * @return void - */ - protected function setServicesConfigNamespace() - { - $this->replaceIn( - $this->getConfigPath('services'), - $this->currentRoot.'\\User', - $this->argument('name').'\\User' - ); - } - - /** - * Set the PSR-4 namespace in the Composer file. - * - * @return void - */ - protected function setComposerNamespace() - { - $this->replaceIn( - $this->getComposerPath(), - str_replace('\\', '\\\\', $this->currentRoot).'\\\\', - str_replace('\\', '\\\\', $this->argument('name')).'\\\\' - ); - } - - /** - * Set the namespace in database factory files. - * - * @return void - */ - protected function setDatabaseFactoryNamespaces() - { - $files = Finder::create() - ->in(database_path('factories')) - ->contains($this->currentRoot) - ->name('*.php'); - - foreach ($files as $file) { - $this->replaceIn( - $file->getRealPath(), - $this->currentRoot, $this->argument('name') - ); - } - } - - /** - * Replace the given string in the given file. - * - * @param string $path - * @param string|array $search - * @param string|array $replace - * @return void - */ - protected function replaceIn($path, $search, $replace) - { - if ($this->files->exists($path)) { - $this->files->put($path, str_replace($search, $replace, $this->files->get($path))); - } - } - - /** - * Get the path to the bootstrap/app.php file. - * - * @return string - */ - protected function getBootstrapPath() - { - return $this->laravel->bootstrapPath().'/app.php'; - } - - /** - * Get the path to the Composer.json file. - * - * @return string - */ - protected function getComposerPath() - { - return base_path('composer.json'); - } - - /** - * Get the path to the given configuration file. - * - * @param string $name - * @return string - */ - protected function getConfigPath($name) - { - return $this->laravel['path.config'].'/'.$name.'.php'; - } - - /** - * Get the console command arguments. - * - * @return array - */ - protected function getArguments() - { - return [ - ['name', InputArgument::REQUIRED, 'The desired namespace.'], - ]; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Console/ChannelMakeCommand.php b/vendor/laravel/framework/src/Illuminate/Foundation/Console/ChannelMakeCommand.php deleted file mode 100644 index 8cfb3da8..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Console/ChannelMakeCommand.php +++ /dev/null @@ -1,65 +0,0 @@ -laravel->getCachedServicesPath())) { - @unlink($servicesPath); - } - - if (file_exists($packagesPath = $this->laravel->getCachedPackagesPath())) { - @unlink($packagesPath); - } - - $this->info('Compiled services and packages files removed!'); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Console/ClosureCommand.php b/vendor/laravel/framework/src/Illuminate/Foundation/Console/ClosureCommand.php deleted file mode 100644 index 1e34b86d..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Console/ClosureCommand.php +++ /dev/null @@ -1,71 +0,0 @@ -callback = $callback; - $this->signature = $signature; - - parent::__construct(); - } - - /** - * Execute the console command. - * - * @param \Symfony\Component\Console\Input\InputInterface $input - * @param \Symfony\Component\Console\Output\OutputInterface $output - * @return mixed - */ - protected function execute(InputInterface $input, OutputInterface $output) - { - $inputs = array_merge($input->getArguments(), $input->getOptions()); - - $parameters = []; - - foreach ((new ReflectionFunction($this->callback))->getParameters() as $parameter) { - if (isset($inputs[$parameter->name])) { - $parameters[$parameter->name] = $inputs[$parameter->name]; - } - } - - return $this->laravel->call( - $this->callback->bindTo($this, $this), $parameters - ); - } - - /** - * Set the description for the command. - * - * @param string $description - * @return $this - */ - public function describe($description) - { - $this->setDescription($description); - - return $this; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Console/ConfigCacheCommand.php b/vendor/laravel/framework/src/Illuminate/Foundation/Console/ConfigCacheCommand.php deleted file mode 100644 index 275b672d..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Console/ConfigCacheCommand.php +++ /dev/null @@ -1,87 +0,0 @@ -files = $files; - } - - /** - * Execute the console command. - * - * @return void - */ - public function handle() - { - $this->call('config:clear'); - - $config = $this->getFreshConfiguration(); - $configPath = $this->laravel->getCachedConfigPath(); - - $this->files->put( - $configPath, 'files->delete($configPath); - - throw new LogicException('Your configuration files are not serializable.', 0, $e); - } - - $this->info('Configuration cached successfully!'); - } - - /** - * Boot a fresh copy of the application configuration. - * - * @return array - */ - protected function getFreshConfiguration() - { - $app = require $this->laravel->bootstrapPath().'/app.php'; - - $app->make(ConsoleKernelContract::class)->bootstrap(); - - return $app['config']->all(); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Console/ConfigClearCommand.php b/vendor/laravel/framework/src/Illuminate/Foundation/Console/ConfigClearCommand.php deleted file mode 100644 index d20e2d85..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Console/ConfigClearCommand.php +++ /dev/null @@ -1,55 +0,0 @@ -files = $files; - } - - /** - * Execute the console command. - * - * @return void - */ - public function handle() - { - $this->files->delete($this->laravel->getCachedConfigPath()); - - $this->info('Configuration cache cleared!'); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Console/ConsoleMakeCommand.php b/vendor/laravel/framework/src/Illuminate/Foundation/Console/ConsoleMakeCommand.php deleted file mode 100644 index a9b164b9..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Console/ConsoleMakeCommand.php +++ /dev/null @@ -1,90 +0,0 @@ -option('command'), $stub); - } - - /** - * Get the stub file for the generator. - * - * @return string - */ - protected function getStub() - { - return __DIR__.'/stubs/console.stub'; - } - - /** - * Get the default namespace for the class. - * - * @param string $rootNamespace - * @return string - */ - protected function getDefaultNamespace($rootNamespace) - { - return $rootNamespace.'\Console\Commands'; - } - - /** - * Get the console command arguments. - * - * @return array - */ - protected function getArguments() - { - return [ - ['name', InputArgument::REQUIRED, 'The name of the command.'], - ]; - } - - /** - * Get the console command options. - * - * @return array - */ - protected function getOptions() - { - return [ - ['command', null, InputOption::VALUE_OPTIONAL, 'The terminal command that should be assigned.', 'command:name'], - ]; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Console/DownCommand.php b/vendor/laravel/framework/src/Illuminate/Foundation/Console/DownCommand.php deleted file mode 100644 index 4382ccc2..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Console/DownCommand.php +++ /dev/null @@ -1,69 +0,0 @@ -getDownFilePayload(), JSON_PRETTY_PRINT) - ); - - $this->comment('Application is now in maintenance mode.'); - } - - /** - * Get the payload to be placed in the "down" file. - * - * @return array - */ - protected function getDownFilePayload() - { - return [ - 'time' => $this->currentTime(), - 'message' => $this->option('message'), - 'retry' => $this->getRetryTime(), - 'allowed' => $this->option('allow'), - ]; - } - - /** - * Get the number of seconds the client should wait before retrying their request. - * - * @return int|null - */ - protected function getRetryTime() - { - $retry = $this->option('retry'); - - return is_numeric($retry) && $retry > 0 ? (int) $retry : null; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Console/EnvironmentCommand.php b/vendor/laravel/framework/src/Illuminate/Foundation/Console/EnvironmentCommand.php deleted file mode 100644 index ab3bb320..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Console/EnvironmentCommand.php +++ /dev/null @@ -1,32 +0,0 @@ -line('Current application environment: '.$this->laravel['env'].''); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Console/EventGenerateCommand.php b/vendor/laravel/framework/src/Illuminate/Foundation/Console/EventGenerateCommand.php deleted file mode 100644 index 0c6a4a7b..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Console/EventGenerateCommand.php +++ /dev/null @@ -1,78 +0,0 @@ -laravel->getProviders(EventServiceProvider::class); - - foreach ($providers as $provider) { - foreach ($provider->listens() as $event => $listeners) { - $this->makeEventAndListeners($event, $listeners); - } - } - - $this->info('Events and listeners generated successfully!'); - } - - /** - * Make the event and listeners for the given event. - * - * @param string $event - * @param array $listeners - * @return void - */ - protected function makeEventAndListeners($event, $listeners) - { - if (! Str::contains($event, '\\')) { - return; - } - - $this->callSilent('make:event', ['name' => $event]); - - $this->makeListeners($event, $listeners); - } - - /** - * Make the listeners for the given event. - * - * @param string $event - * @param array $listeners - * @return void - */ - protected function makeListeners($event, $listeners) - { - foreach ($listeners as $listener) { - $listener = preg_replace('/@.+$/', '', $listener); - - $this->callSilent('make:listener', array_filter( - ['name' => $listener, '--event' => $event] - )); - } - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Console/EventMakeCommand.php b/vendor/laravel/framework/src/Illuminate/Foundation/Console/EventMakeCommand.php deleted file mode 100644 index f18719aa..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Console/EventMakeCommand.php +++ /dev/null @@ -1,61 +0,0 @@ -option('render')) { - return $this->option('report') - ? __DIR__.'/stubs/exception-render-report.stub' - : __DIR__.'/stubs/exception-render.stub'; - } - - return $this->option('report') - ? __DIR__.'/stubs/exception-report.stub' - : __DIR__.'/stubs/exception.stub'; - } - - /** - * Determine if the class already exists. - * - * @param string $rawName - * @return bool - */ - protected function alreadyExists($rawName) - { - return class_exists($this->rootNamespace().'Exceptions\\'.$rawName); - } - - /** - * Get the default namespace for the class. - * - * @param string $rootNamespace - * @return string - */ - protected function getDefaultNamespace($rootNamespace) - { - return $rootNamespace.'\Exceptions'; - } - - /** - * Get the console command options. - * - * @return array - */ - protected function getOptions() - { - return [ - ['render', null, InputOption::VALUE_NONE, 'Create the exception with an empty render method.'], - - ['report', null, InputOption::VALUE_NONE, 'Create the exception with an empty report method.'], - ]; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Console/JobMakeCommand.php b/vendor/laravel/framework/src/Illuminate/Foundation/Console/JobMakeCommand.php deleted file mode 100644 index af006720..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Console/JobMakeCommand.php +++ /dev/null @@ -1,65 +0,0 @@ -option('sync') - ? __DIR__.'/stubs/job.stub' - : __DIR__.'/stubs/job-queued.stub'; - } - - /** - * Get the default namespace for the class. - * - * @param string $rootNamespace - * @return string - */ - protected function getDefaultNamespace($rootNamespace) - { - return $rootNamespace.'\Jobs'; - } - - /** - * Get the console command options. - * - * @return array - */ - protected function getOptions() - { - return [ - ['sync', null, InputOption::VALUE_NONE, 'Indicates that job should be synchronous.'], - ]; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php b/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php deleted file mode 100644 index 4d933a28..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php +++ /dev/null @@ -1,367 +0,0 @@ -app = $app; - $this->events = $events; - - $this->app->booted(function () { - $this->defineConsoleSchedule(); - }); - } - - /** - * Define the application's command schedule. - * - * @return void - */ - protected function defineConsoleSchedule() - { - $this->app->singleton(Schedule::class, function ($app) { - return new Schedule; - }); - - $schedule = $this->app->make(Schedule::class); - - $this->schedule($schedule); - } - - /** - * Run the console application. - * - * @param \Symfony\Component\Console\Input\InputInterface $input - * @param \Symfony\Component\Console\Output\OutputInterface $output - * @return int - */ - public function handle($input, $output = null) - { - try { - $this->bootstrap(); - - return $this->getArtisan()->run($input, $output); - } catch (Exception $e) { - $this->reportException($e); - - $this->renderException($output, $e); - - return 1; - } catch (Throwable $e) { - $e = new FatalThrowableError($e); - - $this->reportException($e); - - $this->renderException($output, $e); - - return 1; - } - } - - /** - * Terminate the application. - * - * @param \Symfony\Component\Console\Input\InputInterface $input - * @param int $status - * @return void - */ - public function terminate($input, $status) - { - $this->app->terminate(); - } - - /** - * Define the application's command schedule. - * - * @param \Illuminate\Console\Scheduling\Schedule $schedule - * @return void - */ - protected function schedule(Schedule $schedule) - { - // - } - - /** - * Register the Closure based commands for the application. - * - * @return void - */ - protected function commands() - { - // - } - - /** - * Register a Closure based command with the application. - * - * @param string $signature - * @param \Closure $callback - * @return \Illuminate\Foundation\Console\ClosureCommand - */ - public function command($signature, Closure $callback) - { - $command = new ClosureCommand($signature, $callback); - - Artisan::starting(function ($artisan) use ($command) { - $artisan->add($command); - }); - - return $command; - } - - /** - * Register all of the commands in the given directory. - * - * @param array|string $paths - * @return void - */ - protected function load($paths) - { - $paths = array_unique(Arr::wrap($paths)); - - $paths = array_filter($paths, function ($path) { - return is_dir($path); - }); - - if (empty($paths)) { - return; - } - - $namespace = $this->app->getNamespace(); - - foreach ((new Finder)->in($paths)->files() as $command) { - $command = $namespace.str_replace( - ['/', '.php'], - ['\\', ''], - Str::after($command->getPathname(), app_path().DIRECTORY_SEPARATOR) - ); - - if (is_subclass_of($command, Command::class) && - ! (new ReflectionClass($command))->isAbstract()) { - Artisan::starting(function ($artisan) use ($command) { - $artisan->resolve($command); - }); - } - } - } - - /** - * Register the given command with the console application. - * - * @param \Symfony\Component\Console\Command\Command $command - * @return void - */ - public function registerCommand($command) - { - $this->getArtisan()->add($command); - } - - /** - * Run an Artisan console command by name. - * - * @param string $command - * @param array $parameters - * @param \Symfony\Component\Console\Output\OutputInterface $outputBuffer - * @return int - */ - public function call($command, array $parameters = [], $outputBuffer = null) - { - $this->bootstrap(); - - return $this->getArtisan()->call($command, $parameters, $outputBuffer); - } - - /** - * Queue the given console command. - * - * @param string $command - * @param array $parameters - * @return \Illuminate\Foundation\Bus\PendingDispatch - */ - public function queue($command, array $parameters = []) - { - return QueuedCommand::dispatch(func_get_args()); - } - - /** - * Get all of the commands registered with the console. - * - * @return array - */ - public function all() - { - $this->bootstrap(); - - return $this->getArtisan()->all(); - } - - /** - * Get the output for the last run command. - * - * @return string - */ - public function output() - { - $this->bootstrap(); - - return $this->getArtisan()->output(); - } - - /** - * Bootstrap the application for artisan commands. - * - * @return void - */ - public function bootstrap() - { - if (! $this->app->hasBeenBootstrapped()) { - $this->app->bootstrapWith($this->bootstrappers()); - } - - $this->app->loadDeferredProviders(); - - if (! $this->commandsLoaded) { - $this->commands(); - - $this->commandsLoaded = true; - } - } - - /** - * Get the Artisan application instance. - * - * @return \Illuminate\Console\Application - */ - protected function getArtisan() - { - if (is_null($this->artisan)) { - return $this->artisan = (new Artisan($this->app, $this->events, $this->app->version())) - ->resolveCommands($this->commands); - } - - return $this->artisan; - } - - /** - * Set the Artisan application instance. - * - * @param \Illuminate\Console\Application $artisan - * @return void - */ - public function setArtisan($artisan) - { - $this->artisan = $artisan; - } - - /** - * Get the bootstrap classes for the application. - * - * @return array - */ - protected function bootstrappers() - { - return $this->bootstrappers; - } - - /** - * Report the exception to the exception handler. - * - * @param \Exception $e - * @return void - */ - protected function reportException(Exception $e) - { - $this->app[ExceptionHandler::class]->report($e); - } - - /** - * Report the exception to the exception handler. - * - * @param \Symfony\Component\Console\Output\OutputInterface $output - * @param \Exception $e - * @return void - */ - protected function renderException($output, Exception $e) - { - $this->app[ExceptionHandler::class]->renderForConsole($output, $e); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Console/KeyGenerateCommand.php b/vendor/laravel/framework/src/Illuminate/Foundation/Console/KeyGenerateCommand.php deleted file mode 100644 index 52ac6ea0..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Console/KeyGenerateCommand.php +++ /dev/null @@ -1,111 +0,0 @@ -generateRandomKey(); - - if ($this->option('show')) { - return $this->line(''.$key.''); - } - - // Next, we will replace the application key in the environment file so it is - // automatically setup for this developer. This key gets generated using a - // secure random byte generator and is later base64 encoded for storage. - if (! $this->setKeyInEnvironmentFile($key)) { - return; - } - - $this->laravel['config']['app.key'] = $key; - - $this->info("Application key [$key] set successfully."); - } - - /** - * Generate a random key for the application. - * - * @return string - */ - protected function generateRandomKey() - { - return 'base64:'.base64_encode( - Encrypter::generateKey($this->laravel['config']['app.cipher']) - ); - } - - /** - * Set the application key in the environment file. - * - * @param string $key - * @return bool - */ - protected function setKeyInEnvironmentFile($key) - { - $currentKey = $this->laravel['config']['app.key']; - - if (strlen($currentKey) !== 0 && (! $this->confirmToProceed())) { - return false; - } - - $this->writeNewEnvironmentFileWith($key); - - return true; - } - - /** - * Write a new environment file with the given key. - * - * @param string $key - * @return void - */ - protected function writeNewEnvironmentFileWith($key) - { - file_put_contents($this->laravel->environmentFilePath(), preg_replace( - $this->keyReplacementPattern(), - 'APP_KEY='.$key, - file_get_contents($this->laravel->environmentFilePath()) - )); - } - - /** - * Get a regex pattern that will match env APP_KEY with any random key. - * - * @return string - */ - protected function keyReplacementPattern() - { - $escaped = preg_quote('='.$this->laravel['config']['app.key'], '/'); - - return "/^APP_KEY{$escaped}/m"; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Console/ListenerMakeCommand.php b/vendor/laravel/framework/src/Illuminate/Foundation/Console/ListenerMakeCommand.php deleted file mode 100644 index ce3e25ef..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Console/ListenerMakeCommand.php +++ /dev/null @@ -1,112 +0,0 @@ -option('event'); - - if (! Str::startsWith($event, [ - $this->laravel->getNamespace(), - 'Illuminate', - '\\', - ])) { - $event = $this->laravel->getNamespace().'Events\\'.$event; - } - - $stub = str_replace( - 'DummyEvent', class_basename($event), parent::buildClass($name) - ); - - return str_replace( - 'DummyFullEvent', $event, $stub - ); - } - - /** - * Get the stub file for the generator. - * - * @return string - */ - protected function getStub() - { - if ($this->option('queued')) { - return $this->option('event') - ? __DIR__.'/stubs/listener-queued.stub' - : __DIR__.'/stubs/listener-queued-duck.stub'; - } - - return $this->option('event') - ? __DIR__.'/stubs/listener.stub' - : __DIR__.'/stubs/listener-duck.stub'; - } - - /** - * Determine if the class already exists. - * - * @param string $rawName - * @return bool - */ - protected function alreadyExists($rawName) - { - return class_exists($rawName); - } - - /** - * Get the default namespace for the class. - * - * @param string $rootNamespace - * @return string - */ - protected function getDefaultNamespace($rootNamespace) - { - return $rootNamespace.'\Listeners'; - } - - /** - * Get the console command options. - * - * @return array - */ - protected function getOptions() - { - return [ - ['event', 'e', InputOption::VALUE_OPTIONAL, 'The event class being listened for.'], - - ['queued', null, InputOption::VALUE_NONE, 'Indicates the event listener should be queued.'], - ]; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Console/MailMakeCommand.php b/vendor/laravel/framework/src/Illuminate/Foundation/Console/MailMakeCommand.php deleted file mode 100644 index 6b97fa98..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Console/MailMakeCommand.php +++ /dev/null @@ -1,116 +0,0 @@ -option('force')) { - return; - } - - if ($this->option('markdown')) { - $this->writeMarkdownTemplate(); - } - } - - /** - * Write the Markdown template for the mailable. - * - * @return void - */ - protected function writeMarkdownTemplate() - { - $path = resource_path('views/'.str_replace('.', '/', $this->option('markdown'))).'.blade.php'; - - if (! $this->files->isDirectory(dirname($path))) { - $this->files->makeDirectory(dirname($path), 0755, true); - } - - $this->files->put($path, file_get_contents(__DIR__.'/stubs/markdown.stub')); - } - - /** - * Build the class with the given name. - * - * @param string $name - * @return string - */ - protected function buildClass($name) - { - $class = parent::buildClass($name); - - if ($this->option('markdown')) { - $class = str_replace('DummyView', $this->option('markdown'), $class); - } - - return $class; - } - - /** - * Get the stub file for the generator. - * - * @return string - */ - protected function getStub() - { - return $this->option('markdown') - ? __DIR__.'/stubs/markdown-mail.stub' - : __DIR__.'/stubs/mail.stub'; - } - - /** - * Get the default namespace for the class. - * - * @param string $rootNamespace - * @return string - */ - protected function getDefaultNamespace($rootNamespace) - { - return $rootNamespace.'\Mail'; - } - - /** - * Get the console command options. - * - * @return array - */ - protected function getOptions() - { - return [ - ['force', 'f', InputOption::VALUE_NONE, 'Create the class even if the mailable already exists.'], - - ['markdown', 'm', InputOption::VALUE_OPTIONAL, 'Create a new Markdown template for the mailable.'], - ]; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Console/ModelMakeCommand.php b/vendor/laravel/framework/src/Illuminate/Foundation/Console/ModelMakeCommand.php deleted file mode 100644 index 071b5288..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Console/ModelMakeCommand.php +++ /dev/null @@ -1,158 +0,0 @@ -option('force')) { - return; - } - - if ($this->option('all')) { - $this->input->setOption('factory', true); - $this->input->setOption('migration', true); - $this->input->setOption('controller', true); - $this->input->setOption('resource', true); - } - - if ($this->option('factory')) { - $this->createFactory(); - } - - if ($this->option('migration')) { - $this->createMigration(); - } - - if ($this->option('controller') || $this->option('resource')) { - $this->createController(); - } - } - - /** - * Create a model factory for the model. - * - * @return void - */ - protected function createFactory() - { - $factory = Str::studly(class_basename($this->argument('name'))); - - $this->call('make:factory', [ - 'name' => "{$factory}Factory", - '--model' => $this->argument('name'), - ]); - } - - /** - * Create a migration file for the model. - * - * @return void - */ - protected function createMigration() - { - $table = Str::plural(Str::snake(class_basename($this->argument('name')))); - - $this->call('make:migration', [ - 'name' => "create_{$table}_table", - '--create' => $table, - ]); - } - - /** - * Create a controller for the model. - * - * @return void - */ - protected function createController() - { - $controller = Str::studly(class_basename($this->argument('name'))); - - $modelName = $this->qualifyClass($this->getNameInput()); - - $this->call('make:controller', [ - 'name' => "{$controller}Controller", - '--model' => $this->option('resource') ? $modelName : null, - ]); - } - - /** - * Get the stub file for the generator. - * - * @return string - */ - protected function getStub() - { - if ($this->option('pivot')) { - return __DIR__.'/stubs/pivot.model.stub'; - } - - return __DIR__.'/stubs/model.stub'; - } - - /** - * Get the default namespace for the class. - * - * @param string $rootNamespace - * @return string - */ - protected function getDefaultNamespace($rootNamespace) - { - return $rootNamespace; - } - - /** - * Get the console command options. - * - * @return array - */ - protected function getOptions() - { - return [ - ['all', 'a', InputOption::VALUE_NONE, 'Generate a migration, factory, and resource controller for the model'], - - ['controller', 'c', InputOption::VALUE_NONE, 'Create a new controller for the model'], - - ['factory', 'f', InputOption::VALUE_NONE, 'Create a new factory for the model'], - - ['force', null, InputOption::VALUE_NONE, 'Create the class even if the model already exists.'], - - ['migration', 'm', InputOption::VALUE_NONE, 'Create a new migration file for the model.'], - - ['pivot', 'p', InputOption::VALUE_NONE, 'Indicates if the generated model should be a custom intermediate table model.'], - - ['resource', 'r', InputOption::VALUE_NONE, 'Indicates if the generated controller should be a resource controller.'], - ]; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Console/NotificationMakeCommand.php b/vendor/laravel/framework/src/Illuminate/Foundation/Console/NotificationMakeCommand.php deleted file mode 100644 index 43c62678..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Console/NotificationMakeCommand.php +++ /dev/null @@ -1,116 +0,0 @@ -option('force')) { - return; - } - - if ($this->option('markdown')) { - $this->writeMarkdownTemplate(); - } - } - - /** - * Write the Markdown template for the mailable. - * - * @return void - */ - protected function writeMarkdownTemplate() - { - $path = resource_path('views/'.str_replace('.', '/', $this->option('markdown'))).'.blade.php'; - - if (! $this->files->isDirectory(dirname($path))) { - $this->files->makeDirectory(dirname($path), 0755, true); - } - - $this->files->put($path, file_get_contents(__DIR__.'/stubs/markdown.stub')); - } - - /** - * Build the class with the given name. - * - * @param string $name - * @return string - */ - protected function buildClass($name) - { - $class = parent::buildClass($name); - - if ($this->option('markdown')) { - $class = str_replace('DummyView', $this->option('markdown'), $class); - } - - return $class; - } - - /** - * Get the stub file for the generator. - * - * @return string - */ - protected function getStub() - { - return $this->option('markdown') - ? __DIR__.'/stubs/markdown-notification.stub' - : __DIR__.'/stubs/notification.stub'; - } - - /** - * Get the default namespace for the class. - * - * @param string $rootNamespace - * @return string - */ - protected function getDefaultNamespace($rootNamespace) - { - return $rootNamespace.'\Notifications'; - } - - /** - * Get the console command options. - * - * @return array - */ - protected function getOptions() - { - return [ - ['force', 'f', InputOption::VALUE_NONE, 'Create the class even if the notification already exists.'], - - ['markdown', 'm', InputOption::VALUE_OPTIONAL, 'Create a new Markdown template for the notification.'], - ]; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Console/ObserverMakeCommand.php b/vendor/laravel/framework/src/Illuminate/Foundation/Console/ObserverMakeCommand.php deleted file mode 100644 index 77a81626..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Console/ObserverMakeCommand.php +++ /dev/null @@ -1,113 +0,0 @@ -option('model'); - - return $model ? $this->replaceModel($stub, $model) : $stub; - } - - /** - * Get the stub file for the generator. - * - * @return string - */ - protected function getStub() - { - return $this->option('model') - ? __DIR__.'/stubs/observer.stub' - : __DIR__.'/stubs/observer.plain.stub'; - } - - /** - * Replace the model for the given stub. - * - * @param string $stub - * @param string $model - * @return string - */ - protected function replaceModel($stub, $model) - { - $model = str_replace('/', '\\', $model); - - $namespaceModel = $this->laravel->getNamespace().$model; - - if (Str::startsWith($model, '\\')) { - $stub = str_replace('NamespacedDummyModel', trim($model, '\\'), $stub); - } else { - $stub = str_replace('NamespacedDummyModel', $namespaceModel, $stub); - } - - $stub = str_replace( - "use {$namespaceModel};\nuse {$namespaceModel};", "use {$namespaceModel};", $stub - ); - - $model = class_basename(trim($model, '\\')); - - $stub = str_replace('DocDummyModel', Str::snake($model, ' '), $stub); - - $stub = str_replace('DummyModel', $model, $stub); - - return str_replace('dummyModel', Str::camel($model), $stub); - } - - /** - * Get the default namespace for the class. - * - * @param string $rootNamespace - * @return string - */ - protected function getDefaultNamespace($rootNamespace) - { - return $rootNamespace.'\Observers'; - } - - /** - * Get the console command arguments. - * - * @return array - */ - protected function getOptions() - { - return [ - ['model', 'm', InputOption::VALUE_OPTIONAL, 'The model that the observer applies to.'], - ]; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Console/PackageDiscoverCommand.php b/vendor/laravel/framework/src/Illuminate/Foundation/Console/PackageDiscoverCommand.php deleted file mode 100644 index 3ef8f01f..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Console/PackageDiscoverCommand.php +++ /dev/null @@ -1,40 +0,0 @@ -build(); - - foreach (array_keys($manifest->manifest) as $package) { - $this->line("Discovered Package: {$package}"); - } - - $this->info('Package manifest generated successfully.'); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Console/PolicyMakeCommand.php b/vendor/laravel/framework/src/Illuminate/Foundation/Console/PolicyMakeCommand.php deleted file mode 100644 index c360d0f3..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Console/PolicyMakeCommand.php +++ /dev/null @@ -1,142 +0,0 @@ -replaceUserNamespace( - parent::buildClass($name) - ); - - $model = $this->option('model'); - - return $model ? $this->replaceModel($stub, $model) : $stub; - } - - /** - * Replace the User model namespace. - * - * @param string $stub - * @return string - */ - protected function replaceUserNamespace($stub) - { - if (! config('auth.providers.users.model')) { - return $stub; - } - - return str_replace( - $this->rootNamespace().'User', - config('auth.providers.users.model'), - $stub - ); - } - - /** - * Replace the model for the given stub. - * - * @param string $stub - * @param string $model - * @return string - */ - protected function replaceModel($stub, $model) - { - $model = str_replace('/', '\\', $model); - - $namespaceModel = $this->laravel->getNamespace().$model; - - if (Str::startsWith($model, '\\')) { - $stub = str_replace('NamespacedDummyModel', trim($model, '\\'), $stub); - } else { - $stub = str_replace('NamespacedDummyModel', $namespaceModel, $stub); - } - - $stub = str_replace( - "use {$namespaceModel};\nuse {$namespaceModel};", "use {$namespaceModel};", $stub - ); - - $model = class_basename(trim($model, '\\')); - - $dummyUser = class_basename(config('auth.providers.users.model')); - - $dummyModel = Str::camel($model) === 'user' ? 'model' : $model; - - $stub = str_replace('DocDummyModel', Str::snake($dummyModel, ' '), $stub); - - $stub = str_replace('DummyModel', $model, $stub); - - $stub = str_replace('dummyModel', Str::camel($dummyModel), $stub); - - $stub = str_replace('DummyUser', $dummyUser, $stub); - - return str_replace('DocDummyPluralModel', Str::snake(Str::plural($dummyModel), ' '), $stub); - } - - /** - * Get the stub file for the generator. - * - * @return string - */ - protected function getStub() - { - return $this->option('model') - ? __DIR__.'/stubs/policy.stub' - : __DIR__.'/stubs/policy.plain.stub'; - } - - /** - * Get the default namespace for the class. - * - * @param string $rootNamespace - * @return string - */ - protected function getDefaultNamespace($rootNamespace) - { - return $rootNamespace.'\Policies'; - } - - /** - * Get the console command arguments. - * - * @return array - */ - protected function getOptions() - { - return [ - ['model', 'm', InputOption::VALUE_OPTIONAL, 'The model that the policy applies to.'], - ]; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Console/PresetCommand.php b/vendor/laravel/framework/src/Illuminate/Foundation/Console/PresetCommand.php deleted file mode 100644 index e43abe34..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Console/PresetCommand.php +++ /dev/null @@ -1,92 +0,0 @@ -argument('type'))) { - return call_user_func(static::$macros[$this->argument('type')], $this); - } - - if (! in_array($this->argument('type'), ['none', 'bootstrap', 'vue', 'react'])) { - throw new InvalidArgumentException('Invalid preset.'); - } - - return $this->{$this->argument('type')}(); - } - - /** - * Install the "fresh" preset. - * - * @return void - */ - protected function none() - { - Presets\None::install(); - - $this->info('Frontend scaffolding removed successfully.'); - } - - /** - * Install the "bootstrap" preset. - * - * @return void - */ - protected function bootstrap() - { - Presets\Bootstrap::install(); - - $this->info('Bootstrap scaffolding installed successfully.'); - $this->comment('Please run "npm install && npm run dev" to compile your fresh scaffolding.'); - } - - /** - * Install the "vue" preset. - * - * @return void - */ - protected function vue() - { - Presets\Vue::install(); - - $this->info('Vue scaffolding installed successfully.'); - $this->comment('Please run "npm install && npm run dev" to compile your fresh scaffolding.'); - } - - /** - * Install the "react" preset. - * - * @return void - */ - protected function react() - { - Presets\React::install(); - - $this->info('React scaffolding installed successfully.'); - $this->comment('Please run "npm install && npm run dev" to compile your fresh scaffolding.'); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Console/Presets/Bootstrap.php b/vendor/laravel/framework/src/Illuminate/Foundation/Console/Presets/Bootstrap.php deleted file mode 100644 index 93c56182..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Console/Presets/Bootstrap.php +++ /dev/null @@ -1,44 +0,0 @@ - '^4.0.0', - 'jquery' => '^3.2', - 'popper.js' => '^1.12', - ] + $packages; - } - - /** - * Update the Sass files for the application. - * - * @return void - */ - protected static function updateSass() - { - copy(__DIR__.'/bootstrap-stubs/_variables.scss', resource_path('assets/sass/_variables.scss')); - copy(__DIR__.'/bootstrap-stubs/app.scss', resource_path('assets/sass/app.scss')); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Console/Presets/None.php b/vendor/laravel/framework/src/Illuminate/Foundation/Console/Presets/None.php deleted file mode 100644 index 77d7f5b7..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Console/Presets/None.php +++ /dev/null @@ -1,59 +0,0 @@ -deleteDirectory(resource_path('assets/js/components')); - $filesystem->delete(resource_path('assets/sass/_variables.scss')); - $filesystem->deleteDirectory(base_path('node_modules')); - $filesystem->deleteDirectory(public_path('css')); - $filesystem->deleteDirectory(public_path('js')); - }); - } - - /** - * Update the given package array. - * - * @param array $packages - * @return array - */ - protected static function updatePackageArray(array $packages) - { - unset( - $packages['bootstrap'], - $packages['jquery'], - $packages['popper.js'], - $packages['vue'], - $packages['babel-preset-react'], - $packages['react'], - $packages['react-dom'] - ); - - return $packages; - } - - /** - * Write the stubs for the Sass and JavaScript files. - * - * @return void - */ - protected static function updateBootstrapping() - { - file_put_contents(resource_path('assets/sass/app.scss'), ''.PHP_EOL); - copy(__DIR__.'/none-stubs/app.js', resource_path('assets/js/app.js')); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Console/Presets/Preset.php b/vendor/laravel/framework/src/Illuminate/Foundation/Console/Presets/Preset.php deleted file mode 100644 index e837cffe..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Console/Presets/Preset.php +++ /dev/null @@ -1,64 +0,0 @@ -isDirectory($directory = resource_path('assets/js/components'))) { - $filesystem->makeDirectory($directory, 0755, true); - } - } - - /** - * Update the "package.json" file. - * - * @param bool $dev - * @return void - */ - protected static function updatePackages($dev = true) - { - if (! file_exists(base_path('package.json'))) { - return; - } - - $configurationKey = $dev ? 'devDependencies' : 'dependencies'; - - $packages = json_decode(file_get_contents(base_path('package.json')), true); - - $packages[$configurationKey] = static::updatePackageArray( - array_key_exists($configurationKey, $packages) ? $packages[$configurationKey] : [] - ); - - ksort($packages[$configurationKey]); - - file_put_contents( - base_path('package.json'), - json_encode($packages, JSON_UNESCAPED_SLASHES | JSON_PRETTY_PRINT).PHP_EOL - ); - } - - /** - * Remove the installed Node modules. - * - * @return void - */ - protected static function removeNodeModules() - { - tap(new Filesystem, function ($files) { - $files->deleteDirectory(base_path('node_modules')); - - $files->delete(base_path('yarn.lock')); - }); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Console/Presets/React.php b/vendor/laravel/framework/src/Illuminate/Foundation/Console/Presets/React.php deleted file mode 100644 index 347de5fa..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Console/Presets/React.php +++ /dev/null @@ -1,76 +0,0 @@ - '^6.23.0', - 'react' => '^16.2.0', - 'react-dom' => '^16.2.0', - ] + Arr::except($packages, ['vue']); - } - - /** - * Update the Webpack configuration. - * - * @return void - */ - protected static function updateWebpackConfiguration() - { - copy(__DIR__.'/react-stubs/webpack.mix.js', base_path('webpack.mix.js')); - } - - /** - * Update the example component. - * - * @return void - */ - protected static function updateComponent() - { - (new Filesystem)->delete( - resource_path('assets/js/components/ExampleComponent.vue') - ); - - copy( - __DIR__.'/react-stubs/Example.js', - resource_path('assets/js/components/Example.js') - ); - } - - /** - * Update the bootstrapping files. - * - * @return void - */ - protected static function updateBootstrapping() - { - copy(__DIR__.'/react-stubs/app.js', resource_path('assets/js/app.js')); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Console/Presets/Vue.php b/vendor/laravel/framework/src/Illuminate/Foundation/Console/Presets/Vue.php deleted file mode 100644 index 5a85dafd..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Console/Presets/Vue.php +++ /dev/null @@ -1,76 +0,0 @@ - '^2.5.7'] + Arr::except($packages, [ - 'babel-preset-react', - 'react', - 'react-dom', - ]); - } - - /** - * Update the Webpack configuration. - * - * @return void - */ - protected static function updateWebpackConfiguration() - { - copy(__DIR__.'/vue-stubs/webpack.mix.js', base_path('webpack.mix.js')); - } - - /** - * Update the example component. - * - * @return void - */ - protected static function updateComponent() - { - (new Filesystem)->delete( - resource_path('assets/js/components/Example.js') - ); - - copy( - __DIR__.'/vue-stubs/ExampleComponent.vue', - resource_path('assets/js/components/ExampleComponent.vue') - ); - } - - /** - * Update the bootstrapping files. - * - * @return void - */ - protected static function updateBootstrapping() - { - copy(__DIR__.'/vue-stubs/app.js', resource_path('assets/js/app.js')); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Console/Presets/bootstrap-stubs/_variables.scss b/vendor/laravel/framework/src/Illuminate/Foundation/Console/Presets/bootstrap-stubs/_variables.scss deleted file mode 100644 index 70ecfdb3..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Console/Presets/bootstrap-stubs/_variables.scss +++ /dev/null @@ -1,8 +0,0 @@ - -// Body -$body-bg: #f5f8fa; - -// Typography -$font-family-sans-serif: "Raleway", sans-serif; -$font-size-base: 0.9rem; -$line-height-base: 1.6; diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Console/Presets/bootstrap-stubs/app.scss b/vendor/laravel/framework/src/Illuminate/Foundation/Console/Presets/bootstrap-stubs/app.scss deleted file mode 100644 index 0077cb14..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Console/Presets/bootstrap-stubs/app.scss +++ /dev/null @@ -1,14 +0,0 @@ - -// Fonts -@import url("https://fonts.googleapis.com/css?family=Raleway:300,400,600"); - -// Variables -@import "variables"; - -// Bootstrap -@import '~bootstrap/scss/bootstrap'; - -.navbar-laravel { - background-color: #fff; - box-shadow: 0 2px 4px rgba(0, 0, 0, 0.04); -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Console/Presets/none-stubs/app.js b/vendor/laravel/framework/src/Illuminate/Foundation/Console/Presets/none-stubs/app.js deleted file mode 100644 index e34e8a47..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Console/Presets/none-stubs/app.js +++ /dev/null @@ -1,8 +0,0 @@ - -/** - * First, we will load all of this project's Javascript utilities and other - * dependencies. Then, we will be ready to develop a robust and powerful - * application frontend using useful Laravel and JavaScript libraries. - */ - -require('./bootstrap'); diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Console/Presets/react-stubs/Example.js b/vendor/laravel/framework/src/Illuminate/Foundation/Console/Presets/react-stubs/Example.js deleted file mode 100644 index 937bb985..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Console/Presets/react-stubs/Example.js +++ /dev/null @@ -1,26 +0,0 @@ -import React, { Component } from 'react'; -import ReactDOM from 'react-dom'; - -export default class Example extends Component { - render() { - return ( -
-
-
-
-
Example Component
- -
- I'm an example component! -
-
-
-
-
- ); - } -} - -if (document.getElementById('example')) { - ReactDOM.render(, document.getElementById('example')); -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Console/Presets/react-stubs/app.js b/vendor/laravel/framework/src/Illuminate/Foundation/Console/Presets/react-stubs/app.js deleted file mode 100644 index 583ecced..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Console/Presets/react-stubs/app.js +++ /dev/null @@ -1,16 +0,0 @@ - -/** - * First we will load all of this project's JavaScript dependencies which - * includes React and other helpers. It's a great starting point while - * building robust, powerful web applications using React + Laravel. - */ - -require('./bootstrap'); - -/** - * Next, we will create a fresh React component instance and attach it to - * the page. Then, you may begin adding components to this application - * or customize the JavaScript scaffolding to fit your unique needs. - */ - -require('./components/Example'); diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Console/Presets/react-stubs/webpack.mix.js b/vendor/laravel/framework/src/Illuminate/Foundation/Console/Presets/react-stubs/webpack.mix.js deleted file mode 100644 index 291598ad..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Console/Presets/react-stubs/webpack.mix.js +++ /dev/null @@ -1,15 +0,0 @@ -let mix = require('laravel-mix'); - -/* - |-------------------------------------------------------------------------- - | Mix Asset Management - |-------------------------------------------------------------------------- - | - | Mix provides a clean, fluent API for defining some Webpack build steps - | for your Laravel application. By default, we are compiling the Sass - | file for the application as well as bundling up all the JS files. - | - */ - -mix.react('resources/assets/js/app.js', 'public/js') - .sass('resources/assets/sass/app.scss', 'public/css'); diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Console/Presets/vue-stubs/ExampleComponent.vue b/vendor/laravel/framework/src/Illuminate/Foundation/Console/Presets/vue-stubs/ExampleComponent.vue deleted file mode 100644 index 3fb9f9aa..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Console/Presets/vue-stubs/ExampleComponent.vue +++ /dev/null @@ -1,23 +0,0 @@ - - - diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Console/Presets/vue-stubs/app.js b/vendor/laravel/framework/src/Illuminate/Foundation/Console/Presets/vue-stubs/app.js deleted file mode 100644 index 98eca79f..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Console/Presets/vue-stubs/app.js +++ /dev/null @@ -1,22 +0,0 @@ - -/** - * First we will load all of this project's JavaScript dependencies which - * includes Vue and other libraries. It is a great starting point when - * building robust, powerful web applications using Vue and Laravel. - */ - -require('./bootstrap'); - -window.Vue = require('vue'); - -/** - * Next, we will create a fresh Vue application instance and attach it to - * the page. Then, you may begin adding components to this application - * or customize the JavaScript scaffolding to fit your unique needs. - */ - -Vue.component('example-component', require('./components/ExampleComponent.vue')); - -const app = new Vue({ - el: '#app' -}); diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Console/Presets/vue-stubs/webpack.mix.js b/vendor/laravel/framework/src/Illuminate/Foundation/Console/Presets/vue-stubs/webpack.mix.js deleted file mode 100644 index 72fdbb16..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Console/Presets/vue-stubs/webpack.mix.js +++ /dev/null @@ -1,15 +0,0 @@ -let mix = require('laravel-mix'); - -/* - |-------------------------------------------------------------------------- - | Mix Asset Management - |-------------------------------------------------------------------------- - | - | Mix provides a clean, fluent API for defining some Webpack build steps - | for your Laravel application. By default, we are compiling the Sass - | file for the application as well as bundling up all the JS files. - | - */ - -mix.js('resources/assets/js/app.js', 'public/js') - .sass('resources/assets/sass/app.scss', 'public/css'); diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Console/ProviderMakeCommand.php b/vendor/laravel/framework/src/Illuminate/Foundation/Console/ProviderMakeCommand.php deleted file mode 100644 index fa887edb..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Console/ProviderMakeCommand.php +++ /dev/null @@ -1,50 +0,0 @@ -data = $data; - } - - /** - * Handle the job. - * - * @param \Illuminate\Contracts\Console\Kernel $kernel - * @return void - */ - public function handle(KernelContract $kernel) - { - call_user_func_array([$kernel, 'call'], $this->data); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Console/RequestMakeCommand.php b/vendor/laravel/framework/src/Illuminate/Foundation/Console/RequestMakeCommand.php deleted file mode 100644 index 95b7a87b..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Console/RequestMakeCommand.php +++ /dev/null @@ -1,50 +0,0 @@ -collection()) { - $this->type = 'Resource collection'; - } - - parent::handle(); - } - - /** - * Get the stub file for the generator. - * - * @return string - */ - protected function getStub() - { - return $this->collection() - ? __DIR__.'/stubs/resource-collection.stub' - : __DIR__.'/stubs/resource.stub'; - } - - /** - * Determine if the command is generating a resource collection. - * - * @return bool - */ - protected function collection() - { - return $this->option('collection') || - Str::endsWith($this->argument('name'), 'Collection'); - } - - /** - * Get the default namespace for the class. - * - * @param string $rootNamespace - * @return string - */ - protected function getDefaultNamespace($rootNamespace) - { - return $rootNamespace.'\Http\Resources'; - } - - /** - * Get the console command options. - * - * @return array - */ - protected function getOptions() - { - return [ - ['collection', 'c', InputOption::VALUE_NONE, 'Create a resource collection.'], - ]; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Console/RouteCacheCommand.php b/vendor/laravel/framework/src/Illuminate/Foundation/Console/RouteCacheCommand.php deleted file mode 100644 index 3c85b877..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Console/RouteCacheCommand.php +++ /dev/null @@ -1,109 +0,0 @@ -files = $files; - } - - /** - * Execute the console command. - * - * @return void - */ - public function handle() - { - $this->call('route:clear'); - - $routes = $this->getFreshApplicationRoutes(); - - if (count($routes) === 0) { - return $this->error("Your application doesn't have any routes."); - } - - foreach ($routes as $route) { - $route->prepareForSerialization(); - } - - $this->files->put( - $this->laravel->getCachedRoutesPath(), $this->buildRouteCacheFile($routes) - ); - - $this->info('Routes cached successfully!'); - } - - /** - * Boot a fresh copy of the application and get the routes. - * - * @return \Illuminate\Routing\RouteCollection - */ - protected function getFreshApplicationRoutes() - { - return tap($this->getFreshApplication()['router']->getRoutes(), function ($routes) { - $routes->refreshNameLookups(); - $routes->refreshActionLookups(); - }); - } - - /** - * Get a fresh application instance. - * - * @return \Illuminate\Foundation\Application - */ - protected function getFreshApplication() - { - return tap(require $this->laravel->bootstrapPath().'/app.php', function ($app) { - $app->make(ConsoleKernelContract::class)->bootstrap(); - }); - } - - /** - * Build the route cache file. - * - * @param \Illuminate\Routing\RouteCollection $routes - * @return string - */ - protected function buildRouteCacheFile(RouteCollection $routes) - { - $stub = $this->files->get(__DIR__.'/stubs/routes.stub'); - - return str_replace('{{routes}}', base64_encode(serialize($routes)), $stub); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Console/RouteClearCommand.php b/vendor/laravel/framework/src/Illuminate/Foundation/Console/RouteClearCommand.php deleted file mode 100644 index 03fab1d9..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Console/RouteClearCommand.php +++ /dev/null @@ -1,55 +0,0 @@ -files = $files; - } - - /** - * Execute the console command. - * - * @return void - */ - public function handle() - { - $this->files->delete($this->laravel->getCachedRoutesPath()); - - $this->info('Route cache cleared!'); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Console/RouteListCommand.php b/vendor/laravel/framework/src/Illuminate/Foundation/Console/RouteListCommand.php deleted file mode 100644 index e5e963ce..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Console/RouteListCommand.php +++ /dev/null @@ -1,192 +0,0 @@ -router = $router; - $this->routes = $router->getRoutes(); - } - - /** - * Execute the console command. - * - * @return void - */ - public function handle() - { - if (count($this->routes) === 0) { - return $this->error("Your application doesn't have any routes."); - } - - $this->displayRoutes($this->getRoutes()); - } - - /** - * Compile the routes into a displayable format. - * - * @return array - */ - protected function getRoutes() - { - $routes = collect($this->routes)->map(function ($route) { - return $this->getRouteInformation($route); - })->all(); - - if ($sort = $this->option('sort')) { - $routes = $this->sortRoutes($sort, $routes); - } - - if ($this->option('reverse')) { - $routes = array_reverse($routes); - } - - return array_filter($routes); - } - - /** - * Get the route information for a given route. - * - * @param \Illuminate\Routing\Route $route - * @return array - */ - protected function getRouteInformation(Route $route) - { - return $this->filterRoute([ - 'host' => $route->domain(), - 'method' => implode('|', $route->methods()), - 'uri' => $route->uri(), - 'name' => $route->getName(), - 'action' => ltrim($route->getActionName(), '\\'), - 'middleware' => $this->getMiddleware($route), - ]); - } - - /** - * Sort the routes by a given element. - * - * @param string $sort - * @param array $routes - * @return array - */ - protected function sortRoutes($sort, $routes) - { - return Arr::sort($routes, function ($route) use ($sort) { - return $route[$sort]; - }); - } - - /** - * Display the route information on the console. - * - * @param array $routes - * @return void - */ - protected function displayRoutes(array $routes) - { - $this->table($this->headers, $routes); - } - - /** - * Get before filters. - * - * @param \Illuminate\Routing\Route $route - * @return string - */ - protected function getMiddleware($route) - { - return collect($route->gatherMiddleware())->map(function ($middleware) { - return $middleware instanceof Closure ? 'Closure' : $middleware; - })->implode(','); - } - - /** - * Filter the route by URI and / or name. - * - * @param array $route - * @return array|null - */ - protected function filterRoute(array $route) - { - if (($this->option('name') && ! Str::contains($route['name'], $this->option('name'))) || - $this->option('path') && ! Str::contains($route['uri'], $this->option('path')) || - $this->option('method') && ! Str::contains($route['method'], strtoupper($this->option('method')))) { - return; - } - - return $route; - } - - /** - * Get the console command options. - * - * @return array - */ - protected function getOptions() - { - return [ - ['method', null, InputOption::VALUE_OPTIONAL, 'Filter the routes by method.'], - - ['name', null, InputOption::VALUE_OPTIONAL, 'Filter the routes by name.'], - - ['path', null, InputOption::VALUE_OPTIONAL, 'Filter the routes by path.'], - - ['reverse', 'r', InputOption::VALUE_NONE, 'Reverse the ordering of the routes.'], - - ['sort', null, InputOption::VALUE_OPTIONAL, 'The column (host, method, uri, name, action, middleware) to sort by.', 'uri'], - ]; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Console/RuleMakeCommand.php b/vendor/laravel/framework/src/Illuminate/Foundation/Console/RuleMakeCommand.php deleted file mode 100644 index 2b699535..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Console/RuleMakeCommand.php +++ /dev/null @@ -1,50 +0,0 @@ -line("Laravel development server started: host()}:{$this->port()}>"); - - passthru($this->serverCommand(), $status); - - return $status; - } - - /** - * Get the full server command. - * - * @return string - */ - protected function serverCommand() - { - return sprintf('%s -S %s:%s %s', - ProcessUtils::escapeArgument((new PhpExecutableFinder)->find(false)), - $this->host(), - $this->port(), - ProcessUtils::escapeArgument(base_path('server.php')) - ); - } - - /** - * Get the host for the command. - * - * @return string - */ - protected function host() - { - return $this->input->getOption('host'); - } - - /** - * Get the port for the command. - * - * @return string - */ - protected function port() - { - return $this->input->getOption('port'); - } - - /** - * Get the console command options. - * - * @return array - */ - protected function getOptions() - { - return [ - ['host', null, InputOption::VALUE_OPTIONAL, 'The host address to serve the application on.', '127.0.0.1'], - - ['port', null, InputOption::VALUE_OPTIONAL, 'The port to serve the application on.', 8000], - ]; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Console/StorageLinkCommand.php b/vendor/laravel/framework/src/Illuminate/Foundation/Console/StorageLinkCommand.php deleted file mode 100644 index 11e5c148..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Console/StorageLinkCommand.php +++ /dev/null @@ -1,40 +0,0 @@ -error('The "public/storage" directory already exists.'); - } - - $this->laravel->make('files')->link( - storage_path('app/public'), public_path('storage') - ); - - $this->info('The [public/storage] directory has been linked.'); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Console/TestMakeCommand.php b/vendor/laravel/framework/src/Illuminate/Foundation/Console/TestMakeCommand.php deleted file mode 100644 index ea08d7cf..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Console/TestMakeCommand.php +++ /dev/null @@ -1,82 +0,0 @@ -option('unit')) { - return __DIR__.'/stubs/unit-test.stub'; - } - - return __DIR__.'/stubs/test.stub'; - } - - /** - * Get the destination class path. - * - * @param string $name - * @return string - */ - protected function getPath($name) - { - $name = Str::replaceFirst($this->rootNamespace(), '', $name); - - return base_path('tests').str_replace('\\', '/', $name).'.php'; - } - - /** - * Get the default namespace for the class. - * - * @param string $rootNamespace - * @return string - */ - protected function getDefaultNamespace($rootNamespace) - { - if ($this->option('unit')) { - return $rootNamespace.'\Unit'; - } else { - return $rootNamespace.'\Feature'; - } - } - - /** - * Get the root namespace for the class. - * - * @return string - */ - protected function rootNamespace() - { - return 'Tests'; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Console/UpCommand.php b/vendor/laravel/framework/src/Illuminate/Foundation/Console/UpCommand.php deleted file mode 100644 index 80554564..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Console/UpCommand.php +++ /dev/null @@ -1,34 +0,0 @@ -info('Application is now live.'); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Console/VendorPublishCommand.php b/vendor/laravel/framework/src/Illuminate/Foundation/Console/VendorPublishCommand.php deleted file mode 100644 index 686f26b7..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Console/VendorPublishCommand.php +++ /dev/null @@ -1,275 +0,0 @@ -files = $files; - } - - /** - * Execute the console command. - * - * @return void - */ - public function handle() - { - $this->determineWhatShouldBePublished(); - - foreach ($this->tags ?: [null] as $tag) { - $this->publishTag($tag); - } - - $this->info('Publishing complete.'); - } - - /** - * Determine the provider or tag(s) to publish. - * - * @return void - */ - protected function determineWhatShouldBePublished() - { - if ($this->option('all')) { - return; - } - - list($this->provider, $this->tags) = [ - $this->option('provider'), (array) $this->option('tag'), - ]; - - if (! $this->provider && ! $this->tags) { - $this->promptForProviderOrTag(); - } - } - - /** - * Prompt for which provider or tag to publish. - * - * @return void - */ - protected function promptForProviderOrTag() - { - $choice = $this->choice( - "Which provider or tag's files would you like to publish?", - $choices = $this->publishableChoices() - ); - - if ($choice == $choices[0] || is_null($choice)) { - return; - } - - $this->parseChoice($choice); - } - - /** - * The choices available via the prompt. - * - * @return array - */ - protected function publishableChoices() - { - return array_merge( - ['Publish files from all providers and tags listed below'], - preg_filter('/^/', 'Provider: ', Arr::sort(ServiceProvider::publishableProviders())), - preg_filter('/^/', 'Tag: ', Arr::sort(ServiceProvider::publishableGroups())) - ); - } - - /** - * Parse the answer that was given via the prompt. - * - * @param string $choice - * @return void - */ - protected function parseChoice($choice) - { - list($type, $value) = explode(': ', strip_tags($choice)); - - if ($type == 'Provider') { - $this->provider = $value; - } elseif ($type == 'Tag') { - $this->tags = [$value]; - } - } - - /** - * Publishes the assets for a tag. - * - * @param string $tag - * @return mixed - */ - protected function publishTag($tag) - { - foreach ($this->pathsToPublish($tag) as $from => $to) { - $this->publishItem($from, $to); - } - } - - /** - * Get all of the paths to publish. - * - * @param string $tag - * @return array - */ - protected function pathsToPublish($tag) - { - return ServiceProvider::pathsToPublish( - $this->provider, $tag - ); - } - - /** - * Publish the given item from and to the given location. - * - * @param string $from - * @param string $to - * @return void - */ - protected function publishItem($from, $to) - { - if ($this->files->isFile($from)) { - return $this->publishFile($from, $to); - } elseif ($this->files->isDirectory($from)) { - return $this->publishDirectory($from, $to); - } - - $this->error("Can't locate path: <{$from}>"); - } - - /** - * Publish the file to the given path. - * - * @param string $from - * @param string $to - * @return void - */ - protected function publishFile($from, $to) - { - if (! $this->files->exists($to) || $this->option('force')) { - $this->createParentDirectory(dirname($to)); - - $this->files->copy($from, $to); - - $this->status($from, $to, 'File'); - } - } - - /** - * Publish the directory to the given directory. - * - * @param string $from - * @param string $to - * @return void - */ - protected function publishDirectory($from, $to) - { - $this->moveManagedFiles(new MountManager([ - 'from' => new Flysystem(new LocalAdapter($from)), - 'to' => new Flysystem(new LocalAdapter($to)), - ])); - - $this->status($from, $to, 'Directory'); - } - - /** - * Move all the files in the given MountManager. - * - * @param \League\Flysystem\MountManager $manager - * @return void - */ - protected function moveManagedFiles($manager) - { - foreach ($manager->listContents('from://', true) as $file) { - if ($file['type'] === 'file' && (! $manager->has('to://'.$file['path']) || $this->option('force'))) { - $manager->put('to://'.$file['path'], $manager->read('from://'.$file['path'])); - } - } - } - - /** - * Create the directory to house the published files if needed. - * - * @param string $directory - * @return void - */ - protected function createParentDirectory($directory) - { - if (! $this->files->isDirectory($directory)) { - $this->files->makeDirectory($directory, 0755, true); - } - } - - /** - * Write a status message to the console. - * - * @param string $from - * @param string $to - * @param string $type - * @return void - */ - protected function status($from, $to, $type) - { - $from = str_replace(base_path(), '', realpath($from)); - - $to = str_replace(base_path(), '', realpath($to)); - - $this->line('Copied '.$type.' ['.$from.'] To ['.$to.']'); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Console/ViewCacheCommand.php b/vendor/laravel/framework/src/Illuminate/Foundation/Console/ViewCacheCommand.php deleted file mode 100644 index 408d9591..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Console/ViewCacheCommand.php +++ /dev/null @@ -1,85 +0,0 @@ -paths()->each(function ($path) { - $this->compileViews($this->bladeFilesIn([$path])); - }); - - $this->info('Blade templates cached successfully!'); - } - - /** - * Compile the given view files. - * - * @param \Illuminate\Support\Collection $views - * @return void - */ - protected function compileViews(Collection $views) - { - $compiler = $this->laravel['view']->getEngineResolver()->resolve('blade')->getCompiler(); - - $views->map(function (SplFileInfo $file) use ($compiler) { - $compiler->compile($file->getRealPath()); - }); - } - - /** - * Get the Blade files in the given path. - * - * @param array $paths - * @return \Illuminate\Support\Collection - */ - protected function bladeFilesIn(array $paths) - { - return collect( - Finder::create() - ->in($paths) - ->exclude('vendor') - ->name('*.blade.php') - ->files() - ); - } - - /** - * Get all of the possible view paths. - * - * @return \Illuminate\Support\Collection - */ - protected function paths() - { - $finder = $this->laravel['view']->getFinder(); - - return collect($finder->getPaths())->merge( - collect($finder->getHints())->flatten() - ); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Console/ViewClearCommand.php b/vendor/laravel/framework/src/Illuminate/Foundation/Console/ViewClearCommand.php deleted file mode 100644 index 251e3937..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Console/ViewClearCommand.php +++ /dev/null @@ -1,66 +0,0 @@ -files = $files; - } - - /** - * Execute the console command. - * - * @return void - * - * @throws \RuntimeException - */ - public function handle() - { - $path = $this->laravel['config']['view.compiled']; - - if (! $path) { - throw new RuntimeException('View path not found.'); - } - - foreach ($this->files->glob("{$path}/*") as $view) { - $this->files->delete($view); - } - - $this->info('Compiled views cleared!'); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Console/stubs/channel.stub b/vendor/laravel/framework/src/Illuminate/Foundation/Console/stubs/channel.stub deleted file mode 100644 index bf261ccf..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Console/stubs/channel.stub +++ /dev/null @@ -1,29 +0,0 @@ -view('view.name'); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Console/stubs/markdown-mail.stub b/vendor/laravel/framework/src/Illuminate/Foundation/Console/stubs/markdown-mail.stub deleted file mode 100644 index 25a0cdc8..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Console/stubs/markdown-mail.stub +++ /dev/null @@ -1,33 +0,0 @@ -markdown('DummyView'); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Console/stubs/markdown-notification.stub b/vendor/laravel/framework/src/Illuminate/Foundation/Console/stubs/markdown-notification.stub deleted file mode 100644 index f554b2c3..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Console/stubs/markdown-notification.stub +++ /dev/null @@ -1,58 +0,0 @@ -markdown('DummyView'); - } - - /** - * Get the array representation of the notification. - * - * @param mixed $notifiable - * @return array - */ - public function toArray($notifiable) - { - return [ - // - ]; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Console/stubs/markdown.stub b/vendor/laravel/framework/src/Illuminate/Foundation/Console/stubs/markdown.stub deleted file mode 100644 index bc414282..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Console/stubs/markdown.stub +++ /dev/null @@ -1,12 +0,0 @@ -@component('mail::message') -# Introduction - -The body of your message. - -@component('mail::button', ['url' => '']) -Button Text -@endcomponent - -Thanks,
-{{ config('app.name') }} -@endcomponent diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Console/stubs/model.stub b/vendor/laravel/framework/src/Illuminate/Foundation/Console/stubs/model.stub deleted file mode 100644 index f01a8333..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Console/stubs/model.stub +++ /dev/null @@ -1,10 +0,0 @@ -line('The introduction to the notification.') - ->action('Notification Action', url('/')) - ->line('Thank you for using our application!'); - } - - /** - * Get the array representation of the notification. - * - * @param mixed $notifiable - * @return array - */ - public function toArray($notifiable) - { - return [ - // - ]; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Console/stubs/observer.plain.stub b/vendor/laravel/framework/src/Illuminate/Foundation/Console/stubs/observer.plain.stub deleted file mode 100644 index daae325c..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Console/stubs/observer.plain.stub +++ /dev/null @@ -1,8 +0,0 @@ -setRoutes( - unserialize(base64_decode('{{routes}}')) -); diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Console/stubs/rule.stub b/vendor/laravel/framework/src/Illuminate/Foundation/Console/stubs/rule.stub deleted file mode 100644 index 826af0d6..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Console/stubs/rule.stub +++ /dev/null @@ -1,40 +0,0 @@ -assertTrue(true); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Console/stubs/unit-test.stub b/vendor/laravel/framework/src/Illuminate/Foundation/Console/stubs/unit-test.stub deleted file mode 100644 index 173fb8d8..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Console/stubs/unit-test.stub +++ /dev/null @@ -1,20 +0,0 @@ -assertTrue(true); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/EnvironmentDetector.php b/vendor/laravel/framework/src/Illuminate/Foundation/EnvironmentDetector.php deleted file mode 100644 index 205f73bc..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/EnvironmentDetector.php +++ /dev/null @@ -1,69 +0,0 @@ -detectConsoleEnvironment($callback, $consoleArgs); - } - - return $this->detectWebEnvironment($callback); - } - - /** - * Set the application environment for a web request. - * - * @param \Closure $callback - * @return string - */ - protected function detectWebEnvironment(Closure $callback) - { - return call_user_func($callback); - } - - /** - * Set the application environment from command-line arguments. - * - * @param \Closure $callback - * @param array $args - * @return string - */ - protected function detectConsoleEnvironment(Closure $callback, array $args) - { - // First we will check if an environment argument was passed via console arguments - // and if it was that automatically overrides as the environment. Otherwise, we - // will check the environment as a "web" request like a typical HTTP request. - if (! is_null($value = $this->getEnvironmentArgument($args))) { - return head(array_slice(explode('=', $value), 1)); - } - - return $this->detectWebEnvironment($callback); - } - - /** - * Get the environment argument from the console. - * - * @param array $args - * @return string|null - */ - protected function getEnvironmentArgument(array $args) - { - return Arr::first($args, function ($value) { - return Str::startsWith($value, '--env'); - }); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Events/Dispatchable.php b/vendor/laravel/framework/src/Illuminate/Foundation/Events/Dispatchable.php deleted file mode 100644 index 0018295b..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Events/Dispatchable.php +++ /dev/null @@ -1,26 +0,0 @@ -locale = $locale; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/Handler.php b/vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/Handler.php deleted file mode 100644 index c8fe8ab8..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/Handler.php +++ /dev/null @@ -1,481 +0,0 @@ -container = $container; - } - - /** - * Report or log an exception. - * - * @param \Exception $e - * @return mixed - * - * @throws \Exception - */ - public function report(Exception $e) - { - if ($this->shouldntReport($e)) { - return; - } - - if (method_exists($e, 'report')) { - return $e->report(); - } - - try { - $logger = $this->container->make(LoggerInterface::class); - } catch (Exception $ex) { - throw $e; - } - - $logger->error( - $e->getMessage(), - array_merge($this->context(), ['exception' => $e] - )); - } - - /** - * Determine if the exception should be reported. - * - * @param \Exception $e - * @return bool - */ - public function shouldReport(Exception $e) - { - return ! $this->shouldntReport($e); - } - - /** - * Determine if the exception is in the "do not report" list. - * - * @param \Exception $e - * @return bool - */ - protected function shouldntReport(Exception $e) - { - $dontReport = array_merge($this->dontReport, $this->internalDontReport); - - return ! is_null(Arr::first($dontReport, function ($type) use ($e) { - return $e instanceof $type; - })); - } - - /** - * Get the default context variables for logging. - * - * @return array - */ - protected function context() - { - try { - return array_filter([ - 'userId' => Auth::id(), - 'email' => Auth::user() ? Auth::user()->email : null, - ]); - } catch (Throwable $e) { - return []; - } - } - - /** - * Render an exception into a response. - * - * @param \Illuminate\Http\Request $request - * @param \Exception $e - * @return \Illuminate\Http\Response|\Symfony\Component\HttpFoundation\Response - */ - public function render($request, Exception $e) - { - if (method_exists($e, 'render') && $response = $e->render($request)) { - return Router::toResponse($request, $response); - } elseif ($e instanceof Responsable) { - return $e->toResponse($request); - } - - $e = $this->prepareException($e); - - if ($e instanceof HttpResponseException) { - return $e->getResponse(); - } elseif ($e instanceof AuthenticationException) { - return $this->unauthenticated($request, $e); - } elseif ($e instanceof ValidationException) { - return $this->convertValidationExceptionToResponse($e, $request); - } - - return $request->expectsJson() - ? $this->prepareJsonResponse($request, $e) - : $this->prepareResponse($request, $e); - } - - /** - * Prepare exception for rendering. - * - * @param \Exception $e - * @return \Exception - */ - protected function prepareException(Exception $e) - { - if ($e instanceof ModelNotFoundException) { - $e = new NotFoundHttpException($e->getMessage(), $e); - } elseif ($e instanceof AuthorizationException) { - $e = new AccessDeniedHttpException($e->getMessage(), $e); - } elseif ($e instanceof TokenMismatchException) { - $e = new HttpException(419, $e->getMessage(), $e); - } - - return $e; - } - - /** - * Convert an authentication exception into a response. - * - * @param \Illuminate\Http\Request $request - * @param \Illuminate\Auth\AuthenticationException $exception - * @return \Illuminate\Http\Response - */ - protected function unauthenticated($request, AuthenticationException $exception) - { - return $request->expectsJson() - ? response()->json(['message' => $exception->getMessage()], 401) - : redirect()->guest(route('login')); - } - - /** - * Create a response object from the given validation exception. - * - * @param \Illuminate\Validation\ValidationException $e - * @param \Illuminate\Http\Request $request - * @return \Symfony\Component\HttpFoundation\Response - */ - protected function convertValidationExceptionToResponse(ValidationException $e, $request) - { - if ($e->response) { - return $e->response; - } - - return $request->expectsJson() - ? $this->invalidJson($request, $e) - : $this->invalid($request, $e); - } - - /** - * Convert a validation exception into a response. - * - * @param \Illuminate\Http\Request $request - * @param \Illuminate\Validation\ValidationException $exception - * @return \Illuminate\Http\Response - */ - protected function invalid($request, ValidationException $exception) - { - return redirect($exception->redirectTo ?? url()->previous()) - ->withInput($request->except($this->dontFlash)) - ->withErrors($exception->errors(), $exception->errorBag); - } - - /** - * Convert a validation exception into a JSON response. - * - * @param \Illuminate\Http\Request $request - * @param \Illuminate\Validation\ValidationException $exception - * @return \Illuminate\Http\JsonResponse - */ - protected function invalidJson($request, ValidationException $exception) - { - return response()->json([ - 'message' => $exception->getMessage(), - 'errors' => $exception->errors(), - ], $exception->status); - } - - /** - * Prepare a response for the given exception. - * - * @param \Illuminate\Http\Request $request - * @param \Exception $e - * @return \Symfony\Component\HttpFoundation\Response - */ - protected function prepareResponse($request, Exception $e) - { - if (! $this->isHttpException($e) && config('app.debug')) { - return $this->toIlluminateResponse($this->convertExceptionToResponse($e), $e); - } - - if (! $this->isHttpException($e)) { - $e = new HttpException(500, $e->getMessage()); - } - - return $this->toIlluminateResponse( - $this->renderHttpException($e), $e - ); - } - - /** - * Create a Symfony response for the given exception. - * - * @param \Exception $e - * @return \Symfony\Component\HttpFoundation\Response - */ - protected function convertExceptionToResponse(Exception $e) - { - return SymfonyResponse::create( - $this->renderExceptionContent($e), - $this->isHttpException($e) ? $e->getStatusCode() : 500, - $this->isHttpException($e) ? $e->getHeaders() : [] - ); - } - - /** - * Get the response content for the given exception. - * - * @param \Exception $e - * @return string - */ - protected function renderExceptionContent(Exception $e) - { - try { - return config('app.debug') && class_exists(Whoops::class) - ? $this->renderExceptionWithWhoops($e) - : $this->renderExceptionWithSymfony($e, config('app.debug')); - } catch (Exception $e) { - return $this->renderExceptionWithSymfony($e, config('app.debug')); - } - } - - /** - * Render an exception to a string using "Whoops". - * - * @param \Exception $e - * @return string - */ - protected function renderExceptionWithWhoops(Exception $e) - { - return tap(new Whoops, function ($whoops) { - $whoops->pushHandler($this->whoopsHandler()); - - $whoops->writeToOutput(false); - - $whoops->allowQuit(false); - })->handleException($e); - } - - /** - * Get the Whoops handler for the application. - * - * @return \Whoops\Handler\Handler - */ - protected function whoopsHandler() - { - return (new WhoopsHandler)->forDebug(); - } - - /** - * Render an exception to a string using Symfony. - * - * @param \Exception $e - * @param bool $debug - * @return string - */ - protected function renderExceptionWithSymfony(Exception $e, $debug) - { - return (new SymfonyExceptionHandler($debug))->getHtml( - FlattenException::create($e) - ); - } - - /** - * Render the given HttpException. - * - * @param \Symfony\Component\HttpKernel\Exception\HttpException $e - * @return \Symfony\Component\HttpFoundation\Response - */ - protected function renderHttpException(HttpException $e) - { - $this->registerErrorViewPaths(); - - if (view()->exists($view = "errors::{$e->getStatusCode()}")) { - return response()->view($view, [ - 'errors' => new ViewErrorBag, - 'exception' => $e, - ], $e->getStatusCode(), $e->getHeaders()); - } - - return $this->convertExceptionToResponse($e); - } - - /** - * Register the error template hint paths. - * - * @return void - */ - protected function registerErrorViewPaths() - { - $paths = collect(config('view.paths')); - - View::replaceNamespace('errors', $paths->map(function ($path) { - return "{$path}/errors"; - })->push(__DIR__.'/views')->all()); - } - - /** - * Map the given exception into an Illuminate response. - * - * @param \Symfony\Component\HttpFoundation\Response $response - * @param \Exception $e - * @return \Illuminate\Http\Response - */ - protected function toIlluminateResponse($response, Exception $e) - { - if ($response instanceof SymfonyRedirectResponse) { - $response = new RedirectResponse( - $response->getTargetUrl(), $response->getStatusCode(), $response->headers->all() - ); - } else { - $response = new Response( - $response->getContent(), $response->getStatusCode(), $response->headers->all() - ); - } - - return $response->withException($e); - } - - /** - * Prepare a JSON response for the given exception. - * - * @param \Illuminate\Http\Request $request - * @param \Exception $e - * @return \Illuminate\Http\JsonResponse - */ - protected function prepareJsonResponse($request, Exception $e) - { - return new JsonResponse( - $this->convertExceptionToArray($e), - $this->isHttpException($e) ? $e->getStatusCode() : 500, - $this->isHttpException($e) ? $e->getHeaders() : [], - JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES - ); - } - - /** - * Convert the given exception to an array. - * - * @param \Exception $e - * @return array - */ - protected function convertExceptionToArray(Exception $e) - { - return config('app.debug') ? [ - 'message' => $e->getMessage(), - 'exception' => get_class($e), - 'file' => $e->getFile(), - 'line' => $e->getLine(), - 'trace' => collect($e->getTrace())->map(function ($trace) { - return Arr::except($trace, ['args']); - })->all(), - ] : [ - 'message' => $this->isHttpException($e) ? $e->getMessage() : 'Server Error', - ]; - } - - /** - * Render an exception to the console. - * - * @param \Symfony\Component\Console\Output\OutputInterface $output - * @param \Exception $e - * @return void - */ - public function renderForConsole($output, Exception $e) - { - (new ConsoleApplication)->renderException($e, $output); - } - - /** - * Determine if the given exception is an HTTP exception. - * - * @param \Exception $e - * @return bool - */ - protected function isHttpException(Exception $e) - { - return $e instanceof HttpException; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/WhoopsHandler.php b/vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/WhoopsHandler.php deleted file mode 100644 index b94a7acc..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/WhoopsHandler.php +++ /dev/null @@ -1,86 +0,0 @@ -handleUnconditionally(true); - - $this->registerApplicationPaths($handler) - ->registerBlacklist($handler) - ->registerEditor($handler); - }); - } - - /** - * Register the application paths with the handler. - * - * @param \Whoops\Handler\PrettyPageHandler $handler - * @return $this - */ - protected function registerApplicationPaths($handler) - { - $handler->setApplicationPaths( - array_flip($this->directoriesExceptVendor()) - ); - - return $this; - } - - /** - * Get the application paths except for the "vendor" directory. - * - * @return array - */ - protected function directoriesExceptVendor() - { - return Arr::except( - array_flip((new Filesystem)->directories(base_path())), - [base_path('vendor')] - ); - } - - /** - * Register the blacklist with the handler. - * - * @param \Whoops\Handler\PrettyPageHandler $handler - * @return $this - */ - protected function registerBlacklist($handler) - { - foreach (config('app.debug_blacklist', []) as $key => $secrets) { - foreach ($secrets as $secret) { - $handler->blacklist($key, $secret); - } - } - - return $this; - } - - /** - * Register the editor with the handler. - * - * @param \Whoops\Handler\PrettyPageHandler $handler - * @return $this - */ - protected function registerEditor($handler) - { - if (config('app.editor', false)) { - $handler->setEditor(config('app.editor')); - } - - return $this; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/views/404.blade.php b/vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/views/404.blade.php deleted file mode 100644 index ff4eb30f..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/views/404.blade.php +++ /dev/null @@ -1,5 +0,0 @@ -@extends('errors::layout') - -@section('title', 'Page Not Found') - -@section('message', 'Sorry, the page you are looking for could not be found.') diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/views/419.blade.php b/vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/views/419.blade.php deleted file mode 100644 index 84258cc9..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/views/419.blade.php +++ /dev/null @@ -1,9 +0,0 @@ -@extends('errors::layout') - -@section('title', 'Page Expired') - -@section('message') - The page has expired due to inactivity. -

- Please refresh and try again. -@stop diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/views/429.blade.php b/vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/views/429.blade.php deleted file mode 100644 index fc1930fd..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/views/429.blade.php +++ /dev/null @@ -1,5 +0,0 @@ -@extends('errors::layout') - -@section('title', 'Error') - -@section('message', 'Too many requests.') diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/views/500.blade.php b/vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/views/500.blade.php deleted file mode 100644 index 333e9880..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/views/500.blade.php +++ /dev/null @@ -1,5 +0,0 @@ -@extends('errors::layout') - -@section('title', 'Error') - -@section('message', 'Whoops, looks like something went wrong.') diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/views/503.blade.php b/vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/views/503.blade.php deleted file mode 100644 index 7d7d211f..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/views/503.blade.php +++ /dev/null @@ -1,5 +0,0 @@ -@extends('errors::layout') - -@section('title', 'Service Unavailable') - -@section('message', 'Be right back.') diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/views/layout.blade.php b/vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/views/layout.blade.php deleted file mode 100644 index 27513d0b..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/views/layout.blade.php +++ /dev/null @@ -1,57 +0,0 @@ - - - - - - - - @yield('title') - - - - - - - - -
-
-
- @yield('message') -
-
-
- - diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Http/Events/RequestHandled.php b/vendor/laravel/framework/src/Illuminate/Foundation/Http/Events/RequestHandled.php deleted file mode 100644 index d6f71e03..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Http/Events/RequestHandled.php +++ /dev/null @@ -1,33 +0,0 @@ -request = $request; - $this->response = $response; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Http/Exceptions/MaintenanceModeException.php b/vendor/laravel/framework/src/Illuminate/Foundation/Http/Exceptions/MaintenanceModeException.php deleted file mode 100644 index 6d5a2ab7..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Http/Exceptions/MaintenanceModeException.php +++ /dev/null @@ -1,54 +0,0 @@ -wentDownAt = Carbon::createFromTimestamp($time); - - if ($retryAfter) { - $this->retryAfter = $retryAfter; - - $this->willBeAvailableAt = Carbon::createFromTimestamp($time)->addSeconds($this->retryAfter); - } - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Http/FormRequest.php b/vendor/laravel/framework/src/Illuminate/Foundation/Http/FormRequest.php deleted file mode 100644 index 0e260836..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Http/FormRequest.php +++ /dev/null @@ -1,227 +0,0 @@ -container->make(ValidationFactory::class); - - if (method_exists($this, 'validator')) { - $validator = $this->container->call([$this, 'validator'], compact('factory')); - } else { - $validator = $this->createDefaultValidator($factory); - } - - if (method_exists($this, 'withValidator')) { - $this->withValidator($validator); - } - - return $validator; - } - - /** - * Create the default validator instance. - * - * @param \Illuminate\Contracts\Validation\Factory $factory - * @return \Illuminate\Contracts\Validation\Validator - */ - protected function createDefaultValidator(ValidationFactory $factory) - { - return $factory->make( - $this->validationData(), $this->container->call([$this, 'rules']), - $this->messages(), $this->attributes() - ); - } - - /** - * Get data to be validated from the request. - * - * @return array - */ - protected function validationData() - { - return $this->all(); - } - - /** - * Handle a failed validation attempt. - * - * @param \Illuminate\Contracts\Validation\Validator $validator - * @return void - * - * @throws \Illuminate\Validation\ValidationException - */ - protected function failedValidation(Validator $validator) - { - throw (new ValidationException($validator)) - ->errorBag($this->errorBag) - ->redirectTo($this->getRedirectUrl()); - } - - /** - * Get the URL to redirect to on a validation error. - * - * @return string - */ - protected function getRedirectUrl() - { - $url = $this->redirector->getUrlGenerator(); - - if ($this->redirect) { - return $url->to($this->redirect); - } elseif ($this->redirectRoute) { - return $url->route($this->redirectRoute); - } elseif ($this->redirectAction) { - return $url->action($this->redirectAction); - } - - return $url->previous(); - } - - /** - * Determine if the request passes the authorization check. - * - * @return bool - */ - protected function passesAuthorization() - { - if (method_exists($this, 'authorize')) { - return $this->container->call([$this, 'authorize']); - } - - return false; - } - - /** - * Handle a failed authorization attempt. - * - * @return void - * - * @throws \Illuminate\Auth\Access\AuthorizationException - */ - protected function failedAuthorization() - { - throw new AuthorizationException('This action is unauthorized.'); - } - - /** - * Get the validated data from the request. - * - * @return array - */ - public function validated() - { - $rules = $this->container->call([$this, 'rules']); - - return $this->only(collect($rules)->keys()->map(function ($rule) { - return explode('.', $rule)[0]; - })->unique()->toArray()); - } - - /** - * Get custom messages for validator errors. - * - * @return array - */ - public function messages() - { - return []; - } - - /** - * Get custom attributes for validator errors. - * - * @return array - */ - public function attributes() - { - return []; - } - - /** - * Set the Redirector instance. - * - * @param \Illuminate\Routing\Redirector $redirector - * @return $this - */ - public function setRedirector(Redirector $redirector) - { - $this->redirector = $redirector; - - return $this; - } - - /** - * Set the container implementation. - * - * @param \Illuminate\Contracts\Container\Container $container - * @return $this - */ - public function setContainer(Container $container) - { - $this->container = $container; - - return $this; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php b/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php deleted file mode 100644 index 04f0e4a0..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php +++ /dev/null @@ -1,338 +0,0 @@ -app = $app; - $this->router = $router; - - $router->middlewarePriority = $this->middlewarePriority; - - foreach ($this->middlewareGroups as $key => $middleware) { - $router->middlewareGroup($key, $middleware); - } - - foreach ($this->routeMiddleware as $key => $middleware) { - $router->aliasMiddleware($key, $middleware); - } - } - - /** - * Handle an incoming HTTP request. - * - * @param \Illuminate\Http\Request $request - * @return \Illuminate\Http\Response - */ - public function handle($request) - { - try { - $request->enableHttpMethodParameterOverride(); - - $response = $this->sendRequestThroughRouter($request); - } catch (Exception $e) { - $this->reportException($e); - - $response = $this->renderException($request, $e); - } catch (Throwable $e) { - $this->reportException($e = new FatalThrowableError($e)); - - $response = $this->renderException($request, $e); - } - - $this->app['events']->dispatch( - new Events\RequestHandled($request, $response) - ); - - return $response; - } - - /** - * Send the given request through the middleware / router. - * - * @param \Illuminate\Http\Request $request - * @return \Illuminate\Http\Response - */ - protected function sendRequestThroughRouter($request) - { - $this->app->instance('request', $request); - - Facade::clearResolvedInstance('request'); - - $this->bootstrap(); - - return (new Pipeline($this->app)) - ->send($request) - ->through($this->app->shouldSkipMiddleware() ? [] : $this->middleware) - ->then($this->dispatchToRouter()); - } - - /** - * Bootstrap the application for HTTP requests. - * - * @return void - */ - public function bootstrap() - { - if (! $this->app->hasBeenBootstrapped()) { - $this->app->bootstrapWith($this->bootstrappers()); - } - } - - /** - * Get the route dispatcher callback. - * - * @return \Closure - */ - protected function dispatchToRouter() - { - return function ($request) { - $this->app->instance('request', $request); - - return $this->router->dispatch($request); - }; - } - - /** - * Call the terminate method on any terminable middleware. - * - * @param \Illuminate\Http\Request $request - * @param \Illuminate\Http\Response $response - * @return void - */ - public function terminate($request, $response) - { - $this->terminateMiddleware($request, $response); - - $this->app->terminate(); - } - - /** - * Call the terminate method on any terminable middleware. - * - * @param \Illuminate\Http\Request $request - * @param \Illuminate\Http\Response $response - * @return void - */ - protected function terminateMiddleware($request, $response) - { - $middlewares = $this->app->shouldSkipMiddleware() ? [] : array_merge( - $this->gatherRouteMiddleware($request), - $this->middleware - ); - - foreach ($middlewares as $middleware) { - if (! is_string($middleware)) { - continue; - } - - list($name) = $this->parseMiddleware($middleware); - - $instance = $this->app->make($name); - - if (method_exists($instance, 'terminate')) { - $instance->terminate($request, $response); - } - } - } - - /** - * Gather the route middleware for the given request. - * - * @param \Illuminate\Http\Request $request - * @return array - */ - protected function gatherRouteMiddleware($request) - { - if ($route = $request->route()) { - return $this->router->gatherRouteMiddleware($route); - } - - return []; - } - - /** - * Parse a middleware string to get the name and parameters. - * - * @param string $middleware - * @return array - */ - protected function parseMiddleware($middleware) - { - list($name, $parameters) = array_pad(explode(':', $middleware, 2), 2, []); - - if (is_string($parameters)) { - $parameters = explode(',', $parameters); - } - - return [$name, $parameters]; - } - - /** - * Determine if the kernel has a given middleware. - * - * @param string $middleware - * @return bool - */ - public function hasMiddleware($middleware) - { - return in_array($middleware, $this->middleware); - } - - /** - * Add a new middleware to beginning of the stack if it does not already exist. - * - * @param string $middleware - * @return $this - */ - public function prependMiddleware($middleware) - { - if (array_search($middleware, $this->middleware) === false) { - array_unshift($this->middleware, $middleware); - } - - return $this; - } - - /** - * Add a new middleware to end of the stack if it does not already exist. - * - * @param string $middleware - * @return $this - */ - public function pushMiddleware($middleware) - { - if (array_search($middleware, $this->middleware) === false) { - $this->middleware[] = $middleware; - } - - return $this; - } - - /** - * Get the bootstrap classes for the application. - * - * @return array - */ - protected function bootstrappers() - { - return $this->bootstrappers; - } - - /** - * Report the exception to the exception handler. - * - * @param \Exception $e - * @return void - */ - protected function reportException(Exception $e) - { - $this->app[ExceptionHandler::class]->report($e); - } - - /** - * Render the exception to a response. - * - * @param \Illuminate\Http\Request $request - * @param \Exception $e - * @return \Symfony\Component\HttpFoundation\Response - */ - protected function renderException($request, Exception $e) - { - return $this->app[ExceptionHandler::class]->render($request, $e); - } - - /** - * Get the Laravel application instance. - * - * @return \Illuminate\Contracts\Foundation\Application - */ - public function getApplication() - { - return $this->app; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/CheckForMaintenanceMode.php b/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/CheckForMaintenanceMode.php deleted file mode 100644 index 037e5a47..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/CheckForMaintenanceMode.php +++ /dev/null @@ -1,85 +0,0 @@ -app = $app; - } - - /** - * Handle an incoming request. - * - * @param \Illuminate\Http\Request $request - * @param \Closure $next - * @return mixed - * - * @throws \Symfony\Component\HttpKernel\Exception\HttpException - */ - public function handle($request, Closure $next) - { - if ($this->app->isDownForMaintenance()) { - $data = json_decode(file_get_contents($this->app->storagePath().'/framework/down'), true); - - if (isset($data['allowed']) && IpUtils::checkIp($request->ip(), (array) $data['allowed'])) { - return $next($request); - } - - if ($this->inExceptArray($request)) { - return $next($request); - } - - throw new MaintenanceModeException($data['time'], $data['retry'], $data['message']); - } - - return $next($request); - } - - /** - * Determine if the request has a URI that should be accessible in maintenance mode. - * - * @param \Illuminate\Http\Request $request - * @return bool - */ - protected function inExceptArray($request) - { - foreach ($this->except as $except) { - if ($except !== '/') { - $except = trim($except, '/'); - } - - if ($request->fullUrlIs($except) || $request->is($except)) { - return true; - } - } - - return false; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ConvertEmptyStringsToNull.php b/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ConvertEmptyStringsToNull.php deleted file mode 100644 index 813c9cf1..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ConvertEmptyStringsToNull.php +++ /dev/null @@ -1,18 +0,0 @@ -attributes = $attributes; - - $this->clean($request); - - return $next($request); - } - - /** - * Clean the request's data. - * - * @param \Illuminate\Http\Request $request - * @return void - */ - protected function clean($request) - { - $this->cleanParameterBag($request->query); - - if ($request->isJson()) { - $this->cleanParameterBag($request->json()); - } else { - $this->cleanParameterBag($request->request); - } - } - - /** - * Clean the data in the parameter bag. - * - * @param \Symfony\Component\HttpFoundation\ParameterBag $bag - * @return void - */ - protected function cleanParameterBag(ParameterBag $bag) - { - $bag->replace($this->cleanArray($bag->all())); - } - - /** - * Clean the data in the given array. - * - * @param array $data - * @return array - */ - protected function cleanArray(array $data) - { - return collect($data)->map(function ($value, $key) { - return $this->cleanValue($key, $value); - })->all(); - } - - /** - * Clean the given value. - * - * @param string $key - * @param mixed $value - * @return mixed - */ - protected function cleanValue($key, $value) - { - if (is_array($value)) { - return $this->cleanArray($value); - } - - return $this->transform($key, $value); - } - - /** - * Transform the given value. - * - * @param string $key - * @param mixed $value - * @return mixed - */ - protected function transform($key, $value) - { - return $value; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TrimStrings.php b/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TrimStrings.php deleted file mode 100644 index 4c8d1ddb..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TrimStrings.php +++ /dev/null @@ -1,31 +0,0 @@ -except, true)) { - return $value; - } - - return is_string($value) ? trim($value) : $value; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ValidatePostSize.php b/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ValidatePostSize.php deleted file mode 100644 index adc5f5a3..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ValidatePostSize.php +++ /dev/null @@ -1,55 +0,0 @@ -getPostMaxSize(); - - if ($max > 0 && $request->server('CONTENT_LENGTH') > $max) { - throw new PostTooLargeException; - } - - return $next($request); - } - - /** - * Determine the server 'post_max_size' as bytes. - * - * @return int - */ - protected function getPostMaxSize() - { - if (is_numeric($postMaxSize = ini_get('post_max_size'))) { - return (int) $postMaxSize; - } - - $metric = strtoupper(substr($postMaxSize, -1)); - $postMaxSize = (int) $postMaxSize; - - switch ($metric) { - case 'K': - return $postMaxSize * 1024; - case 'M': - return $postMaxSize * 1048576; - case 'G': - return $postMaxSize * 1073741824; - default: - return $postMaxSize; - } - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/VerifyCsrfToken.php b/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/VerifyCsrfToken.php deleted file mode 100644 index a33e2095..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/VerifyCsrfToken.php +++ /dev/null @@ -1,167 +0,0 @@ -app = $app; - $this->encrypter = $encrypter; - } - - /** - * Handle an incoming request. - * - * @param \Illuminate\Http\Request $request - * @param \Closure $next - * @return mixed - * - * @throws \Illuminate\Session\TokenMismatchException - */ - public function handle($request, Closure $next) - { - if ( - $this->isReading($request) || - $this->runningUnitTests() || - $this->inExceptArray($request) || - $this->tokensMatch($request) - ) { - return $this->addCookieToResponse($request, $next($request)); - } - - throw new TokenMismatchException; - } - - /** - * Determine if the HTTP request uses a ‘read’ verb. - * - * @param \Illuminate\Http\Request $request - * @return bool - */ - protected function isReading($request) - { - return in_array($request->method(), ['HEAD', 'GET', 'OPTIONS']); - } - - /** - * Determine if the application is running unit tests. - * - * @return bool - */ - protected function runningUnitTests() - { - return $this->app->runningInConsole() && $this->app->runningUnitTests(); - } - - /** - * Determine if the request has a URI that should pass through CSRF verification. - * - * @param \Illuminate\Http\Request $request - * @return bool - */ - protected function inExceptArray($request) - { - foreach ($this->except as $except) { - if ($except !== '/') { - $except = trim($except, '/'); - } - - if ($request->fullUrlIs($except) || $request->is($except)) { - return true; - } - } - - return false; - } - - /** - * Determine if the session and input CSRF tokens match. - * - * @param \Illuminate\Http\Request $request - * @return bool - */ - protected function tokensMatch($request) - { - $token = $this->getTokenFromRequest($request); - - return is_string($request->session()->token()) && - is_string($token) && - hash_equals($request->session()->token(), $token); - } - - /** - * Get the CSRF token from the request. - * - * @param \Illuminate\Http\Request $request - * @return string - */ - protected function getTokenFromRequest($request) - { - $token = $request->input('_token') ?: $request->header('X-CSRF-TOKEN'); - - if (! $token && $header = $request->header('X-XSRF-TOKEN')) { - $token = $this->encrypter->decrypt($header); - } - - return $token; - } - - /** - * Add the CSRF token to the response cookies. - * - * @param \Illuminate\Http\Request $request - * @param \Symfony\Component\HttpFoundation\Response $response - * @return \Symfony\Component\HttpFoundation\Response - */ - protected function addCookieToResponse($request, $response) - { - $config = config('session'); - - $response->headers->setCookie( - new Cookie( - 'XSRF-TOKEN', $request->session()->token(), $this->availableAt(60 * $config['lifetime']), - $config['path'], $config['domain'], $config['secure'], false, false, $config['same_site'] ?? null - ) - ); - - return $response; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Inspiring.php b/vendor/laravel/framework/src/Illuminate/Foundation/Inspiring.php deleted file mode 100644 index ef583653..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Inspiring.php +++ /dev/null @@ -1,36 +0,0 @@ -random(); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/PackageManifest.php b/vendor/laravel/framework/src/Illuminate/Foundation/PackageManifest.php deleted file mode 100644 index 0c488011..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/PackageManifest.php +++ /dev/null @@ -1,172 +0,0 @@ -files = $files; - $this->basePath = $basePath; - $this->manifestPath = $manifestPath; - $this->vendorPath = $basePath.'/vendor'; - } - - /** - * Get all of the service provider class names for all packages. - * - * @return array - */ - public function providers() - { - return collect($this->getManifest())->flatMap(function ($configuration) { - return (array) ($configuration['providers'] ?? []); - })->filter()->all(); - } - - /** - * Get all of the aliases for all packages. - * - * @return array - */ - public function aliases() - { - return collect($this->getManifest())->flatMap(function ($configuration) { - return (array) ($configuration['aliases'] ?? []); - })->filter()->all(); - } - - /** - * Get the current package manifest. - * - * @return array - */ - protected function getManifest() - { - if (! is_null($this->manifest)) { - return $this->manifest; - } - - if (! file_exists($this->manifestPath)) { - $this->build(); - } - - return $this->manifest = file_exists($this->manifestPath) ? - $this->files->getRequire($this->manifestPath) : []; - } - - /** - * Build the manifest and write it to disk. - * - * @return void - */ - public function build() - { - $packages = []; - - if ($this->files->exists($path = $this->vendorPath.'/composer/installed.json')) { - $packages = json_decode($this->files->get($path), true); - } - - $ignoreAll = in_array('*', $ignore = $this->packagesToIgnore()); - - $this->write(collect($packages)->mapWithKeys(function ($package) { - return [$this->format($package['name']) => $package['extra']['laravel'] ?? []]; - })->each(function ($configuration) use (&$ignore) { - $ignore = array_merge($ignore, $configuration['dont-discover'] ?? []); - })->reject(function ($configuration, $package) use ($ignore, $ignoreAll) { - return $ignoreAll || in_array($package, $ignore); - })->filter()->all()); - } - - /** - * Format the given package name. - * - * @param string $package - * @return string - */ - protected function format($package) - { - return str_replace($this->vendorPath.'/', '', $package); - } - - /** - * Get all of the package names that should be ignored. - * - * @return array - */ - protected function packagesToIgnore() - { - if (! file_exists($this->basePath.'/composer.json')) { - return []; - } - - return json_decode(file_get_contents( - $this->basePath.'/composer.json' - ), true)['extra']['laravel']['dont-discover'] ?? []; - } - - /** - * Write the given manifest array to disk. - * - * @param array $manifest - * @return void - * @throws \Exception - */ - protected function write(array $manifest) - { - if (! is_writable(dirname($this->manifestPath))) { - throw new Exception('The '.dirname($this->manifestPath).' directory must be present and writable.'); - } - - $this->files->put( - $this->manifestPath, 'app = $app; - $this->files = $files; - $this->manifestPath = $manifestPath; - } - - /** - * Register the application service providers. - * - * @param array $providers - * @return void - */ - public function load(array $providers) - { - $manifest = $this->loadManifest(); - - // First we will load the service manifest, which contains information on all - // service providers registered with the application and which services it - // provides. This is used to know which services are "deferred" loaders. - if ($this->shouldRecompile($manifest, $providers)) { - $manifest = $this->compileManifest($providers); - } - - // Next, we will register events to load the providers for each of the events - // that it has requested. This allows the service provider to defer itself - // while still getting automatically loaded when a certain event occurs. - foreach ($manifest['when'] as $provider => $events) { - $this->registerLoadEvents($provider, $events); - } - - // We will go ahead and register all of the eagerly loaded providers with the - // application so their services can be registered with the application as - // a provided service. Then we will set the deferred service list on it. - foreach ($manifest['eager'] as $provider) { - $this->app->register($provider); - } - - $this->app->addDeferredServices($manifest['deferred']); - } - - /** - * Load the service provider manifest JSON file. - * - * @return array|null - */ - public function loadManifest() - { - // The service manifest is a file containing a JSON representation of every - // service provided by the application and whether its provider is using - // deferred loading or should be eagerly loaded on each request to us. - if ($this->files->exists($this->manifestPath)) { - $manifest = $this->files->getRequire($this->manifestPath); - - if ($manifest) { - return array_merge(['when' => []], $manifest); - } - } - } - - /** - * Determine if the manifest should be compiled. - * - * @param array $manifest - * @param array $providers - * @return bool - */ - public function shouldRecompile($manifest, $providers) - { - return is_null($manifest) || $manifest['providers'] != $providers; - } - - /** - * Register the load events for the given provider. - * - * @param string $provider - * @param array $events - * @return void - */ - protected function registerLoadEvents($provider, array $events) - { - if (count($events) < 1) { - return; - } - - $this->app->make('events')->listen($events, function () use ($provider) { - $this->app->register($provider); - }); - } - - /** - * Compile the application service manifest file. - * - * @param array $providers - * @return array - */ - protected function compileManifest($providers) - { - // The service manifest should contain a list of all of the providers for - // the application so we can compare it on each request to the service - // and determine if the manifest should be recompiled or is current. - $manifest = $this->freshManifest($providers); - - foreach ($providers as $provider) { - $instance = $this->createProvider($provider); - - // When recompiling the service manifest, we will spin through each of the - // providers and check if it's a deferred provider or not. If so we'll - // add it's provided services to the manifest and note the provider. - if ($instance->isDeferred()) { - foreach ($instance->provides() as $service) { - $manifest['deferred'][$service] = $provider; - } - - $manifest['when'][$provider] = $instance->when(); - } - - // If the service providers are not deferred, we will simply add it to an - // array of eagerly loaded providers that will get registered on every - // request to this application instead of "lazy" loading every time. - else { - $manifest['eager'][] = $provider; - } - } - - return $this->writeManifest($manifest); - } - - /** - * Create a fresh service manifest data structure. - * - * @param array $providers - * @return array - */ - protected function freshManifest(array $providers) - { - return ['providers' => $providers, 'eager' => [], 'deferred' => []]; - } - - /** - * Write the service manifest file to disk. - * - * @param array $manifest - * @return array - * - * @throws \Exception - */ - public function writeManifest($manifest) - { - if (! is_writable(dirname($this->manifestPath))) { - throw new Exception('The bootstrap/cache directory must be present and writable.'); - } - - $this->files->put( - $this->manifestPath, ' []], $manifest); - } - - /** - * Create a new provider instance. - * - * @param string $provider - * @return \Illuminate\Support\ServiceProvider - */ - public function createProvider($provider) - { - return new $provider($this->app); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Providers/ArtisanServiceProvider.php b/vendor/laravel/framework/src/Illuminate/Foundation/Providers/ArtisanServiceProvider.php deleted file mode 100755 index ce278982..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Providers/ArtisanServiceProvider.php +++ /dev/null @@ -1,995 +0,0 @@ - 'command.cache.clear', - 'CacheForget' => 'command.cache.forget', - 'ClearCompiled' => 'command.clear-compiled', - 'ClearResets' => 'command.auth.resets.clear', - 'ConfigCache' => 'command.config.cache', - 'ConfigClear' => 'command.config.clear', - 'Down' => 'command.down', - 'Environment' => 'command.environment', - 'KeyGenerate' => 'command.key.generate', - 'Migrate' => 'command.migrate', - 'MigrateFresh' => 'command.migrate.fresh', - 'MigrateInstall' => 'command.migrate.install', - 'MigrateRefresh' => 'command.migrate.refresh', - 'MigrateReset' => 'command.migrate.reset', - 'MigrateRollback' => 'command.migrate.rollback', - 'MigrateStatus' => 'command.migrate.status', - 'PackageDiscover' => 'command.package.discover', - 'Preset' => 'command.preset', - 'QueueFailed' => 'command.queue.failed', - 'QueueFlush' => 'command.queue.flush', - 'QueueForget' => 'command.queue.forget', - 'QueueListen' => 'command.queue.listen', - 'QueueRestart' => 'command.queue.restart', - 'QueueRetry' => 'command.queue.retry', - 'QueueWork' => 'command.queue.work', - 'RouteCache' => 'command.route.cache', - 'RouteClear' => 'command.route.clear', - 'RouteList' => 'command.route.list', - 'Seed' => 'command.seed', - 'ScheduleFinish' => ScheduleFinishCommand::class, - 'ScheduleRun' => ScheduleRunCommand::class, - 'StorageLink' => 'command.storage.link', - 'Up' => 'command.up', - 'ViewCache' => 'command.view.cache', - 'ViewClear' => 'command.view.clear', - ]; - - /** - * The commands to be registered. - * - * @var array - */ - protected $devCommands = [ - 'AppName' => 'command.app.name', - 'AuthMake' => 'command.auth.make', - 'CacheTable' => 'command.cache.table', - 'ChannelMake' => 'command.channel.make', - 'ConsoleMake' => 'command.console.make', - 'ControllerMake' => 'command.controller.make', - 'EventGenerate' => 'command.event.generate', - 'EventMake' => 'command.event.make', - 'ExceptionMake' => 'command.exception.make', - 'FactoryMake' => 'command.factory.make', - 'JobMake' => 'command.job.make', - 'ListenerMake' => 'command.listener.make', - 'MailMake' => 'command.mail.make', - 'MiddlewareMake' => 'command.middleware.make', - 'MigrateMake' => 'command.migrate.make', - 'ModelMake' => 'command.model.make', - 'NotificationMake' => 'command.notification.make', - 'NotificationTable' => 'command.notification.table', - 'ObserverMake' => 'command.observer.make', - 'PolicyMake' => 'command.policy.make', - 'ProviderMake' => 'command.provider.make', - 'QueueFailedTable' => 'command.queue.failed-table', - 'QueueTable' => 'command.queue.table', - 'RequestMake' => 'command.request.make', - 'ResourceMake' => 'command.resource.make', - 'RuleMake' => 'command.rule.make', - 'SeederMake' => 'command.seeder.make', - 'SessionTable' => 'command.session.table', - 'Serve' => 'command.serve', - 'TestMake' => 'command.test.make', - 'VendorPublish' => 'command.vendor.publish', - ]; - - /** - * Register the service provider. - * - * @return void - */ - public function register() - { - $this->registerCommands(array_merge( - $this->commands, $this->devCommands - )); - } - - /** - * Register the given commands. - * - * @param array $commands - * @return void - */ - protected function registerCommands(array $commands) - { - foreach (array_keys($commands) as $command) { - call_user_func_array([$this, "register{$command}Command"], []); - } - - $this->commands(array_values($commands)); - } - - /** - * Register the command. - * - * @return void - */ - protected function registerAppNameCommand() - { - $this->app->singleton('command.app.name', function ($app) { - return new AppNameCommand($app['composer'], $app['files']); - }); - } - - /** - * Register the command. - * - * @return void - */ - protected function registerAuthMakeCommand() - { - $this->app->singleton('command.auth.make', function () { - return new AuthMakeCommand; - }); - } - - /** - * Register the command. - * - * @return void - */ - protected function registerCacheClearCommand() - { - $this->app->singleton('command.cache.clear', function ($app) { - return new CacheClearCommand($app['cache'], $app['files']); - }); - } - - /** - * Register the command. - * - * @return void - */ - protected function registerCacheForgetCommand() - { - $this->app->singleton('command.cache.forget', function ($app) { - return new CacheForgetCommand($app['cache']); - }); - } - - /** - * Register the command. - * - * @return void - */ - protected function registerCacheTableCommand() - { - $this->app->singleton('command.cache.table', function ($app) { - return new CacheTableCommand($app['files'], $app['composer']); - }); - } - - /** - * Register the command. - * - * @return void - */ - protected function registerChannelMakeCommand() - { - $this->app->singleton('command.channel.make', function ($app) { - return new ChannelMakeCommand($app['files']); - }); - } - - /** - * Register the command. - * - * @return void - */ - protected function registerClearCompiledCommand() - { - $this->app->singleton('command.clear-compiled', function () { - return new ClearCompiledCommand; - }); - } - - /** - * Register the command. - * - * @return void - */ - protected function registerClearResetsCommand() - { - $this->app->singleton('command.auth.resets.clear', function () { - return new ClearResetsCommand; - }); - } - - /** - * Register the command. - * - * @return void - */ - protected function registerConfigCacheCommand() - { - $this->app->singleton('command.config.cache', function ($app) { - return new ConfigCacheCommand($app['files']); - }); - } - - /** - * Register the command. - * - * @return void - */ - protected function registerConfigClearCommand() - { - $this->app->singleton('command.config.clear', function ($app) { - return new ConfigClearCommand($app['files']); - }); - } - - /** - * Register the command. - * - * @return void - */ - protected function registerConsoleMakeCommand() - { - $this->app->singleton('command.console.make', function ($app) { - return new ConsoleMakeCommand($app['files']); - }); - } - - /** - * Register the command. - * - * @return void - */ - protected function registerControllerMakeCommand() - { - $this->app->singleton('command.controller.make', function ($app) { - return new ControllerMakeCommand($app['files']); - }); - } - - /** - * Register the command. - * - * @return void - */ - protected function registerEventGenerateCommand() - { - $this->app->singleton('command.event.generate', function () { - return new EventGenerateCommand; - }); - } - - /** - * Register the command. - * - * @return void - */ - protected function registerEventMakeCommand() - { - $this->app->singleton('command.event.make', function ($app) { - return new EventMakeCommand($app['files']); - }); - } - - /** - * Register the command. - * - * @return void - */ - protected function registerExceptionMakeCommand() - { - $this->app->singleton('command.exception.make', function ($app) { - return new ExceptionMakeCommand($app['files']); - }); - } - - /** - * Register the command. - * - * @return void - */ - protected function registerFactoryMakeCommand() - { - $this->app->singleton('command.factory.make', function ($app) { - return new FactoryMakeCommand($app['files']); - }); - } - - /** - * Register the command. - * - * @return void - */ - protected function registerDownCommand() - { - $this->app->singleton('command.down', function () { - return new DownCommand; - }); - } - - /** - * Register the command. - * - * @return void - */ - protected function registerEnvironmentCommand() - { - $this->app->singleton('command.environment', function () { - return new EnvironmentCommand; - }); - } - - /** - * Register the command. - * - * @return void - */ - protected function registerJobMakeCommand() - { - $this->app->singleton('command.job.make', function ($app) { - return new JobMakeCommand($app['files']); - }); - } - - /** - * Register the command. - * - * @return void - */ - protected function registerKeyGenerateCommand() - { - $this->app->singleton('command.key.generate', function () { - return new KeyGenerateCommand; - }); - } - - /** - * Register the command. - * - * @return void - */ - protected function registerListenerMakeCommand() - { - $this->app->singleton('command.listener.make', function ($app) { - return new ListenerMakeCommand($app['files']); - }); - } - - /** - * Register the command. - * - * @return void - */ - protected function registerMailMakeCommand() - { - $this->app->singleton('command.mail.make', function ($app) { - return new MailMakeCommand($app['files']); - }); - } - - /** - * Register the command. - * - * @return void - */ - protected function registerMiddlewareMakeCommand() - { - $this->app->singleton('command.middleware.make', function ($app) { - return new MiddlewareMakeCommand($app['files']); - }); - } - - /** - * Register the command. - * - * @return void - */ - protected function registerMigrateCommand() - { - $this->app->singleton('command.migrate', function ($app) { - return new MigrateCommand($app['migrator']); - }); - } - - /** - * Register the command. - * - * @return void - */ - protected function registerMigrateFreshCommand() - { - $this->app->singleton('command.migrate.fresh', function () { - return new MigrateFreshCommand; - }); - } - - /** - * Register the command. - * - * @return void - */ - protected function registerMigrateInstallCommand() - { - $this->app->singleton('command.migrate.install', function ($app) { - return new MigrateInstallCommand($app['migration.repository']); - }); - } - - /** - * Register the command. - * - * @return void - */ - protected function registerMigrateMakeCommand() - { - $this->app->singleton('command.migrate.make', function ($app) { - // Once we have the migration creator registered, we will create the command - // and inject the creator. The creator is responsible for the actual file - // creation of the migrations, and may be extended by these developers. - $creator = $app['migration.creator']; - - $composer = $app['composer']; - - return new MigrateMakeCommand($creator, $composer); - }); - } - - /** - * Register the command. - * - * @return void - */ - protected function registerMigrateRefreshCommand() - { - $this->app->singleton('command.migrate.refresh', function () { - return new MigrateRefreshCommand; - }); - } - - /** - * Register the command. - * - * @return void - */ - protected function registerMigrateResetCommand() - { - $this->app->singleton('command.migrate.reset', function ($app) { - return new MigrateResetCommand($app['migrator']); - }); - } - - /** - * Register the command. - * - * @return void - */ - protected function registerMigrateRollbackCommand() - { - $this->app->singleton('command.migrate.rollback', function ($app) { - return new MigrateRollbackCommand($app['migrator']); - }); - } - - /** - * Register the command. - * - * @return void - */ - protected function registerMigrateStatusCommand() - { - $this->app->singleton('command.migrate.status', function ($app) { - return new MigrateStatusCommand($app['migrator']); - }); - } - - /** - * Register the command. - * - * @return void - */ - protected function registerModelMakeCommand() - { - $this->app->singleton('command.model.make', function ($app) { - return new ModelMakeCommand($app['files']); - }); - } - - /** - * Register the command. - * - * @return void - */ - protected function registerNotificationMakeCommand() - { - $this->app->singleton('command.notification.make', function ($app) { - return new NotificationMakeCommand($app['files']); - }); - } - - /** - * Register the command. - * - * @return void - */ - protected function registerNotificationTableCommand() - { - $this->app->singleton('command.notification.table', function ($app) { - return new NotificationTableCommand($app['files'], $app['composer']); - }); - } - - /** - * Register the command. - * - * @return void - */ - protected function registerObserverMakeCommand() - { - $this->app->singleton('command.observer.make', function ($app) { - return new ObserverMakeCommand($app['files']); - }); - } - - /** - * Register the command. - * - * @return void - */ - protected function registerPackageDiscoverCommand() - { - $this->app->singleton('command.package.discover', function () { - return new PackageDiscoverCommand; - }); - } - - /** - * Register the command. - * - * @return void - */ - protected function registerPolicyMakeCommand() - { - $this->app->singleton('command.policy.make', function ($app) { - return new PolicyMakeCommand($app['files']); - }); - } - - /** - * Register the command. - * - * @return void - */ - protected function registerPresetCommand() - { - $this->app->singleton('command.preset', function () { - return new PresetCommand; - }); - } - - /** - * Register the command. - * - * @return void - */ - protected function registerProviderMakeCommand() - { - $this->app->singleton('command.provider.make', function ($app) { - return new ProviderMakeCommand($app['files']); - }); - } - - /** - * Register the command. - * - * @return void - */ - protected function registerQueueFailedCommand() - { - $this->app->singleton('command.queue.failed', function () { - return new ListFailedQueueCommand; - }); - } - - /** - * Register the command. - * - * @return void - */ - protected function registerQueueForgetCommand() - { - $this->app->singleton('command.queue.forget', function () { - return new ForgetFailedQueueCommand; - }); - } - - /** - * Register the command. - * - * @return void - */ - protected function registerQueueFlushCommand() - { - $this->app->singleton('command.queue.flush', function () { - return new FlushFailedQueueCommand; - }); - } - - /** - * Register the command. - * - * @return void - */ - protected function registerQueueListenCommand() - { - $this->app->singleton('command.queue.listen', function ($app) { - return new QueueListenCommand($app['queue.listener']); - }); - } - - /** - * Register the command. - * - * @return void - */ - protected function registerQueueRestartCommand() - { - $this->app->singleton('command.queue.restart', function () { - return new QueueRestartCommand; - }); - } - - /** - * Register the command. - * - * @return void - */ - protected function registerQueueRetryCommand() - { - $this->app->singleton('command.queue.retry', function () { - return new QueueRetryCommand; - }); - } - - /** - * Register the command. - * - * @return void - */ - protected function registerQueueWorkCommand() - { - $this->app->singleton('command.queue.work', function ($app) { - return new QueueWorkCommand($app['queue.worker']); - }); - } - - /** - * Register the command. - * - * @return void - */ - protected function registerQueueFailedTableCommand() - { - $this->app->singleton('command.queue.failed-table', function ($app) { - return new FailedTableCommand($app['files'], $app['composer']); - }); - } - - /** - * Register the command. - * - * @return void - */ - protected function registerQueueTableCommand() - { - $this->app->singleton('command.queue.table', function ($app) { - return new TableCommand($app['files'], $app['composer']); - }); - } - - /** - * Register the command. - * - * @return void - */ - protected function registerRequestMakeCommand() - { - $this->app->singleton('command.request.make', function ($app) { - return new RequestMakeCommand($app['files']); - }); - } - - /** - * Register the command. - * - * @return void - */ - protected function registerResourceMakeCommand() - { - $this->app->singleton('command.resource.make', function ($app) { - return new ResourceMakeCommand($app['files']); - }); - } - - /** - * Register the command. - * - * @return void - */ - protected function registerRuleMakeCommand() - { - $this->app->singleton('command.rule.make', function ($app) { - return new RuleMakeCommand($app['files']); - }); - } - - /** - * Register the command. - * - * @return void - */ - protected function registerSeederMakeCommand() - { - $this->app->singleton('command.seeder.make', function ($app) { - return new SeederMakeCommand($app['files'], $app['composer']); - }); - } - - /** - * Register the command. - * - * @return void - */ - protected function registerSessionTableCommand() - { - $this->app->singleton('command.session.table', function ($app) { - return new SessionTableCommand($app['files'], $app['composer']); - }); - } - - /** - * Register the command. - * - * @return void - */ - protected function registerStorageLinkCommand() - { - $this->app->singleton('command.storage.link', function () { - return new StorageLinkCommand; - }); - } - - /** - * Register the command. - * - * @return void - */ - protected function registerRouteCacheCommand() - { - $this->app->singleton('command.route.cache', function ($app) { - return new RouteCacheCommand($app['files']); - }); - } - - /** - * Register the command. - * - * @return void - */ - protected function registerRouteClearCommand() - { - $this->app->singleton('command.route.clear', function ($app) { - return new RouteClearCommand($app['files']); - }); - } - - /** - * Register the command. - * - * @return void - */ - protected function registerRouteListCommand() - { - $this->app->singleton('command.route.list', function ($app) { - return new RouteListCommand($app['router']); - }); - } - - /** - * Register the command. - * - * @return void - */ - protected function registerSeedCommand() - { - $this->app->singleton('command.seed', function ($app) { - return new SeedCommand($app['db']); - }); - } - - /** - * Register the command. - * - * @return void - */ - protected function registerScheduleFinishCommand() - { - $this->app->singleton(ScheduleFinishCommand::class); - } - - /** - * Register the command. - * - * @return void - */ - protected function registerScheduleRunCommand() - { - $this->app->singleton(ScheduleRunCommand::class); - } - - /** - * Register the command. - * - * @return void - */ - protected function registerServeCommand() - { - $this->app->singleton('command.serve', function () { - return new ServeCommand; - }); - } - - /** - * Register the command. - * - * @return void - */ - protected function registerTestMakeCommand() - { - $this->app->singleton('command.test.make', function ($app) { - return new TestMakeCommand($app['files']); - }); - } - - /** - * Register the command. - * - * @return void - */ - protected function registerUpCommand() - { - $this->app->singleton('command.up', function () { - return new UpCommand; - }); - } - - /** - * Register the command. - * - * @return void - */ - protected function registerVendorPublishCommand() - { - $this->app->singleton('command.vendor.publish', function ($app) { - return new VendorPublishCommand($app['files']); - }); - } - - /** - * Register the command. - * - * @return void - */ - protected function registerViewCacheCommand() - { - $this->app->singleton('command.view.cache', function () { - return new ViewCacheCommand; - }); - } - - /** - * Register the command. - * - * @return void - */ - protected function registerViewClearCommand() - { - $this->app->singleton('command.view.clear', function ($app) { - return new ViewClearCommand($app['files']); - }); - } - - /** - * Get the services provided by the provider. - * - * @return array - */ - public function provides() - { - return array_merge(array_values($this->commands), array_values($this->devCommands)); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Providers/ComposerServiceProvider.php b/vendor/laravel/framework/src/Illuminate/Foundation/Providers/ComposerServiceProvider.php deleted file mode 100755 index 295ca960..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Providers/ComposerServiceProvider.php +++ /dev/null @@ -1,38 +0,0 @@ -app->singleton('composer', function ($app) { - return new Composer($app['files'], $app->basePath()); - }); - } - - /** - * Get the services provided by the provider. - * - * @return array - */ - public function provides() - { - return ['composer']; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Providers/ConsoleSupportServiceProvider.php b/vendor/laravel/framework/src/Illuminate/Foundation/Providers/ConsoleSupportServiceProvider.php deleted file mode 100644 index 8e92d28c..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Providers/ConsoleSupportServiceProvider.php +++ /dev/null @@ -1,27 +0,0 @@ -app->afterResolving(ValidatesWhenResolved::class, function ($resolved) { - $resolved->validateResolved(); - }); - - $this->app->resolving(FormRequest::class, function ($request, $app) { - $request = FormRequest::createFrom($app['request'], $request); - - $request->setContainer($app)->setRedirector($app->make(Redirector::class)); - }); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Providers/FoundationServiceProvider.php b/vendor/laravel/framework/src/Illuminate/Foundation/Providers/FoundationServiceProvider.php deleted file mode 100644 index b12c1799..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Providers/FoundationServiceProvider.php +++ /dev/null @@ -1,56 +0,0 @@ -registerRequestValidation(); - $this->registerRequestSignatureValidation(); - } - - /** - * Register the "validate" macro on the request. - * - * @return void - */ - public function registerRequestValidation() - { - Request::macro('validate', function (array $rules, ...$params) { - return validator()->validate($this->all(), $rules, ...$params); - }); - } - - /** - * Register the "hasValidSignature" macro on the request. - * - * @return void - */ - public function registerRequestSignatureValidation() - { - Request::macro('hasValidSignature', function () { - return URL::hasValidSignature($this); - }); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Support/Providers/AuthServiceProvider.php b/vendor/laravel/framework/src/Illuminate/Foundation/Support/Providers/AuthServiceProvider.php deleted file mode 100644 index 4fc90b7d..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Support/Providers/AuthServiceProvider.php +++ /dev/null @@ -1,46 +0,0 @@ -policies as $key => $value) { - Gate::policy($key, $value); - } - } - - /** - * {@inheritdoc} - */ - public function register() - { - // - } - - /** - * Get the policies defined on the provider. - * - * @return array - */ - public function policies() - { - return $this->policies; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Support/Providers/EventServiceProvider.php b/vendor/laravel/framework/src/Illuminate/Foundation/Support/Providers/EventServiceProvider.php deleted file mode 100644 index 307f2cef..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Support/Providers/EventServiceProvider.php +++ /dev/null @@ -1,59 +0,0 @@ -listens() as $event => $listeners) { - foreach ($listeners as $listener) { - Event::listen($event, $listener); - } - } - - foreach ($this->subscribe as $subscriber) { - Event::subscribe($subscriber); - } - } - - /** - * {@inheritdoc} - */ - public function register() - { - // - } - - /** - * Get the events and handlers. - * - * @return array - */ - public function listens() - { - return $this->listen; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Support/Providers/RouteServiceProvider.php b/vendor/laravel/framework/src/Illuminate/Foundation/Support/Providers/RouteServiceProvider.php deleted file mode 100644 index c753447b..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Support/Providers/RouteServiceProvider.php +++ /dev/null @@ -1,101 +0,0 @@ -setRootControllerNamespace(); - - if ($this->app->routesAreCached()) { - $this->loadCachedRoutes(); - } else { - $this->loadRoutes(); - - $this->app->booted(function () { - $this->app['router']->getRoutes()->refreshNameLookups(); - $this->app['router']->getRoutes()->refreshActionLookups(); - }); - } - } - - /** - * Set the root controller namespace for the application. - * - * @return void - */ - protected function setRootControllerNamespace() - { - if (! is_null($this->namespace)) { - $this->app[UrlGenerator::class]->setRootControllerNamespace($this->namespace); - } - } - - /** - * Load the cached routes for the application. - * - * @return void - */ - protected function loadCachedRoutes() - { - $this->app->booted(function () { - require $this->app->getCachedRoutesPath(); - }); - } - - /** - * Load the application routes. - * - * @return void - */ - protected function loadRoutes() - { - if (method_exists($this, 'map')) { - $this->app->call([$this, 'map']); - } - } - - /** - * Register the service provider. - * - * @return void - */ - public function register() - { - // - } - - /** - * Pass dynamic methods onto the router instance. - * - * @param string $method - * @param array $parameters - * @return mixed - */ - public function __call($method, $parameters) - { - return call_user_func_array( - [$this->app->make(Router::class), $method], $parameters - ); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/InteractsWithAuthentication.php b/vendor/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/InteractsWithAuthentication.php deleted file mode 100644 index a5f05a5e..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/InteractsWithAuthentication.php +++ /dev/null @@ -1,149 +0,0 @@ -be($user, $driver); - - return $this; - } - - /** - * Set the currently logged in user for the application. - * - * @param \Illuminate\Contracts\Auth\Authenticatable $user - * @param string|null $driver - * @return $this - */ - public function be(UserContract $user, $driver = null) - { - $this->app['auth']->guard($driver)->setUser($user); - - $this->app['auth']->shouldUse($driver); - - return $this; - } - - /** - * Assert that the user is authenticated. - * - * @param string|null $guard - * @return $this - */ - public function assertAuthenticated($guard = null) - { - $this->assertTrue($this->isAuthenticated($guard), 'The user is not authenticated'); - - return $this; - } - - /** - * Assert that the user is not authenticated. - * - * @param string|null $guard - * @return $this - */ - public function assertGuest($guard = null) - { - $this->assertFalse($this->isAuthenticated($guard), 'The user is authenticated'); - - return $this; - } - - /** - * Return true if the user is authenticated, false otherwise. - * - * @param string|null $guard - * @return bool - */ - protected function isAuthenticated($guard = null) - { - return $this->app->make('auth')->guard($guard)->check(); - } - - /** - * Assert that the user is authenticated as the given user. - * - * @param \Illuminate\Contracts\Auth\Authenticatable $user - * @param string|null $guard - * @return $this - */ - public function assertAuthenticatedAs($user, $guard = null) - { - $expected = $this->app->make('auth')->guard($guard)->user(); - - $this->assertNotNull($expected, 'The current user is not authenticated.'); - - $this->assertInstanceOf( - get_class($expected), $user, - 'The currently authenticated user is not who was expected' - ); - - $this->assertSame( - $expected->getAuthIdentifier(), $user->getAuthIdentifier(), - 'The currently authenticated user is not who was expected' - ); - - return $this; - } - - /** - * Assert that the given credentials are valid. - * - * @param array $credentials - * @param string|null $guard - * @return $this - */ - public function assertCredentials(array $credentials, $guard = null) - { - $this->assertTrue( - $this->hasCredentials($credentials, $guard), 'The given credentials are invalid.' - ); - - return $this; - } - - /** - * Assert that the given credentials are invalid. - * - * @param array $credentials - * @param string|null $guard - * @return $this - */ - public function assertInvalidCredentials(array $credentials, $guard = null) - { - $this->assertFalse( - $this->hasCredentials($credentials, $guard), 'The given credentials are valid.' - ); - - return $this; - } - - /** - * Return true if the credentials are valid, false otherwise. - * - * @param array $credentials - * @param string|null $guard - * @return bool - */ - protected function hasCredentials(array $credentials, $guard = null) - { - $provider = $this->app->make('auth')->guard($guard)->getProvider(); - - $user = $provider->retrieveByCredentials($credentials); - - return $user && $provider->validateCredentials($user, $credentials); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/InteractsWithConsole.php b/vendor/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/InteractsWithConsole.php deleted file mode 100644 index ba078b31..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/InteractsWithConsole.php +++ /dev/null @@ -1,20 +0,0 @@ -app[Kernel::class]->call($command, $parameters); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/InteractsWithContainer.php b/vendor/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/InteractsWithContainer.php deleted file mode 100644 index 5a0ad1e0..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/InteractsWithContainer.php +++ /dev/null @@ -1,32 +0,0 @@ -instance($abstract, $instance); - } - - /** - * Register an instance of an object in the container. - * - * @param string $abstract - * @param object $instance - * @return object - */ - protected function instance($abstract, $instance) - { - $this->app->instance($abstract, $instance); - - return $instance; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/InteractsWithDatabase.php b/vendor/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/InteractsWithDatabase.php deleted file mode 100644 index 7c30907e..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/InteractsWithDatabase.php +++ /dev/null @@ -1,91 +0,0 @@ -assertThat( - $table, new HasInDatabase($this->getConnection($connection), $data) - ); - - return $this; - } - - /** - * Assert that a given where condition does not exist in the database. - * - * @param string $table - * @param array $data - * @param string $connection - * @return $this - */ - protected function assertDatabaseMissing($table, array $data, $connection = null) - { - $constraint = new ReverseConstraint( - new HasInDatabase($this->getConnection($connection), $data) - ); - - $this->assertThat($table, $constraint); - - return $this; - } - - /** - * Assert the given record has been deleted. - * - * @param string $table - * @param array $data - * @param string $connection - * @return $this - */ - protected function assertSoftDeleted($table, array $data, $connection = null) - { - $this->assertThat( - $table, new SoftDeletedInDatabase($this->getConnection($connection), $data) - ); - - return $this; - } - - /** - * Get the database connection. - * - * @param string|null $connection - * @return \Illuminate\Database\Connection - */ - protected function getConnection($connection = null) - { - $database = $this->app->make('db'); - - $connection = $connection ?: $database->getDefaultConnection(); - - return $database->connection($connection); - } - - /** - * Seed a given database connection. - * - * @param string $class - * @return $this - */ - public function seed($class = 'DatabaseSeeder') - { - $this->artisan('db:seed', ['--class' => $class]); - - return $this; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/InteractsWithExceptionHandling.php b/vendor/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/InteractsWithExceptionHandling.php deleted file mode 100644 index 6967a58c..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/InteractsWithExceptionHandling.php +++ /dev/null @@ -1,136 +0,0 @@ -originalExceptionHandler) { - $this->app->instance(ExceptionHandler::class, $this->originalExceptionHandler); - } - - return $this; - } - - /** - * Only handle the given exceptions via the exception handler. - * - * @param array $exceptions - * @return $this - */ - protected function handleExceptions(array $exceptions) - { - return $this->withoutExceptionHandling($exceptions); - } - - /** - * Only handle validation exceptions via the exception handler. - * - * @return $this - */ - protected function handleValidationExceptions() - { - return $this->handleExceptions([ValidationException::class]); - } - - /** - * Disable exception handling for the test. - * - * @param array $except - * @return $this - */ - protected function withoutExceptionHandling(array $except = []) - { - if ($this->originalExceptionHandler == null) { - $this->originalExceptionHandler = app(ExceptionHandler::class); - } - - $this->app->instance(ExceptionHandler::class, new class($this->originalExceptionHandler, $except) implements ExceptionHandler { - protected $except; - protected $originalHandler; - - /** - * Create a new class instance. - * - * @param \Illuminate\Contracts\Debug\ExceptionHandler $originalHandler - * @param array $except - * @return void - */ - public function __construct($originalHandler, $except = []) - { - $this->except = $except; - $this->originalHandler = $originalHandler; - } - - /** - * Report the given exception. - * - * @param \Exception $e - * @return void - */ - public function report(Exception $e) - { - // - } - - /** - * Render the given exception. - * - * @param \Illuminate\Http\Request $request - * @param \Exception $e - * @return mixed - * - * @throws \Symfony\Component\HttpKernel\Exception\NotFoundHttpException|\Exception - */ - public function render($request, Exception $e) - { - if ($e instanceof NotFoundHttpException) { - throw new NotFoundHttpException( - "{$request->method()} {$request->url()}", null, $e->getCode() - ); - } - - foreach ($this->except as $class) { - if ($e instanceof $class) { - return $this->originalHandler->render($request, $e); - } - } - - throw $e; - } - - /** - * Render the exception for the console. - * - * @param \Symfony\Component\Console\Output\OutputInterface $output - * @param \Exception $e - * @return void - */ - public function renderForConsole($output, Exception $e) - { - (new ConsoleApplication)->renderException($e, $output); - } - }); - - return $this; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/InteractsWithRedis.php b/vendor/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/InteractsWithRedis.php deleted file mode 100644 index 714c5923..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/InteractsWithRedis.php +++ /dev/null @@ -1,110 +0,0 @@ -markTestSkipped('Trying default host/port failed, please set environment variable REDIS_HOST & REDIS_PORT to enable '.__CLASS__); - - return; - } - - foreach ($this->redisDriverProvider() as $driver) { - $this->redis[$driver[0]] = new RedisManager($driver[0], [ - 'cluster' => false, - 'default' => [ - 'host' => $host, - 'port' => $port, - 'database' => 5, - 'timeout' => 0.5, - ], - ]); - } - - try { - $this->redis['predis']->connection()->flushdb(); - } catch (Exception $e) { - if ($host === '127.0.0.1' && $port === 6379 && getenv('REDIS_HOST') === false) { - $this->markTestSkipped('Trying default host/port failed, please set environment variable REDIS_HOST & REDIS_PORT to enable '.__CLASS__); - static::$connectionFailedOnceWithDefaultsSkip = true; - - return; - } - } - } - - /** - * Teardown redis connection. - * - * @return void - */ - public function tearDownRedis() - { - $this->redis['predis']->connection()->flushdb(); - - foreach ($this->redisDriverProvider() as $driver) { - $this->redis[$driver[0]]->connection()->disconnect(); - } - } - - /** - * Get redis driver provider. - * - * @return array - */ - public function redisDriverProvider() - { - $providers = [ - ['predis'], - ]; - - if (extension_loaded('redis')) { - $providers[] = ['phpredis']; - } - - return $providers; - } - - /** - * Run test if redis is available. - * - * @param callable $callback - * @return void - */ - public function ifRedisAvailable($callback) - { - $this->setUpRedis(); - - $callback(); - - $this->tearDownRedis(); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/InteractsWithSession.php b/vendor/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/InteractsWithSession.php deleted file mode 100644 index 9d72e7c3..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/InteractsWithSession.php +++ /dev/null @@ -1,64 +0,0 @@ -session($data); - - return $this; - } - - /** - * Set the session to the given array. - * - * @param array $data - * @return $this - */ - public function session(array $data) - { - $this->startSession(); - - foreach ($data as $key => $value) { - $this->app['session']->put($key, $value); - } - - return $this; - } - - /** - * Start the session for the application. - * - * @return $this - */ - protected function startSession() - { - if (! $this->app['session']->isStarted()) { - $this->app['session']->start(); - } - - return $this; - } - - /** - * Flush all of the current session data. - * - * @return $this - */ - public function flushSession() - { - $this->startSession(); - - $this->app['session']->flush(); - - return $this; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/MakesHttpRequests.php b/vendor/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/MakesHttpRequests.php deleted file mode 100644 index 0afbdac4..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/MakesHttpRequests.php +++ /dev/null @@ -1,460 +0,0 @@ -defaultHeaders = array_merge($this->defaultHeaders, $headers); - - return $this; - } - - /** - * Add a header to be sent with the request. - * - * @param string $name - * @param string $value - * @return $this - */ - public function withHeader(string $name, string $value) - { - $this->defaultHeaders[$name] = $value; - - return $this; - } - - /** - * Flush all the configured headers. - * - * @return $this - */ - public function flushHeaders() - { - $this->defaultHeaders = []; - - return $this; - } - - /** - * Define a set of server variables to be sent with the requests. - * - * @param array $server - * @return $this - */ - public function withServerVariables(array $server) - { - $this->serverVariables = $server; - - return $this; - } - - /** - * Disable middleware for the test. - * - * @param string|array $middleware - * @return $this - */ - public function withoutMiddleware($middleware = null) - { - if (is_null($middleware)) { - $this->app->instance('middleware.disable', true); - - return $this; - } - - foreach ((array) $middleware as $abstract) { - $this->app->instance($abstract, new class { - public function handle($request, $next) - { - return $next($request); - } - }); - } - - return $this; - } - - /** - * Enable the given middleware for the test. - * - * @param string|array $middleware - * @return $this - */ - public function withMiddleware($middleware = null) - { - if (is_null($middleware)) { - unset($this->app['middleware.disable']); - - return $this; - } - - foreach ((array) $middleware as $abstract) { - unset($this->app[$abstract]); - } - - return $this; - } - - /** - * Automatically follow any redirects returned from the response. - * - * @return $this - */ - public function followingRedirects() - { - $this->followRedirects = true; - - return $this; - } - - /** - * Set the referer header to simulate a previous request. - * - * @param string $url - * @return $this - */ - public function from(string $url) - { - return $this->withHeader('referer', $url); - } - - /** - * Visit the given URI with a GET request. - * - * @param string $uri - * @param array $headers - * @return \Illuminate\Foundation\Testing\TestResponse - */ - public function get($uri, array $headers = []) - { - $server = $this->transformHeadersToServerVars($headers); - - return $this->call('GET', $uri, [], [], [], $server); - } - - /** - * Visit the given URI with a GET request, expecting a JSON response. - * - * @param string $uri - * @param array $headers - * @return \Illuminate\Foundation\Testing\TestResponse - */ - public function getJson($uri, array $headers = []) - { - return $this->json('GET', $uri, [], $headers); - } - - /** - * Visit the given URI with a POST request. - * - * @param string $uri - * @param array $data - * @param array $headers - * @return \Illuminate\Foundation\Testing\TestResponse - */ - public function post($uri, array $data = [], array $headers = []) - { - $server = $this->transformHeadersToServerVars($headers); - - return $this->call('POST', $uri, $data, [], [], $server); - } - - /** - * Visit the given URI with a POST request, expecting a JSON response. - * - * @param string $uri - * @param array $data - * @param array $headers - * @return \Illuminate\Foundation\Testing\TestResponse - */ - public function postJson($uri, array $data = [], array $headers = []) - { - return $this->json('POST', $uri, $data, $headers); - } - - /** - * Visit the given URI with a PUT request. - * - * @param string $uri - * @param array $data - * @param array $headers - * @return \Illuminate\Foundation\Testing\TestResponse - */ - public function put($uri, array $data = [], array $headers = []) - { - $server = $this->transformHeadersToServerVars($headers); - - return $this->call('PUT', $uri, $data, [], [], $server); - } - - /** - * Visit the given URI with a PUT request, expecting a JSON response. - * - * @param string $uri - * @param array $data - * @param array $headers - * @return \Illuminate\Foundation\Testing\TestResponse - */ - public function putJson($uri, array $data = [], array $headers = []) - { - return $this->json('PUT', $uri, $data, $headers); - } - - /** - * Visit the given URI with a PATCH request. - * - * @param string $uri - * @param array $data - * @param array $headers - * @return \Illuminate\Foundation\Testing\TestResponse - */ - public function patch($uri, array $data = [], array $headers = []) - { - $server = $this->transformHeadersToServerVars($headers); - - return $this->call('PATCH', $uri, $data, [], [], $server); - } - - /** - * Visit the given URI with a PATCH request, expecting a JSON response. - * - * @param string $uri - * @param array $data - * @param array $headers - * @return \Illuminate\Foundation\Testing\TestResponse - */ - public function patchJson($uri, array $data = [], array $headers = []) - { - return $this->json('PATCH', $uri, $data, $headers); - } - - /** - * Visit the given URI with a DELETE request. - * - * @param string $uri - * @param array $data - * @param array $headers - * @return \Illuminate\Foundation\Testing\TestResponse - */ - public function delete($uri, array $data = [], array $headers = []) - { - $server = $this->transformHeadersToServerVars($headers); - - return $this->call('DELETE', $uri, $data, [], [], $server); - } - - /** - * Visit the given URI with a DELETE request, expecting a JSON response. - * - * @param string $uri - * @param array $data - * @param array $headers - * @return \Illuminate\Foundation\Testing\TestResponse - */ - public function deleteJson($uri, array $data = [], array $headers = []) - { - return $this->json('DELETE', $uri, $data, $headers); - } - - /** - * Call the given URI with a JSON request. - * - * @param string $method - * @param string $uri - * @param array $data - * @param array $headers - * @return \Illuminate\Foundation\Testing\TestResponse - */ - public function json($method, $uri, array $data = [], array $headers = []) - { - $files = $this->extractFilesFromDataArray($data); - - $content = json_encode($data); - - $headers = array_merge([ - 'CONTENT_LENGTH' => mb_strlen($content, '8bit'), - 'CONTENT_TYPE' => 'application/json', - 'Accept' => 'application/json', - ], $headers); - - return $this->call( - $method, $uri, [], [], $files, $this->transformHeadersToServerVars($headers), $content - ); - } - - /** - * Call the given URI and return the Response. - * - * @param string $method - * @param string $uri - * @param array $parameters - * @param array $cookies - * @param array $files - * @param array $server - * @param string $content - * @return \Illuminate\Foundation\Testing\TestResponse - */ - public function call($method, $uri, $parameters = [], $cookies = [], $files = [], $server = [], $content = null) - { - $kernel = $this->app->make(HttpKernel::class); - - $files = array_merge($files, $this->extractFilesFromDataArray($parameters)); - - $symfonyRequest = SymfonyRequest::create( - $this->prepareUrlForRequest($uri), $method, $parameters, - $cookies, $files, array_replace($this->serverVariables, $server), $content - ); - - $response = $kernel->handle( - $request = Request::createFromBase($symfonyRequest) - ); - - if ($this->followRedirects) { - $response = $this->followRedirects($response); - } - - $kernel->terminate($request, $response); - - return $this->createTestResponse($response); - } - - /** - * Turn the given URI into a fully qualified URL. - * - * @param string $uri - * @return string - */ - protected function prepareUrlForRequest($uri) - { - if (Str::startsWith($uri, '/')) { - $uri = substr($uri, 1); - } - - if (! Str::startsWith($uri, 'http')) { - $uri = config('app.url').'/'.$uri; - } - - return trim($uri, '/'); - } - - /** - * Transform headers array to array of $_SERVER vars with HTTP_* format. - * - * @param array $headers - * @return array - */ - protected function transformHeadersToServerVars(array $headers) - { - return collect(array_merge($this->defaultHeaders, $headers))->mapWithKeys(function ($value, $name) { - $name = strtr(strtoupper($name), '-', '_'); - - return [$this->formatServerHeaderKey($name) => $value]; - })->all(); - } - - /** - * Format the header name for the server array. - * - * @param string $name - * @return string - */ - protected function formatServerHeaderKey($name) - { - if (! Str::startsWith($name, 'HTTP_') && $name !== 'CONTENT_TYPE' && $name !== 'REMOTE_ADDR') { - return 'HTTP_'.$name; - } - - return $name; - } - - /** - * Extract the file uploads from the given data array. - * - * @param array $data - * @return array - */ - protected function extractFilesFromDataArray(&$data) - { - $files = []; - - foreach ($data as $key => $value) { - if ($value instanceof SymfonyUploadedFile) { - $files[$key] = $value; - - unset($data[$key]); - } - - if (is_array($value)) { - $files[$key] = $this->extractFilesFromDataArray($value); - - $data[$key] = $value; - } - } - - return $files; - } - - /** - * Follow a redirect chain until a non-redirect is received. - * - * @param \Illuminate\Http\Response $response - * @return \Illuminate\Http\Response - */ - protected function followRedirects($response) - { - while ($response->isRedirect()) { - $response = $this->get($response->headers->get('Location')); - } - - $this->followRedirects = false; - - return $response; - } - - /** - * Create the test response instance from the given response. - * - * @param \Illuminate\Http\Response $response - * @return \Illuminate\Foundation\Testing\TestResponse - */ - protected function createTestResponse($response) - { - return TestResponse::fromBaseResponse($response); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/MocksApplicationServices.php b/vendor/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/MocksApplicationServices.php deleted file mode 100644 index e0c48029..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/MocksApplicationServices.php +++ /dev/null @@ -1,283 +0,0 @@ -withoutEvents(); - - $this->beforeApplicationDestroyed(function () use ($events) { - $fired = $this->getFiredEvents($events); - - $this->assertEmpty( - $eventsNotFired = array_diff($events, $fired), - 'These expected events were not fired: ['.implode(', ', $eventsNotFired).']' - ); - }); - - return $this; - } - - /** - * Specify a list of events that should not be fired for the given operation. - * - * These events will be mocked, so that handlers will not actually be executed. - * - * @param array|string $events - * @return $this - */ - public function doesntExpectEvents($events) - { - $events = is_array($events) ? $events : func_get_args(); - - $this->withoutEvents(); - - $this->beforeApplicationDestroyed(function () use ($events) { - $this->assertEmpty( - $fired = $this->getFiredEvents($events), - 'These unexpected events were fired: ['.implode(', ', $fired).']' - ); - }); - - return $this; - } - - /** - * Mock the event dispatcher so all events are silenced and collected. - * - * @return $this - */ - protected function withoutEvents() - { - $mock = Mockery::mock(EventsDispatcherContract::class)->shouldIgnoreMissing(); - - $mock->shouldReceive('fire', 'dispatch')->andReturnUsing(function ($called) { - $this->firedEvents[] = $called; - }); - - $this->app->instance('events', $mock); - - return $this; - } - - /** - * Filter the given events against the fired events. - * - * @param array $events - * @return array - */ - protected function getFiredEvents(array $events) - { - return $this->getDispatched($events, $this->firedEvents); - } - - /** - * Specify a list of jobs that should be dispatched for the given operation. - * - * These jobs will be mocked, so that handlers will not actually be executed. - * - * @param array|string $jobs - * @return $this - */ - protected function expectsJobs($jobs) - { - $jobs = is_array($jobs) ? $jobs : func_get_args(); - - $this->withoutJobs(); - - $this->beforeApplicationDestroyed(function () use ($jobs) { - $dispatched = $this->getDispatchedJobs($jobs); - - $this->assertEmpty( - $jobsNotDispatched = array_diff($jobs, $dispatched), - 'These expected jobs were not dispatched: ['.implode(', ', $jobsNotDispatched).']' - ); - }); - - return $this; - } - - /** - * Specify a list of jobs that should not be dispatched for the given operation. - * - * These jobs will be mocked, so that handlers will not actually be executed. - * - * @param array|string $jobs - * @return $this - */ - protected function doesntExpectJobs($jobs) - { - $jobs = is_array($jobs) ? $jobs : func_get_args(); - - $this->withoutJobs(); - - $this->beforeApplicationDestroyed(function () use ($jobs) { - $this->assertEmpty( - $dispatched = $this->getDispatchedJobs($jobs), - 'These unexpected jobs were dispatched: ['.implode(', ', $dispatched).']' - ); - }); - - return $this; - } - - /** - * Mock the job dispatcher so all jobs are silenced and collected. - * - * @return $this - */ - protected function withoutJobs() - { - $mock = Mockery::mock(BusDispatcherContract::class); - - $mock->shouldReceive('dispatch', 'dispatchNow')->andReturnUsing(function ($dispatched) { - $this->dispatchedJobs[] = $dispatched; - }); - - $this->app->instance( - BusDispatcherContract::class, $mock - ); - - return $this; - } - - /** - * Filter the given jobs against the dispatched jobs. - * - * @param array $jobs - * @return array - */ - protected function getDispatchedJobs(array $jobs) - { - return $this->getDispatched($jobs, $this->dispatchedJobs); - } - - /** - * Filter the given classes against an array of dispatched classes. - * - * @param array $classes - * @param array $dispatched - * @return array - */ - protected function getDispatched(array $classes, array $dispatched) - { - return array_filter($classes, function ($class) use ($dispatched) { - return $this->wasDispatched($class, $dispatched); - }); - } - - /** - * Check if the given class exists in an array of dispatched classes. - * - * @param string $needle - * @param array $haystack - * @return bool - */ - protected function wasDispatched($needle, array $haystack) - { - foreach ($haystack as $dispatched) { - if ((is_string($dispatched) && ($dispatched === $needle || is_subclass_of($dispatched, $needle))) || - $dispatched instanceof $needle) { - return true; - } - } - - return false; - } - - /** - * Mock the notification dispatcher so all notifications are silenced. - * - * @return $this - */ - protected function withoutNotifications() - { - $mock = Mockery::mock(NotificationDispatcher::class); - - $mock->shouldReceive('send')->andReturnUsing(function ($notifiable, $instance, $channels = []) { - $this->dispatchedNotifications[] = compact( - 'notifiable', 'instance', 'channels' - ); - }); - - $this->app->instance(NotificationDispatcher::class, $mock); - - return $this; - } - - /** - * Specify a notification that is expected to be dispatched. - * - * @param mixed $notifiable - * @param string $notification - * @return $this - */ - protected function expectsNotification($notifiable, $notification) - { - $this->withoutNotifications(); - - $this->beforeApplicationDestroyed(function () use ($notifiable, $notification) { - foreach ($this->dispatchedNotifications as $dispatched) { - $notified = $dispatched['notifiable']; - - if (($notified === $notifiable || - $notified->getKey() == $notifiable->getKey()) && - get_class($dispatched['instance']) === $notification - ) { - return $this; - } - } - - $this->fail('The following expected notification were not dispatched: ['.$notification.']'); - }); - - return $this; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Testing/Constraints/HasInDatabase.php b/vendor/laravel/framework/src/Illuminate/Foundation/Testing/Constraints/HasInDatabase.php deleted file mode 100644 index b88f3422..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Testing/Constraints/HasInDatabase.php +++ /dev/null @@ -1,103 +0,0 @@ -data = $data; - - $this->database = $database; - } - - /** - * Check if the data is found in the given table. - * - * @param string $table - * @return bool - */ - public function matches($table): bool - { - return $this->database->table($table)->where($this->data)->count() > 0; - } - - /** - * Get the description of the failure. - * - * @param string $table - * @return string - */ - public function failureDescription($table): string - { - return sprintf( - "a row in the table [%s] matches the attributes %s.\n\n%s", - $table, $this->toString(JSON_PRETTY_PRINT), $this->getAdditionalInfo($table) - ); - } - - /** - * Get additional info about the records found in the database table. - * - * @param string $table - * @return string - */ - protected function getAdditionalInfo($table) - { - $results = $this->database->table($table)->get(); - - if ($results->isEmpty()) { - return 'The table is empty'; - } - - $description = 'Found: '.json_encode($results->take($this->show), JSON_PRETTY_PRINT); - - if ($results->count() > $this->show) { - $description .= sprintf(' and %s others', $results->count() - $this->show); - } - - return $description; - } - - /** - * Get a string representation of the object. - * - * @param int $options - * @return string - */ - public function toString($options = 0): string - { - return json_encode($this->data, $options); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Testing/Constraints/SeeInOrder.php b/vendor/laravel/framework/src/Illuminate/Foundation/Testing/Constraints/SeeInOrder.php deleted file mode 100644 index 8c0cb189..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Testing/Constraints/SeeInOrder.php +++ /dev/null @@ -1,88 +0,0 @@ -content = $content; - } - - /** - * Determine if the rule passes validation. - * - * @param array $values - * @return bool - */ - public function matches($values) : bool - { - $position = 0; - - foreach ($values as $value) { - if (empty($value)) { - continue; - } - - $valuePosition = mb_strpos($this->content, $value, $position); - - if ($valuePosition === false || $valuePosition < $position) { - $this->failedValue = $value; - - return false; - } - - $position = $valuePosition + mb_strlen($value); - } - - return true; - } - - /** - * Get the description of the failure. - * - * @param array $values - * @return string - */ - public function failureDescription($values) : string - { - return sprintf( - 'Failed asserting that \'%s\' contains "%s" in specified order.', - $this->content, - $this->failedValue - ); - } - - /** - * Get a string representation of the object. - * - * @return string - */ - public function toString() : string - { - return (new ReflectionClass($this))->name; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Testing/Constraints/SoftDeletedInDatabase.php b/vendor/laravel/framework/src/Illuminate/Foundation/Testing/Constraints/SoftDeletedInDatabase.php deleted file mode 100644 index abab48cc..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Testing/Constraints/SoftDeletedInDatabase.php +++ /dev/null @@ -1,103 +0,0 @@ -data = $data; - - $this->database = $database; - } - - /** - * Check if the data is found in the given table. - * - * @param string $table - * @return bool - */ - public function matches($table): bool - { - return $this->database->table($table) - ->where($this->data)->whereNotNull('deleted_at')->count() > 0; - } - - /** - * Get the description of the failure. - * - * @param string $table - * @return string - */ - public function failureDescription($table): string - { - return sprintf( - "any soft deleted row in the table [%s] matches the attributes %s.\n\n%s", - $table, $this->toString(), $this->getAdditionalInfo($table) - ); - } - - /** - * Get additional info about the records found in the database table. - * - * @param string $table - * @return string - */ - protected function getAdditionalInfo($table) - { - $results = $this->database->table($table)->get(); - - if ($results->isEmpty()) { - return 'The table is empty'; - } - - $description = 'Found: '.json_encode($results->take($this->show), JSON_PRETTY_PRINT); - - if ($results->count() > $this->show) { - $description .= sprintf(' and %s others', $results->count() - $this->show); - } - - return $description; - } - - /** - * Get a string representation of the object. - * - * @return string - */ - public function toString(): string - { - return json_encode($this->data); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Testing/DatabaseMigrations.php b/vendor/laravel/framework/src/Illuminate/Foundation/Testing/DatabaseMigrations.php deleted file mode 100644 index 889a4532..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Testing/DatabaseMigrations.php +++ /dev/null @@ -1,26 +0,0 @@ -artisan('migrate:fresh'); - - $this->app[Kernel::class]->setArtisan(null); - - $this->beforeApplicationDestroyed(function () { - $this->artisan('migrate:rollback'); - - RefreshDatabaseState::$migrated = false; - }); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Testing/DatabaseTransactions.php b/vendor/laravel/framework/src/Illuminate/Foundation/Testing/DatabaseTransactions.php deleted file mode 100644 index 9870153b..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Testing/DatabaseTransactions.php +++ /dev/null @@ -1,40 +0,0 @@ -app->make('db'); - - foreach ($this->connectionsToTransact() as $name) { - $database->connection($name)->beginTransaction(); - } - - $this->beforeApplicationDestroyed(function () use ($database) { - foreach ($this->connectionsToTransact() as $name) { - $connection = $database->connection($name); - - $connection->rollBack(); - $connection->disconnect(); - } - }); - } - - /** - * The database connections that should have transactions. - * - * @return array - */ - protected function connectionsToTransact() - { - return property_exists($this, 'connectionsToTransact') - ? $this->connectionsToTransact : [null]; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Testing/HttpException.php b/vendor/laravel/framework/src/Illuminate/Foundation/Testing/HttpException.php deleted file mode 100644 index 537b9e0c..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Testing/HttpException.php +++ /dev/null @@ -1,10 +0,0 @@ -usingInMemoryDatabase() - ? $this->refreshInMemoryDatabase() - : $this->refreshTestDatabase(); - } - - /** - * Determine if an in-memory database is being used. - * - * @return bool - */ - protected function usingInMemoryDatabase() - { - return config('database.connections')[ - config('database.default') - ]['database'] == ':memory:'; - } - - /** - * Refresh the in-memory database. - * - * @return void - */ - protected function refreshInMemoryDatabase() - { - $this->artisan('migrate'); - - $this->app[Kernel::class]->setArtisan(null); - } - - /** - * Refresh a conventional test database. - * - * @return void - */ - protected function refreshTestDatabase() - { - if (! RefreshDatabaseState::$migrated) { - $this->artisan('migrate:fresh', $this->shouldDropViews() ? [ - '--drop-views' => true, - ] : []); - - $this->app[Kernel::class]->setArtisan(null); - - RefreshDatabaseState::$migrated = true; - } - - $this->beginDatabaseTransaction(); - } - - /** - * Begin a database transaction on the testing database. - * - * @return void - */ - public function beginDatabaseTransaction() - { - $database = $this->app->make('db'); - - foreach ($this->connectionsToTransact() as $name) { - $connection = $database->connection($name); - $dispatcher = $connection->getEventDispatcher(); - - $connection->unsetEventDispatcher(); - $connection->beginTransaction(); - $connection->setEventDispatcher($dispatcher); - } - - $this->beforeApplicationDestroyed(function () use ($database) { - foreach ($this->connectionsToTransact() as $name) { - $connection = $database->connection($name); - $dispatcher = $connection->getEventDispatcher(); - - $connection->unsetEventDispatcher(); - $connection->rollback(); - $connection->setEventDispatcher($dispatcher); - $connection->disconnect(); - } - }); - } - - /** - * The database connections that should have transactions. - * - * @return array - */ - protected function connectionsToTransact() - { - return property_exists($this, 'connectionsToTransact') - ? $this->connectionsToTransact : [null]; - } - - /** - * Determine if views should be dropped when refreshing the database. - * - * @return bool - */ - protected function shouldDropViews() - { - return property_exists($this, 'dropViews') - ? $this->dropViews : false; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Testing/RefreshDatabaseState.php b/vendor/laravel/framework/src/Illuminate/Foundation/Testing/RefreshDatabaseState.php deleted file mode 100644 index 1f330873..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Testing/RefreshDatabaseState.php +++ /dev/null @@ -1,13 +0,0 @@ -app) { - $this->refreshApplication(); - } - - $this->setUpTraits(); - - foreach ($this->afterApplicationCreatedCallbacks as $callback) { - call_user_func($callback); - } - - Facade::clearResolvedInstances(); - - Model::setEventDispatcher($this->app['events']); - - $this->setUpHasRun = true; - } - - /** - * Refresh the application instance. - * - * @return void - */ - protected function refreshApplication() - { - $this->app = $this->createApplication(); - } - - /** - * Boot the testing helper traits. - * - * @return array - */ - protected function setUpTraits() - { - $uses = array_flip(class_uses_recursive(static::class)); - - if (isset($uses[RefreshDatabase::class])) { - $this->refreshDatabase(); - } - - if (isset($uses[DatabaseMigrations::class])) { - $this->runDatabaseMigrations(); - } - - if (isset($uses[DatabaseTransactions::class])) { - $this->beginDatabaseTransaction(); - } - - if (isset($uses[WithoutMiddleware::class])) { - $this->disableMiddlewareForAllTests(); - } - - if (isset($uses[WithoutEvents::class])) { - $this->disableEventsForAllTests(); - } - - if (isset($uses[WithFaker::class])) { - $this->setUpFaker(); - } - - return $uses; - } - - /** - * Clean up the testing environment before the next test. - * - * @return void - */ - protected function tearDown() - { - if ($this->app) { - foreach ($this->beforeApplicationDestroyedCallbacks as $callback) { - call_user_func($callback); - } - - $this->app->flush(); - - $this->app = null; - } - - $this->setUpHasRun = false; - - if (property_exists($this, 'serverVariables')) { - $this->serverVariables = []; - } - - if (property_exists($this, 'defaultHeaders')) { - $this->defaultHeaders = []; - } - - if (class_exists('Mockery')) { - if ($container = Mockery::getContainer()) { - $this->addToAssertionCount($container->mockery_getExpectationCount()); - } - - Mockery::close(); - } - - if (class_exists(Carbon::class)) { - Carbon::setTestNow(); - } - - $this->afterApplicationCreatedCallbacks = []; - $this->beforeApplicationDestroyedCallbacks = []; - - Artisan::forgetBootstrappers(); - } - - /** - * Register a callback to be run after the application is created. - * - * @param callable $callback - * @return void - */ - public function afterApplicationCreated(callable $callback) - { - $this->afterApplicationCreatedCallbacks[] = $callback; - - if ($this->setUpHasRun) { - call_user_func($callback); - } - } - - /** - * Register a callback to be run before the application is destroyed. - * - * @param callable $callback - * @return void - */ - protected function beforeApplicationDestroyed(callable $callback) - { - $this->beforeApplicationDestroyedCallbacks[] = $callback; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Testing/TestResponse.php b/vendor/laravel/framework/src/Illuminate/Foundation/Testing/TestResponse.php deleted file mode 100644 index 97fbb3ca..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Testing/TestResponse.php +++ /dev/null @@ -1,975 +0,0 @@ -baseResponse = $response; - } - - /** - * Create a new TestResponse from another response. - * - * @param \Illuminate\Http\Response $response - * @return static - */ - public static function fromBaseResponse($response) - { - return new static($response); - } - - /** - * Assert that the response has a successful status code. - * - * @return $this - */ - public function assertSuccessful() - { - PHPUnit::assertTrue( - $this->isSuccessful(), - 'Response status code ['.$this->getStatusCode().'] is not a successful status code.' - ); - - return $this; - } - - /** - * Assert that the response has a 200 status code. - * - * @return $this - */ - public function assertOk() - { - PHPUnit::assertTrue( - $this->isOk(), - 'Response status code ['.$this->getStatusCode().'] does not match expected 200 status code.' - ); - - return $this; - } - - /** - * Assert that the response has a not found status code. - * - * @return $this - */ - public function assertNotFound() - { - PHPUnit::assertTrue( - $this->isNotFound(), - 'Response status code ['.$this->getStatusCode().'] is not a not found status code.' - ); - - return $this; - } - - /** - * Assert that the response has a forbidden status code. - * - * @return $this - */ - public function assertForbidden() - { - PHPUnit::assertTrue( - $this->isForbidden(), - 'Response status code ['.$this->getStatusCode().'] is not a forbidden status code.' - ); - - return $this; - } - - /** - * Assert that the response has the given status code. - * - * @param int $status - * @return $this - */ - public function assertStatus($status) - { - $actual = $this->getStatusCode(); - - PHPUnit::assertTrue( - $actual === $status, - "Expected status code {$status} but received {$actual}." - ); - - return $this; - } - - /** - * Assert whether the response is redirecting to a given URI. - * - * @param string $uri - * @return $this - */ - public function assertRedirect($uri = null) - { - PHPUnit::assertTrue( - $this->isRedirect(), 'Response status code ['.$this->getStatusCode().'] is not a redirect status code.' - ); - - if (! is_null($uri)) { - $this->assertLocation($uri); - } - - return $this; - } - - /** - * Asserts that the response contains the given header and equals the optional value. - * - * @param string $headerName - * @param mixed $value - * @return $this - */ - public function assertHeader($headerName, $value = null) - { - PHPUnit::assertTrue( - $this->headers->has($headerName), "Header [{$headerName}] not present on response." - ); - - $actual = $this->headers->get($headerName); - - if (! is_null($value)) { - PHPUnit::assertEquals( - $value, $this->headers->get($headerName), - "Header [{$headerName}] was found, but value [{$actual}] does not match [{$value}]." - ); - } - - return $this; - } - - /** - * Asserts that the response does not contains the given header. - * - * @param string $headerName - * @return $this - */ - public function assertHeaderMissing($headerName) - { - PHPUnit::assertFalse( - $this->headers->has($headerName), "Unexpected header [{$headerName}] is present on response." - ); - - return $this; - } - - /** - * Assert that the current location header matches the given URI. - * - * @param string $uri - * @return $this - */ - public function assertLocation($uri) - { - PHPUnit::assertEquals( - app('url')->to($uri), app('url')->to($this->headers->get('Location')) - ); - - return $this; - } - - /** - * Asserts that the response contains the given cookie and equals the optional value. - * - * @param string $cookieName - * @param mixed $value - * @return $this - */ - public function assertPlainCookie($cookieName, $value = null) - { - $this->assertCookie($cookieName, $value, false); - - return $this; - } - - /** - * Asserts that the response contains the given cookie and equals the optional value. - * - * @param string $cookieName - * @param mixed $value - * @param bool $encrypted - * @return $this - */ - public function assertCookie($cookieName, $value = null, $encrypted = true) - { - PHPUnit::assertNotNull( - $cookie = $this->getCookie($cookieName), - "Cookie [{$cookieName}] not present on response." - ); - - if (! $cookie || is_null($value)) { - return $this; - } - - $cookieValue = $cookie->getValue(); - - $actual = $encrypted - ? app('encrypter')->decrypt($cookieValue) : $cookieValue; - - PHPUnit::assertEquals( - $value, $actual, - "Cookie [{$cookieName}] was found, but value [{$actual}] does not match [{$value}]." - ); - - return $this; - } - - /** - * Asserts that the response contains the given cookie and is expired. - * - * @param string $cookieName - * @return $this - */ - public function assertCookieExpired($cookieName) - { - PHPUnit::assertNotNull( - $cookie = $this->getCookie($cookieName), - "Cookie [{$cookieName}] not present on response." - ); - - $expiresAt = Carbon::createFromTimestamp($cookie->getExpiresTime()); - - PHPUnit::assertTrue( - $expiresAt->lessThan(Carbon::now()), - "Cookie [{$cookieName}] is not expired, it expires at [{$expiresAt}]." - ); - - return $this; - } - - /** - * Asserts that the response contains the given cookie and is not expired. - * - * @param string $cookieName - * @return $this - */ - public function assertCookieNotExpired($cookieName) - { - PHPUnit::assertNotNull( - $cookie = $this->getCookie($cookieName), - "Cookie [{$cookieName}] not present on response." - ); - - $expiresAt = Carbon::createFromTimestamp($cookie->getExpiresTime()); - - PHPUnit::assertTrue( - $expiresAt->greaterThan(Carbon::now()), - "Cookie [{$cookieName}] is expired, it expired at [{$expiresAt}]." - ); - - return $this; - } - - /** - * Asserts that the response does not contains the given cookie. - * - * @param string $cookieName - * @return $this - */ - public function assertCookieMissing($cookieName) - { - PHPUnit::assertNull( - $this->getCookie($cookieName), - "Cookie [{$cookieName}] is present on response." - ); - - return $this; - } - - /** - * Get the given cookie from the response. - * - * @param string $cookieName - * @return \Symfony\Component\HttpFoundation\Cookie|null - */ - protected function getCookie($cookieName) - { - foreach ($this->headers->getCookies() as $cookie) { - if ($cookie->getName() === $cookieName) { - return $cookie; - } - } - } - - /** - * Assert that the given string is contained within the response. - * - * @param string $value - * @return $this - */ - public function assertSee($value) - { - PHPUnit::assertContains((string) $value, $this->getContent()); - - return $this; - } - - /** - * Assert that the given strings are contained in order within the response. - * - * @param array $values - * @return $this - */ - public function assertSeeInOrder(array $values) - { - PHPUnit::assertThat($values, new SeeInOrder($this->getContent())); - - return $this; - } - - /** - * Assert that the given string is contained within the response text. - * - * @param string $value - * @return $this - */ - public function assertSeeText($value) - { - PHPUnit::assertContains((string) $value, strip_tags($this->getContent())); - - return $this; - } - - /** - * Assert that the given strings are contained in order within the response text. - * - * @param array $values - * @return $this - */ - public function assertSeeTextInOrder(array $values) - { - PHPUnit::assertThat($values, new SeeInOrder(strip_tags($this->getContent()))); - - return $this; - } - - /** - * Assert that the given string is not contained within the response. - * - * @param string $value - * @return $this - */ - public function assertDontSee($value) - { - PHPUnit::assertNotContains((string) $value, $this->getContent()); - - return $this; - } - - /** - * Assert that the given string is not contained within the response text. - * - * @param string $value - * @return $this - */ - public function assertDontSeeText($value) - { - PHPUnit::assertNotContains((string) $value, strip_tags($this->getContent())); - - return $this; - } - - /** - * Assert that the response is a superset of the given JSON. - * - * @param array $data - * @param bool $strict - * @return $this - */ - public function assertJson(array $data, $strict = false) - { - PHPUnit::assertArraySubset( - $data, $this->decodeResponseJson(), $strict, $this->assertJsonMessage($data) - ); - - return $this; - } - - /** - * Get the assertion message for assertJson. - * - * @param array $data - * @return string - */ - protected function assertJsonMessage(array $data) - { - $expected = json_encode($data, JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES); - - $actual = json_encode($this->decodeResponseJson(), JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES); - - return 'Unable to find JSON: '.PHP_EOL.PHP_EOL. - "[{$expected}]".PHP_EOL.PHP_EOL. - 'within response JSON:'.PHP_EOL.PHP_EOL. - "[{$actual}].".PHP_EOL.PHP_EOL; - } - - /** - * Assert that the response has the exact given JSON. - * - * @param array $data - * @return $this - */ - public function assertExactJson(array $data) - { - $actual = json_encode(Arr::sortRecursive( - (array) $this->decodeResponseJson() - )); - - PHPUnit::assertEquals(json_encode(Arr::sortRecursive($data)), $actual); - - return $this; - } - - /** - * Assert that the response contains the given JSON fragment. - * - * @param array $data - * @return $this - */ - public function assertJsonFragment(array $data) - { - $actual = json_encode(Arr::sortRecursive( - (array) $this->decodeResponseJson() - )); - - foreach (Arr::sortRecursive($data) as $key => $value) { - $expected = $this->jsonSearchStrings($key, $value); - - PHPUnit::assertTrue( - Str::contains($actual, $expected), - 'Unable to find JSON fragment: '.PHP_EOL.PHP_EOL. - '['.json_encode([$key => $value]).']'.PHP_EOL.PHP_EOL. - 'within'.PHP_EOL.PHP_EOL. - "[{$actual}]." - ); - } - - return $this; - } - - /** - * Assert that the response does not contain the given JSON fragment. - * - * @param array $data - * @param bool $exact - * @return $this - */ - public function assertJsonMissing(array $data, $exact = false) - { - if ($exact) { - return $this->assertJsonMissingExact($data); - } - - $actual = json_encode(Arr::sortRecursive( - (array) $this->decodeResponseJson() - )); - - foreach (Arr::sortRecursive($data) as $key => $value) { - $unexpected = $this->jsonSearchStrings($key, $value); - - PHPUnit::assertFalse( - Str::contains($actual, $unexpected), - 'Found unexpected JSON fragment: '.PHP_EOL.PHP_EOL. - '['.json_encode([$key => $value]).']'.PHP_EOL.PHP_EOL. - 'within'.PHP_EOL.PHP_EOL. - "[{$actual}]." - ); - } - - return $this; - } - - /** - * Assert that the response does not contain the exact JSON fragment. - * - * @param array $data - * @return $this - */ - public function assertJsonMissingExact(array $data) - { - $actual = json_encode(Arr::sortRecursive( - (array) $this->decodeResponseJson() - )); - - foreach (Arr::sortRecursive($data) as $key => $value) { - $unexpected = $this->jsonSearchStrings($key, $value); - - if (! Str::contains($actual, $unexpected)) { - return $this; - } - } - - PHPUnit::fail( - 'Found unexpected JSON fragment: '.PHP_EOL.PHP_EOL. - '['.json_encode($data).']'.PHP_EOL.PHP_EOL. - 'within'.PHP_EOL.PHP_EOL. - "[{$actual}]." - ); - } - - /** - * Get the strings we need to search for when examining the JSON. - * - * @param string $key - * @param string $value - * @return array - */ - protected function jsonSearchStrings($key, $value) - { - $needle = substr(json_encode([$key => $value]), 1, -1); - - return [ - $needle.']', - $needle.'}', - $needle.',', - ]; - } - - /** - * Assert that the response has a given JSON structure. - * - * @param array|null $structure - * @param array|null $responseData - * @return $this - */ - public function assertJsonStructure(array $structure = null, $responseData = null) - { - if (is_null($structure)) { - return $this->assertJson($this->json()); - } - - if (is_null($responseData)) { - $responseData = $this->decodeResponseJson(); - } - - foreach ($structure as $key => $value) { - if (is_array($value) && $key === '*') { - PHPUnit::assertInternalType('array', $responseData); - - foreach ($responseData as $responseDataItem) { - $this->assertJsonStructure($structure['*'], $responseDataItem); - } - } elseif (is_array($value)) { - PHPUnit::assertArrayHasKey($key, $responseData); - - $this->assertJsonStructure($structure[$key], $responseData[$key]); - } else { - PHPUnit::assertArrayHasKey($value, $responseData); - } - } - - return $this; - } - - /** - * Assert that the response JSON has the expected count of items at the given key. - * - * @param int $count - * @param string|null $key - * @return $this - */ - public function assertJsonCount(int $count, $key = null) - { - if ($key) { - PHPUnit::assertCount( - $count, data_get($this->json(), $key), - "Failed to assert that the response count matched the expected {$count}" - ); - - return $this; - } - - PHPUnit::assertCount($count, - $this->json(), - "Failed to assert that the response count matched the expected {$count}" - ); - - return $this; - } - - /** - * Assert that the response has the given JSON validation errors for the given keys. - * - * @param string|array $keys - * @return $this - */ - public function assertJsonValidationErrors($keys) - { - $errors = $this->json()['errors']; - - foreach (Arr::wrap($keys) as $key) { - PHPUnit::assertTrue( - isset($errors[$key]), - "Failed to find a validation error in the response for key: '{$key}'" - ); - } - - return $this; - } - - /** - * Assert that the response has no JSON validation errors for the given keys. - * - * @param string|array $keys - * @return $this - */ - public function assertJsonMissingValidationErrors($keys) - { - $json = $this->json(); - - if (! array_key_exists('errors', $json)) { - PHPUnit::assertArrayNotHasKey('errors', $json); - - return $this; - } - - $errors = $json['errors']; - - foreach (Arr::wrap($keys) as $key) { - PHPUnit::assertFalse( - isset($errors[$key]), - "Found unexpected validation error for key: '{$key}'" - ); - } - - return $this; - } - - /** - * Validate and return the decoded response JSON. - * - * @param string|null $key - * @return mixed - */ - public function decodeResponseJson($key = null) - { - $decodedResponse = json_decode($this->getContent(), true); - - if (is_null($decodedResponse) || $decodedResponse === false) { - if ($this->exception) { - throw $this->exception; - } else { - PHPUnit::fail('Invalid JSON was returned from the route.'); - } - } - - return data_get($decodedResponse, $key); - } - - /** - * Validate and return the decoded response JSON. - * - * @param string|null $key - * @return mixed - */ - public function json($key = null) - { - return $this->decodeResponseJson($key); - } - - /** - * Assert that the response view equals the given value. - * - * @param string $value - * @return $this - */ - public function assertViewIs($value) - { - $this->ensureResponseHasView(); - - PHPUnit::assertEquals($value, $this->original->getName()); - - return $this; - } - - /** - * Assert that the response view has a given piece of bound data. - * - * @param string|array $key - * @param mixed $value - * @return $this - */ - public function assertViewHas($key, $value = null) - { - if (is_array($key)) { - return $this->assertViewHasAll($key); - } - - $this->ensureResponseHasView(); - - if (is_null($value)) { - PHPUnit::assertArrayHasKey($key, $this->original->getData()); - } elseif ($value instanceof Closure) { - PHPUnit::assertTrue($value($this->original->$key)); - } else { - PHPUnit::assertEquals($value, $this->original->$key); - } - - return $this; - } - - /** - * Assert that the response view has a given list of bound data. - * - * @param array $bindings - * @return $this - */ - public function assertViewHasAll(array $bindings) - { - foreach ($bindings as $key => $value) { - if (is_int($key)) { - $this->assertViewHas($value); - } else { - $this->assertViewHas($key, $value); - } - } - - return $this; - } - - /** - * Assert that the response view is missing a piece of bound data. - * - * @param string $key - * @return $this - */ - public function assertViewMissing($key) - { - $this->ensureResponseHasView(); - - PHPUnit::assertArrayNotHasKey($key, $this->original->getData()); - - return $this; - } - - /** - * Ensure that the response has a view as its original content. - * - * @return $this - */ - protected function ensureResponseHasView() - { - if (! isset($this->original) || ! $this->original instanceof View) { - return PHPUnit::fail('The response is not a view.'); - } - - return $this; - } - - /** - * Assert that the session has a given value. - * - * @param string|array $key - * @param mixed $value - * @return $this - */ - public function assertSessionHas($key, $value = null) - { - if (is_array($key)) { - return $this->assertSessionHasAll($key); - } - - if (is_null($value)) { - PHPUnit::assertTrue( - $this->session()->has($key), - "Session is missing expected key [{$key}]." - ); - } else { - PHPUnit::assertEquals($value, $this->session()->get($key)); - } - - return $this; - } - - /** - * Assert that the session has a given list of values. - * - * @param array $bindings - * @return $this - */ - public function assertSessionHasAll(array $bindings) - { - foreach ($bindings as $key => $value) { - if (is_int($key)) { - $this->assertSessionHas($value); - } else { - $this->assertSessionHas($key, $value); - } - } - - return $this; - } - - /** - * Assert that the session has the given errors. - * - * @param string|array $keys - * @param mixed $format - * @param string $errorBag - * @return $this - */ - public function assertSessionHasErrors($keys = [], $format = null, $errorBag = 'default') - { - $this->assertSessionHas('errors'); - - $keys = (array) $keys; - - $errors = $this->session()->get('errors')->getBag($errorBag); - - foreach ($keys as $key => $value) { - if (is_int($key)) { - PHPUnit::assertTrue($errors->has($value), "Session missing error: $value"); - } else { - PHPUnit::assertContains($value, $errors->get($key, $format)); - } - } - - return $this; - } - - /** - * Assert that the session has no errors. - * - * @return $this - */ - public function assertSessionHasNoErrors() - { - $this->assertSessionMissing('errors'); - - return $this; - } - - /** - * Assert that the session has the given errors. - * - * @param string $errorBag - * @param string|array $keys - * @param mixed $format - * @return $this - */ - public function assertSessionHasErrorsIn($errorBag, $keys = [], $format = null) - { - return $this->assertSessionHasErrors($keys, $format, $errorBag); - } - - /** - * Assert that the session does not have a given key. - * - * @param string|array $key - * @return $this - */ - public function assertSessionMissing($key) - { - if (is_array($key)) { - foreach ($key as $value) { - $this->assertSessionMissing($value); - } - } else { - PHPUnit::assertFalse( - $this->session()->has($key), - "Session has unexpected key [{$key}]." - ); - } - - return $this; - } - - /** - * Get the current session store. - * - * @return \Illuminate\Session\Store - */ - protected function session() - { - return app('session.store'); - } - - /** - * Dump the content from the response. - * - * @return void - */ - public function dump() - { - $content = $this->getContent(); - - $json = json_decode($content); - - if (json_last_error() === JSON_ERROR_NONE) { - $content = $json; - } - - dd($content); - } - - /** - * Dynamically access base response parameters. - * - * @param string $key - * @return mixed - */ - public function __get($key) - { - return $this->baseResponse->{$key}; - } - - /** - * Proxy isset() checks to the underlying base response. - * - * @param string $key - * @return mixed - */ - public function __isset($key) - { - return isset($this->baseResponse->{$key}); - } - - /** - * Handle dynamic calls into macros or pass missing methods to the base response. - * - * @param string $method - * @param array $args - * @return mixed - */ - public function __call($method, $args) - { - if (static::hasMacro($method)) { - return $this->macroCall($method, $args); - } - - return $this->baseResponse->{$method}(...$args); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Testing/WithFaker.php b/vendor/laravel/framework/src/Illuminate/Foundation/Testing/WithFaker.php deleted file mode 100644 index 8eff5d41..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Testing/WithFaker.php +++ /dev/null @@ -1,47 +0,0 @@ -faker = $this->makeFaker(); - } - - /** - * Get the default Faker instance for a given locale. - * - * @param string $locale - * @return \Faker\Generator - */ - protected function faker($locale = null) - { - return is_null($locale) ? $this->faker : $this->makeFaker($locale); - } - - /** - * Create a Faker instance for the given locale. - * - * @param string $locale - * @return \Faker\Generator - */ - protected function makeFaker($locale = null) - { - return Factory::create($locale ?? Factory::DEFAULT_LOCALE); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Testing/WithoutEvents.php b/vendor/laravel/framework/src/Illuminate/Foundation/Testing/WithoutEvents.php deleted file mode 100644 index fa5df3ce..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Testing/WithoutEvents.php +++ /dev/null @@ -1,22 +0,0 @@ -withoutEvents(); - } else { - throw new Exception('Unable to disable events. ApplicationTrait not used.'); - } - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Testing/WithoutMiddleware.php b/vendor/laravel/framework/src/Illuminate/Foundation/Testing/WithoutMiddleware.php deleted file mode 100644 index 269b532d..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Testing/WithoutMiddleware.php +++ /dev/null @@ -1,22 +0,0 @@ -withoutMiddleware(); - } else { - throw new Exception('Unable to disable middleware. MakesHttpRequests trait not used.'); - } - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Validation/ValidatesRequests.php b/vendor/laravel/framework/src/Illuminate/Foundation/Validation/ValidatesRequests.php deleted file mode 100644 index 05d95918..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Validation/ValidatesRequests.php +++ /dev/null @@ -1,97 +0,0 @@ -getValidationFactory()->make($request->all(), $validator); - } - - $validator->validate(); - - return $this->extractInputFromRules($request, $validator->getRules()); - } - - /** - * Validate the given request with the given rules. - * - * @param \Illuminate\Http\Request $request - * @param array $rules - * @param array $messages - * @param array $customAttributes - * @return array - */ - public function validate(Request $request, array $rules, - array $messages = [], array $customAttributes = []) - { - $this->getValidationFactory() - ->make($request->all(), $rules, $messages, $customAttributes) - ->validate(); - - return $this->extractInputFromRules($request, $rules); - } - - /** - * Get the request input based on the given validation rules. - * - * @param \Illuminate\Http\Request $request - * @param array $rules - * @return array - */ - protected function extractInputFromRules(Request $request, array $rules) - { - return $request->only(collect($rules)->keys()->map(function ($rule) { - return explode('.', $rule)[0]; - })->unique()->toArray()); - } - - /** - * Validate the given request with the given rules. - * - * @param string $errorBag - * @param \Illuminate\Http\Request $request - * @param array $rules - * @param array $messages - * @param array $customAttributes - * @return array - * - * @throws \Illuminate\Validation\ValidationException - */ - public function validateWithBag($errorBag, Request $request, array $rules, - array $messages = [], array $customAttributes = []) - { - try { - return $this->validate($request, $rules, $messages, $customAttributes); - } catch (ValidationException $e) { - $e->errorBag = $errorBag; - - throw $e; - } - } - - /** - * Get a validation factory instance. - * - * @return \Illuminate\Contracts\Validation\Factory - */ - protected function getValidationFactory() - { - return app(Factory::class); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/helpers.php b/vendor/laravel/framework/src/Illuminate/Foundation/helpers.php deleted file mode 100644 index e009811d..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/helpers.php +++ /dev/null @@ -1,1001 +0,0 @@ -toResponse(request())); - } - - app()->abort($code, $message, $headers); - } -} - -if (! function_exists('abort_if')) { - /** - * Throw an HttpException with the given data if the given condition is true. - * - * @param bool $boolean - * @param int $code - * @param string $message - * @param array $headers - * @return void - * - * @throws \Symfony\Component\HttpKernel\Exception\HttpException - * @throws \Symfony\Component\HttpKernel\Exception\NotFoundHttpException - */ - function abort_if($boolean, $code, $message = '', array $headers = []) - { - if ($boolean) { - abort($code, $message, $headers); - } - } -} - -if (! function_exists('abort_unless')) { - /** - * Throw an HttpException with the given data unless the given condition is true. - * - * @param bool $boolean - * @param int $code - * @param string $message - * @param array $headers - * @return void - * - * @throws \Symfony\Component\HttpKernel\Exception\HttpException - * @throws \Symfony\Component\HttpKernel\Exception\NotFoundHttpException - */ - function abort_unless($boolean, $code, $message = '', array $headers = []) - { - if (! $boolean) { - abort($code, $message, $headers); - } - } -} - -if (! function_exists('action')) { - /** - * Generate the URL to a controller action. - * - * @param string $name - * @param mixed $parameters - * @param bool $absolute - * @return string - */ - function action($name, $parameters = [], $absolute = true) - { - return app('url')->action($name, $parameters, $absolute); - } -} - -if (! function_exists('app')) { - /** - * Get the available container instance. - * - * @param string $abstract - * @param array $parameters - * @return mixed|\Illuminate\Foundation\Application - */ - function app($abstract = null, array $parameters = []) - { - if (is_null($abstract)) { - return Container::getInstance(); - } - - return Container::getInstance()->make($abstract, $parameters); - } -} - -if (! function_exists('app_path')) { - /** - * Get the path to the application folder. - * - * @param string $path - * @return string - */ - function app_path($path = '') - { - return app('path').($path ? DIRECTORY_SEPARATOR.$path : $path); - } -} - -if (! function_exists('asset')) { - /** - * Generate an asset path for the application. - * - * @param string $path - * @param bool $secure - * @return string - */ - function asset($path, $secure = null) - { - return app('url')->asset($path, $secure); - } -} - -if (! function_exists('auth')) { - /** - * Get the available auth instance. - * - * @param string|null $guard - * @return \Illuminate\Contracts\Auth\Factory|\Illuminate\Contracts\Auth\Guard|\Illuminate\Contracts\Auth\StatefulGuard - */ - function auth($guard = null) - { - if (is_null($guard)) { - return app(AuthFactory::class); - } - - return app(AuthFactory::class)->guard($guard); - } -} - -if (! function_exists('back')) { - /** - * Create a new redirect response to the previous location. - * - * @param int $status - * @param array $headers - * @param mixed $fallback - * @return \Illuminate\Http\RedirectResponse - */ - function back($status = 302, $headers = [], $fallback = false) - { - return app('redirect')->back($status, $headers, $fallback); - } -} - -if (! function_exists('base_path')) { - /** - * Get the path to the base of the install. - * - * @param string $path - * @return string - */ - function base_path($path = '') - { - return app()->basePath().($path ? DIRECTORY_SEPARATOR.$path : $path); - } -} - -if (! function_exists('bcrypt')) { - /** - * Hash the given value against the bcrypt algorithm. - * - * @param string $value - * @param array $options - * @return string - */ - function bcrypt($value, $options = []) - { - return app('hash')->driver('bcrypt')->make($value, $options); - } -} - -if (! function_exists('broadcast')) { - /** - * Begin broadcasting an event. - * - * @param mixed|null $event - * @return \Illuminate\Broadcasting\PendingBroadcast - */ - function broadcast($event = null) - { - return app(BroadcastFactory::class)->event($event); - } -} - -if (! function_exists('cache')) { - /** - * Get / set the specified cache value. - * - * If an array is passed, we'll assume you want to put to the cache. - * - * @param dynamic key|key,default|data,expiration|null - * @return mixed|\Illuminate\Cache\CacheManager - * - * @throws \Exception - */ - function cache() - { - $arguments = func_get_args(); - - if (empty($arguments)) { - return app('cache'); - } - - if (is_string($arguments[0])) { - return app('cache')->get($arguments[0], $arguments[1] ?? null); - } - - if (! is_array($arguments[0])) { - throw new Exception( - 'When setting a value in the cache, you must pass an array of key / value pairs.' - ); - } - - if (! isset($arguments[1])) { - throw new Exception( - 'You must specify an expiration time when setting a value in the cache.' - ); - } - - return app('cache')->put(key($arguments[0]), reset($arguments[0]), $arguments[1]); - } -} - -if (! function_exists('config')) { - /** - * Get / set the specified configuration value. - * - * If an array is passed as the key, we will assume you want to set an array of values. - * - * @param array|string $key - * @param mixed $default - * @return mixed|\Illuminate\Config\Repository - */ - function config($key = null, $default = null) - { - if (is_null($key)) { - return app('config'); - } - - if (is_array($key)) { - return app('config')->set($key); - } - - return app('config')->get($key, $default); - } -} - -if (! function_exists('config_path')) { - /** - * Get the configuration path. - * - * @param string $path - * @return string - */ - function config_path($path = '') - { - return app()->make('path.config').($path ? DIRECTORY_SEPARATOR.$path : $path); - } -} - -if (! function_exists('cookie')) { - /** - * Create a new cookie instance. - * - * @param string $name - * @param string $value - * @param int $minutes - * @param string $path - * @param string $domain - * @param bool $secure - * @param bool $httpOnly - * @param bool $raw - * @param string|null $sameSite - * @return \Illuminate\Cookie\CookieJar|\Symfony\Component\HttpFoundation\Cookie - */ - function cookie($name = null, $value = null, $minutes = 0, $path = null, $domain = null, $secure = false, $httpOnly = true, $raw = false, $sameSite = null) - { - $cookie = app(CookieFactory::class); - - if (is_null($name)) { - return $cookie; - } - - return $cookie->make($name, $value, $minutes, $path, $domain, $secure, $httpOnly, $raw, $sameSite); - } -} - -if (! function_exists('csrf_field')) { - /** - * Generate a CSRF token form field. - * - * @return \Illuminate\Support\HtmlString - */ - function csrf_field() - { - return new HtmlString(''); - } -} - -if (! function_exists('csrf_token')) { - /** - * Get the CSRF token value. - * - * @return string - * - * @throws \RuntimeException - */ - function csrf_token() - { - $session = app('session'); - - if (isset($session)) { - return $session->token(); - } - - throw new RuntimeException('Application session store not set.'); - } -} - -if (! function_exists('database_path')) { - /** - * Get the database path. - * - * @param string $path - * @return string - */ - function database_path($path = '') - { - return app()->databasePath($path); - } -} - -if (! function_exists('decrypt')) { - /** - * Decrypt the given value. - * - * @param string $value - * @return mixed - */ - function decrypt($value) - { - return app('encrypter')->decrypt($value); - } -} - -if (! function_exists('dispatch')) { - /** - * Dispatch a job to its appropriate handler. - * - * @param mixed $job - * @return \Illuminate\Foundation\Bus\PendingDispatch - */ - function dispatch($job) - { - return new PendingDispatch($job); - } -} - -if (! function_exists('dispatch_now')) { - /** - * Dispatch a command to its appropriate handler in the current process. - * - * @param mixed $job - * @param mixed $handler - * @return mixed - */ - function dispatch_now($job, $handler = null) - { - return app(Dispatcher::class)->dispatchNow($job, $handler); - } -} - -if (! function_exists('elixir')) { - /** - * Get the path to a versioned Elixir file. - * - * @param string $file - * @param string $buildDirectory - * @return string - * - * @throws \InvalidArgumentException - */ - function elixir($file, $buildDirectory = 'build') - { - static $manifest = []; - static $manifestPath; - - if (empty($manifest) || $manifestPath !== $buildDirectory) { - $path = public_path($buildDirectory.'/rev-manifest.json'); - - if (file_exists($path)) { - $manifest = json_decode(file_get_contents($path), true); - $manifestPath = $buildDirectory; - } - } - - $file = ltrim($file, '/'); - - if (isset($manifest[$file])) { - return '/'.trim($buildDirectory.'/'.$manifest[$file], '/'); - } - - $unversioned = public_path($file); - - if (file_exists($unversioned)) { - return '/'.trim($file, '/'); - } - - throw new InvalidArgumentException("File {$file} not defined in asset manifest."); - } -} - -if (! function_exists('encrypt')) { - /** - * Encrypt the given value. - * - * @param mixed $value - * @return string - */ - function encrypt($value) - { - return app('encrypter')->encrypt($value); - } -} - -if (! function_exists('event')) { - /** - * Dispatch an event and call the listeners. - * - * @param string|object $event - * @param mixed $payload - * @param bool $halt - * @return array|null - */ - function event(...$args) - { - return app('events')->dispatch(...$args); - } -} - -if (! function_exists('factory')) { - /** - * Create a model factory builder for a given class, name, and amount. - * - * @param dynamic class|class,name|class,amount|class,name,amount - * @return \Illuminate\Database\Eloquent\FactoryBuilder - */ - function factory() - { - $factory = app(EloquentFactory::class); - - $arguments = func_get_args(); - - if (isset($arguments[1]) && is_string($arguments[1])) { - return $factory->of($arguments[0], $arguments[1])->times($arguments[2] ?? null); - } elseif (isset($arguments[1])) { - return $factory->of($arguments[0])->times($arguments[1]); - } - - return $factory->of($arguments[0]); - } -} - -if (! function_exists('info')) { - /** - * Write some information to the log. - * - * @param string $message - * @param array $context - * @return void - */ - function info($message, $context = []) - { - app('log')->info($message, $context); - } -} - -if (! function_exists('logger')) { - /** - * Log a debug message to the logs. - * - * @param string $message - * @param array $context - * @return \Illuminate\Log\LogManager|null - */ - function logger($message = null, array $context = []) - { - if (is_null($message)) { - return app('log'); - } - - return app('log')->debug($message, $context); - } -} - -if (! function_exists('logs')) { - /** - * Get a log driver instance. - * - * @param string $driver - * @return \Illuminate\Log\LogManager|\Psr\Log\LoggerInterface - */ - function logs($driver = null) - { - return $driver ? app('log')->driver($driver) : app('log'); - } -} - -if (! function_exists('method_field')) { - /** - * Generate a form field to spoof the HTTP verb used by forms. - * - * @param string $method - * @return \Illuminate\Support\HtmlString - */ - function method_field($method) - { - return new HtmlString(''); - } -} - -if (! function_exists('mix')) { - /** - * Get the path to a versioned Mix file. - * - * @param string $path - * @param string $manifestDirectory - * @return \Illuminate\Support\HtmlString|string - * - * @throws \Exception - */ - function mix($path, $manifestDirectory = '') - { - static $manifests = []; - - if (! Str::startsWith($path, '/')) { - $path = "/{$path}"; - } - - if ($manifestDirectory && ! Str::startsWith($manifestDirectory, '/')) { - $manifestDirectory = "/{$manifestDirectory}"; - } - - if (file_exists(public_path($manifestDirectory.'/hot'))) { - $url = file_get_contents(public_path($manifestDirectory.'/hot')); - - if (Str::startsWith($url, ['http://', 'https://'])) { - return new HtmlString(Str::after($url, ':').$path); - } - - return new HtmlString("//localhost:8080{$path}"); - } - - $manifestPath = public_path($manifestDirectory.'/mix-manifest.json'); - - if (! isset($manifests[$manifestPath])) { - if (! file_exists($manifestPath)) { - throw new Exception('The Mix manifest does not exist.'); - } - - $manifests[$manifestPath] = json_decode(file_get_contents($manifestPath), true); - } - - $manifest = $manifests[$manifestPath]; - - if (! isset($manifest[$path])) { - report(new Exception("Unable to locate Mix file: {$path}.")); - - if (! app('config')->get('app.debug')) { - return $path; - } - } - - return new HtmlString($manifestDirectory.$manifest[$path]); - } -} - -if (! function_exists('now')) { - /** - * Create a new Carbon instance for the current time. - * - * @param \DateTimeZone|string|null $tz - * @return \Illuminate\Support\Carbon - */ - function now($tz = null) - { - return Carbon::now($tz); - } -} - -if (! function_exists('old')) { - /** - * Retrieve an old input item. - * - * @param string $key - * @param mixed $default - * @return mixed - */ - function old($key = null, $default = null) - { - return app('request')->old($key, $default); - } -} - -if (! function_exists('policy')) { - /** - * Get a policy instance for a given class. - * - * @param object|string $class - * @return mixed - * - * @throws \InvalidArgumentException - */ - function policy($class) - { - return app(Gate::class)->getPolicyFor($class); - } -} - -if (! function_exists('public_path')) { - /** - * Get the path to the public folder. - * - * @param string $path - * @return string - */ - function public_path($path = '') - { - return app()->make('path.public').($path ? DIRECTORY_SEPARATOR.ltrim($path, DIRECTORY_SEPARATOR) : $path); - } -} - -if (! function_exists('redirect')) { - /** - * Get an instance of the redirector. - * - * @param string|null $to - * @param int $status - * @param array $headers - * @param bool $secure - * @return \Illuminate\Routing\Redirector|\Illuminate\Http\RedirectResponse - */ - function redirect($to = null, $status = 302, $headers = [], $secure = null) - { - if (is_null($to)) { - return app('redirect'); - } - - return app('redirect')->to($to, $status, $headers, $secure); - } -} - -if (! function_exists('report')) { - /** - * Report an exception. - * - * @param \Exception $exception - * @return void - */ - function report($exception) - { - if ($exception instanceof Throwable && - ! $exception instanceof Exception) { - $exception = new FatalThrowableError($exception); - } - - app(ExceptionHandler::class)->report($exception); - } -} - -if (! function_exists('request')) { - /** - * Get an instance of the current request or an input item from the request. - * - * @param array|string $key - * @param mixed $default - * @return \Illuminate\Http\Request|string|array - */ - function request($key = null, $default = null) - { - if (is_null($key)) { - return app('request'); - } - - if (is_array($key)) { - return app('request')->only($key); - } - - $value = app('request')->__get($key); - - return is_null($value) ? value($default) : $value; - } -} - -if (! function_exists('rescue')) { - /** - * Catch a potential exception and return a default value. - * - * @param callable $callback - * @param mixed $rescue - * @return mixed - */ - function rescue(callable $callback, $rescue = null) - { - try { - return $callback(); - } catch (Throwable $e) { - report($e); - - return value($rescue); - } - } -} - -if (! function_exists('resolve')) { - /** - * Resolve a service from the container. - * - * @param string $name - * @return mixed - */ - function resolve($name) - { - return app($name); - } -} - -if (! function_exists('resource_path')) { - /** - * Get the path to the resources folder. - * - * @param string $path - * @return string - */ - function resource_path($path = '') - { - return app()->resourcePath($path); - } -} - -if (! function_exists('response')) { - /** - * Return a new response from the application. - * - * @param string|array $content - * @param int $status - * @param array $headers - * @return \Symfony\Component\HttpFoundation\Response|\Illuminate\Contracts\Routing\ResponseFactory - */ - function response($content = '', $status = 200, array $headers = []) - { - $factory = app(ResponseFactory::class); - - if (func_num_args() === 0) { - return $factory; - } - - return $factory->make($content, $status, $headers); - } -} - -if (! function_exists('route')) { - /** - * Generate the URL to a named route. - * - * @param array|string $name - * @param mixed $parameters - * @param bool $absolute - * @return string - */ - function route($name, $parameters = [], $absolute = true) - { - return app('url')->route($name, $parameters, $absolute); - } -} - -if (! function_exists('secure_asset')) { - /** - * Generate an asset path for the application. - * - * @param string $path - * @return string - */ - function secure_asset($path) - { - return asset($path, true); - } -} - -if (! function_exists('secure_url')) { - /** - * Generate a HTTPS url for the application. - * - * @param string $path - * @param mixed $parameters - * @return string - */ - function secure_url($path, $parameters = []) - { - return url($path, $parameters, true); - } -} - -if (! function_exists('session')) { - /** - * Get / set the specified session value. - * - * If an array is passed as the key, we will assume you want to set an array of values. - * - * @param array|string $key - * @param mixed $default - * @return mixed|\Illuminate\Session\Store|\Illuminate\Session\SessionManager - */ - function session($key = null, $default = null) - { - if (is_null($key)) { - return app('session'); - } - - if (is_array($key)) { - return app('session')->put($key); - } - - return app('session')->get($key, $default); - } -} - -if (! function_exists('storage_path')) { - /** - * Get the path to the storage folder. - * - * @param string $path - * @return string - */ - function storage_path($path = '') - { - return app('path.storage').($path ? DIRECTORY_SEPARATOR.$path : $path); - } -} - -if (! function_exists('today')) { - /** - * Create a new Carbon instance for the current date. - * - * @param \DateTimeZone|string|null $tz - * @return \Illuminate\Support\Carbon - */ - function today($tz = null) - { - return Carbon::today($tz); - } -} - -if (! function_exists('trans')) { - /** - * Translate the given message. - * - * @param string $key - * @param array $replace - * @param string $locale - * @return \Illuminate\Contracts\Translation\Translator|string|array|null - */ - function trans($key = null, $replace = [], $locale = null) - { - if (is_null($key)) { - return app('translator'); - } - - return app('translator')->trans($key, $replace, $locale); - } -} - -if (! function_exists('trans_choice')) { - /** - * Translates the given message based on a count. - * - * @param string $key - * @param int|array|\Countable $number - * @param array $replace - * @param string $locale - * @return string - */ - function trans_choice($key, $number, array $replace = [], $locale = null) - { - return app('translator')->transChoice($key, $number, $replace, $locale); - } -} - -if (! function_exists('__')) { - /** - * Translate the given message. - * - * @param string $key - * @param array $replace - * @param string $locale - * @return string|array|null - */ - function __($key, $replace = [], $locale = null) - { - return app('translator')->getFromJson($key, $replace, $locale); - } -} - -if (! function_exists('url')) { - /** - * Generate a url for the application. - * - * @param string $path - * @param mixed $parameters - * @param bool $secure - * @return \Illuminate\Contracts\Routing\UrlGenerator|string - */ - function url($path = null, $parameters = [], $secure = null) - { - if (is_null($path)) { - return app(UrlGenerator::class); - } - - return app(UrlGenerator::class)->to($path, $parameters, $secure); - } -} - -if (! function_exists('validator')) { - /** - * Create a new Validator instance. - * - * @param array $data - * @param array $rules - * @param array $messages - * @param array $customAttributes - * @return \Illuminate\Contracts\Validation\Validator - */ - function validator(array $data = [], array $rules = [], array $messages = [], array $customAttributes = []) - { - $factory = app(ValidationFactory::class); - - if (func_num_args() === 0) { - return $factory; - } - - return $factory->make($data, $rules, $messages, $customAttributes); - } -} - -if (! function_exists('view')) { - /** - * Get the evaluated view contents for the given view. - * - * @param string $view - * @param array $data - * @param array $mergeData - * @return \Illuminate\View\View|\Illuminate\Contracts\View\Factory - */ - function view($view = null, $data = [], $mergeData = []) - { - $factory = app(ViewFactory::class); - - if (func_num_args() === 0) { - return $factory; - } - - return $factory->make($view, $data, $mergeData); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/stubs/facade.stub b/vendor/laravel/framework/src/Illuminate/Foundation/stubs/facade.stub deleted file mode 100644 index aadbe746..00000000 --- a/vendor/laravel/framework/src/Illuminate/Foundation/stubs/facade.stub +++ /dev/null @@ -1,21 +0,0 @@ -time = $options['time'] ?? $this->time; - $this->memory = $options['memory'] ?? $this->memory; - $this->threads = $options['threads'] ?? $this->threads; - } - - /** - * Hash the given value. - * - * @param string $value - * @param array $options - * @return string - * - * @throws \RuntimeException - */ - public function make($value, array $options = []) - { - $hash = password_hash($value, PASSWORD_ARGON2I, [ - 'memory_cost' => $this->memory($options), - 'time_cost' => $this->time($options), - 'threads' => $this->threads($options), - ]); - - if ($hash === false) { - throw new RuntimeException('Argon2 hashing not supported.'); - } - - return $hash; - } - - /** - * Check if the given hash has been hashed using the given options. - * - * @param string $hashedValue - * @param array $options - * @return bool - */ - public function needsRehash($hashedValue, array $options = []) - { - return password_needs_rehash($hashedValue, PASSWORD_ARGON2I, [ - 'memory_cost' => $this->memory($options), - 'time_cost' => $this->time($options), - 'threads' => $this->threads($options), - ]); - } - - /** - * Set the default password memory factor. - * - * @param int $memory - * @return $this - */ - public function setMemory(int $memory) - { - $this->memory = $memory; - - return $this; - } - - /** - * Set the default password timing factor. - * - * @param int $time - * @return $this - */ - public function setTime(int $time) - { - $this->time = $time; - - return $this; - } - - /** - * Set the default password threads factor. - * - * @param int $threads - * @return $this - */ - public function setThreads(int $threads) - { - $this->threads = $threads; - - return $this; - } - - /** - * Extract the memory cost value from the options array. - * - * @param array $options - * @return int - */ - protected function memory(array $options) - { - return $options['memory'] ?? $this->memory; - } - - /** - * Extract the time cost value from the options array. - * - * @param array $options - * @return int - */ - protected function time(array $options) - { - return $options['time'] ?? $this->time; - } - - /** - * Extract the threads value from the options array. - * - * @param array $options - * @return int - */ - protected function threads(array $options) - { - return $options['threads'] ?? $this->threads; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Hashing/BcryptHasher.php b/vendor/laravel/framework/src/Illuminate/Hashing/BcryptHasher.php deleted file mode 100755 index d3848631..00000000 --- a/vendor/laravel/framework/src/Illuminate/Hashing/BcryptHasher.php +++ /dev/null @@ -1,87 +0,0 @@ -rounds = $options['rounds'] ?? $this->rounds; - } - - /** - * Hash the given value. - * - * @param string $value - * @param array $options - * @return string - * - * @throws \RuntimeException - */ - public function make($value, array $options = []) - { - $hash = password_hash($value, PASSWORD_BCRYPT, [ - 'cost' => $this->cost($options), - ]); - - if ($hash === false) { - throw new RuntimeException('Bcrypt hashing not supported.'); - } - - return $hash; - } - - /** - * Check if the given hash has been hashed using the given options. - * - * @param string $hashedValue - * @param array $options - * @return bool - */ - public function needsRehash($hashedValue, array $options = []) - { - return password_needs_rehash($hashedValue, PASSWORD_BCRYPT, [ - 'cost' => $this->cost($options), - ]); - } - - /** - * Set the default password work factor. - * - * @param int $rounds - * @return $this - */ - public function setRounds($rounds) - { - $this->rounds = (int) $rounds; - - return $this; - } - - /** - * Extract the cost value from the options array. - * - * @param array $options - * @return int - */ - protected function cost(array $options = []) - { - return $options['rounds'] ?? $this->rounds; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Hashing/HashManager.php b/vendor/laravel/framework/src/Illuminate/Hashing/HashManager.php deleted file mode 100644 index 9b96617c..00000000 --- a/vendor/laravel/framework/src/Illuminate/Hashing/HashManager.php +++ /dev/null @@ -1,87 +0,0 @@ -app['config']['hashing.bcrypt'] ?? []); - } - - /** - * Create an instance of the Argon2 hash Driver. - * - * @return \Illuminate\Hashing\ArgonHasher - */ - public function createArgonDriver() - { - return new ArgonHasher($this->app['config']['hashing.argon'] ?? []); - } - - /** - * Get information about the given hashed value. - * - * @param string $hashedValue - * @return array - */ - public function info($hashedValue) - { - return $this->driver()->info($hashedValue); - } - - /** - * Hash the given value. - * - * @param string $value - * @param array $options - * @return string - */ - public function make($value, array $options = []) - { - return $this->driver()->make($value, $options); - } - - /** - * Check the given plain value against a hash. - * - * @param string $value - * @param string $hashedValue - * @param array $options - * @return bool - */ - public function check($value, $hashedValue, array $options = []) - { - return $this->driver()->check($value, $hashedValue, $options); - } - - /** - * Check if the given hash has been hashed using the given options. - * - * @param string $hashedValue - * @param array $options - * @return bool - */ - public function needsRehash($hashedValue, array $options = []) - { - return $this->driver()->needsRehash($hashedValue, $options); - } - - /** - * Get the default driver name. - * - * @return string - */ - public function getDefaultDriver() - { - return $this->app['config']['hashing.driver'] ?? 'bcrypt'; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Hashing/HashServiceProvider.php b/vendor/laravel/framework/src/Illuminate/Hashing/HashServiceProvider.php deleted file mode 100755 index 435e54b0..00000000 --- a/vendor/laravel/framework/src/Illuminate/Hashing/HashServiceProvider.php +++ /dev/null @@ -1,41 +0,0 @@ -app->singleton('hash', function ($app) { - return new HashManager($app); - }); - - $this->app->singleton('hash.driver', function ($app) { - return $app['hash']->driver(); - }); - } - - /** - * Get the services provided by the provider. - * - * @return array - */ - public function provides() - { - return ['hash', 'hash.driver']; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Hashing/composer.json b/vendor/laravel/framework/src/Illuminate/Hashing/composer.json deleted file mode 100755 index f7dae2f4..00000000 --- a/vendor/laravel/framework/src/Illuminate/Hashing/composer.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "name": "illuminate/hashing", - "description": "The Illuminate Hashing package.", - "license": "MIT", - "homepage": "https://laravel.com", - "support": { - "issues": "https://github.com/laravel/framework/issues", - "source": "https://github.com/laravel/framework" - }, - "authors": [ - { - "name": "Taylor Otwell", - "email": "taylor@laravel.com" - } - ], - "require": { - "php": "^7.1.3", - "illuminate/contracts": "5.6.*", - "illuminate/support": "5.6.*" - }, - "autoload": { - "psr-4": { - "Illuminate\\Hashing\\": "" - } - }, - "extra": { - "branch-alias": { - "dev-master": "5.6-dev" - } - }, - "config": { - "sort-packages": true - }, - "minimum-stability": "dev" -} diff --git a/vendor/laravel/framework/src/Illuminate/Http/Concerns/InteractsWithContentTypes.php b/vendor/laravel/framework/src/Illuminate/Http/Concerns/InteractsWithContentTypes.php deleted file mode 100644 index be760a26..00000000 --- a/vendor/laravel/framework/src/Illuminate/Http/Concerns/InteractsWithContentTypes.php +++ /dev/null @@ -1,171 +0,0 @@ -header('CONTENT_TYPE'), ['/json', '+json']); - } - - /** - * Determine if the current request probably expects a JSON response. - * - * @return bool - */ - public function expectsJson() - { - return ($this->ajax() && ! $this->pjax() && $this->acceptsAnyContentType()) || $this->wantsJson(); - } - - /** - * Determine if the current request is asking for JSON. - * - * @return bool - */ - public function wantsJson() - { - $acceptable = $this->getAcceptableContentTypes(); - - return isset($acceptable[0]) && Str::contains($acceptable[0], ['/json', '+json']); - } - - /** - * Determines whether the current requests accepts a given content type. - * - * @param string|array $contentTypes - * @return bool - */ - public function accepts($contentTypes) - { - $accepts = $this->getAcceptableContentTypes(); - - if (count($accepts) === 0) { - return true; - } - - $types = (array) $contentTypes; - - foreach ($accepts as $accept) { - if ($accept === '*/*' || $accept === '*') { - return true; - } - - foreach ($types as $type) { - if ($this->matchesType($accept, $type) || $accept === strtok($type, '/').'/*') { - return true; - } - } - } - - return false; - } - - /** - * Return the most suitable content type from the given array based on content negotiation. - * - * @param string|array $contentTypes - * @return string|null - */ - public function prefers($contentTypes) - { - $accepts = $this->getAcceptableContentTypes(); - - $contentTypes = (array) $contentTypes; - - foreach ($accepts as $accept) { - if (in_array($accept, ['*/*', '*'])) { - return $contentTypes[0]; - } - - foreach ($contentTypes as $contentType) { - $type = $contentType; - - if (! is_null($mimeType = $this->getMimeType($contentType))) { - $type = $mimeType; - } - - if ($this->matchesType($type, $accept) || $accept === strtok($type, '/').'/*') { - return $contentType; - } - } - } - } - - /** - * Determine if the current request accepts any content type. - * - * @return bool - */ - public function acceptsAnyContentType() - { - $acceptable = $this->getAcceptableContentTypes(); - - return count($acceptable) === 0 || ( - isset($acceptable[0]) && ($acceptable[0] === '*/*' || $acceptable[0] === '*') - ); - } - - /** - * Determines whether a request accepts JSON. - * - * @return bool - */ - public function acceptsJson() - { - return $this->accepts('application/json'); - } - - /** - * Determines whether a request accepts HTML. - * - * @return bool - */ - public function acceptsHtml() - { - return $this->accepts('text/html'); - } - - /** - * Get the data format expected in the response. - * - * @param string $default - * @return string - */ - public function format($default = 'html') - { - foreach ($this->getAcceptableContentTypes() as $type) { - if ($format = $this->getFormat($type)) { - return $format; - } - } - - return $default; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Http/Concerns/InteractsWithFlashData.php b/vendor/laravel/framework/src/Illuminate/Http/Concerns/InteractsWithFlashData.php deleted file mode 100644 index 221d9387..00000000 --- a/vendor/laravel/framework/src/Illuminate/Http/Concerns/InteractsWithFlashData.php +++ /dev/null @@ -1,64 +0,0 @@ -hasSession() ? $this->session()->getOldInput($key, $default) : $default; - } - - /** - * Flash the input for the current request to the session. - * - * @return void - */ - public function flash() - { - $this->session()->flashInput($this->input()); - } - - /** - * Flash only some of the input to the session. - * - * @param array|mixed $keys - * @return void - */ - public function flashOnly($keys) - { - $this->session()->flashInput( - $this->only(is_array($keys) ? $keys : func_get_args()) - ); - } - - /** - * Flash only some of the input to the session. - * - * @param array|mixed $keys - * @return void - */ - public function flashExcept($keys) - { - $this->session()->flashInput( - $this->except(is_array($keys) ? $keys : func_get_args()) - ); - } - - /** - * Flush all of the old input from the session. - * - * @return void - */ - public function flush() - { - $this->session()->flashInput([]); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Http/Concerns/InteractsWithInput.php b/vendor/laravel/framework/src/Illuminate/Http/Concerns/InteractsWithInput.php deleted file mode 100644 index 11f3c3ed..00000000 --- a/vendor/laravel/framework/src/Illuminate/Http/Concerns/InteractsWithInput.php +++ /dev/null @@ -1,396 +0,0 @@ -retrieveItem('server', $key, $default); - } - - /** - * Determine if a header is set on the request. - * - * @param string $key - * @return bool - */ - public function hasHeader($key) - { - return ! is_null($this->header($key)); - } - - /** - * Retrieve a header from the request. - * - * @param string $key - * @param string|array|null $default - * @return string|array - */ - public function header($key = null, $default = null) - { - return $this->retrieveItem('headers', $key, $default); - } - - /** - * Get the bearer token from the request headers. - * - * @return string|null - */ - public function bearerToken() - { - $header = $this->header('Authorization', ''); - - if (Str::startsWith($header, 'Bearer ')) { - return Str::substr($header, 7); - } - } - - /** - * Determine if the request contains a given input item key. - * - * @param string|array $key - * @return bool - */ - public function exists($key) - { - return $this->has($key); - } - - /** - * Determine if the request contains a given input item key. - * - * @param string|array $key - * @return bool - */ - public function has($key) - { - $keys = is_array($key) ? $key : func_get_args(); - - $input = $this->all(); - - foreach ($keys as $value) { - if (! Arr::has($input, $value)) { - return false; - } - } - - return true; - } - - /** - * Determine if the request contains any of the given inputs. - * - * @param string|array $keys - * @return bool - */ - public function hasAny($keys) - { - $keys = is_array($keys) ? $keys : func_get_args(); - - $input = $this->all(); - - foreach ($keys as $key) { - if (Arr::has($input, $key)) { - return true; - } - } - - return false; - } - - /** - * Determine if the request contains a non-empty value for an input item. - * - * @param string|array $key - * @return bool - */ - public function filled($key) - { - $keys = is_array($key) ? $key : func_get_args(); - - foreach ($keys as $value) { - if ($this->isEmptyString($value)) { - return false; - } - } - - return true; - } - - /** - * Determine if the request contains a non-empty value for any of the given inputs. - * - * @param string|array $keys - * @return bool - */ - public function anyFilled($keys) - { - $keys = is_array($keys) ? $keys : func_get_args(); - - foreach ($keys as $key) { - if ($this->filled($key)) { - return true; - } - } - - return false; - } - - /** - * Determine if the given input key is an empty string for "has". - * - * @param string $key - * @return bool - */ - protected function isEmptyString($key) - { - $value = $this->input($key); - - return ! is_bool($value) && ! is_array($value) && trim((string) $value) === ''; - } - - /** - * Get the keys for all of the input and files. - * - * @return array - */ - public function keys() - { - return array_merge(array_keys($this->input()), $this->files->keys()); - } - - /** - * Get all of the input and files for the request. - * - * @param array|mixed $keys - * @return array - */ - public function all($keys = null) - { - $input = array_replace_recursive($this->input(), $this->allFiles()); - - if (! $keys) { - return $input; - } - - $results = []; - - foreach (is_array($keys) ? $keys : func_get_args() as $key) { - Arr::set($results, $key, Arr::get($input, $key)); - } - - return $results; - } - - /** - * Retrieve an input item from the request. - * - * @param string|null $key - * @param string|array|null $default - * @return string|array|null - */ - public function input($key = null, $default = null) - { - return data_get( - $this->getInputSource()->all() + $this->query->all(), $key, $default - ); - } - - /** - * Get a subset containing the provided keys with values from the input data. - * - * @param array|mixed $keys - * @return array - */ - public function only($keys) - { - $results = []; - - $input = $this->all(); - - $placeholder = new stdClass; - - foreach (is_array($keys) ? $keys : func_get_args() as $key) { - $value = data_get($input, $key, $placeholder); - - if ($value !== $placeholder) { - Arr::set($results, $key, $value); - } - } - - return $results; - } - - /** - * Get all of the input except for a specified array of items. - * - * @param array|mixed $keys - * @return array - */ - public function except($keys) - { - $keys = is_array($keys) ? $keys : func_get_args(); - - $results = $this->all(); - - Arr::forget($results, $keys); - - return $results; - } - - /** - * Retrieve a query string item from the request. - * - * @param string $key - * @param string|array|null $default - * @return string|array - */ - public function query($key = null, $default = null) - { - return $this->retrieveItem('query', $key, $default); - } - - /** - * Retrieve a request payload item from the request. - * - * @param string $key - * @param string|array|null $default - * - * @return string|array - */ - public function post($key = null, $default = null) - { - return $this->retrieveItem('request', $key, $default); - } - - /** - * Determine if a cookie is set on the request. - * - * @param string $key - * @return bool - */ - public function hasCookie($key) - { - return ! is_null($this->cookie($key)); - } - - /** - * Retrieve a cookie from the request. - * - * @param string $key - * @param string|array|null $default - * @return string|array - */ - public function cookie($key = null, $default = null) - { - return $this->retrieveItem('cookies', $key, $default); - } - - /** - * Get an array of all of the files on the request. - * - * @return array - */ - public function allFiles() - { - $files = $this->files->all(); - - return $this->convertedFiles - ? $this->convertedFiles - : $this->convertedFiles = $this->convertUploadedFiles($files); - } - - /** - * Convert the given array of Symfony UploadedFiles to custom Laravel UploadedFiles. - * - * @param array $files - * @return array - */ - protected function convertUploadedFiles(array $files) - { - return array_map(function ($file) { - if (is_null($file) || (is_array($file) && empty(array_filter($file)))) { - return $file; - } - - return is_array($file) - ? $this->convertUploadedFiles($file) - : UploadedFile::createFromBase($file); - }, $files); - } - - /** - * Determine if the uploaded data contains a file. - * - * @param string $key - * @return bool - */ - public function hasFile($key) - { - if (! is_array($files = $this->file($key))) { - $files = [$files]; - } - - foreach ($files as $file) { - if ($this->isValidFile($file)) { - return true; - } - } - - return false; - } - - /** - * Check that the given file is a valid file instance. - * - * @param mixed $file - * @return bool - */ - protected function isValidFile($file) - { - return $file instanceof SplFileInfo && $file->getPath() !== ''; - } - - /** - * Retrieve a file from the request. - * - * @param string $key - * @param mixed $default - * @return \Illuminate\Http\UploadedFile|array|null - */ - public function file($key = null, $default = null) - { - return data_get($this->allFiles(), $key, $default); - } - - /** - * Retrieve a parameter item from a given source. - * - * @param string $source - * @param string $key - * @param string|array|null $default - * @return string|array - */ - protected function retrieveItem($source, $key, $default) - { - if (is_null($key)) { - return $this->$source->all(); - } - - return $this->$source->get($key, $default); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Http/Exceptions/HttpResponseException.php b/vendor/laravel/framework/src/Illuminate/Http/Exceptions/HttpResponseException.php deleted file mode 100644 index b27052f0..00000000 --- a/vendor/laravel/framework/src/Illuminate/Http/Exceptions/HttpResponseException.php +++ /dev/null @@ -1,37 +0,0 @@ -response = $response; - } - - /** - * Get the underlying response instance. - * - * @return \Symfony\Component\HttpFoundation\Response - */ - public function getResponse() - { - return $this->response; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Http/Exceptions/PostTooLargeException.php b/vendor/laravel/framework/src/Illuminate/Http/Exceptions/PostTooLargeException.php deleted file mode 100644 index 640b8ec7..00000000 --- a/vendor/laravel/framework/src/Illuminate/Http/Exceptions/PostTooLargeException.php +++ /dev/null @@ -1,23 +0,0 @@ -getRealPath(); - } - - /** - * Get the file's extension. - * - * @return string - */ - public function extension() - { - return $this->guessExtension(); - } - - /** - * Get the file's extension supplied by the client. - * - * @return string - */ - public function clientExtension() - { - return $this->guessClientExtension(); - } - - /** - * Get a filename for the file. - * - * @param string $path - * @return string - */ - public function hashName($path = null) - { - if ($path) { - $path = rtrim($path, '/').'/'; - } - - $hash = $this->hashName ?: $this->hashName = Str::random(40); - - return $path.$hash.'.'.$this->guessExtension(); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Http/JsonResponse.php b/vendor/laravel/framework/src/Illuminate/Http/JsonResponse.php deleted file mode 100755 index 9baf417b..00000000 --- a/vendor/laravel/framework/src/Illuminate/Http/JsonResponse.php +++ /dev/null @@ -1,121 +0,0 @@ -encodingOptions = $options; - - parent::__construct($data, $status, $headers); - } - - /** - * Sets the JSONP callback. - * - * @param string|null $callback - * @return $this - */ - public function withCallback($callback = null) - { - return $this->setCallback($callback); - } - - /** - * Get the json_decoded data from the response. - * - * @param bool $assoc - * @param int $depth - * @return mixed - */ - public function getData($assoc = false, $depth = 512) - { - return json_decode($this->data, $assoc, $depth); - } - - /** - * {@inheritdoc} - */ - public function setData($data = []) - { - $this->original = $data; - - if ($data instanceof Jsonable) { - $this->data = $data->toJson($this->encodingOptions); - } elseif ($data instanceof JsonSerializable) { - $this->data = json_encode($data->jsonSerialize(), $this->encodingOptions); - } elseif ($data instanceof Arrayable) { - $this->data = json_encode($data->toArray(), $this->encodingOptions); - } else { - $this->data = json_encode($data, $this->encodingOptions); - } - - if (! $this->hasValidJson(json_last_error())) { - throw new InvalidArgumentException(json_last_error_msg()); - } - - return $this->update(); - } - - /** - * Determine if an error occurred during JSON encoding. - * - * @param int $jsonError - * @return bool - */ - protected function hasValidJson($jsonError) - { - if ($jsonError === JSON_ERROR_NONE) { - return true; - } - - return $this->hasEncodingOption(JSON_PARTIAL_OUTPUT_ON_ERROR) && - in_array($jsonError, [ - JSON_ERROR_RECURSION, - JSON_ERROR_INF_OR_NAN, - JSON_ERROR_UNSUPPORTED_TYPE, - ]); - } - - /** - * {@inheritdoc} - */ - public function setEncodingOptions($options) - { - $this->encodingOptions = (int) $options; - - return $this->setData($this->getData()); - } - - /** - * Determine if a JSON encoding option is set. - * - * @param int $option - * @return bool - */ - public function hasEncodingOption($option) - { - return (bool) ($this->encodingOptions & $option); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Http/Middleware/CheckResponseForModifications.php b/vendor/laravel/framework/src/Illuminate/Http/Middleware/CheckResponseForModifications.php deleted file mode 100644 index 2a93e21d..00000000 --- a/vendor/laravel/framework/src/Illuminate/Http/Middleware/CheckResponseForModifications.php +++ /dev/null @@ -1,27 +0,0 @@ -isNotModified($request); - } - - return $response; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Http/Middleware/FrameGuard.php b/vendor/laravel/framework/src/Illuminate/Http/Middleware/FrameGuard.php deleted file mode 100644 index 66edce44..00000000 --- a/vendor/laravel/framework/src/Illuminate/Http/Middleware/FrameGuard.php +++ /dev/null @@ -1,24 +0,0 @@ -headers->set('X-Frame-Options', 'SAMEORIGIN', false); - - return $response; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Http/Middleware/SetCacheHeaders.php b/vendor/laravel/framework/src/Illuminate/Http/Middleware/SetCacheHeaders.php deleted file mode 100644 index d43d8ec2..00000000 --- a/vendor/laravel/framework/src/Illuminate/Http/Middleware/SetCacheHeaders.php +++ /dev/null @@ -1,54 +0,0 @@ -isMethodCacheable() || ! $response->getContent()) { - return $response; - } - - if (is_string($options)) { - $options = $this->parseOptions($options); - } - - if (isset($options['etag']) && $options['etag'] === true) { - $options['etag'] = md5($response->getContent()); - } - - $response->setCache($options); - $response->isNotModified($request); - - return $response; - } - - /** - * Parse the given header options. - * - * @param string $options - * @return array - */ - protected function parseOptions($options) - { - return collect(explode(';', $options))->mapWithKeys(function ($option) { - $data = explode('=', $option, 2); - - return [$data[0] => $data[1] ?? true]; - })->all(); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Http/RedirectResponse.php b/vendor/laravel/framework/src/Illuminate/Http/RedirectResponse.php deleted file mode 100755 index 67e9cddc..00000000 --- a/vendor/laravel/framework/src/Illuminate/Http/RedirectResponse.php +++ /dev/null @@ -1,238 +0,0 @@ - $value]; - - foreach ($key as $k => $v) { - $this->session->flash($k, $v); - } - - return $this; - } - - /** - * Add multiple cookies to the response. - * - * @param array $cookies - * @return $this - */ - public function withCookies(array $cookies) - { - foreach ($cookies as $cookie) { - $this->headers->setCookie($cookie); - } - - return $this; - } - - /** - * Flash an array of input to the session. - * - * @param array $input - * @return $this - */ - public function withInput(array $input = null) - { - $this->session->flashInput($this->removeFilesFromInput( - ! is_null($input) ? $input : $this->request->input() - )); - - return $this; - } - - /** - * Remove all uploaded files form the given input array. - * - * @param array $input - * @return array - */ - protected function removeFilesFromInput(array $input) - { - foreach ($input as $key => $value) { - if (is_array($value)) { - $input[$key] = $this->removeFilesFromInput($value); - } - - if ($value instanceof SymfonyUploadedFile) { - unset($input[$key]); - } - } - - return $input; - } - - /** - * Flash an array of input to the session. - * - * @return $this - */ - public function onlyInput() - { - return $this->withInput($this->request->only(func_get_args())); - } - - /** - * Flash an array of input to the session. - * - * @return \Illuminate\Http\RedirectResponse - */ - public function exceptInput() - { - return $this->withInput($this->request->except(func_get_args())); - } - - /** - * Flash a container of errors to the session. - * - * @param \Illuminate\Contracts\Support\MessageProvider|array|string $provider - * @param string $key - * @return $this - */ - public function withErrors($provider, $key = 'default') - { - $value = $this->parseErrors($provider); - - $errors = $this->session->get('errors', new ViewErrorBag); - - if (! $errors instanceof ViewErrorBag) { - $errors = new ViewErrorBag; - } - - $this->session->flash( - 'errors', $errors->put($key, $value) - ); - - return $this; - } - - /** - * Parse the given errors into an appropriate value. - * - * @param \Illuminate\Contracts\Support\MessageProvider|array|string $provider - * @return \Illuminate\Support\MessageBag - */ - protected function parseErrors($provider) - { - if ($provider instanceof MessageProvider) { - return $provider->getMessageBag(); - } - - return new MessageBag((array) $provider); - } - - /** - * Get the original response content. - * - * @return null - */ - public function getOriginalContent() - { - // - } - - /** - * Get the request instance. - * - * @return \Illuminate\Http\Request|null - */ - public function getRequest() - { - return $this->request; - } - - /** - * Set the request instance. - * - * @param \Illuminate\Http\Request $request - * @return void - */ - public function setRequest(Request $request) - { - $this->request = $request; - } - - /** - * Get the session store implementation. - * - * @return \Illuminate\Session\Store|null - */ - public function getSession() - { - return $this->session; - } - - /** - * Set the session store implementation. - * - * @param \Illuminate\Session\Store $session - * @return void - */ - public function setSession(SessionStore $session) - { - $this->session = $session; - } - - /** - * Dynamically bind flash data in the session. - * - * @param string $method - * @param array $parameters - * @return $this - * - * @throws \BadMethodCallException - */ - public function __call($method, $parameters) - { - if (static::hasMacro($method)) { - return $this->macroCall($method, $parameters); - } - - if (Str::startsWith($method, 'with')) { - return $this->with(Str::snake(substr($method, 4)), $parameters[0]); - } - - throw new BadMethodCallException(sprintf( - 'Method %s::%s does not exist.', static::class, $method - )); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Http/Request.php b/vendor/laravel/framework/src/Illuminate/Http/Request.php deleted file mode 100644 index 8eb4f805..00000000 --- a/vendor/laravel/framework/src/Illuminate/Http/Request.php +++ /dev/null @@ -1,682 +0,0 @@ -getMethod(); - } - - /** - * Get the root URL for the application. - * - * @return string - */ - public function root() - { - return rtrim($this->getSchemeAndHttpHost().$this->getBaseUrl(), '/'); - } - - /** - * Get the URL (no query string) for the request. - * - * @return string - */ - public function url() - { - return rtrim(preg_replace('/\?.*/', '', $this->getUri()), '/'); - } - - /** - * Get the full URL for the request. - * - * @return string - */ - public function fullUrl() - { - $query = $this->getQueryString(); - - $question = $this->getBaseUrl().$this->getPathInfo() == '/' ? '/?' : '?'; - - return $query ? $this->url().$question.$query : $this->url(); - } - - /** - * Get the full URL for the request with the added query string parameters. - * - * @param array $query - * @return string - */ - public function fullUrlWithQuery(array $query) - { - $question = $this->getBaseUrl().$this->getPathInfo() == '/' ? '/?' : '?'; - - return count($this->query()) > 0 - ? $this->url().$question.http_build_query(array_merge($this->query(), $query)) - : $this->fullUrl().$question.http_build_query($query); - } - - /** - * Get the current path info for the request. - * - * @return string - */ - public function path() - { - $pattern = trim($this->getPathInfo(), '/'); - - return $pattern == '' ? '/' : $pattern; - } - - /** - * Get the current decoded path info for the request. - * - * @return string - */ - public function decodedPath() - { - return rawurldecode($this->path()); - } - - /** - * Get a segment from the URI (1 based index). - * - * @param int $index - * @param string|null $default - * @return string|null - */ - public function segment($index, $default = null) - { - return Arr::get($this->segments(), $index - 1, $default); - } - - /** - * Get all of the segments for the request path. - * - * @return array - */ - public function segments() - { - $segments = explode('/', $this->decodedPath()); - - return array_values(array_filter($segments, function ($value) { - return $value !== ''; - })); - } - - /** - * Determine if the current request URI matches a pattern. - * - * @param dynamic $patterns - * @return bool - */ - public function is(...$patterns) - { - return Str::is($patterns, $this->decodedPath()); - } - - /** - * Determine if the route name matches a given pattern. - * - * @param dynamic $patterns - * @return bool - */ - public function routeIs(...$patterns) - { - return $this->route() && $this->route()->named(...$patterns); - } - - /** - * Determine if the current request URL and query string matches a pattern. - * - * @param dynamic $patterns - * @return bool - */ - public function fullUrlIs(...$patterns) - { - $url = $this->fullUrl(); - - foreach ($patterns as $pattern) { - if (Str::is($pattern, $url)) { - return true; - } - } - - return false; - } - - /** - * Determine if the request is the result of an AJAX call. - * - * @return bool - */ - public function ajax() - { - return $this->isXmlHttpRequest(); - } - - /** - * Determine if the request is the result of an PJAX call. - * - * @return bool - */ - public function pjax() - { - return $this->headers->get('X-PJAX') == true; - } - - /** - * Determine if the request is over HTTPS. - * - * @return bool - */ - public function secure() - { - return $this->isSecure(); - } - - /** - * Get the client IP address. - * - * @return string - */ - public function ip() - { - return $this->getClientIp(); - } - - /** - * Get the client IP addresses. - * - * @return array - */ - public function ips() - { - return $this->getClientIps(); - } - - /** - * Get the client user agent. - * - * @return string - */ - public function userAgent() - { - return $this->headers->get('User-Agent'); - } - - /** - * Merge new input into the current request's input array. - * - * @param array $input - * @return \Illuminate\Http\Request - */ - public function merge(array $input) - { - $this->getInputSource()->add($input); - - return $this; - } - - /** - * Replace the input for the current request. - * - * @param array $input - * @return \Illuminate\Http\Request - */ - public function replace(array $input) - { - $this->getInputSource()->replace($input); - - return $this; - } - - /** - * This method belongs to Symfony HttpFoundation and is not usually needed when using Laravel. - * - * Instead, you may use the "input" method. - * - * @param string $key - * @param mixed $default - * @return mixed - */ - public function get($key, $default = null) - { - return parent::get($key, $default); - } - - /** - * Get the JSON payload for the request. - * - * @param string $key - * @param mixed $default - * @return \Symfony\Component\HttpFoundation\ParameterBag|mixed - */ - public function json($key = null, $default = null) - { - if (! isset($this->json)) { - $this->json = new ParameterBag((array) json_decode($this->getContent(), true)); - } - - if (is_null($key)) { - return $this->json; - } - - return data_get($this->json->all(), $key, $default); - } - - /** - * Get the input source for the request. - * - * @return \Symfony\Component\HttpFoundation\ParameterBag - */ - protected function getInputSource() - { - if ($this->isJson()) { - return $this->json(); - } - - return in_array($this->getRealMethod(), ['GET', 'HEAD']) ? $this->query : $this->request; - } - - /** - * Create a new request instance from the given Laravel request. - * - * @param \Illuminate\Http\Request $from - * @param \Illuminate\Http\Request|null $to - * @return static - */ - public static function createFrom(self $from, $to = null) - { - $request = $to ?: new static; - - $files = $from->files->all(); - - $files = is_array($files) ? array_filter($files) : $files; - - $request->initialize( - $from->query->all(), - $from->request->all(), - $from->attributes->all(), - $from->cookies->all(), - $files, - $from->server->all(), - $from->getContent() - ); - - $request->setJson($from->json()); - - if ($session = $from->getSession()) { - $request->setLaravelSession($session); - } - - $request->setUserResolver($from->getUserResolver()); - - $request->setRouteResolver($from->getRouteResolver()); - - return $request; - } - - /** - * Create an Illuminate request from a Symfony instance. - * - * @param \Symfony\Component\HttpFoundation\Request $request - * @return \Illuminate\Http\Request - */ - public static function createFromBase(SymfonyRequest $request) - { - if ($request instanceof static) { - return $request; - } - - $content = $request->content; - - $request = (new static)->duplicate( - $request->query->all(), $request->request->all(), $request->attributes->all(), - $request->cookies->all(), $request->files->all(), $request->server->all() - ); - - $request->content = $content; - - $request->request = $request->getInputSource(); - - return $request; - } - - /** - * {@inheritdoc} - */ - public function duplicate(array $query = null, array $request = null, array $attributes = null, array $cookies = null, array $files = null, array $server = null) - { - return parent::duplicate($query, $request, $attributes, $cookies, $this->filterFiles($files), $server); - } - - /** - * Filter the given array of files, removing any empty values. - * - * @param mixed $files - * @return mixed - */ - protected function filterFiles($files) - { - if (! $files) { - return; - } - - foreach ($files as $key => $file) { - if (is_array($file)) { - $files[$key] = $this->filterFiles($files[$key]); - } - - if (empty($files[$key])) { - unset($files[$key]); - } - } - - return $files; - } - - /** - * Get the session associated with the request. - * - * @return \Illuminate\Session\Store - * - * @throws \RuntimeException - */ - public function session() - { - if (! $this->hasSession()) { - throw new RuntimeException('Session store not set on request.'); - } - - return $this->session; - } - - /** - * Get the session associated with the request. - * - * @return \Illuminate\Session\Store|null - */ - public function getSession() - { - return $this->session; - } - - /** - * Set the session instance on the request. - * - * @param \Illuminate\Contracts\Session\Session $session - * @return void - */ - public function setLaravelSession($session) - { - $this->session = $session; - } - - /** - * Get the user making the request. - * - * @param string|null $guard - * @return mixed - */ - public function user($guard = null) - { - return call_user_func($this->getUserResolver(), $guard); - } - - /** - * Get the route handling the request. - * - * @param string|null $param - * - * @return \Illuminate\Routing\Route|object|string - */ - public function route($param = null) - { - $route = call_user_func($this->getRouteResolver()); - - if (is_null($route) || is_null($param)) { - return $route; - } - - return $route->parameter($param); - } - - /** - * Get a unique fingerprint for the request / route / IP address. - * - * @return string - * - * @throws \RuntimeException - */ - public function fingerprint() - { - if (! $route = $this->route()) { - throw new RuntimeException('Unable to generate fingerprint. Route unavailable.'); - } - - return sha1(implode('|', array_merge( - $route->methods(), - [$route->getDomain(), $route->uri(), $this->ip()] - ))); - } - - /** - * Set the JSON payload for the request. - * - * @param \Symfony\Component\HttpFoundation\ParameterBag $json - * @return $this - */ - public function setJson($json) - { - $this->json = $json; - - return $this; - } - - /** - * Get the user resolver callback. - * - * @return \Closure - */ - public function getUserResolver() - { - return $this->userResolver ?: function () { - // - }; - } - - /** - * Set the user resolver callback. - * - * @param \Closure $callback - * @return $this - */ - public function setUserResolver(Closure $callback) - { - $this->userResolver = $callback; - - return $this; - } - - /** - * Get the route resolver callback. - * - * @return \Closure - */ - public function getRouteResolver() - { - return $this->routeResolver ?: function () { - // - }; - } - - /** - * Set the route resolver callback. - * - * @param \Closure $callback - * @return $this - */ - public function setRouteResolver(Closure $callback) - { - $this->routeResolver = $callback; - - return $this; - } - - /** - * Get all of the input and files for the request. - * - * @return array - */ - public function toArray() - { - return $this->all(); - } - - /** - * Determine if the given offset exists. - * - * @param string $offset - * @return bool - */ - public function offsetExists($offset) - { - return array_key_exists( - $offset, - $this->all() + $this->route()->parameters() - ); - } - - /** - * Get the value at the given offset. - * - * @param string $offset - * @return mixed - */ - public function offsetGet($offset) - { - return $this->__get($offset); - } - - /** - * Set the value at the given offset. - * - * @param string $offset - * @param mixed $value - * @return void - */ - public function offsetSet($offset, $value) - { - $this->getInputSource()->set($offset, $value); - } - - /** - * Remove the value at the given offset. - * - * @param string $offset - * @return void - */ - public function offsetUnset($offset) - { - $this->getInputSource()->remove($offset); - } - - /** - * Check if an input element is set on the request. - * - * @param string $key - * @return bool - */ - public function __isset($key) - { - return ! is_null($this->__get($key)); - } - - /** - * Get an input element from the request. - * - * @param string $key - * @return mixed - */ - public function __get($key) - { - if (array_key_exists($key, $this->all())) { - return data_get($this->all(), $key); - } - - return $this->route($key); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Http/Resources/CollectsResources.php b/vendor/laravel/framework/src/Illuminate/Http/Resources/CollectsResources.php deleted file mode 100644 index 66e6a8b1..00000000 --- a/vendor/laravel/framework/src/Illuminate/Http/Resources/CollectsResources.php +++ /dev/null @@ -1,59 +0,0 @@ -collects(); - - $this->collection = $collects && ! $resource->first() instanceof $collects - ? $resource->mapInto($collects) - : $resource->toBase(); - - return $resource instanceof AbstractPaginator - ? $resource->setCollection($this->collection) - : $this->collection; - } - - /** - * Get the resource that this resource collects. - * - * @return string|null - */ - protected function collects() - { - if ($this->collects) { - return $this->collects; - } - - if (Str::endsWith(class_basename($this), 'Collection') && - class_exists($class = Str::replaceLast('Collection', '', get_class($this)))) { - return $class; - } - } - - /** - * Get an iterator for the resource collection. - * - * @return \ArrayIterator - */ - public function getIterator() - { - return $this->collection->getIterator(); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Http/Resources/ConditionallyLoadsAttributes.php b/vendor/laravel/framework/src/Illuminate/Http/Resources/ConditionallyLoadsAttributes.php deleted file mode 100644 index 31151690..00000000 --- a/vendor/laravel/framework/src/Illuminate/Http/Resources/ConditionallyLoadsAttributes.php +++ /dev/null @@ -1,205 +0,0 @@ - $value) { - $index++; - - if (is_array($value)) { - $data[$key] = $this->filter($value); - - continue; - } - - if (is_numeric($key) && $value instanceof MergeValue) { - return $this->mergeData($data, $index, $this->filter($value->data), $numericKeys); - } - - if ($value instanceof self && is_null($value->resource)) { - $data[$key] = null; - } - } - - return $this->removeMissingValues($data, $numericKeys); - } - - /** - * Merge the given data in at the given index. - * - * @param array $data - * @param int $index - * @param array $merge - * @param bool $numericKeys - * @return array - */ - protected function mergeData($data, $index, $merge, $numericKeys) - { - if ($numericKeys) { - return $this->removeMissingValues(array_merge( - array_merge(array_slice($data, 0, $index, true), $merge), - $this->filter(array_values(array_slice($data, $index + 1, null, true))) - ), $numericKeys); - } - - return $this->removeMissingValues(array_slice($data, 0, $index, true) + - $merge + - $this->filter(array_slice($data, $index + 1, null, true))); - } - - /** - * Remove the missing values from the filtered data. - * - * @param array $data - * @param bool $numericKeys - * @return array - */ - protected function removeMissingValues($data, $numericKeys = false) - { - foreach ($data as $key => $value) { - if (($value instanceof PotentiallyMissing && $value->isMissing()) || - ($value instanceof self && - $value->resource instanceof PotentiallyMissing && - $value->isMissing())) { - unset($data[$key]); - } - } - - return ! empty($data) && is_numeric(array_keys($data)[0]) - ? array_values($data) : $data; - } - - /** - * Retrieve a value based on a given condition. - * - * @param bool $condition - * @param mixed $value - * @param mixed $default - * @return \Illuminate\Http\Resources\MissingValue|mixed - */ - protected function when($condition, $value, $default = null) - { - if ($condition) { - return value($value); - } - - return func_num_args() === 3 ? value($default) : new MissingValue; - } - - /** - * Merge a value into the array. - * - * @param mixed $value - * @return \Illuminate\Http\Resources\MergeValue|mixed - */ - protected function merge($value) - { - return $this->mergeWhen(true, $value); - } - - /** - * Merge a value based on a given condition. - * - * @param bool $condition - * @param mixed $value - * @return \Illuminate\Http\Resources\MergeValue|mixed - */ - protected function mergeWhen($condition, $value) - { - return $condition ? new MergeValue(value($value)) : new MissingValue; - } - - /** - * Merge the given attributes. - * - * @param array $attributes - * @return \Illuminate\Http\Resources\MergeValue - */ - protected function attributes($attributes) - { - return new MergeValue( - Arr::only($this->resource->toArray(), $attributes) - ); - } - - /** - * Retrieve a relationship if it has been loaded. - * - * @param string $relationship - * @param mixed $value - * @param mixed $default - * @return \Illuminate\Http\Resources\MissingValue|mixed - */ - protected function whenLoaded($relationship, $value = null, $default = null) - { - if (func_num_args() < 3) { - $default = new MissingValue; - } - - if (! $this->resource->relationLoaded($relationship)) { - return value($default); - } - - if (func_num_args() === 1) { - return $this->resource->{$relationship}; - } - - if ($this->resource->{$relationship} === null) { - return null; - } - - return value($value); - } - - /** - * Execute a callback if the given pivot table has been loaded. - * - * @param string $table - * @param mixed $value - * @param mixed $default - * @return \Illuminate\Http\Resources\MissingValue|mixed - */ - protected function whenPivotLoaded($table, $value, $default = null) - { - if (func_num_args() === 2) { - $default = new MissingValue; - } - - return $this->when( - $this->resource->pivot && - ($this->resource->pivot instanceof $table || - $this->resource->pivot->getTable() === $table), - ...[$value, $default] - ); - } - - /** - * Transform the given value if it is present. - * - * @param mixed $value - * @param callable $callback - * @param mixed $default - * @return mixed - */ - protected function transform($value, callable $callback, $default = null) - { - return transform( - $value, $callback, func_num_args() === 3 ? $default : new MissingValue - ); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Http/Resources/DelegatesToResource.php b/vendor/laravel/framework/src/Illuminate/Http/Resources/DelegatesToResource.php deleted file mode 100644 index 6f642c49..00000000 --- a/vendor/laravel/framework/src/Illuminate/Http/Resources/DelegatesToResource.php +++ /dev/null @@ -1,130 +0,0 @@ -resource->getRouteKey(); - } - - /** - * Get the route key for the resource. - * - * @return string - */ - public function getRouteKeyName() - { - return $this->resource->getRouteKeyName(); - } - - /** - * Retrieve the model for a bound value. - * - * @param mixed $value - * @return void - * @throws \Exception - */ - public function resolveRouteBinding($value) - { - throw new Exception('Resources may not be implicitly resolved from route bindings.'); - } - - /** - * Determine if the given attribute exists. - * - * @param mixed $offset - * @return bool - */ - public function offsetExists($offset) - { - return array_key_exists($offset, $this->resource); - } - - /** - * Get the value for a given offset. - * - * @param mixed $offset - * @return mixed - */ - public function offsetGet($offset) - { - return $this->resource[$offset]; - } - - /** - * Set the value for a given offset. - * - * @param mixed $offset - * @param mixed $value - * @return void - */ - public function offsetSet($offset, $value) - { - $this->resource[$offset] = $value; - } - - /** - * Unset the value for a given offset. - * - * @param mixed $offset - * @return void - */ - public function offsetUnset($offset) - { - unset($this->resource[$offset]); - } - - /** - * Determine if an attribute exists on the resource. - * - * @param string $key - * @return bool - */ - public function __isset($key) - { - return isset($this->resource->{$key}); - } - - /** - * Unset an attribute on the resource. - * - * @param string $key - * @return void - */ - public function __unset($key) - { - unset($this->resource->{$key}); - } - - /** - * Dynamically get properties from the underlying resource. - * - * @param string $key - * @return mixed - */ - public function __get($key) - { - return $this->resource->{$key}; - } - - /** - * Dynamically pass method calls to the underlying resource. - * - * @param string $method - * @param array $parameters - * @return mixed - */ - public function __call($method, $parameters) - { - return $this->resource->{$method}(...$parameters); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Http/Resources/Json/AnonymousResourceCollection.php b/vendor/laravel/framework/src/Illuminate/Http/Resources/Json/AnonymousResourceCollection.php deleted file mode 100644 index a5831364..00000000 --- a/vendor/laravel/framework/src/Illuminate/Http/Resources/Json/AnonymousResourceCollection.php +++ /dev/null @@ -1,27 +0,0 @@ -collects = $collects; - - parent::__construct($resource); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Http/Resources/Json/JsonResource.php b/vendor/laravel/framework/src/Illuminate/Http/Resources/Json/JsonResource.php deleted file mode 100644 index 98272d92..00000000 --- a/vendor/laravel/framework/src/Illuminate/Http/Resources/Json/JsonResource.php +++ /dev/null @@ -1,206 +0,0 @@ -resource = $resource; - } - - /** - * Create a new resource instance. - * - * @param dynamic $parameters - * @return static - */ - public static function make(...$parameters) - { - return new static(...$parameters); - } - - /** - * Create new anonymous resource collection. - * - * @param mixed $resource - * @return \Illuminate\Http\Resources\Json\AnonymousResourceCollection - */ - public static function collection($resource) - { - return new AnonymousResourceCollection($resource, get_called_class()); - } - - /** - * Resolve the resource to an array. - * - * @param \Illuminate\Http\Request|null $request - * @return array - */ - public function resolve($request = null) - { - $data = $this->toArray( - $request = $request ?: Container::getInstance()->make('request') - ); - - if (is_array($data)) { - $data = $data; - } elseif ($data instanceof Arrayable || $data instanceof Collection) { - $data = $data->toArray(); - } elseif ($data instanceof JsonSerializable) { - $data = $data->jsonSerialize(); - } - - return $this->filter((array) $data); - } - - /** - * Transform the resource into an array. - * - * @param \Illuminate\Http\Request $request - * @return array - */ - public function toArray($request) - { - return $this->resource->toArray(); - } - - /** - * Get any additional data that should be returned with the resource array. - * - * @param \Illuminate\Http\Request $request - * @return array - */ - public function with($request) - { - return $this->with; - } - - /** - * Add additional meta data to the resource response. - * - * @param array $data - * @return $this - */ - public function additional(array $data) - { - $this->additional = $data; - - return $this; - } - - /** - * Customize the response for a request. - * - * @param \Illuminate\Http\Request $request - * @param \Illuminate\Http\JsonResponse $response - * @return void - */ - public function withResponse($request, $response) - { - // - } - - /** - * Set the string that should wrap the outer-most resource array. - * - * @param string $value - * @return void - */ - public static function wrap($value) - { - static::$wrap = $value; - } - - /** - * Disable wrapping of the outer-most resource array. - * - * @return void - */ - public static function withoutWrapping() - { - static::$wrap = null; - } - - /** - * Transform the resource into an HTTP response. - * - * @param \Illuminate\Http\Request|null $request - * @return \Illuminate\Http\JsonResponse - */ - public function response($request = null) - { - return $this->toResponse( - $request ?: Container::getInstance()->make('request') - ); - } - - /** - * Create an HTTP response that represents the object. - * - * @param \Illuminate\Http\Request $request - * @return \Illuminate\Http\JsonResponse - */ - public function toResponse($request) - { - return (new ResourceResponse($this))->toResponse($request); - } - - /** - * Prepare the resource for JSON serialization. - * - * @return array - */ - public function jsonSerialize() - { - return $this->resolve(Container::getInstance()->make('request')); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Http/Resources/Json/PaginatedResourceResponse.php b/vendor/laravel/framework/src/Illuminate/Http/Resources/Json/PaginatedResourceResponse.php deleted file mode 100644 index 596a4cb0..00000000 --- a/vendor/laravel/framework/src/Illuminate/Http/Resources/Json/PaginatedResourceResponse.php +++ /dev/null @@ -1,82 +0,0 @@ -json( - $this->wrap( - $this->resource->resolve($request), - array_merge_recursive( - $this->paginationInformation($request), - $this->resource->with($request), - $this->resource->additional - ) - ), - $this->calculateStatus() - ), function ($response) use ($request) { - $response->original = $this->resource->resource->pluck('resource'); - - $this->resource->withResponse($request, $response); - }); - } - - /** - * Add the pagination information to the response. - * - * @param \Illuminate\Http\Request $request - * @return array - */ - protected function paginationInformation($request) - { - $paginated = $this->resource->resource->toArray(); - - return [ - 'links' => $this->paginationLinks($paginated), - 'meta' => $this->meta($paginated), - ]; - } - - /** - * Get the pagination links for the response. - * - * @param array $paginated - * @return array - */ - protected function paginationLinks($paginated) - { - return [ - 'first' => $paginated['first_page_url'] ?? null, - 'last' => $paginated['last_page_url'] ?? null, - 'prev' => $paginated['prev_page_url'] ?? null, - 'next' => $paginated['next_page_url'] ?? null, - ]; - } - - /** - * Gather the meta data for the response. - * - * @param array $paginated - * @return array - */ - protected function meta($paginated) - { - return Arr::except($paginated, [ - 'data', - 'first_page_url', - 'last_page_url', - 'prev_page_url', - 'next_page_url', - ]); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Http/Resources/Json/Resource.php b/vendor/laravel/framework/src/Illuminate/Http/Resources/Json/Resource.php deleted file mode 100644 index 49f67441..00000000 --- a/vendor/laravel/framework/src/Illuminate/Http/Resources/Json/Resource.php +++ /dev/null @@ -1,8 +0,0 @@ -resource = $this->collectResource($resource); - } - - /** - * Transform the resource into a JSON array. - * - * @param \Illuminate\Http\Request $request - * @return array - */ - public function toArray($request) - { - return $this->collection->map->toArray($request)->all(); - } - - /** - * Create an HTTP response that represents the object. - * - * @param \Illuminate\Http\Request $request - * @return \Illuminate\Http\JsonResponse - */ - public function toResponse($request) - { - return $this->resource instanceof AbstractPaginator - ? (new PaginatedResourceResponse($this))->toResponse($request) - : parent::toResponse($request); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Http/Resources/Json/ResourceResponse.php b/vendor/laravel/framework/src/Illuminate/Http/Resources/Json/ResourceResponse.php deleted file mode 100644 index d3acb4ec..00000000 --- a/vendor/laravel/framework/src/Illuminate/Http/Resources/Json/ResourceResponse.php +++ /dev/null @@ -1,120 +0,0 @@ -resource = $resource; - } - - /** - * Create an HTTP response that represents the object. - * - * @param \Illuminate\Http\Request $request - * @return \Illuminate\Http\JsonResponse - */ - public function toResponse($request) - { - return tap(response()->json( - $this->wrap( - $this->resource->resolve($request), - $this->resource->with($request), - $this->resource->additional - ), - $this->calculateStatus() - ), function ($response) use ($request) { - $response->original = $this->resource->resource; - - $this->resource->withResponse($request, $response); - }); - } - - /** - * Wrap the given data if necessary. - * - * @param array $data - * @param array $with - * @param array $additional - * @return array - */ - protected function wrap($data, $with = [], $additional = []) - { - if ($data instanceof Collection) { - $data = $data->all(); - } - - if ($this->haveDefaultWrapperAndDataIsUnwrapped($data)) { - $data = [$this->wrapper() => $data]; - } elseif ($this->haveAdditionalInformationAndDataIsUnwrapped($data, $with, $additional)) { - $data = [($this->wrapper() ?? 'data') => $data]; - } - - return array_merge_recursive($data, $with, $additional); - } - - /** - * Determine if we have a default wrapper and the given data is unwrapped. - * - * @param array $data - * @return bool - */ - protected function haveDefaultWrapperAndDataIsUnwrapped($data) - { - return $this->wrapper() && ! array_key_exists($this->wrapper(), $data); - } - - /** - * Determine if "with" data has been added and our data is unwrapped. - * - * @param array $data - * @param array $with - * @param array $additional - * @return bool - */ - protected function haveAdditionalInformationAndDataIsUnwrapped($data, $with, $additional) - { - return (! empty($with) || ! empty($additional)) && - (! $this->wrapper() || - ! array_key_exists($this->wrapper(), $data)); - } - - /** - * Get the default data wrapper for the resource. - * - * @return string - */ - protected function wrapper() - { - return get_class($this->resource)::$wrap; - } - - /** - * Calculate the appropriate status code for the response. - * - * @return int - */ - protected function calculateStatus() - { - return $this->resource->resource instanceof Model && - $this->resource->resource->wasRecentlyCreated ? 201 : 200; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Http/Resources/MergeValue.php b/vendor/laravel/framework/src/Illuminate/Http/Resources/MergeValue.php deleted file mode 100644 index 9894f389..00000000 --- a/vendor/laravel/framework/src/Illuminate/Http/Resources/MergeValue.php +++ /dev/null @@ -1,26 +0,0 @@ -data = $data instanceof Collection ? $data->all() : $data; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Http/Resources/MissingValue.php b/vendor/laravel/framework/src/Illuminate/Http/Resources/MissingValue.php deleted file mode 100644 index d0d8dfa7..00000000 --- a/vendor/laravel/framework/src/Illuminate/Http/Resources/MissingValue.php +++ /dev/null @@ -1,16 +0,0 @@ -original = $content; - - // If the content is "JSONable" we will set the appropriate header and convert - // the content to JSON. This is useful when returning something like models - // from routes that will be automatically transformed to their JSON form. - if ($this->shouldBeJson($content)) { - $this->header('Content-Type', 'application/json'); - - $content = $this->morphToJson($content); - } - - // If this content implements the "Renderable" interface then we will call the - // render method on the object so we will avoid any "__toString" exceptions - // that might be thrown and have their errors obscured by PHP's handling. - elseif ($content instanceof Renderable) { - $content = $content->render(); - } - - parent::setContent($content); - - return $this; - } - - /** - * Determine if the given content should be turned into JSON. - * - * @param mixed $content - * @return bool - */ - protected function shouldBeJson($content) - { - return $content instanceof Arrayable || - $content instanceof Jsonable || - $content instanceof ArrayObject || - $content instanceof JsonSerializable || - is_array($content); - } - - /** - * Morph the given content into JSON. - * - * @param mixed $content - * @return string - */ - protected function morphToJson($content) - { - if ($content instanceof Jsonable) { - return $content->toJson(); - } elseif ($content instanceof Arrayable) { - return json_encode($content->toArray()); - } - - return json_encode($content); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Http/ResponseTrait.php b/vendor/laravel/framework/src/Illuminate/Http/ResponseTrait.php deleted file mode 100644 index d6237d3d..00000000 --- a/vendor/laravel/framework/src/Illuminate/Http/ResponseTrait.php +++ /dev/null @@ -1,141 +0,0 @@ -getStatusCode(); - } - - /** - * Get the content of the response. - * - * @return string - */ - public function content() - { - return $this->getContent(); - } - - /** - * Get the original response content. - * - * @return mixed - */ - public function getOriginalContent() - { - $original = $this->original; - - return $original instanceof self ? $original->{__FUNCTION__}() : $original; - } - - /** - * Set a header on the Response. - * - * @param string $key - * @param array|string $values - * @param bool $replace - * @return $this - */ - public function header($key, $values, $replace = true) - { - $this->headers->set($key, $values, $replace); - - return $this; - } - - /** - * Add an array of headers to the response. - * - * @param \Symfony\Component\HttpFoundation\HeaderBag|array $headers - * @return $this - */ - public function withHeaders($headers) - { - if ($headers instanceof HeaderBag) { - $headers = $headers->all(); - } - - foreach ($headers as $key => $value) { - $this->headers->set($key, $value); - } - - return $this; - } - - /** - * Add a cookie to the response. - * - * @param \Symfony\Component\HttpFoundation\Cookie|mixed $cookie - * @return $this - */ - public function cookie($cookie) - { - return call_user_func_array([$this, 'withCookie'], func_get_args()); - } - - /** - * Add a cookie to the response. - * - * @param \Symfony\Component\HttpFoundation\Cookie|mixed $cookie - * @return $this - */ - public function withCookie($cookie) - { - if (is_string($cookie) && function_exists('cookie')) { - $cookie = call_user_func_array('cookie', func_get_args()); - } - - $this->headers->setCookie($cookie); - - return $this; - } - - /** - * Set the exception to attach to the response. - * - * @param \Exception $e - * @return $this - */ - public function withException(Exception $e) - { - $this->exception = $e; - - return $this; - } - - /** - * Throws the response in a HttpResponseException instance. - * - * @throws \Illuminate\Http\Exceptions\HttpResponseException - */ - public function throwResponse() - { - throw new HttpResponseException($this); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Http/Testing/File.php b/vendor/laravel/framework/src/Illuminate/Http/Testing/File.php deleted file mode 100644 index 1560973d..00000000 --- a/vendor/laravel/framework/src/Illuminate/Http/Testing/File.php +++ /dev/null @@ -1,115 +0,0 @@ -name = $name; - $this->tempFile = $tempFile; - - parent::__construct( - $this->tempFilePath(), $name, $this->getMimeType(), - filesize($this->tempFilePath()), null, true - ); - } - - /** - * Create a new fake file. - * - * @param string $name - * @param int $kilobytes - * @return \Illuminate\Http\Testing\File - */ - public static function create($name, $kilobytes = 0) - { - return (new FileFactory)->create($name, $kilobytes); - } - - /** - * Create a new fake image. - * - * @param string $name - * @param int $width - * @param int $height - * @return \Illuminate\Http\Testing\File - */ - public static function image($name, $width = 10, $height = 10) - { - return (new FileFactory)->image($name, $width, $height); - } - - /** - * Set the "size" of the file in kilobytes. - * - * @param int $kilobytes - * @return $this - */ - public function size($kilobytes) - { - $this->sizeToReport = $kilobytes * 1024; - - return $this; - } - - /** - * Get the size of the file. - * - * @return int - */ - public function getSize() - { - return $this->sizeToReport ?: parent::getSize(); - } - - /** - * Get the MIME type for the file. - * - * @return string - */ - public function getMimeType() - { - return MimeType::from($this->name); - } - - /** - * Get the path to the temporary file. - * - * @return string - */ - protected function tempFilePath() - { - return stream_get_meta_data($this->tempFile)['uri']; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Http/Testing/FileFactory.php b/vendor/laravel/framework/src/Illuminate/Http/Testing/FileFactory.php deleted file mode 100644 index c79617eb..00000000 --- a/vendor/laravel/framework/src/Illuminate/Http/Testing/FileFactory.php +++ /dev/null @@ -1,65 +0,0 @@ -sizeToReport = $kilobytes * 1024; - }); - } - - /** - * Create a new fake image. - * - * @param string $name - * @param int $width - * @param int $height - * @return \Illuminate\Http\Testing\File - */ - public function image($name, $width = 10, $height = 10) - { - return new File($name, $this->generateImage( - $width, $height, Str::endsWith(Str::lower($name), ['.jpg', '.jpeg']) ? 'jpeg' : 'png' - )); - } - - /** - * Generate a dummy image of the given width and height. - * - * @param int $width - * @param int $height - * @param string $type - * @return resource - */ - protected function generateImage($width, $height, $type) - { - return tap(tmpfile(), function ($temp) use ($width, $height, $type) { - ob_start(); - - $image = imagecreatetruecolor($width, $height); - - switch ($type) { - case 'jpeg': - imagejpeg($image); - break; - case 'png': - imagepng($image); - break; - } - - fwrite($temp, ob_get_clean()); - }); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Http/Testing/MimeType.php b/vendor/laravel/framework/src/Illuminate/Http/Testing/MimeType.php deleted file mode 100644 index b4212ae2..00000000 --- a/vendor/laravel/framework/src/Illuminate/Http/Testing/MimeType.php +++ /dev/null @@ -1,827 +0,0 @@ - 'application/andrew-inset', - 'aw' => 'application/applixware', - 'atom' => 'application/atom+xml', - 'atomcat' => 'application/atomcat+xml', - 'atomsvc' => 'application/atomsvc+xml', - 'ccxml' => 'application/ccxml+xml', - 'cdmia' => 'application/cdmi-capability', - 'cdmic' => 'application/cdmi-container', - 'cdmid' => 'application/cdmi-domain', - 'cdmio' => 'application/cdmi-object', - 'cdmiq' => 'application/cdmi-queue', - 'cu' => 'application/cu-seeme', - 'davmount' => 'application/davmount+xml', - 'dbk' => 'application/docbook+xml', - 'dssc' => 'application/dssc+der', - 'xdssc' => 'application/dssc+xml', - 'ecma' => 'application/ecmascript', - 'emma' => 'application/emma+xml', - 'epub' => 'application/epub+zip', - 'exi' => 'application/exi', - 'pfr' => 'application/font-tdpfr', - 'gml' => 'application/gml+xml', - 'gpx' => 'application/gpx+xml', - 'gxf' => 'application/gxf', - 'stk' => 'application/hyperstudio', - 'ink' => 'application/inkml+xml', - 'ipfix' => 'application/ipfix', - 'jar' => 'application/java-archive', - 'ser' => 'application/java-serialized-object', - 'class' => 'application/java-vm', - 'js' => 'application/javascript', - 'json' => 'application/json', - 'jsonml' => 'application/jsonml+json', - 'lostxml' => 'application/lost+xml', - 'hqx' => 'application/mac-binhex40', - 'cpt' => 'application/mac-compactpro', - 'mads' => 'application/mads+xml', - 'mrc' => 'application/marc', - 'mrcx' => 'application/marcxml+xml', - 'ma' => 'application/mathematica', - 'mathml' => 'application/mathml+xml', - 'mbox' => 'application/mbox', - 'mscml' => 'application/mediaservercontrol+xml', - 'metalink' => 'application/metalink+xml', - 'meta4' => 'application/metalink4+xml', - 'mets' => 'application/mets+xml', - 'mods' => 'application/mods+xml', - 'm21' => 'application/mp21', - 'mp4s' => 'application/mp4', - 'doc' => 'application/msword', - 'mxf' => 'application/mxf', - 'bin' => 'application/octet-stream', - 'oda' => 'application/oda', - 'opf' => 'application/oebps-package+xml', - 'ogx' => 'application/ogg', - 'omdoc' => 'application/omdoc+xml', - 'onetoc' => 'application/onenote', - 'oxps' => 'application/oxps', - 'xer' => 'application/patch-ops-error+xml', - 'pdf' => 'application/pdf', - 'pgp' => 'application/pgp-encrypted', - 'asc' => 'application/pgp-signature', - 'prf' => 'application/pics-rules', - 'p10' => 'application/pkcs10', - 'p7m' => 'application/pkcs7-mime', - 'p7s' => 'application/pkcs7-signature', - 'p8' => 'application/pkcs8', - 'ac' => 'application/pkix-attr-cert', - 'cer' => 'application/pkix-cert', - 'crl' => 'application/pkix-crl', - 'pkipath' => 'application/pkix-pkipath', - 'pki' => 'application/pkixcmp', - 'pls' => 'application/pls+xml', - 'ai' => 'application/postscript', - 'cww' => 'application/prs.cww', - 'pskcxml' => 'application/pskc+xml', - 'rdf' => 'application/rdf+xml', - 'rif' => 'application/reginfo+xml', - 'rnc' => 'application/relax-ng-compact-syntax', - 'rl' => 'application/resource-lists+xml', - 'rld' => 'application/resource-lists-diff+xml', - 'rs' => 'application/rls-services+xml', - 'gbr' => 'application/rpki-ghostbusters', - 'mft' => 'application/rpki-manifest', - 'roa' => 'application/rpki-roa', - 'rsd' => 'application/rsd+xml', - 'rss' => 'application/rss+xml', - 'sbml' => 'application/sbml+xml', - 'scq' => 'application/scvp-cv-request', - 'scs' => 'application/scvp-cv-response', - 'spq' => 'application/scvp-vp-request', - 'spp' => 'application/scvp-vp-response', - 'sdp' => 'application/sdp', - 'setpay' => 'application/set-payment-initiation', - 'setreg' => 'application/set-registration-initiation', - 'shf' => 'application/shf+xml', - 'smi' => 'application/smil+xml', - 'rq' => 'application/sparql-query', - 'srx' => 'application/sparql-results+xml', - 'gram' => 'application/srgs', - 'grxml' => 'application/srgs+xml', - 'sru' => 'application/sru+xml', - 'ssdl' => 'application/ssdl+xml', - 'ssml' => 'application/ssml+xml', - 'tei' => 'application/tei+xml', - 'tfi' => 'application/thraud+xml', - 'tsd' => 'application/timestamped-data', - 'plb' => 'application/vnd.3gpp.pic-bw-large', - 'psb' => 'application/vnd.3gpp.pic-bw-small', - 'pvb' => 'application/vnd.3gpp.pic-bw-var', - 'tcap' => 'application/vnd.3gpp2.tcap', - 'pwn' => 'application/vnd.3m.post-it-notes', - 'aso' => 'application/vnd.accpac.simply.aso', - 'imp' => 'application/vnd.accpac.simply.imp', - 'acu' => 'application/vnd.acucobol', - 'atc' => 'application/vnd.acucorp', - 'air' => 'application/vnd.adobe.air-application-installer-package+zip', - 'fcdt' => 'application/vnd.adobe.formscentral.fcdt', - 'fxp' => 'application/vnd.adobe.fxp', - 'xdp' => 'application/vnd.adobe.xdp+xml', - 'xfdf' => 'application/vnd.adobe.xfdf', - 'ahead' => 'application/vnd.ahead.space', - 'azf' => 'application/vnd.airzip.filesecure.azf', - 'azs' => 'application/vnd.airzip.filesecure.azs', - 'azw' => 'application/vnd.amazon.ebook', - 'acc' => 'application/vnd.americandynamics.acc', - 'ami' => 'application/vnd.amiga.ami', - 'apk' => 'application/vnd.android.package-archive', - 'cii' => 'application/vnd.anser-web-certificate-issue-initiation', - 'fti' => 'application/vnd.anser-web-funds-transfer-initiation', - 'atx' => 'application/vnd.antix.game-component', - 'mpkg' => 'application/vnd.apple.installer+xml', - 'm3u8' => 'application/vnd.apple.mpegurl', - 'swi' => 'application/vnd.aristanetworks.swi', - 'iota' => 'application/vnd.astraea-software.iota', - 'aep' => 'application/vnd.audiograph', - 'mpm' => 'application/vnd.blueice.multipass', - 'bmi' => 'application/vnd.bmi', - 'rep' => 'application/vnd.businessobjects', - 'cdxml' => 'application/vnd.chemdraw+xml', - 'mmd' => 'application/vnd.chipnuts.karaoke-mmd', - 'cdy' => 'application/vnd.cinderella', - 'cla' => 'application/vnd.claymore', - 'rp9' => 'application/vnd.cloanto.rp9', - 'c4g' => 'application/vnd.clonk.c4group', - 'c11amc' => 'application/vnd.cluetrust.cartomobile-config', - 'c11amz' => 'application/vnd.cluetrust.cartomobile-config-pkg', - 'csp' => 'application/vnd.commonspace', - 'cdbcmsg' => 'application/vnd.contact.cmsg', - 'cmc' => 'application/vnd.cosmocaller', - 'clkx' => 'application/vnd.crick.clicker', - 'clkk' => 'application/vnd.crick.clicker.keyboard', - 'clkp' => 'application/vnd.crick.clicker.palette', - 'clkt' => 'application/vnd.crick.clicker.template', - 'clkw' => 'application/vnd.crick.clicker.wordbank', - 'wbs' => 'application/vnd.criticaltools.wbs+xml', - 'pml' => 'application/vnd.ctc-posml', - 'ppd' => 'application/vnd.cups-ppd', - 'car' => 'application/vnd.curl.car', - 'pcurl' => 'application/vnd.curl.pcurl', - 'dart' => 'application/vnd.dart', - 'rdz' => 'application/vnd.data-vision.rdz', - 'uvf' => 'application/vnd.dece.data', - 'uvt' => 'application/vnd.dece.ttml+xml', - 'uvx' => 'application/vnd.dece.unspecified', - 'uvz' => 'application/vnd.dece.zip', - 'fe_launch' => 'application/vnd.denovo.fcselayout-link', - 'dna' => 'application/vnd.dna', - 'mlp' => 'application/vnd.dolby.mlp', - 'dpg' => 'application/vnd.dpgraph', - 'dfac' => 'application/vnd.dreamfactory', - 'kpxx' => 'application/vnd.ds-keypoint', - 'ait' => 'application/vnd.dvb.ait', - 'svc' => 'application/vnd.dvb.service', - 'geo' => 'application/vnd.dynageo', - 'mag' => 'application/vnd.ecowin.chart', - 'nml' => 'application/vnd.enliven', - 'esf' => 'application/vnd.epson.esf', - 'msf' => 'application/vnd.epson.msf', - 'qam' => 'application/vnd.epson.quickanime', - 'slt' => 'application/vnd.epson.salt', - 'ssf' => 'application/vnd.epson.ssf', - 'es3' => 'application/vnd.eszigno3+xml', - 'ez2' => 'application/vnd.ezpix-album', - 'ez3' => 'application/vnd.ezpix-package', - 'fdf' => 'application/vnd.fdf', - 'mseed' => 'application/vnd.fdsn.mseed', - 'seed' => 'application/vnd.fdsn.seed', - 'gph' => 'application/vnd.flographit', - 'ftc' => 'application/vnd.fluxtime.clip', - 'fm' => 'application/vnd.framemaker', - 'fnc' => 'application/vnd.frogans.fnc', - 'ltf' => 'application/vnd.frogans.ltf', - 'fsc' => 'application/vnd.fsc.weblaunch', - 'oas' => 'application/vnd.fujitsu.oasys', - 'oa2' => 'application/vnd.fujitsu.oasys2', - 'oa3' => 'application/vnd.fujitsu.oasys3', - 'fg5' => 'application/vnd.fujitsu.oasysgp', - 'bh2' => 'application/vnd.fujitsu.oasysprs', - 'ddd' => 'application/vnd.fujixerox.ddd', - 'xdw' => 'application/vnd.fujixerox.docuworks', - 'xbd' => 'application/vnd.fujixerox.docuworks.binder', - 'fzs' => 'application/vnd.fuzzysheet', - 'txd' => 'application/vnd.genomatix.tuxedo', - 'ggb' => 'application/vnd.geogebra.file', - 'ggt' => 'application/vnd.geogebra.tool', - 'gex' => 'application/vnd.geometry-explorer', - 'gxt' => 'application/vnd.geonext', - 'g2w' => 'application/vnd.geoplan', - 'g3w' => 'application/vnd.geospace', - 'gmx' => 'application/vnd.gmx', - 'kml' => 'application/vnd.google-earth.kml+xml', - 'kmz' => 'application/vnd.google-earth.kmz', - 'gqf' => 'application/vnd.grafeq', - 'gac' => 'application/vnd.groove-account', - 'ghf' => 'application/vnd.groove-help', - 'gim' => 'application/vnd.groove-identity-message', - 'grv' => 'application/vnd.groove-injector', - 'gtm' => 'application/vnd.groove-tool-message', - 'tpl' => 'application/vnd.groove-tool-template', - 'vcg' => 'application/vnd.groove-vcard', - 'hal' => 'application/vnd.hal+xml', - 'zmm' => 'application/vnd.handheld-entertainment+xml', - 'hbci' => 'application/vnd.hbci', - 'les' => 'application/vnd.hhe.lesson-player', - 'hpgl' => 'application/vnd.hp-hpgl', - 'hpid' => 'application/vnd.hp-hpid', - 'hps' => 'application/vnd.hp-hps', - 'jlt' => 'application/vnd.hp-jlyt', - 'pcl' => 'application/vnd.hp-pcl', - 'pclxl' => 'application/vnd.hp-pclxl', - 'sfd-hdstx' => 'application/vnd.hydrostatix.sof-data', - 'mpy' => 'application/vnd.ibm.minipay', - 'afp' => 'application/vnd.ibm.modcap', - 'irm' => 'application/vnd.ibm.rights-management', - 'sc' => 'application/vnd.ibm.secure-container', - 'icc' => 'application/vnd.iccprofile', - 'igl' => 'application/vnd.igloader', - 'ivp' => 'application/vnd.immervision-ivp', - 'ivu' => 'application/vnd.immervision-ivu', - 'igm' => 'application/vnd.insors.igm', - 'xpw' => 'application/vnd.intercon.formnet', - 'i2g' => 'application/vnd.intergeo', - 'qbo' => 'application/vnd.intu.qbo', - 'qfx' => 'application/vnd.intu.qfx', - 'rcprofile' => 'application/vnd.ipunplugged.rcprofile', - 'irp' => 'application/vnd.irepository.package+xml', - 'xpr' => 'application/vnd.is-xpr', - 'fcs' => 'application/vnd.isac.fcs', - 'jam' => 'application/vnd.jam', - 'rms' => 'application/vnd.jcp.javame.midlet-rms', - 'jisp' => 'application/vnd.jisp', - 'joda' => 'application/vnd.joost.joda-archive', - 'ktz' => 'application/vnd.kahootz', - 'karbon' => 'application/vnd.kde.karbon', - 'chrt' => 'application/vnd.kde.kchart', - 'kfo' => 'application/vnd.kde.kformula', - 'flw' => 'application/vnd.kde.kivio', - 'kon' => 'application/vnd.kde.kontour', - 'kpr' => 'application/vnd.kde.kpresenter', - 'ksp' => 'application/vnd.kde.kspread', - 'kwd' => 'application/vnd.kde.kword', - 'htke' => 'application/vnd.kenameaapp', - 'kia' => 'application/vnd.kidspiration', - 'kne' => 'application/vnd.kinar', - 'skp' => 'application/vnd.koan', - 'sse' => 'application/vnd.kodak-descriptor', - 'lasxml' => 'application/vnd.las.las+xml', - 'lbd' => 'application/vnd.llamagraphics.life-balance.desktop', - 'lbe' => 'application/vnd.llamagraphics.life-balance.exchange+xml', - '123' => 'application/vnd.lotus-1-2-3', - 'apr' => 'application/vnd.lotus-approach', - 'pre' => 'application/vnd.lotus-freelance', - 'nsf' => 'application/vnd.lotus-notes', - 'org' => 'application/vnd.lotus-organizer', - 'scm' => 'application/vnd.lotus-screencam', - 'lwp' => 'application/vnd.lotus-wordpro', - 'portpkg' => 'application/vnd.macports.portpkg', - 'mcd' => 'application/vnd.mcd', - 'mc1' => 'application/vnd.medcalcdata', - 'cdkey' => 'application/vnd.mediastation.cdkey', - 'mwf' => 'application/vnd.mfer', - 'mfm' => 'application/vnd.mfmp', - 'flo' => 'application/vnd.micrografx.flo', - 'igx' => 'application/vnd.micrografx.igx', - 'mif' => 'application/vnd.mif', - 'daf' => 'application/vnd.mobius.daf', - 'dis' => 'application/vnd.mobius.dis', - 'mbk' => 'application/vnd.mobius.mbk', - 'mqy' => 'application/vnd.mobius.mqy', - 'msl' => 'application/vnd.mobius.msl', - 'plc' => 'application/vnd.mobius.plc', - 'txf' => 'application/vnd.mobius.txf', - 'mpn' => 'application/vnd.mophun.application', - 'mpc' => 'application/vnd.mophun.certificate', - 'xul' => 'application/vnd.mozilla.xul+xml', - 'cil' => 'application/vnd.ms-artgalry', - 'cab' => 'application/vnd.ms-cab-compressed', - 'xls' => 'application/vnd.ms-excel', - 'xlam' => 'application/vnd.ms-excel.addin.macroenabled.12', - 'xlsb' => 'application/vnd.ms-excel.sheet.binary.macroenabled.12', - 'xlsm' => 'application/vnd.ms-excel.sheet.macroenabled.12', - 'xltm' => 'application/vnd.ms-excel.template.macroenabled.12', - 'eot' => 'application/vnd.ms-fontobject', - 'chm' => 'application/vnd.ms-htmlhelp', - 'ims' => 'application/vnd.ms-ims', - 'lrm' => 'application/vnd.ms-lrm', - 'thmx' => 'application/vnd.ms-officetheme', - 'cat' => 'application/vnd.ms-pki.seccat', - 'stl' => 'application/vnd.ms-pki.stl', - 'ppt' => 'application/vnd.ms-powerpoint', - 'ppam' => 'application/vnd.ms-powerpoint.addin.macroenabled.12', - 'pptm' => 'application/vnd.ms-powerpoint.presentation.macroenabled.12', - 'sldm' => 'application/vnd.ms-powerpoint.slide.macroenabled.12', - 'ppsm' => 'application/vnd.ms-powerpoint.slideshow.macroenabled.12', - 'potm' => 'application/vnd.ms-powerpoint.template.macroenabled.12', - 'mpp' => 'application/vnd.ms-project', - 'docm' => 'application/vnd.ms-word.document.macroenabled.12', - 'dotm' => 'application/vnd.ms-word.template.macroenabled.12', - 'wps' => 'application/vnd.ms-works', - 'wpl' => 'application/vnd.ms-wpl', - 'xps' => 'application/vnd.ms-xpsdocument', - 'mseq' => 'application/vnd.mseq', - 'mus' => 'application/vnd.musician', - 'msty' => 'application/vnd.muvee.style', - 'taglet' => 'application/vnd.mynfc', - 'nlu' => 'application/vnd.neurolanguage.nlu', - 'ntf' => 'application/vnd.nitf', - 'nnd' => 'application/vnd.noblenet-directory', - 'nns' => 'application/vnd.noblenet-sealer', - 'nnw' => 'application/vnd.noblenet-web', - 'ngdat' => 'application/vnd.nokia.n-gage.data', - 'n-gage' => 'application/vnd.nokia.n-gage.symbian.install', - 'rpst' => 'application/vnd.nokia.radio-preset', - 'rpss' => 'application/vnd.nokia.radio-presets', - 'edm' => 'application/vnd.novadigm.edm', - 'edx' => 'application/vnd.novadigm.edx', - 'ext' => 'application/vnd.novadigm.ext', - 'odc' => 'application/vnd.oasis.opendocument.chart', - 'otc' => 'application/vnd.oasis.opendocument.chart-template', - 'odb' => 'application/vnd.oasis.opendocument.database', - 'odf' => 'application/vnd.oasis.opendocument.formula', - 'odft' => 'application/vnd.oasis.opendocument.formula-template', - 'odg' => 'application/vnd.oasis.opendocument.graphics', - 'otg' => 'application/vnd.oasis.opendocument.graphics-template', - 'odi' => 'application/vnd.oasis.opendocument.image', - 'oti' => 'application/vnd.oasis.opendocument.image-template', - 'odp' => 'application/vnd.oasis.opendocument.presentation', - 'otp' => 'application/vnd.oasis.opendocument.presentation-template', - 'ods' => 'application/vnd.oasis.opendocument.spreadsheet', - 'ots' => 'application/vnd.oasis.opendocument.spreadsheet-template', - 'odt' => 'application/vnd.oasis.opendocument.text', - 'odm' => 'application/vnd.oasis.opendocument.text-master', - 'ott' => 'application/vnd.oasis.opendocument.text-template', - 'oth' => 'application/vnd.oasis.opendocument.text-web', - 'xo' => 'application/vnd.olpc-sugar', - 'dd2' => 'application/vnd.oma.dd2+xml', - 'oxt' => 'application/vnd.openofficeorg.extension', - 'pptx' => 'application/vnd.openxmlformats-officedocument.presentationml.presentation', - 'sldx' => 'application/vnd.openxmlformats-officedocument.presentationml.slide', - 'ppsx' => 'application/vnd.openxmlformats-officedocument.presentationml.slideshow', - 'potx' => 'application/vnd.openxmlformats-officedocument.presentationml.template', - 'xlsx' => 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', - 'xltx' => 'application/vnd.openxmlformats-officedocument.spreadsheetml.template', - 'docx' => 'application/vnd.openxmlformats-officedocument.wordprocessingml.document', - 'dotx' => 'application/vnd.openxmlformats-officedocument.wordprocessingml.template', - 'mgp' => 'application/vnd.osgeo.mapguide.package', - 'dp' => 'application/vnd.osgi.dp', - 'esa' => 'application/vnd.osgi.subsystem', - 'pdb' => 'application/vnd.palm', - 'paw' => 'application/vnd.pawaafile', - 'str' => 'application/vnd.pg.format', - 'ei6' => 'application/vnd.pg.osasli', - 'efif' => 'application/vnd.picsel', - 'wg' => 'application/vnd.pmi.widget', - 'plf' => 'application/vnd.pocketlearn', - 'pbd' => 'application/vnd.powerbuilder6', - 'box' => 'application/vnd.previewsystems.box', - 'mgz' => 'application/vnd.proteus.magazine', - 'qps' => 'application/vnd.publishare-delta-tree', - 'ptid' => 'application/vnd.pvi.ptid1', - 'qxd' => 'application/vnd.quark.quarkxpress', - 'bed' => 'application/vnd.realvnc.bed', - 'mxl' => 'application/vnd.recordare.musicxml', - 'musicxml' => 'application/vnd.recordare.musicxml+xml', - 'cryptonote' => 'application/vnd.rig.cryptonote', - 'cod' => 'application/vnd.rim.cod', - 'rm' => 'application/vnd.rn-realmedia', - 'rmvb' => 'application/vnd.rn-realmedia-vbr', - 'link66' => 'application/vnd.route66.link66+xml', - 'st' => 'application/vnd.sailingtracker.track', - 'see' => 'application/vnd.seemail', - 'sema' => 'application/vnd.sema', - 'semd' => 'application/vnd.semd', - 'semf' => 'application/vnd.semf', - 'ifm' => 'application/vnd.shana.informed.formdata', - 'itp' => 'application/vnd.shana.informed.formtemplate', - 'iif' => 'application/vnd.shana.informed.interchange', - 'ipk' => 'application/vnd.shana.informed.package', - 'twd' => 'application/vnd.simtech-mindmapper', - 'mmf' => 'application/vnd.smaf', - 'teacher' => 'application/vnd.smart.teacher', - 'sdkm' => 'application/vnd.solent.sdkm+xml', - 'dxp' => 'application/vnd.spotfire.dxp', - 'sfs' => 'application/vnd.spotfire.sfs', - 'sdc' => 'application/vnd.stardivision.calc', - 'sda' => 'application/vnd.stardivision.draw', - 'sdd' => 'application/vnd.stardivision.impress', - 'smf' => 'application/vnd.stardivision.math', - 'sdw' => 'application/vnd.stardivision.writer', - 'sgl' => 'application/vnd.stardivision.writer-global', - 'smzip' => 'application/vnd.stepmania.package', - 'sm' => 'application/vnd.stepmania.stepchart', - 'sxc' => 'application/vnd.sun.xml.calc', - 'stc' => 'application/vnd.sun.xml.calc.template', - 'sxd' => 'application/vnd.sun.xml.draw', - 'std' => 'application/vnd.sun.xml.draw.template', - 'sxi' => 'application/vnd.sun.xml.impress', - 'sti' => 'application/vnd.sun.xml.impress.template', - 'sxm' => 'application/vnd.sun.xml.math', - 'sxw' => 'application/vnd.sun.xml.writer', - 'sxg' => 'application/vnd.sun.xml.writer.global', - 'stw' => 'application/vnd.sun.xml.writer.template', - 'sus' => 'application/vnd.sus-calendar', - 'svd' => 'application/vnd.svd', - 'sis' => 'application/vnd.symbian.install', - 'xsm' => 'application/vnd.syncml+xml', - 'bdm' => 'application/vnd.syncml.dm+wbxml', - 'xdm' => 'application/vnd.syncml.dm+xml', - 'tao' => 'application/vnd.tao.intent-module-archive', - 'pcap' => 'application/vnd.tcpdump.pcap', - 'tmo' => 'application/vnd.tmobile-livetv', - 'tpt' => 'application/vnd.trid.tpt', - 'mxs' => 'application/vnd.triscape.mxs', - 'tra' => 'application/vnd.trueapp', - 'ufd' => 'application/vnd.ufdl', - 'utz' => 'application/vnd.uiq.theme', - 'umj' => 'application/vnd.umajin', - 'unityweb' => 'application/vnd.unity', - 'uoml' => 'application/vnd.uoml+xml', - 'vcx' => 'application/vnd.vcx', - 'vsd' => 'application/vnd.visio', - 'vis' => 'application/vnd.visionary', - 'vsf' => 'application/vnd.vsf', - 'wbxml' => 'application/vnd.wap.wbxml', - 'wmlc' => 'application/vnd.wap.wmlc', - 'wmlsc' => 'application/vnd.wap.wmlscriptc', - 'wtb' => 'application/vnd.webturbo', - 'nbp' => 'application/vnd.wolfram.player', - 'wpd' => 'application/vnd.wordperfect', - 'wqd' => 'application/vnd.wqd', - 'stf' => 'application/vnd.wt.stf', - 'xar' => 'application/vnd.xara', - 'xfdl' => 'application/vnd.xfdl', - 'hvd' => 'application/vnd.yamaha.hv-dic', - 'hvs' => 'application/vnd.yamaha.hv-script', - 'hvp' => 'application/vnd.yamaha.hv-voice', - 'osf' => 'application/vnd.yamaha.openscoreformat', - 'osfpvg' => 'application/vnd.yamaha.openscoreformat.osfpvg+xml', - 'saf' => 'application/vnd.yamaha.smaf-audio', - 'spf' => 'application/vnd.yamaha.smaf-phrase', - 'cmp' => 'application/vnd.yellowriver-custom-menu', - 'zir' => 'application/vnd.zul', - 'zaz' => 'application/vnd.zzazz.deck+xml', - 'vxml' => 'application/voicexml+xml', - 'wgt' => 'application/widget', - 'hlp' => 'application/winhlp', - 'wsdl' => 'application/wsdl+xml', - 'wspolicy' => 'application/wspolicy+xml', - '7z' => 'application/x-7z-compressed', - 'abw' => 'application/x-abiword', - 'ace' => 'application/x-ace-compressed', - 'dmg' => 'application/x-apple-diskimage', - 'aab' => 'application/x-authorware-bin', - 'aam' => 'application/x-authorware-map', - 'aas' => 'application/x-authorware-seg', - 'bcpio' => 'application/x-bcpio', - 'torrent' => 'application/x-bittorrent', - 'blb' => 'application/x-blorb', - 'bz' => 'application/x-bzip', - 'bz2' => 'application/x-bzip2', - 'cbr' => 'application/x-cbr', - 'vcd' => 'application/x-cdlink', - 'cfs' => 'application/x-cfs-compressed', - 'chat' => 'application/x-chat', - 'pgn' => 'application/x-chess-pgn', - 'nsc' => 'application/x-conference', - 'cpio' => 'application/x-cpio', - 'csh' => 'application/x-csh', - 'deb' => 'application/x-debian-package', - 'dgc' => 'application/x-dgc-compressed', - 'dir' => 'application/x-director', - 'wad' => 'application/x-doom', - 'ncx' => 'application/x-dtbncx+xml', - 'dtb' => 'application/x-dtbook+xml', - 'res' => 'application/x-dtbresource+xml', - 'dvi' => 'application/x-dvi', - 'evy' => 'application/x-envoy', - 'eva' => 'application/x-eva', - 'bdf' => 'application/x-font-bdf', - 'gsf' => 'application/x-font-ghostscript', - 'psf' => 'application/x-font-linux-psf', - 'otf' => 'application/x-font-otf', - 'pcf' => 'application/x-font-pcf', - 'snf' => 'application/x-font-snf', - 'ttf' => 'application/x-font-ttf', - 'pfa' => 'application/x-font-type1', - 'woff' => 'application/x-font-woff', - 'arc' => 'application/x-freearc', - 'spl' => 'application/x-futuresplash', - 'gca' => 'application/x-gca-compressed', - 'ulx' => 'application/x-glulx', - 'gnumeric' => 'application/x-gnumeric', - 'gramps' => 'application/x-gramps-xml', - 'gtar' => 'application/x-gtar', - 'hdf' => 'application/x-hdf', - 'install' => 'application/x-install-instructions', - 'iso' => 'application/x-iso9660-image', - 'jnlp' => 'application/x-java-jnlp-file', - 'latex' => 'application/x-latex', - 'lzh' => 'application/x-lzh-compressed', - 'mie' => 'application/x-mie', - 'prc' => 'application/x-mobipocket-ebook', - 'application' => 'application/x-ms-application', - 'lnk' => 'application/x-ms-shortcut', - 'wmd' => 'application/x-ms-wmd', - 'wmz' => 'application/x-ms-wmz', - 'xbap' => 'application/x-ms-xbap', - 'mdb' => 'application/x-msaccess', - 'obd' => 'application/x-msbinder', - 'crd' => 'application/x-mscardfile', - 'clp' => 'application/x-msclip', - 'exe' => 'application/x-msdownload', - 'mvb' => 'application/x-msmediaview', - 'wmf' => 'application/x-msmetafile', - 'mny' => 'application/x-msmoney', - 'pub' => 'application/x-mspublisher', - 'scd' => 'application/x-msschedule', - 'trm' => 'application/x-msterminal', - 'wri' => 'application/x-mswrite', - 'nc' => 'application/x-netcdf', - 'nzb' => 'application/x-nzb', - 'p12' => 'application/x-pkcs12', - 'p7b' => 'application/x-pkcs7-certificates', - 'p7r' => 'application/x-pkcs7-certreqresp', - 'rar' => 'application/x-rar', - 'ris' => 'application/x-research-info-systems', - 'sh' => 'application/x-sh', - 'shar' => 'application/x-shar', - 'swf' => 'application/x-shockwave-flash', - 'xap' => 'application/x-silverlight-app', - 'sql' => 'application/x-sql', - 'sit' => 'application/x-stuffit', - 'sitx' => 'application/x-stuffitx', - 'srt' => 'application/x-subrip', - 'sv4cpio' => 'application/x-sv4cpio', - 'sv4crc' => 'application/x-sv4crc', - 't3' => 'application/x-t3vm-image', - 'gam' => 'application/x-tads', - 'tar' => 'application/x-tar', - 'tcl' => 'application/x-tcl', - 'tex' => 'application/x-tex', - 'tfm' => 'application/x-tex-tfm', - 'texinfo' => 'application/x-texinfo', - 'obj' => 'application/x-tgif', - 'ustar' => 'application/x-ustar', - 'src' => 'application/x-wais-source', - 'der' => 'application/x-x509-ca-cert', - 'fig' => 'application/x-xfig', - 'xlf' => 'application/x-xliff+xml', - 'xpi' => 'application/x-xpinstall', - 'xz' => 'application/x-xz', - 'z1' => 'application/x-zmachine', - 'xaml' => 'application/xaml+xml', - 'xdf' => 'application/xcap-diff+xml', - 'xenc' => 'application/xenc+xml', - 'xhtml' => 'application/xhtml+xml', - 'xml' => 'application/xml', - 'dtd' => 'application/xml-dtd', - 'xop' => 'application/xop+xml', - 'xpl' => 'application/xproc+xml', - 'xslt' => 'application/xslt+xml', - 'xspf' => 'application/xspf+xml', - 'mxml' => 'application/xv+xml', - 'yang' => 'application/yang', - 'yin' => 'application/yin+xml', - 'zip' => 'application/zip', - 'adp' => 'audio/adpcm', - 'au' => 'audio/basic', - 'mid' => 'audio/midi', - 'mp3' => 'audio/mpeg', - 'mp4a' => 'audio/mp4', - 'mpga' => 'audio/mpeg', - 'oga' => 'audio/ogg', - 's3m' => 'audio/s3m', - 'sil' => 'audio/silk', - 'uva' => 'audio/vnd.dece.audio', - 'eol' => 'audio/vnd.digital-winds', - 'dra' => 'audio/vnd.dra', - 'dts' => 'audio/vnd.dts', - 'dtshd' => 'audio/vnd.dts.hd', - 'lvp' => 'audio/vnd.lucent.voice', - 'pya' => 'audio/vnd.ms-playready.media.pya', - 'ecelp4800' => 'audio/vnd.nuera.ecelp4800', - 'ecelp7470' => 'audio/vnd.nuera.ecelp7470', - 'ecelp9600' => 'audio/vnd.nuera.ecelp9600', - 'rip' => 'audio/vnd.rip', - 'weba' => 'audio/webm', - 'aac' => 'audio/x-aac', - 'aif' => 'audio/x-aiff', - 'caf' => 'audio/x-caf', - 'flac' => 'audio/x-flac', - 'mka' => 'audio/x-matroska', - 'm3u' => 'audio/x-mpegurl', - 'wax' => 'audio/x-ms-wax', - 'wma' => 'audio/x-ms-wma', - 'ram' => 'audio/x-pn-realaudio', - 'rmp' => 'audio/x-pn-realaudio-plugin', - 'wav' => 'audio/x-wav', - 'xm' => 'audio/xm', - 'cdx' => 'chemical/x-cdx', - 'cif' => 'chemical/x-cif', - 'cmdf' => 'chemical/x-cmdf', - 'cml' => 'chemical/x-cml', - 'csml' => 'chemical/x-csml', - 'xyz' => 'chemical/x-xyz', - 'bmp' => 'image/bmp', - 'cgm' => 'image/cgm', - 'g3' => 'image/g3fax', - 'gif' => 'image/gif', - 'ief' => 'image/ief', - 'jpg' => 'image/jpeg', - 'jpeg' => 'image/jpeg', - 'ktx' => 'image/ktx', - 'png' => 'image/png', - 'btif' => 'image/prs.btif', - 'sgi' => 'image/sgi', - 'svg' => 'image/svg+xml', - 'tiff' => 'image/tiff', - 'psd' => 'image/vnd.adobe.photoshop', - 'uvi' => 'image/vnd.dece.graphic', - 'djvu' => 'image/vnd.djvu', - 'dwg' => 'image/vnd.dwg', - 'dxf' => 'image/vnd.dxf', - 'fbs' => 'image/vnd.fastbidsheet', - 'fpx' => 'image/vnd.fpx', - 'fst' => 'image/vnd.fst', - 'mmr' => 'image/vnd.fujixerox.edmics-mmr', - 'rlc' => 'image/vnd.fujixerox.edmics-rlc', - 'mdi' => 'image/vnd.ms-modi', - 'wdp' => 'image/vnd.ms-photo', - 'npx' => 'image/vnd.net-fpx', - 'wbmp' => 'image/vnd.wap.wbmp', - 'xif' => 'image/vnd.xiff', - 'webp' => 'image/webp', - '3ds' => 'image/x-3ds', - 'ras' => 'image/x-cmu-raster', - 'cmx' => 'image/x-cmx', - 'fh' => 'image/x-freehand', - 'ico' => 'image/x-icon', - 'sid' => 'image/x-mrsid-image', - 'pcx' => 'image/x-pcx', - 'pic' => 'image/x-pict', - 'pnm' => 'image/x-portable-anymap', - 'pbm' => 'image/x-portable-bitmap', - 'pgm' => 'image/x-portable-graymap', - 'ppm' => 'image/x-portable-pixmap', - 'rgb' => 'image/x-rgb', - 'tga' => 'image/x-tga', - 'xbm' => 'image/x-xbitmap', - 'xpm' => 'image/x-xpixmap', - 'xwd' => 'image/x-xwindowdump', - 'eml' => 'message/rfc822', - 'igs' => 'model/iges', - 'msh' => 'model/mesh', - 'dae' => 'model/vnd.collada+xml', - 'dwf' => 'model/vnd.dwf', - 'gdl' => 'model/vnd.gdl', - 'gtw' => 'model/vnd.gtw', - 'mts' => 'model/vnd.mts', - 'vtu' => 'model/vnd.vtu', - 'wrl' => 'model/vrml', - 'x3db' => 'model/x3d+binary', - 'x3dv' => 'model/x3d+vrml', - 'x3d' => 'model/x3d+xml', - 'appcache' => 'text/cache-manifest', - 'ics' => 'text/calendar', - 'css' => 'text/css', - 'csv' => 'text/csv', - 'html' => 'text/html', - 'n3' => 'text/n3', - 'txt' => 'text/plain', - 'dsc' => 'text/prs.lines.tag', - 'rtx' => 'text/richtext', - 'rtf' => 'text/rtf', - 'sgml' => 'text/sgml', - 'tsv' => 'text/tab-separated-values', - 't' => 'text/troff', - 'ttl' => 'text/turtle', - 'uri' => 'text/uri-list', - 'vcard' => 'text/vcard', - 'curl' => 'text/vnd.curl', - 'dcurl' => 'text/vnd.curl.dcurl', - 'scurl' => 'text/vnd.curl.scurl', - 'mcurl' => 'text/vnd.curl.mcurl', - 'sub' => 'text/vnd.dvb.subtitle', - 'fly' => 'text/vnd.fly', - 'flx' => 'text/vnd.fmi.flexstor', - 'gv' => 'text/vnd.graphviz', - '3dml' => 'text/vnd.in3d.3dml', - 'spot' => 'text/vnd.in3d.spot', - 'jad' => 'text/vnd.sun.j2me.app-descriptor', - 'wml' => 'text/vnd.wap.wml', - 'wmls' => 'text/vnd.wap.wmlscript', - 's' => 'text/x-asm', - 'c' => 'text/x-c', - 'f' => 'text/x-fortran', - 'p' => 'text/x-pascal', - 'java' => 'text/x-java-source', - 'opml' => 'text/x-opml', - 'nfo' => 'text/x-nfo', - 'etx' => 'text/x-setext', - 'sfv' => 'text/x-sfv', - 'uu' => 'text/x-uuencode', - 'vcs' => 'text/x-vcalendar', - 'vcf' => 'text/x-vcard', - '3gp' => 'video/3gpp', - '3g2' => 'video/3gpp2', - 'h261' => 'video/h261', - 'h263' => 'video/h263', - 'h264' => 'video/h264', - 'jpgv' => 'video/jpeg', - 'jpm' => 'video/jpm', - 'mj2' => 'video/mj2', - 'mp4' => 'video/mp4', - 'mpeg' => 'video/mpeg', - 'ogv' => 'video/ogg', - 'mov' => 'video/quicktime', - 'qt' => 'video/quicktime', - 'uvh' => 'video/vnd.dece.hd', - 'uvm' => 'video/vnd.dece.mobile', - 'uvp' => 'video/vnd.dece.pd', - 'uvs' => 'video/vnd.dece.sd', - 'uvv' => 'video/vnd.dece.video', - 'dvb' => 'video/vnd.dvb.file', - 'fvt' => 'video/vnd.fvt', - 'mxu' => 'video/vnd.mpegurl', - 'pyv' => 'video/vnd.ms-playready.media.pyv', - 'uvu' => 'video/vnd.uvvu.mp4', - 'viv' => 'video/vnd.vivo', - 'webm' => 'video/webm', - 'f4v' => 'video/x-f4v', - 'fli' => 'video/x-fli', - 'flv' => 'video/x-flv', - 'm4v' => 'video/x-m4v', - 'mkv' => 'video/x-matroska', - 'mng' => 'video/x-mng', - 'asf' => 'video/x-ms-asf', - 'vob' => 'video/x-ms-vob', - 'wm' => 'video/x-ms-wm', - 'wmv' => 'video/x-ms-wmv', - 'wmx' => 'video/x-ms-wmx', - 'wvx' => 'video/x-ms-wvx', - 'avi' => 'video/x-msvideo', - 'movie' => 'video/x-sgi-movie', - 'smv' => 'video/x-smv', - 'ice' => 'x-conference/x-cooltalk', - ]; - - /** - * Get the MIME type for a file based on the file's extension. - * - * @param string $filename - * @return string - */ - public static function from($filename) - { - $extension = pathinfo($filename, PATHINFO_EXTENSION); - - return self::getMimeTypeFromExtension($extension); - } - - /** - * Get the MIME type for a given extension or return all mimes. - * - * @param string $extension - * @return string|array - */ - public static function get($extension = null) - { - return $extension ? self::getMimeTypeFromExtension($extension) : self::$mimes; - } - - /** - * Search for the extension of a given MIME type. - * - * @param string $mimeType - * @return string|null - */ - public static function search($mimeType) - { - return array_search($mimeType, self::$mimes) ?: null; - } - - /** - * Get the MIME type for a given extension. - * - * @param string $extension - * @return string - */ - protected static function getMimeTypeFromExtension($extension) - { - return self::$mimes[$extension] ?? 'application/octet-stream'; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Http/UploadedFile.php b/vendor/laravel/framework/src/Illuminate/Http/UploadedFile.php deleted file mode 100644 index 8ed7e7f9..00000000 --- a/vendor/laravel/framework/src/Illuminate/Http/UploadedFile.php +++ /dev/null @@ -1,122 +0,0 @@ -storeAs($path, $this->hashName(), $this->parseOptions($options)); - } - - /** - * Store the uploaded file on a filesystem disk with public visibility. - * - * @param string $path - * @param array|string $options - * @return string|false - */ - public function storePublicly($path, $options = []) - { - $options = $this->parseOptions($options); - - $options['visibility'] = 'public'; - - return $this->storeAs($path, $this->hashName(), $options); - } - - /** - * Store the uploaded file on a filesystem disk with public visibility. - * - * @param string $path - * @param string $name - * @param array|string $options - * @return string|false - */ - public function storePubliclyAs($path, $name, $options = []) - { - $options = $this->parseOptions($options); - - $options['visibility'] = 'public'; - - return $this->storeAs($path, $name, $options); - } - - /** - * Store the uploaded file on a filesystem disk. - * - * @param string $path - * @param string $name - * @param array|string $options - * @return string|false - */ - public function storeAs($path, $name, $options = []) - { - $options = $this->parseOptions($options); - - $disk = Arr::pull($options, 'disk'); - - return Container::getInstance()->make(FilesystemFactory::class)->disk($disk)->putFileAs( - $path, $this, $name, $options - ); - } - - /** - * Create a new file instance from a base instance. - * - * @param \Symfony\Component\HttpFoundation\File\UploadedFile $file - * @param bool $test - * @return static - */ - public static function createFromBase(SymfonyUploadedFile $file, $test = false) - { - return $file instanceof static ? $file : new static( - $file->getPathname(), - $file->getClientOriginalName(), - $file->getClientMimeType(), - $file->getClientSize(), - $file->getError(), - $test - ); - } - - /** - * Parse and format the given options. - * - * @param array|string $options - * @return array - */ - protected function parseOptions($options) - { - if (is_string($options)) { - $options = ['disk' => $options]; - } - - return $options; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Http/composer.json b/vendor/laravel/framework/src/Illuminate/Http/composer.json deleted file mode 100755 index 846a0305..00000000 --- a/vendor/laravel/framework/src/Illuminate/Http/composer.json +++ /dev/null @@ -1,37 +0,0 @@ -{ - "name": "illuminate/http", - "description": "The Illuminate Http package.", - "license": "MIT", - "homepage": "https://laravel.com", - "support": { - "issues": "https://github.com/laravel/framework/issues", - "source": "https://github.com/laravel/framework" - }, - "authors": [ - { - "name": "Taylor Otwell", - "email": "taylor@laravel.com" - } - ], - "require": { - "php": "^7.1.3", - "illuminate/session": "5.6.*", - "illuminate/support": "5.6.*", - "symfony/http-foundation": "~4.0", - "symfony/http-kernel": "~4.0" - }, - "autoload": { - "psr-4": { - "Illuminate\\Http\\": "" - } - }, - "extra": { - "branch-alias": { - "dev-master": "5.6-dev" - } - }, - "config": { - "sort-packages": true - }, - "minimum-stability": "dev" -} diff --git a/vendor/laravel/framework/src/Illuminate/Log/Events/MessageLogged.php b/vendor/laravel/framework/src/Illuminate/Log/Events/MessageLogged.php deleted file mode 100644 index 312b343a..00000000 --- a/vendor/laravel/framework/src/Illuminate/Log/Events/MessageLogged.php +++ /dev/null @@ -1,42 +0,0 @@ -level = $level; - $this->message = $message; - $this->context = $context; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Log/LogManager.php b/vendor/laravel/framework/src/Illuminate/Log/LogManager.php deleted file mode 100644 index 24c12fc0..00000000 --- a/vendor/laravel/framework/src/Illuminate/Log/LogManager.php +++ /dev/null @@ -1,611 +0,0 @@ - Monolog::DEBUG, - 'info' => Monolog::INFO, - 'notice' => Monolog::NOTICE, - 'warning' => Monolog::WARNING, - 'error' => Monolog::ERROR, - 'critical' => Monolog::CRITICAL, - 'alert' => Monolog::ALERT, - 'emergency' => Monolog::EMERGENCY, - ]; - - /** - * Create a new Log manager instance. - * - * @param \Illuminate\Foundation\Application $app - * @return void - */ - public function __construct($app) - { - $this->app = $app; - } - - /** - * Create a new, on-demand aggregate logger instance. - * - * @param array $channels - * @param string|null $channel - * @return \Psr\Log\LoggerInterface - */ - public function stack(array $channels, $channel = null) - { - return new Logger( - $this->createStackDriver(compact('channels', 'channel')), - $this->app['events'] - ); - } - - /** - * Get a log channel instance. - * - * @param string|null $channel - * @return mixed - */ - public function channel($channel = null) - { - return $this->driver($channel); - } - - /** - * Get a log driver instance. - * - * @param string|null $driver - * @return mixed - */ - public function driver($driver = null) - { - return $this->get($driver ?? $this->getDefaultDriver()); - } - - /** - * Attempt to get the log from the local cache. - * - * @param string $name - * @return \Psr\Log\LoggerInterface - */ - protected function get($name) - { - try { - return $this->channels[$name] ?? with($this->resolve($name), function ($logger) use ($name) { - return $this->channels[$name] = $this->tap($name, new Logger($logger, $this->app['events'])); - }); - } catch (Throwable $e) { - return tap($this->createEmergencyLogger(), function ($logger) use ($e) { - $logger->emergency('Unable to create configured logger. Using emergency logger.', [ - 'exception' => $e, - ]); - }); - } - } - - /** - * Apply the configured taps for the logger. - * - * @param string $name - * @param \Illuminate\Log\Logger $logger - * @return \Illuminate\Log\Logger - */ - protected function tap($name, Logger $logger) - { - foreach ($this->configurationFor($name)['tap'] ?? [] as $tap) { - list($class, $arguments) = $this->parseTap($tap); - - $this->app->make($class)->__invoke($logger, ...explode(',', $arguments)); - } - - return $logger; - } - - /** - * Parse the given tap class string into a class name and arguments string. - * - * @param string $tap - * @return array - */ - protected function parseTap($tap) - { - return Str::contains($tap, ':') ? explode(':', $tap, 2) : [$tap, '']; - } - - /** - * Create an emergency log handler to avoid white screens of death. - * - * @return \Psr\Log\LoggerInterface - */ - protected function createEmergencyLogger() - { - return new Logger(new Monolog('laravel', $this->prepareHandlers([new StreamHandler( - $this->app->storagePath().'/logs/laravel.log', $this->level(['level' => 'debug']) - )])), $this->app['events']); - } - - /** - * Resolve the given log instance by name. - * - * @param string $name - * @return \Psr\Log\LoggerInterface - * - * @throws \InvalidArgumentException - */ - protected function resolve($name) - { - $config = $this->configurationFor($name); - - if (is_null($config)) { - throw new InvalidArgumentException("Log [{$name}] is not defined."); - } - - if (isset($this->customCreators[$config['driver']])) { - return $this->callCustomCreator($config); - } - - $driverMethod = 'create'.ucfirst($config['driver']).'Driver'; - - if (method_exists($this, $driverMethod)) { - return $this->{$driverMethod}($config); - } - - throw new InvalidArgumentException("Driver [{$config['driver']}] is not supported."); - } - - /** - * Call a custom driver creator. - * - * @param array $config - * @return mixed - */ - protected function callCustomCreator(array $config) - { - return $this->customCreators[$config['driver']]($this->app, $config); - } - - /** - * Create a custom log driver instance. - * - * @param array $config - * @return \Psr\Log\LoggerInterface - */ - protected function createCustomDriver(array $config) - { - $factory = is_callable($via = $config['via']) ? $via : $this->app->make($via); - - return $factory($config); - } - - /** - * Create an aggregate log driver instance. - * - * @param array $config - * @return \Psr\Log\LoggerInterface - */ - protected function createStackDriver(array $config) - { - $handlers = collect($config['channels'])->flatMap(function ($channel) { - return $this->channel($channel)->getHandlers(); - })->all(); - - return new Monolog($this->parseChannel($config), $handlers); - } - - /** - * Create an instance of the single file log driver. - * - * @param array $config - * @return \Psr\Log\LoggerInterface - */ - protected function createSingleDriver(array $config) - { - return new Monolog($this->parseChannel($config), [ - $this->prepareHandler( - new StreamHandler( - $config['path'], $this->level($config), - $config['bubble'] ?? true, $config['permission'] ?? null, $config['locking'] ?? false - ) - ), - ]); - } - - /** - * Create an instance of the daily file log driver. - * - * @param array $config - * @return \Psr\Log\LoggerInterface - */ - protected function createDailyDriver(array $config) - { - return new Monolog($this->parseChannel($config), [ - $this->prepareHandler(new RotatingFileHandler( - $config['path'], $config['days'] ?? 7, $this->level($config), - $config['bubble'] ?? true, $config['permission'] ?? null, $config['locking'] ?? false - )), - ]); - } - - /** - * Create an instance of the Slack log driver. - * - * @param array $config - * @return \Psr\Log\LoggerInterface - */ - protected function createSlackDriver(array $config) - { - return new Monolog($this->parseChannel($config), [ - $this->prepareHandler(new SlackWebhookHandler( - $config['url'], - $config['channel'] ?? null, - $config['username'] ?? 'Laravel', - $config['attachment'] ?? true, - $config['emoji'] ?? ':boom:', - $config['short'] ?? false, - $config['context'] ?? true, - $this->level($config) - )), - ]); - } - - /** - * Create an instance of the syslog log driver. - * - * @param array $config - * @return \Psr\Log\LoggerInterface - */ - protected function createSyslogDriver(array $config) - { - return new Monolog($this->parseChannel($config), [ - $this->prepareHandler(new SyslogHandler( - $this->app['config']['app.name'], $config['facility'] ?? LOG_USER, $this->level($config)) - ), - ]); - } - - /** - * Create an instance of the "error log" log driver. - * - * @param array $config - * @return \Psr\Log\LoggerInterface - */ - protected function createErrorlogDriver(array $config) - { - return new Monolog($this->parseChannel($config), [ - $this->prepareHandler(new ErrorLogHandler( - $config['type'] ?? ErrorLogHandler::OPERATING_SYSTEM, $this->level($config)) - ), - ]); - } - - /** - * Create an instance of any handler available in Monolog. - * - * @param array $config - * @return \Psr\Log\LoggerInterface - * - * @throws \InvalidArgumentException - * @throws \Illuminate\Contracts\Container\BindingResolutionException - */ - protected function createMonologDriver(array $config) - { - if (! is_a($config['handler'], HandlerInterface::class, true)) { - throw new InvalidArgumentException( - $config['handler'].' must be an instance of '.HandlerInterface::class - ); - } - - $with = array_merge($config['with'] ?? [], $config['handler_with'] ?? []); - - return new Monolog($this->parseChannel($config), [$this->prepareHandler( - $this->app->make($config['handler'], $with), $config - )]); - } - - /** - * Prepare the handlers for usage by Monolog. - * - * @param array $handlers - * @return array - */ - protected function prepareHandlers(array $handlers) - { - foreach ($handlers as $key => $handler) { - $handlers[$key] = $this->prepareHandler($handler); - } - - return $handlers; - } - - /** - * Prepare the handler for usage by Monolog. - * - * @param \Monolog\Handler\HandlerInterface $handler - * @param array $config - * @return \Monolog\Handler\HandlerInterface - */ - protected function prepareHandler(HandlerInterface $handler, array $config = []) - { - if (! isset($config['formatter'])) { - $handler->setFormatter($this->formatter()); - } elseif ($config['formatter'] !== 'default') { - $handler->setFormatter($this->app->make($config['formatter'], $config['formatter_with'] ?? [])); - } - - return $handler; - } - - /** - * Get a Monolog formatter instance. - * - * @return \Monolog\Formatter\FormatterInterface - */ - protected function formatter() - { - return tap(new LineFormatter(null, null, true, true), function ($formatter) { - $formatter->includeStacktraces(); - }); - } - - /** - * Extract the log channel from the given configuration. - * - * @param array $config - * @return string - */ - protected function parseChannel(array $config) - { - if (! isset($config['name'])) { - return $this->app->bound('env') ? $this->app->environment() : 'production'; - } - - return $config['name']; - } - - /** - * Parse the string level into a Monolog constant. - * - * @param array $config - * @return int - * - * @throws \InvalidArgumentException - */ - protected function level(array $config) - { - $level = $config['level'] ?? 'debug'; - - if (isset($this->levels[$level])) { - return $this->levels[$level]; - } - - throw new InvalidArgumentException('Invalid log level.'); - } - - /** - * Get the log connection configuration. - * - * @param string $name - * @return array - */ - protected function configurationFor($name) - { - return $this->app['config']["logging.channels.{$name}"]; - } - - /** - * Get the default log driver name. - * - * @return string - */ - public function getDefaultDriver() - { - return $this->app['config']['logging.default']; - } - - /** - * Set the default log driver name. - * - * @param string $name - * @return void - */ - public function setDefaultDriver($name) - { - $this->app['config']['logging.default'] = $name; - } - - /** - * Register a custom driver creator Closure. - * - * @param string $driver - * @param \Closure $callback - * @return $this - */ - public function extend($driver, Closure $callback) - { - $this->customCreators[$driver] = $callback->bindTo($this, $this); - - return $this; - } - - /** - * System is unusable. - * - * @param string $message - * @param array $context - * - * @return void - */ - public function emergency($message, array $context = []) - { - return $this->driver()->emergency($message, $context); - } - - /** - * Action must be taken immediately. - * - * Example: Entire website down, database unavailable, etc. This should - * trigger the SMS alerts and wake you up. - * - * @param string $message - * @param array $context - * - * @return void - */ - public function alert($message, array $context = []) - { - return $this->driver()->alert($message, $context); - } - - /** - * Critical conditions. - * - * Example: Application component unavailable, unexpected exception. - * - * @param string $message - * @param array $context - * - * @return void - */ - public function critical($message, array $context = []) - { - return $this->driver()->critical($message, $context); - } - - /** - * Runtime errors that do not require immediate action but should typically - * be logged and monitored. - * - * @param string $message - * @param array $context - * - * @return void - */ - public function error($message, array $context = []) - { - return $this->driver()->error($message, $context); - } - - /** - * Exceptional occurrences that are not errors. - * - * Example: Use of deprecated APIs, poor use of an API, undesirable things - * that are not necessarily wrong. - * - * @param string $message - * @param array $context - * - * @return void - */ - public function warning($message, array $context = []) - { - return $this->driver()->warning($message, $context); - } - - /** - * Normal but significant events. - * - * @param string $message - * @param array $context - * - * @return void - */ - public function notice($message, array $context = []) - { - return $this->driver()->notice($message, $context); - } - - /** - * Interesting events. - * - * Example: User logs in, SQL logs. - * - * @param string $message - * @param array $context - * - * @return void - */ - public function info($message, array $context = []) - { - return $this->driver()->info($message, $context); - } - - /** - * Detailed debug information. - * - * @param string $message - * @param array $context - * - * @return void - */ - public function debug($message, array $context = []) - { - return $this->driver()->debug($message, $context); - } - - /** - * Logs with an arbitrary level. - * - * @param mixed $level - * @param string $message - * @param array $context - * - * @return void - */ - public function log($level, $message, array $context = []) - { - return $this->driver()->log($level, $message, $context); - } - - /** - * Dynamically call the default driver instance. - * - * @param string $method - * @param array $parameters - * @return mixed - */ - public function __call($method, $parameters) - { - return $this->driver()->$method(...$parameters); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Log/LogServiceProvider.php b/vendor/laravel/framework/src/Illuminate/Log/LogServiceProvider.php deleted file mode 100644 index cd073921..00000000 --- a/vendor/laravel/framework/src/Illuminate/Log/LogServiceProvider.php +++ /dev/null @@ -1,20 +0,0 @@ -app->singleton('log', function () { - return new LogManager($this->app); - }); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Log/Logger.php b/vendor/laravel/framework/src/Illuminate/Log/Logger.php deleted file mode 100755 index 6d5fdca2..00000000 --- a/vendor/laravel/framework/src/Illuminate/Log/Logger.php +++ /dev/null @@ -1,275 +0,0 @@ -logger = $logger; - $this->dispatcher = $dispatcher; - } - - /** - * Log an emergency message to the logs. - * - * @param string $message - * @param array $context - * @return void - */ - public function emergency($message, array $context = []) - { - $this->writeLog(__FUNCTION__, $message, $context); - } - - /** - * Log an alert message to the logs. - * - * @param string $message - * @param array $context - * @return void - */ - public function alert($message, array $context = []) - { - $this->writeLog(__FUNCTION__, $message, $context); - } - - /** - * Log a critical message to the logs. - * - * @param string $message - * @param array $context - * @return void - */ - public function critical($message, array $context = []) - { - $this->writeLog(__FUNCTION__, $message, $context); - } - - /** - * Log an error message to the logs. - * - * @param string $message - * @param array $context - * @return void - */ - public function error($message, array $context = []) - { - $this->writeLog(__FUNCTION__, $message, $context); - } - - /** - * Log a warning message to the logs. - * - * @param string $message - * @param array $context - * @return void - */ - public function warning($message, array $context = []) - { - $this->writeLog(__FUNCTION__, $message, $context); - } - - /** - * Log a notice to the logs. - * - * @param string $message - * @param array $context - * @return void - */ - public function notice($message, array $context = []) - { - $this->writeLog(__FUNCTION__, $message, $context); - } - - /** - * Log an informational message to the logs. - * - * @param string $message - * @param array $context - * @return void - */ - public function info($message, array $context = []) - { - $this->writeLog(__FUNCTION__, $message, $context); - } - - /** - * Log a debug message to the logs. - * - * @param string $message - * @param array $context - * @return void - */ - public function debug($message, array $context = []) - { - $this->writeLog(__FUNCTION__, $message, $context); - } - - /** - * Log a message to the logs. - * - * @param string $level - * @param string $message - * @param array $context - * @return void - */ - public function log($level, $message, array $context = []) - { - $this->writeLog($level, $message, $context); - } - - /** - * Dynamically pass log calls into the writer. - * - * @param string $level - * @param string $message - * @param array $context - * @return void - */ - public function write($level, $message, array $context = []) - { - $this->writeLog($level, $message, $context); - } - - /** - * Write a message to the log. - * - * @param string $level - * @param string $message - * @param array $context - * @return void - */ - protected function writeLog($level, $message, $context) - { - $this->fireLogEvent($level, $message = $this->formatMessage($message), $context); - - $this->logger->{$level}($message, $context); - } - - /** - * Register a new callback handler for when a log event is triggered. - * - * @param \Closure $callback - * @return void - * - * @throws \RuntimeException - */ - public function listen(Closure $callback) - { - if (! isset($this->dispatcher)) { - throw new RuntimeException('Events dispatcher has not been set.'); - } - - $this->dispatcher->listen(MessageLogged::class, $callback); - } - - /** - * Fires a log event. - * - * @param string $level - * @param string $message - * @param array $context - * @return void - */ - protected function fireLogEvent($level, $message, array $context = []) - { - // If the event dispatcher is set, we will pass along the parameters to the - // log listeners. These are useful for building profilers or other tools - // that aggregate all of the log messages for a given "request" cycle. - if (isset($this->dispatcher)) { - $this->dispatcher->dispatch(new MessageLogged($level, $message, $context)); - } - } - - /** - * Format the parameters for the logger. - * - * @param mixed $message - * @return mixed - */ - protected function formatMessage($message) - { - if (is_array($message)) { - return var_export($message, true); - } elseif ($message instanceof Jsonable) { - return $message->toJson(); - } elseif ($message instanceof Arrayable) { - return var_export($message->toArray(), true); - } - - return $message; - } - - /** - * Get the underlying logger implementation. - * - * @return \Psr\Log\LoggerInterface - */ - public function getLogger() - { - return $this->logger; - } - - /** - * Get the event dispatcher instance. - * - * @return \Illuminate\Contracts\Events\Dispatcher - */ - public function getEventDispatcher() - { - return $this->dispatcher; - } - - /** - * Set the event dispatcher instance. - * - * @param \Illuminate\Contracts\Events\Dispatcher $dispatcher - * @return void - */ - public function setEventDispatcher(Dispatcher $dispatcher) - { - $this->dispatcher = $dispatcher; - } - - /** - * Dynamically proxy method calls to the underlying logger. - * - * @param string $method - * @param array $parameters - * @return mixed - */ - public function __call($method, $parameters) - { - return $this->logger->{$method}(...$parameters); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Log/composer.json b/vendor/laravel/framework/src/Illuminate/Log/composer.json deleted file mode 100755 index 15f56f01..00000000 --- a/vendor/laravel/framework/src/Illuminate/Log/composer.json +++ /dev/null @@ -1,36 +0,0 @@ -{ - "name": "illuminate/log", - "description": "The Illuminate Log package.", - "license": "MIT", - "homepage": "https://laravel.com", - "support": { - "issues": "https://github.com/laravel/framework/issues", - "source": "https://github.com/laravel/framework" - }, - "authors": [ - { - "name": "Taylor Otwell", - "email": "taylor@laravel.com" - } - ], - "require": { - "php": "^7.1.3", - "illuminate/contracts": "5.6.*", - "illuminate/support": "5.6.*", - "monolog/monolog": "~1.11" - }, - "autoload": { - "psr-4": { - "Illuminate\\Log\\": "" - } - }, - "extra": { - "branch-alias": { - "dev-master": "5.6-dev" - } - }, - "config": { - "sort-packages": true - }, - "minimum-stability": "dev" -} diff --git a/vendor/laravel/framework/src/Illuminate/Mail/Events/MessageSending.php b/vendor/laravel/framework/src/Illuminate/Mail/Events/MessageSending.php deleted file mode 100644 index cff45213..00000000 --- a/vendor/laravel/framework/src/Illuminate/Mail/Events/MessageSending.php +++ /dev/null @@ -1,33 +0,0 @@ -data = $data; - $this->message = $message; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Mail/Events/MessageSent.php b/vendor/laravel/framework/src/Illuminate/Mail/Events/MessageSent.php deleted file mode 100644 index 9dee09c2..00000000 --- a/vendor/laravel/framework/src/Illuminate/Mail/Events/MessageSent.php +++ /dev/null @@ -1,33 +0,0 @@ -data = $data; - $this->message = $message; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Mail/MailServiceProvider.php b/vendor/laravel/framework/src/Illuminate/Mail/MailServiceProvider.php deleted file mode 100755 index 4be6bfd5..00000000 --- a/vendor/laravel/framework/src/Illuminate/Mail/MailServiceProvider.php +++ /dev/null @@ -1,152 +0,0 @@ -registerSwiftMailer(); - - $this->registerIlluminateMailer(); - - $this->registerMarkdownRenderer(); - } - - /** - * Register the Illuminate mailer instance. - * - * @return void - */ - protected function registerIlluminateMailer() - { - $this->app->singleton('mailer', function ($app) { - $config = $app->make('config')->get('mail'); - - // Once we have create the mailer instance, we will set a container instance - // on the mailer. This allows us to resolve mailer classes via containers - // for maximum testability on said classes instead of passing Closures. - $mailer = new Mailer( - $app['view'], $app['swift.mailer'], $app['events'] - ); - - if ($app->bound('queue')) { - $mailer->setQueue($app['queue']); - } - - // Next we will set all of the global addresses on this mailer, which allows - // for easy unification of all "from" addresses as well as easy debugging - // of sent messages since they get be sent into a single email address. - foreach (['from', 'reply_to', 'to'] as $type) { - $this->setGlobalAddress($mailer, $config, $type); - } - - return $mailer; - }); - } - - /** - * Set a global address on the mailer by type. - * - * @param \Illuminate\Mail\Mailer $mailer - * @param array $config - * @param string $type - * @return void - */ - protected function setGlobalAddress($mailer, array $config, $type) - { - $address = Arr::get($config, $type); - - if (is_array($address) && isset($address['address'])) { - $mailer->{'always'.Str::studly($type)}($address['address'], $address['name']); - } - } - - /** - * Register the Swift Mailer instance. - * - * @return void - */ - public function registerSwiftMailer() - { - $this->registerSwiftTransport(); - - // Once we have the transporter registered, we will register the actual Swift - // mailer instance, passing in the transport instances, which allows us to - // override this transporter instances during app start-up if necessary. - $this->app->singleton('swift.mailer', function ($app) { - if ($domain = $app->make('config')->get('mail.domain')) { - Swift_DependencyContainer::getInstance() - ->register('mime.idgenerator.idright') - ->asValue($domain); - } - - return new Swift_Mailer($app['swift.transport']->driver()); - }); - } - - /** - * Register the Swift Transport instance. - * - * @return void - */ - protected function registerSwiftTransport() - { - $this->app->singleton('swift.transport', function ($app) { - return new TransportManager($app); - }); - } - - /** - * Register the Markdown renderer instance. - * - * @return void - */ - protected function registerMarkdownRenderer() - { - if ($this->app->runningInConsole()) { - $this->publishes([ - __DIR__.'/resources/views' => $this->app->resourcePath('views/vendor/mail'), - ], 'laravel-mail'); - } - - $this->app->singleton(Markdown::class, function ($app) { - $config = $app->make('config'); - - return new Markdown($app->make('view'), [ - 'theme' => $config->get('mail.markdown.theme', 'default'), - 'paths' => $config->get('mail.markdown.paths', []), - ]); - }); - } - - /** - * Get the services provided by the provider. - * - * @return array - */ - public function provides() - { - return [ - 'mailer', 'swift.mailer', 'swift.transport', Markdown::class, - ]; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Mail/Mailable.php b/vendor/laravel/framework/src/Illuminate/Mail/Mailable.php deleted file mode 100644 index dc3cb69b..00000000 --- a/vendor/laravel/framework/src/Illuminate/Mail/Mailable.php +++ /dev/null @@ -1,786 +0,0 @@ -make(Translator::class); - - $this->withLocale($this->locale, $translator, function () use ($mailer) { - Container::getInstance()->call([$this, 'build']); - - $mailer->send($this->buildView(), $this->buildViewData(), function ($message) { - $this->buildFrom($message) - ->buildRecipients($message) - ->buildSubject($message) - ->runCallbacks($message) - ->buildAttachments($message); - }); - }); - } - - /** - * Queue the message for sending. - * - * @param \Illuminate\Contracts\Queue\Factory $queue - * @return mixed - */ - public function queue(Queue $queue) - { - if (property_exists($this, 'delay')) { - return $this->later($this->delay, $queue); - } - - $connection = property_exists($this, 'connection') ? $this->connection : null; - - $queueName = property_exists($this, 'queue') ? $this->queue : null; - - return $queue->connection($connection)->pushOn( - $queueName ?: null, new SendQueuedMailable($this) - ); - } - - /** - * Deliver the queued message after the given delay. - * - * @param \DateTimeInterface|\DateInterval|int $delay - * @param \Illuminate\Contracts\Queue\Factory $queue - * @return mixed - */ - public function later($delay, Queue $queue) - { - $connection = property_exists($this, 'connection') ? $this->connection : null; - - $queueName = property_exists($this, 'queue') ? $this->queue : null; - - return $queue->connection($connection)->laterOn( - $queueName ?: null, $delay, new SendQueuedMailable($this) - ); - } - - /** - * Render the mailable into a view. - * - * @return \Illuminate\View\View - */ - public function render() - { - Container::getInstance()->call([$this, 'build']); - - return Container::getInstance()->make('mailer')->render( - $this->buildView(), $this->buildViewData() - ); - } - - /** - * Build the view for the message. - * - * @return array|string - */ - protected function buildView() - { - if (isset($this->html)) { - return array_filter([ - 'html' => new HtmlString($this->html), - 'text' => isset($this->textView) ? $this->textView : null, - ]); - } - - if (isset($this->markdown)) { - return $this->buildMarkdownView(); - } - - if (isset($this->view, $this->textView)) { - return [$this->view, $this->textView]; - } elseif (isset($this->textView)) { - return ['text' => $this->textView]; - } - - return $this->view; - } - - /** - * Build the Markdown view for the message. - * - * @return array - */ - protected function buildMarkdownView() - { - $markdown = Container::getInstance()->make(Markdown::class); - - if (isset($this->theme)) { - $markdown->theme($this->theme); - } - - $data = $this->buildViewData(); - - return [ - 'html' => $markdown->render($this->markdown, $data), - 'text' => $this->buildMarkdownText($markdown, $data), - ]; - } - - /** - * Build the view data for the message. - * - * @return array - */ - public function buildViewData() - { - $data = $this->viewData; - - foreach ((new ReflectionClass($this))->getProperties(ReflectionProperty::IS_PUBLIC) as $property) { - if ($property->getDeclaringClass()->getName() !== self::class) { - $data[$property->getName()] = $property->getValue($this); - } - } - - return $data; - } - - /** - * Build the text view for a Markdown message. - * - * @param \Illuminate\Mail\Markdown $markdown - * @param array $data - * @return string - */ - protected function buildMarkdownText($markdown, $data) - { - return $this->textView - ?? $markdown->renderText($this->markdown, $data); - } - - /** - * Add the sender to the message. - * - * @param \Illuminate\Mail\Message $message - * @return $this - */ - protected function buildFrom($message) - { - if (! empty($this->from)) { - $message->from($this->from[0]['address'], $this->from[0]['name']); - } - - return $this; - } - - /** - * Add all of the recipients to the message. - * - * @param \Illuminate\Mail\Message $message - * @return $this - */ - protected function buildRecipients($message) - { - foreach (['to', 'cc', 'bcc', 'replyTo'] as $type) { - foreach ($this->{$type} as $recipient) { - $message->{$type}($recipient['address'], $recipient['name']); - } - } - - return $this; - } - - /** - * Set the subject for the message. - * - * @param \Illuminate\Mail\Message $message - * @return $this - */ - protected function buildSubject($message) - { - if ($this->subject) { - $message->subject($this->subject); - } else { - $message->subject(Str::title(Str::snake(class_basename($this), ' '))); - } - - return $this; - } - - /** - * Add all of the attachments to the message. - * - * @param \Illuminate\Mail\Message $message - * @return $this - */ - protected function buildAttachments($message) - { - foreach ($this->attachments as $attachment) { - $message->attach($attachment['file'], $attachment['options']); - } - - foreach ($this->rawAttachments as $attachment) { - $message->attachData( - $attachment['data'], $attachment['name'], $attachment['options'] - ); - } - - return $this; - } - - /** - * Run the callbacks for the message. - * - * @param \Illuminate\Mail\Message $message - * @return $this - */ - protected function runCallbacks($message) - { - foreach ($this->callbacks as $callback) { - $callback($message->getSwiftMessage()); - } - - return $this; - } - - /** - * Set the locale of the message. - * - * @param string $locale - * @return $this - */ - public function locale($locale) - { - $this->locale = $locale; - - return $this; - } - - /** - * Set the priority of this message. - * - * The value is an integer where 1 is the highest priority and 5 is the lowest. - * - * @param int $level - * @return $this - */ - public function priority($level = 3) - { - $this->callbacks[] = function ($message) use ($level) { - $message->setPriority($level); - }; - - return $this; - } - - /** - * Set the sender of the message. - * - * @param object|array|string $address - * @param string|null $name - * @return $this - */ - public function from($address, $name = null) - { - return $this->setAddress($address, $name, 'from'); - } - - /** - * Determine if the given recipient is set on the mailable. - * - * @param object|array|string $address - * @param string|null $name - * @return bool - */ - public function hasFrom($address, $name = null) - { - return $this->hasRecipient($address, $name, 'from'); - } - - /** - * Set the recipients of the message. - * - * @param object|array|string $address - * @param string|null $name - * @return $this - */ - public function to($address, $name = null) - { - return $this->setAddress($address, $name, 'to'); - } - - /** - * Determine if the given recipient is set on the mailable. - * - * @param object|array|string $address - * @param string|null $name - * @return bool - */ - public function hasTo($address, $name = null) - { - return $this->hasRecipient($address, $name, 'to'); - } - - /** - * Set the recipients of the message. - * - * @param object|array|string $address - * @param string|null $name - * @return $this - */ - public function cc($address, $name = null) - { - return $this->setAddress($address, $name, 'cc'); - } - - /** - * Determine if the given recipient is set on the mailable. - * - * @param object|array|string $address - * @param string|null $name - * @return bool - */ - public function hasCc($address, $name = null) - { - return $this->hasRecipient($address, $name, 'cc'); - } - - /** - * Set the recipients of the message. - * - * @param object|array|string $address - * @param string|null $name - * @return $this - */ - public function bcc($address, $name = null) - { - return $this->setAddress($address, $name, 'bcc'); - } - - /** - * Determine if the given recipient is set on the mailable. - * - * @param object|array|string $address - * @param string|null $name - * @return bool - */ - public function hasBcc($address, $name = null) - { - return $this->hasRecipient($address, $name, 'bcc'); - } - - /** - * Set the "reply to" address of the message. - * - * @param object|array|string $address - * @param string|null $name - * @return $this - */ - public function replyTo($address, $name = null) - { - return $this->setAddress($address, $name, 'replyTo'); - } - - /** - * Determine if the given recipient is set on the mailable. - * - * @param object|array|string $address - * @param string|null $name - * @return bool - */ - public function hasReplyTo($address, $name = null) - { - return $this->hasRecipient($address, $name, 'replyTo'); - } - - /** - * Set the recipients of the message. - * - * All recipients are stored internally as [['name' => ?, 'address' => ?]] - * - * @param object|array|string $address - * @param string|null $name - * @param string $property - * @return $this - */ - protected function setAddress($address, $name = null, $property = 'to') - { - foreach ($this->addressesToArray($address, $name) as $recipient) { - $recipient = $this->normalizeRecipient($recipient); - - $this->{$property}[] = [ - 'name' => $recipient->name ?? null, - 'address' => $recipient->email, - ]; - } - - return $this; - } - - /** - * Convert the given recipient arguments to an array. - * - * @param object|array|string $address - * @param string|null $name - * @return array - */ - protected function addressesToArray($address, $name) - { - if (! is_array($address) && ! $address instanceof Collection) { - $address = is_string($name) ? [['name' => $name, 'email' => $address]] : [$address]; - } - - return $address; - } - - /** - * Convert the given recipient into an object. - * - * @param mixed $recipient - * @return object - */ - protected function normalizeRecipient($recipient) - { - if (is_array($recipient)) { - return (object) $recipient; - } elseif (is_string($recipient)) { - return (object) ['email' => $recipient]; - } - - return $recipient; - } - - /** - * Determine if the given recipient is set on the mailable. - * - * @param object|array|string $address - * @param string|null $name - * @param string $property - * @return bool - */ - protected function hasRecipient($address, $name = null, $property = 'to') - { - $expected = $this->normalizeRecipient( - $this->addressesToArray($address, $name)[0] - ); - - $expected = [ - 'name' => $expected->name ?? null, - 'address' => $expected->email, - ]; - - return collect($this->{$property})->contains(function ($actual) use ($expected) { - if (! isset($expected['name'])) { - return $actual['address'] == $expected['address']; - } - - return $actual == $expected; - }); - } - - /** - * Set the subject of the message. - * - * @param string $subject - * @return $this - */ - public function subject($subject) - { - $this->subject = $subject; - - return $this; - } - - /** - * Set the Markdown template for the message. - * - * @param string $view - * @param array $data - * @return $this - */ - public function markdown($view, array $data = []) - { - $this->markdown = $view; - $this->viewData = array_merge($this->viewData, $data); - - return $this; - } - - /** - * Set the view and view data for the message. - * - * @param string $view - * @param array $data - * @return $this - */ - public function view($view, array $data = []) - { - $this->view = $view; - $this->viewData = array_merge($this->viewData, $data); - - return $this; - } - - /** - * Set the rendered HTML content for the message. - * - * @param string $html - * @return $this - */ - public function html($html) - { - $this->html = $html; - - return $this; - } - - /** - * Set the plain text view for the message. - * - * @param string $textView - * @param array $data - * @return $this - */ - public function text($textView, array $data = []) - { - $this->textView = $textView; - $this->viewData = array_merge($this->viewData, $data); - - return $this; - } - - /** - * Set the view data for the message. - * - * @param string|array $key - * @param mixed $value - * @return $this - */ - public function with($key, $value = null) - { - if (is_array($key)) { - $this->viewData = array_merge($this->viewData, $key); - } else { - $this->viewData[$key] = $value; - } - - return $this; - } - - /** - * Attach a file to the message. - * - * @param string $file - * @param array $options - * @return $this - */ - public function attach($file, array $options = []) - { - $this->attachments[] = compact('file', 'options'); - - return $this; - } - - /** - * Attach a file to the message from storage. - * - * @param string $path - * @param string $name - * @param array $options - * @return $this - */ - public function attachFromStorage($path, $name = null, array $options = []) - { - return $this->attachFromStorageDisk(null, $path, $name, $options); - } - - /** - * Attach a file to the message from storage. - * - * @param string $disk - * @param string $path - * @param string $name - * @param array $options - * @return $this - */ - public function attachFromStorageDisk($disk, $path, $name = null, array $options = []) - { - $storage = Container::getInstance()->make(FilesystemFactory::class)->disk($disk); - - return $this->attachData( - $storage->get($path), $name ?? basename($path), - array_merge(['mime' => $storage->mimeType($path)], $options) - ); - } - - /** - * Attach in-memory data as an attachment. - * - * @param string $data - * @param string $name - * @param array $options - * @return $this - */ - public function attachData($data, $name, array $options = []) - { - $this->rawAttachments[] = compact('data', 'name', 'options'); - - return $this; - } - - /** - * Register a callback to be called with the Swift message instance. - * - * @param callable $callback - * @return $this - */ - public function withSwiftMessage($callback) - { - $this->callbacks[] = $callback; - - return $this; - } - - /** - * Dynamically bind parameters to the message. - * - * @param string $method - * @param array $parameters - * @return $this - * - * @throws \BadMethodCallException - */ - public function __call($method, $parameters) - { - if (Str::startsWith($method, 'with')) { - return $this->with(Str::snake(substr($method, 4)), $parameters[0]); - } - - throw new BadMethodCallException(sprintf( - 'Method %s::%s does not exist.', static::class, $method - )); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Mail/Mailer.php b/vendor/laravel/framework/src/Illuminate/Mail/Mailer.php deleted file mode 100755 index bc6373c3..00000000 --- a/vendor/laravel/framework/src/Illuminate/Mail/Mailer.php +++ /dev/null @@ -1,569 +0,0 @@ -views = $views; - $this->swift = $swift; - $this->events = $events; - } - - /** - * Set the global from address and name. - * - * @param string $address - * @param string|null $name - * @return void - */ - public function alwaysFrom($address, $name = null) - { - $this->from = compact('address', 'name'); - } - - /** - * Set the global reply-to address and name. - * - * @param string $address - * @param string|null $name - * @return void - */ - public function alwaysReplyTo($address, $name = null) - { - $this->replyTo = compact('address', 'name'); - } - - /** - * Set the global to address and name. - * - * @param string $address - * @param string|null $name - * @return void - */ - public function alwaysTo($address, $name = null) - { - $this->to = compact('address', 'name'); - } - - /** - * Begin the process of mailing a mailable class instance. - * - * @param mixed $users - * @return \Illuminate\Mail\PendingMail - */ - public function to($users) - { - return (new PendingMail($this))->to($users); - } - - /** - * Begin the process of mailing a mailable class instance. - * - * @param mixed $users - * @return \Illuminate\Mail\PendingMail - */ - public function bcc($users) - { - return (new PendingMail($this))->bcc($users); - } - - /** - * Send a new message with only an HTML part. - * - * @param string $html - * @param mixed $callback - * @return void - */ - public function html($html, $callback) - { - return $this->send(['html' => new HtmlString($html)], [], $callback); - } - - /** - * Send a new message when only a raw text part. - * - * @param string $text - * @param mixed $callback - * @return void - */ - public function raw($text, $callback) - { - return $this->send(['raw' => $text], [], $callback); - } - - /** - * Send a new message when only a plain part. - * - * @param string $view - * @param array $data - * @param mixed $callback - * @return void - */ - public function plain($view, array $data, $callback) - { - return $this->send(['text' => $view], $data, $callback); - } - - /** - * Render the given message as a view. - * - * @param string|array $view - * @param array $data - * @return string - */ - public function render($view, array $data = []) - { - // First we need to parse the view, which could either be a string or an array - // containing both an HTML and plain text versions of the view which should - // be used when sending an e-mail. We will extract both of them out here. - list($view, $plain, $raw) = $this->parseView($view); - - $data['message'] = $this->createMessage(); - - return $this->renderView($view ?: $plain, $data); - } - - /** - * Send a new message using a view. - * - * @param string|array|MailableContract $view - * @param array $data - * @param \Closure|string $callback - * @return void - */ - public function send($view, array $data = [], $callback = null) - { - if ($view instanceof MailableContract) { - return $this->sendMailable($view); - } - - // First we need to parse the view, which could either be a string or an array - // containing both an HTML and plain text versions of the view which should - // be used when sending an e-mail. We will extract both of them out here. - list($view, $plain, $raw) = $this->parseView($view); - - $data['message'] = $message = $this->createMessage(); - - // Once we have retrieved the view content for the e-mail we will set the body - // of this message using the HTML type, which will provide a simple wrapper - // to creating view based emails that are able to receive arrays of data. - call_user_func($callback, $message); - - $this->addContent($message, $view, $plain, $raw, $data); - - // If a global "to" address has been set, we will set that address on the mail - // message. This is primarily useful during local development in which each - // message should be delivered into a single mail address for inspection. - if (isset($this->to['address'])) { - $this->setGlobalTo($message); - } - - // Next we will determine if the message should be sent. We give the developer - // one final chance to stop this message and then we will send it to all of - // its recipients. We will then fire the sent event for the sent message. - $swiftMessage = $message->getSwiftMessage(); - - if ($this->shouldSendMessage($swiftMessage, $data)) { - $this->sendSwiftMessage($swiftMessage); - - $this->dispatchSentEvent($message, $data); - } - } - - /** - * Send the given mailable. - * - * @param \Illuminate\Contracts\Mail\Mailable $mailable - * @return mixed - */ - protected function sendMailable(MailableContract $mailable) - { - return $mailable instanceof ShouldQueue - ? $mailable->queue($this->queue) : $mailable->send($this); - } - - /** - * Parse the given view name or array. - * - * @param string|array $view - * @return array - * - * @throws \InvalidArgumentException - */ - protected function parseView($view) - { - if (is_string($view)) { - return [$view, null, null]; - } - - // If the given view is an array with numeric keys, we will just assume that - // both a "pretty" and "plain" view were provided, so we will return this - // array as is, since it should contain both views with numerical keys. - if (is_array($view) && isset($view[0])) { - return [$view[0], $view[1], null]; - } - - // If this view is an array but doesn't contain numeric keys, we will assume - // the views are being explicitly specified and will extract them via the - // named keys instead, allowing the developers to use one or the other. - if (is_array($view)) { - return [ - $view['html'] ?? null, - $view['text'] ?? null, - $view['raw'] ?? null, - ]; - } - - throw new InvalidArgumentException('Invalid view.'); - } - - /** - * Add the content to a given message. - * - * @param \Illuminate\Mail\Message $message - * @param string $view - * @param string $plain - * @param string $raw - * @param array $data - * @return void - */ - protected function addContent($message, $view, $plain, $raw, $data) - { - if (isset($view)) { - $message->setBody($this->renderView($view, $data), 'text/html'); - } - - if (isset($plain)) { - $method = isset($view) ? 'addPart' : 'setBody'; - - $message->$method($this->renderView($plain, $data), 'text/plain'); - } - - if (isset($raw)) { - $method = (isset($view) || isset($plain)) ? 'addPart' : 'setBody'; - - $message->$method($raw, 'text/plain'); - } - } - - /** - * Render the given view. - * - * @param string $view - * @param array $data - * @return string - */ - protected function renderView($view, $data) - { - return $view instanceof Htmlable - ? $view->toHtml() - : $this->views->make($view, $data)->render(); - } - - /** - * Set the global "to" address on the given message. - * - * @param \Illuminate\Mail\Message $message - * @return void - */ - protected function setGlobalTo($message) - { - $message->to($this->to['address'], $this->to['name'], true); - $message->cc(null, null, true); - $message->bcc(null, null, true); - } - - /** - * Queue a new e-mail message for sending. - * - * @param string|array|MailableContract $view - * @param string|null $queue - * @return mixed - */ - public function queue($view, $queue = null) - { - if (! $view instanceof MailableContract) { - throw new InvalidArgumentException('Only mailables may be queued.'); - } - - return $view->queue(is_null($queue) ? $this->queue : $queue); - } - - /** - * Queue a new e-mail message for sending on the given queue. - * - * @param string $queue - * @param string|array $view - * @return mixed - */ - public function onQueue($queue, $view) - { - return $this->queue($view, $queue); - } - - /** - * Queue a new e-mail message for sending on the given queue. - * - * This method didn't match rest of framework's "onQueue" phrasing. Added "onQueue". - * - * @param string $queue - * @param string|array $view - * @return mixed - */ - public function queueOn($queue, $view) - { - return $this->onQueue($queue, $view); - } - - /** - * Queue a new e-mail message for sending after (n) seconds. - * - * @param \DateTimeInterface|\DateInterval|int $delay - * @param string|array|MailableContract $view - * @param string|null $queue - * @return mixed - */ - public function later($delay, $view, $queue = null) - { - if (! $view instanceof MailableContract) { - throw new InvalidArgumentException('Only mailables may be queued.'); - } - - return $view->later($delay, is_null($queue) ? $this->queue : $queue); - } - - /** - * Queue a new e-mail message for sending after (n) seconds on the given queue. - * - * @param string $queue - * @param \DateTimeInterface|\DateInterval|int $delay - * @param string|array $view - * @return mixed - */ - public function laterOn($queue, $delay, $view) - { - return $this->later($delay, $view, $queue); - } - - /** - * Create a new message instance. - * - * @return \Illuminate\Mail\Message - */ - protected function createMessage() - { - $message = new Message($this->swift->createMessage('message')); - - // If a global from address has been specified we will set it on every message - // instance so the developer does not have to repeat themselves every time - // they create a new message. We'll just go ahead and push this address. - if (! empty($this->from['address'])) { - $message->from($this->from['address'], $this->from['name']); - } - - // When a global reply address was specified we will set this on every message - // instance so the developer does not have to repeat themselves every time - // they create a new message. We will just go ahead and push this address. - if (! empty($this->replyTo['address'])) { - $message->replyTo($this->replyTo['address'], $this->replyTo['name']); - } - - return $message; - } - - /** - * Send a Swift Message instance. - * - * @param \Swift_Message $message - * @return void - */ - protected function sendSwiftMessage($message) - { - try { - return $this->swift->send($message, $this->failedRecipients); - } finally { - $this->forceReconnection(); - } - } - - /** - * Determines if the message can be sent. - * - * @param \Swift_Message $message - * @param array $data - * @return bool - */ - protected function shouldSendMessage($message, $data = []) - { - if (! $this->events) { - return true; - } - - return $this->events->until( - new Events\MessageSending($message, $data) - ) !== false; - } - - /** - * Dispatch the message sent event. - * - * @param \Illuminate\Mail\Message $message - * @param array $data - * @return void - */ - protected function dispatchSentEvent($message, $data = []) - { - if ($this->events) { - $this->events->dispatch( - new Events\MessageSent($message->getSwiftMessage(), $data) - ); - } - } - - /** - * Force the transport to re-connect. - * - * This will prevent errors in daemon queue situations. - * - * @return void - */ - protected function forceReconnection() - { - $this->getSwiftMailer()->getTransport()->stop(); - } - - /** - * Get the view factory instance. - * - * @return \Illuminate\Contracts\View\Factory - */ - public function getViewFactory() - { - return $this->views; - } - - /** - * Get the Swift Mailer instance. - * - * @return \Swift_Mailer - */ - public function getSwiftMailer() - { - return $this->swift; - } - - /** - * Get the array of failed recipients. - * - * @return array - */ - public function failures() - { - return $this->failedRecipients; - } - - /** - * Set the Swift Mailer instance. - * - * @param \Swift_Mailer $swift - * @return void - */ - public function setSwiftMailer($swift) - { - $this->swift = $swift; - } - - /** - * Set the queue manager instance. - * - * @param \Illuminate\Contracts\Queue\Factory $queue - * @return $this - */ - public function setQueue(QueueContract $queue) - { - $this->queue = $queue; - - return $this; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Mail/Markdown.php b/vendor/laravel/framework/src/Illuminate/Mail/Markdown.php deleted file mode 100644 index ab9ed3ec..00000000 --- a/vendor/laravel/framework/src/Illuminate/Mail/Markdown.php +++ /dev/null @@ -1,160 +0,0 @@ -view = $view; - $this->theme = $options['theme'] ?? 'default'; - $this->loadComponentsFrom($options['paths'] ?? []); - } - - /** - * Render the Markdown template into HTML. - * - * @param string $view - * @param array $data - * @param \TijsVerkoyen\CssToInlineStyles\CssToInlineStyles|null $inliner - * @return \Illuminate\Support\HtmlString - */ - public function render($view, array $data = [], $inliner = null) - { - $this->view->flushFinderCache(); - - $contents = $this->view->replaceNamespace( - 'mail', $this->htmlComponentPaths() - )->make($view, $data)->render(); - - return new HtmlString(($inliner ?: new CssToInlineStyles)->convert( - $contents, $this->view->make('mail::themes.'.$this->theme)->render() - )); - } - - /** - * Render the Markdown template into HTML. - * - * @param string $view - * @param array $data - * @return \Illuminate\Support\HtmlString - */ - public function renderText($view, array $data = []) - { - $this->view->flushFinderCache(); - - $contents = $this->view->replaceNamespace( - 'mail', $this->markdownComponentPaths() - )->make($view, $data)->render(); - - return new HtmlString( - html_entity_decode(preg_replace("/[\r\n]{2,}/", "\n\n", $contents), ENT_QUOTES, 'UTF-8') - ); - } - - /** - * Parse the given Markdown text into HTML. - * - * @param string $text - * @return \Illuminate\Support\HtmlString - */ - public static function parse($text) - { - $parsedown = new Parsedown; - - return new HtmlString($parsedown->text($text)); - } - - /** - * Get the HTML component paths. - * - * @return array - */ - public function htmlComponentPaths() - { - return array_map(function ($path) { - return $path.'/html'; - }, $this->componentPaths()); - } - - /** - * Get the Markdown component paths. - * - * @return array - */ - public function markdownComponentPaths() - { - return array_map(function ($path) { - return $path.'/markdown'; - }, $this->componentPaths()); - } - - /** - * Get the component paths. - * - * @return array - */ - protected function componentPaths() - { - return array_unique(array_merge($this->componentPaths, [ - __DIR__.'/resources/views', - ])); - } - - /** - * Register new mail component paths. - * - * @param array $paths - * @return void - */ - public function loadComponentsFrom(array $paths = []) - { - $this->componentPaths = $paths; - } - - /** - * Set the default theme to be used. - * - * @param string $theme - * @return $this - */ - public function theme($theme) - { - $this->theme = $theme; - - return $this; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Mail/Message.php b/vendor/laravel/framework/src/Illuminate/Mail/Message.php deleted file mode 100755 index 69324fc8..00000000 --- a/vendor/laravel/framework/src/Illuminate/Mail/Message.php +++ /dev/null @@ -1,328 +0,0 @@ -swift = $swift; - } - - /** - * Add a "from" address to the message. - * - * @param string|array $address - * @param string|null $name - * @return $this - */ - public function from($address, $name = null) - { - $this->swift->setFrom($address, $name); - - return $this; - } - - /** - * Set the "sender" of the message. - * - * @param string|array $address - * @param string|null $name - * @return $this - */ - public function sender($address, $name = null) - { - $this->swift->setSender($address, $name); - - return $this; - } - - /** - * Set the "return path" of the message. - * - * @param string $address - * @return $this - */ - public function returnPath($address) - { - $this->swift->setReturnPath($address); - - return $this; - } - - /** - * Add a recipient to the message. - * - * @param string|array $address - * @param string|null $name - * @param bool $override - * @return $this - */ - public function to($address, $name = null, $override = false) - { - if ($override) { - $this->swift->setTo($address, $name); - - return $this; - } - - return $this->addAddresses($address, $name, 'To'); - } - - /** - * Add a carbon copy to the message. - * - * @param string|array $address - * @param string|null $name - * @param bool $override - * @return $this - */ - public function cc($address, $name = null, $override = false) - { - if ($override) { - $this->swift->setCc($address, $name); - - return $this; - } - - return $this->addAddresses($address, $name, 'Cc'); - } - - /** - * Add a blind carbon copy to the message. - * - * @param string|array $address - * @param string|null $name - * @param bool $override - * @return $this - */ - public function bcc($address, $name = null, $override = false) - { - if ($override) { - $this->swift->setBcc($address, $name); - - return $this; - } - - return $this->addAddresses($address, $name, 'Bcc'); - } - - /** - * Add a reply to address to the message. - * - * @param string|array $address - * @param string|null $name - * @return $this - */ - public function replyTo($address, $name = null) - { - return $this->addAddresses($address, $name, 'ReplyTo'); - } - - /** - * Add a recipient to the message. - * - * @param string|array $address - * @param string $name - * @param string $type - * @return $this - */ - protected function addAddresses($address, $name, $type) - { - if (is_array($address)) { - $this->swift->{"set{$type}"}($address, $name); - } else { - $this->swift->{"add{$type}"}($address, $name); - } - - return $this; - } - - /** - * Set the subject of the message. - * - * @param string $subject - * @return $this - */ - public function subject($subject) - { - $this->swift->setSubject($subject); - - return $this; - } - - /** - * Set the message priority level. - * - * @param int $level - * @return $this - */ - public function priority($level) - { - $this->swift->setPriority($level); - - return $this; - } - - /** - * Attach a file to the message. - * - * @param string $file - * @param array $options - * @return $this - */ - public function attach($file, array $options = []) - { - $attachment = $this->createAttachmentFromPath($file); - - return $this->prepAttachment($attachment, $options); - } - - /** - * Create a Swift Attachment instance. - * - * @param string $file - * @return \Swift_Mime_Attachment - */ - protected function createAttachmentFromPath($file) - { - return Swift_Attachment::fromPath($file); - } - - /** - * Attach in-memory data as an attachment. - * - * @param string $data - * @param string $name - * @param array $options - * @return $this - */ - public function attachData($data, $name, array $options = []) - { - $attachment = $this->createAttachmentFromData($data, $name); - - return $this->prepAttachment($attachment, $options); - } - - /** - * Create a Swift Attachment instance from data. - * - * @param string $data - * @param string $name - * @return \Swift_Attachment - */ - protected function createAttachmentFromData($data, $name) - { - return new Swift_Attachment($data, $name); - } - - /** - * Embed a file in the message and get the CID. - * - * @param string $file - * @return string - */ - public function embed($file) - { - if (isset($this->embeddedFiles[$file])) { - return $this->embeddedFiles[$file]; - } - - return $this->embeddedFiles[$file] = $this->swift->embed( - Swift_Image::fromPath($file) - ); - } - - /** - * Embed in-memory data in the message and get the CID. - * - * @param string $data - * @param string $name - * @param string|null $contentType - * @return string - */ - public function embedData($data, $name, $contentType = null) - { - $image = new Swift_Image($data, $name, $contentType); - - return $this->swift->embed($image); - } - - /** - * Prepare and attach the given attachment. - * - * @param \Swift_Attachment $attachment - * @param array $options - * @return $this - */ - protected function prepAttachment($attachment, $options = []) - { - // First we will check for a MIME type on the message, which instructs the - // mail client on what type of attachment the file is so that it may be - // downloaded correctly by the user. The MIME option is not required. - if (isset($options['mime'])) { - $attachment->setContentType($options['mime']); - } - - // If an alternative name was given as an option, we will set that on this - // attachment so that it will be downloaded with the desired names from - // the developer, otherwise the default file names will get assigned. - if (isset($options['as'])) { - $attachment->setFilename($options['as']); - } - - $this->swift->attach($attachment); - - return $this; - } - - /** - * Get the underlying Swift Message instance. - * - * @return \Swift_Message - */ - public function getSwiftMessage() - { - return $this->swift; - } - - /** - * Dynamically pass missing methods to the Swift instance. - * - * @param string $method - * @param array $parameters - * @return mixed - */ - public function __call($method, $parameters) - { - $callable = [$this->swift, $method]; - - return call_user_func_array($callable, $parameters); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Mail/PendingMail.php b/vendor/laravel/framework/src/Illuminate/Mail/PendingMail.php deleted file mode 100644 index f518c2cc..00000000 --- a/vendor/laravel/framework/src/Illuminate/Mail/PendingMail.php +++ /dev/null @@ -1,175 +0,0 @@ -mailer = $mailer; - } - - /** - * Set the locale of the message. - * - * @param string $locale - * @return $this - */ - public function locale($locale) - { - $this->locale = $locale; - - return $this; - } - - /** - * Set the recipients of the message. - * - * @param mixed $users - * @return $this - */ - public function to($users) - { - $this->to = $users; - - return $this; - } - - /** - * Set the recipients of the message. - * - * @param mixed $users - * @return $this - */ - public function cc($users) - { - $this->cc = $users; - - return $this; - } - - /** - * Set the recipients of the message. - * - * @param mixed $users - * @return $this - */ - public function bcc($users) - { - $this->bcc = $users; - - return $this; - } - - /** - * Send a new mailable message instance. - * - * @param \Illuminate\Mail\Mailable $mailable - * @return mixed - */ - public function send(Mailable $mailable) - { - if ($mailable instanceof ShouldQueue) { - return $this->queue($mailable); - } - - return $this->mailer->send($this->fill($mailable)); - } - - /** - * Send a mailable message immediately. - * - * @param \Illuminate\Mail\Mailable $mailable - * @return mixed - */ - public function sendNow(Mailable $mailable) - { - return $this->mailer->send($this->fill($mailable)); - } - - /** - * Push the given mailable onto the queue. - * - * @param \Illuminate\Mail\Mailable $mailable - * @return mixed - */ - public function queue(Mailable $mailable) - { - $mailable = $this->fill($mailable); - - if (isset($mailable->delay)) { - return $this->mailer->later($mailable->delay, $mailable); - } - - return $this->mailer->queue($mailable); - } - - /** - * Deliver the queued message after the given delay. - * - * @param \DateTimeInterface|\DateInterval|int $delay - * @param \Illuminate\Mail\Mailable $mailable - * @return mixed - */ - public function later($delay, Mailable $mailable) - { - return $this->mailer->later($delay, $this->fill($mailable)); - } - - /** - * Populate the mailable with the addresses. - * - * @param \Illuminate\Mail\Mailable $mailable - * @return \Illuminate\Mail\Mailable - */ - protected function fill(Mailable $mailable) - { - return $mailable->to($this->to) - ->cc($this->cc) - ->bcc($this->bcc) - ->locale($this->locale); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Mail/SendQueuedMailable.php b/vendor/laravel/framework/src/Illuminate/Mail/SendQueuedMailable.php deleted file mode 100644 index 0ed9bdeb..00000000 --- a/vendor/laravel/framework/src/Illuminate/Mail/SendQueuedMailable.php +++ /dev/null @@ -1,87 +0,0 @@ -mailable = $mailable; - $this->tries = property_exists($mailable, 'tries') ? $mailable->tries : null; - $this->timeout = property_exists($mailable, 'timeout') ? $mailable->timeout : null; - } - - /** - * Handle the queued job. - * - * @param \Illuminate\Contracts\Mail\Mailer $mailer - * @return void - */ - public function handle(MailerContract $mailer) - { - $this->mailable->send($mailer); - } - - /** - * Get the display name for the queued job. - * - * @return string - */ - public function displayName() - { - return get_class($this->mailable); - } - - /** - * Call the failed method on the mailable instance. - * - * @param \Exception $e - * @return void - */ - public function failed($e) - { - if (method_exists($this->mailable, 'failed')) { - $this->mailable->failed($e); - } - } - - /** - * Prepare the instance for cloning. - * - * @return void - */ - public function __clone() - { - $this->mailable = clone $this->mailable; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Mail/Transport/ArrayTransport.php b/vendor/laravel/framework/src/Illuminate/Mail/Transport/ArrayTransport.php deleted file mode 100644 index 766af833..00000000 --- a/vendor/laravel/framework/src/Illuminate/Mail/Transport/ArrayTransport.php +++ /dev/null @@ -1,58 +0,0 @@ -messages = new Collection; - } - - /** - * {@inheritdoc} - */ - public function send(Swift_Mime_SimpleMessage $message, &$failedRecipients = null) - { - $this->beforeSendPerformed($message); - - $this->messages[] = $message; - - return $this->numberOfRecipients($message); - } - - /** - * Retrieve the collection of messages. - * - * @return \Illuminate\Support\Collection - */ - public function messages() - { - return $this->messages; - } - - /** - * Clear all of the messages from the local collection. - * - * @return \Illuminate\Support\Collection - */ - public function flush() - { - return $this->messages = new Collection; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Mail/Transport/LogTransport.php b/vendor/laravel/framework/src/Illuminate/Mail/Transport/LogTransport.php deleted file mode 100644 index 273fb782..00000000 --- a/vendor/laravel/framework/src/Illuminate/Mail/Transport/LogTransport.php +++ /dev/null @@ -1,59 +0,0 @@ -logger = $logger; - } - - /** - * {@inheritdoc} - */ - public function send(Swift_Mime_SimpleMessage $message, &$failedRecipients = null) - { - $this->beforeSendPerformed($message); - - $this->logger->debug($this->getMimeEntityString($message)); - - $this->sendPerformed($message); - - return $this->numberOfRecipients($message); - } - - /** - * Get a loggable string out of a Swiftmailer entity. - * - * @param \Swift_Mime_SimpleMimeEntity $entity - * @return string - */ - protected function getMimeEntityString(Swift_Mime_SimpleMimeEntity $entity) - { - $string = (string) $entity->getHeaders().PHP_EOL.$entity->getBody(); - - foreach ($entity->getChildren() as $children) { - $string .= PHP_EOL.PHP_EOL.$this->getMimeEntityString($children); - } - - return $string; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Mail/Transport/MailgunTransport.php b/vendor/laravel/framework/src/Illuminate/Mail/Transport/MailgunTransport.php deleted file mode 100644 index bac82932..00000000 --- a/vendor/laravel/framework/src/Illuminate/Mail/Transport/MailgunTransport.php +++ /dev/null @@ -1,168 +0,0 @@ -key = $key; - $this->client = $client; - $this->setDomain($domain); - } - - /** - * {@inheritdoc} - */ - public function send(Swift_Mime_SimpleMessage $message, &$failedRecipients = null) - { - $this->beforeSendPerformed($message); - - $to = $this->getTo($message); - - $message->setBcc([]); - - $this->client->post($this->url, $this->payload($message, $to)); - - $this->sendPerformed($message); - - return $this->numberOfRecipients($message); - } - - /** - * Get the HTTP payload for sending the Mailgun message. - * - * @param \Swift_Mime_SimpleMessage $message - * @param string $to - * @return array - */ - protected function payload(Swift_Mime_SimpleMessage $message, $to) - { - return [ - 'auth' => [ - 'api', - $this->key, - ], - 'multipart' => [ - [ - 'name' => 'to', - 'contents' => $to, - ], - [ - 'name' => 'message', - 'contents' => $message->toString(), - 'filename' => 'message.mime', - ], - ], - ]; - } - - /** - * Get the "to" payload field for the API request. - * - * @param \Swift_Mime_SimpleMessage $message - * @return string - */ - protected function getTo(Swift_Mime_SimpleMessage $message) - { - return collect($this->allContacts($message))->map(function ($display, $address) { - return $display ? $display." <{$address}>" : $address; - })->values()->implode(','); - } - - /** - * Get all of the contacts for the message. - * - * @param \Swift_Mime_SimpleMessage $message - * @return array - */ - protected function allContacts(Swift_Mime_SimpleMessage $message) - { - return array_merge( - (array) $message->getTo(), (array) $message->getCc(), (array) $message->getBcc() - ); - } - - /** - * Get the API key being used by the transport. - * - * @return string - */ - public function getKey() - { - return $this->key; - } - - /** - * Set the API key being used by the transport. - * - * @param string $key - * @return string - */ - public function setKey($key) - { - return $this->key = $key; - } - - /** - * Get the domain being used by the transport. - * - * @return string - */ - public function getDomain() - { - return $this->domain; - } - - /** - * Set the domain being used by the transport. - * - * @param string $domain - * @return string - */ - public function setDomain($domain) - { - $this->url = 'https://api.mailgun.net/v3/'.$domain.'/messages.mime'; - - return $this->domain = $domain; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Mail/Transport/MandrillTransport.php b/vendor/laravel/framework/src/Illuminate/Mail/Transport/MandrillTransport.php deleted file mode 100644 index 685b0275..00000000 --- a/vendor/laravel/framework/src/Illuminate/Mail/Transport/MandrillTransport.php +++ /dev/null @@ -1,105 +0,0 @@ -key = $key; - $this->client = $client; - } - - /** - * {@inheritdoc} - */ - public function send(Swift_Mime_SimpleMessage $message, &$failedRecipients = null) - { - $this->beforeSendPerformed($message); - - $this->client->post('https://mandrillapp.com/api/1.0/messages/send-raw.json', [ - 'form_params' => [ - 'key' => $this->key, - 'to' => $this->getTo($message), - 'raw_message' => $message->toString(), - 'async' => true, - ], - ]); - - $this->sendPerformed($message); - - return $this->numberOfRecipients($message); - } - - /** - * Get all the addresses this message should be sent to. - * - * Note that Mandrill still respects CC, BCC headers in raw message itself. - * - * @param \Swift_Mime_SimpleMessage $message - * @return array - */ - protected function getTo(Swift_Mime_SimpleMessage $message) - { - $to = []; - - if ($message->getTo()) { - $to = array_merge($to, array_keys($message->getTo())); - } - - if ($message->getCc()) { - $to = array_merge($to, array_keys($message->getCc())); - } - - if ($message->getBcc()) { - $to = array_merge($to, array_keys($message->getBcc())); - } - - return $to; - } - - /** - * Get the API key being used by the transport. - * - * @return string - */ - public function getKey() - { - return $this->key; - } - - /** - * Set the API key being used by the transport. - * - * @param string $key - * @return string - */ - public function setKey($key) - { - return $this->key = $key; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Mail/Transport/SesTransport.php b/vendor/laravel/framework/src/Illuminate/Mail/Transport/SesTransport.php deleted file mode 100644 index c3afe3f5..00000000 --- a/vendor/laravel/framework/src/Illuminate/Mail/Transport/SesTransport.php +++ /dev/null @@ -1,48 +0,0 @@ -ses = $ses; - } - - /** - * {@inheritdoc} - */ - public function send(Swift_Mime_SimpleMessage $message, &$failedRecipients = null) - { - $this->beforeSendPerformed($message); - - $headers = $message->getHeaders(); - - $headers->addTextHeader('X-SES-Message-ID', $this->ses->sendRawEmail([ - 'Source' => key($message->getSender() ?: $message->getFrom()), - 'RawMessage' => [ - 'Data' => $message->toString(), - ], - ])->get('MessageId')); - - $this->sendPerformed($message); - - return $this->numberOfRecipients($message); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Mail/Transport/SparkPostTransport.php b/vendor/laravel/framework/src/Illuminate/Mail/Transport/SparkPostTransport.php deleted file mode 100644 index 8f0e788c..00000000 --- a/vendor/laravel/framework/src/Illuminate/Mail/Transport/SparkPostTransport.php +++ /dev/null @@ -1,169 +0,0 @@ -key = $key; - $this->client = $client; - $this->options = $options; - } - - /** - * {@inheritdoc} - */ - public function send(Swift_Mime_SimpleMessage $message, &$failedRecipients = null) - { - $this->beforeSendPerformed($message); - - $recipients = $this->getRecipients($message); - - $message->setBcc([]); - - $response = $this->client->post($this->getEndpoint(), [ - 'headers' => [ - 'Authorization' => $this->key, - ], - 'json' => array_merge([ - 'recipients' => $recipients, - 'content' => [ - 'email_rfc822' => $message->toString(), - ], - ], $this->options), - ]); - - $message->getHeaders()->addTextHeader( - 'X-SparkPost-Transmission-ID', $this->getTransmissionId($response) - ); - - $this->sendPerformed($message); - - return $this->numberOfRecipients($message); - } - - /** - * Get all the addresses this message should be sent to. - * - * Note that SparkPost still respects CC, BCC headers in raw message itself. - * - * @param \Swift_Mime_SimpleMessage $message - * @return array - */ - protected function getRecipients(Swift_Mime_SimpleMessage $message) - { - $recipients = []; - - foreach ((array) $message->getTo() as $email => $name) { - $recipients[] = ['address' => compact('name', 'email')]; - } - - foreach ((array) $message->getCc() as $email => $name) { - $recipients[] = ['address' => compact('name', 'email')]; - } - - foreach ((array) $message->getBcc() as $email => $name) { - $recipients[] = ['address' => compact('name', 'email')]; - } - - return $recipients; - } - - /** - * Get the transmission ID from the response. - * - * @param \GuzzleHttp\Psr7\Response $response - * @return string - */ - protected function getTransmissionId($response) - { - return object_get( - json_decode($response->getBody()->getContents()), 'results.id' - ); - } - - /** - * Get the API key being used by the transport. - * - * @return string - */ - public function getKey() - { - return $this->key; - } - - /** - * Set the API key being used by the transport. - * - * @param string $key - * @return string - */ - public function setKey($key) - { - return $this->key = $key; - } - - /** - * Get the SparkPost API endpoint. - * - * @return string - */ - public function getEndpoint() - { - return $this->getOptions()['endpoint'] ?? 'https://api.sparkpost.com/api/v1/transmissions'; - } - - /** - * Get the transmission options being used by the transport. - * - * @return array - */ - public function getOptions() - { - return $this->options; - } - - /** - * Set the transmission options being used by the transport. - * - * @param array $options - * @return array - */ - public function setOptions(array $options) - { - return $this->options = $options; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Mail/Transport/Transport.php b/vendor/laravel/framework/src/Illuminate/Mail/Transport/Transport.php deleted file mode 100644 index bc257499..00000000 --- a/vendor/laravel/framework/src/Illuminate/Mail/Transport/Transport.php +++ /dev/null @@ -1,108 +0,0 @@ -plugins, $plugin); - } - - /** - * Iterate through registered plugins and execute plugins' methods. - * - * @param \Swift_Mime_SimpleMessage $message - * @return void - */ - protected function beforeSendPerformed(Swift_Mime_SimpleMessage $message) - { - $event = new Swift_Events_SendEvent($this, $message); - - foreach ($this->plugins as $plugin) { - if (method_exists($plugin, 'beforeSendPerformed')) { - $plugin->beforeSendPerformed($event); - } - } - } - - /** - * Iterate through registered plugins and execute plugins' methods. - * - * @param \Swift_Mime_SimpleMessage $message - * @return void - */ - protected function sendPerformed(Swift_Mime_SimpleMessage $message) - { - $event = new Swift_Events_SendEvent($this, $message); - - foreach ($this->plugins as $plugin) { - if (method_exists($plugin, 'sendPerformed')) { - $plugin->sendPerformed($event); - } - } - } - - /** - * Get the number of recipients. - * - * @param \Swift_Mime_SimpleMessage $message - * @return int - */ - protected function numberOfRecipients(Swift_Mime_SimpleMessage $message) - { - return count(array_merge( - (array) $message->getTo(), (array) $message->getCc(), (array) $message->getBcc() - )); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Mail/TransportManager.php b/vendor/laravel/framework/src/Illuminate/Mail/TransportManager.php deleted file mode 100644 index 532264a4..00000000 --- a/vendor/laravel/framework/src/Illuminate/Mail/TransportManager.php +++ /dev/null @@ -1,206 +0,0 @@ -app->make('config')->get('mail'); - - // The Swift SMTP transport instance will allow us to use any SMTP backend - // for delivering mail such as Sendgrid, Amazon SES, or a custom server - // a developer has available. We will just pass this configured host. - $transport = new SmtpTransport($config['host'], $config['port']); - - if (isset($config['encryption'])) { - $transport->setEncryption($config['encryption']); - } - - // Once we have the transport we will check for the presence of a username - // and password. If we have it we will set the credentials on the Swift - // transporter instance so that we'll properly authenticate delivery. - if (isset($config['username'])) { - $transport->setUsername($config['username']); - - $transport->setPassword($config['password']); - } - - // Next we will set any stream context options specified for the transport - // and then return it. The option is not required any may not be inside - // the configuration array at all so we'll verify that before adding. - if (isset($config['stream'])) { - $transport->setStreamOptions($config['stream']); - } - - return $transport; - } - - /** - * Create an instance of the Sendmail Swift Transport driver. - * - * @return \Swift_SendmailTransport - */ - protected function createSendmailDriver() - { - return new SendmailTransport($this->app['config']['mail']['sendmail']); - } - - /** - * Create an instance of the Amazon SES Swift Transport driver. - * - * @return \Illuminate\Mail\Transport\SesTransport - */ - protected function createSesDriver() - { - $config = array_merge($this->app['config']->get('services.ses', []), [ - 'version' => 'latest', 'service' => 'email', - ]); - - return new SesTransport(new SesClient( - $this->addSesCredentials($config) - )); - } - - /** - * Add the SES credentials to the configuration array. - * - * @param array $config - * @return array - */ - protected function addSesCredentials(array $config) - { - if ($config['key'] && $config['secret']) { - $config['credentials'] = Arr::only($config, ['key', 'secret', 'token']); - } - - return $config; - } - - /** - * Create an instance of the Mail Swift Transport driver. - * - * @return \Swift_SendmailTransport - */ - protected function createMailDriver() - { - return new MailTransport; - } - - /** - * Create an instance of the Mailgun Swift Transport driver. - * - * @return \Illuminate\Mail\Transport\MailgunTransport - */ - protected function createMailgunDriver() - { - $config = $this->app['config']->get('services.mailgun', []); - - return new MailgunTransport( - $this->guzzle($config), - $config['secret'], $config['domain'] - ); - } - - /** - * Create an instance of the Mandrill Swift Transport driver. - * - * @return \Illuminate\Mail\Transport\MandrillTransport - */ - protected function createMandrillDriver() - { - $config = $this->app['config']->get('services.mandrill', []); - - return new MandrillTransport( - $this->guzzle($config), $config['secret'] - ); - } - - /** - * Create an instance of the SparkPost Swift Transport driver. - * - * @return \Illuminate\Mail\Transport\SparkPostTransport - */ - protected function createSparkPostDriver() - { - $config = $this->app['config']->get('services.sparkpost', []); - - return new SparkPostTransport( - $this->guzzle($config), $config['secret'], $config['options'] ?? [] - ); - } - - /** - * Create an instance of the Log Swift Transport driver. - * - * @return \Illuminate\Mail\Transport\LogTransport - */ - protected function createLogDriver() - { - return new LogTransport($this->app->make(LoggerInterface::class)); - } - - /** - * Create an instance of the Array Swift Transport Driver. - * - * @return \Illuminate\Mail\Transport\ArrayTransport - */ - protected function createArrayDriver() - { - return new ArrayTransport; - } - - /** - * Get a fresh Guzzle HTTP client instance. - * - * @param array $config - * @return \GuzzleHttp\Client - */ - protected function guzzle($config) - { - return new HttpClient(Arr::add( - $config['guzzle'] ?? [], 'connect_timeout', 60 - )); - } - - /** - * Get the default mail driver name. - * - * @return string - */ - public function getDefaultDriver() - { - return $this->app['config']['mail.driver']; - } - - /** - * Set the default mail driver name. - * - * @param string $name - * @return void - */ - public function setDefaultDriver($name) - { - $this->app['config']['mail.driver'] = $name; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Mail/composer.json b/vendor/laravel/framework/src/Illuminate/Mail/composer.json deleted file mode 100755 index 33715df2..00000000 --- a/vendor/laravel/framework/src/Illuminate/Mail/composer.json +++ /dev/null @@ -1,44 +0,0 @@ -{ - "name": "illuminate/mail", - "description": "The Illuminate Mail package.", - "license": "MIT", - "homepage": "https://laravel.com", - "support": { - "issues": "https://github.com/laravel/framework/issues", - "source": "https://github.com/laravel/framework" - }, - "authors": [ - { - "name": "Taylor Otwell", - "email": "taylor@laravel.com" - } - ], - "require": { - "php": "^7.1.3", - "erusev/parsedown": "~1.7", - "illuminate/container": "5.6.*", - "illuminate/contracts": "5.6.*", - "illuminate/support": "5.6.*", - "psr/log": "~1.0", - "swiftmailer/swiftmailer": "~6.0", - "tijsverkoyen/css-to-inline-styles": "^2.2.1" - }, - "autoload": { - "psr-4": { - "Illuminate\\Mail\\": "" - } - }, - "extra": { - "branch-alias": { - "dev-master": "5.6-dev" - } - }, - "suggest": { - "aws/aws-sdk-php": "Required to use the SES mail driver (~3.0).", - "guzzlehttp/guzzle": "Required to use the Mailgun and Mandrill mail drivers (~6.0)." - }, - "config": { - "sort-packages": true - }, - "minimum-stability": "dev" -} diff --git a/vendor/laravel/framework/src/Illuminate/Mail/resources/views/html/button.blade.php b/vendor/laravel/framework/src/Illuminate/Mail/resources/views/html/button.blade.php deleted file mode 100644 index bf35c791..00000000 --- a/vendor/laravel/framework/src/Illuminate/Mail/resources/views/html/button.blade.php +++ /dev/null @@ -1,19 +0,0 @@ - - - - -
- - - - -
- - - - -
- {{ $slot }} -
-
-
diff --git a/vendor/laravel/framework/src/Illuminate/Mail/resources/views/html/footer.blade.php b/vendor/laravel/framework/src/Illuminate/Mail/resources/views/html/footer.blade.php deleted file mode 100644 index c3f9360a..00000000 --- a/vendor/laravel/framework/src/Illuminate/Mail/resources/views/html/footer.blade.php +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - diff --git a/vendor/laravel/framework/src/Illuminate/Mail/resources/views/html/header.blade.php b/vendor/laravel/framework/src/Illuminate/Mail/resources/views/html/header.blade.php deleted file mode 100644 index eefabab9..00000000 --- a/vendor/laravel/framework/src/Illuminate/Mail/resources/views/html/header.blade.php +++ /dev/null @@ -1,7 +0,0 @@ - - - - {{ $slot }} - - - diff --git a/vendor/laravel/framework/src/Illuminate/Mail/resources/views/html/layout.blade.php b/vendor/laravel/framework/src/Illuminate/Mail/resources/views/html/layout.blade.php deleted file mode 100644 index 859900a3..00000000 --- a/vendor/laravel/framework/src/Illuminate/Mail/resources/views/html/layout.blade.php +++ /dev/null @@ -1,54 +0,0 @@ - - - - - - - - - - - - - -
- - {{ $header ?? '' }} - - - - - - - {{ $footer ?? '' }} -
- - - - - -
- {{ Illuminate\Mail\Markdown::parse($slot) }} - - {{ $subcopy ?? '' }} -
-
-
- - diff --git a/vendor/laravel/framework/src/Illuminate/Mail/resources/views/html/message.blade.php b/vendor/laravel/framework/src/Illuminate/Mail/resources/views/html/message.blade.php deleted file mode 100644 index 2ad23a66..00000000 --- a/vendor/laravel/framework/src/Illuminate/Mail/resources/views/html/message.blade.php +++ /dev/null @@ -1,27 +0,0 @@ -@component('mail::layout') - {{-- Header --}} - @slot('header') - @component('mail::header', ['url' => config('app.url')]) - {{ config('app.name') }} - @endcomponent - @endslot - - {{-- Body --}} - {{ $slot }} - - {{-- Subcopy --}} - @isset($subcopy) - @slot('subcopy') - @component('mail::subcopy') - {{ $subcopy }} - @endcomponent - @endslot - @endisset - - {{-- Footer --}} - @slot('footer') - @component('mail::footer') - © {{ date('Y') }} {{ config('app.name') }}. All rights reserved. - @endcomponent - @endslot -@endcomponent diff --git a/vendor/laravel/framework/src/Illuminate/Mail/resources/views/html/panel.blade.php b/vendor/laravel/framework/src/Illuminate/Mail/resources/views/html/panel.blade.php deleted file mode 100644 index f3970802..00000000 --- a/vendor/laravel/framework/src/Illuminate/Mail/resources/views/html/panel.blade.php +++ /dev/null @@ -1,13 +0,0 @@ - - - - -
- - - - -
- {{ Illuminate\Mail\Markdown::parse($slot) }} -
-
diff --git a/vendor/laravel/framework/src/Illuminate/Mail/resources/views/html/promotion.blade.php b/vendor/laravel/framework/src/Illuminate/Mail/resources/views/html/promotion.blade.php deleted file mode 100644 index 0debcf8a..00000000 --- a/vendor/laravel/framework/src/Illuminate/Mail/resources/views/html/promotion.blade.php +++ /dev/null @@ -1,7 +0,0 @@ - - - - -
- {{ Illuminate\Mail\Markdown::parse($slot) }} -
diff --git a/vendor/laravel/framework/src/Illuminate/Mail/resources/views/html/promotion/button.blade.php b/vendor/laravel/framework/src/Illuminate/Mail/resources/views/html/promotion/button.blade.php deleted file mode 100644 index 8e79081c..00000000 --- a/vendor/laravel/framework/src/Illuminate/Mail/resources/views/html/promotion/button.blade.php +++ /dev/null @@ -1,13 +0,0 @@ - - - - -
- - - - -
- {{ $slot }} -
-
diff --git a/vendor/laravel/framework/src/Illuminate/Mail/resources/views/html/subcopy.blade.php b/vendor/laravel/framework/src/Illuminate/Mail/resources/views/html/subcopy.blade.php deleted file mode 100644 index c3df7b4c..00000000 --- a/vendor/laravel/framework/src/Illuminate/Mail/resources/views/html/subcopy.blade.php +++ /dev/null @@ -1,7 +0,0 @@ - - - - -
- {{ Illuminate\Mail\Markdown::parse($slot) }} -
diff --git a/vendor/laravel/framework/src/Illuminate/Mail/resources/views/html/table.blade.php b/vendor/laravel/framework/src/Illuminate/Mail/resources/views/html/table.blade.php deleted file mode 100644 index a5f3348b..00000000 --- a/vendor/laravel/framework/src/Illuminate/Mail/resources/views/html/table.blade.php +++ /dev/null @@ -1,3 +0,0 @@ -
-{{ Illuminate\Mail\Markdown::parse($slot) }} -
diff --git a/vendor/laravel/framework/src/Illuminate/Mail/resources/views/html/themes/default.css b/vendor/laravel/framework/src/Illuminate/Mail/resources/views/html/themes/default.css deleted file mode 100644 index b78b27da..00000000 --- a/vendor/laravel/framework/src/Illuminate/Mail/resources/views/html/themes/default.css +++ /dev/null @@ -1,287 +0,0 @@ -/* Base */ - -body, body *:not(html):not(style):not(br):not(tr):not(code) { - font-family: Avenir, Helvetica, sans-serif; - box-sizing: border-box; -} - -body { - background-color: #f5f8fa; - color: #74787E; - height: 100%; - hyphens: auto; - line-height: 1.4; - margin: 0; - -moz-hyphens: auto; - -ms-word-break: break-all; - width: 100% !important; - -webkit-hyphens: auto; - -webkit-text-size-adjust: none; - word-break: break-all; - word-break: break-word; -} - -p, -ul, -ol, -blockquote { - line-height: 1.4; - text-align: left; -} - -a { - color: #3869D4; -} - -a img { - border: none; -} - -/* Typography */ - -h1 { - color: #2F3133; - font-size: 19px; - font-weight: bold; - margin-top: 0; - text-align: left; -} - -h2 { - color: #2F3133; - font-size: 16px; - font-weight: bold; - margin-top: 0; - text-align: left; -} - -h3 { - color: #2F3133; - font-size: 14px; - font-weight: bold; - margin-top: 0; - text-align: left; -} - -p { - color: #74787E; - font-size: 16px; - line-height: 1.5em; - margin-top: 0; - text-align: left; -} - -p.sub { - font-size: 12px; -} - -img { - max-width: 100%; -} - -/* Layout */ - -.wrapper { - background-color: #f5f8fa; - margin: 0; - padding: 0; - width: 100%; - -premailer-cellpadding: 0; - -premailer-cellspacing: 0; - -premailer-width: 100%; -} - -.content { - margin: 0; - padding: 0; - width: 100%; - -premailer-cellpadding: 0; - -premailer-cellspacing: 0; - -premailer-width: 100%; -} - -/* Header */ - -.header { - padding: 25px 0; - text-align: center; -} - -.header a { - color: #bbbfc3; - font-size: 19px; - font-weight: bold; - text-decoration: none; - text-shadow: 0 1px 0 white; -} - -/* Body */ - -.body { - background-color: #FFFFFF; - border-bottom: 1px solid #EDEFF2; - border-top: 1px solid #EDEFF2; - margin: 0; - padding: 0; - width: 100%; - -premailer-cellpadding: 0; - -premailer-cellspacing: 0; - -premailer-width: 100%; -} - -.inner-body { - background-color: #FFFFFF; - margin: 0 auto; - padding: 0; - width: 570px; - -premailer-cellpadding: 0; - -premailer-cellspacing: 0; - -premailer-width: 570px; -} - -/* Subcopy */ - -.subcopy { - border-top: 1px solid #EDEFF2; - margin-top: 25px; - padding-top: 25px; -} - -.subcopy p { - font-size: 12px; -} - -/* Footer */ - -.footer { - margin: 0 auto; - padding: 0; - text-align: center; - width: 570px; - -premailer-cellpadding: 0; - -premailer-cellspacing: 0; - -premailer-width: 570px; -} - -.footer p { - color: #AEAEAE; - font-size: 12px; - text-align: center; -} - -/* Tables */ - -.table table { - margin: 30px auto; - width: 100%; - -premailer-cellpadding: 0; - -premailer-cellspacing: 0; - -premailer-width: 100%; -} - -.table th { - border-bottom: 1px solid #EDEFF2; - padding-bottom: 8px; - margin: 0; -} - -.table td { - color: #74787E; - font-size: 15px; - line-height: 18px; - padding: 10px 0; - margin: 0; -} - -.content-cell { - padding: 35px; -} - -/* Buttons */ - -.action { - margin: 30px auto; - padding: 0; - text-align: center; - width: 100%; - -premailer-cellpadding: 0; - -premailer-cellspacing: 0; - -premailer-width: 100%; -} - -.button { - border-radius: 3px; - box-shadow: 0 2px 3px rgba(0, 0, 0, 0.16); - color: #FFF; - display: inline-block; - text-decoration: none; - -webkit-text-size-adjust: none; -} - -.button-blue { - background-color: #3097D1; - border-top: 10px solid #3097D1; - border-right: 18px solid #3097D1; - border-bottom: 10px solid #3097D1; - border-left: 18px solid #3097D1; -} - -.button-green { - background-color: #2ab27b; - border-top: 10px solid #2ab27b; - border-right: 18px solid #2ab27b; - border-bottom: 10px solid #2ab27b; - border-left: 18px solid #2ab27b; -} - -.button-red { - background-color: #bf5329; - border-top: 10px solid #bf5329; - border-right: 18px solid #bf5329; - border-bottom: 10px solid #bf5329; - border-left: 18px solid #bf5329; -} - -/* Panels */ - -.panel { - margin: 0 0 21px; -} - -.panel-content { - background-color: #EDEFF2; - padding: 16px; -} - -.panel-item { - padding: 0; -} - -.panel-item p:last-of-type { - margin-bottom: 0; - padding-bottom: 0; -} - -/* Promotions */ - -.promotion { - background-color: #FFFFFF; - border: 2px dashed #9BA2AB; - margin: 0; - margin-bottom: 25px; - margin-top: 25px; - padding: 24px; - width: 100%; - -premailer-cellpadding: 0; - -premailer-cellspacing: 0; - -premailer-width: 100%; -} - -.promotion h1 { - text-align: center; -} - -.promotion p { - font-size: 15px; - text-align: center; -} diff --git a/vendor/laravel/framework/src/Illuminate/Mail/resources/views/markdown/button.blade.php b/vendor/laravel/framework/src/Illuminate/Mail/resources/views/markdown/button.blade.php deleted file mode 100644 index 97444ebd..00000000 --- a/vendor/laravel/framework/src/Illuminate/Mail/resources/views/markdown/button.blade.php +++ /dev/null @@ -1 +0,0 @@ -{{ $slot }}: {{ $url }} diff --git a/vendor/laravel/framework/src/Illuminate/Mail/resources/views/markdown/footer.blade.php b/vendor/laravel/framework/src/Illuminate/Mail/resources/views/markdown/footer.blade.php deleted file mode 100644 index 3338f620..00000000 --- a/vendor/laravel/framework/src/Illuminate/Mail/resources/views/markdown/footer.blade.php +++ /dev/null @@ -1 +0,0 @@ -{{ $slot }} diff --git a/vendor/laravel/framework/src/Illuminate/Mail/resources/views/markdown/header.blade.php b/vendor/laravel/framework/src/Illuminate/Mail/resources/views/markdown/header.blade.php deleted file mode 100644 index aaa3e575..00000000 --- a/vendor/laravel/framework/src/Illuminate/Mail/resources/views/markdown/header.blade.php +++ /dev/null @@ -1 +0,0 @@ -[{{ $slot }}]({{ $url }}) diff --git a/vendor/laravel/framework/src/Illuminate/Mail/resources/views/markdown/layout.blade.php b/vendor/laravel/framework/src/Illuminate/Mail/resources/views/markdown/layout.blade.php deleted file mode 100644 index 9378baa0..00000000 --- a/vendor/laravel/framework/src/Illuminate/Mail/resources/views/markdown/layout.blade.php +++ /dev/null @@ -1,9 +0,0 @@ -{!! strip_tags($header) !!} - -{!! strip_tags($slot) !!} -@isset($subcopy) - -{!! strip_tags($subcopy) !!} -@endisset - -{!! strip_tags($footer) !!} diff --git a/vendor/laravel/framework/src/Illuminate/Mail/resources/views/markdown/message.blade.php b/vendor/laravel/framework/src/Illuminate/Mail/resources/views/markdown/message.blade.php deleted file mode 100644 index b409c71c..00000000 --- a/vendor/laravel/framework/src/Illuminate/Mail/resources/views/markdown/message.blade.php +++ /dev/null @@ -1,27 +0,0 @@ -@component('mail::layout') - {{-- Header --}} - @slot('header') - @component('mail::header', ['url' => config('app.url')]) - {{ config('app.name') }} - @endcomponent - @endslot - - {{-- Body --}} - {{ $slot }} - - {{-- Subcopy --}} - @isset($subcopy) - @slot('subcopy') - @component('mail::subcopy') - {{ $subcopy }} - @endcomponent - @endslot - @endisset - - {{-- Footer --}} - @slot('footer') - @component('mail::footer') - © {{ date('Y') }} {{ config('app.name') }}. All rights reserved. - @endcomponent - @endslot -@endcomponent diff --git a/vendor/laravel/framework/src/Illuminate/Mail/resources/views/markdown/panel.blade.php b/vendor/laravel/framework/src/Illuminate/Mail/resources/views/markdown/panel.blade.php deleted file mode 100644 index 3338f620..00000000 --- a/vendor/laravel/framework/src/Illuminate/Mail/resources/views/markdown/panel.blade.php +++ /dev/null @@ -1 +0,0 @@ -{{ $slot }} diff --git a/vendor/laravel/framework/src/Illuminate/Mail/resources/views/markdown/promotion.blade.php b/vendor/laravel/framework/src/Illuminate/Mail/resources/views/markdown/promotion.blade.php deleted file mode 100644 index 3338f620..00000000 --- a/vendor/laravel/framework/src/Illuminate/Mail/resources/views/markdown/promotion.blade.php +++ /dev/null @@ -1 +0,0 @@ -{{ $slot }} diff --git a/vendor/laravel/framework/src/Illuminate/Mail/resources/views/markdown/promotion/button.blade.php b/vendor/laravel/framework/src/Illuminate/Mail/resources/views/markdown/promotion/button.blade.php deleted file mode 100644 index aaa3e575..00000000 --- a/vendor/laravel/framework/src/Illuminate/Mail/resources/views/markdown/promotion/button.blade.php +++ /dev/null @@ -1 +0,0 @@ -[{{ $slot }}]({{ $url }}) diff --git a/vendor/laravel/framework/src/Illuminate/Mail/resources/views/markdown/subcopy.blade.php b/vendor/laravel/framework/src/Illuminate/Mail/resources/views/markdown/subcopy.blade.php deleted file mode 100644 index 3338f620..00000000 --- a/vendor/laravel/framework/src/Illuminate/Mail/resources/views/markdown/subcopy.blade.php +++ /dev/null @@ -1 +0,0 @@ -{{ $slot }} diff --git a/vendor/laravel/framework/src/Illuminate/Mail/resources/views/markdown/table.blade.php b/vendor/laravel/framework/src/Illuminate/Mail/resources/views/markdown/table.blade.php deleted file mode 100644 index 3338f620..00000000 --- a/vendor/laravel/framework/src/Illuminate/Mail/resources/views/markdown/table.blade.php +++ /dev/null @@ -1 +0,0 @@ -{{ $slot }} diff --git a/vendor/laravel/framework/src/Illuminate/Notifications/Action.php b/vendor/laravel/framework/src/Illuminate/Notifications/Action.php deleted file mode 100644 index 071db2d9..00000000 --- a/vendor/laravel/framework/src/Illuminate/Notifications/Action.php +++ /dev/null @@ -1,33 +0,0 @@ -url = $url; - $this->text = $text; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Notifications/AnonymousNotifiable.php b/vendor/laravel/framework/src/Illuminate/Notifications/AnonymousNotifiable.php deleted file mode 100644 index d820239f..00000000 --- a/vendor/laravel/framework/src/Illuminate/Notifications/AnonymousNotifiable.php +++ /dev/null @@ -1,72 +0,0 @@ -routes[$channel] = $route; - - return $this; - } - - /** - * Send the given notification. - * - * @param mixed $notification - * @return void - */ - public function notify($notification) - { - app(Dispatcher::class)->send($this, $notification); - } - - /** - * Send the given notification immediately. - * - * @param mixed $notification - * @return void - */ - public function notifyNow($notification) - { - app(Dispatcher::class)->sendNow($this, $notification); - } - - /** - * Get the notification routing information for the given driver. - * - * @param string $driver - * @return mixed - */ - public function routeNotificationFor($driver) - { - return $this->routes[$driver] ?? null; - } - - /** - * Get the value of the notifiable's primary key. - * - * @return mixed - */ - public function getKey() - { - // - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Notifications/ChannelManager.php b/vendor/laravel/framework/src/Illuminate/Notifications/ChannelManager.php deleted file mode 100644 index eb8c4f29..00000000 --- a/vendor/laravel/framework/src/Illuminate/Notifications/ChannelManager.php +++ /dev/null @@ -1,171 +0,0 @@ -app->make(Bus::class), $this->app->make(Dispatcher::class)) - )->send($notifiables, $notification); - } - - /** - * Send the given notification immediately. - * - * @param \Illuminate\Support\Collection|array|mixed $notifiables - * @param mixed $notification - * @param array|null $channels - * @return void - */ - public function sendNow($notifiables, $notification, array $channels = null) - { - return (new NotificationSender( - $this, $this->app->make(Bus::class), $this->app->make(Dispatcher::class)) - )->sendNow($notifiables, $notification, $channels); - } - - /** - * Get a channel instance. - * - * @param string|null $name - * @return mixed - */ - public function channel($name = null) - { - return $this->driver($name); - } - - /** - * Create an instance of the database driver. - * - * @return \Illuminate\Notifications\Channels\DatabaseChannel - */ - protected function createDatabaseDriver() - { - return $this->app->make(Channels\DatabaseChannel::class); - } - - /** - * Create an instance of the broadcast driver. - * - * @return \Illuminate\Notifications\Channels\BroadcastChannel - */ - protected function createBroadcastDriver() - { - return $this->app->make(Channels\BroadcastChannel::class); - } - - /** - * Create an instance of the mail driver. - * - * @return \Illuminate\Notifications\Channels\MailChannel - */ - protected function createMailDriver() - { - return $this->app->make(Channels\MailChannel::class); - } - - /** - * Create an instance of the Nexmo driver. - * - * @return \Illuminate\Notifications\Channels\NexmoSmsChannel - */ - protected function createNexmoDriver() - { - return new Channels\NexmoSmsChannel( - new NexmoClient(new NexmoCredentials( - $this->app['config']['services.nexmo.key'], - $this->app['config']['services.nexmo.secret'] - )), - $this->app['config']['services.nexmo.sms_from'] - ); - } - - /** - * Create an instance of the Slack driver. - * - * @return \Illuminate\Notifications\Channels\SlackWebhookChannel - */ - protected function createSlackDriver() - { - return new Channels\SlackWebhookChannel(new HttpClient); - } - - /** - * Create a new driver instance. - * - * @param string $driver - * @return mixed - * - * @throws \InvalidArgumentException - */ - protected function createDriver($driver) - { - try { - return parent::createDriver($driver); - } catch (InvalidArgumentException $e) { - if (class_exists($driver)) { - return $this->app->make($driver); - } - - throw $e; - } - } - - /** - * Get the default channel driver name. - * - * @return string - */ - public function getDefaultDriver() - { - return $this->defaultChannel; - } - - /** - * Get the default channel driver name. - * - * @return string - */ - public function deliversVia() - { - return $this->getDefaultDriver(); - } - - /** - * Set the default channel driver name. - * - * @param string $channel - * @return void - */ - public function deliverVia($channel) - { - $this->defaultChannel = $channel; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Notifications/Channels/BroadcastChannel.php b/vendor/laravel/framework/src/Illuminate/Notifications/Channels/BroadcastChannel.php deleted file mode 100644 index d3f58616..00000000 --- a/vendor/laravel/framework/src/Illuminate/Notifications/Channels/BroadcastChannel.php +++ /dev/null @@ -1,75 +0,0 @@ -events = $events; - } - - /** - * Send the given notification. - * - * @param mixed $notifiable - * @param \Illuminate\Notifications\Notification $notification - * @return array|null - */ - public function send($notifiable, Notification $notification) - { - $message = $this->getData($notifiable, $notification); - - $event = new BroadcastNotificationCreated( - $notifiable, $notification, is_array($message) ? $message : $message->data - ); - - if ($message instanceof BroadcastMessage) { - $event->onConnection($message->connection) - ->onQueue($message->queue); - } - - return $this->events->dispatch($event); - } - - /** - * Get the data for the notification. - * - * @param mixed $notifiable - * @param \Illuminate\Notifications\Notification $notification - * @return mixed - * - * @throws \RuntimeException - */ - protected function getData($notifiable, Notification $notification) - { - if (method_exists($notification, 'toBroadcast')) { - return $notification->toBroadcast($notifiable); - } - - if (method_exists($notification, 'toArray')) { - return $notification->toArray($notifiable); - } - - throw new RuntimeException('Notification is missing toArray method.'); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Notifications/Channels/DatabaseChannel.php b/vendor/laravel/framework/src/Illuminate/Notifications/Channels/DatabaseChannel.php deleted file mode 100644 index 1019e5a4..00000000 --- a/vendor/laravel/framework/src/Illuminate/Notifications/Channels/DatabaseChannel.php +++ /dev/null @@ -1,63 +0,0 @@ -routeNotificationFor('database', $notification)->create( - $this->buildPayload($notifiable, $notification) - ); - } - - /** - * Get the data for the notification. - * - * @param mixed $notifiable - * @param \Illuminate\Notifications\Notification $notification - * @return array - * - * @throws \RuntimeException - */ - protected function getData($notifiable, Notification $notification) - { - if (method_exists($notification, 'toDatabase')) { - return is_array($data = $notification->toDatabase($notifiable)) - ? $data : $data->data; - } - - if (method_exists($notification, 'toArray')) { - return $notification->toArray($notifiable); - } - - throw new RuntimeException('Notification is missing toDatabase / toArray method.'); - } - - /** - * Build an array payload for the DatabaseNotification Model. - * - * @param mixed $notifiable - * @param \Illuminate\Notifications\Notification $notification - * @return array - */ - protected function buildPayload($notifiable, Notification $notification) - { - return [ - 'id' => $notification->id, - 'type' => get_class($notification), - 'data' => $this->getData($notifiable, $notification), - 'read_at' => null, - ]; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Notifications/Channels/MailChannel.php b/vendor/laravel/framework/src/Illuminate/Notifications/Channels/MailChannel.php deleted file mode 100644 index afea7370..00000000 --- a/vendor/laravel/framework/src/Illuminate/Notifications/Channels/MailChannel.php +++ /dev/null @@ -1,211 +0,0 @@ -mailer = $mailer; - $this->markdown = $markdown; - } - - /** - * Send the given notification. - * - * @param mixed $notifiable - * @param \Illuminate\Notifications\Notification $notification - * @return void - */ - public function send($notifiable, Notification $notification) - { - $message = $notification->toMail($notifiable); - - if (! $notifiable->routeNotificationFor('mail', $notification) && - ! $message instanceof Mailable) { - return; - } - - if ($message instanceof Mailable) { - return $message->send($this->mailer); - } - - $this->mailer->send( - $this->buildView($message), - $message->data(), - $this->messageBuilder($notifiable, $notification, $message) - ); - } - - /** - * Get the mailer Closure for the message. - * - * @param mixed $notifiable - * @param \Illuminate\Notifications\Notification $notification - * @param \Illuminate\Notifications\Messages\MailMessage $message - * @return \Closure - */ - protected function messageBuilder($notifiable, $notification, $message) - { - return function ($mailMessage) use ($notifiable, $notification, $message) { - $this->buildMessage($mailMessage, $notifiable, $notification, $message); - }; - } - - /** - * Build the notification's view. - * - * @param \Illuminate\Notifications\Messages\MailMessage $message - * @return string|array - */ - protected function buildView($message) - { - if ($message->view) { - return $message->view; - } - - return [ - 'html' => $this->markdown->render($message->markdown, $message->data()), - 'text' => $this->markdown->renderText($message->markdown, $message->data()), - ]; - } - - /** - * Build the mail message. - * - * @param \Illuminate\Mail\Message $mailMessage - * @param mixed $notifiable - * @param \Illuminate\Notifications\Notification $notification - * @param \Illuminate\Notifications\Messages\MailMessage $message - * @return void - */ - protected function buildMessage($mailMessage, $notifiable, $notification, $message) - { - $this->addressMessage($mailMessage, $notifiable, $notification, $message); - - $mailMessage->subject($message->subject ?: Str::title( - Str::snake(class_basename($notification), ' ') - )); - - $this->addAttachments($mailMessage, $message); - - if (! is_null($message->priority)) { - $mailMessage->setPriority($message->priority); - } - } - - /** - * Address the mail message. - * - * @param \Illuminate\Mail\Message $mailMessage - * @param mixed $notifiable - * @param \Illuminate\Notifications\Notification $notification - * @param \Illuminate\Notifications\Messages\MailMessage $message - * @return void - */ - protected function addressMessage($mailMessage, $notifiable, $notification, $message) - { - $this->addSender($mailMessage, $message); - - $mailMessage->to($this->getRecipients($notifiable, $notification, $message)); - - if (! empty($message->cc)) { - foreach ($message->cc as $cc) { - $mailMessage->cc($cc[0], Arr::get($cc, 1)); - } - } - - if (! empty($message->bcc)) { - foreach ($message->bcc as $bcc) { - $mailMessage->bcc($bcc[0], Arr::get($bcc, 1)); - } - } - } - - /** - * Add the "from" and "reply to" addresses to the message. - * - * @param \Illuminate\Mail\Message $mailMessage - * @param \Illuminate\Notifications\Messages\MailMessage $message - * @return void - */ - protected function addSender($mailMessage, $message) - { - if (! empty($message->from)) { - $mailMessage->from($message->from[0], Arr::get($message->from, 1)); - } - - if (! empty($message->replyTo)) { - foreach ($message->replyTo as $replyTo) { - $mailMessage->replyTo($replyTo[0], Arr::get($replyTo, 1)); - } - } - } - - /** - * Get the recipients of the given message. - * - * @param mixed $notifiable - * @param \Illuminate\Notifications\Notification $notification - * @param \Illuminate\Notifications\Messages\MailMessage $message - * @return mixed - */ - protected function getRecipients($notifiable, $notification, $message) - { - if (is_string($recipients = $notifiable->routeNotificationFor('mail', $notification))) { - $recipients = [$recipients]; - } - - return collect($recipients)->mapWithKeys(function ($recipient, $email) { - return is_numeric($email) - ? [(is_string($recipient) ? $recipient : $recipient->email)] - : [$email => $recipient]; - })->all(); - } - - /** - * Add the attachments to the message. - * - * @param \Illuminate\Mail\Message $mailMessage - * @param \Illuminate\Notifications\Messages\MailMessage $message - * @return void - */ - protected function addAttachments($mailMessage, $message) - { - foreach ($message->attachments as $attachment) { - $mailMessage->attach($attachment['file'], $attachment['options']); - } - - foreach ($message->rawAttachments as $attachment) { - $mailMessage->attachData($attachment['data'], $attachment['name'], $attachment['options']); - } - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Notifications/Channels/NexmoSmsChannel.php b/vendor/laravel/framework/src/Illuminate/Notifications/Channels/NexmoSmsChannel.php deleted file mode 100644 index fecbedde..00000000 --- a/vendor/laravel/framework/src/Illuminate/Notifications/Channels/NexmoSmsChannel.php +++ /dev/null @@ -1,64 +0,0 @@ -from = $from; - $this->nexmo = $nexmo; - } - - /** - * Send the given notification. - * - * @param mixed $notifiable - * @param \Illuminate\Notifications\Notification $notification - * @return \Nexmo\Message\Message - */ - public function send($notifiable, Notification $notification) - { - if (! $to = $notifiable->routeNotificationFor('nexmo', $notification)) { - return; - } - - $message = $notification->toNexmo($notifiable); - - if (is_string($message)) { - $message = new NexmoMessage($message); - } - - return $this->nexmo->message()->send([ - 'type' => $message->type, - 'from' => $message->from ?: $this->from, - 'to' => $to, - 'text' => trim($message->content), - ]); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Notifications/Channels/SlackWebhookChannel.php b/vendor/laravel/framework/src/Illuminate/Notifications/Channels/SlackWebhookChannel.php deleted file mode 100644 index ec780d71..00000000 --- a/vendor/laravel/framework/src/Illuminate/Notifications/Channels/SlackWebhookChannel.php +++ /dev/null @@ -1,121 +0,0 @@ -http = $http; - } - - /** - * Send the given notification. - * - * @param mixed $notifiable - * @param \Illuminate\Notifications\Notification $notification - * @return \Psr\Http\Message\ResponseInterface - */ - public function send($notifiable, Notification $notification) - { - if (! $url = $notifiable->routeNotificationFor('slack', $notification)) { - return; - } - - $this->http->post($url, $this->buildJsonPayload( - $notification->toSlack($notifiable) - )); - } - - /** - * Build up a JSON payload for the Slack webhook. - * - * @param \Illuminate\Notifications\Messages\SlackMessage $message - * @return array - */ - protected function buildJsonPayload(SlackMessage $message) - { - $optionalFields = array_filter([ - 'channel' => data_get($message, 'channel'), - 'icon_emoji' => data_get($message, 'icon'), - 'icon_url' => data_get($message, 'image'), - 'link_names' => data_get($message, 'linkNames'), - 'unfurl_links' => data_get($message, 'unfurlLinks'), - 'unfurl_media' => data_get($message, 'unfurlMedia'), - 'username' => data_get($message, 'username'), - ]); - - return array_merge([ - 'json' => array_merge([ - 'text' => $message->content, - 'attachments' => $this->attachments($message), - ], $optionalFields), - ], $message->http); - } - - /** - * Format the message's attachments. - * - * @param \Illuminate\Notifications\Messages\SlackMessage $message - * @return array - */ - protected function attachments(SlackMessage $message) - { - return collect($message->attachments)->map(function ($attachment) use ($message) { - return array_filter([ - 'author_icon' => $attachment->authorIcon, - 'author_link' => $attachment->authorLink, - 'author_name' => $attachment->authorName, - 'color' => $attachment->color ?: $message->color(), - 'fallback' => $attachment->fallback, - 'fields' => $this->fields($attachment), - 'footer' => $attachment->footer, - 'footer_icon' => $attachment->footerIcon, - 'image_url' => $attachment->imageUrl, - 'mrkdwn_in' => $attachment->markdown, - 'pretext' => $attachment->pretext, - 'text' => $attachment->content, - 'thumb_url' => $attachment->thumbUrl, - 'title' => $attachment->title, - 'title_link' => $attachment->url, - 'ts' => $attachment->timestamp, - ]); - })->all(); - } - - /** - * Format the attachment's fields. - * - * @param \Illuminate\Notifications\Messages\SlackAttachment $attachment - * @return array - */ - protected function fields(SlackAttachment $attachment) - { - return collect($attachment->fields)->map(function ($value, $key) { - if ($value instanceof SlackAttachmentField) { - return $value->toArray(); - } - - return ['title' => $key, 'value' => $value, 'short' => true]; - })->values()->all(); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Notifications/Console/NotificationTableCommand.php b/vendor/laravel/framework/src/Illuminate/Notifications/Console/NotificationTableCommand.php deleted file mode 100644 index 23982808..00000000 --- a/vendor/laravel/framework/src/Illuminate/Notifications/Console/NotificationTableCommand.php +++ /dev/null @@ -1,81 +0,0 @@ -files = $files; - $this->composer = $composer; - } - - /** - * Execute the console command. - * - * @return void - */ - public function handle() - { - $fullPath = $this->createBaseMigration(); - - $this->files->put($fullPath, $this->files->get(__DIR__.'/stubs/notifications.stub')); - - $this->info('Migration created successfully!'); - - $this->composer->dumpAutoloads(); - } - - /** - * Create a base migration file for the notifications. - * - * @return string - */ - protected function createBaseMigration() - { - $name = 'create_notifications_table'; - - $path = $this->laravel->databasePath().'/migrations'; - - return $this->laravel['migration.creator']->create($name, $path); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Notifications/Console/stubs/notifications.stub b/vendor/laravel/framework/src/Illuminate/Notifications/Console/stubs/notifications.stub deleted file mode 100644 index fb16d5bc..00000000 --- a/vendor/laravel/framework/src/Illuminate/Notifications/Console/stubs/notifications.stub +++ /dev/null @@ -1,35 +0,0 @@ -uuid('id')->primary(); - $table->string('type'); - $table->morphs('notifiable'); - $table->text('data'); - $table->timestamp('read_at')->nullable(); - $table->timestamps(); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::dropIfExists('notifications'); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Notifications/DatabaseNotification.php b/vendor/laravel/framework/src/Illuminate/Notifications/DatabaseNotification.php deleted file mode 100644 index 1c1b6bbe..00000000 --- a/vendor/laravel/framework/src/Illuminate/Notifications/DatabaseNotification.php +++ /dev/null @@ -1,102 +0,0 @@ - 'array', - 'read_at' => 'datetime', - ]; - - /** - * Get the notifiable entity that the notification belongs to. - */ - public function notifiable() - { - return $this->morphTo(); - } - - /** - * Mark the notification as read. - * - * @return void - */ - public function markAsRead() - { - if (is_null($this->read_at)) { - $this->forceFill(['read_at' => $this->freshTimestamp()])->save(); - } - } - - /** - * Mark the notification as unread. - * - * @return void - */ - public function markAsUnread() - { - if (! is_null($this->read_at)) { - $this->forceFill(['read_at' => null])->save(); - } - } - - /** - * Determine if a notification has been read. - * - * @return bool - */ - public function read() - { - return $this->read_at !== null; - } - - /** - * Determine if a notification has not been read. - * - * @return bool - */ - public function unread() - { - return $this->read_at === null; - } - - /** - * Create a new database notification collection instance. - * - * @param array $models - * @return \Illuminate\Notifications\DatabaseNotificationCollection - */ - public function newCollection(array $models = []) - { - return new DatabaseNotificationCollection($models); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Notifications/DatabaseNotificationCollection.php b/vendor/laravel/framework/src/Illuminate/Notifications/DatabaseNotificationCollection.php deleted file mode 100644 index fc7b4702..00000000 --- a/vendor/laravel/framework/src/Illuminate/Notifications/DatabaseNotificationCollection.php +++ /dev/null @@ -1,32 +0,0 @@ -each(function ($notification) { - $notification->markAsRead(); - }); - } - - /** - * Mark all notifications as unread. - * - * @return void - */ - public function markAsUnread() - { - $this->each(function ($notification) { - $notification->markAsUnread(); - }); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Notifications/Events/BroadcastNotificationCreated.php b/vendor/laravel/framework/src/Illuminate/Notifications/Events/BroadcastNotificationCreated.php deleted file mode 100644 index d58ae779..00000000 --- a/vendor/laravel/framework/src/Illuminate/Notifications/Events/BroadcastNotificationCreated.php +++ /dev/null @@ -1,106 +0,0 @@ -data = $data; - $this->notifiable = $notifiable; - $this->notification = $notification; - } - - /** - * Get the channels the event should broadcast on. - * - * @return array - */ - public function broadcastOn() - { - $channels = $this->notification->broadcastOn(); - - if (! empty($channels)) { - return $channels; - } - - return [new PrivateChannel($this->channelName())]; - } - - /** - * Get the broadcast channel name for the event. - * - * @return string - */ - protected function channelName() - { - if (method_exists($this->notifiable, 'receivesBroadcastNotificationsOn')) { - return $this->notifiable->receivesBroadcastNotificationsOn($this->notification); - } - - $class = str_replace('\\', '.', get_class($this->notifiable)); - - return $class.'.'.$this->notifiable->getKey(); - } - - /** - * Get the data that should be sent with the broadcasted event. - * - * @return array - */ - public function broadcastWith() - { - return array_merge($this->data, [ - 'id' => $this->notification->id, - 'type' => $this->broadcastType(), - ]); - } - - /** - * Get the type of the notification being broadcast. - * - * @return string - */ - public function broadcastType() - { - return method_exists($this->notification, 'broadcastType') - ? $this->notification->broadcastType() - : get_class($this->notification); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Notifications/Events/NotificationFailed.php b/vendor/laravel/framework/src/Illuminate/Notifications/Events/NotificationFailed.php deleted file mode 100644 index b69e1c54..00000000 --- a/vendor/laravel/framework/src/Illuminate/Notifications/Events/NotificationFailed.php +++ /dev/null @@ -1,56 +0,0 @@ -data = $data; - $this->channel = $channel; - $this->notifiable = $notifiable; - $this->notification = $notification; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Notifications/Events/NotificationSending.php b/vendor/laravel/framework/src/Illuminate/Notifications/Events/NotificationSending.php deleted file mode 100644 index 6efd1d06..00000000 --- a/vendor/laravel/framework/src/Illuminate/Notifications/Events/NotificationSending.php +++ /dev/null @@ -1,47 +0,0 @@ -channel = $channel; - $this->notifiable = $notifiable; - $this->notification = $notification; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Notifications/Events/NotificationSent.php b/vendor/laravel/framework/src/Illuminate/Notifications/Events/NotificationSent.php deleted file mode 100644 index 4f090691..00000000 --- a/vendor/laravel/framework/src/Illuminate/Notifications/Events/NotificationSent.php +++ /dev/null @@ -1,56 +0,0 @@ -channel = $channel; - $this->response = $response; - $this->notifiable = $notifiable; - $this->notification = $notification; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Notifications/HasDatabaseNotifications.php b/vendor/laravel/framework/src/Illuminate/Notifications/HasDatabaseNotifications.php deleted file mode 100644 index 981d8e55..00000000 --- a/vendor/laravel/framework/src/Illuminate/Notifications/HasDatabaseNotifications.php +++ /dev/null @@ -1,36 +0,0 @@ -morphMany(DatabaseNotification::class, 'notifiable')->orderBy('created_at', 'desc'); - } - - /** - * Get the entity's read notifications. - * - * @return \Illuminate\Database\Query\Builder - */ - public function readNotifications() - { - return $this->notifications()->whereNotNull('read_at'); - } - - /** - * Get the entity's unread notifications. - * - * @return \Illuminate\Database\Query\Builder - */ - public function unreadNotifications() - { - return $this->notifications()->whereNull('read_at'); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Notifications/Messages/BroadcastMessage.php b/vendor/laravel/framework/src/Illuminate/Notifications/Messages/BroadcastMessage.php deleted file mode 100644 index 9884a8fb..00000000 --- a/vendor/laravel/framework/src/Illuminate/Notifications/Messages/BroadcastMessage.php +++ /dev/null @@ -1,41 +0,0 @@ -data = $data; - } - - /** - * Set the message data. - * - * @param array $data - * @return $this - */ - public function data($data) - { - $this->data = $data; - - return $this; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Notifications/Messages/DatabaseMessage.php b/vendor/laravel/framework/src/Illuminate/Notifications/Messages/DatabaseMessage.php deleted file mode 100644 index 55707a7c..00000000 --- a/vendor/laravel/framework/src/Illuminate/Notifications/Messages/DatabaseMessage.php +++ /dev/null @@ -1,24 +0,0 @@ -data = $data; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Notifications/Messages/MailMessage.php b/vendor/laravel/framework/src/Illuminate/Notifications/Messages/MailMessage.php deleted file mode 100644 index f0db201c..00000000 --- a/vendor/laravel/framework/src/Illuminate/Notifications/Messages/MailMessage.php +++ /dev/null @@ -1,233 +0,0 @@ -view = $view; - $this->viewData = $data; - - $this->markdown = null; - - return $this; - } - - /** - * Set the Markdown template for the notification. - * - * @param string $view - * @param array $data - * @return $this - */ - public function markdown($view, array $data = []) - { - $this->markdown = $view; - $this->viewData = $data; - - $this->view = null; - - return $this; - } - - /** - * Set the default markdown template. - * - * @param string $template - * @return $this - */ - public function template($template) - { - $this->markdown = $template; - - return $this; - } - - /** - * Set the from address for the mail message. - * - * @param string $address - * @param string|null $name - * @return $this - */ - public function from($address, $name = null) - { - $this->from = [$address, $name]; - - return $this; - } - - /** - * Set the "reply to" address of the message. - * - * @param array|string $address - * @param string|null $name - * @return $this - */ - public function replyTo($address, $name = null) - { - $this->replyTo[] = [$address, $name]; - - return $this; - } - - /** - * Set the cc address for the mail message. - * - * @param string $address - * @param string|null $name - * @return $this - */ - public function cc($address, $name = null) - { - $this->cc[] = [$address, $name]; - - return $this; - } - - /** - * Set the bcc address for the mail message. - * - * @param string $address - * @param string|null $name - * @return $this - */ - public function bcc($address, $name = null) - { - $this->bcc[] = [$address, $name]; - - return $this; - } - - /** - * Attach a file to the message. - * - * @param string $file - * @param array $options - * @return $this - */ - public function attach($file, array $options = []) - { - $this->attachments[] = compact('file', 'options'); - - return $this; - } - - /** - * Attach in-memory data as an attachment. - * - * @param string $data - * @param string $name - * @param array $options - * @return $this - */ - public function attachData($data, $name, array $options = []) - { - $this->rawAttachments[] = compact('data', 'name', 'options'); - - return $this; - } - - /** - * Set the priority of this message. - * - * The value is an integer where 1 is the highest priority and 5 is the lowest. - * - * @param int $level - * @return $this - */ - public function priority($level) - { - $this->priority = $level; - - return $this; - } - - /** - * Get the data array for the mail message. - * - * @return array - */ - public function data() - { - return array_merge($this->toArray(), $this->viewData); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Notifications/Messages/NexmoMessage.php b/vendor/laravel/framework/src/Illuminate/Notifications/Messages/NexmoMessage.php deleted file mode 100644 index 293cf032..00000000 --- a/vendor/laravel/framework/src/Illuminate/Notifications/Messages/NexmoMessage.php +++ /dev/null @@ -1,76 +0,0 @@ -content = $content; - } - - /** - * Set the message content. - * - * @param string $content - * @return $this - */ - public function content($content) - { - $this->content = $content; - - return $this; - } - - /** - * Set the phone number the message should be sent from. - * - * @param string $from - * @return $this - */ - public function from($from) - { - $this->from = $from; - - return $this; - } - - /** - * Set the message type. - * - * @return $this - */ - public function unicode() - { - $this->type = 'unicode'; - - return $this; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Notifications/Messages/SimpleMessage.php b/vendor/laravel/framework/src/Illuminate/Notifications/Messages/SimpleMessage.php deleted file mode 100644 index 395983c0..00000000 --- a/vendor/laravel/framework/src/Illuminate/Notifications/Messages/SimpleMessage.php +++ /dev/null @@ -1,224 +0,0 @@ -level = 'success'; - - return $this; - } - - /** - * Indicate that the notification gives information about an error. - * - * @return $this - */ - public function error() - { - $this->level = 'error'; - - return $this; - } - - /** - * Set the "level" of the notification (success, error, etc.). - * - * @param string $level - * @return $this - */ - public function level($level) - { - $this->level = $level; - - return $this; - } - - /** - * Set the subject of the notification. - * - * @param string $subject - * @return $this - */ - public function subject($subject) - { - $this->subject = $subject; - - return $this; - } - - /** - * Set the greeting of the notification. - * - * @param string $greeting - * @return $this - */ - public function greeting($greeting) - { - $this->greeting = $greeting; - - return $this; - } - - /** - * Set the salutation of the notification. - * - * @param string $salutation - * @return $this - */ - public function salutation($salutation) - { - $this->salutation = $salutation; - - return $this; - } - - /** - * Add a line of text to the notification. - * - * @param mixed $line - * @return $this - */ - public function line($line) - { - return $this->with($line); - } - - /** - * Add a line of text to the notification. - * - * @param mixed $line - * @return $this - */ - public function with($line) - { - if ($line instanceof Action) { - $this->action($line->text, $line->url); - } elseif (! $this->actionText) { - $this->introLines[] = $this->formatLine($line); - } else { - $this->outroLines[] = $this->formatLine($line); - } - - return $this; - } - - /** - * Format the given line of text. - * - * @param \Illuminate\Contracts\Support\Htmlable|string|array $line - * @return \Illuminate\Contracts\Support\Htmlable|string - */ - protected function formatLine($line) - { - if ($line instanceof Htmlable) { - return $line; - } - - if (is_array($line)) { - return implode(' ', array_map('trim', $line)); - } - - return trim(implode(' ', array_map('trim', preg_split('/\\r\\n|\\r|\\n/', $line)))); - } - - /** - * Configure the "call to action" button. - * - * @param string $text - * @param string $url - * @return $this - */ - public function action($text, $url) - { - $this->actionText = $text; - $this->actionUrl = $url; - - return $this; - } - - /** - * Get an array representation of the message. - * - * @return array - */ - public function toArray() - { - return [ - 'level' => $this->level, - 'subject' => $this->subject, - 'greeting' => $this->greeting, - 'salutation' => $this->salutation, - 'introLines' => $this->introLines, - 'outroLines' => $this->outroLines, - 'actionText' => $this->actionText, - 'actionUrl' => $this->actionUrl, - ]; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Notifications/Messages/SlackAttachment.php b/vendor/laravel/framework/src/Illuminate/Notifications/Messages/SlackAttachment.php deleted file mode 100644 index caa903c0..00000000 --- a/vendor/laravel/framework/src/Illuminate/Notifications/Messages/SlackAttachment.php +++ /dev/null @@ -1,321 +0,0 @@ -title = $title; - $this->url = $url; - - return $this; - } - - /** - * Set the pretext of the attachment. - * - * @param string $pretext - * @return $this - */ - public function pretext($pretext) - { - $this->pretext = $pretext; - - return $this; - } - - /** - * Set the content (text) of the attachment. - * - * @param string $content - * @return $this - */ - public function content($content) - { - $this->content = $content; - - return $this; - } - - /** - * A plain-text summary of the attachment. - * - * @param string $fallback - * @return $this - */ - public function fallback($fallback) - { - $this->fallback = $fallback; - - return $this; - } - - /** - * Set the color of the attachment. - * - * @param string $color - * @return $this - */ - public function color($color) - { - $this->color = $color; - - return $this; - } - - /** - * Add a field to the attachment. - * - * @param \Closure|string $title - * @param string $content - * @return $this - */ - public function field($title, $content = '') - { - if (is_callable($title)) { - $callback = $title; - - $callback($attachmentField = new SlackAttachmentField); - - $this->fields[] = $attachmentField; - - return $this; - } - - $this->fields[$title] = $content; - - return $this; - } - - /** - * Set the fields of the attachment. - * - * @param array $fields - * @return $this - */ - public function fields(array $fields) - { - $this->fields = $fields; - - return $this; - } - - /** - * Set the fields containing markdown. - * - * @param array $fields - * @return $this - */ - public function markdown(array $fields) - { - $this->markdown = $fields; - - return $this; - } - - /** - * Set the image URL. - * - * @param string $url - * @return $this - */ - public function image($url) - { - $this->imageUrl = $url; - - return $this; - } - - /** - * Set the URL to the attachment thumbnail. - * - * @param string $url - * @return $this - */ - public function thumb($url) - { - $this->thumbUrl = $url; - - return $this; - } - - /** - * Set the author of the attachment. - * - * @param string $name - * @param string|null $link - * @param string|null $icon - * @return $this - */ - public function author($name, $link = null, $icon = null) - { - $this->authorName = $name; - $this->authorLink = $link; - $this->authorIcon = $icon; - - return $this; - } - - /** - * Set the footer content. - * - * @param string $footer - * @return $this - */ - public function footer($footer) - { - $this->footer = $footer; - - return $this; - } - - /** - * Set the footer icon. - * - * @param string $icon - * @return $this - */ - public function footerIcon($icon) - { - $this->footerIcon = $icon; - - return $this; - } - - /** - * Set the timestamp. - * - * @param \DateTimeInterface|\DateInterval|int $timestamp - * @return $this - */ - public function timestamp($timestamp) - { - $this->timestamp = $this->availableAt($timestamp); - - return $this; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Notifications/Messages/SlackAttachmentField.php b/vendor/laravel/framework/src/Illuminate/Notifications/Messages/SlackAttachmentField.php deleted file mode 100644 index f63bb267..00000000 --- a/vendor/laravel/framework/src/Illuminate/Notifications/Messages/SlackAttachmentField.php +++ /dev/null @@ -1,79 +0,0 @@ -title = $title; - - return $this; - } - - /** - * Set the content of the field. - * - * @param string $content - * @return $this - */ - public function content($content) - { - $this->content = $content; - - return $this; - } - - /** - * Indicates that the content should not be displayed side-by-side with other fields. - * - * @return $this - */ - public function long() - { - $this->short = false; - - return $this; - } - - /** - * Get the array representation of the attachment field. - * - * @return array - */ - public function toArray() - { - return [ - 'title' => $this->title, - 'value' => $this->content, - 'short' => $this->short, - ]; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Notifications/Messages/SlackMessage.php b/vendor/laravel/framework/src/Illuminate/Notifications/Messages/SlackMessage.php deleted file mode 100644 index 6d61fc76..00000000 --- a/vendor/laravel/framework/src/Illuminate/Notifications/Messages/SlackMessage.php +++ /dev/null @@ -1,273 +0,0 @@ -level = 'info'; - - return $this; - } - - /** - * Indicate that the notification gives information about a successful operation. - * - * @return $this - */ - public function success() - { - $this->level = 'success'; - - return $this; - } - - /** - * Indicate that the notification gives information about a warning. - * - * @return $this - */ - public function warning() - { - $this->level = 'warning'; - - return $this; - } - - /** - * Indicate that the notification gives information about an error. - * - * @return $this - */ - public function error() - { - $this->level = 'error'; - - return $this; - } - - /** - * Set a custom username and optional emoji icon for the Slack message. - * - * @param string $username - * @param string|null $icon - * @return $this - */ - public function from($username, $icon = null) - { - $this->username = $username; - - if (! is_null($icon)) { - $this->icon = $icon; - } - - return $this; - } - - /** - * Set a custom image icon the message should use. - * - * @param string $image - * @return $this - */ - public function image($image) - { - $this->image = $image; - - return $this; - } - - /** - * Set the Slack channel the message should be sent to. - * - * @param string $channel - * @return $this - */ - public function to($channel) - { - $this->channel = $channel; - - return $this; - } - - /** - * Set the content of the Slack message. - * - * @param string $content - * @return $this - */ - public function content($content) - { - $this->content = $content; - - return $this; - } - - /** - * Define an attachment for the message. - * - * @param \Closure $callback - * @return $this - */ - public function attachment(Closure $callback) - { - $this->attachments[] = $attachment = new SlackAttachment; - - $callback($attachment); - - return $this; - } - - /** - * Get the color for the message. - * - * @return string - */ - public function color() - { - switch ($this->level) { - case 'success': - return 'good'; - case 'error': - return 'danger'; - case 'warning': - return 'warning'; - } - } - - /** - * Find and link channel names and usernames. - * - * @return $this - */ - public function linkNames() - { - $this->linkNames = 1; - - return $this; - } - - /** - * Find and link channel names and usernames. - * - * @param string $unfurl - * @return $this - */ - public function unfurlLinks($unfurl) - { - $this->unfurlLinks = $unfurl; - - return $this; - } - - /** - * Find and link channel names and usernames. - * - * @param string $unfurl - * @return $this - */ - public function unfurlMedia($unfurl) - { - $this->unfurlMedia = $unfurl; - - return $this; - } - - /** - * Set additional request options for the Guzzle HTTP client. - * - * @param array $options - * @return $this - */ - public function http(array $options) - { - $this->http = $options; - - return $this; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Notifications/Notifiable.php b/vendor/laravel/framework/src/Illuminate/Notifications/Notifiable.php deleted file mode 100644 index 82381e1e..00000000 --- a/vendor/laravel/framework/src/Illuminate/Notifications/Notifiable.php +++ /dev/null @@ -1,8 +0,0 @@ -bus = $bus; - $this->events = $events; - $this->manager = $manager; - } - - /** - * Send the given notification to the given notifiable entities. - * - * @param \Illuminate\Support\Collection|array|mixed $notifiables - * @param mixed $notification - * @return void - */ - public function send($notifiables, $notification) - { - $notifiables = $this->formatNotifiables($notifiables); - - if ($notification instanceof ShouldQueue) { - return $this->queueNotification($notifiables, $notification); - } - - return $this->sendNow($notifiables, $notification); - } - - /** - * Send the given notification immediately. - * - * @param \Illuminate\Support\Collection|array|mixed $notifiables - * @param mixed $notification - * @param array $channels - * @return void - */ - public function sendNow($notifiables, $notification, array $channels = null) - { - $notifiables = $this->formatNotifiables($notifiables); - - $original = clone $notification; - - foreach ($notifiables as $notifiable) { - if (empty($viaChannels = $channels ?: $notification->via($notifiable))) { - continue; - } - - $notificationId = Str::uuid()->toString(); - - foreach ((array) $viaChannels as $channel) { - $this->sendToNotifiable($notifiable, $notificationId, clone $original, $channel); - } - } - } - - /** - * Send the given notification to the given notifiable via a channel. - * - * @param mixed $notifiable - * @param string $id - * @param mixed $notification - * @param string $channel - * @return void - */ - protected function sendToNotifiable($notifiable, $id, $notification, $channel) - { - if (! $notification->id) { - $notification->id = $id; - } - - if (! $this->shouldSendNotification($notifiable, $notification, $channel)) { - return; - } - - $response = $this->manager->driver($channel)->send($notifiable, $notification); - - $this->events->dispatch( - new Events\NotificationSent($notifiable, $notification, $channel, $response) - ); - } - - /** - * Determines if the notification can be sent. - * - * @param mixed $notifiable - * @param mixed $notification - * @param string $channel - * @return bool - */ - protected function shouldSendNotification($notifiable, $notification, $channel) - { - return $this->events->until( - new Events\NotificationSending($notifiable, $notification, $channel) - ) !== false; - } - - /** - * Queue the given notification instances. - * - * @param mixed $notifiables - * @param array[\Illuminate\Notifications\Channels\Notification] $notification - * @return void - */ - protected function queueNotification($notifiables, $notification) - { - $notifiables = $this->formatNotifiables($notifiables); - - $original = clone $notification; - - foreach ($notifiables as $notifiable) { - $notificationId = Str::uuid()->toString(); - - foreach ($original->via($notifiable) as $channel) { - $notification = clone $original; - - $notification->id = $notificationId; - - $this->bus->dispatch( - (new SendQueuedNotifications($notifiable, $notification, [$channel])) - ->onConnection($notification->connection) - ->onQueue($notification->queue) - ->delay($notification->delay) - ); - } - } - } - - /** - * Format the notifiables into a Collection / array if necessary. - * - * @param mixed $notifiables - * @return \Illuminate\Database\Eloquent\Collection|array - */ - protected function formatNotifiables($notifiables) - { - if (! $notifiables instanceof Collection && ! is_array($notifiables)) { - return $notifiables instanceof Model - ? new ModelCollection([$notifiables]) : [$notifiables]; - } - - return $notifiables; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Notifications/NotificationServiceProvider.php b/vendor/laravel/framework/src/Illuminate/Notifications/NotificationServiceProvider.php deleted file mode 100644 index e8909f45..00000000 --- a/vendor/laravel/framework/src/Illuminate/Notifications/NotificationServiceProvider.php +++ /dev/null @@ -1,46 +0,0 @@ -loadViewsFrom(__DIR__.'/resources/views', 'notifications'); - - if ($this->app->runningInConsole()) { - $this->publishes([ - __DIR__.'/resources/views' => $this->app->resourcePath('views/vendor/notifications'), - ], 'laravel-notifications'); - } - } - - /** - * Register the service provider. - * - * @return void - */ - public function register() - { - $this->app->singleton(ChannelManager::class, function ($app) { - return new ChannelManager($app); - }); - - $this->app->alias( - ChannelManager::class, DispatcherContract::class - ); - - $this->app->alias( - ChannelManager::class, FactoryContract::class - ); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Notifications/RoutesNotifications.php b/vendor/laravel/framework/src/Illuminate/Notifications/RoutesNotifications.php deleted file mode 100644 index 80df2eae..00000000 --- a/vendor/laravel/framework/src/Illuminate/Notifications/RoutesNotifications.php +++ /dev/null @@ -1,55 +0,0 @@ -send($this, $instance); - } - - /** - * Send the given notification immediately. - * - * @param mixed $instance - * @param array|null $channels - * @return void - */ - public function notifyNow($instance, array $channels = null) - { - app(Dispatcher::class)->sendNow($this, $instance, $channels); - } - - /** - * Get the notification routing information for the given driver. - * - * @param string $driver - * @param \Illuminate\Notifications\Notification|null $notification - * @return mixed - */ - public function routeNotificationFor($driver, $notification = null) - { - if (method_exists($this, $method = 'routeNotificationFor'.Str::studly($driver))) { - return $this->{$method}($notification); - } - - switch ($driver) { - case 'database': - return $this->notifications(); - case 'mail': - return $this->email; - case 'nexmo': - return $this->phone_number; - } - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Notifications/SendQueuedNotifications.php b/vendor/laravel/framework/src/Illuminate/Notifications/SendQueuedNotifications.php deleted file mode 100644 index c795de44..00000000 --- a/vendor/laravel/framework/src/Illuminate/Notifications/SendQueuedNotifications.php +++ /dev/null @@ -1,93 +0,0 @@ -channels = $channels; - $this->notifiables = $notifiables; - $this->notification = $notification; - } - - /** - * Send the notifications. - * - * @param \Illuminate\Notifications\ChannelManager $manager - * @return void - */ - public function handle(ChannelManager $manager) - { - $manager->sendNow($this->notifiables, $this->notification, $this->channels); - } - - /** - * Get the display name for the queued job. - * - * @return string - */ - public function displayName() - { - return get_class($this->notification); - } - - /** - * Call the failed method on the notification instance. - * - * @param \Exception $e - * @return void - */ - public function failed($e) - { - if (method_exists($this->notification, 'failed')) { - $this->notification->failed($e); - } - } - - /** - * Prepare the instance for cloning. - * - * @return void - */ - public function __clone() - { - $this->notifiables = clone $this->notifiables; - $this->notification = clone $this->notification; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Notifications/composer.json b/vendor/laravel/framework/src/Illuminate/Notifications/composer.json deleted file mode 100644 index ba89e4cd..00000000 --- a/vendor/laravel/framework/src/Illuminate/Notifications/composer.json +++ /dev/null @@ -1,46 +0,0 @@ -{ - "name": "illuminate/notifications", - "description": "The Illuminate Notifications package.", - "license": "MIT", - "homepage": "https://laravel.com", - "support": { - "issues": "https://github.com/laravel/framework/issues", - "source": "https://github.com/laravel/framework" - }, - "authors": [ - { - "name": "Taylor Otwell", - "email": "taylor@laravel.com" - } - ], - "require": { - "php": "^7.1.3", - "illuminate/broadcasting": "5.6.*", - "illuminate/bus": "5.6.*", - "illuminate/container": "5.6.*", - "illuminate/contracts": "5.6.*", - "illuminate/filesystem": "5.6.*", - "illuminate/mail": "5.6.*", - "illuminate/queue": "5.6.*", - "illuminate/support": "5.6.*" - }, - "autoload": { - "psr-4": { - "Illuminate\\Notifications\\": "" - } - }, - "extra": { - "branch-alias": { - "dev-master": "5.6-dev" - } - }, - "suggest": { - "guzzlehttp/guzzle": "Required to use the Slack transport (~6.0)", - "illuminate/database": "Required to use the database transport (5.6.*).", - "nexmo/client": "Required to use the Nexmo transport (~1.0)." - }, - "config": { - "sort-packages": true - }, - "minimum-stability": "dev" -} diff --git a/vendor/laravel/framework/src/Illuminate/Notifications/resources/views/email.blade.php b/vendor/laravel/framework/src/Illuminate/Notifications/resources/views/email.blade.php deleted file mode 100644 index fe388953..00000000 --- a/vendor/laravel/framework/src/Illuminate/Notifications/resources/views/email.blade.php +++ /dev/null @@ -1,64 +0,0 @@ -@component('mail::message') -{{-- Greeting --}} -@if (! empty($greeting)) -# {{ $greeting }} -@else -@if ($level == 'error') -# @lang('Whoops!') -@else -# @lang('Hello!') -@endif -@endif - -{{-- Intro Lines --}} -@foreach ($introLines as $line) -{{ $line }} - -@endforeach - -{{-- Action Button --}} -@isset($actionText) - -@component('mail::button', ['url' => $actionUrl, 'color' => $color]) -{{ $actionText }} -@endcomponent -@endisset - -{{-- Outro Lines --}} -@foreach ($outroLines as $line) -{{ $line }} - -@endforeach - -{{-- Salutation --}} -@if (! empty($salutation)) -{{ $salutation }} -@else -@lang('Regards'),
{{ config('app.name') }} -@endif - -{{-- Subcopy --}} -@isset($actionText) -@component('mail::subcopy') -@lang( - "If you’re having trouble clicking the \":actionText\" button, copy and paste the URL below\n". - 'into your web browser: [:actionURL](:actionURL)', - [ - 'actionText' => $actionText, - 'actionURL' => $actionUrl - ] -) -@endcomponent -@endisset -@endcomponent diff --git a/vendor/laravel/framework/src/Illuminate/Pagination/AbstractPaginator.php b/vendor/laravel/framework/src/Illuminate/Pagination/AbstractPaginator.php deleted file mode 100644 index 35f62476..00000000 --- a/vendor/laravel/framework/src/Illuminate/Pagination/AbstractPaginator.php +++ /dev/null @@ -1,614 +0,0 @@ -= 1 && filter_var($page, FILTER_VALIDATE_INT) !== false; - } - - /** - * Get the URL for the previous page. - * - * @return string|null - */ - public function previousPageUrl() - { - if ($this->currentPage() > 1) { - return $this->url($this->currentPage() - 1); - } - } - - /** - * Create a range of pagination URLs. - * - * @param int $start - * @param int $end - * @return array - */ - public function getUrlRange($start, $end) - { - return collect(range($start, $end))->mapWithKeys(function ($page) { - return [$page => $this->url($page)]; - })->all(); - } - - /** - * Get the URL for a given page number. - * - * @param int $page - * @return string - */ - public function url($page) - { - if ($page <= 0) { - $page = 1; - } - - // If we have any extra query string key / value pairs that need to be added - // onto the URL, we will put them in query string form and then attach it - // to the URL. This allows for extra information like sortings storage. - $parameters = [$this->pageName => $page]; - - if (count($this->query) > 0) { - $parameters = array_merge($this->query, $parameters); - } - - return $this->path - .(Str::contains($this->path, '?') ? '&' : '?') - .http_build_query($parameters, '', '&') - .$this->buildFragment(); - } - - /** - * Get / set the URL fragment to be appended to URLs. - * - * @param string|null $fragment - * @return $this|string|null - */ - public function fragment($fragment = null) - { - if (is_null($fragment)) { - return $this->fragment; - } - - $this->fragment = $fragment; - - return $this; - } - - /** - * Add a set of query string values to the paginator. - * - * @param array|string $key - * @param string|null $value - * @return $this - */ - public function appends($key, $value = null) - { - if (is_array($key)) { - return $this->appendArray($key); - } - - return $this->addQuery($key, $value); - } - - /** - * Add an array of query string values. - * - * @param array $keys - * @return $this - */ - protected function appendArray(array $keys) - { - foreach ($keys as $key => $value) { - $this->addQuery($key, $value); - } - - return $this; - } - - /** - * Add a query string value to the paginator. - * - * @param string $key - * @param string $value - * @return $this - */ - protected function addQuery($key, $value) - { - if ($key !== $this->pageName) { - $this->query[$key] = $value; - } - - return $this; - } - - /** - * Build the full fragment portion of a URL. - * - * @return string - */ - protected function buildFragment() - { - return $this->fragment ? '#'.$this->fragment : ''; - } - - /** - * Load a set of relationships onto the mixed relationship collection. - * - * @param string $relation - * @param array $relations - * @return $this - */ - public function loadMorph($relation, $relations) - { - $this->getCollection()->loadMorph($relation, $relations); - - return $this; - } - - /** - * Get the slice of items being paginated. - * - * @return array - */ - public function items() - { - return $this->items->all(); - } - - /** - * Get the number of the first item in the slice. - * - * @return int - */ - public function firstItem() - { - return count($this->items) > 0 ? ($this->currentPage - 1) * $this->perPage + 1 : null; - } - - /** - * Get the number of the last item in the slice. - * - * @return int - */ - public function lastItem() - { - return count($this->items) > 0 ? $this->firstItem() + $this->count() - 1 : null; - } - - /** - * Get the number of items shown per page. - * - * @return int - */ - public function perPage() - { - return $this->perPage; - } - - /** - * Determine if there are enough items to split into multiple pages. - * - * @return bool - */ - public function hasPages() - { - return $this->currentPage() != 1 || $this->hasMorePages(); - } - - /** - * Determine if the paginator is on the first page. - * - * @return bool - */ - public function onFirstPage() - { - return $this->currentPage() <= 1; - } - - /** - * Get the current page. - * - * @return int - */ - public function currentPage() - { - return $this->currentPage; - } - - /** - * Get the query string variable used to store the page. - * - * @return string - */ - public function getPageName() - { - return $this->pageName; - } - - /** - * Set the query string variable used to store the page. - * - * @param string $name - * @return $this - */ - public function setPageName($name) - { - $this->pageName = $name; - - return $this; - } - - /** - * Set the base path to assign to all URLs. - * - * @param string $path - * @return $this - */ - public function withPath($path) - { - return $this->setPath($path); - } - - /** - * Set the base path to assign to all URLs. - * - * @param string $path - * @return $this - */ - public function setPath($path) - { - $this->path = $path; - - return $this; - } - - /** - * Resolve the current request path or return the default value. - * - * @param string $default - * @return string - */ - public static function resolveCurrentPath($default = '/') - { - if (isset(static::$currentPathResolver)) { - return call_user_func(static::$currentPathResolver); - } - - return $default; - } - - /** - * Set the current request path resolver callback. - * - * @param \Closure $resolver - * @return void - */ - public static function currentPathResolver(Closure $resolver) - { - static::$currentPathResolver = $resolver; - } - - /** - * Resolve the current page or return the default value. - * - * @param string $pageName - * @param int $default - * @return int - */ - public static function resolveCurrentPage($pageName = 'page', $default = 1) - { - if (isset(static::$currentPageResolver)) { - return call_user_func(static::$currentPageResolver, $pageName); - } - - return $default; - } - - /** - * Set the current page resolver callback. - * - * @param \Closure $resolver - * @return void - */ - public static function currentPageResolver(Closure $resolver) - { - static::$currentPageResolver = $resolver; - } - - /** - * Get an instance of the view factory from the resolver. - * - * @return \Illuminate\Contracts\View\Factory - */ - public static function viewFactory() - { - return call_user_func(static::$viewFactoryResolver); - } - - /** - * Set the view factory resolver callback. - * - * @param \Closure $resolver - * @return void - */ - public static function viewFactoryResolver(Closure $resolver) - { - static::$viewFactoryResolver = $resolver; - } - - /** - * Set the default pagination view. - * - * @param string $view - * @return void - */ - public static function defaultView($view) - { - static::$defaultView = $view; - } - - /** - * Set the default "simple" pagination view. - * - * @param string $view - * @return void - */ - public static function defaultSimpleView($view) - { - static::$defaultSimpleView = $view; - } - - /** - * Indicate that Bootstrap 3 styling should be used for generated links. - * - * @return void - */ - public static function useBootstrapThree() - { - static::defaultView('pagination::default'); - static::defaultSimpleView('pagination::simple-default'); - } - - /** - * Get an iterator for the items. - * - * @return \ArrayIterator - */ - public function getIterator() - { - return $this->items->getIterator(); - } - - /** - * Determine if the list of items is empty. - * - * @return bool - */ - public function isEmpty() - { - return $this->items->isEmpty(); - } - - /** - * Determine if the list of items is not empty. - * - * @return bool - */ - public function isNotEmpty() - { - return $this->items->isNotEmpty(); - } - - /** - * Get the number of items for the current page. - * - * @return int - */ - public function count() - { - return $this->items->count(); - } - - /** - * Get the paginator's underlying collection. - * - * @return \Illuminate\Support\Collection - */ - public function getCollection() - { - return $this->items; - } - - /** - * Set the paginator's underlying collection. - * - * @param \Illuminate\Support\Collection $collection - * @return $this - */ - public function setCollection(Collection $collection) - { - $this->items = $collection; - - return $this; - } - - /** - * Determine if the given item exists. - * - * @param mixed $key - * @return bool - */ - public function offsetExists($key) - { - return $this->items->has($key); - } - - /** - * Get the item at the given offset. - * - * @param mixed $key - * @return mixed - */ - public function offsetGet($key) - { - return $this->items->get($key); - } - - /** - * Set the item at the given offset. - * - * @param mixed $key - * @param mixed $value - * @return void - */ - public function offsetSet($key, $value) - { - $this->items->put($key, $value); - } - - /** - * Unset the item at the given key. - * - * @param mixed $key - * @return void - */ - public function offsetUnset($key) - { - $this->items->forget($key); - } - - /** - * Render the contents of the paginator to HTML. - * - * @return string - */ - public function toHtml() - { - return (string) $this->render(); - } - - /** - * Make dynamic calls into the collection. - * - * @param string $method - * @param array $parameters - * @return mixed - */ - public function __call($method, $parameters) - { - return $this->getCollection()->$method(...$parameters); - } - - /** - * Render the contents of the paginator when casting to string. - * - * @return string - */ - public function __toString() - { - return (string) $this->render(); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Pagination/LengthAwarePaginator.php b/vendor/laravel/framework/src/Illuminate/Pagination/LengthAwarePaginator.php deleted file mode 100644 index 5a7094ea..00000000 --- a/vendor/laravel/framework/src/Illuminate/Pagination/LengthAwarePaginator.php +++ /dev/null @@ -1,199 +0,0 @@ - $value) { - $this->{$key} = $value; - } - - $this->total = $total; - $this->perPage = $perPage; - $this->lastPage = max((int) ceil($total / $perPage), 1); - $this->path = $this->path !== '/' ? rtrim($this->path, '/') : $this->path; - $this->currentPage = $this->setCurrentPage($currentPage, $this->pageName); - $this->items = $items instanceof Collection ? $items : Collection::make($items); - } - - /** - * Get the current page for the request. - * - * @param int $currentPage - * @param string $pageName - * @return int - */ - protected function setCurrentPage($currentPage, $pageName) - { - $currentPage = $currentPage ?: static::resolveCurrentPage($pageName); - - return $this->isValidPageNumber($currentPage) ? (int) $currentPage : 1; - } - - /** - * Render the paginator using the given view. - * - * @param string|null $view - * @param array $data - * @return \Illuminate\Support\HtmlString - */ - public function links($view = null, $data = []) - { - return $this->render($view, $data); - } - - /** - * Render the paginator using the given view. - * - * @param string|null $view - * @param array $data - * @return \Illuminate\Support\HtmlString - */ - public function render($view = null, $data = []) - { - return new HtmlString(static::viewFactory()->make($view ?: static::$defaultView, array_merge($data, [ - 'paginator' => $this, - 'elements' => $this->elements(), - ]))->render()); - } - - /** - * Get the array of elements to pass to the view. - * - * @return array - */ - protected function elements() - { - $window = UrlWindow::make($this); - - return array_filter([ - $window['first'], - is_array($window['slider']) ? '...' : null, - $window['slider'], - is_array($window['last']) ? '...' : null, - $window['last'], - ]); - } - - /** - * Get the total number of items being paginated. - * - * @return int - */ - public function total() - { - return $this->total; - } - - /** - * Determine if there are more items in the data source. - * - * @return bool - */ - public function hasMorePages() - { - return $this->currentPage() < $this->lastPage(); - } - - /** - * Get the URL for the next page. - * - * @return string|null - */ - public function nextPageUrl() - { - if ($this->lastPage() > $this->currentPage()) { - return $this->url($this->currentPage() + 1); - } - } - - /** - * Get the last page. - * - * @return int - */ - public function lastPage() - { - return $this->lastPage; - } - - /** - * Get the instance as an array. - * - * @return array - */ - public function toArray() - { - return [ - 'current_page' => $this->currentPage(), - 'data' => $this->items->toArray(), - 'first_page_url' => $this->url(1), - 'from' => $this->firstItem(), - 'last_page' => $this->lastPage(), - 'last_page_url' => $this->url($this->lastPage()), - 'next_page_url' => $this->nextPageUrl(), - 'path' => $this->path, - 'per_page' => $this->perPage(), - 'prev_page_url' => $this->previousPageUrl(), - 'to' => $this->lastItem(), - 'total' => $this->total(), - ]; - } - - /** - * Convert the object into something JSON serializable. - * - * @return array - */ - public function jsonSerialize() - { - return $this->toArray(); - } - - /** - * Convert the object to its JSON representation. - * - * @param int $options - * @return string - */ - public function toJson($options = 0) - { - return json_encode($this->jsonSerialize(), $options); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Pagination/PaginationServiceProvider.php b/vendor/laravel/framework/src/Illuminate/Pagination/PaginationServiceProvider.php deleted file mode 100755 index ed58ccf6..00000000 --- a/vendor/laravel/framework/src/Illuminate/Pagination/PaginationServiceProvider.php +++ /dev/null @@ -1,50 +0,0 @@ -loadViewsFrom(__DIR__.'/resources/views', 'pagination'); - - if ($this->app->runningInConsole()) { - $this->publishes([ - __DIR__.'/resources/views' => $this->app->resourcePath('views/vendor/pagination'), - ], 'laravel-pagination'); - } - } - - /** - * Register the service provider. - * - * @return void - */ - public function register() - { - Paginator::viewFactoryResolver(function () { - return $this->app['view']; - }); - - Paginator::currentPathResolver(function () { - return $this->app['request']->url(); - }); - - Paginator::currentPageResolver(function ($pageName = 'page') { - $page = $this->app['request']->input($pageName); - - if (filter_var($page, FILTER_VALIDATE_INT) !== false && (int) $page >= 1) { - return (int) $page; - } - - return 1; - }); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Pagination/Paginator.php b/vendor/laravel/framework/src/Illuminate/Pagination/Paginator.php deleted file mode 100644 index a159d041..00000000 --- a/vendor/laravel/framework/src/Illuminate/Pagination/Paginator.php +++ /dev/null @@ -1,177 +0,0 @@ - $value) { - $this->{$key} = $value; - } - - $this->perPage = $perPage; - $this->currentPage = $this->setCurrentPage($currentPage); - $this->path = $this->path !== '/' ? rtrim($this->path, '/') : $this->path; - - $this->setItems($items); - } - - /** - * Get the current page for the request. - * - * @param int $currentPage - * @return int - */ - protected function setCurrentPage($currentPage) - { - $currentPage = $currentPage ?: static::resolveCurrentPage(); - - return $this->isValidPageNumber($currentPage) ? (int) $currentPage : 1; - } - - /** - * Set the items for the paginator. - * - * @param mixed $items - * @return void - */ - protected function setItems($items) - { - $this->items = $items instanceof Collection ? $items : Collection::make($items); - - $this->hasMore = $this->items->count() > $this->perPage; - - $this->items = $this->items->slice(0, $this->perPage); - } - - /** - * Get the URL for the next page. - * - * @return string|null - */ - public function nextPageUrl() - { - if ($this->hasMorePages()) { - return $this->url($this->currentPage() + 1); - } - } - - /** - * Render the paginator using the given view. - * - * @param string|null $view - * @param array $data - * @return string - */ - public function links($view = null, $data = []) - { - return $this->render($view, $data); - } - - /** - * Render the paginator using the given view. - * - * @param string|null $view - * @param array $data - * @return string - */ - public function render($view = null, $data = []) - { - return new HtmlString( - static::viewFactory()->make($view ?: static::$defaultSimpleView, array_merge($data, [ - 'paginator' => $this, - ]))->render() - ); - } - - /** - * Manually indicate that the paginator does have more pages. - * - * @param bool $hasMore - * @return $this - */ - public function hasMorePagesWhen($hasMore = true) - { - $this->hasMore = $hasMore; - - return $this; - } - - /** - * Determine if there are more items in the data source. - * - * @return bool - */ - public function hasMorePages() - { - return $this->hasMore; - } - - /** - * Get the instance as an array. - * - * @return array - */ - public function toArray() - { - return [ - 'current_page' => $this->currentPage(), - 'data' => $this->items->toArray(), - 'first_page_url' => $this->url(1), - 'from' => $this->firstItem(), - 'next_page_url' => $this->nextPageUrl(), - 'path' => $this->path, - 'per_page' => $this->perPage(), - 'prev_page_url' => $this->previousPageUrl(), - 'to' => $this->lastItem(), - ]; - } - - /** - * Convert the object into something JSON serializable. - * - * @return array - */ - public function jsonSerialize() - { - return $this->toArray(); - } - - /** - * Convert the object to its JSON representation. - * - * @param int $options - * @return string - */ - public function toJson($options = 0) - { - return json_encode($this->jsonSerialize(), $options); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Pagination/UrlWindow.php b/vendor/laravel/framework/src/Illuminate/Pagination/UrlWindow.php deleted file mode 100644 index 6ec0b0c9..00000000 --- a/vendor/laravel/framework/src/Illuminate/Pagination/UrlWindow.php +++ /dev/null @@ -1,218 +0,0 @@ -paginator = $paginator; - } - - /** - * Create a new URL window instance. - * - * @param \Illuminate\Contracts\Pagination\LengthAwarePaginator $paginator - * @param int $onEachSide - * @return array - */ - public static function make(PaginatorContract $paginator, $onEachSide = 3) - { - return (new static($paginator))->get($onEachSide); - } - - /** - * Get the window of URLs to be shown. - * - * @param int $onEachSide - * @return array - */ - public function get($onEachSide = 3) - { - if ($this->paginator->lastPage() < ($onEachSide * 2) + 6) { - return $this->getSmallSlider(); - } - - return $this->getUrlSlider($onEachSide); - } - - /** - * Get the slider of URLs there are not enough pages to slide. - * - * @return array - */ - protected function getSmallSlider() - { - return [ - 'first' => $this->paginator->getUrlRange(1, $this->lastPage()), - 'slider' => null, - 'last' => null, - ]; - } - - /** - * Create a URL slider links. - * - * @param int $onEachSide - * @return array - */ - protected function getUrlSlider($onEachSide) - { - $window = $onEachSide * 2; - - if (! $this->hasPages()) { - return ['first' => null, 'slider' => null, 'last' => null]; - } - - // If the current page is very close to the beginning of the page range, we will - // just render the beginning of the page range, followed by the last 2 of the - // links in this list, since we will not have room to create a full slider. - if ($this->currentPage() <= $window) { - return $this->getSliderTooCloseToBeginning($window); - } - - // If the current page is close to the ending of the page range we will just get - // this first couple pages, followed by a larger window of these ending pages - // since we're too close to the end of the list to create a full on slider. - elseif ($this->currentPage() > ($this->lastPage() - $window)) { - return $this->getSliderTooCloseToEnding($window); - } - - // If we have enough room on both sides of the current page to build a slider we - // will surround it with both the beginning and ending caps, with this window - // of pages in the middle providing a Google style sliding paginator setup. - return $this->getFullSlider($onEachSide); - } - - /** - * Get the slider of URLs when too close to beginning of window. - * - * @param int $window - * @return array - */ - protected function getSliderTooCloseToBeginning($window) - { - return [ - 'first' => $this->paginator->getUrlRange(1, $window + 2), - 'slider' => null, - 'last' => $this->getFinish(), - ]; - } - - /** - * Get the slider of URLs when too close to ending of window. - * - * @param int $window - * @return array - */ - protected function getSliderTooCloseToEnding($window) - { - $last = $this->paginator->getUrlRange( - $this->lastPage() - ($window + 2), - $this->lastPage() - ); - - return [ - 'first' => $this->getStart(), - 'slider' => null, - 'last' => $last, - ]; - } - - /** - * Get the slider of URLs when a full slider can be made. - * - * @param int $onEachSide - * @return array - */ - protected function getFullSlider($onEachSide) - { - return [ - 'first' => $this->getStart(), - 'slider' => $this->getAdjacentUrlRange($onEachSide), - 'last' => $this->getFinish(), - ]; - } - - /** - * Get the page range for the current page window. - * - * @param int $onEachSide - * @return array - */ - public function getAdjacentUrlRange($onEachSide) - { - return $this->paginator->getUrlRange( - $this->currentPage() - $onEachSide, - $this->currentPage() + $onEachSide - ); - } - - /** - * Get the starting URLs of a pagination slider. - * - * @return array - */ - public function getStart() - { - return $this->paginator->getUrlRange(1, 2); - } - - /** - * Get the ending URLs of a pagination slider. - * - * @return array - */ - public function getFinish() - { - return $this->paginator->getUrlRange( - $this->lastPage() - 1, - $this->lastPage() - ); - } - - /** - * Determine if the underlying paginator being presented has pages to show. - * - * @return bool - */ - public function hasPages() - { - return $this->paginator->lastPage() > 1; - } - - /** - * Get the current page from the paginator. - * - * @return int - */ - protected function currentPage() - { - return $this->paginator->currentPage(); - } - - /** - * Get the last page from the paginator. - * - * @return int - */ - protected function lastPage() - { - return $this->paginator->lastPage(); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Pagination/composer.json b/vendor/laravel/framework/src/Illuminate/Pagination/composer.json deleted file mode 100755 index 433829cb..00000000 --- a/vendor/laravel/framework/src/Illuminate/Pagination/composer.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "name": "illuminate/pagination", - "description": "The Illuminate Pagination package.", - "license": "MIT", - "homepage": "https://laravel.com", - "support": { - "issues": "https://github.com/laravel/framework/issues", - "source": "https://github.com/laravel/framework" - }, - "authors": [ - { - "name": "Taylor Otwell", - "email": "taylor@laravel.com" - } - ], - "require": { - "php": "^7.1.3", - "illuminate/contracts": "5.6.*", - "illuminate/support": "5.6.*" - }, - "autoload": { - "psr-4": { - "Illuminate\\Pagination\\": "" - } - }, - "extra": { - "branch-alias": { - "dev-master": "5.6-dev" - } - }, - "config": { - "sort-packages": true - }, - "minimum-stability": "dev" -} diff --git a/vendor/laravel/framework/src/Illuminate/Pagination/resources/views/bootstrap-4.blade.php b/vendor/laravel/framework/src/Illuminate/Pagination/resources/views/bootstrap-4.blade.php deleted file mode 100644 index 044bbaa4..00000000 --- a/vendor/laravel/framework/src/Illuminate/Pagination/resources/views/bootstrap-4.blade.php +++ /dev/null @@ -1,44 +0,0 @@ -@if ($paginator->hasPages()) - -@endif diff --git a/vendor/laravel/framework/src/Illuminate/Pagination/resources/views/default.blade.php b/vendor/laravel/framework/src/Illuminate/Pagination/resources/views/default.blade.php deleted file mode 100644 index e59847a3..00000000 --- a/vendor/laravel/framework/src/Illuminate/Pagination/resources/views/default.blade.php +++ /dev/null @@ -1,44 +0,0 @@ -@if ($paginator->hasPages()) - -@endif diff --git a/vendor/laravel/framework/src/Illuminate/Pagination/resources/views/semantic-ui.blade.php b/vendor/laravel/framework/src/Illuminate/Pagination/resources/views/semantic-ui.blade.php deleted file mode 100644 index ef0dbb18..00000000 --- a/vendor/laravel/framework/src/Illuminate/Pagination/resources/views/semantic-ui.blade.php +++ /dev/null @@ -1,36 +0,0 @@ -@if ($paginator->hasPages()) - -@endif diff --git a/vendor/laravel/framework/src/Illuminate/Pagination/resources/views/simple-bootstrap-4.blade.php b/vendor/laravel/framework/src/Illuminate/Pagination/resources/views/simple-bootstrap-4.blade.php deleted file mode 100644 index cc30c9b2..00000000 --- a/vendor/laravel/framework/src/Illuminate/Pagination/resources/views/simple-bootstrap-4.blade.php +++ /dev/null @@ -1,25 +0,0 @@ -@if ($paginator->hasPages()) - -@endif diff --git a/vendor/laravel/framework/src/Illuminate/Pagination/resources/views/simple-default.blade.php b/vendor/laravel/framework/src/Illuminate/Pagination/resources/views/simple-default.blade.php deleted file mode 100644 index bdf2fe88..00000000 --- a/vendor/laravel/framework/src/Illuminate/Pagination/resources/views/simple-default.blade.php +++ /dev/null @@ -1,17 +0,0 @@ -@if ($paginator->hasPages()) - -@endif diff --git a/vendor/laravel/framework/src/Illuminate/Pipeline/Hub.php b/vendor/laravel/framework/src/Illuminate/Pipeline/Hub.php deleted file mode 100644 index 87331a57..00000000 --- a/vendor/laravel/framework/src/Illuminate/Pipeline/Hub.php +++ /dev/null @@ -1,74 +0,0 @@ -container = $container; - } - - /** - * Define the default named pipeline. - * - * @param \Closure $callback - * @return void - */ - public function defaults(Closure $callback) - { - return $this->pipeline('default', $callback); - } - - /** - * Define a new named pipeline. - * - * @param string $name - * @param \Closure $callback - * @return void - */ - public function pipeline($name, Closure $callback) - { - $this->pipelines[$name] = $callback; - } - - /** - * Send an object through one of the available pipelines. - * - * @param mixed $object - * @param string|null $pipeline - * @return mixed - */ - public function pipe($object, $pipeline = null) - { - $pipeline = $pipeline ?: 'default'; - - return call_user_func( - $this->pipelines[$pipeline], new Pipeline($this->container), $object - ); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php b/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php deleted file mode 100644 index fb5d9265..00000000 --- a/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php +++ /dev/null @@ -1,192 +0,0 @@ -container = $container; - } - - /** - * Set the object being sent through the pipeline. - * - * @param mixed $passable - * @return $this - */ - public function send($passable) - { - $this->passable = $passable; - - return $this; - } - - /** - * Set the array of pipes. - * - * @param array|mixed $pipes - * @return $this - */ - public function through($pipes) - { - $this->pipes = is_array($pipes) ? $pipes : func_get_args(); - - return $this; - } - - /** - * Set the method to call on the pipes. - * - * @param string $method - * @return $this - */ - public function via($method) - { - $this->method = $method; - - return $this; - } - - /** - * Run the pipeline with a final destination callback. - * - * @param \Closure $destination - * @return mixed - */ - public function then(Closure $destination) - { - $pipeline = array_reduce( - array_reverse($this->pipes), $this->carry(), $this->prepareDestination($destination) - ); - - return $pipeline($this->passable); - } - - /** - * Get the final piece of the Closure onion. - * - * @param \Closure $destination - * @return \Closure - */ - protected function prepareDestination(Closure $destination) - { - return function ($passable) use ($destination) { - return $destination($passable); - }; - } - - /** - * Get a Closure that represents a slice of the application onion. - * - * @return \Closure - */ - protected function carry() - { - return function ($stack, $pipe) { - return function ($passable) use ($stack, $pipe) { - if (is_callable($pipe)) { - // If the pipe is an instance of a Closure, we will just call it directly but - // otherwise we'll resolve the pipes out of the container and call it with - // the appropriate method and arguments, returning the results back out. - return $pipe($passable, $stack); - } elseif (! is_object($pipe)) { - list($name, $parameters) = $this->parsePipeString($pipe); - - // If the pipe is a string we will parse the string and resolve the class out - // of the dependency injection container. We can then build a callable and - // execute the pipe function giving in the parameters that are required. - $pipe = $this->getContainer()->make($name); - - $parameters = array_merge([$passable, $stack], $parameters); - } else { - // If the pipe is already an object we'll just make a callable and pass it to - // the pipe as-is. There is no need to do any extra parsing and formatting - // since the object we're given was already a fully instantiated object. - $parameters = [$passable, $stack]; - } - - $response = method_exists($pipe, $this->method) - ? $pipe->{$this->method}(...$parameters) - : $pipe(...$parameters); - - return $response instanceof Responsable - ? $response->toResponse($this->container->make(Request::class)) - : $response; - }; - }; - } - - /** - * Parse full pipe string to get name and parameters. - * - * @param string $pipe - * @return array - */ - protected function parsePipeString($pipe) - { - list($name, $parameters) = array_pad(explode(':', $pipe, 2), 2, []); - - if (is_string($parameters)) { - $parameters = explode(',', $parameters); - } - - return [$name, $parameters]; - } - - /** - * Get the container instance. - * - * @return \Illuminate\Contracts\Container\Container - * @throws \RuntimeException - */ - protected function getContainer() - { - if (! $this->container) { - throw new RuntimeException('A container instance has not been passed to the Pipeline.'); - } - - return $this->container; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Pipeline/PipelineServiceProvider.php b/vendor/laravel/framework/src/Illuminate/Pipeline/PipelineServiceProvider.php deleted file mode 100644 index d8291873..00000000 --- a/vendor/laravel/framework/src/Illuminate/Pipeline/PipelineServiceProvider.php +++ /dev/null @@ -1,40 +0,0 @@ -app->singleton( - PipelineHubContract::class, Hub::class - ); - } - - /** - * Get the services provided by the provider. - * - * @return array - */ - public function provides() - { - return [ - PipelineHubContract::class, - ]; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Pipeline/composer.json b/vendor/laravel/framework/src/Illuminate/Pipeline/composer.json deleted file mode 100644 index 7e08e581..00000000 --- a/vendor/laravel/framework/src/Illuminate/Pipeline/composer.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "name": "illuminate/pipeline", - "description": "The Illuminate Pipeline package.", - "license": "MIT", - "homepage": "https://laravel.com", - "support": { - "issues": "https://github.com/laravel/framework/issues", - "source": "https://github.com/laravel/framework" - }, - "authors": [ - { - "name": "Taylor Otwell", - "email": "taylor@laravel.com" - } - ], - "require": { - "php": "^7.1.3", - "illuminate/contracts": "5.6.*", - "illuminate/support": "5.6.*" - }, - "autoload": { - "psr-4": { - "Illuminate\\Pipeline\\": "" - } - }, - "extra": { - "branch-alias": { - "dev-master": "5.6-dev" - } - }, - "config": { - "sort-packages": true - }, - "minimum-stability": "dev" -} diff --git a/vendor/laravel/framework/src/Illuminate/Queue/BeanstalkdQueue.php b/vendor/laravel/framework/src/Illuminate/Queue/BeanstalkdQueue.php deleted file mode 100755 index 8f585bb3..00000000 --- a/vendor/laravel/framework/src/Illuminate/Queue/BeanstalkdQueue.php +++ /dev/null @@ -1,163 +0,0 @@ -default = $default; - $this->timeToRun = $timeToRun; - $this->pheanstalk = $pheanstalk; - } - - /** - * Get the size of the queue. - * - * @param string $queue - * @return int - */ - public function size($queue = null) - { - $queue = $this->getQueue($queue); - - return (int) $this->pheanstalk->statsTube($queue)->current_jobs_ready; - } - - /** - * Push a new job onto the queue. - * - * @param string $job - * @param mixed $data - * @param string $queue - * @return mixed - */ - public function push($job, $data = '', $queue = null) - { - return $this->pushRaw($this->createPayload($job, $data), $queue); - } - - /** - * Push a raw payload onto the queue. - * - * @param string $payload - * @param string $queue - * @param array $options - * @return mixed - */ - public function pushRaw($payload, $queue = null, array $options = []) - { - return $this->pheanstalk->useTube($this->getQueue($queue))->put( - $payload, Pheanstalk::DEFAULT_PRIORITY, Pheanstalk::DEFAULT_DELAY, $this->timeToRun - ); - } - - /** - * Push a new job onto the queue after a delay. - * - * @param \DateTimeInterface|\DateInterval|int $delay - * @param string $job - * @param mixed $data - * @param string $queue - * @return mixed - */ - public function later($delay, $job, $data = '', $queue = null) - { - $pheanstalk = $this->pheanstalk->useTube($this->getQueue($queue)); - - return $pheanstalk->put( - $this->createPayload($job, $data), - Pheanstalk::DEFAULT_PRIORITY, - $this->secondsUntil($delay), - $this->timeToRun - ); - } - - /** - * Pop the next job off of the queue. - * - * @param string $queue - * @return \Illuminate\Contracts\Queue\Job|null - */ - public function pop($queue = null) - { - $queue = $this->getQueue($queue); - - $job = $this->pheanstalk->watchOnly($queue)->reserve(0); - - if ($job instanceof PheanstalkJob) { - return new BeanstalkdJob( - $this->container, $this->pheanstalk, $job, $this->connectionName, $queue - ); - } - } - - /** - * Delete a message from the Beanstalk queue. - * - * @param string $queue - * @param string $id - * @return void - */ - public function deleteMessage($queue, $id) - { - $queue = $this->getQueue($queue); - - $this->pheanstalk->useTube($queue)->delete(new PheanstalkJob($id, '')); - } - - /** - * Get the queue or return the default. - * - * @param string|null $queue - * @return string - */ - public function getQueue($queue) - { - return $queue ?: $this->default; - } - - /** - * Get the underlying Pheanstalk instance. - * - * @return \Pheanstalk\Pheanstalk - */ - public function getPheanstalk() - { - return $this->pheanstalk; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Queue/CallQueuedHandler.php b/vendor/laravel/framework/src/Illuminate/Queue/CallQueuedHandler.php deleted file mode 100644 index 15b83862..00000000 --- a/vendor/laravel/framework/src/Illuminate/Queue/CallQueuedHandler.php +++ /dev/null @@ -1,152 +0,0 @@ -dispatcher = $dispatcher; - } - - /** - * Handle the queued job. - * - * @param \Illuminate\Contracts\Queue\Job $job - * @param array $data - * @return void - */ - public function call(Job $job, array $data) - { - try { - $command = $this->setJobInstanceIfNecessary( - $job, unserialize($data['command']) - ); - } catch (ModelNotFoundException $e) { - return $this->handleModelNotFound($job, $e); - } - - $this->dispatcher->dispatchNow( - $command, $this->resolveHandler($job, $command) - ); - - if (! $job->hasFailed() && ! $job->isReleased()) { - $this->ensureNextJobInChainIsDispatched($command); - } - - if (! $job->isDeletedOrReleased()) { - $job->delete(); - } - } - - /** - * Resolve the handler for the given command. - * - * @param \Illuminate\Contracts\Queue\Job $job - * @param mixed $command - * @return mixed - */ - protected function resolveHandler($job, $command) - { - $handler = $this->dispatcher->getCommandHandler($command) ?: null; - - if ($handler) { - $this->setJobInstanceIfNecessary($job, $handler); - } - - return $handler; - } - - /** - * Set the job instance of the given class if necessary. - * - * @param \Illuminate\Contracts\Queue\Job $job - * @param mixed $instance - * @return mixed - */ - protected function setJobInstanceIfNecessary(Job $job, $instance) - { - if (in_array(InteractsWithQueue::class, class_uses_recursive(get_class($instance)))) { - $instance->setJob($job); - } - - return $instance; - } - - /** - * Ensure the next job in the chain is dispatched if applicable. - * - * @param mixed $command - * @return void - */ - protected function ensureNextJobInChainIsDispatched($command) - { - if (method_exists($command, 'dispatchNextJobInChain')) { - $command->dispatchNextJobInChain(); - } - } - - /** - * Handle a model not found exception. - * - * @param \Illuminate\Contracts\Queue\Job $job - * @param \Exception $e - * @return void - */ - protected function handleModelNotFound(Job $job, $e) - { - $class = $job->resolveName(); - - try { - $shouldDelete = (new ReflectionClass($class)) - ->getDefaultProperties()['deleteWhenMissingModels'] ?? false; - } catch (Exception $e) { - $shouldDelete = false; - } - - if ($shouldDelete) { - return $job->delete(); - } - - return FailingJob::handle( - $job->getConnectionName(), $job, $e - ); - } - - /** - * Call the failed method on the job instance. - * - * The exception that caused the failure will be passed. - * - * @param array $data - * @param \Exception $e - * @return void - */ - public function failed(array $data, $e) - { - $command = unserialize($data['command']); - - if (method_exists($command, 'failed')) { - $command->failed($e); - } - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Queue/Capsule/Manager.php b/vendor/laravel/framework/src/Illuminate/Queue/Capsule/Manager.php deleted file mode 100644 index 310621a2..00000000 --- a/vendor/laravel/framework/src/Illuminate/Queue/Capsule/Manager.php +++ /dev/null @@ -1,187 +0,0 @@ -setupContainer($container ?: new Container); - - // Once we have the container setup, we will setup the default configuration - // options in the container "config" bindings. This just makes this queue - // manager behave correctly since all the correct binding are in place. - $this->setupDefaultConfiguration(); - - $this->setupManager(); - - $this->registerConnectors(); - } - - /** - * Setup the default queue configuration options. - * - * @return void - */ - protected function setupDefaultConfiguration() - { - $this->container['config']['queue.default'] = 'default'; - } - - /** - * Build the queue manager instance. - * - * @return void - */ - protected function setupManager() - { - $this->manager = new QueueManager($this->container); - } - - /** - * Register the default connectors that the component ships with. - * - * @return void - */ - protected function registerConnectors() - { - $provider = new QueueServiceProvider($this->container); - - $provider->registerConnectors($this->manager); - } - - /** - * Get a connection instance from the global manager. - * - * @param string $connection - * @return \Illuminate\Contracts\Queue\Queue - */ - public static function connection($connection = null) - { - return static::$instance->getConnection($connection); - } - - /** - * Push a new job onto the queue. - * - * @param string $job - * @param mixed $data - * @param string $queue - * @param string $connection - * @return mixed - */ - public static function push($job, $data = '', $queue = null, $connection = null) - { - return static::$instance->connection($connection)->push($job, $data, $queue); - } - - /** - * Push a new an array of jobs onto the queue. - * - * @param array $jobs - * @param mixed $data - * @param string $queue - * @param string $connection - * @return mixed - */ - public static function bulk($jobs, $data = '', $queue = null, $connection = null) - { - return static::$instance->connection($connection)->bulk($jobs, $data, $queue); - } - - /** - * Push a new job onto the queue after a delay. - * - * @param \DateTimeInterface|\DateInterval|int $delay - * @param string $job - * @param mixed $data - * @param string $queue - * @param string $connection - * @return mixed - */ - public static function later($delay, $job, $data = '', $queue = null, $connection = null) - { - return static::$instance->connection($connection)->later($delay, $job, $data, $queue); - } - - /** - * Get a registered connection instance. - * - * @param string $name - * @return \Illuminate\Contracts\Queue\Queue - */ - public function getConnection($name = null) - { - return $this->manager->connection($name); - } - - /** - * Register a connection with the manager. - * - * @param array $config - * @param string $name - * @return void - */ - public function addConnection(array $config, $name = 'default') - { - $this->container['config']["queue.connections.{$name}"] = $config; - } - - /** - * Get the queue manager instance. - * - * @return \Illuminate\Queue\QueueManager - */ - public function getQueueManager() - { - return $this->manager; - } - - /** - * Pass dynamic instance methods to the manager. - * - * @param string $method - * @param array $parameters - * @return mixed - */ - public function __call($method, $parameters) - { - return $this->manager->$method(...$parameters); - } - - /** - * Dynamically pass methods to the default connection. - * - * @param string $method - * @param array $parameters - * @return mixed - */ - public static function __callStatic($method, $parameters) - { - return static::connection()->$method(...$parameters); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Queue/Connectors/BeanstalkdConnector.php b/vendor/laravel/framework/src/Illuminate/Queue/Connectors/BeanstalkdConnector.php deleted file mode 100755 index ae0e6265..00000000 --- a/vendor/laravel/framework/src/Illuminate/Queue/Connectors/BeanstalkdConnector.php +++ /dev/null @@ -1,40 +0,0 @@ -pheanstalk($config), $config['queue'], $retryAfter); - } - - /** - * Create a Pheanstalk instance. - * - * @param array $config - * @return \Pheanstalk\Pheanstalk - */ - protected function pheanstalk(array $config) - { - return new Pheanstalk( - $config['host'], - $config['port'] ?? PheanstalkInterface::DEFAULT_PORT, - $config['timeout'] ?? Connection::DEFAULT_CONNECT_TIMEOUT, - $config['persistent'] ?? false - ); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Queue/Connectors/ConnectorInterface.php b/vendor/laravel/framework/src/Illuminate/Queue/Connectors/ConnectorInterface.php deleted file mode 100755 index 617bf09d..00000000 --- a/vendor/laravel/framework/src/Illuminate/Queue/Connectors/ConnectorInterface.php +++ /dev/null @@ -1,14 +0,0 @@ -connections = $connections; - } - - /** - * Establish a queue connection. - * - * @param array $config - * @return \Illuminate\Contracts\Queue\Queue - */ - public function connect(array $config) - { - return new DatabaseQueue( - $this->connections->connection($config['connection'] ?? null), - $config['table'], - $config['queue'], - $config['retry_after'] ?? 60 - ); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Queue/Connectors/NullConnector.php b/vendor/laravel/framework/src/Illuminate/Queue/Connectors/NullConnector.php deleted file mode 100644 index 39de4800..00000000 --- a/vendor/laravel/framework/src/Illuminate/Queue/Connectors/NullConnector.php +++ /dev/null @@ -1,19 +0,0 @@ -redis = $redis; - $this->connection = $connection; - } - - /** - * Establish a queue connection. - * - * @param array $config - * @return \Illuminate\Contracts\Queue\Queue - */ - public function connect(array $config) - { - return new RedisQueue( - $this->redis, $config['queue'], - $config['connection'] ?? $this->connection, - $config['retry_after'] ?? 60, - $config['block_for'] ?? null - ); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Queue/Connectors/SqsConnector.php b/vendor/laravel/framework/src/Illuminate/Queue/Connectors/SqsConnector.php deleted file mode 100755 index 9072b632..00000000 --- a/vendor/laravel/framework/src/Illuminate/Queue/Connectors/SqsConnector.php +++ /dev/null @@ -1,46 +0,0 @@ -getDefaultConfiguration($config); - - if ($config['key'] && $config['secret']) { - $config['credentials'] = Arr::only($config, ['key', 'secret', 'token']); - } - - return new SqsQueue( - new SqsClient($config), $config['queue'], $config['prefix'] ?? '' - ); - } - - /** - * Get the default configuration for SQS. - * - * @param array $config - * @return array - */ - protected function getDefaultConfiguration(array $config) - { - return array_merge([ - 'version' => 'latest', - 'http' => [ - 'timeout' => 60, - 'connect_timeout' => 60, - ], - ], $config); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Queue/Connectors/SyncConnector.php b/vendor/laravel/framework/src/Illuminate/Queue/Connectors/SyncConnector.php deleted file mode 100755 index 4269b803..00000000 --- a/vendor/laravel/framework/src/Illuminate/Queue/Connectors/SyncConnector.php +++ /dev/null @@ -1,19 +0,0 @@ -files = $files; - $this->composer = $composer; - } - - /** - * Execute the console command. - * - * @return void - */ - public function handle() - { - $table = $this->laravel['config']['queue.failed.table']; - - $this->replaceMigration( - $this->createBaseMigration($table), $table, Str::studly($table) - ); - - $this->info('Migration created successfully!'); - - $this->composer->dumpAutoloads(); - } - - /** - * Create a base migration file for the table. - * - * @param string $table - * @return string - */ - protected function createBaseMigration($table = 'failed_jobs') - { - return $this->laravel['migration.creator']->create( - 'create_'.$table.'_table', $this->laravel->databasePath().'/migrations' - ); - } - - /** - * Replace the generated migration with the failed job table stub. - * - * @param string $path - * @param string $table - * @param string $tableClassName - * @return void - */ - protected function replaceMigration($path, $table, $tableClassName) - { - $stub = str_replace( - ['{{table}}', '{{tableClassName}}'], - [$table, $tableClassName], - $this->files->get(__DIR__.'/stubs/failed_jobs.stub') - ); - - $this->files->put($path, $stub); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Queue/Console/FlushFailedCommand.php b/vendor/laravel/framework/src/Illuminate/Queue/Console/FlushFailedCommand.php deleted file mode 100644 index 550b8600..00000000 --- a/vendor/laravel/framework/src/Illuminate/Queue/Console/FlushFailedCommand.php +++ /dev/null @@ -1,34 +0,0 @@ -laravel['queue.failer']->flush(); - - $this->info('All failed jobs deleted successfully!'); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Queue/Console/ForgetFailedCommand.php b/vendor/laravel/framework/src/Illuminate/Queue/Console/ForgetFailedCommand.php deleted file mode 100644 index dc04d948..00000000 --- a/vendor/laravel/framework/src/Illuminate/Queue/Console/ForgetFailedCommand.php +++ /dev/null @@ -1,36 +0,0 @@ -laravel['queue.failer']->forget($this->argument('id'))) { - $this->info('Failed job deleted successfully!'); - } else { - $this->error('No failed job matches the given ID.'); - } - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Queue/Console/ListFailedCommand.php b/vendor/laravel/framework/src/Illuminate/Queue/Console/ListFailedCommand.php deleted file mode 100644 index be46d960..00000000 --- a/vendor/laravel/framework/src/Illuminate/Queue/Console/ListFailedCommand.php +++ /dev/null @@ -1,118 +0,0 @@ -getFailedJobs()) == 0) { - return $this->info('No failed jobs!'); - } - - $this->displayFailedJobs($jobs); - } - - /** - * Compile the failed jobs into a displayable format. - * - * @return array - */ - protected function getFailedJobs() - { - $failed = $this->laravel['queue.failer']->all(); - - return collect($failed)->map(function ($failed) { - return $this->parseFailedJob((array) $failed); - })->filter()->all(); - } - - /** - * Parse the failed job row. - * - * @param array $failed - * @return array - */ - protected function parseFailedJob(array $failed) - { - $row = array_values(Arr::except($failed, ['payload', 'exception'])); - - array_splice($row, 3, 0, $this->extractJobName($failed['payload'])); - - return $row; - } - - /** - * Extract the failed job name from payload. - * - * @param string $payload - * @return string|null - */ - private function extractJobName($payload) - { - $payload = json_decode($payload, true); - - if ($payload && (! isset($payload['data']['command']))) { - return $payload['job'] ?? null; - } elseif ($payload && isset($payload['data']['command'])) { - return $this->matchJobName($payload); - } - } - - /** - * Match the job name from the payload. - * - * @param array $payload - * @return string - */ - protected function matchJobName($payload) - { - preg_match('/"([^"]+)"/', $payload['data']['command'], $matches); - - if (isset($matches[1])) { - return $matches[1]; - } - - return $payload['job'] ?? null; - } - - /** - * Display the failed jobs in the console. - * - * @param array $jobs - * @return void - */ - protected function displayFailedJobs(array $jobs) - { - $this->table($this->headers, $jobs); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Queue/Console/ListenCommand.php b/vendor/laravel/framework/src/Illuminate/Queue/Console/ListenCommand.php deleted file mode 100755 index fca4cd08..00000000 --- a/vendor/laravel/framework/src/Illuminate/Queue/Console/ListenCommand.php +++ /dev/null @@ -1,114 +0,0 @@ -setOutputHandler($this->listener = $listener); - } - - /** - * Execute the console command. - * - * @return void - */ - public function handle() - { - // We need to get the right queue for the connection which is set in the queue - // configuration file for the application. We will pull it based on the set - // connection being run for the queue operation currently being executed. - $queue = $this->getQueue( - $connection = $this->input->getArgument('connection') - ); - - $this->listener->listen( - $connection, $queue, $this->gatherOptions() - ); - } - - /** - * Get the name of the queue connection to listen on. - * - * @param string $connection - * @return string - */ - protected function getQueue($connection) - { - $connection = $connection ?: $this->laravel['config']['queue.default']; - - return $this->input->getOption('queue') ?: $this->laravel['config']->get( - "queue.connections.{$connection}.queue", 'default' - ); - } - - /** - * Get the listener options for the command. - * - * @return \Illuminate\Queue\ListenerOptions - */ - protected function gatherOptions() - { - return new ListenerOptions( - $this->option('env'), $this->option('delay'), - $this->option('memory'), $this->option('timeout'), - $this->option('sleep'), $this->option('tries'), - $this->option('force') - ); - } - - /** - * Set the options on the queue listener. - * - * @param \Illuminate\Queue\Listener $listener - * @return void - */ - protected function setOutputHandler(Listener $listener) - { - $listener->setOutputHandler(function ($type, $line) { - $this->output->write($line); - }); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Queue/Console/RestartCommand.php b/vendor/laravel/framework/src/Illuminate/Queue/Console/RestartCommand.php deleted file mode 100644 index 1b340415..00000000 --- a/vendor/laravel/framework/src/Illuminate/Queue/Console/RestartCommand.php +++ /dev/null @@ -1,37 +0,0 @@ -laravel['cache']->forever('illuminate:queue:restart', $this->currentTime()); - - $this->info('Broadcasting queue restart signal.'); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Queue/Console/RetryCommand.php b/vendor/laravel/framework/src/Illuminate/Queue/Console/RetryCommand.php deleted file mode 100644 index 5ea49d53..00000000 --- a/vendor/laravel/framework/src/Illuminate/Queue/Console/RetryCommand.php +++ /dev/null @@ -1,93 +0,0 @@ -getJobIds() as $id) { - $job = $this->laravel['queue.failer']->find($id); - - if (is_null($job)) { - $this->error("Unable to find failed job with ID [{$id}]."); - } else { - $this->retryJob($job); - - $this->info("The failed job [{$id}] has been pushed back onto the queue!"); - - $this->laravel['queue.failer']->forget($id); - } - } - } - - /** - * Get the job IDs to be retried. - * - * @return array - */ - protected function getJobIds() - { - $ids = (array) $this->argument('id'); - - if (count($ids) === 1 && $ids[0] === 'all') { - $ids = Arr::pluck($this->laravel['queue.failer']->all(), 'id'); - } - - return $ids; - } - - /** - * Retry the queue job. - * - * @param \stdClass $job - * @return void - */ - protected function retryJob($job) - { - $this->laravel['queue']->connection($job->connection)->pushRaw( - $this->resetAttempts($job->payload), $job->queue - ); - } - - /** - * Reset the payload attempts. - * - * Applicable to Redis jobs which store attempts in their payload. - * - * @param string $payload - * @return string - */ - protected function resetAttempts($payload) - { - $payload = json_decode($payload, true); - - if (isset($payload['attempts'])) { - $payload['attempts'] = 0; - } - - return json_encode($payload); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Queue/Console/TableCommand.php b/vendor/laravel/framework/src/Illuminate/Queue/Console/TableCommand.php deleted file mode 100644 index 50f1f011..00000000 --- a/vendor/laravel/framework/src/Illuminate/Queue/Console/TableCommand.php +++ /dev/null @@ -1,102 +0,0 @@ -files = $files; - $this->composer = $composer; - } - - /** - * Execute the console command. - * - * @return void - */ - public function handle() - { - $table = $this->laravel['config']['queue.connections.database.table']; - - $this->replaceMigration( - $this->createBaseMigration($table), $table, Str::studly($table) - ); - - $this->info('Migration created successfully!'); - - $this->composer->dumpAutoloads(); - } - - /** - * Create a base migration file for the table. - * - * @param string $table - * @return string - */ - protected function createBaseMigration($table = 'jobs') - { - return $this->laravel['migration.creator']->create( - 'create_'.$table.'_table', $this->laravel->databasePath().'/migrations' - ); - } - - /** - * Replace the generated migration with the job table stub. - * - * @param string $path - * @param string $table - * @param string $tableClassName - * @return void - */ - protected function replaceMigration($path, $table, $tableClassName) - { - $stub = str_replace( - ['{{table}}', '{{tableClassName}}'], - [$table, $tableClassName], - $this->files->get(__DIR__.'/stubs/jobs.stub') - ); - - $this->files->put($path, $stub); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Queue/Console/WorkCommand.php b/vendor/laravel/framework/src/Illuminate/Queue/Console/WorkCommand.php deleted file mode 100644 index 8d759c7d..00000000 --- a/vendor/laravel/framework/src/Illuminate/Queue/Console/WorkCommand.php +++ /dev/null @@ -1,214 +0,0 @@ -worker = $worker; - } - - /** - * Execute the console command. - * - * @return void - */ - public function handle() - { - if ($this->downForMaintenance() && $this->option('once')) { - return $this->worker->sleep($this->option('sleep')); - } - - // We'll listen to the processed and failed events so we can write information - // to the console as jobs are processed, which will let the developer watch - // which jobs are coming through a queue and be informed on its progress. - $this->listenForEvents(); - - $connection = $this->argument('connection') - ?: $this->laravel['config']['queue.default']; - - // We need to get the right queue for the connection which is set in the queue - // configuration file for the application. We will pull it based on the set - // connection being run for the queue operation currently being executed. - $queue = $this->getQueue($connection); - - $this->runWorker( - $connection, $queue - ); - } - - /** - * Run the worker instance. - * - * @param string $connection - * @param string $queue - * @return array - */ - protected function runWorker($connection, $queue) - { - $this->worker->setCache($this->laravel['cache']->driver()); - - return $this->worker->{$this->option('once') ? 'runNextJob' : 'daemon'}( - $connection, $queue, $this->gatherWorkerOptions() - ); - } - - /** - * Gather all of the queue worker options as a single object. - * - * @return \Illuminate\Queue\WorkerOptions - */ - protected function gatherWorkerOptions() - { - return new WorkerOptions( - $this->option('delay'), $this->option('memory'), - $this->option('timeout'), $this->option('sleep'), - $this->option('tries'), $this->option('force') - ); - } - - /** - * Listen for the queue events in order to update the console output. - * - * @return void - */ - protected function listenForEvents() - { - $this->laravel['events']->listen(JobProcessing::class, function ($event) { - $this->writeOutput($event->job, 'starting'); - }); - - $this->laravel['events']->listen(JobProcessed::class, function ($event) { - $this->writeOutput($event->job, 'success'); - }); - - $this->laravel['events']->listen(JobFailed::class, function ($event) { - $this->writeOutput($event->job, 'failed'); - - $this->logFailedJob($event); - }); - } - - /** - * Write the status output for the queue worker. - * - * @param \Illuminate\Contracts\Queue\Job $job - * @param string $status - * @return void - */ - protected function writeOutput(Job $job, $status) - { - switch ($status) { - case 'starting': - return $this->writeStatus($job, 'Processing', 'comment'); - case 'success': - return $this->writeStatus($job, 'Processed', 'info'); - case 'failed': - return $this->writeStatus($job, 'Failed', 'error'); - } - } - - /** - * Format the status output for the queue worker. - * - * @param \Illuminate\Contracts\Queue\Job $job - * @param string $status - * @param string $type - * @return void - */ - protected function writeStatus(Job $job, $status, $type) - { - $this->output->writeln(sprintf( - "<{$type}>[%s][%s] %s %s", - Carbon::now()->format('Y-m-d H:i:s'), - $job->getJobId(), - str_pad("{$status}:", 11), $job->resolveName() - )); - } - - /** - * Store a failed job event. - * - * @param \Illuminate\Queue\Events\JobFailed $event - * @return void - */ - protected function logFailedJob(JobFailed $event) - { - $this->laravel['queue.failer']->log( - $event->connectionName, $event->job->getQueue(), - $event->job->getRawBody(), $event->exception - ); - } - - /** - * Get the queue name for the worker. - * - * @param string $connection - * @return string - */ - protected function getQueue($connection) - { - return $this->option('queue') ?: $this->laravel['config']->get( - "queue.connections.{$connection}.queue", 'default' - ); - } - - /** - * Determine if the worker should run in maintenance mode. - * - * @return bool - */ - protected function downForMaintenance() - { - return $this->option('force') ? false : $this->laravel->isDownForMaintenance(); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Queue/Console/stubs/failed_jobs.stub b/vendor/laravel/framework/src/Illuminate/Queue/Console/stubs/failed_jobs.stub deleted file mode 100644 index 037b5ee2..00000000 --- a/vendor/laravel/framework/src/Illuminate/Queue/Console/stubs/failed_jobs.stub +++ /dev/null @@ -1,35 +0,0 @@ -bigIncrements('id'); - $table->text('connection'); - $table->text('queue'); - $table->longText('payload'); - $table->longText('exception'); - $table->timestamp('failed_at')->useCurrent(); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::dropIfExists('{{table}}'); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Queue/Console/stubs/jobs.stub b/vendor/laravel/framework/src/Illuminate/Queue/Console/stubs/jobs.stub deleted file mode 100644 index 8440bebf..00000000 --- a/vendor/laravel/framework/src/Illuminate/Queue/Console/stubs/jobs.stub +++ /dev/null @@ -1,36 +0,0 @@ -bigIncrements('id'); - $table->string('queue')->index(); - $table->longText('payload'); - $table->unsignedTinyInteger('attempts'); - $table->unsignedInteger('reserved_at')->nullable(); - $table->unsignedInteger('available_at'); - $table->unsignedInteger('created_at'); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::dropIfExists('{{table}}'); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Queue/DatabaseQueue.php b/vendor/laravel/framework/src/Illuminate/Queue/DatabaseQueue.php deleted file mode 100644 index f40536ae..00000000 --- a/vendor/laravel/framework/src/Illuminate/Queue/DatabaseQueue.php +++ /dev/null @@ -1,321 +0,0 @@ -table = $table; - $this->default = $default; - $this->database = $database; - $this->retryAfter = $retryAfter; - } - - /** - * Get the size of the queue. - * - * @param string $queue - * @return int - */ - public function size($queue = null) - { - return $this->database->table($this->table) - ->where('queue', $this->getQueue($queue)) - ->count(); - } - - /** - * Push a new job onto the queue. - * - * @param string $job - * @param mixed $data - * @param string $queue - * @return mixed - */ - public function push($job, $data = '', $queue = null) - { - return $this->pushToDatabase($queue, $this->createPayload($job, $data)); - } - - /** - * Push a raw payload onto the queue. - * - * @param string $payload - * @param string $queue - * @param array $options - * @return mixed - */ - public function pushRaw($payload, $queue = null, array $options = []) - { - return $this->pushToDatabase($queue, $payload); - } - - /** - * Push a new job onto the queue after a delay. - * - * @param \DateTimeInterface|\DateInterval|int $delay - * @param string $job - * @param mixed $data - * @param string $queue - * @return void - */ - public function later($delay, $job, $data = '', $queue = null) - { - return $this->pushToDatabase($queue, $this->createPayload($job, $data), $delay); - } - - /** - * Push an array of jobs onto the queue. - * - * @param array $jobs - * @param mixed $data - * @param string $queue - * @return mixed - */ - public function bulk($jobs, $data = '', $queue = null) - { - $queue = $this->getQueue($queue); - - $availableAt = $this->availableAt(); - - return $this->database->table($this->table)->insert(collect((array) $jobs)->map( - function ($job) use ($queue, $data, $availableAt) { - return $this->buildDatabaseRecord($queue, $this->createPayload($job, $data), $availableAt); - } - )->all()); - } - - /** - * Release a reserved job back onto the queue. - * - * @param string $queue - * @param \Illuminate\Queue\Jobs\DatabaseJobRecord $job - * @param int $delay - * @return mixed - */ - public function release($queue, $job, $delay) - { - return $this->pushToDatabase($queue, $job->payload, $delay, $job->attempts); - } - - /** - * Push a raw payload to the database with a given delay. - * - * @param string|null $queue - * @param string $payload - * @param \DateTimeInterface|\DateInterval|int $delay - * @param int $attempts - * @return mixed - */ - protected function pushToDatabase($queue, $payload, $delay = 0, $attempts = 0) - { - return $this->database->table($this->table)->insertGetId($this->buildDatabaseRecord( - $this->getQueue($queue), $payload, $this->availableAt($delay), $attempts - )); - } - - /** - * Create an array to insert for the given job. - * - * @param string|null $queue - * @param string $payload - * @param int $availableAt - * @param int $attempts - * @return array - */ - protected function buildDatabaseRecord($queue, $payload, $availableAt, $attempts = 0) - { - return [ - 'queue' => $queue, - 'attempts' => $attempts, - 'reserved_at' => null, - 'available_at' => $availableAt, - 'created_at' => $this->currentTime(), - 'payload' => $payload, - ]; - } - - /** - * Pop the next job off of the queue. - * - * @param string $queue - * @return \Illuminate\Contracts\Queue\Job|null - * @throws \Exception|\Throwable - */ - public function pop($queue = null) - { - $queue = $this->getQueue($queue); - - return $this->database->transaction(function () use ($queue) { - if ($job = $this->getNextAvailableJob($queue)) { - return $this->marshalJob($queue, $job); - } - - return null; - }); - } - - /** - * Get the next available job for the queue. - * - * @param string|null $queue - * @return \Illuminate\Queue\Jobs\DatabaseJobRecord|null - */ - protected function getNextAvailableJob($queue) - { - $job = $this->database->table($this->table) - ->lockForUpdate() - ->where('queue', $this->getQueue($queue)) - ->where(function ($query) { - $this->isAvailable($query); - $this->isReservedButExpired($query); - }) - ->orderBy('id', 'asc') - ->first(); - - return $job ? new DatabaseJobRecord((object) $job) : null; - } - - /** - * Modify the query to check for available jobs. - * - * @param \Illuminate\Database\Query\Builder $query - * @return void - */ - protected function isAvailable($query) - { - $query->where(function ($query) { - $query->whereNull('reserved_at') - ->where('available_at', '<=', $this->currentTime()); - }); - } - - /** - * Modify the query to check for jobs that are reserved but have expired. - * - * @param \Illuminate\Database\Query\Builder $query - * @return void - */ - protected function isReservedButExpired($query) - { - $expiration = Carbon::now()->subSeconds($this->retryAfter)->getTimestamp(); - - $query->orWhere(function ($query) use ($expiration) { - $query->where('reserved_at', '<=', $expiration); - }); - } - - /** - * Marshal the reserved job into a DatabaseJob instance. - * - * @param string $queue - * @param \Illuminate\Queue\Jobs\DatabaseJobRecord $job - * @return \Illuminate\Queue\Jobs\DatabaseJob - */ - protected function marshalJob($queue, $job) - { - $job = $this->markJobAsReserved($job); - - return new DatabaseJob( - $this->container, $this, $job, $this->connectionName, $queue - ); - } - - /** - * Mark the given job ID as reserved. - * - * @param \Illuminate\Queue\Jobs\DatabaseJobRecord $job - * @return \Illuminate\Queue\Jobs\DatabaseJobRecord - */ - protected function markJobAsReserved($job) - { - $this->database->table($this->table)->where('id', $job->id)->update([ - 'reserved_at' => $job->touch(), - 'attempts' => $job->increment(), - ]); - - return $job; - } - - /** - * Delete a reserved job from the queue. - * - * @param string $queue - * @param string $id - * @return void - * @throws \Exception|\Throwable - */ - public function deleteReserved($queue, $id) - { - $this->database->transaction(function () use ($id) { - if ($this->database->table($this->table)->lockForUpdate()->find($id)) { - $this->database->table($this->table)->where('id', $id)->delete(); - } - }); - } - - /** - * Get the queue or return the default. - * - * @param string|null $queue - * @return string - */ - public function getQueue($queue) - { - return $queue ?: $this->default; - } - - /** - * Get the underlying database instance. - * - * @return \Illuminate\Database\Connection - */ - public function getDatabase() - { - return $this->database; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Queue/Events/JobExceptionOccurred.php b/vendor/laravel/framework/src/Illuminate/Queue/Events/JobExceptionOccurred.php deleted file mode 100644 index dc7940e1..00000000 --- a/vendor/laravel/framework/src/Illuminate/Queue/Events/JobExceptionOccurred.php +++ /dev/null @@ -1,42 +0,0 @@ -job = $job; - $this->exception = $exception; - $this->connectionName = $connectionName; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Queue/Events/JobFailed.php b/vendor/laravel/framework/src/Illuminate/Queue/Events/JobFailed.php deleted file mode 100644 index 49b84f7b..00000000 --- a/vendor/laravel/framework/src/Illuminate/Queue/Events/JobFailed.php +++ /dev/null @@ -1,42 +0,0 @@ -job = $job; - $this->exception = $exception; - $this->connectionName = $connectionName; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Queue/Events/JobProcessed.php b/vendor/laravel/framework/src/Illuminate/Queue/Events/JobProcessed.php deleted file mode 100644 index f8abefb6..00000000 --- a/vendor/laravel/framework/src/Illuminate/Queue/Events/JobProcessed.php +++ /dev/null @@ -1,33 +0,0 @@ -job = $job; - $this->connectionName = $connectionName; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Queue/Events/JobProcessing.php b/vendor/laravel/framework/src/Illuminate/Queue/Events/JobProcessing.php deleted file mode 100644 index 3dd97248..00000000 --- a/vendor/laravel/framework/src/Illuminate/Queue/Events/JobProcessing.php +++ /dev/null @@ -1,33 +0,0 @@ -job = $job; - $this->connectionName = $connectionName; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Queue/Events/Looping.php b/vendor/laravel/framework/src/Illuminate/Queue/Events/Looping.php deleted file mode 100644 index f9538e4c..00000000 --- a/vendor/laravel/framework/src/Illuminate/Queue/Events/Looping.php +++ /dev/null @@ -1,33 +0,0 @@ -queue = $queue; - $this->connectionName = $connectionName; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Queue/Events/WorkerStopping.php b/vendor/laravel/framework/src/Illuminate/Queue/Events/WorkerStopping.php deleted file mode 100644 index 6c51209c..00000000 --- a/vendor/laravel/framework/src/Illuminate/Queue/Events/WorkerStopping.php +++ /dev/null @@ -1,8 +0,0 @@ -table = $table; - $this->resolver = $resolver; - $this->database = $database; - } - - /** - * Log a failed job into storage. - * - * @param string $connection - * @param string $queue - * @param string $payload - * @param \Exception $exception - * @return int|null - */ - public function log($connection, $queue, $payload, $exception) - { - $failed_at = Carbon::now(); - - $exception = (string) $exception; - - return $this->getTable()->insertGetId(compact( - 'connection', 'queue', 'payload', 'exception', 'failed_at' - )); - } - - /** - * Get a list of all of the failed jobs. - * - * @return array - */ - public function all() - { - return $this->getTable()->orderBy('id', 'desc')->get()->all(); - } - - /** - * Get a single failed job. - * - * @param mixed $id - * @return object|null - */ - public function find($id) - { - return $this->getTable()->find($id); - } - - /** - * Delete a single failed job from storage. - * - * @param mixed $id - * @return bool - */ - public function forget($id) - { - return $this->getTable()->where('id', $id)->delete() > 0; - } - - /** - * Flush all of the failed jobs from storage. - * - * @return void - */ - public function flush() - { - $this->getTable()->delete(); - } - - /** - * Get a new query builder instance for the table. - * - * @return \Illuminate\Database\Query\Builder - */ - protected function getTable() - { - return $this->resolver->connection($this->database)->table($this->table); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Queue/Failed/FailedJobProviderInterface.php b/vendor/laravel/framework/src/Illuminate/Queue/Failed/FailedJobProviderInterface.php deleted file mode 100644 index b818636e..00000000 --- a/vendor/laravel/framework/src/Illuminate/Queue/Failed/FailedJobProviderInterface.php +++ /dev/null @@ -1,47 +0,0 @@ -markAsFailed(); - - if ($job->isDeleted()) { - return; - } - - try { - // If the job has failed, we will delete it, call the "failed" method and then call - // an event indicating the job has failed so it can be logged if needed. This is - // to allow every developer to better keep monitor of their failed queue jobs. - $job->delete(); - - $job->failed($e); - } finally { - static::events()->dispatch(new JobFailed( - $connectionName, $job, $e ?: new ManuallyFailedException - )); - } - } - - /** - * Get the event dispatcher instance. - * - * @return \Illuminate\Contracts\Events\Dispatcher - */ - protected static function events() - { - return Container::getInstance()->make(Dispatcher::class); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Queue/InteractsWithQueue.php b/vendor/laravel/framework/src/Illuminate/Queue/InteractsWithQueue.php deleted file mode 100644 index 20bcecb7..00000000 --- a/vendor/laravel/framework/src/Illuminate/Queue/InteractsWithQueue.php +++ /dev/null @@ -1,76 +0,0 @@ -job ? $this->job->attempts() : 1; - } - - /** - * Delete the job from the queue. - * - * @return void - */ - public function delete() - { - if ($this->job) { - return $this->job->delete(); - } - } - - /** - * Fail the job from the queue. - * - * @param \Throwable $exception - * @return void - */ - public function fail($exception = null) - { - if ($this->job) { - FailingJob::handle($this->job->getConnectionName(), $this->job, $exception); - } - } - - /** - * Release the job back into the queue. - * - * @param int $delay - * @return void - */ - public function release($delay = 0) - { - if ($this->job) { - return $this->job->release($delay); - } - } - - /** - * Set the base queue job instance. - * - * @param \Illuminate\Contracts\Queue\Job $job - * @return $this - */ - public function setJob(JobContract $job) - { - $this->job = $job; - - return $this; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Queue/InvalidPayloadException.php b/vendor/laravel/framework/src/Illuminate/Queue/InvalidPayloadException.php deleted file mode 100644 index 788fa660..00000000 --- a/vendor/laravel/framework/src/Illuminate/Queue/InvalidPayloadException.php +++ /dev/null @@ -1,19 +0,0 @@ -job = $job; - $this->queue = $queue; - $this->container = $container; - $this->pheanstalk = $pheanstalk; - $this->connectionName = $connectionName; - } - - /** - * Release the job back into the queue. - * - * @param int $delay - * @return void - */ - public function release($delay = 0) - { - parent::release($delay); - - $priority = Pheanstalk::DEFAULT_PRIORITY; - - $this->pheanstalk->release($this->job, $priority, $delay); - } - - /** - * Bury the job in the queue. - * - * @return void - */ - public function bury() - { - parent::release(); - - $this->pheanstalk->bury($this->job); - } - - /** - * Delete the job from the queue. - * - * @return void - */ - public function delete() - { - parent::delete(); - - $this->pheanstalk->delete($this->job); - } - - /** - * Get the number of times the job has been attempted. - * - * @return int - */ - public function attempts() - { - $stats = $this->pheanstalk->statsJob($this->job); - - return (int) $stats->reserves; - } - - /** - * Get the job identifier. - * - * @return int - */ - public function getJobId() - { - return $this->job->getId(); - } - - /** - * Get the raw body string for the job. - * - * @return string - */ - public function getRawBody() - { - return $this->job->getData(); - } - - /** - * Get the underlying Pheanstalk instance. - * - * @return \Pheanstalk\Pheanstalk - */ - public function getPheanstalk() - { - return $this->pheanstalk; - } - - /** - * Get the underlying Pheanstalk job. - * - * @return \Pheanstalk\Job - */ - public function getPheanstalkJob() - { - return $this->job; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Queue/Jobs/DatabaseJob.php b/vendor/laravel/framework/src/Illuminate/Queue/Jobs/DatabaseJob.php deleted file mode 100644 index 9b57fb0a..00000000 --- a/vendor/laravel/framework/src/Illuminate/Queue/Jobs/DatabaseJob.php +++ /dev/null @@ -1,100 +0,0 @@ -job = $job; - $this->queue = $queue; - $this->database = $database; - $this->container = $container; - $this->connectionName = $connectionName; - } - - /** - * Release the job back into the queue. - * - * @param int $delay - * @return mixed - */ - public function release($delay = 0) - { - parent::release($delay); - - $this->delete(); - - return $this->database->release($this->queue, $this->job, $delay); - } - - /** - * Delete the job from the queue. - * - * @return void - */ - public function delete() - { - parent::delete(); - - $this->database->deleteReserved($this->queue, $this->job->id); - } - - /** - * Get the number of times the job has been attempted. - * - * @return int - */ - public function attempts() - { - return (int) $this->job->attempts; - } - - /** - * Get the job identifier. - * - * @return string - */ - public function getJobId() - { - return $this->job->id; - } - - /** - * Get the raw body string for the job. - * - * @return string - */ - public function getRawBody() - { - return $this->job->payload; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Queue/Jobs/DatabaseJobRecord.php b/vendor/laravel/framework/src/Illuminate/Queue/Jobs/DatabaseJobRecord.php deleted file mode 100644 index b4b57254..00000000 --- a/vendor/laravel/framework/src/Illuminate/Queue/Jobs/DatabaseJobRecord.php +++ /dev/null @@ -1,63 +0,0 @@ -record = $record; - } - - /** - * Increment the number of times the job has been attempted. - * - * @return int - */ - public function increment() - { - $this->record->attempts++; - - return $this->record->attempts; - } - - /** - * Update the "reserved at" timestamp of the job. - * - * @return int - */ - public function touch() - { - $this->record->reserved_at = $this->currentTime(); - - return $this->record->reserved_at; - } - - /** - * Dynamically access the underlying job information. - * - * @param string $key - * @return mixed - */ - public function __get($key) - { - return $this->record->{$key}; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Queue/Jobs/Job.php b/vendor/laravel/framework/src/Illuminate/Queue/Jobs/Job.php deleted file mode 100755 index 93a020f5..00000000 --- a/vendor/laravel/framework/src/Illuminate/Queue/Jobs/Job.php +++ /dev/null @@ -1,278 +0,0 @@ -payload(); - - list($class, $method) = JobName::parse($payload['job']); - - ($this->instance = $this->resolve($class))->{$method}($this, $payload['data']); - } - - /** - * Delete the job from the queue. - * - * @return void - */ - public function delete() - { - $this->deleted = true; - } - - /** - * Determine if the job has been deleted. - * - * @return bool - */ - public function isDeleted() - { - return $this->deleted; - } - - /** - * Release the job back into the queue. - * - * @param int $delay - * @return void - */ - public function release($delay = 0) - { - $this->released = true; - } - - /** - * Determine if the job was released back into the queue. - * - * @return bool - */ - public function isReleased() - { - return $this->released; - } - - /** - * Determine if the job has been deleted or released. - * - * @return bool - */ - public function isDeletedOrReleased() - { - return $this->isDeleted() || $this->isReleased(); - } - - /** - * Determine if the job has been marked as a failure. - * - * @return bool - */ - public function hasFailed() - { - return $this->failed; - } - - /** - * Mark the job as "failed". - * - * @return void - */ - public function markAsFailed() - { - $this->failed = true; - } - - /** - * Process an exception that caused the job to fail. - * - * @param \Exception $e - * @return void - */ - public function failed($e) - { - $this->markAsFailed(); - - $payload = $this->payload(); - - list($class, $method) = JobName::parse($payload['job']); - - if (method_exists($this->instance = $this->resolve($class), 'failed')) { - $this->instance->failed($payload['data'], $e); - } - } - - /** - * Resolve the given class. - * - * @param string $class - * @return mixed - */ - protected function resolve($class) - { - return $this->container->make($class); - } - - /** - * Get the decoded body of the job. - * - * @return array - */ - public function payload() - { - return json_decode($this->getRawBody(), true); - } - - /** - * Get the number of times to attempt a job. - * - * @return int|null - */ - public function maxTries() - { - return $this->payload()['maxTries'] ?? null; - } - - /** - * Get the number of seconds the job can run. - * - * @return int|null - */ - public function timeout() - { - return $this->payload()['timeout'] ?? null; - } - - /** - * Get the timestamp indicating when the job should timeout. - * - * @return int|null - */ - public function timeoutAt() - { - return $this->payload()['timeoutAt'] ?? null; - } - - /** - * Get the name of the queued job class. - * - * @return string - */ - public function getName() - { - return $this->payload()['job']; - } - - /** - * Get the resolved name of the queued job class. - * - * Resolves the name of "wrapped" jobs such as class-based handlers. - * - * @return string - */ - public function resolveName() - { - return JobName::resolve($this->getName(), $this->payload()); - } - - /** - * Get the name of the connection the job belongs to. - * - * @return string - */ - public function getConnectionName() - { - return $this->connectionName; - } - - /** - * Get the name of the queue the job belongs to. - * - * @return string - */ - public function getQueue() - { - return $this->queue; - } - - /** - * Get the service container instance. - * - * @return \Illuminate\Container\Container - */ - public function getContainer() - { - return $this->container; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Queue/Jobs/JobName.php b/vendor/laravel/framework/src/Illuminate/Queue/Jobs/JobName.php deleted file mode 100644 index 0db53bb4..00000000 --- a/vendor/laravel/framework/src/Illuminate/Queue/Jobs/JobName.php +++ /dev/null @@ -1,35 +0,0 @@ -job = $job; - $this->redis = $redis; - $this->queue = $queue; - $this->reserved = $reserved; - $this->container = $container; - $this->connectionName = $connectionName; - - $this->decoded = $this->payload(); - } - - /** - * Get the raw body string for the job. - * - * @return string - */ - public function getRawBody() - { - return $this->job; - } - - /** - * Delete the job from the queue. - * - * @return void - */ - public function delete() - { - parent::delete(); - - $this->redis->deleteReserved($this->queue, $this); - } - - /** - * Release the job back into the queue. - * - * @param int $delay - * @return void - */ - public function release($delay = 0) - { - parent::release($delay); - - $this->redis->deleteAndRelease($this->queue, $this, $delay); - } - - /** - * Get the number of times the job has been attempted. - * - * @return int - */ - public function attempts() - { - return ($this->decoded['attempts'] ?? null) + 1; - } - - /** - * Get the job identifier. - * - * @return string - */ - public function getJobId() - { - return $this->decoded['id'] ?? null; - } - - /** - * Get the underlying Redis factory implementation. - * - * @return \Illuminate\Contracts\Redis\Factory - */ - public function getRedisQueue() - { - return $this->redis; - } - - /** - * Get the underlying reserved Redis job. - * - * @return string - */ - public function getReservedJob() - { - return $this->reserved; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Queue/Jobs/SqsJob.php b/vendor/laravel/framework/src/Illuminate/Queue/Jobs/SqsJob.php deleted file mode 100755 index 962d7584..00000000 --- a/vendor/laravel/framework/src/Illuminate/Queue/Jobs/SqsJob.php +++ /dev/null @@ -1,124 +0,0 @@ -sqs = $sqs; - $this->job = $job; - $this->queue = $queue; - $this->container = $container; - $this->connectionName = $connectionName; - } - - /** - * Release the job back into the queue. - * - * @param int $delay - * @return void - */ - public function release($delay = 0) - { - parent::release($delay); - - $this->sqs->changeMessageVisibility([ - 'QueueUrl' => $this->queue, - 'ReceiptHandle' => $this->job['ReceiptHandle'], - 'VisibilityTimeout' => $delay, - ]); - } - - /** - * Delete the job from the queue. - * - * @return void - */ - public function delete() - { - parent::delete(); - - $this->sqs->deleteMessage([ - 'QueueUrl' => $this->queue, 'ReceiptHandle' => $this->job['ReceiptHandle'], - ]); - } - - /** - * Get the number of times the job has been attempted. - * - * @return int - */ - public function attempts() - { - return (int) $this->job['Attributes']['ApproximateReceiveCount']; - } - - /** - * Get the job identifier. - * - * @return string - */ - public function getJobId() - { - return $this->job['MessageId']; - } - - /** - * Get the raw body string for the job. - * - * @return string - */ - public function getRawBody() - { - return $this->job['Body']; - } - - /** - * Get the underlying SQS client instance. - * - * @return \Aws\Sqs\SqsClient - */ - public function getSqs() - { - return $this->sqs; - } - - /** - * Get the underlying raw SQS job. - * - * @return array - */ - public function getSqsJob() - { - return $this->job; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Queue/Jobs/SyncJob.php b/vendor/laravel/framework/src/Illuminate/Queue/Jobs/SyncJob.php deleted file mode 100755 index 9aafb8a9..00000000 --- a/vendor/laravel/framework/src/Illuminate/Queue/Jobs/SyncJob.php +++ /dev/null @@ -1,91 +0,0 @@ -queue = $queue; - $this->payload = $payload; - $this->container = $container; - $this->connectionName = $connectionName; - } - - /** - * Release the job back into the queue. - * - * @param int $delay - * @return void - */ - public function release($delay = 0) - { - parent::release($delay); - } - - /** - * Get the number of times the job has been attempted. - * - * @return int - */ - public function attempts() - { - return 1; - } - - /** - * Get the job identifier. - * - * @return string - */ - public function getJobId() - { - return ''; - } - - /** - * Get the raw body string for the job. - * - * @return string - */ - public function getRawBody() - { - return $this->payload; - } - - /** - * Get the name of the queue the job belongs to. - * - * @return string - */ - public function getQueue() - { - return 'sync'; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Queue/Listener.php b/vendor/laravel/framework/src/Illuminate/Queue/Listener.php deleted file mode 100755 index d9ff3cc8..00000000 --- a/vendor/laravel/framework/src/Illuminate/Queue/Listener.php +++ /dev/null @@ -1,248 +0,0 @@ -commandPath = $commandPath; - $this->workerCommand = $this->buildCommandTemplate(); - } - - /** - * Build the environment specific worker command. - * - * @return string - */ - protected function buildCommandTemplate() - { - $command = 'queue:work %s --once --queue=%s --delay=%s --memory=%s --sleep=%s --tries=%s'; - - return "{$this->phpBinary()} {$this->artisanBinary()} {$command}"; - } - - /** - * Get the PHP binary. - * - * @return string - */ - protected function phpBinary() - { - return ProcessUtils::escapeArgument( - (new PhpExecutableFinder)->find(false) - ); - } - - /** - * Get the Artisan binary. - * - * @return string - */ - protected function artisanBinary() - { - return defined('ARTISAN_BINARY') - ? ProcessUtils::escapeArgument(ARTISAN_BINARY) - : ProcessUtils::escapeArgument('artisan'); - } - - /** - * Listen to the given queue connection. - * - * @param string $connection - * @param string $queue - * @param \Illuminate\Queue\ListenerOptions $options - * @return void - */ - public function listen($connection, $queue, ListenerOptions $options) - { - $process = $this->makeProcess($connection, $queue, $options); - - while (true) { - $this->runProcess($process, $options->memory); - } - } - - /** - * Create a new Symfony process for the worker. - * - * @param string $connection - * @param string $queue - * @param \Illuminate\Queue\ListenerOptions $options - * @return \Symfony\Component\Process\Process - */ - public function makeProcess($connection, $queue, ListenerOptions $options) - { - $command = $this->workerCommand; - - // If the environment is set, we will append it to the command string so the - // workers will run under the specified environment. Otherwise, they will - // just run under the production environment which is not always right. - if (isset($options->environment)) { - $command = $this->addEnvironment($command, $options); - } - - // Next, we will just format out the worker commands with all of the various - // options available for the command. This will produce the final command - // line that we will pass into a Symfony process object for processing. - $command = $this->formatCommand( - $command, $connection, $queue, $options - ); - - return new Process( - $command, $this->commandPath, null, null, $options->timeout - ); - } - - /** - * Add the environment option to the given command. - * - * @param string $command - * @param \Illuminate\Queue\ListenerOptions $options - * @return string - */ - protected function addEnvironment($command, ListenerOptions $options) - { - return $command.' --env='.ProcessUtils::escapeArgument($options->environment); - } - - /** - * Format the given command with the listener options. - * - * @param string $command - * @param string $connection - * @param string $queue - * @param \Illuminate\Queue\ListenerOptions $options - * @return string - */ - protected function formatCommand($command, $connection, $queue, ListenerOptions $options) - { - return sprintf( - $command, - ProcessUtils::escapeArgument($connection), - ProcessUtils::escapeArgument($queue), - $options->delay, $options->memory, - $options->sleep, $options->maxTries - ); - } - - /** - * Run the given process. - * - * @param \Symfony\Component\Process\Process $process - * @param int $memory - * @return void - */ - public function runProcess(Process $process, $memory) - { - $process->run(function ($type, $line) { - $this->handleWorkerOutput($type, $line); - }); - - // Once we have run the job we'll go check if the memory limit has been exceeded - // for the script. If it has, we will kill this script so the process manager - // will restart this with a clean slate of memory automatically on exiting. - if ($this->memoryExceeded($memory)) { - $this->stop(); - } - } - - /** - * Handle output from the worker process. - * - * @param int $type - * @param string $line - * @return void - */ - protected function handleWorkerOutput($type, $line) - { - if (isset($this->outputHandler)) { - call_user_func($this->outputHandler, $type, $line); - } - } - - /** - * Determine if the memory limit has been exceeded. - * - * @param int $memoryLimit - * @return bool - */ - public function memoryExceeded($memoryLimit) - { - return (memory_get_usage() / 1024 / 1024) >= $memoryLimit; - } - - /** - * Stop listening and bail out of the script. - * - * @return void - */ - public function stop() - { - die; - } - - /** - * Set the output handler callback. - * - * @param \Closure $outputHandler - * @return void - */ - public function setOutputHandler(Closure $outputHandler) - { - $this->outputHandler = $outputHandler; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Queue/ListenerOptions.php b/vendor/laravel/framework/src/Illuminate/Queue/ListenerOptions.php deleted file mode 100644 index a1b90143..00000000 --- a/vendor/laravel/framework/src/Illuminate/Queue/ListenerOptions.php +++ /dev/null @@ -1,32 +0,0 @@ -environment = $environment; - - parent::__construct($delay, $memory, $timeout, $sleep, $maxTries, $force); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Queue/LuaScripts.php b/vendor/laravel/framework/src/Illuminate/Queue/LuaScripts.php deleted file mode 100644 index 93ac0478..00000000 --- a/vendor/laravel/framework/src/Illuminate/Queue/LuaScripts.php +++ /dev/null @@ -1,103 +0,0 @@ -push($job, $data, $queue); - } - - /** - * Push a new job onto the queue after a delay. - * - * @param string $queue - * @param \DateTimeInterface|\DateInterval|int $delay - * @param string $job - * @param mixed $data - * @return mixed - */ - public function laterOn($queue, $delay, $job, $data = '') - { - return $this->later($delay, $job, $data, $queue); - } - - /** - * Push an array of jobs onto the queue. - * - * @param array $jobs - * @param mixed $data - * @param string $queue - * @return mixed - */ - public function bulk($jobs, $data = '', $queue = null) - { - foreach ((array) $jobs as $job) { - $this->push($job, $data, $queue); - } - } - - /** - * Create a payload string from the given job and data. - * - * @param string $job - * @param mixed $data - * @return string - * - * @throws \Illuminate\Queue\InvalidPayloadException - */ - protected function createPayload($job, $data = '') - { - $payload = json_encode($this->createPayloadArray($job, $data)); - - if (JSON_ERROR_NONE !== json_last_error()) { - throw new InvalidPayloadException( - 'Unable to JSON encode payload. Error code: '.json_last_error() - ); - } - - return $payload; - } - - /** - * Create a payload array from the given job and data. - * - * @param string $job - * @param mixed $data - * @return array - */ - protected function createPayloadArray($job, $data = '') - { - return is_object($job) - ? $this->createObjectPayload($job) - : $this->createStringPayload($job, $data); - } - - /** - * Create a payload for an object-based queue handler. - * - * @param mixed $job - * @return array - */ - protected function createObjectPayload($job) - { - return [ - 'displayName' => $this->getDisplayName($job), - 'job' => 'Illuminate\Queue\CallQueuedHandler@call', - 'maxTries' => $job->tries ?? null, - 'timeout' => $job->timeout ?? null, - 'timeoutAt' => $this->getJobExpiration($job), - 'data' => [ - 'commandName' => get_class($job), - 'command' => serialize(clone $job), - ], - ]; - } - - /** - * Get the display name for the given job. - * - * @param mixed $job - * @return string - */ - protected function getDisplayName($job) - { - return method_exists($job, 'displayName') - ? $job->displayName() : get_class($job); - } - - /** - * Get the expiration timestamp for an object-based queue handler. - * - * @param mixed $job - * @return mixed - */ - public function getJobExpiration($job) - { - if (! method_exists($job, 'retryUntil') && ! isset($job->timeoutAt)) { - return; - } - - $expiration = $job->timeoutAt ?? $job->retryUntil(); - - return $expiration instanceof DateTimeInterface - ? $expiration->getTimestamp() : $expiration; - } - - /** - * Create a typical, string based queue payload array. - * - * @param string $job - * @param mixed $data - * @return array - */ - protected function createStringPayload($job, $data) - { - return [ - 'displayName' => is_string($job) ? explode('@', $job)[0] : null, - 'job' => $job, 'maxTries' => null, - 'timeout' => null, 'data' => $data, - ]; - } - - /** - * Get the connection name for the queue. - * - * @return string - */ - public function getConnectionName() - { - return $this->connectionName; - } - - /** - * Set the connection name for the queue. - * - * @param string $name - * @return $this - */ - public function setConnectionName($name) - { - $this->connectionName = $name; - - return $this; - } - - /** - * Set the IoC container instance. - * - * @param \Illuminate\Container\Container $container - * @return void - */ - public function setContainer(Container $container) - { - $this->container = $container; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Queue/QueueManager.php b/vendor/laravel/framework/src/Illuminate/Queue/QueueManager.php deleted file mode 100755 index f9bb7f6a..00000000 --- a/vendor/laravel/framework/src/Illuminate/Queue/QueueManager.php +++ /dev/null @@ -1,270 +0,0 @@ -app = $app; - } - - /** - * Register an event listener for the before job event. - * - * @param mixed $callback - * @return void - */ - public function before($callback) - { - $this->app['events']->listen(Events\JobProcessing::class, $callback); - } - - /** - * Register an event listener for the after job event. - * - * @param mixed $callback - * @return void - */ - public function after($callback) - { - $this->app['events']->listen(Events\JobProcessed::class, $callback); - } - - /** - * Register an event listener for the exception occurred job event. - * - * @param mixed $callback - * @return void - */ - public function exceptionOccurred($callback) - { - $this->app['events']->listen(Events\JobExceptionOccurred::class, $callback); - } - - /** - * Register an event listener for the daemon queue loop. - * - * @param mixed $callback - * @return void - */ - public function looping($callback) - { - $this->app['events']->listen(Events\Looping::class, $callback); - } - - /** - * Register an event listener for the failed job event. - * - * @param mixed $callback - * @return void - */ - public function failing($callback) - { - $this->app['events']->listen(Events\JobFailed::class, $callback); - } - - /** - * Register an event listener for the daemon queue stopping. - * - * @param mixed $callback - * @return void - */ - public function stopping($callback) - { - $this->app['events']->listen(Events\WorkerStopping::class, $callback); - } - - /** - * Determine if the driver is connected. - * - * @param string $name - * @return bool - */ - public function connected($name = null) - { - return isset($this->connections[$name ?: $this->getDefaultDriver()]); - } - - /** - * Resolve a queue connection instance. - * - * @param string $name - * @return \Illuminate\Contracts\Queue\Queue - */ - public function connection($name = null) - { - $name = $name ?: $this->getDefaultDriver(); - - // If the connection has not been resolved yet we will resolve it now as all - // of the connections are resolved when they are actually needed so we do - // not make any unnecessary connection to the various queue end-points. - if (! isset($this->connections[$name])) { - $this->connections[$name] = $this->resolve($name); - - $this->connections[$name]->setContainer($this->app); - } - - return $this->connections[$name]; - } - - /** - * Resolve a queue connection. - * - * @param string $name - * @return \Illuminate\Contracts\Queue\Queue - */ - protected function resolve($name) - { - $config = $this->getConfig($name); - - return $this->getConnector($config['driver']) - ->connect($config) - ->setConnectionName($name); - } - - /** - * Get the connector for a given driver. - * - * @param string $driver - * @return \Illuminate\Queue\Connectors\ConnectorInterface - * - * @throws \InvalidArgumentException - */ - protected function getConnector($driver) - { - if (! isset($this->connectors[$driver])) { - throw new InvalidArgumentException("No connector for [$driver]"); - } - - return call_user_func($this->connectors[$driver]); - } - - /** - * Add a queue connection resolver. - * - * @param string $driver - * @param \Closure $resolver - * @return void - */ - public function extend($driver, Closure $resolver) - { - return $this->addConnector($driver, $resolver); - } - - /** - * Add a queue connection resolver. - * - * @param string $driver - * @param \Closure $resolver - * @return void - */ - public function addConnector($driver, Closure $resolver) - { - $this->connectors[$driver] = $resolver; - } - - /** - * Get the queue connection configuration. - * - * @param string $name - * @return array - */ - protected function getConfig($name) - { - if (! is_null($name) && $name !== 'null') { - return $this->app['config']["queue.connections.{$name}"]; - } - - return ['driver' => 'null']; - } - - /** - * Get the name of the default queue connection. - * - * @return string - */ - public function getDefaultDriver() - { - return $this->app['config']['queue.default']; - } - - /** - * Set the name of the default queue connection. - * - * @param string $name - * @return void - */ - public function setDefaultDriver($name) - { - $this->app['config']['queue.default'] = $name; - } - - /** - * Get the full name for the given connection. - * - * @param string $connection - * @return string - */ - public function getName($connection = null) - { - return $connection ?: $this->getDefaultDriver(); - } - - /** - * Determine if the application is in maintenance mode. - * - * @return bool - */ - public function isDownForMaintenance() - { - return $this->app->isDownForMaintenance(); - } - - /** - * Dynamically pass calls to the default connection. - * - * @param string $method - * @param array $parameters - * @return mixed - */ - public function __call($method, $parameters) - { - return $this->connection()->$method(...$parameters); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Queue/QueueServiceProvider.php b/vendor/laravel/framework/src/Illuminate/Queue/QueueServiceProvider.php deleted file mode 100755 index 2ad923ec..00000000 --- a/vendor/laravel/framework/src/Illuminate/Queue/QueueServiceProvider.php +++ /dev/null @@ -1,230 +0,0 @@ -registerManager(); - - $this->registerConnection(); - - $this->registerWorker(); - - $this->registerListener(); - - $this->registerFailedJobServices(); - } - - /** - * Register the queue manager. - * - * @return void - */ - protected function registerManager() - { - $this->app->singleton('queue', function ($app) { - // Once we have an instance of the queue manager, we will register the various - // resolvers for the queue connectors. These connectors are responsible for - // creating the classes that accept queue configs and instantiate queues. - return tap(new QueueManager($app), function ($manager) { - $this->registerConnectors($manager); - }); - }); - } - - /** - * Register the default queue connection binding. - * - * @return void - */ - protected function registerConnection() - { - $this->app->singleton('queue.connection', function ($app) { - return $app['queue']->connection(); - }); - } - - /** - * Register the connectors on the queue manager. - * - * @param \Illuminate\Queue\QueueManager $manager - * @return void - */ - public function registerConnectors($manager) - { - foreach (['Null', 'Sync', 'Database', 'Redis', 'Beanstalkd', 'Sqs'] as $connector) { - $this->{"register{$connector}Connector"}($manager); - } - } - - /** - * Register the Null queue connector. - * - * @param \Illuminate\Queue\QueueManager $manager - * @return void - */ - protected function registerNullConnector($manager) - { - $manager->addConnector('null', function () { - return new NullConnector; - }); - } - - /** - * Register the Sync queue connector. - * - * @param \Illuminate\Queue\QueueManager $manager - * @return void - */ - protected function registerSyncConnector($manager) - { - $manager->addConnector('sync', function () { - return new SyncConnector; - }); - } - - /** - * Register the database queue connector. - * - * @param \Illuminate\Queue\QueueManager $manager - * @return void - */ - protected function registerDatabaseConnector($manager) - { - $manager->addConnector('database', function () { - return new DatabaseConnector($this->app['db']); - }); - } - - /** - * Register the Redis queue connector. - * - * @param \Illuminate\Queue\QueueManager $manager - * @return void - */ - protected function registerRedisConnector($manager) - { - $manager->addConnector('redis', function () { - return new RedisConnector($this->app['redis']); - }); - } - - /** - * Register the Beanstalkd queue connector. - * - * @param \Illuminate\Queue\QueueManager $manager - * @return void - */ - protected function registerBeanstalkdConnector($manager) - { - $manager->addConnector('beanstalkd', function () { - return new BeanstalkdConnector; - }); - } - - /** - * Register the Amazon SQS queue connector. - * - * @param \Illuminate\Queue\QueueManager $manager - * @return void - */ - protected function registerSqsConnector($manager) - { - $manager->addConnector('sqs', function () { - return new SqsConnector; - }); - } - - /** - * Register the queue worker. - * - * @return void - */ - protected function registerWorker() - { - $this->app->singleton('queue.worker', function () { - return new Worker( - $this->app['queue'], $this->app['events'], $this->app[ExceptionHandler::class] - ); - }); - } - - /** - * Register the queue listener. - * - * @return void - */ - protected function registerListener() - { - $this->app->singleton('queue.listener', function () { - return new Listener($this->app->basePath()); - }); - } - - /** - * Register the failed job services. - * - * @return void - */ - protected function registerFailedJobServices() - { - $this->app->singleton('queue.failer', function () { - $config = $this->app['config']['queue.failed']; - - return isset($config['table']) - ? $this->databaseFailedJobProvider($config) - : new NullFailedJobProvider; - }); - } - - /** - * Create a new database failed job provider. - * - * @param array $config - * @return \Illuminate\Queue\Failed\DatabaseFailedJobProvider - */ - protected function databaseFailedJobProvider($config) - { - return new DatabaseFailedJobProvider( - $this->app['db'], $config['database'], $config['table'] - ); - } - - /** - * Get the services provided by the provider. - * - * @return array - */ - public function provides() - { - return [ - 'queue', 'queue.worker', 'queue.listener', - 'queue.failer', 'queue.connection', - ]; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Queue/README.md b/vendor/laravel/framework/src/Illuminate/Queue/README.md deleted file mode 100644 index d0f2ba4a..00000000 --- a/vendor/laravel/framework/src/Illuminate/Queue/README.md +++ /dev/null @@ -1,34 +0,0 @@ -## Illuminate Queue - -The Laravel Queue component provides a unified API across a variety of different queue services. Queues allow you to defer the processing of a time consuming task, such as sending an e-mail, until a later time, thus drastically speeding up the web requests to your application. - -### Usage Instructions - -First, create a new Queue `Capsule` manager instance. Similar to the "Capsule" provided for the Eloquent ORM, the queue Capsule aims to make configuring the library for usage outside of the Laravel framework as easy as possible. - -```PHP -use Illuminate\Queue\Capsule\Manager as Queue; - -$queue = new Queue; - -$queue->addConnection([ - 'driver' => 'beanstalkd', - 'host' => 'localhost', - 'queue' => 'default', -]); - -// Make this Capsule instance available globally via static methods... (optional) -$queue->setAsGlobal(); -``` - -Once the Capsule instance has been registered. You may use it like so: - -```PHP -// As an instance... -$queue->push('SendEmail', array('message' => $message)); - -// If setAsGlobal has been called... -Queue::push('SendEmail', array('message' => $message)); -``` - -For further documentation on using the queue, consult the [Laravel framework documentation](https://laravel.com/docs). diff --git a/vendor/laravel/framework/src/Illuminate/Queue/RedisQueue.php b/vendor/laravel/framework/src/Illuminate/Queue/RedisQueue.php deleted file mode 100644 index 7bda32fb..00000000 --- a/vendor/laravel/framework/src/Illuminate/Queue/RedisQueue.php +++ /dev/null @@ -1,319 +0,0 @@ -redis = $redis; - $this->default = $default; - $this->blockFor = $blockFor; - $this->connection = $connection; - $this->retryAfter = $retryAfter; - } - - /** - * Get the size of the queue. - * - * @param string $queue - * @return int - */ - public function size($queue = null) - { - $queue = $this->getQueue($queue); - - return $this->getConnection()->eval( - LuaScripts::size(), 3, $queue, $queue.':delayed', $queue.':reserved' - ); - } - - /** - * Push a new job onto the queue. - * - * @param object|string $job - * @param mixed $data - * @param string $queue - * @return mixed - */ - public function push($job, $data = '', $queue = null) - { - return $this->pushRaw($this->createPayload($job, $data), $queue); - } - - /** - * Push a raw payload onto the queue. - * - * @param string $payload - * @param string $queue - * @param array $options - * @return mixed - */ - public function pushRaw($payload, $queue = null, array $options = []) - { - $this->getConnection()->rpush($this->getQueue($queue), $payload); - - return json_decode($payload, true)['id'] ?? null; - } - - /** - * Push a new job onto the queue after a delay. - * - * @param \DateTimeInterface|\DateInterval|int $delay - * @param object|string $job - * @param mixed $data - * @param string $queue - * @return mixed - */ - public function later($delay, $job, $data = '', $queue = null) - { - return $this->laterRaw($delay, $this->createPayload($job, $data), $queue); - } - - /** - * Push a raw job onto the queue after a delay. - * - * @param \DateTimeInterface|\DateInterval|int $delay - * @param string $payload - * @param string $queue - * @return mixed - */ - protected function laterRaw($delay, $payload, $queue = null) - { - $this->getConnection()->zadd( - $this->getQueue($queue).':delayed', $this->availableAt($delay), $payload - ); - - return json_decode($payload, true)['id'] ?? null; - } - - /** - * Create a payload string from the given job and data. - * - * @param string $job - * @param mixed $data - * @return string - */ - protected function createPayloadArray($job, $data = '') - { - return array_merge(parent::createPayloadArray($job, $data), [ - 'id' => $this->getRandomId(), - 'attempts' => 0, - ]); - } - - /** - * Pop the next job off of the queue. - * - * @param string $queue - * @return \Illuminate\Contracts\Queue\Job|null - */ - public function pop($queue = null) - { - $this->migrate($prefixed = $this->getQueue($queue)); - - list($job, $reserved) = $this->retrieveNextJob($prefixed); - - if ($reserved) { - return new RedisJob( - $this->container, $this, $job, - $reserved, $this->connectionName, $queue ?: $this->default - ); - } - } - - /** - * Migrate any delayed or expired jobs onto the primary queue. - * - * @param string $queue - * @return void - */ - protected function migrate($queue) - { - $this->migrateExpiredJobs($queue.':delayed', $queue); - - if (! is_null($this->retryAfter)) { - $this->migrateExpiredJobs($queue.':reserved', $queue); - } - } - - /** - * Migrate the delayed jobs that are ready to the regular queue. - * - * @param string $from - * @param string $to - * @return array - */ - public function migrateExpiredJobs($from, $to) - { - return $this->getConnection()->eval( - LuaScripts::migrateExpiredJobs(), 2, $from, $to, $this->currentTime() - ); - } - - /** - * Retrieve the next job from the queue. - * - * @param string $queue - * @return array - */ - protected function retrieveNextJob($queue) - { - if (! is_null($this->blockFor)) { - return $this->blockingPop($queue); - } - - return $this->getConnection()->eval( - LuaScripts::pop(), 2, $queue, $queue.':reserved', - $this->availableAt($this->retryAfter) - ); - } - - /** - * Retrieve the next job by blocking-pop. - * - * @param string $queue - * @return array - */ - protected function blockingPop($queue) - { - $rawBody = $this->getConnection()->blpop($queue, $this->blockFor); - - if (! empty($rawBody)) { - $payload = json_decode($rawBody[1], true); - - $payload['attempts']++; - - $reserved = json_encode($payload); - - $this->getConnection()->zadd($queue.':reserved', [ - $reserved => $this->availableAt($this->retryAfter), - ]); - - return [$rawBody[1], $reserved]; - } - - return [null, null]; - } - - /** - * Delete a reserved job from the queue. - * - * @param string $queue - * @param \Illuminate\Queue\Jobs\RedisJob $job - * @return void - */ - public function deleteReserved($queue, $job) - { - $this->getConnection()->zrem($this->getQueue($queue).':reserved', $job->getReservedJob()); - } - - /** - * Delete a reserved job from the reserved queue and release it. - * - * @param string $queue - * @param \Illuminate\Queue\Jobs\RedisJob $job - * @param int $delay - * @return void - */ - public function deleteAndRelease($queue, $job, $delay) - { - $queue = $this->getQueue($queue); - - $this->getConnection()->eval( - LuaScripts::release(), 2, $queue.':delayed', $queue.':reserved', - $job->getReservedJob(), $this->availableAt($delay) - ); - } - - /** - * Get a random ID string. - * - * @return string - */ - protected function getRandomId() - { - return Str::random(32); - } - - /** - * Get the queue or return the default. - * - * @param string|null $queue - * @return string - */ - public function getQueue($queue) - { - return 'queues:'.($queue ?: $this->default); - } - - /** - * Get the connection for the queue. - * - * @return \Illuminate\Redis\Connections\Connection - */ - protected function getConnection() - { - return $this->redis->connection($this->connection); - } - - /** - * Get the underlying Redis instance. - * - * @return \Illuminate\Contracts\Redis\Factory - */ - public function getRedis() - { - return $this->redis; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Queue/SerializesAndRestoresModelIdentifiers.php b/vendor/laravel/framework/src/Illuminate/Queue/SerializesAndRestoresModelIdentifiers.php deleted file mode 100644 index 4b9476e4..00000000 --- a/vendor/laravel/framework/src/Illuminate/Queue/SerializesAndRestoresModelIdentifiers.php +++ /dev/null @@ -1,99 +0,0 @@ -getQueueableClass(), - $value->getQueueableIds(), - $value->getQueueableRelations(), - $value->getQueueableConnection() - ); - } - - if ($value instanceof QueueableEntity) { - return new ModelIdentifier( - get_class($value), - $value->getQueueableId(), - $value->getQueueableRelations(), - $value->getQueueableConnection() - ); - } - - return $value; - } - - /** - * Get the restored property value after deserialization. - * - * @param mixed $value - * @return mixed - */ - protected function getRestoredPropertyValue($value) - { - if (! $value instanceof ModelIdentifier) { - return $value; - } - - return is_array($value->id) - ? $this->restoreCollection($value) - : $this->restoreModel($value); - } - - /** - * Restore a queueable collection instance. - * - * @param \Illuminate\Contracts\Database\ModelIdentifier $value - * @return \Illuminate\Database\Eloquent\Collection - */ - protected function restoreCollection($value) - { - if (! $value->class || count($value->id) === 0) { - return new EloquentCollection; - } - - return $this->getQueryForModelRestoration( - (new $value->class)->setConnection($value->connection), $value->id - )->useWritePdo()->get(); - } - - /** - * Restore the model from the model identifier instance. - * - * @param \Illuminate\Contracts\Database\ModelIdentifier $value - * @return \Illuminate\Database\Eloquent\Model - */ - public function restoreModel($value) - { - return $this->getQueryForModelRestoration( - (new $value->class)->setConnection($value->connection), $value->id - )->useWritePdo()->firstOrFail()->load($value->relations ?? []); - } - - /** - * Get the query for model restoration. - * - * @param \Illuminate\Database\Eloquent\Model $model - * @param array|int $ids - * @return \Illuminate\Database\Eloquent\Builder - */ - protected function getQueryForModelRestoration($model, $ids) - { - return $model->newQueryForRestoration($ids); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Queue/SerializesModels.php b/vendor/laravel/framework/src/Illuminate/Queue/SerializesModels.php deleted file mode 100644 index e083d6f3..00000000 --- a/vendor/laravel/framework/src/Illuminate/Queue/SerializesModels.php +++ /dev/null @@ -1,62 +0,0 @@ -getProperties(); - - foreach ($properties as $property) { - $property->setValue($this, $this->getSerializedPropertyValue( - $this->getPropertyValue($property) - )); - } - - return array_values(array_filter(array_map(function ($p) { - return $p->isStatic() ? null : $p->getName(); - }, $properties))); - } - - /** - * Restore the model after serialization. - * - * @return void - */ - public function __wakeup() - { - foreach ((new ReflectionClass($this))->getProperties() as $property) { - if ($property->isStatic()) { - continue; - } - - $property->setValue($this, $this->getRestoredPropertyValue( - $this->getPropertyValue($property) - )); - } - } - - /** - * Get the property value for the given property. - * - * @param \ReflectionProperty $property - * @return mixed - */ - protected function getPropertyValue(ReflectionProperty $property) - { - $property->setAccessible(true); - - return $property->getValue($this); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Queue/SqsQueue.php b/vendor/laravel/framework/src/Illuminate/Queue/SqsQueue.php deleted file mode 100755 index c8bd3aec..00000000 --- a/vendor/laravel/framework/src/Illuminate/Queue/SqsQueue.php +++ /dev/null @@ -1,155 +0,0 @@ -sqs = $sqs; - $this->prefix = $prefix; - $this->default = $default; - } - - /** - * Get the size of the queue. - * - * @param string $queue - * @return int - */ - public function size($queue = null) - { - $response = $this->sqs->getQueueAttributes([ - 'QueueUrl' => $this->getQueue($queue), - 'AttributeNames' => ['ApproximateNumberOfMessages'], - ]); - - $attributes = $response->get('Attributes'); - - return (int) $attributes['ApproximateNumberOfMessages']; - } - - /** - * Push a new job onto the queue. - * - * @param string $job - * @param mixed $data - * @param string $queue - * @return mixed - */ - public function push($job, $data = '', $queue = null) - { - return $this->pushRaw($this->createPayload($job, $data), $queue); - } - - /** - * Push a raw payload onto the queue. - * - * @param string $payload - * @param string $queue - * @param array $options - * @return mixed - */ - public function pushRaw($payload, $queue = null, array $options = []) - { - return $this->sqs->sendMessage([ - 'QueueUrl' => $this->getQueue($queue), 'MessageBody' => $payload, - ])->get('MessageId'); - } - - /** - * Push a new job onto the queue after a delay. - * - * @param \DateTimeInterface|\DateInterval|int $delay - * @param string $job - * @param mixed $data - * @param string $queue - * @return mixed - */ - public function later($delay, $job, $data = '', $queue = null) - { - return $this->sqs->sendMessage([ - 'QueueUrl' => $this->getQueue($queue), - 'MessageBody' => $this->createPayload($job, $data), - 'DelaySeconds' => $this->secondsUntil($delay), - ])->get('MessageId'); - } - - /** - * Pop the next job off of the queue. - * - * @param string $queue - * @return \Illuminate\Contracts\Queue\Job|null - */ - public function pop($queue = null) - { - $response = $this->sqs->receiveMessage([ - 'QueueUrl' => $queue = $this->getQueue($queue), - 'AttributeNames' => ['ApproximateReceiveCount'], - ]); - - if (! is_null($response['Messages']) && count($response['Messages']) > 0) { - return new SqsJob( - $this->container, $this->sqs, $response['Messages'][0], - $this->connectionName, $queue - ); - } - } - - /** - * Get the queue or return the default. - * - * @param string|null $queue - * @return string - */ - public function getQueue($queue) - { - $queue = $queue ?: $this->default; - - return filter_var($queue, FILTER_VALIDATE_URL) === false - ? rtrim($this->prefix, '/').'/'.$queue : $queue; - } - - /** - * Get the underlying SQS instance. - * - * @return \Aws\Sqs\SqsClient - */ - public function getSqs() - { - return $this->sqs; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Queue/SyncQueue.php b/vendor/laravel/framework/src/Illuminate/Queue/SyncQueue.php deleted file mode 100755 index bc455391..00000000 --- a/vendor/laravel/framework/src/Illuminate/Queue/SyncQueue.php +++ /dev/null @@ -1,161 +0,0 @@ -resolveJob($this->createPayload($job, $data), $queue); - - try { - $this->raiseBeforeJobEvent($queueJob); - - $queueJob->fire(); - - $this->raiseAfterJobEvent($queueJob); - } catch (Exception $e) { - $this->handleException($queueJob, $e); - } catch (Throwable $e) { - $this->handleException($queueJob, new FatalThrowableError($e)); - } - - return 0; - } - - /** - * Resolve a Sync job instance. - * - * @param string $payload - * @param string $queue - * @return \Illuminate\Queue\Jobs\SyncJob - */ - protected function resolveJob($payload, $queue) - { - return new SyncJob($this->container, $payload, $this->connectionName, $queue); - } - - /** - * Raise the before queue job event. - * - * @param \Illuminate\Contracts\Queue\Job $job - * @return void - */ - protected function raiseBeforeJobEvent(Job $job) - { - if ($this->container->bound('events')) { - $this->container['events']->dispatch(new Events\JobProcessing($this->connectionName, $job)); - } - } - - /** - * Raise the after queue job event. - * - * @param \Illuminate\Contracts\Queue\Job $job - * @return void - */ - protected function raiseAfterJobEvent(Job $job) - { - if ($this->container->bound('events')) { - $this->container['events']->dispatch(new Events\JobProcessed($this->connectionName, $job)); - } - } - - /** - * Raise the exception occurred queue job event. - * - * @param \Illuminate\Contracts\Queue\Job $job - * @param \Exception $e - * @return void - */ - protected function raiseExceptionOccurredJobEvent(Job $job, $e) - { - if ($this->container->bound('events')) { - $this->container['events']->dispatch(new Events\JobExceptionOccurred($this->connectionName, $job, $e)); - } - } - - /** - * Handle an exception that occurred while processing a job. - * - * @param \Illuminate\Queue\Jobs\Job $queueJob - * @param \Exception $e - * @return void - * - * @throws \Exception - */ - protected function handleException($queueJob, $e) - { - $this->raiseExceptionOccurredJobEvent($queueJob, $e); - - FailingJob::handle($this->connectionName, $queueJob, $e); - - throw $e; - } - - /** - * Push a raw payload onto the queue. - * - * @param string $payload - * @param string $queue - * @param array $options - * @return mixed - */ - public function pushRaw($payload, $queue = null, array $options = []) - { - // - } - - /** - * Push a new job onto the queue after a delay. - * - * @param \DateTimeInterface|\DateInterval|int $delay - * @param string $job - * @param mixed $data - * @param string $queue - * @return mixed - */ - public function later($delay, $job, $data = '', $queue = null) - { - return $this->push($job, $data, $queue); - } - - /** - * Pop the next job off of the queue. - * - * @param string $queue - * @return \Illuminate\Contracts\Queue\Job|null - */ - public function pop($queue = null) - { - // - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Queue/Worker.php b/vendor/laravel/framework/src/Illuminate/Queue/Worker.php deleted file mode 100644 index 13699cca..00000000 --- a/vendor/laravel/framework/src/Illuminate/Queue/Worker.php +++ /dev/null @@ -1,623 +0,0 @@ -events = $events; - $this->manager = $manager; - $this->exceptions = $exceptions; - } - - /** - * Listen to the given queue in a loop. - * - * @param string $connectionName - * @param string $queue - * @param \Illuminate\Queue\WorkerOptions $options - * @return void - */ - public function daemon($connectionName, $queue, WorkerOptions $options) - { - if ($this->supportsAsyncSignals()) { - $this->listenForSignals(); - } - - $lastRestart = $this->getTimestampOfLastQueueRestart(); - - while (true) { - // Before reserving any jobs, we will make sure this queue is not paused and - // if it is we will just pause this worker for a given amount of time and - // make sure we do not need to kill this worker process off completely. - if (! $this->daemonShouldRun($options, $connectionName, $queue)) { - $this->pauseWorker($options, $lastRestart); - - continue; - } - - // First, we will attempt to get the next job off of the queue. We will also - // register the timeout handler and reset the alarm for this job so it is - // not stuck in a frozen state forever. Then, we can fire off this job. - $job = $this->getNextJob( - $this->manager->connection($connectionName), $queue - ); - - if ($this->supportsAsyncSignals()) { - $this->registerTimeoutHandler($job, $options); - } - - // If the daemon should run (not in maintenance mode, etc.), then we can run - // fire off this job for processing. Otherwise, we will need to sleep the - // worker so no more jobs are processed until they should be processed. - if ($job) { - $this->runJob($job, $connectionName, $options); - } else { - $this->sleep($options->sleep); - } - - // Finally, we will check to see if we have exceeded our memory limits or if - // the queue should restart based on other indications. If so, we'll stop - // this worker and let whatever is "monitoring" it restart the process. - $this->stopIfNecessary($options, $lastRestart); - } - } - - /** - * Register the worker timeout handler. - * - * @param \Illuminate\Contracts\Queue\Job|null $job - * @param \Illuminate\Queue\WorkerOptions $options - * @return void - */ - protected function registerTimeoutHandler($job, WorkerOptions $options) - { - // We will register a signal handler for the alarm signal so that we can kill this - // process if it is running too long because it has frozen. This uses the async - // signals supported in recent versions of PHP to accomplish it conveniently. - pcntl_signal(SIGALRM, function () { - $this->kill(1); - }); - - pcntl_alarm( - max($this->timeoutForJob($job, $options), 0) - ); - } - - /** - * Get the appropriate timeout for the given job. - * - * @param \Illuminate\Contracts\Queue\Job|null $job - * @param \Illuminate\Queue\WorkerOptions $options - * @return int - */ - protected function timeoutForJob($job, WorkerOptions $options) - { - return $job && ! is_null($job->timeout()) ? $job->timeout() : $options->timeout; - } - - /** - * Determine if the daemon should process on this iteration. - * - * @param \Illuminate\Queue\WorkerOptions $options - * @param string $connectionName - * @param string $queue - * @return bool - */ - protected function daemonShouldRun(WorkerOptions $options, $connectionName, $queue) - { - return ! (($this->manager->isDownForMaintenance() && ! $options->force) || - $this->paused || - $this->events->until(new Events\Looping($connectionName, $queue)) === false); - } - - /** - * Pause the worker for the current loop. - * - * @param \Illuminate\Queue\WorkerOptions $options - * @param int $lastRestart - * @return void - */ - protected function pauseWorker(WorkerOptions $options, $lastRestart) - { - $this->sleep($options->sleep > 0 ? $options->sleep : 1); - - $this->stopIfNecessary($options, $lastRestart); - } - - /** - * Stop the process if necessary. - * - * @param \Illuminate\Queue\WorkerOptions $options - * @param int $lastRestart - */ - protected function stopIfNecessary(WorkerOptions $options, $lastRestart) - { - if ($this->shouldQuit) { - $this->kill(); - } - - if ($this->memoryExceeded($options->memory)) { - $this->stop(12); - } elseif ($this->queueShouldRestart($lastRestart)) { - $this->stop(); - } - } - - /** - * Process the next job on the queue. - * - * @param string $connectionName - * @param string $queue - * @param \Illuminate\Queue\WorkerOptions $options - * @return void - */ - public function runNextJob($connectionName, $queue, WorkerOptions $options) - { - $job = $this->getNextJob( - $this->manager->connection($connectionName), $queue - ); - - // If we're able to pull a job off of the stack, we will process it and then return - // from this method. If there is no job on the queue, we will "sleep" the worker - // for the specified number of seconds, then keep processing jobs after sleep. - if ($job) { - return $this->runJob($job, $connectionName, $options); - } - - $this->sleep($options->sleep); - } - - /** - * Get the next job from the queue connection. - * - * @param \Illuminate\Contracts\Queue\Queue $connection - * @param string $queue - * @return \Illuminate\Contracts\Queue\Job|null - */ - protected function getNextJob($connection, $queue) - { - try { - foreach (explode(',', $queue) as $queue) { - if (! is_null($job = $connection->pop($queue))) { - return $job; - } - } - } catch (Exception $e) { - $this->exceptions->report($e); - - $this->stopWorkerIfLostConnection($e); - } catch (Throwable $e) { - $this->exceptions->report($e = new FatalThrowableError($e)); - - $this->stopWorkerIfLostConnection($e); - } - } - - /** - * Process the given job. - * - * @param \Illuminate\Contracts\Queue\Job $job - * @param string $connectionName - * @param \Illuminate\Queue\WorkerOptions $options - * @return void - */ - protected function runJob($job, $connectionName, WorkerOptions $options) - { - try { - return $this->process($connectionName, $job, $options); - } catch (Exception $e) { - $this->exceptions->report($e); - - $this->stopWorkerIfLostConnection($e); - } catch (Throwable $e) { - $this->exceptions->report($e = new FatalThrowableError($e)); - - $this->stopWorkerIfLostConnection($e); - } - } - - /** - * Stop the worker if we have lost connection to a database. - * - * @param \Throwable $e - * @return void - */ - protected function stopWorkerIfLostConnection($e) - { - if ($this->causedByLostConnection($e)) { - $this->shouldQuit = true; - } - } - - /** - * Process the given job from the queue. - * - * @param string $connectionName - * @param \Illuminate\Contracts\Queue\Job $job - * @param \Illuminate\Queue\WorkerOptions $options - * @return void - * - * @throws \Throwable - */ - public function process($connectionName, $job, WorkerOptions $options) - { - try { - // First we will raise the before job event and determine if the job has already ran - // over its maximum attempt limits, which could primarily happen when this job is - // continually timing out and not actually throwing any exceptions from itself. - $this->raiseBeforeJobEvent($connectionName, $job); - - $this->markJobAsFailedIfAlreadyExceedsMaxAttempts( - $connectionName, $job, (int) $options->maxTries - ); - - // Here we will fire off the job and let it process. We will catch any exceptions so - // they can be reported to the developers logs, etc. Once the job is finished the - // proper events will be fired to let any listeners know this job has finished. - $job->fire(); - - $this->raiseAfterJobEvent($connectionName, $job); - } catch (Exception $e) { - $this->handleJobException($connectionName, $job, $options, $e); - } catch (Throwable $e) { - $this->handleJobException( - $connectionName, $job, $options, new FatalThrowableError($e) - ); - } - } - - /** - * Handle an exception that occurred while the job was running. - * - * @param string $connectionName - * @param \Illuminate\Contracts\Queue\Job $job - * @param \Illuminate\Queue\WorkerOptions $options - * @param \Exception $e - * @return void - * - * @throws \Exception - */ - protected function handleJobException($connectionName, $job, WorkerOptions $options, $e) - { - try { - // First, we will go ahead and mark the job as failed if it will exceed the maximum - // attempts it is allowed to run the next time we process it. If so we will just - // go ahead and mark it as failed now so we do not have to release this again. - if (! $job->hasFailed()) { - $this->markJobAsFailedIfWillExceedMaxAttempts( - $connectionName, $job, (int) $options->maxTries, $e - ); - } - - $this->raiseExceptionOccurredJobEvent( - $connectionName, $job, $e - ); - } finally { - // If we catch an exception, we will attempt to release the job back onto the queue - // so it is not lost entirely. This'll let the job be retried at a later time by - // another listener (or this same one). We will re-throw this exception after. - if (! $job->isDeleted() && ! $job->isReleased() && ! $job->hasFailed()) { - $job->release($options->delay); - } - } - - throw $e; - } - - /** - * Mark the given job as failed if it has exceeded the maximum allowed attempts. - * - * This will likely be because the job previously exceeded a timeout. - * - * @param string $connectionName - * @param \Illuminate\Contracts\Queue\Job $job - * @param int $maxTries - * @return void - */ - protected function markJobAsFailedIfAlreadyExceedsMaxAttempts($connectionName, $job, $maxTries) - { - $maxTries = ! is_null($job->maxTries()) ? $job->maxTries() : $maxTries; - - $timeoutAt = $job->timeoutAt(); - - if ($timeoutAt && Carbon::now()->getTimestamp() <= $timeoutAt) { - return; - } - - if (! $timeoutAt && ($maxTries === 0 || $job->attempts() <= $maxTries)) { - return; - } - - $this->failJob($connectionName, $job, $e = new MaxAttemptsExceededException( - $job->resolveName().' has been attempted too many times or run too long. The job may have previously timed out.' - )); - - throw $e; - } - - /** - * Mark the given job as failed if it has exceeded the maximum allowed attempts. - * - * @param string $connectionName - * @param \Illuminate\Contracts\Queue\Job $job - * @param int $maxTries - * @param \Exception $e - * @return void - */ - protected function markJobAsFailedIfWillExceedMaxAttempts($connectionName, $job, $maxTries, $e) - { - $maxTries = ! is_null($job->maxTries()) ? $job->maxTries() : $maxTries; - - if ($job->timeoutAt() && $job->timeoutAt() <= Carbon::now()->getTimestamp()) { - $this->failJob($connectionName, $job, $e); - } - - if ($maxTries > 0 && $job->attempts() >= $maxTries) { - $this->failJob($connectionName, $job, $e); - } - } - - /** - * Mark the given job as failed and raise the relevant event. - * - * @param string $connectionName - * @param \Illuminate\Contracts\Queue\Job $job - * @param \Exception $e - * @return void - */ - protected function failJob($connectionName, $job, $e) - { - return FailingJob::handle($connectionName, $job, $e); - } - - /** - * Raise the before queue job event. - * - * @param string $connectionName - * @param \Illuminate\Contracts\Queue\Job $job - * @return void - */ - protected function raiseBeforeJobEvent($connectionName, $job) - { - $this->events->dispatch(new Events\JobProcessing( - $connectionName, $job - )); - } - - /** - * Raise the after queue job event. - * - * @param string $connectionName - * @param \Illuminate\Contracts\Queue\Job $job - * @return void - */ - protected function raiseAfterJobEvent($connectionName, $job) - { - $this->events->dispatch(new Events\JobProcessed( - $connectionName, $job - )); - } - - /** - * Raise the exception occurred queue job event. - * - * @param string $connectionName - * @param \Illuminate\Contracts\Queue\Job $job - * @param \Exception $e - * @return void - */ - protected function raiseExceptionOccurredJobEvent($connectionName, $job, $e) - { - $this->events->dispatch(new Events\JobExceptionOccurred( - $connectionName, $job, $e - )); - } - - /** - * Determine if the queue worker should restart. - * - * @param int|null $lastRestart - * @return bool - */ - protected function queueShouldRestart($lastRestart) - { - return $this->getTimestampOfLastQueueRestart() != $lastRestart; - } - - /** - * Get the last queue restart timestamp, or null. - * - * @return int|null - */ - protected function getTimestampOfLastQueueRestart() - { - if ($this->cache) { - return $this->cache->get('illuminate:queue:restart'); - } - } - - /** - * Enable async signals for the process. - * - * @return void - */ - protected function listenForSignals() - { - pcntl_async_signals(true); - - pcntl_signal(SIGTERM, function () { - $this->shouldQuit = true; - }); - - pcntl_signal(SIGUSR2, function () { - $this->paused = true; - }); - - pcntl_signal(SIGCONT, function () { - $this->paused = false; - }); - } - - /** - * Determine if "async" signals are supported. - * - * @return bool - */ - protected function supportsAsyncSignals() - { - return extension_loaded('pcntl'); - } - - /** - * Determine if the memory limit has been exceeded. - * - * @param int $memoryLimit - * @return bool - */ - public function memoryExceeded($memoryLimit) - { - return (memory_get_usage() / 1024 / 1024) >= $memoryLimit; - } - - /** - * Stop listening and bail out of the script. - * - * @param int $status - * @return void - */ - public function stop($status = 0) - { - $this->events->dispatch(new Events\WorkerStopping); - - exit($status); - } - - /** - * Kill the process. - * - * @param int $status - * @return void - */ - public function kill($status = 0) - { - $this->events->dispatch(new Events\WorkerStopping); - - if (extension_loaded('posix')) { - posix_kill(getmypid(), SIGKILL); - } - - exit($status); - } - - /** - * Sleep the script for a given number of seconds. - * - * @param int|float $seconds - * @return void - */ - public function sleep($seconds) - { - if ($seconds < 1) { - usleep($seconds * 1000000); - } else { - sleep($seconds); - } - } - - /** - * Set the cache repository implementation. - * - * @param \Illuminate\Contracts\Cache\Repository $cache - * @return void - */ - public function setCache(CacheContract $cache) - { - $this->cache = $cache; - } - - /** - * Get the queue manager instance. - * - * @return \Illuminate\Queue\QueueManager - */ - public function getManager() - { - return $this->manager; - } - - /** - * Set the queue manager instance. - * - * @param \Illuminate\Queue\QueueManager $manager - * @return void - */ - public function setManager(QueueManager $manager) - { - $this->manager = $manager; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Queue/WorkerOptions.php b/vendor/laravel/framework/src/Illuminate/Queue/WorkerOptions.php deleted file mode 100644 index 3549f441..00000000 --- a/vendor/laravel/framework/src/Illuminate/Queue/WorkerOptions.php +++ /dev/null @@ -1,69 +0,0 @@ -delay = $delay; - $this->sleep = $sleep; - $this->force = $force; - $this->memory = $memory; - $this->timeout = $timeout; - $this->maxTries = $maxTries; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Queue/composer.json b/vendor/laravel/framework/src/Illuminate/Queue/composer.json deleted file mode 100644 index 7a33abda..00000000 --- a/vendor/laravel/framework/src/Illuminate/Queue/composer.json +++ /dev/null @@ -1,48 +0,0 @@ -{ - "name": "illuminate/queue", - "description": "The Illuminate Queue package.", - "license": "MIT", - "homepage": "https://laravel.com", - "support": { - "issues": "https://github.com/laravel/framework/issues", - "source": "https://github.com/laravel/framework" - }, - "authors": [ - { - "name": "Taylor Otwell", - "email": "taylor@laravel.com" - } - ], - "require": { - "php": "^7.1.3", - "illuminate/console": "5.6.*", - "illuminate/container": "5.6.*", - "illuminate/contracts": "5.6.*", - "illuminate/database": "5.6.*", - "illuminate/filesystem": "5.6.*", - "illuminate/support": "5.6.*", - "symfony/debug": "~4.0", - "symfony/process": "~4.0" - }, - "autoload": { - "psr-4": { - "Illuminate\\Queue\\": "" - } - }, - "extra": { - "branch-alias": { - "dev-master": "5.6-dev" - } - }, - "suggest": { - "ext-pcntl": "Required to use all features of the queue worker.", - "ext-posix": "Required to use all features of the queue worker.", - "aws/aws-sdk-php": "Required to use the SQS queue driver (~3.0).", - "illuminate/redis": "Required to use the Redis queue driver (5.6.*).", - "pda/pheanstalk": "Required to use the Beanstalk queue driver (~3.0)." - }, - "config": { - "sort-packages": true - }, - "minimum-stability": "dev" -} diff --git a/vendor/laravel/framework/src/Illuminate/Redis/Connections/Connection.php b/vendor/laravel/framework/src/Illuminate/Redis/Connections/Connection.php deleted file mode 100644 index c5b524a0..00000000 --- a/vendor/laravel/framework/src/Illuminate/Redis/Connections/Connection.php +++ /dev/null @@ -1,110 +0,0 @@ -client; - } - - /** - * Subscribe to a set of given channels for messages. - * - * @param array|string $channels - * @param \Closure $callback - * @return void - */ - public function subscribe($channels, Closure $callback) - { - return $this->createSubscription($channels, $callback, __FUNCTION__); - } - - /** - * Subscribe to a set of given channels with wildcards. - * - * @param array|string $channels - * @param \Closure $callback - * @return void - */ - public function psubscribe($channels, Closure $callback) - { - return $this->createSubscription($channels, $callback, __FUNCTION__); - } - - /** - * Run a command against the Redis database. - * - * @param string $method - * @param array $parameters - * @return mixed - */ - public function command($method, array $parameters = []) - { - return $this->client->{$method}(...$parameters); - } - - /** - * Pass other method calls down to the underlying client. - * - * @param string $method - * @param array $parameters - * @return mixed - */ - public function __call($method, $parameters) - { - return $this->command($method, $parameters); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Redis/Connections/PhpRedisClusterConnection.php b/vendor/laravel/framework/src/Illuminate/Redis/Connections/PhpRedisClusterConnection.php deleted file mode 100644 index e246fe6a..00000000 --- a/vendor/laravel/framework/src/Illuminate/Redis/Connections/PhpRedisClusterConnection.php +++ /dev/null @@ -1,8 +0,0 @@ -client = $client; - } - - /** - * Returns the value of the given key. - * - * @param string $key - * @return string|null - */ - public function get($key) - { - $result = $this->client->get($key); - - return $result !== false ? $result : null; - } - - /** - * Get the values of all the given keys. - * - * @param array $keys - * @return array - */ - public function mget(array $keys) - { - return array_map(function ($value) { - return $value !== false ? $value : null; - }, $this->client->mget($keys)); - } - - /** - * Determine if the given keys exist. - * - * @param dynamic $keys - * @return int - */ - public function exists(...$keys) - { - $keys = collect($keys)->map(function ($key) { - return $this->applyPrefix($key); - })->all(); - - return $this->executeRaw(array_merge(['exists'], $keys)); - } - - /** - * Set the string value in argument as value of the key. - * - * @param string $key - * @param mixed $value - * @param string|null $expireResolution - * @param int|null $expireTTL - * @param string|null $flag - * @return bool - */ - public function set($key, $value, $expireResolution = null, $expireTTL = null, $flag = null) - { - return $this->command('set', [ - $key, - $value, - $expireResolution ? [$flag, $expireResolution => $expireTTL] : null, - ]); - } - - /** - * Set the given key if it doesn't exist. - * - * @param string $key - * @param string $value - * @return int - */ - public function setnx($key, $value) - { - return (int) $this->client->setnx($key, $value); - } - - /** - * Get the value of the given hash fields. - * - * @param string $key - * @param dynamic $dictionary - * @return int - */ - public function hmget($key, ...$dictionary) - { - if (count($dictionary) == 1) { - $dictionary = $dictionary[0]; - } - - return array_values($this->command('hmget', [$key, $dictionary])); - } - - /** - * Set the given hash fields to their respective values. - * - * @param string $key - * @param dynamic $dictionary - * @return int - */ - public function hmset($key, ...$dictionary) - { - if (count($dictionary) == 1) { - $dictionary = $dictionary[0]; - } else { - $input = collect($dictionary); - - $dictionary = $input->nth(2)->combine($input->nth(2, 1))->toArray(); - } - - return $this->command('hmset', [$key, $dictionary]); - } - - /** - * Set the given hash field if it doesn't exist. - * - * @param string $hash - * @param string $key - * @param string $value - * @return int - */ - public function hsetnx($hash, $key, $value) - { - return (int) $this->client->hSetNx($hash, $key, $value); - } - - /** - * Removes the first count occurrences of the value element from the list. - * - * @param string $key - * @param int $count - * @param $value $value - * @return int|false - */ - public function lrem($key, $count, $value) - { - return $this->command('lrem', [$key, $value, $count]); - } - - /** - * Removes and returns a random element from the set value at key. - * - * @param string $key - * @param int|null $count - * @return mixed|false - */ - public function spop($key, $count = null) - { - return $this->command('spop', [$key]); - } - - /** - * Add one or more members to a sorted set or update its score if it already exists. - * - * @param string $key - * @param dynamic $dictionary - * @return int - */ - public function zadd($key, ...$dictionary) - { - if (is_array(end($dictionary))) { - foreach (array_pop($dictionary) as $member => $score) { - $dictionary[] = $score; - $dictionary[] = $member; - } - } - - $key = $this->applyPrefix($key); - - return $this->executeRaw(array_merge(['zadd', $key], $dictionary)); - } - - /** - * Return elements with score between $min and $max. - * - * @param string $key - * @param mixed $min - * @param mixed $max - * @param array $options - * @return int - */ - public function zrangebyscore($key, $min, $max, $options = []) - { - if (isset($options['limit'])) { - $options['limit'] = [ - $options['limit']['offset'], - $options['limit']['count'], - ]; - } - - return $this->command('zRangeByScore', [$key, $min, $max, $options]); - } - - /** - * Return elements with score between $min and $max. - * - * @param string $key - * @param mixed $min - * @param mixed $max - * @param array $options - * @return int - */ - public function zrevrangebyscore($key, $min, $max, $options = []) - { - if (isset($options['limit'])) { - $options['limit'] = [ - $options['limit']['offset'], - $options['limit']['count'], - ]; - } - - return $this->command('zRevRangeByScore', [$key, $min, $max, $options]); - } - - /** - * Find the intersection between sets and store in a new set. - * - * @param string $output - * @param array $keys - * @param array $options - * @return int - */ - public function zinterstore($output, $keys, $options = []) - { - return $this->zInter($output, $keys, - $options['weights'] ?? null, - $options['aggregate'] ?? 'sum' - ); - } - - /** - * Find the union between sets and store in a new set. - * - * @param string $output - * @param array $keys - * @param array $options - * @return int - */ - public function zunionstore($output, $keys, $options = []) - { - return $this->zUnion($output, $keys, - $options['weights'] ?? null, - $options['aggregate'] ?? 'sum' - ); - } - - /** - * Execute commands in a pipeline. - * - * @param callable $callback - * @return \Redis|array - */ - public function pipeline(callable $callback = null) - { - $pipeline = $this->client()->pipeline(); - - return is_null($callback) - ? $pipeline - : tap($pipeline, $callback)->exec(); - } - - /** - * Execute commands in a transaction. - * - * @param callable $callback - * @return \Redis|array - */ - public function transaction(callable $callback = null) - { - $transaction = $this->client()->multi(); - - return is_null($callback) - ? $transaction - : tap($transaction, $callback)->exec(); - } - - /** - * Evaluate a LUA script serverside, from the SHA1 hash of the script instead of the script itself. - * - * @param string $script - * @param int $numkeys - * @param mixed $arguments - * @return mixed - */ - public function evalsha($script, $numkeys, ...$arguments) - { - return $this->command('evalsha', [ - $this->script('load', $script), $arguments, $numkeys, - ]); - } - - /** - * Evaluate a script and return its result. - * - * @param string $script - * @param int $numberOfKeys - * @param dynamic $arguments - * @return mixed - */ - public function eval($script, $numberOfKeys, ...$arguments) - { - return $this->client->eval($script, $arguments, $numberOfKeys); - } - - /** - * Subscribe to a set of given channels for messages. - * - * @param array|string $channels - * @param \Closure $callback - * @return void - */ - public function subscribe($channels, Closure $callback) - { - $this->client->subscribe((array) $channels, function ($redis, $channel, $message) use ($callback) { - $callback($message, $channel); - }); - } - - /** - * Subscribe to a set of given channels with wildcards. - * - * @param array|string $channels - * @param \Closure $callback - * @return void - */ - public function psubscribe($channels, Closure $callback) - { - $this->client->psubscribe((array) $channels, function ($redis, $pattern, $channel, $message) use ($callback) { - $callback($message, $channel); - }); - } - - /** - * Subscribe to a set of given channels for messages. - * - * @param array|string $channels - * @param \Closure $callback - * @param string $method - * @return void - */ - public function createSubscription($channels, Closure $callback, $method = 'subscribe') - { - // - } - - /** - * Execute a raw command. - * - * @param array $parameters - * @return mixed - */ - public function executeRaw(array $parameters) - { - return $this->command('rawCommand', $parameters); - } - - /** - * Disconnects from the Redis instance. - * - * @return void - */ - public function disconnect() - { - $this->client->close(); - } - - /** - * Apply prefix to the given key if necessary. - * - * @param string $key - * @return string - */ - private function applyPrefix($key) - { - $prefix = (string) $this->client->getOption(Redis::OPT_PREFIX); - - return $prefix.$key; - } - - /** - * Pass other method calls down to the underlying client. - * - * @param string $method - * @param array $parameters - * @return mixed - */ - public function __call($method, $parameters) - { - $method = strtolower($method); - - return parent::__call($method, $parameters); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Redis/Connections/PredisClusterConnection.php b/vendor/laravel/framework/src/Illuminate/Redis/Connections/PredisClusterConnection.php deleted file mode 100644 index 399be1ea..00000000 --- a/vendor/laravel/framework/src/Illuminate/Redis/Connections/PredisClusterConnection.php +++ /dev/null @@ -1,8 +0,0 @@ -client = $client; - } - - /** - * Subscribe to a set of given channels for messages. - * - * @param array|string $channels - * @param \Closure $callback - * @param string $method - * @return void - */ - public function createSubscription($channels, Closure $callback, $method = 'subscribe') - { - $loop = $this->pubSubLoop(); - - call_user_func_array([$loop, $method], (array) $channels); - - foreach ($loop as $message) { - if ($message->kind === 'message' || $message->kind === 'pmessage') { - call_user_func($callback, $message->payload, $message->channel); - } - } - - unset($loop); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Redis/Connectors/PhpRedisConnector.php b/vendor/laravel/framework/src/Illuminate/Redis/Connectors/PhpRedisConnector.php deleted file mode 100644 index 20d5792c..00000000 --- a/vendor/laravel/framework/src/Illuminate/Redis/Connectors/PhpRedisConnector.php +++ /dev/null @@ -1,129 +0,0 @@ -createClient(array_merge( - $config, $options, Arr::pull($config, 'options', []) - ))); - } - - /** - * Create a new clustered PhpRedis connection. - * - * @param array $config - * @param array $clusterOptions - * @param array $options - * @return \Illuminate\Redis\Connections\PhpRedisClusterConnection - */ - public function connectToCluster(array $config, array $clusterOptions, array $options) - { - $options = array_merge($options, $clusterOptions, Arr::pull($config, 'options', [])); - - return new PhpRedisClusterConnection($this->createRedisClusterInstance( - array_map([$this, 'buildClusterConnectionString'], $config), $options - )); - } - - /** - * Build a single cluster seed string from array. - * - * @param array $server - * @return string - */ - protected function buildClusterConnectionString(array $server) - { - return $server['host'].':'.$server['port'].'?'.http_build_query(Arr::only($server, [ - 'database', 'password', 'prefix', 'read_timeout', - ])); - } - - /** - * Create the Redis client instance. - * - * @param array $config - * @return \Redis - */ - protected function createClient(array $config) - { - return tap(new Redis, function ($client) use ($config) { - $this->establishConnection($client, $config); - - if (! empty($config['password'])) { - $client->auth($config['password']); - } - - if (! empty($config['database'])) { - $client->select($config['database']); - } - - if (! empty($config['prefix'])) { - $client->setOption(Redis::OPT_PREFIX, $config['prefix']); - } - - if (! empty($config['read_timeout'])) { - $client->setOption(Redis::OPT_READ_TIMEOUT, $config['read_timeout']); - } - }); - } - - /** - * Establish a connection with the Redis host. - * - * @param \Redis $client - * @param array $config - * @return void - */ - protected function establishConnection($client, array $config) - { - $persistent = $config['persistent'] ?? false; - - $parameters = [ - $config['host'], - $config['port'], - Arr::get($config, 'timeout', 0.0), - $persistent ? Arr::get($config, 'persistent_id', null) : null, - Arr::get($config, 'retry_interval', 0), - ]; - - if (version_compare(phpversion('redis'), '3.1.3', '>=')) { - $parameters[] = Arr::get($config, 'read_timeout', 0.0); - } - - $client->{($persistent ? 'pconnect' : 'connect')}(...$parameters); - } - - /** - * Create a new redis cluster instance. - * - * @param array $servers - * @param array $options - * @return \RedisCluster - */ - protected function createRedisClusterInstance(array $servers, array $options) - { - return new RedisCluster( - null, - array_values($servers), - $options['timeout'] ?? 0, - $options['read_timeout'] ?? 0, - isset($options['persistent']) && $options['persistent'] - ); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Redis/Connectors/PredisConnector.php b/vendor/laravel/framework/src/Illuminate/Redis/Connectors/PredisConnector.php deleted file mode 100644 index 8b1a46b1..00000000 --- a/vendor/laravel/framework/src/Illuminate/Redis/Connectors/PredisConnector.php +++ /dev/null @@ -1,44 +0,0 @@ - 10.0], $options, Arr::pull($config, 'options', []) - ); - - return new PredisConnection(new Client($config, $formattedOptions)); - } - - /** - * Create a new clustered Predis connection. - * - * @param array $config - * @param array $clusterOptions - * @param array $options - * @return \Illuminate\Redis\Connections\PredisClusterConnection - */ - public function connectToCluster(array $config, array $clusterOptions, array $options) - { - $clusterSpecificOptions = Arr::pull($config, 'options', []); - - return new PredisClusterConnection(new Client(array_values($config), array_merge( - $options, $clusterOptions, $clusterSpecificOptions - ))); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Redis/Limiters/ConcurrencyLimiter.php b/vendor/laravel/framework/src/Illuminate/Redis/Limiters/ConcurrencyLimiter.php deleted file mode 100644 index c6db2e20..00000000 --- a/vendor/laravel/framework/src/Illuminate/Redis/Limiters/ConcurrencyLimiter.php +++ /dev/null @@ -1,130 +0,0 @@ -name = $name; - $this->redis = $redis; - $this->maxLocks = $maxLocks; - $this->releaseAfter = $releaseAfter; - } - - /** - * Attempt to acquire the lock for the given number of seconds. - * - * @param int $timeout - * @param callable|null $callback - * @return bool - * @throws \Illuminate\Contracts\Redis\LimiterTimeoutException - */ - public function block($timeout, $callback = null) - { - $starting = time(); - - while (! $slot = $this->acquire()) { - if (time() - $timeout >= $starting) { - throw new LimiterTimeoutException; - } - - usleep(250 * 1000); - } - - if (is_callable($callback)) { - return tap($callback(), function () use ($slot) { - $this->release($slot); - }); - } - - return true; - } - - /** - * Attempt to acquire the lock. - * - * @return mixed - */ - protected function acquire() - { - $slots = array_map(function ($i) { - return $this->name.$i; - }, range(1, $this->maxLocks)); - - return $this->redis->eval($this->luaScript(), count($slots), - ...array_merge($slots, [$this->name, $this->releaseAfter]) - ); - } - - /** - * Get the Lua script for acquiring a lock. - * - * KEYS - The keys that represent available slots - * ARGV[1] - The limiter name - * ARGV[2] - The number of seconds the slot should be reserved - * - * @return string - */ - protected function luaScript() - { - return <<<'LUA' -for index, value in pairs(redis.call('mget', unpack(KEYS))) do - if not value then - redis.call('set', ARGV[1]..index, "1", "EX", ARGV[2]) - return ARGV[1]..index - end -end -LUA; - } - - /** - * Release the lock. - * - * @param string $key - * @return void - */ - protected function release($key) - { - $this->redis->del($key); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Redis/Limiters/ConcurrencyLimiterBuilder.php b/vendor/laravel/framework/src/Illuminate/Redis/Limiters/ConcurrencyLimiterBuilder.php deleted file mode 100644 index 10a614f7..00000000 --- a/vendor/laravel/framework/src/Illuminate/Redis/Limiters/ConcurrencyLimiterBuilder.php +++ /dev/null @@ -1,122 +0,0 @@ -name = $name; - $this->connection = $connection; - } - - /** - * Set the maximum number of locks that can obtained per time window. - * - * @param int $maxLocks - * @return $this - */ - public function limit($maxLocks) - { - $this->maxLocks = $maxLocks; - - return $this; - } - - /** - * Set the number of seconds until the lock will be released. - * - * @param int $releaseAfter - * @return $this - */ - public function releaseAfter($releaseAfter) - { - $this->releaseAfter = $this->secondsUntil($releaseAfter); - - return $this; - } - - /** - * Set the amount of time to block until a lock is available. - * - * @param int $timeout - * @return $this - */ - public function block($timeout) - { - $this->timeout = $timeout; - - return $this; - } - - /** - * Execute the given callback if a lock is obtained, otherwise call the failure callback. - * - * @param callable $callback - * @param callable|null $failure - * @return mixed - * - * @throws \Illuminate\Contracts\Redis\LimiterTimeoutException - */ - public function then(callable $callback, callable $failure = null) - { - try { - return (new ConcurrencyLimiter( - $this->connection, $this->name, $this->maxLocks, $this->releaseAfter - ))->block($this->timeout, $callback); - } catch (LimiterTimeoutException $e) { - if ($failure) { - return $failure($e); - } - - throw $e; - } - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Redis/Limiters/DurationLimiter.php b/vendor/laravel/framework/src/Illuminate/Redis/Limiters/DurationLimiter.php deleted file mode 100644 index 0cd0ab26..00000000 --- a/vendor/laravel/framework/src/Illuminate/Redis/Limiters/DurationLimiter.php +++ /dev/null @@ -1,147 +0,0 @@ -name = $name; - $this->decay = $decay; - $this->redis = $redis; - $this->maxLocks = $maxLocks; - } - - /** - * Attempt to acquire the lock for the given number of seconds. - * - * @param int $timeout - * @param callable|null $callback - * @return bool - * @throws \Illuminate\Contracts\Redis\LimiterTimeoutException - */ - public function block($timeout, $callback = null) - { - $starting = time(); - - while (! $this->acquire()) { - if (time() - $timeout >= $starting) { - throw new LimiterTimeoutException; - } - - usleep(750 * 1000); - } - - if (is_callable($callback)) { - $callback(); - } - - return true; - } - - /** - * Attempt to acquire the lock. - * - * @return bool - */ - public function acquire() - { - $results = $this->redis->eval($this->luaScript(), 1, - $this->name, microtime(true), time(), $this->decay, $this->maxLocks - ); - - $this->decaysAt = $results[1]; - - $this->remaining = max(0, $results[2]); - - return (bool) $results[0]; - } - - /** - * Get the Lua script for acquiring a lock. - * - * KEYS[1] - The limiter name - * ARGV[1] - Current time in microseconds - * ARGV[2] - Current time in seconds - * ARGV[3] - Duration of the bucket - * ARGV[4] - Allowed number of tasks - * - * @return string - */ - protected function luaScript() - { - return <<<'LUA' -local function reset() - redis.call('HMSET', KEYS[1], 'start', ARGV[2], 'end', ARGV[2] + ARGV[3], 'count', 1) - return redis.call('EXPIRE', KEYS[1], ARGV[3] * 2) -end - -if redis.call('EXISTS', KEYS[1]) == 0 then - return {reset(), ARGV[2] + ARGV[3], ARGV[4] - 1} -end - -if ARGV[1] >= redis.call('HGET', KEYS[1], 'start') and ARGV[1] <= redis.call('HGET', KEYS[1], 'end') then - return { - tonumber(redis.call('HINCRBY', KEYS[1], 'count', 1)) <= tonumber(ARGV[4]), - redis.call('HGET', KEYS[1], 'end'), - ARGV[4] - redis.call('HGET', KEYS[1], 'count') - } -end - -return {reset(), ARGV[2] + ARGV[3], ARGV[4] - 1} -LUA; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Redis/Limiters/DurationLimiterBuilder.php b/vendor/laravel/framework/src/Illuminate/Redis/Limiters/DurationLimiterBuilder.php deleted file mode 100644 index 096e50c7..00000000 --- a/vendor/laravel/framework/src/Illuminate/Redis/Limiters/DurationLimiterBuilder.php +++ /dev/null @@ -1,122 +0,0 @@ -name = $name; - $this->connection = $connection; - } - - /** - * Set the maximum number of locks that can obtained per time window. - * - * @param int $maxLocks - * @return $this - */ - public function allow($maxLocks) - { - $this->maxLocks = $maxLocks; - - return $this; - } - - /** - * Set the amount of time the lock window is maintained. - * - * @param int $decay - * @return $this - */ - public function every($decay) - { - $this->decay = $this->secondsUntil($decay); - - return $this; - } - - /** - * Set the amount of time to block until a lock is available. - * - * @param int $timeout - * @return $this - */ - public function block($timeout) - { - $this->timeout = $timeout; - - return $this; - } - - /** - * Execute the given callback if a lock is obtained, otherwise call the failure callback. - * - * @param callable $callback - * @param callable|null $failure - * @return mixed - * - * @throws \Illuminate\Contracts\Redis\LimiterTimeoutException - */ - public function then(callable $callback, callable $failure = null) - { - try { - return (new DurationLimiter( - $this->connection, $this->name, $this->maxLocks, $this->decay - ))->block($this->timeout, $callback); - } catch (LimiterTimeoutException $e) { - if ($failure) { - return $failure($e); - } - - throw $e; - } - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Redis/RedisManager.php b/vendor/laravel/framework/src/Illuminate/Redis/RedisManager.php deleted file mode 100644 index 01728a84..00000000 --- a/vendor/laravel/framework/src/Illuminate/Redis/RedisManager.php +++ /dev/null @@ -1,140 +0,0 @@ -driver = $driver; - $this->config = $config; - } - - /** - * Get a Redis connection by name. - * - * @param string|null $name - * @return \Illuminate\Redis\Connections\Connection - */ - public function connection($name = null) - { - $name = $name ?: 'default'; - - if (isset($this->connections[$name])) { - return $this->connections[$name]; - } - - return $this->connections[$name] = $this->resolve($name); - } - - /** - * Resolve the given connection by name. - * - * @param string|null $name - * @return \Illuminate\Redis\Connections\Connection - * - * @throws \InvalidArgumentException - */ - public function resolve($name = null) - { - $name = $name ?: 'default'; - - $options = $this->config['options'] ?? []; - - if (isset($this->config[$name])) { - return $this->connector()->connect($this->config[$name], $options); - } - - if (isset($this->config['clusters'][$name])) { - return $this->resolveCluster($name); - } - - throw new InvalidArgumentException("Redis connection [{$name}] not configured."); - } - - /** - * Resolve the given cluster connection by name. - * - * @param string $name - * @return \Illuminate\Redis\Connections\Connection - */ - protected function resolveCluster($name) - { - $clusterOptions = $this->config['clusters']['options'] ?? []; - - return $this->connector()->connectToCluster( - $this->config['clusters'][$name], $clusterOptions, $this->config['options'] ?? [] - ); - } - - /** - * Get the connector instance for the current driver. - * - * @return \Illuminate\Redis\Connectors\PhpRedisConnector|\Illuminate\Redis\Connectors\PredisConnector - */ - protected function connector() - { - switch ($this->driver) { - case 'predis': - return new Connectors\PredisConnector; - case 'phpredis': - return new Connectors\PhpRedisConnector; - } - } - - /** - * Return all of the created connections. - * - * @return array - */ - public function connections() - { - return $this->connections; - } - - /** - * Pass methods onto the default Redis connection. - * - * @param string $method - * @param array $parameters - * @return mixed - */ - public function __call($method, $parameters) - { - return $this->connection()->{$method}(...$parameters); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Redis/RedisServiceProvider.php b/vendor/laravel/framework/src/Illuminate/Redis/RedisServiceProvider.php deleted file mode 100755 index 20d78e60..00000000 --- a/vendor/laravel/framework/src/Illuminate/Redis/RedisServiceProvider.php +++ /dev/null @@ -1,44 +0,0 @@ -app->singleton('redis', function ($app) { - $config = $app->make('config')->get('database.redis'); - - return new RedisManager(Arr::pull($config, 'client', 'predis'), $config); - }); - - $this->app->bind('redis.connection', function ($app) { - return $app['redis']->connection(); - }); - } - - /** - * Get the services provided by the provider. - * - * @return array - */ - public function provides() - { - return ['redis', 'redis.connection']; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Redis/composer.json b/vendor/laravel/framework/src/Illuminate/Redis/composer.json deleted file mode 100755 index ee8bae7d..00000000 --- a/vendor/laravel/framework/src/Illuminate/Redis/composer.json +++ /dev/null @@ -1,36 +0,0 @@ -{ - "name": "illuminate/redis", - "description": "The Illuminate Redis package.", - "license": "MIT", - "homepage": "https://laravel.com", - "support": { - "issues": "https://github.com/laravel/framework/issues", - "source": "https://github.com/laravel/framework" - }, - "authors": [ - { - "name": "Taylor Otwell", - "email": "taylor@laravel.com" - } - ], - "require": { - "php": "^7.1.3", - "illuminate/contracts": "5.6.*", - "illuminate/support": "5.6.*", - "predis/predis": "~1.0" - }, - "autoload": { - "psr-4": { - "Illuminate\\Redis\\": "" - } - }, - "extra": { - "branch-alias": { - "dev-master": "5.6-dev" - } - }, - "config": { - "sort-packages": true - }, - "minimum-stability": "dev" -} diff --git a/vendor/laravel/framework/src/Illuminate/Routing/Console/ControllerMakeCommand.php b/vendor/laravel/framework/src/Illuminate/Routing/Console/ControllerMakeCommand.php deleted file mode 100755 index 664bc15f..00000000 --- a/vendor/laravel/framework/src/Illuminate/Routing/Console/ControllerMakeCommand.php +++ /dev/null @@ -1,184 +0,0 @@ -option('parent')) { - $stub = '/stubs/controller.nested.stub'; - } elseif ($this->option('model')) { - $stub = '/stubs/controller.model.stub'; - } elseif ($this->option('resource')) { - $stub = '/stubs/controller.stub'; - } - - if ($this->option('api') && is_null($stub)) { - $stub = '/stubs/controller.api.stub'; - } elseif ($this->option('api') && ! is_null($stub)) { - $stub = str_replace('.stub', '.api.stub', $stub); - } - - $stub = $stub ?? '/stubs/controller.plain.stub'; - - return __DIR__.$stub; - } - - /** - * Get the default namespace for the class. - * - * @param string $rootNamespace - * @return string - */ - protected function getDefaultNamespace($rootNamespace) - { - return $rootNamespace.'\Http\Controllers'; - } - - /** - * Build the class with the given name. - * - * Remove the base controller import if we are already in base namespace. - * - * @param string $name - * @return string - */ - protected function buildClass($name) - { - $controllerNamespace = $this->getNamespace($name); - - $replace = []; - - if ($this->option('parent')) { - $replace = $this->buildParentReplacements(); - } - - if ($this->option('model')) { - $replace = $this->buildModelReplacements($replace); - } - - $replace["use {$controllerNamespace}\Controller;\n"] = ''; - - return str_replace( - array_keys($replace), array_values($replace), parent::buildClass($name) - ); - } - - /** - * Build the replacements for a parent controller. - * - * @return array - */ - protected function buildParentReplacements() - { - $parentModelClass = $this->parseModel($this->option('parent')); - - if (! class_exists($parentModelClass)) { - if ($this->confirm("A {$parentModelClass} model does not exist. Do you want to generate it?", true)) { - $this->call('make:model', ['name' => $parentModelClass]); - } - } - - return [ - 'ParentDummyFullModelClass' => $parentModelClass, - 'ParentDummyModelClass' => class_basename($parentModelClass), - 'ParentDummyModelVariable' => lcfirst(class_basename($parentModelClass)), - ]; - } - - /** - * Build the model replacement values. - * - * @param array $replace - * @return array - */ - protected function buildModelReplacements(array $replace) - { - $modelClass = $this->parseModel($this->option('model')); - - if (! class_exists($modelClass)) { - if ($this->confirm("A {$modelClass} model does not exist. Do you want to generate it?", true)) { - $this->call('make:model', ['name' => $modelClass]); - } - } - - return array_merge($replace, [ - 'DummyFullModelClass' => $modelClass, - 'DummyModelClass' => class_basename($modelClass), - 'DummyModelVariable' => lcfirst(class_basename($modelClass)), - ]); - } - - /** - * Get the fully-qualified model class name. - * - * @param string $model - * @return string - */ - protected function parseModel($model) - { - if (preg_match('([^A-Za-z0-9_/\\\\])', $model)) { - throw new InvalidArgumentException('Model name contains invalid characters.'); - } - - $model = trim(str_replace('/', '\\', $model), '\\'); - - if (! Str::startsWith($model, $rootNamespace = $this->laravel->getNamespace())) { - $model = $rootNamespace.$model; - } - - return $model; - } - - /** - * Get the console command options. - * - * @return array - */ - protected function getOptions() - { - return [ - ['model', 'm', InputOption::VALUE_OPTIONAL, 'Generate a resource controller for the given model.'], - - ['resource', 'r', InputOption::VALUE_NONE, 'Generate a resource controller class.'], - - ['parent', 'p', InputOption::VALUE_OPTIONAL, 'Generate a nested resource controller class.'], - - ['api', null, InputOption::VALUE_NONE, 'Exclude the create and edit methods from the controller.'], - ]; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Routing/Console/MiddlewareMakeCommand.php b/vendor/laravel/framework/src/Illuminate/Routing/Console/MiddlewareMakeCommand.php deleted file mode 100644 index e41813d3..00000000 --- a/vendor/laravel/framework/src/Illuminate/Routing/Console/MiddlewareMakeCommand.php +++ /dev/null @@ -1,50 +0,0 @@ -middleware[] = [ - 'middleware' => $m, - 'options' => &$options, - ]; - } - - return new ControllerMiddlewareOptions($options); - } - - /** - * Get the middleware assigned to the controller. - * - * @return array - */ - public function getMiddleware() - { - return $this->middleware; - } - - /** - * Execute an action on the controller. - * - * @param string $method - * @param array $parameters - * @return \Symfony\Component\HttpFoundation\Response - */ - public function callAction($method, $parameters) - { - return call_user_func_array([$this, $method], $parameters); - } - - /** - * Handle calls to missing methods on the controller. - * - * @param string $method - * @param array $parameters - * @return mixed - * - * @throws \BadMethodCallException - */ - public function __call($method, $parameters) - { - throw new BadMethodCallException(sprintf( - 'Method %s::%s does not exist.', static::class, $method - )); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php b/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php deleted file mode 100644 index 673a333f..00000000 --- a/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php +++ /dev/null @@ -1,81 +0,0 @@ -container = $container; - } - - /** - * Dispatch a request to a given controller and method. - * - * @param \Illuminate\Routing\Route $route - * @param mixed $controller - * @param string $method - * @return mixed - */ - public function dispatch(Route $route, $controller, $method) - { - $parameters = $this->resolveClassMethodDependencies( - $route->parametersWithoutNulls(), $controller, $method - ); - - if (method_exists($controller, 'callAction')) { - return $controller->callAction($method, $parameters); - } - - return $controller->{$method}(...array_values($parameters)); - } - - /** - * Get the middleware for the controller instance. - * - * @param \Illuminate\Routing\Controller $controller - * @param string $method - * @return array - */ - public function getMiddleware($controller, $method) - { - if (! method_exists($controller, 'getMiddleware')) { - return []; - } - - return collect($controller->getMiddleware())->reject(function ($data) use ($method) { - return static::methodExcludedByOptions($method, $data['options']); - })->pluck('middleware')->all(); - } - - /** - * Determine if the given options exclude a particular method. - * - * @param string $method - * @param array $options - * @return bool - */ - protected static function methodExcludedByOptions($method, array $options) - { - return (isset($options['only']) && ! in_array($method, (array) $options['only'])) || - (! empty($options['except']) && in_array($method, (array) $options['except'])); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Routing/ControllerMiddlewareOptions.php b/vendor/laravel/framework/src/Illuminate/Routing/ControllerMiddlewareOptions.php deleted file mode 100644 index 13ef1898..00000000 --- a/vendor/laravel/framework/src/Illuminate/Routing/ControllerMiddlewareOptions.php +++ /dev/null @@ -1,50 +0,0 @@ -options = &$options; - } - - /** - * Set the controller methods the middleware should apply to. - * - * @param array|string|dynamic $methods - * @return $this - */ - public function only($methods) - { - $this->options['only'] = is_array($methods) ? $methods : func_get_args(); - - return $this; - } - - /** - * Set the controller methods the middleware should exclude. - * - * @param array|string|dynamic $methods - * @return $this - */ - public function except($methods) - { - $this->options['except'] = is_array($methods) ? $methods : func_get_args(); - - return $this; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Routing/Events/RouteMatched.php b/vendor/laravel/framework/src/Illuminate/Routing/Events/RouteMatched.php deleted file mode 100644 index c8486071..00000000 --- a/vendor/laravel/framework/src/Illuminate/Routing/Events/RouteMatched.php +++ /dev/null @@ -1,33 +0,0 @@ -route = $route; - $this->request = $request; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Routing/Exceptions/InvalidSignatureException.php b/vendor/laravel/framework/src/Illuminate/Routing/Exceptions/InvalidSignatureException.php deleted file mode 100644 index 06a35c5e..00000000 --- a/vendor/laravel/framework/src/Illuminate/Routing/Exceptions/InvalidSignatureException.php +++ /dev/null @@ -1,18 +0,0 @@ -getName()}] [URI: {$route->uri()}]."); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Routing/ImplicitRouteBinding.php b/vendor/laravel/framework/src/Illuminate/Routing/ImplicitRouteBinding.php deleted file mode 100644 index 1f52fc16..00000000 --- a/vendor/laravel/framework/src/Illuminate/Routing/ImplicitRouteBinding.php +++ /dev/null @@ -1,60 +0,0 @@ -parameters(); - - foreach ($route->signatureParameters(UrlRoutable::class) as $parameter) { - if (! $parameterName = static::getParameterName($parameter->name, $parameters)) { - continue; - } - - $parameterValue = $parameters[$parameterName]; - - if ($parameterValue instanceof UrlRoutable) { - continue; - } - - $instance = $container->make($parameter->getClass()->name); - - if (! $model = $instance->resolveRouteBinding($parameterValue)) { - throw (new ModelNotFoundException)->setModel(get_class($instance)); - } - - $route->setParameter($parameterName, $model); - } - } - - /** - * Return the parameter name if it exists in the given parameters. - * - * @param string $name - * @param array $parameters - * @return string|null - */ - protected static function getParameterName($name, $parameters) - { - if (array_key_exists($name, $parameters)) { - return $name; - } - - if (array_key_exists($snakedName = Str::snake($name), $parameters)) { - return $snakedName; - } - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Routing/Matching/HostValidator.php b/vendor/laravel/framework/src/Illuminate/Routing/Matching/HostValidator.php deleted file mode 100644 index 76f9d878..00000000 --- a/vendor/laravel/framework/src/Illuminate/Routing/Matching/HostValidator.php +++ /dev/null @@ -1,25 +0,0 @@ -getCompiled()->getHostRegex())) { - return true; - } - - return preg_match($route->getCompiled()->getHostRegex(), $request->getHost()); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Routing/Matching/MethodValidator.php b/vendor/laravel/framework/src/Illuminate/Routing/Matching/MethodValidator.php deleted file mode 100644 index f9cf155d..00000000 --- a/vendor/laravel/framework/src/Illuminate/Routing/Matching/MethodValidator.php +++ /dev/null @@ -1,21 +0,0 @@ -getMethod(), $route->methods()); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Routing/Matching/SchemeValidator.php b/vendor/laravel/framework/src/Illuminate/Routing/Matching/SchemeValidator.php deleted file mode 100644 index fd5d5af8..00000000 --- a/vendor/laravel/framework/src/Illuminate/Routing/Matching/SchemeValidator.php +++ /dev/null @@ -1,27 +0,0 @@ -httpOnly()) { - return ! $request->secure(); - } elseif ($route->secure()) { - return $request->secure(); - } - - return true; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Routing/Matching/UriValidator.php b/vendor/laravel/framework/src/Illuminate/Routing/Matching/UriValidator.php deleted file mode 100644 index 6a54d129..00000000 --- a/vendor/laravel/framework/src/Illuminate/Routing/Matching/UriValidator.php +++ /dev/null @@ -1,23 +0,0 @@ -path() == '/' ? '/' : '/'.$request->path(); - - return preg_match($route->getCompiled()->getRegex(), rawurldecode($path)); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Routing/Matching/ValidatorInterface.php b/vendor/laravel/framework/src/Illuminate/Routing/Matching/ValidatorInterface.php deleted file mode 100644 index 0f178f13..00000000 --- a/vendor/laravel/framework/src/Illuminate/Routing/Matching/ValidatorInterface.php +++ /dev/null @@ -1,18 +0,0 @@ -router = $router; - } - - /** - * Handle an incoming request. - * - * @param \Illuminate\Http\Request $request - * @param \Closure $next - * @return mixed - */ - public function handle($request, Closure $next) - { - $this->router->substituteBindings($route = $request->route()); - - $this->router->substituteImplicitBindings($route); - - return $next($request); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequests.php b/vendor/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequests.php deleted file mode 100644 index c49f24c6..00000000 --- a/vendor/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequests.php +++ /dev/null @@ -1,195 +0,0 @@ -limiter = $limiter; - } - - /** - * Handle an incoming request. - * - * @param \Illuminate\Http\Request $request - * @param \Closure $next - * @param int|string $maxAttempts - * @param float|int $decayMinutes - * @return mixed - * @throws \Illuminate\Http\Exceptions\ThrottleRequestsException - */ - public function handle($request, Closure $next, $maxAttempts = 60, $decayMinutes = 1) - { - $key = $this->resolveRequestSignature($request); - - $maxAttempts = $this->resolveMaxAttempts($request, $maxAttempts); - - if ($this->limiter->tooManyAttempts($key, $maxAttempts)) { - throw $this->buildException($key, $maxAttempts); - } - - $this->limiter->hit($key, $decayMinutes); - - $response = $next($request); - - return $this->addHeaders( - $response, $maxAttempts, - $this->calculateRemainingAttempts($key, $maxAttempts) - ); - } - - /** - * Resolve the number of attempts if the user is authenticated or not. - * - * @param \Illuminate\Http\Request $request - * @param int|string $maxAttempts - * @return int - */ - protected function resolveMaxAttempts($request, $maxAttempts) - { - if (Str::contains($maxAttempts, '|')) { - $maxAttempts = explode('|', $maxAttempts, 2)[$request->user() ? 1 : 0]; - } - - if (! is_numeric($maxAttempts) && $request->user()) { - $maxAttempts = $request->user()->{$maxAttempts}; - } - - return (int) $maxAttempts; - } - - /** - * Resolve request signature. - * - * @param \Illuminate\Http\Request $request - * @return string - * @throws \RuntimeException - */ - protected function resolveRequestSignature($request) - { - if ($user = $request->user()) { - return sha1($user->getAuthIdentifier()); - } - - if ($route = $request->route()) { - return sha1($route->getDomain().'|'.$request->ip()); - } - - throw new RuntimeException('Unable to generate the request signature. Route unavailable.'); - } - - /** - * Create a 'too many attempts' exception. - * - * @param string $key - * @param int $maxAttempts - * @return \Illuminate\Http\Exceptions\ThrottleRequestsException - */ - protected function buildException($key, $maxAttempts) - { - $retryAfter = $this->getTimeUntilNextRetry($key); - - $headers = $this->getHeaders( - $maxAttempts, - $this->calculateRemainingAttempts($key, $maxAttempts, $retryAfter), - $retryAfter - ); - - return new ThrottleRequestsException( - 'Too Many Attempts.', null, $headers - ); - } - - /** - * Get the number of seconds until the next retry. - * - * @param string $key - * @return int - */ - protected function getTimeUntilNextRetry($key) - { - return $this->limiter->availableIn($key); - } - - /** - * Add the limit header information to the given response. - * - * @param \Symfony\Component\HttpFoundation\Response $response - * @param int $maxAttempts - * @param int $remainingAttempts - * @param int|null $retryAfter - * @return \Symfony\Component\HttpFoundation\Response - */ - protected function addHeaders(Response $response, $maxAttempts, $remainingAttempts, $retryAfter = null) - { - $response->headers->add( - $this->getHeaders($maxAttempts, $remainingAttempts, $retryAfter) - ); - - return $response; - } - - /** - * Get the limit headers information. - * - * @param int $maxAttempts - * @param int $remainingAttempts - * @param int|null $retryAfter - * @return array - */ - protected function getHeaders($maxAttempts, $remainingAttempts, $retryAfter = null) - { - $headers = [ - 'X-RateLimit-Limit' => $maxAttempts, - 'X-RateLimit-Remaining' => $remainingAttempts, - ]; - - if (! is_null($retryAfter)) { - $headers['Retry-After'] = $retryAfter; - $headers['X-RateLimit-Reset'] = $this->availableAt($retryAfter); - } - - return $headers; - } - - /** - * Calculate the number of remaining attempts. - * - * @param string $key - * @param int $maxAttempts - * @param int|null $retryAfter - * @return int - */ - protected function calculateRemainingAttempts($key, $maxAttempts, $retryAfter = null) - { - if (is_null($retryAfter)) { - return $this->limiter->retriesLeft($key, $maxAttempts); - } - - return 0; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequestsWithRedis.php b/vendor/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequestsWithRedis.php deleted file mode 100644 index c6f3ff60..00000000 --- a/vendor/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequestsWithRedis.php +++ /dev/null @@ -1,119 +0,0 @@ -redis = $redis; - } - - /** - * Handle an incoming request. - * - * @param \Illuminate\Http\Request $request - * @param \Closure $next - * @param int|string $maxAttempts - * @param float|int $decayMinutes - * @return mixed - * @throws \Symfony\Component\HttpKernel\Exception\HttpException - */ - public function handle($request, Closure $next, $maxAttempts = 60, $decayMinutes = 1) - { - $key = $this->resolveRequestSignature($request); - - $maxAttempts = $this->resolveMaxAttempts($request, $maxAttempts); - - if ($this->tooManyAttempts($key, $maxAttempts, $decayMinutes)) { - throw $this->buildException($key, $maxAttempts); - } - - $response = $next($request); - - return $this->addHeaders( - $response, $maxAttempts, - $this->calculateRemainingAttempts($key, $maxAttempts) - ); - } - - /** - * Determine if the given key has been "accessed" too many times. - * - * @param string $key - * @param int $maxAttempts - * @param int $decayMinutes - * @return mixed - */ - protected function tooManyAttempts($key, $maxAttempts, $decayMinutes) - { - $limiter = new DurationLimiter( - $this->redis, $key, $maxAttempts, $decayMinutes * 60 - ); - - return tap(! $limiter->acquire(), function () use ($limiter) { - list($this->decaysAt, $this->remaining) = [ - $limiter->decaysAt, $limiter->remaining, - ]; - }); - } - - /** - * Calculate the number of remaining attempts. - * - * @param string $key - * @param int $maxAttempts - * @param int|null $retryAfter - * @return int - */ - protected function calculateRemainingAttempts($key, $maxAttempts, $retryAfter = null) - { - if (is_null($retryAfter)) { - return $this->remaining; - } - - return 0; - } - - /** - * Get the number of seconds until the lock is released. - * - * @param string $key - * @return int - */ - protected function getTimeUntilNextRetry($key) - { - return $this->decaysAt - $this->currentTime(); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Routing/Middleware/ValidateSignature.php b/vendor/laravel/framework/src/Illuminate/Routing/Middleware/ValidateSignature.php deleted file mode 100644 index 85de9a24..00000000 --- a/vendor/laravel/framework/src/Illuminate/Routing/Middleware/ValidateSignature.php +++ /dev/null @@ -1,27 +0,0 @@ -hasValidSignature()) { - return $next($request); - } - - throw new InvalidSignatureException; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Routing/MiddlewareNameResolver.php b/vendor/laravel/framework/src/Illuminate/Routing/MiddlewareNameResolver.php deleted file mode 100644 index ad67b46c..00000000 --- a/vendor/laravel/framework/src/Illuminate/Routing/MiddlewareNameResolver.php +++ /dev/null @@ -1,85 +0,0 @@ -name = $name; - $this->options = $options; - $this->registrar = $registrar; - $this->controller = $controller; - } - - /** - * Set the methods the controller should apply to. - * - * @param array|string|dynamic $methods - * @return \Illuminate\Routing\PendingResourceRegistration - */ - public function only($methods) - { - $this->options['only'] = is_array($methods) ? $methods : func_get_args(); - - return $this; - } - - /** - * Set the methods the controller should exclude. - * - * @param array|string|dynamic $methods - * @return \Illuminate\Routing\PendingResourceRegistration - */ - public function except($methods) - { - $this->options['except'] = is_array($methods) ? $methods : func_get_args(); - - return $this; - } - - /** - * Set the route names for controller actions. - * - * @param array|string $names - * @return \Illuminate\Routing\PendingResourceRegistration - */ - public function names($names) - { - $this->options['names'] = $names; - - return $this; - } - - /** - * Set the route name for a controller action. - * - * @param string $method - * @param string $name - * @return \Illuminate\Routing\PendingResourceRegistration - */ - public function name($method, $name) - { - $this->options['names'][$method] = $name; - - return $this; - } - - /** - * Override the route parameter names. - * - * @param array|string $parameters - * @return \Illuminate\Routing\PendingResourceRegistration - */ - public function parameters($parameters) - { - $this->options['parameters'] = $parameters; - - return $this; - } - - /** - * Override a route parameter's name. - * - * @param string $previous - * @param string $new - * @return \Illuminate\Routing\PendingResourceRegistration - */ - public function parameter($previous, $new) - { - $this->options['parameters'][$previous] = $new; - - return $this; - } - - /** - * Set a middleware to the resource. - * - * @param mixed $middleware - * @return \Illuminate\Routing\PendingResourceRegistration - */ - public function middleware($middleware) - { - $this->options['middleware'] = $middleware; - - return $this; - } - - /** - * Register the resource route. - * - * @return \Illuminate\Routing\RouteCollection - */ - public function register() - { - $this->registered = true; - - return $this->registrar->register( - $this->name, $this->controller, $this->options - ); - } - - /** - * Handle the object's destruction. - * - * @return void - */ - public function __destruct() - { - if (! $this->registered) { - $this->register(); - } - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php b/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php deleted file mode 100644 index 17a7d8f2..00000000 --- a/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php +++ /dev/null @@ -1,91 +0,0 @@ -handleException($passable, $e); - } catch (Throwable $e) { - return $this->handleException($passable, new FatalThrowableError($e)); - } - }; - } - - /** - * Get a Closure that represents a slice of the application onion. - * - * @return \Closure - */ - protected function carry() - { - return function ($stack, $pipe) { - return function ($passable) use ($stack, $pipe) { - try { - $slice = parent::carry(); - - $callable = $slice($stack, $pipe); - - return $callable($passable); - } catch (Exception $e) { - return $this->handleException($passable, $e); - } catch (Throwable $e) { - return $this->handleException($passable, new FatalThrowableError($e)); - } - }; - }; - } - - /** - * Handle the given exception. - * - * @param mixed $passable - * @param \Exception $e - * @return mixed - * - * @throws \Exception - */ - protected function handleException($passable, Exception $e) - { - if (! $this->container->bound(ExceptionHandler::class) || - ! $passable instanceof Request) { - throw $e; - } - - $handler = $this->container->make(ExceptionHandler::class); - - $handler->report($e); - - $response = $handler->render($passable, $e); - - if (method_exists($response, 'withException')) { - $response->withException($e); - } - - return $response; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Routing/RedirectController.php b/vendor/laravel/framework/src/Illuminate/Routing/RedirectController.php deleted file mode 100644 index 82dbf337..00000000 --- a/vendor/laravel/framework/src/Illuminate/Routing/RedirectController.php +++ /dev/null @@ -1,21 +0,0 @@ -generator = $generator; - } - - /** - * Create a new redirect response to the "home" route. - * - * @param int $status - * @return \Illuminate\Http\RedirectResponse - */ - public function home($status = 302) - { - return $this->to($this->generator->route('home'), $status); - } - - /** - * Create a new redirect response to the previous location. - * - * @param int $status - * @param array $headers - * @param mixed $fallback - * @return \Illuminate\Http\RedirectResponse - */ - public function back($status = 302, $headers = [], $fallback = false) - { - return $this->createRedirect($this->generator->previous($fallback), $status, $headers); - } - - /** - * Create a new redirect response to the current URI. - * - * @param int $status - * @param array $headers - * @return \Illuminate\Http\RedirectResponse - */ - public function refresh($status = 302, $headers = []) - { - return $this->to($this->generator->getRequest()->path(), $status, $headers); - } - - /** - * Create a new redirect response, while putting the current URL in the session. - * - * @param string $path - * @param int $status - * @param array $headers - * @param bool $secure - * @return \Illuminate\Http\RedirectResponse - */ - public function guest($path, $status = 302, $headers = [], $secure = null) - { - $this->session->put('url.intended', $this->generator->full()); - - return $this->to($path, $status, $headers, $secure); - } - - /** - * Create a new redirect response to the previously intended location. - * - * @param string $default - * @param int $status - * @param array $headers - * @param bool $secure - * @return \Illuminate\Http\RedirectResponse - */ - public function intended($default = '/', $status = 302, $headers = [], $secure = null) - { - $path = $this->session->pull('url.intended', $default); - - return $this->to($path, $status, $headers, $secure); - } - - /** - * Create a new redirect response to the given path. - * - * @param string $path - * @param int $status - * @param array $headers - * @param bool $secure - * @return \Illuminate\Http\RedirectResponse - */ - public function to($path, $status = 302, $headers = [], $secure = null) - { - return $this->createRedirect($this->generator->to($path, [], $secure), $status, $headers); - } - - /** - * Create a new redirect response to an external URL (no validation). - * - * @param string $path - * @param int $status - * @param array $headers - * @return \Illuminate\Http\RedirectResponse - */ - public function away($path, $status = 302, $headers = []) - { - return $this->createRedirect($path, $status, $headers); - } - - /** - * Create a new redirect response to the given HTTPS path. - * - * @param string $path - * @param int $status - * @param array $headers - * @return \Illuminate\Http\RedirectResponse - */ - public function secure($path, $status = 302, $headers = []) - { - return $this->to($path, $status, $headers, true); - } - - /** - * Create a new redirect response to a named route. - * - * @param string $route - * @param mixed $parameters - * @param int $status - * @param array $headers - * @return \Illuminate\Http\RedirectResponse - */ - public function route($route, $parameters = [], $status = 302, $headers = []) - { - return $this->to($this->generator->route($route, $parameters), $status, $headers); - } - - /** - * Create a new redirect response to a controller action. - * - * @param string $action - * @param mixed $parameters - * @param int $status - * @param array $headers - * @return \Illuminate\Http\RedirectResponse - */ - public function action($action, $parameters = [], $status = 302, $headers = []) - { - return $this->to($this->generator->action($action, $parameters), $status, $headers); - } - - /** - * Create a new redirect response. - * - * @param string $path - * @param int $status - * @param array $headers - * @return \Illuminate\Http\RedirectResponse - */ - protected function createRedirect($path, $status, $headers) - { - return tap(new RedirectResponse($path, $status, $headers), function ($redirect) { - if (isset($this->session)) { - $redirect->setSession($this->session); - } - - $redirect->setRequest($this->generator->getRequest()); - }); - } - - /** - * Get the URL generator instance. - * - * @return \Illuminate\Routing\UrlGenerator - */ - public function getUrlGenerator() - { - return $this->generator; - } - - /** - * Set the active session store. - * - * @param \Illuminate\Session\Store $session - * @return void - */ - public function setSession(SessionStore $session) - { - $this->session = $session; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Routing/ResourceRegistrar.php b/vendor/laravel/framework/src/Illuminate/Routing/ResourceRegistrar.php deleted file mode 100644 index 37ccb2e5..00000000 --- a/vendor/laravel/framework/src/Illuminate/Routing/ResourceRegistrar.php +++ /dev/null @@ -1,446 +0,0 @@ - 'create', - 'edit' => 'edit', - ]; - - /** - * Create a new resource registrar instance. - * - * @param \Illuminate\Routing\Router $router - * @return void - */ - public function __construct(Router $router) - { - $this->router = $router; - } - - /** - * Route a resource to a controller. - * - * @param string $name - * @param string $controller - * @param array $options - * @return \Illuminate\Routing\RouteCollection - */ - public function register($name, $controller, array $options = []) - { - if (isset($options['parameters']) && ! isset($this->parameters)) { - $this->parameters = $options['parameters']; - } - - // If the resource name contains a slash, we will assume the developer wishes to - // register these resource routes with a prefix so we will set that up out of - // the box so they don't have to mess with it. Otherwise, we will continue. - if (Str::contains($name, '/')) { - $this->prefixedResource($name, $controller, $options); - - return; - } - - // We need to extract the base resource from the resource name. Nested resources - // are supported in the framework, but we need to know what name to use for a - // place-holder on the route parameters, which should be the base resources. - $base = $this->getResourceWildcard(last(explode('.', $name))); - - $defaults = $this->resourceDefaults; - - $collection = new RouteCollection; - - foreach ($this->getResourceMethods($defaults, $options) as $m) { - $collection->add($this->{'addResource'.ucfirst($m)}( - $name, $base, $controller, $options - )); - } - - return $collection; - } - - /** - * Build a set of prefixed resource routes. - * - * @param string $name - * @param string $controller - * @param array $options - * @return void - */ - protected function prefixedResource($name, $controller, array $options) - { - list($name, $prefix) = $this->getResourcePrefix($name); - - // We need to extract the base resource from the resource name. Nested resources - // are supported in the framework, but we need to know what name to use for a - // place-holder on the route parameters, which should be the base resources. - $callback = function ($me) use ($name, $controller, $options) { - $me->resource($name, $controller, $options); - }; - - return $this->router->group(compact('prefix'), $callback); - } - - /** - * Extract the resource and prefix from a resource name. - * - * @param string $name - * @return array - */ - protected function getResourcePrefix($name) - { - $segments = explode('/', $name); - - // To get the prefix, we will take all of the name segments and implode them on - // a slash. This will generate a proper URI prefix for us. Then we take this - // last segment, which will be considered the final resources name we use. - $prefix = implode('/', array_slice($segments, 0, -1)); - - return [end($segments), $prefix]; - } - - /** - * Get the applicable resource methods. - * - * @param array $defaults - * @param array $options - * @return array - */ - protected function getResourceMethods($defaults, $options) - { - if (isset($options['only'])) { - return array_intersect($defaults, (array) $options['only']); - } elseif (isset($options['except'])) { - return array_diff($defaults, (array) $options['except']); - } - - return $defaults; - } - - /** - * Add the index method for a resourceful route. - * - * @param string $name - * @param string $base - * @param string $controller - * @param array $options - * @return \Illuminate\Routing\Route - */ - protected function addResourceIndex($name, $base, $controller, $options) - { - $uri = $this->getResourceUri($name); - - $action = $this->getResourceAction($name, $controller, 'index', $options); - - return $this->router->get($uri, $action); - } - - /** - * Add the create method for a resourceful route. - * - * @param string $name - * @param string $base - * @param string $controller - * @param array $options - * @return \Illuminate\Routing\Route - */ - protected function addResourceCreate($name, $base, $controller, $options) - { - $uri = $this->getResourceUri($name).'/'.static::$verbs['create']; - - $action = $this->getResourceAction($name, $controller, 'create', $options); - - return $this->router->get($uri, $action); - } - - /** - * Add the store method for a resourceful route. - * - * @param string $name - * @param string $base - * @param string $controller - * @param array $options - * @return \Illuminate\Routing\Route - */ - protected function addResourceStore($name, $base, $controller, $options) - { - $uri = $this->getResourceUri($name); - - $action = $this->getResourceAction($name, $controller, 'store', $options); - - return $this->router->post($uri, $action); - } - - /** - * Add the show method for a resourceful route. - * - * @param string $name - * @param string $base - * @param string $controller - * @param array $options - * @return \Illuminate\Routing\Route - */ - protected function addResourceShow($name, $base, $controller, $options) - { - $uri = $this->getResourceUri($name).'/{'.$base.'}'; - - $action = $this->getResourceAction($name, $controller, 'show', $options); - - return $this->router->get($uri, $action); - } - - /** - * Add the edit method for a resourceful route. - * - * @param string $name - * @param string $base - * @param string $controller - * @param array $options - * @return \Illuminate\Routing\Route - */ - protected function addResourceEdit($name, $base, $controller, $options) - { - $uri = $this->getResourceUri($name).'/{'.$base.'}/'.static::$verbs['edit']; - - $action = $this->getResourceAction($name, $controller, 'edit', $options); - - return $this->router->get($uri, $action); - } - - /** - * Add the update method for a resourceful route. - * - * @param string $name - * @param string $base - * @param string $controller - * @param array $options - * @return \Illuminate\Routing\Route - */ - protected function addResourceUpdate($name, $base, $controller, $options) - { - $uri = $this->getResourceUri($name).'/{'.$base.'}'; - - $action = $this->getResourceAction($name, $controller, 'update', $options); - - return $this->router->match(['PUT', 'PATCH'], $uri, $action); - } - - /** - * Add the destroy method for a resourceful route. - * - * @param string $name - * @param string $base - * @param string $controller - * @param array $options - * @return \Illuminate\Routing\Route - */ - protected function addResourceDestroy($name, $base, $controller, $options) - { - $uri = $this->getResourceUri($name).'/{'.$base.'}'; - - $action = $this->getResourceAction($name, $controller, 'destroy', $options); - - return $this->router->delete($uri, $action); - } - - /** - * Get the base resource URI for a given resource. - * - * @param string $resource - * @return string - */ - public function getResourceUri($resource) - { - if (! Str::contains($resource, '.')) { - return $resource; - } - - // Once we have built the base URI, we'll remove the parameter holder for this - // base resource name so that the individual route adders can suffix these - // paths however they need to, as some do not have any parameters at all. - $segments = explode('.', $resource); - - $uri = $this->getNestedResourceUri($segments); - - return str_replace('/{'.$this->getResourceWildcard(end($segments)).'}', '', $uri); - } - - /** - * Get the URI for a nested resource segment array. - * - * @param array $segments - * @return string - */ - protected function getNestedResourceUri(array $segments) - { - // We will spin through the segments and create a place-holder for each of the - // resource segments, as well as the resource itself. Then we should get an - // entire string for the resource URI that contains all nested resources. - return implode('/', array_map(function ($s) { - return $s.'/{'.$this->getResourceWildcard($s).'}'; - }, $segments)); - } - - /** - * Format a resource parameter for usage. - * - * @param string $value - * @return string - */ - public function getResourceWildcard($value) - { - if (isset($this->parameters[$value])) { - $value = $this->parameters[$value]; - } elseif (isset(static::$parameterMap[$value])) { - $value = static::$parameterMap[$value]; - } elseif ($this->parameters === 'singular' || static::$singularParameters) { - $value = Str::singular($value); - } - - return str_replace('-', '_', $value); - } - - /** - * Get the action array for a resource route. - * - * @param string $resource - * @param string $controller - * @param string $method - * @param array $options - * @return array - */ - protected function getResourceAction($resource, $controller, $method, $options) - { - $name = $this->getResourceRouteName($resource, $method, $options); - - $action = ['as' => $name, 'uses' => $controller.'@'.$method]; - - if (isset($options['middleware'])) { - $action['middleware'] = $options['middleware']; - } - - return $action; - } - - /** - * Get the name for a given resource. - * - * @param string $resource - * @param string $method - * @param array $options - * @return string - */ - protected function getResourceRouteName($resource, $method, $options) - { - $name = $resource; - - // If the names array has been provided to us we will check for an entry in the - // array first. We will also check for the specific method within this array - // so the names may be specified on a more "granular" level using methods. - if (isset($options['names'])) { - if (is_string($options['names'])) { - $name = $options['names']; - } elseif (isset($options['names'][$method])) { - return $options['names'][$method]; - } - } - - // If a global prefix has been assigned to all names for this resource, we will - // grab that so we can prepend it onto the name when we create this name for - // the resource action. Otherwise we'll just use an empty string for here. - $prefix = isset($options['as']) ? $options['as'].'.' : ''; - - return trim(sprintf('%s%s.%s', $prefix, $name, $method), '.'); - } - - /** - * Set or unset the unmapped global parameters to singular. - * - * @param bool $singular - * @return void - */ - public static function singularParameters($singular = true) - { - static::$singularParameters = (bool) $singular; - } - - /** - * Get the global parameter map. - * - * @return array - */ - public static function getParameters() - { - return static::$parameterMap; - } - - /** - * Set the global parameter mapping. - * - * @param array $parameters - * @return void - */ - public static function setParameters(array $parameters = []) - { - static::$parameterMap = $parameters; - } - - /** - * Get or set the action verbs used in the resource URIs. - * - * @param array $verbs - * @return array - */ - public static function verbs(array $verbs = []) - { - if (empty($verbs)) { - return static::$verbs; - } else { - static::$verbs = array_merge(static::$verbs, $verbs); - } - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Routing/ResponseFactory.php b/vendor/laravel/framework/src/Illuminate/Routing/ResponseFactory.php deleted file mode 100644 index 309cc79c..00000000 --- a/vendor/laravel/framework/src/Illuminate/Routing/ResponseFactory.php +++ /dev/null @@ -1,250 +0,0 @@ -view = $view; - $this->redirector = $redirector; - } - - /** - * Return a new response from the application. - * - * @param string $content - * @param int $status - * @param array $headers - * @return \Illuminate\Http\Response - */ - public function make($content = '', $status = 200, array $headers = []) - { - return new Response($content, $status, $headers); - } - - /** - * Return a new view response from the application. - * - * @param string $view - * @param array $data - * @param int $status - * @param array $headers - * @return \Illuminate\Http\Response - */ - public function view($view, $data = [], $status = 200, array $headers = []) - { - return $this->make($this->view->make($view, $data), $status, $headers); - } - - /** - * Return a new JSON response from the application. - * - * @param mixed $data - * @param int $status - * @param array $headers - * @param int $options - * @return \Illuminate\Http\JsonResponse - */ - public function json($data = [], $status = 200, array $headers = [], $options = 0) - { - return new JsonResponse($data, $status, $headers, $options); - } - - /** - * Return a new JSONP response from the application. - * - * @param string $callback - * @param mixed $data - * @param int $status - * @param array $headers - * @param int $options - * @return \Illuminate\Http\JsonResponse - */ - public function jsonp($callback, $data = [], $status = 200, array $headers = [], $options = 0) - { - return $this->json($data, $status, $headers, $options)->setCallback($callback); - } - - /** - * Return a new streamed response from the application. - * - * @param \Closure $callback - * @param int $status - * @param array $headers - * @return \Symfony\Component\HttpFoundation\StreamedResponse - */ - public function stream($callback, $status = 200, array $headers = []) - { - return new StreamedResponse($callback, $status, $headers); - } - - /** - * Return a new streamed response as a file download from the application. - * - * @param \Closure $callback - * @param string|null $name - * @param array $headers - * @param string|null $disposition - * @return \Symfony\Component\HttpFoundation\StreamedResponse - */ - public function streamDownload($callback, $name = null, array $headers = [], $disposition = 'attachment') - { - $response = new StreamedResponse($callback, 200, $headers); - - if (! is_null($name)) { - $response->headers->set('Content-Disposition', $response->headers->makeDisposition( - $disposition, - $name, - $this->fallbackName($name) - )); - } - - return $response; - } - - /** - * Create a new file download response. - * - * @param \SplFileInfo|string $file - * @param string|null $name - * @param array $headers - * @param string|null $disposition - * @return \Symfony\Component\HttpFoundation\BinaryFileResponse - */ - public function download($file, $name = null, array $headers = [], $disposition = 'attachment') - { - $response = new BinaryFileResponse($file, 200, $headers, true, $disposition); - - if (! is_null($name)) { - return $response->setContentDisposition($disposition, $name, $this->fallbackName($name)); - } - - return $response; - } - - /** - * Convert the string to ASCII characters that are equivalent to the given name. - * - * @param string $name - * @return string - */ - protected function fallbackName($name) - { - return str_replace('%', '', Str::ascii($name)); - } - - /** - * Return the raw contents of a binary file. - * - * @param \SplFileInfo|string $file - * @param array $headers - * @return \Symfony\Component\HttpFoundation\BinaryFileResponse - */ - public function file($file, array $headers = []) - { - return new BinaryFileResponse($file, 200, $headers); - } - - /** - * Create a new redirect response to the given path. - * - * @param string $path - * @param int $status - * @param array $headers - * @param bool|null $secure - * @return \Illuminate\Http\RedirectResponse - */ - public function redirectTo($path, $status = 302, $headers = [], $secure = null) - { - return $this->redirector->to($path, $status, $headers, $secure); - } - - /** - * Create a new redirect response to a named route. - * - * @param string $route - * @param array $parameters - * @param int $status - * @param array $headers - * @return \Illuminate\Http\RedirectResponse - */ - public function redirectToRoute($route, $parameters = [], $status = 302, $headers = []) - { - return $this->redirector->route($route, $parameters, $status, $headers); - } - - /** - * Create a new redirect response to a controller action. - * - * @param string $action - * @param array $parameters - * @param int $status - * @param array $headers - * @return \Illuminate\Http\RedirectResponse - */ - public function redirectToAction($action, $parameters = [], $status = 302, $headers = []) - { - return $this->redirector->action($action, $parameters, $status, $headers); - } - - /** - * Create a new redirect response, while putting the current URL in the session. - * - * @param string $path - * @param int $status - * @param array $headers - * @param bool|null $secure - * @return \Illuminate\Http\RedirectResponse - */ - public function redirectGuest($path, $status = 302, $headers = [], $secure = null) - { - return $this->redirector->guest($path, $status, $headers, $secure); - } - - /** - * Create a new redirect response to the previously intended location. - * - * @param string $default - * @param int $status - * @param array $headers - * @param bool|null $secure - * @return \Illuminate\Http\RedirectResponse - */ - public function redirectToIntended($default = '/', $status = 302, $headers = [], $secure = null) - { - return $this->redirector->intended($default, $status, $headers, $secure); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Routing/Route.php b/vendor/laravel/framework/src/Illuminate/Routing/Route.php deleted file mode 100755 index 7725fc75..00000000 --- a/vendor/laravel/framework/src/Illuminate/Routing/Route.php +++ /dev/null @@ -1,898 +0,0 @@ -uri = $uri; - $this->methods = (array) $methods; - $this->action = $this->parseAction($action); - - if (in_array('GET', $this->methods) && ! in_array('HEAD', $this->methods)) { - $this->methods[] = 'HEAD'; - } - - if (isset($this->action['prefix'])) { - $this->prefix($this->action['prefix']); - } - } - - /** - * Parse the route action into a standard array. - * - * @param callable|array|null $action - * @return array - * - * @throws \UnexpectedValueException - */ - protected function parseAction($action) - { - return RouteAction::parse($this->uri, $action); - } - - /** - * Run the route action and return the response. - * - * @return mixed - */ - public function run() - { - $this->container = $this->container ?: new Container; - - try { - if ($this->isControllerAction()) { - return $this->runController(); - } - - return $this->runCallable(); - } catch (HttpResponseException $e) { - return $e->getResponse(); - } - } - - /** - * Checks whether the route's action is a controller. - * - * @return bool - */ - protected function isControllerAction() - { - return is_string($this->action['uses']); - } - - /** - * Run the route action and return the response. - * - * @return mixed - */ - protected function runCallable() - { - $callable = $this->action['uses']; - - return $callable(...array_values($this->resolveMethodDependencies( - $this->parametersWithoutNulls(), new ReflectionFunction($this->action['uses']) - ))); - } - - /** - * Run the route action and return the response. - * - * @return mixed - * - * @throws \Symfony\Component\HttpKernel\Exception\NotFoundHttpException - */ - protected function runController() - { - return $this->controllerDispatcher()->dispatch( - $this, $this->getController(), $this->getControllerMethod() - ); - } - - /** - * Get the controller instance for the route. - * - * @return mixed - */ - public function getController() - { - if (! $this->controller) { - $class = $this->parseControllerCallback()[0]; - - $this->controller = $this->container->make(ltrim($class, '\\')); - } - - return $this->controller; - } - - /** - * Get the controller method used for the route. - * - * @return string - */ - protected function getControllerMethod() - { - return $this->parseControllerCallback()[1]; - } - - /** - * Parse the controller. - * - * @return array - */ - protected function parseControllerCallback() - { - return Str::parseCallback($this->action['uses']); - } - - /** - * Determine if the route matches given request. - * - * @param \Illuminate\Http\Request $request - * @param bool $includingMethod - * @return bool - */ - public function matches(Request $request, $includingMethod = true) - { - $this->compileRoute(); - - foreach ($this->getValidators() as $validator) { - if (! $includingMethod && $validator instanceof MethodValidator) { - continue; - } - - if (! $validator->matches($this, $request)) { - return false; - } - } - - return true; - } - - /** - * Compile the route into a Symfony CompiledRoute instance. - * - * @return \Symfony\Component\Routing\CompiledRoute - */ - protected function compileRoute() - { - if (! $this->compiled) { - $this->compiled = (new RouteCompiler($this))->compile(); - } - - return $this->compiled; - } - - /** - * Bind the route to a given request for execution. - * - * @param \Illuminate\Http\Request $request - * @return $this - */ - public function bind(Request $request) - { - $this->compileRoute(); - - $this->parameters = (new RouteParameterBinder($this)) - ->parameters($request); - - return $this; - } - - /** - * Determine if the route has parameters. - * - * @return bool - */ - public function hasParameters() - { - return isset($this->parameters); - } - - /** - * Determine a given parameter exists from the route. - * - * @param string $name - * @return bool - */ - public function hasParameter($name) - { - if ($this->hasParameters()) { - return array_key_exists($name, $this->parameters()); - } - - return false; - } - - /** - * Get a given parameter from the route. - * - * @param string $name - * @param mixed $default - * @return string|object - */ - public function parameter($name, $default = null) - { - return Arr::get($this->parameters(), $name, $default); - } - - /** - * Set a parameter to the given value. - * - * @param string $name - * @param mixed $value - * @return void - */ - public function setParameter($name, $value) - { - $this->parameters(); - - $this->parameters[$name] = $value; - } - - /** - * Unset a parameter on the route if it is set. - * - * @param string $name - * @return void - */ - public function forgetParameter($name) - { - $this->parameters(); - - unset($this->parameters[$name]); - } - - /** - * Get the key / value list of parameters for the route. - * - * @return array - * - * @throws \LogicException - */ - public function parameters() - { - if (isset($this->parameters)) { - return $this->parameters; - } - - throw new LogicException('Route is not bound.'); - } - - /** - * Get the key / value list of parameters without null values. - * - * @return array - */ - public function parametersWithoutNulls() - { - return array_filter($this->parameters(), function ($p) { - return ! is_null($p); - }); - } - - /** - * Get all of the parameter names for the route. - * - * @return array - */ - public function parameterNames() - { - if (isset($this->parameterNames)) { - return $this->parameterNames; - } - - return $this->parameterNames = $this->compileParameterNames(); - } - - /** - * Get the parameter names for the route. - * - * @return array - */ - protected function compileParameterNames() - { - preg_match_all('/\{(.*?)\}/', $this->getDomain().$this->uri, $matches); - - return array_map(function ($m) { - return trim($m, '?'); - }, $matches[1]); - } - - /** - * Get the parameters that are listed in the route / controller signature. - * - * @param string|null $subClass - * @return array - */ - public function signatureParameters($subClass = null) - { - return RouteSignatureParameters::fromAction($this->action, $subClass); - } - - /** - * Set a default value for the route. - * - * @param string $key - * @param mixed $value - * @return $this - */ - public function defaults($key, $value) - { - $this->defaults[$key] = $value; - - return $this; - } - - /** - * Set a regular expression requirement on the route. - * - * @param array|string $name - * @param string $expression - * @return $this - */ - public function where($name, $expression = null) - { - foreach ($this->parseWhere($name, $expression) as $name => $expression) { - $this->wheres[$name] = $expression; - } - - return $this; - } - - /** - * Parse arguments to the where method into an array. - * - * @param array|string $name - * @param string $expression - * @return array - */ - protected function parseWhere($name, $expression) - { - return is_array($name) ? $name : [$name => $expression]; - } - - /** - * Set a list of regular expression requirements on the route. - * - * @param array $wheres - * @return $this - */ - protected function whereArray(array $wheres) - { - foreach ($wheres as $name => $expression) { - $this->where($name, $expression); - } - - return $this; - } - - /** - * Mark this route as a fallback route. - * - * @return $this - */ - public function fallback() - { - $this->isFallback = true; - - return $this; - } - - /** - * Get the HTTP verbs the route responds to. - * - * @return array - */ - public function methods() - { - return $this->methods; - } - - /** - * Determine if the route only responds to HTTP requests. - * - * @return bool - */ - public function httpOnly() - { - return in_array('http', $this->action, true); - } - - /** - * Determine if the route only responds to HTTPS requests. - * - * @return bool - */ - public function httpsOnly() - { - return $this->secure(); - } - - /** - * Determine if the route only responds to HTTPS requests. - * - * @return bool - */ - public function secure() - { - return in_array('https', $this->action, true); - } - - /** - * Get or set the domain for the route. - * - * @param string|null $domain - * @return $this|string|null - */ - public function domain($domain = null) - { - if (is_null($domain)) { - return $this->getDomain(); - } - - $this->action['domain'] = $domain; - - return $this; - } - - /** - * Get the domain defined for the route. - * - * @return string|null - */ - public function getDomain() - { - return isset($this->action['domain']) - ? str_replace(['http://', 'https://'], '', $this->action['domain']) : null; - } - - /** - * Get the prefix of the route instance. - * - * @return string - */ - public function getPrefix() - { - return $this->action['prefix'] ?? null; - } - - /** - * Add a prefix to the route URI. - * - * @param string $prefix - * @return $this - */ - public function prefix($prefix) - { - $uri = rtrim($prefix, '/').'/'.ltrim($this->uri, '/'); - - $this->uri = trim($uri, '/'); - - return $this; - } - - /** - * Get the URI associated with the route. - * - * @return string - */ - public function uri() - { - return $this->uri; - } - - /** - * Set the URI that the route responds to. - * - * @param string $uri - * @return $this - */ - public function setUri($uri) - { - $this->uri = $uri; - - return $this; - } - - /** - * Get the name of the route instance. - * - * @return string - */ - public function getName() - { - return $this->action['as'] ?? null; - } - - /** - * Add or change the route name. - * - * @param string $name - * @return $this - */ - public function name($name) - { - $this->action['as'] = isset($this->action['as']) ? $this->action['as'].$name : $name; - - return $this; - } - - /** - * Determine whether the route's name matches the given patterns. - * - * @param dynamic $patterns - * @return bool - */ - public function named(...$patterns) - { - if (is_null($routeName = $this->getName())) { - return false; - } - - foreach ($patterns as $pattern) { - if (Str::is($pattern, $routeName)) { - return true; - } - } - - return false; - } - - /** - * Set the handler for the route. - * - * @param \Closure|string $action - * @return $this - */ - public function uses($action) - { - $action = is_string($action) ? $this->addGroupNamespaceToStringUses($action) : $action; - - return $this->setAction(array_merge($this->action, $this->parseAction([ - 'uses' => $action, - 'controller' => $action, - ]))); - } - - /** - * Parse a string based action for the "uses" fluent method. - * - * @param string $action - * @return string - */ - protected function addGroupNamespaceToStringUses($action) - { - $groupStack = last($this->router->getGroupStack()); - - if (isset($groupStack['namespace']) && strpos($action, '\\') !== 0) { - return $groupStack['namespace'].'\\'.$action; - } - - return $action; - } - - /** - * Get the action name for the route. - * - * @return string - */ - public function getActionName() - { - return $this->action['controller'] ?? 'Closure'; - } - - /** - * Get the method name of the route action. - * - * @return string - */ - public function getActionMethod() - { - return Arr::last(explode('@', $this->getActionName())); - } - - /** - * Get the action array or one of its properties for the route. - * - * @param string|null $key - * @return mixed - */ - public function getAction($key = null) - { - return Arr::get($this->action, $key); - } - - /** - * Set the action array for the route. - * - * @param array $action - * @return $this - */ - public function setAction(array $action) - { - $this->action = $action; - - return $this; - } - - /** - * Get all middleware, including the ones from the controller. - * - * @return array - */ - public function gatherMiddleware() - { - if (! is_null($this->computedMiddleware)) { - return $this->computedMiddleware; - } - - $this->computedMiddleware = []; - - return $this->computedMiddleware = array_unique(array_merge( - $this->middleware(), $this->controllerMiddleware() - ), SORT_REGULAR); - } - - /** - * Get or set the middlewares attached to the route. - * - * @param array|string|null $middleware - * @return $this|array - */ - public function middleware($middleware = null) - { - if (is_null($middleware)) { - return (array) ($this->action['middleware'] ?? []); - } - - if (is_string($middleware)) { - $middleware = func_get_args(); - } - - $this->action['middleware'] = array_merge( - (array) ($this->action['middleware'] ?? []), $middleware - ); - - return $this; - } - - /** - * Get the middleware for the route's controller. - * - * @return array - */ - public function controllerMiddleware() - { - if (! $this->isControllerAction()) { - return []; - } - - return $this->controllerDispatcher()->getMiddleware( - $this->getController(), $this->getControllerMethod() - ); - } - - /** - * Get the dispatcher for the route's controller. - * - * @return \Illuminate\Routing\Contracts\ControllerDispatcher - */ - public function controllerDispatcher() - { - if ($this->container->bound(ControllerDispatcherContract::class)) { - return $this->container->make(ControllerDispatcherContract::class); - } - - return new ControllerDispatcher($this->container); - } - - /** - * Get the route validators for the instance. - * - * @return array - */ - public static function getValidators() - { - if (isset(static::$validators)) { - return static::$validators; - } - - // To match the route, we will use a chain of responsibility pattern with the - // validator implementations. We will spin through each one making sure it - // passes and then we will know if the route as a whole matches request. - return static::$validators = [ - new UriValidator, new MethodValidator, - new SchemeValidator, new HostValidator, - ]; - } - - /** - * Get the compiled version of the route. - * - * @return \Symfony\Component\Routing\CompiledRoute - */ - public function getCompiled() - { - return $this->compiled; - } - - /** - * Set the router instance on the route. - * - * @param \Illuminate\Routing\Router $router - * @return $this - */ - public function setRouter(Router $router) - { - $this->router = $router; - - return $this; - } - - /** - * Set the container instance on the route. - * - * @param \Illuminate\Container\Container $container - * @return $this - */ - public function setContainer(Container $container) - { - $this->container = $container; - - return $this; - } - - /** - * Prepare the route instance for serialization. - * - * @return void - * - * @throws \LogicException - */ - public function prepareForSerialization() - { - if ($this->action['uses'] instanceof Closure) { - throw new LogicException("Unable to prepare route [{$this->uri}] for serialization. Uses Closure."); - } - - $this->compileRoute(); - - unset($this->router, $this->container); - } - - /** - * Dynamically access route parameters. - * - * @param string $key - * @return mixed - */ - public function __get($key) - { - return $this->parameter($key); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Routing/RouteAction.php b/vendor/laravel/framework/src/Illuminate/Routing/RouteAction.php deleted file mode 100644 index 63b90030..00000000 --- a/vendor/laravel/framework/src/Illuminate/Routing/RouteAction.php +++ /dev/null @@ -1,92 +0,0 @@ - $action] : [ - 'uses' => $action[0].'@'.$action[1], - 'controller' => $action[0].'@'.$action[1], - ]; - } - - // If no "uses" property has been set, we will dig through the array to find a - // Closure instance within this list. We will set the first Closure we come - // across into the "uses" property that will get fired off by this route. - elseif (! isset($action['uses'])) { - $action['uses'] = static::findCallable($action); - } - - if (is_string($action['uses']) && ! Str::contains($action['uses'], '@')) { - $action['uses'] = static::makeInvokable($action['uses']); - } - - return $action; - } - - /** - * Get an action for a route that has no action. - * - * @param string $uri - * @return array - */ - protected static function missingAction($uri) - { - return ['uses' => function () use ($uri) { - throw new LogicException("Route for [{$uri}] has no action."); - }]; - } - - /** - * Find the callable in an action array. - * - * @param array $action - * @return callable - */ - protected static function findCallable(array $action) - { - return Arr::first($action, function ($value, $key) { - return is_callable($value) && is_numeric($key); - }); - } - - /** - * Make an action for an invokable controller. - * - * @param string $action - * @return string - */ - protected static function makeInvokable($action) - { - if (! method_exists($action, '__invoke')) { - throw new UnexpectedValueException("Invalid route action: [{$action}]."); - } - - return $action.'@__invoke'; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Routing/RouteBinding.php b/vendor/laravel/framework/src/Illuminate/Routing/RouteBinding.php deleted file mode 100644 index 51053199..00000000 --- a/vendor/laravel/framework/src/Illuminate/Routing/RouteBinding.php +++ /dev/null @@ -1,82 +0,0 @@ -make($class), $method]; - - return call_user_func($callable, $value, $route); - }; - } - - /** - * Create a Route model binding for a model. - * - * @param \Illuminate\Container\Container $container - * @param string $class - * @param \Closure|null $callback - * @return \Closure - */ - public static function forModel($container, $class, $callback = null) - { - return function ($value) use ($container, $class, $callback) { - if (is_null($value)) { - return; - } - - // For model binders, we will attempt to retrieve the models using the first - // method on the model instance. If we cannot retrieve the models we'll - // throw a not found exception otherwise we will return the instance. - $instance = $container->make($class); - - if ($model = $instance->resolveRouteBinding($value)) { - return $model; - } - - // If a callback was supplied to the method we will call that to determine - // what we should do when the model is not found. This just gives these - // developer a little greater flexibility to decide what will happen. - if ($callback instanceof Closure) { - return call_user_func($callback, $value); - } - - throw (new ModelNotFoundException)->setModel($class); - }; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Routing/RouteCollection.php b/vendor/laravel/framework/src/Illuminate/Routing/RouteCollection.php deleted file mode 100644 index 4b3325c1..00000000 --- a/vendor/laravel/framework/src/Illuminate/Routing/RouteCollection.php +++ /dev/null @@ -1,351 +0,0 @@ -addToCollections($route); - - $this->addLookups($route); - - return $route; - } - - /** - * Add the given route to the arrays of routes. - * - * @param \Illuminate\Routing\Route $route - * @return void - */ - protected function addToCollections($route) - { - $domainAndUri = $route->getDomain().$route->uri(); - - foreach ($route->methods() as $method) { - $this->routes[$method][$domainAndUri] = $route; - } - - $this->allRoutes[$method.$domainAndUri] = $route; - } - - /** - * Add the route to any look-up tables if necessary. - * - * @param \Illuminate\Routing\Route $route - * @return void - */ - protected function addLookups($route) - { - // If the route has a name, we will add it to the name look-up table so that we - // will quickly be able to find any route associate with a name and not have - // to iterate through every route every time we need to perform a look-up. - $action = $route->getAction(); - - if (isset($action['as'])) { - $this->nameList[$action['as']] = $route; - } - - // When the route is routing to a controller we will also store the action that - // is used by the route. This will let us reverse route to controllers while - // processing a request and easily generate URLs to the given controllers. - if (isset($action['controller'])) { - $this->addToActionList($action, $route); - } - } - - /** - * Add a route to the controller action dictionary. - * - * @param array $action - * @param \Illuminate\Routing\Route $route - * @return void - */ - protected function addToActionList($action, $route) - { - $this->actionList[trim($action['controller'], '\\')] = $route; - } - - /** - * Refresh the name look-up table. - * - * This is done in case any names are fluently defined or if routes are overwritten. - * - * @return void - */ - public function refreshNameLookups() - { - $this->nameList = []; - - foreach ($this->allRoutes as $route) { - if ($route->getName()) { - $this->nameList[$route->getName()] = $route; - } - } - } - - /** - * Refresh the action look-up table. - * - * This is done in case any actions are overwritten with new controllers. - * - * @return void - */ - public function refreshActionLookups() - { - $this->actionList = []; - - foreach ($this->allRoutes as $route) { - if (isset($route->getAction()['controller'])) { - $this->addToActionList($route->getAction(), $route); - } - } - } - - /** - * Find the first route matching a given request. - * - * @param \Illuminate\Http\Request $request - * @return \Illuminate\Routing\Route - * - * @throws \Symfony\Component\HttpKernel\Exception\NotFoundHttpException - */ - public function match(Request $request) - { - $routes = $this->get($request->getMethod()); - - // First, we will see if we can find a matching route for this current request - // method. If we can, great, we can just return it so that it can be called - // by the consumer. Otherwise we will check for routes with another verb. - $route = $this->matchAgainstRoutes($routes, $request); - - if (! is_null($route)) { - return $route->bind($request); - } - - // If no route was found we will now check if a matching route is specified by - // another HTTP verb. If it is we will need to throw a MethodNotAllowed and - // inform the user agent of which HTTP verb it should use for this route. - $others = $this->checkForAlternateVerbs($request); - - if (count($others) > 0) { - return $this->getRouteForMethods($request, $others); - } - - throw new NotFoundHttpException; - } - - /** - * Determine if a route in the array matches the request. - * - * @param array $routes - * @param \Illuminate\Http\Request $request - * @param bool $includingMethod - * @return \Illuminate\Routing\Route|null - */ - protected function matchAgainstRoutes(array $routes, $request, $includingMethod = true) - { - list($fallbacks, $routes) = collect($routes)->partition(function ($route) { - return $route->isFallback; - }); - - return $routes->merge($fallbacks)->first(function ($value) use ($request, $includingMethod) { - return $value->matches($request, $includingMethod); - }); - } - - /** - * Determine if any routes match on another HTTP verb. - * - * @param \Illuminate\Http\Request $request - * @return array - */ - protected function checkForAlternateVerbs($request) - { - $methods = array_diff(Router::$verbs, [$request->getMethod()]); - - // Here we will spin through all verbs except for the current request verb and - // check to see if any routes respond to them. If they do, we will return a - // proper error response with the correct headers on the response string. - $others = []; - - foreach ($methods as $method) { - if (! is_null($this->matchAgainstRoutes($this->get($method), $request, false))) { - $others[] = $method; - } - } - - return $others; - } - - /** - * Get a route (if necessary) that responds when other available methods are present. - * - * @param \Illuminate\Http\Request $request - * @param array $methods - * @return \Illuminate\Routing\Route - * - * @throws \Symfony\Component\HttpKernel\Exception\MethodNotAllowedHttpException - */ - protected function getRouteForMethods($request, array $methods) - { - if ($request->method() == 'OPTIONS') { - return (new Route('OPTIONS', $request->path(), function () use ($methods) { - return new Response('', 200, ['Allow' => implode(',', $methods)]); - }))->bind($request); - } - - $this->methodNotAllowed($methods); - } - - /** - * Throw a method not allowed HTTP exception. - * - * @param array $others - * @return void - * - * @throws \Symfony\Component\HttpKernel\Exception\MethodNotAllowedHttpException - */ - protected function methodNotAllowed(array $others) - { - throw new MethodNotAllowedHttpException($others); - } - - /** - * Get routes from the collection by method. - * - * @param string|null $method - * @return array - */ - public function get($method = null) - { - return is_null($method) ? $this->getRoutes() : Arr::get($this->routes, $method, []); - } - - /** - * Determine if the route collection contains a given named route. - * - * @param string $name - * @return bool - */ - public function hasNamedRoute($name) - { - return ! is_null($this->getByName($name)); - } - - /** - * Get a route instance by its name. - * - * @param string $name - * @return \Illuminate\Routing\Route|null - */ - public function getByName($name) - { - return $this->nameList[$name] ?? null; - } - - /** - * Get a route instance by its controller action. - * - * @param string $action - * @return \Illuminate\Routing\Route|null - */ - public function getByAction($action) - { - return $this->actionList[$action] ?? null; - } - - /** - * Get all of the routes in the collection. - * - * @return array - */ - public function getRoutes() - { - return array_values($this->allRoutes); - } - - /** - * Get all of the routes keyed by their HTTP verb / method. - * - * @return array - */ - public function getRoutesByMethod() - { - return $this->routes; - } - - /** - * Get all of the routes keyed by their name. - * - * @return array - */ - public function getRoutesByName() - { - return $this->nameList; - } - - /** - * Get an iterator for the items. - * - * @return \ArrayIterator - */ - public function getIterator() - { - return new ArrayIterator($this->getRoutes()); - } - - /** - * Count the number of items in the collection. - * - * @return int - */ - public function count() - { - return count($this->getRoutes()); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Routing/RouteCompiler.php b/vendor/laravel/framework/src/Illuminate/Routing/RouteCompiler.php deleted file mode 100644 index c191663b..00000000 --- a/vendor/laravel/framework/src/Illuminate/Routing/RouteCompiler.php +++ /dev/null @@ -1,54 +0,0 @@ -route = $route; - } - - /** - * Compile the route. - * - * @return \Symfony\Component\Routing\CompiledRoute - */ - public function compile() - { - $optionals = $this->getOptionalParameters(); - - $uri = preg_replace('/\{(\w+?)\?\}/', '{$1}', $this->route->uri()); - - return ( - new SymfonyRoute($uri, $optionals, $this->route->wheres, ['utf8' => true], $this->route->getDomain() ?: '') - )->compile(); - } - - /** - * Get the optional parameters for the route. - * - * @return array - */ - protected function getOptionalParameters() - { - preg_match_all('/\{(\w+?)\?\}/', $this->route->uri(), $matches); - - return isset($matches[1]) ? array_fill_keys($matches[1], null) : []; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Routing/RouteDependencyResolverTrait.php b/vendor/laravel/framework/src/Illuminate/Routing/RouteDependencyResolverTrait.php deleted file mode 100644 index 2db31c07..00000000 --- a/vendor/laravel/framework/src/Illuminate/Routing/RouteDependencyResolverTrait.php +++ /dev/null @@ -1,111 +0,0 @@ -resolveMethodDependencies( - $parameters, new ReflectionMethod($instance, $method) - ); - } - - /** - * Resolve the given method's type-hinted dependencies. - * - * @param array $parameters - * @param \ReflectionFunctionAbstract $reflector - * @return array - */ - public function resolveMethodDependencies(array $parameters, ReflectionFunctionAbstract $reflector) - { - $instanceCount = 0; - - $values = array_values($parameters); - - foreach ($reflector->getParameters() as $key => $parameter) { - $instance = $this->transformDependency( - $parameter, $parameters - ); - - if (! is_null($instance)) { - $instanceCount++; - - $this->spliceIntoParameters($parameters, $key, $instance); - } elseif (! isset($values[$key - $instanceCount]) && - $parameter->isDefaultValueAvailable()) { - $this->spliceIntoParameters($parameters, $key, $parameter->getDefaultValue()); - } - } - - return $parameters; - } - - /** - * Attempt to transform the given parameter into a class instance. - * - * @param \ReflectionParameter $parameter - * @param array $parameters - * @return mixed - */ - protected function transformDependency(ReflectionParameter $parameter, $parameters) - { - $class = $parameter->getClass(); - - // If the parameter has a type-hinted class, we will check to see if it is already in - // the list of parameters. If it is we will just skip it as it is probably a model - // binding and we do not want to mess with those; otherwise, we resolve it here. - if ($class && ! $this->alreadyInParameters($class->name, $parameters)) { - return $parameter->isDefaultValueAvailable() - ? $parameter->getDefaultValue() - : $this->container->make($class->name); - } - } - - /** - * Determine if an object of the given class is in a list of parameters. - * - * @param string $class - * @param array $parameters - * @return bool - */ - protected function alreadyInParameters($class, array $parameters) - { - return ! is_null(Arr::first($parameters, function ($value) use ($class) { - return $value instanceof $class; - })); - } - - /** - * Splice the given value into the parameter list. - * - * @param array $parameters - * @param string $offset - * @param mixed $value - * @return void - */ - protected function spliceIntoParameters(array &$parameters, $offset, $value) - { - array_splice( - $parameters, $offset, 0, [$value] - ); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Routing/RouteGroup.php b/vendor/laravel/framework/src/Illuminate/Routing/RouteGroup.php deleted file mode 100644 index ba33beeb..00000000 --- a/vendor/laravel/framework/src/Illuminate/Routing/RouteGroup.php +++ /dev/null @@ -1,95 +0,0 @@ - static::formatNamespace($new, $old), - 'prefix' => static::formatPrefix($new, $old), - 'where' => static::formatWhere($new, $old), - ]); - - return array_merge_recursive(Arr::except( - $old, ['namespace', 'prefix', 'where', 'as'] - ), $new); - } - - /** - * Format the namespace for the new group attributes. - * - * @param array $new - * @param array $old - * @return string|null - */ - protected static function formatNamespace($new, $old) - { - if (isset($new['namespace'])) { - return isset($old['namespace']) - ? trim($old['namespace'], '\\').'\\'.trim($new['namespace'], '\\') - : trim($new['namespace'], '\\'); - } - - return $old['namespace'] ?? null; - } - - /** - * Format the prefix for the new group attributes. - * - * @param array $new - * @param array $old - * @return string|null - */ - protected static function formatPrefix($new, $old) - { - $old = $old['prefix'] ?? null; - - return isset($new['prefix']) ? trim($old, '/').'/'.trim($new['prefix'], '/') : $old; - } - - /** - * Format the "wheres" for the new group attributes. - * - * @param array $new - * @param array $old - * @return array - */ - protected static function formatWhere($new, $old) - { - return array_merge( - $old['where'] ?? [], - $new['where'] ?? [] - ); - } - - /** - * Format the "as" clause of the new group attributes. - * - * @param array $new - * @param array $old - * @return array - */ - protected static function formatAs($new, $old) - { - if (isset($old['as'])) { - $new['as'] = $old['as'].($new['as'] ?? ''); - } - - return $new; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Routing/RouteParameterBinder.php b/vendor/laravel/framework/src/Illuminate/Routing/RouteParameterBinder.php deleted file mode 100644 index 53e766ef..00000000 --- a/vendor/laravel/framework/src/Illuminate/Routing/RouteParameterBinder.php +++ /dev/null @@ -1,120 +0,0 @@ -route = $route; - } - - /** - * Get the parameters for the route. - * - * @param \Illuminate\Http\Request $request - * @return array - */ - public function parameters($request) - { - // If the route has a regular expression for the host part of the URI, we will - // compile that and get the parameter matches for this domain. We will then - // merge them into this parameters array so that this array is completed. - $parameters = $this->bindPathParameters($request); - - // If the route has a regular expression for the host part of the URI, we will - // compile that and get the parameter matches for this domain. We will then - // merge them into this parameters array so that this array is completed. - if (! is_null($this->route->compiled->getHostRegex())) { - $parameters = $this->bindHostParameters( - $request, $parameters - ); - } - - return $this->replaceDefaults($parameters); - } - - /** - * Get the parameter matches for the path portion of the URI. - * - * @param \Illuminate\Http\Request $request - * @return array - */ - protected function bindPathParameters($request) - { - $path = '/'.ltrim($request->decodedPath(), '/'); - - preg_match($this->route->compiled->getRegex(), $path, $matches); - - return $this->matchToKeys(array_slice($matches, 1)); - } - - /** - * Extract the parameter list from the host part of the request. - * - * @param \Illuminate\Http\Request $request - * @param array $parameters - * @return array - */ - protected function bindHostParameters($request, $parameters) - { - preg_match($this->route->compiled->getHostRegex(), $request->getHost(), $matches); - - return array_merge($this->matchToKeys(array_slice($matches, 1)), $parameters); - } - - /** - * Combine a set of parameter matches with the route's keys. - * - * @param array $matches - * @return array - */ - protected function matchToKeys(array $matches) - { - if (empty($parameterNames = $this->route->parameterNames())) { - return []; - } - - $parameters = array_intersect_key($matches, array_flip($parameterNames)); - - return array_filter($parameters, function ($value) { - return is_string($value) && strlen($value) > 0; - }); - } - - /** - * Replace null parameters with their defaults. - * - * @param array $parameters - * @return array - */ - protected function replaceDefaults(array $parameters) - { - foreach ($parameters as $key => $value) { - $parameters[$key] = $value ?? Arr::get($this->route->defaults, $key); - } - - foreach ($this->route->defaults as $key => $value) { - if (! isset($parameters[$key])) { - $parameters[$key] = $value; - } - } - - return $parameters; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Routing/RouteRegistrar.php b/vendor/laravel/framework/src/Illuminate/Routing/RouteRegistrar.php deleted file mode 100644 index 7afe0b64..00000000 --- a/vendor/laravel/framework/src/Illuminate/Routing/RouteRegistrar.php +++ /dev/null @@ -1,199 +0,0 @@ - 'as', - ]; - - /** - * Create a new route registrar instance. - * - * @param \Illuminate\Routing\Router $router - * @return void - */ - public function __construct(Router $router) - { - $this->router = $router; - } - - /** - * Set the value for a given attribute. - * - * @param string $key - * @param mixed $value - * @return $this - * - * @throws \InvalidArgumentException - */ - public function attribute($key, $value) - { - if (! in_array($key, $this->allowedAttributes)) { - throw new InvalidArgumentException("Attribute [{$key}] does not exist."); - } - - $this->attributes[Arr::get($this->aliases, $key, $key)] = $value; - - return $this; - } - - /** - * Route a resource to a controller. - * - * @param string $name - * @param string $controller - * @param array $options - * @return \Illuminate\Routing\PendingResourceRegistration - */ - public function resource($name, $controller, array $options = []) - { - return $this->router->resource($name, $controller, $this->attributes + $options); - } - - /** - * Create a route group with shared attributes. - * - * @param \Closure|string $callback - * @return void - */ - public function group($callback) - { - $this->router->group($this->attributes, $callback); - } - - /** - * Register a new route with the given verbs. - * - * @param array|string $methods - * @param string $uri - * @param \Closure|array|string|null $action - * @return \Illuminate\Routing\Route - */ - public function match($methods, $uri, $action = null) - { - return $this->router->match($methods, $uri, $this->compileAction($action)); - } - - /** - * Register a new route with the router. - * - * @param string $method - * @param string $uri - * @param \Closure|array|string|null $action - * @return \Illuminate\Routing\Route - */ - protected function registerRoute($method, $uri, $action = null) - { - if (! is_array($action)) { - $action = array_merge($this->attributes, $action ? ['uses' => $action] : []); - } - - return $this->router->{$method}($uri, $this->compileAction($action)); - } - - /** - * Compile the action into an array including the attributes. - * - * @param \Closure|array|string|null $action - * @return array - */ - protected function compileAction($action) - { - if (is_null($action)) { - return $this->attributes; - } - - if (is_string($action) || $action instanceof Closure) { - $action = ['uses' => $action]; - } - - return array_merge($this->attributes, $action); - } - - /** - * Dynamically handle calls into the route registrar. - * - * @param string $method - * @param array $parameters - * @return \Illuminate\Routing\Route|$this - * - * @throws \BadMethodCallException - */ - public function __call($method, $parameters) - { - if (in_array($method, $this->passthru)) { - return $this->registerRoute($method, ...$parameters); - } - - if (in_array($method, $this->allowedAttributes)) { - if ($method == 'middleware') { - return $this->attribute($method, is_array($parameters[0]) ? $parameters[0] : $parameters); - } - - return $this->attribute($method, $parameters[0]); - } - - throw new BadMethodCallException(sprintf( - 'Method %s::%s does not exist.', static::class, $method - )); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Routing/RouteSignatureParameters.php b/vendor/laravel/framework/src/Illuminate/Routing/RouteSignatureParameters.php deleted file mode 100644 index c09baeb9..00000000 --- a/vendor/laravel/framework/src/Illuminate/Routing/RouteSignatureParameters.php +++ /dev/null @@ -1,45 +0,0 @@ -getParameters(); - - return is_null($subClass) ? $parameters : array_filter($parameters, function ($p) use ($subClass) { - return $p->getClass() && $p->getClass()->isSubclassOf($subClass); - }); - } - - /** - * Get the parameters for the given class / method by string. - * - * @param string $uses - * @return array - */ - protected static function fromClassMethodString($uses) - { - list($class, $method) = Str::parseCallback($uses); - - if (! method_exists($class, $method) && is_callable($class, $method)) { - return []; - } - - return (new ReflectionMethod($class, $method))->getParameters(); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Routing/RouteUrlGenerator.php b/vendor/laravel/framework/src/Illuminate/Routing/RouteUrlGenerator.php deleted file mode 100644 index 768681d8..00000000 --- a/vendor/laravel/framework/src/Illuminate/Routing/RouteUrlGenerator.php +++ /dev/null @@ -1,313 +0,0 @@ - '/', - '%40' => '@', - '%3A' => ':', - '%3B' => ';', - '%2C' => ',', - '%3D' => '=', - '%2B' => '+', - '%21' => '!', - '%2A' => '*', - '%7C' => '|', - '%3F' => '?', - '%26' => '&', - '%23' => '#', - '%25' => '%', - ]; - - /** - * Create a new Route URL generator. - * - * @param \Illuminate\Routing\UrlGenerator $url - * @param \Illuminate\Http\Request $request - * @return void - */ - public function __construct($url, $request) - { - $this->url = $url; - $this->request = $request; - } - - /** - * Generate a URL for the given route. - * - * @param \Illuminate\Routing\Route $route - * @param array $parameters - * @param bool $absolute - * @return string - * - * @throws \Illuminate\Routing\Exceptions\UrlGenerationException - */ - public function to($route, $parameters = [], $absolute = false) - { - $domain = $this->getRouteDomain($route, $parameters); - - // First we will construct the entire URI including the root and query string. Once it - // has been constructed, we'll make sure we don't have any missing parameters or we - // will need to throw the exception to let the developers know one was not given. - $uri = $this->addQueryString($this->url->format( - $this->replaceRootParameters($route, $domain, $parameters), - $this->replaceRouteParameters($route->uri(), $parameters) - ), $parameters); - - if (preg_match('/\{.*?\}/', $uri)) { - throw UrlGenerationException::forMissingParameters($route); - } - - // Once we have ensured that there are no missing parameters in the URI we will encode - // the URI and prepare it for returning to the developer. If the URI is supposed to - // be absolute, we will return it as-is. Otherwise we will remove the URL's root. - $uri = strtr(rawurlencode($uri), $this->dontEncode); - - if (! $absolute) { - $uri = preg_replace('#^(//|[^/?])+#', '', $uri); - - if ($base = $this->request->getBaseUrl()) { - $uri = preg_replace('#^'.$base.'#i', '', $uri); - } - - return '/'.ltrim($uri, '/'); - } - - return $uri; - } - - /** - * Get the formatted domain for a given route. - * - * @param \Illuminate\Routing\Route $route - * @param array $parameters - * @return string - */ - protected function getRouteDomain($route, &$parameters) - { - return $route->getDomain() ? $this->formatDomain($route, $parameters) : null; - } - - /** - * Format the domain and port for the route and request. - * - * @param \Illuminate\Routing\Route $route - * @param array $parameters - * @return string - */ - protected function formatDomain($route, &$parameters) - { - return $this->addPortToDomain( - $this->getRouteScheme($route).$route->getDomain() - ); - } - - /** - * Get the scheme for the given route. - * - * @param \Illuminate\Routing\Route $route - * @return string - */ - protected function getRouteScheme($route) - { - if ($route->httpOnly()) { - return 'http://'; - } elseif ($route->httpsOnly()) { - return 'https://'; - } - - return $this->url->formatScheme(null); - } - - /** - * Add the port to the domain if necessary. - * - * @param string $domain - * @return string - */ - protected function addPortToDomain($domain) - { - $secure = $this->request->isSecure(); - - $port = (int) $this->request->getPort(); - - return ($secure && $port === 443) || (! $secure && $port === 80) - ? $domain : $domain.':'.$port; - } - - /** - * Replace the parameters on the root path. - * - * @param \Illuminate\Routing\Route $route - * @param string $domain - * @param array $parameters - * @return string - */ - protected function replaceRootParameters($route, $domain, &$parameters) - { - $scheme = $this->getRouteScheme($route); - - return $this->replaceRouteParameters( - $this->url->formatRoot($scheme, $domain), $parameters - ); - } - - /** - * Replace all of the wildcard parameters for a route path. - * - * @param string $path - * @param array $parameters - * @return string - */ - protected function replaceRouteParameters($path, array &$parameters) - { - $path = $this->replaceNamedParameters($path, $parameters); - - $path = preg_replace_callback('/\{.*?\}/', function ($match) use (&$parameters) { - return (empty($parameters) && ! Str::endsWith($match[0], '?}')) - ? $match[0] - : array_shift($parameters); - }, $path); - - return trim(preg_replace('/\{.*?\?\}/', '', $path), '/'); - } - - /** - * Replace all of the named parameters in the path. - * - * @param string $path - * @param array $parameters - * @return string - */ - protected function replaceNamedParameters($path, &$parameters) - { - return preg_replace_callback('/\{(.*?)\??\}/', function ($m) use (&$parameters) { - if (isset($parameters[$m[1]])) { - return Arr::pull($parameters, $m[1]); - } elseif (isset($this->defaultParameters[$m[1]])) { - return $this->defaultParameters[$m[1]]; - } - - return $m[0]; - }, $path); - } - - /** - * Add a query string to the URI. - * - * @param string $uri - * @param array $parameters - * @return mixed|string - */ - protected function addQueryString($uri, array $parameters) - { - // If the URI has a fragment we will move it to the end of this URI since it will - // need to come after any query string that may be added to the URL else it is - // not going to be available. We will remove it then append it back on here. - if (! is_null($fragment = parse_url($uri, PHP_URL_FRAGMENT))) { - $uri = preg_replace('/#.*/', '', $uri); - } - - $uri .= $this->getRouteQueryString($parameters); - - return is_null($fragment) ? $uri : $uri."#{$fragment}"; - } - - /** - * Get the query string for a given route. - * - * @param array $parameters - * @return string - */ - protected function getRouteQueryString(array $parameters) - { - // First we will get all of the string parameters that are remaining after we - // have replaced the route wildcards. We'll then build a query string from - // these string parameters then use it as a starting point for the rest. - if (count($parameters) == 0) { - return ''; - } - - $query = http_build_query( - $keyed = $this->getStringParameters($parameters) - ); - - // Lastly, if there are still parameters remaining, we will fetch the numeric - // parameters that are in the array and add them to the query string or we - // will make the initial query string if it wasn't started with strings. - if (count($keyed) < count($parameters)) { - $query .= '&'.implode( - '&', $this->getNumericParameters($parameters) - ); - } - - return '?'.trim($query, '&'); - } - - /** - * Get the string parameters from a given list. - * - * @param array $parameters - * @return array - */ - protected function getStringParameters(array $parameters) - { - return array_filter($parameters, 'is_string', ARRAY_FILTER_USE_KEY); - } - - /** - * Get the numeric parameters from a given list. - * - * @param array $parameters - * @return array - */ - protected function getNumericParameters(array $parameters) - { - return array_filter($parameters, 'is_numeric', ARRAY_FILTER_USE_KEY); - } - - /** - * Set the default named parameters used by the URL generator. - * - * @param array $defaults - * @return void - */ - public function defaults(array $defaults) - { - $this->defaultParameters = array_merge( - $this->defaultParameters, $defaults - ); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Routing/Router.php b/vendor/laravel/framework/src/Illuminate/Routing/Router.php deleted file mode 100644 index 56ea8298..00000000 --- a/vendor/laravel/framework/src/Illuminate/Routing/Router.php +++ /dev/null @@ -1,1226 +0,0 @@ -events = $events; - $this->routes = new RouteCollection; - $this->container = $container ?: new Container; - } - - /** - * Register a new GET route with the router. - * - * @param string $uri - * @param \Closure|array|string|null $action - * @return \Illuminate\Routing\Route - */ - public function get($uri, $action = null) - { - return $this->addRoute(['GET', 'HEAD'], $uri, $action); - } - - /** - * Register a new POST route with the router. - * - * @param string $uri - * @param \Closure|array|string|null $action - * @return \Illuminate\Routing\Route - */ - public function post($uri, $action = null) - { - return $this->addRoute('POST', $uri, $action); - } - - /** - * Register a new PUT route with the router. - * - * @param string $uri - * @param \Closure|array|string|null $action - * @return \Illuminate\Routing\Route - */ - public function put($uri, $action = null) - { - return $this->addRoute('PUT', $uri, $action); - } - - /** - * Register a new PATCH route with the router. - * - * @param string $uri - * @param \Closure|array|string|null $action - * @return \Illuminate\Routing\Route - */ - public function patch($uri, $action = null) - { - return $this->addRoute('PATCH', $uri, $action); - } - - /** - * Register a new DELETE route with the router. - * - * @param string $uri - * @param \Closure|array|string|null $action - * @return \Illuminate\Routing\Route - */ - public function delete($uri, $action = null) - { - return $this->addRoute('DELETE', $uri, $action); - } - - /** - * Register a new OPTIONS route with the router. - * - * @param string $uri - * @param \Closure|array|string|null $action - * @return \Illuminate\Routing\Route - */ - public function options($uri, $action = null) - { - return $this->addRoute('OPTIONS', $uri, $action); - } - - /** - * Register a new route responding to all verbs. - * - * @param string $uri - * @param \Closure|array|string|null $action - * @return \Illuminate\Routing\Route - */ - public function any($uri, $action = null) - { - return $this->addRoute(self::$verbs, $uri, $action); - } - - /** - * Register a new Fallback route with the router. - * - * @param \Closure|array|string|null $action - * @return \Illuminate\Routing\Route - */ - public function fallback($action) - { - $placeholder = 'fallbackPlaceholder'; - - return $this->addRoute( - 'GET', "{{$placeholder}}", $action - )->where($placeholder, '.*')->fallback(); - } - - /** - * Create a redirect from one URI to another. - * - * @param string $uri - * @param string $destination - * @param int $status - * @return \Illuminate\Routing\Route - */ - public function redirect($uri, $destination, $status = 301) - { - return $this->any($uri, '\Illuminate\Routing\RedirectController') - ->defaults('destination', $destination) - ->defaults('status', $status); - } - - /** - * Register a new route that returns a view. - * - * @param string $uri - * @param string $view - * @param array $data - * @return \Illuminate\Routing\Route - */ - public function view($uri, $view, $data = []) - { - return $this->match(['GET', 'HEAD'], $uri, '\Illuminate\Routing\ViewController') - ->defaults('view', $view) - ->defaults('data', $data); - } - - /** - * Register a new route with the given verbs. - * - * @param array|string $methods - * @param string $uri - * @param \Closure|array|string|null $action - * @return \Illuminate\Routing\Route - */ - public function match($methods, $uri, $action = null) - { - return $this->addRoute(array_map('strtoupper', (array) $methods), $uri, $action); - } - - /** - * Register an array of resource controllers. - * - * @param array $resources - * @return void - */ - public function resources(array $resources) - { - foreach ($resources as $name => $controller) { - $this->resource($name, $controller); - } - } - - /** - * Route a resource to a controller. - * - * @param string $name - * @param string $controller - * @param array $options - * @return \Illuminate\Routing\PendingResourceRegistration - */ - public function resource($name, $controller, array $options = []) - { - if ($this->container && $this->container->bound(ResourceRegistrar::class)) { - $registrar = $this->container->make(ResourceRegistrar::class); - } else { - $registrar = new ResourceRegistrar($this); - } - - return new PendingResourceRegistration( - $registrar, $name, $controller, $options - ); - } - - /** - * Register an array of API resource controllers. - * - * @param array $resources - * @return void - */ - public function apiResources(array $resources) - { - foreach ($resources as $name => $controller) { - $this->apiResource($name, $controller); - } - } - - /** - * Route an API resource to a controller. - * - * @param string $name - * @param string $controller - * @param array $options - * @return \Illuminate\Routing\PendingResourceRegistration - */ - public function apiResource($name, $controller, array $options = []) - { - $only = ['index', 'show', 'store', 'update', 'destroy']; - - if (isset($options['except'])) { - $only = array_diff($only, (array) $options['except']); - } - - return $this->resource($name, $controller, array_merge([ - 'only' => $only, - ], $options)); - } - - /** - * Create a route group with shared attributes. - * - * @param array $attributes - * @param \Closure|string $routes - * @return void - */ - public function group(array $attributes, $routes) - { - $this->updateGroupStack($attributes); - - // Once we have updated the group stack, we'll load the provided routes and - // merge in the group's attributes when the routes are created. After we - // have created the routes, we will pop the attributes off the stack. - $this->loadRoutes($routes); - - array_pop($this->groupStack); - } - - /** - * Update the group stack with the given attributes. - * - * @param array $attributes - * @return void - */ - protected function updateGroupStack(array $attributes) - { - if (! empty($this->groupStack)) { - $attributes = RouteGroup::merge($attributes, end($this->groupStack)); - } - - $this->groupStack[] = $attributes; - } - - /** - * Merge the given array with the last group stack. - * - * @param array $new - * @return array - */ - public function mergeWithLastGroup($new) - { - return RouteGroup::merge($new, end($this->groupStack)); - } - - /** - * Load the provided routes. - * - * @param \Closure|string $routes - * @return void - */ - protected function loadRoutes($routes) - { - if ($routes instanceof Closure) { - $routes($this); - } else { - $router = $this; - - require $routes; - } - } - - /** - * Get the prefix from the last group on the stack. - * - * @return string - */ - public function getLastGroupPrefix() - { - if (! empty($this->groupStack)) { - $last = end($this->groupStack); - - return $last['prefix'] ?? ''; - } - - return ''; - } - - /** - * Add a route to the underlying route collection. - * - * @param array|string $methods - * @param string $uri - * @param \Closure|array|string|null $action - * @return \Illuminate\Routing\Route - */ - protected function addRoute($methods, $uri, $action) - { - return $this->routes->add($this->createRoute($methods, $uri, $action)); - } - - /** - * Create a new route instance. - * - * @param array|string $methods - * @param string $uri - * @param mixed $action - * @return \Illuminate\Routing\Route - */ - protected function createRoute($methods, $uri, $action) - { - // If the route is routing to a controller we will parse the route action into - // an acceptable array format before registering it and creating this route - // instance itself. We need to build the Closure that will call this out. - if ($this->actionReferencesController($action)) { - $action = $this->convertToControllerAction($action); - } - - $route = $this->newRoute( - $methods, $this->prefix($uri), $action - ); - - // If we have groups that need to be merged, we will merge them now after this - // route has already been created and is ready to go. After we're done with - // the merge we will be ready to return the route back out to the caller. - if ($this->hasGroupStack()) { - $this->mergeGroupAttributesIntoRoute($route); - } - - $this->addWhereClausesToRoute($route); - - return $route; - } - - /** - * Determine if the action is routing to a controller. - * - * @param array $action - * @return bool - */ - protected function actionReferencesController($action) - { - if (! $action instanceof Closure) { - return is_string($action) || (isset($action['uses']) && is_string($action['uses'])); - } - - return false; - } - - /** - * Add a controller based route action to the action array. - * - * @param array|string $action - * @return array - */ - protected function convertToControllerAction($action) - { - if (is_string($action)) { - $action = ['uses' => $action]; - } - - // Here we'll merge any group "uses" statement if necessary so that the action - // has the proper clause for this property. Then we can simply set the name - // of the controller on the action and return the action array for usage. - if (! empty($this->groupStack)) { - $action['uses'] = $this->prependGroupNamespace($action['uses']); - } - - // Here we will set this controller name on the action array just so we always - // have a copy of it for reference if we need it. This can be used while we - // search for a controller name or do some other type of fetch operation. - $action['controller'] = $action['uses']; - - return $action; - } - - /** - * Prepend the last group namespace onto the use clause. - * - * @param string $class - * @return string - */ - protected function prependGroupNamespace($class) - { - $group = end($this->groupStack); - - return isset($group['namespace']) && strpos($class, '\\') !== 0 - ? $group['namespace'].'\\'.$class : $class; - } - - /** - * Create a new Route object. - * - * @param array|string $methods - * @param string $uri - * @param mixed $action - * @return \Illuminate\Routing\Route - */ - protected function newRoute($methods, $uri, $action) - { - return (new Route($methods, $uri, $action)) - ->setRouter($this) - ->setContainer($this->container); - } - - /** - * Prefix the given URI with the last prefix. - * - * @param string $uri - * @return string - */ - protected function prefix($uri) - { - return trim(trim($this->getLastGroupPrefix(), '/').'/'.trim($uri, '/'), '/') ?: '/'; - } - - /** - * Add the necessary where clauses to the route based on its initial registration. - * - * @param \Illuminate\Routing\Route $route - * @return \Illuminate\Routing\Route - */ - protected function addWhereClausesToRoute($route) - { - $route->where(array_merge( - $this->patterns, $route->getAction()['where'] ?? [] - )); - - return $route; - } - - /** - * Merge the group stack with the controller action. - * - * @param \Illuminate\Routing\Route $route - * @return void - */ - protected function mergeGroupAttributesIntoRoute($route) - { - $route->setAction($this->mergeWithLastGroup($route->getAction())); - } - - /** - * Return the response returned by the given route. - * - * @param string $name - * @return mixed - */ - public function respondWithRoute($name) - { - $route = tap($this->routes->getByName($name))->bind($this->currentRequest); - - return $this->runRoute($this->currentRequest, $route); - } - - /** - * Dispatch the request to the application. - * - * @param \Illuminate\Http\Request $request - * @return \Illuminate\Http\Response|\Illuminate\Http\JsonResponse - */ - public function dispatch(Request $request) - { - $this->currentRequest = $request; - - return $this->dispatchToRoute($request); - } - - /** - * Dispatch the request to a route and return the response. - * - * @param \Illuminate\Http\Request $request - * @return mixed - */ - public function dispatchToRoute(Request $request) - { - return $this->runRoute($request, $this->findRoute($request)); - } - - /** - * Find the route matching a given request. - * - * @param \Illuminate\Http\Request $request - * @return \Illuminate\Routing\Route - */ - protected function findRoute($request) - { - $this->current = $route = $this->routes->match($request); - - $this->container->instance(Route::class, $route); - - return $route; - } - - /** - * Return the response for the given route. - * - * @param \Illuminate\Http\Request $request - * @param \Illuminate\Routing\Route $route - * @return mixed - */ - protected function runRoute(Request $request, Route $route) - { - $request->setRouteResolver(function () use ($route) { - return $route; - }); - - $this->events->dispatch(new Events\RouteMatched($route, $request)); - - return $this->prepareResponse($request, - $this->runRouteWithinStack($route, $request) - ); - } - - /** - * Run the given route within a Stack "onion" instance. - * - * @param \Illuminate\Routing\Route $route - * @param \Illuminate\Http\Request $request - * @return mixed - */ - protected function runRouteWithinStack(Route $route, Request $request) - { - $shouldSkipMiddleware = $this->container->bound('middleware.disable') && - $this->container->make('middleware.disable') === true; - - $middleware = $shouldSkipMiddleware ? [] : $this->gatherRouteMiddleware($route); - - return (new Pipeline($this->container)) - ->send($request) - ->through($middleware) - ->then(function ($request) use ($route) { - return $this->prepareResponse( - $request, $route->run() - ); - }); - } - - /** - * Gather the middleware for the given route with resolved class names. - * - * @param \Illuminate\Routing\Route $route - * @return array - */ - public function gatherRouteMiddleware(Route $route) - { - $middleware = collect($route->gatherMiddleware())->map(function ($name) { - return (array) MiddlewareNameResolver::resolve($name, $this->middleware, $this->middlewareGroups); - })->flatten(); - - return $this->sortMiddleware($middleware); - } - - /** - * Sort the given middleware by priority. - * - * @param \Illuminate\Support\Collection $middlewares - * @return array - */ - protected function sortMiddleware(Collection $middlewares) - { - return (new SortedMiddleware($this->middlewarePriority, $middlewares))->all(); - } - - /** - * Create a response instance from the given value. - * - * @param \Symfony\Component\HttpFoundation\Request $request - * @param mixed $response - * @return \Illuminate\Http\Response|\Illuminate\Http\JsonResponse - */ - public function prepareResponse($request, $response) - { - return static::toResponse($request, $response); - } - - /** - * Static version of prepareResponse. - * - * @param \Symfony\Component\HttpFoundation\Request $request - * @param mixed $response - * @return \Illuminate\Http\Response|\Illuminate\Http\JsonResponse - */ - public static function toResponse($request, $response) - { - if ($response instanceof Responsable) { - $response = $response->toResponse($request); - } - - if ($response instanceof PsrResponseInterface) { - $response = (new HttpFoundationFactory)->createResponse($response); - } elseif ($response instanceof Model && $response->wasRecentlyCreated) { - $response = new JsonResponse($response, 201); - } elseif (! $response instanceof SymfonyResponse && - ($response instanceof Arrayable || - $response instanceof Jsonable || - $response instanceof ArrayObject || - $response instanceof JsonSerializable || - is_array($response))) { - $response = new JsonResponse($response); - } elseif (! $response instanceof SymfonyResponse) { - $response = new Response($response); - } - - if ($response->getStatusCode() === Response::HTTP_NOT_MODIFIED) { - $response->setNotModified(); - } - - return $response->prepare($request); - } - - /** - * Substitute the route bindings onto the route. - * - * @param \Illuminate\Routing\Route $route - * @return \Illuminate\Routing\Route - */ - public function substituteBindings($route) - { - foreach ($route->parameters() as $key => $value) { - if (isset($this->binders[$key])) { - $route->setParameter($key, $this->performBinding($key, $value, $route)); - } - } - - return $route; - } - - /** - * Substitute the implicit Eloquent model bindings for the route. - * - * @param \Illuminate\Routing\Route $route - * @return void - */ - public function substituteImplicitBindings($route) - { - ImplicitRouteBinding::resolveForRoute($this->container, $route); - } - - /** - * Call the binding callback for the given key. - * - * @param string $key - * @param string $value - * @param \Illuminate\Routing\Route $route - * @return mixed - */ - protected function performBinding($key, $value, $route) - { - return call_user_func($this->binders[$key], $value, $route); - } - - /** - * Register a route matched event listener. - * - * @param string|callable $callback - * @return void - */ - public function matched($callback) - { - $this->events->listen(Events\RouteMatched::class, $callback); - } - - /** - * Get all of the defined middleware short-hand names. - * - * @return array - */ - public function getMiddleware() - { - return $this->middleware; - } - - /** - * Register a short-hand name for a middleware. - * - * @param string $name - * @param string $class - * @return $this - */ - public function aliasMiddleware($name, $class) - { - $this->middleware[$name] = $class; - - return $this; - } - - /** - * Check if a middlewareGroup with the given name exists. - * - * @param string $name - * @return bool - */ - public function hasMiddlewareGroup($name) - { - return array_key_exists($name, $this->middlewareGroups); - } - - /** - * Get all of the defined middleware groups. - * - * @return array - */ - public function getMiddlewareGroups() - { - return $this->middlewareGroups; - } - - /** - * Register a group of middleware. - * - * @param string $name - * @param array $middleware - * @return $this - */ - public function middlewareGroup($name, array $middleware) - { - $this->middlewareGroups[$name] = $middleware; - - return $this; - } - - /** - * Add a middleware to the beginning of a middleware group. - * - * If the middleware is already in the group, it will not be added again. - * - * @param string $group - * @param string $middleware - * @return $this - */ - public function prependMiddlewareToGroup($group, $middleware) - { - if (isset($this->middlewareGroups[$group]) && ! in_array($middleware, $this->middlewareGroups[$group])) { - array_unshift($this->middlewareGroups[$group], $middleware); - } - - return $this; - } - - /** - * Add a middleware to the end of a middleware group. - * - * If the middleware is already in the group, it will not be added again. - * - * @param string $group - * @param string $middleware - * @return $this - */ - public function pushMiddlewareToGroup($group, $middleware) - { - if (! array_key_exists($group, $this->middlewareGroups)) { - $this->middlewareGroups[$group] = []; - } - - if (! in_array($middleware, $this->middlewareGroups[$group])) { - $this->middlewareGroups[$group][] = $middleware; - } - - return $this; - } - - /** - * Add a new route parameter binder. - * - * @param string $key - * @param string|callable $binder - * @return void - */ - public function bind($key, $binder) - { - $this->binders[str_replace('-', '_', $key)] = RouteBinding::forCallback( - $this->container, $binder - ); - } - - /** - * Register a model binder for a wildcard. - * - * @param string $key - * @param string $class - * @param \Closure|null $callback - * @return void - * - * @throws \Illuminate\Database\Eloquent\ModelNotFoundException - */ - public function model($key, $class, Closure $callback = null) - { - $this->bind($key, RouteBinding::forModel($this->container, $class, $callback)); - } - - /** - * Get the binding callback for a given binding. - * - * @param string $key - * @return \Closure|null - */ - public function getBindingCallback($key) - { - if (isset($this->binders[$key = str_replace('-', '_', $key)])) { - return $this->binders[$key]; - } - } - - /** - * Get the global "where" patterns. - * - * @return array - */ - public function getPatterns() - { - return $this->patterns; - } - - /** - * Set a global where pattern on all routes. - * - * @param string $key - * @param string $pattern - * @return void - */ - public function pattern($key, $pattern) - { - $this->patterns[$key] = $pattern; - } - - /** - * Set a group of global where patterns on all routes. - * - * @param array $patterns - * @return void - */ - public function patterns($patterns) - { - foreach ($patterns as $key => $pattern) { - $this->pattern($key, $pattern); - } - } - - /** - * Determine if the router currently has a group stack. - * - * @return bool - */ - public function hasGroupStack() - { - return ! empty($this->groupStack); - } - - /** - * Get the current group stack for the router. - * - * @return array - */ - public function getGroupStack() - { - return $this->groupStack; - } - - /** - * Get a route parameter for the current route. - * - * @param string $key - * @param string $default - * @return mixed - */ - public function input($key, $default = null) - { - return $this->current()->parameter($key, $default); - } - - /** - * Get the request currently being dispatched. - * - * @return \Illuminate\Http\Request - */ - public function getCurrentRequest() - { - return $this->currentRequest; - } - - /** - * Get the currently dispatched route instance. - * - * @return \Illuminate\Routing\Route - */ - public function getCurrentRoute() - { - return $this->current(); - } - - /** - * Get the currently dispatched route instance. - * - * @return \Illuminate\Routing\Route - */ - public function current() - { - return $this->current; - } - - /** - * Check if a route with the given name exists. - * - * @param string $name - * @return bool - */ - public function has($name) - { - $names = is_array($name) ? $name : func_get_args(); - - foreach ($names as $value) { - if (! $this->routes->hasNamedRoute($value)) { - return false; - } - } - - return true; - } - - /** - * Get the current route name. - * - * @return string|null - */ - public function currentRouteName() - { - return $this->current() ? $this->current()->getName() : null; - } - - /** - * Alias for the "currentRouteNamed" method. - * - * @param dynamic $patterns - * @return bool - */ - public function is(...$patterns) - { - return $this->currentRouteNamed(...$patterns); - } - - /** - * Determine if the current route matches a pattern. - * - * @param dynamic $patterns - * @return bool - */ - public function currentRouteNamed(...$patterns) - { - return $this->current() && $this->current()->named(...$patterns); - } - - /** - * Get the current route action. - * - * @return string|null - */ - public function currentRouteAction() - { - if ($this->current()) { - return $this->current()->getAction()['controller'] ?? null; - } - } - - /** - * Alias for the "currentRouteUses" method. - * - * @param array ...$patterns - * @return bool - */ - public function uses(...$patterns) - { - foreach ($patterns as $pattern) { - if (Str::is($pattern, $this->currentRouteAction())) { - return true; - } - } - - return false; - } - - /** - * Determine if the current route action matches a given action. - * - * @param string $action - * @return bool - */ - public function currentRouteUses($action) - { - return $this->currentRouteAction() == $action; - } - - /** - * Register the typical authentication routes for an application. - * - * @return void - */ - public function auth() - { - // Authentication Routes... - $this->get('login', 'Auth\LoginController@showLoginForm')->name('login'); - $this->post('login', 'Auth\LoginController@login'); - $this->post('logout', 'Auth\LoginController@logout')->name('logout'); - - // Registration Routes... - $this->get('register', 'Auth\RegisterController@showRegistrationForm')->name('register'); - $this->post('register', 'Auth\RegisterController@register'); - - // Password Reset Routes... - $this->get('password/reset', 'Auth\ForgotPasswordController@showLinkRequestForm')->name('password.request'); - $this->post('password/email', 'Auth\ForgotPasswordController@sendResetLinkEmail')->name('password.email'); - $this->get('password/reset/{token}', 'Auth\ResetPasswordController@showResetForm')->name('password.reset'); - $this->post('password/reset', 'Auth\ResetPasswordController@reset'); - } - - /** - * Set the unmapped global resource parameters to singular. - * - * @param bool $singular - * @return void - */ - public function singularResourceParameters($singular = true) - { - ResourceRegistrar::singularParameters($singular); - } - - /** - * Set the global resource parameter mapping. - * - * @param array $parameters - * @return void - */ - public function resourceParameters(array $parameters = []) - { - ResourceRegistrar::setParameters($parameters); - } - - /** - * Get or set the verbs used in the resource URIs. - * - * @param array $verbs - * @return array|null - */ - public function resourceVerbs(array $verbs = []) - { - return ResourceRegistrar::verbs($verbs); - } - - /** - * Get the underlying route collection. - * - * @return \Illuminate\Routing\RouteCollection - */ - public function getRoutes() - { - return $this->routes; - } - - /** - * Set the route collection instance. - * - * @param \Illuminate\Routing\RouteCollection $routes - * @return void - */ - public function setRoutes(RouteCollection $routes) - { - foreach ($routes as $route) { - $route->setRouter($this)->setContainer($this->container); - } - - $this->routes = $routes; - - $this->container->instance('routes', $this->routes); - } - - /** - * Dynamically handle calls into the router instance. - * - * @param string $method - * @param array $parameters - * @return mixed - */ - public function __call($method, $parameters) - { - if (static::hasMacro($method)) { - return $this->macroCall($method, $parameters); - } - - if ($method == 'middleware') { - return (new RouteRegistrar($this))->attribute($method, is_array($parameters[0]) ? $parameters[0] : $parameters); - } - - return (new RouteRegistrar($this))->attribute($method, $parameters[0]); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Routing/RoutingServiceProvider.php b/vendor/laravel/framework/src/Illuminate/Routing/RoutingServiceProvider.php deleted file mode 100755 index 74b4a1fb..00000000 --- a/vendor/laravel/framework/src/Illuminate/Routing/RoutingServiceProvider.php +++ /dev/null @@ -1,167 +0,0 @@ -registerRouter(); - $this->registerUrlGenerator(); - $this->registerRedirector(); - $this->registerPsrRequest(); - $this->registerPsrResponse(); - $this->registerResponseFactory(); - $this->registerControllerDispatcher(); - } - - /** - * Register the router instance. - * - * @return void - */ - protected function registerRouter() - { - $this->app->singleton('router', function ($app) { - return new Router($app['events'], $app); - }); - } - - /** - * Register the URL generator service. - * - * @return void - */ - protected function registerUrlGenerator() - { - $this->app->singleton('url', function ($app) { - $routes = $app['router']->getRoutes(); - - // The URL generator needs the route collection that exists on the router. - // Keep in mind this is an object, so we're passing by references here - // and all the registered routes will be available to the generator. - $app->instance('routes', $routes); - - $url = new UrlGenerator( - $routes, $app->rebinding( - 'request', $this->requestRebinder() - ) - ); - - // Next we will set a few service resolvers on the URL generator so it can - // get the information it needs to function. This just provides some of - // the convenience features to this URL generator like "signed" URLs. - $url->setSessionResolver(function () { - return $this->app['session']; - }); - - $url->setKeyResolver(function () { - return $this->app->make('config')->get('app.key'); - }); - - // If the route collection is "rebound", for example, when the routes stay - // cached for the application, we will need to rebind the routes on the - // URL generator instance so it has the latest version of the routes. - $app->rebinding('routes', function ($app, $routes) { - $app['url']->setRoutes($routes); - }); - - return $url; - }); - } - - /** - * Get the URL generator request rebinder. - * - * @return \Closure - */ - protected function requestRebinder() - { - return function ($app, $request) { - $app['url']->setRequest($request); - }; - } - - /** - * Register the Redirector service. - * - * @return void - */ - protected function registerRedirector() - { - $this->app->singleton('redirect', function ($app) { - $redirector = new Redirector($app['url']); - - // If the session is set on the application instance, we'll inject it into - // the redirector instance. This allows the redirect responses to allow - // for the quite convenient "with" methods that flash to the session. - if (isset($app['session.store'])) { - $redirector->setSession($app['session.store']); - } - - return $redirector; - }); - } - - /** - * Register a binding for the PSR-7 request implementation. - * - * @return void - */ - protected function registerPsrRequest() - { - $this->app->bind(ServerRequestInterface::class, function ($app) { - return (new DiactorosFactory)->createRequest($app->make('request')); - }); - } - - /** - * Register a binding for the PSR-7 response implementation. - * - * @return void - */ - protected function registerPsrResponse() - { - $this->app->bind(ResponseInterface::class, function ($app) { - return new PsrResponse; - }); - } - - /** - * Register the response factory implementation. - * - * @return void - */ - protected function registerResponseFactory() - { - $this->app->singleton(ResponseFactoryContract::class, function ($app) { - return new ResponseFactory($app[ViewFactoryContract::class], $app['redirect']); - }); - } - - /** - * Register the controller dispatcher. - * - * @return void - */ - protected function registerControllerDispatcher() - { - $this->app->singleton(ControllerDispatcherContract::class, function ($app) { - return new ControllerDispatcher($app); - }); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Routing/SortedMiddleware.php b/vendor/laravel/framework/src/Illuminate/Routing/SortedMiddleware.php deleted file mode 100644 index ad094567..00000000 --- a/vendor/laravel/framework/src/Illuminate/Routing/SortedMiddleware.php +++ /dev/null @@ -1,84 +0,0 @@ -all(); - } - - $this->items = $this->sortMiddleware($priorityMap, $middlewares); - } - - /** - * Sort the middlewares by the given priority map. - * - * Each call to this method makes one discrete middleware movement if necessary. - * - * @param array $priorityMap - * @param array $middlewares - * @return array - */ - protected function sortMiddleware($priorityMap, $middlewares) - { - $lastIndex = 0; - - foreach ($middlewares as $index => $middleware) { - if (! is_string($middleware)) { - continue; - } - - $stripped = head(explode(':', $middleware)); - - if (in_array($stripped, $priorityMap)) { - $priorityIndex = array_search($stripped, $priorityMap); - - // This middleware is in the priority map. If we have encountered another middleware - // that was also in the priority map and was at a lower priority than the current - // middleware, we will move this middleware to be above the previous encounter. - if (isset($lastPriorityIndex) && $priorityIndex < $lastPriorityIndex) { - return $this->sortMiddleware( - $priorityMap, array_values($this->moveMiddleware($middlewares, $index, $lastIndex)) - ); - } - - // This middleware is in the priority map; but, this is the first middleware we have - // encountered from the map thus far. We'll save its current index plus its index - // from the priority map so we can compare against them on the next iterations. - $lastIndex = $index; - $lastPriorityIndex = $priorityIndex; - } - } - - return array_values(array_unique($middlewares, SORT_REGULAR)); - } - - /** - * Splice a middleware into a new position and remove the old entry. - * - * @param array $middlewares - * @param int $from - * @param int $to - * @return array - */ - protected function moveMiddleware($middlewares, $from, $to) - { - array_splice($middlewares, $to, 0, $middlewares[$from]); - - unset($middlewares[$from + 1]); - - return $middlewares; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Routing/UrlGenerator.php b/vendor/laravel/framework/src/Illuminate/Routing/UrlGenerator.php deleted file mode 100755 index 49b8c78a..00000000 --- a/vendor/laravel/framework/src/Illuminate/Routing/UrlGenerator.php +++ /dev/null @@ -1,709 +0,0 @@ -routes = $routes; - - $this->setRequest($request); - } - - /** - * Get the full URL for the current request. - * - * @return string - */ - public function full() - { - return $this->request->fullUrl(); - } - - /** - * Get the current URL for the request. - * - * @return string - */ - public function current() - { - return $this->to($this->request->getPathInfo()); - } - - /** - * Get the URL for the previous request. - * - * @param mixed $fallback - * @return string - */ - public function previous($fallback = false) - { - $referrer = $this->request->headers->get('referer'); - - $url = $referrer ? $this->to($referrer) : $this->getPreviousUrlFromSession(); - - if ($url) { - return $url; - } elseif ($fallback) { - return $this->to($fallback); - } - - return $this->to('/'); - } - - /** - * Get the previous URL from the session if possible. - * - * @return string|null - */ - protected function getPreviousUrlFromSession() - { - $session = $this->getSession(); - - return $session ? $session->previousUrl() : null; - } - - /** - * Generate an absolute URL to the given path. - * - * @param string $path - * @param mixed $extra - * @param bool|null $secure - * @return string - */ - public function to($path, $extra = [], $secure = null) - { - // First we will check if the URL is already a valid URL. If it is we will not - // try to generate a new one but will simply return the URL as is, which is - // convenient since developers do not always have to check if it's valid. - if ($this->isValidUrl($path)) { - return $path; - } - - $tail = implode('/', array_map( - 'rawurlencode', (array) $this->formatParameters($extra)) - ); - - // Once we have the scheme we will compile the "tail" by collapsing the values - // into a single string delimited by slashes. This just makes it convenient - // for passing the array of parameters to this URL as a list of segments. - $root = $this->formatRoot($this->formatScheme($secure)); - - list($path, $query) = $this->extractQueryString($path); - - return $this->format( - $root, '/'.trim($path.'/'.$tail, '/') - ).$query; - } - - /** - * Generate a secure, absolute URL to the given path. - * - * @param string $path - * @param array $parameters - * @return string - */ - public function secure($path, $parameters = []) - { - return $this->to($path, $parameters, true); - } - - /** - * Generate the URL to an application asset. - * - * @param string $path - * @param bool|null $secure - * @return string - */ - public function asset($path, $secure = null) - { - if ($this->isValidUrl($path)) { - return $path; - } - - // Once we get the root URL, we will check to see if it contains an index.php - // file in the paths. If it does, we will remove it since it is not needed - // for asset paths, but only for routes to endpoints in the application. - $root = $this->formatRoot($this->formatScheme($secure)); - - return $this->removeIndex($root).'/'.trim($path, '/'); - } - - /** - * Generate the URL to a secure asset. - * - * @param string $path - * @return string - */ - public function secureAsset($path) - { - return $this->asset($path, true); - } - - /** - * Generate the URL to an asset from a custom root domain such as CDN, etc. - * - * @param string $root - * @param string $path - * @param bool|null $secure - * @return string - */ - public function assetFrom($root, $path, $secure = null) - { - // Once we get the root URL, we will check to see if it contains an index.php - // file in the paths. If it does, we will remove it since it is not needed - // for asset paths, but only for routes to endpoints in the application. - $root = $this->formatRoot($this->formatScheme($secure), $root); - - return $this->removeIndex($root).'/'.trim($path, '/'); - } - - /** - * Remove the index.php file from a path. - * - * @param string $root - * @return string - */ - protected function removeIndex($root) - { - $i = 'index.php'; - - return Str::contains($root, $i) ? str_replace('/'.$i, '', $root) : $root; - } - - /** - * Get the default scheme for a raw URL. - * - * @param bool|null $secure - * @return string - */ - public function formatScheme($secure) - { - if (! is_null($secure)) { - return $secure ? 'https://' : 'http://'; - } - - if (is_null($this->cachedSchema)) { - $this->cachedSchema = $this->forceScheme ?: $this->request->getScheme().'://'; - } - - return $this->cachedSchema; - } - - /** - * Create a signed route URL for a named route. - * - * @param string $name - * @param array $parameters - * @param \DateTimeInterface|int $expiration - * @return string - */ - public function signedRoute($name, $parameters = [], $expiration = null) - { - $parameters = $this->formatParameters($parameters); - - if ($expiration) { - $parameters = $parameters + ['expires' => $this->availableAt($expiration)]; - } - - ksort($parameters); - - $key = call_user_func($this->keyResolver); - - return $this->route($name, $parameters + [ - 'signature' => hash_hmac('sha256', $this->route($name, $parameters), $key), - ]); - } - - /** - * Create a temporary signed route URL for a named route. - * - * @param string $name - * @param \DateTimeInterface|int $expiration - * @param array $parameters - * @return string - */ - public function temporarySignedRoute($name, $expiration, $parameters = []) - { - return $this->signedRoute($name, $parameters, $expiration); - } - - /** - * Determine if the given request has a valid signature. - * - * @param \Illuminate\Http\Request $request - * @return bool - */ - public function hasValidSignature(Request $request) - { - $original = rtrim($request->url().'?'.http_build_query( - Arr::except($request->query(), 'signature') - ), '?'); - - $expires = Arr::get($request->query(), 'expires'); - - $signature = hash_hmac('sha256', $original, call_user_func($this->keyResolver)); - - return hash_equals($signature, $request->query('signature', '')) && - ! ($expires && Carbon::now()->getTimestamp() > $expires); - } - - /** - * Get the URL to a named route. - * - * @param string $name - * @param mixed $parameters - * @param bool $absolute - * @return string - * - * @throws \InvalidArgumentException - */ - public function route($name, $parameters = [], $absolute = true) - { - if (! is_null($route = $this->routes->getByName($name))) { - return $this->toRoute($route, $parameters, $absolute); - } - - throw new InvalidArgumentException("Route [{$name}] not defined."); - } - - /** - * Get the URL for a given route instance. - * - * @param \Illuminate\Routing\Route $route - * @param mixed $parameters - * @param bool $absolute - * @return string - * - * @throws \Illuminate\Routing\Exceptions\UrlGenerationException - */ - protected function toRoute($route, $parameters, $absolute) - { - return $this->routeUrl()->to( - $route, $this->formatParameters($parameters), $absolute - ); - } - - /** - * Get the URL to a controller action. - * - * @param string $action - * @param mixed $parameters - * @param bool $absolute - * @return string - * - * @throws \InvalidArgumentException - */ - public function action($action, $parameters = [], $absolute = true) - { - if (is_null($route = $this->routes->getByAction($action = $this->formatAction($action)))) { - throw new InvalidArgumentException("Action {$action} not defined."); - } - - return $this->toRoute($route, $parameters, $absolute); - } - - /** - * Format the given controller action. - * - * @param string $action - * @return string - */ - protected function formatAction($action) - { - if ($this->rootNamespace && ! (strpos($action, '\\') === 0)) { - return $this->rootNamespace.'\\'.$action; - } else { - return trim($action, '\\'); - } - } - - /** - * Format the array of URL parameters. - * - * @param mixed|array $parameters - * @return array - */ - public function formatParameters($parameters) - { - $parameters = Arr::wrap($parameters); - - foreach ($parameters as $key => $parameter) { - if ($parameter instanceof UrlRoutable) { - $parameters[$key] = $parameter->getRouteKey(); - } - } - - return $parameters; - } - - /** - * Extract the query string from the given path. - * - * @param string $path - * @return array - */ - protected function extractQueryString($path) - { - if (($queryPosition = strpos($path, '?')) !== false) { - return [ - substr($path, 0, $queryPosition), - substr($path, $queryPosition), - ]; - } - - return [$path, '']; - } - - /** - * Get the base URL for the request. - * - * @param string $scheme - * @param string $root - * @return string - */ - public function formatRoot($scheme, $root = null) - { - if (is_null($root)) { - if (is_null($this->cachedRoot)) { - $this->cachedRoot = $this->forcedRoot ?: $this->request->root(); - } - - $root = $this->cachedRoot; - } - - $start = Str::startsWith($root, 'http://') ? 'http://' : 'https://'; - - return preg_replace('~'.$start.'~', $scheme, $root, 1); - } - - /** - * Format the given URL segments into a single URL. - * - * @param string $root - * @param string $path - * @return string - */ - public function format($root, $path) - { - $path = '/'.trim($path, '/'); - - if ($this->formatHostUsing) { - $root = call_user_func($this->formatHostUsing, $root); - } - - if ($this->formatPathUsing) { - $path = call_user_func($this->formatPathUsing, $path); - } - - return trim($root.$path, '/'); - } - - /** - * Determine if the given path is a valid URL. - * - * @param string $path - * @return bool - */ - public function isValidUrl($path) - { - if (! preg_match('~^(#|//|https?://|mailto:|tel:)~', $path)) { - return filter_var($path, FILTER_VALIDATE_URL) !== false; - } - - return true; - } - - /** - * Get the Route URL generator instance. - * - * @return \Illuminate\Routing\RouteUrlGenerator - */ - protected function routeUrl() - { - if (! $this->routeGenerator) { - $this->routeGenerator = new RouteUrlGenerator($this, $this->request); - } - - return $this->routeGenerator; - } - - /** - * Set the default named parameters used by the URL generator. - * - * @param array $defaults - * @return void - */ - public function defaults(array $defaults) - { - $this->routeUrl()->defaults($defaults); - } - - /** - * Get the default named parameters used by the URL generator. - * - * @return array - */ - public function getDefaultParameters() - { - return $this->routeUrl()->defaultParameters; - } - - /** - * Force the scheme for URLs. - * - * @param string $schema - * @return void - */ - public function forceScheme($schema) - { - $this->cachedSchema = null; - - $this->forceScheme = $schema.'://'; - } - - /** - * Set the forced root URL. - * - * @param string $root - * @return void - */ - public function forceRootUrl($root) - { - $this->forcedRoot = rtrim($root, '/'); - - $this->cachedRoot = null; - } - - /** - * Set a callback to be used to format the host of generated URLs. - * - * @param \Closure $callback - * @return $this - */ - public function formatHostUsing(Closure $callback) - { - $this->formatHostUsing = $callback; - - return $this; - } - - /** - * Set a callback to be used to format the path of generated URLs. - * - * @param \Closure $callback - * @return $this - */ - public function formatPathUsing(Closure $callback) - { - $this->formatPathUsing = $callback; - - return $this; - } - - /** - * Get the path formatter being used by the URL generator. - * - * @return \Closure - */ - public function pathFormatter() - { - return $this->formatPathUsing ?: function ($path) { - return $path; - }; - } - - /** - * Get the request instance. - * - * @return \Illuminate\Http\Request - */ - public function getRequest() - { - return $this->request; - } - - /** - * Set the current request instance. - * - * @param \Illuminate\Http\Request $request - * @return void - */ - public function setRequest(Request $request) - { - $this->request = $request; - - $this->cachedRoot = null; - $this->cachedSchema = null; - $this->routeGenerator = null; - } - - /** - * Set the route collection. - * - * @param \Illuminate\Routing\RouteCollection $routes - * @return $this - */ - public function setRoutes(RouteCollection $routes) - { - $this->routes = $routes; - - return $this; - } - - /** - * Get the session implementation from the resolver. - * - * @return \Illuminate\Session\Store|null - */ - protected function getSession() - { - if ($this->sessionResolver) { - return call_user_func($this->sessionResolver); - } - } - - /** - * Set the session resolver for the generator. - * - * @param callable $sessionResolver - * @return $this - */ - public function setSessionResolver(callable $sessionResolver) - { - $this->sessionResolver = $sessionResolver; - - return $this; - } - - /** - * Set the encryption key resolver. - * - * @param callable $keyResolver - * @return $this - */ - public function setKeyResolver(callable $keyResolver) - { - $this->keyResolver = $keyResolver; - - return $this; - } - - /** - * Set the root controller namespace. - * - * @param string $rootNamespace - * @return $this - */ - public function setRootControllerNamespace($rootNamespace) - { - $this->rootNamespace = $rootNamespace; - - return $this; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Routing/ViewController.php b/vendor/laravel/framework/src/Illuminate/Routing/ViewController.php deleted file mode 100644 index c1f9d09d..00000000 --- a/vendor/laravel/framework/src/Illuminate/Routing/ViewController.php +++ /dev/null @@ -1,39 +0,0 @@ -view = $view; - } - - /** - * Invoke the controller method. - * - * @param array $args - * @return \Illuminate\Contracts\View\View - */ - public function __invoke(...$args) - { - list($view, $data) = array_slice($args, -2); - - return $this->view->make($view, $data); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Routing/composer.json b/vendor/laravel/framework/src/Illuminate/Routing/composer.json deleted file mode 100644 index 56bf9d3e..00000000 --- a/vendor/laravel/framework/src/Illuminate/Routing/composer.json +++ /dev/null @@ -1,47 +0,0 @@ -{ - "name": "illuminate/routing", - "description": "The Illuminate Routing package.", - "license": "MIT", - "homepage": "https://laravel.com", - "support": { - "issues": "https://github.com/laravel/framework/issues", - "source": "https://github.com/laravel/framework" - }, - "authors": [ - { - "name": "Taylor Otwell", - "email": "taylor@laravel.com" - } - ], - "require": { - "php": "^7.1.3", - "illuminate/container": "5.6.*", - "illuminate/contracts": "5.6.*", - "illuminate/http": "5.6.*", - "illuminate/pipeline": "5.6.*", - "illuminate/session": "5.6.*", - "illuminate/support": "5.6.*", - "symfony/debug": "~4.0", - "symfony/http-foundation": "~4.0", - "symfony/http-kernel": "~4.0", - "symfony/routing": "~4.0" - }, - "autoload": { - "psr-4": { - "Illuminate\\Routing\\": "" - } - }, - "extra": { - "branch-alias": { - "dev-master": "5.6-dev" - } - }, - "suggest": { - "illuminate/console": "Required to use the make commands (5.6.*).", - "symfony/psr-http-message-bridge": "Required to psr7 bridging features (~1.0)." - }, - "config": { - "sort-packages": true - }, - "minimum-stability": "dev" -} diff --git a/vendor/laravel/framework/src/Illuminate/Session/CacheBasedSessionHandler.php b/vendor/laravel/framework/src/Illuminate/Session/CacheBasedSessionHandler.php deleted file mode 100755 index a2990bdd..00000000 --- a/vendor/laravel/framework/src/Illuminate/Session/CacheBasedSessionHandler.php +++ /dev/null @@ -1,94 +0,0 @@ -cache = $cache; - $this->minutes = $minutes; - } - - /** - * {@inheritdoc} - */ - public function open($savePath, $sessionName) - { - return true; - } - - /** - * {@inheritdoc} - */ - public function close() - { - return true; - } - - /** - * {@inheritdoc} - */ - public function read($sessionId) - { - return $this->cache->get($sessionId, ''); - } - - /** - * {@inheritdoc} - */ - public function write($sessionId, $data) - { - return $this->cache->put($sessionId, $data, $this->minutes); - } - - /** - * {@inheritdoc} - */ - public function destroy($sessionId) - { - return $this->cache->forget($sessionId); - } - - /** - * {@inheritdoc} - */ - public function gc($lifetime) - { - return true; - } - - /** - * Get the underlying cache repository. - * - * @return \Illuminate\Contracts\Cache\Repository - */ - public function getCache() - { - return $this->cache; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Session/Console/SessionTableCommand.php b/vendor/laravel/framework/src/Illuminate/Session/Console/SessionTableCommand.php deleted file mode 100644 index e99f7d2d..00000000 --- a/vendor/laravel/framework/src/Illuminate/Session/Console/SessionTableCommand.php +++ /dev/null @@ -1,81 +0,0 @@ -files = $files; - $this->composer = $composer; - } - - /** - * Execute the console command. - * - * @return void - */ - public function handle() - { - $fullPath = $this->createBaseMigration(); - - $this->files->put($fullPath, $this->files->get(__DIR__.'/stubs/database.stub')); - - $this->info('Migration created successfully!'); - - $this->composer->dumpAutoloads(); - } - - /** - * Create a base migration file for the session. - * - * @return string - */ - protected function createBaseMigration() - { - $name = 'create_sessions_table'; - - $path = $this->laravel->databasePath().'/migrations'; - - return $this->laravel['migration.creator']->create($name, $path); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Session/Console/stubs/database.stub b/vendor/laravel/framework/src/Illuminate/Session/Console/stubs/database.stub deleted file mode 100755 index c213297d..00000000 --- a/vendor/laravel/framework/src/Illuminate/Session/Console/stubs/database.stub +++ /dev/null @@ -1,35 +0,0 @@ -string('id')->unique(); - $table->unsignedInteger('user_id')->nullable(); - $table->string('ip_address', 45)->nullable(); - $table->text('user_agent')->nullable(); - $table->text('payload'); - $table->integer('last_activity'); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::dropIfExists('sessions'); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Session/CookieSessionHandler.php b/vendor/laravel/framework/src/Illuminate/Session/CookieSessionHandler.php deleted file mode 100755 index e91053d0..00000000 --- a/vendor/laravel/framework/src/Illuminate/Session/CookieSessionHandler.php +++ /dev/null @@ -1,121 +0,0 @@ -cookie = $cookie; - $this->minutes = $minutes; - } - - /** - * {@inheritdoc} - */ - public function open($savePath, $sessionName) - { - return true; - } - - /** - * {@inheritdoc} - */ - public function close() - { - return true; - } - - /** - * {@inheritdoc} - */ - public function read($sessionId) - { - $value = $this->request->cookies->get($sessionId) ?: ''; - - if (! is_null($decoded = json_decode($value, true)) && is_array($decoded)) { - if (isset($decoded['expires']) && $this->currentTime() <= $decoded['expires']) { - return $decoded['data']; - } - } - - return ''; - } - - /** - * {@inheritdoc} - */ - public function write($sessionId, $data) - { - $this->cookie->queue($sessionId, json_encode([ - 'data' => $data, - 'expires' => $this->availableAt($this->minutes * 60), - ]), $this->minutes); - - return true; - } - - /** - * {@inheritdoc} - */ - public function destroy($sessionId) - { - $this->cookie->queue($this->cookie->forget($sessionId)); - - return true; - } - - /** - * {@inheritdoc} - */ - public function gc($lifetime) - { - return true; - } - - /** - * Set the request instance. - * - * @param \Symfony\Component\HttpFoundation\Request $request - * @return void - */ - public function setRequest(Request $request) - { - $this->request = $request; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Session/DatabaseSessionHandler.php b/vendor/laravel/framework/src/Illuminate/Session/DatabaseSessionHandler.php deleted file mode 100644 index 976c2901..00000000 --- a/vendor/laravel/framework/src/Illuminate/Session/DatabaseSessionHandler.php +++ /dev/null @@ -1,294 +0,0 @@ -table = $table; - $this->minutes = $minutes; - $this->container = $container; - $this->connection = $connection; - } - - /** - * {@inheritdoc} - */ - public function open($savePath, $sessionName) - { - return true; - } - - /** - * {@inheritdoc} - */ - public function close() - { - return true; - } - - /** - * {@inheritdoc} - */ - public function read($sessionId) - { - $session = (object) $this->getQuery()->find($sessionId); - - if ($this->expired($session)) { - $this->exists = true; - - return ''; - } - - if (isset($session->payload)) { - $this->exists = true; - - return base64_decode($session->payload); - } - - return ''; - } - - /** - * Determine if the session is expired. - * - * @param \stdClass $session - * @return bool - */ - protected function expired($session) - { - return isset($session->last_activity) && - $session->last_activity < Carbon::now()->subMinutes($this->minutes)->getTimestamp(); - } - - /** - * {@inheritdoc} - */ - public function write($sessionId, $data) - { - $payload = $this->getDefaultPayload($data); - - if (! $this->exists) { - $this->read($sessionId); - } - - if ($this->exists) { - $this->performUpdate($sessionId, $payload); - } else { - $this->performInsert($sessionId, $payload); - } - - return $this->exists = true; - } - - /** - * Perform an insert operation on the session ID. - * - * @param string $sessionId - * @param string $payload - * @return bool|null - */ - protected function performInsert($sessionId, $payload) - { - try { - return $this->getQuery()->insert(Arr::set($payload, 'id', $sessionId)); - } catch (QueryException $e) { - $this->performUpdate($sessionId, $payload); - } - } - - /** - * Perform an update operation on the session ID. - * - * @param string $sessionId - * @param string $payload - * @return int - */ - protected function performUpdate($sessionId, $payload) - { - return $this->getQuery()->where('id', $sessionId)->update($payload); - } - - /** - * Get the default payload for the session. - * - * @param string $data - * @return array - */ - protected function getDefaultPayload($data) - { - $payload = [ - 'payload' => base64_encode($data), - 'last_activity' => $this->currentTime(), - ]; - - if (! $this->container) { - return $payload; - } - - return tap($payload, function (&$payload) { - $this->addUserInformation($payload) - ->addRequestInformation($payload); - }); - } - - /** - * Add the user information to the session payload. - * - * @param array $payload - * @return $this - */ - protected function addUserInformation(&$payload) - { - if ($this->container->bound(Guard::class)) { - $payload['user_id'] = $this->userId(); - } - - return $this; - } - - /** - * Get the currently authenticated user's ID. - * - * @return mixed - */ - protected function userId() - { - return $this->container->make(Guard::class)->id(); - } - - /** - * Add the request information to the session payload. - * - * @param array $payload - * @return $this - */ - protected function addRequestInformation(&$payload) - { - if ($this->container->bound('request')) { - $payload = array_merge($payload, [ - 'ip_address' => $this->ipAddress(), - 'user_agent' => $this->userAgent(), - ]); - } - - return $this; - } - - /** - * Get the IP address for the current request. - * - * @return string - */ - protected function ipAddress() - { - return $this->container->make('request')->ip(); - } - - /** - * Get the user agent for the current request. - * - * @return string - */ - protected function userAgent() - { - return substr((string) $this->container->make('request')->header('User-Agent'), 0, 500); - } - - /** - * {@inheritdoc} - */ - public function destroy($sessionId) - { - $this->getQuery()->where('id', $sessionId)->delete(); - - return true; - } - - /** - * {@inheritdoc} - */ - public function gc($lifetime) - { - $this->getQuery()->where('last_activity', '<=', $this->currentTime() - $lifetime)->delete(); - } - - /** - * Get a fresh query builder instance for the table. - * - * @return \Illuminate\Database\Query\Builder - */ - protected function getQuery() - { - return $this->connection->table($this->table); - } - - /** - * Set the existence state for the session. - * - * @param bool $value - * @return $this - */ - public function setExists($value) - { - $this->exists = $value; - - return $this; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Session/EncryptedStore.php b/vendor/laravel/framework/src/Illuminate/Session/EncryptedStore.php deleted file mode 100644 index 078d13fd..00000000 --- a/vendor/laravel/framework/src/Illuminate/Session/EncryptedStore.php +++ /dev/null @@ -1,69 +0,0 @@ -encrypter = $encrypter; - - parent::__construct($name, $handler, $id); - } - - /** - * Prepare the raw string data from the session for unserialization. - * - * @param string $data - * @return string - */ - protected function prepareForUnserialize($data) - { - try { - return $this->encrypter->decrypt($data); - } catch (DecryptException $e) { - return serialize([]); - } - } - - /** - * Prepare the serialized session data for storage. - * - * @param string $data - * @return string - */ - protected function prepareForStorage($data) - { - return $this->encrypter->encrypt($data); - } - - /** - * Get the encrypter instance. - * - * @return \Illuminate\Contracts\Encryption\Encrypter - */ - public function getEncrypter() - { - return $this->encrypter; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Session/ExistenceAwareInterface.php b/vendor/laravel/framework/src/Illuminate/Session/ExistenceAwareInterface.php deleted file mode 100644 index 4a6bd984..00000000 --- a/vendor/laravel/framework/src/Illuminate/Session/ExistenceAwareInterface.php +++ /dev/null @@ -1,14 +0,0 @@ -path = $path; - $this->files = $files; - $this->minutes = $minutes; - } - - /** - * {@inheritdoc} - */ - public function open($savePath, $sessionName) - { - return true; - } - - /** - * {@inheritdoc} - */ - public function close() - { - return true; - } - - /** - * {@inheritdoc} - */ - public function read($sessionId) - { - if ($this->files->exists($path = $this->path.'/'.$sessionId)) { - if (filemtime($path) >= Carbon::now()->subMinutes($this->minutes)->getTimestamp()) { - return $this->files->get($path, true); - } - } - - return ''; - } - - /** - * {@inheritdoc} - */ - public function write($sessionId, $data) - { - $this->files->put($this->path.'/'.$sessionId, $data, true); - - return true; - } - - /** - * {@inheritdoc} - */ - public function destroy($sessionId) - { - $this->files->delete($this->path.'/'.$sessionId); - - return true; - } - - /** - * {@inheritdoc} - */ - public function gc($lifetime) - { - $files = Finder::create() - ->in($this->path) - ->files() - ->ignoreDotFiles(true) - ->date('<= now - '.$lifetime.' seconds'); - - foreach ($files as $file) { - $this->files->delete($file->getRealPath()); - } - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Session/Middleware/AuthenticateSession.php b/vendor/laravel/framework/src/Illuminate/Session/Middleware/AuthenticateSession.php deleted file mode 100644 index bdc4eb42..00000000 --- a/vendor/laravel/framework/src/Illuminate/Session/Middleware/AuthenticateSession.php +++ /dev/null @@ -1,96 +0,0 @@ -auth = $auth; - } - - /** - * Handle an incoming request. - * - * @param \Illuminate\Http\Request $request - * @param \Closure $next - * @return mixed - */ - public function handle($request, Closure $next) - { - if (! $request->user() || ! $request->session()) { - return $next($request); - } - - if ($this->auth->viaRemember()) { - $passwordHash = explode('|', $request->cookies->get($this->auth->getRecallerName()))[2]; - - if ($passwordHash != $request->user()->getAuthPassword()) { - $this->logout($request); - } - } - - if (! $request->session()->has('password_hash')) { - $this->storePasswordHashInSession($request); - } - - if ($request->session()->get('password_hash') !== $request->user()->getAuthPassword()) { - $this->logout($request); - } - - return tap($next($request), function () use ($request) { - $this->storePasswordHashInSession($request); - }); - } - - /** - * Store the user's current password hash in the session. - * - * @param \Illuminate\Http\Request $request - * @return void - */ - protected function storePasswordHashInSession($request) - { - if (! $request->user()) { - return; - } - - $request->session()->put([ - 'password_hash' => $request->user()->getAuthPassword(), - ]); - } - - /** - * Log the user out of the application. - * - * @param \Illuminate\Http\Request $request - * @return void - * - * @throws \Illuminate\Auth\AuthenticationException - */ - protected function logout($request) - { - $this->auth->logout(); - - $request->session()->flush(); - - throw new AuthenticationException; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php b/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php deleted file mode 100644 index b47fde27..00000000 --- a/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php +++ /dev/null @@ -1,242 +0,0 @@ -manager = $manager; - } - - /** - * Handle an incoming request. - * - * @param \Illuminate\Http\Request $request - * @param \Closure $next - * @return mixed - */ - public function handle($request, Closure $next) - { - $this->sessionHandled = true; - - // If a session driver has been configured, we will need to start the session here - // so that the data is ready for an application. Note that the Laravel sessions - // do not make use of PHP "native" sessions in any way since they are crappy. - if ($this->sessionConfigured()) { - $request->setLaravelSession( - $session = $this->startSession($request) - ); - - $this->collectGarbage($session); - } - - $response = $next($request); - - // Again, if the session has been configured we will need to close out the session - // so that the attributes may be persisted to some storage medium. We will also - // add the session identifier cookie to the application response headers now. - if ($this->sessionConfigured()) { - $this->storeCurrentUrl($request, $session); - - $this->addCookieToResponse($response, $session); - } - - return $response; - } - - /** - * Perform any final actions for the request lifecycle. - * - * @param \Illuminate\Http\Request $request - * @param \Symfony\Component\HttpFoundation\Response $response - * @return void - */ - public function terminate($request, $response) - { - if ($this->sessionHandled && $this->sessionConfigured() && ! $this->usingCookieSessions()) { - $this->manager->driver()->save(); - } - } - - /** - * Start the session for the given request. - * - * @param \Illuminate\Http\Request $request - * @return \Illuminate\Contracts\Session\Session - */ - protected function startSession(Request $request) - { - return tap($this->getSession($request), function ($session) use ($request) { - $session->setRequestOnHandler($request); - - $session->start(); - }); - } - - /** - * Get the session implementation from the manager. - * - * @param \Illuminate\Http\Request $request - * @return \Illuminate\Contracts\Session\Session - */ - public function getSession(Request $request) - { - return tap($this->manager->driver(), function ($session) use ($request) { - $session->setId($request->cookies->get($session->getName())); - }); - } - - /** - * Remove the garbage from the session if necessary. - * - * @param \Illuminate\Contracts\Session\Session $session - * @return void - */ - protected function collectGarbage(Session $session) - { - $config = $this->manager->getSessionConfig(); - - // Here we will see if this request hits the garbage collection lottery by hitting - // the odds needed to perform garbage collection on any given request. If we do - // hit it, we'll call this handler to let it delete all the expired sessions. - if ($this->configHitsLottery($config)) { - $session->getHandler()->gc($this->getSessionLifetimeInSeconds()); - } - } - - /** - * Determine if the configuration odds hit the lottery. - * - * @param array $config - * @return bool - */ - protected function configHitsLottery(array $config) - { - return random_int(1, $config['lottery'][1]) <= $config['lottery'][0]; - } - - /** - * Store the current URL for the request if necessary. - * - * @param \Illuminate\Http\Request $request - * @param \Illuminate\Contracts\Session\Session $session - * @return void - */ - protected function storeCurrentUrl(Request $request, $session) - { - if ($request->method() === 'GET' && $request->route() && ! $request->ajax()) { - $session->setPreviousUrl($request->fullUrl()); - } - } - - /** - * Add the session cookie to the application response. - * - * @param \Symfony\Component\HttpFoundation\Response $response - * @param \Illuminate\Contracts\Session\Session $session - * @return void - */ - protected function addCookieToResponse(Response $response, Session $session) - { - if ($this->usingCookieSessions()) { - $this->manager->driver()->save(); - } - - if ($this->sessionIsPersistent($config = $this->manager->getSessionConfig())) { - $response->headers->setCookie(new Cookie( - $session->getName(), $session->getId(), $this->getCookieExpirationDate(), - $config['path'], $config['domain'], $config['secure'] ?? false, - $config['http_only'] ?? true, false, $config['same_site'] ?? null - )); - } - } - - /** - * Get the session lifetime in seconds. - * - * @return int - */ - protected function getSessionLifetimeInSeconds() - { - return ($this->manager->getSessionConfig()['lifetime'] ?? null) * 60; - } - - /** - * Get the cookie lifetime in seconds. - * - * @return \DateTimeInterface - */ - protected function getCookieExpirationDate() - { - $config = $this->manager->getSessionConfig(); - - return $config['expire_on_close'] ? 0 : Carbon::now()->addMinutes($config['lifetime']); - } - - /** - * Determine if a session driver has been configured. - * - * @return bool - */ - protected function sessionConfigured() - { - return ! is_null($this->manager->getSessionConfig()['driver'] ?? null); - } - - /** - * Determine if the configured session driver is persistent. - * - * @param array|null $config - * @return bool - */ - protected function sessionIsPersistent(array $config = null) - { - $config = $config ?: $this->manager->getSessionConfig(); - - return ! in_array($config['driver'], [null, 'array']); - } - - /** - * Determine if the session is using cookie sessions. - * - * @return bool - */ - protected function usingCookieSessions() - { - if ($this->sessionConfigured()) { - return $this->manager->driver()->getHandler() instanceof CookieSessionHandler; - } - - return false; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Session/NullSessionHandler.php b/vendor/laravel/framework/src/Illuminate/Session/NullSessionHandler.php deleted file mode 100644 index 56f567e7..00000000 --- a/vendor/laravel/framework/src/Illuminate/Session/NullSessionHandler.php +++ /dev/null @@ -1,56 +0,0 @@ -buildSession(parent::callCustomCreator($driver)); - } - - /** - * Create an instance of the "array" session driver. - * - * @return \Illuminate\Session\Store - */ - protected function createArrayDriver() - { - return $this->buildSession(new NullSessionHandler); - } - - /** - * Create an instance of the "cookie" session driver. - * - * @return \Illuminate\Session\Store - */ - protected function createCookieDriver() - { - return $this->buildSession(new CookieSessionHandler( - $this->app['cookie'], $this->app['config']['session.lifetime'] - )); - } - - /** - * Create an instance of the file session driver. - * - * @return \Illuminate\Session\Store - */ - protected function createFileDriver() - { - return $this->createNativeDriver(); - } - - /** - * Create an instance of the file session driver. - * - * @return \Illuminate\Session\Store - */ - protected function createNativeDriver() - { - $lifetime = $this->app['config']['session.lifetime']; - - return $this->buildSession(new FileSessionHandler( - $this->app['files'], $this->app['config']['session.files'], $lifetime - )); - } - - /** - * Create an instance of the database session driver. - * - * @return \Illuminate\Session\Store - */ - protected function createDatabaseDriver() - { - $table = $this->app['config']['session.table']; - - $lifetime = $this->app['config']['session.lifetime']; - - return $this->buildSession(new DatabaseSessionHandler( - $this->getDatabaseConnection(), $table, $lifetime, $this->app - )); - } - - /** - * Get the database connection for the database driver. - * - * @return \Illuminate\Database\Connection - */ - protected function getDatabaseConnection() - { - $connection = $this->app['config']['session.connection']; - - return $this->app['db']->connection($connection); - } - - /** - * Create an instance of the APC session driver. - * - * @return \Illuminate\Session\Store - */ - protected function createApcDriver() - { - return $this->createCacheBased('apc'); - } - - /** - * Create an instance of the Memcached session driver. - * - * @return \Illuminate\Session\Store - */ - protected function createMemcachedDriver() - { - return $this->createCacheBased('memcached'); - } - - /** - * Create an instance of the Redis session driver. - * - * @return \Illuminate\Session\Store - */ - protected function createRedisDriver() - { - $handler = $this->createCacheHandler('redis'); - - $handler->getCache()->getStore()->setConnection( - $this->app['config']['session.connection'] - ); - - return $this->buildSession($handler); - } - - /** - * Create an instance of a cache driven driver. - * - * @param string $driver - * @return \Illuminate\Session\Store - */ - protected function createCacheBased($driver) - { - return $this->buildSession($this->createCacheHandler($driver)); - } - - /** - * Create the cache based session handler instance. - * - * @param string $driver - * @return \Illuminate\Session\CacheBasedSessionHandler - */ - protected function createCacheHandler($driver) - { - $store = $this->app['config']->get('session.store') ?: $driver; - - return new CacheBasedSessionHandler( - clone $this->app['cache']->store($store), - $this->app['config']['session.lifetime'] - ); - } - - /** - * Build the session instance. - * - * @param \SessionHandlerInterface $handler - * @return \Illuminate\Session\Store - */ - protected function buildSession($handler) - { - if ($this->app['config']['session.encrypt']) { - return $this->buildEncryptedSession($handler); - } - - return new Store($this->app['config']['session.cookie'], $handler); - } - - /** - * Build the encrypted session instance. - * - * @param \SessionHandlerInterface $handler - * @return \Illuminate\Session\EncryptedStore - */ - protected function buildEncryptedSession($handler) - { - return new EncryptedStore( - $this->app['config']['session.cookie'], $handler, $this->app['encrypter'] - ); - } - - /** - * Get the session configuration. - * - * @return array - */ - public function getSessionConfig() - { - return $this->app['config']['session']; - } - - /** - * Get the default session driver name. - * - * @return string - */ - public function getDefaultDriver() - { - return $this->app['config']['session.driver']; - } - - /** - * Set the default session driver name. - * - * @param string $name - * @return void - */ - public function setDefaultDriver($name) - { - $this->app['config']['session.driver'] = $name; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Session/SessionServiceProvider.php b/vendor/laravel/framework/src/Illuminate/Session/SessionServiceProvider.php deleted file mode 100755 index c8585062..00000000 --- a/vendor/laravel/framework/src/Illuminate/Session/SessionServiceProvider.php +++ /dev/null @@ -1,50 +0,0 @@ -registerSessionManager(); - - $this->registerSessionDriver(); - - $this->app->singleton(StartSession::class); - } - - /** - * Register the session manager instance. - * - * @return void - */ - protected function registerSessionManager() - { - $this->app->singleton('session', function ($app) { - return new SessionManager($app); - }); - } - - /** - * Register the session driver instance. - * - * @return void - */ - protected function registerSessionDriver() - { - $this->app->singleton('session.store', function ($app) { - // First, we will create the session manager which is responsible for the - // creation of the various session drivers when they are needed by the - // application instance, and will resolve them on a lazy load basis. - return $app->make('session')->driver(); - }); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Session/Store.php b/vendor/laravel/framework/src/Illuminate/Session/Store.php deleted file mode 100755 index d99c55fd..00000000 --- a/vendor/laravel/framework/src/Illuminate/Session/Store.php +++ /dev/null @@ -1,661 +0,0 @@ -setId($id); - $this->name = $name; - $this->handler = $handler; - } - - /** - * Start the session, reading the data from a handler. - * - * @return bool - */ - public function start() - { - $this->loadSession(); - - if (! $this->has('_token')) { - $this->regenerateToken(); - } - - return $this->started = true; - } - - /** - * Load the session data from the handler. - * - * @return void - */ - protected function loadSession() - { - $this->attributes = array_merge($this->attributes, $this->readFromHandler()); - } - - /** - * Read the session data from the handler. - * - * @return array - */ - protected function readFromHandler() - { - if ($data = $this->handler->read($this->getId())) { - $data = @unserialize($this->prepareForUnserialize($data)); - - if ($data !== false && ! is_null($data) && is_array($data)) { - return $data; - } - } - - return []; - } - - /** - * Prepare the raw string data from the session for unserialization. - * - * @param string $data - * @return string - */ - protected function prepareForUnserialize($data) - { - return $data; - } - - /** - * Save the session data to storage. - * - * @return bool - */ - public function save() - { - $this->ageFlashData(); - - $this->handler->write($this->getId(), $this->prepareForStorage( - serialize($this->attributes) - )); - - $this->started = false; - } - - /** - * Prepare the serialized session data for storage. - * - * @param string $data - * @return string - */ - protected function prepareForStorage($data) - { - return $data; - } - - /** - * Age the flash data for the session. - * - * @return void - */ - public function ageFlashData() - { - $this->forget($this->get('_flash.old', [])); - - $this->put('_flash.old', $this->get('_flash.new', [])); - - $this->put('_flash.new', []); - } - - /** - * Get all of the session data. - * - * @return array - */ - public function all() - { - return $this->attributes; - } - - /** - * Checks if a key exists. - * - * @param string|array $key - * @return bool - */ - public function exists($key) - { - $placeholder = new stdClass(); - - return ! collect(is_array($key) ? $key : func_get_args())->contains(function ($key) use ($placeholder) { - return $this->get($key, $placeholder) === $placeholder; - }); - } - - /** - * Checks if a key is present and not null. - * - * @param string|array $key - * @return bool - */ - public function has($key) - { - return ! collect(is_array($key) ? $key : func_get_args())->contains(function ($key) { - return is_null($this->get($key)); - }); - } - - /** - * Get an item from the session. - * - * @param string $key - * @param mixed $default - * @return mixed - */ - public function get($key, $default = null) - { - return Arr::get($this->attributes, $key, $default); - } - - /** - * Get the value of a given key and then forget it. - * - * @param string $key - * @param string $default - * @return mixed - */ - public function pull($key, $default = null) - { - return Arr::pull($this->attributes, $key, $default); - } - - /** - * Determine if the session contains old input. - * - * @param string $key - * @return bool - */ - public function hasOldInput($key = null) - { - $old = $this->getOldInput($key); - - return is_null($key) ? count($old) > 0 : ! is_null($old); - } - - /** - * Get the requested item from the flashed input array. - * - * @param string $key - * @param mixed $default - * @return mixed - */ - public function getOldInput($key = null, $default = null) - { - return Arr::get($this->get('_old_input', []), $key, $default); - } - - /** - * Replace the given session attributes entirely. - * - * @param array $attributes - * @return void - */ - public function replace(array $attributes) - { - $this->put($attributes); - } - - /** - * Put a key / value pair or array of key / value pairs in the session. - * - * @param string|array $key - * @param mixed $value - * @return void - */ - public function put($key, $value = null) - { - if (! is_array($key)) { - $key = [$key => $value]; - } - - foreach ($key as $arrayKey => $arrayValue) { - Arr::set($this->attributes, $arrayKey, $arrayValue); - } - } - - /** - * Get an item from the session, or store the default value. - * - * @param string $key - * @param \Closure $callback - * @return mixed - */ - public function remember($key, Closure $callback) - { - if (! is_null($value = $this->get($key))) { - return $value; - } - - return tap($callback(), function ($value) use ($key) { - $this->put($key, $value); - }); - } - - /** - * Push a value onto a session array. - * - * @param string $key - * @param mixed $value - * @return void - */ - public function push($key, $value) - { - $array = $this->get($key, []); - - $array[] = $value; - - $this->put($key, $array); - } - - /** - * Increment the value of an item in the session. - * - * @param string $key - * @param int $amount - * @return mixed - */ - public function increment($key, $amount = 1) - { - $this->put($key, $value = $this->get($key, 0) + $amount); - - return $value; - } - - /** - * Decrement the value of an item in the session. - * - * @param string $key - * @param int $amount - * @return int - */ - public function decrement($key, $amount = 1) - { - return $this->increment($key, $amount * -1); - } - - /** - * Flash a key / value pair to the session. - * - * @param string $key - * @param mixed $value - * @return void - */ - public function flash(string $key, $value = true) - { - $this->put($key, $value); - - $this->push('_flash.new', $key); - - $this->removeFromOldFlashData([$key]); - } - - /** - * Flash a key / value pair to the session for immediate use. - * - * @param string $key - * @param mixed $value - * @return void - */ - public function now($key, $value) - { - $this->put($key, $value); - - $this->push('_flash.old', $key); - } - - /** - * Reflash all of the session flash data. - * - * @return void - */ - public function reflash() - { - $this->mergeNewFlashes($this->get('_flash.old', [])); - - $this->put('_flash.old', []); - } - - /** - * Reflash a subset of the current flash data. - * - * @param array|mixed $keys - * @return void - */ - public function keep($keys = null) - { - $this->mergeNewFlashes($keys = is_array($keys) ? $keys : func_get_args()); - - $this->removeFromOldFlashData($keys); - } - - /** - * Merge new flash keys into the new flash array. - * - * @param array $keys - * @return void - */ - protected function mergeNewFlashes(array $keys) - { - $values = array_unique(array_merge($this->get('_flash.new', []), $keys)); - - $this->put('_flash.new', $values); - } - - /** - * Remove the given keys from the old flash data. - * - * @param array $keys - * @return void - */ - protected function removeFromOldFlashData(array $keys) - { - $this->put('_flash.old', array_diff($this->get('_flash.old', []), $keys)); - } - - /** - * Flash an input array to the session. - * - * @param array $value - * @return void - */ - public function flashInput(array $value) - { - $this->flash('_old_input', $value); - } - - /** - * Remove an item from the session, returning its value. - * - * @param string $key - * @return mixed - */ - public function remove($key) - { - return Arr::pull($this->attributes, $key); - } - - /** - * Remove one or many items from the session. - * - * @param string|array $keys - * @return void - */ - public function forget($keys) - { - Arr::forget($this->attributes, $keys); - } - - /** - * Remove all of the items from the session. - * - * @return void - */ - public function flush() - { - $this->attributes = []; - } - - /** - * Flush the session data and regenerate the ID. - * - * @return bool - */ - public function invalidate() - { - $this->flush(); - - return $this->migrate(true); - } - - /** - * Generate a new session identifier. - * - * @param bool $destroy - * @return bool - */ - public function regenerate($destroy = false) - { - return tap($this->migrate($destroy), function () { - $this->regenerateToken(); - }); - } - - /** - * Generate a new session ID for the session. - * - * @param bool $destroy - * @return bool - */ - public function migrate($destroy = false) - { - if ($destroy) { - $this->handler->destroy($this->getId()); - } - - $this->setExists(false); - - $this->setId($this->generateSessionId()); - - return true; - } - - /** - * Determine if the session has been started. - * - * @return bool - */ - public function isStarted() - { - return $this->started; - } - - /** - * Get the name of the session. - * - * @return string - */ - public function getName() - { - return $this->name; - } - - /** - * Set the name of the session. - * - * @param string $name - * @return void - */ - public function setName($name) - { - $this->name = $name; - } - - /** - * Get the current session ID. - * - * @return string - */ - public function getId() - { - return $this->id; - } - - /** - * Set the session ID. - * - * @param string $id - * @return void - */ - public function setId($id) - { - $this->id = $this->isValidId($id) ? $id : $this->generateSessionId(); - } - - /** - * Determine if this is a valid session ID. - * - * @param string $id - * @return bool - */ - public function isValidId($id) - { - return is_string($id) && ctype_alnum($id) && strlen($id) === 40; - } - - /** - * Get a new, random session ID. - * - * @return string - */ - protected function generateSessionId() - { - return Str::random(40); - } - - /** - * Set the existence of the session on the handler if applicable. - * - * @param bool $value - * @return void - */ - public function setExists($value) - { - if ($this->handler instanceof ExistenceAwareInterface) { - $this->handler->setExists($value); - } - } - - /** - * Get the CSRF token value. - * - * @return string - */ - public function token() - { - return $this->get('_token'); - } - - /** - * Regenerate the CSRF token value. - * - * @return void - */ - public function regenerateToken() - { - $this->put('_token', Str::random(40)); - } - - /** - * Get the previous URL from the session. - * - * @return string|null - */ - public function previousUrl() - { - return $this->get('_previous.url'); - } - - /** - * Set the "previous" URL in the session. - * - * @param string $url - * @return void - */ - public function setPreviousUrl($url) - { - $this->put('_previous.url', $url); - } - - /** - * Get the underlying session handler implementation. - * - * @return \SessionHandlerInterface - */ - public function getHandler() - { - return $this->handler; - } - - /** - * Determine if the session handler needs a request. - * - * @return bool - */ - public function handlerNeedsRequest() - { - return $this->handler instanceof CookieSessionHandler; - } - - /** - * Set the request on the handler instance. - * - * @param \Illuminate\Http\Request $request - * @return void - */ - public function setRequestOnHandler($request) - { - if ($this->handlerNeedsRequest()) { - $this->handler->setRequest($request); - } - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Session/TokenMismatchException.php b/vendor/laravel/framework/src/Illuminate/Session/TokenMismatchException.php deleted file mode 100755 index 98d99a1e..00000000 --- a/vendor/laravel/framework/src/Illuminate/Session/TokenMismatchException.php +++ /dev/null @@ -1,10 +0,0 @@ -instances = []; - - foreach ($this->providers as $provider) { - $this->instances[] = $this->app->register($provider); - } - } - - /** - * Get the services provided by the provider. - * - * @return array - */ - public function provides() - { - $provides = []; - - foreach ($this->providers as $provider) { - $instance = $this->app->resolveProvider($provider); - - $provides = array_merge($provides, $instance->provides()); - } - - return $provides; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Support/Arr.php b/vendor/laravel/framework/src/Illuminate/Support/Arr.php deleted file mode 100755 index 616c030c..00000000 --- a/vendor/laravel/framework/src/Illuminate/Support/Arr.php +++ /dev/null @@ -1,623 +0,0 @@ -all(); - } elseif (! is_array($values)) { - continue; - } - - $results = array_merge($results, $values); - } - - return $results; - } - - /** - * Cross join the given arrays, returning all possible permutations. - * - * @param array ...$arrays - * @return array - */ - public static function crossJoin(...$arrays) - { - $results = [[]]; - - foreach ($arrays as $index => $array) { - $append = []; - - foreach ($results as $product) { - foreach ($array as $item) { - $product[$index] = $item; - - $append[] = $product; - } - } - - $results = $append; - } - - return $results; - } - - /** - * Divide an array into two arrays. One with keys and the other with values. - * - * @param array $array - * @return array - */ - public static function divide($array) - { - return [array_keys($array), array_values($array)]; - } - - /** - * Flatten a multi-dimensional associative array with dots. - * - * @param array $array - * @param string $prepend - * @return array - */ - public static function dot($array, $prepend = '') - { - $results = []; - - foreach ($array as $key => $value) { - if (is_array($value) && ! empty($value)) { - $results = array_merge($results, static::dot($value, $prepend.$key.'.')); - } else { - $results[$prepend.$key] = $value; - } - } - - return $results; - } - - /** - * Get all of the given array except for a specified array of keys. - * - * @param array $array - * @param array|string $keys - * @return array - */ - public static function except($array, $keys) - { - static::forget($array, $keys); - - return $array; - } - - /** - * Determine if the given key exists in the provided array. - * - * @param \ArrayAccess|array $array - * @param string|int $key - * @return bool - */ - public static function exists($array, $key) - { - if ($array instanceof ArrayAccess) { - return $array->offsetExists($key); - } - - return array_key_exists($key, $array); - } - - /** - * Return the first element in an array passing a given truth test. - * - * @param array $array - * @param callable|null $callback - * @param mixed $default - * @return mixed - */ - public static function first($array, callable $callback = null, $default = null) - { - if (is_null($callback)) { - if (empty($array)) { - return value($default); - } - - foreach ($array as $item) { - return $item; - } - } - - foreach ($array as $key => $value) { - if (call_user_func($callback, $value, $key)) { - return $value; - } - } - - return value($default); - } - - /** - * Return the last element in an array passing a given truth test. - * - * @param array $array - * @param callable|null $callback - * @param mixed $default - * @return mixed - */ - public static function last($array, callable $callback = null, $default = null) - { - if (is_null($callback)) { - return empty($array) ? value($default) : end($array); - } - - return static::first(array_reverse($array, true), $callback, $default); - } - - /** - * Flatten a multi-dimensional array into a single level. - * - * @param array $array - * @param int $depth - * @return array - */ - public static function flatten($array, $depth = INF) - { - $result = []; - - foreach ($array as $item) { - $item = $item instanceof Collection ? $item->all() : $item; - - if (! is_array($item)) { - $result[] = $item; - } elseif ($depth === 1) { - $result = array_merge($result, array_values($item)); - } else { - $result = array_merge($result, static::flatten($item, $depth - 1)); - } - } - - return $result; - } - - /** - * Remove one or many array items from a given array using "dot" notation. - * - * @param array $array - * @param array|string $keys - * @return void - */ - public static function forget(&$array, $keys) - { - $original = &$array; - - $keys = (array) $keys; - - if (count($keys) === 0) { - return; - } - - foreach ($keys as $key) { - // if the exact key exists in the top-level, remove it - if (static::exists($array, $key)) { - unset($array[$key]); - - continue; - } - - $parts = explode('.', $key); - - // clean up before each pass - $array = &$original; - - while (count($parts) > 1) { - $part = array_shift($parts); - - if (isset($array[$part]) && is_array($array[$part])) { - $array = &$array[$part]; - } else { - continue 2; - } - } - - unset($array[array_shift($parts)]); - } - } - - /** - * Get an item from an array using "dot" notation. - * - * @param \ArrayAccess|array $array - * @param string $key - * @param mixed $default - * @return mixed - */ - public static function get($array, $key, $default = null) - { - if (! static::accessible($array)) { - return value($default); - } - - if (is_null($key)) { - return $array; - } - - if (static::exists($array, $key)) { - return $array[$key]; - } - - if (strpos($key, '.') === false) { - return $array[$key] ?? value($default); - } - - foreach (explode('.', $key) as $segment) { - if (static::accessible($array) && static::exists($array, $segment)) { - $array = $array[$segment]; - } else { - return value($default); - } - } - - return $array; - } - - /** - * Check if an item or items exist in an array using "dot" notation. - * - * @param \ArrayAccess|array $array - * @param string|array $keys - * @return bool - */ - public static function has($array, $keys) - { - if (is_null($keys)) { - return false; - } - - $keys = (array) $keys; - - if (! $array) { - return false; - } - - if ($keys === []) { - return false; - } - - foreach ($keys as $key) { - $subKeyArray = $array; - - if (static::exists($array, $key)) { - continue; - } - - foreach (explode('.', $key) as $segment) { - if (static::accessible($subKeyArray) && static::exists($subKeyArray, $segment)) { - $subKeyArray = $subKeyArray[$segment]; - } else { - return false; - } - } - } - - return true; - } - - /** - * Determines if an array is associative. - * - * An array is "associative" if it doesn't have sequential numerical keys beginning with zero. - * - * @param array $array - * @return bool - */ - public static function isAssoc(array $array) - { - $keys = array_keys($array); - - return array_keys($keys) !== $keys; - } - - /** - * Get a subset of the items from the given array. - * - * @param array $array - * @param array|string $keys - * @return array - */ - public static function only($array, $keys) - { - return array_intersect_key($array, array_flip((array) $keys)); - } - - /** - * Pluck an array of values from an array. - * - * @param array $array - * @param string|array $value - * @param string|array|null $key - * @return array - */ - public static function pluck($array, $value, $key = null) - { - $results = []; - - list($value, $key) = static::explodePluckParameters($value, $key); - - foreach ($array as $item) { - $itemValue = data_get($item, $value); - - // If the key is "null", we will just append the value to the array and keep - // looping. Otherwise we will key the array using the value of the key we - // received from the developer. Then we'll return the final array form. - if (is_null($key)) { - $results[] = $itemValue; - } else { - $itemKey = data_get($item, $key); - - if (is_object($itemKey) && method_exists($itemKey, '__toString')) { - $itemKey = (string) $itemKey; - } - - $results[$itemKey] = $itemValue; - } - } - - return $results; - } - - /** - * Explode the "value" and "key" arguments passed to "pluck". - * - * @param string|array $value - * @param string|array|null $key - * @return array - */ - protected static function explodePluckParameters($value, $key) - { - $value = is_string($value) ? explode('.', $value) : $value; - - $key = is_null($key) || is_array($key) ? $key : explode('.', $key); - - return [$value, $key]; - } - - /** - * Push an item onto the beginning of an array. - * - * @param array $array - * @param mixed $value - * @param mixed $key - * @return array - */ - public static function prepend($array, $value, $key = null) - { - if (is_null($key)) { - array_unshift($array, $value); - } else { - $array = [$key => $value] + $array; - } - - return $array; - } - - /** - * Get a value from the array, and remove it. - * - * @param array $array - * @param string $key - * @param mixed $default - * @return mixed - */ - public static function pull(&$array, $key, $default = null) - { - $value = static::get($array, $key, $default); - - static::forget($array, $key); - - return $value; - } - - /** - * Get one or a specified number of random values from an array. - * - * @param array $array - * @param int|null $number - * @return mixed - * - * @throws \InvalidArgumentException - */ - public static function random($array, $number = null) - { - $requested = is_null($number) ? 1 : $number; - - $count = count($array); - - if ($requested > $count) { - throw new InvalidArgumentException( - "You requested {$requested} items, but there are only {$count} items available." - ); - } - - if (is_null($number)) { - return $array[array_rand($array)]; - } - - if ((int) $number === 0) { - return []; - } - - $keys = array_rand($array, $number); - - $results = []; - - foreach ((array) $keys as $key) { - $results[] = $array[$key]; - } - - return $results; - } - - /** - * Set an array item to a given value using "dot" notation. - * - * If no key is given to the method, the entire array will be replaced. - * - * @param array $array - * @param string $key - * @param mixed $value - * @return array - */ - public static function set(&$array, $key, $value) - { - if (is_null($key)) { - return $array = $value; - } - - $keys = explode('.', $key); - - while (count($keys) > 1) { - $key = array_shift($keys); - - // If the key doesn't exist at this depth, we will just create an empty array - // to hold the next value, allowing us to create the arrays to hold final - // values at the correct depth. Then we'll keep digging into the array. - if (! isset($array[$key]) || ! is_array($array[$key])) { - $array[$key] = []; - } - - $array = &$array[$key]; - } - - $array[array_shift($keys)] = $value; - - return $array; - } - - /** - * Shuffle the given array and return the result. - * - * @param array $array - * @param int|null $seed - * @return array - */ - public static function shuffle($array, $seed = null) - { - if (is_null($seed)) { - shuffle($array); - } else { - srand($seed); - - usort($array, function () { - return rand(-1, 1); - }); - } - - return $array; - } - - /** - * Sort the array using the given callback or "dot" notation. - * - * @param array $array - * @param callable|string|null $callback - * @return array - */ - public static function sort($array, $callback = null) - { - return Collection::make($array)->sortBy($callback)->all(); - } - - /** - * Recursively sort an array by keys and values. - * - * @param array $array - * @return array - */ - public static function sortRecursive($array) - { - foreach ($array as &$value) { - if (is_array($value)) { - $value = static::sortRecursive($value); - } - } - - if (static::isAssoc($array)) { - ksort($array); - } else { - sort($array); - } - - return $array; - } - - /** - * Filter the array using the given callback. - * - * @param array $array - * @param callable $callback - * @return array - */ - public static function where($array, callable $callback) - { - return array_filter($array, $callback, ARRAY_FILTER_USE_BOTH); - } - - /** - * If the given value is not an array and not null, wrap it in one. - * - * @param mixed $value - * @return array - */ - public static function wrap($value) - { - if (is_null($value)) { - return []; - } - - return ! is_array($value) ? [$value] : $value; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Support/Carbon.php b/vendor/laravel/framework/src/Illuminate/Support/Carbon.php deleted file mode 100644 index db1bdbef..00000000 --- a/vendor/laravel/framework/src/Illuminate/Support/Carbon.php +++ /dev/null @@ -1,48 +0,0 @@ -items = $this->getArrayableItems($items); - } - - /** - * Create a new collection instance if the value isn't one already. - * - * @param mixed $items - * @return static - */ - public static function make($items = []) - { - return new static($items); - } - - /** - * Wrap the given value in a collection if applicable. - * - * @param mixed $value - * @return static - */ - public static function wrap($value) - { - return $value instanceof self - ? new static($value) - : new static(Arr::wrap($value)); - } - - /** - * Get the underlying items from the given collection if applicable. - * - * @param array|static $value - * @return array - */ - public static function unwrap($value) - { - return $value instanceof self ? $value->all() : $value; - } - - /** - * Create a new collection by invoking the callback a given amount of times. - * - * @param int $number - * @param callable $callback - * @return static - */ - public static function times($number, callable $callback = null) - { - if ($number < 1) { - return new static; - } - - if (is_null($callback)) { - return new static(range(1, $number)); - } - - return (new static(range(1, $number)))->map($callback); - } - - /** - * Get all of the items in the collection. - * - * @return array - */ - public function all() - { - return $this->items; - } - - /** - * Get the average value of a given key. - * - * @param callable|string|null $callback - * @return mixed - */ - public function avg($callback = null) - { - if ($count = $this->count()) { - return $this->sum($callback) / $count; - } - } - - /** - * Alias for the "avg" method. - * - * @param callable|string|null $callback - * @return mixed - */ - public function average($callback = null) - { - return $this->avg($callback); - } - - /** - * Get the median of a given key. - * - * @param null $key - * @return mixed - */ - public function median($key = null) - { - $count = $this->count(); - - if ($count == 0) { - return; - } - - $values = (isset($key) ? $this->pluck($key) : $this) - ->sort()->values(); - - $middle = (int) ($count / 2); - - if ($count % 2) { - return $values->get($middle); - } - - return (new static([ - $values->get($middle - 1), $values->get($middle), - ]))->average(); - } - - /** - * Get the mode of a given key. - * - * @param mixed $key - * @return array|null - */ - public function mode($key = null) - { - $count = $this->count(); - - if ($count == 0) { - return; - } - - $collection = isset($key) ? $this->pluck($key) : $this; - - $counts = new self; - - $collection->each(function ($value) use ($counts) { - $counts[$value] = isset($counts[$value]) ? $counts[$value] + 1 : 1; - }); - - $sorted = $counts->sort(); - - $highestValue = $sorted->last(); - - return $sorted->filter(function ($value) use ($highestValue) { - return $value == $highestValue; - })->sort()->keys()->all(); - } - - /** - * Collapse the collection of items into a single array. - * - * @return static - */ - public function collapse() - { - return new static(Arr::collapse($this->items)); - } - - /** - * Determine if an item exists in the collection. - * - * @param mixed $key - * @param mixed $operator - * @param mixed $value - * @return bool - */ - public function contains($key, $operator = null, $value = null) - { - if (func_num_args() === 1) { - if ($this->useAsCallable($key)) { - $placeholder = new stdClass; - - return $this->first($key, $placeholder) !== $placeholder; - } - - return in_array($key, $this->items); - } - - return $this->contains($this->operatorForWhere(...func_get_args())); - } - - /** - * Determine if an item exists in the collection using strict comparison. - * - * @param mixed $key - * @param mixed $value - * @return bool - */ - public function containsStrict($key, $value = null) - { - if (func_num_args() === 2) { - return $this->contains(function ($item) use ($key, $value) { - return data_get($item, $key) === $value; - }); - } - - if ($this->useAsCallable($key)) { - return ! is_null($this->first($key)); - } - - return in_array($key, $this->items, true); - } - - /** - * Cross join with the given lists, returning all possible permutations. - * - * @param mixed ...$lists - * @return static - */ - public function crossJoin(...$lists) - { - return new static(Arr::crossJoin( - $this->items, ...array_map([$this, 'getArrayableItems'], $lists) - )); - } - - /** - * Dump the collection and end the script. - * - * @return void - */ - public function dd(...$args) - { - call_user_func_array([$this, 'dump'], $args); - - die(1); - } - - /** - * Dump the collection. - * - * @return $this - */ - public function dump() - { - (new static(func_get_args())) - ->push($this) - ->each(function ($item) { - (new Dumper)->dump($item); - }); - - return $this; - } - - /** - * Get the items in the collection that are not present in the given items. - * - * @param mixed $items - * @return static - */ - public function diff($items) - { - return new static(array_diff($this->items, $this->getArrayableItems($items))); - } - - /** - * Get the items in the collection that are not present in the given items. - * - * @param mixed $items - * @param callable $callback - * @return static - */ - public function diffUsing($items, callable $callback) - { - return new static(array_udiff($this->items, $this->getArrayableItems($items), $callback)); - } - - /** - * Get the items in the collection whose keys and values are not present in the given items. - * - * @param mixed $items - * @return static - */ - public function diffAssoc($items) - { - return new static(array_diff_assoc($this->items, $this->getArrayableItems($items))); - } - - /** - * Get the items in the collection whose keys and values are not present in the given items. - * - * @param mixed $items - * @param callable $callback - * @return static - */ - public function diffAssocUsing($items, callable $callback) - { - return new static(array_diff_uassoc($this->items, $this->getArrayableItems($items), $callback)); - } - - /** - * Get the items in the collection whose keys are not present in the given items. - * - * @param mixed $items - * @return static - */ - public function diffKeys($items) - { - return new static(array_diff_key($this->items, $this->getArrayableItems($items))); - } - - /** - * Get the items in the collection whose keys are not present in the given items. - * - * @param mixed $items - * @param callable $callback - * @return static - */ - public function diffKeysUsing($items, callable $callback) - { - return new static(array_diff_ukey($this->items, $this->getArrayableItems($items), $callback)); - } - - /** - * Execute a callback over each item. - * - * @param callable $callback - * @return $this - */ - public function each(callable $callback) - { - foreach ($this->items as $key => $item) { - if ($callback($item, $key) === false) { - break; - } - } - - return $this; - } - - /** - * Execute a callback over each nested chunk of items. - * - * @param callable $callback - * @return static - */ - public function eachSpread(callable $callback) - { - return $this->each(function ($chunk, $key) use ($callback) { - $chunk[] = $key; - - return $callback(...$chunk); - }); - } - - /** - * Determine if all items in the collection pass the given test. - * - * @param string|callable $key - * @param mixed $operator - * @param mixed $value - * @return bool - */ - public function every($key, $operator = null, $value = null) - { - if (func_num_args() === 1) { - $callback = $this->valueRetriever($key); - - foreach ($this->items as $k => $v) { - if (! $callback($v, $k)) { - return false; - } - } - - return true; - } - - return $this->every($this->operatorForWhere(...func_get_args())); - } - - /** - * Get all items except for those with the specified keys. - * - * @param \Illuminate\Support\Collection|mixed $keys - * @return static - */ - public function except($keys) - { - if ($keys instanceof self) { - $keys = $keys->all(); - } elseif (! is_array($keys)) { - $keys = func_get_args(); - } - - return new static(Arr::except($this->items, $keys)); - } - - /** - * Run a filter over each of the items. - * - * @param callable|null $callback - * @return static - */ - public function filter(callable $callback = null) - { - if ($callback) { - return new static(Arr::where($this->items, $callback)); - } - - return new static(array_filter($this->items)); - } - - /** - * Apply the callback if the value is truthy. - * - * @param bool $value - * @param callable $callback - * @param callable $default - * @return static|mixed - */ - public function when($value, callable $callback, callable $default = null) - { - if ($value) { - return $callback($this, $value); - } elseif ($default) { - return $default($this, $value); - } - - return $this; - } - - /** - * Apply the callback if the value is falsy. - * - * @param bool $value - * @param callable $callback - * @param callable $default - * @return static|mixed - */ - public function unless($value, callable $callback, callable $default = null) - { - return $this->when(! $value, $callback, $default); - } - - /** - * Filter items by the given key value pair. - * - * @param string $key - * @param mixed $operator - * @param mixed $value - * @return static - */ - public function where($key, $operator, $value = null) - { - return $this->filter($this->operatorForWhere(...func_get_args())); - } - - /** - * Get an operator checker callback. - * - * @param string $key - * @param string $operator - * @param mixed $value - * @return \Closure - */ - protected function operatorForWhere($key, $operator, $value = null) - { - if (func_num_args() === 2) { - $value = $operator; - - $operator = '='; - } - - return function ($item) use ($key, $operator, $value) { - $retrieved = data_get($item, $key); - - $strings = array_filter([$retrieved, $value], function ($value) { - return is_string($value) || (is_object($value) && method_exists($value, '__toString')); - }); - - if (count($strings) < 2 && count(array_filter([$retrieved, $value], 'is_object')) == 1) { - return in_array($operator, ['!=', '<>', '!==']); - } - - switch ($operator) { - default: - case '=': - case '==': return $retrieved == $value; - case '!=': - case '<>': return $retrieved != $value; - case '<': return $retrieved < $value; - case '>': return $retrieved > $value; - case '<=': return $retrieved <= $value; - case '>=': return $retrieved >= $value; - case '===': return $retrieved === $value; - case '!==': return $retrieved !== $value; - } - }; - } - - /** - * Filter items by the given key value pair using strict comparison. - * - * @param string $key - * @param mixed $value - * @return static - */ - public function whereStrict($key, $value) - { - return $this->where($key, '===', $value); - } - - /** - * Filter items by the given key value pair. - * - * @param string $key - * @param mixed $values - * @param bool $strict - * @return static - */ - public function whereIn($key, $values, $strict = false) - { - $values = $this->getArrayableItems($values); - - return $this->filter(function ($item) use ($key, $values, $strict) { - return in_array(data_get($item, $key), $values, $strict); - }); - } - - /** - * Filter items by the given key value pair using strict comparison. - * - * @param string $key - * @param mixed $values - * @return static - */ - public function whereInStrict($key, $values) - { - return $this->whereIn($key, $values, true); - } - - /** - * Filter items by the given key value pair. - * - * @param string $key - * @param mixed $values - * @param bool $strict - * @return static - */ - public function whereNotIn($key, $values, $strict = false) - { - $values = $this->getArrayableItems($values); - - return $this->reject(function ($item) use ($key, $values, $strict) { - return in_array(data_get($item, $key), $values, $strict); - }); - } - - /** - * Filter items by the given key value pair using strict comparison. - * - * @param string $key - * @param mixed $values - * @return static - */ - public function whereNotInStrict($key, $values) - { - return $this->whereNotIn($key, $values, true); - } - - /** - * Filter the items, removing any items that don't match the given type. - * - * @param string $type - * @return static - */ - public function whereInstanceOf($type) - { - return $this->filter(function ($value) use ($type) { - return $value instanceof $type; - }); - } - - /** - * Get the first item from the collection. - * - * @param callable|null $callback - * @param mixed $default - * @return mixed - */ - public function first(callable $callback = null, $default = null) - { - return Arr::first($this->items, $callback, $default); - } - - /** - * Get the first item by the given key value pair. - * - * @param string $key - * @param mixed $operator - * @param mixed $value - * @return static - */ - public function firstWhere($key, $operator, $value = null) - { - return $this->first($this->operatorForWhere(...func_get_args())); - } - - /** - * Get a flattened array of the items in the collection. - * - * @param int $depth - * @return static - */ - public function flatten($depth = INF) - { - return new static(Arr::flatten($this->items, $depth)); - } - - /** - * Flip the items in the collection. - * - * @return static - */ - public function flip() - { - return new static(array_flip($this->items)); - } - - /** - * Remove an item from the collection by key. - * - * @param string|array $keys - * @return $this - */ - public function forget($keys) - { - foreach ((array) $keys as $key) { - $this->offsetUnset($key); - } - - return $this; - } - - /** - * Get an item from the collection by key. - * - * @param mixed $key - * @param mixed $default - * @return mixed - */ - public function get($key, $default = null) - { - if ($this->offsetExists($key)) { - return $this->items[$key]; - } - - return value($default); - } - - /** - * Group an associative array by a field or using a callback. - * - * @param callable|string $groupBy - * @param bool $preserveKeys - * @return static - */ - public function groupBy($groupBy, $preserveKeys = false) - { - if (is_array($groupBy)) { - $nextGroups = $groupBy; - - $groupBy = array_shift($nextGroups); - } - - $groupBy = $this->valueRetriever($groupBy); - - $results = []; - - foreach ($this->items as $key => $value) { - $groupKeys = $groupBy($value, $key); - - if (! is_array($groupKeys)) { - $groupKeys = [$groupKeys]; - } - - foreach ($groupKeys as $groupKey) { - $groupKey = is_bool($groupKey) ? (int) $groupKey : $groupKey; - - if (! array_key_exists($groupKey, $results)) { - $results[$groupKey] = new static; - } - - $results[$groupKey]->offsetSet($preserveKeys ? $key : null, $value); - } - } - - $result = new static($results); - - if (! empty($nextGroups)) { - return $result->map->groupBy($nextGroups, $preserveKeys); - } - - return $result; - } - - /** - * Key an associative array by a field or using a callback. - * - * @param callable|string $keyBy - * @return static - */ - public function keyBy($keyBy) - { - $keyBy = $this->valueRetriever($keyBy); - - $results = []; - - foreach ($this->items as $key => $item) { - $resolvedKey = $keyBy($item, $key); - - if (is_object($resolvedKey)) { - $resolvedKey = (string) $resolvedKey; - } - - $results[$resolvedKey] = $item; - } - - return new static($results); - } - - /** - * Determine if an item exists in the collection by key. - * - * @param mixed $key - * @return bool - */ - public function has($key) - { - $keys = is_array($key) ? $key : func_get_args(); - - foreach ($keys as $value) { - if (! $this->offsetExists($value)) { - return false; - } - } - - return true; - } - - /** - * Concatenate values of a given key as a string. - * - * @param string $value - * @param string $glue - * @return string - */ - public function implode($value, $glue = null) - { - $first = $this->first(); - - if (is_array($first) || is_object($first)) { - return implode($glue, $this->pluck($value)->all()); - } - - return implode($value, $this->items); - } - - /** - * Intersect the collection with the given items. - * - * @param mixed $items - * @return static - */ - public function intersect($items) - { - return new static(array_intersect($this->items, $this->getArrayableItems($items))); - } - - /** - * Intersect the collection with the given items by key. - * - * @param mixed $items - * @return static - */ - public function intersectByKeys($items) - { - return new static(array_intersect_key( - $this->items, $this->getArrayableItems($items) - )); - } - - /** - * Determine if the collection is empty or not. - * - * @return bool - */ - public function isEmpty() - { - return empty($this->items); - } - - /** - * Determine if the collection is not empty. - * - * @return bool - */ - public function isNotEmpty() - { - return ! $this->isEmpty(); - } - - /** - * Determine if the given value is callable, but not a string. - * - * @param mixed $value - * @return bool - */ - protected function useAsCallable($value) - { - return ! is_string($value) && is_callable($value); - } - - /** - * Get the keys of the collection items. - * - * @return static - */ - public function keys() - { - return new static(array_keys($this->items)); - } - - /** - * Get the last item from the collection. - * - * @param callable|null $callback - * @param mixed $default - * @return mixed - */ - public function last(callable $callback = null, $default = null) - { - return Arr::last($this->items, $callback, $default); - } - - /** - * Get the values of a given key. - * - * @param string|array $value - * @param string|null $key - * @return static - */ - public function pluck($value, $key = null) - { - return new static(Arr::pluck($this->items, $value, $key)); - } - - /** - * Run a map over each of the items. - * - * @param callable $callback - * @return static - */ - public function map(callable $callback) - { - $keys = array_keys($this->items); - - $items = array_map($callback, $this->items, $keys); - - return new static(array_combine($keys, $items)); - } - - /** - * Run a map over each nested chunk of items. - * - * @param callable $callback - * @return static - */ - public function mapSpread(callable $callback) - { - return $this->map(function ($chunk, $key) use ($callback) { - $chunk[] = $key; - - return $callback(...$chunk); - }); - } - - /** - * Run a dictionary map over the items. - * - * The callback should return an associative array with a single key/value pair. - * - * @param callable $callback - * @return static - */ - public function mapToDictionary(callable $callback) - { - $dictionary = []; - - foreach ($this->items as $key => $item) { - $pair = $callback($item, $key); - - $key = key($pair); - - $value = reset($pair); - - if (! isset($dictionary[$key])) { - $dictionary[$key] = []; - } - - $dictionary[$key][] = $value; - } - - return new static($dictionary); - } - - /** - * Run a grouping map over the items. - * - * The callback should return an associative array with a single key/value pair. - * - * @param callable $callback - * @return static - */ - public function mapToGroups(callable $callback) - { - $groups = $this->mapToDictionary($callback); - - return $groups->map([$this, 'make']); - } - - /** - * Run an associative map over each of the items. - * - * The callback should return an associative array with a single key/value pair. - * - * @param callable $callback - * @return static - */ - public function mapWithKeys(callable $callback) - { - $result = []; - - foreach ($this->items as $key => $value) { - $assoc = $callback($value, $key); - - foreach ($assoc as $mapKey => $mapValue) { - $result[$mapKey] = $mapValue; - } - } - - return new static($result); - } - - /** - * Map a collection and flatten the result by a single level. - * - * @param callable $callback - * @return static - */ - public function flatMap(callable $callback) - { - return $this->map($callback)->collapse(); - } - - /** - * Map the values into a new class. - * - * @param string $class - * @return static - */ - public function mapInto($class) - { - return $this->map(function ($value, $key) use ($class) { - return new $class($value, $key); - }); - } - - /** - * Get the max value of a given key. - * - * @param callable|string|null $callback - * @return mixed - */ - public function max($callback = null) - { - $callback = $this->valueRetriever($callback); - - return $this->filter(function ($value) { - return ! is_null($value); - })->reduce(function ($result, $item) use ($callback) { - $value = $callback($item); - - return is_null($result) || $value > $result ? $value : $result; - }); - } - - /** - * Merge the collection with the given items. - * - * @param mixed $items - * @return static - */ - public function merge($items) - { - return new static(array_merge($this->items, $this->getArrayableItems($items))); - } - - /** - * Create a collection by using this collection for keys and another for its values. - * - * @param mixed $values - * @return static - */ - public function combine($values) - { - return new static(array_combine($this->all(), $this->getArrayableItems($values))); - } - - /** - * Union the collection with the given items. - * - * @param mixed $items - * @return static - */ - public function union($items) - { - return new static($this->items + $this->getArrayableItems($items)); - } - - /** - * Get the min value of a given key. - * - * @param callable|string|null $callback - * @return mixed - */ - public function min($callback = null) - { - $callback = $this->valueRetriever($callback); - - return $this->filter(function ($value) { - return ! is_null($value); - })->reduce(function ($result, $item) use ($callback) { - $value = $callback($item); - - return is_null($result) || $value < $result ? $value : $result; - }); - } - - /** - * Create a new collection consisting of every n-th element. - * - * @param int $step - * @param int $offset - * @return static - */ - public function nth($step, $offset = 0) - { - $new = []; - - $position = 0; - - foreach ($this->items as $item) { - if ($position % $step === $offset) { - $new[] = $item; - } - - $position++; - } - - return new static($new); - } - - /** - * Get the items with the specified keys. - * - * @param mixed $keys - * @return static - */ - public function only($keys) - { - if (is_null($keys)) { - return new static($this->items); - } - - if ($keys instanceof self) { - $keys = $keys->all(); - } - - $keys = is_array($keys) ? $keys : func_get_args(); - - return new static(Arr::only($this->items, $keys)); - } - - /** - * "Paginate" the collection by slicing it into a smaller collection. - * - * @param int $page - * @param int $perPage - * @return static - */ - public function forPage($page, $perPage) - { - $offset = max(0, ($page - 1) * $perPage); - - return $this->slice($offset, $perPage); - } - - /** - * Partition the collection into two arrays using the given callback or key. - * - * @param callable|string $key - * @param mixed $operator - * @param mixed $value - * @return static - */ - public function partition($key, $operator = null, $value = null) - { - $partitions = [new static, new static]; - - $callback = func_num_args() === 1 - ? $this->valueRetriever($key) - : $this->operatorForWhere(...func_get_args()); - - foreach ($this->items as $key => $item) { - $partitions[(int) ! $callback($item, $key)][$key] = $item; - } - - return new static($partitions); - } - - /** - * Pass the collection to the given callback and return the result. - * - * @param callable $callback - * @return mixed - */ - public function pipe(callable $callback) - { - return $callback($this); - } - - /** - * Get and remove the last item from the collection. - * - * @return mixed - */ - public function pop() - { - return array_pop($this->items); - } - - /** - * Push an item onto the beginning of the collection. - * - * @param mixed $value - * @param mixed $key - * @return $this - */ - public function prepend($value, $key = null) - { - $this->items = Arr::prepend($this->items, $value, $key); - - return $this; - } - - /** - * Push an item onto the end of the collection. - * - * @param mixed $value - * @return $this - */ - public function push($value) - { - $this->offsetSet(null, $value); - - return $this; - } - - /** - * Push all of the given items onto the collection. - * - * @param \Traversable|array $source - * @return $this - */ - public function concat($source) - { - $result = new static($this); - - foreach ($source as $item) { - $result->push($item); - } - - return $result; - } - - /** - * Get and remove an item from the collection. - * - * @param mixed $key - * @param mixed $default - * @return mixed - */ - public function pull($key, $default = null) - { - return Arr::pull($this->items, $key, $default); - } - - /** - * Put an item in the collection by key. - * - * @param mixed $key - * @param mixed $value - * @return $this - */ - public function put($key, $value) - { - $this->offsetSet($key, $value); - - return $this; - } - - /** - * Get one or a specified number of items randomly from the collection. - * - * @param int|null $number - * @return static|mixed - * - * @throws \InvalidArgumentException - */ - public function random($number = null) - { - if (is_null($number)) { - return Arr::random($this->items); - } - - return new static(Arr::random($this->items, $number)); - } - - /** - * Reduce the collection to a single value. - * - * @param callable $callback - * @param mixed $initial - * @return mixed - */ - public function reduce(callable $callback, $initial = null) - { - return array_reduce($this->items, $callback, $initial); - } - - /** - * Create a collection of all elements that do not pass a given truth test. - * - * @param callable|mixed $callback - * @return static - */ - public function reject($callback) - { - if ($this->useAsCallable($callback)) { - return $this->filter(function ($value, $key) use ($callback) { - return ! $callback($value, $key); - }); - } - - return $this->filter(function ($item) use ($callback) { - return $item != $callback; - }); - } - - /** - * Reverse items order. - * - * @return static - */ - public function reverse() - { - return new static(array_reverse($this->items, true)); - } - - /** - * Search the collection for a given value and return the corresponding key if successful. - * - * @param mixed $value - * @param bool $strict - * @return mixed - */ - public function search($value, $strict = false) - { - if (! $this->useAsCallable($value)) { - return array_search($value, $this->items, $strict); - } - - foreach ($this->items as $key => $item) { - if (call_user_func($value, $item, $key)) { - return $key; - } - } - - return false; - } - - /** - * Get and remove the first item from the collection. - * - * @return mixed - */ - public function shift() - { - return array_shift($this->items); - } - - /** - * Shuffle the items in the collection. - * - * @param int $seed - * @return static - */ - public function shuffle($seed = null) - { - return new static(Arr::shuffle($this->items, $seed)); - } - - /** - * Slice the underlying collection array. - * - * @param int $offset - * @param int $length - * @return static - */ - public function slice($offset, $length = null) - { - return new static(array_slice($this->items, $offset, $length, true)); - } - - /** - * Split a collection into a certain number of groups. - * - * @param int $numberOfGroups - * @return static - */ - public function split($numberOfGroups) - { - if ($this->isEmpty()) { - return new static; - } - - $groupSize = ceil($this->count() / $numberOfGroups); - - return $this->chunk($groupSize); - } - - /** - * Chunk the underlying collection array. - * - * @param int $size - * @return static - */ - public function chunk($size) - { - if ($size <= 0) { - return new static; - } - - $chunks = []; - - foreach (array_chunk($this->items, $size, true) as $chunk) { - $chunks[] = new static($chunk); - } - - return new static($chunks); - } - - /** - * Sort through each item with a callback. - * - * @param callable|null $callback - * @return static - */ - public function sort(callable $callback = null) - { - $items = $this->items; - - $callback - ? uasort($items, $callback) - : asort($items); - - return new static($items); - } - - /** - * Sort the collection using the given callback. - * - * @param callable|string $callback - * @param int $options - * @param bool $descending - * @return static - */ - public function sortBy($callback, $options = SORT_REGULAR, $descending = false) - { - $results = []; - - $callback = $this->valueRetriever($callback); - - // First we will loop through the items and get the comparator from a callback - // function which we were given. Then, we will sort the returned values and - // and grab the corresponding values for the sorted keys from this array. - foreach ($this->items as $key => $value) { - $results[$key] = $callback($value, $key); - } - - $descending ? arsort($results, $options) - : asort($results, $options); - - // Once we have sorted all of the keys in the array, we will loop through them - // and grab the corresponding model so we can set the underlying items list - // to the sorted version. Then we'll just return the collection instance. - foreach (array_keys($results) as $key) { - $results[$key] = $this->items[$key]; - } - - return new static($results); - } - - /** - * Sort the collection in descending order using the given callback. - * - * @param callable|string $callback - * @param int $options - * @return static - */ - public function sortByDesc($callback, $options = SORT_REGULAR) - { - return $this->sortBy($callback, $options, true); - } - - /** - * Sort the collection keys. - * - * @param int $options - * @param bool $descending - * @return static - */ - public function sortKeys($options = SORT_REGULAR, $descending = false) - { - $items = $this->items; - - $descending ? krsort($items, $options) : ksort($items, $options); - - return new static($items); - } - - /** - * Sort the collection keys in descending order. - * - * @param int $options - * @return static - */ - public function sortKeysDesc($options = SORT_REGULAR) - { - return $this->sortKeys($options, true); - } - - /** - * Splice a portion of the underlying collection array. - * - * @param int $offset - * @param int|null $length - * @param mixed $replacement - * @return static - */ - public function splice($offset, $length = null, $replacement = []) - { - if (func_num_args() === 1) { - return new static(array_splice($this->items, $offset)); - } - - return new static(array_splice($this->items, $offset, $length, $replacement)); - } - - /** - * Get the sum of the given values. - * - * @param callable|string|null $callback - * @return mixed - */ - public function sum($callback = null) - { - if (is_null($callback)) { - return array_sum($this->items); - } - - $callback = $this->valueRetriever($callback); - - return $this->reduce(function ($result, $item) use ($callback) { - return $result + $callback($item); - }, 0); - } - - /** - * Take the first or last {$limit} items. - * - * @param int $limit - * @return static - */ - public function take($limit) - { - if ($limit < 0) { - return $this->slice($limit, abs($limit)); - } - - return $this->slice(0, $limit); - } - - /** - * Pass the collection to the given callback and then return it. - * - * @param callable $callback - * @return $this - */ - public function tap(callable $callback) - { - $callback(new static($this->items)); - - return $this; - } - - /** - * Transform each item in the collection using a callback. - * - * @param callable $callback - * @return $this - */ - public function transform(callable $callback) - { - $this->items = $this->map($callback)->all(); - - return $this; - } - - /** - * Return only unique items from the collection array. - * - * @param string|callable|null $key - * @param bool $strict - * @return static - */ - public function unique($key = null, $strict = false) - { - $callback = $this->valueRetriever($key); - - $exists = []; - - return $this->reject(function ($item, $key) use ($callback, $strict, &$exists) { - if (in_array($id = $callback($item, $key), $exists, $strict)) { - return true; - } - - $exists[] = $id; - }); - } - - /** - * Return only unique items from the collection array using strict comparison. - * - * @param string|callable|null $key - * @return static - */ - public function uniqueStrict($key = null) - { - return $this->unique($key, true); - } - - /** - * Reset the keys on the underlying array. - * - * @return static - */ - public function values() - { - return new static(array_values($this->items)); - } - - /** - * Get a value retrieving callback. - * - * @param string $value - * @return callable - */ - protected function valueRetriever($value) - { - if ($this->useAsCallable($value)) { - return $value; - } - - return function ($item) use ($value) { - return data_get($item, $value); - }; - } - - /** - * Zip the collection together with one or more arrays. - * - * e.g. new Collection([1, 2, 3])->zip([4, 5, 6]); - * => [[1, 4], [2, 5], [3, 6]] - * - * @param mixed ...$items - * @return static - */ - public function zip($items) - { - $arrayableItems = array_map(function ($items) { - return $this->getArrayableItems($items); - }, func_get_args()); - - $params = array_merge([function () { - return new static(func_get_args()); - }, $this->items], $arrayableItems); - - return new static(call_user_func_array('array_map', $params)); - } - - /** - * Pad collection to the specified length with a value. - * - * @param int $size - * @param mixed $value - * @return static - */ - public function pad($size, $value) - { - return new static(array_pad($this->items, $size, $value)); - } - - /** - * Get the collection of items as a plain array. - * - * @return array - */ - public function toArray() - { - return array_map(function ($value) { - return $value instanceof Arrayable ? $value->toArray() : $value; - }, $this->items); - } - - /** - * Convert the object into something JSON serializable. - * - * @return array - */ - public function jsonSerialize() - { - return array_map(function ($value) { - if ($value instanceof JsonSerializable) { - return $value->jsonSerialize(); - } elseif ($value instanceof Jsonable) { - return json_decode($value->toJson(), true); - } elseif ($value instanceof Arrayable) { - return $value->toArray(); - } - - return $value; - }, $this->items); - } - - /** - * Get the collection of items as JSON. - * - * @param int $options - * @return string - */ - public function toJson($options = 0) - { - return json_encode($this->jsonSerialize(), $options); - } - - /** - * Get an iterator for the items. - * - * @return \ArrayIterator - */ - public function getIterator() - { - return new ArrayIterator($this->items); - } - - /** - * Get a CachingIterator instance. - * - * @param int $flags - * @return \CachingIterator - */ - public function getCachingIterator($flags = CachingIterator::CALL_TOSTRING) - { - return new CachingIterator($this->getIterator(), $flags); - } - - /** - * Count the number of items in the collection. - * - * @return int - */ - public function count() - { - return count($this->items); - } - - /** - * Get a base Support collection instance from this collection. - * - * @return \Illuminate\Support\Collection - */ - public function toBase() - { - return new self($this); - } - - /** - * Determine if an item exists at an offset. - * - * @param mixed $key - * @return bool - */ - public function offsetExists($key) - { - return array_key_exists($key, $this->items); - } - - /** - * Get an item at a given offset. - * - * @param mixed $key - * @return mixed - */ - public function offsetGet($key) - { - return $this->items[$key]; - } - - /** - * Set the item at a given offset. - * - * @param mixed $key - * @param mixed $value - * @return void - */ - public function offsetSet($key, $value) - { - if (is_null($key)) { - $this->items[] = $value; - } else { - $this->items[$key] = $value; - } - } - - /** - * Unset the item at a given offset. - * - * @param string $key - * @return void - */ - public function offsetUnset($key) - { - unset($this->items[$key]); - } - - /** - * Convert the collection to its string representation. - * - * @return string - */ - public function __toString() - { - return $this->toJson(); - } - - /** - * Results array of items from Collection or Arrayable. - * - * @param mixed $items - * @return array - */ - protected function getArrayableItems($items) - { - if (is_array($items)) { - return $items; - } elseif ($items instanceof self) { - return $items->all(); - } elseif ($items instanceof Arrayable) { - return $items->toArray(); - } elseif ($items instanceof Jsonable) { - return json_decode($items->toJson(), true); - } elseif ($items instanceof JsonSerializable) { - return $items->jsonSerialize(); - } elseif ($items instanceof Traversable) { - return iterator_to_array($items); - } - - return (array) $items; - } - - /** - * Add a method to the list of proxied methods. - * - * @param string $method - * @return void - */ - public static function proxy($method) - { - static::$proxies[] = $method; - } - - /** - * Dynamically access collection proxies. - * - * @param string $key - * @return mixed - * - * @throws \Exception - */ - public function __get($key) - { - if (! in_array($key, static::$proxies)) { - throw new Exception("Property [{$key}] does not exist on this collection instance."); - } - - return new HigherOrderCollectionProxy($this, $key); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Support/Composer.php b/vendor/laravel/framework/src/Illuminate/Support/Composer.php deleted file mode 100644 index bc76aeb2..00000000 --- a/vendor/laravel/framework/src/Illuminate/Support/Composer.php +++ /dev/null @@ -1,99 +0,0 @@ -files = $files; - $this->workingPath = $workingPath; - } - - /** - * Regenerate the Composer autoloader files. - * - * @param string $extra - * @return void - */ - public function dumpAutoloads($extra = '') - { - $process = $this->getProcess(); - - $process->setCommandLine(trim($this->findComposer().' dump-autoload '.$extra)); - - $process->run(); - } - - /** - * Regenerate the optimized Composer autoloader files. - * - * @return void - */ - public function dumpOptimized() - { - $this->dumpAutoloads('--optimize'); - } - - /** - * Get the composer command for the environment. - * - * @return string - */ - protected function findComposer() - { - if ($this->files->exists($this->workingPath.'/composer.phar')) { - return ProcessUtils::escapeArgument((new PhpExecutableFinder)->find(false)).' composer.phar'; - } - - return 'composer'; - } - - /** - * Get a new Symfony process instance. - * - * @return \Symfony\Component\Process\Process - */ - protected function getProcess() - { - return (new Process('', $this->workingPath))->setTimeout(null); - } - - /** - * Set the working path used by the class. - * - * @param string $path - * @return $this - */ - public function setWorkingPath($path) - { - $this->workingPath = realpath($path); - - return $this; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Support/Debug/Dumper.php b/vendor/laravel/framework/src/Illuminate/Support/Debug/Dumper.php deleted file mode 100644 index 7442343f..00000000 --- a/vendor/laravel/framework/src/Illuminate/Support/Debug/Dumper.php +++ /dev/null @@ -1,26 +0,0 @@ -dump((new VarCloner)->cloneVar($value)); - } else { - var_dump($value); - } - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Support/Debug/HtmlDumper.php b/vendor/laravel/framework/src/Illuminate/Support/Debug/HtmlDumper.php deleted file mode 100644 index 5825ac8d..00000000 --- a/vendor/laravel/framework/src/Illuminate/Support/Debug/HtmlDumper.php +++ /dev/null @@ -1,29 +0,0 @@ - 'background-color:#fff; color:#222; line-height:1.2em; font-weight:normal; font:12px Monaco, Consolas, monospace; word-wrap: break-word; white-space: pre-wrap; position:relative; z-index:100000', - 'num' => 'color:#a71d5d', - 'const' => 'color:#795da3', - 'str' => 'color:#df5000', - 'cchr' => 'color:#222', - 'note' => 'color:#a71d5d', - 'ref' => 'color:#a0a0a0', - 'public' => 'color:#795da3', - 'protected' => 'color:#795da3', - 'private' => 'color:#795da3', - 'meta' => 'color:#b729d9', - 'key' => 'color:#df5000', - 'index' => 'color:#a71d5d', - ]; -} diff --git a/vendor/laravel/framework/src/Illuminate/Support/Facades/App.php b/vendor/laravel/framework/src/Illuminate/Support/Facades/App.php deleted file mode 100755 index 0e9e6370..00000000 --- a/vendor/laravel/framework/src/Illuminate/Support/Facades/App.php +++ /dev/null @@ -1,31 +0,0 @@ -make('router')->auth(); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Support/Facades/Blade.php b/vendor/laravel/framework/src/Illuminate/Support/Facades/Blade.php deleted file mode 100755 index 241f6c6a..00000000 --- a/vendor/laravel/framework/src/Illuminate/Support/Facades/Blade.php +++ /dev/null @@ -1,36 +0,0 @@ -getEngineResolver()->resolve('blade')->getCompiler(); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Support/Facades/Broadcast.php b/vendor/laravel/framework/src/Illuminate/Support/Facades/Broadcast.php deleted file mode 100644 index 304aba9f..00000000 --- a/vendor/laravel/framework/src/Illuminate/Support/Facades/Broadcast.php +++ /dev/null @@ -1,25 +0,0 @@ -cookie($key, null)); - } - - /** - * Retrieve a cookie from the request. - * - * @param string $key - * @param mixed $default - * @return string - */ - public static function get($key = null, $default = null) - { - return static::$app['request']->cookie($key, $default); - } - - /** - * Get the registered name of the component. - * - * @return string - */ - protected static function getFacadeAccessor() - { - return 'cookie'; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Support/Facades/Crypt.php b/vendor/laravel/framework/src/Illuminate/Support/Facades/Crypt.php deleted file mode 100755 index 84317c37..00000000 --- a/vendor/laravel/framework/src/Illuminate/Support/Facades/Crypt.php +++ /dev/null @@ -1,22 +0,0 @@ -shouldReceive(...func_get_args()); - } - - /** - * Create a fresh mock instance for the given class. - * - * @return \Mockery\Expectation - */ - protected static function createFreshMockInstance() - { - return tap(static::createMock(), function ($mock) { - static::swap($mock); - - $mock->shouldAllowMockingProtectedMethods(); - }); - } - - /** - * Create a fresh mock instance for the given class. - * - * @return \Mockery\MockInterface - */ - protected static function createMock() - { - $class = static::getMockableClass(); - - return $class ? Mockery::mock($class) : Mockery::mock(); - } - - /** - * Determines whether a mock is set as the instance of the facade. - * - * @return bool - */ - protected static function isMock() - { - $name = static::getFacadeAccessor(); - - return isset(static::$resolvedInstance[$name]) && - static::$resolvedInstance[$name] instanceof MockInterface; - } - - /** - * Get the mockable class for the bound instance. - * - * @return string|null - */ - protected static function getMockableClass() - { - if ($root = static::getFacadeRoot()) { - return get_class($root); - } - } - - /** - * Hotswap the underlying instance behind the facade. - * - * @param mixed $instance - * @return void - */ - public static function swap($instance) - { - static::$resolvedInstance[static::getFacadeAccessor()] = $instance; - - if (isset(static::$app)) { - static::$app->instance(static::getFacadeAccessor(), $instance); - } - } - - /** - * Get the root object behind the facade. - * - * @return mixed - */ - public static function getFacadeRoot() - { - return static::resolveFacadeInstance(static::getFacadeAccessor()); - } - - /** - * Get the registered name of the component. - * - * @return string - * - * @throws \RuntimeException - */ - protected static function getFacadeAccessor() - { - throw new RuntimeException('Facade does not implement getFacadeAccessor method.'); - } - - /** - * Resolve the facade root instance from the container. - * - * @param string|object $name - * @return mixed - */ - protected static function resolveFacadeInstance($name) - { - if (is_object($name)) { - return $name; - } - - if (isset(static::$resolvedInstance[$name])) { - return static::$resolvedInstance[$name]; - } - - return static::$resolvedInstance[$name] = static::$app[$name]; - } - - /** - * Clear a resolved facade instance. - * - * @param string $name - * @return void - */ - public static function clearResolvedInstance($name) - { - unset(static::$resolvedInstance[$name]); - } - - /** - * Clear all of the resolved instances. - * - * @return void - */ - public static function clearResolvedInstances() - { - static::$resolvedInstance = []; - } - - /** - * Get the application instance behind the facade. - * - * @return \Illuminate\Contracts\Foundation\Application - */ - public static function getFacadeApplication() - { - return static::$app; - } - - /** - * Set the application instance. - * - * @param \Illuminate\Contracts\Foundation\Application $app - * @return void - */ - public static function setFacadeApplication($app) - { - static::$app = $app; - } - - /** - * Handle dynamic, static calls to the object. - * - * @param string $method - * @param array $args - * @return mixed - * - * @throws \RuntimeException - */ - public static function __callStatic($method, $args) - { - $instance = static::getFacadeRoot(); - - if (! $instance) { - throw new RuntimeException('A facade root has not been set.'); - } - - return $instance->$method(...$args); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Support/Facades/File.php b/vendor/laravel/framework/src/Illuminate/Support/Facades/File.php deleted file mode 100755 index ff0290d5..00000000 --- a/vendor/laravel/framework/src/Illuminate/Support/Facades/File.php +++ /dev/null @@ -1,55 +0,0 @@ -input($key, $default); - } - - /** - * Get the registered name of the component. - * - * @return string - */ - protected static function getFacadeAccessor() - { - return 'request'; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Support/Facades/Lang.php b/vendor/laravel/framework/src/Illuminate/Support/Facades/Lang.php deleted file mode 100755 index 1e74b229..00000000 --- a/vendor/laravel/framework/src/Illuminate/Support/Facades/Lang.php +++ /dev/null @@ -1,25 +0,0 @@ -route($channel, $route); - } - - /** - * Get the registered name of the component. - * - * @return string - */ - protected static function getFacadeAccessor() - { - return ChannelManager::class; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Support/Facades/Password.php b/vendor/laravel/framework/src/Illuminate/Support/Facades/Password.php deleted file mode 100755 index c291b97f..00000000 --- a/vendor/laravel/framework/src/Illuminate/Support/Facades/Password.php +++ /dev/null @@ -1,59 +0,0 @@ -connection($name)->getSchemaBuilder(); - } - - /** - * Get a schema builder instance for the default connection. - * - * @return \Illuminate\Database\Schema\Builder - */ - protected static function getFacadeAccessor() - { - return static::$app['db']->connection()->getSchemaBuilder(); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Support/Facades/Session.php b/vendor/laravel/framework/src/Illuminate/Support/Facades/Session.php deleted file mode 100755 index 3b0be943..00000000 --- a/vendor/laravel/framework/src/Illuminate/Support/Facades/Session.php +++ /dev/null @@ -1,42 +0,0 @@ -get('filesystems.default'); - - (new Filesystem)->cleanDirectory( - $root = storage_path('framework/testing/disks/'.$disk) - ); - - static::set($disk, self::createLocalDriver(['root' => $root])); - } - - /** - * Replace the given disk with a persistent local testing disk. - * - * @param string|null $disk - * @return void - */ - public static function persistentFake($disk = null) - { - $disk = $disk ?: self::$app['config']->get('filesystems.default'); - - static::set($disk, self::createLocalDriver([ - 'root' => storage_path('framework/testing/disks/'.$disk), - ])); - } - - /** - * Get the registered name of the component. - * - * @return string - */ - protected static function getFacadeAccessor() - { - return 'filesystem'; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Support/Facades/URL.php b/vendor/laravel/framework/src/Illuminate/Support/Facades/URL.php deleted file mode 100755 index e1d781fa..00000000 --- a/vendor/laravel/framework/src/Illuminate/Support/Facades/URL.php +++ /dev/null @@ -1,33 +0,0 @@ - $value) { - $this->attributes[$key] = $value; - } - } - - /** - * Get an attribute from the container. - * - * @param string $key - * @param mixed $default - * @return mixed - */ - public function get($key, $default = null) - { - if (array_key_exists($key, $this->attributes)) { - return $this->attributes[$key]; - } - - return value($default); - } - - /** - * Get the attributes from the container. - * - * @return array - */ - public function getAttributes() - { - return $this->attributes; - } - - /** - * Convert the Fluent instance to an array. - * - * @return array - */ - public function toArray() - { - return $this->attributes; - } - - /** - * Convert the object into something JSON serializable. - * - * @return array - */ - public function jsonSerialize() - { - return $this->toArray(); - } - - /** - * Convert the Fluent instance to JSON. - * - * @param int $options - * @return string - */ - public function toJson($options = 0) - { - return json_encode($this->jsonSerialize(), $options); - } - - /** - * Determine if the given offset exists. - * - * @param string $offset - * @return bool - */ - public function offsetExists($offset) - { - return isset($this->attributes[$offset]); - } - - /** - * Get the value for a given offset. - * - * @param string $offset - * @return mixed - */ - public function offsetGet($offset) - { - return $this->get($offset); - } - - /** - * Set the value at the given offset. - * - * @param string $offset - * @param mixed $value - * @return void - */ - public function offsetSet($offset, $value) - { - $this->attributes[$offset] = $value; - } - - /** - * Unset the value at the given offset. - * - * @param string $offset - * @return void - */ - public function offsetUnset($offset) - { - unset($this->attributes[$offset]); - } - - /** - * Handle dynamic calls to the container to set attributes. - * - * @param string $method - * @param array $parameters - * @return $this - */ - public function __call($method, $parameters) - { - $this->attributes[$method] = count($parameters) > 0 ? $parameters[0] : true; - - return $this; - } - - /** - * Dynamically retrieve the value of an attribute. - * - * @param string $key - * @return mixed - */ - public function __get($key) - { - return $this->get($key); - } - - /** - * Dynamically set the value of an attribute. - * - * @param string $key - * @param mixed $value - * @return void - */ - public function __set($key, $value) - { - $this->offsetSet($key, $value); - } - - /** - * Dynamically check if an attribute is set. - * - * @param string $key - * @return bool - */ - public function __isset($key) - { - return $this->offsetExists($key); - } - - /** - * Dynamically unset an attribute. - * - * @param string $key - * @return void - */ - public function __unset($key) - { - $this->offsetUnset($key); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Support/HigherOrderCollectionProxy.php b/vendor/laravel/framework/src/Illuminate/Support/HigherOrderCollectionProxy.php deleted file mode 100644 index 7a781a02..00000000 --- a/vendor/laravel/framework/src/Illuminate/Support/HigherOrderCollectionProxy.php +++ /dev/null @@ -1,63 +0,0 @@ -method = $method; - $this->collection = $collection; - } - - /** - * Proxy accessing an attribute onto the collection items. - * - * @param string $key - * @return mixed - */ - public function __get($key) - { - return $this->collection->{$this->method}(function ($value) use ($key) { - return is_array($value) ? $value[$key] : $value->{$key}; - }); - } - - /** - * Proxy a method call onto the collection items. - * - * @param string $method - * @param array $parameters - * @return mixed - */ - public function __call($method, $parameters) - { - return $this->collection->{$this->method}(function ($value) use ($method, $parameters) { - return $value->{$method}(...$parameters); - }); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Support/HigherOrderTapProxy.php b/vendor/laravel/framework/src/Illuminate/Support/HigherOrderTapProxy.php deleted file mode 100644 index bbf9b2e5..00000000 --- a/vendor/laravel/framework/src/Illuminate/Support/HigherOrderTapProxy.php +++ /dev/null @@ -1,38 +0,0 @@ -target = $target; - } - - /** - * Dynamically pass method calls to the target. - * - * @param string $method - * @param array $parameters - * @return mixed - */ - public function __call($method, $parameters) - { - $this->target->{$method}(...$parameters); - - return $this->target; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Support/HtmlString.php b/vendor/laravel/framework/src/Illuminate/Support/HtmlString.php deleted file mode 100644 index c13adfd4..00000000 --- a/vendor/laravel/framework/src/Illuminate/Support/HtmlString.php +++ /dev/null @@ -1,46 +0,0 @@ -html = $html; - } - - /** - * Get the HTML string. - * - * @return string - */ - public function toHtml() - { - return $this->html; - } - - /** - * Get the HTML string. - * - * @return string - */ - public function __toString() - { - return $this->toHtml(); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Support/InteractsWithTime.php b/vendor/laravel/framework/src/Illuminate/Support/InteractsWithTime.php deleted file mode 100644 index 19ed3f24..00000000 --- a/vendor/laravel/framework/src/Illuminate/Support/InteractsWithTime.php +++ /dev/null @@ -1,64 +0,0 @@ -parseDateInterval($delay); - - return $delay instanceof DateTimeInterface - ? max(0, $delay->getTimestamp() - $this->currentTime()) - : (int) $delay; - } - - /** - * Get the "available at" UNIX timestamp. - * - * @param \DateTimeInterface|\DateInterval|int $delay - * @return int - */ - protected function availableAt($delay = 0) - { - $delay = $this->parseDateInterval($delay); - - return $delay instanceof DateTimeInterface - ? $delay->getTimestamp() - : Carbon::now()->addSeconds($delay)->getTimestamp(); - } - - /** - * If the given value is an interval, convert it to a DateTime instance. - * - * @param \DateTimeInterface|\DateInterval|int $delay - * @return \DateTimeInterface|int - */ - protected function parseDateInterval($delay) - { - if ($delay instanceof DateInterval) { - $delay = Carbon::now()->add($delay); - } - - return $delay; - } - - /** - * Get the current system time as a UNIX timestamp. - * - * @return int - */ - protected function currentTime() - { - return Carbon::now()->getTimestamp(); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Support/Manager.php b/vendor/laravel/framework/src/Illuminate/Support/Manager.php deleted file mode 100755 index 5bff0f3f..00000000 --- a/vendor/laravel/framework/src/Illuminate/Support/Manager.php +++ /dev/null @@ -1,148 +0,0 @@ -app = $app; - } - - /** - * Get the default driver name. - * - * @return string - */ - abstract public function getDefaultDriver(); - - /** - * Get a driver instance. - * - * @param string $driver - * @return mixed - * - * @throws \InvalidArgumentException - */ - public function driver($driver = null) - { - $driver = $driver ?: $this->getDefaultDriver(); - - if (is_null($driver)) { - throw new InvalidArgumentException(sprintf( - 'Unable to resolve NULL driver for [%s].', static::class - )); - } - - // If the given driver has not been created before, we will create the instances - // here and cache it so we can return it next time very quickly. If there is - // already a driver created by this name, we'll just return that instance. - if (! isset($this->drivers[$driver])) { - $this->drivers[$driver] = $this->createDriver($driver); - } - - return $this->drivers[$driver]; - } - - /** - * Create a new driver instance. - * - * @param string $driver - * @return mixed - * - * @throws \InvalidArgumentException - */ - protected function createDriver($driver) - { - // We'll check to see if a creator method exists for the given driver. If not we - // will check for a custom driver creator, which allows developers to create - // drivers using their own customized driver creator Closure to create it. - if (isset($this->customCreators[$driver])) { - return $this->callCustomCreator($driver); - } else { - $method = 'create'.Str::studly($driver).'Driver'; - - if (method_exists($this, $method)) { - return $this->$method(); - } - } - throw new InvalidArgumentException("Driver [$driver] not supported."); - } - - /** - * Call a custom driver creator. - * - * @param string $driver - * @return mixed - */ - protected function callCustomCreator($driver) - { - return $this->customCreators[$driver]($this->app); - } - - /** - * Register a custom driver creator Closure. - * - * @param string $driver - * @param \Closure $callback - * @return $this - */ - public function extend($driver, Closure $callback) - { - $this->customCreators[$driver] = $callback; - - return $this; - } - - /** - * Get all of the created "drivers". - * - * @return array - */ - public function getDrivers() - { - return $this->drivers; - } - - /** - * Dynamically call the default driver instance. - * - * @param string $method - * @param array $parameters - * @return mixed - */ - public function __call($method, $parameters) - { - return $this->driver()->$method(...$parameters); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Support/MessageBag.php b/vendor/laravel/framework/src/Illuminate/Support/MessageBag.php deleted file mode 100755 index da2c31e2..00000000 --- a/vendor/laravel/framework/src/Illuminate/Support/MessageBag.php +++ /dev/null @@ -1,395 +0,0 @@ - $value) { - $this->messages[$key] = $value instanceof Arrayable - ? $value->toArray() : (array) $value; - } - } - - /** - * Get the keys present in the message bag. - * - * @return array - */ - public function keys() - { - return array_keys($this->messages); - } - - /** - * Add a message to the bag. - * - * @param string $key - * @param string $message - * @return $this - */ - public function add($key, $message) - { - if ($this->isUnique($key, $message)) { - $this->messages[$key][] = $message; - } - - return $this; - } - - /** - * Determine if a key and message combination already exists. - * - * @param string $key - * @param string $message - * @return bool - */ - protected function isUnique($key, $message) - { - $messages = (array) $this->messages; - - return ! isset($messages[$key]) || ! in_array($message, $messages[$key]); - } - - /** - * Merge a new array of messages into the bag. - * - * @param \Illuminate\Contracts\Support\MessageProvider|array $messages - * @return $this - */ - public function merge($messages) - { - if ($messages instanceof MessageProvider) { - $messages = $messages->getMessageBag()->getMessages(); - } - - $this->messages = array_merge_recursive($this->messages, $messages); - - return $this; - } - - /** - * Determine if messages exist for all of the given keys. - * - * @param array|string $key - * @return bool - */ - public function has($key) - { - if (is_null($key)) { - return $this->any(); - } - - $keys = is_array($key) ? $key : func_get_args(); - - foreach ($keys as $key) { - if ($this->first($key) === '') { - return false; - } - } - - return true; - } - - /** - * Determine if messages exist for any of the given keys. - * - * @param array|string $keys - * @return bool - */ - public function hasAny($keys = []) - { - $keys = is_array($keys) ? $keys : func_get_args(); - - foreach ($keys as $key) { - if ($this->has($key)) { - return true; - } - } - - return false; - } - - /** - * Get the first message from the bag for a given key. - * - * @param string $key - * @param string $format - * @return string - */ - public function first($key = null, $format = null) - { - $messages = is_null($key) ? $this->all($format) : $this->get($key, $format); - - $firstMessage = Arr::first($messages, null, ''); - - return is_array($firstMessage) ? Arr::first($firstMessage) : $firstMessage; - } - - /** - * Get all of the messages from the bag for a given key. - * - * @param string $key - * @param string $format - * @return array - */ - public function get($key, $format = null) - { - // If the message exists in the container, we will transform it and return - // the message. Otherwise, we'll check if the key is implicit & collect - // all the messages that match a given key and output it as an array. - if (array_key_exists($key, $this->messages)) { - return $this->transform( - $this->messages[$key], $this->checkFormat($format), $key - ); - } - - if (Str::contains($key, '*')) { - return $this->getMessagesForWildcardKey($key, $format); - } - - return []; - } - - /** - * Get the messages for a wildcard key. - * - * @param string $key - * @param string|null $format - * @return array - */ - protected function getMessagesForWildcardKey($key, $format) - { - return collect($this->messages) - ->filter(function ($messages, $messageKey) use ($key) { - return Str::is($key, $messageKey); - }) - ->map(function ($messages, $messageKey) use ($format) { - return $this->transform( - $messages, $this->checkFormat($format), $messageKey - ); - })->all(); - } - - /** - * Get all of the messages for every key in the bag. - * - * @param string $format - * @return array - */ - public function all($format = null) - { - $format = $this->checkFormat($format); - - $all = []; - - foreach ($this->messages as $key => $messages) { - $all = array_merge($all, $this->transform($messages, $format, $key)); - } - - return $all; - } - - /** - * Get all of the unique messages for every key in the bag. - * - * @param string $format - * @return array - */ - public function unique($format = null) - { - return array_unique($this->all($format)); - } - - /** - * Format an array of messages. - * - * @param array $messages - * @param string $format - * @param string $messageKey - * @return array - */ - protected function transform($messages, $format, $messageKey) - { - return collect((array) $messages) - ->map(function ($message) use ($format, $messageKey) { - // We will simply spin through the given messages and transform each one - // replacing the :message place holder with the real message allowing - // the messages to be easily formatted to each developer's desires. - return str_replace([':message', ':key'], [$message, $messageKey], $format); - })->all(); - } - - /** - * Get the appropriate format based on the given format. - * - * @param string $format - * @return string - */ - protected function checkFormat($format) - { - return $format ?: $this->format; - } - - /** - * Get the raw messages in the container. - * - * @return array - */ - public function messages() - { - return $this->messages; - } - - /** - * Get the raw messages in the container. - * - * @return array - */ - public function getMessages() - { - return $this->messages(); - } - - /** - * Get the messages for the instance. - * - * @return \Illuminate\Support\MessageBag - */ - public function getMessageBag() - { - return $this; - } - - /** - * Get the default message format. - * - * @return string - */ - public function getFormat() - { - return $this->format; - } - - /** - * Set the default message format. - * - * @param string $format - * @return \Illuminate\Support\MessageBag - */ - public function setFormat($format = ':message') - { - $this->format = $format; - - return $this; - } - - /** - * Determine if the message bag has any messages. - * - * @return bool - */ - public function isEmpty() - { - return ! $this->any(); - } - - /** - * Determine if the message bag has any messages. - * - * @return bool - */ - public function isNotEmpty() - { - return $this->any(); - } - - /** - * Determine if the message bag has any messages. - * - * @return bool - */ - public function any() - { - return $this->count() > 0; - } - - /** - * Get the number of messages in the container. - * - * @return int - */ - public function count() - { - return count($this->messages, COUNT_RECURSIVE) - count($this->messages); - } - - /** - * Get the instance as an array. - * - * @return array - */ - public function toArray() - { - return $this->getMessages(); - } - - /** - * Convert the object into something JSON serializable. - * - * @return array - */ - public function jsonSerialize() - { - return $this->toArray(); - } - - /** - * Convert the object to its JSON representation. - * - * @param int $options - * @return string - */ - public function toJson($options = 0) - { - return json_encode($this->jsonSerialize(), $options); - } - - /** - * Convert the message bag to its string representation. - * - * @return string - */ - public function __toString() - { - return $this->toJson(); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Support/NamespacedItemResolver.php b/vendor/laravel/framework/src/Illuminate/Support/NamespacedItemResolver.php deleted file mode 100755 index fea32753..00000000 --- a/vendor/laravel/framework/src/Illuminate/Support/NamespacedItemResolver.php +++ /dev/null @@ -1,102 +0,0 @@ -parsed[$key])) { - return $this->parsed[$key]; - } - - // If the key does not contain a double colon, it means the key is not in a - // namespace, and is just a regular configuration item. Namespaces are a - // tool for organizing configuration items for things such as modules. - if (strpos($key, '::') === false) { - $segments = explode('.', $key); - - $parsed = $this->parseBasicSegments($segments); - } else { - $parsed = $this->parseNamespacedSegments($key); - } - - // Once we have the parsed array of this key's elements, such as its groups - // and namespace, we will cache each array inside a simple list that has - // the key and the parsed array for quick look-ups for later requests. - return $this->parsed[$key] = $parsed; - } - - /** - * Parse an array of basic segments. - * - * @param array $segments - * @return array - */ - protected function parseBasicSegments(array $segments) - { - // The first segment in a basic array will always be the group, so we can go - // ahead and grab that segment. If there is only one total segment we are - // just pulling an entire group out of the array and not a single item. - $group = $segments[0]; - - // If there is more than one segment in this group, it means we are pulling - // a specific item out of a group and will need to return this item name - // as well as the group so we know which item to pull from the arrays. - $item = count($segments) === 1 - ? null - : implode('.', array_slice($segments, 1)); - - return [null, $group, $item]; - } - - /** - * Parse an array of namespaced segments. - * - * @param string $key - * @return array - */ - protected function parseNamespacedSegments($key) - { - list($namespace, $item) = explode('::', $key); - - // First we'll just explode the first segment to get the namespace and group - // since the item should be in the remaining segments. Once we have these - // two pieces of data we can proceed with parsing out the item's value. - $itemSegments = explode('.', $item); - - $groupAndItem = array_slice( - $this->parseBasicSegments($itemSegments), 1 - ); - - return array_merge([$namespace], $groupAndItem); - } - - /** - * Set the parsed value of a key. - * - * @param string $key - * @param array $parsed - * @return void - */ - public function setParsedKey($key, $parsed) - { - $this->parsed[$key] = $parsed; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Support/Optional.php b/vendor/laravel/framework/src/Illuminate/Support/Optional.php deleted file mode 100644 index b25aa997..00000000 --- a/vendor/laravel/framework/src/Illuminate/Support/Optional.php +++ /dev/null @@ -1,130 +0,0 @@ -value = $value; - } - - /** - * Dynamically access a property on the underlying object. - * - * @param string $key - * @return mixed - */ - public function __get($key) - { - if (is_object($this->value)) { - return $this->value->{$key} ?? null; - } - } - - /** - * Dynamically check a property exists on the underlying object. - * - * @param $name - * @return bool - */ - public function __isset($name) - { - if (is_object($this->value)) { - return isset($this->value->{$name}); - } - - if (is_array($this->value) || $this->value instanceof ArrayObject) { - return isset($this->value[$name]); - } - - return false; - } - - /** - * Determine if an item exists at an offset. - * - * @param mixed $key - * @return bool - */ - public function offsetExists($key) - { - return Arr::accessible($this->value) && Arr::exists($this->value, $key); - } - - /** - * Get an item at a given offset. - * - * @param mixed $key - * @return mixed - */ - public function offsetGet($key) - { - return Arr::get($this->value, $key); - } - - /** - * Set the item at a given offset. - * - * @param mixed $key - * @param mixed $value - * @return void - */ - public function offsetSet($key, $value) - { - if (Arr::accessible($this->value)) { - $this->value[$key] = $value; - } - } - - /** - * Unset the item at a given offset. - * - * @param string $key - * @return void - */ - public function offsetUnset($key) - { - if (Arr::accessible($this->value)) { - unset($this->value[$key]); - } - } - - /** - * Dynamically pass a method to the underlying object. - * - * @param string $method - * @param array $parameters - * @return mixed - */ - public function __call($method, $parameters) - { - if (static::hasMacro($method)) { - return $this->macroCall($method, $parameters); - } - - if (is_object($this->value)) { - return $this->value->{$method}(...$parameters); - } - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Support/Pluralizer.php b/vendor/laravel/framework/src/Illuminate/Support/Pluralizer.php deleted file mode 100755 index 6cc55ad7..00000000 --- a/vendor/laravel/framework/src/Illuminate/Support/Pluralizer.php +++ /dev/null @@ -1,119 +0,0 @@ -app = $app; - } - - /** - * Merge the given configuration with the existing configuration. - * - * @param string $path - * @param string $key - * @return void - */ - protected function mergeConfigFrom($path, $key) - { - $config = $this->app['config']->get($key, []); - - $this->app['config']->set($key, array_merge(require $path, $config)); - } - - /** - * Load the given routes file if routes are not already cached. - * - * @param string $path - * @return void - */ - protected function loadRoutesFrom($path) - { - if (! $this->app->routesAreCached()) { - require $path; - } - } - - /** - * Register a view file namespace. - * - * @param string|array $path - * @param string $namespace - * @return void - */ - protected function loadViewsFrom($path, $namespace) - { - if (is_array($this->app->config['view']['paths'])) { - foreach ($this->app->config['view']['paths'] as $viewPath) { - if (is_dir($appPath = $viewPath.'/vendor/'.$namespace)) { - $this->app['view']->addNamespace($namespace, $appPath); - } - } - } - - $this->app['view']->addNamespace($namespace, $path); - } - - /** - * Register a translation file namespace. - * - * @param string $path - * @param string $namespace - * @return void - */ - protected function loadTranslationsFrom($path, $namespace) - { - $this->app['translator']->addNamespace($namespace, $path); - } - - /** - * Register a JSON translation file path. - * - * @param string $path - * @return void - */ - protected function loadJsonTranslationsFrom($path) - { - $this->app['translator']->addJsonPath($path); - } - - /** - * Register a database migration path. - * - * @param array|string $paths - * @return void - */ - protected function loadMigrationsFrom($paths) - { - $this->app->afterResolving('migrator', function ($migrator) use ($paths) { - foreach ((array) $paths as $path) { - $migrator->path($path); - } - }); - } - - /** - * Register paths to be published by the publish command. - * - * @param array $paths - * @param string $group - * @return void - */ - protected function publishes(array $paths, $group = null) - { - $this->ensurePublishArrayInitialized($class = static::class); - - static::$publishes[$class] = array_merge(static::$publishes[$class], $paths); - - if ($group) { - $this->addPublishGroup($group, $paths); - } - } - - /** - * Ensure the publish array for the service provider is initialized. - * - * @param string $class - * @return void - */ - protected function ensurePublishArrayInitialized($class) - { - if (! array_key_exists($class, static::$publishes)) { - static::$publishes[$class] = []; - } - } - - /** - * Add a publish group / tag to the service provider. - * - * @param string $group - * @param array $paths - * @return void - */ - protected function addPublishGroup($group, $paths) - { - if (! array_key_exists($group, static::$publishGroups)) { - static::$publishGroups[$group] = []; - } - - static::$publishGroups[$group] = array_merge( - static::$publishGroups[$group], $paths - ); - } - - /** - * Get the paths to publish. - * - * @param string $provider - * @param string $group - * @return array - */ - public static function pathsToPublish($provider = null, $group = null) - { - if (! is_null($paths = static::pathsForProviderOrGroup($provider, $group))) { - return $paths; - } - - return collect(static::$publishes)->reduce(function ($paths, $p) { - return array_merge($paths, $p); - }, []); - } - - /** - * Get the paths for the provider or group (or both). - * - * @param string|null $provider - * @param string|null $group - * @return array - */ - protected static function pathsForProviderOrGroup($provider, $group) - { - if ($provider && $group) { - return static::pathsForProviderAndGroup($provider, $group); - } elseif ($group && array_key_exists($group, static::$publishGroups)) { - return static::$publishGroups[$group]; - } elseif ($provider && array_key_exists($provider, static::$publishes)) { - return static::$publishes[$provider]; - } elseif ($group || $provider) { - return []; - } - } - - /** - * Get the paths for the provider and group. - * - * @param string $provider - * @param string $group - * @return array - */ - protected static function pathsForProviderAndGroup($provider, $group) - { - if (! empty(static::$publishes[$provider]) && ! empty(static::$publishGroups[$group])) { - return array_intersect_key(static::$publishes[$provider], static::$publishGroups[$group]); - } - - return []; - } - - /** - * Get the service providers available for publishing. - * - * @return array - */ - public static function publishableProviders() - { - return array_keys(static::$publishes); - } - - /** - * Get the groups available for publishing. - * - * @return array - */ - public static function publishableGroups() - { - return array_keys(static::$publishGroups); - } - - /** - * Register the package's custom Artisan commands. - * - * @param array|mixed $commands - * @return void - */ - public function commands($commands) - { - $commands = is_array($commands) ? $commands : func_get_args(); - - Artisan::starting(function ($artisan) use ($commands) { - $artisan->resolveCommands($commands); - }); - } - - /** - * Get the services provided by the provider. - * - * @return array - */ - public function provides() - { - return []; - } - - /** - * Get the events that trigger this service provider to register. - * - * @return array - */ - public function when() - { - return []; - } - - /** - * Determine if the provider is deferred. - * - * @return bool - */ - public function isDeferred() - { - return $this->defer; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Support/Str.php b/vendor/laravel/framework/src/Illuminate/Support/Str.php deleted file mode 100644 index 1953cab5..00000000 --- a/vendor/laravel/framework/src/Illuminate/Support/Str.php +++ /dev/null @@ -1,718 +0,0 @@ - $val) { - $value = str_replace($val, $key, $value); - } - - return preg_replace('/[^\x20-\x7E]/u', '', $value); - } - - /** - * Get the portion of a string before a given value. - * - * @param string $subject - * @param string $search - * @return string - */ - public static function before($subject, $search) - { - return $search === '' ? $subject : explode($search, $subject)[0]; - } - - /** - * Convert a value to camel case. - * - * @param string $value - * @return string - */ - public static function camel($value) - { - if (isset(static::$camelCache[$value])) { - return static::$camelCache[$value]; - } - - return static::$camelCache[$value] = lcfirst(static::studly($value)); - } - - /** - * Determine if a given string contains a given substring. - * - * @param string $haystack - * @param string|array $needles - * @return bool - */ - public static function contains($haystack, $needles) - { - foreach ((array) $needles as $needle) { - if ($needle !== '' && mb_strpos($haystack, $needle) !== false) { - return true; - } - } - - return false; - } - - /** - * Determine if a given string ends with a given substring. - * - * @param string $haystack - * @param string|array $needles - * @return bool - */ - public static function endsWith($haystack, $needles) - { - foreach ((array) $needles as $needle) { - if (substr($haystack, -strlen($needle)) === (string) $needle) { - return true; - } - } - - return false; - } - - /** - * Cap a string with a single instance of a given value. - * - * @param string $value - * @param string $cap - * @return string - */ - public static function finish($value, $cap) - { - $quoted = preg_quote($cap, '/'); - - return preg_replace('/(?:'.$quoted.')+$/u', '', $value).$cap; - } - - /** - * Determine if a given string matches a given pattern. - * - * @param string|array $pattern - * @param string $value - * @return bool - */ - public static function is($pattern, $value) - { - $patterns = Arr::wrap($pattern); - - if (empty($patterns)) { - return false; - } - - foreach ($patterns as $pattern) { - // If the given value is an exact match we can of course return true right - // from the beginning. Otherwise, we will translate asterisks and do an - // actual pattern match against the two strings to see if they match. - if ($pattern == $value) { - return true; - } - - $pattern = preg_quote($pattern, '#'); - - // Asterisks are translated into zero-or-more regular expression wildcards - // to make it convenient to check if the strings starts with the given - // pattern such as "library/*", making any string check convenient. - $pattern = str_replace('\*', '.*', $pattern); - - if (preg_match('#^'.$pattern.'\z#u', $value) === 1) { - return true; - } - } - - return false; - } - - /** - * Convert a string to kebab case. - * - * @param string $value - * @return string - */ - public static function kebab($value) - { - return static::snake($value, '-'); - } - - /** - * Return the length of the given string. - * - * @param string $value - * @param string $encoding - * @return int - */ - public static function length($value, $encoding = null) - { - if ($encoding) { - return mb_strlen($value, $encoding); - } - - return mb_strlen($value); - } - - /** - * Limit the number of characters in a string. - * - * @param string $value - * @param int $limit - * @param string $end - * @return string - */ - public static function limit($value, $limit = 100, $end = '...') - { - if (mb_strwidth($value, 'UTF-8') <= $limit) { - return $value; - } - - return rtrim(mb_strimwidth($value, 0, $limit, '', 'UTF-8')).$end; - } - - /** - * Convert the given string to lower-case. - * - * @param string $value - * @return string - */ - public static function lower($value) - { - return mb_strtolower($value, 'UTF-8'); - } - - /** - * Limit the number of words in a string. - * - * @param string $value - * @param int $words - * @param string $end - * @return string - */ - public static function words($value, $words = 100, $end = '...') - { - preg_match('/^\s*+(?:\S++\s*+){1,'.$words.'}/u', $value, $matches); - - if (! isset($matches[0]) || static::length($value) === static::length($matches[0])) { - return $value; - } - - return rtrim($matches[0]).$end; - } - - /** - * Parse a Class@method style callback into class and method. - * - * @param string $callback - * @param string|null $default - * @return array - */ - public static function parseCallback($callback, $default = null) - { - return static::contains($callback, '@') ? explode('@', $callback, 2) : [$callback, $default]; - } - - /** - * Get the plural form of an English word. - * - * @param string $value - * @param int $count - * @return string - */ - public static function plural($value, $count = 2) - { - return Pluralizer::plural($value, $count); - } - - /** - * Generate a more truly "random" alpha-numeric string. - * - * @param int $length - * @return string - */ - public static function random($length = 16) - { - $string = ''; - - while (($len = strlen($string)) < $length) { - $size = $length - $len; - - $bytes = random_bytes($size); - - $string .= substr(str_replace(['/', '+', '='], '', base64_encode($bytes)), 0, $size); - } - - return $string; - } - - /** - * Replace a given value in the string sequentially with an array. - * - * @param string $search - * @param array $replace - * @param string $subject - * @return string - */ - public static function replaceArray($search, array $replace, $subject) - { - foreach ($replace as $value) { - $subject = static::replaceFirst($search, $value, $subject); - } - - return $subject; - } - - /** - * Replace the first occurrence of a given value in the string. - * - * @param string $search - * @param string $replace - * @param string $subject - * @return string - */ - public static function replaceFirst($search, $replace, $subject) - { - if ($search == '') { - return $subject; - } - - $position = strpos($subject, $search); - - if ($position !== false) { - return substr_replace($subject, $replace, $position, strlen($search)); - } - - return $subject; - } - - /** - * Replace the last occurrence of a given value in the string. - * - * @param string $search - * @param string $replace - * @param string $subject - * @return string - */ - public static function replaceLast($search, $replace, $subject) - { - $position = strrpos($subject, $search); - - if ($position !== false) { - return substr_replace($subject, $replace, $position, strlen($search)); - } - - return $subject; - } - - /** - * Begin a string with a single instance of a given value. - * - * @param string $value - * @param string $prefix - * @return string - */ - public static function start($value, $prefix) - { - $quoted = preg_quote($prefix, '/'); - - return $prefix.preg_replace('/^(?:'.$quoted.')+/u', '', $value); - } - - /** - * Convert the given string to upper-case. - * - * @param string $value - * @return string - */ - public static function upper($value) - { - return mb_strtoupper($value, 'UTF-8'); - } - - /** - * Convert the given string to title case. - * - * @param string $value - * @return string - */ - public static function title($value) - { - return mb_convert_case($value, MB_CASE_TITLE, 'UTF-8'); - } - - /** - * Get the singular form of an English word. - * - * @param string $value - * @return string - */ - public static function singular($value) - { - return Pluralizer::singular($value); - } - - /** - * Generate a URL friendly "slug" from a given string. - * - * @param string $title - * @param string $separator - * @param string $language - * @return string - */ - public static function slug($title, $separator = '-', $language = 'en') - { - $title = static::ascii($title, $language); - - // Convert all dashes/underscores into separator - $flip = $separator == '-' ? '_' : '-'; - - $title = preg_replace('!['.preg_quote($flip).']+!u', $separator, $title); - - // Replace @ with the word 'at' - $title = str_replace('@', $separator.'at'.$separator, $title); - - // Remove all characters that are not the separator, letters, numbers, or whitespace. - $title = preg_replace('![^'.preg_quote($separator).'\pL\pN\s]+!u', '', mb_strtolower($title)); - - // Replace all separator characters and whitespace by a single separator - $title = preg_replace('!['.preg_quote($separator).'\s]+!u', $separator, $title); - - return trim($title, $separator); - } - - /** - * Convert a string to snake case. - * - * @param string $value - * @param string $delimiter - * @return string - */ - public static function snake($value, $delimiter = '_') - { - $key = $value; - - if (isset(static::$snakeCache[$key][$delimiter])) { - return static::$snakeCache[$key][$delimiter]; - } - - if (! ctype_lower($value)) { - $value = preg_replace('/\s+/u', '', ucwords($value)); - - $value = static::lower(preg_replace('/(.)(?=[A-Z])/u', '$1'.$delimiter, $value)); - } - - return static::$snakeCache[$key][$delimiter] = $value; - } - - /** - * Determine if a given string starts with a given substring. - * - * @param string $haystack - * @param string|array $needles - * @return bool - */ - public static function startsWith($haystack, $needles) - { - foreach ((array) $needles as $needle) { - if ($needle !== '' && substr($haystack, 0, strlen($needle)) === (string) $needle) { - return true; - } - } - - return false; - } - - /** - * Convert a value to studly caps case. - * - * @param string $value - * @return string - */ - public static function studly($value) - { - $key = $value; - - if (isset(static::$studlyCache[$key])) { - return static::$studlyCache[$key]; - } - - $value = ucwords(str_replace(['-', '_'], ' ', $value)); - - return static::$studlyCache[$key] = str_replace(' ', '', $value); - } - - /** - * Returns the portion of string specified by the start and length parameters. - * - * @param string $string - * @param int $start - * @param int|null $length - * @return string - */ - public static function substr($string, $start, $length = null) - { - return mb_substr($string, $start, $length, 'UTF-8'); - } - - /** - * Make a string's first character uppercase. - * - * @param string $string - * @return string - */ - public static function ucfirst($string) - { - return static::upper(static::substr($string, 0, 1)).static::substr($string, 1); - } - - /** - * Generate a UUID (version 4). - * - * @return \Ramsey\Uuid\UuidInterface - */ - public static function uuid() - { - return Uuid::uuid4(); - } - - /** - * Generate a time-ordered UUID (version 4). - * - * @return \Ramsey\Uuid\UuidInterface - */ - public static function orderedUuid() - { - $factory = new UuidFactory; - - $factory->setRandomGenerator(new CombGenerator( - $factory->getRandomGenerator(), - $factory->getNumberConverter() - )); - - $factory->setCodec(new TimestampFirstCombCodec( - $factory->getUuidBuilder() - )); - - return $factory->uuid4(); - } - - /** - * Returns the replacements for the ascii method. - * - * Note: Adapted from Stringy\Stringy. - * - * @see https://github.com/danielstjules/Stringy/blob/3.1.0/LICENSE.txt - * - * @return array - */ - protected static function charsArray() - { - static $charsArray; - - if (isset($charsArray)) { - return $charsArray; - } - - return $charsArray = [ - '0' => ['°', 'â‚€', 'Û°', 'ï¼'], - '1' => ['¹', 'â‚', 'Û±', '1'], - '2' => ['²', 'â‚‚', 'Û²', 'ï¼’'], - '3' => ['³', '₃', 'Û³', '3'], - '4' => ['â´', 'â‚„', 'Û´', 'Ù¤', 'ï¼”'], - '5' => ['âµ', 'â‚…', 'Ûµ', 'Ù¥', '5'], - '6' => ['â¶', '₆', 'Û¶', 'Ù¦', 'ï¼–'], - '7' => ['â·', '₇', 'Û·', 'ï¼—'], - '8' => ['â¸', '₈', 'Û¸', '8'], - '9' => ['â¹', '₉', 'Û¹', 'ï¼™'], - 'a' => ['à', 'á', 'ả', 'ã', 'ạ', 'ă', 'ắ', 'ằ', 'ẳ', 'ẵ', 'ặ', 'â', 'ấ', 'ầ', 'ẩ', 'ẫ', 'ậ', 'Ä', 'Ä…', 'Ã¥', 'α', 'ά', 'á¼€', 'á¼', 'ἂ', 'ἃ', 'ἄ', 'á¼…', 'ἆ', 'ἇ', 'á¾€', 'á¾', 'ᾂ', 'ᾃ', 'ᾄ', 'á¾…', 'ᾆ', 'ᾇ', 'á½°', 'ά', 'á¾°', 'á¾±', 'á¾²', 'á¾³', 'á¾´', 'á¾¶', 'á¾·', 'а', 'Ø£', 'အ', 'ာ', 'ါ', 'Ç»', 'ÇŽ', 'ª', 'áƒ', 'अ', 'ا', 'ï½', 'ä'], - 'b' => ['б', 'β', 'ب', 'ဗ', 'ბ', 'b'], - 'c' => ['ç', 'ć', 'Ä', 'ĉ', 'Ä‹', 'c'], - 'd' => ['Ä', 'ð', 'Ä‘', 'ÆŒ', 'È¡', 'É–', 'É—', 'áµ­', 'á¶', 'á¶‘', 'д', 'δ', 'د', 'ض', 'á€', 'ဒ', 'დ', 'd'], - 'e' => ['é', 'è', 'ẻ', 'ẽ', 'ẹ', 'ê', 'ế', 'á»', 'ể', 'á»…', 'ệ', 'ë', 'Ä“', 'Ä™', 'Ä›', 'Ä•', 'Ä—', 'ε', 'έ', 'á¼', 'ἑ', 'á¼’', 'ἓ', 'á¼”', 'ἕ', 'á½²', 'έ', 'е', 'Ñ‘', 'Ñ', 'Ñ”', 'É™', 'ဧ', 'ေ', 'ဲ', 'ე', 'à¤', 'Ø¥', 'ئ', 'ï½…'], - 'f' => ['Ñ„', 'φ', 'Ù', 'Æ’', 'ფ', 'f'], - 'g' => ['Ä', 'ÄŸ', 'Ä¡', 'Ä£', 'г', 'Ò‘', 'γ', 'ဂ', 'გ', 'Ú¯', 'g'], - 'h' => ['Ä¥', 'ħ', 'η', 'ή', 'Ø­', 'Ù‡', 'ဟ', 'ှ', 'ჰ', 'h'], - 'i' => ['í', 'ì', 'ỉ', 'Ä©', 'ị', 'î', 'ï', 'Ä«', 'Ä­', 'į', 'ı', 'ι', 'ί', 'ÏŠ', 'Î', 'á¼°', 'á¼±', 'á¼²', 'á¼³', 'á¼´', 'á¼µ', 'á¼¶', 'á¼·', 'á½¶', 'ί', 'á¿', 'á¿‘', 'á¿’', 'Î', 'á¿–', 'á¿—', 'Ñ–', 'Ñ—', 'и', 'ဣ', 'ိ', 'ီ', 'ည်', 'Ç', 'ი', 'इ', 'ÛŒ', 'i'], - 'j' => ['ĵ', 'ј', 'Ј', 'ჯ', 'ج', 'j'], - 'k' => ['Ä·', 'ĸ', 'к', 'κ', 'Ķ', 'Ù‚', 'Ùƒ', 'က', 'კ', 'ქ', 'Ú©', 'k'], - 'l' => ['Å‚', 'ľ', 'ĺ', 'ļ', 'Å€', 'л', 'λ', 'Ù„', 'လ', 'ლ', 'l'], - 'm' => ['м', 'μ', 'Ù…', 'မ', 'მ', 'ï½'], - 'n' => ['ñ', 'Å„', 'ň', 'ņ', 'ʼn', 'Å‹', 'ν', 'н', 'Ù†', 'န', 'ნ', 'n'], - 'o' => ['ó', 'ò', 'á»', 'õ', 'á»', 'ô', 'ố', 'ồ', 'ổ', 'á»—', 'á»™', 'Æ¡', 'á»›', 'á»', 'ở', 'ỡ', 'ợ', 'ø', 'Å', 'Å‘', 'Å', 'ο', 'á½€', 'á½', 'ὂ', 'ὃ', 'ὄ', 'á½…', 'ὸ', 'ÏŒ', 'о', 'Ùˆ', 'θ', 'ို', 'Ç’', 'Ç¿', 'º', 'áƒ', 'ओ', 'ï½', 'ö'], - 'p' => ['п', 'Ï€', 'ပ', 'პ', 'Ù¾', 'ï½'], - 'q' => ['ყ', 'q'], - 'r' => ['Å•', 'Å™', 'Å—', 'Ñ€', 'Ï', 'ر', 'რ', 'ï½’'], - 's' => ['Å›', 'Å¡', 'ÅŸ', 'Ñ', 'σ', 'È™', 'Ï‚', 'س', 'ص', 'စ', 'Å¿', 'ს', 's'], - 't' => ['Å¥', 'Å£', 'Ñ‚', 'Ï„', 'È›', 'ت', 'Ø·', 'ဋ', 'á€', 'ŧ', 'თ', 'ტ', 'ï½”'], - 'u' => ['ú', 'ù', 'á»§', 'Å©', 'ụ', 'ư', 'ứ', 'ừ', 'á»­', 'ữ', 'á»±', 'û', 'Å«', 'ů', 'ű', 'Å­', 'ų', 'µ', 'у', 'ဉ', 'ု', 'ူ', 'Ç”', 'Ç–', 'ǘ', 'Çš', 'Çœ', 'უ', 'उ', 'u', 'Ñž', 'ü'], - 'v' => ['в', 'ვ', 'Ï', 'ï½–'], - 'w' => ['ŵ', 'ω', 'ÏŽ', 'á€', 'ွ', 'ï½—'], - 'x' => ['χ', 'ξ', 'x'], - 'y' => ['ý', 'ỳ', 'á»·', 'ỹ', 'ỵ', 'ÿ', 'Å·', 'й', 'Ñ‹', 'Ï…', 'Ï‹', 'Ï', 'ΰ', 'ÙŠ', 'ယ', 'ï½™'], - 'z' => ['ź', 'ž', 'ż', 'з', 'ζ', 'ز', 'ဇ', 'ზ', 'z'], - 'aa' => ['ع', 'आ', 'Ø¢'], - 'ae' => ['æ', 'ǽ'], - 'ai' => ['à¤'], - 'ch' => ['ч', 'ჩ', 'ჭ', 'Ú†'], - 'dj' => ['Ñ’', 'Ä‘'], - 'dz' => ['ÑŸ', 'ძ'], - 'ei' => ['à¤'], - 'gh' => ['غ', 'ღ'], - 'ii' => ['ई'], - 'ij' => ['ij'], - 'kh' => ['Ñ…', 'Ø®', 'ხ'], - 'lj' => ['Ñ™'], - 'nj' => ['Ñš'], - 'oe' => ['ö', 'Å“', 'ؤ'], - 'oi' => ['ऑ'], - 'oii' => ['ऒ'], - 'ps' => ['ψ'], - 'sh' => ['ш', 'შ', 'Ø´'], - 'shch' => ['щ'], - 'ss' => ['ß'], - 'sx' => ['Å'], - 'th' => ['þ', 'Ï‘', 'Ø«', 'ذ', 'ظ'], - 'ts' => ['ц', 'ც', 'წ'], - 'ue' => ['ü'], - 'uu' => ['ऊ'], - 'ya' => ['Ñ'], - 'yu' => ['ÑŽ'], - 'zh' => ['ж', 'ჟ', 'Ú˜'], - '(c)' => ['©'], - 'A' => ['Ã', 'À', 'Ả', 'Ã', 'Ạ', 'Ä‚', 'Ắ', 'Ằ', 'Ẳ', 'Ẵ', 'Ặ', 'Â', 'Ấ', 'Ầ', 'Ẩ', 'Ẫ', 'Ậ', 'Ã…', 'Ä€', 'Ä„', 'Α', 'Ά', 'Ἀ', 'Ἁ', 'Ἂ', 'Ἃ', 'Ἄ', 'á¼', 'Ἆ', 'á¼', 'ᾈ', 'ᾉ', 'ᾊ', 'ᾋ', 'ᾌ', 'á¾', 'ᾎ', 'á¾', 'Ᾰ', 'á¾¹', 'Ὰ', 'Ά', 'á¾¼', 'Ð', 'Ǻ', 'Ç', 'A', 'Ä'], - 'B' => ['Б', 'Î’', 'ब', 'ï¼¢'], - 'C' => ['Ç', 'Ć', 'ÄŒ', 'Ĉ', 'ÄŠ', 'ï¼£'], - 'D' => ['ÄŽ', 'Ã', 'Ä', 'Ɖ', 'ÆŠ', 'Æ‹', 'á´…', 'á´†', 'Д', 'Δ', 'D'], - 'E' => ['É', 'È', 'Ẻ', 'Ẽ', 'Ẹ', 'Ê', 'Ế', 'Ề', 'Ể', 'Ễ', 'Ệ', 'Ë', 'Ä’', 'Ę', 'Äš', 'Ä”', 'Ä–', 'Ε', 'Έ', 'Ἐ', 'á¼™', 'Ἒ', 'á¼›', 'Ἔ', 'á¼', 'Έ', 'Ὲ', 'Е', 'Ð', 'Э', 'Є', 'Æ', 'ï¼¥'], - 'F' => ['Ф', 'Φ', 'F'], - 'G' => ['Äž', 'Ä ', 'Ä¢', 'Г', 'Ò', 'Γ', 'ï¼§'], - 'H' => ['Η', 'Ή', 'Ħ', 'H'], - 'I' => ['Ã', 'ÃŒ', 'Ỉ', 'Ĩ', 'Ị', 'ÃŽ', 'Ã', 'Ī', 'Ĭ', 'Ä®', 'İ', 'Ι', 'Ί', 'Ϊ', 'Ἰ', 'á¼¹', 'á¼»', 'á¼¼', 'á¼½', 'á¼¾', 'Ἷ', 'Ῐ', 'á¿™', 'Ὶ', 'Ί', 'И', 'І', 'Ї', 'Ç', 'Ï’', 'I'], - 'J' => ['J'], - 'K' => ['К', 'Κ', 'K'], - 'L' => ['Ĺ', 'Å', 'Л', 'Λ', 'Ä»', 'Ľ', 'Ä¿', 'ल', 'L'], - 'M' => ['М', 'Μ', 'ï¼­'], - 'N' => ['Ń', 'Ñ', 'Ň', 'Å…', 'ÅŠ', 'Ð', 'Î', 'ï¼®'], - 'O' => ['Ó', 'Ã’', 'Ỏ', 'Õ', 'Ọ', 'Ô', 'á»', 'á»’', 'á»”', 'á»–', 'Ộ', 'Æ ', 'Ớ', 'Ờ', 'Ở', 'á» ', 'Ợ', 'Ø', 'ÅŒ', 'Å', 'ÅŽ', 'Ο', 'ÎŒ', 'Ὀ', 'Ὁ', 'Ὂ', 'Ὃ', 'Ὄ', 'á½', 'Ὸ', 'ÎŒ', 'О', 'Θ', 'Ó¨', 'Ç‘', 'Ǿ', 'O', 'Ö'], - 'P' => ['П', 'Π', 'ï¼°'], - 'Q' => ['ï¼±'], - 'R' => ['Ř', 'Å”', 'Р', 'Ρ', 'Å–', 'ï¼²'], - 'S' => ['Åž', 'Åœ', 'Ș', 'Å ', 'Åš', 'С', 'Σ', 'ï¼³'], - 'T' => ['Ť', 'Å¢', 'Ŧ', 'Èš', 'Т', 'Τ', 'ï¼´'], - 'U' => ['Ú', 'Ù', 'Ủ', 'Ũ', 'Ụ', 'Ư', 'Ứ', 'Ừ', 'Ử', 'á»®', 'á»°', 'Û', 'Ū', 'Å®', 'Ű', 'Ŭ', 'Ų', 'У', 'Ç“', 'Ç•', 'Ç—', 'Ç™', 'Ç›', 'ï¼µ', 'ÐŽ', 'Ü'], - 'V' => ['Ð’', 'ï¼¶'], - 'W' => ['Ω', 'Î', 'Å´', 'ï¼·'], - 'X' => ['Χ', 'Ξ', 'X'], - 'Y' => ['Ã', 'Ỳ', 'á»¶', 'Ỹ', 'á»´', 'Ÿ', 'Ῠ', 'á¿©', 'Ὺ', 'ÎŽ', 'Ы', 'Й', 'Î¥', 'Ϋ', 'Ŷ', 'ï¼¹'], - 'Z' => ['Ź', 'Ž', 'Å»', 'З', 'Ζ', 'Z'], - 'AE' => ['Æ', 'Ǽ'], - 'Ch' => ['Ч'], - 'Dj' => ['Ђ'], - 'Dz' => ['Ð'], - 'Gx' => ['Äœ'], - 'Hx' => ['Ĥ'], - 'Ij' => ['IJ'], - 'Jx' => ['Ä´'], - 'Kh' => ['Ð¥'], - 'Lj' => ['Љ'], - 'Nj' => ['Њ'], - 'Oe' => ['Å’'], - 'Ps' => ['Ψ'], - 'Sh' => ['Ш'], - 'Shch' => ['Щ'], - 'Ss' => ['ẞ'], - 'Th' => ['Þ'], - 'Ts' => ['Ц'], - 'Ya' => ['Я'], - 'Yu' => ['Ю'], - 'Zh' => ['Ж'], - ' ' => ["\xC2\xA0", "\xE2\x80\x80", "\xE2\x80\x81", "\xE2\x80\x82", "\xE2\x80\x83", "\xE2\x80\x84", "\xE2\x80\x85", "\xE2\x80\x86", "\xE2\x80\x87", "\xE2\x80\x88", "\xE2\x80\x89", "\xE2\x80\x8A", "\xE2\x80\xAF", "\xE2\x81\x9F", "\xE3\x80\x80", "\xEF\xBE\xA0"], - ]; - } - - /** - * Returns the language specific replacements for the ascii method. - * - * Note: Adapted from Stringy\Stringy. - * - * @see https://github.com/danielstjules/Stringy/blob/3.1.0/LICENSE.txt - * - * @param string $language - * @return array|null - */ - protected static function languageSpecificCharsArray($language) - { - static $languageSpecific; - - if (! isset($languageSpecific)) { - $languageSpecific = [ - 'bg' => [ - ['Ñ…', 'Ð¥', 'щ', 'Щ', 'ÑŠ', 'Ъ', 'ÑŒ', 'Ь'], - ['h', 'H', 'sht', 'SHT', 'a', 'Ð', 'y', 'Y'], - ], - 'de' => [ - ['ä', 'ö', 'ü', 'Ä', 'Ö', 'Ü'], - ['ae', 'oe', 'ue', 'AE', 'OE', 'UE'], - ], - ]; - } - - return $languageSpecific[$language] ?? null; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Support/Testing/Fakes/BusFake.php b/vendor/laravel/framework/src/Illuminate/Support/Testing/Fakes/BusFake.php deleted file mode 100644 index b42491e4..00000000 --- a/vendor/laravel/framework/src/Illuminate/Support/Testing/Fakes/BusFake.php +++ /dev/null @@ -1,165 +0,0 @@ -assertDispatchedTimes($command, $callback); - } - - PHPUnit::assertTrue( - $this->dispatched($command, $callback)->count() > 0, - "The expected [{$command}] job was not dispatched." - ); - } - - /** - * Assert if a job was pushed a number of times. - * - * @param string $command - * @param int $times - * @return void - */ - protected function assertDispatchedTimes($command, $times = 1) - { - PHPUnit::assertTrue( - ($count = $this->dispatched($command)->count()) === $times, - "The expected [{$command}] job was pushed {$count} times instead of {$times} times." - ); - } - - /** - * Determine if a job was dispatched based on a truth-test callback. - * - * @param string $command - * @param callable|null $callback - * @return void - */ - public function assertNotDispatched($command, $callback = null) - { - PHPUnit::assertTrue( - $this->dispatched($command, $callback)->count() === 0, - "The unexpected [{$command}] job was dispatched." - ); - } - - /** - * Get all of the jobs matching a truth-test callback. - * - * @param string $command - * @param callable|null $callback - * @return \Illuminate\Support\Collection - */ - public function dispatched($command, $callback = null) - { - if (! $this->hasDispatched($command)) { - return collect(); - } - - $callback = $callback ?: function () { - return true; - }; - - return collect($this->commands[$command])->filter(function ($command) use ($callback) { - return $callback($command); - }); - } - - /** - * Determine if there are any stored commands for a given class. - * - * @param string $command - * @return bool - */ - public function hasDispatched($command) - { - return isset($this->commands[$command]) && ! empty($this->commands[$command]); - } - - /** - * Dispatch a command to its appropriate handler. - * - * @param mixed $command - * @return mixed - */ - public function dispatch($command) - { - return $this->dispatchNow($command); - } - - /** - * Dispatch a command to its appropriate handler in the current process. - * - * @param mixed $command - * @param mixed $handler - * @return mixed - */ - public function dispatchNow($command, $handler = null) - { - $this->commands[get_class($command)][] = $command; - } - - /** - * Set the pipes commands should be piped through before dispatching. - * - * @param array $pipes - * @return $this - */ - public function pipeThrough(array $pipes) - { - // - } - - /** - * Determine if the given command has a handler. - * - * @param mixed $command - * @return bool - */ - public function hasCommandHandler($command) - { - return false; - } - - /** - * Retrieve the handler for a command. - * - * @param mixed $command - * @return mixed - */ - public function getCommandHandler($command) - { - return false; - } - - /** - * Map a command to a handler. - * - * @param array $map - * @return $this - */ - public function map(array $map) - { - return $this; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Support/Testing/Fakes/EventFake.php b/vendor/laravel/framework/src/Illuminate/Support/Testing/Fakes/EventFake.php deleted file mode 100644 index edbb90eb..00000000 --- a/vendor/laravel/framework/src/Illuminate/Support/Testing/Fakes/EventFake.php +++ /dev/null @@ -1,260 +0,0 @@ -dispatcher = $dispatcher; - - $this->eventsToFake = Arr::wrap($eventsToFake); - } - - /** - * Assert if an event was dispatched based on a truth-test callback. - * - * @param string $event - * @param callable|int|null $callback - * @return void - */ - public function assertDispatched($event, $callback = null) - { - if (is_int($callback)) { - return $this->assertDispatchedTimes($event, $callback); - } - - PHPUnit::assertTrue( - $this->dispatched($event, $callback)->count() > 0, - "The expected [{$event}] event was not dispatched." - ); - } - - /** - * Assert if a event was dispatched a number of times. - * - * @param string $event - * @param int $times - * @return void - */ - public function assertDispatchedTimes($event, $times = 1) - { - PHPUnit::assertTrue( - ($count = $this->dispatched($event)->count()) === $times, - "The expected [{$event}] event was dispatched {$count} times instead of {$times} times." - ); - } - - /** - * Determine if an event was dispatched based on a truth-test callback. - * - * @param string $event - * @param callable|null $callback - * @return void - */ - public function assertNotDispatched($event, $callback = null) - { - PHPUnit::assertTrue( - $this->dispatched($event, $callback)->count() === 0, - "The unexpected [{$event}] event was dispatched." - ); - } - - /** - * Get all of the events matching a truth-test callback. - * - * @param string $event - * @param callable|null $callback - * @return \Illuminate\Support\Collection - */ - public function dispatched($event, $callback = null) - { - if (! $this->hasDispatched($event)) { - return collect(); - } - - $callback = $callback ?: function () { - return true; - }; - - return collect($this->events[$event])->filter(function ($arguments) use ($callback) { - return $callback(...$arguments); - }); - } - - /** - * Determine if the given event has been dispatched. - * - * @param string $event - * @return bool - */ - public function hasDispatched($event) - { - return isset($this->events[$event]) && ! empty($this->events[$event]); - } - - /** - * Register an event listener with the dispatcher. - * - * @param string|array $events - * @param mixed $listener - * @return void - */ - public function listen($events, $listener) - { - // - } - - /** - * Determine if a given event has listeners. - * - * @param string $eventName - * @return bool - */ - public function hasListeners($eventName) - { - // - } - - /** - * Register an event and payload to be dispatched later. - * - * @param string $event - * @param array $payload - * @return void - */ - public function push($event, $payload = []) - { - // - } - - /** - * Register an event subscriber with the dispatcher. - * - * @param object|string $subscriber - * @return void - */ - public function subscribe($subscriber) - { - // - } - - /** - * Flush a set of pushed events. - * - * @param string $event - * @return void - */ - public function flush($event) - { - // - } - - /** - * Fire an event and call the listeners. - * - * @param string|object $event - * @param mixed $payload - * @param bool $halt - * @return array|null - */ - public function fire($event, $payload = [], $halt = false) - { - return $this->dispatch($event, $payload, $halt); - } - - /** - * Fire an event and call the listeners. - * - * @param string|object $event - * @param mixed $payload - * @param bool $halt - * @return array|null - */ - public function dispatch($event, $payload = [], $halt = false) - { - $name = is_object($event) ? get_class($event) : (string) $event; - - if ($this->shouldFakeEvent($name)) { - $this->events[$name][] = func_get_args(); - } else { - $this->dispatcher->dispatch($event, $payload, $halt); - } - } - - /** - * Determine if an event should be faked or actually dispatched. - * - * @param string $eventName - * @return bool - */ - protected function shouldFakeEvent($eventName) - { - return empty($this->eventsToFake) || in_array($eventName, $this->eventsToFake); - } - - /** - * Remove a set of listeners from the dispatcher. - * - * @param string $event - * @return void - */ - public function forget($event) - { - // - } - - /** - * Forget all of the queued listeners. - * - * @return void - */ - public function forgetPushed() - { - // - } - - /** - * Dispatch an event and call the listeners. - * - * @param string|object $event - * @param mixed $payload - * @return void - */ - public function until($event, $payload = []) - { - return $this->dispatch($event, $payload, true); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Support/Testing/Fakes/MailFake.php b/vendor/laravel/framework/src/Illuminate/Support/Testing/Fakes/MailFake.php deleted file mode 100644 index 48392d1d..00000000 --- a/vendor/laravel/framework/src/Illuminate/Support/Testing/Fakes/MailFake.php +++ /dev/null @@ -1,316 +0,0 @@ -assertSentTimes($mailable, $callback); - } - - PHPUnit::assertTrue( - $this->sent($mailable, $callback)->count() > 0, - "The expected [{$mailable}] mailable was not sent." - ); - } - - /** - * Assert if a mailable was sent a number of times. - * - * @param string $mailable - * @param int $times - * @return void - */ - protected function assertSentTimes($mailable, $times = 1) - { - PHPUnit::assertTrue( - ($count = $this->sent($mailable)->count()) === $times, - "The expected [{$mailable}] mailable was sent {$count} times instead of {$times} times." - ); - } - - /** - * Determine if a mailable was not sent based on a truth-test callback. - * - * @param string $mailable - * @param callable|null $callback - * @return void - */ - public function assertNotSent($mailable, $callback = null) - { - PHPUnit::assertTrue( - $this->sent($mailable, $callback)->count() === 0, - "The unexpected [{$mailable}] mailable was sent." - ); - } - - /** - * Assert that no mailables were sent. - * - * @return void - */ - public function assertNothingSent() - { - PHPUnit::assertEmpty($this->mailables, 'Mailables were sent unexpectedly.'); - } - - /** - * Assert if a mailable was queued based on a truth-test callback. - * - * @param string $mailable - * @param callable|int|null $callback - * @return void - */ - public function assertQueued($mailable, $callback = null) - { - if (is_numeric($callback)) { - return $this->assertQueuedTimes($mailable, $callback); - } - - PHPUnit::assertTrue( - $this->queued($mailable, $callback)->count() > 0, - "The expected [{$mailable}] mailable was not queued." - ); - } - - /** - * Assert if a mailable was queued a number of times. - * - * @param string $mailable - * @param int $times - * @return void - */ - protected function assertQueuedTimes($mailable, $times = 1) - { - PHPUnit::assertTrue( - ($count = $this->queued($mailable)->count()) === $times, - "The expected [{$mailable}] mailable was queued {$count} times instead of {$times} times." - ); - } - - /** - * Determine if a mailable was not queued based on a truth-test callback. - * - * @param string $mailable - * @param callable|null $callback - * @return void - */ - public function assertNotQueued($mailable, $callback = null) - { - PHPUnit::assertTrue( - $this->queued($mailable, $callback)->count() === 0, - "The unexpected [{$mailable}] mailable was queued." - ); - } - - /** - * Assert that no mailables were queued. - * - * @return void - */ - public function assertNothingQueued() - { - PHPUnit::assertEmpty($this->queuedMailables, 'Mailables were queued unexpectedly.'); - } - - /** - * Get all of the mailables matching a truth-test callback. - * - * @param string $mailable - * @param callable|null $callback - * @return \Illuminate\Support\Collection - */ - public function sent($mailable, $callback = null) - { - if (! $this->hasSent($mailable)) { - return collect(); - } - - $callback = $callback ?: function () { - return true; - }; - - return $this->mailablesOf($mailable)->filter(function ($mailable) use ($callback) { - return $callback($mailable); - }); - } - - /** - * Determine if the given mailable has been sent. - * - * @param string $mailable - * @return bool - */ - public function hasSent($mailable) - { - return $this->mailablesOf($mailable)->count() > 0; - } - - /** - * Get all of the queued mailables matching a truth-test callback. - * - * @param string $mailable - * @param callable|null $callback - * @return \Illuminate\Support\Collection - */ - public function queued($mailable, $callback = null) - { - if (! $this->hasQueued($mailable)) { - return collect(); - } - - $callback = $callback ?: function () { - return true; - }; - - return $this->queuedMailablesOf($mailable)->filter(function ($mailable) use ($callback) { - return $callback($mailable); - }); - } - - /** - * Determine if the given mailable has been queued. - * - * @param string $mailable - * @return bool - */ - public function hasQueued($mailable) - { - return $this->queuedMailablesOf($mailable)->count() > 0; - } - - /** - * Get all of the mailed mailables for a given type. - * - * @param string $type - * @return \Illuminate\Support\Collection - */ - protected function mailablesOf($type) - { - return collect($this->mailables)->filter(function ($mailable) use ($type) { - return $mailable instanceof $type; - }); - } - - /** - * Get all of the mailed mailables for a given type. - * - * @param string $type - * @return \Illuminate\Support\Collection - */ - protected function queuedMailablesOf($type) - { - return collect($this->queuedMailables)->filter(function ($mailable) use ($type) { - return $mailable instanceof $type; - }); - } - - /** - * Begin the process of mailing a mailable class instance. - * - * @param mixed $users - * @return \Illuminate\Mail\PendingMail - */ - public function to($users) - { - return (new PendingMailFake($this))->to($users); - } - - /** - * Begin the process of mailing a mailable class instance. - * - * @param mixed $users - * @return \Illuminate\Mail\PendingMail - */ - public function bcc($users) - { - return (new PendingMailFake($this))->bcc($users); - } - - /** - * Send a new message when only a raw text part. - * - * @param string $text - * @param \Closure|string $callback - * @return int - */ - public function raw($text, $callback) - { - // - } - - /** - * Send a new message using a view. - * - * @param string|array $view - * @param array $data - * @param \Closure|string $callback - * @return void - */ - public function send($view, array $data = [], $callback = null) - { - if (! $view instanceof Mailable) { - return; - } - - if ($view instanceof ShouldQueue) { - return $this->queue($view, $data); - } - - $this->mailables[] = $view; - } - - /** - * Queue a new e-mail message for sending. - * - * @param string|array $view - * @param string|null $queue - * @return mixed - */ - public function queue($view, $queue = null) - { - if (! $view instanceof Mailable) { - return; - } - - $this->queuedMailables[] = $view; - } - - /** - * Get the array of failed recipients. - * - * @return array - */ - public function failures() - { - // - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Support/Testing/Fakes/NotificationFake.php b/vendor/laravel/framework/src/Illuminate/Support/Testing/Fakes/NotificationFake.php deleted file mode 100644 index 1b14b4fa..00000000 --- a/vendor/laravel/framework/src/Illuminate/Support/Testing/Fakes/NotificationFake.php +++ /dev/null @@ -1,220 +0,0 @@ -assertSentTo($singleNotifiable, $notification, $callback); - } - - return; - } - - if (is_numeric($callback)) { - return $this->assertSentToTimes($notifiable, $notification, $callback); - } - - PHPUnit::assertTrue( - $this->sent($notifiable, $notification, $callback)->count() > 0, - "The expected [{$notification}] notification was not sent." - ); - } - - /** - * Assert if a notification was sent a number of times. - * - * @param mixed $notifiable - * @param string $notification - * @param int $times - * @return void - */ - public function assertSentToTimes($notifiable, $notification, $times = 1) - { - PHPUnit::assertTrue( - ($count = $this->sent($notifiable, $notification)->count()) === $times, - "Expected [{$notification}] to be sent {$count} times, but was sent {$times} times." - ); - } - - /** - * Determine if a notification was sent based on a truth-test callback. - * - * @param mixed $notifiable - * @param string $notification - * @param callable|null $callback - * @return void - */ - public function assertNotSentTo($notifiable, $notification, $callback = null) - { - if (is_array($notifiable) || $notifiable instanceof Collection) { - foreach ($notifiable as $singleNotifiable) { - $this->assertNotSentTo($singleNotifiable, $notification, $callback); - } - - return; - } - - PHPUnit::assertTrue( - $this->sent($notifiable, $notification, $callback)->count() === 0, - "The unexpected [{$notification}] notification was sent." - ); - } - - /** - * Assert that no notifications were sent. - * - * @return void - */ - public function assertNothingSent() - { - PHPUnit::assertEmpty($this->notifications, 'Notifications were sent unexpectedly.'); - } - - /** - * Assert the total amount of times a notification was sent. - * - * @param int $expectedCount - * @param string $notification - * @return void - */ - public function assertTimesSent($expectedCount, $notification) - { - $actualCount = collect($this->notifications) - ->flatten(1) - ->reduce(function ($count, $sent) use ($notification) { - return $count + count($sent[$notification] ?? []); - }, 0); - - PHPUnit::assertSame( - $expectedCount, $actualCount, - "Expected [{$notification}] to be sent {$expectedCount} times, but was sent {$actualCount} times." - ); - } - - /** - * Get all of the notifications matching a truth-test callback. - * - * @param mixed $notifiable - * @param string $notification - * @param callable|null $callback - * @return \Illuminate\Support\Collection - */ - public function sent($notifiable, $notification, $callback = null) - { - if (! $this->hasSent($notifiable, $notification)) { - return collect(); - } - - $callback = $callback ?: function () { - return true; - }; - - $notifications = collect($this->notificationsFor($notifiable, $notification)); - - return $notifications->filter(function ($arguments) use ($callback) { - return $callback(...array_values($arguments)); - })->pluck('notification'); - } - - /** - * Determine if there are more notifications left to inspect. - * - * @param mixed $notifiable - * @param string $notification - * @return bool - */ - public function hasSent($notifiable, $notification) - { - return ! empty($this->notificationsFor($notifiable, $notification)); - } - - /** - * Get all of the notifications for a notifiable entity by type. - * - * @param mixed $notifiable - * @param string $notification - * @return array - */ - protected function notificationsFor($notifiable, $notification) - { - if (isset($this->notifications[get_class($notifiable)][$notifiable->getKey()][$notification])) { - return $this->notifications[get_class($notifiable)][$notifiable->getKey()][$notification]; - } - - return []; - } - - /** - * Send the given notification to the given notifiable entities. - * - * @param \Illuminate\Support\Collection|array|mixed $notifiables - * @param mixed $notification - * @return void - */ - public function send($notifiables, $notification) - { - return $this->sendNow($notifiables, $notification); - } - - /** - * Send the given notification immediately. - * - * @param \Illuminate\Support\Collection|array|mixed $notifiables - * @param mixed $notification - * @return void - */ - public function sendNow($notifiables, $notification) - { - if (! $notifiables instanceof Collection && ! is_array($notifiables)) { - $notifiables = [$notifiables]; - } - - foreach ($notifiables as $notifiable) { - if (! $notification->id) { - $notification->id = Str::uuid()->toString(); - } - - $this->notifications[get_class($notifiable)][$notifiable->getKey()][get_class($notification)][] = [ - 'notification' => $notification, - 'channels' => $notification->via($notifiable), - 'notifiable' => $notifiable, - ]; - } - } - - /** - * Get a channel instance by name. - * - * @param string|null $name - * @return mixed - */ - public function channel($name = null) - { - // - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Support/Testing/Fakes/PendingMailFake.php b/vendor/laravel/framework/src/Illuminate/Support/Testing/Fakes/PendingMailFake.php deleted file mode 100644 index e344fcfb..00000000 --- a/vendor/laravel/framework/src/Illuminate/Support/Testing/Fakes/PendingMailFake.php +++ /dev/null @@ -1,53 +0,0 @@ -mailer = $mailer; - } - - /** - * Send a new mailable message instance. - * - * @param \Illuminate\Mail\Mailable $mailable - * @return mixed - */ - public function send(Mailable $mailable) - { - return $this->sendNow($mailable); - } - - /** - * Send a mailable message immediately. - * - * @param \Illuminate\Mail\Mailable $mailable - * @return mixed - */ - public function sendNow(Mailable $mailable) - { - $this->mailer->send($this->fill($mailable)); - } - - /** - * Push the given mailable onto the queue. - * - * @param \Illuminate\Mail\Mailable $mailable - * @return mixed - */ - public function queue(Mailable $mailable) - { - return $this->mailer->queue($this->fill($mailable)); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Support/Testing/Fakes/QueueFake.php b/vendor/laravel/framework/src/Illuminate/Support/Testing/Fakes/QueueFake.php deleted file mode 100644 index 960a776e..00000000 --- a/vendor/laravel/framework/src/Illuminate/Support/Testing/Fakes/QueueFake.php +++ /dev/null @@ -1,351 +0,0 @@ -assertPushedTimes($job, $callback); - } - - PHPUnit::assertTrue( - $this->pushed($job, $callback)->count() > 0, - "The expected [{$job}] job was not pushed." - ); - } - - /** - * Assert if a job was pushed a number of times. - * - * @param string $job - * @param int $times - * @return void - */ - protected function assertPushedTimes($job, $times = 1) - { - PHPUnit::assertTrue( - ($count = $this->pushed($job)->count()) === $times, - "The expected [{$job}] job was pushed {$count} times instead of {$times} times." - ); - } - - /** - * Assert if a job was pushed based on a truth-test callback. - * - * @param string $queue - * @param string $job - * @param callable|null $callback - * @return void - */ - public function assertPushedOn($queue, $job, $callback = null) - { - return $this->assertPushed($job, function ($job, $pushedQueue) use ($callback, $queue) { - if ($pushedQueue !== $queue) { - return false; - } - - return $callback ? $callback(...func_get_args()) : true; - }); - } - - /** - * Assert if a job was pushed with chained jobs based on a truth-test callback. - * - * @param string $job - * @param array $expectedChain - * @param callable|null $callback - * @return void - */ - public function assertPushedWithChain($job, $expectedChain = [], $callback = null) - { - PHPUnit::assertTrue( - $this->pushed($job, $callback)->isNotEmpty(), - "The expected [{$job}] job was not pushed." - ); - - PHPUnit::assertTrue( - collect($expectedChain)->isNotEmpty(), - 'The expected chain can not be empty.' - ); - - $this->isChainOfObjects($expectedChain) - ? $this->assertPushedWithChainOfObjects($job, $expectedChain, $callback) - : $this->assertPushedWithChainOfClasses($job, $expectedChain, $callback); - } - - /** - * Assert if a job was pushed with chained jobs based on a truth-test callback. - * - * @param string $job - * @param array $expectedChain - * @param callable|null $callback - * @return void - */ - protected function assertPushedWithChainOfObjects($job, $expectedChain, $callback) - { - $chain = collect($expectedChain)->map(function ($job) { - return serialize($job); - })->all(); - - PHPUnit::assertTrue( - $this->pushed($job, $callback)->filter(function ($job) use ($chain) { - return $job->chained == $chain; - })->isNotEmpty(), - 'The expected chain was not pushed.' - ); - } - - /** - * Assert if a job was pushed with chained jobs based on a truth-test callback. - * - * @param string $job - * @param array $expectedChain - * @param callable|null $callback - * @return void - */ - protected function assertPushedWithChainOfClasses($job, $expectedChain, $callback) - { - $matching = $this->pushed($job, $callback)->map->chained->map(function ($chain) { - return collect($chain)->map(function ($job) { - return get_class(unserialize($job)); - }); - })->filter(function ($chain) use ($expectedChain) { - return $chain->all() === $expectedChain; - }); - - PHPUnit::assertTrue( - $matching->isNotEmpty(), 'The expected chain was not pushed.' - ); - } - - /** - * Determine if the given chain is entirely composed of objects. - * - * @param array $chain - * @return bool - */ - protected function isChainOfObjects($chain) - { - return collect($chain)->count() == collect($chain) - ->filter(function ($job) { - return is_object($job); - })->count(); - } - - /** - * Determine if a job was pushed based on a truth-test callback. - * - * @param string $job - * @param callable|null $callback - * @return void - */ - public function assertNotPushed($job, $callback = null) - { - PHPUnit::assertTrue( - $this->pushed($job, $callback)->count() === 0, - "The unexpected [{$job}] job was pushed." - ); - } - - /** - * Assert that no jobs were pushed. - * - * @return void - */ - public function assertNothingPushed() - { - PHPUnit::assertEmpty($this->jobs, 'Jobs were pushed unexpectedly.'); - } - - /** - * Get all of the jobs matching a truth-test callback. - * - * @param string $job - * @param callable|null $callback - * @return \Illuminate\Support\Collection - */ - public function pushed($job, $callback = null) - { - if (! $this->hasPushed($job)) { - return collect(); - } - - $callback = $callback ?: function () { - return true; - }; - - return collect($this->jobs[$job])->filter(function ($data) use ($callback) { - return $callback($data['job'], $data['queue']); - })->pluck('job'); - } - - /** - * Determine if there are any stored jobs for a given class. - * - * @param string $job - * @return bool - */ - public function hasPushed($job) - { - return isset($this->jobs[$job]) && ! empty($this->jobs[$job]); - } - - /** - * Resolve a queue connection instance. - * - * @param mixed $value - * @return \Illuminate\Contracts\Queue\Queue - */ - public function connection($value = null) - { - return $this; - } - - /** - * Get the size of the queue. - * - * @param string $queue - * @return int - */ - public function size($queue = null) - { - return count($this->jobs); - } - - /** - * Push a new job onto the queue. - * - * @param string $job - * @param mixed $data - * @param string $queue - * @return mixed - */ - public function push($job, $data = '', $queue = null) - { - $this->jobs[is_object($job) ? get_class($job) : $job][] = [ - 'job' => $job, - 'queue' => $queue, - ]; - } - - /** - * Push a raw payload onto the queue. - * - * @param string $payload - * @param string $queue - * @param array $options - * @return mixed - */ - public function pushRaw($payload, $queue = null, array $options = []) - { - // - } - - /** - * Push a new job onto the queue after a delay. - * - * @param \DateTime|int $delay - * @param string $job - * @param mixed $data - * @param string $queue - * @return mixed - */ - public function later($delay, $job, $data = '', $queue = null) - { - return $this->push($job, $data, $queue); - } - - /** - * Push a new job onto the queue. - * - * @param string $queue - * @param string $job - * @param mixed $data - * @return mixed - */ - public function pushOn($queue, $job, $data = '') - { - return $this->push($job, $data, $queue); - } - - /** - * Push a new job onto the queue after a delay. - * - * @param string $queue - * @param \DateTime|int $delay - * @param string $job - * @param mixed $data - * @return mixed - */ - public function laterOn($queue, $delay, $job, $data = '') - { - return $this->push($job, $data, $queue); - } - - /** - * Pop the next job off of the queue. - * - * @param string $queue - * @return \Illuminate\Contracts\Queue\Job|null - */ - public function pop($queue = null) - { - // - } - - /** - * Push an array of jobs onto the queue. - * - * @param array $jobs - * @param mixed $data - * @param string $queue - * @return mixed - */ - public function bulk($jobs, $data = '', $queue = null) - { - foreach ($jobs as $job) { - $this->push($job, $data, $queue); - } - } - - /** - * Get the connection name for the queue. - * - * @return string - */ - public function getConnectionName() - { - // - } - - /** - * Set the connection name for the queue. - * - * @param string $name - * @return $this - */ - public function setConnectionName($name) - { - return $this; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Support/Traits/CapsuleManagerTrait.php b/vendor/laravel/framework/src/Illuminate/Support/Traits/CapsuleManagerTrait.php deleted file mode 100644 index 08089ef6..00000000 --- a/vendor/laravel/framework/src/Illuminate/Support/Traits/CapsuleManagerTrait.php +++ /dev/null @@ -1,69 +0,0 @@ -container = $container; - - if (! $this->container->bound('config')) { - $this->container->instance('config', new Fluent); - } - } - - /** - * Make this capsule instance available globally. - * - * @return void - */ - public function setAsGlobal() - { - static::$instance = $this; - } - - /** - * Get the IoC container instance. - * - * @return \Illuminate\Contracts\Container\Container - */ - public function getContainer() - { - return $this->container; - } - - /** - * Set the IoC container instance. - * - * @param \Illuminate\Contracts\Container\Container $container - * @return void - */ - public function setContainer(Container $container) - { - $this->container = $container; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Support/Traits/Localizable.php b/vendor/laravel/framework/src/Illuminate/Support/Traits/Localizable.php deleted file mode 100644 index b2699620..00000000 --- a/vendor/laravel/framework/src/Illuminate/Support/Traits/Localizable.php +++ /dev/null @@ -1,31 +0,0 @@ -getLocale(); - - try { - $translator->setLocale($locale); - - return $callback(); - } finally { - $translator->setLocale($original); - } - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Support/Traits/Macroable.php b/vendor/laravel/framework/src/Illuminate/Support/Traits/Macroable.php deleted file mode 100644 index ff0d534f..00000000 --- a/vendor/laravel/framework/src/Illuminate/Support/Traits/Macroable.php +++ /dev/null @@ -1,112 +0,0 @@ -getMethods( - ReflectionMethod::IS_PUBLIC | ReflectionMethod::IS_PROTECTED - ); - - foreach ($methods as $method) { - $method->setAccessible(true); - - static::macro($method->name, $method->invoke($mixin)); - } - } - - /** - * Checks if macro is registered. - * - * @param string $name - * @return bool - */ - public static function hasMacro($name) - { - return isset(static::$macros[$name]); - } - - /** - * Dynamically handle calls to the class. - * - * @param string $method - * @param array $parameters - * @return mixed - * - * @throws \BadMethodCallException - */ - public static function __callStatic($method, $parameters) - { - if (! static::hasMacro($method)) { - throw new BadMethodCallException(sprintf( - 'Method %s::%s does not exist.', static::class, $method - )); - } - - if (static::$macros[$method] instanceof Closure) { - return call_user_func_array(Closure::bind(static::$macros[$method], null, static::class), $parameters); - } - - return call_user_func_array(static::$macros[$method], $parameters); - } - - /** - * Dynamically handle calls to the class. - * - * @param string $method - * @param array $parameters - * @return mixed - * - * @throws \BadMethodCallException - */ - public function __call($method, $parameters) - { - if (! static::hasMacro($method)) { - throw new BadMethodCallException(sprintf( - 'Method %s::%s does not exist.', static::class, $method - )); - } - - $macro = static::$macros[$method]; - - if ($macro instanceof Closure) { - return call_user_func_array($macro->bindTo($this, static::class), $parameters); - } - - return call_user_func_array($macro, $parameters); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Support/ViewErrorBag.php b/vendor/laravel/framework/src/Illuminate/Support/ViewErrorBag.php deleted file mode 100644 index 0f273b5b..00000000 --- a/vendor/laravel/framework/src/Illuminate/Support/ViewErrorBag.php +++ /dev/null @@ -1,130 +0,0 @@ -bags[$key]); - } - - /** - * Get a MessageBag instance from the bags. - * - * @param string $key - * @return \Illuminate\Contracts\Support\MessageBag - */ - public function getBag($key) - { - return Arr::get($this->bags, $key) ?: new MessageBag; - } - - /** - * Get all the bags. - * - * @return array - */ - public function getBags() - { - return $this->bags; - } - - /** - * Add a new MessageBag instance to the bags. - * - * @param string $key - * @param \Illuminate\Contracts\Support\MessageBag $bag - * @return $this - */ - public function put($key, MessageBagContract $bag) - { - $this->bags[$key] = $bag; - - return $this; - } - - /** - * Determine if the default message bag has any messages. - * - * @return bool - */ - public function any() - { - return $this->count() > 0; - } - - /** - * Get the number of messages in the default bag. - * - * @return int - */ - public function count() - { - return $this->getBag('default')->count(); - } - - /** - * Dynamically call methods on the default bag. - * - * @param string $method - * @param array $parameters - * @return mixed - */ - public function __call($method, $parameters) - { - return $this->getBag('default')->$method(...$parameters); - } - - /** - * Dynamically access a view error bag. - * - * @param string $key - * @return \Illuminate\Contracts\Support\MessageBag - */ - public function __get($key) - { - return $this->getBag($key); - } - - /** - * Dynamically set a view error bag. - * - * @param string $key - * @param \Illuminate\Contracts\Support\MessageBag $value - * @return void - */ - public function __set($key, $value) - { - $this->put($key, $value); - } - - /** - * Convert the default bag to its string representation. - * - * @return string - */ - public function __toString() - { - return (string) $this->getBag('default'); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Support/composer.json b/vendor/laravel/framework/src/Illuminate/Support/composer.json deleted file mode 100644 index f2920d7a..00000000 --- a/vendor/laravel/framework/src/Illuminate/Support/composer.json +++ /dev/null @@ -1,49 +0,0 @@ -{ - "name": "illuminate/support", - "description": "The Illuminate Support package.", - "license": "MIT", - "homepage": "https://laravel.com", - "support": { - "issues": "https://github.com/laravel/framework/issues", - "source": "https://github.com/laravel/framework" - }, - "authors": [ - { - "name": "Taylor Otwell", - "email": "taylor@laravel.com" - } - ], - "require": { - "php": "^7.1.3", - "ext-mbstring": "*", - "doctrine/inflector": "~1.1", - "illuminate/contracts": "5.6.*", - "nesbot/carbon": "^1.24.1" - }, - "conflict": { - "tightenco/collect": "<5.5.33" - }, - "autoload": { - "psr-4": { - "Illuminate\\Support\\": "" - }, - "files": [ - "helpers.php" - ] - }, - "extra": { - "branch-alias": { - "dev-master": "5.6-dev" - } - }, - "suggest": { - "illuminate/filesystem": "Required to use the composer class (5.6.*).", - "ramsey/uuid": "Required to use Str::uuid() (^3.7).", - "symfony/process": "Required to use the composer class (~4.0).", - "symfony/var-dumper": "Required to use the dd function (~4.0)." - }, - "config": { - "sort-packages": true - }, - "minimum-stability": "dev" -} diff --git a/vendor/laravel/framework/src/Illuminate/Support/helpers.php b/vendor/laravel/framework/src/Illuminate/Support/helpers.php deleted file mode 100755 index 0fb3e75f..00000000 --- a/vendor/laravel/framework/src/Illuminate/Support/helpers.php +++ /dev/null @@ -1,1179 +0,0 @@ - $value) { - if (is_numeric($key)) { - $start++; - - $array[$start] = Arr::pull($array, $key); - } - } - - return $array; - } -} - -if (! function_exists('array_add')) { - /** - * Add an element to an array using "dot" notation if it doesn't exist. - * - * @param array $array - * @param string $key - * @param mixed $value - * @return array - */ - function array_add($array, $key, $value) - { - return Arr::add($array, $key, $value); - } -} - -if (! function_exists('array_collapse')) { - /** - * Collapse an array of arrays into a single array. - * - * @param array $array - * @return array - */ - function array_collapse($array) - { - return Arr::collapse($array); - } -} - -if (! function_exists('array_divide')) { - /** - * Divide an array into two arrays. One with keys and the other with values. - * - * @param array $array - * @return array - */ - function array_divide($array) - { - return Arr::divide($array); - } -} - -if (! function_exists('array_dot')) { - /** - * Flatten a multi-dimensional associative array with dots. - * - * @param array $array - * @param string $prepend - * @return array - */ - function array_dot($array, $prepend = '') - { - return Arr::dot($array, $prepend); - } -} - -if (! function_exists('array_except')) { - /** - * Get all of the given array except for a specified array of keys. - * - * @param array $array - * @param array|string $keys - * @return array - */ - function array_except($array, $keys) - { - return Arr::except($array, $keys); - } -} - -if (! function_exists('array_first')) { - /** - * Return the first element in an array passing a given truth test. - * - * @param array $array - * @param callable|null $callback - * @param mixed $default - * @return mixed - */ - function array_first($array, callable $callback = null, $default = null) - { - return Arr::first($array, $callback, $default); - } -} - -if (! function_exists('array_flatten')) { - /** - * Flatten a multi-dimensional array into a single level. - * - * @param array $array - * @param int $depth - * @return array - */ - function array_flatten($array, $depth = INF) - { - return Arr::flatten($array, $depth); - } -} - -if (! function_exists('array_forget')) { - /** - * Remove one or many array items from a given array using "dot" notation. - * - * @param array $array - * @param array|string $keys - * @return void - */ - function array_forget(&$array, $keys) - { - return Arr::forget($array, $keys); - } -} - -if (! function_exists('array_get')) { - /** - * Get an item from an array using "dot" notation. - * - * @param \ArrayAccess|array $array - * @param string $key - * @param mixed $default - * @return mixed - */ - function array_get($array, $key, $default = null) - { - return Arr::get($array, $key, $default); - } -} - -if (! function_exists('array_has')) { - /** - * Check if an item or items exist in an array using "dot" notation. - * - * @param \ArrayAccess|array $array - * @param string|array $keys - * @return bool - */ - function array_has($array, $keys) - { - return Arr::has($array, $keys); - } -} - -if (! function_exists('array_last')) { - /** - * Return the last element in an array passing a given truth test. - * - * @param array $array - * @param callable|null $callback - * @param mixed $default - * @return mixed - */ - function array_last($array, callable $callback = null, $default = null) - { - return Arr::last($array, $callback, $default); - } -} - -if (! function_exists('array_only')) { - /** - * Get a subset of the items from the given array. - * - * @param array $array - * @param array|string $keys - * @return array - */ - function array_only($array, $keys) - { - return Arr::only($array, $keys); - } -} - -if (! function_exists('array_pluck')) { - /** - * Pluck an array of values from an array. - * - * @param array $array - * @param string|array $value - * @param string|array|null $key - * @return array - */ - function array_pluck($array, $value, $key = null) - { - return Arr::pluck($array, $value, $key); - } -} - -if (! function_exists('array_prepend')) { - /** - * Push an item onto the beginning of an array. - * - * @param array $array - * @param mixed $value - * @param mixed $key - * @return array - */ - function array_prepend($array, $value, $key = null) - { - return Arr::prepend($array, $value, $key); - } -} - -if (! function_exists('array_pull')) { - /** - * Get a value from the array, and remove it. - * - * @param array $array - * @param string $key - * @param mixed $default - * @return mixed - */ - function array_pull(&$array, $key, $default = null) - { - return Arr::pull($array, $key, $default); - } -} - -if (! function_exists('array_random')) { - /** - * Get a random value from an array. - * - * @param array $array - * @param int|null $num - * @return mixed - */ - function array_random($array, $num = null) - { - return Arr::random($array, $num); - } -} - -if (! function_exists('array_set')) { - /** - * Set an array item to a given value using "dot" notation. - * - * If no key is given to the method, the entire array will be replaced. - * - * @param array $array - * @param string $key - * @param mixed $value - * @return array - */ - function array_set(&$array, $key, $value) - { - return Arr::set($array, $key, $value); - } -} - -if (! function_exists('array_sort')) { - /** - * Sort the array by the given callback or attribute name. - * - * @param array $array - * @param callable|string|null $callback - * @return array - */ - function array_sort($array, $callback = null) - { - return Arr::sort($array, $callback); - } -} - -if (! function_exists('array_sort_recursive')) { - /** - * Recursively sort an array by keys and values. - * - * @param array $array - * @return array - */ - function array_sort_recursive($array) - { - return Arr::sortRecursive($array); - } -} - -if (! function_exists('array_where')) { - /** - * Filter the array using the given callback. - * - * @param array $array - * @param callable $callback - * @return array - */ - function array_where($array, callable $callback) - { - return Arr::where($array, $callback); - } -} - -if (! function_exists('array_wrap')) { - /** - * If the given value is not an array, wrap it in one. - * - * @param mixed $value - * @return array - */ - function array_wrap($value) - { - return Arr::wrap($value); - } -} - -if (! function_exists('blank')) { - /** - * Determine if the given value is "blank". - * - * @param mixed $value - * @return bool - */ - function blank($value) - { - if (is_null($value)) { - return true; - } - - if (is_string($value)) { - return trim($value) === ''; - } - - if (is_numeric($value) || is_bool($value)) { - return false; - } - - if ($value instanceof Countable) { - return count($value) === 0; - } - - return empty($value); - } -} - -if (! function_exists('camel_case')) { - /** - * Convert a value to camel case. - * - * @param string $value - * @return string - */ - function camel_case($value) - { - return Str::camel($value); - } -} - -if (! function_exists('class_basename')) { - /** - * Get the class "basename" of the given object / class. - * - * @param string|object $class - * @return string - */ - function class_basename($class) - { - $class = is_object($class) ? get_class($class) : $class; - - return basename(str_replace('\\', '/', $class)); - } -} - -if (! function_exists('class_uses_recursive')) { - /** - * Returns all traits used by a class, its parent classes and trait of their traits. - * - * @param object|string $class - * @return array - */ - function class_uses_recursive($class) - { - if (is_object($class)) { - $class = get_class($class); - } - - $results = []; - - foreach (array_reverse(class_parents($class)) + [$class => $class] as $class) { - $results += trait_uses_recursive($class); - } - - return array_unique($results); - } -} - -if (! function_exists('collect')) { - /** - * Create a collection from the given value. - * - * @param mixed $value - * @return \Illuminate\Support\Collection - */ - function collect($value = null) - { - return new Collection($value); - } -} - -if (! function_exists('data_fill')) { - /** - * Fill in data where it's missing. - * - * @param mixed $target - * @param string|array $key - * @param mixed $value - * @return mixed - */ - function data_fill(&$target, $key, $value) - { - return data_set($target, $key, $value, false); - } -} - -if (! function_exists('data_get')) { - /** - * Get an item from an array or object using "dot" notation. - * - * @param mixed $target - * @param string|array $key - * @param mixed $default - * @return mixed - */ - function data_get($target, $key, $default = null) - { - if (is_null($key)) { - return $target; - } - - $key = is_array($key) ? $key : explode('.', $key); - - while (! is_null($segment = array_shift($key))) { - if ($segment === '*') { - if ($target instanceof Collection) { - $target = $target->all(); - } elseif (! is_array($target)) { - return value($default); - } - - $result = Arr::pluck($target, $key); - - return in_array('*', $key) ? Arr::collapse($result) : $result; - } - - if (Arr::accessible($target) && Arr::exists($target, $segment)) { - $target = $target[$segment]; - } elseif (is_object($target) && isset($target->{$segment})) { - $target = $target->{$segment}; - } else { - return value($default); - } - } - - return $target; - } -} - -if (! function_exists('data_set')) { - /** - * Set an item on an array or object using dot notation. - * - * @param mixed $target - * @param string|array $key - * @param mixed $value - * @param bool $overwrite - * @return mixed - */ - function data_set(&$target, $key, $value, $overwrite = true) - { - $segments = is_array($key) ? $key : explode('.', $key); - - if (($segment = array_shift($segments)) === '*') { - if (! Arr::accessible($target)) { - $target = []; - } - - if ($segments) { - foreach ($target as &$inner) { - data_set($inner, $segments, $value, $overwrite); - } - } elseif ($overwrite) { - foreach ($target as &$inner) { - $inner = $value; - } - } - } elseif (Arr::accessible($target)) { - if ($segments) { - if (! Arr::exists($target, $segment)) { - $target[$segment] = []; - } - - data_set($target[$segment], $segments, $value, $overwrite); - } elseif ($overwrite || ! Arr::exists($target, $segment)) { - $target[$segment] = $value; - } - } elseif (is_object($target)) { - if ($segments) { - if (! isset($target->{$segment})) { - $target->{$segment} = []; - } - - data_set($target->{$segment}, $segments, $value, $overwrite); - } elseif ($overwrite || ! isset($target->{$segment})) { - $target->{$segment} = $value; - } - } else { - $target = []; - - if ($segments) { - data_set($target[$segment], $segments, $value, $overwrite); - } elseif ($overwrite) { - $target[$segment] = $value; - } - } - - return $target; - } -} - -if (! function_exists('dd')) { - /** - * Dump the passed variables and end the script. - * - * @param mixed $args - * @return void - */ - function dd(...$args) - { - foreach ($args as $x) { - (new Dumper)->dump($x); - } - - die(1); - } -} - -if (! function_exists('e')) { - /** - * Escape HTML special characters in a string. - * - * @param \Illuminate\Contracts\Support\Htmlable|string $value - * @param bool $doubleEncode - * @return string - */ - function e($value, $doubleEncode = true) - { - if ($value instanceof Htmlable) { - return $value->toHtml(); - } - - return htmlspecialchars($value, ENT_QUOTES, 'UTF-8', $doubleEncode); - } -} - -if (! function_exists('ends_with')) { - /** - * Determine if a given string ends with a given substring. - * - * @param string $haystack - * @param string|array $needles - * @return bool - */ - function ends_with($haystack, $needles) - { - return Str::endsWith($haystack, $needles); - } -} - -if (! function_exists('env')) { - /** - * Gets the value of an environment variable. - * - * @param string $key - * @param mixed $default - * @return mixed - */ - function env($key, $default = null) - { - $value = getenv($key); - - if ($value === false) { - return value($default); - } - - switch (strtolower($value)) { - case 'true': - case '(true)': - return true; - case 'false': - case '(false)': - return false; - case 'empty': - case '(empty)': - return ''; - case 'null': - case '(null)': - return; - } - - if (($valueLength = strlen($value)) > 1 && $value[0] === '"' && $value[$valueLength - 1] === '"') { - return substr($value, 1, -1); - } - - return $value; - } -} - -if (! function_exists('filled')) { - /** - * Determine if a value is "filled". - * - * @param mixed $value - * @return bool - */ - function filled($value) - { - return ! blank($value); - } -} - -if (! function_exists('head')) { - /** - * Get the first element of an array. Useful for method chaining. - * - * @param array $array - * @return mixed - */ - function head($array) - { - return reset($array); - } -} - -if (! function_exists('kebab_case')) { - /** - * Convert a string to kebab case. - * - * @param string $value - * @return string - */ - function kebab_case($value) - { - return Str::kebab($value); - } -} - -if (! function_exists('last')) { - /** - * Get the last element from an array. - * - * @param array $array - * @return mixed - */ - function last($array) - { - return end($array); - } -} - -if (! function_exists('object_get')) { - /** - * Get an item from an object using "dot" notation. - * - * @param object $object - * @param string $key - * @param mixed $default - * @return mixed - */ - function object_get($object, $key, $default = null) - { - if (is_null($key) || trim($key) == '') { - return $object; - } - - foreach (explode('.', $key) as $segment) { - if (! is_object($object) || ! isset($object->{$segment})) { - return value($default); - } - - $object = $object->{$segment}; - } - - return $object; - } -} - -if (! function_exists('optional')) { - /** - * Provide access to optional objects. - * - * @param mixed $value - * @param callable|null $callback - * @return mixed - */ - function optional($value = null, callable $callback = null) - { - if (is_null($callback)) { - return new Optional($value); - } elseif (! is_null($value)) { - return $callback($value); - } - } -} - -if (! function_exists('preg_replace_array')) { - /** - * Replace a given pattern with each value in the array in sequentially. - * - * @param string $pattern - * @param array $replacements - * @param string $subject - * @return string - */ - function preg_replace_array($pattern, array $replacements, $subject) - { - return preg_replace_callback($pattern, function () use (&$replacements) { - foreach ($replacements as $key => $value) { - return array_shift($replacements); - } - }, $subject); - } -} - -if (! function_exists('retry')) { - /** - * Retry an operation a given number of times. - * - * @param int $times - * @param callable $callback - * @param int $sleep - * @return mixed - * - * @throws \Exception - */ - function retry($times, callable $callback, $sleep = 0) - { - $times--; - - beginning: - try { - return $callback(); - } catch (Exception $e) { - if (! $times) { - throw $e; - } - - $times--; - - if ($sleep) { - usleep($sleep * 1000); - } - - goto beginning; - } - } -} - -if (! function_exists('snake_case')) { - /** - * Convert a string to snake case. - * - * @param string $value - * @param string $delimiter - * @return string - */ - function snake_case($value, $delimiter = '_') - { - return Str::snake($value, $delimiter); - } -} - -if (! function_exists('starts_with')) { - /** - * Determine if a given string starts with a given substring. - * - * @param string $haystack - * @param string|array $needles - * @return bool - */ - function starts_with($haystack, $needles) - { - return Str::startsWith($haystack, $needles); - } -} - -if (! function_exists('str_after')) { - /** - * Return the remainder of a string after a given value. - * - * @param string $subject - * @param string $search - * @return string - */ - function str_after($subject, $search) - { - return Str::after($subject, $search); - } -} - -if (! function_exists('str_before')) { - /** - * Get the portion of a string before a given value. - * - * @param string $subject - * @param string $search - * @return string - */ - function str_before($subject, $search) - { - return Str::before($subject, $search); - } -} - -if (! function_exists('str_contains')) { - /** - * Determine if a given string contains a given substring. - * - * @param string $haystack - * @param string|array $needles - * @return bool - */ - function str_contains($haystack, $needles) - { - return Str::contains($haystack, $needles); - } -} - -if (! function_exists('str_finish')) { - /** - * Cap a string with a single instance of a given value. - * - * @param string $value - * @param string $cap - * @return string - */ - function str_finish($value, $cap) - { - return Str::finish($value, $cap); - } -} - -if (! function_exists('str_is')) { - /** - * Determine if a given string matches a given pattern. - * - * @param string|array $pattern - * @param string $value - * @return bool - */ - function str_is($pattern, $value) - { - return Str::is($pattern, $value); - } -} - -if (! function_exists('str_limit')) { - /** - * Limit the number of characters in a string. - * - * @param string $value - * @param int $limit - * @param string $end - * @return string - */ - function str_limit($value, $limit = 100, $end = '...') - { - return Str::limit($value, $limit, $end); - } -} - -if (! function_exists('str_plural')) { - /** - * Get the plural form of an English word. - * - * @param string $value - * @param int $count - * @return string - */ - function str_plural($value, $count = 2) - { - return Str::plural($value, $count); - } -} - -if (! function_exists('str_random')) { - /** - * Generate a more truly "random" alpha-numeric string. - * - * @param int $length - * @return string - * - * @throws \RuntimeException - */ - function str_random($length = 16) - { - return Str::random($length); - } -} - -if (! function_exists('str_replace_array')) { - /** - * Replace a given value in the string sequentially with an array. - * - * @param string $search - * @param array $replace - * @param string $subject - * @return string - */ - function str_replace_array($search, array $replace, $subject) - { - return Str::replaceArray($search, $replace, $subject); - } -} - -if (! function_exists('str_replace_first')) { - /** - * Replace the first occurrence of a given value in the string. - * - * @param string $search - * @param string $replace - * @param string $subject - * @return string - */ - function str_replace_first($search, $replace, $subject) - { - return Str::replaceFirst($search, $replace, $subject); - } -} - -if (! function_exists('str_replace_last')) { - /** - * Replace the last occurrence of a given value in the string. - * - * @param string $search - * @param string $replace - * @param string $subject - * @return string - */ - function str_replace_last($search, $replace, $subject) - { - return Str::replaceLast($search, $replace, $subject); - } -} - -if (! function_exists('str_singular')) { - /** - * Get the singular form of an English word. - * - * @param string $value - * @return string - */ - function str_singular($value) - { - return Str::singular($value); - } -} - -if (! function_exists('str_slug')) { - /** - * Generate a URL friendly "slug" from a given string. - * - * @param string $title - * @param string $separator - * @param string $language - * @return string - */ - function str_slug($title, $separator = '-', $language = 'en') - { - return Str::slug($title, $separator, $language); - } -} - -if (! function_exists('str_start')) { - /** - * Begin a string with a single instance of a given value. - * - * @param string $value - * @param string $prefix - * @return string - */ - function str_start($value, $prefix) - { - return Str::start($value, $prefix); - } -} - -if (! function_exists('studly_case')) { - /** - * Convert a value to studly caps case. - * - * @param string $value - * @return string - */ - function studly_case($value) - { - return Str::studly($value); - } -} - -if (! function_exists('tap')) { - /** - * Call the given Closure with the given value then return the value. - * - * @param mixed $value - * @param callable|null $callback - * @return mixed - */ - function tap($value, $callback = null) - { - if (is_null($callback)) { - return new HigherOrderTapProxy($value); - } - - $callback($value); - - return $value; - } -} - -if (! function_exists('throw_if')) { - /** - * Throw the given exception if the given condition is true. - * - * @param mixed $condition - * @param \Throwable|string $exception - * @param array ...$parameters - * @return mixed - * @throws \Throwable - */ - function throw_if($condition, $exception, ...$parameters) - { - if ($condition) { - throw (is_string($exception) ? new $exception(...$parameters) : $exception); - } - - return $condition; - } -} - -if (! function_exists('throw_unless')) { - /** - * Throw the given exception unless the given condition is true. - * - * @param mixed $condition - * @param \Throwable|string $exception - * @param array ...$parameters - * @return mixed - * @throws \Throwable - */ - function throw_unless($condition, $exception, ...$parameters) - { - if (! $condition) { - throw (is_string($exception) ? new $exception(...$parameters) : $exception); - } - - return $condition; - } -} - -if (! function_exists('title_case')) { - /** - * Convert a value to title case. - * - * @param string $value - * @return string - */ - function title_case($value) - { - return Str::title($value); - } -} - -if (! function_exists('trait_uses_recursive')) { - /** - * Returns all traits used by a trait and its traits. - * - * @param string $trait - * @return array - */ - function trait_uses_recursive($trait) - { - $traits = class_uses($trait); - - foreach ($traits as $trait) { - $traits += trait_uses_recursive($trait); - } - - return $traits; - } -} - -if (! function_exists('transform')) { - /** - * Transform the given value if it is present. - * - * @param mixed $value - * @param callable $callback - * @param mixed $default - * @return mixed|null - */ - function transform($value, callable $callback, $default = null) - { - if (filled($value)) { - return $callback($value); - } - - if (is_callable($default)) { - return $default($value); - } - - return $default; - } -} - -if (! function_exists('value')) { - /** - * Return the default value of the given value. - * - * @param mixed $value - * @return mixed - */ - function value($value) - { - return $value instanceof Closure ? $value() : $value; - } -} - -if (! function_exists('windows_os')) { - /** - * Determine whether the current environment is Windows based. - * - * @return bool - */ - function windows_os() - { - return strtolower(substr(PHP_OS, 0, 3)) === 'win'; - } -} - -if (! function_exists('with')) { - /** - * Return the given value, optionally passed through the given callback. - * - * @param mixed $value - * @param callable|null $callback - * @return mixed - */ - function with($value, callable $callback = null) - { - return is_null($callback) ? $value : $callback($value); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Translation/ArrayLoader.php b/vendor/laravel/framework/src/Illuminate/Translation/ArrayLoader.php deleted file mode 100644 index 47482d45..00000000 --- a/vendor/laravel/framework/src/Illuminate/Translation/ArrayLoader.php +++ /dev/null @@ -1,85 +0,0 @@ -messages[$namespace][$locale][$group])) { - return $this->messages[$namespace][$locale][$group]; - } - - return []; - } - - /** - * Add a new namespace to the loader. - * - * @param string $namespace - * @param string $hint - * @return void - */ - public function addNamespace($namespace, $hint) - { - // - } - - /** - * Add a new JSON path to the loader. - * - * @param string $path - * @return void - */ - public function addJsonPath($path) - { - // - } - - /** - * Add messages to the loader. - * - * @param string $locale - * @param string $group - * @param array $messages - * @param string|null $namespace - * @return $this - */ - public function addMessages($locale, $group, array $messages, $namespace = null) - { - $namespace = $namespace ?: '*'; - - $this->messages[$namespace][$locale][$group] = $messages; - - return $this; - } - - /** - * Get an array of all the registered namespaces. - * - * @return array - */ - public function namespaces() - { - return []; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Translation/FileLoader.php b/vendor/laravel/framework/src/Illuminate/Translation/FileLoader.php deleted file mode 100755 index 5a29c749..00000000 --- a/vendor/laravel/framework/src/Illuminate/Translation/FileLoader.php +++ /dev/null @@ -1,187 +0,0 @@ -path = $path; - $this->files = $files; - } - - /** - * Load the messages for the given locale. - * - * @param string $locale - * @param string $group - * @param string $namespace - * @return array - */ - public function load($locale, $group, $namespace = null) - { - if ($group == '*' && $namespace == '*') { - return $this->loadJsonPaths($locale); - } - - if (is_null($namespace) || $namespace == '*') { - return $this->loadPath($this->path, $locale, $group); - } - - return $this->loadNamespaced($locale, $group, $namespace); - } - - /** - * Load a namespaced translation group. - * - * @param string $locale - * @param string $group - * @param string $namespace - * @return array - */ - protected function loadNamespaced($locale, $group, $namespace) - { - if (isset($this->hints[$namespace])) { - $lines = $this->loadPath($this->hints[$namespace], $locale, $group); - - return $this->loadNamespaceOverrides($lines, $locale, $group, $namespace); - } - - return []; - } - - /** - * Load a local namespaced translation group for overrides. - * - * @param array $lines - * @param string $locale - * @param string $group - * @param string $namespace - * @return array - */ - protected function loadNamespaceOverrides(array $lines, $locale, $group, $namespace) - { - $file = "{$this->path}/vendor/{$namespace}/{$locale}/{$group}.php"; - - if ($this->files->exists($file)) { - return array_replace_recursive($lines, $this->files->getRequire($file)); - } - - return $lines; - } - - /** - * Load a locale from a given path. - * - * @param string $path - * @param string $locale - * @param string $group - * @return array - */ - protected function loadPath($path, $locale, $group) - { - if ($this->files->exists($full = "{$path}/{$locale}/{$group}.php")) { - return $this->files->getRequire($full); - } - - return []; - } - - /** - * Load a locale from the given JSON file path. - * - * @param string $locale - * @return array - * - * @throws \RuntimeException - */ - protected function loadJsonPaths($locale) - { - return collect(array_merge($this->jsonPaths, [$this->path])) - ->reduce(function ($output, $path) use ($locale) { - if ($this->files->exists($full = "{$path}/{$locale}.json")) { - $decoded = json_decode($this->files->get($full), true); - - if (is_null($decoded) || json_last_error() !== JSON_ERROR_NONE) { - throw new RuntimeException("Translation file [{$full}] contains an invalid JSON structure."); - } - - $output = array_merge($output, $decoded); - } - - return $output; - }, []); - } - - /** - * Add a new namespace to the loader. - * - * @param string $namespace - * @param string $hint - * @return void - */ - public function addNamespace($namespace, $hint) - { - $this->hints[$namespace] = $hint; - } - - /** - * Add a new JSON path to the loader. - * - * @param string $path - * @return void - */ - public function addJsonPath($path) - { - $this->jsonPaths[] = $path; - } - - /** - * Get an array of all the registered namespaces. - * - * @return array - */ - public function namespaces() - { - return $this->hints; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Translation/MessageSelector.php b/vendor/laravel/framework/src/Illuminate/Translation/MessageSelector.php deleted file mode 100755 index ecb03f2d..00000000 --- a/vendor/laravel/framework/src/Illuminate/Translation/MessageSelector.php +++ /dev/null @@ -1,412 +0,0 @@ -extract($segments, $number)) !== null) { - return trim($value); - } - - $segments = $this->stripConditions($segments); - - $pluralIndex = $this->getPluralIndex($locale, $number); - - if (count($segments) == 1 || ! isset($segments[$pluralIndex])) { - return $segments[0]; - } - - return $segments[$pluralIndex]; - } - - /** - * Extract a translation string using inline conditions. - * - * @param array $segments - * @param int $number - * @return mixed - */ - private function extract($segments, $number) - { - foreach ($segments as $part) { - if (! is_null($line = $this->extractFromString($part, $number))) { - return $line; - } - } - } - - /** - * Get the translation string if the condition matches. - * - * @param string $part - * @param int $number - * @return mixed - */ - private function extractFromString($part, $number) - { - preg_match('/^[\{\[]([^\[\]\{\}]*)[\}\]](.*)/s', $part, $matches); - - if (count($matches) !== 3) { - return; - } - - $condition = $matches[1]; - - $value = $matches[2]; - - if (Str::contains($condition, ',')) { - list($from, $to) = explode(',', $condition, 2); - - if ($to == '*' && $number >= $from) { - return $value; - } elseif ($from == '*' && $number <= $to) { - return $value; - } elseif ($number >= $from && $number <= $to) { - return $value; - } - } - - return $condition == $number ? $value : null; - } - - /** - * Strip the inline conditions from each segment, just leaving the text. - * - * @param array $segments - * @return array - */ - private function stripConditions($segments) - { - return collect($segments)->map(function ($part) { - return preg_replace('/^[\{\[]([^\[\]\{\}]*)[\}\]]/', '', $part); - })->all(); - } - - /** - * Get the index to use for pluralization. - * - * The plural rules are derived from code of the Zend Framework (2010-09-25), which - * is subject to the new BSD license (http://framework.zend.com/license/new-bsd) - * Copyright (c) 2005-2010 - Zend Technologies USA Inc. (http://www.zend.com) - * - * @param string $locale - * @param int $number - * @return int - */ - public function getPluralIndex($locale, $number) - { - switch ($locale) { - case 'az': - case 'az_AZ': - case 'bo': - case 'bo_CN': - case 'bo_IN': - case 'dz': - case 'dz_BT': - case 'id': - case 'id_ID': - case 'ja': - case 'ja_JP': - case 'jv': - case 'ka': - case 'ka_GE': - case 'km': - case 'km_KH': - case 'kn': - case 'kn_IN': - case 'ko': - case 'ko_KR': - case 'ms': - case 'ms_MY': - case 'th': - case 'th_TH': - case 'tr': - case 'tr_CY': - case 'tr_TR': - case 'vi': - case 'vi_VN': - case 'zh': - case 'zh_CN': - case 'zh_HK': - case 'zh_SG': - case 'zh_TW': - return 0; - case 'af': - case 'af_ZA': - case 'bn': - case 'bn_BD': - case 'bn_IN': - case 'bg': - case 'bg_BG': - case 'ca': - case 'ca_AD': - case 'ca_ES': - case 'ca_FR': - case 'ca_IT': - case 'da': - case 'da_DK': - case 'de': - case 'de_AT': - case 'de_BE': - case 'de_CH': - case 'de_DE': - case 'de_LI': - case 'de_LU': - case 'el': - case 'el_CY': - case 'el_GR': - case 'en': - case 'en_AG': - case 'en_AU': - case 'en_BW': - case 'en_CA': - case 'en_DK': - case 'en_GB': - case 'en_HK': - case 'en_IE': - case 'en_IN': - case 'en_NG': - case 'en_NZ': - case 'en_PH': - case 'en_SG': - case 'en_US': - case 'en_ZA': - case 'en_ZM': - case 'en_ZW': - case 'eo': - case 'eo_US': - case 'es': - case 'es_AR': - case 'es_BO': - case 'es_CL': - case 'es_CO': - case 'es_CR': - case 'es_CU': - case 'es_DO': - case 'es_EC': - case 'es_ES': - case 'es_GT': - case 'es_HN': - case 'es_MX': - case 'es_NI': - case 'es_PA': - case 'es_PE': - case 'es_PR': - case 'es_PY': - case 'es_SV': - case 'es_US': - case 'es_UY': - case 'es_VE': - case 'et': - case 'et_EE': - case 'eu': - case 'eu_ES': - case 'eu_FR': - case 'fa': - case 'fa_IR': - case 'fi': - case 'fi_FI': - case 'fo': - case 'fo_FO': - case 'fur': - case 'fur_IT': - case 'fy': - case 'fy_DE': - case 'fy_NL': - case 'gl': - case 'gl_ES': - case 'gu': - case 'gu_IN': - case 'ha': - case 'ha_NG': - case 'he': - case 'he_IL': - case 'hu': - case 'hu_HU': - case 'is': - case 'is_IS': - case 'it': - case 'it_CH': - case 'it_IT': - case 'ku': - case 'ku_TR': - case 'lb': - case 'lb_LU': - case 'ml': - case 'ml_IN': - case 'mn': - case 'mn_MN': - case 'mr': - case 'mr_IN': - case 'nah': - case 'nb': - case 'nb_NO': - case 'ne': - case 'ne_NP': - case 'nl': - case 'nl_AW': - case 'nl_BE': - case 'nl_NL': - case 'nn': - case 'nn_NO': - case 'no': - case 'om': - case 'om_ET': - case 'om_KE': - case 'or': - case 'or_IN': - case 'pa': - case 'pa_IN': - case 'pa_PK': - case 'pap': - case 'pap_AN': - case 'pap_AW': - case 'pap_CW': - case 'ps': - case 'ps_AF': - case 'pt': - case 'pt_BR': - case 'pt_PT': - case 'so': - case 'so_DJ': - case 'so_ET': - case 'so_KE': - case 'so_SO': - case 'sq': - case 'sq_AL': - case 'sq_MK': - case 'sv': - case 'sv_FI': - case 'sv_SE': - case 'sw': - case 'sw_KE': - case 'sw_TZ': - case 'ta': - case 'ta_IN': - case 'ta_LK': - case 'te': - case 'te_IN': - case 'tk': - case 'tk_TM': - case 'ur': - case 'ur_IN': - case 'ur_PK': - case 'zu': - case 'zu_ZA': - return ($number == 1) ? 0 : 1; - case 'am': - case 'am_ET': - case 'bh': - case 'fil': - case 'fil_PH': - case 'fr': - case 'fr_BE': - case 'fr_CA': - case 'fr_CH': - case 'fr_FR': - case 'fr_LU': - case 'gun': - case 'hi': - case 'hi_IN': - case 'hy': - case 'hy_AM': - case 'ln': - case 'ln_CD': - case 'mg': - case 'mg_MG': - case 'nso': - case 'nso_ZA': - case 'ti': - case 'ti_ER': - case 'ti_ET': - case 'wa': - case 'wa_BE': - case 'xbr': - return (($number == 0) || ($number == 1)) ? 0 : 1; - case 'be': - case 'be_BY': - case 'bs': - case 'bs_BA': - case 'hr': - case 'hr_HR': - case 'ru': - case 'ru_RU': - case 'ru_UA': - case 'sr': - case 'sr_ME': - case 'sr_RS': - case 'uk': - case 'uk_UA': - return (($number % 10 == 1) && ($number % 100 != 11)) ? 0 : ((($number % 10 >= 2) && ($number % 10 <= 4) && (($number % 100 < 10) || ($number % 100 >= 20))) ? 1 : 2); - case 'cs': - case 'cs_CZ': - case 'sk': - case 'sk_SK': - return ($number == 1) ? 0 : ((($number >= 2) && ($number <= 4)) ? 1 : 2); - case 'ga': - case 'ga_IE': - return ($number == 1) ? 0 : (($number == 2) ? 1 : 2); - case 'lt': - case 'lt_LT': - return (($number % 10 == 1) && ($number % 100 != 11)) ? 0 : ((($number % 10 >= 2) && (($number % 100 < 10) || ($number % 100 >= 20))) ? 1 : 2); - case 'sl': - case 'sl_SI': - return ($number % 100 == 1) ? 0 : (($number % 100 == 2) ? 1 : ((($number % 100 == 3) || ($number % 100 == 4)) ? 2 : 3)); - case 'mk': - case 'mk_MK': - return ($number % 10 == 1) ? 0 : 1; - case 'mt': - case 'mt_MT': - return ($number == 1) ? 0 : ((($number == 0) || (($number % 100 > 1) && ($number % 100 < 11))) ? 1 : ((($number % 100 > 10) && ($number % 100 < 20)) ? 2 : 3)); - case 'lv': - case 'lv_LV': - return ($number == 0) ? 0 : ((($number % 10 == 1) && ($number % 100 != 11)) ? 1 : 2); - case 'pl': - case 'pl_PL': - return ($number == 1) ? 0 : ((($number % 10 >= 2) && ($number % 10 <= 4) && (($number % 100 < 12) || ($number % 100 > 14))) ? 1 : 2); - case 'cy': - case 'cy_GB': - return ($number == 1) ? 0 : (($number == 2) ? 1 : ((($number == 8) || ($number == 11)) ? 2 : 3)); - case 'ro': - case 'ro_RO': - return ($number == 1) ? 0 : ((($number == 0) || (($number % 100 > 0) && ($number % 100 < 20))) ? 1 : 2); - case 'ar': - case 'ar_AE': - case 'ar_BH': - case 'ar_DZ': - case 'ar_EG': - case 'ar_IN': - case 'ar_IQ': - case 'ar_JO': - case 'ar_KW': - case 'ar_LB': - case 'ar_LY': - case 'ar_MA': - case 'ar_OM': - case 'ar_QA': - case 'ar_SA': - case 'ar_SD': - case 'ar_SS': - case 'ar_SY': - case 'ar_TN': - case 'ar_YE': - return ($number == 0) ? 0 : (($number == 1) ? 1 : (($number == 2) ? 2 : ((($number % 100 >= 3) && ($number % 100 <= 10)) ? 3 : ((($number % 100 >= 11) && ($number % 100 <= 99)) ? 4 : 5)))); - default: - return 0; - } - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Translation/TranslationServiceProvider.php b/vendor/laravel/framework/src/Illuminate/Translation/TranslationServiceProvider.php deleted file mode 100755 index f0dd3fe7..00000000 --- a/vendor/laravel/framework/src/Illuminate/Translation/TranslationServiceProvider.php +++ /dev/null @@ -1,62 +0,0 @@ -registerLoader(); - - $this->app->singleton('translator', function ($app) { - $loader = $app['translation.loader']; - - // When registering the translator component, we'll need to set the default - // locale as well as the fallback locale. So, we'll grab the application - // configuration so we can easily get both of these values from there. - $locale = $app['config']['app.locale']; - - $trans = new Translator($loader, $locale); - - $trans->setFallback($app['config']['app.fallback_locale']); - - return $trans; - }); - } - - /** - * Register the translation line loader. - * - * @return void - */ - protected function registerLoader() - { - $this->app->singleton('translation.loader', function ($app) { - return new FileLoader($app['files'], $app['path.lang']); - }); - } - - /** - * Get the services provided by the provider. - * - * @return array - */ - public function provides() - { - return ['translator', 'translation.loader']; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Translation/Translator.php b/vendor/laravel/framework/src/Illuminate/Translation/Translator.php deleted file mode 100755 index 6faf6b31..00000000 --- a/vendor/laravel/framework/src/Illuminate/Translation/Translator.php +++ /dev/null @@ -1,490 +0,0 @@ -loader = $loader; - $this->locale = $locale; - } - - /** - * Determine if a translation exists for a given locale. - * - * @param string $key - * @param string|null $locale - * @return bool - */ - public function hasForLocale($key, $locale = null) - { - return $this->has($key, $locale, false); - } - - /** - * Determine if a translation exists. - * - * @param string $key - * @param string|null $locale - * @param bool $fallback - * @return bool - */ - public function has($key, $locale = null, $fallback = true) - { - return $this->get($key, [], $locale, $fallback) !== $key; - } - - /** - * Get the translation for a given key. - * - * @param string $key - * @param array $replace - * @param string $locale - * @return string|array|null - */ - public function trans($key, array $replace = [], $locale = null) - { - return $this->get($key, $replace, $locale); - } - - /** - * Get the translation for the given key. - * - * @param string $key - * @param array $replace - * @param string|null $locale - * @param bool $fallback - * @return string|array|null - */ - public function get($key, array $replace = [], $locale = null, $fallback = true) - { - list($namespace, $group, $item) = $this->parseKey($key); - - // Here we will get the locale that should be used for the language line. If one - // was not passed, we will use the default locales which was given to us when - // the translator was instantiated. Then, we can load the lines and return. - $locales = $fallback ? $this->localeArray($locale) - : [$locale ?: $this->locale]; - - foreach ($locales as $locale) { - if (! is_null($line = $this->getLine( - $namespace, $group, $locale, $item, $replace - ))) { - break; - } - } - - // If the line doesn't exist, we will return back the key which was requested as - // that will be quick to spot in the UI if language keys are wrong or missing - // from the application's language files. Otherwise we can return the line. - if (isset($line)) { - return $line; - } - - return $key; - } - - /** - * Get the translation for a given key from the JSON translation files. - * - * @param string $key - * @param array $replace - * @param string $locale - * @return string|array|null - */ - public function getFromJson($key, array $replace = [], $locale = null) - { - $locale = $locale ?: $this->locale; - - // For JSON translations, there is only one file per locale, so we will simply load - // that file and then we will be ready to check the array for the key. These are - // only one level deep so we do not need to do any fancy searching through it. - $this->load('*', '*', $locale); - - $line = $this->loaded['*']['*'][$locale][$key] ?? null; - - // If we can't find a translation for the JSON key, we will attempt to translate it - // using the typical translation file. This way developers can always just use a - // helper such as __ instead of having to pick between trans or __ with views. - if (! isset($line)) { - $fallback = $this->get($key, $replace, $locale); - - if ($fallback !== $key) { - return $fallback; - } - } - - return $this->makeReplacements($line ?: $key, $replace); - } - - /** - * Get a translation according to an integer value. - * - * @param string $key - * @param int|array|\Countable $number - * @param array $replace - * @param string $locale - * @return string - */ - public function transChoice($key, $number, array $replace = [], $locale = null) - { - return $this->choice($key, $number, $replace, $locale); - } - - /** - * Get a translation according to an integer value. - * - * @param string $key - * @param int|array|\Countable $number - * @param array $replace - * @param string $locale - * @return string - */ - public function choice($key, $number, array $replace = [], $locale = null) - { - $line = $this->get( - $key, $replace, $locale = $this->localeForChoice($locale) - ); - - // If the given "number" is actually an array or countable we will simply count the - // number of elements in an instance. This allows developers to pass an array of - // items without having to count it on their end first which gives bad syntax. - if (is_array($number) || $number instanceof Countable) { - $number = count($number); - } - - $replace['count'] = $number; - - return $this->makeReplacements( - $this->getSelector()->choose($line, $number, $locale), $replace - ); - } - - /** - * Get the proper locale for a choice operation. - * - * @param string|null $locale - * @return string - */ - protected function localeForChoice($locale) - { - return $locale ?: $this->locale ?: $this->fallback; - } - - /** - * Retrieve a language line out the loaded array. - * - * @param string $namespace - * @param string $group - * @param string $locale - * @param string $item - * @param array $replace - * @return string|array|null - */ - protected function getLine($namespace, $group, $locale, $item, array $replace) - { - $this->load($namespace, $group, $locale); - - $line = Arr::get($this->loaded[$namespace][$group][$locale], $item); - - if (is_string($line)) { - return $this->makeReplacements($line, $replace); - } elseif (is_array($line) && count($line) > 0) { - return $line; - } - } - - /** - * Make the place-holder replacements on a line. - * - * @param string $line - * @param array $replace - * @return string - */ - protected function makeReplacements($line, array $replace) - { - if (empty($replace)) { - return $line; - } - - $replace = $this->sortReplacements($replace); - - foreach ($replace as $key => $value) { - $line = str_replace( - [':'.$key, ':'.Str::upper($key), ':'.Str::ucfirst($key)], - [$value, Str::upper($value), Str::ucfirst($value)], - $line - ); - } - - return $line; - } - - /** - * Sort the replacements array. - * - * @param array $replace - * @return array - */ - protected function sortReplacements(array $replace) - { - return (new Collection($replace))->sortBy(function ($value, $key) { - return mb_strlen($key) * -1; - })->all(); - } - - /** - * Add translation lines to the given locale. - * - * @param array $lines - * @param string $locale - * @param string $namespace - * @return void - */ - public function addLines(array $lines, $locale, $namespace = '*') - { - foreach ($lines as $key => $value) { - list($group, $item) = explode('.', $key, 2); - - Arr::set($this->loaded, "$namespace.$group.$locale.$item", $value); - } - } - - /** - * Load the specified language group. - * - * @param string $namespace - * @param string $group - * @param string $locale - * @return void - */ - public function load($namespace, $group, $locale) - { - if ($this->isLoaded($namespace, $group, $locale)) { - return; - } - - // The loader is responsible for returning the array of language lines for the - // given namespace, group, and locale. We'll set the lines in this array of - // lines that have already been loaded so that we can easily access them. - $lines = $this->loader->load($locale, $group, $namespace); - - $this->loaded[$namespace][$group][$locale] = $lines; - } - - /** - * Determine if the given group has been loaded. - * - * @param string $namespace - * @param string $group - * @param string $locale - * @return bool - */ - protected function isLoaded($namespace, $group, $locale) - { - return isset($this->loaded[$namespace][$group][$locale]); - } - - /** - * Add a new namespace to the loader. - * - * @param string $namespace - * @param string $hint - * @return void - */ - public function addNamespace($namespace, $hint) - { - $this->loader->addNamespace($namespace, $hint); - } - - /** - * Add a new JSON path to the loader. - * - * @param string $path - * @return void - */ - public function addJsonPath($path) - { - $this->loader->addJsonPath($path); - } - - /** - * Parse a key into namespace, group, and item. - * - * @param string $key - * @return array - */ - public function parseKey($key) - { - $segments = parent::parseKey($key); - - if (is_null($segments[0])) { - $segments[0] = '*'; - } - - return $segments; - } - - /** - * Get the array of locales to be checked. - * - * @param string|null $locale - * @return array - */ - protected function localeArray($locale) - { - return array_filter([$locale ?: $this->locale, $this->fallback]); - } - - /** - * Get the message selector instance. - * - * @return \Illuminate\Translation\MessageSelector - */ - public function getSelector() - { - if (! isset($this->selector)) { - $this->selector = new MessageSelector; - } - - return $this->selector; - } - - /** - * Set the message selector instance. - * - * @param \Illuminate\Translation\MessageSelector $selector - * @return void - */ - public function setSelector(MessageSelector $selector) - { - $this->selector = $selector; - } - - /** - * Get the language line loader implementation. - * - * @return \Illuminate\Contracts\Translation\Loader - */ - public function getLoader() - { - return $this->loader; - } - - /** - * Get the default locale being used. - * - * @return string - */ - public function locale() - { - return $this->getLocale(); - } - - /** - * Get the default locale being used. - * - * @return string - */ - public function getLocale() - { - return $this->locale; - } - - /** - * Set the default locale. - * - * @param string $locale - * @return void - */ - public function setLocale($locale) - { - $this->locale = $locale; - } - - /** - * Get the fallback locale being used. - * - * @return string - */ - public function getFallback() - { - return $this->fallback; - } - - /** - * Set the fallback locale being used. - * - * @param string $fallback - * @return void - */ - public function setFallback($fallback) - { - $this->fallback = $fallback; - } - - /** - * Set the loaded translation groups. - * - * @param array $loaded - * @return void - */ - public function setLoaded(array $loaded) - { - $this->loaded = $loaded; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Translation/composer.json b/vendor/laravel/framework/src/Illuminate/Translation/composer.json deleted file mode 100755 index 4b01b280..00000000 --- a/vendor/laravel/framework/src/Illuminate/Translation/composer.json +++ /dev/null @@ -1,36 +0,0 @@ -{ - "name": "illuminate/translation", - "description": "The Illuminate Translation package.", - "license": "MIT", - "homepage": "https://laravel.com", - "support": { - "issues": "https://github.com/laravel/framework/issues", - "source": "https://github.com/laravel/framework" - }, - "authors": [ - { - "name": "Taylor Otwell", - "email": "taylor@laravel.com" - } - ], - "require": { - "php": "^7.1.3", - "illuminate/contracts": "5.6.*", - "illuminate/filesystem": "5.6.*", - "illuminate/support": "5.6.*" - }, - "autoload": { - "psr-4": { - "Illuminate\\Translation\\": "" - } - }, - "extra": { - "branch-alias": { - "dev-master": "5.6-dev" - } - }, - "config": { - "sort-packages": true - }, - "minimum-stability": "dev" -} diff --git a/vendor/laravel/framework/src/Illuminate/Validation/ClosureValidationRule.php b/vendor/laravel/framework/src/Illuminate/Validation/ClosureValidationRule.php deleted file mode 100644 index 8f247fc3..00000000 --- a/vendor/laravel/framework/src/Illuminate/Validation/ClosureValidationRule.php +++ /dev/null @@ -1,70 +0,0 @@ -callback = $callback; - } - - /** - * Determine if the validation rule passes. - * - * @param string $attribute - * @param mixed $value - * @return bool - */ - public function passes($attribute, $value) - { - $this->failed = false; - - $this->callback->__invoke($attribute, $value, function ($message) { - $this->failed = true; - - $this->message = $message; - }); - - return ! $this->failed; - } - - /** - * Get the validation error message. - * - * @return string - */ - public function message() - { - return $this->message; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Validation/Concerns/FormatsMessages.php b/vendor/laravel/framework/src/Illuminate/Validation/Concerns/FormatsMessages.php deleted file mode 100644 index 5744830d..00000000 --- a/vendor/laravel/framework/src/Illuminate/Validation/Concerns/FormatsMessages.php +++ /dev/null @@ -1,384 +0,0 @@ -getInlineMessage($attribute, $rule); - - // First we will retrieve the custom message for the validation rule if one - // exists. If a custom validation message is being used we'll return the - // custom message, otherwise we'll keep searching for a valid message. - if (! is_null($inlineMessage)) { - return $inlineMessage; - } - - $lowerRule = Str::snake($rule); - - $customMessage = $this->getCustomMessageFromTranslator( - $customKey = "validation.custom.{$attribute}.{$lowerRule}" - ); - - // First we check for a custom defined validation message for the attribute - // and rule. This allows the developer to specify specific messages for - // only some attributes and rules that need to get specially formed. - if ($customMessage !== $customKey) { - return $customMessage; - } - - // If the rule being validated is a "size" rule, we will need to gather the - // specific error message for the type of attribute being validated such - // as a number, file or string which all have different message types. - elseif (in_array($rule, $this->sizeRules)) { - return $this->getSizeMessage($attribute, $rule); - } - - // Finally, if no developer specified messages have been set, and no other - // special messages apply for this rule, we will just pull the default - // messages out of the translator service for this validation rule. - $key = "validation.{$lowerRule}"; - - if ($key != ($value = $this->translator->trans($key))) { - return $value; - } - - return $this->getFromLocalArray( - $attribute, $lowerRule, $this->fallbackMessages - ) ?: $key; - } - - /** - * Get the proper inline error message for standard and size rules. - * - * @param string $attribute - * @param string $rule - * @return string|null - */ - protected function getInlineMessage($attribute, $rule) - { - $inlineEntry = $this->getFromLocalArray($attribute, Str::snake($rule)); - - return is_array($inlineEntry) && in_array($rule, $this->sizeRules) - ? $inlineEntry[$this->getAttributeType($attribute)] - : $inlineEntry; - } - - /** - * Get the inline message for a rule if it exists. - * - * @param string $attribute - * @param string $lowerRule - * @param array|null $source - * @return string|null - */ - protected function getFromLocalArray($attribute, $lowerRule, $source = null) - { - $source = $source ?: $this->customMessages; - - $keys = ["{$attribute}.{$lowerRule}", $lowerRule]; - - // First we will check for a custom message for an attribute specific rule - // message for the fields, then we will check for a general custom line - // that is not attribute specific. If we find either we'll return it. - foreach ($keys as $key) { - foreach (array_keys($source) as $sourceKey) { - if (Str::is($sourceKey, $key)) { - return $source[$sourceKey]; - } - } - } - } - - /** - * Get the custom error message from translator. - * - * @param string $key - * @return string - */ - protected function getCustomMessageFromTranslator($key) - { - if (($message = $this->translator->trans($key)) !== $key) { - return $message; - } - - // If an exact match was not found for the key, we will collapse all of these - // messages and loop through them and try to find a wildcard match for the - // given key. Otherwise, we will simply return the key's value back out. - $shortKey = preg_replace( - '/^validation\.custom\./', '', $key - ); - - return $this->getWildcardCustomMessages(Arr::dot( - (array) $this->translator->trans('validation.custom') - ), $shortKey, $key); - } - - /** - * Check the given messages for a wildcard key. - * - * @param array $messages - * @param string $search - * @param string $default - * @return string - */ - protected function getWildcardCustomMessages($messages, $search, $default) - { - foreach ($messages as $key => $message) { - if ($search === $key || (Str::contains($key, ['*']) && Str::is($key, $search))) { - return $message; - } - } - - return $default; - } - - /** - * Get the proper error message for an attribute and size rule. - * - * @param string $attribute - * @param string $rule - * @return string - */ - protected function getSizeMessage($attribute, $rule) - { - $lowerRule = Str::snake($rule); - - // There are three different types of size validations. The attribute may be - // either a number, file, or string so we will check a few things to know - // which type of value it is and return the correct line for that type. - $type = $this->getAttributeType($attribute); - - $key = "validation.{$lowerRule}.{$type}"; - - return $this->translator->trans($key); - } - - /** - * Get the data type of the given attribute. - * - * @param string $attribute - * @return string - */ - protected function getAttributeType($attribute) - { - // We assume that the attributes present in the file array are files so that - // means that if the attribute does not have a numeric rule and the files - // list doesn't have it we'll just consider it a string by elimination. - if ($this->hasRule($attribute, $this->numericRules)) { - return 'numeric'; - } elseif ($this->hasRule($attribute, ['Array'])) { - return 'array'; - } elseif ($this->getValue($attribute) instanceof UploadedFile) { - return 'file'; - } - - return 'string'; - } - - /** - * Replace all error message place-holders with actual values. - * - * @param string $message - * @param string $attribute - * @param string $rule - * @param array $parameters - * @return string - */ - public function makeReplacements($message, $attribute, $rule, $parameters) - { - $message = $this->replaceAttributePlaceholder( - $message, $this->getDisplayableAttribute($attribute) - ); - - $message = $this->replaceInputPlaceholder($message, $attribute); - - if (isset($this->replacers[Str::snake($rule)])) { - return $this->callReplacer($message, $attribute, Str::snake($rule), $parameters, $this); - } elseif (method_exists($this, $replacer = "replace{$rule}")) { - return $this->$replacer($message, $attribute, $rule, $parameters); - } - - return $message; - } - - /** - * Get the displayable name of the attribute. - * - * @param string $attribute - * @return string - */ - public function getDisplayableAttribute($attribute) - { - $primaryAttribute = $this->getPrimaryAttribute($attribute); - - $expectedAttributes = $attribute != $primaryAttribute - ? [$attribute, $primaryAttribute] : [$attribute]; - - foreach ($expectedAttributes as $name) { - // The developer may dynamically specify the array of custom attributes on this - // validator instance. If the attribute exists in this array it is used over - // the other ways of pulling the attribute name for this given attributes. - if (isset($this->customAttributes[$name])) { - return $this->customAttributes[$name]; - } - - // We allow for a developer to specify language lines for any attribute in this - // application, which allows flexibility for displaying a unique displayable - // version of the attribute name instead of the name used in an HTTP POST. - if ($line = $this->getAttributeFromTranslations($name)) { - return $line; - } - } - - // When no language line has been specified for the attribute and it is also - // an implicit attribute we will display the raw attribute's name and not - // modify it with any of these replacements before we display the name. - if (isset($this->implicitAttributes[$primaryAttribute])) { - return $attribute; - } - - return str_replace('_', ' ', Str::snake($attribute)); - } - - /** - * Get the given attribute from the attribute translations. - * - * @param string $name - * @return string - */ - protected function getAttributeFromTranslations($name) - { - return Arr::get($this->translator->trans('validation.attributes'), $name); - } - - /** - * Replace the :attribute placeholder in the given message. - * - * @param string $message - * @param string $value - * @return string - */ - protected function replaceAttributePlaceholder($message, $value) - { - return str_replace( - [':attribute', ':ATTRIBUTE', ':Attribute'], - [$value, Str::upper($value), Str::ucfirst($value)], - $message - ); - } - - /** - * Replace the :input placeholder in the given message. - * - * @param string $message - * @param string $attribute - * @return string - */ - protected function replaceInputPlaceholder($message, $attribute) - { - $actualValue = $this->getValue($attribute); - - if (is_scalar($actualValue) || is_null($actualValue)) { - $message = str_replace(':input', $actualValue, $message); - } - - return $message; - } - - /** - * Get the displayable name of the value. - * - * @param string $attribute - * @param mixed $value - * @return string - */ - public function getDisplayableValue($attribute, $value) - { - if (isset($this->customValues[$attribute][$value])) { - return $this->customValues[$attribute][$value]; - } - - $key = "validation.values.{$attribute}.{$value}"; - - if (($line = $this->translator->trans($key)) !== $key) { - return $line; - } - - return $value; - } - - /** - * Transform an array of attributes to their displayable form. - * - * @param array $values - * @return array - */ - protected function getAttributeList(array $values) - { - $attributes = []; - - // For each attribute in the list we will simply get its displayable form as - // this is convenient when replacing lists of parameters like some of the - // replacement functions do when formatting out the validation message. - foreach ($values as $key => $value) { - $attributes[$key] = $this->getDisplayableAttribute($value); - } - - return $attributes; - } - - /** - * Call a custom validator message replacer. - * - * @param string $message - * @param string $attribute - * @param string $rule - * @param array $parameters - * @param \Illuminate\Validation\Validator $validator - * @return string|null - */ - protected function callReplacer($message, $attribute, $rule, $parameters, $validator) - { - $callback = $this->replacers[$rule]; - - if ($callback instanceof Closure) { - return call_user_func_array($callback, func_get_args()); - } elseif (is_string($callback)) { - return $this->callClassBasedReplacer($callback, $message, $attribute, $rule, $parameters, $validator); - } - } - - /** - * Call a class based validator message replacer. - * - * @param string $callback - * @param string $message - * @param string $attribute - * @param string $rule - * @param array $parameters - * @param \Illuminate\Validation\Validator $validator - * @return string - */ - protected function callClassBasedReplacer($callback, $message, $attribute, $rule, $parameters, $validator) - { - list($class, $method) = Str::parseCallback($callback, 'replace'); - - return call_user_func_array([$this->container->make($class), $method], array_slice(func_get_args(), 1)); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Validation/Concerns/ReplacesAttributes.php b/vendor/laravel/framework/src/Illuminate/Validation/Concerns/ReplacesAttributes.php deleted file mode 100644 index 6ebdfddd..00000000 --- a/vendor/laravel/framework/src/Illuminate/Validation/Concerns/ReplacesAttributes.php +++ /dev/null @@ -1,442 +0,0 @@ -replaceSame($message, $attribute, $rule, $parameters); - } - - /** - * Replace all place-holders for the digits rule. - * - * @param string $message - * @param string $attribute - * @param string $rule - * @param array $parameters - * @return string - */ - protected function replaceDigits($message, $attribute, $rule, $parameters) - { - return str_replace(':digits', $parameters[0], $message); - } - - /** - * Replace all place-holders for the digits (between) rule. - * - * @param string $message - * @param string $attribute - * @param string $rule - * @param array $parameters - * @return string - */ - protected function replaceDigitsBetween($message, $attribute, $rule, $parameters) - { - return $this->replaceBetween($message, $attribute, $rule, $parameters); - } - - /** - * Replace all place-holders for the min rule. - * - * @param string $message - * @param string $attribute - * @param string $rule - * @param array $parameters - * @return string - */ - protected function replaceMin($message, $attribute, $rule, $parameters) - { - return str_replace(':min', $parameters[0], $message); - } - - /** - * Replace all place-holders for the max rule. - * - * @param string $message - * @param string $attribute - * @param string $rule - * @param array $parameters - * @return string - */ - protected function replaceMax($message, $attribute, $rule, $parameters) - { - return str_replace(':max', $parameters[0], $message); - } - - /** - * Replace all place-holders for the in rule. - * - * @param string $message - * @param string $attribute - * @param string $rule - * @param array $parameters - * @return string - */ - protected function replaceIn($message, $attribute, $rule, $parameters) - { - foreach ($parameters as &$parameter) { - $parameter = $this->getDisplayableValue($attribute, $parameter); - } - - return str_replace(':values', implode(', ', $parameters), $message); - } - - /** - * Replace all place-holders for the not_in rule. - * - * @param string $message - * @param string $attribute - * @param string $rule - * @param array $parameters - * @return string - */ - protected function replaceNotIn($message, $attribute, $rule, $parameters) - { - return $this->replaceIn($message, $attribute, $rule, $parameters); - } - - /** - * Replace all place-holders for the in_array rule. - * - * @param string $message - * @param string $attribute - * @param string $rule - * @param array $parameters - * @return string - */ - protected function replaceInArray($message, $attribute, $rule, $parameters) - { - return str_replace(':other', $this->getDisplayableAttribute($parameters[0]), $message); - } - - /** - * Replace all place-holders for the mimetypes rule. - * - * @param string $message - * @param string $attribute - * @param string $rule - * @param array $parameters - * @return string - */ - protected function replaceMimetypes($message, $attribute, $rule, $parameters) - { - return str_replace(':values', implode(', ', $parameters), $message); - } - - /** - * Replace all place-holders for the mimes rule. - * - * @param string $message - * @param string $attribute - * @param string $rule - * @param array $parameters - * @return string - */ - protected function replaceMimes($message, $attribute, $rule, $parameters) - { - return str_replace(':values', implode(', ', $parameters), $message); - } - - /** - * Replace all place-holders for the required_with rule. - * - * @param string $message - * @param string $attribute - * @param string $rule - * @param array $parameters - * @return string - */ - protected function replaceRequiredWith($message, $attribute, $rule, $parameters) - { - return str_replace(':values', implode(' / ', $this->getAttributeList($parameters)), $message); - } - - /** - * Replace all place-holders for the required_with_all rule. - * - * @param string $message - * @param string $attribute - * @param string $rule - * @param array $parameters - * @return string - */ - protected function replaceRequiredWithAll($message, $attribute, $rule, $parameters) - { - return $this->replaceRequiredWith($message, $attribute, $rule, $parameters); - } - - /** - * Replace all place-holders for the required_without rule. - * - * @param string $message - * @param string $attribute - * @param string $rule - * @param array $parameters - * @return string - */ - protected function replaceRequiredWithout($message, $attribute, $rule, $parameters) - { - return $this->replaceRequiredWith($message, $attribute, $rule, $parameters); - } - - /** - * Replace all place-holders for the required_without_all rule. - * - * @param string $message - * @param string $attribute - * @param string $rule - * @param array $parameters - * @return string - */ - protected function replaceRequiredWithoutAll($message, $attribute, $rule, $parameters) - { - return $this->replaceRequiredWith($message, $attribute, $rule, $parameters); - } - - /** - * Replace all place-holders for the size rule. - * - * @param string $message - * @param string $attribute - * @param string $rule - * @param array $parameters - * @return string - */ - protected function replaceSize($message, $attribute, $rule, $parameters) - { - return str_replace(':size', $parameters[0], $message); - } - - /** - * Replace all place-holders for the gt rule. - * - * @param string $message - * @param string $attribute - * @param string $rule - * @param array $parameters - * @return string - */ - protected function replaceGt($message, $attribute, $rule, $parameters) - { - return str_replace(':value', $this->getSize($parameters[0], $this->getValue($parameters[0])), $message); - } - - /** - * Replace all place-holders for the lt rule. - * - * @param string $message - * @param string $attribute - * @param string $rule - * @param array $parameters - * @return string - */ - protected function replaceLt($message, $attribute, $rule, $parameters) - { - return str_replace(':value', $this->getSize($parameters[0], $this->getValue($parameters[0])), $message); - } - - /** - * Replace all place-holders for the gte rule. - * - * @param string $message - * @param string $attribute - * @param string $rule - * @param array $parameters - * @return string - */ - protected function replaceGte($message, $attribute, $rule, $parameters) - { - return str_replace(':value', $this->getSize($parameters[0], $this->getValue($parameters[0])), $message); - } - - /** - * Replace all place-holders for the lte rule. - * - * @param string $message - * @param string $attribute - * @param string $rule - * @param array $parameters - * @return string - */ - protected function replaceLte($message, $attribute, $rule, $parameters) - { - return str_replace(':value', $this->getSize($parameters[0], $this->getValue($parameters[0])), $message); - } - - /** - * Replace all place-holders for the required_if rule. - * - * @param string $message - * @param string $attribute - * @param string $rule - * @param array $parameters - * @return string - */ - protected function replaceRequiredIf($message, $attribute, $rule, $parameters) - { - $parameters[1] = $this->getDisplayableValue($parameters[0], Arr::get($this->data, $parameters[0])); - - $parameters[0] = $this->getDisplayableAttribute($parameters[0]); - - return str_replace([':other', ':value'], $parameters, $message); - } - - /** - * Replace all place-holders for the required_unless rule. - * - * @param string $message - * @param string $attribute - * @param string $rule - * @param array $parameters - * @return string - */ - protected function replaceRequiredUnless($message, $attribute, $rule, $parameters) - { - $other = $this->getDisplayableAttribute($parameters[0]); - - $values = []; - - foreach (array_slice($parameters, 1) as $value) { - $values[] = $this->getDisplayableValue($parameters[0], $value); - } - - return str_replace([':other', ':values'], [$other, implode(', ', $values)], $message); - } - - /** - * Replace all place-holders for the same rule. - * - * @param string $message - * @param string $attribute - * @param string $rule - * @param array $parameters - * @return string - */ - protected function replaceSame($message, $attribute, $rule, $parameters) - { - return str_replace(':other', $this->getDisplayableAttribute($parameters[0]), $message); - } - - /** - * Replace all place-holders for the before rule. - * - * @param string $message - * @param string $attribute - * @param string $rule - * @param array $parameters - * @return string - */ - protected function replaceBefore($message, $attribute, $rule, $parameters) - { - if (! (strtotime($parameters[0]))) { - return str_replace(':date', $this->getDisplayableAttribute($parameters[0]), $message); - } - - return str_replace(':date', $parameters[0], $message); - } - - /** - * Replace all place-holders for the before_or_equal rule. - * - * @param string $message - * @param string $attribute - * @param string $rule - * @param array $parameters - * @return string - */ - protected function replaceBeforeOrEqual($message, $attribute, $rule, $parameters) - { - return $this->replaceBefore($message, $attribute, $rule, $parameters); - } - - /** - * Replace all place-holders for the after rule. - * - * @param string $message - * @param string $attribute - * @param string $rule - * @param array $parameters - * @return string - */ - protected function replaceAfter($message, $attribute, $rule, $parameters) - { - return $this->replaceBefore($message, $attribute, $rule, $parameters); - } - - /** - * Replace all place-holders for the after_or_equal rule. - * - * @param string $message - * @param string $attribute - * @param string $rule - * @param array $parameters - * @return string - */ - protected function replaceAfterOrEqual($message, $attribute, $rule, $parameters) - { - return $this->replaceBefore($message, $attribute, $rule, $parameters); - } - - /** - * Replace all place-holders for the dimensions rule. - * - * @param string $message - * @param string $attribute - * @param string $rule - * @param array $parameters - * @return string - */ - protected function replaceDimensions($message, $attribute, $rule, $parameters) - { - $parameters = $this->parseNamedParameters($parameters); - - if (is_array($parameters)) { - foreach ($parameters as $key => $value) { - $message = str_replace(':'.$key, $value, $message); - } - } - - return $message; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Validation/Concerns/ValidatesAttributes.php b/vendor/laravel/framework/src/Illuminate/Validation/Concerns/ValidatesAttributes.php deleted file mode 100644 index 6ffc5d53..00000000 --- a/vendor/laravel/framework/src/Illuminate/Validation/Concerns/ValidatesAttributes.php +++ /dev/null @@ -1,1677 +0,0 @@ -validateRequired($attribute, $value) && in_array($value, $acceptable, true); - } - - /** - * Validate that an attribute is an active URL. - * - * @param string $attribute - * @param mixed $value - * @return bool - */ - public function validateActiveUrl($attribute, $value) - { - if (! is_string($value)) { - return false; - } - - if ($url = parse_url($value, PHP_URL_HOST)) { - try { - return count(dns_get_record($url, DNS_A | DNS_AAAA)) > 0; - } catch (Exception $e) { - return false; - } - } - - return false; - } - - /** - * "Break" on first validation fail. - * - * Always returns true, just lets us put "bail" in rules. - * - * @return bool - */ - public function validateBail() - { - return true; - } - - /** - * Validate the date is before a given date. - * - * @param string $attribute - * @param mixed $value - * @param array $parameters - * @return bool - */ - public function validateBefore($attribute, $value, $parameters) - { - $this->requireParameterCount(1, $parameters, 'before'); - - return $this->compareDates($attribute, $value, $parameters, '<'); - } - - /** - * Validate the date is before or equal a given date. - * - * @param string $attribute - * @param mixed $value - * @param array $parameters - * @return bool - */ - public function validateBeforeOrEqual($attribute, $value, $parameters) - { - $this->requireParameterCount(1, $parameters, 'before_or_equal'); - - return $this->compareDates($attribute, $value, $parameters, '<='); - } - - /** - * Validate the date is after a given date. - * - * @param string $attribute - * @param mixed $value - * @param array $parameters - * @return bool - */ - public function validateAfter($attribute, $value, $parameters) - { - $this->requireParameterCount(1, $parameters, 'after'); - - return $this->compareDates($attribute, $value, $parameters, '>'); - } - - /** - * Validate the date is equal or after a given date. - * - * @param string $attribute - * @param mixed $value - * @param array $parameters - * @return bool - */ - public function validateAfterOrEqual($attribute, $value, $parameters) - { - $this->requireParameterCount(1, $parameters, 'after_or_equal'); - - return $this->compareDates($attribute, $value, $parameters, '>='); - } - - /** - * Compare a given date against another using an operator. - * - * @param string $attribute - * @param mixed $value - * @param array $parameters - * @param string $operator - * @return bool - */ - protected function compareDates($attribute, $value, $parameters, $operator) - { - if (! is_string($value) && ! is_numeric($value) && ! $value instanceof DateTimeInterface) { - return false; - } - - if ($format = $this->getDateFormat($attribute)) { - return $this->checkDateTimeOrder($format, $value, $parameters[0], $operator); - } - - if (! $date = $this->getDateTimestamp($parameters[0])) { - $date = $this->getDateTimestamp($this->getValue($parameters[0])); - } - - return $this->compare($this->getDateTimestamp($value), $date, $operator); - } - - /** - * Get the date format for an attribute if it has one. - * - * @param string $attribute - * @return string|null - */ - protected function getDateFormat($attribute) - { - if ($result = $this->getRule($attribute, 'DateFormat')) { - return $result[1][0]; - } - } - - /** - * Get the date timestamp. - * - * @param mixed $value - * @return int - */ - protected function getDateTimestamp($value) - { - if ($value instanceof DateTimeInterface) { - return $value->getTimestamp(); - } - - if ($this->isTestingRelativeDateTime($value)) { - $date = $this->getDateTime($value); - - if (! is_null($date)) { - return $date->getTimestamp(); - } - } - - return strtotime($value); - } - - /** - * Given two date/time strings, check that one is after the other. - * - * @param string $format - * @param string $first - * @param string $second - * @param string $operator - * @return bool - */ - protected function checkDateTimeOrder($format, $first, $second, $operator) - { - $firstDate = $this->getDateTimeWithOptionalFormat($format, $first); - - if (! $secondDate = $this->getDateTimeWithOptionalFormat($format, $second)) { - $secondDate = $this->getDateTimeWithOptionalFormat($format, $this->getValue($second)); - } - - return ($firstDate && $secondDate) && ($this->compare($firstDate, $secondDate, $operator)); - } - - /** - * Get a DateTime instance from a string. - * - * @param string $format - * @param string $value - * @return \DateTime|null - */ - protected function getDateTimeWithOptionalFormat($format, $value) - { - if ($date = DateTime::createFromFormat('!'.$format, $value)) { - return $date; - } - - return $this->getDateTime($value); - } - - /** - * Get a DateTime instance from a string with no format. - * - * @param string $value - * @return \DateTime|null - */ - protected function getDateTime($value) - { - try { - if ($this->isTestingRelativeDateTime($value)) { - return new Carbon($value); - } - - return new DateTime($value); - } catch (Exception $e) { - // - } - } - - /** - * Check if the given value should be adjusted to Carbon::getTestNow(). - * - * @param mixed $value - * @return bool - */ - protected function isTestingRelativeDateTime($value) - { - return Carbon::hasTestNow() && is_string($value) && ( - $value === 'now' || Carbon::hasRelativeKeywords($value) - ); - } - - /** - * Validate that an attribute contains only alphabetic characters. - * - * @param string $attribute - * @param mixed $value - * @return bool - */ - public function validateAlpha($attribute, $value) - { - return is_string($value) && preg_match('/^[\pL\pM]+$/u', $value); - } - - /** - * Validate that an attribute contains only alpha-numeric characters, dashes, and underscores. - * - * @param string $attribute - * @param mixed $value - * @return bool - */ - public function validateAlphaDash($attribute, $value) - { - if (! is_string($value) && ! is_numeric($value)) { - return false; - } - - return preg_match('/^[\pL\pM\pN_-]+$/u', $value) > 0; - } - - /** - * Validate that an attribute contains only alpha-numeric characters. - * - * @param string $attribute - * @param mixed $value - * @return bool - */ - public function validateAlphaNum($attribute, $value) - { - if (! is_string($value) && ! is_numeric($value)) { - return false; - } - - return preg_match('/^[\pL\pM\pN]+$/u', $value) > 0; - } - - /** - * Validate that an attribute is an array. - * - * @param string $attribute - * @param mixed $value - * @return bool - */ - public function validateArray($attribute, $value) - { - return is_array($value); - } - - /** - * Validate the size of an attribute is between a set of values. - * - * @param string $attribute - * @param mixed $value - * @param array $parameters - * @return bool - */ - public function validateBetween($attribute, $value, $parameters) - { - $this->requireParameterCount(2, $parameters, 'between'); - - $size = $this->getSize($attribute, $value); - - return $size >= $parameters[0] && $size <= $parameters[1]; - } - - /** - * Validate that an attribute is a boolean. - * - * @param string $attribute - * @param mixed $value - * @return bool - */ - public function validateBoolean($attribute, $value) - { - $acceptable = [true, false, 0, 1, '0', '1']; - - return in_array($value, $acceptable, true); - } - - /** - * Validate that an attribute has a matching confirmation. - * - * @param string $attribute - * @param mixed $value - * @return bool - */ - public function validateConfirmed($attribute, $value) - { - return $this->validateSame($attribute, $value, [$attribute.'_confirmation']); - } - - /** - * Validate that an attribute is a valid date. - * - * @param string $attribute - * @param mixed $value - * @return bool - */ - public function validateDate($attribute, $value) - { - if ($value instanceof DateTimeInterface) { - return true; - } - - if ((! is_string($value) && ! is_numeric($value)) || strtotime($value) === false) { - return false; - } - - $date = date_parse($value); - - return checkdate($date['month'], $date['day'], $date['year']); - } - - /** - * Validate that an attribute matches a date format. - * - * @param string $attribute - * @param mixed $value - * @param array $parameters - * @return bool - */ - public function validateDateFormat($attribute, $value, $parameters) - { - $this->requireParameterCount(1, $parameters, 'date_format'); - - if (! is_string($value) && ! is_numeric($value)) { - return false; - } - - $format = $parameters[0]; - - $date = DateTime::createFromFormat('!'.$format, $value); - - return $date && $date->format($format) == $value; - } - - /** - * Validate that an attribute is equal to another date. - * - * @param string $attribute - * @param mixed $value - * @param array $parameters - * @return bool - */ - public function validateDateEquals($attribute, $value, $parameters) - { - $this->requireParameterCount(1, $parameters, 'date_equals'); - - return $this->compareDates($attribute, $value, $parameters, '='); - } - - /** - * Validate that an attribute is different from another attribute. - * - * @param string $attribute - * @param mixed $value - * @param array $parameters - * @return bool - */ - public function validateDifferent($attribute, $value, $parameters) - { - $this->requireParameterCount(1, $parameters, 'different'); - - foreach ($parameters as $parameter) { - $other = Arr::get($this->data, $parameter); - - if (is_null($other) || $value === $other) { - return false; - } - } - - return true; - } - - /** - * Validate that an attribute has a given number of digits. - * - * @param string $attribute - * @param mixed $value - * @param array $parameters - * @return bool - */ - public function validateDigits($attribute, $value, $parameters) - { - $this->requireParameterCount(1, $parameters, 'digits'); - - return ! preg_match('/[^0-9]/', $value) - && strlen((string) $value) == $parameters[0]; - } - - /** - * Validate that an attribute is between a given number of digits. - * - * @param string $attribute - * @param mixed $value - * @param array $parameters - * @return bool - */ - public function validateDigitsBetween($attribute, $value, $parameters) - { - $this->requireParameterCount(2, $parameters, 'digits_between'); - - $length = strlen((string) $value); - - return ! preg_match('/[^0-9]/', $value) - && $length >= $parameters[0] && $length <= $parameters[1]; - } - - /** - * Validate the dimensions of an image matches the given values. - * - * @param string $attribute - * @param mixed $value - * @param array $parameters - * @return bool - */ - public function validateDimensions($attribute, $value, $parameters) - { - if ($this->isValidFileInstance($value) && $value->getClientMimeType() == 'image/svg+xml') { - return true; - } - - if (! $this->isValidFileInstance($value) || ! $sizeDetails = @getimagesize($value->getRealPath())) { - return false; - } - - $this->requireParameterCount(1, $parameters, 'dimensions'); - - list($width, $height) = $sizeDetails; - - $parameters = $this->parseNamedParameters($parameters); - - if ($this->failsBasicDimensionChecks($parameters, $width, $height) || - $this->failsRatioCheck($parameters, $width, $height)) { - return false; - } - - return true; - } - - /** - * Test if the given width and height fail any conditions. - * - * @param array $parameters - * @param int $width - * @param int $height - * @return bool - */ - protected function failsBasicDimensionChecks($parameters, $width, $height) - { - return (isset($parameters['width']) && $parameters['width'] != $width) || - (isset($parameters['min_width']) && $parameters['min_width'] > $width) || - (isset($parameters['max_width']) && $parameters['max_width'] < $width) || - (isset($parameters['height']) && $parameters['height'] != $height) || - (isset($parameters['min_height']) && $parameters['min_height'] > $height) || - (isset($parameters['max_height']) && $parameters['max_height'] < $height); - } - - /** - * Determine if the given parameters fail a dimension ratio check. - * - * @param array $parameters - * @param int $width - * @param int $height - * @return bool - */ - protected function failsRatioCheck($parameters, $width, $height) - { - if (! isset($parameters['ratio'])) { - return false; - } - - list($numerator, $denominator) = array_replace( - [1, 1], array_filter(sscanf($parameters['ratio'], '%f/%d')) - ); - - $precision = 1 / max($width, $height); - - return abs($numerator / $denominator - $width / $height) > $precision; - } - - /** - * Validate an attribute is unique among other values. - * - * @param string $attribute - * @param mixed $value - * @param array $parameters - * @return bool - */ - public function validateDistinct($attribute, $value, $parameters) - { - $attributeName = $this->getPrimaryAttribute($attribute); - - $attributeData = ValidationData::extractDataFromPath( - ValidationData::getLeadingExplicitAttributePath($attributeName), $this->data - ); - - $pattern = str_replace('\*', '[^.]+', preg_quote($attributeName, '#')); - - $data = Arr::where(Arr::dot($attributeData), function ($value, $key) use ($attribute, $pattern) { - return $key != $attribute && (bool) preg_match('#^'.$pattern.'\z#u', $key); - }); - - if (in_array('ignore_case', $parameters)) { - return empty(preg_grep('/^'.preg_quote($value, '/').'$/iu', $data)); - } - - return ! in_array($value, array_values($data)); - } - - /** - * Validate that an attribute is a valid e-mail address. - * - * @param string $attribute - * @param mixed $value - * @return bool - */ - public function validateEmail($attribute, $value) - { - return filter_var($value, FILTER_VALIDATE_EMAIL) !== false; - } - - /** - * Validate the existence of an attribute value in a database table. - * - * @param string $attribute - * @param mixed $value - * @param array $parameters - * @return bool - */ - public function validateExists($attribute, $value, $parameters) - { - $this->requireParameterCount(1, $parameters, 'exists'); - - list($connection, $table) = $this->parseTable($parameters[0]); - - // The second parameter position holds the name of the column that should be - // verified as existing. If this parameter is not specified we will guess - // that the columns being "verified" shares the given attribute's name. - $column = $this->getQueryColumn($parameters, $attribute); - - $expected = (is_array($value)) ? count($value) : 1; - - return $this->getExistCount( - $connection, $table, $column, $value, $parameters - ) >= $expected; - } - - /** - * Get the number of records that exist in storage. - * - * @param mixed $connection - * @param string $table - * @param string $column - * @param mixed $value - * @param array $parameters - * @return int - */ - protected function getExistCount($connection, $table, $column, $value, $parameters) - { - $verifier = $this->getPresenceVerifierFor($connection); - - $extra = $this->getExtraConditions( - array_values(array_slice($parameters, 2)) - ); - - if ($this->currentRule instanceof Exists) { - $extra = array_merge($extra, $this->currentRule->queryCallbacks()); - } - - return is_array($value) - ? $verifier->getMultiCount($table, $column, $value, $extra) - : $verifier->getCount($table, $column, $value, null, null, $extra); - } - - /** - * Validate the uniqueness of an attribute value on a given database table. - * - * If a database column is not specified, the attribute will be used. - * - * @param string $attribute - * @param mixed $value - * @param array $parameters - * @return bool - */ - public function validateUnique($attribute, $value, $parameters) - { - $this->requireParameterCount(1, $parameters, 'unique'); - - list($connection, $table) = $this->parseTable($parameters[0]); - - // The second parameter position holds the name of the column that needs to - // be verified as unique. If this parameter isn't specified we will just - // assume that this column to be verified shares the attribute's name. - $column = $this->getQueryColumn($parameters, $attribute); - - list($idColumn, $id) = [null, null]; - - if (isset($parameters[2])) { - list($idColumn, $id) = $this->getUniqueIds($parameters); - } - - // The presence verifier is responsible for counting rows within this store - // mechanism which might be a relational database or any other permanent - // data store like Redis, etc. We will use it to determine uniqueness. - $verifier = $this->getPresenceVerifierFor($connection); - - $extra = $this->getUniqueExtra($parameters); - - if ($this->currentRule instanceof Unique) { - $extra = array_merge($extra, $this->currentRule->queryCallbacks()); - } - - return $verifier->getCount( - $table, $column, $value, $id, $idColumn, $extra - ) == 0; - } - - /** - * Get the excluded ID column and value for the unique rule. - * - * @param array $parameters - * @return array - */ - protected function getUniqueIds($parameters) - { - $idColumn = $parameters[3] ?? 'id'; - - return [$idColumn, $this->prepareUniqueId($parameters[2])]; - } - - /** - * Prepare the given ID for querying. - * - * @param mixed $id - * @return int - */ - protected function prepareUniqueId($id) - { - if (preg_match('/\[(.*)\]/', $id, $matches)) { - $id = $this->getValue($matches[1]); - } - - if (strtolower($id) == 'null') { - $id = null; - } - - if (filter_var($id, FILTER_VALIDATE_INT) !== false) { - $id = (int) $id; - } - - return $id; - } - - /** - * Get the extra conditions for a unique rule. - * - * @param array $parameters - * @return array - */ - protected function getUniqueExtra($parameters) - { - if (isset($parameters[4])) { - return $this->getExtraConditions(array_slice($parameters, 4)); - } - - return []; - } - - /** - * Parse the connection / table for the unique / exists rules. - * - * @param string $table - * @return array - */ - protected function parseTable($table) - { - return Str::contains($table, '.') ? explode('.', $table, 2) : [null, $table]; - } - - /** - * Get the column name for an exists / unique query. - * - * @param array $parameters - * @param string $attribute - * @return bool - */ - protected function getQueryColumn($parameters, $attribute) - { - return isset($parameters[1]) && $parameters[1] !== 'NULL' - ? $parameters[1] : $this->guessColumnForQuery($attribute); - } - - /** - * Guess the database column from the given attribute name. - * - * @param string $attribute - * @return string - */ - public function guessColumnForQuery($attribute) - { - if (in_array($attribute, Arr::collapse($this->implicitAttributes)) - && ! is_numeric($last = last(explode('.', $attribute)))) { - return $last; - } - - return $attribute; - } - - /** - * Get the extra conditions for a unique / exists rule. - * - * @param array $segments - * @return array - */ - protected function getExtraConditions(array $segments) - { - $extra = []; - - $count = count($segments); - - for ($i = 0; $i < $count; $i += 2) { - $extra[$segments[$i]] = $segments[$i + 1]; - } - - return $extra; - } - - /** - * Validate the given value is a valid file. - * - * @param string $attribute - * @param mixed $value - * @return bool - */ - public function validateFile($attribute, $value) - { - return $this->isValidFileInstance($value); - } - - /** - * Validate the given attribute is filled if it is present. - * - * @param string $attribute - * @param mixed $value - * @return bool - */ - public function validateFilled($attribute, $value) - { - if (Arr::has($this->data, $attribute)) { - return $this->validateRequired($attribute, $value); - } - - return true; - } - - /** - * Validate that an attribute is greater than another attribute. - * - * @param string $attribute - * @param mixed $value - * @param array $parameters - * @return bool - */ - public function validateGt($attribute, $value, $parameters) - { - $this->requireParameterCount(1, $parameters, 'gt'); - - $comparedToValue = $this->getValue($parameters[0]); - - $this->shouldBeNumeric($attribute, 'Gt'); - - if (is_null($comparedToValue) && (is_numeric($value) && is_numeric($parameters[0]))) { - return $this->getSize($attribute, $value) > $parameters[0]; - } - - $this->requireSameType($value, $comparedToValue); - - return $this->getSize($attribute, $value) > $this->getSize($attribute, $comparedToValue); - } - - /** - * Validate that an attribute is less than another attribute. - * - * @param string $attribute - * @param mixed $value - * @param array $parameters - * @return bool - */ - public function validateLt($attribute, $value, $parameters) - { - $this->requireParameterCount(1, $parameters, 'lt'); - - $comparedToValue = $this->getValue($parameters[0]); - - $this->shouldBeNumeric($attribute, 'Lt'); - - if (is_null($comparedToValue) && (is_numeric($value) && is_numeric($parameters[0]))) { - return $this->getSize($attribute, $value) < $parameters[0]; - } - - $this->requireSameType($value, $comparedToValue); - - return $this->getSize($attribute, $value) < $this->getSize($attribute, $comparedToValue); - } - - /** - * Validate that an attribute is greater than or equal another attribute. - * - * @param string $attribute - * @param mixed $value - * @param array $parameters - * @return bool - */ - public function validateGte($attribute, $value, $parameters) - { - $this->requireParameterCount(1, $parameters, 'gte'); - - $comparedToValue = $this->getValue($parameters[0]); - - $this->shouldBeNumeric($attribute, 'Gte'); - - if (is_null($comparedToValue) && (is_numeric($value) && is_numeric($parameters[0]))) { - return $this->getSize($attribute, $value) >= $parameters[0]; - } - - $this->requireSameType($value, $comparedToValue); - - return $this->getSize($attribute, $value) >= $this->getSize($attribute, $comparedToValue); - } - - /** - * Validate that an attribute is less than or equal another attribute. - * - * @param string $attribute - * @param mixed $value - * @param array $parameters - * @return bool - */ - public function validateLte($attribute, $value, $parameters) - { - $this->requireParameterCount(1, $parameters, 'lte'); - - $comparedToValue = $this->getValue($parameters[0]); - - $this->shouldBeNumeric($attribute, 'Lte'); - - if (is_null($comparedToValue) && (is_numeric($value) && is_numeric($parameters[0]))) { - return $this->getSize($attribute, $value) <= $parameters[0]; - } - - $this->requireSameType($value, $comparedToValue); - - return $this->getSize($attribute, $value) <= $this->getSize($attribute, $comparedToValue); - } - - /** - * Validate the MIME type of a file is an image MIME type. - * - * @param string $attribute - * @param mixed $value - * @return bool - */ - public function validateImage($attribute, $value) - { - return $this->validateMimes($attribute, $value, ['jpeg', 'png', 'gif', 'bmp', 'svg']); - } - - /** - * Validate an attribute is contained within a list of values. - * - * @param string $attribute - * @param mixed $value - * @param array $parameters - * @return bool - */ - public function validateIn($attribute, $value, $parameters) - { - if (is_array($value) && $this->hasRule($attribute, 'Array')) { - foreach ($value as $element) { - if (is_array($element)) { - return false; - } - } - - return count(array_diff($value, $parameters)) == 0; - } - - return ! is_array($value) && in_array((string) $value, $parameters); - } - - /** - * Validate that the values of an attribute is in another attribute. - * - * @param string $attribute - * @param mixed $value - * @param array $parameters - * @return bool - */ - public function validateInArray($attribute, $value, $parameters) - { - $this->requireParameterCount(1, $parameters, 'in_array'); - - $explicitPath = ValidationData::getLeadingExplicitAttributePath($parameters[0]); - - $attributeData = ValidationData::extractDataFromPath($explicitPath, $this->data); - - $otherValues = Arr::where(Arr::dot($attributeData), function ($value, $key) use ($parameters) { - return Str::is($parameters[0], $key); - }); - - return in_array($value, $otherValues); - } - - /** - * Validate that an attribute is an integer. - * - * @param string $attribute - * @param mixed $value - * @return bool - */ - public function validateInteger($attribute, $value) - { - return filter_var($value, FILTER_VALIDATE_INT) !== false; - } - - /** - * Validate that an attribute is a valid IP. - * - * @param string $attribute - * @param mixed $value - * @return bool - */ - public function validateIp($attribute, $value) - { - return filter_var($value, FILTER_VALIDATE_IP) !== false; - } - - /** - * Validate that an attribute is a valid IPv4. - * - * @param string $attribute - * @param mixed $value - * @return bool - */ - public function validateIpv4($attribute, $value) - { - return filter_var($value, FILTER_VALIDATE_IP, FILTER_FLAG_IPV4) !== false; - } - - /** - * Validate that an attribute is a valid IPv6. - * - * @param string $attribute - * @param mixed $value - * @return bool - */ - public function validateIpv6($attribute, $value) - { - return filter_var($value, FILTER_VALIDATE_IP, FILTER_FLAG_IPV6) !== false; - } - - /** - * Validate the attribute is a valid JSON string. - * - * @param string $attribute - * @param mixed $value - * @return bool - */ - public function validateJson($attribute, $value) - { - if (! is_scalar($value) && ! method_exists($value, '__toString')) { - return false; - } - - json_decode($value); - - return json_last_error() === JSON_ERROR_NONE; - } - - /** - * Validate the size of an attribute is less than a maximum value. - * - * @param string $attribute - * @param mixed $value - * @param array $parameters - * @return bool - */ - public function validateMax($attribute, $value, $parameters) - { - $this->requireParameterCount(1, $parameters, 'max'); - - if ($value instanceof UploadedFile && ! $value->isValid()) { - return false; - } - - return $this->getSize($attribute, $value) <= $parameters[0]; - } - - /** - * Validate the guessed extension of a file upload is in a set of file extensions. - * - * @param string $attribute - * @param mixed $value - * @param array $parameters - * @return bool - */ - public function validateMimes($attribute, $value, $parameters) - { - if (! $this->isValidFileInstance($value)) { - return false; - } - - if ($this->shouldBlockPhpUpload($value, $parameters)) { - return false; - } - - return $value->getPath() !== '' && in_array($value->guessExtension(), $parameters); - } - - /** - * Validate the MIME type of a file upload attribute is in a set of MIME types. - * - * @param string $attribute - * @param mixed $value - * @param array $parameters - * @return bool - */ - public function validateMimetypes($attribute, $value, $parameters) - { - if (! $this->isValidFileInstance($value)) { - return false; - } - - if ($this->shouldBlockPhpUpload($value, $parameters)) { - return false; - } - - return $value->getPath() !== '' && - (in_array($value->getMimeType(), $parameters) || - in_array(explode('/', $value->getMimeType())[0].'/*', $parameters)); - } - - /** - * Check if PHP uploads are explicitly allowed. - * - * @param mixed $value - * @param array $parameters - * @return bool - */ - protected function shouldBlockPhpUpload($value, $parameters) - { - if (in_array('php', $parameters)) { - return false; - } - - $phpExtensions = [ - 'php', 'php3', 'php4', 'php5', 'phtml', - ]; - - return ($value instanceof UploadedFile) - ? in_array(trim(strtolower($value->getClientOriginalExtension())), $phpExtensions) - : in_array(trim(strtolower($value->getExtension())), $phpExtensions); - } - - /** - * Validate the size of an attribute is greater than a minimum value. - * - * @param string $attribute - * @param mixed $value - * @param array $parameters - * @return bool - */ - public function validateMin($attribute, $value, $parameters) - { - $this->requireParameterCount(1, $parameters, 'min'); - - return $this->getSize($attribute, $value) >= $parameters[0]; - } - - /** - * "Indicate" validation should pass if value is null. - * - * Always returns true, just lets us put "nullable" in rules. - * - * @return bool - */ - public function validateNullable() - { - return true; - } - - /** - * Validate an attribute is not contained within a list of values. - * - * @param string $attribute - * @param mixed $value - * @param array $parameters - * @return bool - */ - public function validateNotIn($attribute, $value, $parameters) - { - return ! $this->validateIn($attribute, $value, $parameters); - } - - /** - * Validate that an attribute is numeric. - * - * @param string $attribute - * @param mixed $value - * @return bool - */ - public function validateNumeric($attribute, $value) - { - return is_numeric($value); - } - - /** - * Validate that an attribute exists even if not filled. - * - * @param string $attribute - * @param mixed $value - * @return bool - */ - public function validatePresent($attribute, $value) - { - return Arr::has($this->data, $attribute); - } - - /** - * Validate that an attribute passes a regular expression check. - * - * @param string $attribute - * @param mixed $value - * @param array $parameters - * @return bool - */ - public function validateRegex($attribute, $value, $parameters) - { - if (! is_string($value) && ! is_numeric($value)) { - return false; - } - - $this->requireParameterCount(1, $parameters, 'regex'); - - return preg_match($parameters[0], $value) > 0; - } - - /** - * Validate that an attribute does not pass a regular expression check. - * - * @param string $attribute - * @param mixed $value - * @param array $parameters - * @return bool - */ - public function validateNotRegex($attribute, $value, $parameters) - { - if (! is_string($value) && ! is_numeric($value)) { - return false; - } - - $this->requireParameterCount(1, $parameters, 'not_regex'); - - return preg_match($parameters[0], $value) < 1; - } - - /** - * Validate that a required attribute exists. - * - * @param string $attribute - * @param mixed $value - * @return bool - */ - public function validateRequired($attribute, $value) - { - if (is_null($value)) { - return false; - } elseif (is_string($value) && trim($value) === '') { - return false; - } elseif ((is_array($value) || $value instanceof Countable) && count($value) < 1) { - return false; - } elseif ($value instanceof File) { - return (string) $value->getPath() !== ''; - } - - return true; - } - - /** - * Validate that an attribute exists when another attribute has a given value. - * - * @param string $attribute - * @param mixed $value - * @param mixed $parameters - * @return bool - */ - public function validateRequiredIf($attribute, $value, $parameters) - { - $this->requireParameterCount(2, $parameters, 'required_if'); - - $other = Arr::get($this->data, $parameters[0]); - - $values = array_slice($parameters, 1); - - if (is_bool($other)) { - $values = $this->convertValuesToBoolean($values); - } - - if (in_array($other, $values)) { - return $this->validateRequired($attribute, $value); - } - - return true; - } - - /** - * Convert the given values to boolean if they are string "true" / "false". - * - * @param array $values - * @return array - */ - protected function convertValuesToBoolean($values) - { - return array_map(function ($value) { - if ($value === 'true') { - return true; - } elseif ($value === 'false') { - return false; - } - - return $value; - }, $values); - } - - /** - * Validate that an attribute exists when another attribute does not have a given value. - * - * @param string $attribute - * @param mixed $value - * @param mixed $parameters - * @return bool - */ - public function validateRequiredUnless($attribute, $value, $parameters) - { - $this->requireParameterCount(2, $parameters, 'required_unless'); - - $data = Arr::get($this->data, $parameters[0]); - - $values = array_slice($parameters, 1); - - if (! in_array($data, $values)) { - return $this->validateRequired($attribute, $value); - } - - return true; - } - - /** - * Validate that an attribute exists when any other attribute exists. - * - * @param string $attribute - * @param mixed $value - * @param mixed $parameters - * @return bool - */ - public function validateRequiredWith($attribute, $value, $parameters) - { - if (! $this->allFailingRequired($parameters)) { - return $this->validateRequired($attribute, $value); - } - - return true; - } - - /** - * Validate that an attribute exists when all other attributes exists. - * - * @param string $attribute - * @param mixed $value - * @param mixed $parameters - * @return bool - */ - public function validateRequiredWithAll($attribute, $value, $parameters) - { - if (! $this->anyFailingRequired($parameters)) { - return $this->validateRequired($attribute, $value); - } - - return true; - } - - /** - * Validate that an attribute exists when another attribute does not. - * - * @param string $attribute - * @param mixed $value - * @param mixed $parameters - * @return bool - */ - public function validateRequiredWithout($attribute, $value, $parameters) - { - if ($this->anyFailingRequired($parameters)) { - return $this->validateRequired($attribute, $value); - } - - return true; - } - - /** - * Validate that an attribute exists when all other attributes do not. - * - * @param string $attribute - * @param mixed $value - * @param mixed $parameters - * @return bool - */ - public function validateRequiredWithoutAll($attribute, $value, $parameters) - { - if ($this->allFailingRequired($parameters)) { - return $this->validateRequired($attribute, $value); - } - - return true; - } - - /** - * Determine if any of the given attributes fail the required test. - * - * @param array $attributes - * @return bool - */ - protected function anyFailingRequired(array $attributes) - { - foreach ($attributes as $key) { - if (! $this->validateRequired($key, $this->getValue($key))) { - return true; - } - } - - return false; - } - - /** - * Determine if all of the given attributes fail the required test. - * - * @param array $attributes - * @return bool - */ - protected function allFailingRequired(array $attributes) - { - foreach ($attributes as $key) { - if ($this->validateRequired($key, $this->getValue($key))) { - return false; - } - } - - return true; - } - - /** - * Validate that two attributes match. - * - * @param string $attribute - * @param mixed $value - * @param array $parameters - * @return bool - */ - public function validateSame($attribute, $value, $parameters) - { - $this->requireParameterCount(1, $parameters, 'same'); - - $other = Arr::get($this->data, $parameters[0]); - - return $value === $other; - } - - /** - * Validate the size of an attribute. - * - * @param string $attribute - * @param mixed $value - * @param array $parameters - * @return bool - */ - public function validateSize($attribute, $value, $parameters) - { - $this->requireParameterCount(1, $parameters, 'size'); - - return $this->getSize($attribute, $value) == $parameters[0]; - } - - /** - * "Validate" optional attributes. - * - * Always returns true, just lets us put sometimes in rules. - * - * @return bool - */ - public function validateSometimes() - { - return true; - } - - /** - * Validate that an attribute is a string. - * - * @param string $attribute - * @param mixed $value - * @return bool - */ - public function validateString($attribute, $value) - { - return is_string($value); - } - - /** - * Validate that an attribute is a valid timezone. - * - * @param string $attribute - * @param mixed $value - * @return bool - */ - public function validateTimezone($attribute, $value) - { - try { - new DateTimeZone($value); - } catch (Exception $e) { - return false; - } catch (Throwable $e) { - return false; - } - - return true; - } - - /** - * Validate that an attribute is a valid URL. - * - * @param string $attribute - * @param mixed $value - * @return bool - */ - public function validateUrl($attribute, $value) - { - if (! is_string($value)) { - return false; - } - - /* - * This pattern is derived from Symfony\Component\Validator\Constraints\UrlValidator (2.7.4). - * - * (c) Fabien Potencier http://symfony.com - */ - $pattern = '~^ - ((aaa|aaas|about|acap|acct|acr|adiumxtra|afp|afs|aim|apt|attachment|aw|barion|beshare|bitcoin|blob|bolo|callto|cap|chrome|chrome-extension|cid|coap|coaps|com-eventbrite-attendee|content|crid|cvs|data|dav|dict|dlna-playcontainer|dlna-playsingle|dns|dntp|dtn|dvb|ed2k|example|facetime|fax|feed|feedready|file|filesystem|finger|fish|ftp|geo|gg|git|gizmoproject|go|gopher|gtalk|h323|ham|hcp|http|https|iax|icap|icon|im|imap|info|iotdisco|ipn|ipp|ipps|irc|irc6|ircs|iris|iris.beep|iris.lwz|iris.xpc|iris.xpcs|itms|jabber|jar|jms|keyparc|lastfm|ldap|ldaps|magnet|mailserver|mailto|maps|market|message|mid|mms|modem|ms-help|ms-settings|ms-settings-airplanemode|ms-settings-bluetooth|ms-settings-camera|ms-settings-cellular|ms-settings-cloudstorage|ms-settings-emailandaccounts|ms-settings-language|ms-settings-location|ms-settings-lock|ms-settings-nfctransactions|ms-settings-notifications|ms-settings-power|ms-settings-privacy|ms-settings-proximity|ms-settings-screenrotation|ms-settings-wifi|ms-settings-workplace|msnim|msrp|msrps|mtqp|mumble|mupdate|mvn|news|nfs|ni|nih|nntp|notes|oid|opaquelocktoken|pack|palm|paparazzi|pkcs11|platform|pop|pres|prospero|proxy|psyc|query|redis|rediss|reload|res|resource|rmi|rsync|rtmfp|rtmp|rtsp|rtsps|rtspu|secondlife|s3|service|session|sftp|sgn|shttp|sieve|sip|sips|skype|smb|sms|smtp|snews|snmp|soap.beep|soap.beeps|soldat|spotify|ssh|steam|stun|stuns|submit|svn|tag|teamspeak|tel|teliaeid|telnet|tftp|things|thismessage|tip|tn3270|turn|turns|tv|udp|unreal|urn|ut2004|vemmi|ventrilo|videotex|view-source|wais|webcal|ws|wss|wtai|wyciwyg|xcon|xcon-userid|xfire|xmlrpc\.beep|xmlrpc.beeps|xmpp|xri|ymsgr|z39\.50|z39\.50r|z39\.50s)):// # protocol - (([\pL\pN-]+:)?([\pL\pN-]+)@)? # basic auth - ( - ([\pL\pN\pS-\.])+(\.?([\pL]|xn\-\-[\pL\pN-]+)+\.?) # a domain name - | # or - \d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3} # an IP address - | # or - \[ - (?:(?:(?:(?:(?:(?:(?:[0-9a-f]{1,4})):){6})(?:(?:(?:(?:(?:[0-9a-f]{1,4})):(?:(?:[0-9a-f]{1,4})))|(?:(?:(?:(?:(?:25[0-5]|(?:[1-9]|1[0-9]|2[0-4])?[0-9]))\.){3}(?:(?:25[0-5]|(?:[1-9]|1[0-9]|2[0-4])?[0-9])))))))|(?:(?:::(?:(?:(?:[0-9a-f]{1,4})):){5})(?:(?:(?:(?:(?:[0-9a-f]{1,4})):(?:(?:[0-9a-f]{1,4})))|(?:(?:(?:(?:(?:25[0-5]|(?:[1-9]|1[0-9]|2[0-4])?[0-9]))\.){3}(?:(?:25[0-5]|(?:[1-9]|1[0-9]|2[0-4])?[0-9])))))))|(?:(?:(?:(?:(?:[0-9a-f]{1,4})))?::(?:(?:(?:[0-9a-f]{1,4})):){4})(?:(?:(?:(?:(?:[0-9a-f]{1,4})):(?:(?:[0-9a-f]{1,4})))|(?:(?:(?:(?:(?:25[0-5]|(?:[1-9]|1[0-9]|2[0-4])?[0-9]))\.){3}(?:(?:25[0-5]|(?:[1-9]|1[0-9]|2[0-4])?[0-9])))))))|(?:(?:(?:(?:(?:(?:[0-9a-f]{1,4})):){0,1}(?:(?:[0-9a-f]{1,4})))?::(?:(?:(?:[0-9a-f]{1,4})):){3})(?:(?:(?:(?:(?:[0-9a-f]{1,4})):(?:(?:[0-9a-f]{1,4})))|(?:(?:(?:(?:(?:25[0-5]|(?:[1-9]|1[0-9]|2[0-4])?[0-9]))\.){3}(?:(?:25[0-5]|(?:[1-9]|1[0-9]|2[0-4])?[0-9])))))))|(?:(?:(?:(?:(?:(?:[0-9a-f]{1,4})):){0,2}(?:(?:[0-9a-f]{1,4})))?::(?:(?:(?:[0-9a-f]{1,4})):){2})(?:(?:(?:(?:(?:[0-9a-f]{1,4})):(?:(?:[0-9a-f]{1,4})))|(?:(?:(?:(?:(?:25[0-5]|(?:[1-9]|1[0-9]|2[0-4])?[0-9]))\.){3}(?:(?:25[0-5]|(?:[1-9]|1[0-9]|2[0-4])?[0-9])))))))|(?:(?:(?:(?:(?:(?:[0-9a-f]{1,4})):){0,3}(?:(?:[0-9a-f]{1,4})))?::(?:(?:[0-9a-f]{1,4})):)(?:(?:(?:(?:(?:[0-9a-f]{1,4})):(?:(?:[0-9a-f]{1,4})))|(?:(?:(?:(?:(?:25[0-5]|(?:[1-9]|1[0-9]|2[0-4])?[0-9]))\.){3}(?:(?:25[0-5]|(?:[1-9]|1[0-9]|2[0-4])?[0-9])))))))|(?:(?:(?:(?:(?:(?:[0-9a-f]{1,4})):){0,4}(?:(?:[0-9a-f]{1,4})))?::)(?:(?:(?:(?:(?:[0-9a-f]{1,4})):(?:(?:[0-9a-f]{1,4})))|(?:(?:(?:(?:(?:25[0-5]|(?:[1-9]|1[0-9]|2[0-4])?[0-9]))\.){3}(?:(?:25[0-5]|(?:[1-9]|1[0-9]|2[0-4])?[0-9])))))))|(?:(?:(?:(?:(?:(?:[0-9a-f]{1,4})):){0,5}(?:(?:[0-9a-f]{1,4})))?::)(?:(?:[0-9a-f]{1,4})))|(?:(?:(?:(?:(?:(?:[0-9a-f]{1,4})):){0,6}(?:(?:[0-9a-f]{1,4})))?::)))) - \] # an IPv6 address - ) - (:[0-9]+)? # a port (optional) - (/?|/\S+|\?\S*|\#\S*) # a /, nothing, a / with something, a query or a fragment - $~ixu'; - - return preg_match($pattern, $value) > 0; - } - - /** - * Get the size of an attribute. - * - * @param string $attribute - * @param mixed $value - * @return mixed - */ - protected function getSize($attribute, $value) - { - $hasNumeric = $this->hasRule($attribute, $this->numericRules); - - // This method will determine if the attribute is a number, string, or file and - // return the proper size accordingly. If it is a number, then number itself - // is the size. If it is a file, we take kilobytes, and for a string the - // entire length of the string will be considered the attribute size. - if (is_numeric($value) && $hasNumeric) { - return $value; - } elseif (is_array($value)) { - return count($value); - } elseif ($value instanceof File) { - return $value->getSize() / 1024; - } - - return mb_strlen($value); - } - - /** - * Check that the given value is a valid file instance. - * - * @param mixed $value - * @return bool - */ - public function isValidFileInstance($value) - { - if ($value instanceof UploadedFile && ! $value->isValid()) { - return false; - } - - return $value instanceof File; - } - - /** - * Determine if a comparison passes between the given values. - * - * @param mixed $first - * @param mixed $second - * @param string $operator - * @return bool - */ - protected function compare($first, $second, $operator) - { - switch ($operator) { - case '<': - return $first < $second; - case '>': - return $first > $second; - case '<=': - return $first <= $second; - case '>=': - return $first >= $second; - case '=': - return $first == $second; - default: - throw new InvalidArgumentException; - } - } - - /** - * Parse named parameters to $key => $value items. - * - * @param array $parameters - * @return array - */ - protected function parseNamedParameters($parameters) - { - return array_reduce($parameters, function ($result, $item) { - list($key, $value) = array_pad(explode('=', $item, 2), 2, null); - - $result[$key] = $value; - - return $result; - }); - } - - /** - * Require a certain number of parameters to be present. - * - * @param int $count - * @param array $parameters - * @param string $rule - * @return void - * - * @throws \InvalidArgumentException - */ - protected function requireParameterCount($count, $parameters, $rule) - { - if (count($parameters) < $count) { - throw new InvalidArgumentException("Validation rule $rule requires at least $count parameters."); - } - } - - /** - * Require comparison values to be of the same type. - * - * @param mixed $first - * @param mixed $second - * @return void - * - * @throws \InvalidArgumentException - */ - protected function requireSameType($first, $second) - { - if (gettype($first) != gettype($second)) { - throw new InvalidArgumentException('The values under comparison must be of the same type'); - } - } - - /** - * Adds the existing rule to the numericRules array if the attribute's value is numeric. - * - * @param string $attribute - * @param string $rule - * - * @return void - */ - protected function shouldBeNumeric($attribute, $rule) - { - if (is_numeric($this->getValue($attribute))) { - $this->numericRules[] = $rule; - } - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Validation/DatabasePresenceVerifier.php b/vendor/laravel/framework/src/Illuminate/Validation/DatabasePresenceVerifier.php deleted file mode 100755 index 3486c7f5..00000000 --- a/vendor/laravel/framework/src/Illuminate/Validation/DatabasePresenceVerifier.php +++ /dev/null @@ -1,138 +0,0 @@ -db = $db; - } - - /** - * Count the number of objects in a collection having the given value. - * - * @param string $collection - * @param string $column - * @param string $value - * @param int|null $excludeId - * @param string|null $idColumn - * @param array $extra - * @return int - */ - public function getCount($collection, $column, $value, $excludeId = null, $idColumn = null, array $extra = []) - { - $query = $this->table($collection)->where($column, '=', $value); - - if (! is_null($excludeId) && $excludeId !== 'NULL') { - $query->where($idColumn ?: 'id', '<>', $excludeId); - } - - return $this->addConditions($query, $extra)->count(); - } - - /** - * Count the number of objects in a collection with the given values. - * - * @param string $collection - * @param string $column - * @param array $values - * @param array $extra - * @return int - */ - public function getMultiCount($collection, $column, array $values, array $extra = []) - { - $query = $this->table($collection)->whereIn($column, $values); - - return $this->addConditions($query, $extra)->count(); - } - - /** - * Add the given conditions to the query. - * - * @param \Illuminate\Database\Query\Builder $query - * @param array $conditions - * @return \Illuminate\Database\Query\Builder - */ - protected function addConditions($query, $conditions) - { - foreach ($conditions as $key => $value) { - if ($value instanceof Closure) { - $query->where(function ($query) use ($value) { - $value($query); - }); - } else { - $this->addWhere($query, $key, $value); - } - } - - return $query; - } - - /** - * Add a "where" clause to the given query. - * - * @param \Illuminate\Database\Query\Builder $query - * @param string $key - * @param string $extraValue - * @return void - */ - protected function addWhere($query, $key, $extraValue) - { - if ($extraValue === 'NULL') { - $query->whereNull($key); - } elseif ($extraValue === 'NOT_NULL') { - $query->whereNotNull($key); - } elseif (Str::startsWith($extraValue, '!')) { - $query->where($key, '!=', mb_substr($extraValue, 1)); - } else { - $query->where($key, $extraValue); - } - } - - /** - * Get a query builder for the given table. - * - * @param string $table - * @return \Illuminate\Database\Query\Builder - */ - protected function table($table) - { - return $this->db->connection($this->connection)->table($table)->useWritePdo(); - } - - /** - * Set the connection to be used. - * - * @param string $connection - * @return void - */ - public function setConnection($connection) - { - $this->connection = $connection; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Validation/Factory.php b/vendor/laravel/framework/src/Illuminate/Validation/Factory.php deleted file mode 100755 index fd496942..00000000 --- a/vendor/laravel/framework/src/Illuminate/Validation/Factory.php +++ /dev/null @@ -1,283 +0,0 @@ -container = $container; - $this->translator = $translator; - } - - /** - * Create a new Validator instance. - * - * @param array $data - * @param array $rules - * @param array $messages - * @param array $customAttributes - * @return \Illuminate\Validation\Validator - */ - public function make(array $data, array $rules, array $messages = [], array $customAttributes = []) - { - // The presence verifier is responsible for checking the unique and exists data - // for the validator. It is behind an interface so that multiple versions of - // it may be written besides database. We'll inject it into the validator. - $validator = $this->resolve( - $data, $rules, $messages, $customAttributes - ); - - if (! is_null($this->verifier)) { - $validator->setPresenceVerifier($this->verifier); - } - - // Next we'll set the IoC container instance of the validator, which is used to - // resolve out class based validator extensions. If it is not set then these - // types of extensions will not be possible on these validation instances. - if (! is_null($this->container)) { - $validator->setContainer($this->container); - } - - $this->addExtensions($validator); - - return $validator; - } - - /** - * Validate the given data against the provided rules. - * - * @param array $data - * @param array $rules - * @param array $messages - * @param array $customAttributes - * @return array - * - * @throws \Illuminate\Validation\ValidationException - */ - public function validate(array $data, array $rules, array $messages = [], array $customAttributes = []) - { - return $this->make($data, $rules, $messages, $customAttributes)->validate(); - } - - /** - * Resolve a new Validator instance. - * - * @param array $data - * @param array $rules - * @param array $messages - * @param array $customAttributes - * @return \Illuminate\Validation\Validator - */ - protected function resolve(array $data, array $rules, array $messages, array $customAttributes) - { - if (is_null($this->resolver)) { - return new Validator($this->translator, $data, $rules, $messages, $customAttributes); - } - - return call_user_func($this->resolver, $this->translator, $data, $rules, $messages, $customAttributes); - } - - /** - * Add the extensions to a validator instance. - * - * @param \Illuminate\Validation\Validator $validator - * @return void - */ - protected function addExtensions(Validator $validator) - { - $validator->addExtensions($this->extensions); - - // Next, we will add the implicit extensions, which are similar to the required - // and accepted rule in that they are run even if the attributes is not in a - // array of data that is given to a validator instances via instantiation. - $validator->addImplicitExtensions($this->implicitExtensions); - - $validator->addDependentExtensions($this->dependentExtensions); - - $validator->addReplacers($this->replacers); - - $validator->setFallbackMessages($this->fallbackMessages); - } - - /** - * Register a custom validator extension. - * - * @param string $rule - * @param \Closure|string $extension - * @param string $message - * @return void - */ - public function extend($rule, $extension, $message = null) - { - $this->extensions[$rule] = $extension; - - if ($message) { - $this->fallbackMessages[Str::snake($rule)] = $message; - } - } - - /** - * Register a custom implicit validator extension. - * - * @param string $rule - * @param \Closure|string $extension - * @param string $message - * @return void - */ - public function extendImplicit($rule, $extension, $message = null) - { - $this->implicitExtensions[$rule] = $extension; - - if ($message) { - $this->fallbackMessages[Str::snake($rule)] = $message; - } - } - - /** - * Register a custom dependent validator extension. - * - * @param string $rule - * @param \Closure|string $extension - * @param string $message - * @return void - */ - public function extendDependent($rule, $extension, $message = null) - { - $this->dependentExtensions[$rule] = $extension; - - if ($message) { - $this->fallbackMessages[Str::snake($rule)] = $message; - } - } - - /** - * Register a custom validator message replacer. - * - * @param string $rule - * @param \Closure|string $replacer - * @return void - */ - public function replacer($rule, $replacer) - { - $this->replacers[$rule] = $replacer; - } - - /** - * Set the Validator instance resolver. - * - * @param \Closure $resolver - * @return void - */ - public function resolver(Closure $resolver) - { - $this->resolver = $resolver; - } - - /** - * Get the Translator implementation. - * - * @return \Illuminate\Contracts\Translation\Translator - */ - public function getTranslator() - { - return $this->translator; - } - - /** - * Get the Presence Verifier implementation. - * - * @return \Illuminate\Validation\PresenceVerifierInterface - */ - public function getPresenceVerifier() - { - return $this->verifier; - } - - /** - * Set the Presence Verifier implementation. - * - * @param \Illuminate\Validation\PresenceVerifierInterface $presenceVerifier - * @return void - */ - public function setPresenceVerifier(PresenceVerifierInterface $presenceVerifier) - { - $this->verifier = $presenceVerifier; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Validation/PresenceVerifierInterface.php b/vendor/laravel/framework/src/Illuminate/Validation/PresenceVerifierInterface.php deleted file mode 100755 index 74496299..00000000 --- a/vendor/laravel/framework/src/Illuminate/Validation/PresenceVerifierInterface.php +++ /dev/null @@ -1,30 +0,0 @@ -toArray(); - } - - return new Rules\In(is_array($values) ? $values : func_get_args()); - } - - /** - * Get a not_in constraint builder instance. - * - * @param array|string|\Illuminate\Support\Collection $values - * @return \Illuminate\Validation\Rules\NotIn - */ - public static function notIn($values) - { - if ($values instanceof Collection) { - $values = $values->toArray(); - } - - return new Rules\NotIn(is_array($values) ? $values : func_get_args()); - } - - /** - * Get a unique constraint builder instance. - * - * @param string $table - * @param string $column - * @return \Illuminate\Validation\Rules\Unique - */ - public static function unique($table, $column = 'NULL') - { - return new Rules\Unique($table, $column); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Validation/Rules/DatabaseRule.php b/vendor/laravel/framework/src/Illuminate/Validation/Rules/DatabaseRule.php deleted file mode 100644 index 7305b155..00000000 --- a/vendor/laravel/framework/src/Illuminate/Validation/Rules/DatabaseRule.php +++ /dev/null @@ -1,172 +0,0 @@ -table = $table; - $this->column = $column; - } - - /** - * Set a "where" constraint on the query. - * - * @param string|\Closure $column - * @param array|string|null $value - * @return $this - */ - public function where($column, $value = null) - { - if (is_array($value)) { - return $this->whereIn($column, $value); - } - - if ($column instanceof Closure) { - return $this->using($column); - } - - $this->wheres[] = compact('column', 'value'); - - return $this; - } - - /** - * Set a "where not" constraint on the query. - * - * @param string $column - * @param array|string $value - * @return $this - */ - public function whereNot($column, $value) - { - if (is_array($value)) { - return $this->whereNotIn($column, $value); - } - - return $this->where($column, '!'.$value); - } - - /** - * Set a "where null" constraint on the query. - * - * @param string $column - * @return $this - */ - public function whereNull($column) - { - return $this->where($column, 'NULL'); - } - - /** - * Set a "where not null" constraint on the query. - * - * @param string $column - * @return $this - */ - public function whereNotNull($column) - { - return $this->where($column, 'NOT_NULL'); - } - - /** - * Set a "where in" constraint on the query. - * - * @param string $column - * @param array $values - * @return $this - */ - public function whereIn($column, array $values) - { - return $this->where(function ($query) use ($column, $values) { - $query->whereIn($column, $values); - }); - } - - /** - * Set a "where not in" constraint on the query. - * - * @param string $column - * @param array $values - * @return $this - */ - public function whereNotIn($column, array $values) - { - return $this->where(function ($query) use ($column, $values) { - $query->whereNotIn($column, $values); - }); - } - - /** - * Register a custom query callback. - * - * @param \Closure $callback - * @return $this - */ - public function using(Closure $callback) - { - $this->using[] = $callback; - - return $this; - } - - /** - * Get the custom query callbacks for the rule. - * - * @return array - */ - public function queryCallbacks() - { - return $this->using; - } - - /** - * Format the where clauses. - * - * @return string - */ - protected function formatWheres() - { - return collect($this->wheres)->map(function ($where) { - return $where['column'].','.$where['value']; - })->implode(','); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Validation/Rules/Dimensions.php b/vendor/laravel/framework/src/Illuminate/Validation/Rules/Dimensions.php deleted file mode 100644 index 354d071c..00000000 --- a/vendor/laravel/framework/src/Illuminate/Validation/Rules/Dimensions.php +++ /dev/null @@ -1,131 +0,0 @@ -constraints = $constraints; - } - - /** - * Set the "width" constraint. - * - * @param int $value - * @return $this - */ - public function width($value) - { - $this->constraints['width'] = $value; - - return $this; - } - - /** - * Set the "height" constraint. - * - * @param int $value - * @return $this - */ - public function height($value) - { - $this->constraints['height'] = $value; - - return $this; - } - - /** - * Set the "min width" constraint. - * - * @param int $value - * @return $this - */ - public function minWidth($value) - { - $this->constraints['min_width'] = $value; - - return $this; - } - - /** - * Set the "min height" constraint. - * - * @param int $value - * @return $this - */ - public function minHeight($value) - { - $this->constraints['min_height'] = $value; - - return $this; - } - - /** - * Set the "max width" constraint. - * - * @param int $value - * @return $this - */ - public function maxWidth($value) - { - $this->constraints['max_width'] = $value; - - return $this; - } - - /** - * Set the "max height" constraint. - * - * @param int $value - * @return $this - */ - public function maxHeight($value) - { - $this->constraints['max_height'] = $value; - - return $this; - } - - /** - * Set the "ratio" constraint. - * - * @param float $value - * @return $this - */ - public function ratio($value) - { - $this->constraints['ratio'] = $value; - - return $this; - } - - /** - * Convert the rule to a validation string. - * - * @return string - */ - public function __toString() - { - $result = ''; - - foreach ($this->constraints as $key => $value) { - $result .= "$key=$value,"; - } - - return 'dimensions:'.substr($result, 0, -1); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Validation/Rules/Exists.php b/vendor/laravel/framework/src/Illuminate/Validation/Rules/Exists.php deleted file mode 100644 index 72c37860..00000000 --- a/vendor/laravel/framework/src/Illuminate/Validation/Rules/Exists.php +++ /dev/null @@ -1,22 +0,0 @@ -table, - $this->column, - $this->formatWheres() - ), ','); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Validation/Rules/In.php b/vendor/laravel/framework/src/Illuminate/Validation/Rules/In.php deleted file mode 100644 index 58086bfb..00000000 --- a/vendor/laravel/framework/src/Illuminate/Validation/Rules/In.php +++ /dev/null @@ -1,45 +0,0 @@ -values = $values; - } - - /** - * Convert the rule to a validation string. - * - * @return string - * - * @see \Illuminate\Validation\ValidationRuleParser::parseParameters - */ - public function __toString() - { - $values = array_map(function ($value) { - return '"'.str_replace('"', '""', $value).'"'; - }, $this->values); - - return $this->rule.':'.implode(',', $values); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Validation/Rules/NotIn.php b/vendor/laravel/framework/src/Illuminate/Validation/Rules/NotIn.php deleted file mode 100644 index edd1013c..00000000 --- a/vendor/laravel/framework/src/Illuminate/Validation/Rules/NotIn.php +++ /dev/null @@ -1,43 +0,0 @@ -values = $values; - } - - /** - * Convert the rule to a validation string. - * - * @return string - */ - public function __toString() - { - $values = array_map(function ($value) { - return '"'.str_replace('"', '""', $value).'"'; - }, $this->values); - - return $this->rule.':'.implode(',', $values); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Validation/Rules/Unique.php b/vendor/laravel/framework/src/Illuminate/Validation/Rules/Unique.php deleted file mode 100644 index bce18d8d..00000000 --- a/vendor/laravel/framework/src/Illuminate/Validation/Rules/Unique.php +++ /dev/null @@ -1,74 +0,0 @@ -ignoreModel($id, $idColumn); - } - - $this->ignore = $id; - $this->idColumn = $idColumn ?? 'id'; - - return $this; - } - - /** - * Ignore the given model during the unique check. - * - * @param \Illuminate\Database\Eloquent\Model $model - * @param string|null $idColumn - * @return $this - */ - public function ignoreModel($model, $idColumn = null) - { - $this->idColumn = $idColumn ?? $model->getKeyName(); - $this->ignore = $model->{$this->idColumn}; - - return $this; - } - - /** - * Convert the rule to a validation string. - * - * @return string - */ - public function __toString() - { - return rtrim(sprintf('unique:%s,%s,%s,%s,%s', - $this->table, - $this->column, - $this->ignore ? '"'.$this->ignore.'"' : 'NULL', - $this->idColumn, - $this->formatWheres() - ), ','); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Validation/UnauthorizedException.php b/vendor/laravel/framework/src/Illuminate/Validation/UnauthorizedException.php deleted file mode 100644 index ea8a6ec0..00000000 --- a/vendor/laravel/framework/src/Illuminate/Validation/UnauthorizedException.php +++ /dev/null @@ -1,10 +0,0 @@ -prepareForValidation(); - - if (! $this->passesAuthorization()) { - $this->failedAuthorization(); - } - - $instance = $this->getValidatorInstance(); - - if (! $instance->passes()) { - $this->failedValidation($instance); - } - } - - /** - * Prepare the data for validation. - * - * @return void - */ - protected function prepareForValidation() - { - // no default action - } - - /** - * Get the validator instance for the request. - * - * @return \Illuminate\Validation\Validator - */ - protected function getValidatorInstance() - { - return $this->validator(); - } - - /** - * Handle a failed validation attempt. - * - * @param \Illuminate\Validation\Validator $validator - * @return void - * - * @throws \Illuminate\Validation\ValidationException - */ - protected function failedValidation(Validator $validator) - { - throw new ValidationException($validator); - } - - /** - * Determine if the request passes the authorization check. - * - * @return bool - */ - protected function passesAuthorization() - { - if (method_exists($this, 'authorize')) { - return $this->authorize(); - } - - return true; - } - - /** - * Handle a failed authorization attempt. - * - * @return void - * - * @throws \Illuminate\Validation\UnauthorizedException - */ - protected function failedAuthorization() - { - throw new UnauthorizedException; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Validation/ValidationData.php b/vendor/laravel/framework/src/Illuminate/Validation/ValidationData.php deleted file mode 100644 index 74f55259..00000000 --- a/vendor/laravel/framework/src/Illuminate/Validation/ValidationData.php +++ /dev/null @@ -1,113 +0,0 @@ - $value) { - if ((bool) preg_match('/^'.$pattern.'/', $key, $matches)) { - $keys[] = $matches[0]; - } - } - - $keys = array_unique($keys); - - $data = []; - - foreach ($keys as $key) { - $data[$key] = Arr::get($masterData, $key); - } - - return $data; - } - - /** - * Extract data based on the given dot-notated path. - * - * Used to extract a sub-section of the data for faster iteration. - * - * @param string $attribute - * @param array $masterData - * @return array - */ - public static function extractDataFromPath($attribute, $masterData) - { - $results = []; - - $value = Arr::get($masterData, $attribute, '__missing__'); - - if ($value !== '__missing__') { - Arr::set($results, $attribute, $value); - } - - return $results; - } - - /** - * Get the explicit part of the attribute name. - * - * E.g. 'foo.bar.*.baz' -> 'foo.bar' - * - * Allows us to not spin through all of the flattened data for some operations. - * - * @param string $attribute - * @return string - */ - public static function getLeadingExplicitAttributePath($attribute) - { - return rtrim(explode('*', $attribute)[0], '.') ?: null; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Validation/ValidationException.php b/vendor/laravel/framework/src/Illuminate/Validation/ValidationException.php deleted file mode 100644 index ef71618d..00000000 --- a/vendor/laravel/framework/src/Illuminate/Validation/ValidationException.php +++ /dev/null @@ -1,138 +0,0 @@ -response = $response; - $this->errorBag = $errorBag; - $this->validator = $validator; - } - - /** - * Create a new validation exception from a plain array of messages. - * - * @param array $messages - * @return static - */ - public static function withMessages(array $messages) - { - return new static(tap(ValidatorFacade::make([], []), function ($validator) use ($messages) { - foreach ($messages as $key => $value) { - foreach (Arr::wrap($value) as $message) { - $validator->errors()->add($key, $message); - } - } - })); - } - - /** - * Get all of the validation error messages. - * - * @return array - */ - public function errors() - { - return $this->validator->errors()->messages(); - } - - /** - * Set the HTTP status code to be used for the response. - * - * @param int $status - * @return $this - */ - public function status($status) - { - $this->status = $status; - - return $this; - } - - /** - * Set the error bag on the exception. - * - * @param string $errorBag - * @return $this - */ - public function errorBag($errorBag) - { - $this->errorBag = $errorBag; - - return $this; - } - - /** - * Set the URL to redirect to on a validation error. - * - * @param string $url - * @return $this - */ - public function redirectTo($url) - { - $this->redirectTo = $url; - - return $this; - } - - /** - * Get the underlying response instance. - * - * @return \Symfony\Component\HttpFoundation\Response|null - */ - public function getResponse() - { - return $this->response; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Validation/ValidationRuleParser.php b/vendor/laravel/framework/src/Illuminate/Validation/ValidationRuleParser.php deleted file mode 100644 index 0c593e61..00000000 --- a/vendor/laravel/framework/src/Illuminate/Validation/ValidationRuleParser.php +++ /dev/null @@ -1,277 +0,0 @@ -data = $data; - } - - /** - * Parse the human-friendly rules into a full rules array for the validator. - * - * @param array $rules - * @return \stdClass - */ - public function explode($rules) - { - $this->implicitAttributes = []; - - $rules = $this->explodeRules($rules); - - return (object) [ - 'rules' => $rules, - 'implicitAttributes' => $this->implicitAttributes, - ]; - } - - /** - * Explode the rules into an array of explicit rules. - * - * @param array $rules - * @return array - */ - protected function explodeRules($rules) - { - foreach ($rules as $key => $rule) { - if (Str::contains($key, '*')) { - $rules = $this->explodeWildcardRules($rules, $key, [$rule]); - - unset($rules[$key]); - } else { - $rules[$key] = $this->explodeExplicitRule($rule); - } - } - - return $rules; - } - - /** - * Explode the explicit rule into an array if necessary. - * - * @param mixed $rule - * @return array - */ - protected function explodeExplicitRule($rule) - { - if (is_string($rule)) { - return explode('|', $rule); - } elseif (is_object($rule)) { - return [$this->prepareRule($rule)]; - } - - return array_map([$this, 'prepareRule'], $rule); - } - - /** - * Prepare the given rule for the Validator. - * - * @param mixed $rule - * @return mixed - */ - protected function prepareRule($rule) - { - if ($rule instanceof Closure) { - $rule = new ClosureValidationRule($rule); - } - - if (! is_object($rule) || - $rule instanceof RuleContract || - ($rule instanceof Exists && $rule->queryCallbacks()) || - ($rule instanceof Unique && $rule->queryCallbacks())) { - return $rule; - } - - return (string) $rule; - } - - /** - * Define a set of rules that apply to each element in an array attribute. - * - * @param array $results - * @param string $attribute - * @param string|array $rules - * @return array - */ - protected function explodeWildcardRules($results, $attribute, $rules) - { - $pattern = str_replace('\*', '[^\.]*', preg_quote($attribute)); - - $data = ValidationData::initializeAndGatherData($attribute, $this->data); - - foreach ($data as $key => $value) { - if (Str::startsWith($key, $attribute) || (bool) preg_match('/^'.$pattern.'\z/', $key)) { - foreach ((array) $rules as $rule) { - $this->implicitAttributes[$attribute][] = $key; - - $results = $this->mergeRules($results, $key, $rule); - } - } - } - - return $results; - } - - /** - * Merge additional rules into a given attribute(s). - * - * @param array $results - * @param string|array $attribute - * @param string|array $rules - * @return array - */ - public function mergeRules($results, $attribute, $rules = []) - { - if (is_array($attribute)) { - foreach ((array) $attribute as $innerAttribute => $innerRules) { - $results = $this->mergeRulesForAttribute($results, $innerAttribute, $innerRules); - } - - return $results; - } - - return $this->mergeRulesForAttribute( - $results, $attribute, $rules - ); - } - - /** - * Merge additional rules into a given attribute. - * - * @param array $results - * @param string $attribute - * @param string|array $rules - * @return array - */ - protected function mergeRulesForAttribute($results, $attribute, $rules) - { - $merge = head($this->explodeRules([$rules])); - - $results[$attribute] = array_merge( - isset($results[$attribute]) ? $this->explodeExplicitRule($results[$attribute]) : [], $merge - ); - - return $results; - } - - /** - * Extract the rule name and parameters from a rule. - * - * @param array|string $rules - * @return array - */ - public static function parse($rules) - { - if ($rules instanceof RuleContract) { - return [$rules, []]; - } - - if (is_array($rules)) { - $rules = static::parseArrayRule($rules); - } else { - $rules = static::parseStringRule($rules); - } - - $rules[0] = static::normalizeRule($rules[0]); - - return $rules; - } - - /** - * Parse an array based rule. - * - * @param array $rules - * @return array - */ - protected static function parseArrayRule(array $rules) - { - return [Str::studly(trim(Arr::get($rules, 0))), array_slice($rules, 1)]; - } - - /** - * Parse a string based rule. - * - * @param string $rules - * @return array - */ - protected static function parseStringRule($rules) - { - $parameters = []; - - // The format for specifying validation rules and parameters follows an - // easy {rule}:{parameters} formatting convention. For instance the - // rule "Max:3" states that the value may only be three letters. - if (strpos($rules, ':') !== false) { - list($rules, $parameter) = explode(':', $rules, 2); - - $parameters = static::parseParameters($rules, $parameter); - } - - return [Str::studly(trim($rules)), $parameters]; - } - - /** - * Parse a parameter list. - * - * @param string $rule - * @param string $parameter - * @return array - */ - protected static function parseParameters($rule, $parameter) - { - $rule = strtolower($rule); - - if (in_array($rule, ['regex', 'not_regex', 'notregex'], true)) { - return [$parameter]; - } - - return str_getcsv($parameter); - } - - /** - * Normalizes a rule so that we can accept short types. - * - * @param string $rule - * @return string - */ - protected static function normalizeRule($rule) - { - switch ($rule) { - case 'Int': - return 'Integer'; - case 'Bool': - return 'Boolean'; - default: - return $rule; - } - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Validation/ValidationServiceProvider.php b/vendor/laravel/framework/src/Illuminate/Validation/ValidationServiceProvider.php deleted file mode 100755 index a3c593f9..00000000 --- a/vendor/laravel/framework/src/Illuminate/Validation/ValidationServiceProvider.php +++ /dev/null @@ -1,72 +0,0 @@ -registerPresenceVerifier(); - - $this->registerValidationFactory(); - } - - /** - * Register the validation factory. - * - * @return void - */ - protected function registerValidationFactory() - { - $this->app->singleton('validator', function ($app) { - $validator = new Factory($app['translator'], $app); - - // The validation presence verifier is responsible for determining the existence of - // values in a given data collection which is typically a relational database or - // other persistent data stores. It is used to check for "uniqueness" as well. - if (isset($app['db'], $app['validation.presence'])) { - $validator->setPresenceVerifier($app['validation.presence']); - } - - return $validator; - }); - } - - /** - * Register the database presence verifier. - * - * @return void - */ - protected function registerPresenceVerifier() - { - $this->app->singleton('validation.presence', function ($app) { - return new DatabasePresenceVerifier($app['db']); - }); - } - - /** - * Get the services provided by the provider. - * - * @return array - */ - public function provides() - { - return [ - 'validator', 'validation.presence', - ]; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Validation/Validator.php b/vendor/laravel/framework/src/Illuminate/Validation/Validator.php deleted file mode 100755 index 1c4f330e..00000000 --- a/vendor/laravel/framework/src/Illuminate/Validation/Validator.php +++ /dev/null @@ -1,1150 +0,0 @@ -initialRules = $rules; - $this->translator = $translator; - $this->customMessages = $messages; - $this->data = $this->parseData($data); - $this->customAttributes = $customAttributes; - - $this->setRules($rules); - } - - /** - * Parse the data array, converting dots to ->. - * - * @param array $data - * @return array - */ - public function parseData(array $data) - { - $newData = []; - - foreach ($data as $key => $value) { - if (is_array($value)) { - $value = $this->parseData($value); - } - - // If the data key contains a dot, we will replace it with another character - // sequence so it doesn't interfere with dot processing when working with - // array based validation rules and array_dot later in the validations. - if (Str::contains($key, '.')) { - $newData[str_replace('.', '->', $key)] = $value; - } else { - $newData[$key] = $value; - } - } - - return $newData; - } - - /** - * Add an after validation callback. - * - * @param callable|string $callback - * @return $this - */ - public function after($callback) - { - $this->after[] = function () use ($callback) { - return call_user_func_array($callback, [$this]); - }; - - return $this; - } - - /** - * Determine if the data passes the validation rules. - * - * @return bool - */ - public function passes() - { - $this->messages = new MessageBag; - - // We'll spin through each rule, validating the attributes attached to that - // rule. Any error messages will be added to the containers with each of - // the other error messages, returning true if we don't have messages. - foreach ($this->rules as $attribute => $rules) { - $attribute = str_replace('\.', '->', $attribute); - - foreach ($rules as $rule) { - $this->validateAttribute($attribute, $rule); - - if ($this->shouldStopValidating($attribute)) { - break; - } - } - } - - // Here we will spin through all of the "after" hooks on this validator and - // fire them off. This gives the callbacks a chance to perform all kinds - // of other validation that needs to get wrapped up in this operation. - foreach ($this->after as $after) { - call_user_func($after); - } - - return $this->messages->isEmpty(); - } - - /** - * Determine if the data fails the validation rules. - * - * @return bool - */ - public function fails() - { - return ! $this->passes(); - } - - /** - * Run the validator's rules against its data. - * - * @return array - * - * @throws \Illuminate\Validation\ValidationException - */ - public function validate() - { - if ($this->fails()) { - throw new ValidationException($this); - } - - $data = collect($this->getData()); - - return $data->only(collect($this->getRules())->keys()->map(function ($rule) { - return explode('.', $rule)[0]; - })->unique())->toArray(); - } - - /** - * Validate a given attribute against a rule. - * - * @param string $attribute - * @param string $rule - * @return void - */ - protected function validateAttribute($attribute, $rule) - { - $this->currentRule = $rule; - - list($rule, $parameters) = ValidationRuleParser::parse($rule); - - if ($rule == '') { - return; - } - - // First we will get the correct keys for the given attribute in case the field is nested in - // an array. Then we determine if the given rule accepts other field names as parameters. - // If so, we will replace any asterisks found in the parameters with the correct keys. - if (($keys = $this->getExplicitKeys($attribute)) && - $this->dependsOnOtherFields($rule)) { - $parameters = $this->replaceAsterisksInParameters($parameters, $keys); - } - - $value = $this->getValue($attribute); - - // If the attribute is a file, we will verify that the file upload was actually successful - // and if it wasn't we will add a failure for the attribute. Files may not successfully - // upload if they are too large based on PHP's settings so we will bail in this case. - if ($value instanceof UploadedFile && ! $value->isValid() && - $this->hasRule($attribute, array_merge($this->fileRules, $this->implicitRules)) - ) { - return $this->addFailure($attribute, 'uploaded', []); - } - - // If we have made it this far we will make sure the attribute is validatable and if it is - // we will call the validation method with the attribute. If a method returns false the - // attribute is invalid and we will add a failure message for this failing attribute. - $validatable = $this->isValidatable($rule, $attribute, $value); - - if ($rule instanceof RuleContract) { - return $validatable - ? $this->validateUsingCustomRule($attribute, $value, $rule) - : null; - } - - $method = "validate{$rule}"; - - if ($validatable && ! $this->$method($attribute, $value, $parameters, $this)) { - $this->addFailure($attribute, $rule, $parameters); - } - } - - /** - * Determine if the given rule depends on other fields. - * - * @param string $rule - * @return bool - */ - protected function dependsOnOtherFields($rule) - { - return in_array($rule, $this->dependentRules); - } - - /** - * Get the explicit keys from an attribute flattened with dot notation. - * - * E.g. 'foo.1.bar.spark.baz' -> [1, 'spark'] for 'foo.*.bar.*.baz' - * - * @param string $attribute - * @return array - */ - protected function getExplicitKeys($attribute) - { - $pattern = str_replace('\*', '([^\.]+)', preg_quote($this->getPrimaryAttribute($attribute), '/')); - - if (preg_match('/^'.$pattern.'/', $attribute, $keys)) { - array_shift($keys); - - return $keys; - } - - return []; - } - - /** - * Get the primary attribute name. - * - * For example, if "name.0" is given, "name.*" will be returned. - * - * @param string $attribute - * @return string - */ - protected function getPrimaryAttribute($attribute) - { - foreach ($this->implicitAttributes as $unparsed => $parsed) { - if (in_array($attribute, $parsed)) { - return $unparsed; - } - } - - return $attribute; - } - - /** - * Replace each field parameter which has asterisks with the given keys. - * - * @param array $parameters - * @param array $keys - * @return array - */ - protected function replaceAsterisksInParameters(array $parameters, array $keys) - { - return array_map(function ($field) use ($keys) { - return vsprintf(str_replace('*', '%s', $field), $keys); - }, $parameters); - } - - /** - * Determine if the attribute is validatable. - * - * @param object|string $rule - * @param string $attribute - * @param mixed $value - * @return bool - */ - protected function isValidatable($rule, $attribute, $value) - { - return $this->presentOrRuleIsImplicit($rule, $attribute, $value) && - $this->passesOptionalCheck($attribute) && - $this->isNotNullIfMarkedAsNullable($rule, $attribute) && - $this->hasNotFailedPreviousRuleIfPresenceRule($rule, $attribute); - } - - /** - * Determine if the field is present, or the rule implies required. - * - * @param object|string $rule - * @param string $attribute - * @param mixed $value - * @return bool - */ - protected function presentOrRuleIsImplicit($rule, $attribute, $value) - { - if (is_string($value) && trim($value) === '') { - return $this->isImplicit($rule); - } - - return $this->validatePresent($attribute, $value) || - $this->isImplicit($rule); - } - - /** - * Determine if a given rule implies the attribute is required. - * - * @param object|string $rule - * @return bool - */ - protected function isImplicit($rule) - { - return $rule instanceof ImplicitRule || - in_array($rule, $this->implicitRules); - } - - /** - * Determine if the attribute passes any optional check. - * - * @param string $attribute - * @return bool - */ - protected function passesOptionalCheck($attribute) - { - if (! $this->hasRule($attribute, ['Sometimes'])) { - return true; - } - - $data = ValidationData::initializeAndGatherData($attribute, $this->data); - - return array_key_exists($attribute, $data) - || array_key_exists($attribute, $this->data); - } - - /** - * Determine if the attribute fails the nullable check. - * - * @param string $rule - * @param string $attribute - * @return bool - */ - protected function isNotNullIfMarkedAsNullable($rule, $attribute) - { - if ($this->isImplicit($rule) || ! $this->hasRule($attribute, ['Nullable'])) { - return true; - } - - return ! is_null(Arr::get($this->data, $attribute, 0)); - } - - /** - * Determine if it's a necessary presence validation. - * - * This is to avoid possible database type comparison errors. - * - * @param string $rule - * @param string $attribute - * @return bool - */ - protected function hasNotFailedPreviousRuleIfPresenceRule($rule, $attribute) - { - return in_array($rule, ['Unique', 'Exists']) ? ! $this->messages->has($attribute) : true; - } - - /** - * Validate an attribute using a custom rule object. - * - * @param string $attribute - * @param mixed $value - * @param \Illuminate\Contracts\Validation\Rule $rule - * @return void - */ - protected function validateUsingCustomRule($attribute, $value, $rule) - { - if (! $rule->passes($attribute, $value)) { - $this->failedRules[$attribute][get_class($rule)] = []; - - $this->messages->add($attribute, $this->makeReplacements( - $rule->message(), $attribute, get_class($rule), [] - )); - } - } - - /** - * Check if we should stop further validations on a given attribute. - * - * @param string $attribute - * @return bool - */ - protected function shouldStopValidating($attribute) - { - if ($this->hasRule($attribute, ['Bail'])) { - return $this->messages->has($attribute); - } - - if (isset($this->failedRules[$attribute]) && - array_key_exists('uploaded', $this->failedRules[$attribute])) { - return true; - } - - // In case the attribute has any rule that indicates that the field is required - // and that rule already failed then we should stop validation at this point - // as now there is no point in calling other rules with this field empty. - return $this->hasRule($attribute, $this->implicitRules) && - isset($this->failedRules[$attribute]) && - array_intersect(array_keys($this->failedRules[$attribute]), $this->implicitRules); - } - - /** - * Add a failed rule and error message to the collection. - * - * @param string $attribute - * @param string $rule - * @param array $parameters - * @return void - */ - protected function addFailure($attribute, $rule, $parameters) - { - $this->messages->add($attribute, $this->makeReplacements( - $this->getMessage($attribute, $rule), $attribute, $rule, $parameters - )); - - $this->failedRules[$attribute][$rule] = $parameters; - } - - /** - * Returns the data which was valid. - * - * @return array - */ - public function valid() - { - if (! $this->messages) { - $this->passes(); - } - - return array_diff_key( - $this->data, $this->attributesThatHaveMessages() - ); - } - - /** - * Returns the data which was invalid. - * - * @return array - */ - public function invalid() - { - if (! $this->messages) { - $this->passes(); - } - - return array_intersect_key( - $this->data, $this->attributesThatHaveMessages() - ); - } - - /** - * Generate an array of all attributes that have messages. - * - * @return array - */ - protected function attributesThatHaveMessages() - { - return collect($this->messages()->toArray())->map(function ($message, $key) { - return explode('.', $key)[0]; - })->unique()->flip()->all(); - } - - /** - * Get the failed validation rules. - * - * @return array - */ - public function failed() - { - return $this->failedRules; - } - - /** - * Get the message container for the validator. - * - * @return \Illuminate\Support\MessageBag - */ - public function messages() - { - if (! $this->messages) { - $this->passes(); - } - - return $this->messages; - } - - /** - * An alternative more semantic shortcut to the message container. - * - * @return \Illuminate\Support\MessageBag - */ - public function errors() - { - return $this->messages(); - } - - /** - * Get the messages for the instance. - * - * @return \Illuminate\Support\MessageBag - */ - public function getMessageBag() - { - return $this->messages(); - } - - /** - * Determine if the given attribute has a rule in the given set. - * - * @param string $attribute - * @param string|array $rules - * @return bool - */ - public function hasRule($attribute, $rules) - { - return ! is_null($this->getRule($attribute, $rules)); - } - - /** - * Get a rule and its parameters for a given attribute. - * - * @param string $attribute - * @param string|array $rules - * @return array|null - */ - protected function getRule($attribute, $rules) - { - if (! array_key_exists($attribute, $this->rules)) { - return; - } - - $rules = (array) $rules; - - foreach ($this->rules[$attribute] as $rule) { - list($rule, $parameters) = ValidationRuleParser::parse($rule); - - if (in_array($rule, $rules)) { - return [$rule, $parameters]; - } - } - } - - /** - * Get the data under validation. - * - * @return array - */ - public function attributes() - { - return $this->getData(); - } - - /** - * Get the data under validation. - * - * @return array - */ - public function getData() - { - return $this->data; - } - - /** - * Set the data under validation. - * - * @param array $data - * @return $this - */ - public function setData(array $data) - { - $this->data = $this->parseData($data); - - $this->setRules($this->initialRules); - - return $this; - } - - /** - * Get the value of a given attribute. - * - * @param string $attribute - * @return mixed - */ - protected function getValue($attribute) - { - return Arr::get($this->data, $attribute); - } - - /** - * Get the validation rules. - * - * @return array - */ - public function getRules() - { - return $this->rules; - } - - /** - * Set the validation rules. - * - * @param array $rules - * @return $this - */ - public function setRules(array $rules) - { - $this->initialRules = $rules; - - $this->rules = []; - - $this->addRules($rules); - - return $this; - } - - /** - * Parse the given rules and merge them into current rules. - * - * @param array $rules - * @return void - */ - public function addRules($rules) - { - // The primary purpose of this parser is to expand any "*" rules to the all - // of the explicit rules needed for the given data. For example the rule - // names.* would get expanded to names.0, names.1, etc. for this data. - $response = (new ValidationRuleParser($this->data)) - ->explode($rules); - - $this->rules = array_merge_recursive( - $this->rules, $response->rules - ); - - $this->implicitAttributes = array_merge( - $this->implicitAttributes, $response->implicitAttributes - ); - } - - /** - * Add conditions to a given field based on a Closure. - * - * @param string|array $attribute - * @param string|array $rules - * @param callable $callback - * @return $this - */ - public function sometimes($attribute, $rules, callable $callback) - { - $payload = new Fluent($this->getData()); - - if (call_user_func($callback, $payload)) { - foreach ((array) $attribute as $key) { - $this->addRules([$key => $rules]); - } - } - - return $this; - } - - /** - * Register an array of custom validator extensions. - * - * @param array $extensions - * @return void - */ - public function addExtensions(array $extensions) - { - if ($extensions) { - $keys = array_map('\Illuminate\Support\Str::snake', array_keys($extensions)); - - $extensions = array_combine($keys, array_values($extensions)); - } - - $this->extensions = array_merge($this->extensions, $extensions); - } - - /** - * Register an array of custom implicit validator extensions. - * - * @param array $extensions - * @return void - */ - public function addImplicitExtensions(array $extensions) - { - $this->addExtensions($extensions); - - foreach ($extensions as $rule => $extension) { - $this->implicitRules[] = Str::studly($rule); - } - } - - /** - * Register an array of custom implicit validator extensions. - * - * @param array $extensions - * @return void - */ - public function addDependentExtensions(array $extensions) - { - $this->addExtensions($extensions); - - foreach ($extensions as $rule => $extension) { - $this->dependentRules[] = Str::studly($rule); - } - } - - /** - * Register a custom validator extension. - * - * @param string $rule - * @param \Closure|string $extension - * @return void - */ - public function addExtension($rule, $extension) - { - $this->extensions[Str::snake($rule)] = $extension; - } - - /** - * Register a custom implicit validator extension. - * - * @param string $rule - * @param \Closure|string $extension - * @return void - */ - public function addImplicitExtension($rule, $extension) - { - $this->addExtension($rule, $extension); - - $this->implicitRules[] = Str::studly($rule); - } - - /** - * Register a custom dependent validator extension. - * - * @param string $rule - * @param \Closure|string $extension - * @return void - */ - public function addDependentExtension($rule, $extension) - { - $this->addExtension($rule, $extension); - - $this->dependentRules[] = Str::studly($rule); - } - - /** - * Register an array of custom validator message replacers. - * - * @param array $replacers - * @return void - */ - public function addReplacers(array $replacers) - { - if ($replacers) { - $keys = array_map('\Illuminate\Support\Str::snake', array_keys($replacers)); - - $replacers = array_combine($keys, array_values($replacers)); - } - - $this->replacers = array_merge($this->replacers, $replacers); - } - - /** - * Register a custom validator message replacer. - * - * @param string $rule - * @param \Closure|string $replacer - * @return void - */ - public function addReplacer($rule, $replacer) - { - $this->replacers[Str::snake($rule)] = $replacer; - } - - /** - * Set the custom messages for the validator. - * - * @param array $messages - * @return $this - */ - public function setCustomMessages(array $messages) - { - $this->customMessages = array_merge($this->customMessages, $messages); - - return $this; - } - - /** - * Set the custom attributes on the validator. - * - * @param array $attributes - * @return $this - */ - public function setAttributeNames(array $attributes) - { - $this->customAttributes = $attributes; - - return $this; - } - - /** - * Add custom attributes to the validator. - * - * @param array $customAttributes - * @return $this - */ - public function addCustomAttributes(array $customAttributes) - { - $this->customAttributes = array_merge($this->customAttributes, $customAttributes); - - return $this; - } - - /** - * Set the custom values on the validator. - * - * @param array $values - * @return $this - */ - public function setValueNames(array $values) - { - $this->customValues = $values; - - return $this; - } - - /** - * Add the custom values for the validator. - * - * @param array $customValues - * @return $this - */ - public function addCustomValues(array $customValues) - { - $this->customValues = array_merge($this->customValues, $customValues); - - return $this; - } - - /** - * Set the fallback messages for the validator. - * - * @param array $messages - * @return void - */ - public function setFallbackMessages(array $messages) - { - $this->fallbackMessages = $messages; - } - - /** - * Get the Presence Verifier implementation. - * - * @return \Illuminate\Validation\PresenceVerifierInterface - * - * @throws \RuntimeException - */ - public function getPresenceVerifier() - { - if (! isset($this->presenceVerifier)) { - throw new RuntimeException('Presence verifier has not been set.'); - } - - return $this->presenceVerifier; - } - - /** - * Get the Presence Verifier implementation. - * - * @param string $connection - * @return \Illuminate\Validation\PresenceVerifierInterface - * - * @throws \RuntimeException - */ - protected function getPresenceVerifierFor($connection) - { - return tap($this->getPresenceVerifier(), function ($verifier) use ($connection) { - $verifier->setConnection($connection); - }); - } - - /** - * Set the Presence Verifier implementation. - * - * @param \Illuminate\Validation\PresenceVerifierInterface $presenceVerifier - * @return void - */ - public function setPresenceVerifier(PresenceVerifierInterface $presenceVerifier) - { - $this->presenceVerifier = $presenceVerifier; - } - - /** - * Get the Translator implementation. - * - * @return \Illuminate\Contracts\Translation\Translator - */ - public function getTranslator() - { - return $this->translator; - } - - /** - * Set the Translator implementation. - * - * @param \Illuminate\Contracts\Translation\Translator $translator - * @return void - */ - public function setTranslator(Translator $translator) - { - $this->translator = $translator; - } - - /** - * Set the IoC container instance. - * - * @param \Illuminate\Contracts\Container\Container $container - * @return void - */ - public function setContainer(Container $container) - { - $this->container = $container; - } - - /** - * Call a custom validator extension. - * - * @param string $rule - * @param array $parameters - * @return bool|null - */ - protected function callExtension($rule, $parameters) - { - $callback = $this->extensions[$rule]; - - if (is_callable($callback)) { - return call_user_func_array($callback, $parameters); - } elseif (is_string($callback)) { - return $this->callClassBasedExtension($callback, $parameters); - } - } - - /** - * Call a class based validator extension. - * - * @param string $callback - * @param array $parameters - * @return bool - */ - protected function callClassBasedExtension($callback, $parameters) - { - list($class, $method) = Str::parseCallback($callback, 'validate'); - - return call_user_func_array([$this->container->make($class), $method], $parameters); - } - - /** - * Handle dynamic calls to class methods. - * - * @param string $method - * @param array $parameters - * @return mixed - * - * @throws \BadMethodCallException - */ - public function __call($method, $parameters) - { - $rule = Str::snake(substr($method, 8)); - - if (isset($this->extensions[$rule])) { - return $this->callExtension($rule, $parameters); - } - - throw new BadMethodCallException(sprintf( - 'Method %s::%s does not exist.', static::class, $method - )); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/Validation/composer.json b/vendor/laravel/framework/src/Illuminate/Validation/composer.json deleted file mode 100755 index cfb90e1f..00000000 --- a/vendor/laravel/framework/src/Illuminate/Validation/composer.json +++ /dev/null @@ -1,41 +0,0 @@ -{ - "name": "illuminate/validation", - "description": "The Illuminate Validation package.", - "license": "MIT", - "homepage": "https://laravel.com", - "support": { - "issues": "https://github.com/laravel/framework/issues", - "source": "https://github.com/laravel/framework" - }, - "authors": [ - { - "name": "Taylor Otwell", - "email": "taylor@laravel.com" - } - ], - "require": { - "php": "^7.1.3", - "illuminate/container": "5.6.*", - "illuminate/contracts": "5.6.*", - "illuminate/support": "5.6.*", - "illuminate/translation": "5.6.*", - "symfony/http-foundation": "~4.0" - }, - "autoload": { - "psr-4": { - "Illuminate\\Validation\\": "" - } - }, - "extra": { - "branch-alias": { - "dev-master": "5.6-dev" - } - }, - "suggest": { - "illuminate/database": "Required to use the database presence verifier (5.6.*)." - }, - "config": { - "sort-packages": true - }, - "minimum-stability": "dev" -} diff --git a/vendor/laravel/framework/src/Illuminate/View/Compilers/BladeCompiler.php b/vendor/laravel/framework/src/Illuminate/View/Compilers/BladeCompiler.php deleted file mode 100644 index 965fd7ba..00000000 --- a/vendor/laravel/framework/src/Illuminate/View/Compilers/BladeCompiler.php +++ /dev/null @@ -1,519 +0,0 @@ -setPath($path); - } - - if (! is_null($this->cachePath)) { - $contents = $this->compileString($this->files->get($this->getPath())); - - $this->files->put($this->getCompiledPath($this->getPath()), $contents); - } - } - - /** - * Get the path currently being compiled. - * - * @return string - */ - public function getPath() - { - return $this->path; - } - - /** - * Set the path currently being compiled. - * - * @param string $path - * @return void - */ - public function setPath($path) - { - $this->path = $path; - } - - /** - * Compile the given Blade template contents. - * - * @param string $value - * @return string - */ - public function compileString($value) - { - if (strpos($value, '@verbatim') !== false) { - $value = $this->storeVerbatimBlocks($value); - } - - $this->footer = []; - - if (strpos($value, '@php') !== false) { - $value = $this->storePhpBlocks($value); - } - - $result = ''; - - // Here we will loop through all of the tokens returned by the Zend lexer and - // parse each one into the corresponding valid PHP. We will then have this - // template as the correctly rendered PHP that can be rendered natively. - foreach (token_get_all($value) as $token) { - $result .= is_array($token) ? $this->parseToken($token) : $token; - } - - if (! empty($this->rawBlocks)) { - $result = $this->restoreRawContent($result); - } - - // If there are any footer lines that need to get added to a template we will - // add them here at the end of the template. This gets used mainly for the - // template inheritance via the extends keyword that should be appended. - if (count($this->footer) > 0) { - $result = $this->addFooters($result); - } - - return $result; - } - - /** - * Store the verbatim blocks and replace them with a temporary placeholder. - * - * @param string $value - * @return string - */ - protected function storeVerbatimBlocks($value) - { - return preg_replace_callback('/(?storeRawBlock($matches[1]); - }, $value); - } - - /** - * Store the PHP blocks and replace them with a temporary placeholder. - * - * @param string $value - * @return string - */ - protected function storePhpBlocks($value) - { - return preg_replace_callback('/(?storeRawBlock(""); - }, $value); - } - - /** - * Store a raw block and return a unique raw placeholder. - * - * @param string $value - * @return string - */ - protected function storeRawBlock($value) - { - return $this->getRawPlaceholder( - array_push($this->rawBlocks, $value) - 1 - ); - } - - /** - * Replace the raw placeholders with the original code stored in the raw blocks. - * - * @param string $result - * @return string - */ - protected function restoreRawContent($result) - { - $result = preg_replace_callback('/'.$this->getRawPlaceholder('(\d+)').'/', function ($matches) { - return $this->rawBlocks[$matches[1]]; - }, $result); - - $this->rawBlocks = []; - - return $result; - } - - /** - * Get a placeholder to temporary mark the position of raw blocks. - * - * @param int|string $replace - * @return string - */ - protected function getRawPlaceholder($replace) - { - return str_replace('#', $replace, '@__raw_block_#__@'); - } - - /** - * Add the stored footers onto the given content. - * - * @param string $result - * @return string - */ - protected function addFooters($result) - { - return ltrim($result, PHP_EOL) - .PHP_EOL.implode(PHP_EOL, array_reverse($this->footer)); - } - - /** - * Parse the tokens from the template. - * - * @param array $token - * @return string - */ - protected function parseToken($token) - { - list($id, $content) = $token; - - if ($id == T_INLINE_HTML) { - foreach ($this->compilers as $type) { - $content = $this->{"compile{$type}"}($content); - } - } - - return $content; - } - - /** - * Execute the user defined extensions. - * - * @param string $value - * @return string - */ - protected function compileExtensions($value) - { - foreach ($this->extensions as $compiler) { - $value = call_user_func($compiler, $value, $this); - } - - return $value; - } - - /** - * Compile Blade statements that start with "@". - * - * @param string $value - * @return string - */ - protected function compileStatements($value) - { - return preg_replace_callback( - '/\B@(@?\w+(?:::\w+)?)([ \t]*)(\( ( (?>[^()]+) | (?3) )* \))?/x', function ($match) { - return $this->compileStatement($match); - }, $value - ); - } - - /** - * Compile a single Blade @ statement. - * - * @param array $match - * @return string - */ - protected function compileStatement($match) - { - if (Str::contains($match[1], '@')) { - $match[0] = isset($match[3]) ? $match[1].$match[3] : $match[1]; - } elseif (isset($this->customDirectives[$match[1]])) { - $match[0] = $this->callCustomDirective($match[1], Arr::get($match, 3)); - } elseif (method_exists($this, $method = 'compile'.ucfirst($match[1]))) { - $match[0] = $this->$method(Arr::get($match, 3)); - } - - return isset($match[3]) ? $match[0] : $match[0].$match[2]; - } - - /** - * Call the given directive with the given value. - * - * @param string $name - * @param string|null $value - * @return string - */ - protected function callCustomDirective($name, $value) - { - if (Str::startsWith($value, '(') && Str::endsWith($value, ')')) { - $value = Str::substr($value, 1, -1); - } - - return call_user_func($this->customDirectives[$name], trim($value)); - } - - /** - * Strip the parentheses from the given expression. - * - * @param string $expression - * @return string - */ - public function stripParentheses($expression) - { - if (Str::startsWith($expression, '(')) { - $expression = substr($expression, 1, -1); - } - - return $expression; - } - - /** - * Register a custom Blade compiler. - * - * @param callable $compiler - * @return void - */ - public function extend(callable $compiler) - { - $this->extensions[] = $compiler; - } - - /** - * Get the extensions used by the compiler. - * - * @return array - */ - public function getExtensions() - { - return $this->extensions; - } - - /** - * Register an "if" statement directive. - * - * @param string $name - * @param callable $callback - * @return void - */ - public function if($name, callable $callback) - { - $this->conditions[$name] = $callback; - - $this->directive($name, function ($expression) use ($name) { - return $expression !== '' - ? "" - : ""; - }); - - $this->directive('else'.$name, function ($expression) use ($name) { - return $expression !== '' - ? "" - : ""; - }); - - $this->directive('end'.$name, function () { - return ''; - }); - } - - /** - * Check the result of a condition. - * - * @param string $name - * @param array $parameters - * @return bool - */ - public function check($name, ...$parameters) - { - return call_user_func($this->conditions[$name], ...$parameters); - } - - /** - * Register a component alias directive. - * - * @param string $path - * @param string $alias - * @return void - */ - public function component($path, $alias = null) - { - $alias = $alias ?: array_last(explode('.', $path)); - - $this->directive($alias, function ($expression) use ($path) { - return $expression - ? "startComponent('{$path}', {$expression}); ?>" - : "startComponent('{$path}'); ?>"; - }); - - $this->directive('end'.$alias, function ($expression) { - return 'renderComponent(); ?>'; - }); - } - - /** - * Register an include alias directive. - * - * @param string $path - * @param string $alias - * @return void - */ - public function include($path, $alias = null) - { - $alias = $alias ?: array_last(explode('.', $path)); - - $this->directive($alias, function ($expression) use ($path) { - $expression = $this->stripParentheses($expression) ?: '[]'; - - return "make('{$path}', {$expression}, array_except(get_defined_vars(), array('__data', '__path')))->render(); ?>"; - }); - } - - /** - * Register a handler for custom directives. - * - * @param string $name - * @param callable $handler - * @return void - */ - public function directive($name, callable $handler) - { - $this->customDirectives[$name] = $handler; - } - - /** - * Get the list of custom directives. - * - * @return array - */ - public function getCustomDirectives() - { - return $this->customDirectives; - } - - /** - * Set the echo format to be used by the compiler. - * - * @param string $format - * @return void - */ - public function setEchoFormat($format) - { - $this->echoFormat = $format; - } - - /** - * Set the "echo" format to double encode entities. - * - * @return void - */ - public function withDoubleEncoding() - { - $this->setEchoFormat('e(%s, true)'); - } - - /** - * Set the "echo" format to not double encode entities. - * - * @return void - */ - public function withoutDoubleEncoding() - { - $this->setEchoFormat('e(%s, false)'); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/View/Compilers/Compiler.php b/vendor/laravel/framework/src/Illuminate/View/Compilers/Compiler.php deleted file mode 100755 index 94074192..00000000 --- a/vendor/laravel/framework/src/Illuminate/View/Compilers/Compiler.php +++ /dev/null @@ -1,74 +0,0 @@ -files = $files; - $this->cachePath = $cachePath; - } - - /** - * Get the path to the compiled version of a view. - * - * @param string $path - * @return string - */ - public function getCompiledPath($path) - { - return $this->cachePath.'/'.sha1($path).'.php'; - } - - /** - * Determine if the view at the given path is expired. - * - * @param string $path - * @return bool - */ - public function isExpired($path) - { - $compiled = $this->getCompiledPath($path); - - // If the compiled file doesn't exist we will indicate that the view is expired - // so that it can be re-compiled. Else, we will verify the last modification - // of the views is less than the modification times of the compiled views. - if (! $this->files->exists($compiled)) { - return true; - } - - return $this->files->lastModified($path) >= - $this->files->lastModified($compiled); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/View/Compilers/CompilerInterface.php b/vendor/laravel/framework/src/Illuminate/View/Compilers/CompilerInterface.php deleted file mode 100755 index dfcb023a..00000000 --- a/vendor/laravel/framework/src/Illuminate/View/Compilers/CompilerInterface.php +++ /dev/null @@ -1,30 +0,0 @@ -check{$expression}): ?>"; - } - - /** - * Compile the cannot statements into valid PHP. - * - * @param string $expression - * @return string - */ - protected function compileCannot($expression) - { - return "denies{$expression}): ?>"; - } - - /** - * Compile the canany statements into valid PHP. - * - * @param string $expression - * @return string - */ - protected function compileCanany($expression) - { - return "any{$expression}): ?>"; - } - - /** - * Compile the else-can statements into valid PHP. - * - * @param string $expression - * @return string - */ - protected function compileElsecan($expression) - { - return "check{$expression}): ?>"; - } - - /** - * Compile the else-cannot statements into valid PHP. - * - * @param string $expression - * @return string - */ - protected function compileElsecannot($expression) - { - return "denies{$expression}): ?>"; - } - - /** - * Compile the else-canany statements into valid PHP. - * - * @param string $expression - * @return string - */ - protected function compileElsecanany($expression) - { - return "any{$expression}): ?>"; - } - - /** - * Compile the end-can statements into valid PHP. - * - * @return string - */ - protected function compileEndcan() - { - return ''; - } - - /** - * Compile the end-cannot statements into valid PHP. - * - * @return string - */ - protected function compileEndcannot() - { - return ''; - } - - /** - * Compile the end-canany statements into valid PHP. - * - * @return string - */ - protected function compileEndcanany() - { - return ''; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesComments.php b/vendor/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesComments.php deleted file mode 100644 index 104a9c81..00000000 --- a/vendor/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesComments.php +++ /dev/null @@ -1,19 +0,0 @@ -contentTags[0], $this->contentTags[1]); - - return preg_replace($pattern, '', $value); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesComponents.php b/vendor/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesComponents.php deleted file mode 100644 index af0eee7b..00000000 --- a/vendor/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesComponents.php +++ /dev/null @@ -1,48 +0,0 @@ -startComponent{$expression}; ?>"; - } - - /** - * Compile the end-component statements into valid PHP. - * - * @return string - */ - protected function compileEndComponent() - { - return 'renderComponent(); ?>'; - } - - /** - * Compile the slot statements into valid PHP. - * - * @param string $expression - * @return string - */ - protected function compileSlot($expression) - { - return "slot{$expression}; ?>"; - } - - /** - * Compile the end-slot statements into valid PHP. - * - * @return string - */ - protected function compileEndSlot() - { - return 'endSlot(); ?>'; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesConditionals.php b/vendor/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesConditionals.php deleted file mode 100644 index d592ef17..00000000 --- a/vendor/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesConditionals.php +++ /dev/null @@ -1,230 +0,0 @@ -guard{$guard}->check()): ?>"; - } - - /** - * Compile the else-auth statements into valid PHP. - * - * @param string|null $guard - * @return string - */ - protected function compileElseAuth($guard = null) - { - $guard = is_null($guard) ? '()' : $guard; - - return "guard{$guard}->check()): ?>"; - } - - /** - * Compile the end-auth statements into valid PHP. - * - * @return string - */ - protected function compileEndAuth() - { - return ''; - } - - /** - * Compile the if-guest statements into valid PHP. - * - * @param string|null $guard - * @return string - */ - protected function compileGuest($guard = null) - { - $guard = is_null($guard) ? '()' : $guard; - - return "guard{$guard}->guest()): ?>"; - } - - /** - * Compile the else-guest statements into valid PHP. - * - * @param string|null $guard - * @return string - */ - protected function compileElseGuest($guard = null) - { - $guard = is_null($guard) ? '()' : $guard; - - return "guard{$guard}->guest()): ?>"; - } - - /** - * Compile the end-guest statements into valid PHP. - * - * @return string - */ - protected function compileEndGuest() - { - return ''; - } - - /** - * Compile the has-section statements into valid PHP. - * - * @param string $expression - * @return string - */ - protected function compileHasSection($expression) - { - return "yieldContent{$expression}))): ?>"; - } - - /** - * Compile the if statements into valid PHP. - * - * @param string $expression - * @return string - */ - protected function compileIf($expression) - { - return ""; - } - - /** - * Compile the unless statements into valid PHP. - * - * @param string $expression - * @return string - */ - protected function compileUnless($expression) - { - return ""; - } - - /** - * Compile the else-if statements into valid PHP. - * - * @param string $expression - * @return string - */ - protected function compileElseif($expression) - { - return ""; - } - - /** - * Compile the else statements into valid PHP. - * - * @return string - */ - protected function compileElse() - { - return ''; - } - - /** - * Compile the end-if statements into valid PHP. - * - * @return string - */ - protected function compileEndif() - { - return ''; - } - - /** - * Compile the end-unless statements into valid PHP. - * - * @return string - */ - protected function compileEndunless() - { - return ''; - } - - /** - * Compile the if-isset statements into valid PHP. - * - * @param string $expression - * @return string - */ - protected function compileIsset($expression) - { - return ""; - } - - /** - * Compile the end-isset statements into valid PHP. - * - * @return string - */ - protected function compileEndIsset() - { - return ''; - } - - /** - * Compile the switch statements into valid PHP. - * - * @param string $expression - * @return string - */ - protected function compileSwitch($expression) - { - $this->firstCaseInSwitch = true; - - return "firstCaseInSwitch) { - $this->firstCaseInSwitch = false; - - return "case {$expression}: ?>"; - } - - return ""; - } - - /** - * Compile the default statements in switch case into valid PHP. - * - * @return string - */ - protected function compileDefault() - { - return ''; - } - - /** - * Compile the end switch statements into valid PHP. - * - * @return string - */ - protected function compileEndSwitch() - { - return ''; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesEchos.php b/vendor/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesEchos.php deleted file mode 100644 index 018f90b8..00000000 --- a/vendor/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesEchos.php +++ /dev/null @@ -1,105 +0,0 @@ -getEchoMethods() as $method) { - $value = $this->$method($value); - } - - return $value; - } - - /** - * Get the echo methods in the proper order for compilation. - * - * @return array - */ - protected function getEchoMethods() - { - return [ - 'compileRawEchos', - 'compileEscapedEchos', - 'compileRegularEchos', - ]; - } - - /** - * Compile the "raw" echo statements. - * - * @param string $value - * @return string - */ - protected function compileRawEchos($value) - { - $pattern = sprintf('/(@)?%s\s*(.+?)\s*%s(\r?\n)?/s', $this->rawTags[0], $this->rawTags[1]); - - $callback = function ($matches) { - $whitespace = empty($matches[3]) ? '' : $matches[3].$matches[3]; - - return $matches[1] ? substr($matches[0], 1) : "compileEchoDefaults($matches[2])}; ?>{$whitespace}"; - }; - - return preg_replace_callback($pattern, $callback, $value); - } - - /** - * Compile the "regular" echo statements. - * - * @param string $value - * @return string - */ - protected function compileRegularEchos($value) - { - $pattern = sprintf('/(@)?%s\s*(.+?)\s*%s(\r?\n)?/s', $this->contentTags[0], $this->contentTags[1]); - - $callback = function ($matches) { - $whitespace = empty($matches[3]) ? '' : $matches[3].$matches[3]; - - $wrapped = sprintf($this->echoFormat, $this->compileEchoDefaults($matches[2])); - - return $matches[1] ? substr($matches[0], 1) : "{$whitespace}"; - }; - - return preg_replace_callback($pattern, $callback, $value); - } - - /** - * Compile the escaped echo statements. - * - * @param string $value - * @return string - */ - protected function compileEscapedEchos($value) - { - $pattern = sprintf('/(@)?%s\s*(.+?)\s*%s(\r?\n)?/s', $this->escapedTags[0], $this->escapedTags[1]); - - $callback = function ($matches) { - $whitespace = empty($matches[3]) ? '' : $matches[3].$matches[3]; - - return $matches[1] ? $matches[0] : "compileEchoDefaults($matches[2])}); ?>{$whitespace}"; - }; - - return preg_replace_callback($pattern, $callback, $value); - } - - /** - * Compile the default values for the echo statement. - * - * @param string $value - * @return string - */ - public function compileEchoDefaults($value) - { - return preg_replace('/^(?=\$)(.+?)(?:\s+or\s+)(.+?)$/si', 'isset($1) ? $1 : $2', $value); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesHelpers.php b/vendor/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesHelpers.php deleted file mode 100644 index 979cadc5..00000000 --- a/vendor/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesHelpers.php +++ /dev/null @@ -1,49 +0,0 @@ -'; - } - - /** - * Compile the "dd" statements into valid PHP. - * - * @param string $arguments - * @return string - */ - protected function compileDd($arguments) - { - return ""; - } - - /** - * Compile the "dump" statements into valid PHP. - * - * @param string $arguments - * @return string - */ - protected function compileDump($arguments) - { - return ""; - } - - /** - * Compile the method statements into valid PHP. - * - * @param string $method - * @return string - */ - protected function compileMethod($method) - { - return ""; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesIncludes.php b/vendor/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesIncludes.php deleted file mode 100644 index 417d4ef6..00000000 --- a/vendor/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesIncludes.php +++ /dev/null @@ -1,69 +0,0 @@ -renderEach{$expression}; ?>"; - } - - /** - * Compile the include statements into valid PHP. - * - * @param string $expression - * @return string - */ - protected function compileInclude($expression) - { - $expression = $this->stripParentheses($expression); - - return "make({$expression}, array_except(get_defined_vars(), array('__data', '__path')))->render(); ?>"; - } - - /** - * Compile the include-if statements into valid PHP. - * - * @param string $expression - * @return string - */ - protected function compileIncludeIf($expression) - { - $expression = $this->stripParentheses($expression); - - return "exists({$expression})) echo \$__env->make({$expression}, array_except(get_defined_vars(), array('__data', '__path')))->render(); ?>"; - } - - /** - * Compile the include-when statements into valid PHP. - * - * @param string $expression - * @return string - */ - protected function compileIncludeWhen($expression) - { - $expression = $this->stripParentheses($expression); - - return "renderWhen($expression, array_except(get_defined_vars(), array('__data', '__path'))); ?>"; - } - - /** - * Compile the include-first statements into valid PHP. - * - * @param string $expression - * @return string - */ - protected function compileIncludeFirst($expression) - { - $expression = $this->stripParentheses($expression); - - return "first({$expression}, array_except(get_defined_vars(), array('__data', '__path')))->render(); ?>"; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesInjections.php b/vendor/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesInjections.php deleted file mode 100644 index c295bcd4..00000000 --- a/vendor/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesInjections.php +++ /dev/null @@ -1,23 +0,0 @@ -"; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesJson.php b/vendor/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesJson.php deleted file mode 100644 index cf343e97..00000000 --- a/vendor/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesJson.php +++ /dev/null @@ -1,30 +0,0 @@ -stripParentheses($expression)); - - $options = isset($parts[1]) ? trim($parts[1]) : $this->encodingOptions; - - $depth = isset($parts[2]) ? trim($parts[2]) : 512; - - return ""; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesLayouts.php b/vendor/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesLayouts.php deleted file mode 100644 index 329a7055..00000000 --- a/vendor/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesLayouts.php +++ /dev/null @@ -1,116 +0,0 @@ -stripParentheses($expression); - - $echo = "make({$expression}, array_except(get_defined_vars(), array('__data', '__path')))->render(); ?>"; - - $this->footer[] = $echo; - - return ''; - } - - /** - * Compile the section statements into valid PHP. - * - * @param string $expression - * @return string - */ - protected function compileSection($expression) - { - $this->lastSection = trim($expression, "()'\" "); - - return "startSection{$expression}; ?>"; - } - - /** - * Replace the @parent directive to a placeholder. - * - * @return string - */ - protected function compileParent() - { - return ViewFactory::parentPlaceholder($this->lastSection ?: ''); - } - - /** - * Compile the yield statements into valid PHP. - * - * @param string $expression - * @return string - */ - protected function compileYield($expression) - { - return "yieldContent{$expression}; ?>"; - } - - /** - * Compile the show statements into valid PHP. - * - * @return string - */ - protected function compileShow() - { - return 'yieldSection(); ?>'; - } - - /** - * Compile the append statements into valid PHP. - * - * @return string - */ - protected function compileAppend() - { - return 'appendSection(); ?>'; - } - - /** - * Compile the overwrite statements into valid PHP. - * - * @return string - */ - protected function compileOverwrite() - { - return 'stopSection(true); ?>'; - } - - /** - * Compile the stop statements into valid PHP. - * - * @return string - */ - protected function compileStop() - { - return 'stopSection(); ?>'; - } - - /** - * Compile the end-section statements into valid PHP. - * - * @return string - */ - protected function compileEndsection() - { - return 'stopSection(); ?>'; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesLoops.php b/vendor/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesLoops.php deleted file mode 100644 index 9f64c4f2..00000000 --- a/vendor/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesLoops.php +++ /dev/null @@ -1,180 +0,0 @@ -forElseCounter; - - preg_match('/\( *(.*) +as *(.*)\)$/is', $expression, $matches); - - $iteratee = trim($matches[1]); - - $iteration = trim($matches[2]); - - $initLoop = "\$__currentLoopData = {$iteratee}; \$__env->addLoop(\$__currentLoopData);"; - - $iterateLoop = '$__env->incrementLoopIndices(); $loop = $__env->getLastLoop();'; - - return ""; - } - - /** - * Compile the for-else-empty and empty statements into valid PHP. - * - * @param string $expression - * @return string - */ - protected function compileEmpty($expression) - { - if ($expression) { - return ""; - } - - $empty = '$__empty_'.$this->forElseCounter--; - - return "popLoop(); \$loop = \$__env->getLastLoop(); if ({$empty}): ?>"; - } - - /** - * Compile the end-for-else statements into valid PHP. - * - * @return string - */ - protected function compileEndforelse() - { - return ''; - } - - /** - * Compile the end-empty statements into valid PHP. - * - * @return string - */ - protected function compileEndEmpty() - { - return ''; - } - - /** - * Compile the for statements into valid PHP. - * - * @param string $expression - * @return string - */ - protected function compileFor($expression) - { - return ""; - } - - /** - * Compile the for-each statements into valid PHP. - * - * @param string $expression - * @return string - */ - protected function compileForeach($expression) - { - preg_match('/\( *(.*) +as *(.*)\)$/is', $expression, $matches); - - $iteratee = trim($matches[1]); - - $iteration = trim($matches[2]); - - $initLoop = "\$__currentLoopData = {$iteratee}; \$__env->addLoop(\$__currentLoopData);"; - - $iterateLoop = '$__env->incrementLoopIndices(); $loop = $__env->getLastLoop();'; - - return ""; - } - - /** - * Compile the break statements into valid PHP. - * - * @param string $expression - * @return string - */ - protected function compileBreak($expression) - { - if ($expression) { - preg_match('/\(\s*(-?\d+)\s*\)$/', $expression, $matches); - - return $matches ? '' : ""; - } - - return ''; - } - - /** - * Compile the continue statements into valid PHP. - * - * @param string $expression - * @return string - */ - protected function compileContinue($expression) - { - if ($expression) { - preg_match('/\(\s*(-?\d+)\s*\)$/', $expression, $matches); - - return $matches ? '' : ""; - } - - return ''; - } - - /** - * Compile the end-for statements into valid PHP. - * - * @return string - */ - protected function compileEndfor() - { - return ''; - } - - /** - * Compile the end-for-each statements into valid PHP. - * - * @return string - */ - protected function compileEndforeach() - { - return 'popLoop(); $loop = $__env->getLastLoop(); ?>'; - } - - /** - * Compile the while statements into valid PHP. - * - * @param string $expression - * @return string - */ - protected function compileWhile($expression) - { - return ""; - } - - /** - * Compile the end-while statements into valid PHP. - * - * @return string - */ - protected function compileEndwhile() - { - return ''; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesRawPhp.php b/vendor/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesRawPhp.php deleted file mode 100644 index 41c7edfd..00000000 --- a/vendor/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesRawPhp.php +++ /dev/null @@ -1,32 +0,0 @@ -"; - } - - return '@php'; - } - - /** - * Compile the unset statements into valid PHP. - * - * @param string $expression - * @return string - */ - protected function compileUnset($expression) - { - return ""; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesStacks.php b/vendor/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesStacks.php deleted file mode 100644 index 79a380e6..00000000 --- a/vendor/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesStacks.php +++ /dev/null @@ -1,59 +0,0 @@ -yieldPushContent{$expression}; ?>"; - } - - /** - * Compile the push statements into valid PHP. - * - * @param string $expression - * @return string - */ - protected function compilePush($expression) - { - return "startPush{$expression}; ?>"; - } - - /** - * Compile the end-push statements into valid PHP. - * - * @return string - */ - protected function compileEndpush() - { - return 'stopPush(); ?>'; - } - - /** - * Compile the prepend statements into valid PHP. - * - * @param string $expression - * @return string - */ - protected function compilePrepend($expression) - { - return "startPrepend{$expression}; ?>"; - } - - /** - * Compile the end-prepend statements into valid PHP. - * - * @return string - */ - protected function compileEndprepend() - { - return 'stopPrepend(); ?>'; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesTranslations.php b/vendor/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesTranslations.php deleted file mode 100644 index feb7e651..00000000 --- a/vendor/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesTranslations.php +++ /dev/null @@ -1,44 +0,0 @@ -startTranslation(); ?>'; - } elseif ($expression[1] === '[') { - return "startTranslation{$expression}; ?>"; - } - - return "getFromJson{$expression}; ?>"; - } - - /** - * Compile the end-lang statements into valid PHP. - * - * @return string - */ - protected function compileEndlang() - { - return 'renderTranslation(); ?>'; - } - - /** - * Compile the choice statements into valid PHP. - * - * @param string $expression - * @return string - */ - protected function compileChoice($expression) - { - return "choice{$expression}; ?>"; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/View/Concerns/ManagesComponents.php b/vendor/laravel/framework/src/Illuminate/View/Concerns/ManagesComponents.php deleted file mode 100644 index b2141e99..00000000 --- a/vendor/laravel/framework/src/Illuminate/View/Concerns/ManagesComponents.php +++ /dev/null @@ -1,128 +0,0 @@ -componentStack[] = $name; - - $this->componentData[$this->currentComponent()] = $data; - - $this->slots[$this->currentComponent()] = []; - } - } - - /** - * Render the current component. - * - * @return string - */ - public function renderComponent() - { - $name = array_pop($this->componentStack); - - return $this->make($name, $this->componentData($name))->render(); - } - - /** - * Get the data for the given component. - * - * @param string $name - * @return array - */ - protected function componentData($name) - { - return array_merge( - $this->componentData[count($this->componentStack)], - ['slot' => new HtmlString(trim(ob_get_clean()))], - $this->slots[count($this->componentStack)] - ); - } - - /** - * Start the slot rendering process. - * - * @param string $name - * @param string|null $content - * @return void - */ - public function slot($name, $content = null) - { - if (count(func_get_args()) === 2) { - $this->slots[$this->currentComponent()][$name] = $content; - } else { - if (ob_start()) { - $this->slots[$this->currentComponent()][$name] = ''; - - $this->slotStack[$this->currentComponent()][] = $name; - } - } - } - - /** - * Save the slot content for rendering. - * - * @return void - */ - public function endSlot() - { - last($this->componentStack); - - $currentSlot = array_pop( - $this->slotStack[$this->currentComponent()] - ); - - $this->slots[$this->currentComponent()] - [$currentSlot] = new HtmlString(trim(ob_get_clean())); - } - - /** - * Get the index for the current component. - * - * @return int - */ - protected function currentComponent() - { - return count($this->componentStack) - 1; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/View/Concerns/ManagesEvents.php b/vendor/laravel/framework/src/Illuminate/View/Concerns/ManagesEvents.php deleted file mode 100644 index f3d7717c..00000000 --- a/vendor/laravel/framework/src/Illuminate/View/Concerns/ManagesEvents.php +++ /dev/null @@ -1,192 +0,0 @@ -addViewEvent($view, $callback, 'creating: '); - } - - return $creators; - } - - /** - * Register multiple view composers via an array. - * - * @param array $composers - * @return array - */ - public function composers(array $composers) - { - $registered = []; - - foreach ($composers as $callback => $views) { - $registered = array_merge($registered, $this->composer($views, $callback)); - } - - return $registered; - } - - /** - * Register a view composer event. - * - * @param array|string $views - * @param \Closure|string $callback - * @return array - */ - public function composer($views, $callback) - { - $composers = []; - - foreach ((array) $views as $view) { - $composers[] = $this->addViewEvent($view, $callback, 'composing: '); - } - - return $composers; - } - - /** - * Add an event for a given view. - * - * @param string $view - * @param \Closure|string $callback - * @param string $prefix - * @return \Closure|null - */ - protected function addViewEvent($view, $callback, $prefix = 'composing: ') - { - $view = $this->normalizeName($view); - - if ($callback instanceof Closure) { - $this->addEventListener($prefix.$view, $callback); - - return $callback; - } elseif (is_string($callback)) { - return $this->addClassEvent($view, $callback, $prefix); - } - } - - /** - * Register a class based view composer. - * - * @param string $view - * @param string $class - * @param string $prefix - * @return \Closure - */ - protected function addClassEvent($view, $class, $prefix) - { - $name = $prefix.$view; - - // When registering a class based view "composer", we will simply resolve the - // classes from the application IoC container then call the compose method - // on the instance. This allows for convenient, testable view composers. - $callback = $this->buildClassEventCallback( - $class, $prefix - ); - - $this->addEventListener($name, $callback); - - return $callback; - } - - /** - * Build a class based container callback Closure. - * - * @param string $class - * @param string $prefix - * @return \Closure - */ - protected function buildClassEventCallback($class, $prefix) - { - list($class, $method) = $this->parseClassEvent($class, $prefix); - - // Once we have the class and method name, we can build the Closure to resolve - // the instance out of the IoC container and call the method on it with the - // given arguments that are passed to the Closure as the composer's data. - return function () use ($class, $method) { - return call_user_func_array( - [$this->container->make($class), $method], func_get_args() - ); - }; - } - - /** - * Parse a class based composer name. - * - * @param string $class - * @param string $prefix - * @return array - */ - protected function parseClassEvent($class, $prefix) - { - return Str::parseCallback($class, $this->classEventMethodForPrefix($prefix)); - } - - /** - * Determine the class event method based on the given prefix. - * - * @param string $prefix - * @return string - */ - protected function classEventMethodForPrefix($prefix) - { - return Str::contains($prefix, 'composing') ? 'compose' : 'create'; - } - - /** - * Add a listener to the event dispatcher. - * - * @param string $name - * @param \Closure $callback - * @return void - */ - protected function addEventListener($name, $callback) - { - if (Str::contains($name, '*')) { - $callback = function ($name, array $data) use ($callback) { - return $callback($data[0]); - }; - } - - $this->events->listen($name, $callback); - } - - /** - * Call the composer for a given view. - * - * @param \Illuminate\Contracts\View\View $view - * @return void - */ - public function callComposer(ViewContract $view) - { - $this->events->dispatch('composing: '.$view->name(), [$view]); - } - - /** - * Call the creator for a given view. - * - * @param \Illuminate\Contracts\View\View $view - * @return void - */ - public function callCreator(ViewContract $view) - { - $this->events->dispatch('creating: '.$view->name(), [$view]); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/View/Concerns/ManagesLayouts.php b/vendor/laravel/framework/src/Illuminate/View/Concerns/ManagesLayouts.php deleted file mode 100644 index 6f492d19..00000000 --- a/vendor/laravel/framework/src/Illuminate/View/Concerns/ManagesLayouts.php +++ /dev/null @@ -1,218 +0,0 @@ -sectionStack[] = $section; - } - } else { - $this->extendSection($section, $content instanceof View ? $content : e($content)); - } - } - - /** - * Inject inline content into a section. - * - * @param string $section - * @param string $content - * @return void - */ - public function inject($section, $content) - { - $this->startSection($section, $content); - } - - /** - * Stop injecting content into a section and return its contents. - * - * @return string - */ - public function yieldSection() - { - if (empty($this->sectionStack)) { - return ''; - } - - return $this->yieldContent($this->stopSection()); - } - - /** - * Stop injecting content into a section. - * - * @param bool $overwrite - * @return string - * @throws \InvalidArgumentException - */ - public function stopSection($overwrite = false) - { - if (empty($this->sectionStack)) { - throw new InvalidArgumentException('Cannot end a section without first starting one.'); - } - - $last = array_pop($this->sectionStack); - - if ($overwrite) { - $this->sections[$last] = ob_get_clean(); - } else { - $this->extendSection($last, ob_get_clean()); - } - - return $last; - } - - /** - * Stop injecting content into a section and append it. - * - * @return string - * @throws \InvalidArgumentException - */ - public function appendSection() - { - if (empty($this->sectionStack)) { - throw new InvalidArgumentException('Cannot end a section without first starting one.'); - } - - $last = array_pop($this->sectionStack); - - if (isset($this->sections[$last])) { - $this->sections[$last] .= ob_get_clean(); - } else { - $this->sections[$last] = ob_get_clean(); - } - - return $last; - } - - /** - * Append content to a given section. - * - * @param string $section - * @param string $content - * @return void - */ - protected function extendSection($section, $content) - { - if (isset($this->sections[$section])) { - $content = str_replace(static::parentPlaceholder($section), $content, $this->sections[$section]); - } - - $this->sections[$section] = $content; - } - - /** - * Get the string contents of a section. - * - * @param string $section - * @param string $default - * @return string - */ - public function yieldContent($section, $default = '') - { - $sectionContent = $default instanceof View ? $default : e($default); - - if (isset($this->sections[$section])) { - $sectionContent = $this->sections[$section]; - } - - $sectionContent = str_replace('@@parent', '--parent--holder--', $sectionContent); - - return str_replace( - '--parent--holder--', '@parent', str_replace(static::parentPlaceholder($section), '', $sectionContent) - ); - } - - /** - * Get the parent placeholder for the current request. - * - * @param string $section - * @return string - */ - public static function parentPlaceholder($section = '') - { - if (! isset(static::$parentPlaceholder[$section])) { - static::$parentPlaceholder[$section] = '##parent-placeholder-'.sha1($section).'##'; - } - - return static::$parentPlaceholder[$section]; - } - - /** - * Check if section exists. - * - * @param string $name - * @return bool - */ - public function hasSection($name) - { - return array_key_exists($name, $this->sections); - } - - /** - * Get the contents of a section. - * - * @param string $name - * @param string $default - * @return mixed - */ - public function getSection($name, $default = null) - { - return $this->getSections()[$name] ?? $default; - } - - /** - * Get the entire array of sections. - * - * @return array - */ - public function getSections() - { - return $this->sections; - } - - /** - * Flush all of the sections. - * - * @return void - */ - public function flushSections() - { - $this->sections = []; - $this->sectionStack = []; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/View/Concerns/ManagesLoops.php b/vendor/laravel/framework/src/Illuminate/View/Concerns/ManagesLoops.php deleted file mode 100644 index 5f50b247..00000000 --- a/vendor/laravel/framework/src/Illuminate/View/Concerns/ManagesLoops.php +++ /dev/null @@ -1,90 +0,0 @@ -loopsStack); - - $this->loopsStack[] = [ - 'iteration' => 0, - 'index' => 0, - 'remaining' => $length ?? null, - 'count' => $length, - 'first' => true, - 'last' => isset($length) ? $length == 1 : null, - 'depth' => count($this->loopsStack) + 1, - 'parent' => $parent ? (object) $parent : null, - ]; - } - - /** - * Increment the top loop's indices. - * - * @return void - */ - public function incrementLoopIndices() - { - $loop = $this->loopsStack[$index = count($this->loopsStack) - 1]; - - $this->loopsStack[$index] = array_merge($this->loopsStack[$index], [ - 'iteration' => $loop['iteration'] + 1, - 'index' => $loop['iteration'], - 'first' => $loop['iteration'] == 0, - 'remaining' => isset($loop['count']) ? $loop['remaining'] - 1 : null, - 'last' => isset($loop['count']) ? $loop['iteration'] == $loop['count'] - 1 : null, - ]); - } - - /** - * Pop a loop from the top of the loop stack. - * - * @return void - */ - public function popLoop() - { - array_pop($this->loopsStack); - } - - /** - * Get an instance of the last loop in the stack. - * - * @return \stdClass|null - */ - public function getLastLoop() - { - if ($last = Arr::last($this->loopsStack)) { - return (object) $last; - } - } - - /** - * Get the entire loop stack. - * - * @return array - */ - public function getLoopStack() - { - return $this->loopsStack; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/View/Concerns/ManagesStacks.php b/vendor/laravel/framework/src/Illuminate/View/Concerns/ManagesStacks.php deleted file mode 100644 index 53af024f..00000000 --- a/vendor/laravel/framework/src/Illuminate/View/Concerns/ManagesStacks.php +++ /dev/null @@ -1,177 +0,0 @@ -pushStack[] = $section; - } - } else { - $this->extendPush($section, $content); - } - } - - /** - * Stop injecting content into a push section. - * - * @return string - * @throws \InvalidArgumentException - */ - public function stopPush() - { - if (empty($this->pushStack)) { - throw new InvalidArgumentException('Cannot end a push stack without first starting one.'); - } - - return tap(array_pop($this->pushStack), function ($last) { - $this->extendPush($last, ob_get_clean()); - }); - } - - /** - * Append content to a given push section. - * - * @param string $section - * @param string $content - * @return void - */ - protected function extendPush($section, $content) - { - if (! isset($this->pushes[$section])) { - $this->pushes[$section] = []; - } - - if (! isset($this->pushes[$section][$this->renderCount])) { - $this->pushes[$section][$this->renderCount] = $content; - } else { - $this->pushes[$section][$this->renderCount] .= $content; - } - } - - /** - * Start prepending content into a push section. - * - * @param string $section - * @param string $content - * @return void - */ - public function startPrepend($section, $content = '') - { - if ($content === '') { - if (ob_start()) { - $this->pushStack[] = $section; - } - } else { - $this->extendPrepend($section, $content); - } - } - - /** - * Stop prepending content into a push section. - * - * @return string - * @throws \InvalidArgumentException - */ - public function stopPrepend() - { - if (empty($this->pushStack)) { - throw new InvalidArgumentException('Cannot end a prepend operation without first starting one.'); - } - - return tap(array_pop($this->pushStack), function ($last) { - $this->extendPrepend($last, ob_get_clean()); - }); - } - - /** - * Prepend content to a given stack. - * - * @param string $section - * @param string $content - * @return void - */ - protected function extendPrepend($section, $content) - { - if (! isset($this->prepends[$section])) { - $this->prepends[$section] = []; - } - - if (! isset($this->prepends[$section][$this->renderCount])) { - $this->prepends[$section][$this->renderCount] = $content; - } else { - $this->prepends[$section][$this->renderCount] = $content.$this->prepends[$section][$this->renderCount]; - } - } - - /** - * Get the string contents of a push section. - * - * @param string $section - * @param string $default - * @return string - */ - public function yieldPushContent($section, $default = '') - { - if (! isset($this->pushes[$section]) && ! isset($this->prepends[$section])) { - return $default; - } - - $output = ''; - - if (isset($this->prepends[$section])) { - $output .= implode(array_reverse($this->prepends[$section])); - } - - if (isset($this->pushes[$section])) { - $output .= implode($this->pushes[$section]); - } - - return $output; - } - - /** - * Flush all of the stacks. - * - * @return void - */ - public function flushStacks() - { - $this->pushes = []; - $this->prepends = []; - $this->pushStack = []; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/View/Concerns/ManagesTranslations.php b/vendor/laravel/framework/src/Illuminate/View/Concerns/ManagesTranslations.php deleted file mode 100644 index 841c3fe1..00000000 --- a/vendor/laravel/framework/src/Illuminate/View/Concerns/ManagesTranslations.php +++ /dev/null @@ -1,38 +0,0 @@ -translationReplacements = $replacements; - } - - /** - * Render the current translation. - * - * @return string - */ - public function renderTranslation() - { - return $this->container->make('translator')->getFromJson( - trim(ob_get_clean()), $this->translationReplacements - ); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/View/Engines/CompilerEngine.php b/vendor/laravel/framework/src/Illuminate/View/Engines/CompilerEngine.php deleted file mode 100755 index 2f7f84b1..00000000 --- a/vendor/laravel/framework/src/Illuminate/View/Engines/CompilerEngine.php +++ /dev/null @@ -1,102 +0,0 @@ -compiler = $compiler; - } - - /** - * Get the evaluated contents of the view. - * - * @param string $path - * @param array $data - * @return string - */ - public function get($path, array $data = []) - { - $this->lastCompiled[] = $path; - - // If this given view has expired, which means it has simply been edited since - // it was last compiled, we will re-compile the views so we can evaluate a - // fresh copy of the view. We'll pass the compiler the path of the view. - if ($this->compiler->isExpired($path)) { - $this->compiler->compile($path); - } - - $compiled = $this->compiler->getCompiledPath($path); - - // Once we have the path to the compiled file, we will evaluate the paths with - // typical PHP just like any other templates. We also keep a stack of views - // which have been rendered for right exception messages to be generated. - $results = $this->evaluatePath($compiled, $data); - - array_pop($this->lastCompiled); - - return $results; - } - - /** - * Handle a view exception. - * - * @param \Exception $e - * @param int $obLevel - * @return void - * - * @throws \Exception - */ - protected function handleViewException(Exception $e, $obLevel) - { - $e = new ErrorException($this->getMessage($e), 0, 1, $e->getFile(), $e->getLine(), $e); - - parent::handleViewException($e, $obLevel); - } - - /** - * Get the exception message for an exception. - * - * @param \Exception $e - * @return string - */ - protected function getMessage(Exception $e) - { - return $e->getMessage().' (View: '.realpath(last($this->lastCompiled)).')'; - } - - /** - * Get the compiler implementation. - * - * @return \Illuminate\View\Compilers\CompilerInterface - */ - public function getCompiler() - { - return $this->compiler; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/View/Engines/Engine.php b/vendor/laravel/framework/src/Illuminate/View/Engines/Engine.php deleted file mode 100755 index bf5c748d..00000000 --- a/vendor/laravel/framework/src/Illuminate/View/Engines/Engine.php +++ /dev/null @@ -1,23 +0,0 @@ -lastRendered; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/View/Engines/EngineResolver.php b/vendor/laravel/framework/src/Illuminate/View/Engines/EngineResolver.php deleted file mode 100755 index 436ac8b0..00000000 --- a/vendor/laravel/framework/src/Illuminate/View/Engines/EngineResolver.php +++ /dev/null @@ -1,59 +0,0 @@ -resolved[$engine]); - - $this->resolvers[$engine] = $resolver; - } - - /** - * Resolve an engine instance by name. - * - * @param string $engine - * @return \Illuminate\Contracts\View\Engine - * @throws \InvalidArgumentException - */ - public function resolve($engine) - { - if (isset($this->resolved[$engine])) { - return $this->resolved[$engine]; - } - - if (isset($this->resolvers[$engine])) { - return $this->resolved[$engine] = call_user_func($this->resolvers[$engine]); - } - - throw new InvalidArgumentException("Engine [{$engine}] not found."); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/View/Engines/FileEngine.php b/vendor/laravel/framework/src/Illuminate/View/Engines/FileEngine.php deleted file mode 100644 index 360b5438..00000000 --- a/vendor/laravel/framework/src/Illuminate/View/Engines/FileEngine.php +++ /dev/null @@ -1,20 +0,0 @@ -evaluatePath($path, $data); - } - - /** - * Get the evaluated contents of the view at the given path. - * - * @param string $__path - * @param array $__data - * @return string - */ - protected function evaluatePath($__path, $__data) - { - $obLevel = ob_get_level(); - - ob_start(); - - extract($__data, EXTR_SKIP); - - // We'll evaluate the contents of the view inside a try/catch block so we can - // flush out any stray output that might get out before an error occurs or - // an exception is thrown. This prevents any partial views from leaking. - try { - include $__path; - } catch (Exception $e) { - $this->handleViewException($e, $obLevel); - } catch (Throwable $e) { - $this->handleViewException(new FatalThrowableError($e), $obLevel); - } - - return ltrim(ob_get_clean()); - } - - /** - * Handle a view exception. - * - * @param \Exception $e - * @param int $obLevel - * @return void - * - * @throws \Exception - */ - protected function handleViewException(Exception $e, $obLevel) - { - while (ob_get_level() > $obLevel) { - ob_end_clean(); - } - - throw $e; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/View/Factory.php b/vendor/laravel/framework/src/Illuminate/View/Factory.php deleted file mode 100755 index 9d4f6dc3..00000000 --- a/vendor/laravel/framework/src/Illuminate/View/Factory.php +++ /dev/null @@ -1,565 +0,0 @@ - 'blade', - 'php' => 'php', - 'css' => 'file', - ]; - - /** - * The view composer events. - * - * @var array - */ - protected $composers = []; - - /** - * The number of active rendering operations. - * - * @var int - */ - protected $renderCount = 0; - - /** - * Create a new view factory instance. - * - * @param \Illuminate\View\Engines\EngineResolver $engines - * @param \Illuminate\View\ViewFinderInterface $finder - * @param \Illuminate\Contracts\Events\Dispatcher $events - * @return void - */ - public function __construct(EngineResolver $engines, ViewFinderInterface $finder, Dispatcher $events) - { - $this->finder = $finder; - $this->events = $events; - $this->engines = $engines; - - $this->share('__env', $this); - } - - /** - * Get the evaluated view contents for the given view. - * - * @param string $path - * @param array $data - * @param array $mergeData - * @return \Illuminate\Contracts\View\View - */ - public function file($path, $data = [], $mergeData = []) - { - $data = array_merge($mergeData, $this->parseData($data)); - - return tap($this->viewInstance($path, $path, $data), function ($view) { - $this->callCreator($view); - }); - } - - /** - * Get the evaluated view contents for the given view. - * - * @param string $view - * @param array $data - * @param array $mergeData - * @return \Illuminate\Contracts\View\View - */ - public function make($view, $data = [], $mergeData = []) - { - $path = $this->finder->find( - $view = $this->normalizeName($view) - ); - - // Next, we will create the view instance and call the view creator for the view - // which can set any data, etc. Then we will return the view instance back to - // the caller for rendering or performing other view manipulations on this. - $data = array_merge($mergeData, $this->parseData($data)); - - return tap($this->viewInstance($view, $path, $data), function ($view) { - $this->callCreator($view); - }); - } - - /** - * Get the first view that actually exists from the given list. - * - * @param array $views - * @param array $data - * @param array $mergeData - * @return \Illuminate\Contracts\View\View - * - * @throws \InvalidArgumentException - */ - public function first(array $views, $data = [], $mergeData = []) - { - $view = Arr::first($views, function ($view) { - return $this->exists($view); - }); - - if (! $view) { - throw new InvalidArgumentException('None of the views in the given array exist.'); - } - - return $this->make($view, $data, $mergeData); - } - - /** - * Get the rendered content of the view based on a given condition. - * - * @param bool $condition - * @param string $view - * @param array $data - * @param array $mergeData - * @return string - */ - public function renderWhen($condition, $view, $data = [], $mergeData = []) - { - if (! $condition) { - return ''; - } - - return $this->make($view, $this->parseData($data), $mergeData)->render(); - } - - /** - * Get the rendered contents of a partial from a loop. - * - * @param string $view - * @param array $data - * @param string $iterator - * @param string $empty - * @return string - */ - public function renderEach($view, $data, $iterator, $empty = 'raw|') - { - $result = ''; - - // If is actually data in the array, we will loop through the data and append - // an instance of the partial view to the final result HTML passing in the - // iterated value of this data array, allowing the views to access them. - if (count($data) > 0) { - foreach ($data as $key => $value) { - $result .= $this->make( - $view, ['key' => $key, $iterator => $value] - )->render(); - } - } - - // If there is no data in the array, we will render the contents of the empty - // view. Alternatively, the "empty view" could be a raw string that begins - // with "raw|" for convenience and to let this know that it is a string. - else { - $result = Str::startsWith($empty, 'raw|') - ? substr($empty, 4) - : $this->make($empty)->render(); - } - - return $result; - } - - /** - * Normalize a view name. - * - * @param string $name - * @return string - */ - protected function normalizeName($name) - { - return ViewName::normalize($name); - } - - /** - * Parse the given data into a raw array. - * - * @param mixed $data - * @return array - */ - protected function parseData($data) - { - return $data instanceof Arrayable ? $data->toArray() : $data; - } - - /** - * Create a new view instance from the given arguments. - * - * @param string $view - * @param string $path - * @param array $data - * @return \Illuminate\Contracts\View\View - */ - protected function viewInstance($view, $path, $data) - { - return new View($this, $this->getEngineFromPath($path), $view, $path, $data); - } - - /** - * Determine if a given view exists. - * - * @param string $view - * @return bool - */ - public function exists($view) - { - try { - $this->finder->find($view); - } catch (InvalidArgumentException $e) { - return false; - } - - return true; - } - - /** - * Get the appropriate view engine for the given path. - * - * @param string $path - * @return \Illuminate\Contracts\View\Engine - * - * @throws \InvalidArgumentException - */ - public function getEngineFromPath($path) - { - if (! $extension = $this->getExtension($path)) { - throw new InvalidArgumentException("Unrecognized extension in file: {$path}"); - } - - $engine = $this->extensions[$extension]; - - return $this->engines->resolve($engine); - } - - /** - * Get the extension used by the view file. - * - * @param string $path - * @return string - */ - protected function getExtension($path) - { - $extensions = array_keys($this->extensions); - - return Arr::first($extensions, function ($value) use ($path) { - return Str::endsWith($path, '.'.$value); - }); - } - - /** - * Add a piece of shared data to the environment. - * - * @param array|string $key - * @param mixed $value - * @return mixed - */ - public function share($key, $value = null) - { - $keys = is_array($key) ? $key : [$key => $value]; - - foreach ($keys as $key => $value) { - $this->shared[$key] = $value; - } - - return $value; - } - - /** - * Increment the rendering counter. - * - * @return void - */ - public function incrementRender() - { - $this->renderCount++; - } - - /** - * Decrement the rendering counter. - * - * @return void - */ - public function decrementRender() - { - $this->renderCount--; - } - - /** - * Check if there are no active render operations. - * - * @return bool - */ - public function doneRendering() - { - return $this->renderCount == 0; - } - - /** - * Add a location to the array of view locations. - * - * @param string $location - * @return void - */ - public function addLocation($location) - { - $this->finder->addLocation($location); - } - - /** - * Add a new namespace to the loader. - * - * @param string $namespace - * @param string|array $hints - * @return $this - */ - public function addNamespace($namespace, $hints) - { - $this->finder->addNamespace($namespace, $hints); - - return $this; - } - - /** - * Prepend a new namespace to the loader. - * - * @param string $namespace - * @param string|array $hints - * @return $this - */ - public function prependNamespace($namespace, $hints) - { - $this->finder->prependNamespace($namespace, $hints); - - return $this; - } - - /** - * Replace the namespace hints for the given namespace. - * - * @param string $namespace - * @param string|array $hints - * @return $this - */ - public function replaceNamespace($namespace, $hints) - { - $this->finder->replaceNamespace($namespace, $hints); - - return $this; - } - - /** - * Register a valid view extension and its engine. - * - * @param string $extension - * @param string $engine - * @param \Closure $resolver - * @return void - */ - public function addExtension($extension, $engine, $resolver = null) - { - $this->finder->addExtension($extension); - - if (isset($resolver)) { - $this->engines->register($engine, $resolver); - } - - unset($this->extensions[$extension]); - - $this->extensions = array_merge([$extension => $engine], $this->extensions); - } - - /** - * Flush all of the factory state like sections and stacks. - * - * @return void - */ - public function flushState() - { - $this->renderCount = 0; - - $this->flushSections(); - $this->flushStacks(); - } - - /** - * Flush all of the section contents if done rendering. - * - * @return void - */ - public function flushStateIfDoneRendering() - { - if ($this->doneRendering()) { - $this->flushState(); - } - } - - /** - * Get the extension to engine bindings. - * - * @return array - */ - public function getExtensions() - { - return $this->extensions; - } - - /** - * Get the engine resolver instance. - * - * @return \Illuminate\View\Engines\EngineResolver - */ - public function getEngineResolver() - { - return $this->engines; - } - - /** - * Get the view finder instance. - * - * @return \Illuminate\View\ViewFinderInterface - */ - public function getFinder() - { - return $this->finder; - } - - /** - * Set the view finder instance. - * - * @param \Illuminate\View\ViewFinderInterface $finder - * @return void - */ - public function setFinder(ViewFinderInterface $finder) - { - $this->finder = $finder; - } - - /** - * Flush the cache of views located by the finder. - * - * @return void - */ - public function flushFinderCache() - { - $this->getFinder()->flush(); - } - - /** - * Get the event dispatcher instance. - * - * @return \Illuminate\Contracts\Events\Dispatcher - */ - public function getDispatcher() - { - return $this->events; - } - - /** - * Set the event dispatcher instance. - * - * @param \Illuminate\Contracts\Events\Dispatcher $events - * @return void - */ - public function setDispatcher(Dispatcher $events) - { - $this->events = $events; - } - - /** - * Get the IoC container instance. - * - * @return \Illuminate\Contracts\Container\Container - */ - public function getContainer() - { - return $this->container; - } - - /** - * Set the IoC container instance. - * - * @param \Illuminate\Contracts\Container\Container $container - * @return void - */ - public function setContainer(Container $container) - { - $this->container = $container; - } - - /** - * Get an item from the shared data. - * - * @param string $key - * @param mixed $default - * @return mixed - */ - public function shared($key, $default = null) - { - return Arr::get($this->shared, $key, $default); - } - - /** - * Get all of the shared data for the environment. - * - * @return array - */ - public function getShared() - { - return $this->shared; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/View/FileViewFinder.php b/vendor/laravel/framework/src/Illuminate/View/FileViewFinder.php deleted file mode 100755 index 26271b91..00000000 --- a/vendor/laravel/framework/src/Illuminate/View/FileViewFinder.php +++ /dev/null @@ -1,298 +0,0 @@ -files = $files; - $this->paths = $paths; - - if (isset($extensions)) { - $this->extensions = $extensions; - } - } - - /** - * Get the fully qualified location of the view. - * - * @param string $name - * @return string - */ - public function find($name) - { - if (isset($this->views[$name])) { - return $this->views[$name]; - } - - if ($this->hasHintInformation($name = trim($name))) { - return $this->views[$name] = $this->findNamespacedView($name); - } - - return $this->views[$name] = $this->findInPaths($name, $this->paths); - } - - /** - * Get the path to a template with a named path. - * - * @param string $name - * @return string - */ - protected function findNamespacedView($name) - { - list($namespace, $view) = $this->parseNamespaceSegments($name); - - return $this->findInPaths($view, $this->hints[$namespace]); - } - - /** - * Get the segments of a template with a named path. - * - * @param string $name - * @return array - * - * @throws \InvalidArgumentException - */ - protected function parseNamespaceSegments($name) - { - $segments = explode(static::HINT_PATH_DELIMITER, $name); - - if (count($segments) !== 2) { - throw new InvalidArgumentException("View [{$name}] has an invalid name."); - } - - if (! isset($this->hints[$segments[0]])) { - throw new InvalidArgumentException("No hint path defined for [{$segments[0]}]."); - } - - return $segments; - } - - /** - * Find the given view in the list of paths. - * - * @param string $name - * @param array $paths - * @return string - * - * @throws \InvalidArgumentException - */ - protected function findInPaths($name, $paths) - { - foreach ((array) $paths as $path) { - foreach ($this->getPossibleViewFiles($name) as $file) { - if ($this->files->exists($viewPath = $path.'/'.$file)) { - return $viewPath; - } - } - } - - throw new InvalidArgumentException("View [{$name}] not found."); - } - - /** - * Get an array of possible view files. - * - * @param string $name - * @return array - */ - protected function getPossibleViewFiles($name) - { - return array_map(function ($extension) use ($name) { - return str_replace('.', '/', $name).'.'.$extension; - }, $this->extensions); - } - - /** - * Add a location to the finder. - * - * @param string $location - * @return void - */ - public function addLocation($location) - { - $this->paths[] = $location; - } - - /** - * Prepend a location to the finder. - * - * @param string $location - * @return void - */ - public function prependLocation($location) - { - array_unshift($this->paths, $location); - } - - /** - * Add a namespace hint to the finder. - * - * @param string $namespace - * @param string|array $hints - * @return void - */ - public function addNamespace($namespace, $hints) - { - $hints = (array) $hints; - - if (isset($this->hints[$namespace])) { - $hints = array_merge($this->hints[$namespace], $hints); - } - - $this->hints[$namespace] = $hints; - } - - /** - * Prepend a namespace hint to the finder. - * - * @param string $namespace - * @param string|array $hints - * @return void - */ - public function prependNamespace($namespace, $hints) - { - $hints = (array) $hints; - - if (isset($this->hints[$namespace])) { - $hints = array_merge($hints, $this->hints[$namespace]); - } - - $this->hints[$namespace] = $hints; - } - - /** - * Replace the namespace hints for the given namespace. - * - * @param string $namespace - * @param string|array $hints - * @return void - */ - public function replaceNamespace($namespace, $hints) - { - $this->hints[$namespace] = (array) $hints; - } - - /** - * Register an extension with the view finder. - * - * @param string $extension - * @return void - */ - public function addExtension($extension) - { - if (($index = array_search($extension, $this->extensions)) !== false) { - unset($this->extensions[$index]); - } - - array_unshift($this->extensions, $extension); - } - - /** - * Returns whether or not the view name has any hint information. - * - * @param string $name - * @return bool - */ - public function hasHintInformation($name) - { - return strpos($name, static::HINT_PATH_DELIMITER) > 0; - } - - /** - * Flush the cache of located views. - * - * @return void - */ - public function flush() - { - $this->views = []; - } - - /** - * Get the filesystem instance. - * - * @return \Illuminate\Filesystem\Filesystem - */ - public function getFilesystem() - { - return $this->files; - } - - /** - * Get the active view paths. - * - * @return array - */ - public function getPaths() - { - return $this->paths; - } - - /** - * Get the namespace to file path hints. - * - * @return array - */ - public function getHints() - { - return $this->hints; - } - - /** - * Get registered extensions. - * - * @return array - */ - public function getExtensions() - { - return $this->extensions; - } -} diff --git a/vendor/laravel/framework/src/Illuminate/View/Middleware/ShareErrorsFromSession.php b/vendor/laravel/framework/src/Illuminate/View/Middleware/ShareErrorsFromSession.php deleted file mode 100644 index 618b7dd4..00000000 --- a/vendor/laravel/framework/src/Illuminate/View/Middleware/ShareErrorsFromSession.php +++ /dev/null @@ -1,51 +0,0 @@ -view = $view; - } - - /** - * Handle an incoming request. - * - * @param \Illuminate\Http\Request $request - * @param \Closure $next - * @return mixed - */ - public function handle($request, Closure $next) - { - // If the current session has an "errors" variable bound to it, we will share - // its value with all view instances so the views can easily access errors - // without having to bind. An empty bag is set when there aren't errors. - $this->view->share( - 'errors', $request->session()->get('errors') ?: new ViewErrorBag - ); - - // Putting the errors in the view for every view allows the developer to just - // assume that some errors are always available, which is convenient since - // they don't have to continually run checks for the presence of errors. - - return $next($request); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/View/View.php b/vendor/laravel/framework/src/Illuminate/View/View.php deleted file mode 100755 index 629b71a1..00000000 --- a/vendor/laravel/framework/src/Illuminate/View/View.php +++ /dev/null @@ -1,425 +0,0 @@ -view = $view; - $this->path = $path; - $this->engine = $engine; - $this->factory = $factory; - - $this->data = $data instanceof Arrayable ? $data->toArray() : (array) $data; - } - - /** - * Get the string contents of the view. - * - * @param callable|null $callback - * @return string - * - * @throws \Throwable - */ - public function render(callable $callback = null) - { - try { - $contents = $this->renderContents(); - - $response = isset($callback) ? call_user_func($callback, $this, $contents) : null; - - // Once we have the contents of the view, we will flush the sections if we are - // done rendering all views so that there is nothing left hanging over when - // another view gets rendered in the future by the application developer. - $this->factory->flushStateIfDoneRendering(); - - return ! is_null($response) ? $response : $contents; - } catch (Exception $e) { - $this->factory->flushState(); - - throw $e; - } catch (Throwable $e) { - $this->factory->flushState(); - - throw $e; - } - } - - /** - * Get the contents of the view instance. - * - * @return string - */ - protected function renderContents() - { - // We will keep track of the amount of views being rendered so we can flush - // the section after the complete rendering operation is done. This will - // clear out the sections for any separate views that may be rendered. - $this->factory->incrementRender(); - - $this->factory->callComposer($this); - - $contents = $this->getContents(); - - // Once we've finished rendering the view, we'll decrement the render count - // so that each sections get flushed out next time a view is created and - // no old sections are staying around in the memory of an environment. - $this->factory->decrementRender(); - - return $contents; - } - - /** - * Get the evaluated contents of the view. - * - * @return string - */ - protected function getContents() - { - return $this->engine->get($this->path, $this->gatherData()); - } - - /** - * Get the data bound to the view instance. - * - * @return array - */ - protected function gatherData() - { - $data = array_merge($this->factory->getShared(), $this->data); - - foreach ($data as $key => $value) { - if ($value instanceof Renderable) { - $data[$key] = $value->render(); - } - } - - return $data; - } - - /** - * Get the sections of the rendered view. - * - * @return string - */ - public function renderSections() - { - return $this->render(function () { - return $this->factory->getSections(); - }); - } - - /** - * Add a piece of data to the view. - * - * @param string|array $key - * @param mixed $value - * @return $this - */ - public function with($key, $value = null) - { - if (is_array($key)) { - $this->data = array_merge($this->data, $key); - } else { - $this->data[$key] = $value; - } - - return $this; - } - - /** - * Add a view instance to the view data. - * - * @param string $key - * @param string $view - * @param array $data - * @return $this - */ - public function nest($key, $view, array $data = []) - { - return $this->with($key, $this->factory->make($view, $data)); - } - - /** - * Add validation errors to the view. - * - * @param \Illuminate\Contracts\Support\MessageProvider|array $provider - * @return $this - */ - public function withErrors($provider) - { - $this->with('errors', $this->formatErrors($provider)); - - return $this; - } - - /** - * Format the given message provider into a MessageBag. - * - * @param \Illuminate\Contracts\Support\MessageProvider|array $provider - * @return \Illuminate\Support\MessageBag - */ - protected function formatErrors($provider) - { - return $provider instanceof MessageProvider - ? $provider->getMessageBag() : new MessageBag((array) $provider); - } - - /** - * Get the name of the view. - * - * @return string - */ - public function name() - { - return $this->getName(); - } - - /** - * Get the name of the view. - * - * @return string - */ - public function getName() - { - return $this->view; - } - - /** - * Get the array of view data. - * - * @return array - */ - public function getData() - { - return $this->data; - } - - /** - * Get the path to the view file. - * - * @return string - */ - public function getPath() - { - return $this->path; - } - - /** - * Set the path to the view. - * - * @param string $path - * @return void - */ - public function setPath($path) - { - $this->path = $path; - } - - /** - * Get the view factory instance. - * - * @return \Illuminate\View\Factory - */ - public function getFactory() - { - return $this->factory; - } - - /** - * Get the view's rendering engine. - * - * @return \Illuminate\Contracts\View\Engine - */ - public function getEngine() - { - return $this->engine; - } - - /** - * Determine if a piece of data is bound. - * - * @param string $key - * @return bool - */ - public function offsetExists($key) - { - return array_key_exists($key, $this->data); - } - - /** - * Get a piece of bound data to the view. - * - * @param string $key - * @return mixed - */ - public function offsetGet($key) - { - return $this->data[$key]; - } - - /** - * Set a piece of data on the view. - * - * @param string $key - * @param mixed $value - * @return void - */ - public function offsetSet($key, $value) - { - $this->with($key, $value); - } - - /** - * Unset a piece of data from the view. - * - * @param string $key - * @return void - */ - public function offsetUnset($key) - { - unset($this->data[$key]); - } - - /** - * Get a piece of data from the view. - * - * @param string $key - * @return mixed - */ - public function &__get($key) - { - return $this->data[$key]; - } - - /** - * Set a piece of data on the view. - * - * @param string $key - * @param mixed $value - * @return void - */ - public function __set($key, $value) - { - $this->with($key, $value); - } - - /** - * Check if a piece of data is bound to the view. - * - * @param string $key - * @return bool - */ - public function __isset($key) - { - return isset($this->data[$key]); - } - - /** - * Remove a piece of bound data from the view. - * - * @param string $key - * @return bool - */ - public function __unset($key) - { - unset($this->data[$key]); - } - - /** - * Dynamically bind parameters to the view. - * - * @param string $method - * @param array $parameters - * @return \Illuminate\View\View - * - * @throws \BadMethodCallException - */ - public function __call($method, $parameters) - { - if (static::hasMacro($method)) { - return $this->macroCall($method, $parameters); - } - - if (! Str::startsWith($method, 'with')) { - throw new BadMethodCallException(sprintf( - 'Method %s::%s does not exist.', static::class, $method - )); - } - - return $this->with(Str::camel(substr($method, 4)), $parameters[0]); - } - - /** - * Get the string contents of the view. - * - * @return string - */ - public function __toString() - { - return $this->render(); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/View/ViewFinderInterface.php b/vendor/laravel/framework/src/Illuminate/View/ViewFinderInterface.php deleted file mode 100755 index 49d609ea..00000000 --- a/vendor/laravel/framework/src/Illuminate/View/ViewFinderInterface.php +++ /dev/null @@ -1,71 +0,0 @@ -registerFactory(); - - $this->registerViewFinder(); - - $this->registerEngineResolver(); - } - - /** - * Register the view environment. - * - * @return void - */ - public function registerFactory() - { - $this->app->singleton('view', function ($app) { - // Next we need to grab the engine resolver instance that will be used by the - // environment. The resolver will be used by an environment to get each of - // the various engine implementations such as plain PHP or Blade engine. - $resolver = $app['view.engine.resolver']; - - $finder = $app['view.finder']; - - $factory = $this->createFactory($resolver, $finder, $app['events']); - - // We will also set the container instance on this view environment since the - // view composers may be classes registered in the container, which allows - // for great testable, flexible composers for the application developer. - $factory->setContainer($app); - - $factory->share('app', $app); - - return $factory; - }); - } - - /** - * Create a new Factory Instance. - * - * @param \Illuminate\View\Engines\EngineResolver $resolver - * @param \Illuminate\View\ViewFinderInterface $finder - * @param \Illuminate\Contracts\Events\Dispatcher $events - * @return \Illuminate\View\Factory - */ - protected function createFactory($resolver, $finder, $events) - { - return new Factory($resolver, $finder, $events); - } - - /** - * Register the view finder implementation. - * - * @return void - */ - public function registerViewFinder() - { - $this->app->bind('view.finder', function ($app) { - return new FileViewFinder($app['files'], $app['config']['view.paths']); - }); - } - - /** - * Register the engine resolver instance. - * - * @return void - */ - public function registerEngineResolver() - { - $this->app->singleton('view.engine.resolver', function () { - $resolver = new EngineResolver; - - // Next, we will register the various view engines with the resolver so that the - // environment will resolve the engines needed for various views based on the - // extension of view file. We call a method for each of the view's engines. - foreach (['file', 'php', 'blade'] as $engine) { - $this->{'register'.ucfirst($engine).'Engine'}($resolver); - } - - return $resolver; - }); - } - - /** - * Register the file engine implementation. - * - * @param \Illuminate\View\Engines\EngineResolver $resolver - * @return void - */ - public function registerFileEngine($resolver) - { - $resolver->register('file', function () { - return new FileEngine; - }); - } - - /** - * Register the PHP engine implementation. - * - * @param \Illuminate\View\Engines\EngineResolver $resolver - * @return void - */ - public function registerPhpEngine($resolver) - { - $resolver->register('php', function () { - return new PhpEngine; - }); - } - - /** - * Register the Blade engine implementation. - * - * @param \Illuminate\View\Engines\EngineResolver $resolver - * @return void - */ - public function registerBladeEngine($resolver) - { - // The Compiler engine requires an instance of the CompilerInterface, which in - // this case will be the Blade compiler, so we'll first create the compiler - // instance to pass into the engine so it can compile the views properly. - $this->app->singleton('blade.compiler', function () { - return new BladeCompiler( - $this->app['files'], $this->app['config']['view.compiled'] - ); - }); - - $resolver->register('blade', function () { - return new CompilerEngine($this->app['blade.compiler']); - }); - } -} diff --git a/vendor/laravel/framework/src/Illuminate/View/composer.json b/vendor/laravel/framework/src/Illuminate/View/composer.json deleted file mode 100644 index c82d2e0e..00000000 --- a/vendor/laravel/framework/src/Illuminate/View/composer.json +++ /dev/null @@ -1,39 +0,0 @@ -{ - "name": "illuminate/view", - "description": "The Illuminate View package.", - "license": "MIT", - "homepage": "https://laravel.com", - "support": { - "issues": "https://github.com/laravel/framework/issues", - "source": "https://github.com/laravel/framework" - }, - "authors": [ - { - "name": "Taylor Otwell", - "email": "taylor@laravel.com" - } - ], - "require": { - "php": "^7.1.3", - "illuminate/container": "5.6.*", - "illuminate/contracts": "5.6.*", - "illuminate/events": "5.6.*", - "illuminate/filesystem": "5.6.*", - "illuminate/support": "5.6.*", - "symfony/debug": "~4.0" - }, - "autoload": { - "psr-4": { - "Illuminate\\View\\": "" - } - }, - "extra": { - "branch-alias": { - "dev-master": "5.6-dev" - } - }, - "config": { - "sort-packages": true - }, - "minimum-stability": "dev" -} diff --git a/vendor/laravel/tinker/LICENSE.txt b/vendor/laravel/tinker/LICENSE.txt deleted file mode 100644 index 1ce59636..00000000 --- a/vendor/laravel/tinker/LICENSE.txt +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/vendor/laravel/tinker/README.md b/vendor/laravel/tinker/README.md deleted file mode 100644 index bf2cb4cb..00000000 --- a/vendor/laravel/tinker/README.md +++ /dev/null @@ -1,36 +0,0 @@ -

- -

-Build Status -Total Downloads -Latest Stable Version -License -

- -## Introduction - -Laravel Tinker is a powerful REPL for the Laravel framework. - -## Installation - -To get started with Laravel Tinker, simply run: - - composer require laravel/tinker - -If you are using Laravel 5.5+, there is no need to manually register the service provider. However, if you are using an earlier version of Laravel, register the `TinkerServiceProvider` in your `app` configuration file: - -```php -'providers' => [ - // Other service providers... - - Laravel\Tinker\TinkerServiceProvider::class, -], -``` - -## Basic Usage - -From your console, execute the `php artisan tinker` command. - -## License - -Laravel Tinker is open-sourced software licensed under the [MIT license](http://opensource.org/licenses/MIT) diff --git a/vendor/laravel/tinker/composer.json b/vendor/laravel/tinker/composer.json deleted file mode 100644 index 23f6b154..00000000 --- a/vendor/laravel/tinker/composer.json +++ /dev/null @@ -1,49 +0,0 @@ -{ - "name": "laravel/tinker", - "description": "Powerful REPL for the Laravel framework.", - "keywords": ["tinker", "repl", "psysh", "laravel"], - "license": "MIT", - "authors": [ - { - "name": "Taylor Otwell", - "email": "taylor@laravel.com" - } - ], - "require": { - "php": ">=5.5.9", - "illuminate/console": "~5.1", - "illuminate/contracts": "~5.1", - "illuminate/support": "~5.1", - "psy/psysh": "0.7.*|0.8.*|0.9.*", - "symfony/var-dumper": "~3.0|~4.0" - }, - "require-dev": { - "phpunit/phpunit": "~4.0|~5.0" - }, - "autoload": { - "psr-4": { - "Laravel\\Tinker\\": "src/" - } - }, - "autoload-dev": { - "psr-4": { - "Tests\\": "tests/" - } - }, - "extra": { - "branch-alias": { - "dev-master": "1.0-dev" - }, - "laravel": { - "providers": [ - "Laravel\\Tinker\\TinkerServiceProvider" - ] - } - }, - "config": { - "sort-packages": true - }, - "suggest": { - "illuminate/database": "The Illuminate Database package (~5.1)." - } -} diff --git a/vendor/laravel/tinker/config/tinker.php b/vendor/laravel/tinker/config/tinker.php deleted file mode 100644 index 1341c1b0..00000000 --- a/vendor/laravel/tinker/config/tinker.php +++ /dev/null @@ -1,18 +0,0 @@ - [], - -]; diff --git a/vendor/laravel/tinker/src/ClassAliasAutoloader.php b/vendor/laravel/tinker/src/ClassAliasAutoloader.php deleted file mode 100644 index 5afdb4f5..00000000 --- a/vendor/laravel/tinker/src/ClassAliasAutoloader.php +++ /dev/null @@ -1,116 +0,0 @@ -shell = $shell; - - $vendorPath = dirname(dirname($classMapPath)); - - $classes = require $classMapPath; - - $excludedAliases = collect(config('tinker.dont_alias', [])); - - foreach ($classes as $class => $path) { - if (! Str::contains($class, '\\') || Str::startsWith($path, $vendorPath)) { - continue; - } - - if (! $excludedAliases->filter(function ($alias) use ($class) { - return Str::startsWith($class, $alias); - })->isEmpty()) { - continue; - } - - $name = class_basename($class); - - if (! isset($this->classes[$name])) { - $this->classes[$name] = $class; - } - } - } - - /** - * Find the closest class by name. - * - * @param string $class - * @return void - */ - public function aliasClass($class) - { - if (Str::contains($class, '\\')) { - return; - } - - $fullName = isset($this->classes[$class]) - ? $this->classes[$class] - : false; - - if ($fullName) { - $this->shell->writeStdout("[!] Aliasing '{$class}' to '{$fullName}' for this Tinker session.\n"); - - class_alias($fullName, $class); - } - } - - /** - * Unregister the alias loader instance. - * - * @return void - */ - public function unregister() - { - spl_autoload_unregister([$this, 'aliasClass']); - } - - /** - * Handle the destruction of the instance. - * - * @return void - */ - public function __destruct() - { - $this->unregister(); - } -} diff --git a/vendor/laravel/tinker/src/Console/TinkerCommand.php b/vendor/laravel/tinker/src/Console/TinkerCommand.php deleted file mode 100644 index 8985e249..00000000 --- a/vendor/laravel/tinker/src/Console/TinkerCommand.php +++ /dev/null @@ -1,123 +0,0 @@ -getApplication()->setCatchExceptions(false); - - $config = new Configuration([ - 'updateCheck' => 'never' - ]); - - $config->getPresenter()->addCasters( - $this->getCasters() - ); - - $shell = new Shell($config); - $shell->addCommands($this->getCommands()); - $shell->setIncludes($this->argument('include')); - - $path = $this->getLaravel()->basePath('vendor/composer/autoload_classmap.php'); - - $loader = ClassAliasAutoloader::register($shell, $path); - - try { - $shell->run(); - } finally { - $loader->unregister(); - } - } - - /** - * Get artisan commands to pass through to PsySH. - * - * @return array - */ - protected function getCommands() - { - $commands = []; - - foreach ($this->getApplication()->all() as $name => $command) { - if (in_array($name, $this->commandWhitelist)) { - $commands[] = $command; - } - } - - foreach (config('tinker.commands', []) as $command) { - $commands[] = $this->getApplication()->resolve($command); - } - - return $commands; - } - - /** - * Get an array of Laravel tailored casters. - * - * @return array - */ - protected function getCasters() - { - $casters = [ - 'Illuminate\Support\Collection' => 'Laravel\Tinker\TinkerCaster::castCollection', - ]; - - if (class_exists('Illuminate\Database\Eloquent\Model')) { - $casters['Illuminate\Database\Eloquent\Model'] = 'Laravel\Tinker\TinkerCaster::castModel'; - } - - if (class_exists('Illuminate\Foundation\Application')) { - $casters['Illuminate\Foundation\Application'] = 'Laravel\Tinker\TinkerCaster::castApplication'; - } - - return $casters; - } - - /** - * Get the console command arguments. - * - * @return array - */ - protected function getArguments() - { - return [ - ['include', InputArgument::IS_ARRAY, 'Include file(s) before starting tinker'], - ]; - } -} diff --git a/vendor/laravel/tinker/src/TinkerCaster.php b/vendor/laravel/tinker/src/TinkerCaster.php deleted file mode 100644 index 42862e37..00000000 --- a/vendor/laravel/tinker/src/TinkerCaster.php +++ /dev/null @@ -1,95 +0,0 @@ -$property(); - - if (! is_null($val)) { - $results[Caster::PREFIX_VIRTUAL.$property] = $val; - } - } catch (Exception $e) { - // - } - } - - return $results; - } - - /** - * Get an array representing the properties of a collection. - * - * @param \Illuminate\Support\Collection $collection - * @return array - */ - public static function castCollection($collection) - { - return [ - Caster::PREFIX_VIRTUAL.'all' => $collection->all(), - ]; - } - - /** - * Get an array representing the properties of a model. - * - * @param \Illuminate\Database\Eloquent\Model $model - * @return array - */ - public static function castModel($model) - { - $attributes = array_merge( - $model->getAttributes(), $model->getRelations() - ); - - $visible = array_flip( - $model->getVisible() ?: array_diff(array_keys($attributes), $model->getHidden()) - ); - - $results = []; - - foreach (array_intersect_key($attributes, $visible) as $key => $value) { - $results[(isset($visible[$key]) ? Caster::PREFIX_VIRTUAL : Caster::PREFIX_PROTECTED).$key] = $value; - } - - return $results; - } -} diff --git a/vendor/laravel/tinker/src/TinkerServiceProvider.php b/vendor/laravel/tinker/src/TinkerServiceProvider.php deleted file mode 100644 index 76204fb4..00000000 --- a/vendor/laravel/tinker/src/TinkerServiceProvider.php +++ /dev/null @@ -1,60 +0,0 @@ -app instanceof LaravelApplication && $this->app->runningInConsole()) { - $this->publishes([$source => config_path('tinker.php')]); - } elseif ($this->app instanceof LumenApplication) { - $this->app->configure('tinker'); - } - - $this->mergeConfigFrom($source, 'tinker'); - } - - /** - * Register the service provider. - * - * @return void - */ - public function register() - { - $this->app->singleton('command.tinker', function () { - return new TinkerCommand; - }); - - $this->commands(['command.tinker']); - } - - /** - * Get the services provided by the provider. - * - * @return array - */ - public function provides() - { - return ['command.tinker']; - } -} diff --git a/vendor/laravelcollective/html/CONTRIBUTING.md b/vendor/laravelcollective/html/CONTRIBUTING.md deleted file mode 100755 index 2cbf8251..00000000 --- a/vendor/laravelcollective/html/CONTRIBUTING.md +++ /dev/null @@ -1,3 +0,0 @@ -# Laravel Contribution Guide - -Thank you for considering contributing to the Laravel framework! The contribution guide can be found in the [Laravel documentation](http://laravel.com/docs/contributions). Please review the entire guide before sending a pull request. diff --git a/vendor/laravelcollective/html/LICENSE.txt b/vendor/laravelcollective/html/LICENSE.txt deleted file mode 100644 index 40cd6a3a..00000000 --- a/vendor/laravelcollective/html/LICENSE.txt +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/vendor/laravelcollective/html/composer.json b/vendor/laravelcollective/html/composer.json deleted file mode 100755 index 72a47c15..00000000 --- a/vendor/laravelcollective/html/composer.json +++ /dev/null @@ -1,57 +0,0 @@ -{ - "name": "laravelcollective/html", - "description": "HTML and Form Builders for the Laravel Framework", - "license": "MIT", - "homepage": "https://laravelcollective.com", - "support": { - "issues": "https://github.com/LaravelCollective/html/issues", - "source": "https://github.com/LaravelCollective/html" - }, - "authors": [ - { - "name": "Adam Engebretson", - "email": "adam@laravelcollective.com" - }, - { - "name": "Taylor Otwell", - "email": "taylorotwell@gmail.com" - } - ], - "require": { - "php": ">=7.1.3", - "illuminate/http": "5.6.*", - "illuminate/routing": "5.6.*", - "illuminate/session": "5.6.*", - "illuminate/support": "5.6.*", - "illuminate/view": "5.6.*" - }, - "require-dev": { - "illuminate/database": "5.6.*", - "mockery/mockery": "~1.0", - "phpunit/phpunit": "~7.1" - }, - "autoload": { - "psr-4": { - "Collective\\Html\\": "src/" - }, - "files": [ - "src/helpers.php" - ] - }, - "extra": { - "branch-alias": { - "dev-master": "5.6-dev" - }, - "laravel": { - "providers": [ - "Collective\\Html\\HtmlServiceProvider" - ], - "aliases": { - "Form": "Collective\\Html\\FormFacade", - "Html": "Collective\\Html\\HtmlFacade" - } - } - }, - "minimum-stability": "dev", - "prefer-stable": true -} diff --git a/vendor/laravelcollective/html/readme.md b/vendor/laravelcollective/html/readme.md deleted file mode 100644 index 4d3d9e1a..00000000 --- a/vendor/laravelcollective/html/readme.md +++ /dev/null @@ -1,9 +0,0 @@ -# Forms & HTML - -[![Build Status](https://travis-ci.org/LaravelCollective/html.svg)](https://travis-ci.org/LaravelCollective/html) -[![Total Downloads](https://poser.pugx.org/LaravelCollective/html/downloads)](https://packagist.org/packages/laravelcollective/html) -[![Latest Stable Version](https://poser.pugx.org/LaravelCollective/html/v/stable.svg)](https://packagist.org/packages/laravelcollective/html) -[![Latest Unstable Version](https://poser.pugx.org/LaravelCollective/html/v/unstable.svg)](https://packagist.org/packages/laravelcollective/html) -[![License](https://poser.pugx.org/LaravelCollective/html/license.svg)](https://packagist.org/packages/laravelcollective/html) - -Official documentation for Forms & Html for The Laravel Framework can be found at the [LaravelCollective](http://laravelcollective.com) website. diff --git a/vendor/laravelcollective/html/src/Componentable.php b/vendor/laravelcollective/html/src/Componentable.php deleted file mode 100644 index a0a364b4..00000000 --- a/vendor/laravelcollective/html/src/Componentable.php +++ /dev/null @@ -1,110 +0,0 @@ -getComponentData($component['signature'], $arguments); - - return new HtmlString( - $this->view->make($component['view'], $data)->render() - ); - } - - /** - * Prepare the component data, while respecting provided defaults. - * - * @param array $signature - * @param array $arguments - * - * @return array - */ - protected function getComponentData(array $signature, array $arguments) - { - $data = []; - - $i = 0; - foreach ($signature as $variable => $default) { - // If the "variable" value is actually a numeric key, we can assume that - // no default had been specified for the component argument and we'll - // just use null instead, so that we can treat them all the same. - if (is_numeric($variable)) { - $variable = $default; - $default = null; - } - - $data[$variable] = array_get($arguments, $i, $default); - - $i++; - } - - return $data; - } - - /** - * Dynamically handle calls to the class. - * - * @param string $method - * @param array $parameters - * - * @return \Illuminate\Contracts\View\View|mixed - * - * @throws \BadMethodCallException - */ - public function __call($method, $parameters) - { - if (static::hasComponent($method)) { - return $this->renderComponent($method, $parameters); - } - - throw new BadMethodCallException("Method {$method} does not exist."); - } -} diff --git a/vendor/laravelcollective/html/src/Eloquent/FormAccessible.php b/vendor/laravelcollective/html/src/Eloquent/FormAccessible.php deleted file mode 100644 index 0afd17ee..00000000 --- a/vendor/laravelcollective/html/src/Eloquent/FormAccessible.php +++ /dev/null @@ -1,119 +0,0 @@ -getAttributeFromArray($key); - - // If the attribute is listed as a date, we will convert it to a DateTime - // instance on retrieval, which makes it quite convenient to work with - // date fields without having to create a mutator for each property. - if (in_array($key, $this->getDates())) { - if (! is_null($value)) { - $value = $this->asDateTime($value); - } - } - - // If the attribute has a get mutator, we will call that then return what - // it returns as the value, which is useful for transforming values on - // retrieval from the model to a form that is more useful for usage. - if ($this->hasFormMutator($key)) { - return $this->mutateFormAttribute($key, $value); - } - - $keys = explode('.', $key); - - if ($this->isNestedModel($keys[0])) { - $relatedModel = $this->getRelation($keys[0]); - - unset($keys[0]); - $key = implode('.', $keys); - - if (method_exists($relatedModel, 'hasFormMutator') && $key !== '' && $relatedModel->hasFormMutator($key)) { - return $relatedModel->getFormValue($key); - } - - return data_get($relatedModel, empty($key)? null: $key); - } - - // No form mutator, let the model resolve this - return data_get($this, $key); - } - - /** - * Check for a nested model. - * - * @param string $key - * - * @return bool - */ - public function isNestedModel($key) - { - if (in_array($key, array_keys($this->getRelations()))) { - return true; - } - - return false; - } - - /** - * @param $key - * - * @return bool - */ - public function hasFormMutator($key) - { - $methods = $this->getReflection()->getMethods(ReflectionMethod::IS_PUBLIC); - - $mutator = collect($methods) - ->first(function (ReflectionMethod $method) use ($key) { - return $method->getName() === 'form' . Str::studly($key) . 'Attribute'; - }); - - return (bool) $mutator; - } - - /** - * @param $key - * @param $value - * - * @return mixed - */ - private function mutateFormAttribute($key, $value) - { - return $this->{'form' . Str::studly($key) . 'Attribute'}($value); - } - - /** - * Get a ReflectionClass Instance - * @return ReflectionClass - */ - protected function getReflection() - { - if (! $this->reflection) { - $this->reflection = new ReflectionClass($this); - } - - return $this->reflection; - } -} diff --git a/vendor/laravelcollective/html/src/FormBuilder.php b/vendor/laravelcollective/html/src/FormBuilder.php deleted file mode 100644 index c15ef66b..00000000 --- a/vendor/laravelcollective/html/src/FormBuilder.php +++ /dev/null @@ -1,1434 +0,0 @@ -url = $url; - $this->html = $html; - $this->view = $view; - $this->csrfToken = $csrfToken; - $this->request = $request; - } - - /** - * Open up a new HTML form. - * - * @param array $options - * - * @return \Illuminate\Support\HtmlString - */ - public function open(array $options = []) - { - $method = array_get($options, 'method', 'post'); - - // We need to extract the proper method from the attributes. If the method is - // something other than GET or POST we'll use POST since we will spoof the - // actual method since forms don't support the reserved methods in HTML. - $attributes['method'] = $this->getMethod($method); - - $attributes['action'] = $this->getAction($options); - - $attributes['accept-charset'] = 'UTF-8'; - - // If the method is PUT, PATCH or DELETE we will need to add a spoofer hidden - // field that will instruct the Symfony request to pretend the method is a - // different method than it actually is, for convenience from the forms. - $append = $this->getAppendage($method); - - if (isset($options['files']) && $options['files']) { - $options['enctype'] = 'multipart/form-data'; - } - - // Finally we're ready to create the final form HTML field. We will attribute - // format the array of attributes. We will also add on the appendage which - // is used to spoof requests for this PUT, PATCH, etc. methods on forms. - $attributes = array_merge( - - $attributes, array_except($options, $this->reserved) - - ); - - // Finally, we will concatenate all of the attributes into a single string so - // we can build out the final form open statement. We'll also append on an - // extra value for the hidden _method field if it's needed for the form. - $attributes = $this->html->attributes($attributes); - - return $this->toHtmlString('' . $append); - } - - /** - * Create a new model based form builder. - * - * @param mixed $model - * @param array $options - * - * @return \Illuminate\Support\HtmlString - */ - public function model($model, array $options = []) - { - $this->model = $model; - - return $this->open($options); - } - - /** - * Set the model instance on the form builder. - * - * @param mixed $model - * - * @return void - */ - public function setModel($model) - { - $this->model = $model; - } - - /** - * Get the current model instance on the form builder. - * - * @return mixed $model - */ - public function getModel() - { - return $this->model; - } - - /** - * Close the current form. - * - * @return string - */ - public function close() - { - $this->labels = []; - - $this->model = null; - - return $this->toHtmlString(''); - } - - /** - * Generate a hidden field with the current CSRF token. - * - * @return string - */ - public function token() - { - $token = ! empty($this->csrfToken) ? $this->csrfToken : $this->session->token(); - - return $this->hidden('_token', $token); - } - - /** - * Create a form label element. - * - * @param string $name - * @param string $value - * @param array $options - * @param bool $escape_html - * - * @return \Illuminate\Support\HtmlString - */ - public function label($name, $value = null, $options = [], $escape_html = true) - { - $this->labels[] = $name; - - $options = $this->html->attributes($options); - - $value = $this->formatLabel($name, $value); - - if ($escape_html) { - $value = $this->html->entities($value); - } - - return $this->toHtmlString(''); - } - - /** - * Format the label value. - * - * @param string $name - * @param string|null $value - * - * @return string - */ - protected function formatLabel($name, $value) - { - return $value ?: ucwords(str_replace('_', ' ', $name)); - } - - /** - * Create a form input field. - * - * @param string $type - * @param string $name - * @param string $value - * @param array $options - * - * @return \Illuminate\Support\HtmlString - */ - public function input($type, $name, $value = null, $options = []) - { - $this->type = $type; - - if (! isset($options['name'])) { - $options['name'] = $name; - } - - // We will get the appropriate value for the given field. We will look for the - // value in the session for the value in the old input data then we'll look - // in the model instance if one is set. Otherwise we will just use empty. - $id = $this->getIdAttribute($name, $options); - - if (! in_array($type, $this->skipValueTypes)) { - $value = $this->getValueAttribute($name, $value); - } - - // Once we have the type, value, and ID we can merge them into the rest of the - // attributes array so we can convert them into their HTML attribute format - // when creating the HTML element. Then, we will return the entire input. - $merge = compact('type', 'value', 'id'); - - $options = array_merge($options, $merge); - - return $this->toHtmlString('html->attributes($options) . '>'); - } - - /** - * Create a text input field. - * - * @param string $name - * @param string $value - * @param array $options - * - * @return \Illuminate\Support\HtmlString - */ - public function text($name, $value = null, $options = []) - { - return $this->input('text', $name, $value, $options); - } - - /** - * Create a password input field. - * - * @param string $name - * @param array $options - * - * @return \Illuminate\Support\HtmlString - */ - public function password($name, $options = []) - { - return $this->input('password', $name, '', $options); - } - - /** - * Create a range input field. - * - * @param string $name - * @param string $value - * @param array $options - * - * @return \Illuminate\Support\HtmlString - */ - public function range($name, $value = null, $options = []) - { - return $this->input('range', $name, $value, $options); - } - - /** - * Create a hidden input field. - * - * @param string $name - * @param string $value - * @param array $options - * - * @return \Illuminate\Support\HtmlString - */ - public function hidden($name, $value = null, $options = []) - { - return $this->input('hidden', $name, $value, $options); - } - - /** - * Create a search input field. - * - * @param string $name - * @param string $value - * @param array $options - * - * @return \Illuminate\Support\HtmlString - */ - public function search($name, $value = null, $options = []) - { - return $this->input('search', $name, $value, $options); - } - - /** - * Create an e-mail input field. - * - * @param string $name - * @param string $value - * @param array $options - * - * @return \Illuminate\Support\HtmlString - */ - public function email($name, $value = null, $options = []) - { - return $this->input('email', $name, $value, $options); - } - - /** - * Create a tel input field. - * - * @param string $name - * @param string $value - * @param array $options - * - * @return \Illuminate\Support\HtmlString - */ - public function tel($name, $value = null, $options = []) - { - return $this->input('tel', $name, $value, $options); - } - - /** - * Create a number input field. - * - * @param string $name - * @param string $value - * @param array $options - * - * @return \Illuminate\Support\HtmlString - */ - public function number($name, $value = null, $options = []) - { - return $this->input('number', $name, $value, $options); - } - - /** - * Create a date input field. - * - * @param string $name - * @param string $value - * @param array $options - * - * @return \Illuminate\Support\HtmlString - */ - public function date($name, $value = null, $options = []) - { - if ($value instanceof DateTime) { - $value = $value->format('Y-m-d'); - } - - return $this->input('date', $name, $value, $options); - } - - /** - * Create a datetime input field. - * - * @param string $name - * @param string $value - * @param array $options - * - * @return \Illuminate\Support\HtmlString - */ - public function datetime($name, $value = null, $options = []) - { - if ($value instanceof DateTime) { - $value = $value->format(DateTime::RFC3339); - } - - return $this->input('datetime', $name, $value, $options); - } - - /** - * Create a datetime-local input field. - * - * @param string $name - * @param string $value - * @param array $options - * - * @return \Illuminate\Support\HtmlString - */ - public function datetimeLocal($name, $value = null, $options = []) - { - if ($value instanceof DateTime) { - $value = $value->format('Y-m-d\TH:i'); - } - - return $this->input('datetime-local', $name, $value, $options); - } - - /** - * Create a time input field. - * - * @param string $name - * @param string $value - * @param array $options - * - * @return \Illuminate\Support\HtmlString - */ - public function time($name, $value = null, $options = []) - { - if ($value instanceof DateTime) { - $value = $value->format('H:i'); - } - - return $this->input('time', $name, $value, $options); - } - - /** - * Create a url input field. - * - * @param string $name - * @param string $value - * @param array $options - * - * @return \Illuminate\Support\HtmlString - */ - public function url($name, $value = null, $options = []) - { - return $this->input('url', $name, $value, $options); - } - - /** - * Create a week input field. - * - * @param string $name - * @param string $value - * @param array $options - * - * @return \Illuminate\Support\HtmlString - */ - public function week($name, $value = null, $options = []) - { - if ($value instanceof DateTime) { - $value = $value->format('Y-\WW'); - } - - return $this->input('week', $name, $value, $options); - } - - /** - * Create a file input field. - * - * @param string $name - * @param array $options - * - * @return \Illuminate\Support\HtmlString - */ - public function file($name, $options = []) - { - return $this->input('file', $name, null, $options); - } - - /** - * Create a textarea input field. - * - * @param string $name - * @param string $value - * @param array $options - * - * @return \Illuminate\Support\HtmlString - */ - public function textarea($name, $value = null, $options = []) - { - $this->type = 'textarea'; - - if (! isset($options['name'])) { - $options['name'] = $name; - } - - // Next we will look for the rows and cols attributes, as each of these are put - // on the textarea element definition. If they are not present, we will just - // assume some sane default values for these attributes for the developer. - $options = $this->setTextAreaSize($options); - - $options['id'] = $this->getIdAttribute($name, $options); - - $value = (string) $this->getValueAttribute($name, $value); - - unset($options['size']); - - // Next we will convert the attributes into a string form. Also we have removed - // the size attribute, as it was merely a short-cut for the rows and cols on - // the element. Then we'll create the final textarea elements HTML for us. - $options = $this->html->attributes($options); - - return $this->toHtmlString('' . e($value, false). ''); - } - - /** - * Set the text area size on the attributes. - * - * @param array $options - * - * @return array - */ - protected function setTextAreaSize($options) - { - if (isset($options['size'])) { - return $this->setQuickTextAreaSize($options); - } - - // If the "size" attribute was not specified, we will just look for the regular - // columns and rows attributes, using sane defaults if these do not exist on - // the attributes array. We'll then return this entire options array back. - $cols = array_get($options, 'cols', 50); - - $rows = array_get($options, 'rows', 10); - - return array_merge($options, compact('cols', 'rows')); - } - - /** - * Set the text area size using the quick "size" attribute. - * - * @param array $options - * - * @return array - */ - protected function setQuickTextAreaSize($options) - { - $segments = explode('x', $options['size']); - - return array_merge($options, ['cols' => $segments[0], 'rows' => $segments[1]]); - } - - /** - * Create a select box field. - * - * @param string $name - * @param array $list - * @param string|bool $selected - * @param array $selectAttributes - * @param array $optionsAttributes - * @param array $optgroupsAttributes - * - * @return \Illuminate\Support\HtmlString - */ - public function select( - $name, - $list = [], - $selected = null, - array $selectAttributes = [], - array $optionsAttributes = [], - array $optgroupsAttributes = [] - ) { - $this->type = 'select'; - - // When building a select box the "value" attribute is really the selected one - // so we will use that when checking the model or session for a value which - // should provide a convenient method of re-populating the forms on post. - $selected = $this->getValueAttribute($name, $selected); - - $selectAttributes['id'] = $this->getIdAttribute($name, $selectAttributes); - - if (! isset($selectAttributes['name'])) { - $selectAttributes['name'] = $name; - } - - // We will simply loop through the options and build an HTML value for each of - // them until we have an array of HTML declarations. Then we will join them - // all together into one single HTML element that can be put on the form. - $html = []; - - if (isset($selectAttributes['placeholder'])) { - $html[] = $this->placeholderOption($selectAttributes['placeholder'], $selected); - unset($selectAttributes['placeholder']); - } - - foreach ($list as $value => $display) { - $optionAttributes = $optionsAttributes[$value] ?? []; - $optgroupAttributes = $optgroupsAttributes[$value] ?? []; - $html[] = $this->getSelectOption($display, $value, $selected, $optionAttributes, $optgroupAttributes); - } - - // Once we have all of this HTML, we can join this into a single element after - // formatting the attributes into an HTML "attributes" string, then we will - // build out a final select statement, which will contain all the values. - $selectAttributes = $this->html->attributes($selectAttributes); - - $list = implode('', $html); - - return $this->toHtmlString("{$list}"); - } - - /** - * Create a select range field. - * - * @param string $name - * @param string $begin - * @param string $end - * @param string $selected - * @param array $options - * - * @return \Illuminate\Support\HtmlString - */ - public function selectRange($name, $begin, $end, $selected = null, $options = []) - { - $range = array_combine($range = range($begin, $end), $range); - - return $this->select($name, $range, $selected, $options); - } - - /** - * Create a select year field. - * - * @param string $name - * @param string $begin - * @param string $end - * @param string $selected - * @param array $options - * - * @return mixed - */ - public function selectYear() - { - return call_user_func_array([$this, 'selectRange'], func_get_args()); - } - - /** - * Create a select month field. - * - * @param string $name - * @param string $selected - * @param array $options - * @param string $format - * - * @return \Illuminate\Support\HtmlString - */ - public function selectMonth($name, $selected = null, $options = [], $format = '%B') - { - $months = []; - - foreach (range(1, 12) as $month) { - $months[$month] = strftime($format, mktime(0, 0, 0, $month, 1)); - } - - return $this->select($name, $months, $selected, $options); - } - - /** - * Get the select option for the given value. - * - * @param string $display - * @param string $value - * @param string $selected - * @param array $attributes - * @param array $optgroupAttributes - * - * @return \Illuminate\Support\HtmlString - */ - public function getSelectOption($display, $value, $selected, array $attributes = [], array $optgroupAttributes = []) - { - if (is_iterable($display)) { - return $this->optionGroup($display, $value, $selected, $optgroupAttributes, $attributes); - } - - return $this->option($display, $value, $selected, $attributes); - } - - /** - * Create an option group form element. - * - * @param array $list - * @param string $label - * @param string $selected - * @param array $attributes - * @param array $optionsAttributes - * @param integer $level - * - * @return \Illuminate\Support\HtmlString - */ - protected function optionGroup($list, $label, $selected, array $attributes = [], array $optionsAttributes = [], $level = 0) - { - $html = []; - $space = str_repeat(" ", $level); - foreach ($list as $value => $display) { - $optionAttributes = $optionsAttributes[$value] ?? []; - if (is_iterable($display)) { - $html[] = $this->optionGroup($display, $value, $selected, $attributes, $optionAttributes, $level+5); - } else { - $html[] = $this->option($space.$display, $value, $selected, $optionAttributes); - } - } - return $this->toHtmlString('html->attributes($attributes) . '>' . implode('', $html) . ''); - } - - /** - * Create a select element option. - * - * @param string $display - * @param string $value - * @param string $selected - * @param array $attributes - * - * @return \Illuminate\Support\HtmlString - */ - protected function option($display, $value, $selected, array $attributes = []) - { - $selected = $this->getSelectedValue($value, $selected); - - $options = array_merge(['value' => $value, 'selected' => $selected], $attributes); - - $string = 'html->attributes($options) . '>'; - if ($display !== null) { - $string .= e($display, false) . ''; - } - - return $this->toHtmlString($string); - } - - /** - * Create a placeholder select element option. - * - * @param $display - * @param $selected - * - * @return \Illuminate\Support\HtmlString - */ - protected function placeholderOption($display, $selected) - { - $selected = $this->getSelectedValue(null, $selected); - - $options = [ - 'selected' => $selected, - 'value' => '', - ]; - - return $this->toHtmlString('html->attributes($options) . '>' . e($display, false) . ''); - } - - /** - * Determine if the value is selected. - * - * @param string $value - * @param string $selected - * - * @return null|string - */ - protected function getSelectedValue($value, $selected) - { - if (is_array($selected)) { - return in_array($value, $selected, true) || in_array((string) $value, $selected, true) ? 'selected' : null; - } elseif ($selected instanceof Collection) { - return $selected->contains($value) ? 'selected' : null; - } - if (is_int($value) && is_bool($selected)) { - return (bool)$value === $selected; - } - return ((string) $value === (string) $selected) ? 'selected' : null; - } - - /** - * Create a checkbox input field. - * - * @param string $name - * @param mixed $value - * @param bool $checked - * @param array $options - * - * @return \Illuminate\Support\HtmlString - */ - public function checkbox($name, $value = 1, $checked = null, $options = []) - { - return $this->checkable('checkbox', $name, $value, $checked, $options); - } - - /** - * Create a radio button input field. - * - * @param string $name - * @param mixed $value - * @param bool $checked - * @param array $options - * - * @return \Illuminate\Support\HtmlString - */ - public function radio($name, $value = null, $checked = null, $options = []) - { - if (is_null($value)) { - $value = $name; - } - - return $this->checkable('radio', $name, $value, $checked, $options); - } - - /** - * Create a checkable input field. - * - * @param string $type - * @param string $name - * @param mixed $value - * @param bool $checked - * @param array $options - * - * @return \Illuminate\Support\HtmlString - */ - protected function checkable($type, $name, $value, $checked, $options) - { - $this->type = $type; - - $checked = $this->getCheckedState($type, $name, $value, $checked); - - if ($checked) { - $options['checked'] = 'checked'; - } - - return $this->input($type, $name, $value, $options); - } - - /** - * Get the check state for a checkable input. - * - * @param string $type - * @param string $name - * @param mixed $value - * @param bool $checked - * - * @return bool - */ - protected function getCheckedState($type, $name, $value, $checked) - { - switch ($type) { - case 'checkbox': - return $this->getCheckboxCheckedState($name, $value, $checked); - - case 'radio': - return $this->getRadioCheckedState($name, $value, $checked); - - default: - return $this->compareValues($name, $value); - } - } - - /** - * Get the check state for a checkbox input. - * - * @param string $name - * @param mixed $value - * @param bool $checked - * - * @return bool - */ - protected function getCheckboxCheckedState($name, $value, $checked) - { - $request = $this->request($name); - - if (isset($this->session) && ! $this->oldInputIsEmpty() && is_null($this->old($name)) && !$request) { - return false; - } - - if ($this->missingOldAndModel($name) && is_null($request)) { - return $checked; - } - - $posted = $this->getValueAttribute($name, $checked); - - if (is_array($posted)) { - return in_array($value, $posted); - } elseif ($posted instanceof Collection) { - return $posted->contains('id', $value); - } else { - return (bool) $posted; - } - } - - /** - * Get the check state for a radio input. - * - * @param string $name - * @param mixed $value - * @param bool $checked - * - * @return bool - */ - protected function getRadioCheckedState($name, $value, $checked) - { - $request = $this->request($name); - - if ($this->missingOldAndModel($name) && !$request) { - return $checked; - } - - return $this->compareValues($name, $value); - } - - /** - * Determine if the provide value loosely compares to the value assigned to the field. - * Use loose comparison because Laravel model casting may be in affect and therefore - * 1 == true and 0 == false. - * - * @param string $name - * @param string $value - * @return bool - */ - protected function compareValues($name, $value) - { - return $this->getValueAttribute($name) == $value; - } - - /** - * Determine if old input or model input exists for a key. - * - * @param string $name - * - * @return bool - */ - protected function missingOldAndModel($name) - { - return (is_null($this->old($name)) && is_null($this->getModelValueAttribute($name))); - } - - /** - * Create a HTML reset input element. - * - * @param string $value - * @param array $attributes - * - * @return \Illuminate\Support\HtmlString - */ - public function reset($value, $attributes = []) - { - return $this->input('reset', null, $value, $attributes); - } - - /** - * Create a HTML image input element. - * - * @param string $url - * @param string $name - * @param array $attributes - * - * @return \Illuminate\Support\HtmlString - */ - public function image($url, $name = null, $attributes = []) - { - $attributes['src'] = $this->url->asset($url); - - return $this->input('image', $name, null, $attributes); - } - - /** - * Create a month input field. - * - * @param string $name - * @param string $value - * @param array $options - * - * @return \Illuminate\Support\HtmlString - */ - public function month($name, $value = null, $options = []) - { - if ($value instanceof DateTime) { - $value = $value->format('Y-m'); - } - - return $this->input('month', $name, $value, $options); - } - - /** - * Create a color input field. - * - * @param string $name - * @param string $value - * @param array $options - * - * @return \Illuminate\Support\HtmlString - */ - public function color($name, $value = null, $options = []) - { - return $this->input('color', $name, $value, $options); - } - - /** - * Create a submit button element. - * - * @param string $value - * @param array $options - * - * @return \Illuminate\Support\HtmlString - */ - public function submit($value = null, $options = []) - { - return $this->input('submit', null, $value, $options); - } - - /** - * Create a button element. - * - * @param string $value - * @param array $options - * - * @return \Illuminate\Support\HtmlString - */ - public function button($value = null, $options = []) - { - if (! array_key_exists('type', $options)) { - $options['type'] = 'button'; - } - - return $this->toHtmlString('html->attributes($options) . '>' . $value . ''); - } - - /** - * Parse the form action method. - * - * @param string $method - * - * @return string - */ - protected function getMethod($method) - { - $method = strtoupper($method); - - return $method !== 'GET' ? 'POST' : $method; - } - - /** - * Get the form action from the options. - * - * @param array $options - * - * @return string - */ - protected function getAction(array $options) - { - // We will also check for a "route" or "action" parameter on the array so that - // developers can easily specify a route or controller action when creating - // a form providing a convenient interface for creating the form actions. - if (isset($options['url'])) { - return $this->getUrlAction($options['url']); - } - - if (isset($options['route'])) { - return $this->getRouteAction($options['route']); - } - - // If an action is available, we are attempting to open a form to a controller - // action route. So, we will use the URL generator to get the path to these - // actions and return them from the method. Otherwise, we'll use current. - elseif (isset($options['action'])) { - return $this->getControllerAction($options['action']); - } - - return $this->url->current(); - } - - /** - * Get the action for a "url" option. - * - * @param array|string $options - * - * @return string - */ - protected function getUrlAction($options) - { - if (is_array($options)) { - return $this->url->to($options[0], array_slice($options, 1)); - } - - return $this->url->to($options); - } - - /** - * Get the action for a "route" option. - * - * @param array|string $options - * - * @return string - */ - protected function getRouteAction($options) - { - if (is_array($options)) { - return $this->url->route($options[0], array_slice($options, 1)); - } - - return $this->url->route($options); - } - - /** - * Get the action for an "action" option. - * - * @param array|string $options - * - * @return string - */ - protected function getControllerAction($options) - { - if (is_array($options)) { - return $this->url->action($options[0], array_slice($options, 1)); - } - - return $this->url->action($options); - } - - /** - * Get the form appendage for the given method. - * - * @param string $method - * - * @return string - */ - protected function getAppendage($method) - { - list($method, $appendage) = [strtoupper($method), '']; - - // If the HTTP method is in this list of spoofed methods, we will attach the - // method spoofer hidden input to the form. This allows us to use regular - // form to initiate PUT and DELETE requests in addition to the typical. - if (in_array($method, $this->spoofedMethods)) { - $appendage .= $this->hidden('_method', $method); - } - - // If the method is something other than GET we will go ahead and attach the - // CSRF token to the form, as this can't hurt and is convenient to simply - // always have available on every form the developers creates for them. - if ($method !== 'GET') { - $appendage .= $this->token(); - } - - return $appendage; - } - - /** - * Get the ID attribute for a field name. - * - * @param string $name - * @param array $attributes - * - * @return string - */ - public function getIdAttribute($name, $attributes) - { - if (array_key_exists('id', $attributes)) { - return $attributes['id']; - } - - if (in_array($name, $this->labels)) { - return $name; - } - } - - /** - * Get the value that should be assigned to the field. - * - * @param string $name - * @param string $value - * - * @return mixed - */ - public function getValueAttribute($name, $value = null) - { - if (is_null($name)) { - return $value; - } - - $old = $this->old($name); - - if (! is_null($old) && $name !== '_method') { - return $old; - } - - if (function_exists('app')) { - $hasNullMiddleware = app("Illuminate\Contracts\Http\Kernel") - ->hasMiddleware(ConvertEmptyStringsToNull::class); - - if ($hasNullMiddleware - && is_null($old) - && is_null($value) - && !is_null($this->view->shared('errors')) - && count($this->view->shared('errors')) > 0 - ) { - return null; - } - } - - $request = $this->request($name); - if (! is_null($request) && $name != '_method') { - return $request; - } - - if (! is_null($value)) { - return $value; - } - - if (isset($this->model)) { - return $this->getModelValueAttribute($name); - } - } - - /** - * Take Request in fill process - * @param bool $consider - */ - public function considerRequest($consider = true) - { - $this->considerRequest = $consider; - } - - /** - * Get value from current Request - * @param $name - * @return array|null|string - */ - protected function request($name) - { - if (!$this->considerRequest) { - return null; - } - - if (!isset($this->request)) { - return null; - } - - return $this->request->input($this->transformKey($name)); - } - - /** - * Get the model value that should be assigned to the field. - * - * @param string $name - * - * @return mixed - */ - protected function getModelValueAttribute($name) - { - $key = $this->transformKey($name); - - if (method_exists($this->model, 'getFormValue')) { - return $this->model->getFormValue($key); - } - - return data_get($this->model, $this->transformKey($name)); - } - - /** - * Get a value from the session's old input. - * - * @param string $name - * - * @return mixed - */ - public function old($name) - { - if (isset($this->session)) { - $key = $this->transformKey($name); - $payload = $this->session->getOldInput($key); - - if (!is_array($payload)) { - return $payload; - } - - if (!in_array($this->type, ['select', 'checkbox'])) { - if (!isset($this->payload[$key])) { - $this->payload[$key] = collect($payload); - } - - if (!empty($this->payload[$key])) { - $value = $this->payload[$key]->shift(); - return $value; - } - } - - return $payload; - } - } - - /** - * Determine if the old input is empty. - * - * @return bool - */ - public function oldInputIsEmpty() - { - return (isset($this->session) && count((array) $this->session->getOldInput()) === 0); - } - - /** - * Transform key from array to dot syntax. - * - * @param string $key - * - * @return mixed - */ - protected function transformKey($key) - { - return str_replace(['.', '[]', '[', ']'], ['_', '', '.', ''], $key); - } - - /** - * Transform the string to an Html serializable object - * - * @param $html - * - * @return \Illuminate\Support\HtmlString - */ - protected function toHtmlString($html) - { - return new HtmlString($html); - } - - /** - * Get the session store implementation. - * - * @return \Illuminate\Contracts\Session\Session $session - */ - public function getSessionStore() - { - return $this->session; - } - - /** - * Set the session store implementation. - * - * @param \Illuminate\Contracts\Session\Session $session - * - * @return $this - */ - public function setSessionStore(Session $session) - { - $this->session = $session; - - return $this; - } - - /** - * Dynamically handle calls to the class. - * - * @param string $method - * @param array $parameters - * - * @return \Illuminate\Contracts\View\View|mixed - * - * @throws \BadMethodCallException - */ - public function __call($method, $parameters) - { - if (static::hasComponent($method)) { - return $this->componentCall($method, $parameters); - } - - if (static::hasMacro($method)) { - return $this->macroCall($method, $parameters); - } - - throw new BadMethodCallException("Method {$method} does not exist."); - } -} diff --git a/vendor/laravelcollective/html/src/FormFacade.php b/vendor/laravelcollective/html/src/FormFacade.php deleted file mode 100644 index 24d2610e..00000000 --- a/vendor/laravelcollective/html/src/FormFacade.php +++ /dev/null @@ -1,22 +0,0 @@ -url = $url; - $this->view = $view; - } - - /** - * Convert an HTML string to entities. - * - * @param string $value - * - * @return string - */ - public function entities($value) - { - return htmlentities($value, ENT_QUOTES, 'UTF-8', false); - } - - /** - * Convert entities to HTML characters. - * - * @param string $value - * - * @return string - */ - public function decode($value) - { - return html_entity_decode($value, ENT_QUOTES, 'UTF-8'); - } - - /** - * Generate a link to a JavaScript file. - * - * @param string $url - * @param array $attributes - * @param bool $secure - * - * @return \Illuminate\Support\HtmlString - */ - public function script($url, $attributes = [], $secure = null) - { - $attributes['src'] = $this->url->asset($url, $secure); - - return $this->toHtmlString('attributes($attributes) . '>'); - } - - /** - * Generate a link to a CSS file. - * - * @param string $url - * @param array $attributes - * @param bool $secure - * - * @return \Illuminate\Support\HtmlString - */ - public function style($url, $attributes = [], $secure = null) - { - $defaults = ['media' => 'all', 'type' => 'text/css', 'rel' => 'stylesheet']; - - $attributes = array_merge($defaults, $attributes); - - $attributes['href'] = $this->url->asset($url, $secure); - - return $this->toHtmlString('attributes($attributes) . '>'); - } - - /** - * Generate an HTML image element. - * - * @param string $url - * @param string $alt - * @param array $attributes - * @param bool $secure - * - * @return \Illuminate\Support\HtmlString - */ - public function image($url, $alt = null, $attributes = [], $secure = null) - { - $attributes['alt'] = $alt; - - return $this->toHtmlString('attributes($attributes) . '>'); - } - - /** - * Generate a link to a Favicon file. - * - * @param string $url - * @param array $attributes - * @param bool $secure - * - * @return \Illuminate\Support\HtmlString - */ - public function favicon($url, $attributes = [], $secure = null) - { - $defaults = ['rel' => 'shortcut icon', 'type' => 'image/x-icon']; - - $attributes = array_merge($attributes, $defaults); - - $attributes['href'] = $this->url->asset($url, $secure); - - return $this->toHtmlString('attributes($attributes) . '>'); - } - - /** - * Generate a HTML link. - * - * @param string $url - * @param string $title - * @param array $attributes - * @param bool $secure - * @param bool $escape - * - * @return \Illuminate\Support\HtmlString - */ - public function link($url, $title = null, $attributes = [], $secure = null, $escape = true) - { - $url = $this->url->to($url, [], $secure); - - if (is_null($title) || $title === false) { - $title = $url; - } - - if ($escape) { - $title = $this->entities($title); - } - - return $this->toHtmlString('attributes($attributes) . '>' . $title . ''); - } - - /** - * Generate a HTTPS HTML link. - * - * @param string $url - * @param string $title - * @param array $attributes - * - * @return \Illuminate\Support\HtmlString - */ - public function secureLink($url, $title = null, $attributes = []) - { - return $this->link($url, $title, $attributes, true); - } - - /** - * Generate a HTML link to an asset. - * - * @param string $url - * @param string $title - * @param array $attributes - * @param bool $secure - * - * @return \Illuminate\Support\HtmlString - */ - public function linkAsset($url, $title = null, $attributes = [], $secure = null) - { - $url = $this->url->asset($url, $secure); - - return $this->link($url, $title ?: $url, $attributes, $secure); - } - - /** - * Generate a HTTPS HTML link to an asset. - * - * @param string $url - * @param string $title - * @param array $attributes - * - * @return \Illuminate\Support\HtmlString - */ - public function linkSecureAsset($url, $title = null, $attributes = []) - { - return $this->linkAsset($url, $title, $attributes, true); - } - - /** - * Generate a HTML link to a named route. - * - * @param string $name - * @param string $title - * @param array $parameters - * @param array $attributes - * - * @return \Illuminate\Support\HtmlString - */ - public function linkRoute($name, $title = null, $parameters = [], $attributes = []) - { - return $this->link($this->url->route($name, $parameters), $title, $attributes); - } - - /** - * Generate a HTML link to a controller action. - * - * @param string $action - * @param string $title - * @param array $parameters - * @param array $attributes - * - * @return \Illuminate\Support\HtmlString - */ - public function linkAction($action, $title = null, $parameters = [], $attributes = []) - { - return $this->link($this->url->action($action, $parameters), $title, $attributes); - } - - /** - * Generate a HTML link to an email address. - * - * @param string $email - * @param string $title - * @param array $attributes - * @param bool $escape - * - * @return \Illuminate\Support\HtmlString - */ - public function mailto($email, $title = null, $attributes = [], $escape = true) - { - $email = $this->email($email); - - $title = $title ?: $email; - - if ($escape) { - $title = $this->entities($title); - } - - $email = $this->obfuscate('mailto:') . $email; - - return $this->toHtmlString('attributes($attributes) . '>' . $title . ''); - } - - /** - * Obfuscate an e-mail address to prevent spam-bots from sniffing it. - * - * @param string $email - * - * @return string - */ - public function email($email) - { - return str_replace('@', '@', $this->obfuscate($email)); - } - - /** - * Generates non-breaking space entities based on number supplied. - * - * @param int $num - * - * @return string - */ - public function nbsp($num = 1) - { - return str_repeat(' ', $num); - } - - /** - * Generate an ordered list of items. - * - * @param array $list - * @param array $attributes - * - * @return \Illuminate\Support\HtmlString|string - */ - public function ol($list, $attributes = []) - { - return $this->listing('ol', $list, $attributes); - } - - /** - * Generate an un-ordered list of items. - * - * @param array $list - * @param array $attributes - * - * @return \Illuminate\Support\HtmlString|string - */ - public function ul($list, $attributes = []) - { - return $this->listing('ul', $list, $attributes); - } - - /** - * Generate a description list of items. - * - * @param array $list - * @param array $attributes - * - * @return \Illuminate\Support\HtmlString - */ - public function dl(array $list, array $attributes = []) - { - $attributes = $this->attributes($attributes); - - $html = ""; - - foreach ($list as $key => $value) { - $value = (array) $value; - - $html .= "
$key
"; - - foreach ($value as $v_key => $v_value) { - $html .= "
$v_value
"; - } - } - - $html .= ''; - - return $this->toHtmlString($html); - } - - /** - * Create a listing HTML element. - * - * @param string $type - * @param array $list - * @param array $attributes - * - * @return \Illuminate\Support\HtmlString|string - */ - protected function listing($type, $list, $attributes = []) - { - $html = ''; - - if (count($list) === 0) { - return $html; - } - - // Essentially we will just spin through the list and build the list of the HTML - // elements from the array. We will also handled nested lists in case that is - // present in the array. Then we will build out the final listing elements. - foreach ($list as $key => $value) { - $html .= $this->listingElement($key, $type, $value); - } - - $attributes = $this->attributes($attributes); - - return $this->toHtmlString("<{$type}{$attributes}>{$html}"); - } - - /** - * Create the HTML for a listing element. - * - * @param mixed $key - * @param string $type - * @param mixed $value - * - * @return string - */ - protected function listingElement($key, $type, $value) - { - if (is_array($value)) { - return $this->nestedListing($key, $type, $value); - } else { - return '
  • ' . e($value, false) . '
  • '; - } - } - - /** - * Create the HTML for a nested listing attribute. - * - * @param mixed $key - * @param string $type - * @param mixed $value - * - * @return string - */ - protected function nestedListing($key, $type, $value) - { - if (is_int($key)) { - return $this->listing($type, $value); - } else { - return '
  • ' . $key . $this->listing($type, $value) . '
  • '; - } - } - - /** - * Build an HTML attribute string from an array. - * - * @param array $attributes - * - * @return string - */ - public function attributes($attributes) - { - $html = []; - - foreach ((array) $attributes as $key => $value) { - $element = $this->attributeElement($key, $value); - - if (! is_null($element)) { - $html[] = $element; - } - } - - return count($html) > 0 ? ' ' . implode(' ', $html) : ''; - } - - /** - * Build a single attribute element. - * - * @param string $key - * @param string $value - * - * @return string - */ - protected function attributeElement($key, $value) - { - // For numeric keys we will assume that the value is a boolean attribute - // where the presence of the attribute represents a true value and the - // absence represents a false value. - // This will convert HTML attributes such as "required" to a correct - // form instead of using incorrect numerics. - if (is_numeric($key)) { - return $value; - } - - // Treat boolean attributes as HTML properties - if (is_bool($value) && $key !== 'value') { - return $value ? $key : ''; - } - - if (is_array($value) && $key === 'class') { - return 'class="' . implode(' ', $value) . '"'; - } - - if (! is_null($value)) { - return $key . '="' . e($value, false) . '"'; - } - } - - /** - * Obfuscate a string to prevent spam-bots from sniffing it. - * - * @param string $value - * - * @return string - */ - public function obfuscate($value) - { - $safe = ''; - - foreach (str_split($value) as $letter) { - if (ord($letter) > 128) { - return $letter; - } - - // To properly obfuscate the value, we will randomly convert each letter to - // its entity or hexadecimal representation, keeping a bot from sniffing - // the randomly obfuscated letters out of the string on the responses. - switch (rand(1, 3)) { - case 1: - $safe .= '&#' . ord($letter) . ';'; - break; - - case 2: - $safe .= '&#x' . dechex(ord($letter)) . ';'; - break; - - case 3: - $safe .= $letter; - } - } - - return $safe; - } - - /** - * Generate a meta tag. - * - * @param string $name - * @param string $content - * @param array $attributes - * - * @return \Illuminate\Support\HtmlString - */ - public function meta($name, $content, array $attributes = []) - { - $defaults = compact('name', 'content'); - - $attributes = array_merge($defaults, $attributes); - - return $this->toHtmlString('attributes($attributes) . '>'); - } - - /** - * Generate an html tag. - * - * @param string $tag - * @param mixed $content - * @param array $attributes - * - * @return \Illuminate\Support\HtmlString - */ - public function tag($tag, $content, array $attributes = []) - { - $content = is_array($content) ? implode('', $content) : $content; - return $this->toHtmlString('<' . $tag . $this->attributes($attributes) . '>' . $this->toHtmlString($content) . ''); - } - - /** - * Transform the string to an Html serializable object - * - * @param $html - * - * @return \Illuminate\Support\HtmlString - */ - protected function toHtmlString($html) - { - return new HtmlString($html); - } - - /** - * Dynamically handle calls to the class. - * - * @param string $method - * @param array $parameters - * - * @return \Illuminate\Contracts\View\View|mixed - * - * @throws \BadMethodCallException - */ - public function __call($method, $parameters) - { - if (static::hasComponent($method)) { - return $this->componentCall($method, $parameters); - } - - if (static::hasMacro($method)) { - return $this->macroCall($method, $parameters); - } - - throw new BadMethodCallException("Method {$method} does not exist."); - } -} diff --git a/vendor/laravelcollective/html/src/HtmlFacade.php b/vendor/laravelcollective/html/src/HtmlFacade.php deleted file mode 100644 index 127cdc82..00000000 --- a/vendor/laravelcollective/html/src/HtmlFacade.php +++ /dev/null @@ -1,22 +0,0 @@ -registerHtmlBuilder(); - - $this->registerFormBuilder(); - - $this->app->alias('html', HtmlBuilder::class); - $this->app->alias('form', FormBuilder::class); - - $this->registerBladeDirectives(); - } - - /** - * Register the HTML builder instance. - * - * @return void - */ - protected function registerHtmlBuilder() - { - $this->app->singleton('html', function ($app) { - return new HtmlBuilder($app['url'], $app['view']); - }); - } - - /** - * Register the form builder instance. - * - * @return void - */ - protected function registerFormBuilder() - { - $this->app->singleton('form', function ($app) { - $form = new FormBuilder($app['html'], $app['url'], $app['view'], $app['session.store']->token(), $app['request']); - - return $form->setSessionStore($app['session.store']); - }); - } - - /** - * Register Blade directives. - * - * @return void - */ - protected function registerBladeDirectives() - { - $this->app->afterResolving('blade.compiler', function (BladeCompiler $bladeCompiler) { - $namespaces = [ - 'Html' => get_class_methods(HtmlBuilder::class), - 'Form' => get_class_methods(FormBuilder::class), - ]; - - foreach ($namespaces as $namespace => $methods) { - foreach ($methods as $method) { - if (in_array($method, $this->directives)) { - $snakeMethod = Str::snake($method); - $directive = strtolower($namespace).'_'.$snakeMethod; - - $bladeCompiler->directive($directive, function ($expression) use ($namespace, $method) { - return ""; - }); - } - } - } - }); - } - - /** - * Get the services provided by the provider. - * - * @return array - */ - public function provides() - { - return ['html', 'form', HtmlBuilder::class, FormBuilder::class]; - } -} diff --git a/vendor/laravelcollective/html/src/helpers.php b/vendor/laravelcollective/html/src/helpers.php deleted file mode 100644 index 14f03610..00000000 --- a/vendor/laravelcollective/html/src/helpers.php +++ /dev/null @@ -1,70 +0,0 @@ -link($url, $title, $attributes, $secure, $escape); - } -} - -if (! function_exists('link_to_asset')) { - /** - * Generate a HTML link to an asset. - * - * @param string $url - * @param string $title - * @param array $attributes - * @param bool $secure - * - * @return string - */ - function link_to_asset($url, $title = null, $attributes = [], $secure = null) - { - return app('html')->linkAsset($url, $title, $attributes, $secure); - } -} - -if (! function_exists('link_to_route')) { - /** - * Generate a HTML link to a named route. - * - * @param string $name - * @param string $title - * @param array $parameters - * @param array $attributes - * - * @return string - */ - function link_to_route($name, $title = null, $parameters = [], $attributes = []) - { - return app('html')->linkRoute($name, $title, $parameters, $attributes); - } -} - -if (! function_exists('link_to_action')) { - /** - * Generate a HTML link to a controller action. - * - * @param string $action - * @param string $title - * @param array $parameters - * @param array $attributes - * - * @return string - */ - function link_to_action($action, $title = null, $parameters = [], $attributes = []) - { - return app('html')->linkAction($action, $title, $parameters, $attributes); - } -} diff --git a/vendor/laravelista/lumen-vendor-publish/LICENSE.md b/vendor/laravelista/lumen-vendor-publish/LICENSE.md deleted file mode 100644 index a2a441b7..00000000 --- a/vendor/laravelista/lumen-vendor-publish/LICENSE.md +++ /dev/null @@ -1,9 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2015-2016 Mario BaÅ¡ić - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/vendor/laravelista/lumen-vendor-publish/README.md b/vendor/laravelista/lumen-vendor-publish/README.md deleted file mode 100644 index 20bb78a6..00000000 --- a/vendor/laravelista/lumen-vendor-publish/README.md +++ /dev/null @@ -1,23 +0,0 @@ -# `vendor:publish` for Lumen framework - -[![Latest Stable Version](https://poser.pugx.org/laravelista/lumen-vendor-publish/v/stable)](https://packagist.org/packages/laravelista/lumen-vendor-publish) [![Total Downloads](https://poser.pugx.org/laravelista/lumen-vendor-publish/downloads)](https://packagist.org/packages/laravelista/lumen-vendor-publish) [![Latest Unstable Version](https://poser.pugx.org/laravelista/lumen-vendor-publish/v/unstable)](https://packagist.org/packages/laravelista/lumen-vendor-publish) [![License](https://poser.pugx.org/laravelista/lumen-vendor-publish/license)](https://packagist.org/packages/laravelista/lumen-vendor-publish) - -This is mostly a copy from [`illuminate/foundation`](https://github.com/laravel/framework/blob/5.3/src/Illuminate/Foundation/Console/VendorPublishCommand.php). - -This package contains a single command that enables you to publish a package config file to the config folder of your Lumen application. - -## Installation - -``` -composer require laravelista/lumen-vendor-publish -``` - -## Usage - -To be able to use it you have to add it to your `app/Console/Kernel.php` file: - -``` -protected $commands = [ - \Laravelista\LumenVendorPublish\VendorPublishCommand::class -]; -``` \ No newline at end of file diff --git a/vendor/laravelista/lumen-vendor-publish/composer.json b/vendor/laravelista/lumen-vendor-publish/composer.json deleted file mode 100644 index e0e96f26..00000000 --- a/vendor/laravelista/lumen-vendor-publish/composer.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "name": "laravelista/lumen-vendor-publish", - "description": "vendor:publish for Lumen framework.", - "license": "MIT", - "keywords": [ - "lumen", - "vendor", - "publish", - "command", - "console" - ], - "authors": [ - { - "name": "Mario BaÅ¡ić", - "email": "mario.basic@outlook.com" - } - ], - "autoload": { - "psr-4": { - "Laravelista\\LumenVendorPublish\\": "src" - } - }, - "minimum-stability": "stable", - "require": { - "illuminate/console": "^5.0", - "illuminate/filesystem": "^5.0", - "illuminate/support": "^5.0", - "league/flysystem": "^1.0" - } -} diff --git a/vendor/laravelista/lumen-vendor-publish/src/VendorPublishCommand.php b/vendor/laravelista/lumen-vendor-publish/src/VendorPublishCommand.php deleted file mode 100644 index 55f69aef..00000000 --- a/vendor/laravelista/lumen-vendor-publish/src/VendorPublishCommand.php +++ /dev/null @@ -1,153 +0,0 @@ -files = $files; - } - /** - * Compatiblity for Lumen 5.5. - * - * @return void - */ - public function handle() - { - $this->fire(); - } - /** - * Execute the console command. - * - * @return void - */ - public function fire() - { - $tags = $this->option('tag'); - $tags = $tags ?: [null]; - foreach ($tags as $tag) { - $this->publishTag($tag); - } - } - /** - * Publishes the assets for a tag. - * - * @param string $tag - * @return mixed - */ - private function publishTag($tag) - { - $paths = ServiceProvider::pathsToPublish( - $this->option('provider'), $tag - ); - if (empty($paths)) { - return $this->comment("Nothing to publish for tag [{$tag}]."); - } - foreach ($paths as $from => $to) { - if ($this->files->isFile($from)) { - $this->publishFile($from, $to); - } elseif ($this->files->isDirectory($from)) { - $this->publishDirectory($from, $to); - } else { - $this->error("Can't locate path: <{$from}>"); - } - } - $this->info("Publishing complete for tag [{$tag}]!"); - } - /** - * Publish the file to the given path. - * - * @param string $from - * @param string $to - * @return void - */ - protected function publishFile($from, $to) - { - if ($this->files->exists($to) && !$this->option('force')) { - return; - } - $this->createParentDirectory(dirname($to)); - $this->files->copy($from, $to); - $this->status($from, $to, 'File'); - } - /** - * Publish the directory to the given directory. - * - * @param string $from - * @param string $to - * @return void - */ - protected function publishDirectory($from, $to) - { - $manager = new MountManager([ - 'from' => new Flysystem(new LocalAdapter($from)), - 'to' => new Flysystem(new LocalAdapter($to)), - ]); - foreach ($manager->listContents('from://', true) as $file) { - if ($file['type'] === 'file' && (!$manager->has('to://' . $file['path']) || $this->option('force'))) { - $manager->put('to://' . $file['path'], $manager->read('from://' . $file['path'])); - } - } - $this->status($from, $to, 'Directory'); - } - /** - * Create the directory to house the published files if needed. - * - * @param string $directory - * @return void - */ - protected function createParentDirectory($directory) - { - if (!$this->files->isDirectory($directory)) { - $this->files->makeDirectory($directory, 0755, true); - } - } - /** - * Write a status message to the console. - * - * @param string $from - * @param string $to - * @param string $type - * @return void - */ - protected function status($from, $to, $type) - { - $from = str_replace(base_path(), '', realpath($from)); - $to = str_replace(base_path(), '', realpath($to)); - $this->line('Copied ' . $type . ' [' . $from . '] To [' . $to . ']'); - } - -} diff --git a/vendor/league/flysystem/LICENSE b/vendor/league/flysystem/LICENSE deleted file mode 100644 index 0d16ccc9..00000000 --- a/vendor/league/flysystem/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2013-2018 Frank de Jonge - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is furnished -to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/vendor/league/flysystem/composer.json b/vendor/league/flysystem/composer.json deleted file mode 100644 index 6fc135c9..00000000 --- a/vendor/league/flysystem/composer.json +++ /dev/null @@ -1,64 +0,0 @@ -{ - "name": "league/flysystem", - "description": "Filesystem abstraction: Many filesystems, one API.", - "keywords": [ - "filesystem", "filesystems", "files", "storage", "dropbox", "aws", - "abstraction", "s3", "ftp", "sftp", "remote", "webdav", - "file systems", "cloud", "cloud files", "rackspace", "copy.com" - ], - "license": "MIT", - "authors": [ - { - "name": "Frank de Jonge", - "email": "info@frenky.net" - } - ], - "require": { - "php": ">=5.5.9" - }, - "require-dev": { - "ext-fileinfo": "*", - "phpspec/phpspec": "^3.4", - "phpunit/phpunit": "^5.7" - }, - "autoload": { - "psr-4": { - "League\\Flysystem\\": "src/" - } - }, - "autoload-dev": { - "psr-4": { - "League\\Flysystem\\Stub\\": "stub/" - }, - "files": [ - "tests/PHPUnitHacks.php" - ] - }, - "suggest": { - "ext-fileinfo": "Required for MimeType", - "league/flysystem-eventable-filesystem": "Allows you to use EventableFilesystem", - "league/flysystem-rackspace": "Allows you to use Rackspace Cloud Files", - "league/flysystem-azure": "Allows you to use Windows Azure Blob storage", - "league/flysystem-webdav": "Allows you to use WebDAV storage", - "league/flysystem-aws-s3-v2": "Allows you to use S3 storage with AWS SDK v2", - "league/flysystem-aws-s3-v3": "Allows you to use S3 storage with AWS SDK v3", - "spatie/flysystem-dropbox": "Allows you to use Dropbox storage", - "srmklive/flysystem-dropbox-v2": "Allows you to use Dropbox storage for PHP 5 applications", - "league/flysystem-cached-adapter": "Flysystem adapter decorator for metadata caching", - "ext-ftp": "Allows you to use FTP server storage", - "ext-openssl": "Allows you to use FTPS server storage", - "league/flysystem-sftp": "Allows you to use SFTP server storage via phpseclib", - "league/flysystem-ziparchive": "Allows you to use ZipArchive adapter" - }, - "conflict": { - "league/flysystem-sftp": "<1.0.6" - }, - "config": { - "bin-dir": "bin" - }, - "extra": { - "branch-alias": { - "dev-master": "1.1-dev" - } - } -} diff --git a/vendor/league/flysystem/src/Adapter/AbstractAdapter.php b/vendor/league/flysystem/src/Adapter/AbstractAdapter.php deleted file mode 100644 index 01e8cda5..00000000 --- a/vendor/league/flysystem/src/Adapter/AbstractAdapter.php +++ /dev/null @@ -1,71 +0,0 @@ -pathPrefix = null; - return; - } - - $this->pathPrefix = rtrim($prefix, '\\/') . $this->pathSeparator; - } - - /** - * Get the path prefix. - * - * @return string|null path prefix or null if pathPrefix is empty - */ - public function getPathPrefix() - { - return $this->pathPrefix; - } - - /** - * Prefix a path. - * - * @param string $path - * - * @return string prefixed path - */ - public function applyPathPrefix($path) - { - return $this->getPathPrefix() . ltrim($path, '\\/'); - } - - /** - * Remove a path prefix. - * - * @param string $path - * - * @return string path without the prefix - */ - public function removePathPrefix($path) - { - return substr($path, strlen($this->getPathPrefix())); - } -} diff --git a/vendor/league/flysystem/src/Adapter/AbstractFtpAdapter.php b/vendor/league/flysystem/src/Adapter/AbstractFtpAdapter.php deleted file mode 100644 index d4263073..00000000 --- a/vendor/league/flysystem/src/Adapter/AbstractFtpAdapter.php +++ /dev/null @@ -1,628 +0,0 @@ -safeStorage = new SafeStorage(); - $this->setConfig($config); - } - - /** - * Set the config. - * - * @param array $config - * - * @return $this - */ - public function setConfig(array $config) - { - foreach ($this->configurable as $setting) { - if ( ! isset($config[$setting])) { - continue; - } - - $method = 'set' . ucfirst($setting); - - if (method_exists($this, $method)) { - $this->$method($config[$setting]); - } - } - - return $this; - } - - /** - * Returns the host. - * - * @return string - */ - public function getHost() - { - return $this->host; - } - - /** - * Set the host. - * - * @param string $host - * - * @return $this - */ - public function setHost($host) - { - $this->host = $host; - - return $this; - } - - /** - * Set the public permission value. - * - * @param int $permPublic - * - * @return $this - */ - public function setPermPublic($permPublic) - { - $this->permPublic = $permPublic; - - return $this; - } - - /** - * Set the private permission value. - * - * @param int $permPrivate - * - * @return $this - */ - public function setPermPrivate($permPrivate) - { - $this->permPrivate = $permPrivate; - - return $this; - } - - /** - * Returns the ftp port. - * - * @return int - */ - public function getPort() - { - return $this->port; - } - - /** - * Returns the root folder to work from. - * - * @return string - */ - public function getRoot() - { - return $this->root; - } - - /** - * Set the ftp port. - * - * @param int|string $port - * - * @return $this - */ - public function setPort($port) - { - $this->port = (int) $port; - - return $this; - } - - /** - * Set the root folder to work from. - * - * @param string $root - * - * @return $this - */ - public function setRoot($root) - { - $this->root = rtrim($root, '\\/') . $this->separator; - - return $this; - } - - /** - * Returns the ftp username. - * - * @return string username - */ - public function getUsername() - { - $username = $this->safeStorage->retrieveSafely('username'); - - return $username !== null ? $username : 'anonymous'; - } - - /** - * Set ftp username. - * - * @param string $username - * - * @return $this - */ - public function setUsername($username) - { - $this->safeStorage->storeSafely('username', $username); - - return $this; - } - - /** - * Returns the password. - * - * @return string password - */ - public function getPassword() - { - return $this->safeStorage->retrieveSafely('password'); - } - - /** - * Set the ftp password. - * - * @param string $password - * - * @return $this - */ - public function setPassword($password) - { - $this->safeStorage->storeSafely('password', $password); - - return $this; - } - - /** - * Returns the amount of seconds before the connection will timeout. - * - * @return int - */ - public function getTimeout() - { - return $this->timeout; - } - - /** - * Set the amount of seconds before the connection should timeout. - * - * @param int $timeout - * - * @return $this - */ - public function setTimeout($timeout) - { - $this->timeout = (int) $timeout; - - return $this; - } - - /** - * Return the FTP system type. - * - * @return string - */ - public function getSystemType() - { - return $this->systemType; - } - - /** - * Set the FTP system type (windows or unix). - * - * @param string $systemType - * - * @return $this - */ - public function setSystemType($systemType) - { - $this->systemType = strtolower($systemType); - - return $this; - } - - /** - * @inheritdoc - */ - public function listContents($directory = '', $recursive = false) - { - return $this->listDirectoryContents($directory, $recursive); - } - - abstract protected function listDirectoryContents($directory, $recursive = false); - - /** - * Normalize a directory listing. - * - * @param array $listing - * @param string $prefix - * - * @return array directory listing - */ - protected function normalizeListing(array $listing, $prefix = '') - { - $base = $prefix; - $result = []; - $listing = $this->removeDotDirectories($listing); - - while ($item = array_shift($listing)) { - if (preg_match('#^.*:$#', $item)) { - $base = preg_replace('~^\./*|:$~', '', $item); - continue; - } - - $result[] = $this->normalizeObject($item, $base); - } - - return $this->sortListing($result); - } - - /** - * Sort a directory listing. - * - * @param array $result - * - * @return array sorted listing - */ - protected function sortListing(array $result) - { - $compare = function ($one, $two) { - return strnatcmp($one['path'], $two['path']); - }; - - usort($result, $compare); - - return $result; - } - - /** - * Normalize a file entry. - * - * @param string $item - * @param string $base - * - * @return array normalized file array - * - * @throws NotSupportedException - */ - protected function normalizeObject($item, $base) - { - $systemType = $this->systemType ?: $this->detectSystemType($item); - - if ($systemType === 'unix') { - return $this->normalizeUnixObject($item, $base); - } elseif ($systemType === 'windows') { - return $this->normalizeWindowsObject($item, $base); - } - - throw NotSupportedException::forFtpSystemType($systemType); - } - - /** - * Normalize a Unix file entry. - * - * @param string $item - * @param string $base - * - * @return array normalized file array - */ - protected function normalizeUnixObject($item, $base) - { - $item = preg_replace('#\s+#', ' ', trim($item), 7); - - if (count(explode(' ', $item, 9)) !== 9) { - throw new RuntimeException("Metadata can't be parsed from item '$item' , not enough parts."); - } - - list($permissions, /* $number */, /* $owner */, /* $group */, $size, /* $month */, /* $day */, /* $time*/, $name) = explode(' ', $item, 9); - $type = $this->detectType($permissions); - $path = $base === '' ? $name : $base . $this->separator . $name; - - if ($type === 'dir') { - return compact('type', 'path'); - } - - $permissions = $this->normalizePermissions($permissions); - $visibility = $permissions & 0044 ? AdapterInterface::VISIBILITY_PUBLIC : AdapterInterface::VISIBILITY_PRIVATE; - $size = (int) $size; - - return compact('type', 'path', 'visibility', 'size'); - } - - /** - * Normalize a Windows/DOS file entry. - * - * @param string $item - * @param string $base - * - * @return array normalized file array - */ - protected function normalizeWindowsObject($item, $base) - { - $item = preg_replace('#\s+#', ' ', trim($item), 3); - - if (count(explode(' ', $item, 4)) !== 4) { - throw new RuntimeException("Metadata can't be parsed from item '$item' , not enough parts."); - } - - list($date, $time, $size, $name) = explode(' ', $item, 4); - $path = $base === '' ? $name : $base . $this->separator . $name; - - // Check for the correct date/time format - $format = strlen($date) === 8 ? 'm-d-yH:iA' : 'Y-m-dH:i'; - $dt = DateTime::createFromFormat($format, $date . $time); - $timestamp = $dt ? $dt->getTimestamp() : (int) strtotime("$date $time"); - - if ($size === '') { - $type = 'dir'; - - return compact('type', 'path', 'timestamp'); - } - - $type = 'file'; - $visibility = AdapterInterface::VISIBILITY_PUBLIC; - $size = (int) $size; - - return compact('type', 'path', 'visibility', 'size', 'timestamp'); - } - - /** - * Get the system type from a listing item. - * - * @param string $item - * - * @return string the system type - */ - protected function detectSystemType($item) - { - return preg_match('/^[0-9]{2,4}-[0-9]{2}-[0-9]{2}/', $item) ? 'windows' : 'unix'; - } - - /** - * Get the file type from the permissions. - * - * @param string $permissions - * - * @return string file type - */ - protected function detectType($permissions) - { - return substr($permissions, 0, 1) === 'd' ? 'dir' : 'file'; - } - - /** - * Normalize a permissions string. - * - * @param string $permissions - * - * @return int - */ - protected function normalizePermissions($permissions) - { - // remove the type identifier - $permissions = substr($permissions, 1); - - // map the string rights to the numeric counterparts - $map = ['-' => '0', 'r' => '4', 'w' => '2', 'x' => '1']; - $permissions = strtr($permissions, $map); - - // split up the permission groups - $parts = str_split($permissions, 3); - - // convert the groups - $mapper = function ($part) { - return array_sum(str_split($part)); - }; - - // converts to decimal number - return octdec(implode('', array_map($mapper, $parts))); - } - - /** - * Filter out dot-directories. - * - * @param array $list - * - * @return array - */ - public function removeDotDirectories(array $list) - { - $filter = function ($line) { - return $line !== '' && ! preg_match('#.* \.(\.)?$|^total#', $line); - }; - - return array_filter($list, $filter); - } - - /** - * @inheritdoc - */ - public function has($path) - { - return $this->getMetadata($path); - } - - /** - * @inheritdoc - */ - public function getSize($path) - { - return $this->getMetadata($path); - } - - /** - * @inheritdoc - */ - public function getVisibility($path) - { - return $this->getMetadata($path); - } - - /** - * Ensure a directory exists. - * - * @param string $dirname - */ - public function ensureDirectory($dirname) - { - $dirname = (string) $dirname; - - if ($dirname !== '' && ! $this->has($dirname)) { - $this->createDir($dirname, new Config()); - } - } - - /** - * @return mixed - */ - public function getConnection() - { - $tries = 0; - - while ( ! $this->isConnected() && $tries < 3) { - $tries++; - $this->disconnect(); - $this->connect(); - } - - return $this->connection; - } - - /** - * Get the public permission value. - * - * @return int - */ - public function getPermPublic() - { - return $this->permPublic; - } - - /** - * Get the private permission value. - * - * @return int - */ - public function getPermPrivate() - { - return $this->permPrivate; - } - - /** - * Disconnect on destruction. - */ - public function __destruct() - { - $this->disconnect(); - } - - /** - * Establish a connection. - */ - abstract public function connect(); - - /** - * Close the connection. - */ - abstract public function disconnect(); - - /** - * Check if a connection is active. - * - * @return bool - */ - abstract public function isConnected(); -} diff --git a/vendor/league/flysystem/src/Adapter/CanOverwriteFiles.php b/vendor/league/flysystem/src/Adapter/CanOverwriteFiles.php deleted file mode 100644 index c42719e6..00000000 --- a/vendor/league/flysystem/src/Adapter/CanOverwriteFiles.php +++ /dev/null @@ -1,10 +0,0 @@ -transferMode = $mode; - - return $this; - } - - /** - * Set if Ssl is enabled. - * - * @param bool $ssl - * - * @return $this - */ - public function setSsl($ssl) - { - $this->ssl = (bool) $ssl; - - return $this; - } - - /** - * Set if passive mode should be used. - * - * @param bool $passive - */ - public function setPassive($passive = true) - { - $this->passive = $passive; - } - - /** - * @param bool $ignorePassiveAddress - */ - public function setIgnorePassiveAddress($ignorePassiveAddress) - { - $this->ignorePassiveAddress = $ignorePassiveAddress; - } - - /** - * @param bool $recurseManually - */ - public function setRecurseManually($recurseManually) - { - $this->recurseManually = $recurseManually; - } - - /** - * @param bool $utf8 - */ - public function setUtf8($utf8) - { - $this->utf8 = (bool) $utf8; - } - - /** - * Connect to the FTP server. - */ - public function connect() - { - if ($this->ssl) { - $this->connection = ftp_ssl_connect($this->getHost(), $this->getPort(), $this->getTimeout()); - } else { - $this->connection = ftp_connect($this->getHost(), $this->getPort(), $this->getTimeout()); - } - - if ( ! $this->connection) { - throw new RuntimeException('Could not connect to host: ' . $this->getHost() . ', port:' . $this->getPort()); - } - - $this->login(); - $this->setUtf8Mode(); - $this->setConnectionPassiveMode(); - $this->setConnectionRoot(); - $this->isPureFtpd = $this->isPureFtpdServer(); - } - - /** - * Set the connection to UTF-8 mode. - */ - protected function setUtf8Mode() - { - if ($this->utf8) { - $response = ftp_raw($this->connection, "OPTS UTF8 ON"); - if (substr($response[0], 0, 3) !== '200') { - throw new RuntimeException( - 'Could not set UTF-8 mode for connection: ' . $this->getHost() . '::' . $this->getPort() - ); - } - } - } - - /** - * Set the connections to passive mode. - * - * @throws RuntimeException - */ - protected function setConnectionPassiveMode() - { - if (is_bool($this->ignorePassiveAddress) && defined('FTP_USEPASVADDRESS')) { - ftp_set_option($this->connection, FTP_USEPASVADDRESS, ! $this->ignorePassiveAddress); - } - - if ( ! ftp_pasv($this->connection, $this->passive)) { - throw new RuntimeException( - 'Could not set passive mode for connection: ' . $this->getHost() . '::' . $this->getPort() - ); - } - } - - /** - * Set the connection root. - */ - protected function setConnectionRoot() - { - $root = $this->getRoot(); - $connection = $this->connection; - - if ($root && ! ftp_chdir($connection, $root)) { - throw new RuntimeException('Root is invalid or does not exist: ' . $this->getRoot()); - } - - // Store absolute path for further reference. - // This is needed when creating directories and - // initial root was a relative path, else the root - // would be relative to the chdir'd path. - $this->root = ftp_pwd($connection); - } - - /** - * Login. - * - * @throws RuntimeException - */ - protected function login() - { - set_error_handler(function () {}); - $isLoggedIn = ftp_login( - $this->connection, - $this->getUsername(), - $this->getPassword() - ); - restore_error_handler(); - - if ( ! $isLoggedIn) { - $this->disconnect(); - throw new RuntimeException( - 'Could not login with connection: ' . $this->getHost() . '::' . $this->getPort( - ) . ', username: ' . $this->getUsername() - ); - } - } - - /** - * Disconnect from the FTP server. - */ - public function disconnect() - { - if (is_resource($this->connection)) { - ftp_close($this->connection); - } - - $this->connection = null; - } - - /** - * @inheritdoc - */ - public function write($path, $contents, Config $config) - { - $stream = fopen('php://temp', 'w+b'); - fwrite($stream, $contents); - rewind($stream); - $result = $this->writeStream($path, $stream, $config); - fclose($stream); - - if ($result === false) { - return false; - } - - $result['contents'] = $contents; - $result['mimetype'] = Util::guessMimeType($path, $contents); - - return $result; - } - - /** - * @inheritdoc - */ - public function writeStream($path, $resource, Config $config) - { - $this->ensureDirectory(Util::dirname($path)); - - if ( ! ftp_fput($this->getConnection(), $path, $resource, $this->transferMode)) { - return false; - } - - if ($visibility = $config->get('visibility')) { - $this->setVisibility($path, $visibility); - } - - $type = 'file'; - - return compact('type', 'path', 'visibility'); - } - - /** - * @inheritdoc - */ - public function update($path, $contents, Config $config) - { - return $this->write($path, $contents, $config); - } - - /** - * @inheritdoc - */ - public function updateStream($path, $resource, Config $config) - { - return $this->writeStream($path, $resource, $config); - } - - /** - * @inheritdoc - */ - public function rename($path, $newpath) - { - return ftp_rename($this->getConnection(), $path, $newpath); - } - - /** - * @inheritdoc - */ - public function delete($path) - { - return ftp_delete($this->getConnection(), $path); - } - - /** - * @inheritdoc - */ - public function deleteDir($dirname) - { - $connection = $this->getConnection(); - $contents = array_reverse($this->listDirectoryContents($dirname, false)); - - foreach ($contents as $object) { - if ($object['type'] === 'file') { - if ( ! ftp_delete($connection, $object['path'])) { - return false; - } - } elseif ( ! $this->deleteDir($object['path'])) { - return false; - } - } - - return ftp_rmdir($connection, $dirname); - } - - /** - * @inheritdoc - */ - public function createDir($dirname, Config $config) - { - $connection = $this->getConnection(); - $directories = explode('/', $dirname); - - foreach ($directories as $directory) { - if (false === $this->createActualDirectory($directory, $connection)) { - $this->setConnectionRoot(); - - return false; - } - - ftp_chdir($connection, $directory); - } - - $this->setConnectionRoot(); - - return ['type' => 'dir', 'path' => $dirname]; - } - - /** - * Create a directory. - * - * @param string $directory - * @param resource $connection - * - * @return bool - */ - protected function createActualDirectory($directory, $connection) - { - // List the current directory - $listing = ftp_nlist($connection, '.') ?: []; - - foreach ($listing as $key => $item) { - if (preg_match('~^\./.*~', $item)) { - $listing[$key] = substr($item, 2); - } - } - - if (in_array($directory, $listing, true)) { - return true; - } - - return (boolean) ftp_mkdir($connection, $directory); - } - - /** - * @inheritdoc - */ - public function getMetadata($path) - { - $connection = $this->getConnection(); - - if ($path === '') { - return ['type' => 'dir', 'path' => '']; - } - - if (@ftp_chdir($connection, $path) === true) { - $this->setConnectionRoot(); - - return ['type' => 'dir', 'path' => $path]; - } - - $listing = $this->ftpRawlist('-A', str_replace('*', '\\*', $path)); - - if (empty($listing) || in_array('total 0', $listing, true)) { - return false; - } - - if (preg_match('/.* not found/', $listing[0])) { - return false; - } - - if (preg_match('/^total [0-9]*$/', $listing[0])) { - array_shift($listing); - } - - return $this->normalizeObject($listing[0], ''); - } - - /** - * @inheritdoc - */ - public function getMimetype($path) - { - if ( ! $metadata = $this->getMetadata($path)) { - return false; - } - - $metadata['mimetype'] = MimeType::detectByFilename($path); - - return $metadata; - } - - /** - * @inheritdoc - */ - public function getTimestamp($path) - { - $timestamp = ftp_mdtm($this->getConnection(), $path); - - return ($timestamp !== -1) ? ['path' => $path, 'timestamp' => $timestamp] : false; - } - - /** - * @inheritdoc - */ - public function read($path) - { - if ( ! $object = $this->readStream($path)) { - return false; - } - - $object['contents'] = stream_get_contents($object['stream']); - fclose($object['stream']); - unset($object['stream']); - - return $object; - } - - /** - * @inheritdoc - */ - public function readStream($path) - { - $stream = fopen('php://temp', 'w+b'); - $result = ftp_fget($this->getConnection(), $stream, $path, $this->transferMode); - rewind($stream); - - if ( ! $result) { - fclose($stream); - - return false; - } - - return ['type' => 'file', 'path' => $path, 'stream' => $stream]; - } - - /** - * @inheritdoc - */ - public function setVisibility($path, $visibility) - { - $mode = $visibility === AdapterInterface::VISIBILITY_PUBLIC ? $this->getPermPublic() : $this->getPermPrivate(); - - if ( ! ftp_chmod($this->getConnection(), $mode, $path)) { - return false; - } - - return compact('path', 'visibility'); - } - - /** - * @inheritdoc - * - * @param string $directory - */ - protected function listDirectoryContents($directory, $recursive = true) - { - $directory = str_replace('*', '\\*', $directory); - - if ($recursive && $this->recurseManually) { - return $this->listDirectoryContentsRecursive($directory); - } - - $options = $recursive ? '-alnR' : '-aln'; - $listing = $this->ftpRawlist($options, $directory); - - return $listing ? $this->normalizeListing($listing, $directory) : []; - } - - /** - * @inheritdoc - * - * @param string $directory - */ - protected function listDirectoryContentsRecursive($directory) - { - $listing = $this->normalizeListing($this->ftpRawlist('-aln', $directory) ?: [], $directory); - $output = []; - - foreach ($listing as $item) { - $output[] = $item; - if ($item['type'] !== 'dir') continue; - $output = array_merge($output, $this->listDirectoryContentsRecursive($item['path'])); - } - - return $output; - } - - /** - * Check if the connection is open. - * - * @return bool - * @throws ErrorException - */ - public function isConnected() - { - try { - return is_resource($this->connection) && ftp_rawlist($this->connection, $this->getRoot()) !== false; - } catch (ErrorException $e) { - if (strpos($e->getMessage(), 'ftp_rawlist') === false) { - throw $e; - } - - return false; - } - } - - /** - * @return bool - */ - protected function isPureFtpdServer() - { - $response = ftp_raw($this->connection, 'HELP'); - - return stripos(implode(' ', $response), 'Pure-FTPd') !== false; - } - - /** - * The ftp_rawlist function with optional escaping. - * - * @param string $options - * @param string $path - * - * @return array - */ - protected function ftpRawlist($options, $path) - { - $connection = $this->getConnection(); - - if ($this->isPureFtpd) { - $path = str_replace(' ', '\ ', $path); - } - return ftp_rawlist($connection, $options . ' ' . $path); - } -} diff --git a/vendor/league/flysystem/src/Adapter/Ftpd.php b/vendor/league/flysystem/src/Adapter/Ftpd.php deleted file mode 100644 index 7fcecd09..00000000 --- a/vendor/league/flysystem/src/Adapter/Ftpd.php +++ /dev/null @@ -1,40 +0,0 @@ - 'dir', 'path' => '']; - } - - if ( ! ($object = ftp_raw($this->getConnection(), 'STAT ' . $path)) || count($object) < 3) { - return false; - } - - if (substr($object[1], 0, 5) === "ftpd:") { - return false; - } - - return $this->normalizeObject($object[1], ''); - } - - /** - * @inheritdoc - */ - protected function listDirectoryContents($directory, $recursive = true) - { - $listing = ftp_rawlist($this->getConnection(), $directory, $recursive); - - if ($listing === false || ( ! empty($listing) && substr($listing[0], 0, 5) === "ftpd:")) { - return []; - } - - return $this->normalizeListing($listing, $directory); - } -} diff --git a/vendor/league/flysystem/src/Adapter/Local.php b/vendor/league/flysystem/src/Adapter/Local.php deleted file mode 100644 index 3e3c8276..00000000 --- a/vendor/league/flysystem/src/Adapter/Local.php +++ /dev/null @@ -1,518 +0,0 @@ - [ - 'public' => 0644, - 'private' => 0600, - ], - 'dir' => [ - 'public' => 0755, - 'private' => 0700, - ] - ]; - - /** - * @var string - */ - protected $pathSeparator = DIRECTORY_SEPARATOR; - - /** - * @var array - */ - protected $permissionMap; - - /** - * @var int - */ - protected $writeFlags; - /** - * @var int - */ - private $linkHandling; - - /** - * Constructor. - * - * @param string $root - * @param int $writeFlags - * @param int $linkHandling - * @param array $permissions - * - * @throws LogicException - */ - public function __construct($root, $writeFlags = LOCK_EX, $linkHandling = self::DISALLOW_LINKS, array $permissions = []) - { - $root = is_link($root) ? realpath($root) : $root; - $this->permissionMap = array_replace_recursive(static::$permissions, $permissions); - $this->ensureDirectory($root); - - if ( ! is_dir($root) || ! is_readable($root)) { - throw new LogicException('The root path ' . $root . ' is not readable.'); - } - - $this->setPathPrefix($root); - $this->writeFlags = $writeFlags; - $this->linkHandling = $linkHandling; - } - - /** - * Ensure the root directory exists. - * - * @param string $root root directory path - * - * @return void - * - * @throws Exception in case the root directory can not be created - */ - protected function ensureDirectory($root) - { - if ( ! is_dir($root)) { - $umask = umask(0); - @mkdir($root, $this->permissionMap['dir']['public'], true); - umask($umask); - - if ( ! is_dir($root)) { - throw new Exception(sprintf('Impossible to create the root directory "%s".', $root)); - } - } - } - - /** - * @inheritdoc - */ - public function has($path) - { - $location = $this->applyPathPrefix($path); - - return file_exists($location); - } - - /** - * @inheritdoc - */ - public function write($path, $contents, Config $config) - { - $location = $this->applyPathPrefix($path); - $this->ensureDirectory(dirname($location)); - - if (($size = file_put_contents($location, $contents, $this->writeFlags)) === false) { - return false; - } - - $type = 'file'; - $result = compact('contents', 'type', 'size', 'path'); - - if ($visibility = $config->get('visibility')) { - $result['visibility'] = $visibility; - $this->setVisibility($path, $visibility); - } - - return $result; - } - - /** - * @inheritdoc - */ - public function writeStream($path, $resource, Config $config) - { - $location = $this->applyPathPrefix($path); - $this->ensureDirectory(dirname($location)); - $stream = fopen($location, 'w+b'); - - if ( ! $stream) { - return false; - } - - stream_copy_to_stream($resource, $stream); - - if ( ! fclose($stream)) { - return false; - } - - $type = 'file'; - - $result = compact('type', 'path'); - - if ($visibility = $config->get('visibility')) { - $this->setVisibility($path, $visibility); - $result['visibility'] = $visibility; - } - - return $result; - } - - /** - * @inheritdoc - */ - public function readStream($path) - { - $location = $this->applyPathPrefix($path); - $stream = fopen($location, 'rb'); - - return ['type' => 'file', 'path' => $path, 'stream' => $stream]; - } - - /** - * @inheritdoc - */ - public function updateStream($path, $resource, Config $config) - { - return $this->writeStream($path, $resource, $config); - } - - /** - * @inheritdoc - */ - public function update($path, $contents, Config $config) - { - $location = $this->applyPathPrefix($path); - $size = file_put_contents($location, $contents, $this->writeFlags); - - if ($size === false) { - return false; - } - - $type = 'file'; - - $result = compact('type', 'path', 'size', 'contents'); - - if ($mimetype = Util::guessMimeType($path, $contents)) { - $result['mimetype'] = $mimetype; - } - - return $result; - } - - /** - * @inheritdoc - */ - public function read($path) - { - $location = $this->applyPathPrefix($path); - $contents = file_get_contents($location); - - if ($contents === false) { - return false; - } - - return ['type' => 'file', 'path' => $path, 'contents' => $contents]; - } - - /** - * @inheritdoc - */ - public function rename($path, $newpath) - { - $location = $this->applyPathPrefix($path); - $destination = $this->applyPathPrefix($newpath); - $parentDirectory = $this->applyPathPrefix(Util::dirname($newpath)); - $this->ensureDirectory($parentDirectory); - - return rename($location, $destination); - } - - /** - * @inheritdoc - */ - public function copy($path, $newpath) - { - $location = $this->applyPathPrefix($path); - $destination = $this->applyPathPrefix($newpath); - $this->ensureDirectory(dirname($destination)); - - return copy($location, $destination); - } - - /** - * @inheritdoc - */ - public function delete($path) - { - $location = $this->applyPathPrefix($path); - - return unlink($location); - } - - /** - * @inheritdoc - */ - public function listContents($directory = '', $recursive = false) - { - $result = []; - $location = $this->applyPathPrefix($directory); - - if ( ! is_dir($location)) { - return []; - } - - $iterator = $recursive ? $this->getRecursiveDirectoryIterator($location) : $this->getDirectoryIterator($location); - - foreach ($iterator as $file) { - $path = $this->getFilePath($file); - - if (preg_match('#(^|/|\\\\)\.{1,2}$#', $path)) { - continue; - } - - $result[] = $this->normalizeFileInfo($file); - } - - return array_filter($result); - } - - /** - * @inheritdoc - */ - public function getMetadata($path) - { - $location = $this->applyPathPrefix($path); - $info = new SplFileInfo($location); - - return $this->normalizeFileInfo($info); - } - - /** - * @inheritdoc - */ - public function getSize($path) - { - return $this->getMetadata($path); - } - - /** - * @inheritdoc - */ - public function getMimetype($path) - { - $location = $this->applyPathPrefix($path); - $finfo = new Finfo(FILEINFO_MIME_TYPE); - $mimetype = $finfo->file($location); - - if (in_array($mimetype, ['application/octet-stream', 'inode/x-empty'])) { - $mimetype = Util\MimeType::detectByFilename($location); - } - - return ['path' => $path, 'type' => 'file', 'mimetype' => $mimetype]; - } - - /** - * @inheritdoc - */ - public function getTimestamp($path) - { - return $this->getMetadata($path); - } - - /** - * @inheritdoc - */ - public function getVisibility($path) - { - $location = $this->applyPathPrefix($path); - clearstatcache(false, $location); - $permissions = octdec(substr(sprintf('%o', fileperms($location)), -4)); - $visibility = $permissions & 0044 ? AdapterInterface::VISIBILITY_PUBLIC : AdapterInterface::VISIBILITY_PRIVATE; - - return compact('path', 'visibility'); - } - - /** - * @inheritdoc - */ - public function setVisibility($path, $visibility) - { - $location = $this->applyPathPrefix($path); - $type = is_dir($location) ? 'dir' : 'file'; - $success = chmod($location, $this->permissionMap[$type][$visibility]); - - if ($success === false) { - return false; - } - - return compact('path', 'visibility'); - } - - /** - * @inheritdoc - */ - public function createDir($dirname, Config $config) - { - $location = $this->applyPathPrefix($dirname); - $umask = umask(0); - $visibility = $config->get('visibility', 'public'); - - if ( ! is_dir($location) && ! mkdir($location, $this->permissionMap['dir'][$visibility], true)) { - $return = false; - } else { - $return = ['path' => $dirname, 'type' => 'dir']; - } - - umask($umask); - - return $return; - } - - /** - * @inheritdoc - */ - public function deleteDir($dirname) - { - $location = $this->applyPathPrefix($dirname); - - if ( ! is_dir($location)) { - return false; - } - - $contents = $this->getRecursiveDirectoryIterator($location, RecursiveIteratorIterator::CHILD_FIRST); - - /** @var SplFileInfo $file */ - foreach ($contents as $file) { - $this->guardAgainstUnreadableFileInfo($file); - $this->deleteFileInfoObject($file); - } - - return rmdir($location); - } - - /** - * @param SplFileInfo $file - */ - protected function deleteFileInfoObject(SplFileInfo $file) - { - switch ($file->getType()) { - case 'dir': - rmdir($file->getRealPath()); - break; - case 'link': - unlink($file->getPathname()); - break; - default: - unlink($file->getRealPath()); - } - } - - /** - * Normalize the file info. - * - * @param SplFileInfo $file - * - * @return array|void - * - * @throws NotSupportedException - */ - protected function normalizeFileInfo(SplFileInfo $file) - { - if ( ! $file->isLink()) { - return $this->mapFileInfo($file); - } - - if ($this->linkHandling & self::DISALLOW_LINKS) { - throw NotSupportedException::forLink($file); - } - } - - /** - * Get the normalized path from a SplFileInfo object. - * - * @param SplFileInfo $file - * - * @return string - */ - protected function getFilePath(SplFileInfo $file) - { - $location = $file->getPathname(); - $path = $this->removePathPrefix($location); - - return trim(str_replace('\\', '/', $path), '/'); - } - - /** - * @param string $path - * @param int $mode - * - * @return RecursiveIteratorIterator - */ - protected function getRecursiveDirectoryIterator($path, $mode = RecursiveIteratorIterator::SELF_FIRST) - { - return new RecursiveIteratorIterator( - new RecursiveDirectoryIterator($path, FilesystemIterator::SKIP_DOTS), - $mode - ); - } - - /** - * @param string $path - * - * @return DirectoryIterator - */ - protected function getDirectoryIterator($path) - { - $iterator = new DirectoryIterator($path); - - return $iterator; - } - - /** - * @param SplFileInfo $file - * - * @return array - */ - protected function mapFileInfo(SplFileInfo $file) - { - $normalized = [ - 'type' => $file->getType(), - 'path' => $this->getFilePath($file), - ]; - - $normalized['timestamp'] = $file->getMTime(); - - if ($normalized['type'] === 'file') { - $normalized['size'] = $file->getSize(); - } - - return $normalized; - } - - /** - * @param SplFileInfo $file - * - * @throws UnreadableFileException - */ - protected function guardAgainstUnreadableFileInfo(SplFileInfo $file) - { - if ( ! $file->isReadable()) { - throw UnreadableFileException::forFileInfo($file); - } - } -} diff --git a/vendor/league/flysystem/src/Adapter/NullAdapter.php b/vendor/league/flysystem/src/Adapter/NullAdapter.php deleted file mode 100644 index 2527087f..00000000 --- a/vendor/league/flysystem/src/Adapter/NullAdapter.php +++ /dev/null @@ -1,144 +0,0 @@ -get('visibility')) { - $result['visibility'] = $visibility; - } - - return $result; - } - - /** - * @inheritdoc - */ - public function update($path, $contents, Config $config) - { - return false; - } - - /** - * @inheritdoc - */ - public function read($path) - { - return false; - } - - /** - * @inheritdoc - */ - public function rename($path, $newpath) - { - return false; - } - - /** - * @inheritdoc - */ - public function delete($path) - { - return false; - } - - /** - * @inheritdoc - */ - public function listContents($directory = '', $recursive = false) - { - return []; - } - - /** - * @inheritdoc - */ - public function getMetadata($path) - { - return false; - } - - /** - * @inheritdoc - */ - public function getSize($path) - { - return false; - } - - /** - * @inheritdoc - */ - public function getMimetype($path) - { - return false; - } - - /** - * @inheritdoc - */ - public function getTimestamp($path) - { - return false; - } - - /** - * @inheritdoc - */ - public function getVisibility($path) - { - return false; - } - - /** - * @inheritdoc - */ - public function setVisibility($path, $visibility) - { - return compact('visibility'); - } - - /** - * @inheritdoc - */ - public function createDir($dirname, Config $config) - { - return ['path' => $dirname, 'type' => 'dir']; - } - - /** - * @inheritdoc - */ - public function deleteDir($dirname) - { - return false; - } -} diff --git a/vendor/league/flysystem/src/Adapter/Polyfill/NotSupportingVisibilityTrait.php b/vendor/league/flysystem/src/Adapter/Polyfill/NotSupportingVisibilityTrait.php deleted file mode 100644 index fc0a747a..00000000 --- a/vendor/league/flysystem/src/Adapter/Polyfill/NotSupportingVisibilityTrait.php +++ /dev/null @@ -1,33 +0,0 @@ -readStream($path); - - if ($response === false || ! is_resource($response['stream'])) { - return false; - } - - $result = $this->writeStream($newpath, $response['stream'], new Config()); - - if ($result !== false && is_resource($response['stream'])) { - fclose($response['stream']); - } - - return $result !== false; - } - - // Required abstract method - - /** - * @param string $path - * @return resource - */ - abstract public function readStream($path); - - /** - * @param string $path - * @param resource $resource - * @param Config $config - * @return resource - */ - abstract public function writeStream($path, $resource, Config $config); -} diff --git a/vendor/league/flysystem/src/Adapter/Polyfill/StreamedReadingTrait.php b/vendor/league/flysystem/src/Adapter/Polyfill/StreamedReadingTrait.php deleted file mode 100644 index 2b31c01d..00000000 --- a/vendor/league/flysystem/src/Adapter/Polyfill/StreamedReadingTrait.php +++ /dev/null @@ -1,44 +0,0 @@ -read($path)) { - return false; - } - - $stream = fopen('php://temp', 'w+b'); - fwrite($stream, $data['contents']); - rewind($stream); - $data['stream'] = $stream; - unset($data['contents']); - - return $data; - } - - /** - * Reads a file. - * - * @param string $path - * - * @return array|false - * - * @see League\Flysystem\ReadInterface::read() - */ - abstract public function read($path); -} diff --git a/vendor/league/flysystem/src/Adapter/Polyfill/StreamedTrait.php b/vendor/league/flysystem/src/Adapter/Polyfill/StreamedTrait.php deleted file mode 100644 index 80424960..00000000 --- a/vendor/league/flysystem/src/Adapter/Polyfill/StreamedTrait.php +++ /dev/null @@ -1,9 +0,0 @@ -stream($path, $resource, $config, 'write'); - } - - /** - * Update a file using a stream. - * - * @param string $path - * @param resource $resource - * @param Config $config Config object or visibility setting - * - * @return mixed false of file metadata - */ - public function updateStream($path, $resource, Config $config) - { - return $this->stream($path, $resource, $config, 'update'); - } - - // Required abstract methods - abstract public function write($pash, $contents, Config $config); - abstract public function update($pash, $contents, Config $config); -} diff --git a/vendor/league/flysystem/src/Adapter/SynologyFtp.php b/vendor/league/flysystem/src/Adapter/SynologyFtp.php deleted file mode 100644 index fe0d344c..00000000 --- a/vendor/league/flysystem/src/Adapter/SynologyFtp.php +++ /dev/null @@ -1,8 +0,0 @@ -settings = $settings; - } - - /** - * Get a setting. - * - * @param string $key - * @param mixed $default - * - * @return mixed config setting or default when not found - */ - public function get($key, $default = null) - { - if ( ! array_key_exists($key, $this->settings)) { - return $this->getDefault($key, $default); - } - - return $this->settings[$key]; - } - - /** - * Check if an item exists by key. - * - * @param string $key - * - * @return bool - */ - public function has($key) - { - if (array_key_exists($key, $this->settings)) { - return true; - } - - return $this->fallback instanceof Config - ? $this->fallback->has($key) - : false; - } - - /** - * Try to retrieve a default setting from a config fallback. - * - * @param string $key - * @param mixed $default - * - * @return mixed config setting or default when not found - */ - protected function getDefault($key, $default) - { - if ( ! $this->fallback) { - return $default; - } - - return $this->fallback->get($key, $default); - } - - /** - * Set a setting. - * - * @param string $key - * @param mixed $value - * - * @return $this - */ - public function set($key, $value) - { - $this->settings[$key] = $value; - - return $this; - } - - /** - * Set the fallback. - * - * @param Config $fallback - * - * @return $this - */ - public function setFallback(Config $fallback) - { - $this->fallback = $fallback; - - return $this; - } -} diff --git a/vendor/league/flysystem/src/ConfigAwareTrait.php b/vendor/league/flysystem/src/ConfigAwareTrait.php deleted file mode 100644 index 202d605d..00000000 --- a/vendor/league/flysystem/src/ConfigAwareTrait.php +++ /dev/null @@ -1,49 +0,0 @@ -config = $config ? Util::ensureConfig($config) : new Config; - } - - /** - * Get the Config. - * - * @return Config config object - */ - public function getConfig() - { - return $this->config; - } - - /** - * Convert a config array to a Config object with the correct fallback. - * - * @param array $config - * - * @return Config - */ - protected function prepareConfig(array $config) - { - $config = new Config($config); - $config->setFallback($this->getConfig()); - - return $config; - } -} diff --git a/vendor/league/flysystem/src/Directory.php b/vendor/league/flysystem/src/Directory.php deleted file mode 100644 index d4f90a88..00000000 --- a/vendor/league/flysystem/src/Directory.php +++ /dev/null @@ -1,31 +0,0 @@ -filesystem->deleteDir($this->path); - } - - /** - * List the directory contents. - * - * @param bool $recursive - * - * @return array|bool directory contents or false - */ - public function getContents($recursive = false) - { - return $this->filesystem->listContents($this->path, $recursive); - } -} diff --git a/vendor/league/flysystem/src/Exception.php b/vendor/league/flysystem/src/Exception.php deleted file mode 100644 index d4a9907b..00000000 --- a/vendor/league/flysystem/src/Exception.php +++ /dev/null @@ -1,8 +0,0 @@ -filesystem->has($this->path); - } - - /** - * Read the file. - * - * @return string|false file contents - */ - public function read() - { - return $this->filesystem->read($this->path); - } - - /** - * Read the file as a stream. - * - * @return resource|false file stream - */ - public function readStream() - { - return $this->filesystem->readStream($this->path); - } - - /** - * Write the new file. - * - * @param string $content - * - * @return bool success boolean - */ - public function write($content) - { - return $this->filesystem->write($this->path, $content); - } - - /** - * Write the new file using a stream. - * - * @param resource $resource - * - * @return bool success boolean - */ - public function writeStream($resource) - { - return $this->filesystem->writeStream($this->path, $resource); - } - - /** - * Update the file contents. - * - * @param string $content - * - * @return bool success boolean - */ - public function update($content) - { - return $this->filesystem->update($this->path, $content); - } - - /** - * Update the file contents with a stream. - * - * @param resource $resource - * - * @return bool success boolean - */ - public function updateStream($resource) - { - return $this->filesystem->updateStream($this->path, $resource); - } - - /** - * Create the file or update if exists. - * - * @param string $content - * - * @return bool success boolean - */ - public function put($content) - { - return $this->filesystem->put($this->path, $content); - } - - /** - * Create the file or update if exists using a stream. - * - * @param resource $resource - * - * @return bool success boolean - */ - public function putStream($resource) - { - return $this->filesystem->putStream($this->path, $resource); - } - - /** - * Rename the file. - * - * @param string $newpath - * - * @return bool success boolean - */ - public function rename($newpath) - { - if ($this->filesystem->rename($this->path, $newpath)) { - $this->path = $newpath; - - return true; - } - - return false; - } - - /** - * Copy the file. - * - * @param string $newpath - * - * @return File|false new file or false - */ - public function copy($newpath) - { - if ($this->filesystem->copy($this->path, $newpath)) { - return new File($this->filesystem, $newpath); - } - - return false; - } - - /** - * Get the file's timestamp. - * - * @return string|false The timestamp or false on failure. - */ - public function getTimestamp() - { - return $this->filesystem->getTimestamp($this->path); - } - - /** - * Get the file's mimetype. - * - * @return string|false The file mime-type or false on failure. - */ - public function getMimetype() - { - return $this->filesystem->getMimetype($this->path); - } - - /** - * Get the file's visibility. - * - * @return string|false The visibility (public|private) or false on failure. - */ - public function getVisibility() - { - return $this->filesystem->getVisibility($this->path); - } - - /** - * Get the file's metadata. - * - * @return array|false The file metadata or false on failure. - */ - public function getMetadata() - { - return $this->filesystem->getMetadata($this->path); - } - - /** - * Get the file size. - * - * @return int|false The file size or false on failure. - */ - public function getSize() - { - return $this->filesystem->getSize($this->path); - } - - /** - * Delete the file. - * - * @return bool success boolean - */ - public function delete() - { - return $this->filesystem->delete($this->path); - } -} diff --git a/vendor/league/flysystem/src/FileExistsException.php b/vendor/league/flysystem/src/FileExistsException.php deleted file mode 100644 index c82e20c1..00000000 --- a/vendor/league/flysystem/src/FileExistsException.php +++ /dev/null @@ -1,37 +0,0 @@ -path = $path; - - parent::__construct('File already exists at path: ' . $this->getPath(), $code, $previous); - } - - /** - * Get the path which was found. - * - * @return string - */ - public function getPath() - { - return $this->path; - } -} diff --git a/vendor/league/flysystem/src/FileNotFoundException.php b/vendor/league/flysystem/src/FileNotFoundException.php deleted file mode 100644 index 989df69b..00000000 --- a/vendor/league/flysystem/src/FileNotFoundException.php +++ /dev/null @@ -1,37 +0,0 @@ -path = $path; - - parent::__construct('File not found at path: ' . $this->getPath(), $code, $previous); - } - - /** - * Get the path which was not found. - * - * @return string - */ - public function getPath() - { - return $this->path; - } -} diff --git a/vendor/league/flysystem/src/Filesystem.php b/vendor/league/flysystem/src/Filesystem.php deleted file mode 100644 index 7e9881fb..00000000 --- a/vendor/league/flysystem/src/Filesystem.php +++ /dev/null @@ -1,407 +0,0 @@ -adapter = $adapter; - $this->setConfig($config); - } - - /** - * Get the Adapter. - * - * @return AdapterInterface adapter - */ - public function getAdapter() - { - return $this->adapter; - } - - /** - * @inheritdoc - */ - public function has($path) - { - $path = Util::normalizePath($path); - - return strlen($path) === 0 ? false : (bool) $this->getAdapter()->has($path); - } - - /** - * @inheritdoc - */ - public function write($path, $contents, array $config = []) - { - $path = Util::normalizePath($path); - $this->assertAbsent($path); - $config = $this->prepareConfig($config); - - return (bool) $this->getAdapter()->write($path, $contents, $config); - } - - /** - * @inheritdoc - */ - public function writeStream($path, $resource, array $config = []) - { - if ( ! is_resource($resource)) { - throw new InvalidArgumentException(__METHOD__ . ' expects argument #2 to be a valid resource.'); - } - - $path = Util::normalizePath($path); - $this->assertAbsent($path); - $config = $this->prepareConfig($config); - - Util::rewindStream($resource); - - return (bool) $this->getAdapter()->writeStream($path, $resource, $config); - } - - /** - * @inheritdoc - */ - public function put($path, $contents, array $config = []) - { - $path = Util::normalizePath($path); - $config = $this->prepareConfig($config); - - if ( ! $this->getAdapter() instanceof CanOverwriteFiles && $this->has($path)) { - return (bool) $this->getAdapter()->update($path, $contents, $config); - } - - return (bool) $this->getAdapter()->write($path, $contents, $config); - } - - /** - * @inheritdoc - */ - public function putStream($path, $resource, array $config = []) - { - if ( ! is_resource($resource)) { - throw new InvalidArgumentException(__METHOD__ . ' expects argument #2 to be a valid resource.'); - } - - $path = Util::normalizePath($path); - $config = $this->prepareConfig($config); - Util::rewindStream($resource); - - if ( ! $this->getAdapter() instanceof CanOverwriteFiles &&$this->has($path)) { - return (bool) $this->getAdapter()->updateStream($path, $resource, $config); - } - - return (bool) $this->getAdapter()->writeStream($path, $resource, $config); - } - - /** - * @inheritdoc - */ - public function readAndDelete($path) - { - $path = Util::normalizePath($path); - $this->assertPresent($path); - $contents = $this->read($path); - - if ($contents === false) { - return false; - } - - $this->delete($path); - - return $contents; - } - - /** - * @inheritdoc - */ - public function update($path, $contents, array $config = []) - { - $path = Util::normalizePath($path); - $config = $this->prepareConfig($config); - - $this->assertPresent($path); - - return (bool) $this->getAdapter()->update($path, $contents, $config); - } - - /** - * @inheritdoc - */ - public function updateStream($path, $resource, array $config = []) - { - if ( ! is_resource($resource)) { - throw new InvalidArgumentException(__METHOD__ . ' expects argument #2 to be a valid resource.'); - } - - $path = Util::normalizePath($path); - $config = $this->prepareConfig($config); - $this->assertPresent($path); - Util::rewindStream($resource); - - return (bool) $this->getAdapter()->updateStream($path, $resource, $config); - } - - /** - * @inheritdoc - */ - public function read($path) - { - $path = Util::normalizePath($path); - $this->assertPresent($path); - - if ( ! ($object = $this->getAdapter()->read($path))) { - return false; - } - - return $object['contents']; - } - - /** - * @inheritdoc - */ - public function readStream($path) - { - $path = Util::normalizePath($path); - $this->assertPresent($path); - - if ( ! $object = $this->getAdapter()->readStream($path)) { - return false; - } - - return $object['stream']; - } - - /** - * @inheritdoc - */ - public function rename($path, $newpath) - { - $path = Util::normalizePath($path); - $newpath = Util::normalizePath($newpath); - $this->assertPresent($path); - $this->assertAbsent($newpath); - - return (bool) $this->getAdapter()->rename($path, $newpath); - } - - /** - * @inheritdoc - */ - public function copy($path, $newpath) - { - $path = Util::normalizePath($path); - $newpath = Util::normalizePath($newpath); - $this->assertPresent($path); - $this->assertAbsent($newpath); - - return $this->getAdapter()->copy($path, $newpath); - } - - /** - * @inheritdoc - */ - public function delete($path) - { - $path = Util::normalizePath($path); - $this->assertPresent($path); - - return $this->getAdapter()->delete($path); - } - - /** - * @inheritdoc - */ - public function deleteDir($dirname) - { - $dirname = Util::normalizePath($dirname); - - if ($dirname === '') { - throw new RootViolationException('Root directories can not be deleted.'); - } - - return (bool) $this->getAdapter()->deleteDir($dirname); - } - - /** - * @inheritdoc - */ - public function createDir($dirname, array $config = []) - { - $dirname = Util::normalizePath($dirname); - $config = $this->prepareConfig($config); - - return (bool) $this->getAdapter()->createDir($dirname, $config); - } - - /** - * @inheritdoc - */ - public function listContents($directory = '', $recursive = false) - { - $directory = Util::normalizePath($directory); - $contents = $this->getAdapter()->listContents($directory, $recursive); - - return (new ContentListingFormatter($directory, $recursive))->formatListing($contents); - } - - /** - * @inheritdoc - */ - public function getMimetype($path) - { - $path = Util::normalizePath($path); - $this->assertPresent($path); - - if (( ! $object = $this->getAdapter()->getMimetype($path)) || ! array_key_exists('mimetype', $object)) { - return false; - } - - return $object['mimetype']; - } - - /** - * @inheritdoc - */ - public function getTimestamp($path) - { - $path = Util::normalizePath($path); - $this->assertPresent($path); - - if (( ! $object = $this->getAdapter()->getTimestamp($path)) || ! array_key_exists('timestamp', $object)) { - return false; - } - - return $object['timestamp']; - } - - /** - * @inheritdoc - */ - public function getVisibility($path) - { - $path = Util::normalizePath($path); - $this->assertPresent($path); - - if (( ! $object = $this->getAdapter()->getVisibility($path)) || ! array_key_exists('visibility', $object)) { - return false; - } - - return $object['visibility']; - } - - /** - * @inheritdoc - */ - public function getSize($path) - { - $path = Util::normalizePath($path); - $this->assertPresent($path); - - if (( ! $object = $this->getAdapter()->getSize($path)) || ! array_key_exists('size', $object)) { - return false; - } - - return (int) $object['size']; - } - - /** - * @inheritdoc - */ - public function setVisibility($path, $visibility) - { - $path = Util::normalizePath($path); - $this->assertPresent($path); - - return (bool) $this->getAdapter()->setVisibility($path, $visibility); - } - - /** - * @inheritdoc - */ - public function getMetadata($path) - { - $path = Util::normalizePath($path); - $this->assertPresent($path); - - return $this->getAdapter()->getMetadata($path); - } - - /** - * @inheritdoc - */ - public function get($path, Handler $handler = null) - { - $path = Util::normalizePath($path); - - if ( ! $handler) { - $metadata = $this->getMetadata($path); - $handler = $metadata['type'] === 'file' ? new File($this, $path) : new Directory($this, $path); - } - - $handler->setPath($path); - $handler->setFilesystem($this); - - return $handler; - } - - /** - * Assert a file is present. - * - * @param string $path path to file - * - * @throws FileNotFoundException - * - * @return void - */ - public function assertPresent($path) - { - if ($this->config->get('disable_asserts', false) === false && ! $this->has($path)) { - throw new FileNotFoundException($path); - } - } - - /** - * Assert a file is absent. - * - * @param string $path path to file - * - * @throws FileExistsException - * - * @return void - */ - public function assertAbsent($path) - { - if ($this->config->get('disable_asserts', false) === false && $this->has($path)) { - throw new FileExistsException($path); - } - } -} diff --git a/vendor/league/flysystem/src/FilesystemInterface.php b/vendor/league/flysystem/src/FilesystemInterface.php deleted file mode 100644 index 09b811b1..00000000 --- a/vendor/league/flysystem/src/FilesystemInterface.php +++ /dev/null @@ -1,284 +0,0 @@ -path = $path; - $this->filesystem = $filesystem; - } - - /** - * Check whether the entree is a directory. - * - * @return bool - */ - public function isDir() - { - return $this->getType() === 'dir'; - } - - /** - * Check whether the entree is a file. - * - * @return bool - */ - public function isFile() - { - return $this->getType() === 'file'; - } - - /** - * Retrieve the entree type (file|dir). - * - * @return string file or dir - */ - public function getType() - { - $metadata = $this->filesystem->getMetadata($this->path); - - return $metadata['type']; - } - - /** - * Set the Filesystem object. - * - * @param FilesystemInterface $filesystem - * - * @return $this - */ - public function setFilesystem(FilesystemInterface $filesystem) - { - $this->filesystem = $filesystem; - - return $this; - } - - /** - * Retrieve the Filesystem object. - * - * @return FilesystemInterface - */ - public function getFilesystem() - { - return $this->filesystem; - } - - /** - * Set the entree path. - * - * @param string $path - * - * @return $this - */ - public function setPath($path) - { - $this->path = $path; - - return $this; - } - - /** - * Retrieve the entree path. - * - * @return string path - */ - public function getPath() - { - return $this->path; - } - - /** - * Plugins pass-through. - * - * @param string $method - * @param array $arguments - * - * @return mixed - */ - public function __call($method, array $arguments) - { - array_unshift($arguments, $this->path); - $callback = [$this->filesystem, $method]; - - try { - return call_user_func_array($callback, $arguments); - } catch (BadMethodCallException $e) { - throw new BadMethodCallException( - 'Call to undefined method ' - . get_called_class() - . '::' . $method - ); - } - } -} diff --git a/vendor/league/flysystem/src/MountManager.php b/vendor/league/flysystem/src/MountManager.php deleted file mode 100644 index 6dea2001..00000000 --- a/vendor/league/flysystem/src/MountManager.php +++ /dev/null @@ -1,320 +0,0 @@ - Filesystem,] - * - * @throws InvalidArgumentException - */ - public function __construct(array $filesystems = []) - { - $this->mountFilesystems($filesystems); - } - - /** - * Mount filesystems. - * - * @param FilesystemInterface[] $filesystems [:prefix => Filesystem,] - * - * @throws InvalidArgumentException - * - * @return $this - */ - public function mountFilesystems(array $filesystems) - { - foreach ($filesystems as $prefix => $filesystem) { - $this->mountFilesystem($prefix, $filesystem); - } - - return $this; - } - - /** - * Mount filesystems. - * - * @param string $prefix - * @param FilesystemInterface $filesystem - * - * @throws InvalidArgumentException - * - * @return $this - */ - public function mountFilesystem($prefix, FilesystemInterface $filesystem) - { - if ( ! is_string($prefix)) { - throw new InvalidArgumentException(__METHOD__ . ' expects argument #1 to be a string.'); - } - - $this->filesystems[$prefix] = $filesystem; - - return $this; - } - - /** - * Get the filesystem with the corresponding prefix. - * - * @param string $prefix - * - * @throws FilesystemNotFoundException - * - * @return FilesystemInterface - */ - public function getFilesystem($prefix) - { - if ( ! isset($this->filesystems[$prefix])) { - throw new FilesystemNotFoundException('No filesystem mounted with prefix ' . $prefix); - } - - return $this->filesystems[$prefix]; - } - - /** - * Retrieve the prefix from an arguments array. - * - * @param array $arguments - * - * @throws InvalidArgumentException - * - * @return array [:prefix, :arguments] - */ - public function filterPrefix(array $arguments) - { - if (empty($arguments)) { - throw new InvalidArgumentException('At least one argument needed'); - } - - $path = array_shift($arguments); - - if ( ! is_string($path)) { - throw new InvalidArgumentException('First argument should be a string'); - } - - list($prefix, $path) = $this->getPrefixAndPath($path); - array_unshift($arguments, $path); - - return [$prefix, $arguments]; - } - - /** - * @param string $directory - * @param bool $recursive - * - * @throws InvalidArgumentException - * @throws FilesystemNotFoundException - * - * @return array - */ - public function listContents($directory = '', $recursive = false) - { - list($prefix, $directory) = $this->getPrefixAndPath($directory); - $filesystem = $this->getFilesystem($prefix); - $result = $filesystem->listContents($directory, $recursive); - - foreach ($result as &$file) { - $file['filesystem'] = $prefix; - } - - return $result; - } - - /** - * Call forwarder. - * - * @param string $method - * @param array $arguments - * - * @throws InvalidArgumentException - * @throws FilesystemNotFoundException - * - * @return mixed - */ - public function __call($method, $arguments) - { - list($prefix, $arguments) = $this->filterPrefix($arguments); - - return $this->invokePluginOnFilesystem($method, $arguments, $prefix); - } - - /** - * @param string $from - * @param string $to - * @param array $config - * - * @throws InvalidArgumentException - * @throws FilesystemNotFoundException - * - * @return bool - */ - public function copy($from, $to, array $config = []) - { - list($prefixFrom, $from) = $this->getPrefixAndPath($from); - - $buffer = $this->getFilesystem($prefixFrom)->readStream($from); - - if ($buffer === false) { - return false; - } - - list($prefixTo, $to) = $this->getPrefixAndPath($to); - - $result = $this->getFilesystem($prefixTo)->writeStream($to, $buffer, $config); - - if (is_resource($buffer)) { - fclose($buffer); - } - - return $result; - } - - /** - * List with plugin adapter. - * - * @param array $keys - * @param string $directory - * @param bool $recursive - * - * @throws InvalidArgumentException - * @throws FilesystemNotFoundException - * - * @return array - */ - public function listWith(array $keys = [], $directory = '', $recursive = false) - { - list($prefix, $directory) = $this->getPrefixAndPath($directory); - $arguments = [$keys, $directory, $recursive]; - - return $this->invokePluginOnFilesystem('listWith', $arguments, $prefix); - } - - /** - * Move a file. - * - * @param string $from - * @param string $to - * @param array $config - * - * @throws InvalidArgumentException - * @throws FilesystemNotFoundException - * - * @return bool - */ - public function move($from, $to, array $config = []) - { - list($prefixFrom, $pathFrom) = $this->getPrefixAndPath($from); - list($prefixTo, $pathTo) = $this->getPrefixAndPath($to); - - if ($prefixFrom === $prefixTo) { - $filesystem = $this->getFilesystem($prefixFrom); - $renamed = $filesystem->rename($pathFrom, $pathTo); - - if ($renamed && isset($config['visibility'])) { - return $filesystem->setVisibility($pathTo, $config['visibility']); - } - - return $renamed; - } - - $copied = $this->copy($from, $to, $config); - - if ($copied) { - return $this->delete($from); - } - - return false; - } - - /** - * Invoke a plugin on a filesystem mounted on a given prefix. - * - * @param string $method - * @param array $arguments - * @param string $prefix - * - * @throws FilesystemNotFoundException - * - * @return mixed - */ - public function invokePluginOnFilesystem($method, $arguments, $prefix) - { - $filesystem = $this->getFilesystem($prefix); - - try { - return $this->invokePlugin($method, $arguments, $filesystem); - } catch (PluginNotFoundException $e) { - // Let it pass, it's ok, don't panic. - } - - $callback = [$filesystem, $method]; - - return call_user_func_array($callback, $arguments); - } - - /** - * @param string $path - * - * @throws InvalidArgumentException - * - * @return string[] [:prefix, :path] - */ - protected function getPrefixAndPath($path) - { - if (strpos($path, '://') < 1) { - throw new InvalidArgumentException('No prefix detected in path: ' . $path); - } - - return explode('://', $path, 2); - } -} diff --git a/vendor/league/flysystem/src/NotSupportedException.php b/vendor/league/flysystem/src/NotSupportedException.php deleted file mode 100644 index 08f47f74..00000000 --- a/vendor/league/flysystem/src/NotSupportedException.php +++ /dev/null @@ -1,37 +0,0 @@ -getPathname()); - } - - /** - * Create a new exception for a link. - * - * @param string $systemType - * - * @return static - */ - public static function forFtpSystemType($systemType) - { - $message = "The FTP system type '$systemType' is currently not supported."; - - return new static($message); - } -} diff --git a/vendor/league/flysystem/src/Plugin/AbstractPlugin.php b/vendor/league/flysystem/src/Plugin/AbstractPlugin.php deleted file mode 100644 index 0d567897..00000000 --- a/vendor/league/flysystem/src/Plugin/AbstractPlugin.php +++ /dev/null @@ -1,24 +0,0 @@ -filesystem = $filesystem; - } -} diff --git a/vendor/league/flysystem/src/Plugin/EmptyDir.php b/vendor/league/flysystem/src/Plugin/EmptyDir.php deleted file mode 100644 index b5ae7f58..00000000 --- a/vendor/league/flysystem/src/Plugin/EmptyDir.php +++ /dev/null @@ -1,34 +0,0 @@ -filesystem->listContents($dirname, false); - - foreach ($listing as $item) { - if ($item['type'] === 'dir') { - $this->filesystem->deleteDir($item['path']); - } else { - $this->filesystem->delete($item['path']); - } - } - } -} diff --git a/vendor/league/flysystem/src/Plugin/ForcedCopy.php b/vendor/league/flysystem/src/Plugin/ForcedCopy.php deleted file mode 100644 index a41e9f3a..00000000 --- a/vendor/league/flysystem/src/Plugin/ForcedCopy.php +++ /dev/null @@ -1,44 +0,0 @@ -filesystem->delete($newpath); - } catch (FileNotFoundException $e) { - // The destination path does not exist. That's ok. - $deleted = true; - } - - if ($deleted) { - return $this->filesystem->copy($path, $newpath); - } - - return false; - } -} diff --git a/vendor/league/flysystem/src/Plugin/ForcedRename.php b/vendor/league/flysystem/src/Plugin/ForcedRename.php deleted file mode 100644 index 3f51cd60..00000000 --- a/vendor/league/flysystem/src/Plugin/ForcedRename.php +++ /dev/null @@ -1,44 +0,0 @@ -filesystem->delete($newpath); - } catch (FileNotFoundException $e) { - // The destination path does not exist. That's ok. - $deleted = true; - } - - if ($deleted) { - return $this->filesystem->rename($path, $newpath); - } - - return false; - } -} diff --git a/vendor/league/flysystem/src/Plugin/GetWithMetadata.php b/vendor/league/flysystem/src/Plugin/GetWithMetadata.php deleted file mode 100644 index 6fe4f056..00000000 --- a/vendor/league/flysystem/src/Plugin/GetWithMetadata.php +++ /dev/null @@ -1,51 +0,0 @@ -filesystem->getMetadata($path); - - if ( ! $object) { - return false; - } - - $keys = array_diff($metadata, array_keys($object)); - - foreach ($keys as $key) { - if ( ! method_exists($this->filesystem, $method = 'get' . ucfirst($key))) { - throw new InvalidArgumentException('Could not fetch metadata: ' . $key); - } - - $object[$key] = $this->filesystem->{$method}($path); - } - - return $object; - } -} diff --git a/vendor/league/flysystem/src/Plugin/ListFiles.php b/vendor/league/flysystem/src/Plugin/ListFiles.php deleted file mode 100644 index 9669fe7e..00000000 --- a/vendor/league/flysystem/src/Plugin/ListFiles.php +++ /dev/null @@ -1,35 +0,0 @@ -filesystem->listContents($directory, $recursive); - - $filter = function ($object) { - return $object['type'] === 'file'; - }; - - return array_values(array_filter($contents, $filter)); - } -} diff --git a/vendor/league/flysystem/src/Plugin/ListPaths.php b/vendor/league/flysystem/src/Plugin/ListPaths.php deleted file mode 100644 index 514bdf0b..00000000 --- a/vendor/league/flysystem/src/Plugin/ListPaths.php +++ /dev/null @@ -1,36 +0,0 @@ -filesystem->listContents($directory, $recursive); - - foreach ($contents as $object) { - $result[] = $object['path']; - } - - return $result; - } -} diff --git a/vendor/league/flysystem/src/Plugin/ListWith.php b/vendor/league/flysystem/src/Plugin/ListWith.php deleted file mode 100644 index d90464e5..00000000 --- a/vendor/league/flysystem/src/Plugin/ListWith.php +++ /dev/null @@ -1,60 +0,0 @@ -filesystem->listContents($directory, $recursive); - - foreach ($contents as $index => $object) { - if ($object['type'] === 'file') { - $missingKeys = array_diff($keys, array_keys($object)); - $contents[$index] = array_reduce($missingKeys, [$this, 'getMetadataByName'], $object); - } - } - - return $contents; - } - - /** - * Get a meta-data value by key name. - * - * @param array $object - * @param string $key - * - * @return array - */ - protected function getMetadataByName(array $object, $key) - { - $method = 'get' . ucfirst($key); - - if ( ! method_exists($this->filesystem, $method)) { - throw new \InvalidArgumentException('Could not get meta-data for key: ' . $key); - } - - $object[$key] = $this->filesystem->{$method}($object['path']); - - return $object; - } -} diff --git a/vendor/league/flysystem/src/Plugin/PluggableTrait.php b/vendor/league/flysystem/src/Plugin/PluggableTrait.php deleted file mode 100644 index 922edfe5..00000000 --- a/vendor/league/flysystem/src/Plugin/PluggableTrait.php +++ /dev/null @@ -1,97 +0,0 @@ -plugins[$plugin->getMethod()] = $plugin; - - return $this; - } - - /** - * Find a specific plugin. - * - * @param string $method - * - * @throws PluginNotFoundException - * - * @return PluginInterface - */ - protected function findPlugin($method) - { - if ( ! isset($this->plugins[$method])) { - throw new PluginNotFoundException('Plugin not found for method: ' . $method); - } - - return $this->plugins[$method]; - } - - /** - * Invoke a plugin by method name. - * - * @param string $method - * @param array $arguments - * @param FilesystemInterface $filesystem - * - * @throws PluginNotFoundException - * - * @return mixed - */ - protected function invokePlugin($method, array $arguments, FilesystemInterface $filesystem) - { - $plugin = $this->findPlugin($method); - $plugin->setFilesystem($filesystem); - $callback = [$plugin, 'handle']; - - return call_user_func_array($callback, $arguments); - } - - /** - * Plugins pass-through. - * - * @param string $method - * @param array $arguments - * - * @throws BadMethodCallException - * - * @return mixed - */ - public function __call($method, array $arguments) - { - try { - return $this->invokePlugin($method, $arguments, $this); - } catch (PluginNotFoundException $e) { - throw new BadMethodCallException( - 'Call to undefined method ' - . get_class($this) - . '::' . $method - ); - } - } -} diff --git a/vendor/league/flysystem/src/Plugin/PluginNotFoundException.php b/vendor/league/flysystem/src/Plugin/PluginNotFoundException.php deleted file mode 100644 index fd1d7e7e..00000000 --- a/vendor/league/flysystem/src/Plugin/PluginNotFoundException.php +++ /dev/null @@ -1,10 +0,0 @@ -hash = spl_object_hash($this); - static::$safeStorage[$this->hash] = []; - } - - public function storeSafely($key, $value) - { - static::$safeStorage[$this->hash][$key] = $value; - } - - public function retrieveSafely($key) - { - if (array_key_exists($key, static::$safeStorage[$this->hash])) { - return static::$safeStorage[$this->hash][$key]; - } - } - - public function __destruct() - { - unset(static::$safeStorage[$this->hash]); - } -} diff --git a/vendor/league/flysystem/src/UnreadableFileException.php b/vendor/league/flysystem/src/UnreadableFileException.php deleted file mode 100644 index e6680338..00000000 --- a/vendor/league/flysystem/src/UnreadableFileException.php +++ /dev/null @@ -1,18 +0,0 @@ -getRealPath() - ) - ); - } -} diff --git a/vendor/league/flysystem/src/Util.php b/vendor/league/flysystem/src/Util.php deleted file mode 100644 index 46dad86f..00000000 --- a/vendor/league/flysystem/src/Util.php +++ /dev/null @@ -1,348 +0,0 @@ - '']; - } - - /** - * Normalize a dirname return value. - * - * @param string $dirname - * - * @return string normalized dirname - */ - public static function normalizeDirname($dirname) - { - return $dirname === '.' ? '' : $dirname; - } - - /** - * Get a normalized dirname from a path. - * - * @param string $path - * - * @return string dirname - */ - public static function dirname($path) - { - return static::normalizeDirname(dirname($path)); - } - - /** - * Map result arrays. - * - * @param array $object - * @param array $map - * - * @return array mapped result - */ - public static function map(array $object, array $map) - { - $result = []; - - foreach ($map as $from => $to) { - if ( ! isset($object[$from])) { - continue; - } - - $result[$to] = $object[$from]; - } - - return $result; - } - - /** - * Normalize path. - * - * @param string $path - * - * @throws LogicException - * - * @return string - */ - public static function normalizePath($path) - { - return static::normalizeRelativePath($path); - } - - /** - * Normalize relative directories in a path. - * - * @param string $path - * - * @throws LogicException - * - * @return string - */ - public static function normalizeRelativePath($path) - { - $path = str_replace('\\', '/', $path); - $path = static::removeFunkyWhiteSpace($path); - - $parts = []; - - foreach (explode('/', $path) as $part) { - switch ($part) { - case '': - case '.': - break; - - case '..': - if (empty($parts)) { - throw new LogicException( - 'Path is outside of the defined root, path: [' . $path . ']' - ); - } - array_pop($parts); - break; - - default: - $parts[] = $part; - break; - } - } - - return implode('/', $parts); - } - - /** - * Removes unprintable characters and invalid unicode characters. - * - * @param string $path - * - * @return string $path - */ - protected static function removeFunkyWhiteSpace($path) { - // We do this check in a loop, since removing invalid unicode characters - // can lead to new characters being created. - while (preg_match('#\p{C}+|^\./#u', $path)) { - $path = preg_replace('#\p{C}+|^\./#u', '', $path); - } - - return $path; - } - - /** - * Normalize prefix. - * - * @param string $prefix - * @param string $separator - * - * @return string normalized path - */ - public static function normalizePrefix($prefix, $separator) - { - return rtrim($prefix, $separator) . $separator; - } - - /** - * Get content size. - * - * @param string $contents - * - * @return int content size - */ - public static function contentSize($contents) - { - return defined('MB_OVERLOAD_STRING') ? mb_strlen($contents, '8bit') : strlen($contents); - } - - /** - * Guess MIME Type based on the path of the file and it's content. - * - * @param string $path - * @param string|resource $content - * - * @return string|null MIME Type or NULL if no extension detected - */ - public static function guessMimeType($path, $content) - { - $mimeType = MimeType::detectByContent($content); - - if ( ! (empty($mimeType) || in_array($mimeType, ['application/x-empty', 'text/plain', 'text/x-asm']))) { - return $mimeType; - } - - return MimeType::detectByFilename($path); - } - - /** - * Emulate directories. - * - * @param array $listing - * - * @return array listing with emulated directories - */ - public static function emulateDirectories(array $listing) - { - $directories = []; - $listedDirectories = []; - - foreach ($listing as $object) { - list($directories, $listedDirectories) = static::emulateObjectDirectories($object, $directories, $listedDirectories); - } - - $directories = array_diff(array_unique($directories), array_unique($listedDirectories)); - - foreach ($directories as $directory) { - $listing[] = static::pathinfo($directory) + ['type' => 'dir']; - } - - return $listing; - } - - /** - * Ensure a Config instance. - * - * @param null|array|Config $config - * - * @return Config config instance - * - * @throw LogicException - */ - public static function ensureConfig($config) - { - if ($config === null) { - return new Config(); - } - - if ($config instanceof Config) { - return $config; - } - - if (is_array($config)) { - return new Config($config); - } - - throw new LogicException('A config should either be an array or a Flysystem\Config object.'); - } - - /** - * Rewind a stream. - * - * @param resource $resource - */ - public static function rewindStream($resource) - { - if (ftell($resource) !== 0 && static::isSeekableStream($resource)) { - rewind($resource); - } - } - - public static function isSeekableStream($resource) - { - $metadata = stream_get_meta_data($resource); - - return $metadata['seekable']; - } - - /** - * Get the size of a stream. - * - * @param resource $resource - * - * @return int stream size - */ - public static function getStreamSize($resource) - { - $stat = fstat($resource); - - return $stat['size']; - } - - /** - * Emulate the directories of a single object. - * - * @param array $object - * @param array $directories - * @param array $listedDirectories - * - * @return array - */ - protected static function emulateObjectDirectories(array $object, array $directories, array $listedDirectories) - { - if ($object['type'] === 'dir') { - $listedDirectories[] = $object['path']; - } - - if (empty($object['dirname'])) { - return [$directories, $listedDirectories]; - } - - $parent = $object['dirname']; - - while ( ! empty($parent) && ! in_array($parent, $directories)) { - $directories[] = $parent; - $parent = static::dirname($parent); - } - - if (isset($object['type']) && $object['type'] === 'dir') { - $listedDirectories[] = $object['path']; - - return [$directories, $listedDirectories]; - } - - return [$directories, $listedDirectories]; - } - - /** - * Returns the trailing name component of the path. - * - * @param string $path - * - * @return string - */ - private static function basename($path) - { - $separators = DIRECTORY_SEPARATOR === '/' ? '/' : '\/'; - - $path = rtrim($path, $separators); - - $basename = preg_replace('#.*?([^' . preg_quote($separators, '#') . ']+$)#', '$1', $path); - - if (DIRECTORY_SEPARATOR === '/') { - return $basename; - } - // @codeCoverageIgnoreStart - // Extra Windows path munging. This is tested via AppVeyor, but code - // coverage is not reported. - - // Handle relative paths with drive letters. c:file.txt. - while (preg_match('#^[a-zA-Z]{1}:[^\\\/]#', $basename)) { - $basename = substr($basename, 2); - } - - // Remove colon for standalone drive letter names. - if (preg_match('#^[a-zA-Z]{1}:$#', $basename)) { - $basename = rtrim($basename, ':'); - } - - return $basename; - // @codeCoverageIgnoreEnd - } -} diff --git a/vendor/league/flysystem/src/Util/ContentListingFormatter.php b/vendor/league/flysystem/src/Util/ContentListingFormatter.php deleted file mode 100644 index 5a8c95a8..00000000 --- a/vendor/league/flysystem/src/Util/ContentListingFormatter.php +++ /dev/null @@ -1,116 +0,0 @@ -directory = $directory; - $this->recursive = $recursive; - } - - /** - * Format contents listing. - * - * @param array $listing - * - * @return array - */ - public function formatListing(array $listing) - { - $listing = array_values( - array_map( - [$this, 'addPathInfo'], - array_filter($listing, [$this, 'isEntryOutOfScope']) - ) - ); - - return $this->sortListing($listing); - } - - private function addPathInfo(array $entry) - { - return $entry + Util::pathinfo($entry['path']); - } - - /** - * Determine if the entry is out of scope. - * - * @param array $entry - * - * @return bool - */ - private function isEntryOutOfScope(array $entry) - { - if (empty($entry['path']) && $entry['path'] !== '0') { - return false; - } - - if ($this->recursive) { - return $this->residesInDirectory($entry); - } - - return $this->isDirectChild($entry); - } - - /** - * Check if the entry resides within the parent directory. - * - * @param array $entry - * - * @return bool - */ - private function residesInDirectory(array $entry) - { - if ($this->directory === '') { - return true; - } - - return strpos($entry['path'], $this->directory . '/') === 0; - } - - /** - * Check if the entry is a direct child of the directory. - * - * @param array $entry - * - * @return bool - */ - private function isDirectChild(array $entry) - { - return Util::dirname($entry['path']) === $this->directory; - } - - /** - * @param array $listing - * - * @return array - */ - private function sortListing(array $listing) - { - usort($listing, function ($a, $b) { - return strcasecmp($a['path'], $b['path']); - }); - - return $listing; - } -} diff --git a/vendor/league/flysystem/src/Util/MimeType.php b/vendor/league/flysystem/src/Util/MimeType.php deleted file mode 100644 index 69e35e72..00000000 --- a/vendor/league/flysystem/src/Util/MimeType.php +++ /dev/null @@ -1,232 +0,0 @@ -buffer($content) ?: null; - // @codeCoverageIgnoreStart - } catch( ErrorException $e ) { - // This is caused by an array to string conversion error. - } - } // @codeCoverageIgnoreEnd - - /** - * Detects MIME Type based on file extension. - * - * @param string $extension - * - * @return string|null MIME Type or NULL if no extension detected - */ - public static function detectByFileExtension($extension) - { - static $extensionToMimeTypeMap; - - if (! $extensionToMimeTypeMap) { - $extensionToMimeTypeMap = static::getExtensionToMimeTypeMap(); - } - - if (isset($extensionToMimeTypeMap[$extension])) { - return $extensionToMimeTypeMap[$extension]; - } - - return 'text/plain'; - } - - /** - * @param string $filename - * - * @return string|null MIME Type or NULL if no extension detected - */ - public static function detectByFilename($filename) - { - $extension = strtolower(pathinfo($filename, PATHINFO_EXTENSION)); - - return empty($extension) ? 'text/plain' : static::detectByFileExtension($extension); - } - - /** - * @return array Map of file extension to MIME Type - */ - public static function getExtensionToMimeTypeMap() - { - return [ - 'hqx' => 'application/mac-binhex40', - 'cpt' => 'application/mac-compactpro', - 'csv' => 'text/x-comma-separated-values', - 'bin' => 'application/octet-stream', - 'dms' => 'application/octet-stream', - 'lha' => 'application/octet-stream', - 'lzh' => 'application/octet-stream', - 'exe' => 'application/octet-stream', - 'class' => 'application/octet-stream', - 'psd' => 'application/x-photoshop', - 'so' => 'application/octet-stream', - 'sea' => 'application/octet-stream', - 'dll' => 'application/octet-stream', - 'oda' => 'application/oda', - 'pdf' => 'application/pdf', - 'ai' => 'application/pdf', - 'eps' => 'application/postscript', - 'ps' => 'application/postscript', - 'smi' => 'application/smil', - 'smil' => 'application/smil', - 'mif' => 'application/vnd.mif', - 'xls' => 'application/vnd.ms-excel', - 'ppt' => 'application/powerpoint', - 'pptx' => 'application/vnd.openxmlformats-officedocument.presentationml.presentation', - 'wbxml' => 'application/wbxml', - 'wmlc' => 'application/wmlc', - 'dcr' => 'application/x-director', - 'dir' => 'application/x-director', - 'dxr' => 'application/x-director', - 'dvi' => 'application/x-dvi', - 'gtar' => 'application/x-gtar', - 'gz' => 'application/x-gzip', - 'gzip' => 'application/x-gzip', - 'php' => 'application/x-httpd-php', - 'php4' => 'application/x-httpd-php', - 'php3' => 'application/x-httpd-php', - 'phtml' => 'application/x-httpd-php', - 'phps' => 'application/x-httpd-php-source', - 'js' => 'application/javascript', - 'swf' => 'application/x-shockwave-flash', - 'sit' => 'application/x-stuffit', - 'tar' => 'application/x-tar', - 'tgz' => 'application/x-tar', - 'z' => 'application/x-compress', - 'xhtml' => 'application/xhtml+xml', - 'xht' => 'application/xhtml+xml', - 'zip' => 'application/x-zip', - 'rar' => 'application/x-rar', - 'mid' => 'audio/midi', - 'midi' => 'audio/midi', - 'mpga' => 'audio/mpeg', - 'mp2' => 'audio/mpeg', - 'mp3' => 'audio/mpeg', - 'aif' => 'audio/x-aiff', - 'aiff' => 'audio/x-aiff', - 'aifc' => 'audio/x-aiff', - 'ram' => 'audio/x-pn-realaudio', - 'rm' => 'audio/x-pn-realaudio', - 'rpm' => 'audio/x-pn-realaudio-plugin', - 'ra' => 'audio/x-realaudio', - 'rv' => 'video/vnd.rn-realvideo', - 'wav' => 'audio/x-wav', - 'jpg' => 'image/jpeg', - 'jpeg' => 'image/jpeg', - 'jpe' => 'image/jpeg', - 'png' => 'image/png', - 'gif' => 'image/gif', - 'bmp' => 'image/bmp', - 'tiff' => 'image/tiff', - 'tif' => 'image/tiff', - 'svg' => 'image/svg+xml', - 'css' => 'text/css', - 'html' => 'text/html', - 'htm' => 'text/html', - 'shtml' => 'text/html', - 'txt' => 'text/plain', - 'text' => 'text/plain', - 'log' => 'text/plain', - 'rtx' => 'text/richtext', - 'rtf' => 'text/rtf', - 'xml' => 'application/xml', - 'xsl' => 'application/xml', - 'dmn' => 'application/octet-stream', - 'bpmn' => 'application/octet-stream', - 'mpeg' => 'video/mpeg', - 'mpg' => 'video/mpeg', - 'mpe' => 'video/mpeg', - 'qt' => 'video/quicktime', - 'mov' => 'video/quicktime', - 'avi' => 'video/x-msvideo', - 'movie' => 'video/x-sgi-movie', - 'doc' => 'application/msword', - 'docx' => 'application/vnd.openxmlformats-officedocument.wordprocessingml.document', - 'docm' => 'application/vnd.ms-word.template.macroEnabled.12', - 'dot' => 'application/msword', - 'dotx' => 'application/vnd.openxmlformats-officedocument.wordprocessingml.document', - 'xlsx' => 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', - 'word' => 'application/msword', - 'xl' => 'application/excel', - 'eml' => 'message/rfc822', - 'json' => 'application/json', - 'pem' => 'application/x-x509-user-cert', - 'p10' => 'application/x-pkcs10', - 'p12' => 'application/x-pkcs12', - 'p7a' => 'application/x-pkcs7-signature', - 'p7c' => 'application/pkcs7-mime', - 'p7m' => 'application/pkcs7-mime', - 'p7r' => 'application/x-pkcs7-certreqresp', - 'p7s' => 'application/pkcs7-signature', - 'crt' => 'application/x-x509-ca-cert', - 'crl' => 'application/pkix-crl', - 'der' => 'application/x-x509-ca-cert', - 'kdb' => 'application/octet-stream', - 'pgp' => 'application/pgp', - 'gpg' => 'application/gpg-keys', - 'sst' => 'application/octet-stream', - 'csr' => 'application/octet-stream', - 'rsa' => 'application/x-pkcs7', - 'cer' => 'application/pkix-cert', - '3g2' => 'video/3gpp2', - '3gp' => 'video/3gp', - 'mp4' => 'video/mp4', - 'm4a' => 'audio/x-m4a', - 'f4v' => 'video/mp4', - 'webm' => 'video/webm', - 'aac' => 'audio/x-acc', - 'm4u' => 'application/vnd.mpegurl', - 'm3u' => 'text/plain', - 'xspf' => 'application/xspf+xml', - 'vlc' => 'application/videolan', - 'wmv' => 'video/x-ms-wmv', - 'au' => 'audio/x-au', - 'ac3' => 'audio/ac3', - 'flac' => 'audio/x-flac', - 'ogg' => 'audio/ogg', - 'kmz' => 'application/vnd.google-earth.kmz', - 'kml' => 'application/vnd.google-earth.kml+xml', - 'ics' => 'text/calendar', - 'zsh' => 'text/x-scriptzsh', - '7zip' => 'application/x-7z-compressed', - 'cdr' => 'application/cdr', - 'wma' => 'audio/x-ms-wma', - 'jar' => 'application/java-archive', - 'tex' => 'application/x-tex', - 'latex' => 'application/x-latex', - 'odt' => 'application/vnd.oasis.opendocument.text', - 'ods' => 'application/vnd.oasis.opendocument.spreadsheet', - 'odp' => 'application/vnd.oasis.opendocument.presentation', - 'odg' => 'application/vnd.oasis.opendocument.graphics', - 'odc' => 'application/vnd.oasis.opendocument.chart', - 'odf' => 'application/vnd.oasis.opendocument.formula', - 'odi' => 'application/vnd.oasis.opendocument.image', - 'odm' => 'application/vnd.oasis.opendocument.text-master', - 'odb' => 'application/vnd.oasis.opendocument.database', - 'ott' => 'application/vnd.oasis.opendocument.text-template', - ]; - } -} diff --git a/vendor/league/flysystem/src/Util/StreamHasher.php b/vendor/league/flysystem/src/Util/StreamHasher.php deleted file mode 100644 index 938ec5db..00000000 --- a/vendor/league/flysystem/src/Util/StreamHasher.php +++ /dev/null @@ -1,36 +0,0 @@ -algo = $algo; - } - - /** - * @param resource $resource - * - * @return string - */ - public function hash($resource) - { - rewind($resource); - $context = hash_init($this->algo); - hash_update_stream($context, $resource); - fclose($resource); - - return hash_final($context); - } -} diff --git a/vendor/maximebf/debugbar/LICENSE b/vendor/maximebf/debugbar/LICENSE deleted file mode 100644 index 1344c989..00000000 --- a/vendor/maximebf/debugbar/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (C) 2013 Maxime Bouroumeau-Fuseau - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies -of the Software, and to permit persons to whom the Software is furnished to do -so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/vendor/maximebf/debugbar/composer.json b/vendor/maximebf/debugbar/composer.json deleted file mode 100644 index 74bc13c4..00000000 --- a/vendor/maximebf/debugbar/composer.json +++ /dev/null @@ -1,42 +0,0 @@ -{ - "name": "maximebf/debugbar", - "description": "Debug bar in the browser for php application", - "keywords": ["debug", "debugbar"], - "homepage": "https://github.com/maximebf/php-debugbar", - "type": "library", - "license": "MIT", - "authors": [ - { - "name": "Maxime Bouroumeau-Fuseau", - "email": "maxime.bouroumeau@gmail.com", - "homepage": "http://maximebf.com" - }, - { - "name": "Barry vd. Heuvel", - "email": "barryvdh@gmail.com" - } - ], - "require": { - "php": ">=5.3.0", - "psr/log": "^1.0", - "symfony/var-dumper": "^2.6|^3.0|^4.0" - }, - "require-dev": { - "phpunit/phpunit": "^4.0|^5.0" - }, - "autoload": { - "psr-4": { - "DebugBar\\": "src/DebugBar/" - } - }, - "suggest": { - "kriswallsmith/assetic": "The best way to manage assets", - "monolog/monolog": "Log using Monolog", - "predis/predis": "Redis storage" - }, - "extra": { - "branch-alias": { - "dev-master": "1.14-dev" - } - } -} diff --git a/vendor/maximebf/debugbar/src/DebugBar/Bridge/CacheCacheCollector.php b/vendor/maximebf/debugbar/src/DebugBar/Bridge/CacheCacheCollector.php deleted file mode 100644 index 7e7f46f9..00000000 --- a/vendor/maximebf/debugbar/src/DebugBar/Bridge/CacheCacheCollector.php +++ /dev/null @@ -1,75 +0,0 @@ - - * $debugbar->addCollector(new CacheCacheCollector(CacheManager::get('default'))); - * // or - * $debugbar->addCollector(new CacheCacheCollector()); - * $debugbar['cache']->addCache(CacheManager::get('default')); - * - */ -class CacheCacheCollector extends MonologCollector -{ - protected $logger; - - /** - * CacheCacheCollector constructor. - * @param Cache|null $cache - * @param Logger|null $logger - * @param bool $level - * @param bool $bubble - */ - public function __construct(Cache $cache = null, Logger $logger = null, $level = Logger::DEBUG, $bubble = true) - { - parent::__construct(null, $level, $bubble); - - if ($logger === null) { - $logger = new Logger('Cache'); - } - $this->logger = $logger; - - if ($cache !== null) { - $this->addCache($cache); - } - } - - /** - * @param Cache $cache - */ - public function addCache(Cache $cache) - { - $backend = $cache->getBackend(); - if (!($backend instanceof LoggingBackend)) { - $backend = new LoggingBackend($backend, $this->logger); - } - $cache->setBackend($backend); - $this->addLogger($backend->getLogger()); - } - - /** - * @return string - */ - public function getName() - { - return 'cache'; - } -} diff --git a/vendor/maximebf/debugbar/src/DebugBar/Bridge/DoctrineCollector.php b/vendor/maximebf/debugbar/src/DebugBar/Bridge/DoctrineCollector.php deleted file mode 100644 index 7c91da9b..00000000 --- a/vendor/maximebf/debugbar/src/DebugBar/Bridge/DoctrineCollector.php +++ /dev/null @@ -1,115 +0,0 @@ - - * $debugStack = new Doctrine\DBAL\Logging\DebugStack(); - * $entityManager->getConnection()->getConfiguration()->setSQLLogger($debugStack); - * $debugbar->addCollector(new DoctrineCollector($debugStack)); - * - */ -class DoctrineCollector extends DataCollector implements Renderable, AssetProvider -{ - protected $debugStack; - - /** - * DoctrineCollector constructor. - * @param $debugStackOrEntityManager - * @throws DebugBarException - */ - public function __construct($debugStackOrEntityManager) - { - if ($debugStackOrEntityManager instanceof EntityManager) { - $debugStackOrEntityManager = $debugStackOrEntityManager->getConnection()->getConfiguration()->getSQLLogger(); - } - if (!($debugStackOrEntityManager instanceof DebugStack)) { - throw new DebugBarException("'DoctrineCollector' requires an 'EntityManager' or 'DebugStack' object"); - } - $this->debugStack = $debugStackOrEntityManager; - } - - /** - * @return array - */ - public function collect() - { - $queries = array(); - $totalExecTime = 0; - foreach ($this->debugStack->queries as $q) { - $queries[] = array( - 'sql' => $q['sql'], - 'params' => (object) $q['params'], - 'duration' => $q['executionMS'], - 'duration_str' => $this->formatDuration($q['executionMS']) - ); - $totalExecTime += $q['executionMS']; - } - - return array( - 'nb_statements' => count($queries), - 'accumulated_duration' => $totalExecTime, - 'accumulated_duration_str' => $this->formatDuration($totalExecTime), - 'statements' => $queries - ); - } - - /** - * @return string - */ - public function getName() - { - return 'doctrine'; - } - - /** - * @return array - */ - public function getWidgets() - { - return array( - "database" => array( - "icon" => "arrow-right", - "widget" => "PhpDebugBar.Widgets.SQLQueriesWidget", - "map" => "doctrine", - "default" => "[]" - ), - "database:badge" => array( - "map" => "doctrine.nb_statements", - "default" => 0 - ) - ); - } - - /** - * @return array - */ - public function getAssets() - { - return array( - 'css' => 'widgets/sqlqueries/widget.css', - 'js' => 'widgets/sqlqueries/widget.js' - ); - } -} diff --git a/vendor/maximebf/debugbar/src/DebugBar/Bridge/MonologCollector.php b/vendor/maximebf/debugbar/src/DebugBar/Bridge/MonologCollector.php deleted file mode 100644 index f24b296d..00000000 --- a/vendor/maximebf/debugbar/src/DebugBar/Bridge/MonologCollector.php +++ /dev/null @@ -1,118 +0,0 @@ - - * $debugbar->addCollector(new MonologCollector($logger)); - * - */ -class MonologCollector extends AbstractProcessingHandler implements DataCollectorInterface, Renderable, MessagesAggregateInterface -{ - protected $name; - - protected $records = array(); - - /** - * @param Logger $logger - * @param int $level - * @param boolean $bubble - * @param string $name - */ - public function __construct(Logger $logger = null, $level = Logger::DEBUG, $bubble = true, $name = 'monolog') - { - parent::__construct($level, $bubble); - $this->name = $name; - if ($logger !== null) { - $this->addLogger($logger); - } - } - - /** - * Adds logger which messages you want to log - * - * @param Logger $logger - */ - public function addLogger(Logger $logger) - { - $logger->pushHandler($this); - } - - /** - * @param array $record - */ - protected function write(array $record) - { - $this->records[] = array( - 'message' => $record['formatted'], - 'is_string' => true, - 'label' => strtolower($record['level_name']), - 'time' => $record['datetime']->format('U') - ); - } - - /** - * @return array - */ - public function getMessages() - { - return $this->records; - } - - /** - * @return array - */ - public function collect() - { - return array( - 'count' => count($this->records), - 'records' => $this->records - ); - } - - /** - * @return string - */ - public function getName() - { - return $this->name; - } - - /** - * @return array - */ - public function getWidgets() - { - $name = $this->getName(); - return array( - $name => array( - "icon" => "suitcase", - "widget" => "PhpDebugBar.Widgets.MessagesWidget", - "map" => "$name.records", - "default" => "[]" - ), - "$name:badge" => array( - "map" => "$name.count", - "default" => "null" - ) - ); - } -} diff --git a/vendor/maximebf/debugbar/src/DebugBar/Bridge/Propel2Collector.php b/vendor/maximebf/debugbar/src/DebugBar/Bridge/Propel2Collector.php deleted file mode 100644 index 3df4dcc6..00000000 --- a/vendor/maximebf/debugbar/src/DebugBar/Bridge/Propel2Collector.php +++ /dev/null @@ -1,307 +0,0 @@ - - * $debugbar->addCollector(new \DebugBar\Bridge\Propel2Collector(\Propel\Runtime\Propel::getServiceContainer()->getReadConnection())); - * - */ -class Propel2Collector extends DataCollector implements Renderable, AssetProvider -{ - /** - * @var null|TestHandler - */ - protected $handler = null; - - /** - * @var null|Logger - */ - protected $logger = null; - - /** - * @var array - */ - protected $config = array(); - - /** - * @var array - */ - protected $errors = array(); - - /** - * @var int - */ - protected $queryCount = 0; - - /** - * @param ConnectionInterface $connection Propel connection - */ - public function __construct( - ConnectionInterface $connection, - array $logMethods = array( - 'beginTransaction', - 'commit', - 'rollBack', - 'forceRollBack', - 'exec', - 'query', - 'execute' - ) - ) { - if ($connection instanceof ProfilerConnectionWrapper) { - $connection->setLogMethods($logMethods); - - $this->config = $connection->getProfiler()->getConfiguration(); - - $this->handler = new TestHandler(); - - if ($connection->getLogger() instanceof Logger) { - $this->logger = $connection->getLogger(); - $this->logger->pushHandler($this->handler); - } else { - $this->errors[] = 'Supported only monolog logger'; - } - } else { - $this->errors[] = 'You need set ProfilerConnectionWrapper'; - } - } - - /** - * @return TestHandler|null - */ - public function getHandler() - { - return $this->handler; - } - - /** - * @return array - */ - public function getConfig() - { - return $this->config; - } - - /** - * @return Logger|null - */ - public function getLogger() - { - return $this->logger; - } - - /** - * @return LoggerInterface - */ - protected function getDefaultLogger() - { - return Propel::getServiceContainer()->getLogger(); - } - - /** - * @return int - */ - protected function getQueryCount() - { - return $this->queryCount; - } - - /** - * @param array $records - * @param array $config - * @return array - */ - protected function getStatements($records, $config) - { - $statements = array(); - foreach ($records as $record) { - $duration = null; - $memory = null; - - $isSuccess = ( LogLevel::INFO === strtolower($record['level_name']) ); - - $detailsCount = count($config['details']); - $parameters = explode($config['outerGlue'], $record['message'], $detailsCount + 1); - if (count($parameters) === ($detailsCount + 1)) { - $parameters = array_map('trim', $parameters); - $_details = array(); - foreach (array_splice($parameters, 0, $detailsCount) as $string) { - list($key, $value) = array_map('trim', explode($config['innerGlue'], $string, 2)); - $_details[$key] = $value; - } - - $details = array(); - foreach ($config['details'] as $key => $detail) { - if (isset($_details[$detail['name']])) { - $value = $_details[$detail['name']]; - if ('time' === $key) { - if (substr_count($value, 'ms')) { - $value = (float)$value / 1000; - } else { - $value = (float)$value; - } - } else { - $suffixes = array('B', 'kB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'); - $suffix = substr($value, -2); - $i = array_search($suffix, $suffixes, true); - $i = (false === $i) ? 0 : $i; - - $value = ((float)$value) * pow(1024, $i); - } - $details[$key] = $value; - } - } - - if (isset($details['time'])) { - $duration = $details['time']; - } - if (isset($details['memDelta'])) { - $memory = $details['memDelta']; - } - - $message = end($parameters); - - if ($isSuccess) { - $this->queryCount++; - } - - } else { - $message = $record['message']; - } - - $statement = array( - 'sql' => $message, - 'is_success' => $isSuccess, - 'duration' => $duration, - 'duration_str' => $this->getDataFormatter()->formatDuration($duration), - 'memory' => $memory, - 'memory_str' => $this->getDataFormatter()->formatBytes($memory), - ); - - if (false === $isSuccess) { - $statement['sql'] = ''; - $statement['error_code'] = $record['level']; - $statement['error_message'] = $message; - } - - $statements[] = $statement; - } - return $statements; - } - - /** - * @return array - */ - public function collect() - { - if (count($this->errors)) { - return array( - 'statements' => array_map(function ($message) { - return array('sql' => '', 'is_success' => false, 'error_code' => 500, 'error_message' => $message); - }, $this->errors), - 'nb_statements' => 0, - 'nb_failed_statements' => count($this->errors), - ); - } - - if ($this->getHandler() === null) { - return array(); - } - - $statements = $this->getStatements($this->getHandler()->getRecords(), $this->getConfig()); - - $failedStatement = count(array_filter($statements, function ($statement) { - return false === $statement['is_success']; - })); - $accumulatedDuration = array_reduce($statements, function ($accumulatedDuration, $statement) { - - $time = isset($statement['duration']) ? $statement['duration'] : 0; - return $accumulatedDuration += $time; - }); - $memoryUsage = array_reduce($statements, function ($memoryUsage, $statement) { - - $time = isset($statement['memory']) ? $statement['memory'] : 0; - return $memoryUsage += $time; - }); - - return array( - 'nb_statements' => $this->getQueryCount(), - 'nb_failed_statements' => $failedStatement, - 'accumulated_duration' => $accumulatedDuration, - 'accumulated_duration_str' => $this->getDataFormatter()->formatDuration($accumulatedDuration), - 'memory_usage' => $memoryUsage, - 'memory_usage_str' => $this->getDataFormatter()->formatBytes($memoryUsage), - 'statements' => $statements - ); - } - - /** - * @return string - */ - public function getName() - { - $additionalName = ''; - if ($this->getLogger() !== $this->getDefaultLogger()) { - $additionalName = ' ('.$this->getLogger()->getName().')'; - } - - return 'propel2'.$additionalName; - } - - /** - * @return array - */ - public function getWidgets() - { - return array( - $this->getName() => array( - 'icon' => 'bolt', - 'widget' => 'PhpDebugBar.Widgets.SQLQueriesWidget', - 'map' => $this->getName(), - 'default' => '[]' - ), - $this->getName().':badge' => array( - 'map' => $this->getName().'.nb_statements', - 'default' => 0 - ), - ); - } - - /** - * @return array - */ - public function getAssets() - { - return array( - 'css' => 'widgets/sqlqueries/widget.css', - 'js' => 'widgets/sqlqueries/widget.js' - ); - } -} diff --git a/vendor/maximebf/debugbar/src/DebugBar/Bridge/PropelCollector.php b/vendor/maximebf/debugbar/src/DebugBar/Bridge/PropelCollector.php deleted file mode 100644 index 93ad4ff8..00000000 --- a/vendor/maximebf/debugbar/src/DebugBar/Bridge/PropelCollector.php +++ /dev/null @@ -1,253 +0,0 @@ - - * $debugbar->addCollector(new PropelCollector($debugbar['messages'])); - * PropelCollector::enablePropelProfiling(); - * - */ -class PropelCollector extends DataCollector implements BasicLogger, Renderable, AssetProvider -{ - protected $logger; - - protected $statements = array(); - - protected $accumulatedTime = 0; - - protected $peakMemory = 0; - - /** - * Sets the needed configuration option in propel to enable query logging - * - * @param PropelConfiguration $config Apply profiling on a specific config - */ - public static function enablePropelProfiling(PropelConfiguration $config = null) - { - if ($config === null) { - $config = Propel::getConfiguration(PropelConfiguration::TYPE_OBJECT); - } - $config->setParameter('debugpdo.logging.details.method.enabled', true); - $config->setParameter('debugpdo.logging.details.time.enabled', true); - $config->setParameter('debugpdo.logging.details.mem.enabled', true); - $allMethods = array( - 'PropelPDO::__construct', // logs connection opening - 'PropelPDO::__destruct', // logs connection close - 'PropelPDO::exec', // logs a query - 'PropelPDO::query', // logs a query - 'PropelPDO::beginTransaction', // logs a transaction begin - 'PropelPDO::commit', // logs a transaction commit - 'PropelPDO::rollBack', // logs a transaction rollBack (watch out for the capital 'B') - 'DebugPDOStatement::execute', // logs a query from a prepared statement - ); - $config->setParameter('debugpdo.logging.methods', $allMethods, false); - } - - /** - * @param LoggerInterface $logger A logger to forward non-query log lines to - * @param PropelPDO $conn Bound this collector to a connection only - */ - public function __construct(LoggerInterface $logger = null, PropelPDO $conn = null) - { - if ($conn) { - $conn->setLogger($this); - } else { - Propel::setLogger($this); - } - $this->logger = $logger; - $this->logQueriesToLogger = false; - } - - public function setLogQueriesToLogger($enable = true) - { - $this->logQueriesToLogger = $enable; - return $this; - } - - public function isLogQueriesToLogger() - { - return $this->logQueriesToLogger; - } - - public function emergency($m) - { - $this->log($m, Propel::LOG_EMERG); - } - - public function alert($m) - { - $this->log($m, Propel::LOG_ALERT); - } - - public function crit($m) - { - $this->log($m, Propel::LOG_CRIT); - } - - public function err($m) - { - $this->log($m, Propel::LOG_ERR); - } - - public function warning($m) - { - $this->log($m, Propel::LOG_WARNING); - } - - public function notice($m) - { - $this->log($m, Propel::LOG_NOTICE); - } - - public function info($m) - { - $this->log($m, Propel::LOG_INFO); - } - - public function debug($m) - { - $this->log($m, Propel::LOG_DEBUG); - } - - public function log($message, $severity = null) - { - if (strpos($message, 'DebugPDOStatement::execute') !== false) { - list($sql, $duration_str) = $this->parseAndLogSqlQuery($message); - if (!$this->logQueriesToLogger) { - return; - } - $message = "$sql ($duration_str)"; - } - - if ($this->logger !== null) { - $this->logger->log($this->convertLogLevel($severity), $message); - } - } - - /** - * Converts Propel log levels to PSR log levels - * - * @param int $level - * @return string - */ - protected function convertLogLevel($level) - { - $map = array( - Propel::LOG_EMERG => LogLevel::EMERGENCY, - Propel::LOG_ALERT => LogLevel::ALERT, - Propel::LOG_CRIT => LogLevel::CRITICAL, - Propel::LOG_ERR => LogLevel::ERROR, - Propel::LOG_WARNING => LogLevel::WARNING, - Propel::LOG_NOTICE => LogLevel::NOTICE, - Propel::LOG_DEBUG => LogLevel::DEBUG - ); - return $map[$level]; - } - - /** - * Parse a log line to extract query information - * - * @param string $message - */ - protected function parseAndLogSqlQuery($message) - { - $parts = explode('|', $message, 4); - $sql = trim($parts[3]); - - $duration = 0; - if (preg_match('/([0-9]+\.[0-9]+)/', $parts[1], $matches)) { - $duration = (float) $matches[1]; - } - - $memory = 0; - if (preg_match('/([0-9]+\.[0-9]+) ([A-Z]{1,2})/', $parts[2], $matches)) { - $memory = (float) $matches[1]; - if ($matches[2] == 'KB') { - $memory *= 1024; - } elseif ($matches[2] == 'MB') { - $memory *= 1024 * 1024; - } - } - - $this->statements[] = array( - 'sql' => $sql, - 'is_success' => true, - 'duration' => $duration, - 'duration_str' => $this->formatDuration($duration), - 'memory' => $memory, - 'memory_str' => $this->formatBytes($memory) - ); - $this->accumulatedTime += $duration; - $this->peakMemory = max($this->peakMemory, $memory); - return array($sql, $this->formatDuration($duration)); - } - - public function collect() - { - return array( - 'nb_statements' => count($this->statements), - 'nb_failed_statements' => 0, - 'accumulated_duration' => $this->accumulatedTime, - 'accumulated_duration_str' => $this->formatDuration($this->accumulatedTime), - 'peak_memory_usage' => $this->peakMemory, - 'peak_memory_usage_str' => $this->formatBytes($this->peakMemory), - 'statements' => $this->statements - ); - } - - public function getName() - { - return 'propel'; - } - - public function getWidgets() - { - return array( - "propel" => array( - "icon" => "bolt", - "widget" => "PhpDebugBar.Widgets.SQLQueriesWidget", - "map" => "propel", - "default" => "[]" - ), - "propel:badge" => array( - "map" => "propel.nb_statements", - "default" => 0 - ) - ); - } - - public function getAssets() - { - return array( - 'css' => 'widgets/sqlqueries/widget.css', - 'js' => 'widgets/sqlqueries/widget.js' - ); - } -} diff --git a/vendor/maximebf/debugbar/src/DebugBar/Bridge/SlimCollector.php b/vendor/maximebf/debugbar/src/DebugBar/Bridge/SlimCollector.php deleted file mode 100644 index 030a3baf..00000000 --- a/vendor/maximebf/debugbar/src/DebugBar/Bridge/SlimCollector.php +++ /dev/null @@ -1,66 +0,0 @@ -slim = $slim; - if ($log = $slim->getLog()) { - $this->originalLogWriter = $log->getWriter(); - $log->setWriter($this); - $log->setEnabled(true); - } - } - - public function write($message, $level) - { - if ($this->originalLogWriter) { - $this->originalLogWriter->write($message, $level); - } - $this->addMessage($message, $this->getLevelName($level)); - } - - protected function getLevelName($level) - { - $map = array( - Log::EMERGENCY => LogLevel::EMERGENCY, - Log::ALERT => LogLevel::ALERT, - Log::CRITICAL => LogLevel::CRITICAL, - Log::ERROR => LogLevel::ERROR, - Log::WARN => LogLevel::WARNING, - Log::NOTICE => LogLevel::NOTICE, - Log::INFO => LogLevel::INFO, - Log::DEBUG => LogLevel::DEBUG - ); - return $map[$level]; - } - - public function getName() - { - return 'slim'; - } -} diff --git a/vendor/maximebf/debugbar/src/DebugBar/Bridge/SwiftMailer/SwiftLogCollector.php b/vendor/maximebf/debugbar/src/DebugBar/Bridge/SwiftMailer/SwiftLogCollector.php deleted file mode 100644 index fdef79a0..00000000 --- a/vendor/maximebf/debugbar/src/DebugBar/Bridge/SwiftMailer/SwiftLogCollector.php +++ /dev/null @@ -1,44 +0,0 @@ -registerPlugin(new Swift_Plugins_LoggerPlugin($this)); - } - - public function add($entry) - { - $this->addMessage($entry); - } - - public function dump() - { - return implode(PHP_EOL, $this->_log); - } - - public function getName() - { - return 'swiftmailer_logs'; - } -} diff --git a/vendor/maximebf/debugbar/src/DebugBar/Bridge/SwiftMailer/SwiftMailCollector.php b/vendor/maximebf/debugbar/src/DebugBar/Bridge/SwiftMailer/SwiftMailCollector.php deleted file mode 100644 index 01a5e906..00000000 --- a/vendor/maximebf/debugbar/src/DebugBar/Bridge/SwiftMailer/SwiftMailCollector.php +++ /dev/null @@ -1,92 +0,0 @@ -messagesLogger = new Swift_Plugins_MessageLogger(); - $mailer->registerPlugin($this->messagesLogger); - } - - public function collect() - { - $mails = array(); - foreach ($this->messagesLogger->getMessages() as $msg) { - $mails[] = array( - 'to' => $this->formatTo($msg->getTo()), - 'subject' => $msg->getSubject(), - 'headers' => $msg->getHeaders()->toString() - ); - } - return array( - 'count' => count($mails), - 'mails' => $mails - ); - } - - protected function formatTo($to) - { - if (!$to) { - return ''; - } - - $f = array(); - foreach ($to as $k => $v) { - $f[] = (empty($v) ? '' : "$v ") . "<$k>"; - } - return implode(', ', $f); - } - - public function getName() - { - return 'swiftmailer_mails'; - } - - public function getWidgets() - { - return array( - 'emails' => array( - 'icon' => 'inbox', - 'widget' => 'PhpDebugBar.Widgets.MailsWidget', - 'map' => 'swiftmailer_mails.mails', - 'default' => '[]', - 'title' => 'Mails' - ), - 'emails:badge' => array( - 'map' => 'swiftmailer_mails.count', - 'default' => 'null' - ) - ); - } - - public function getAssets() - { - return array( - 'css' => 'widgets/mails/widget.css', - 'js' => 'widgets/mails/widget.js' - ); - } -} diff --git a/vendor/maximebf/debugbar/src/DebugBar/Bridge/Twig/TimeableTwigExtensionProfiler.php b/vendor/maximebf/debugbar/src/DebugBar/Bridge/Twig/TimeableTwigExtensionProfiler.php deleted file mode 100644 index 3611d2d8..00000000 --- a/vendor/maximebf/debugbar/src/DebugBar/Bridge/Twig/TimeableTwigExtensionProfiler.php +++ /dev/null @@ -1,60 +0,0 @@ -timeDataCollector = $timeDataCollector; - } - - public function __construct(\Twig_Profiler_Profile $profile, TimeDataCollector $timeDataCollector = null) - { - parent::__construct($profile); - - $this->timeDataCollector = $timeDataCollector; - } - - public function enter(Twig_Profiler_Profile $profile) - { - if ($this->timeDataCollector && $profile->isTemplate()) { - $this->timeDataCollector->startMeasure($profile->getName(), 'template ' . $profile->getName()); - } - parent::enter($profile); - } - - public function leave(Twig_Profiler_Profile $profile) - { - parent::leave($profile); - if ($this->timeDataCollector && $profile->isTemplate()) { - $this->timeDataCollector->stopMeasure($profile->getName()); - } - } -} \ No newline at end of file diff --git a/vendor/maximebf/debugbar/src/DebugBar/Bridge/Twig/TraceableTwigEnvironment.php b/vendor/maximebf/debugbar/src/DebugBar/Bridge/Twig/TraceableTwigEnvironment.php deleted file mode 100644 index cdaae7a4..00000000 --- a/vendor/maximebf/debugbar/src/DebugBar/Bridge/Twig/TraceableTwigEnvironment.php +++ /dev/null @@ -1,417 +0,0 @@ -twig = $twig; - $this->timeDataCollector = $timeDataCollector; - } - - public function __call($name, $arguments) - { - return call_user_func_array(array($this->twig, $name), $arguments); - } - - public function getRenderedTemplates() - { - return $this->renderedTemplates; - } - - public function addRenderedTemplate(array $info) - { - $this->renderedTemplates[] = $info; - } - - public function getTimeDataCollector() - { - return $this->timeDataCollector; - } - - public function getBaseTemplateClass() - { - return $this->twig->getBaseTemplateClass(); - } - - public function setBaseTemplateClass($class) - { - $this->twig->setBaseTemplateClass($class); - } - - public function enableDebug() - { - $this->twig->enableDebug(); - } - - public function disableDebug() - { - $this->twig->disableDebug(); - } - - public function isDebug() - { - return $this->twig->isDebug(); - } - - public function enableAutoReload() - { - $this->twig->enableAutoReload(); - } - - public function disableAutoReload() - { - $this->twig->disableAutoReload(); - } - - public function isAutoReload() - { - return $this->twig->isAutoReload(); - } - - public function enableStrictVariables() - { - $this->twig->enableStrictVariables(); - } - - public function disableStrictVariables() - { - $this->twig->disableStrictVariables(); - } - - public function isStrictVariables() - { - return $this->twig->isStrictVariables(); - } - - public function getCache($original = true) - { - return $this->twig->getCache($original); - } - - public function setCache($cache) - { - $this->twig->setCache($cache); - } - - public function getCacheFilename($name) - { - return $this->twig->getCacheFilename($name); - } - - public function getTemplateClass($name, $index = null) - { - return $this->twig->getTemplateClass($name, $index); - } - - public function getTemplateClassPrefix() - { - return $this->twig->getTemplateClassPrefix(); - } - - public function render($name, array $context = array()) - { - return $this->loadTemplate($name)->render($context); - } - - public function display($name, array $context = array()) - { - $this->loadTemplate($name)->display($context); - } - - public function loadTemplate($name, $index = null) - { - $cls = $this->twig->getTemplateClass($name, $index); - - if (isset($this->twig->loadedTemplates[$cls])) { - return $this->twig->loadedTemplates[$cls]; - } - - if (!class_exists($cls, false)) { - if (false === $cache = $this->getCacheFilename($name)) { - eval('?>'.$this->compileSource($this->getLoader()->getSource($name), $name)); - } else { - if (!is_file($cache) || ($this->isAutoReload() && !$this->isTemplateFresh($name, filemtime($cache)))) { - $this->writeCacheFile($cache, $this->compileSource($this->getLoader()->getSource($name), $name)); - } - - require_once $cache; - } - } - - if (!$this->twig->runtimeInitialized) { - $this->initRuntime(); - } - - return $this->twig->loadedTemplates[$cls] = new TraceableTwigTemplate($this, new $cls($this)); - } - - public function isTemplateFresh($name, $time) - { - return $this->twig->isTemplateFresh($name, $time); - } - - public function resolveTemplate($names) - { - return $this->twig->resolveTemplate($names); - } - - public function clearTemplateCache() - { - $this->twig->clearTemplateCache(); - } - - public function clearCacheFiles() - { - $this->twig->clearCacheFiles(); - } - - public function getLexer() - { - return $this->twig->getLexer(); - } - - public function setLexer(Twig_LexerInterface $lexer) - { - $this->twig->setLexer($lexer); - } - - public function tokenize($source, $name = null) - { - return $this->twig->tokenize($source, $name); - } - - public function getParser() - { - return $this->twig->getParser(); - } - - public function setParser(Twig_ParserInterface $parser) - { - $this->twig->setParser($parser); - } - - public function parse(Twig_TokenStream $tokens) - { - return $this->twig->parse($tokens); - } - - public function getCompiler() - { - return $this->twig->getCompiler(); - } - - public function setCompiler(Twig_CompilerInterface $compiler) - { - $this->twig->setCompiler($compiler); - } - - public function compile(Twig_NodeInterface $node) - { - return $this->twig->compile($node); - } - - public function compileSource($source, $name = null) - { - return $this->twig->compileSource($source, $name); - } - - public function setLoader(Twig_LoaderInterface $loader) - { - $this->twig->setLoader($loader); - } - - public function getLoader() - { - return $this->twig->getLoader(); - } - - public function setCharset($charset) - { - $this->twig->setCharset($charset); - } - - public function getCharset() - { - return $this->twig->getCharset(); - } - - public function initRuntime() - { - $this->twig->initRuntime(); - } - - public function hasExtension($name) - { - return $this->twig->hasExtension($name); - } - - public function getExtension($name) - { - return $this->twig->getExtension($name); - } - - public function addExtension(Twig_ExtensionInterface $extension) - { - $this->twig->addExtension($extension); - } - - public function removeExtension($name) - { - $this->twig->removeExtension($name); - } - - public function setExtensions(array $extensions) - { - $this->twig->setExtensions($extensions); - } - - public function getExtensions() - { - return $this->twig->getExtensions(); - } - - public function addTokenParser(Twig_TokenParserInterface $parser) - { - $this->twig->addTokenParser($parser); - } - - public function getTokenParsers() - { - return $this->twig->getTokenParsers(); - } - - public function getTags() - { - return $this->twig->getTags(); - } - - public function addNodeVisitor(Twig_NodeVisitorInterface $visitor) - { - $this->twig->addNodeVisitor($visitor); - } - - public function getNodeVisitors() - { - return $this->twig->getNodeVisitors(); - } - - public function addFilter($name, $filter = null) - { - $this->twig->addFilter($name, $filter); - } - - public function getFilter($name) - { - return $this->twig->getFilter($name); - } - - public function registerUndefinedFilterCallback($callable) - { - $this->twig->registerUndefinedFilterCallback($callable); - } - - public function getFilters() - { - return $this->twig->getFilters(); - } - - public function addTest($name, $test = null) - { - $this->twig->addTest($name, $test); - } - - public function getTests() - { - return $this->twig->getTests(); - } - - public function getTest($name) - { - return $this->twig->getTest($name); - } - - public function addFunction($name, $function = null) - { - $this->twig->addFunction($name, $function); - } - - public function getFunction($name) - { - return $this->twig->getFunction($name); - } - - public function registerUndefinedFunctionCallback($callable) - { - $this->twig->registerUndefinedFunctionCallback($callable); - } - - public function getFunctions() - { - return $this->twig->getFunctions(); - } - - public function addGlobal($name, $value) - { - $this->twig->addGlobal($name, $value); - } - - public function getGlobals() - { - return $this->twig->getGlobals(); - } - - public function mergeGlobals(array $context) - { - return $this->twig->mergeGlobals($context); - } - - public function getUnaryOperators() - { - return $this->twig->getUnaryOperators(); - } - - public function getBinaryOperators() - { - return $this->twig->getBinaryOperators(); - } - - public function computeAlternatives($name, $items) - { - return $this->twig->computeAlternatives($name, $items); - } -} diff --git a/vendor/maximebf/debugbar/src/DebugBar/Bridge/Twig/TraceableTwigTemplate.php b/vendor/maximebf/debugbar/src/DebugBar/Bridge/Twig/TraceableTwigTemplate.php deleted file mode 100644 index 648f7baf..00000000 --- a/vendor/maximebf/debugbar/src/DebugBar/Bridge/Twig/TraceableTwigTemplate.php +++ /dev/null @@ -1,136 +0,0 @@ -env = $env; - $this->template = $template; - } - - public function __call($name, $arguments) - { - return call_user_func_array(array($this->template, $name), $arguments); - } - - public function doDisplay(array $context, array $blocks = array()) - { - return $this->template->doDisplay($context, $blocks); - } - - public function getTemplateName() - { - return $this->template->getTemplateName(); - } - - public function getEnvironment() - { - return $this->template->getEnvironment(); - } - - public function getParent(array $context) - { - return $this->template->getParent($context); - } - - public function isTraitable() - { - return $this->template->isTraitable(); - } - - public function displayParentBlock($name, array $context, array $blocks = array()) - { - $this->template->displayParentBlock($name, $context, $blocks); - } - - public function displayBlock($name, array $context, array $blocks = array(), $useBlocks = true) - { - $this->template->displayBlock($name, $context, $blocks, $useBlocks); - } - - public function renderParentBlock($name, array $context, array $blocks = array()) - { - return $this->template->renderParentBlock($name, $context, $blocks); - } - - public function renderBlock($name, array $context, array $blocks = array(), $useBlocks = true) - { - return $this->template->renderBlock($name, $context, $blocks, $useBlocks); - } - - public function hasBlock($name) - { - return $this->template->hasBlock($name); - } - - public function getBlockNames() - { - return $this->template->getBlockNames(); - } - - public function getBlocks() - { - return $this->template->getBlocks(); - } - - public function display(array $context, array $blocks = array()) - { - $start = microtime(true); - $this->template->display($context, $blocks); - $end = microtime(true); - - if ($timeDataCollector = $this->env->getTimeDataCollector()) { - $name = sprintf("twig.render(%s)", $this->template->getTemplateName()); - $timeDataCollector->addMeasure($name, $start, $end); - } - - $this->env->addRenderedTemplate(array( - 'name' => $this->template->getTemplateName(), - 'render_time' => $end - $start - )); - } - - public function render(array $context) - { - $level = ob_get_level(); - ob_start(); - try { - $this->display($context); - } catch (Exception $e) { - while (ob_get_level() > $level) { - ob_end_clean(); - } - - throw $e; - } - - return ob_get_clean(); - } - - public static function clearCache() - { - Twig_Template::clearCache(); - } -} diff --git a/vendor/maximebf/debugbar/src/DebugBar/Bridge/Twig/TwigCollector.php b/vendor/maximebf/debugbar/src/DebugBar/Bridge/Twig/TwigCollector.php deleted file mode 100644 index c571d835..00000000 --- a/vendor/maximebf/debugbar/src/DebugBar/Bridge/Twig/TwigCollector.php +++ /dev/null @@ -1,87 +0,0 @@ - - * $env = new TraceableTwigEnvironment(new Twig_Environment($loader)); - * $debugbar->addCollector(new TwigCollector($env)); - * - */ -class TwigCollector extends DataCollector implements Renderable, AssetProvider -{ - public function __construct(TraceableTwigEnvironment $twig) - { - $this->twig = $twig; - } - - public function collect() - { - $templates = array(); - $accuRenderTime = 0; - - foreach ($this->twig->getRenderedTemplates() as $tpl) { - $accuRenderTime += $tpl['render_time']; - $templates[] = array( - 'name' => $tpl['name'], - 'render_time' => $tpl['render_time'], - 'render_time_str' => $this->formatDuration($tpl['render_time']) - ); - } - - return array( - 'nb_templates' => count($templates), - 'templates' => $templates, - 'accumulated_render_time' => $accuRenderTime, - 'accumulated_render_time_str' => $this->formatDuration($accuRenderTime) - ); - } - - public function getName() - { - return 'twig'; - } - - public function getWidgets() - { - return array( - 'twig' => array( - 'icon' => 'leaf', - 'widget' => 'PhpDebugBar.Widgets.TemplatesWidget', - 'map' => 'twig', - 'default' => json_encode(array('templates' => array())), - ), - 'twig:badge' => array( - 'map' => 'twig.nb_templates', - 'default' => 0 - ) - ); - } - - public function getAssets() - { - return array( - 'css' => 'widgets/templates/widget.css', - 'js' => 'widgets/templates/widget.js' - ); - } -} diff --git a/vendor/maximebf/debugbar/src/DebugBar/Bridge/TwigProfileCollector.php b/vendor/maximebf/debugbar/src/DebugBar/Bridge/TwigProfileCollector.php deleted file mode 100644 index efd3a7d5..00000000 --- a/vendor/maximebf/debugbar/src/DebugBar/Bridge/TwigProfileCollector.php +++ /dev/null @@ -1,197 +0,0 @@ - - * $env = new Twig_Environment($loader); // Or from a PSR11-container - * $profile = new Twig_Profiler_Profile(); - * $env->addExtension(new Twig_Extension_Profile($profile)); - * $debugbar->addCollector(new TwigProfileCollector($profile, $env)); - * // or: $debugbar->addCollector(new TwigProfileCollector($profile, $loader)); - * - */ -class TwigProfileCollector extends DataCollector implements Renderable, AssetProvider -{ - /** - * @var \Twig_Profiler_Profile - */ - private $profile; - /** - * @var \Twig_LoaderInterface - */ - private $loader; - /** @var int */ - private $templateCount; - /** @var int */ - private $blockCount; - /** @var int */ - private $macroCount; - /** - * @var array[] { - * @var string $name - * @var int $render_time - * @var string $render_time_str - * @var string $memory_str - * @var string $xdebug_link - * } - */ - private $templates; - - /** - * TwigProfileCollector constructor. - * - * @param \Twig_Profiler_Profile $profile - * @param \Twig_LoaderInterface|\Twig_Environment $loaderOrEnv - */ - public function __construct(\Twig_Profiler_Profile $profile, $loaderOrEnv = null) - { - $this->profile = $profile; - if ($loaderOrEnv instanceof \Twig_Environment) { - $loaderOrEnv = $loaderOrEnv->getLoader(); - } - $this->loader = $loaderOrEnv; - } - - /** - * Returns a hash where keys are control names and their values - * an array of options as defined in {@see DebugBar\JavascriptRenderer::addControl()} - * - * @return array - */ - public function getWidgets() - { - return array( - 'twig' => array( - 'icon' => 'leaf', - 'widget' => 'PhpDebugBar.Widgets.TemplatesWidget', - 'map' => 'twig', - 'default' => json_encode(array('templates' => array())), - ), - 'twig:badge' => array( - 'map' => 'twig.badge', - 'default' => 0, - ), - ); - } - - /** - * @return array - */ - public function getAssets() - { - return array( - 'css' => 'widgets/templates/widget.css', - 'js' => 'widgets/templates/widget.js', - ); - } - - /** - * Called by the DebugBar when data needs to be collected - * - * @return array Collected data - */ - public function collect() - { - $this->templateCount = $this->blockCount = $this->macroCount = 0; - $this->templates = array(); - $this->computeData($this->profile); - - return array( - 'nb_templates' => $this->templateCount, - 'nb_blocks' => $this->blockCount, - 'nb_macros' => $this->macroCount, - 'templates' => $this->templates, - 'accumulated_render_time' => $this->profile->getDuration(), - 'accumulated_render_time_str' => $this->getDataFormatter()->formatDuration($this->profile->getDuration()), - 'memory_usage_str' => $this->getDataFormatter()->formatBytes($this->profile->getMemoryUsage()), - 'callgraph' => $this->getHtmlCallGraph(), - 'badge' => implode( - '/', - array( - $this->templateCount, - $this->blockCount, - $this->macroCount, - ) - ), - ); - } - - /** - * Returns the unique name of the collector - * - * @return string - */ - public function getName() - { - return 'twig'; - } - - public function getHtmlCallGraph() - { - $dumper = new \Twig_Profiler_Dumper_Html(); - - return $dumper->dump($this->profile); - } - - /** - * Get an Xdebug Link to a file - * - * @return array { - * @var string url - * @var bool ajax - * } - */ - public function getXdebugLink($template, $line = 1) - { - if (is_null($this->loader)) { - return null; - } - $file = $this->loader->getSourceContext($template)->getPath(); - - return parent::getXdebugLink($file, $line); - } - - private function computeData(\Twig_Profiler_Profile $profile) - { - $this->templateCount += ($profile->isTemplate() ? 1 : 0); - $this->blockCount += ($profile->isBlock() ? 1 : 0); - $this->macroCount += ($profile->isMacro() ? 1 : 0); - if ($profile->isTemplate()) { - $this->templates[] = array( - 'name' => $profile->getName(), - 'render_time' => $profile->getDuration(), - 'render_time_str' => $this->getDataFormatter()->formatDuration($profile->getDuration()), - 'memory_str' => $this->getDataFormatter()->formatBytes($profile->getMemoryUsage()), - 'xdebug_link' => $this->getXdebugLink($profile->getTemplate()), - ); - } - foreach ($profile as $p) { - $this->computeData($p); - } - } -} diff --git a/vendor/maximebf/debugbar/src/DebugBar/DataCollector/AggregatedCollector.php b/vendor/maximebf/debugbar/src/DebugBar/DataCollector/AggregatedCollector.php deleted file mode 100644 index c1fd96ae..00000000 --- a/vendor/maximebf/debugbar/src/DebugBar/DataCollector/AggregatedCollector.php +++ /dev/null @@ -1,189 +0,0 @@ - - * $aggcollector = new AggregateCollector('foobar'); - * $aggcollector->addCollector(new MessagesCollector('msg1')); - * $aggcollector->addCollector(new MessagesCollector('msg2')); - * $aggcollector['msg1']->addMessage('hello world'); - * - */ -class AggregatedCollector implements DataCollectorInterface, ArrayAccess -{ - protected $name; - - protected $mergeProperty; - - protected $sort; - - protected $collectors = array(); - - /** - * @param string $name - * @param string $mergeProperty - * @param boolean $sort - */ - public function __construct($name, $mergeProperty = null, $sort = false) - { - $this->name = $name; - $this->mergeProperty = $mergeProperty; - $this->sort = $sort; - } - - /** - * @param DataCollectorInterface $collector - */ - public function addCollector(DataCollectorInterface $collector) - { - $this->collectors[$collector->getName()] = $collector; - } - - /** - * @return array - */ - public function getCollectors() - { - return $this->collectors; - } - - /** - * Merge data from one of the key/value pair of the collected data - * - * @param string $property - */ - public function setMergeProperty($property) - { - $this->mergeProperty = $property; - } - - /** - * @return string - */ - public function getMergeProperty() - { - return $this->mergeProperty; - } - - /** - * Sorts the collected data - * - * If true, sorts using sort() - * If it is a string, sorts the data using the value from a key/value pair of the array - * - * @param bool|string $sort - */ - public function setSort($sort) - { - $this->sort = $sort; - } - - /** - * @return bool|string - */ - public function getSort() - { - return $this->sort; - } - - /** - * @return array - */ - public function collect() - { - $aggregate = array(); - foreach ($this->collectors as $collector) { - $data = $collector->collect(); - if ($this->mergeProperty !== null) { - $data = $data[$this->mergeProperty]; - } - $aggregate = array_merge($aggregate, $data); - } - - return $this->sort($aggregate); - } - - /** - * Sorts the collected data - * - * @param array $data - * @return array - */ - protected function sort($data) - { - if (is_string($this->sort)) { - $p = $this->sort; - usort($data, function ($a, $b) use ($p) { - if ($a[$p] == $b[$p]) { - return 0; - } - return $a[$p] < $b[$p] ? -1 : 1; - }); - } elseif ($this->sort === true) { - sort($data); - } - return $data; - } - - /** - * @return string - */ - public function getName() - { - return $this->name; - } - - // -------------------------------------------- - // ArrayAccess implementation - - /** - * @param mixed $key - * @param mixed $value - * @throws DebugBarException - */ - public function offsetSet($key, $value) - { - throw new DebugBarException("AggregatedCollector[] is read-only"); - } - - /** - * @param mixed $key - * @return mixed - */ - public function offsetGet($key) - { - return $this->collectors[$key]; - } - - /** - * @param mixed $key - * @return bool - */ - public function offsetExists($key) - { - return isset($this->collectors[$key]); - } - - /** - * @param mixed $key - * @throws DebugBarException - */ - public function offsetUnset($key) - { - throw new DebugBarException("AggregatedCollector[] is read-only"); - } -} diff --git a/vendor/maximebf/debugbar/src/DebugBar/DataCollector/AssetProvider.php b/vendor/maximebf/debugbar/src/DebugBar/DataCollector/AssetProvider.php deleted file mode 100644 index 58425d89..00000000 --- a/vendor/maximebf/debugbar/src/DebugBar/DataCollector/AssetProvider.php +++ /dev/null @@ -1,43 +0,0 @@ - tag) - * - inline_js: an array map of content ID to inline JS content (not including ' . "\n", $file); - } - - foreach ($inlineJs as $content) { - $html .= sprintf('' . "\n", $content); - } - - foreach ($inlineHead as $content) { - $html .= $content . "\n"; - } - - if ($this->enableJqueryNoConflict && !$this->useRequireJs) { - $html .= '' . "\n"; - } - - return $html; - } - - /** - * Register shutdown to display the debug bar - * - * @param boolean $here Set position of HTML. True if is to current position or false for end file - * @param boolean $initialize Whether to render the de bug bar initialization code - * @param bool $renderStackedData - * @param bool $head - * @return string Return "{--DEBUGBAR_OB_START_REPLACE_ME--}" or return an empty string if $here == false - */ - public function renderOnShutdown($here = true, $initialize = true, $renderStackedData = true, $head = false) - { - register_shutdown_function(array($this, "replaceTagInBuffer"), $here, $initialize, $renderStackedData, $head); - - if (ob_get_level() === 0) { - ob_start(); - } - - return ($here) ? self::REPLACEABLE_TAG : ""; - } - - /** - * Same as renderOnShutdown() with $head = true - * - * @param boolean $here - * @param boolean $initialize - * @param boolean $renderStackedData - * @return string - */ - public function renderOnShutdownWithHead($here = true, $initialize = true, $renderStackedData = true) - { - return $this->renderOnShutdown($here, $initialize, $renderStackedData, true); - } - - /** - * Is callback function for register_shutdown_function(...) - * - * @param boolean $here Set position of HTML. True if is to current position or false for end file - * @param boolean $initialize Whether to render the de bug bar initialization code - * @param bool $renderStackedData - * @param bool $head - */ - public function replaceTagInBuffer($here = true, $initialize = true, $renderStackedData = true, $head = false) - { - $render = ($head ? $this->renderHead() : "") - . $this->render($initialize, $renderStackedData); - - $current = ($here && ob_get_level() > 0) ? ob_get_clean() : self::REPLACEABLE_TAG; - - echo str_replace(self::REPLACEABLE_TAG, $render, $current, $count); - - if ($count === 0) { - echo $render; - } - } - - /** - * Returns the code needed to display the debug bar - * - * AJAX request should not render the initialization code. - * - * @param boolean $initialize Whether or not to render the debug bar initialization code - * @param boolean $renderStackedData Whether or not to render the stacked data - * @return string - */ - public function render($initialize = true, $renderStackedData = true) - { - $js = ''; - - if ($initialize) { - $js = $this->getJsInitializationCode(); - } - - if ($renderStackedData && $this->debugBar->hasStackedData()) { - foreach ($this->debugBar->getStackedData() as $id => $data) { - $js .= $this->getAddDatasetCode($id, $data, '(stacked)'); - } - } - - $suffix = !$initialize ? '(ajax)' : null; - $js .= $this->getAddDatasetCode($this->debugBar->getCurrentRequestId(), $this->debugBar->getData(), $suffix); - - if ($this->useRequireJs){ - return "\n"; - } else { - return "\n"; - } - - } - - /** - * Returns the js code needed to initialize the debug bar - * - * @return string - */ - protected function getJsInitializationCode() - { - $js = ''; - - if (($this->initialization & self::INITIALIZE_CONSTRUCTOR) === self::INITIALIZE_CONSTRUCTOR) { - $js .= sprintf("var %s = new %s();\n", $this->variableName, $this->javascriptClass); - } - - if (($this->initialization & self::INITIALIZE_CONTROLS) === self::INITIALIZE_CONTROLS) { - $js .= $this->getJsControlsDefinitionCode($this->variableName); - } - - if ($this->ajaxHandlerClass) { - $js .= sprintf("%s.ajaxHandler = new %s(%s, undefined, %s);\n", - $this->variableName, - $this->ajaxHandlerClass, - $this->variableName, - $this->ajaxHandlerAutoShow ? 'true' : 'false' - ); - if ($this->ajaxHandlerBindToXHR) { - $js .= sprintf("%s.ajaxHandler.bindToXHR();\n", $this->variableName); - } elseif ($this->ajaxHandlerBindToJquery) { - $js .= sprintf("if (jQuery) %s.ajaxHandler.bindToJquery(jQuery);\n", $this->variableName); - } - } - - if ($this->openHandlerUrl !== null) { - $js .= sprintf("%s.setOpenHandler(new %s(%s));\n", $this->variableName, - $this->openHandlerClass, - json_encode(array("url" => $this->openHandlerUrl))); - } - - return $js; - } - - /** - * Returns the js code needed to initialized the controls and data mapping of the debug bar - * - * Controls can be defined by collectors themselves or using {@see addControl()} - * - * @param string $varname Debug bar's variable name - * @return string - */ - protected function getJsControlsDefinitionCode($varname) - { - $js = ''; - $dataMap = array(); - $excludedOptions = array('indicator', 'tab', 'map', 'default', 'widget', 'position'); - - // finds controls provided by collectors - $widgets = array(); - foreach ($this->debugBar->getCollectors() as $collector) { - if (($collector instanceof Renderable) && !in_array($collector->getName(), $this->ignoredCollectors)) { - if ($w = $collector->getWidgets()) { - $widgets = array_merge($widgets, $w); - } - } - } - $controls = array_merge($widgets, $this->controls); - - foreach (array_filter($controls) as $name => $options) { - $opts = array_diff_key($options, array_flip($excludedOptions)); - - if (isset($options['tab']) || isset($options['widget'])) { - if (!isset($opts['title'])) { - $opts['title'] = ucfirst(str_replace('_', ' ', $name)); - } - $js .= sprintf("%s.addTab(\"%s\", new %s({%s%s}));\n", - $varname, - $name, - isset($options['tab']) ? $options['tab'] : 'PhpDebugBar.DebugBar.Tab', - substr(json_encode($opts, JSON_FORCE_OBJECT), 1, -1), - isset($options['widget']) ? sprintf('%s"widget": new %s()', count($opts) ? ', ' : '', $options['widget']) : '' - ); - } elseif (isset($options['indicator']) || isset($options['icon'])) { - $js .= sprintf("%s.addIndicator(\"%s\", new %s(%s), \"%s\");\n", - $varname, - $name, - isset($options['indicator']) ? $options['indicator'] : 'PhpDebugBar.DebugBar.Indicator', - json_encode($opts, JSON_FORCE_OBJECT), - isset($options['position']) ? $options['position'] : 'right' - ); - } - - if (isset($options['map']) && isset($options['default'])) { - $dataMap[$name] = array($options['map'], $options['default']); - } - } - - // creates the data mapping object - $mapJson = array(); - foreach ($dataMap as $name => $values) { - $mapJson[] = sprintf('"%s": ["%s", %s]', $name, $values[0], $values[1]); - } - $js .= sprintf("%s.setDataMap({\n%s\n});\n", $varname, implode(",\n", $mapJson)); - - // activate state restoration - $js .= sprintf("%s.restoreState();\n", $varname); - - return $js; - } - - /** - * Returns the js code needed to add a dataset - * - * @param string $requestId - * @param array $data - * @param mixed $suffix - * @return string - */ - protected function getAddDatasetCode($requestId, $data, $suffix = null) - { - $js = sprintf("%s.addDataSet(%s, \"%s\"%s);\n", - $this->variableName, - json_encode($data), - $requestId, - $suffix ? ", " . json_encode($suffix) : '' - ); - return $js; - } -} diff --git a/vendor/maximebf/debugbar/src/DebugBar/OpenHandler.php b/vendor/maximebf/debugbar/src/DebugBar/OpenHandler.php deleted file mode 100644 index ee4df413..00000000 --- a/vendor/maximebf/debugbar/src/DebugBar/OpenHandler.php +++ /dev/null @@ -1,117 +0,0 @@ -isDataPersisted()) { - throw new DebugBarException("DebugBar must have a storage backend to use OpenHandler"); - } - $this->debugBar = $debugBar; - } - - /** - * Handles the current request - * - * @param array $request Request data - * @param bool $echo - * @param bool $sendHeader - * @return string - * @throws DebugBarException - */ - public function handle($request = null, $echo = true, $sendHeader = true) - { - if ($request === null) { - $request = $_REQUEST; - } - - $op = 'find'; - if (isset($request['op'])) { - $op = $request['op']; - if (!in_array($op, array('find', 'get', 'clear'))) { - throw new DebugBarException("Invalid operation '{$request['op']}'"); - } - } - - if ($sendHeader) { - $this->debugBar->getHttpDriver()->setHeaders(array( - 'Content-Type' => 'application/json' - )); - } - - $response = json_encode(call_user_func(array($this, $op), $request)); - if ($echo) { - echo $response; - } - return $response; - } - - /** - * Find operation - * @param $request - * @return array - */ - protected function find($request) - { - $max = 20; - if (isset($request['max'])) { - $max = $request['max']; - } - - $offset = 0; - if (isset($request['offset'])) { - $offset = $request['offset']; - } - - $filters = array(); - foreach (array('utime', 'datetime', 'ip', 'uri', 'method') as $key) { - if (isset($request[$key])) { - $filters[$key] = $request[$key]; - } - } - - return $this->debugBar->getStorage()->find($filters, $max, $offset); - } - - /** - * Get operation - * @param $request - * @return array - * @throws DebugBarException - */ - protected function get($request) - { - if (!isset($request['id'])) { - throw new DebugBarException("Missing 'id' parameter in 'get' operation"); - } - return $this->debugBar->getStorage()->get($request['id']); - } - - /** - * Clear operation - */ - protected function clear($request) - { - $this->debugBar->getStorage()->clear(); - return array('success' => true); - } -} diff --git a/vendor/maximebf/debugbar/src/DebugBar/PhpHttpDriver.php b/vendor/maximebf/debugbar/src/DebugBar/PhpHttpDriver.php deleted file mode 100644 index 36e56f80..00000000 --- a/vendor/maximebf/debugbar/src/DebugBar/PhpHttpDriver.php +++ /dev/null @@ -1,70 +0,0 @@ - $value) { - header("$name: $value"); - } - } - - /** - * @return bool - */ - function isSessionStarted() - { - return isset($_SESSION); - } - - /** - * @param string $name - * @param string $value - */ - function setSessionValue($name, $value) - { - $_SESSION[$name] = $value; - } - - /** - * @param string $name - * @return bool - */ - function hasSessionValue($name) - { - return array_key_exists($name, $_SESSION); - } - - /** - * @param string $name - * @return mixed - */ - function getSessionValue($name) - { - return $_SESSION[$name]; - } - - /** - * @param string $name - */ - function deleteSessionValue($name) - { - unset($_SESSION[$name]); - } -} diff --git a/vendor/maximebf/debugbar/src/DebugBar/RequestIdGenerator.php b/vendor/maximebf/debugbar/src/DebugBar/RequestIdGenerator.php deleted file mode 100644 index 90c1728b..00000000 --- a/vendor/maximebf/debugbar/src/DebugBar/RequestIdGenerator.php +++ /dev/null @@ -1,43 +0,0 @@ -= 5.3.0, but OpenSSL may not always be available - return 'X' . bin2hex(openssl_random_pseudo_bytes(16)); - } else { - // Fall back to a rudimentary ID generator: - // * $_SERVER array will make the ID unique to this request. - // * spl_object_hash($this) will make the ID unique to this object instance. - // (note that object hashes can be reused, but the other data here should prevent issues here). - // * uniqid('', true) will use the current microtime(), plus additional random data. - // * $this->index guarantees the uniqueness of IDs from the current object. - $this->index++; - $entropy = serialize($_SERVER) . uniqid('', true) . spl_object_hash($this) . $this->index; - return 'X' . md5($entropy); - } - } -} diff --git a/vendor/maximebf/debugbar/src/DebugBar/RequestIdGeneratorInterface.php b/vendor/maximebf/debugbar/src/DebugBar/RequestIdGeneratorInterface.php deleted file mode 100644 index 3d9b4af7..00000000 --- a/vendor/maximebf/debugbar/src/DebugBar/RequestIdGeneratorInterface.php +++ /dev/null @@ -1,25 +0,0 @@ - value maps, the returned value must be - * guaranteed to not be all-numeric. - * - * @return string - */ - function generate(); -} diff --git a/vendor/maximebf/debugbar/src/DebugBar/Resources/debugbar.css b/vendor/maximebf/debugbar/src/DebugBar/Resources/debugbar.css deleted file mode 100644 index abfbca39..00000000 --- a/vendor/maximebf/debugbar/src/DebugBar/Resources/debugbar.css +++ /dev/null @@ -1,314 +0,0 @@ -/* Hide debugbar when printing a page */ -@media print { - div.phpdebugbar { - display: none; - } -} - -div.phpdebugbar { - position: fixed; - bottom: 0; - left: 0; - width: 100%; - border-top: 0; - font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", Helvetica, Arial, sans-serif; - background: #fff; - z-index: 10000; - font-size: 14px; - color: #000; - text-align: left; - line-height: 1; - letter-spacing: normal; - direction: ltr; -} - -div.phpdebugbar a, -div.phpdebugbar-openhandler { - cursor: pointer; -} - -div.phpdebugbar-drag-capture { - position: fixed; - top: 0; - bottom: 0; - left: 0; - right: 0; - z-index: 10001; - background: none; - display: none; - cursor: n-resize; -} - -div.phpdebugbar-closed { - width: auto; -} - -div.phpdebugbar * { - margin: 0; - padding: 0; - border: 0; - font-weight: normal; - text-decoration: none; - clear: initial; - width: auto; - -moz-box-sizing: content-box; - box-sizing: content-box; -} - -div.phpdebugbar ol, div.phpdebugbar ul { - list-style: none; -} - -div.phpdebugbar table { - border-collapse: collapse; - border-spacing: 0; -} - -div.phpdebugbar input[type='text'], div.phpdebugbar input[type='password'] { - font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", Helvetica, Arial, sans-serif; - background: #fff; - font-size: 14px; - color: #000; - border: 0; - padding: 0; - margin: 0; -} - -div.phpdebugbar code, div.phpdebugbar pre, div.phpdebugbar samp { - background: none; - font-family: "SFMono-Regular", Consolas, "Liberation Mono", Menlo, Courier, monospace; - font-size: 1em; - border: 0; - padding: 0; - margin: 0; -} - -div.phpdebugbar code, div.phpdebugbar pre { - color: #000; -} - -div.phpdebugbar pre.sf-dump { - color: #a0a000; - outline: 0; -} - -a.phpdebugbar-restore-btn { - float: left; - padding: 5px 8px; - font-size: 14px; - color: #555; - text-decoration: none; - border-right: 1px solid #ddd; -} - -div.phpdebugbar-resize-handle { - display: none; - height: 4px; - margin-top: -4px; - width: 100%; - background: none; - border-bottom: 1px solid #ccc; - cursor: n-resize; -} - -div.phpdebugbar-closed, div.phpdebugbar-minimized{ - border-top: 1px solid #ccc; -} -/* -------------------------------------- */ - -div.phpdebugbar-header, a.phpdebugbar-restore-btn { - background: #efefef url(data:image/svg+xml,%3Csvg%20viewBox%3D%220%200%2020%2020%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ccircle%20fill%3D%22%23000%22%20cx%3D%2210%22%20cy%3D%2210%22%20r%3D%229%22%2F%3E%3Cpath%20d%3D%22M6.039%208.342c.463%200%20.772.084.927.251.154.168.191.455.11.862-.084.424-.247.727-.487.908-.241.182-.608.272-1.1.272h-.743l.456-2.293h.837zm-2.975%204.615h1.22l.29-1.457H5.62c.461%200%20.84-.047%201.139-.142.298-.095.569-.254.812-.477.205-.184.37-.387.497-.608.127-.222.217-.466.27-.734.13-.65.032-1.155-.292-1.518-.324-.362-.84-.543-1.545-.543H4.153l-1.089%205.479zM9.235%206.02h1.21l-.289%201.458h1.079c.679%200%201.147.115%201.405.347.258.231.335.607.232%201.125l-.507%202.55h-1.23l.481-2.424c.055-.276.035-.464-.06-.565-.095-.1-.298-.15-.608-.15H9.98L9.356%2011.5h-1.21l1.089-5.48M15.566%208.342c.464%200%20.773.084.928.251.154.168.19.455.11.862-.084.424-.247.727-.488.908-.24.182-.607.272-1.1.272h-.742l.456-2.293h.836zm-2.974%204.615h1.22l.29-1.457h1.046c.461%200%20.84-.047%201.139-.142.298-.095.569-.254.812-.477.205-.184.37-.387.497-.608.127-.222.217-.466.27-.734.129-.65.032-1.155-.292-1.518-.324-.362-.84-.543-1.545-.543H13.68l-1.089%205.479z%22%20fill%3D%22%23FFF%22%2F%3E%3C%2Fsvg%3E) no-repeat 5px 4px / 20px 20px; -} -div.phpdebugbar-header { - padding-left: 29px; - min-height: 26px; - line-height: 16px; -} -div.phpdebugbar-header:before, div.phpdebugbar-header:after { - display: table; - line-height: 0; - content: ""; -} -div.phpdebugbar-header:after { - clear: both; -} -div.phpdebugbar-header-left { - float: left; -} -div.phpdebugbar-header-right { - float: right; -} -div.phpdebugbar-header > div > * { - padding: 5px 5px; - font-size: 14px; - color: #555; - text-decoration: none; -} -div.phpdebugbar-header-left > * { - float: left; -} -div.phpdebugbar-header-right > * { - float: right; -} -div.phpdebugbar-header-right > select { - padding: 0; -} - -/* -------------------------------------- */ - -span.phpdebugbar-indicator, -a.phpdebugbar-indicator, -a.phpdebugbar-close-btn { - border-right: 1px solid #ddd; -} - -a.phpdebugbar-tab.phpdebugbar-active { - background: #ccc; - color: #444; - background-image: linear-gradient(bottom, rgb(173,173,173) 41%, rgb(209,209,209) 71%); - background-image: -o-linear-gradient(bottom, rgb(173,173,173) 41%, rgb(209,209,209) 71%); - background-image: -moz-linear-gradient(bottom, rgb(173,173,173) 41%, rgb(209,209,209) 71%); - background-image: -webkit-linear-gradient(bottom, rgb(173,173,173) 41%, rgb(209,209,209) 71%); - background-image: -ms-linear-gradient(bottom, rgb(173,173,173) 41%, rgb(209,209,209) 71%); - background-image: -webkit-gradient(linear, left bottom, left top, color-stop(0.41, rgb(173,173,173)), color-stop(0.71, rgb(209,209,209))); -} - a.phpdebugbar-tab span.phpdebugbar-badge { - display: none; - margin-left: 5px; - font-size: 11px; - line-height: 14px; - padding: 0 6px; - background: #ccc; - border-radius: 4px; - color: #555; - font-weight: normal; - text-shadow: none; - vertical-align: middle; - } - a.phpdebugbar-tab i { - display: none; - vertical-align: middle; - } - a.phpdebugbar-tab span.phpdebugbar-badge.phpdebugbar-visible { - display: inline; - } - a.phpdebugbar-tab span.phpdebugbar-badge.phpdebugbar-important { - background: #ed6868; - color: white; - } - -a.phpdebugbar-close-btn, a.phpdebugbar-open-btn, a.phpdebugbar-restore-btn, a.phpdebugbar-minimize-btn , a.phpdebugbar-maximize-btn { - width: 16px; - height: 16px; -} - -a.phpdebugbar-minimize-btn , a.phpdebugbar-maximize-btn { - padding-right: 0 !important; -} - -a.phpdebugbar-maximize-btn { display: none} - -a.phpdebugbar-minimize-btn { display: block} - -div.phpdebugbar-minimized a.phpdebugbar-maximize-btn { display: block} - -div.phpdebugbar-minimized a.phpdebugbar-minimize-btn { display: none} - -a.phpdebugbar-minimize-btn { - background:url(data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%201792%201792%22%20id%3D%22chevron-down%22%3E%3Cpath%20d%3D%22M1683%20808l-742%20741q-19%2019-45%2019t-45-19l-742-741q-19-19-19-45.5t19-45.5l166-165q19-19%2045-19t45%2019l531%20531%20531-531q19-19%2045-19t45%2019l166%20165q19%2019%2019%2045.5t-19%2045.5z%22%2F%3E%3C%2Fsvg%3E) no-repeat 6px 6px / 14px 14px; -} - -a.phpdebugbar-maximize-btn { - background:url(data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%201792%201792%22%20id%3D%22chevron-up%22%3E%3Cpath%20d%3D%22M1683%201331l-166%20165q-19%2019-45%2019t-45-19l-531-531-531%20531q-19%2019-45%2019t-45-19l-166-165q-19-19-19-45.5t19-45.5l742-741q19-19%2045-19t45%2019l742%20741q19%2019%2019%2045.5t-19%2045.5z%22%2F%3E%3C%2Fsvg%3E) no-repeat 6px 6px / 14px 14px; -} - -a.phpdebugbar-close-btn { - background: url(data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%201792%201792%22%20id%3D%22close%22%3E%3Cpath%20d%3D%22M1490%201322q0%2040-28%2068l-136%20136q-28%2028-68%2028t-68-28l-294-294-294%20294q-28%2028-68%2028t-68-28l-136-136q-28-28-28-68t28-68l294-294-294-294q-28-28-28-68t28-68l136-136q28-28%2068-28t68%2028l294%20294%20294-294q28-28%2068-28t68%2028l136%20136q28%2028%2028%2068t-28%2068l-294%20294%20294%20294q28%2028%2028%2068z%22%2F%3E%3C%2Fsvg%3E) no-repeat 9px 6px / 14px 14px; -} - -a.phpdebugbar-open-btn { - background: url(data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%201792%201792%22%20id%3D%22folder-open%22%3E%3Cpath%20d%3D%22M1815%20952q0%2031-31%2066l-336%20396q-43%2051-120.5%2086.5t-143.5%2035.5h-1088q-34%200-60.5-13t-26.5-43q0-31%2031-66l336-396q43-51%20120.5-86.5t143.5-35.5h1088q34%200%2060.5%2013t26.5%2043zm-343-344v160h-832q-94%200-197%2047.5t-164%20119.5l-337%20396-5%206q0-4-.5-12.5t-.5-12.5v-960q0-92%2066-158t158-66h320q92%200%20158%2066t66%20158v32h544q92%200%20158%2066t66%20158z%22%2F%3E%3C%2Fsvg%3E) no-repeat 8px 6px / 14px 14px; -} - -.phpdebugbar-indicator { - position: relative; - cursor: pointer; -} - .phpdebugbar-indicator span.phpdebugbar-text { - margin-left: 5px; - } - .phpdebugbar-indicator span.phpdebugbar-tooltip { - display: none; - position: absolute; - top: -30px; - background: #efefef; - opacity: .7; - border: 1px solid #ccc; - color: #555; - font-size: 11px; - padding: 2px 3px; - z-index: 1000; - text-align: center; - width: 200%; - right: 0; - } - .phpdebugbar-indicator:hover span.phpdebugbar-tooltip:not(.phpdebugbar-disabled) { - display: block; - } - -select.phpdebugbar-datasets-switcher { - float: right; - display: none; - margin: 2px 0 0 7px; - max-width: 200px; - max-height: 23px; - padding: 0; -} - -/* -------------------------------------- */ - -div.phpdebugbar-body { - border-top: 1px solid #ccc; - display: none; - position: relative; - height: 300px; -} - -/* -------------------------------------- */ - -div.phpdebugbar-panel { - display: none; - height: 100%; - overflow: auto; - width: 100%; -} -div.phpdebugbar-panel.phpdebugbar-active { - display: block; -} - -/* -------------------------------------- */ - -div.phpdebugbar-mini-design a.phpdebugbar-tab { - position: relative; - border-right: 1px solid #ddd; -} - div.phpdebugbar-mini-design a.phpdebugbar-tab span.phpdebugbar-text { - display: none; - } - div.phpdebugbar-mini-design a.phpdebugbar-tab:hover span.phpdebugbar-text { - display: block; - position: absolute; - top: -30px; - background: #efefef; - opacity: .7; - border: 1px solid #ccc; - color: #555; - font-size: 11px; - padding: 2px 3px; - z-index: 1000; - text-align: center; - right: 0; - } - div.phpdebugbar-mini-design a.phpdebugbar-tab i { - display:inline-block; - } diff --git a/vendor/maximebf/debugbar/src/DebugBar/Resources/debugbar.js b/vendor/maximebf/debugbar/src/DebugBar/Resources/debugbar.js deleted file mode 100644 index f00b7287..00000000 --- a/vendor/maximebf/debugbar/src/DebugBar/Resources/debugbar.js +++ /dev/null @@ -1,1164 +0,0 @@ -if (typeof(PhpDebugBar) == 'undefined') { - // namespace - var PhpDebugBar = {}; - PhpDebugBar.$ = jQuery; -} - -(function($) { - - if (typeof(localStorage) == 'undefined') { - // provide mock localStorage object for dumb browsers - localStorage = { - setItem: function(key, value) {}, - getItem: function(key) { return null; } - }; - } - - if (typeof(PhpDebugBar.utils) == 'undefined') { - PhpDebugBar.utils = {}; - } - - /** - * Returns the value from an object property. - * Using dots in the key, it is possible to retrieve nested property values - * - * @param {Object} dict - * @param {String} key - * @param {Object} default_value - * @return {Object} - */ - var getDictValue = PhpDebugBar.utils.getDictValue = function(dict, key, default_value) { - var d = dict, parts = key.split('.'); - for (var i = 0; i < parts.length; i++) { - if (!d[parts[i]]) { - return default_value; - } - d = d[parts[i]]; - } - return d; - } - - /** - * Counts the number of properties in an object - * - * @param {Object} obj - * @return {Integer} - */ - var getObjectSize = PhpDebugBar.utils.getObjectSize = function(obj) { - if (Object.keys) { - return Object.keys(obj).length; - } - var count = 0; - for (var k in obj) { - if (obj.hasOwnProperty(k)) { - count++; - } - } - return count; - } - - /** - * Returns a prefixed css class name - * - * @param {String} cls - * @return {String} - */ - PhpDebugBar.utils.csscls = function(cls, prefix) { - if (cls.indexOf(' ') > -1) { - var clss = cls.split(' '), out = []; - for (var i = 0, c = clss.length; i < c; i++) { - out.push(PhpDebugBar.utils.csscls(clss[i], prefix)); - } - return out.join(' '); - } - if (cls.indexOf('.') === 0) { - return '.' + prefix + cls.substr(1); - } - return prefix + cls; - }; - - /** - * Creates a partial function of csscls where the second - * argument is already defined - * - * @param {string} prefix - * @return {Function} - */ - PhpDebugBar.utils.makecsscls = function(prefix) { - var f = function(cls) { - return PhpDebugBar.utils.csscls(cls, prefix); - }; - return f; - } - - var csscls = PhpDebugBar.utils.makecsscls('phpdebugbar-'); - - - // ------------------------------------------------------------------ - - /** - * Base class for all elements with a visual component - * - * @param {Object} options - * @constructor - */ - var Widget = PhpDebugBar.Widget = function(options) { - this._attributes = $.extend({}, this.defaults); - this._boundAttributes = {}; - this.$el = $('<' + this.tagName + ' />'); - if (this.className) { - this.$el.addClass(this.className); - } - this.initialize.apply(this, [options || {}]); - this.render.apply(this); - }; - - $.extend(Widget.prototype, { - - tagName: 'div', - - className: null, - - defaults: {}, - - /** - * Called after the constructor - * - * @param {Object} options - */ - initialize: function(options) { - this.set(options); - }, - - /** - * Called after the constructor to render the element - */ - render: function() {}, - - /** - * Sets the value of an attribute - * - * @param {String} attr Can also be an object to set multiple attributes at once - * @param {Object} value - */ - set: function(attr, value) { - if (typeof(attr) != 'string') { - for (var k in attr) { - this.set(k, attr[k]); - } - return; - } - - this._attributes[attr] = value; - if (typeof(this._boundAttributes[attr]) !== 'undefined') { - for (var i = 0, c = this._boundAttributes[attr].length; i < c; i++) { - this._boundAttributes[attr][i].apply(this, [value]); - } - } - }, - - /** - * Checks if an attribute exists and is not null - * - * @param {String} attr - * @return {[type]} [description] - */ - has: function(attr) { - return typeof(this._attributes[attr]) !== 'undefined' && this._attributes[attr] !== null; - }, - - /** - * Returns the value of an attribute - * - * @param {String} attr - * @return {Object} - */ - get: function(attr) { - return this._attributes[attr]; - }, - - /** - * Registers a callback function that will be called whenever the value of the attribute changes - * - * If cb is a jQuery element, text() will be used to fill the element - * - * @param {String} attr - * @param {Function} cb - */ - bindAttr: function(attr, cb) { - if ($.isArray(attr)) { - for (var i = 0, c = attr.length; i < c; i++) { - this.bindAttr(attr[i], cb); - } - return; - } - - if (typeof(this._boundAttributes[attr]) == 'undefined') { - this._boundAttributes[attr] = []; - } - if (typeof(cb) == 'object') { - var el = cb; - cb = function(value) { el.text(value || ''); }; - } - this._boundAttributes[attr].push(cb); - if (this.has(attr)) { - cb.apply(this, [this._attributes[attr]]); - } - } - - }); - - - /** - * Creates a subclass - * - * Code from Backbone.js - * - * @param {Array} props Prototype properties - * @return {Function} - */ - Widget.extend = function(props) { - var parent = this; - - var child = function() { return parent.apply(this, arguments); }; - $.extend(child, parent); - - var Surrogate = function(){ this.constructor = child; }; - Surrogate.prototype = parent.prototype; - child.prototype = new Surrogate; - $.extend(child.prototype, props); - - child.__super__ = parent.prototype; - - return child; - }; - - // ------------------------------------------------------------------ - - /** - * Tab - * - * A tab is composed of a tab label which is always visible and - * a tab panel which is visible only when the tab is active. - * - * The panel must contain a widget. A widget is an object which has - * an element property containing something appendable to a jQuery object. - * - * Options: - * - title - * - badge - * - widget - * - data: forward data to widget data - */ - var Tab = Widget.extend({ - - className: csscls('panel'), - - render: function() { - this.$tab = $('').addClass(csscls('tab')); - - this.$icon = $('').appendTo(this.$tab); - this.bindAttr('icon', function(icon) { - if (icon) { - this.$icon.attr('class', 'phpdebugbar-fa phpdebugbar-fa-' + icon); - } else { - this.$icon.attr('class', ''); - } - }); - - this.bindAttr('title', $('').addClass(csscls('text')).appendTo(this.$tab)); - - this.$badge = $('').addClass(csscls('badge')).appendTo(this.$tab); - this.bindAttr('badge', function(value) { - if (value !== null) { - this.$badge.text(value); - this.$badge.addClass(csscls('visible')); - } else { - this.$badge.removeClass(csscls('visible')); - } - }); - - this.bindAttr('widget', function(widget) { - this.$el.empty().append(widget.$el); - }); - - this.bindAttr('data', function(data) { - if (this.has('widget')) { - this.get('widget').set('data', data); - } - }) - } - - }); - - // ------------------------------------------------------------------ - - /** - * Indicator - * - * An indicator is a text and an icon to display single value information - * right inside the always visible part of the debug bar - * - * Options: - * - icon - * - title - * - tooltip - * - data: alias of title - */ - var Indicator = Widget.extend({ - - tagName: 'span', - - className: csscls('indicator'), - - render: function() { - this.$icon = $('').appendTo(this.$el); - this.bindAttr('icon', function(icon) { - if (icon) { - this.$icon.attr('class', 'phpdebugbar-fa phpdebugbar-fa-' + icon); - } else { - this.$icon.attr('class', ''); - } - }); - - this.bindAttr(['title', 'data'], $('').addClass(csscls('text')).appendTo(this.$el)); - - this.$tooltip = $('').addClass(csscls('tooltip disabled')).appendTo(this.$el); - this.bindAttr('tooltip', function(tooltip) { - if (tooltip) { - this.$tooltip.text(tooltip).removeClass(csscls('disabled')); - } else { - this.$tooltip.addClass(csscls('disabled')); - } - }); - } - - }); - - // ------------------------------------------------------------------ - - /** - * Dataset title formater - * - * Formats the title of a dataset for the select box - */ - var DatasetTitleFormater = PhpDebugBar.DatasetTitleFormater = function(debugbar) { - this.debugbar = debugbar; - }; - - $.extend(DatasetTitleFormater.prototype, { - - /** - * Formats the title of a dataset - * - * @this {DatasetTitleFormater} - * @param {String} id - * @param {Object} data - * @param {String} suffix - * @return {String} - */ - format: function(id, data, suffix) { - if (suffix) { - suffix = ' ' + suffix; - } else { - suffix = ''; - } - - var nb = getObjectSize(this.debugbar.datasets) + 1; - - if (typeof(data['__meta']) === 'undefined') { - return "#" + nb + suffix; - } - - var uri = data['__meta']['uri'], filename; - if (uri.length && uri.charAt(uri.length - 1) === '/') { - // URI ends in a trailing /: get the portion before then to avoid returning an empty string - filename = uri.substr(0, uri.length - 1); // strip trailing '/' - filename = filename.substr(filename.lastIndexOf('/') + 1); // get last path segment - filename += '/'; // add the trailing '/' back - } else { - filename = uri.substr(uri.lastIndexOf('/') + 1); - } - var label = "#" + nb + " " + filename + suffix + ' (' + data['__meta']['datetime'].split(' ')[1] + ')'; - return label; - } - - }); - - // ------------------------------------------------------------------ - - - /** - * DebugBar - * - * Creates a bar that appends itself to the body of your page - * and sticks to the bottom. - * - * The bar can be customized by adding tabs and indicators. - * A data map is used to fill those controls with data provided - * from datasets. - */ - var DebugBar = PhpDebugBar.DebugBar = Widget.extend({ - - className: "phpdebugbar " + csscls('minimized'), - - options: { - bodyMarginBottom: true, - bodyMarginBottomHeight: 0 - }, - - initialize: function() { - this.controls = {}; - this.dataMap = {}; - this.datasets = {}; - this.firstTabName = null; - this.activePanelName = null; - this.datesetTitleFormater = new DatasetTitleFormater(this); - this.options.bodyMarginBottomHeight = parseInt($('body').css('margin-bottom')); - this.registerResizeHandler(); - }, - - /** - * Register resize event, for resize debugbar with reponsive css. - * - * @this {DebugBar} - */ - registerResizeHandler: function() { - if (typeof this.resize.bind == 'undefined') return; - - var f = this.resize.bind(this); - this.respCSSSize = 0; - $(window).resize(f); - setTimeout(f, 20); - }, - - /** - * Resizes the debugbar to fit the current browser window - */ - resize: function() { - var contentSize = this.respCSSSize; - if (this.respCSSSize == 0) { - this.$header.find("> div > *:visible").each(function () { - contentSize += $(this).outerWidth(); - }); - } - - var currentSize = this.$header.width(); - var cssClass = "phpdebugbar-mini-design"; - var bool = this.$header.hasClass(cssClass); - - if (currentSize <= contentSize && !bool) { - this.respCSSSize = contentSize; - this.$header.addClass(cssClass); - } else if (contentSize < currentSize && bool) { - this.respCSSSize = 0; - this.$header.removeClass(cssClass); - } - - // Reset height to ensure bar is still visible - this.setHeight(this.$body.height()); - }, - - /** - * Initialiazes the UI - * - * @this {DebugBar} - */ - render: function() { - var self = this; - this.$el.appendTo('body'); - this.$dragCapture = $('
    ').addClass(csscls('drag-capture')).appendTo(this.$el); - this.$resizehdle = $('
    ').addClass(csscls('resize-handle')).appendTo(this.$el); - this.$header = $('
    ').addClass(csscls('header')).appendTo(this.$el); - this.$headerLeft = $('
    ').addClass(csscls('header-left')).appendTo(this.$header); - this.$headerRight = $('
    ').addClass(csscls('header-right')).appendTo(this.$header); - var $body = this.$body = $('
    ').addClass(csscls('body')).appendTo(this.$el); - this.recomputeBottomOffset(); - - // dragging of resize handle - var pos_y, orig_h; - this.$resizehdle.on('mousedown', function(e) { - orig_h = $body.height(), pos_y = e.pageY; - $body.parents().on('mousemove', mousemove).on('mouseup', mouseup); - self.$dragCapture.show(); - e.preventDefault(); - }); - var mousemove = function(e) { - var h = orig_h + (pos_y - e.pageY); - self.setHeight(h); - }; - var mouseup = function() { - $body.parents().off('mousemove', mousemove).off('mouseup', mouseup); - self.$dragCapture.hide(); - }; - - // close button - this.$closebtn = $('').addClass(csscls('close-btn')).appendTo(this.$headerRight); - this.$closebtn.click(function() { - self.close(); - }); - - // minimize button - this.$minimizebtn = $('').addClass(csscls('minimize-btn') ).appendTo(this.$headerRight); - this.$minimizebtn.click(function() { - self.minimize(); - }); - - // maximize button - this.$maximizebtn = $('').addClass(csscls('maximize-btn') ).appendTo(this.$headerRight); - this.$maximizebtn.click(function() { - self.restore(); - }); - - // restore button - this.$restorebtn = $('').addClass(csscls('restore-btn')).hide().appendTo(this.$el); - this.$restorebtn.click(function() { - self.restore(); - }); - - // open button - this.$openbtn = $('').addClass(csscls('open-btn')).appendTo(this.$headerRight).hide(); - this.$openbtn.click(function() { - self.openHandler.show(function(id, dataset) { - self.addDataSet(dataset, id, "(opened)"); - self.showTab(); - }); - }); - - // select box for data sets - this.$datasets = $('
    ') - .append('Uri:
    ') - .append('IP:
    ') - .append(searchBtn) - .appendTo(this.$actions); - }, - - handleFind: function(data) { - var self = this; - $.each(data, function(i, meta) { - var a = $('
    ') - .text('Load dataset') - .on('click', function(e) { - self.hide(); - self.load(meta['id'], function(data) { - self.callback(meta['id'], data); - }); - e.preventDefault(); - }); - - var method = $('') - .text(meta['method']) - .on('click', function(e) { - self.$table.empty(); - self.find({method: meta['method']}, 0, self.handleFind.bind(self)); - e.preventDefault(); - }); - - var uri = $('') - .text(meta['uri']) - .on('click', function(e) { - self.hide(); - self.load(meta['id'], function(data) { - self.callback(meta['id'], data); - }); - e.preventDefault(); - }); - - var ip = $('') - .text(meta['ip']) - .on('click', function(e) { - self.$table.empty(); - self.find({ip: meta['ip']}, 0, self.handleFind.bind(self)); - e.preventDefault(); - }); - - var search = $('') - .text('Show URL') - .on('click', function(e) { - self.$table.empty(); - self.find({uri: meta['uri']}, 0, self.handleFind.bind(self)); - e.preventDefault(); - }); - - $('') - .append('' + meta['datetime'] + '') - .append('' + meta['method'] + '') - .append($('').append(uri)) - .append($('').append(ip)) - .append($('').append(search)) - .appendTo(self.$table); - }); - if (data.length < this.get('items_per_page')) { - this.$loadmorebtn.hide(); - } - }, - - show: function(callback) { - this.callback = callback; - this.$el.show(); - this.$overlay.show(); - this.refresh(); - }, - - hide: function() { - this.$el.hide(); - this.$overlay.hide(); - }, - - find: function(filters, offset, callback) { - var data = $.extend({}, filters, {max: this.get('items_per_page'), offset: offset || 0}); - this.last_find_request = data; - this.ajax(data, callback); - }, - - load: function(id, callback) { - this.ajax({op: "get", id: id}, callback); - }, - - clear: function(callback) { - this.ajax({op: "clear"}, callback); - }, - - ajax: function(data, callback) { - $.ajax({ - dataType: 'json', - url: this.get('url'), - data: data, - success: callback, - ignoreDebugBarAjaxHandler: true - }); - } - - }); - -})(PhpDebugBar.$); diff --git a/vendor/maximebf/debugbar/src/DebugBar/Resources/vendor/font-awesome/css/font-awesome.min.css b/vendor/maximebf/debugbar/src/DebugBar/Resources/vendor/font-awesome/css/font-awesome.min.css deleted file mode 100644 index 3559d52d..00000000 --- a/vendor/maximebf/debugbar/src/DebugBar/Resources/vendor/font-awesome/css/font-awesome.min.css +++ /dev/null @@ -1,4 +0,0 @@ -/*! - * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome - * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) - */@font-face{font-family:'PhpDebugbarFontAwesome';src:url('../fonts/fontawesome-webfont.eot?v=4.7.0');src:url('../fonts/fontawesome-webfont.eot?#iefix&v=4.7.0') format('embedded-opentype'),url('../fonts/fontawesome-webfont.woff2?v=4.7.0') format('woff2'),url('../fonts/fontawesome-webfont.woff?v=4.7.0') format('woff'),url('../fonts/fontawesome-webfont.ttf?v=4.7.0') format('truetype'),url('../fonts/fontawesome-webfont.svg?v=4.7.0#fontawesomeregular') format('svg');font-weight:normal;font-style:normal}.phpdebugbar-fa{display:inline-block;font:normal normal normal 14px/1 PhpDebugbarFontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.phpdebugbar-fa-lg{font-size:1.33333333em;line-height:.75em;vertical-align:-15%}.phpdebugbar-fa-2x{font-size:2em}.phpdebugbar-fa-3x{font-size:3em}.phpdebugbar-fa-4x{font-size:4em}.phpdebugbar-fa-5x{font-size:5em}.phpdebugbar-fa-fw{width:1.28571429em;text-align:center}.phpdebugbar-fa-ul{padding-left:0;margin-left:2.14285714em;list-style-type:none}.phpdebugbar-fa-ul>li{position:relative}.phpdebugbar-fa-li{position:absolute;left:-2.14285714em;width:2.14285714em;top:.14285714em;text-align:center}.phpdebugbar-fa-li.phpdebugbar-fa-lg{left:-1.85714286em}.phpdebugbar-fa-border{padding:.2em .25em .15em;border:solid .08em #eee;border-radius:.1em}.phpdebugbar-fa-pull-left{float:left}.phpdebugbar-fa-pull-right{float:right}.phpdebugbar-fa.phpdebugbar-fa-pull-left{margin-right:.3em}.phpdebugbar-fa.phpdebugbar-fa-pull-right{margin-left:.3em}.pull-right{float:right}.pull-left{float:left}.phpdebugbar-fa.pull-left{margin-right:.3em}.phpdebugbar-fa.pull-right{margin-left:.3em}.phpdebugbar-fa-spin{-webkit-animation:phpdebugbar-fa-spin 2s infinite linear;animation:phpdebugbar-fa-spin 2s infinite linear}.phpdebugbar-fa-pulse{-webkit-animation:phpdebugbar-fa-spin 1s infinite steps(8);animation:phpdebugbar-fa-spin 1s infinite steps(8)}@-webkit-keyframes phpdebugbar-fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes phpdebugbar-fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.phpdebugbar-fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.phpdebugbar-fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.phpdebugbar-fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.phpdebugbar-fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";-webkit-transform:scale(-1, 1);-ms-transform:scale(-1, 1);transform:scale(-1, 1)}.phpdebugbar-fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";-webkit-transform:scale(1, -1);-ms-transform:scale(1, -1);transform:scale(1, -1)}:root .phpdebugbar-fa-rotate-90,:root .phpdebugbar-fa-rotate-180,:root .phpdebugbar-fa-rotate-270,:root .phpdebugbar-fa-flip-horizontal,:root .phpdebugbar-fa-flip-vertical{filter:none}.phpdebugbar-fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.phpdebugbar-fa-stack-1x,.phpdebugbar-fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.phpdebugbar-fa-stack-1x{line-height:inherit}.phpdebugbar-fa-stack-2x{font-size:2em}.phpdebugbar-fa-inverse{color:#fff}.phpdebugbar-fa-glass:before{content:"\f000"}.phpdebugbar-fa-music:before{content:"\f001"}.phpdebugbar-fa-search:before{content:"\f002"}.phpdebugbar-fa-envelope-o:before{content:"\f003"}.phpdebugbar-fa-heart:before{content:"\f004"}.phpdebugbar-fa-star:before{content:"\f005"}.phpdebugbar-fa-star-o:before{content:"\f006"}.phpdebugbar-fa-user:before{content:"\f007"}.phpdebugbar-fa-film:before{content:"\f008"}.phpdebugbar-fa-th-large:before{content:"\f009"}.phpdebugbar-fa-th:before{content:"\f00a"}.phpdebugbar-fa-th-list:before{content:"\f00b"}.phpdebugbar-fa-check:before{content:"\f00c"}.phpdebugbar-fa-remove:before,.phpdebugbar-fa-close:before,.phpdebugbar-fa-times:before{content:"\f00d"}.phpdebugbar-fa-search-plus:before{content:"\f00e"}.phpdebugbar-fa-search-minus:before{content:"\f010"}.phpdebugbar-fa-power-off:before{content:"\f011"}.phpdebugbar-fa-signal:before{content:"\f012"}.phpdebugbar-fa-gear:before,.phpdebugbar-fa-cog:before{content:"\f013"}.phpdebugbar-fa-trash-o:before{content:"\f014"}.phpdebugbar-fa-home:before{content:"\f015"}.phpdebugbar-fa-file-o:before{content:"\f016"}.phpdebugbar-fa-clock-o:before{content:"\f017"}.phpdebugbar-fa-road:before{content:"\f018"}.phpdebugbar-fa-download:before{content:"\f019"}.phpdebugbar-fa-arrow-circle-o-down:before{content:"\f01a"}.phpdebugbar-fa-arrow-circle-o-up:before{content:"\f01b"}.phpdebugbar-fa-inbox:before{content:"\f01c"}.phpdebugbar-fa-play-circle-o:before{content:"\f01d"}.phpdebugbar-fa-rotate-right:before,.phpdebugbar-fa-repeat:before{content:"\f01e"}.phpdebugbar-fa-refresh:before{content:"\f021"}.phpdebugbar-fa-list-alt:before{content:"\f022"}.phpdebugbar-fa-lock:before{content:"\f023"}.phpdebugbar-fa-flag:before{content:"\f024"}.phpdebugbar-fa-headphones:before{content:"\f025"}.phpdebugbar-fa-volume-off:before{content:"\f026"}.phpdebugbar-fa-volume-down:before{content:"\f027"}.phpdebugbar-fa-volume-up:before{content:"\f028"}.phpdebugbar-fa-qrcode:before{content:"\f029"}.phpdebugbar-fa-barcode:before{content:"\f02a"}.phpdebugbar-fa-tag:before{content:"\f02b"}.phpdebugbar-fa-tags:before{content:"\f02c"}.phpdebugbar-fa-book:before{content:"\f02d"}.phpdebugbar-fa-bookmark:before{content:"\f02e"}.phpdebugbar-fa-print:before{content:"\f02f"}.phpdebugbar-fa-camera:before{content:"\f030"}.phpdebugbar-fa-font:before{content:"\f031"}.phpdebugbar-fa-bold:before{content:"\f032"}.phpdebugbar-fa-italic:before{content:"\f033"}.phpdebugbar-fa-text-height:before{content:"\f034"}.phpdebugbar-fa-text-width:before{content:"\f035"}.phpdebugbar-fa-align-left:before{content:"\f036"}.phpdebugbar-fa-align-center:before{content:"\f037"}.phpdebugbar-fa-align-right:before{content:"\f038"}.phpdebugbar-fa-align-justify:before{content:"\f039"}.phpdebugbar-fa-list:before{content:"\f03a"}.phpdebugbar-fa-dedent:before,.phpdebugbar-fa-outdent:before{content:"\f03b"}.phpdebugbar-fa-indent:before{content:"\f03c"}.phpdebugbar-fa-video-camera:before{content:"\f03d"}.phpdebugbar-fa-photo:before,.phpdebugbar-fa-image:before,.phpdebugbar-fa-picture-o:before{content:"\f03e"}.phpdebugbar-fa-pencil:before{content:"\f040"}.phpdebugbar-fa-map-marker:before{content:"\f041"}.phpdebugbar-fa-adjust:before{content:"\f042"}.phpdebugbar-fa-tint:before{content:"\f043"}.phpdebugbar-fa-edit:before,.phpdebugbar-fa-pencil-square-o:before{content:"\f044"}.phpdebugbar-fa-share-square-o:before{content:"\f045"}.phpdebugbar-fa-check-square-o:before{content:"\f046"}.phpdebugbar-fa-arrows:before{content:"\f047"}.phpdebugbar-fa-step-backward:before{content:"\f048"}.phpdebugbar-fa-fast-backward:before{content:"\f049"}.phpdebugbar-fa-backward:before{content:"\f04a"}.phpdebugbar-fa-play:before{content:"\f04b"}.phpdebugbar-fa-pause:before{content:"\f04c"}.phpdebugbar-fa-stop:before{content:"\f04d"}.phpdebugbar-fa-forward:before{content:"\f04e"}.phpdebugbar-fa-fast-forward:before{content:"\f050"}.phpdebugbar-fa-step-forward:before{content:"\f051"}.phpdebugbar-fa-eject:before{content:"\f052"}.phpdebugbar-fa-chevron-left:before{content:"\f053"}.phpdebugbar-fa-chevron-right:before{content:"\f054"}.phpdebugbar-fa-plus-circle:before{content:"\f055"}.phpdebugbar-fa-minus-circle:before{content:"\f056"}.phpdebugbar-fa-times-circle:before{content:"\f057"}.phpdebugbar-fa-check-circle:before{content:"\f058"}.phpdebugbar-fa-question-circle:before{content:"\f059"}.phpdebugbar-fa-info-circle:before{content:"\f05a"}.phpdebugbar-fa-crosshairs:before{content:"\f05b"}.phpdebugbar-fa-times-circle-o:before{content:"\f05c"}.phpdebugbar-fa-check-circle-o:before{content:"\f05d"}.phpdebugbar-fa-ban:before{content:"\f05e"}.phpdebugbar-fa-arrow-left:before{content:"\f060"}.phpdebugbar-fa-arrow-right:before{content:"\f061"}.phpdebugbar-fa-arrow-up:before{content:"\f062"}.phpdebugbar-fa-arrow-down:before{content:"\f063"}.phpdebugbar-fa-mail-forward:before,.phpdebugbar-fa-share:before{content:"\f064"}.phpdebugbar-fa-expand:before{content:"\f065"}.phpdebugbar-fa-compress:before{content:"\f066"}.phpdebugbar-fa-plus:before{content:"\f067"}.phpdebugbar-fa-minus:before{content:"\f068"}.phpdebugbar-fa-asterisk:before{content:"\f069"}.phpdebugbar-fa-exclamation-circle:before{content:"\f06a"}.phpdebugbar-fa-gift:before{content:"\f06b"}.phpdebugbar-fa-leaf:before{content:"\f06c"}.phpdebugbar-fa-fire:before{content:"\f06d"}.phpdebugbar-fa-eye:before{content:"\f06e"}.phpdebugbar-fa-eye-slash:before{content:"\f070"}.phpdebugbar-fa-warning:before,.phpdebugbar-fa-exclamation-triangle:before{content:"\f071"}.phpdebugbar-fa-plane:before{content:"\f072"}.phpdebugbar-fa-calendar:before{content:"\f073"}.phpdebugbar-fa-random:before{content:"\f074"}.phpdebugbar-fa-comment:before{content:"\f075"}.phpdebugbar-fa-magnet:before{content:"\f076"}.phpdebugbar-fa-chevron-up:before{content:"\f077"}.phpdebugbar-fa-chevron-down:before{content:"\f078"}.phpdebugbar-fa-retweet:before{content:"\f079"}.phpdebugbar-fa-shopping-cart:before{content:"\f07a"}.phpdebugbar-fa-folder:before{content:"\f07b"}.phpdebugbar-fa-folder-open:before{content:"\f07c"}.phpdebugbar-fa-arrows-v:before{content:"\f07d"}.phpdebugbar-fa-arrows-h:before{content:"\f07e"}.phpdebugbar-fa-bar-chart-o:before,.phpdebugbar-fa-bar-chart:before{content:"\f080"}.phpdebugbar-fa-twitter-square:before{content:"\f081"}.phpdebugbar-fa-facebook-square:before{content:"\f082"}.phpdebugbar-fa-camera-retro:before{content:"\f083"}.phpdebugbar-fa-key:before{content:"\f084"}.phpdebugbar-fa-gears:before,.phpdebugbar-fa-cogs:before{content:"\f085"}.phpdebugbar-fa-comments:before{content:"\f086"}.phpdebugbar-fa-thumbs-o-up:before{content:"\f087"}.phpdebugbar-fa-thumbs-o-down:before{content:"\f088"}.phpdebugbar-fa-star-half:before{content:"\f089"}.phpdebugbar-fa-heart-o:before{content:"\f08a"}.phpdebugbar-fa-sign-out:before{content:"\f08b"}.phpdebugbar-fa-linkedin-square:before{content:"\f08c"}.phpdebugbar-fa-thumb-tack:before{content:"\f08d"}.phpdebugbar-fa-external-link:before{content:"\f08e"}.phpdebugbar-fa-sign-in:before{content:"\f090"}.phpdebugbar-fa-trophy:before{content:"\f091"}.phpdebugbar-fa-github-square:before{content:"\f092"}.phpdebugbar-fa-upload:before{content:"\f093"}.phpdebugbar-fa-lemon-o:before{content:"\f094"}.phpdebugbar-fa-phone:before{content:"\f095"}.phpdebugbar-fa-square-o:before{content:"\f096"}.phpdebugbar-fa-bookmark-o:before{content:"\f097"}.phpdebugbar-fa-phone-square:before{content:"\f098"}.phpdebugbar-fa-twitter:before{content:"\f099"}.phpdebugbar-fa-facebook-f:before,.phpdebugbar-fa-facebook:before{content:"\f09a"}.phpdebugbar-fa-github:before{content:"\f09b"}.phpdebugbar-fa-unlock:before{content:"\f09c"}.phpdebugbar-fa-credit-card:before{content:"\f09d"}.phpdebugbar-fa-feed:before,.phpdebugbar-fa-rss:before{content:"\f09e"}.phpdebugbar-fa-hdd-o:before{content:"\f0a0"}.phpdebugbar-fa-bullhorn:before{content:"\f0a1"}.phpdebugbar-fa-bell:before{content:"\f0f3"}.phpdebugbar-fa-certificate:before{content:"\f0a3"}.phpdebugbar-fa-hand-o-right:before{content:"\f0a4"}.phpdebugbar-fa-hand-o-left:before{content:"\f0a5"}.phpdebugbar-fa-hand-o-up:before{content:"\f0a6"}.phpdebugbar-fa-hand-o-down:before{content:"\f0a7"}.phpdebugbar-fa-arrow-circle-left:before{content:"\f0a8"}.phpdebugbar-fa-arrow-circle-right:before{content:"\f0a9"}.phpdebugbar-fa-arrow-circle-up:before{content:"\f0aa"}.phpdebugbar-fa-arrow-circle-down:before{content:"\f0ab"}.phpdebugbar-fa-globe:before{content:"\f0ac"}.phpdebugbar-fa-wrench:before{content:"\f0ad"}.phpdebugbar-fa-tasks:before{content:"\f0ae"}.phpdebugbar-fa-filter:before{content:"\f0b0"}.phpdebugbar-fa-briefcase:before{content:"\f0b1"}.phpdebugbar-fa-arrows-alt:before{content:"\f0b2"}.phpdebugbar-fa-group:before,.phpdebugbar-fa-users:before{content:"\f0c0"}.phpdebugbar-fa-chain:before,.phpdebugbar-fa-link:before{content:"\f0c1"}.phpdebugbar-fa-cloud:before{content:"\f0c2"}.phpdebugbar-fa-flask:before{content:"\f0c3"}.phpdebugbar-fa-cut:before,.phpdebugbar-fa-scissors:before{content:"\f0c4"}.phpdebugbar-fa-copy:before,.phpdebugbar-fa-files-o:before{content:"\f0c5"}.phpdebugbar-fa-paperclip:before{content:"\f0c6"}.phpdebugbar-fa-save:before,.phpdebugbar-fa-floppy-o:before{content:"\f0c7"}.phpdebugbar-fa-square:before{content:"\f0c8"}.phpdebugbar-fa-navicon:before,.phpdebugbar-fa-reorder:before,.phpdebugbar-fa-bars:before{content:"\f0c9"}.phpdebugbar-fa-list-ul:before{content:"\f0ca"}.phpdebugbar-fa-list-ol:before{content:"\f0cb"}.phpdebugbar-fa-strikethrough:before{content:"\f0cc"}.phpdebugbar-fa-underline:before{content:"\f0cd"}.phpdebugbar-fa-table:before{content:"\f0ce"}.phpdebugbar-fa-magic:before{content:"\f0d0"}.phpdebugbar-fa-truck:before{content:"\f0d1"}.phpdebugbar-fa-pinterest:before{content:"\f0d2"}.phpdebugbar-fa-pinterest-square:before{content:"\f0d3"}.phpdebugbar-fa-google-plus-square:before{content:"\f0d4"}.phpdebugbar-fa-google-plus:before{content:"\f0d5"}.phpdebugbar-fa-money:before{content:"\f0d6"}.phpdebugbar-fa-caret-down:before{content:"\f0d7"}.phpdebugbar-fa-caret-up:before{content:"\f0d8"}.phpdebugbar-fa-caret-left:before{content:"\f0d9"}.phpdebugbar-fa-caret-right:before{content:"\f0da"}.phpdebugbar-fa-columns:before{content:"\f0db"}.phpdebugbar-fa-unsorted:before,.phpdebugbar-fa-sort:before{content:"\f0dc"}.phpdebugbar-fa-sort-down:before,.phpdebugbar-fa-sort-desc:before{content:"\f0dd"}.phpdebugbar-fa-sort-up:before,.phpdebugbar-fa-sort-asc:before{content:"\f0de"}.phpdebugbar-fa-envelope:before{content:"\f0e0"}.phpdebugbar-fa-linkedin:before{content:"\f0e1"}.phpdebugbar-fa-rotate-left:before,.phpdebugbar-fa-undo:before{content:"\f0e2"}.phpdebugbar-fa-legal:before,.phpdebugbar-fa-gavel:before{content:"\f0e3"}.phpdebugbar-fa-dashboard:before,.phpdebugbar-fa-tachometer:before{content:"\f0e4"}.phpdebugbar-fa-comment-o:before{content:"\f0e5"}.phpdebugbar-fa-comments-o:before{content:"\f0e6"}.phpdebugbar-fa-flash:before,.phpdebugbar-fa-bolt:before{content:"\f0e7"}.phpdebugbar-fa-sitemap:before{content:"\f0e8"}.phpdebugbar-fa-umbrella:before{content:"\f0e9"}.phpdebugbar-fa-paste:before,.phpdebugbar-fa-clipboard:before{content:"\f0ea"}.phpdebugbar-fa-lightbulb-o:before{content:"\f0eb"}.phpdebugbar-fa-exchange:before{content:"\f0ec"}.phpdebugbar-fa-cloud-download:before{content:"\f0ed"}.phpdebugbar-fa-cloud-upload:before{content:"\f0ee"}.phpdebugbar-fa-user-md:before{content:"\f0f0"}.phpdebugbar-fa-stethoscope:before{content:"\f0f1"}.phpdebugbar-fa-suitcase:before{content:"\f0f2"}.phpdebugbar-fa-bell-o:before{content:"\f0a2"}.phpdebugbar-fa-coffee:before{content:"\f0f4"}.phpdebugbar-fa-cutlery:before{content:"\f0f5"}.phpdebugbar-fa-file-text-o:before{content:"\f0f6"}.phpdebugbar-fa-building-o:before{content:"\f0f7"}.phpdebugbar-fa-hospital-o:before{content:"\f0f8"}.phpdebugbar-fa-ambulance:before{content:"\f0f9"}.phpdebugbar-fa-medkit:before{content:"\f0fa"}.phpdebugbar-fa-fighter-jet:before{content:"\f0fb"}.phpdebugbar-fa-beer:before{content:"\f0fc"}.phpdebugbar-fa-h-square:before{content:"\f0fd"}.phpdebugbar-fa-plus-square:before{content:"\f0fe"}.phpdebugbar-fa-angle-double-left:before{content:"\f100"}.phpdebugbar-fa-angle-double-right:before{content:"\f101"}.phpdebugbar-fa-angle-double-up:before{content:"\f102"}.phpdebugbar-fa-angle-double-down:before{content:"\f103"}.phpdebugbar-fa-angle-left:before{content:"\f104"}.phpdebugbar-fa-angle-right:before{content:"\f105"}.phpdebugbar-fa-angle-up:before{content:"\f106"}.phpdebugbar-fa-angle-down:before{content:"\f107"}.phpdebugbar-fa-desktop:before{content:"\f108"}.phpdebugbar-fa-laptop:before{content:"\f109"}.phpdebugbar-fa-tablet:before{content:"\f10a"}.phpdebugbar-fa-mobile-phone:before,.phpdebugbar-fa-mobile:before{content:"\f10b"}.phpdebugbar-fa-circle-o:before{content:"\f10c"}.phpdebugbar-fa-quote-left:before{content:"\f10d"}.phpdebugbar-fa-quote-right:before{content:"\f10e"}.phpdebugbar-fa-spinner:before{content:"\f110"}.phpdebugbar-fa-circle:before{content:"\f111"}.phpdebugbar-fa-mail-reply:before,.phpdebugbar-fa-reply:before{content:"\f112"}.phpdebugbar-fa-github-alt:before{content:"\f113"}.phpdebugbar-fa-folder-o:before{content:"\f114"}.phpdebugbar-fa-folder-open-o:before{content:"\f115"}.phpdebugbar-fa-smile-o:before{content:"\f118"}.phpdebugbar-fa-frown-o:before{content:"\f119"}.phpdebugbar-fa-meh-o:before{content:"\f11a"}.phpdebugbar-fa-gamepad:before{content:"\f11b"}.phpdebugbar-fa-keyboard-o:before{content:"\f11c"}.phpdebugbar-fa-flag-o:before{content:"\f11d"}.phpdebugbar-fa-flag-checkered:before{content:"\f11e"}.phpdebugbar-fa-terminal:before{content:"\f120"}.phpdebugbar-fa-code:before{content:"\f121"}.phpdebugbar-fa-mail-reply-all:before,.phpdebugbar-fa-reply-all:before{content:"\f122"}.phpdebugbar-fa-star-half-empty:before,.phpdebugbar-fa-star-half-full:before,.phpdebugbar-fa-star-half-o:before{content:"\f123"}.phpdebugbar-fa-location-arrow:before{content:"\f124"}.phpdebugbar-fa-crop:before{content:"\f125"}.phpdebugbar-fa-code-fork:before{content:"\f126"}.phpdebugbar-fa-unlink:before,.phpdebugbar-fa-chain-broken:before{content:"\f127"}.phpdebugbar-fa-question:before{content:"\f128"}.phpdebugbar-fa-info:before{content:"\f129"}.phpdebugbar-fa-exclamation:before{content:"\f12a"}.phpdebugbar-fa-superscript:before{content:"\f12b"}.phpdebugbar-fa-subscript:before{content:"\f12c"}.phpdebugbar-fa-eraser:before{content:"\f12d"}.phpdebugbar-fa-puzzle-piece:before{content:"\f12e"}.phpdebugbar-fa-microphone:before{content:"\f130"}.phpdebugbar-fa-microphone-slash:before{content:"\f131"}.phpdebugbar-fa-shield:before{content:"\f132"}.phpdebugbar-fa-calendar-o:before{content:"\f133"}.phpdebugbar-fa-fire-extinguisher:before{content:"\f134"}.phpdebugbar-fa-rocket:before{content:"\f135"}.phpdebugbar-fa-maxcdn:before{content:"\f136"}.phpdebugbar-fa-chevron-circle-left:before{content:"\f137"}.phpdebugbar-fa-chevron-circle-right:before{content:"\f138"}.phpdebugbar-fa-chevron-circle-up:before{content:"\f139"}.phpdebugbar-fa-chevron-circle-down:before{content:"\f13a"}.phpdebugbar-fa-html5:before{content:"\f13b"}.phpdebugbar-fa-css3:before{content:"\f13c"}.phpdebugbar-fa-anchor:before{content:"\f13d"}.phpdebugbar-fa-unlock-alt:before{content:"\f13e"}.phpdebugbar-fa-bullseye:before{content:"\f140"}.phpdebugbar-fa-ellipsis-h:before{content:"\f141"}.phpdebugbar-fa-ellipsis-v:before{content:"\f142"}.phpdebugbar-fa-rss-square:before{content:"\f143"}.phpdebugbar-fa-play-circle:before{content:"\f144"}.phpdebugbar-fa-ticket:before{content:"\f145"}.phpdebugbar-fa-minus-square:before{content:"\f146"}.phpdebugbar-fa-minus-square-o:before{content:"\f147"}.phpdebugbar-fa-level-up:before{content:"\f148"}.phpdebugbar-fa-level-down:before{content:"\f149"}.phpdebugbar-fa-check-square:before{content:"\f14a"}.phpdebugbar-fa-pencil-square:before{content:"\f14b"}.phpdebugbar-fa-external-link-square:before{content:"\f14c"}.phpdebugbar-fa-share-square:before{content:"\f14d"}.phpdebugbar-fa-compass:before{content:"\f14e"}.phpdebugbar-fa-toggle-down:before,.phpdebugbar-fa-caret-square-o-down:before{content:"\f150"}.phpdebugbar-fa-toggle-up:before,.phpdebugbar-fa-caret-square-o-up:before{content:"\f151"}.phpdebugbar-fa-toggle-right:before,.phpdebugbar-fa-caret-square-o-right:before{content:"\f152"}.phpdebugbar-fa-euro:before,.phpdebugbar-fa-eur:before{content:"\f153"}.phpdebugbar-fa-gbp:before{content:"\f154"}.phpdebugbar-fa-dollar:before,.phpdebugbar-fa-usd:before{content:"\f155"}.phpdebugbar-fa-rupee:before,.phpdebugbar-fa-inr:before{content:"\f156"}.phpdebugbar-fa-cny:before,.phpdebugbar-fa-rmb:before,.phpdebugbar-fa-yen:before,.phpdebugbar-fa-jpy:before{content:"\f157"}.phpdebugbar-fa-ruble:before,.phpdebugbar-fa-rouble:before,.phpdebugbar-fa-rub:before{content:"\f158"}.phpdebugbar-fa-won:before,.phpdebugbar-fa-krw:before{content:"\f159"}.phpdebugbar-fa-bitcoin:before,.phpdebugbar-fa-btc:before{content:"\f15a"}.phpdebugbar-fa-file:before{content:"\f15b"}.phpdebugbar-fa-file-text:before{content:"\f15c"}.phpdebugbar-fa-sort-alpha-asc:before{content:"\f15d"}.phpdebugbar-fa-sort-alpha-desc:before{content:"\f15e"}.phpdebugbar-fa-sort-amount-asc:before{content:"\f160"}.phpdebugbar-fa-sort-amount-desc:before{content:"\f161"}.phpdebugbar-fa-sort-numeric-asc:before{content:"\f162"}.phpdebugbar-fa-sort-numeric-desc:before{content:"\f163"}.phpdebugbar-fa-thumbs-up:before{content:"\f164"}.phpdebugbar-fa-thumbs-down:before{content:"\f165"}.phpdebugbar-fa-youtube-square:before{content:"\f166"}.phpdebugbar-fa-youtube:before{content:"\f167"}.phpdebugbar-fa-xing:before{content:"\f168"}.phpdebugbar-fa-xing-square:before{content:"\f169"}.phpdebugbar-fa-youtube-play:before{content:"\f16a"}.phpdebugbar-fa-dropbox:before{content:"\f16b"}.phpdebugbar-fa-stack-overflow:before{content:"\f16c"}.phpdebugbar-fa-instagram:before{content:"\f16d"}.phpdebugbar-fa-flickr:before{content:"\f16e"}.phpdebugbar-fa-adn:before{content:"\f170"}.phpdebugbar-fa-bitbucket:before{content:"\f171"}.phpdebugbar-fa-bitbucket-square:before{content:"\f172"}.phpdebugbar-fa-tumblr:before{content:"\f173"}.phpdebugbar-fa-tumblr-square:before{content:"\f174"}.phpdebugbar-fa-long-arrow-down:before{content:"\f175"}.phpdebugbar-fa-long-arrow-up:before{content:"\f176"}.phpdebugbar-fa-long-arrow-left:before{content:"\f177"}.phpdebugbar-fa-long-arrow-right:before{content:"\f178"}.phpdebugbar-fa-apple:before{content:"\f179"}.phpdebugbar-fa-windows:before{content:"\f17a"}.phpdebugbar-fa-android:before{content:"\f17b"}.phpdebugbar-fa-linux:before{content:"\f17c"}.phpdebugbar-fa-dribbble:before{content:"\f17d"}.phpdebugbar-fa-skype:before{content:"\f17e"}.phpdebugbar-fa-foursquare:before{content:"\f180"}.phpdebugbar-fa-trello:before{content:"\f181"}.phpdebugbar-fa-female:before{content:"\f182"}.phpdebugbar-fa-male:before{content:"\f183"}.phpdebugbar-fa-gittip:before,.phpdebugbar-fa-gratipay:before{content:"\f184"}.phpdebugbar-fa-sun-o:before{content:"\f185"}.phpdebugbar-fa-moon-o:before{content:"\f186"}.phpdebugbar-fa-archive:before{content:"\f187"}.phpdebugbar-fa-bug:before{content:"\f188"}.phpdebugbar-fa-vk:before{content:"\f189"}.phpdebugbar-fa-weibo:before{content:"\f18a"}.phpdebugbar-fa-renren:before{content:"\f18b"}.phpdebugbar-fa-pagelines:before{content:"\f18c"}.phpdebugbar-fa-stack-exchange:before{content:"\f18d"}.phpdebugbar-fa-arrow-circle-o-right:before{content:"\f18e"}.phpdebugbar-fa-arrow-circle-o-left:before{content:"\f190"}.phpdebugbar-fa-toggle-left:before,.phpdebugbar-fa-caret-square-o-left:before{content:"\f191"}.phpdebugbar-fa-dot-circle-o:before{content:"\f192"}.phpdebugbar-fa-wheelchair:before{content:"\f193"}.phpdebugbar-fa-vimeo-square:before{content:"\f194"}.phpdebugbar-fa-turkish-lira:before,.phpdebugbar-fa-try:before{content:"\f195"}.phpdebugbar-fa-plus-square-o:before{content:"\f196"}.phpdebugbar-fa-space-shuttle:before{content:"\f197"}.phpdebugbar-fa-slack:before{content:"\f198"}.phpdebugbar-fa-envelope-square:before{content:"\f199"}.phpdebugbar-fa-wordpress:before{content:"\f19a"}.phpdebugbar-fa-openid:before{content:"\f19b"}.phpdebugbar-fa-institution:before,.phpdebugbar-fa-bank:before,.phpdebugbar-fa-university:before{content:"\f19c"}.phpdebugbar-fa-mortar-board:before,.phpdebugbar-fa-graduation-cap:before{content:"\f19d"}.phpdebugbar-fa-yahoo:before{content:"\f19e"}.phpdebugbar-fa-google:before{content:"\f1a0"}.phpdebugbar-fa-reddit:before{content:"\f1a1"}.phpdebugbar-fa-reddit-square:before{content:"\f1a2"}.phpdebugbar-fa-stumbleupon-circle:before{content:"\f1a3"}.phpdebugbar-fa-stumbleupon:before{content:"\f1a4"}.phpdebugbar-fa-delicious:before{content:"\f1a5"}.phpdebugbar-fa-digg:before{content:"\f1a6"}.phpdebugbar-fa-pied-piper-pp:before{content:"\f1a7"}.phpdebugbar-fa-pied-piper-alt:before{content:"\f1a8"}.phpdebugbar-fa-drupal:before{content:"\f1a9"}.phpdebugbar-fa-joomla:before{content:"\f1aa"}.phpdebugbar-fa-language:before{content:"\f1ab"}.phpdebugbar-fa-fax:before{content:"\f1ac"}.phpdebugbar-fa-building:before{content:"\f1ad"}.phpdebugbar-fa-child:before{content:"\f1ae"}.phpdebugbar-fa-paw:before{content:"\f1b0"}.phpdebugbar-fa-spoon:before{content:"\f1b1"}.phpdebugbar-fa-cube:before{content:"\f1b2"}.phpdebugbar-fa-cubes:before{content:"\f1b3"}.phpdebugbar-fa-behance:before{content:"\f1b4"}.phpdebugbar-fa-behance-square:before{content:"\f1b5"}.phpdebugbar-fa-steam:before{content:"\f1b6"}.phpdebugbar-fa-steam-square:before{content:"\f1b7"}.phpdebugbar-fa-recycle:before{content:"\f1b8"}.phpdebugbar-fa-automobile:before,.phpdebugbar-fa-car:before{content:"\f1b9"}.phpdebugbar-fa-cab:before,.phpdebugbar-fa-taxi:before{content:"\f1ba"}.phpdebugbar-fa-tree:before{content:"\f1bb"}.phpdebugbar-fa-spotify:before{content:"\f1bc"}.phpdebugbar-fa-deviantart:before{content:"\f1bd"}.phpdebugbar-fa-soundcloud:before{content:"\f1be"}.phpdebugbar-fa-database:before{content:"\f1c0"}.phpdebugbar-fa-file-pdf-o:before{content:"\f1c1"}.phpdebugbar-fa-file-word-o:before{content:"\f1c2"}.phpdebugbar-fa-file-excel-o:before{content:"\f1c3"}.phpdebugbar-fa-file-powerpoint-o:before{content:"\f1c4"}.phpdebugbar-fa-file-photo-o:before,.phpdebugbar-fa-file-picture-o:before,.phpdebugbar-fa-file-image-o:before{content:"\f1c5"}.phpdebugbar-fa-file-zip-o:before,.phpdebugbar-fa-file-archive-o:before{content:"\f1c6"}.phpdebugbar-fa-file-sound-o:before,.phpdebugbar-fa-file-audio-o:before{content:"\f1c7"}.phpdebugbar-fa-file-movie-o:before,.phpdebugbar-fa-file-video-o:before{content:"\f1c8"}.phpdebugbar-fa-file-code-o:before{content:"\f1c9"}.phpdebugbar-fa-vine:before{content:"\f1ca"}.phpdebugbar-fa-codepen:before{content:"\f1cb"}.phpdebugbar-fa-jsfiddle:before{content:"\f1cc"}.phpdebugbar-fa-life-bouy:before,.phpdebugbar-fa-life-buoy:before,.phpdebugbar-fa-life-saver:before,.phpdebugbar-fa-support:before,.phpdebugbar-fa-life-ring:before{content:"\f1cd"}.phpdebugbar-fa-circle-o-notch:before{content:"\f1ce"}.phpdebugbar-fa-ra:before,.phpdebugbar-fa-resistance:before,.phpdebugbar-fa-rebel:before{content:"\f1d0"}.phpdebugbar-fa-ge:before,.phpdebugbar-fa-empire:before{content:"\f1d1"}.phpdebugbar-fa-git-square:before{content:"\f1d2"}.phpdebugbar-fa-git:before{content:"\f1d3"}.phpdebugbar-fa-y-combinator-square:before,.phpdebugbar-fa-yc-square:before,.phpdebugbar-fa-hacker-news:before{content:"\f1d4"}.phpdebugbar-fa-tencent-weibo:before{content:"\f1d5"}.phpdebugbar-fa-qq:before{content:"\f1d6"}.phpdebugbar-fa-wechat:before,.phpdebugbar-fa-weixin:before{content:"\f1d7"}.phpdebugbar-fa-send:before,.phpdebugbar-fa-paper-plane:before{content:"\f1d8"}.phpdebugbar-fa-send-o:before,.phpdebugbar-fa-paper-plane-o:before{content:"\f1d9"}.phpdebugbar-fa-history:before{content:"\f1da"}.phpdebugbar-fa-circle-thin:before{content:"\f1db"}.phpdebugbar-fa-header:before{content:"\f1dc"}.phpdebugbar-fa-paragraph:before{content:"\f1dd"}.phpdebugbar-fa-sliders:before{content:"\f1de"}.phpdebugbar-fa-share-alt:before{content:"\f1e0"}.phpdebugbar-fa-share-alt-square:before{content:"\f1e1"}.phpdebugbar-fa-bomb:before{content:"\f1e2"}.phpdebugbar-fa-soccer-ball-o:before,.phpdebugbar-fa-futbol-o:before{content:"\f1e3"}.phpdebugbar-fa-tty:before{content:"\f1e4"}.phpdebugbar-fa-binoculars:before{content:"\f1e5"}.phpdebugbar-fa-plug:before{content:"\f1e6"}.phpdebugbar-fa-slideshare:before{content:"\f1e7"}.phpdebugbar-fa-twitch:before{content:"\f1e8"}.phpdebugbar-fa-yelp:before{content:"\f1e9"}.phpdebugbar-fa-newspaper-o:before{content:"\f1ea"}.phpdebugbar-fa-wifi:before{content:"\f1eb"}.phpdebugbar-fa-calculator:before{content:"\f1ec"}.phpdebugbar-fa-paypal:before{content:"\f1ed"}.phpdebugbar-fa-google-wallet:before{content:"\f1ee"}.phpdebugbar-fa-cc-visa:before{content:"\f1f0"}.phpdebugbar-fa-cc-mastercard:before{content:"\f1f1"}.phpdebugbar-fa-cc-discover:before{content:"\f1f2"}.phpdebugbar-fa-cc-amex:before{content:"\f1f3"}.phpdebugbar-fa-cc-paypal:before{content:"\f1f4"}.phpdebugbar-fa-cc-stripe:before{content:"\f1f5"}.phpdebugbar-fa-bell-slash:before{content:"\f1f6"}.phpdebugbar-fa-bell-slash-o:before{content:"\f1f7"}.phpdebugbar-fa-trash:before{content:"\f1f8"}.phpdebugbar-fa-copyright:before{content:"\f1f9"}.phpdebugbar-fa-at:before{content:"\f1fa"}.phpdebugbar-fa-eyedropper:before{content:"\f1fb"}.phpdebugbar-fa-paint-brush:before{content:"\f1fc"}.phpdebugbar-fa-birthday-cake:before{content:"\f1fd"}.phpdebugbar-fa-area-chart:before{content:"\f1fe"}.phpdebugbar-fa-pie-chart:before{content:"\f200"}.phpdebugbar-fa-line-chart:before{content:"\f201"}.phpdebugbar-fa-lastfm:before{content:"\f202"}.phpdebugbar-fa-lastfm-square:before{content:"\f203"}.phpdebugbar-fa-toggle-off:before{content:"\f204"}.phpdebugbar-fa-toggle-on:before{content:"\f205"}.phpdebugbar-fa-bicycle:before{content:"\f206"}.phpdebugbar-fa-bus:before{content:"\f207"}.phpdebugbar-fa-ioxhost:before{content:"\f208"}.phpdebugbar-fa-angellist:before{content:"\f209"}.phpdebugbar-fa-cc:before{content:"\f20a"}.phpdebugbar-fa-shekel:before,.phpdebugbar-fa-sheqel:before,.phpdebugbar-fa-ils:before{content:"\f20b"}.phpdebugbar-fa-meanpath:before{content:"\f20c"}.phpdebugbar-fa-buysellads:before{content:"\f20d"}.phpdebugbar-fa-connectdevelop:before{content:"\f20e"}.phpdebugbar-fa-dashcube:before{content:"\f210"}.phpdebugbar-fa-forumbee:before{content:"\f211"}.phpdebugbar-fa-leanpub:before{content:"\f212"}.phpdebugbar-fa-sellsy:before{content:"\f213"}.phpdebugbar-fa-shirtsinbulk:before{content:"\f214"}.phpdebugbar-fa-simplybuilt:before{content:"\f215"}.phpdebugbar-fa-skyatlas:before{content:"\f216"}.phpdebugbar-fa-cart-plus:before{content:"\f217"}.phpdebugbar-fa-cart-arrow-down:before{content:"\f218"}.phpdebugbar-fa-diamond:before{content:"\f219"}.phpdebugbar-fa-ship:before{content:"\f21a"}.phpdebugbar-fa-user-secret:before{content:"\f21b"}.phpdebugbar-fa-motorcycle:before{content:"\f21c"}.phpdebugbar-fa-street-view:before{content:"\f21d"}.phpdebugbar-fa-heartbeat:before{content:"\f21e"}.phpdebugbar-fa-venus:before{content:"\f221"}.phpdebugbar-fa-mars:before{content:"\f222"}.phpdebugbar-fa-mercury:before{content:"\f223"}.phpdebugbar-fa-intersex:before,.phpdebugbar-fa-transgender:before{content:"\f224"}.phpdebugbar-fa-transgender-alt:before{content:"\f225"}.phpdebugbar-fa-venus-double:before{content:"\f226"}.phpdebugbar-fa-mars-double:before{content:"\f227"}.phpdebugbar-fa-venus-mars:before{content:"\f228"}.phpdebugbar-fa-mars-stroke:before{content:"\f229"}.phpdebugbar-fa-mars-stroke-v:before{content:"\f22a"}.phpdebugbar-fa-mars-stroke-h:before{content:"\f22b"}.phpdebugbar-fa-neuter:before{content:"\f22c"}.phpdebugbar-fa-genderless:before{content:"\f22d"}.phpdebugbar-fa-facebook-official:before{content:"\f230"}.phpdebugbar-fa-pinterest-p:before{content:"\f231"}.phpdebugbar-fa-whatsapp:before{content:"\f232"}.phpdebugbar-fa-server:before{content:"\f233"}.phpdebugbar-fa-user-plus:before{content:"\f234"}.phpdebugbar-fa-user-times:before{content:"\f235"}.phpdebugbar-fa-hotel:before,.phpdebugbar-fa-bed:before{content:"\f236"}.phpdebugbar-fa-viacoin:before{content:"\f237"}.phpdebugbar-fa-train:before{content:"\f238"}.phpdebugbar-fa-subway:before{content:"\f239"}.phpdebugbar-fa-medium:before{content:"\f23a"}.phpdebugbar-fa-yc:before,.phpdebugbar-fa-y-combinator:before{content:"\f23b"}.phpdebugbar-fa-optin-monster:before{content:"\f23c"}.phpdebugbar-fa-opencart:before{content:"\f23d"}.phpdebugbar-fa-expeditedssl:before{content:"\f23e"}.phpdebugbar-fa-battery-4:before,.phpdebugbar-fa-battery:before,.phpdebugbar-fa-battery-full:before{content:"\f240"}.phpdebugbar-fa-battery-3:before,.phpdebugbar-fa-battery-three-quarters:before{content:"\f241"}.phpdebugbar-fa-battery-2:before,.phpdebugbar-fa-battery-half:before{content:"\f242"}.phpdebugbar-fa-battery-1:before,.phpdebugbar-fa-battery-quarter:before{content:"\f243"}.phpdebugbar-fa-battery-0:before,.phpdebugbar-fa-battery-empty:before{content:"\f244"}.phpdebugbar-fa-mouse-pointer:before{content:"\f245"}.phpdebugbar-fa-i-cursor:before{content:"\f246"}.phpdebugbar-fa-object-group:before{content:"\f247"}.phpdebugbar-fa-object-ungroup:before{content:"\f248"}.phpdebugbar-fa-sticky-note:before{content:"\f249"}.phpdebugbar-fa-sticky-note-o:before{content:"\f24a"}.phpdebugbar-fa-cc-jcb:before{content:"\f24b"}.phpdebugbar-fa-cc-diners-club:before{content:"\f24c"}.phpdebugbar-fa-clone:before{content:"\f24d"}.phpdebugbar-fa-balance-scale:before{content:"\f24e"}.phpdebugbar-fa-hourglass-o:before{content:"\f250"}.phpdebugbar-fa-hourglass-1:before,.phpdebugbar-fa-hourglass-start:before{content:"\f251"}.phpdebugbar-fa-hourglass-2:before,.phpdebugbar-fa-hourglass-half:before{content:"\f252"}.phpdebugbar-fa-hourglass-3:before,.phpdebugbar-fa-hourglass-end:before{content:"\f253"}.phpdebugbar-fa-hourglass:before{content:"\f254"}.phpdebugbar-fa-hand-grab-o:before,.phpdebugbar-fa-hand-rock-o:before{content:"\f255"}.phpdebugbar-fa-hand-stop-o:before,.phpdebugbar-fa-hand-paper-o:before{content:"\f256"}.phpdebugbar-fa-hand-scissors-o:before{content:"\f257"}.phpdebugbar-fa-hand-lizard-o:before{content:"\f258"}.phpdebugbar-fa-hand-spock-o:before{content:"\f259"}.phpdebugbar-fa-hand-pointer-o:before{content:"\f25a"}.phpdebugbar-fa-hand-peace-o:before{content:"\f25b"}.phpdebugbar-fa-trademark:before{content:"\f25c"}.phpdebugbar-fa-registered:before{content:"\f25d"}.phpdebugbar-fa-creative-commons:before{content:"\f25e"}.phpdebugbar-fa-gg:before{content:"\f260"}.phpdebugbar-fa-gg-circle:before{content:"\f261"}.phpdebugbar-fa-tripadvisor:before{content:"\f262"}.phpdebugbar-fa-odnoklassniki:before{content:"\f263"}.phpdebugbar-fa-odnoklassniki-square:before{content:"\f264"}.phpdebugbar-fa-get-pocket:before{content:"\f265"}.phpdebugbar-fa-wikipedia-w:before{content:"\f266"}.phpdebugbar-fa-safari:before{content:"\f267"}.phpdebugbar-fa-chrome:before{content:"\f268"}.phpdebugbar-fa-firefox:before{content:"\f269"}.phpdebugbar-fa-opera:before{content:"\f26a"}.phpdebugbar-fa-internet-explorer:before{content:"\f26b"}.phpdebugbar-fa-tv:before,.phpdebugbar-fa-television:before{content:"\f26c"}.phpdebugbar-fa-contao:before{content:"\f26d"}.phpdebugbar-fa-500px:before{content:"\f26e"}.phpdebugbar-fa-amazon:before{content:"\f270"}.phpdebugbar-fa-calendar-plus-o:before{content:"\f271"}.phpdebugbar-fa-calendar-minus-o:before{content:"\f272"}.phpdebugbar-fa-calendar-times-o:before{content:"\f273"}.phpdebugbar-fa-calendar-check-o:before{content:"\f274"}.phpdebugbar-fa-industry:before{content:"\f275"}.phpdebugbar-fa-map-pin:before{content:"\f276"}.phpdebugbar-fa-map-signs:before{content:"\f277"}.phpdebugbar-fa-map-o:before{content:"\f278"}.phpdebugbar-fa-map:before{content:"\f279"}.phpdebugbar-fa-commenting:before{content:"\f27a"}.phpdebugbar-fa-commenting-o:before{content:"\f27b"}.phpdebugbar-fa-houzz:before{content:"\f27c"}.phpdebugbar-fa-vimeo:before{content:"\f27d"}.phpdebugbar-fa-black-tie:before{content:"\f27e"}.phpdebugbar-fa-fonticons:before{content:"\f280"}.phpdebugbar-fa-reddit-alien:before{content:"\f281"}.phpdebugbar-fa-edge:before{content:"\f282"}.phpdebugbar-fa-credit-card-alt:before{content:"\f283"}.phpdebugbar-fa-codiepie:before{content:"\f284"}.phpdebugbar-fa-modx:before{content:"\f285"}.phpdebugbar-fa-fort-awesome:before{content:"\f286"}.phpdebugbar-fa-usb:before{content:"\f287"}.phpdebugbar-fa-product-hunt:before{content:"\f288"}.phpdebugbar-fa-mixcloud:before{content:"\f289"}.phpdebugbar-fa-scribd:before{content:"\f28a"}.phpdebugbar-fa-pause-circle:before{content:"\f28b"}.phpdebugbar-fa-pause-circle-o:before{content:"\f28c"}.phpdebugbar-fa-stop-circle:before{content:"\f28d"}.phpdebugbar-fa-stop-circle-o:before{content:"\f28e"}.phpdebugbar-fa-shopping-bag:before{content:"\f290"}.phpdebugbar-fa-shopping-basket:before{content:"\f291"}.phpdebugbar-fa-hashtag:before{content:"\f292"}.phpdebugbar-fa-bluetooth:before{content:"\f293"}.phpdebugbar-fa-bluetooth-b:before{content:"\f294"}.phpdebugbar-fa-percent:before{content:"\f295"}.phpdebugbar-fa-gitlab:before{content:"\f296"}.phpdebugbar-fa-wpbeginner:before{content:"\f297"}.phpdebugbar-fa-wpforms:before{content:"\f298"}.phpdebugbar-fa-envira:before{content:"\f299"}.phpdebugbar-fa-universal-access:before{content:"\f29a"}.phpdebugbar-fa-wheelchair-alt:before{content:"\f29b"}.phpdebugbar-fa-question-circle-o:before{content:"\f29c"}.phpdebugbar-fa-blind:before{content:"\f29d"}.phpdebugbar-fa-audio-description:before{content:"\f29e"}.phpdebugbar-fa-volume-control-phone:before{content:"\f2a0"}.phpdebugbar-fa-braille:before{content:"\f2a1"}.phpdebugbar-fa-assistive-listening-systems:before{content:"\f2a2"}.phpdebugbar-fa-asl-interpreting:before,.phpdebugbar-fa-american-sign-language-interpreting:before{content:"\f2a3"}.phpdebugbar-fa-deafness:before,.phpdebugbar-fa-hard-of-hearing:before,.phpdebugbar-fa-deaf:before{content:"\f2a4"}.phpdebugbar-fa-glide:before{content:"\f2a5"}.phpdebugbar-fa-glide-g:before{content:"\f2a6"}.phpdebugbar-fa-signing:before,.phpdebugbar-fa-sign-language:before{content:"\f2a7"}.phpdebugbar-fa-low-vision:before{content:"\f2a8"}.phpdebugbar-fa-viadeo:before{content:"\f2a9"}.phpdebugbar-fa-viadeo-square:before{content:"\f2aa"}.phpdebugbar-fa-snapchat:before{content:"\f2ab"}.phpdebugbar-fa-snapchat-ghost:before{content:"\f2ac"}.phpdebugbar-fa-snapchat-square:before{content:"\f2ad"}.phpdebugbar-fa-pied-piper:before{content:"\f2ae"}.phpdebugbar-fa-first-order:before{content:"\f2b0"}.phpdebugbar-fa-yoast:before{content:"\f2b1"}.phpdebugbar-fa-themeisle:before{content:"\f2b2"}.phpdebugbar-fa-google-plus-circle:before,.phpdebugbar-fa-google-plus-official:before{content:"\f2b3"}.phpdebugbar-fa-fa:before,.phpdebugbar-fa-font-awesome:before{content:"\f2b4"}.phpdebugbar-fa-handshake-o:before{content:"\f2b5"}.phpdebugbar-fa-envelope-open:before{content:"\f2b6"}.phpdebugbar-fa-envelope-open-o:before{content:"\f2b7"}.phpdebugbar-fa-linode:before{content:"\f2b8"}.phpdebugbar-fa-address-book:before{content:"\f2b9"}.phpdebugbar-fa-address-book-o:before{content:"\f2ba"}.phpdebugbar-fa-vcard:before,.phpdebugbar-fa-address-card:before{content:"\f2bb"}.phpdebugbar-fa-vcard-o:before,.phpdebugbar-fa-address-card-o:before{content:"\f2bc"}.phpdebugbar-fa-user-circle:before{content:"\f2bd"}.phpdebugbar-fa-user-circle-o:before{content:"\f2be"}.phpdebugbar-fa-user-o:before{content:"\f2c0"}.phpdebugbar-fa-id-badge:before{content:"\f2c1"}.phpdebugbar-fa-drivers-license:before,.phpdebugbar-fa-id-card:before{content:"\f2c2"}.phpdebugbar-fa-drivers-license-o:before,.phpdebugbar-fa-id-card-o:before{content:"\f2c3"}.phpdebugbar-fa-quora:before{content:"\f2c4"}.phpdebugbar-fa-free-code-camp:before{content:"\f2c5"}.phpdebugbar-fa-telegram:before{content:"\f2c6"}.phpdebugbar-fa-thermometer-4:before,.phpdebugbar-fa-thermometer:before,.phpdebugbar-fa-thermometer-full:before{content:"\f2c7"}.phpdebugbar-fa-thermometer-3:before,.phpdebugbar-fa-thermometer-three-quarters:before{content:"\f2c8"}.phpdebugbar-fa-thermometer-2:before,.phpdebugbar-fa-thermometer-half:before{content:"\f2c9"}.phpdebugbar-fa-thermometer-1:before,.phpdebugbar-fa-thermometer-quarter:before{content:"\f2ca"}.phpdebugbar-fa-thermometer-0:before,.phpdebugbar-fa-thermometer-empty:before{content:"\f2cb"}.phpdebugbar-fa-shower:before{content:"\f2cc"}.phpdebugbar-fa-bathtub:before,.phpdebugbar-fa-s15:before,.phpdebugbar-fa-bath:before{content:"\f2cd"}.phpdebugbar-fa-podcast:before{content:"\f2ce"}.phpdebugbar-fa-window-maximize:before{content:"\f2d0"}.phpdebugbar-fa-window-minimize:before{content:"\f2d1"}.phpdebugbar-fa-window-restore:before{content:"\f2d2"}.phpdebugbar-fa-times-rectangle:before,.phpdebugbar-fa-window-close:before{content:"\f2d3"}.phpdebugbar-fa-times-rectangle-o:before,.phpdebugbar-fa-window-close-o:before{content:"\f2d4"}.phpdebugbar-fa-bandcamp:before{content:"\f2d5"}.phpdebugbar-fa-grav:before{content:"\f2d6"}.phpdebugbar-fa-etsy:before{content:"\f2d7"}.phpdebugbar-fa-imdb:before{content:"\f2d8"}.phpdebugbar-fa-ravelry:before{content:"\f2d9"}.phpdebugbar-fa-eercast:before{content:"\f2da"}.phpdebugbar-fa-microchip:before{content:"\f2db"}.phpdebugbar-fa-snowflake-o:before{content:"\f2dc"}.phpdebugbar-fa-superpowers:before{content:"\f2dd"}.phpdebugbar-fa-wpexplorer:before{content:"\f2de"}.phpdebugbar-fa-meetup:before{content:"\f2e0"}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto} diff --git a/vendor/maximebf/debugbar/src/DebugBar/Resources/vendor/font-awesome/fonts/FontAwesome.otf b/vendor/maximebf/debugbar/src/DebugBar/Resources/vendor/font-awesome/fonts/FontAwesome.otf deleted file mode 100644 index 401ec0f36e4f73b8efa40bd6f604fe80d286db70..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 134808 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 diff --git a/vendor/maximebf/debugbar/src/DebugBar/Resources/vendor/font-awesome/fonts/fontawesome-webfont.eot b/vendor/maximebf/debugbar/src/DebugBar/Resources/vendor/font-awesome/fonts/fontawesome-webfont.eot deleted file mode 100644 index e9f60ca953f93e35eab4108bd414bc02ddcf3928..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 165742 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 G*yFsbY~cLNXLP73aA74Mq6M9f^&YV`isWW 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

    5q!RY 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 - - - -Created by FontForge 20120731 at Mon Oct 24 17:37:40 2016 - By ,,, -Copyright Dave Gandy 2016. All rights reserved. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/vendor/maximebf/debugbar/src/DebugBar/Resources/vendor/font-awesome/fonts/fontawesome-webfont.ttf b/vendor/maximebf/debugbar/src/DebugBar/Resources/vendor/font-awesome/fonts/fontawesome-webfont.ttf deleted file mode 100644 index 35acda2fa1196aad98c2adf4378a7611dd713aa3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 165548 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 z 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

    ","
    "],area:[1,"",""],param:[1,"",""],thead:[1,"","
    "],tr:[2,"","
    "],col:[2,"","
    "],td:[3,"","
    "],_default:l.htmlSerialize?[0,"",""]:[1,"X
    ","
    "]};da.optgroup=da.option,da.tbody=da.tfoot=da.colgroup=da.caption=da.thead,da.th=da.td;function ea(a,b){var c,d,e=0,f="undefined"!=typeof a.getElementsByTagName?a.getElementsByTagName(b||"*"):"undefined"!=typeof a.querySelectorAll?a.querySelectorAll(b||"*"):void 0;if(!f)for(f=[],c=a.childNodes||a;null!=(d=c[e]);e++)!b||n.nodeName(d,b)?f.push(d):n.merge(f,ea(d,b));return void 0===b||b&&n.nodeName(a,b)?n.merge([a],f):f}function fa(a,b){for(var c,d=0;null!=(c=a[d]);d++)n._data(c,"globalEval",!b||n._data(b[d],"globalEval"))}var ga=/<|&#?\w+;/,ha=/r;r++)if(g=a[r],g||0===g)if("object"===n.type(g))n.merge(q,g.nodeType?[g]:g);else if(ga.test(g)){i=i||p.appendChild(b.createElement("div")),j=($.exec(g)||["",""])[1].toLowerCase(),m=da[j]||da._default,i.innerHTML=m[1]+n.htmlPrefilter(g)+m[2],f=m[0];while(f--)i=i.lastChild;if(!l.leadingWhitespace&&aa.test(g)&&q.push(b.createTextNode(aa.exec(g)[0])),!l.tbody){g="table"!==j||ha.test(g)?""!==m[1]||ha.test(g)?0:i:i.firstChild,f=g&&g.childNodes.length;while(f--)n.nodeName(k=g.childNodes[f],"tbody")&&!k.childNodes.length&&g.removeChild(k)}n.merge(q,i.childNodes),i.textContent="";while(i.firstChild)i.removeChild(i.firstChild);i=p.lastChild}else q.push(b.createTextNode(g));i&&p.removeChild(i),l.appendChecked||n.grep(ea(q,"input"),ia),r=0;while(g=q[r++])if(d&&n.inArray(g,d)>-1)e&&e.push(g);else if(h=n.contains(g.ownerDocument,g),i=ea(p.appendChild(g),"script"),h&&fa(i),c){f=0;while(g=i[f++])_.test(g.type||"")&&c.push(g)}return i=null,p}!function(){var b,c,e=d.createElement("div");for(b in{submit:!0,change:!0,focusin:!0})c="on"+b,(l[b]=c in a)||(e.setAttribute(c,"t"),l[b]=e.attributes[c].expando===!1);e=null}();var ka=/^(?:input|select|textarea)$/i,la=/^key/,ma=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,na=/^(?:focusinfocus|focusoutblur)$/,oa=/^([^.]*)(?:\.(.+)|)/;function pa(){return!0}function qa(){return!1}function ra(){try{return d.activeElement}catch(a){}}function sa(a,b,c,d,e,f){var g,h;if("object"==typeof b){"string"!=typeof c&&(d=d||c,c=void 0);for(h in b)sa(a,h,c,d,b[h],f);return a}if(null==d&&null==e?(e=c,d=c=void 0):null==e&&("string"==typeof c?(e=d,d=void 0):(e=d,d=c,c=void 0)),e===!1)e=qa;else if(!e)return a;return 1===f&&(g=e,e=function(a){return n().off(a),g.apply(this,arguments)},e.guid=g.guid||(g.guid=n.guid++)),a.each(function(){n.event.add(this,b,e,d,c)})}n.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,o,p,q,r=n._data(a);if(r){c.handler&&(i=c,c=i.handler,e=i.selector),c.guid||(c.guid=n.guid++),(g=r.events)||(g=r.events={}),(k=r.handle)||(k=r.handle=function(a){return"undefined"==typeof n||a&&n.event.triggered===a.type?void 0:n.event.dispatch.apply(k.elem,arguments)},k.elem=a),b=(b||"").match(G)||[""],h=b.length;while(h--)f=oa.exec(b[h])||[],o=q=f[1],p=(f[2]||"").split(".").sort(),o&&(j=n.event.special[o]||{},o=(e?j.delegateType:j.bindType)||o,j=n.event.special[o]||{},l=n.extend({type:o,origType:q,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&n.expr.match.needsContext.test(e),namespace:p.join(".")},i),(m=g[o])||(m=g[o]=[],m.delegateCount=0,j.setup&&j.setup.call(a,d,p,k)!==!1||(a.addEventListener?a.addEventListener(o,k,!1):a.attachEvent&&a.attachEvent("on"+o,k))),j.add&&(j.add.call(a,l),l.handler.guid||(l.handler.guid=c.guid)),e?m.splice(m.delegateCount++,0,l):m.push(l),n.event.global[o]=!0);a=null}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,o,p,q,r=n.hasData(a)&&n._data(a);if(r&&(k=r.events)){b=(b||"").match(G)||[""],j=b.length;while(j--)if(h=oa.exec(b[j])||[],o=q=h[1],p=(h[2]||"").split(".").sort(),o){l=n.event.special[o]||{},o=(d?l.delegateType:l.bindType)||o,m=k[o]||[],h=h[2]&&new RegExp("(^|\\.)"+p.join("\\.(?:.*\\.|)")+"(\\.|$)"),i=f=m.length;while(f--)g=m[f],!e&&q!==g.origType||c&&c.guid!==g.guid||h&&!h.test(g.namespace)||d&&d!==g.selector&&("**"!==d||!g.selector)||(m.splice(f,1),g.selector&&m.delegateCount--,l.remove&&l.remove.call(a,g));i&&!m.length&&(l.teardown&&l.teardown.call(a,p,r.handle)!==!1||n.removeEvent(a,o,r.handle),delete k[o])}else for(o in k)n.event.remove(a,o+b[j],c,d,!0);n.isEmptyObject(k)&&(delete r.handle,n._removeData(a,"events"))}},trigger:function(b,c,e,f){var g,h,i,j,l,m,o,p=[e||d],q=k.call(b,"type")?b.type:b,r=k.call(b,"namespace")?b.namespace.split("."):[];if(i=m=e=e||d,3!==e.nodeType&&8!==e.nodeType&&!na.test(q+n.event.triggered)&&(q.indexOf(".")>-1&&(r=q.split("."),q=r.shift(),r.sort()),h=q.indexOf(":")<0&&"on"+q,b=b[n.expando]?b:new n.Event(q,"object"==typeof b&&b),b.isTrigger=f?2:3,b.namespace=r.join("."),b.rnamespace=b.namespace?new RegExp("(^|\\.)"+r.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,b.result=void 0,b.target||(b.target=e),c=null==c?[b]:n.makeArray(c,[b]),l=n.event.special[q]||{},f||!l.trigger||l.trigger.apply(e,c)!==!1)){if(!f&&!l.noBubble&&!n.isWindow(e)){for(j=l.delegateType||q,na.test(j+q)||(i=i.parentNode);i;i=i.parentNode)p.push(i),m=i;m===(e.ownerDocument||d)&&p.push(m.defaultView||m.parentWindow||a)}o=0;while((i=p[o++])&&!b.isPropagationStopped())b.type=o>1?j:l.bindType||q,g=(n._data(i,"events")||{})[b.type]&&n._data(i,"handle"),g&&g.apply(i,c),g=h&&i[h],g&&g.apply&&M(i)&&(b.result=g.apply(i,c),b.result===!1&&b.preventDefault());if(b.type=q,!f&&!b.isDefaultPrevented()&&(!l._default||l._default.apply(p.pop(),c)===!1)&&M(e)&&h&&e[q]&&!n.isWindow(e)){m=e[h],m&&(e[h]=null),n.event.triggered=q;try{e[q]()}catch(s){}n.event.triggered=void 0,m&&(e[h]=m)}return b.result}},dispatch:function(a){a=n.event.fix(a);var b,c,d,f,g,h=[],i=e.call(arguments),j=(n._data(this,"events")||{})[a.type]||[],k=n.event.special[a.type]||{};if(i[0]=a,a.delegateTarget=this,!k.preDispatch||k.preDispatch.call(this,a)!==!1){h=n.event.handlers.call(this,a,j),b=0;while((f=h[b++])&&!a.isPropagationStopped()){a.currentTarget=f.elem,c=0;while((g=f.handlers[c++])&&!a.isImmediatePropagationStopped())a.rnamespace&&!a.rnamespace.test(g.namespace)||(a.handleObj=g,a.data=g.data,d=((n.event.special[g.origType]||{}).handle||g.handler).apply(f.elem,i),void 0!==d&&(a.result=d)===!1&&(a.preventDefault(),a.stopPropagation()))}return k.postDispatch&&k.postDispatch.call(this,a),a.result}},handlers:function(a,b){var c,d,e,f,g=[],h=b.delegateCount,i=a.target;if(h&&i.nodeType&&("click"!==a.type||isNaN(a.button)||a.button<1))for(;i!=this;i=i.parentNode||this)if(1===i.nodeType&&(i.disabled!==!0||"click"!==a.type)){for(d=[],c=0;h>c;c++)f=b[c],e=f.selector+" ",void 0===d[e]&&(d[e]=f.needsContext?n(e,this).index(i)>-1:n.find(e,this,null,[i]).length),d[e]&&d.push(f);d.length&&g.push({elem:i,handlers:d})}return h]","i"),va=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:-]+)[^>]*)\/>/gi,wa=/\s*$/g,Aa=ca(d),Ba=Aa.appendChild(d.createElement("div"));function Ca(a,b){return n.nodeName(a,"table")&&n.nodeName(11!==b.nodeType?b:b.firstChild,"tr")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function Da(a){return a.type=(null!==n.find.attr(a,"type"))+"/"+a.type,a}function Ea(a){var b=ya.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function Fa(a,b){if(1===b.nodeType&&n.hasData(a)){var c,d,e,f=n._data(a),g=n._data(b,f),h=f.events;if(h){delete g.handle,g.events={};for(c in h)for(d=0,e=h[c].length;e>d;d++)n.event.add(b,c,h[c][d])}g.data&&(g.data=n.extend({},g.data))}}function Ga(a,b){var c,d,e;if(1===b.nodeType){if(c=b.nodeName.toLowerCase(),!l.noCloneEvent&&b[n.expando]){e=n._data(b);for(d in e.events)n.removeEvent(b,d,e.handle);b.removeAttribute(n.expando)}"script"===c&&b.text!==a.text?(Da(b).text=a.text,Ea(b)):"object"===c?(b.parentNode&&(b.outerHTML=a.outerHTML),l.html5Clone&&a.innerHTML&&!n.trim(b.innerHTML)&&(b.innerHTML=a.innerHTML)):"input"===c&&Z.test(a.type)?(b.defaultChecked=b.checked=a.checked,b.value!==a.value&&(b.value=a.value)):"option"===c?b.defaultSelected=b.selected=a.defaultSelected:"input"!==c&&"textarea"!==c||(b.defaultValue=a.defaultValue)}}function Ha(a,b,c,d){b=f.apply([],b);var e,g,h,i,j,k,m=0,o=a.length,p=o-1,q=b[0],r=n.isFunction(q);if(r||o>1&&"string"==typeof q&&!l.checkClone&&xa.test(q))return a.each(function(e){var f=a.eq(e);r&&(b[0]=q.call(this,e,f.html())),Ha(f,b,c,d)});if(o&&(k=ja(b,a[0].ownerDocument,!1,a,d),e=k.firstChild,1===k.childNodes.length&&(k=e),e||d)){for(i=n.map(ea(k,"script"),Da),h=i.length;o>m;m++)g=k,m!==p&&(g=n.clone(g,!0,!0),h&&n.merge(i,ea(g,"script"))),c.call(a[m],g,m);if(h)for(j=i[i.length-1].ownerDocument,n.map(i,Ea),m=0;h>m;m++)g=i[m],_.test(g.type||"")&&!n._data(g,"globalEval")&&n.contains(j,g)&&(g.src?n._evalUrl&&n._evalUrl(g.src):n.globalEval((g.text||g.textContent||g.innerHTML||"").replace(za,"")));k=e=null}return a}function Ia(a,b,c){for(var d,e=b?n.filter(b,a):a,f=0;null!=(d=e[f]);f++)c||1!==d.nodeType||n.cleanData(ea(d)),d.parentNode&&(c&&n.contains(d.ownerDocument,d)&&fa(ea(d,"script")),d.parentNode.removeChild(d));return a}n.extend({htmlPrefilter:function(a){return a.replace(va,"<$1>")},clone:function(a,b,c){var d,e,f,g,h,i=n.contains(a.ownerDocument,a);if(l.html5Clone||n.isXMLDoc(a)||!ua.test("<"+a.nodeName+">")?f=a.cloneNode(!0):(Ba.innerHTML=a.outerHTML,Ba.removeChild(f=Ba.firstChild)),!(l.noCloneEvent&&l.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||n.isXMLDoc(a)))for(d=ea(f),h=ea(a),g=0;null!=(e=h[g]);++g)d[g]&&Ga(e,d[g]);if(b)if(c)for(h=h||ea(a),d=d||ea(f),g=0;null!=(e=h[g]);g++)Fa(e,d[g]);else Fa(a,f);return d=ea(f,"script"),d.length>0&&fa(d,!i&&ea(a,"script")),d=h=e=null,f},cleanData:function(a,b){for(var d,e,f,g,h=0,i=n.expando,j=n.cache,k=l.attributes,m=n.event.special;null!=(d=a[h]);h++)if((b||M(d))&&(f=d[i],g=f&&j[f])){if(g.events)for(e in g.events)m[e]?n.event.remove(d,e):n.removeEvent(d,e,g.handle);j[f]&&(delete j[f],k||"undefined"==typeof d.removeAttribute?d[i]=void 0:d.removeAttribute(i),c.push(f))}}}),n.fn.extend({domManip:Ha,detach:function(a){return Ia(this,a,!0)},remove:function(a){return Ia(this,a)},text:function(a){return Y(this,function(a){return void 0===a?n.text(this):this.empty().append((this[0]&&this[0].ownerDocument||d).createTextNode(a))},null,a,arguments.length)},append:function(){return Ha(this,arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=Ca(this,a);b.appendChild(a)}})},prepend:function(){return Ha(this,arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=Ca(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return Ha(this,arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return Ha(this,arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},empty:function(){for(var a,b=0;null!=(a=this[b]);b++){1===a.nodeType&&n.cleanData(ea(a,!1));while(a.firstChild)a.removeChild(a.firstChild);a.options&&n.nodeName(a,"select")&&(a.options.length=0)}return this},clone:function(a,b){return a=null==a?!1:a,b=null==b?a:b,this.map(function(){return n.clone(this,a,b)})},html:function(a){return Y(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a)return 1===b.nodeType?b.innerHTML.replace(ta,""):void 0;if("string"==typeof a&&!wa.test(a)&&(l.htmlSerialize||!ua.test(a))&&(l.leadingWhitespace||!aa.test(a))&&!da[($.exec(a)||["",""])[1].toLowerCase()]){a=n.htmlPrefilter(a);try{for(;d>c;c++)b=this[c]||{},1===b.nodeType&&(n.cleanData(ea(b,!1)),b.innerHTML=a);b=0}catch(e){}}b&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(){var a=[];return Ha(this,arguments,function(b){var c=this.parentNode;n.inArray(this,a)<0&&(n.cleanData(ea(this)),c&&c.replaceChild(b,this))},a)}}),n.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){n.fn[a]=function(a){for(var c,d=0,e=[],f=n(a),h=f.length-1;h>=d;d++)c=d===h?this:this.clone(!0),n(f[d])[b](c),g.apply(e,c.get());return this.pushStack(e)}});var Ja,Ka={HTML:"block",BODY:"block"};function La(a,b){var c=n(b.createElement(a)).appendTo(b.body),d=n.css(c[0],"display");return c.detach(),d}function Ma(a){var b=d,c=Ka[a];return c||(c=La(a,b),"none"!==c&&c||(Ja=(Ja||n("

    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 d0mRO}xo^G_%I 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 SdSQM28?+M|D(2r_;{O0|uQ74} diff --git a/vendor/maximebf/debugbar/src/DebugBar/Resources/vendor/font-awesome/fonts/fontawesome-webfont.woff2 b/vendor/maximebf/debugbar/src/DebugBar/Resources/vendor/font-awesome/fonts/fontawesome-webfont.woff2 deleted file mode 100644 index 4d13fc60404b91e398a37200c4a77b645cfd9586..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 77160 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 diff --git a/vendor/maximebf/debugbar/src/DebugBar/Resources/vendor/highlightjs/highlight.pack.js b/vendor/maximebf/debugbar/src/DebugBar/Resources/vendor/highlightjs/highlight.pack.js deleted file mode 100644 index cf7215a6..00000000 --- a/vendor/maximebf/debugbar/src/DebugBar/Resources/vendor/highlightjs/highlight.pack.js +++ /dev/null @@ -1 +0,0 @@ -var hljs=new function(){function k(v){return v.replace(/&/gm,"&").replace(//gm,">")}function t(v){return v.nodeName.toLowerCase()}function i(w,x){var v=w&&w.exec(x);return v&&v.index==0}function d(v){return Array.prototype.map.call(v.childNodes,function(w){if(w.nodeType==3){return b.useBR?w.nodeValue.replace(/\n/g,""):w.nodeValue}if(t(w)=="br"){return"\n"}return d(w)}).join("")}function r(w){var v=(w.className+" "+(w.parentNode?w.parentNode.className:"")).split(/\s+/);v=v.map(function(x){return x.replace(/^language-/,"")});return v.filter(function(x){return j(x)||x=="no-highlight"})[0]}function o(x,y){var v={};for(var w in x){v[w]=x[w]}if(y){for(var w in y){v[w]=y[w]}}return v}function u(x){var v=[];(function w(y,z){for(var A=y.firstChild;A;A=A.nextSibling){if(A.nodeType==3){z+=A.nodeValue.length}else{if(t(A)=="br"){z+=1}else{if(A.nodeType==1){v.push({event:"start",offset:z,node:A});z=w(A,z);v.push({event:"stop",offset:z,node:A})}}}}return z})(x,0);return v}function q(w,y,C){var x=0;var F="";var z=[];function B(){if(!w.length||!y.length){return w.length?w:y}if(w[0].offset!=y[0].offset){return(w[0].offset"}function E(G){F+=""}function v(G){(G.event=="start"?A:E)(G.node)}while(w.length||y.length){var D=B();F+=k(C.substr(x,D[0].offset-x));x=D[0].offset;if(D==w){z.reverse().forEach(E);do{v(D.splice(0,1)[0]);D=B()}while(D==w&&D.length&&D[0].offset==x);z.reverse().forEach(A)}else{if(D[0].event=="start"){z.push(D[0].node)}else{z.pop()}v(D.splice(0,1)[0])}}return F+k(C.substr(x))}function m(y){function v(z){return(z&&z.source)||z}function w(A,z){return RegExp(v(A),"m"+(y.cI?"i":"")+(z?"g":""))}function x(D,C){if(D.compiled){return}D.compiled=true;D.k=D.k||D.bK;if(D.k){var z={};function E(G,F){if(y.cI){F=F.toLowerCase()}F.split(" ").forEach(function(H){var I=H.split("|");z[I[0]]=[G,I[1]?Number(I[1]):1]})}if(typeof D.k=="string"){E("keyword",D.k)}else{Object.keys(D.k).forEach(function(F){E(F,D.k[F])})}D.k=z}D.lR=w(D.l||/\b[A-Za-z0-9_]+\b/,true);if(C){if(D.bK){D.b=D.bK.split(" ").join("|")}if(!D.b){D.b=/\B|\b/}D.bR=w(D.b);if(!D.e&&!D.eW){D.e=/\B|\b/}if(D.e){D.eR=w(D.e)}D.tE=v(D.e)||"";if(D.eW&&C.tE){D.tE+=(D.e?"|":"")+C.tE}}if(D.i){D.iR=w(D.i)}if(D.r===undefined){D.r=1}if(!D.c){D.c=[]}var B=[];D.c.forEach(function(F){if(F.v){F.v.forEach(function(G){B.push(o(F,G))})}else{B.push(F=="self"?D:F)}});D.c=B;D.c.forEach(function(F){x(F,D)});if(D.starts){x(D.starts,C)}var A=D.c.map(function(F){return F.bK?"\\.?\\b("+F.b+")\\b\\.?":F.b}).concat([D.tE]).concat([D.i]).map(v).filter(Boolean);D.t=A.length?w(A.join("|"),true):{exec:function(F){return null}};D.continuation={}}x(y)}function c(S,L,J,R){function v(U,V){for(var T=0;T";U+=Z+'">';return U+X+Y}function N(){var U=k(C);if(!I.k){return U}var T="";var X=0;I.lR.lastIndex=0;var V=I.lR.exec(U);while(V){T+=U.substr(X,V.index-X);var W=E(I,V);if(W){H+=W[1];T+=w(W[0],V[0])}else{T+=V[0]}X=I.lR.lastIndex;V=I.lR.exec(U)}return T+U.substr(X)}function F(){if(I.sL&&!f[I.sL]){return k(C)}var T=I.sL?c(I.sL,C,true,I.continuation.top):g(C);if(I.r>0){H+=T.r}if(I.subLanguageMode=="continuous"){I.continuation.top=T.top}return w(T.language,T.value,false,true)}function Q(){return I.sL!==undefined?F():N()}function P(V,U){var T=V.cN?w(V.cN,"",true):"";if(V.rB){D+=T;C=""}else{if(V.eB){D+=k(U)+T;C=""}else{D+=T;C=U}}I=Object.create(V,{parent:{value:I}})}function G(T,X){C+=T;if(X===undefined){D+=Q();return 0}var V=v(X,I);if(V){D+=Q();P(V,X);return V.rB?0:X.length}var W=z(I,X);if(W){var U=I;if(!(U.rE||U.eE)){C+=X}D+=Q();do{if(I.cN){D+=""}H+=I.r;I=I.parent}while(I!=W.parent);if(U.eE){D+=k(X)}C="";if(W.starts){P(W.starts,"")}return U.rE?0:X.length}if(A(X,I)){throw new Error('Illegal lexeme "'+X+'" for mode "'+(I.cN||"")+'"')}C+=X;return X.length||1}var M=j(S);if(!M){throw new Error('Unknown language: "'+S+'"')}m(M);var I=R||M;var D="";for(var K=I;K!=M;K=K.parent){if(K.cN){D=w(K.cN,D,true)}}var C="";var H=0;try{var B,y,x=0;while(true){I.t.lastIndex=x;B=I.t.exec(L);if(!B){break}y=G(L.substr(x,B.index-x),B[0]);x=B.index+y}G(L.substr(x));for(var K=I;K.parent;K=K.parent){if(K.cN){D+=""}}return{r:H,value:D,language:S,top:I}}catch(O){if(O.message.indexOf("Illegal")!=-1){return{r:0,value:k(L)}}else{throw O}}}function g(y,x){x=x||b.languages||Object.keys(f);var v={r:0,value:k(y)};var w=v;x.forEach(function(z){if(!j(z)){return}var A=c(z,y,false);A.language=z;if(A.r>w.r){w=A}if(A.r>v.r){w=v;v=A}});if(w.language){v.second_best=w}return v}function h(v){if(b.tabReplace){v=v.replace(/^((<[^>]+>|\t)+)/gm,function(w,z,y,x){return z.replace(/\t/g,b.tabReplace)})}if(b.useBR){v=v.replace(/\n/g,"
    ")}return v}function p(z){var y=d(z);var A=r(z);if(A=="no-highlight"){return}var v=A?c(A,y,true):g(y);var w=u(z);if(w.length){var x=document.createElementNS("http://www.w3.org/1999/xhtml","pre");x.innerHTML=v.value;v.value=q(w,u(x),y)}v.value=h(v.value);z.innerHTML=v.value;z.className+=" hljs "+(!A&&v.language||"");z.result={language:v.language,re:v.r};if(v.second_best){z.second_best={language:v.second_best.language,re:v.second_best.r}}}var b={classPrefix:"hljs-",tabReplace:null,useBR:false,languages:undefined};function s(v){b=o(b,v)}function l(){if(l.called){return}l.called=true;var v=document.querySelectorAll("pre code");Array.prototype.forEach.call(v,p)}function a(){addEventListener("DOMContentLoaded",l,false);addEventListener("load",l,false)}var f={};var n={};function e(v,x){var w=f[v]=x(this);if(w.aliases){w.aliases.forEach(function(y){n[y]=v})}}function j(v){return f[v]||f[n[v]]}this.highlight=c;this.highlightAuto=g;this.fixMarkup=h;this.highlightBlock=p;this.configure=s;this.initHighlighting=l;this.initHighlightingOnLoad=a;this.registerLanguage=e;this.getLanguage=j;this.inherit=o;this.IR="[a-zA-Z][a-zA-Z0-9_]*";this.UIR="[a-zA-Z_][a-zA-Z0-9_]*";this.NR="\\b\\d+(\\.\\d+)?";this.CNR="(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)";this.BNR="\\b(0b[01]+)";this.RSR="!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~";this.BE={b:"\\\\[\\s\\S]",r:0};this.ASM={cN:"string",b:"'",e:"'",i:"\\n",c:[this.BE]};this.QSM={cN:"string",b:'"',e:'"',i:"\\n",c:[this.BE]};this.CLCM={cN:"comment",b:"//",e:"$"};this.CBLCLM={cN:"comment",b:"/\\*",e:"\\*/"};this.HCM={cN:"comment",b:"#",e:"$"};this.NM={cN:"number",b:this.NR,r:0};this.CNM={cN:"number",b:this.CNR,r:0};this.BNM={cN:"number",b:this.BNR,r:0};this.REGEXP_MODE={cN:"regexp",b:/\//,e:/\/[gim]*/,i:/\n/,c:[this.BE,{b:/\[/,e:/\]/,r:0,c:[this.BE]}]};this.TM={cN:"title",b:this.IR,r:0};this.UTM={cN:"title",b:this.UIR,r:0}}();hljs.registerLanguage("scilab",function(a){var b=[a.CNM,{cN:"string",b:"'|\"",e:"'|\"",c:[a.BE,{b:"''"}]}];return{k:{keyword:"abort break case clear catch continue do elseif else endfunction end for functionglobal if pause return resume select try then while%f %F %t %T %pi %eps %inf %nan %e %i %z %s",built_in:"abs and acos asin atan ceil cd chdir clearglobal cosh cos cumprod deff disp errorexec execstr exists exp eye gettext floor fprintf fread fsolve imag isdef isemptyisinfisnan isvector lasterror length load linspace list listfiles log10 log2 logmax min msprintf mclose mopen ones or pathconvert poly printf prod pwd rand realround sinh sin size gsort sprintf sqrt strcat strcmps tring sum system tanh tantype typename warning zeros matrix"},i:'("|#|/\\*|\\s+/\\w+)',c:[{cN:"function",bK:"function endfunction",e:"$",k:"function endfunction|10",c:[a.UTM,{cN:"params",b:"\\(",e:"\\)"},],},{cN:"transposed_variable",b:"[a-zA-Z_][a-zA-Z_0-9]*('+[\\.']*|[\\.']+)",e:"",r:0},{cN:"matrix",b:"\\[",e:"\\]'*[\\.']*",r:0,c:b},{cN:"comment",b:"//",e:"$"}].concat(b)}});hljs.registerLanguage("xml",function(a){var c="[A-Za-z0-9\\._:-]+";var d={b:/<\?(php)?(?!\w)/,e:/\?>/,sL:"php",subLanguageMode:"continuous"};var b={eW:true,i:/]+/}]}]}]};return{aliases:["html"],cI:true,c:[{cN:"doctype",b:"",r:10,c:[{b:"\\[",e:"\\]"}]},{cN:"comment",b:"",r:10},{cN:"cdata",b:"<\\!\\[CDATA\\[",e:"\\]\\]>",r:10},{cN:"tag",b:"|$)",e:">",k:{title:"style"},c:[b],starts:{e:"",rE:true,sL:"css"}},{cN:"tag",b:"|$)",e:">",k:{title:"script"},c:[b],starts:{e:"<\/script>",rE:true,sL:"javascript"}},{b:"<%",e:"%>",sL:"vbscript"},d,{cN:"pi",b:/<\?\w+/,e:/\?>/,r:10},{cN:"tag",b:"",c:[{cN:"title",b:"[^ /><]+",r:0},b]}]}});hljs.registerLanguage("asciidoc",function(a){return{c:[{cN:"comment",b:"^/{4,}\\n",e:"\\n/{4,}$",r:10},{cN:"comment",b:"^//",e:"$",r:0},{cN:"title",b:"^\\.\\w.*$"},{b:"^[=\\*]{4,}\\n",e:"\\n^[=\\*]{4,}$",r:10},{cN:"header",b:"^(={1,5}) .+?( \\1)?$",r:10},{cN:"header",b:"^[^\\[\\]\\n]+?\\n[=\\-~\\^\\+]{2,}$",r:10},{cN:"attribute",b:"^:.+?:",e:"\\s",eE:true,r:10},{cN:"attribute",b:"^\\[.+?\\]$",r:0},{cN:"blockquote",b:"^_{4,}\\n",e:"\\n_{4,}$",r:10},{cN:"code",b:"^[\\-\\.]{4,}\\n",e:"\\n[\\-\\.]{4,}$",r:10},{b:"^\\+{4,}\\n",e:"\\n\\+{4,}$",c:[{b:"<",e:">",sL:"xml",r:0}],r:10},{cN:"bullet",b:"^(\\*+|\\-+|\\.+|[^\\n]+?::)\\s+"},{cN:"label",b:"^(NOTE|TIP|IMPORTANT|WARNING|CAUTION):\\s+",r:10},{cN:"strong",b:"\\B\\*(?![\\*\\s])",e:"(\\n{2}|\\*)",c:[{b:"\\\\*\\w",r:0}]},{cN:"emphasis",b:"\\B'(?!['\\s])",e:"(\\n{2}|')",c:[{b:"\\\\'\\w",r:0}],r:0},{cN:"emphasis",b:"_(?![_\\s])",e:"(\\n{2}|_)",r:0},{cN:"smartquote",b:"``.+?''",r:10},{cN:"smartquote",b:"`.+?'",r:10},{cN:"code",b:"(`.+?`|\\+.+?\\+)",r:0},{cN:"code",b:"^[ \\t]",e:"$",r:0},{cN:"horizontal_rule",b:"^'{3,}[ \\t]*$",r:10},{b:"(link:)?(http|https|ftp|file|irc|image:?):\\S+\\[.*?\\]",rB:true,c:[{b:"(link|image:?):",r:0},{cN:"link_url",b:"\\w",e:"[^\\[]+",r:0},{cN:"link_label",b:"\\[",e:"\\]",eB:true,eE:true,r:0}],r:10}]}});hljs.registerLanguage("coffeescript",function(c){var b={keyword:"in if for while finally new do return else break catch instanceof throw try this switch continue typeof delete debugger super then unless until loop of by when and or is isnt not",literal:"true false null undefined yes no on off",reserved:"case default function var void with const let enum export import native __hasProp __extends __slice __bind __indexOf",built_in:"npm require console print module exports global window document"};var a="[A-Za-z$_][0-9A-Za-z$_]*";var f=c.inherit(c.TM,{b:a});var e={cN:"subst",b:/#\{/,e:/}/,k:b};var d=[c.BNM,c.inherit(c.CNM,{starts:{e:"(\\s*/)?",r:0}}),{cN:"string",v:[{b:/'''/,e:/'''/,c:[c.BE]},{b:/'/,e:/'/,c:[c.BE]},{b:/"""/,e:/"""/,c:[c.BE,e]},{b:/"/,e:/"/,c:[c.BE,e]}]},{cN:"regexp",v:[{b:"///",e:"///",c:[e,c.HCM]},{b:"//[gim]*",r:0},{b:"/\\S(\\\\.|[^\\n])*?/[gim]*(?=\\s|\\W|$)"}]},{cN:"property",b:"@"+a},{b:"`",e:"`",eB:true,eE:true,sL:"javascript"}];e.c=d;return{k:b,c:d.concat([{cN:"comment",b:"###",e:"###"},c.HCM,{cN:"function",b:"("+a+"\\s*=\\s*)?(\\(.*\\))?\\s*\\B[-=]>",e:"[-=]>",rB:true,c:[f,{cN:"params",b:"\\(",rB:true,c:[{b:/\(/,e:/\)/,k:b,c:["self"].concat(d)}]}]},{cN:"class",bK:"class",e:"$",i:/[:="\[\]]/,c:[{bK:"extends",eW:true,i:/[:="\[\]]/,c:[f]},f]},{cN:"attribute",b:a+":",e:":",rB:true,eE:true,r:0}])}});hljs.registerLanguage("fix",function(a){return{c:[{b:/[^\u2401\u0001]+/,e:/[\u2401\u0001]/,eE:true,rB:true,rE:false,c:[{b:/([^\u2401\u0001=]+)/,e:/=([^\u2401\u0001=]+)/,rE:true,rB:false,cN:"attribute"},{b:/=/,e:/([\u2401\u0001])/,eE:true,eB:true,cN:"string"}]}],cI:true}});hljs.registerLanguage("mel",function(a){return{k:"int float string vector matrix if else switch case default while do for in break continue global proc return about abs addAttr addAttributeEditorNodeHelp addDynamic addNewShelfTab addPP addPanelCategory addPrefixToName advanceToNextDrivenKey affectedNet affects aimConstraint air alias aliasAttr align alignCtx alignCurve alignSurface allViewFit ambientLight angle angleBetween animCone animCurveEditor animDisplay animView annotate appendStringArray applicationName applyAttrPreset applyTake arcLenDimContext arcLengthDimension arclen arrayMapper art3dPaintCtx artAttrCtx artAttrPaintVertexCtx artAttrSkinPaintCtx artAttrTool artBuildPaintMenu artFluidAttrCtx artPuttyCtx artSelectCtx artSetPaintCtx artUserPaintCtx assignCommand assignInputDevice assignViewportFactories attachCurve attachDeviceAttr attachSurface attrColorSliderGrp attrCompatibility attrControlGrp attrEnumOptionMenu attrEnumOptionMenuGrp attrFieldGrp attrFieldSliderGrp attrNavigationControlGrp attrPresetEditWin attributeExists attributeInfo attributeMenu attributeQuery autoKeyframe autoPlace bakeClip bakeFluidShading bakePartialHistory bakeResults bakeSimulation basename basenameEx batchRender bessel bevel bevelPlus binMembership bindSkin blend2 blendShape blendShapeEditor blendShapePanel blendTwoAttr blindDataType boneLattice boundary boxDollyCtx boxZoomCtx bufferCurve buildBookmarkMenu buildKeyframeMenu button buttonManip CBG cacheFile cacheFileCombine cacheFileMerge cacheFileTrack camera cameraView canCreateManip canvas capitalizeString catch catchQuiet ceil changeSubdivComponentDisplayLevel changeSubdivRegion channelBox character characterMap characterOutlineEditor characterize chdir checkBox checkBoxGrp checkDefaultRenderGlobals choice circle circularFillet clamp clear clearCache clip clipEditor clipEditorCurrentTimeCtx clipSchedule clipSchedulerOutliner clipTrimBefore closeCurve closeSurface cluster cmdFileOutput cmdScrollFieldExecuter cmdScrollFieldReporter cmdShell coarsenSubdivSelectionList collision color colorAtPoint colorEditor colorIndex colorIndexSliderGrp colorSliderButtonGrp colorSliderGrp columnLayout commandEcho commandLine commandPort compactHairSystem componentEditor compositingInterop computePolysetVolume condition cone confirmDialog connectAttr connectControl connectDynamic connectJoint connectionInfo constrain constrainValue constructionHistory container containsMultibyte contextInfo control convertFromOldLayers convertIffToPsd convertLightmap convertSolidTx convertTessellation convertUnit copyArray copyFlexor copyKey copySkinWeights cos cpButton cpCache cpClothSet cpCollision cpConstraint cpConvClothToMesh cpForces cpGetSolverAttr cpPanel cpProperty cpRigidCollisionFilter cpSeam cpSetEdit cpSetSolverAttr cpSolver cpSolverTypes cpTool cpUpdateClothUVs createDisplayLayer createDrawCtx createEditor createLayeredPsdFile createMotionField createNewShelf createNode createRenderLayer createSubdivRegion cross crossProduct ctxAbort ctxCompletion ctxEditMode ctxTraverse currentCtx currentTime currentTimeCtx currentUnit curve curveAddPtCtx curveCVCtx curveEPCtx curveEditorCtx curveIntersect curveMoveEPCtx curveOnSurface curveSketchCtx cutKey cycleCheck cylinder dagPose date defaultLightListCheckBox defaultNavigation defineDataServer defineVirtualDevice deformer deg_to_rad delete deleteAttr deleteShadingGroupsAndMaterials deleteShelfTab deleteUI deleteUnusedBrushes delrandstr detachCurve detachDeviceAttr detachSurface deviceEditor devicePanel dgInfo dgdirty dgeval dgtimer dimWhen directKeyCtx directionalLight dirmap dirname disable disconnectAttr disconnectJoint diskCache displacementToPoly displayAffected displayColor displayCull displayLevelOfDetail displayPref displayRGBColor displaySmoothness displayStats displayString displaySurface distanceDimContext distanceDimension doBlur dolly dollyCtx dopeSheetEditor dot dotProduct doubleProfileBirailSurface drag dragAttrContext draggerContext dropoffLocator duplicate duplicateCurve duplicateSurface dynCache dynControl dynExport dynExpression dynGlobals dynPaintEditor dynParticleCtx dynPref dynRelEdPanel dynRelEditor dynamicLoad editAttrLimits editDisplayLayerGlobals editDisplayLayerMembers editRenderLayerAdjustment editRenderLayerGlobals editRenderLayerMembers editor editorTemplate effector emit emitter enableDevice encodeString endString endsWith env equivalent equivalentTol erf error eval evalDeferred evalEcho event exactWorldBoundingBox exclusiveLightCheckBox exec executeForEachObject exists exp expression expressionEditorListen extendCurve extendSurface extrude fcheck fclose feof fflush fgetline fgetword file fileBrowserDialog fileDialog fileExtension fileInfo filetest filletCurve filter filterCurve filterExpand filterStudioImport findAllIntersections findAnimCurves findKeyframe findMenuItem findRelatedSkinCluster finder firstParentOf fitBspline flexor floatEq floatField floatFieldGrp floatScrollBar floatSlider floatSlider2 floatSliderButtonGrp floatSliderGrp floor flow fluidCacheInfo fluidEmitter fluidVoxelInfo flushUndo fmod fontDialog fopen formLayout format fprint frameLayout fread freeFormFillet frewind fromNativePath fwrite gamma gauss geometryConstraint getApplicationVersionAsFloat getAttr getClassification getDefaultBrush getFileList getFluidAttr getInputDeviceRange getMayaPanelTypes getModifiers getPanel getParticleAttr getPluginResource getenv getpid glRender glRenderEditor globalStitch gmatch goal gotoBindPose grabColor gradientControl gradientControlNoAttr graphDollyCtx graphSelectContext graphTrackCtx gravity grid gridLayout group groupObjectsByName HfAddAttractorToAS HfAssignAS HfBuildEqualMap HfBuildFurFiles HfBuildFurImages HfCancelAFR HfConnectASToHF HfCreateAttractor HfDeleteAS HfEditAS HfPerformCreateAS HfRemoveAttractorFromAS HfSelectAttached HfSelectAttractors HfUnAssignAS hardenPointCurve hardware hardwareRenderPanel headsUpDisplay headsUpMessage help helpLine hermite hide hilite hitTest hotBox hotkey hotkeyCheck hsv_to_rgb hudButton hudSlider hudSliderButton hwReflectionMap hwRender hwRenderLoad hyperGraph hyperPanel hyperShade hypot iconTextButton iconTextCheckBox iconTextRadioButton iconTextRadioCollection iconTextScrollList iconTextStaticLabel ikHandle ikHandleCtx ikHandleDisplayScale ikSolver ikSplineHandleCtx ikSystem ikSystemInfo ikfkDisplayMethod illustratorCurves image imfPlugins inheritTransform insertJoint insertJointCtx insertKeyCtx insertKnotCurve insertKnotSurface instance instanceable instancer intField intFieldGrp intScrollBar intSlider intSliderGrp interToUI internalVar intersect iprEngine isAnimCurve isConnected isDirty isParentOf isSameObject isTrue isValidObjectName isValidString isValidUiName isolateSelect itemFilter itemFilterAttr itemFilterRender itemFilterType joint jointCluster jointCtx jointDisplayScale jointLattice keyTangent keyframe keyframeOutliner keyframeRegionCurrentTimeCtx keyframeRegionDirectKeyCtx keyframeRegionDollyCtx keyframeRegionInsertKeyCtx keyframeRegionMoveKeyCtx keyframeRegionScaleKeyCtx keyframeRegionSelectKeyCtx keyframeRegionSetKeyCtx keyframeRegionTrackCtx keyframeStats lassoContext lattice latticeDeformKeyCtx launch launchImageEditor layerButton layeredShaderPort layeredTexturePort layout layoutDialog lightList lightListEditor lightListPanel lightlink lineIntersection linearPrecision linstep listAnimatable listAttr listCameras listConnections listDeviceAttachments listHistory listInputDeviceAxes listInputDeviceButtons listInputDevices listMenuAnnotation listNodeTypes listPanelCategories listRelatives listSets listTransforms listUnselected listerEditor loadFluid loadNewShelf loadPlugin loadPluginLanguageResources loadPrefObjects localizedPanelLabel lockNode loft log longNameOf lookThru ls lsThroughFilter lsType lsUI Mayatomr mag makeIdentity makeLive makePaintable makeRoll makeSingleSurface makeTubeOn makebot manipMoveContext manipMoveLimitsCtx manipOptions manipRotateContext manipRotateLimitsCtx manipScaleContext manipScaleLimitsCtx marker match max memory menu menuBarLayout menuEditor menuItem menuItemToShelf menuSet menuSetPref messageLine min minimizeApp mirrorJoint modelCurrentTimeCtx modelEditor modelPanel mouse movIn movOut move moveIKtoFK moveKeyCtx moveVertexAlongDirection multiProfileBirailSurface mute nParticle nameCommand nameField namespace namespaceInfo newPanelItems newton nodeCast nodeIconButton nodeOutliner nodePreset nodeType noise nonLinear normalConstraint normalize nurbsBoolean nurbsCopyUVSet nurbsCube nurbsEditUV nurbsPlane nurbsSelect nurbsSquare nurbsToPoly nurbsToPolygonsPref nurbsToSubdiv nurbsToSubdivPref nurbsUVSet nurbsViewDirectionVector objExists objectCenter objectLayer objectType objectTypeUI obsoleteProc oceanNurbsPreviewPlane offsetCurve offsetCurveOnSurface offsetSurface openGLExtension openMayaPref optionMenu optionMenuGrp optionVar orbit orbitCtx orientConstraint outlinerEditor outlinerPanel overrideModifier paintEffectsDisplay pairBlend palettePort paneLayout panel panelConfiguration panelHistory paramDimContext paramDimension paramLocator parent parentConstraint particle particleExists particleInstancer particleRenderInfo partition pasteKey pathAnimation pause pclose percent performanceOptions pfxstrokes pickWalk picture pixelMove planarSrf plane play playbackOptions playblast plugAttr plugNode pluginInfo pluginResourceUtil pointConstraint pointCurveConstraint pointLight pointMatrixMult pointOnCurve pointOnSurface pointPosition poleVectorConstraint polyAppend polyAppendFacetCtx polyAppendVertex polyAutoProjection polyAverageNormal polyAverageVertex polyBevel polyBlendColor polyBlindData polyBoolOp polyBridgeEdge polyCacheMonitor polyCheck polyChipOff polyClipboard polyCloseBorder polyCollapseEdge polyCollapseFacet polyColorBlindData polyColorDel polyColorPerVertex polyColorSet polyCompare polyCone polyCopyUV polyCrease polyCreaseCtx polyCreateFacet polyCreateFacetCtx polyCube polyCut polyCutCtx polyCylinder polyCylindricalProjection polyDelEdge polyDelFacet polyDelVertex polyDuplicateAndConnect polyDuplicateEdge polyEditUV polyEditUVShell polyEvaluate polyExtrudeEdge polyExtrudeFacet polyExtrudeVertex polyFlipEdge polyFlipUV polyForceUV polyGeoSampler polyHelix polyInfo polyInstallAction polyLayoutUV polyListComponentConversion polyMapCut polyMapDel polyMapSew polyMapSewMove polyMergeEdge polyMergeEdgeCtx polyMergeFacet polyMergeFacetCtx polyMergeUV polyMergeVertex polyMirrorFace polyMoveEdge polyMoveFacet polyMoveFacetUV polyMoveUV polyMoveVertex polyNormal polyNormalPerVertex polyNormalizeUV polyOptUvs polyOptions polyOutput polyPipe polyPlanarProjection polyPlane polyPlatonicSolid polyPoke polyPrimitive polyPrism polyProjection polyPyramid polyQuad polyQueryBlindData polyReduce polySelect polySelectConstraint polySelectConstraintMonitor polySelectCtx polySelectEditCtx polySeparate polySetToFaceNormal polySewEdge polyShortestPathCtx polySmooth polySoftEdge polySphere polySphericalProjection polySplit polySplitCtx polySplitEdge polySplitRing polySplitVertex polyStraightenUVBorder polySubdivideEdge polySubdivideFacet polyToSubdiv polyTorus polyTransfer polyTriangulate polyUVSet polyUnite polyWedgeFace popen popupMenu pose pow preloadRefEd print progressBar progressWindow projFileViewer projectCurve projectTangent projectionContext projectionManip promptDialog propModCtx propMove psdChannelOutliner psdEditTextureFile psdExport psdTextureFile putenv pwd python querySubdiv quit rad_to_deg radial radioButton radioButtonGrp radioCollection radioMenuItemCollection rampColorPort rand randomizeFollicles randstate rangeControl readTake rebuildCurve rebuildSurface recordAttr recordDevice redo reference referenceEdit referenceQuery refineSubdivSelectionList refresh refreshAE registerPluginResource rehash reloadImage removeJoint removeMultiInstance removePanelCategory rename renameAttr renameSelectionList renameUI render renderGlobalsNode renderInfo renderLayerButton renderLayerParent renderLayerPostProcess renderLayerUnparent renderManip renderPartition renderQualityNode renderSettings renderThumbnailUpdate renderWindowEditor renderWindowSelectContext renderer reorder reorderDeformers requires reroot resampleFluid resetAE resetPfxToPolyCamera resetTool resolutionNode retarget reverseCurve reverseSurface revolve rgb_to_hsv rigidBody rigidSolver roll rollCtx rootOf rot rotate rotationInterpolation roundConstantRadius rowColumnLayout rowLayout runTimeCommand runup sampleImage saveAllShelves saveAttrPreset saveFluid saveImage saveInitialState saveMenu savePrefObjects savePrefs saveShelf saveToolSettings scale scaleBrushBrightness scaleComponents scaleConstraint scaleKey scaleKeyCtx sceneEditor sceneUIReplacement scmh scriptCtx scriptEditorInfo scriptJob scriptNode scriptTable scriptToShelf scriptedPanel scriptedPanelType scrollField scrollLayout sculpt searchPathArray seed selLoadSettings select selectContext selectCurveCV selectKey selectKeyCtx selectKeyframeRegionCtx selectMode selectPref selectPriority selectType selectedNodes selectionConnection separator setAttr setAttrEnumResource setAttrMapping setAttrNiceNameResource setConstraintRestPosition setDefaultShadingGroup setDrivenKeyframe setDynamic setEditCtx setEditor setFluidAttr setFocus setInfinity setInputDeviceMapping setKeyCtx setKeyPath setKeyframe setKeyframeBlendshapeTargetWts setMenuMode setNodeNiceNameResource setNodeTypeFlag setParent setParticleAttr setPfxToPolyCamera setPluginResource setProject setStampDensity setStartupMessage setState setToolTo setUITemplate setXformManip sets shadingConnection shadingGeometryRelCtx shadingLightRelCtx shadingNetworkCompare shadingNode shapeCompare shelfButton shelfLayout shelfTabLayout shellField shortNameOf showHelp showHidden showManipCtx showSelectionInTitle showShadingGroupAttrEditor showWindow sign simplify sin singleProfileBirailSurface size sizeBytes skinCluster skinPercent smoothCurve smoothTangentSurface smoothstep snap2to2 snapKey snapMode snapTogetherCtx snapshot soft softMod softModCtx sort sound soundControl source spaceLocator sphere sphrand spotLight spotLightPreviewPort spreadSheetEditor spring sqrt squareSurface srtContext stackTrace startString startsWith stitchAndExplodeShell stitchSurface stitchSurfacePoints strcmp stringArrayCatenate stringArrayContains stringArrayCount stringArrayInsertAtIndex stringArrayIntersector stringArrayRemove stringArrayRemoveAtIndex stringArrayRemoveDuplicates stringArrayRemoveExact stringArrayToString stringToStringArray strip stripPrefixFromName stroke subdAutoProjection subdCleanTopology subdCollapse subdDuplicateAndConnect subdEditUV subdListComponentConversion subdMapCut subdMapSewMove subdMatchTopology subdMirror subdToBlind subdToPoly subdTransferUVsToCache subdiv subdivCrease subdivDisplaySmoothness substitute substituteAllString substituteGeometry substring surface surfaceSampler surfaceShaderList swatchDisplayPort switchTable symbolButton symbolCheckBox sysFile system tabLayout tan tangentConstraint texLatticeDeformContext texManipContext texMoveContext texMoveUVShellContext texRotateContext texScaleContext texSelectContext texSelectShortestPathCtx texSmudgeUVContext texWinToolCtx text textCurves textField textFieldButtonGrp textFieldGrp textManip textScrollList textToShelf textureDisplacePlane textureHairColor texturePlacementContext textureWindow threadCount threePointArcCtx timeControl timePort timerX toNativePath toggle toggleAxis toggleWindowVisibility tokenize tokenizeList tolerance tolower toolButton toolCollection toolDropped toolHasOptions toolPropertyWindow torus toupper trace track trackCtx transferAttributes transformCompare transformLimits translator trim trunc truncateFluidCache truncateHairCache tumble tumbleCtx turbulence twoPointArcCtx uiRes uiTemplate unassignInputDevice undo undoInfo ungroup uniform unit unloadPlugin untangleUV untitledFileName untrim upAxis updateAE userCtx uvLink uvSnapshot validateShelfName vectorize view2dToolCtx viewCamera viewClipPlane viewFit viewHeadOn viewLookAt viewManip viewPlace viewSet visor volumeAxis vortex waitCursor warning webBrowser webBrowserPrefs whatIs window windowPref wire wireContext workspace wrinkle wrinkleContext writeTake xbmLangPathList xform",i:""}]},{cN:"preprocessor",b:"#",e:"$"},{cN:"class",b:"("+b.split(" ").join("|")+")\\b",e:"({|$)",k:b,l:c,c:[a.UTM]},{cN:"variable",b:"\\."+a.UIR,r:0}]}});hljs.registerLanguage("apache",function(a){var b={cN:"number",b:"[\\$%]\\d+"};return{cI:true,c:[a.HCM,{cN:"tag",b:""},{cN:"keyword",b:/\w+/,r:0,k:{common:"order deny allow setenv rewriterule rewriteengine rewritecond documentroot sethandler errordocument loadmodule options header listen serverroot servername"},starts:{e:/$/,r:0,k:{literal:"on off all"},c:[{cN:"sqbracket",b:"\\s\\[",e:"\\]$"},{cN:"cbracket",b:"[\\$%]\\{",e:"\\}",c:["self",b]},b,a.QSM]}}],i:/\S/}});hljs.registerLanguage("livecodeserver",function(a){var e={cN:"variable",b:"\\b[gtps][A-Z]+[A-Za-z0-9_\\-]*\\b|\\$_[A-Z]+",r:0};var b={cN:"comment",e:"$",v:[a.CBLCLM,a.HCM,{b:"--",},{b:"[^:]//",}]};var d=a.inherit(a.TM,{v:[{b:"\\b_*rig[A-Z]+[A-Za-z0-9_\\-]*"},{b:"\\b_[a-z0-9\\-]+"}]});var c=a.inherit(a.TM,{b:"\\b([A-Za-z0-9_\\-]+)\\b"});return{cI:false,k:{keyword:"after byte bytes english the until http forever descending using line real8 with seventh for stdout finally element word fourth before black ninth sixth characters chars stderr uInt1 uInt1s uInt2 uInt2s stdin string lines relative rel any fifth items from middle mid at else of catch then third it file milliseconds seconds second secs sec int1 int1s int4 int4s internet int2 int2s normal text item last long detailed effective uInt4 uInt4s repeat end repeat URL in try into switch to words https token binfile each tenth as ticks tick system real4 by dateItems without char character ascending eighth whole dateTime numeric short first ftp integer abbreviated abbr abbrev private case while if",constant:"SIX TEN FORMFEED NINE ZERO NONE SPACE FOUR FALSE COLON CRLF PI COMMA ENDOFFILE EOF EIGHT FIVE QUOTE EMPTY ONE TRUE RETURN CR LINEFEED RIGHT BACKSLASH NULL SEVEN TAB THREE TWO six ten formfeed nine zero none space four false colon crlf pi comma endoffile eof eight five quote empty one true return cr linefeed right backslash null seven tab three two RIVERSION RISTATE FILE_READ_MODE FILE_WRITE_MODE FILE_WRITE_MODE DIR_WRITE_MODE FILE_READ_UMASK FILE_WRITE_UMASK DIR_READ_UMASK DIR_WRITE_UMASK",operator:"div mod wrap and or bitAnd bitNot bitOr bitXor among not in a an within contains ends with begins the keys of keys",built_in:"put abs acos aliasReference annuity arrayDecode arrayEncode asin atan atan2 average avg base64Decode base64Encode baseConvert binaryDecode binaryEncode byteToNum cachedURL cachedURLs charToNum cipherNames commandNames compound compress constantNames cos date dateFormat decompress directories diskSpace DNSServers exp exp1 exp2 exp10 extents files flushEvents folders format functionNames global globals hasMemory hostAddress hostAddressToName hostName hostNameToAddress isNumber ISOToMac itemOffset keys len length libURLErrorData libUrlFormData libURLftpCommand libURLLastHTTPHeaders libURLLastRHHeaders libUrlMultipartFormAddPart libUrlMultipartFormData libURLVersion lineOffset ln ln1 localNames log log2 log10 longFilePath lower macToISO matchChunk matchText matrixMultiply max md5Digest median merge millisec millisecs millisecond milliseconds min monthNames num number numToByte numToChar offset open openfiles openProcesses openProcessIDs openSockets paramCount param params peerAddress pendingMessages platform processID random randomBytes replaceText result revCreateXMLTree revCreateXMLTreeFromFile revCurrentRecord revCurrentRecordIsFirst revCurrentRecordIsLast revDatabaseColumnCount revDatabaseColumnIsNull revDatabaseColumnLengths revDatabaseColumnNames revDatabaseColumnNamed revDatabaseColumnNumbered revDatabaseColumnTypes revDatabaseConnectResult revDatabaseCursors revDatabaseID revDatabaseTableNames revDatabaseType revDataFromQuery revdb_closeCursor revdb_columnbynumber revdb_columncount revdb_columnisnull revdb_columnlengths revdb_columnnames revdb_columntypes revdb_commit revdb_connect revdb_connections revdb_connectionerr revdb_currentrecord revdb_cursorconnection revdb_cursorerr revdb_cursors revdb_dbtype revdb_disconnect revdb_execute revdb_iseof revdb_isbof revdb_movefirst revdb_movelast revdb_movenext revdb_moveprev revdb_query revdb_querylist revdb_recordcount revdb_rollback revdb_tablenames revGetDatabaseDriverPath revNumberOfRecords revOpenDatabase revOpenDatabases revQueryDatabase revQueryDatabaseBlob revQueryResult revQueryIsAtStart revQueryIsAtEnd revUnixFromMacPath revXMLAttribute revXMLAttributes revXMLAttributeValues revXMLChildContents revXMLChildNames revXMLFirstChild revXMLMatchingNode revXMLNextSibling revXMLNodeContents revXMLNumberOfChildren revXMLParent revXMLPreviousSibling revXMLRootNode revXMLRPC_CreateRequest revXMLRPC_Documents revXMLRPC_Error revXMLRPC_Execute revXMLRPC_GetHost revXMLRPC_GetMethod revXMLRPC_GetParam revXMLText revXMLRPC_GetParamCount revXMLRPC_GetParamNode revXMLRPC_GetParamType revXMLRPC_GetPath revXMLRPC_GetPort revXMLRPC_GetProtocol revXMLRPC_GetRequest revXMLRPC_GetResponse revXMLRPC_GetSocket revXMLTree revXMLTrees revXMLValidateDTD revZipDescribeItem revZipEnumerateItems revZipOpenArchives round sec secs seconds sha1Digest shell shortFilePath sin specialFolderPath sqrt standardDeviation statRound stdDev sum sysError systemVersion tan tempName tick ticks time to toLower toUpper transpose trunc uniDecode uniEncode upper URLDecode URLEncode URLStatus value variableNames version waitDepth weekdayNames wordOffset add breakpoint cancel clear local variable file word line folder directory URL close socket process combine constant convert create new alias folder directory decrypt delete variable word line folder directory URL dispatch divide do encrypt filter get include intersect kill libURLDownloadToFile libURLFollowHttpRedirects libURLftpUpload libURLftpUploadFile libURLresetAll libUrlSetAuthCallback libURLSetCustomHTTPHeaders libUrlSetExpect100 libURLSetFTPListCommand libURLSetFTPMode libURLSetFTPStopTime libURLSetStatusCallback load multiply socket process post seek rel relative read from process rename replace require resetAll revAddXMLNode revAppendXML revCloseCursor revCloseDatabase revCommitDatabase revCopyFile revCopyFolder revCopyXMLNode revDeleteFolder revDeleteXMLNode revDeleteAllXMLTrees revDeleteXMLTree revExecuteSQL revGoURL revInsertXMLNode revMoveFolder revMoveToFirstRecord revMoveToLastRecord revMoveToNextRecord revMoveToPreviousRecord revMoveToRecord revMoveXMLNode revPutIntoXMLNode revRollBackDatabase revSetDatabaseDriverPath revSetXMLAttribute revXMLRPC_AddParam revXMLRPC_DeleteAllDocuments revXMLAddDTD revXMLRPC_Free revXMLRPC_FreeAll revXMLRPC_DeleteDocument revXMLRPC_DeleteParam revXMLRPC_SetHost revXMLRPC_SetMethod revXMLRPC_SetPort revXMLRPC_SetProtocol revXMLRPC_SetSocket revZipAddItemWithData revZipAddItemWithFile revZipAddUncompressedItemWithData revZipAddUncompressedItemWithFile revZipCancel revZipCloseArchive revZipDeleteItem revZipExtractItemToFile revZipExtractItemToVariable revZipSetProgressCallback revZipRenameItem revZipReplaceItemWithData revZipReplaceItemWithFile revZipOpenArchive send set sort split subtract union unload wait write"},c:[e,{cN:"keyword",b:"\\bend\\sif\\b"},{cN:"function",bK:"function",e:"$",c:[e,c,a.ASM,a.QSM,a.BNM,a.CNM,d]},{cN:"function",bK:"end",e:"$",c:[c,d]},{cN:"command",bK:"command on",e:"$",c:[e,c,a.ASM,a.QSM,a.BNM,a.CNM,d]},{cN:"command",bK:"end",e:"$",c:[c,d]},{cN:"preprocessor",b:"<\\?rev|<\\?lc|<\\?livecode",r:10},{cN:"preprocessor",b:"<\\?"},{cN:"preprocessor",b:"\\?>"},b,a.ASM,a.QSM,a.BNM,a.CNM,d],i:";$|^\\[|^="}});hljs.registerLanguage("glsl",function(a){return{k:{keyword:"atomic_uint attribute bool break bvec2 bvec3 bvec4 case centroid coherent const continue default discard dmat2 dmat2x2 dmat2x3 dmat2x4 dmat3 dmat3x2 dmat3x3 dmat3x4 dmat4 dmat4x2 dmat4x3 dmat4x4 do double dvec2 dvec3 dvec4 else flat float for highp if iimage1D iimage1DArray iimage2D iimage2DArray iimage2DMS iimage2DMSArray iimage2DRect iimage3D iimageBuffer iimageCube iimageCubeArray image1D image1DArray image2D image2DArray image2DMS image2DMSArray image2DRect image3D imageBuffer imageCube imageCubeArray in inout int invariant isampler1D isampler1DArray isampler2D isampler2DArray isampler2DMS isampler2DMSArray isampler2DRect isampler3D isamplerBuffer isamplerCube isamplerCubeArray ivec2 ivec3 ivec4 layout lowp mat2 mat2x2 mat2x3 mat2x4 mat3 mat3x2 mat3x3 mat3x4 mat4 mat4x2 mat4x3 mat4x4 mediump noperspective out patch precision readonly restrict return sample sampler1D sampler1DArray sampler1DArrayShadow sampler1DShadow sampler2D sampler2DArray sampler2DArrayShadow sampler2DMS sampler2DMSArray sampler2DRect sampler2DRectShadow sampler2DShadow sampler3D samplerBuffer samplerCube samplerCubeArray samplerCubeArrayShadow samplerCubeShadow smooth struct subroutine switch uimage1D uimage1DArray uimage2D uimage2DArray uimage2DMS uimage2DMSArray uimage2DRect uimage3D uimageBuffer uimageCube uimageCubeArray uint uniform usampler1D usampler1DArray usampler2D usampler2DArray usampler2DMS usampler2DMSArray usampler2DRect usampler3D usamplerBuffer usamplerCube usamplerCubeArray uvec2 uvec3 uvec4 varying vec2 vec3 vec4 void volatile while writeonly",built_in:"gl_BackColor gl_BackLightModelProduct gl_BackLightProduct gl_BackMaterial gl_BackSecondaryColor gl_ClipDistance gl_ClipPlane gl_ClipVertex gl_Color gl_DepthRange gl_EyePlaneQ gl_EyePlaneR gl_EyePlaneS gl_EyePlaneT gl_Fog gl_FogCoord gl_FogFragCoord gl_FragColor gl_FragCoord gl_FragData gl_FragDepth gl_FrontColor gl_FrontFacing gl_FrontLightModelProduct gl_FrontLightProduct gl_FrontMaterial gl_FrontSecondaryColor gl_InstanceID gl_InvocationID gl_Layer gl_LightModel gl_LightSource gl_MaxAtomicCounterBindings gl_MaxAtomicCounterBufferSize gl_MaxClipDistances gl_MaxClipPlanes gl_MaxCombinedAtomicCounterBuffers gl_MaxCombinedAtomicCounters gl_MaxCombinedImageUniforms gl_MaxCombinedImageUnitsAndFragmentOutputs gl_MaxCombinedTextureImageUnits gl_MaxDrawBuffers gl_MaxFragmentAtomicCounterBuffers gl_MaxFragmentAtomicCounters gl_MaxFragmentImageUniforms gl_MaxFragmentInputComponents gl_MaxFragmentUniformComponents gl_MaxFragmentUniformVectors gl_MaxGeometryAtomicCounterBuffers gl_MaxGeometryAtomicCounters gl_MaxGeometryImageUniforms gl_MaxGeometryInputComponents gl_MaxGeometryOutputComponents gl_MaxGeometryOutputVertices gl_MaxGeometryTextureImageUnits gl_MaxGeometryTotalOutputComponents gl_MaxGeometryUniformComponents gl_MaxGeometryVaryingComponents gl_MaxImageSamples gl_MaxImageUnits gl_MaxLights gl_MaxPatchVertices gl_MaxProgramTexelOffset gl_MaxTessControlAtomicCounterBuffers gl_MaxTessControlAtomicCounters gl_MaxTessControlImageUniforms gl_MaxTessControlInputComponents gl_MaxTessControlOutputComponents gl_MaxTessControlTextureImageUnits gl_MaxTessControlTotalOutputComponents gl_MaxTessControlUniformComponents gl_MaxTessEvaluationAtomicCounterBuffers gl_MaxTessEvaluationAtomicCounters gl_MaxTessEvaluationImageUniforms gl_MaxTessEvaluationInputComponents gl_MaxTessEvaluationOutputComponents gl_MaxTessEvaluationTextureImageUnits gl_MaxTessEvaluationUniformComponents gl_MaxTessGenLevel gl_MaxTessPatchComponents gl_MaxTextureCoords gl_MaxTextureImageUnits gl_MaxTextureUnits gl_MaxVaryingComponents gl_MaxVaryingFloats gl_MaxVaryingVectors gl_MaxVertexAtomicCounterBuffers gl_MaxVertexAtomicCounters gl_MaxVertexAttribs gl_MaxVertexImageUniforms gl_MaxVertexOutputComponents gl_MaxVertexTextureImageUnits gl_MaxVertexUniformComponents gl_MaxVertexUniformVectors gl_MaxViewports gl_MinProgramTexelOffsetgl_ModelViewMatrix gl_ModelViewMatrixInverse gl_ModelViewMatrixInverseTranspose gl_ModelViewMatrixTranspose gl_ModelViewProjectionMatrix gl_ModelViewProjectionMatrixInverse gl_ModelViewProjectionMatrixInverseTranspose gl_ModelViewProjectionMatrixTranspose gl_MultiTexCoord0 gl_MultiTexCoord1 gl_MultiTexCoord2 gl_MultiTexCoord3 gl_MultiTexCoord4 gl_MultiTexCoord5 gl_MultiTexCoord6 gl_MultiTexCoord7 gl_Normal gl_NormalMatrix gl_NormalScale gl_ObjectPlaneQ gl_ObjectPlaneR gl_ObjectPlaneS gl_ObjectPlaneT gl_PatchVerticesIn gl_PerVertex gl_Point gl_PointCoord gl_PointSize gl_Position gl_PrimitiveID gl_PrimitiveIDIn gl_ProjectionMatrix gl_ProjectionMatrixInverse gl_ProjectionMatrixInverseTranspose gl_ProjectionMatrixTranspose gl_SampleID gl_SampleMask gl_SampleMaskIn gl_SamplePosition gl_SecondaryColor gl_TessCoord gl_TessLevelInner gl_TessLevelOuter gl_TexCoord gl_TextureEnvColor gl_TextureMatrixInverseTranspose gl_TextureMatrixTranspose gl_Vertex gl_VertexID gl_ViewportIndex gl_in gl_out EmitStreamVertex EmitVertex EndPrimitive EndStreamPrimitive abs acos acosh all any asin asinh atan atanh atomicCounter atomicCounterDecrement atomicCounterIncrement barrier bitCount bitfieldExtract bitfieldInsert bitfieldReverse ceil clamp cos cosh cross dFdx dFdy degrees determinant distance dot equal exp exp2 faceforward findLSB findMSB floatBitsToInt floatBitsToUint floor fma fract frexp ftransform fwidth greaterThan greaterThanEqual imageAtomicAdd imageAtomicAnd imageAtomicCompSwap imageAtomicExchange imageAtomicMax imageAtomicMin imageAtomicOr imageAtomicXor imageLoad imageStore imulExtended intBitsToFloat interpolateAtCentroid interpolateAtOffset interpolateAtSample inverse inversesqrt isinf isnan ldexp length lessThan lessThanEqual log log2 matrixCompMult max memoryBarrier min mix mod modf noise1 noise2 noise3 noise4 normalize not notEqual outerProduct packDouble2x32 packHalf2x16 packSnorm2x16 packSnorm4x8 packUnorm2x16 packUnorm4x8 pow radians reflect refract round roundEven shadow1D shadow1DLod shadow1DProj shadow1DProjLod shadow2D shadow2DLod shadow2DProj shadow2DProjLod sign sin sinh smoothstep sqrt step tan tanh texelFetch texelFetchOffset texture texture1D texture1DLod texture1DProj texture1DProjLod texture2D texture2DLod texture2DProj texture2DProjLod texture3D texture3DLod texture3DProj texture3DProjLod textureCube textureCubeLod textureGather textureGatherOffset textureGatherOffsets textureGrad textureGradOffset textureLod textureLodOffset textureOffset textureProj textureProjGrad textureProjGradOffset textureProjLod textureProjLodOffset textureProjOffset textureQueryLod textureSize transpose trunc uaddCarry uintBitsToFloat umulExtended unpackDouble2x32 unpackHalf2x16 unpackSnorm2x16 unpackSnorm4x8 unpackUnorm2x16 unpackUnorm4x8 usubBorrow gl_TextureMatrix gl_TextureMatrixInverse",literal:"true false"},i:'"',c:[a.CLCM,a.CBLCLM,a.CNM,{cN:"preprocessor",b:"#",e:"$"}]}});hljs.registerLanguage("lasso",function(d){var b="[a-zA-Z_][a-zA-Z0-9_.]*";var i="<\\?(lasso(script)?|=)";var c="\\]|\\?>";var g={literal:"true false none minimal full all void and or not bw nbw ew new cn ncn lt lte gt gte eq neq rx nrx ft",built_in:"array date decimal duration integer map pair string tag xml null bytes list queue set stack staticarray tie local var variable global data self inherited",keyword:"error_code error_msg error_pop error_push error_reset cache database_names database_schemanames database_tablenames define_tag define_type email_batch encode_set html_comment handle handle_error header if inline iterate ljax_target link link_currentaction link_currentgroup link_currentrecord link_detail link_firstgroup link_firstrecord link_lastgroup link_lastrecord link_nextgroup link_nextrecord link_prevgroup link_prevrecord log loop namespace_using output_none portal private protect records referer referrer repeating resultset rows search_args search_arguments select sort_args sort_arguments thread_atomic value_list while abort case else if_empty if_false if_null if_true loop_abort loop_continue loop_count params params_up return return_value run_children soap_definetag soap_lastrequest soap_lastresponse tag_name ascending average by define descending do equals frozen group handle_failure import in into join let match max min on order parent protected provide public require returnhome skip split_thread sum take thread to trait type where with yield yieldhome"};var a={cN:"comment",b:"",r:0};var j={cN:"preprocessor",b:"\\[noprocess\\]",starts:{cN:"markup",e:"\\[/noprocess\\]",rE:true,c:[a]}};var e={cN:"preprocessor",b:"\\[/noprocess|"+i};var h={cN:"variable",b:"'"+b+"'"};var f=[d.CLCM,{cN:"javadoc",b:"/\\*\\*!",e:"\\*/"},d.CBLCLM,d.inherit(d.CNM,{b:d.CNR+"|-?(infinity|nan)\\b"}),d.inherit(d.ASM,{i:null}),d.inherit(d.QSM,{i:null}),{cN:"string",b:"`",e:"`"},{cN:"variable",v:[{b:"[#$]"+b},{b:"#",e:"\\d+",i:"\\W"}]},{cN:"tag",b:"::\\s*",e:b,i:"\\W"},{cN:"attribute",b:"\\.\\.\\.|-"+d.UIR},{cN:"subst",v:[{b:"->\\s*",c:[h]},{b:":=|/(?!\\w)=?|[-+*%=<>&|!?\\\\]+",r:0}]},{cN:"built_in",b:"\\.\\.?",r:0,c:[h]},{cN:"class",bK:"define",rE:true,e:"\\(|=>",c:[d.inherit(d.TM,{b:d.UIR+"(=(?!>))?"})]}];return{aliases:["ls","lassoscript"],cI:true,l:b+"|&[lg]t;",k:g,c:[{cN:"preprocessor",b:c,r:0,starts:{cN:"markup",e:"\\[|"+i,rE:true,r:0,c:[a]}},j,e,{cN:"preprocessor",b:"\\[no_square_brackets",starts:{e:"\\[/no_square_brackets\\]",l:b+"|&[lg]t;",k:g,c:[{cN:"preprocessor",b:c,r:0,starts:{cN:"markup",e:i,rE:true,c:[a]}},j,e].concat(f)}},{cN:"preprocessor",b:"\\[",r:0},{cN:"shebang",b:"^#!.+lasso9\\b",r:10}].concat(f)}});hljs.registerLanguage("mathematica",function(a){return{aliases:["mma"],l:"(\\$|\\b)"+a.IR+"\\b",k:"AbelianGroup Abort AbortKernels AbortProtect Above Abs Absolute AbsoluteCorrelation AbsoluteCorrelationFunction AbsoluteCurrentValue AbsoluteDashing AbsoluteFileName AbsoluteOptions AbsolutePointSize AbsoluteThickness AbsoluteTime AbsoluteTiming AccountingForm Accumulate Accuracy AccuracyGoal ActionDelay ActionMenu ActionMenuBox ActionMenuBoxOptions Active ActiveItem ActiveStyle AcyclicGraphQ AddOnHelpPath AddTo AdjacencyGraph AdjacencyList AdjacencyMatrix AdjustmentBox AdjustmentBoxOptions AdjustTimeSeriesForecast AffineTransform After AiryAi AiryAiPrime AiryAiZero AiryBi AiryBiPrime AiryBiZero AlgebraicIntegerQ AlgebraicNumber AlgebraicNumberDenominator AlgebraicNumberNorm AlgebraicNumberPolynomial AlgebraicNumberTrace AlgebraicRules AlgebraicRulesData Algebraics AlgebraicUnitQ Alignment AlignmentMarker AlignmentPoint All AllowedDimensions AllowGroupClose AllowInlineCells AllowKernelInitialization AllowReverseGroupClose AllowScriptLevelChange AlphaChannel AlternatingGroup AlternativeHypothesis Alternatives AmbientLight Analytic AnchoredSearch And AndersonDarlingTest AngerJ AngleBracket AngularGauge Animate AnimationCycleOffset AnimationCycleRepetitions AnimationDirection AnimationDisplayTime AnimationRate AnimationRepetitions AnimationRunning Animator AnimatorBox AnimatorBoxOptions AnimatorElements Annotation Annuity AnnuityDue Antialiasing Antisymmetric Apart ApartSquareFree Appearance AppearanceElements AppellF1 Append AppendTo Apply ArcCos ArcCosh ArcCot ArcCoth ArcCsc ArcCsch ArcSec ArcSech ArcSin ArcSinDistribution ArcSinh ArcTan ArcTanh Arg ArgMax ArgMin ArgumentCountQ ARIMAProcess ArithmeticGeometricMean ARMAProcess ARProcess Array ArrayComponents ArrayDepth ArrayFlatten ArrayPad ArrayPlot ArrayQ ArrayReshape ArrayRules Arrays Arrow Arrow3DBox ArrowBox Arrowheads AspectRatio AspectRatioFixed Assert Assuming Assumptions AstronomicalData Asynchronous AsynchronousTaskObject AsynchronousTasks AtomQ Attributes AugmentedSymmetricPolynomial AutoAction AutoDelete AutoEvaluateEvents AutoGeneratedPackage AutoIndent AutoIndentSpacings AutoItalicWords AutoloadPath AutoMatch Automatic AutomaticImageSize AutoMultiplicationSymbol AutoNumberFormatting AutoOpenNotebooks AutoOpenPalettes AutorunSequencing AutoScaling AutoScroll AutoSpacing AutoStyleOptions AutoStyleWords Axes AxesEdge AxesLabel AxesOrigin AxesStyle Axis BabyMonsterGroupB Back Background BackgroundTasksSettings Backslash Backsubstitution Backward Band BandpassFilter BandstopFilter BarabasiAlbertGraphDistribution BarChart BarChart3D BarLegend BarlowProschanImportance BarnesG BarOrigin BarSpacing BartlettHannWindow BartlettWindow BaseForm Baseline BaselinePosition BaseStyle BatesDistribution BattleLemarieWavelet Because BeckmannDistribution Beep Before Begin BeginDialogPacket BeginFrontEndInteractionPacket BeginPackage BellB BellY Below BenfordDistribution BeniniDistribution BenktanderGibratDistribution BenktanderWeibullDistribution BernoulliB BernoulliDistribution BernoulliGraphDistribution BernoulliProcess BernsteinBasis BesselFilterModel BesselI BesselJ BesselJZero BesselK BesselY BesselYZero Beta BetaBinomialDistribution BetaDistribution BetaNegativeBinomialDistribution BetaPrimeDistribution BetaRegularized BetweennessCentrality BezierCurve BezierCurve3DBox BezierCurve3DBoxOptions BezierCurveBox BezierCurveBoxOptions BezierFunction BilateralFilter Binarize BinaryFormat BinaryImageQ BinaryRead BinaryReadList BinaryWrite BinCounts BinLists Binomial BinomialDistribution BinomialProcess BinormalDistribution BiorthogonalSplineWavelet BipartiteGraphQ BirnbaumImportance BirnbaumSaundersDistribution BitAnd BitClear BitGet BitLength BitNot BitOr BitSet BitShiftLeft BitShiftRight BitXor Black BlackmanHarrisWindow BlackmanNuttallWindow BlackmanWindow Blank BlankForm BlankNullSequence BlankSequence Blend Block BlockRandom BlomqvistBeta BlomqvistBetaTest Blue Blur BodePlot BohmanWindow Bold Bookmarks Boole BooleanConsecutiveFunction BooleanConvert BooleanCountingFunction BooleanFunction BooleanGraph BooleanMaxterms BooleanMinimize BooleanMinterms Booleans BooleanTable BooleanVariables BorderDimensions BorelTannerDistribution Bottom BottomHatTransform BoundaryStyle Bounds Box BoxBaselineShift BoxData BoxDimensions Boxed Boxes BoxForm BoxFormFormatTypes BoxFrame BoxID BoxMargins BoxMatrix BoxRatios BoxRotation BoxRotationPoint BoxStyle BoxWhiskerChart Bra BracketingBar BraKet BrayCurtisDistance BreadthFirstScan Break Brown BrownForsytheTest BrownianBridgeProcess BrowserCategory BSplineBasis BSplineCurve BSplineCurve3DBox BSplineCurveBox BSplineCurveBoxOptions BSplineFunction BSplineSurface BSplineSurface3DBox BubbleChart BubbleChart3D BubbleScale BubbleSizes BulletGauge BusinessDayQ ButterflyGraph ButterworthFilterModel Button ButtonBar ButtonBox ButtonBoxOptions ButtonCell ButtonContents ButtonData ButtonEvaluator ButtonExpandable ButtonFrame ButtonFunction ButtonMargins ButtonMinHeight ButtonNote ButtonNotebook ButtonSource ButtonStyle ButtonStyleMenuListing Byte ByteCount ByteOrdering C CachedValue CacheGraphics CalendarData CalendarType CallPacket CanberraDistance Cancel CancelButton CandlestickChart Cap CapForm CapitalDifferentialD CardinalBSplineBasis CarmichaelLambda Cases Cashflow Casoratian Catalan CatalanNumber Catch CauchyDistribution CauchyWindow CayleyGraph CDF CDFDeploy CDFInformation CDFWavelet Ceiling Cell CellAutoOverwrite CellBaseline CellBoundingBox CellBracketOptions CellChangeTimes CellContents CellContext CellDingbat CellDynamicExpression CellEditDuplicate CellElementsBoundingBox CellElementSpacings CellEpilog CellEvaluationDuplicate CellEvaluationFunction CellEventActions CellFrame CellFrameColor CellFrameLabelMargins CellFrameLabels CellFrameMargins CellGroup CellGroupData CellGrouping CellGroupingRules CellHorizontalScrolling CellID CellLabel CellLabelAutoDelete CellLabelMargins CellLabelPositioning CellMargins CellObject CellOpen CellPrint CellProlog Cells CellSize CellStyle CellTags CellularAutomaton CensoredDistribution Censoring Center CenterDot CentralMoment CentralMomentGeneratingFunction CForm ChampernowneNumber ChanVeseBinarize Character CharacterEncoding CharacterEncodingsPath CharacteristicFunction CharacteristicPolynomial CharacterRange Characters ChartBaseStyle ChartElementData ChartElementDataFunction ChartElementFunction ChartElements ChartLabels ChartLayout ChartLegends ChartStyle Chebyshev1FilterModel Chebyshev2FilterModel ChebyshevDistance ChebyshevT ChebyshevU Check CheckAbort CheckAll Checkbox CheckboxBar CheckboxBox CheckboxBoxOptions ChemicalData ChessboardDistance ChiDistribution ChineseRemainder ChiSquareDistribution ChoiceButtons ChoiceDialog CholeskyDecomposition Chop Circle CircleBox CircleDot CircleMinus CirclePlus CircleTimes CirculantGraph CityData Clear ClearAll ClearAttributes ClearSystemCache ClebschGordan ClickPane Clip ClipboardNotebook ClipFill ClippingStyle ClipPlanes ClipRange Clock ClockGauge ClockwiseContourIntegral Close Closed CloseKernels ClosenessCentrality Closing ClosingAutoSave ClosingEvent ClusteringComponents CMYKColor Coarse Coefficient CoefficientArrays CoefficientDomain CoefficientList CoefficientRules CoifletWavelet Collect Colon ColonForm ColorCombine ColorConvert ColorData ColorDataFunction ColorFunction ColorFunctionScaling Colorize ColorNegate ColorOutput ColorProfileData ColorQuantize ColorReplace ColorRules ColorSelectorSettings ColorSeparate ColorSetter ColorSetterBox ColorSetterBoxOptions ColorSlider ColorSpace Column ColumnAlignments ColumnBackgrounds ColumnForm ColumnLines ColumnsEqual ColumnSpacings ColumnWidths CommonDefaultFormatTypes Commonest CommonestFilter CommonUnits CommunityBoundaryStyle CommunityGraphPlot CommunityLabels CommunityRegionStyle CompatibleUnitQ CompilationOptions CompilationTarget Compile Compiled CompiledFunction Complement CompleteGraph CompleteGraphQ CompleteKaryTree CompletionsListPacket Complex Complexes ComplexExpand ComplexInfinity ComplexityFunction ComponentMeasurements ComponentwiseContextMenu Compose ComposeList ComposeSeries Composition CompoundExpression CompoundPoissonDistribution CompoundPoissonProcess CompoundRenewalProcess Compress CompressedData Condition ConditionalExpression Conditioned Cone ConeBox ConfidenceLevel ConfidenceRange ConfidenceTransform ConfigurationPath Congruent Conjugate ConjugateTranspose Conjunction Connect ConnectedComponents ConnectedGraphQ ConnesWindow ConoverTest ConsoleMessage ConsoleMessagePacket ConsolePrint Constant ConstantArray Constants ConstrainedMax ConstrainedMin ContentPadding ContentsBoundingBox ContentSelectable ContentSize Context ContextMenu Contexts ContextToFilename ContextToFileName Continuation Continue ContinuedFraction ContinuedFractionK ContinuousAction ContinuousMarkovProcess ContinuousTimeModelQ ContinuousWaveletData ContinuousWaveletTransform ContourDetect ContourGraphics ContourIntegral ContourLabels ContourLines ContourPlot ContourPlot3D Contours ContourShading ContourSmoothing ContourStyle ContraharmonicMean Control ControlActive ControlAlignment ControllabilityGramian ControllabilityMatrix ControllableDecomposition ControllableModelQ ControllerDuration ControllerInformation ControllerInformationData ControllerLinking ControllerManipulate ControllerMethod ControllerPath ControllerState ControlPlacement ControlsRendering ControlType Convergents ConversionOptions ConversionRules ConvertToBitmapPacket ConvertToPostScript ConvertToPostScriptPacket Convolve ConwayGroupCo1 ConwayGroupCo2 ConwayGroupCo3 CoordinateChartData CoordinatesToolOptions CoordinateTransform CoordinateTransformData CoprimeQ Coproduct CopulaDistribution Copyable CopyDirectory CopyFile CopyTag CopyToClipboard CornerFilter CornerNeighbors Correlation CorrelationDistance CorrelationFunction CorrelationTest Cos Cosh CoshIntegral CosineDistance CosineWindow CosIntegral Cot Coth Count CounterAssignments CounterBox CounterBoxOptions CounterClockwiseContourIntegral CounterEvaluator CounterFunction CounterIncrements CounterStyle CounterStyleMenuListing CountRoots CountryData Covariance CovarianceEstimatorFunction CovarianceFunction CoxianDistribution CoxIngersollRossProcess CoxModel CoxModelFit CramerVonMisesTest CreateArchive CreateDialog CreateDirectory CreateDocument CreateIntermediateDirectories CreatePalette CreatePalettePacket CreateScheduledTask CreateTemporary CreateWindow CriticalityFailureImportance CriticalitySuccessImportance CriticalSection Cross CrossingDetect CrossMatrix Csc Csch CubeRoot Cubics Cuboid CuboidBox Cumulant CumulantGeneratingFunction Cup CupCap Curl CurlyDoubleQuote CurlyQuote CurrentImage CurrentlySpeakingPacket CurrentValue CurvatureFlowFilter CurveClosed Cyan CycleGraph CycleIndexPolynomial Cycles CyclicGroup Cyclotomic Cylinder CylinderBox CylindricalDecomposition D DagumDistribution DamerauLevenshteinDistance DampingFactor Darker Dashed Dashing DataCompression DataDistribution DataRange DataReversed Date DateDelimiters DateDifference DateFunction DateList DateListLogPlot DateListPlot DatePattern DatePlus DateRange DateString DateTicksFormat DaubechiesWavelet DavisDistribution DawsonF DayCount DayCountConvention DayMatchQ DayName DayPlus DayRange DayRound DeBruijnGraph Debug DebugTag Decimal DeclareKnownSymbols DeclarePackage Decompose Decrement DedekindEta Default DefaultAxesStyle DefaultBaseStyle DefaultBoxStyle DefaultButton DefaultColor DefaultControlPlacement DefaultDuplicateCellStyle DefaultDuration DefaultElement DefaultFaceGridsStyle DefaultFieldHintStyle DefaultFont DefaultFontProperties DefaultFormatType DefaultFormatTypeForStyle DefaultFrameStyle DefaultFrameTicksStyle DefaultGridLinesStyle DefaultInlineFormatType DefaultInputFormatType DefaultLabelStyle DefaultMenuStyle DefaultNaturalLanguage DefaultNewCellStyle DefaultNewInlineCellStyle DefaultNotebook DefaultOptions DefaultOutputFormatType DefaultStyle DefaultStyleDefinitions DefaultTextFormatType DefaultTextInlineFormatType DefaultTicksStyle DefaultTooltipStyle DefaultValues Defer DefineExternal DefineInputStreamMethod DefineOutputStreamMethod Definition Degree DegreeCentrality DegreeGraphDistribution DegreeLexicographic DegreeReverseLexicographic Deinitialization Del Deletable Delete DeleteBorderComponents DeleteCases DeleteContents DeleteDirectory DeleteDuplicates DeleteFile DeleteSmallComponents DeleteWithContents DeletionWarning Delimiter DelimiterFlashTime DelimiterMatching Delimiters Denominator DensityGraphics DensityHistogram DensityPlot DependentVariables Deploy Deployed Depth DepthFirstScan Derivative DerivativeFilter DescriptorStateSpace DesignMatrix Det DGaussianWavelet DiacriticalPositioning Diagonal DiagonalMatrix Dialog DialogIndent DialogInput DialogLevel DialogNotebook DialogProlog DialogReturn DialogSymbols Diamond DiamondMatrix DiceDissimilarity DictionaryLookup DifferenceDelta DifferenceOrder DifferenceRoot DifferenceRootReduce Differences DifferentialD DifferentialRoot DifferentialRootReduce DifferentiatorFilter DigitBlock DigitBlockMinimum DigitCharacter DigitCount DigitQ DihedralGroup Dilation Dimensions DiracComb DiracDelta DirectedEdge DirectedEdges DirectedGraph DirectedGraphQ DirectedInfinity Direction Directive Directory DirectoryName DirectoryQ DirectoryStack DirichletCharacter DirichletConvolve DirichletDistribution DirichletL DirichletTransform DirichletWindow DisableConsolePrintPacket DiscreteChirpZTransform DiscreteConvolve DiscreteDelta DiscreteHadamardTransform DiscreteIndicator DiscreteLQEstimatorGains DiscreteLQRegulatorGains DiscreteLyapunovSolve DiscreteMarkovProcess DiscretePlot DiscretePlot3D DiscreteRatio DiscreteRiccatiSolve DiscreteShift DiscreteTimeModelQ DiscreteUniformDistribution DiscreteVariables DiscreteWaveletData DiscreteWaveletPacketTransform DiscreteWaveletTransform Discriminant Disjunction Disk DiskBox DiskMatrix Dispatch DispersionEstimatorFunction Display DisplayAllSteps DisplayEndPacket DisplayFlushImagePacket DisplayForm DisplayFunction DisplayPacket DisplayRules DisplaySetSizePacket DisplayString DisplayTemporary DisplayWith DisplayWithRef DisplayWithVariable DistanceFunction DistanceTransform Distribute Distributed DistributedContexts DistributeDefinitions DistributionChart DistributionDomain DistributionFitTest DistributionParameterAssumptions DistributionParameterQ Dithering Div Divergence Divide DivideBy Dividers Divisible Divisors DivisorSigma DivisorSum DMSList DMSString Do DockedCells DocumentNotebook DominantColors DOSTextFormat Dot DotDashed DotEqual Dotted DoubleBracketingBar DoubleContourIntegral DoubleDownArrow DoubleLeftArrow DoubleLeftRightArrow DoubleLeftTee DoubleLongLeftArrow DoubleLongLeftRightArrow DoubleLongRightArrow DoubleRightArrow DoubleRightTee DoubleUpArrow DoubleUpDownArrow DoubleVerticalBar DoublyInfinite Down DownArrow DownArrowBar DownArrowUpArrow DownLeftRightVector DownLeftTeeVector DownLeftVector DownLeftVectorBar DownRightTeeVector DownRightVector DownRightVectorBar Downsample DownTee DownTeeArrow DownValues DragAndDrop DrawEdges DrawFrontFaces DrawHighlighted Drop DSolve Dt DualLinearProgramming DualSystemsModel DumpGet DumpSave DuplicateFreeQ Dynamic DynamicBox DynamicBoxOptions DynamicEvaluationTimeout DynamicLocation DynamicModule DynamicModuleBox DynamicModuleBoxOptions DynamicModuleParent DynamicModuleValues DynamicName DynamicNamespace DynamicReference DynamicSetting DynamicUpdating DynamicWrapper DynamicWrapperBox DynamicWrapperBoxOptions E EccentricityCentrality EdgeAdd EdgeBetweennessCentrality EdgeCapacity EdgeCapForm EdgeColor EdgeConnectivity EdgeCost EdgeCount EdgeCoverQ EdgeDashing EdgeDelete EdgeDetect EdgeForm EdgeIndex EdgeJoinForm EdgeLabeling EdgeLabels EdgeLabelStyle EdgeList EdgeOpacity EdgeQ EdgeRenderingFunction EdgeRules EdgeShapeFunction EdgeStyle EdgeThickness EdgeWeight Editable EditButtonSettings EditCellTagsSettings EditDistance EffectiveInterest Eigensystem Eigenvalues EigenvectorCentrality Eigenvectors Element ElementData Eliminate EliminationOrder EllipticE EllipticExp EllipticExpPrime EllipticF EllipticFilterModel EllipticK EllipticLog EllipticNomeQ EllipticPi EllipticReducedHalfPeriods EllipticTheta EllipticThetaPrime EmitSound EmphasizeSyntaxErrors EmpiricalDistribution Empty EmptyGraphQ EnableConsolePrintPacket Enabled Encode End EndAdd EndDialogPacket EndFrontEndInteractionPacket EndOfFile EndOfLine EndOfString EndPackage EngineeringForm Enter EnterExpressionPacket EnterTextPacket Entropy EntropyFilter Environment Epilog Equal EqualColumns EqualRows EqualTilde EquatedTo Equilibrium EquirippleFilterKernel Equivalent Erf Erfc Erfi ErlangB ErlangC ErlangDistribution Erosion ErrorBox ErrorBoxOptions ErrorNorm ErrorPacket ErrorsDialogSettings EstimatedDistribution EstimatedProcess EstimatorGains EstimatorRegulator EuclideanDistance EulerE EulerGamma EulerianGraphQ EulerPhi Evaluatable Evaluate Evaluated EvaluatePacket EvaluationCell EvaluationCompletionAction EvaluationElements EvaluationMode EvaluationMonitor EvaluationNotebook EvaluationObject EvaluationOrder Evaluator EvaluatorNames EvenQ EventData EventEvaluator EventHandler EventHandlerTag EventLabels ExactBlackmanWindow ExactNumberQ ExactRootIsolation ExampleData Except ExcludedForms ExcludePods Exclusions ExclusionsStyle Exists Exit ExitDialog Exp Expand ExpandAll ExpandDenominator ExpandFileName ExpandNumerator Expectation ExpectationE ExpectedValue ExpGammaDistribution ExpIntegralE ExpIntegralEi Exponent ExponentFunction ExponentialDistribution ExponentialFamily ExponentialGeneratingFunction ExponentialMovingAverage ExponentialPowerDistribution ExponentPosition ExponentStep Export ExportAutoReplacements ExportPacket ExportString Expression ExpressionCell ExpressionPacket ExpToTrig ExtendedGCD Extension ExtentElementFunction ExtentMarkers ExtentSize ExternalCall ExternalDataCharacterEncoding Extract ExtractArchive ExtremeValueDistribution FaceForm FaceGrids FaceGridsStyle Factor FactorComplete Factorial Factorial2 FactorialMoment FactorialMomentGeneratingFunction FactorialPower FactorInteger FactorList FactorSquareFree FactorSquareFreeList FactorTerms FactorTermsList Fail FailureDistribution False FARIMAProcess FEDisableConsolePrintPacket FeedbackSector FeedbackSectorStyle FeedbackType FEEnableConsolePrintPacket Fibonacci FieldHint FieldHintStyle FieldMasked FieldSize File FileBaseName FileByteCount FileDate FileExistsQ FileExtension FileFormat FileHash FileInformation FileName FileNameDepth FileNameDialogSettings FileNameDrop FileNameJoin FileNames FileNameSetter FileNameSplit FileNameTake FilePrint FileType FilledCurve FilledCurveBox Filling FillingStyle FillingTransform FilterRules FinancialBond FinancialData FinancialDerivative FinancialIndicator Find FindArgMax FindArgMin FindClique FindClusters FindCurvePath FindDistributionParameters FindDivisions FindEdgeCover FindEdgeCut FindEulerianCycle FindFaces FindFile FindFit FindGeneratingFunction FindGeoLocation FindGeometricTransform FindGraphCommunities FindGraphIsomorphism FindGraphPartition FindHamiltonianCycle FindIndependentEdgeSet FindIndependentVertexSet FindInstance FindIntegerNullVector FindKClan FindKClique FindKClub FindKPlex FindLibrary FindLinearRecurrence FindList FindMaximum FindMaximumFlow FindMaxValue FindMinimum FindMinimumCostFlow FindMinimumCut FindMinValue FindPermutation FindPostmanTour FindProcessParameters FindRoot FindSequenceFunction FindSettings FindShortestPath FindShortestTour FindThreshold FindVertexCover FindVertexCut Fine FinishDynamic FiniteAbelianGroupCount FiniteGroupCount FiniteGroupData First FirstPassageTimeDistribution FischerGroupFi22 FischerGroupFi23 FischerGroupFi24Prime FisherHypergeometricDistribution FisherRatioTest FisherZDistribution Fit FitAll FittedModel FixedPoint FixedPointList FlashSelection Flat Flatten FlattenAt FlatTopWindow FlipView Floor FlushPrintOutputPacket Fold FoldList Font FontColor FontFamily FontForm FontName FontOpacity FontPostScriptName FontProperties FontReencoding FontSize FontSlant FontSubstitutions FontTracking FontVariations FontWeight For ForAll Format FormatRules FormatType FormatTypeAutoConvert FormatValues FormBox FormBoxOptions FortranForm Forward ForwardBackward Fourier FourierCoefficient FourierCosCoefficient FourierCosSeries FourierCosTransform FourierDCT FourierDCTFilter FourierDCTMatrix FourierDST FourierDSTMatrix FourierMatrix FourierParameters FourierSequenceTransform FourierSeries FourierSinCoefficient FourierSinSeries FourierSinTransform FourierTransform FourierTrigSeries FractionalBrownianMotionProcess FractionalPart FractionBox FractionBoxOptions FractionLine Frame FrameBox FrameBoxOptions Framed FrameInset FrameLabel Frameless FrameMargins FrameStyle FrameTicks FrameTicksStyle FRatioDistribution FrechetDistribution FreeQ FrequencySamplingFilterKernel FresnelC FresnelS Friday FrobeniusNumber FrobeniusSolve FromCharacterCode FromCoefficientRules FromContinuedFraction FromDate FromDigits FromDMS Front FrontEndDynamicExpression FrontEndEventActions FrontEndExecute FrontEndObject FrontEndResource FrontEndResourceString FrontEndStackSize FrontEndToken FrontEndTokenExecute FrontEndValueCache FrontEndVersion FrontFaceColor FrontFaceOpacity Full FullAxes FullDefinition FullForm FullGraphics FullOptions FullSimplify Function FunctionExpand FunctionInterpolation FunctionSpace FussellVeselyImportance GaborFilter GaborMatrix GaborWavelet GainMargins GainPhaseMargins Gamma GammaDistribution GammaRegularized GapPenalty Gather GatherBy GaugeFaceElementFunction GaugeFaceStyle GaugeFrameElementFunction GaugeFrameSize GaugeFrameStyle GaugeLabels GaugeMarkers GaugeStyle GaussianFilter GaussianIntegers GaussianMatrix GaussianWindow GCD GegenbauerC General GeneralizedLinearModelFit GenerateConditions GeneratedCell GeneratedParameters GeneratingFunction Generic GenericCylindricalDecomposition GenomeData GenomeLookup GeodesicClosing GeodesicDilation GeodesicErosion GeodesicOpening GeoDestination GeodesyData GeoDirection GeoDistance GeoGridPosition GeometricBrownianMotionProcess GeometricDistribution GeometricMean GeometricMeanFilter GeometricTransformation GeometricTransformation3DBox GeometricTransformation3DBoxOptions GeometricTransformationBox GeometricTransformationBoxOptions GeoPosition GeoPositionENU GeoPositionXYZ GeoProjectionData GestureHandler GestureHandlerTag Get GetBoundingBoxSizePacket GetContext GetEnvironment GetFileName GetFrontEndOptionsDataPacket GetLinebreakInformationPacket GetMenusPacket GetPageBreakInformationPacket Glaisher GlobalClusteringCoefficient GlobalPreferences GlobalSession Glow GoldenRatio GompertzMakehamDistribution GoodmanKruskalGamma GoodmanKruskalGammaTest Goto Grad Gradient GradientFilter GradientOrientationFilter Graph GraphAssortativity GraphCenter GraphComplement GraphData GraphDensity GraphDiameter GraphDifference GraphDisjointUnion GraphDistance GraphDistanceMatrix GraphElementData GraphEmbedding GraphHighlight GraphHighlightStyle GraphHub Graphics Graphics3D Graphics3DBox Graphics3DBoxOptions GraphicsArray GraphicsBaseline GraphicsBox GraphicsBoxOptions GraphicsColor GraphicsColumn GraphicsComplex GraphicsComplex3DBox GraphicsComplex3DBoxOptions GraphicsComplexBox GraphicsComplexBoxOptions GraphicsContents GraphicsData GraphicsGrid GraphicsGridBox GraphicsGroup GraphicsGroup3DBox GraphicsGroup3DBoxOptions GraphicsGroupBox GraphicsGroupBoxOptions GraphicsGrouping GraphicsHighlightColor GraphicsRow GraphicsSpacing GraphicsStyle GraphIntersection GraphLayout GraphLinkEfficiency GraphPeriphery GraphPlot GraphPlot3D GraphPower GraphPropertyDistribution GraphQ GraphRadius GraphReciprocity GraphRoot GraphStyle GraphUnion Gray GrayLevel GreatCircleDistance Greater GreaterEqual GreaterEqualLess GreaterFullEqual GreaterGreater GreaterLess GreaterSlantEqual GreaterTilde Green Grid GridBaseline GridBox GridBoxAlignment GridBoxBackground GridBoxDividers GridBoxFrame GridBoxItemSize GridBoxItemStyle GridBoxOptions GridBoxSpacings GridCreationSettings GridDefaultElement GridElementStyleOptions GridFrame GridFrameMargins GridGraph GridLines GridLinesStyle GroebnerBasis GroupActionBase GroupCentralizer GroupElementFromWord GroupElementPosition GroupElementQ GroupElements GroupElementToWord GroupGenerators GroupMultiplicationTable GroupOrbits GroupOrder GroupPageBreakWithin GroupSetwiseStabilizer GroupStabilizer GroupStabilizerChain Gudermannian GumbelDistribution HaarWavelet HadamardMatrix HalfNormalDistribution HamiltonianGraphQ HammingDistance HammingWindow HankelH1 HankelH2 HankelMatrix HannPoissonWindow HannWindow HaradaNortonGroupHN HararyGraph HarmonicMean HarmonicMeanFilter HarmonicNumber Hash HashTable Haversine HazardFunction Head HeadCompose Heads HeavisideLambda HeavisidePi HeavisideTheta HeldGroupHe HeldPart HelpBrowserLookup HelpBrowserNotebook HelpBrowserSettings HermiteDecomposition HermiteH HermitianMatrixQ HessenbergDecomposition Hessian HexadecimalCharacter Hexahedron HexahedronBox HexahedronBoxOptions HiddenSurface HighlightGraph HighlightImage HighpassFilter HigmanSimsGroupHS HilbertFilter HilbertMatrix Histogram Histogram3D HistogramDistribution HistogramList HistogramTransform HistogramTransformInterpolation HitMissTransform HITSCentrality HodgeDual HoeffdingD HoeffdingDTest Hold HoldAll HoldAllComplete HoldComplete HoldFirst HoldForm HoldPattern HoldRest HolidayCalendar HomeDirectory HomePage Horizontal HorizontalForm HorizontalGauge HorizontalScrollPosition HornerForm HotellingTSquareDistribution HoytDistribution HTMLSave Hue HumpDownHump HumpEqual HurwitzLerchPhi HurwitzZeta HyperbolicDistribution HypercubeGraph HyperexponentialDistribution Hyperfactorial Hypergeometric0F1 Hypergeometric0F1Regularized Hypergeometric1F1 Hypergeometric1F1Regularized Hypergeometric2F1 Hypergeometric2F1Regularized HypergeometricDistribution HypergeometricPFQ HypergeometricPFQRegularized HypergeometricU Hyperlink HyperlinkCreationSettings Hyphenation HyphenationOptions HypoexponentialDistribution HypothesisTestData I Identity IdentityMatrix If IgnoreCase Im Image Image3D Image3DSlices ImageAccumulate ImageAdd ImageAdjust ImageAlign ImageApply ImageAspectRatio ImageAssemble ImageCache ImageCacheValid ImageCapture ImageChannels ImageClip ImageColorSpace ImageCompose ImageConvolve ImageCooccurrence ImageCorners ImageCorrelate ImageCorrespondingPoints ImageCrop ImageData ImageDataPacket ImageDeconvolve ImageDemosaic ImageDifference ImageDimensions ImageDistance ImageEffect ImageFeatureTrack ImageFileApply ImageFileFilter ImageFileScan ImageFilter ImageForestingComponents ImageForwardTransformation ImageHistogram ImageKeypoints ImageLevels ImageLines ImageMargins ImageMarkers ImageMeasurements ImageMultiply ImageOffset ImagePad ImagePadding ImagePartition ImagePeriodogram ImagePerspectiveTransformation ImageQ ImageRangeCache ImageReflect ImageRegion ImageResize ImageResolution ImageRotate ImageRotated ImageScaled ImageScan ImageSize ImageSizeAction ImageSizeCache ImageSizeMultipliers ImageSizeRaw ImageSubtract ImageTake ImageTransformation ImageTrim ImageType ImageValue ImageValuePositions Implies Import ImportAutoReplacements ImportString ImprovementImportance In IncidenceGraph IncidenceList IncidenceMatrix IncludeConstantBasis IncludeFileExtension IncludePods IncludeSingularTerm Increment Indent IndentingNewlineSpacings IndentMaxFraction IndependenceTest IndependentEdgeSetQ IndependentUnit IndependentVertexSetQ Indeterminate IndexCreationOptions Indexed IndexGraph IndexTag Inequality InexactNumberQ InexactNumbers Infinity Infix Information Inherited InheritScope Initialization InitializationCell InitializationCellEvaluation InitializationCellWarning InlineCounterAssignments InlineCounterIncrements InlineRules Inner Inpaint Input InputAliases InputAssumptions InputAutoReplacements InputField InputFieldBox InputFieldBoxOptions InputForm InputGrouping InputNamePacket InputNotebook InputPacket InputSettings InputStream InputString InputStringPacket InputToBoxFormPacket Insert InsertionPointObject InsertResults Inset Inset3DBox Inset3DBoxOptions InsetBox InsetBoxOptions Install InstallService InString Integer IntegerDigits IntegerExponent IntegerLength IntegerPart IntegerPartitions IntegerQ Integers IntegerString Integral Integrate Interactive InteractiveTradingChart Interlaced Interleaving InternallyBalancedDecomposition InterpolatingFunction InterpolatingPolynomial Interpolation InterpolationOrder InterpolationPoints InterpolationPrecision Interpretation InterpretationBox InterpretationBoxOptions InterpretationFunction InterpretTemplate InterquartileRange Interrupt InterruptSettings Intersection Interval IntervalIntersection IntervalMemberQ IntervalUnion Inverse InverseBetaRegularized InverseCDF InverseChiSquareDistribution InverseContinuousWaveletTransform InverseDistanceTransform InverseEllipticNomeQ InverseErf InverseErfc InverseFourier InverseFourierCosTransform InverseFourierSequenceTransform InverseFourierSinTransform InverseFourierTransform InverseFunction InverseFunctions InverseGammaDistribution InverseGammaRegularized InverseGaussianDistribution InverseGudermannian InverseHaversine InverseJacobiCD InverseJacobiCN InverseJacobiCS InverseJacobiDC InverseJacobiDN InverseJacobiDS InverseJacobiNC InverseJacobiND InverseJacobiNS InverseJacobiSC InverseJacobiSD InverseJacobiSN InverseLaplaceTransform InversePermutation InverseRadon InverseSeries InverseSurvivalFunction InverseWaveletTransform InverseWeierstrassP InverseZTransform Invisible InvisibleApplication InvisibleTimes IrreduciblePolynomialQ IsolatingInterval IsomorphicGraphQ IsotopeData Italic Item ItemBox ItemBoxOptions ItemSize ItemStyle ItoProcess JaccardDissimilarity JacobiAmplitude Jacobian JacobiCD JacobiCN JacobiCS JacobiDC JacobiDN JacobiDS JacobiNC JacobiND JacobiNS JacobiP JacobiSC JacobiSD JacobiSN JacobiSymbol JacobiZeta JankoGroupJ1 JankoGroupJ2 JankoGroupJ3 JankoGroupJ4 JarqueBeraALMTest JohnsonDistribution Join Joined JoinedCurve JoinedCurveBox JoinForm JordanDecomposition JordanModelDecomposition K KagiChart KaiserBesselWindow KaiserWindow KalmanEstimator KalmanFilter KarhunenLoeveDecomposition KaryTree KatzCentrality KCoreComponents KDistribution KelvinBei KelvinBer KelvinKei KelvinKer KendallTau KendallTauTest KernelExecute KernelMixtureDistribution KernelObject Kernels Ket Khinchin KirchhoffGraph KirchhoffMatrix KleinInvariantJ KnightTourGraph KnotData KnownUnitQ KolmogorovSmirnovTest KroneckerDelta KroneckerModelDecomposition KroneckerProduct KroneckerSymbol KuiperTest KumaraswamyDistribution Kurtosis KuwaharaFilter Label Labeled LabeledSlider LabelingFunction LabelStyle LaguerreL LambdaComponents LambertW LanczosWindow LandauDistribution Language LanguageCategory LaplaceDistribution LaplaceTransform Laplacian LaplacianFilter LaplacianGaussianFilter Large Larger Last Latitude LatitudeLongitude LatticeData LatticeReduce Launch LaunchKernels LayeredGraphPlot LayerSizeFunction LayoutInformation LCM LeafCount LeapYearQ LeastSquares LeastSquaresFilterKernel Left LeftArrow LeftArrowBar LeftArrowRightArrow LeftDownTeeVector LeftDownVector LeftDownVectorBar LeftRightArrow LeftRightVector LeftTee LeftTeeArrow LeftTeeVector LeftTriangle LeftTriangleBar LeftTriangleEqual LeftUpDownVector LeftUpTeeVector LeftUpVector LeftUpVectorBar LeftVector LeftVectorBar LegendAppearance Legended LegendFunction LegendLabel LegendLayout LegendMargins LegendMarkers LegendMarkerSize LegendreP LegendreQ LegendreType Length LengthWhile LerchPhi Less LessEqual LessEqualGreater LessFullEqual LessGreater LessLess LessSlantEqual LessTilde LetterCharacter LetterQ Level LeveneTest LeviCivitaTensor LevyDistribution Lexicographic LibraryFunction LibraryFunctionError LibraryFunctionInformation LibraryFunctionLoad LibraryFunctionUnload LibraryLoad LibraryUnload LicenseID LiftingFilterData LiftingWaveletTransform LightBlue LightBrown LightCyan Lighter LightGray LightGreen Lighting LightingAngle LightMagenta LightOrange LightPink LightPurple LightRed LightSources LightYellow Likelihood Limit LimitsPositioning LimitsPositioningTokens LindleyDistribution Line Line3DBox LinearFilter LinearFractionalTransform LinearModelFit LinearOffsetFunction LinearProgramming LinearRecurrence LinearSolve LinearSolveFunction LineBox LineBreak LinebreakAdjustments LineBreakChart LineBreakWithin LineColor LineForm LineGraph LineIndent LineIndentMaxFraction LineIntegralConvolutionPlot LineIntegralConvolutionScale LineLegend LineOpacity LineSpacing LineWrapParts LinkActivate LinkClose LinkConnect LinkConnectedQ LinkCreate LinkError LinkFlush LinkFunction LinkHost LinkInterrupt LinkLaunch LinkMode LinkObject LinkOpen LinkOptions LinkPatterns LinkProtocol LinkRead LinkReadHeld LinkReadyQ Links LinkWrite LinkWriteHeld LiouvilleLambda List Listable ListAnimate ListContourPlot ListContourPlot3D ListConvolve ListCorrelate ListCurvePathPlot ListDeconvolve ListDensityPlot Listen ListFourierSequenceTransform ListInterpolation ListLineIntegralConvolutionPlot ListLinePlot ListLogLinearPlot ListLogLogPlot ListLogPlot ListPicker ListPickerBox ListPickerBoxBackground ListPickerBoxOptions ListPlay ListPlot ListPlot3D ListPointPlot3D ListPolarPlot ListQ ListStreamDensityPlot ListStreamPlot ListSurfacePlot3D ListVectorDensityPlot ListVectorPlot ListVectorPlot3D ListZTransform Literal LiteralSearch LocalClusteringCoefficient LocalizeVariables LocationEquivalenceTest LocationTest Locator LocatorAutoCreate LocatorBox LocatorBoxOptions LocatorCentering LocatorPane LocatorPaneBox LocatorPaneBoxOptions LocatorRegion Locked Log Log10 Log2 LogBarnesG LogGamma LogGammaDistribution LogicalExpand LogIntegral LogisticDistribution LogitModelFit LogLikelihood LogLinearPlot LogLogisticDistribution LogLogPlot LogMultinormalDistribution LogNormalDistribution LogPlot LogRankTest LogSeriesDistribution LongEqual Longest LongestAscendingSequence LongestCommonSequence LongestCommonSequencePositions LongestCommonSubsequence LongestCommonSubsequencePositions LongestMatch LongForm Longitude LongLeftArrow LongLeftRightArrow LongRightArrow Loopback LoopFreeGraphQ LowerCaseQ LowerLeftArrow LowerRightArrow LowerTriangularize LowpassFilter LQEstimatorGains LQGRegulator LQOutputRegulatorGains LQRegulatorGains LUBackSubstitution LucasL LuccioSamiComponents LUDecomposition LyapunovSolve LyonsGroupLy MachineID MachineName MachineNumberQ MachinePrecision MacintoshSystemPageSetup Magenta Magnification Magnify MainSolve MaintainDynamicCaches Majority MakeBoxes MakeExpression MakeRules MangoldtLambda ManhattanDistance Manipulate Manipulator MannWhitneyTest MantissaExponent Manual Map MapAll MapAt MapIndexed MAProcess MapThread MarcumQ MardiaCombinedTest MardiaKurtosisTest MardiaSkewnessTest MarginalDistribution MarkovProcessProperties Masking MatchingDissimilarity MatchLocalNameQ MatchLocalNames MatchQ Material MathematicaNotation MathieuC MathieuCharacteristicA MathieuCharacteristicB MathieuCharacteristicExponent MathieuCPrime MathieuGroupM11 MathieuGroupM12 MathieuGroupM22 MathieuGroupM23 MathieuGroupM24 MathieuS MathieuSPrime MathMLForm MathMLText Matrices MatrixExp MatrixForm MatrixFunction MatrixLog MatrixPlot MatrixPower MatrixQ MatrixRank Max MaxBend MaxDetect MaxExtraBandwidths MaxExtraConditions MaxFeatures MaxFilter Maximize MaxIterations MaxMemoryUsed MaxMixtureKernels MaxPlotPoints MaxPoints MaxRecursion MaxStableDistribution MaxStepFraction MaxSteps MaxStepSize MaxValue MaxwellDistribution McLaughlinGroupMcL Mean MeanClusteringCoefficient MeanDegreeConnectivity MeanDeviation MeanFilter MeanGraphDistance MeanNeighborDegree MeanShift MeanShiftFilter Median MedianDeviation MedianFilter Medium MeijerG MeixnerDistribution MemberQ MemoryConstrained MemoryInUse Menu MenuAppearance MenuCommandKey MenuEvaluator MenuItem MenuPacket MenuSortingValue MenuStyle MenuView MergeDifferences Mesh MeshFunctions MeshRange MeshShading MeshStyle Message MessageDialog MessageList MessageName MessageOptions MessagePacket Messages MessagesNotebook MetaCharacters MetaInformation Method MethodOptions MexicanHatWavelet MeyerWavelet Min MinDetect MinFilter MinimalPolynomial MinimalStateSpaceModel Minimize Minors MinRecursion MinSize MinStableDistribution Minus MinusPlus MinValue Missing MissingDataMethod MittagLefflerE MixedRadix MixedRadixQuantity MixtureDistribution Mod Modal Mode Modular ModularLambda Module Modulus MoebiusMu Moment Momentary MomentConvert MomentEvaluate MomentGeneratingFunction Monday Monitor MonomialList MonomialOrder MonsterGroupM MorletWavelet MorphologicalBinarize MorphologicalBranchPoints MorphologicalComponents MorphologicalEulerNumber MorphologicalGraph MorphologicalPerimeter MorphologicalTransform Most MouseAnnotation MouseAppearance MouseAppearanceTag MouseButtons Mouseover MousePointerNote MousePosition MovingAverage MovingMedian MoyalDistribution MultiedgeStyle MultilaunchWarning MultiLetterItalics MultiLetterStyle MultilineFunction Multinomial MultinomialDistribution MultinormalDistribution MultiplicativeOrder Multiplicity Multiselection MultivariateHypergeometricDistribution MultivariatePoissonDistribution MultivariateTDistribution N NakagamiDistribution NameQ Names NamespaceBox Nand NArgMax NArgMin NBernoulliB NCache NDSolve NDSolveValue Nearest NearestFunction NeedCurrentFrontEndPackagePacket NeedCurrentFrontEndSymbolsPacket NeedlemanWunschSimilarity Needs Negative NegativeBinomialDistribution NegativeMultinomialDistribution NeighborhoodGraph Nest NestedGreaterGreater NestedLessLess NestedScriptRules NestList NestWhile NestWhileList NevilleThetaC NevilleThetaD NevilleThetaN NevilleThetaS NewPrimitiveStyle NExpectation Next NextPrime NHoldAll NHoldFirst NHoldRest NicholsGridLines NicholsPlot NIntegrate NMaximize NMaxValue NMinimize NMinValue NominalVariables NonAssociative NoncentralBetaDistribution NoncentralChiSquareDistribution NoncentralFRatioDistribution NoncentralStudentTDistribution NonCommutativeMultiply NonConstants None NonlinearModelFit NonlocalMeansFilter NonNegative NonPositive Nor NorlundB Norm Normal NormalDistribution NormalGrouping Normalize NormalizedSquaredEuclideanDistance NormalsFunction NormFunction Not NotCongruent NotCupCap NotDoubleVerticalBar Notebook NotebookApply NotebookAutoSave NotebookClose NotebookConvertSettings NotebookCreate NotebookCreateReturnObject NotebookDefault NotebookDelete NotebookDirectory NotebookDynamicExpression NotebookEvaluate NotebookEventActions NotebookFileName NotebookFind NotebookFindReturnObject NotebookGet NotebookGetLayoutInformationPacket NotebookGetMisspellingsPacket NotebookInformation NotebookInterfaceObject NotebookLocate NotebookObject NotebookOpen NotebookOpenReturnObject NotebookPath NotebookPrint NotebookPut NotebookPutReturnObject NotebookRead NotebookResetGeneratedCells Notebooks NotebookSave NotebookSaveAs NotebookSelection NotebookSetupLayoutInformationPacket NotebooksMenu NotebookWrite NotElement NotEqualTilde NotExists NotGreater NotGreaterEqual NotGreaterFullEqual NotGreaterGreater NotGreaterLess NotGreaterSlantEqual NotGreaterTilde NotHumpDownHump NotHumpEqual NotLeftTriangle NotLeftTriangleBar NotLeftTriangleEqual NotLess NotLessEqual NotLessFullEqual NotLessGreater NotLessLess NotLessSlantEqual NotLessTilde NotNestedGreaterGreater NotNestedLessLess NotPrecedes NotPrecedesEqual NotPrecedesSlantEqual NotPrecedesTilde NotReverseElement NotRightTriangle NotRightTriangleBar NotRightTriangleEqual NotSquareSubset NotSquareSubsetEqual NotSquareSuperset NotSquareSupersetEqual NotSubset NotSubsetEqual NotSucceeds NotSucceedsEqual NotSucceedsSlantEqual NotSucceedsTilde NotSuperset NotSupersetEqual NotTilde NotTildeEqual NotTildeFullEqual NotTildeTilde NotVerticalBar NProbability NProduct NProductFactors NRoots NSolve NSum NSumTerms Null NullRecords NullSpace NullWords Number NumberFieldClassNumber NumberFieldDiscriminant NumberFieldFundamentalUnits NumberFieldIntegralBasis NumberFieldNormRepresentatives NumberFieldRegulator NumberFieldRootsOfUnity NumberFieldSignature NumberForm NumberFormat NumberMarks NumberMultiplier NumberPadding NumberPoint NumberQ NumberSeparator NumberSigns NumberString Numerator NumericFunction NumericQ NuttallWindow NValues NyquistGridLines NyquistPlot O ObservabilityGramian ObservabilityMatrix ObservableDecomposition ObservableModelQ OddQ Off Offset OLEData On ONanGroupON OneIdentity Opacity Open OpenAppend Opener OpenerBox OpenerBoxOptions OpenerView OpenFunctionInspectorPacket Opening OpenRead OpenSpecialOptions OpenTemporary OpenWrite Operate OperatingSystem OptimumFlowData Optional OptionInspectorSettings OptionQ Options OptionsPacket OptionsPattern OptionValue OptionValueBox OptionValueBoxOptions Or Orange Order OrderDistribution OrderedQ Ordering Orderless OrnsteinUhlenbeckProcess Orthogonalize Out Outer OutputAutoOverwrite OutputControllabilityMatrix OutputControllableModelQ OutputForm OutputFormData OutputGrouping OutputMathEditExpression OutputNamePacket OutputResponse OutputSizeLimit OutputStream Over OverBar OverDot Overflow OverHat Overlaps Overlay OverlayBox OverlayBoxOptions Overscript OverscriptBox OverscriptBoxOptions OverTilde OverVector OwenT OwnValues PackingMethod PaddedForm Padding PadeApproximant PadLeft PadRight PageBreakAbove PageBreakBelow PageBreakWithin PageFooterLines PageFooters PageHeaderLines PageHeaders PageHeight PageRankCentrality PageWidth PairedBarChart PairedHistogram PairedSmoothHistogram PairedTTest PairedZTest PaletteNotebook PalettePath Pane PaneBox PaneBoxOptions Panel PanelBox PanelBoxOptions Paneled PaneSelector PaneSelectorBox PaneSelectorBoxOptions PaperWidth ParabolicCylinderD ParagraphIndent ParagraphSpacing ParallelArray ParallelCombine ParallelDo ParallelEvaluate Parallelization Parallelize ParallelMap ParallelNeeds ParallelProduct ParallelSubmit ParallelSum ParallelTable ParallelTry Parameter ParameterEstimator ParameterMixtureDistribution ParameterVariables ParametricFunction ParametricNDSolve ParametricNDSolveValue ParametricPlot ParametricPlot3D ParentConnect ParentDirectory ParentForm Parenthesize ParentList ParetoDistribution Part PartialCorrelationFunction PartialD ParticleData Partition PartitionsP PartitionsQ ParzenWindow PascalDistribution PassEventsDown PassEventsUp Paste PasteBoxFormInlineCells PasteButton Path PathGraph PathGraphQ Pattern PatternSequence PatternTest PauliMatrix PaulWavelet Pause PausedTime PDF PearsonChiSquareTest PearsonCorrelationTest PearsonDistribution PerformanceGoal PeriodicInterpolation Periodogram PeriodogramArray PermutationCycles PermutationCyclesQ PermutationGroup PermutationLength PermutationList PermutationListQ PermutationMax PermutationMin PermutationOrder PermutationPower PermutationProduct PermutationReplace Permutations PermutationSupport Permute PeronaMalikFilter Perpendicular PERTDistribution PetersenGraph PhaseMargins Pi Pick PIDData PIDDerivativeFilter PIDFeedforward PIDTune Piecewise PiecewiseExpand PieChart PieChart3D PillaiTrace PillaiTraceTest Pink Pivoting PixelConstrained PixelValue PixelValuePositions Placed Placeholder PlaceholderReplace Plain PlanarGraphQ Play PlayRange Plot Plot3D Plot3Matrix PlotDivision PlotJoined PlotLabel PlotLayout PlotLegends PlotMarkers PlotPoints PlotRange PlotRangeClipping PlotRangePadding PlotRegion PlotStyle Plus PlusMinus Pochhammer PodStates PodWidth Point Point3DBox PointBox PointFigureChart PointForm PointLegend PointSize PoissonConsulDistribution PoissonDistribution PoissonProcess PoissonWindow PolarAxes PolarAxesOrigin PolarGridLines PolarPlot PolarTicks PoleZeroMarkers PolyaAeppliDistribution PolyGamma Polygon Polygon3DBox Polygon3DBoxOptions PolygonBox PolygonBoxOptions PolygonHoleScale PolygonIntersections PolygonScale PolyhedronData PolyLog PolynomialExtendedGCD PolynomialForm PolynomialGCD PolynomialLCM PolynomialMod PolynomialQ PolynomialQuotient PolynomialQuotientRemainder PolynomialReduce PolynomialRemainder Polynomials PopupMenu PopupMenuBox PopupMenuBoxOptions PopupView PopupWindow Position Positive PositiveDefiniteMatrixQ PossibleZeroQ Postfix PostScript Power PowerDistribution PowerExpand PowerMod PowerModList PowerSpectralDensity PowersRepresentations PowerSymmetricPolynomial Precedence PrecedenceForm Precedes PrecedesEqual PrecedesSlantEqual PrecedesTilde Precision PrecisionGoal PreDecrement PredictionRoot PreemptProtect PreferencesPath Prefix PreIncrement Prepend PrependTo PreserveImageOptions Previous PriceGraphDistribution PrimaryPlaceholder Prime PrimeNu PrimeOmega PrimePi PrimePowerQ PrimeQ Primes PrimeZetaP PrimitiveRoot PrincipalComponents PrincipalValue Print PrintAction PrintForm PrintingCopies PrintingOptions PrintingPageRange PrintingStartingPageNumber PrintingStyleEnvironment PrintPrecision PrintTemporary Prism PrismBox PrismBoxOptions PrivateCellOptions PrivateEvaluationOptions PrivateFontOptions PrivateFrontEndOptions PrivateNotebookOptions PrivatePaths Probability ProbabilityDistribution ProbabilityPlot ProbabilityPr ProbabilityScalePlot ProbitModelFit ProcessEstimator ProcessParameterAssumptions ProcessParameterQ ProcessStateDomain ProcessTimeDomain Product ProductDistribution ProductLog ProgressIndicator ProgressIndicatorBox ProgressIndicatorBoxOptions Projection Prolog PromptForm Properties Property PropertyList PropertyValue Proportion Proportional Protect Protected ProteinData Pruning PseudoInverse Purple Put PutAppend Pyramid PyramidBox PyramidBoxOptions QBinomial QFactorial QGamma QHypergeometricPFQ QPochhammer QPolyGamma QRDecomposition QuadraticIrrationalQ Quantile QuantilePlot Quantity QuantityForm QuantityMagnitude QuantityQ QuantityUnit Quartics QuartileDeviation Quartiles QuartileSkewness QueueingNetworkProcess QueueingProcess QueueProperties Quiet Quit Quotient QuotientRemainder RadialityCentrality RadicalBox RadicalBoxOptions RadioButton RadioButtonBar RadioButtonBox RadioButtonBoxOptions Radon RamanujanTau RamanujanTauL RamanujanTauTheta RamanujanTauZ Random RandomChoice RandomComplex RandomFunction RandomGraph RandomImage RandomInteger RandomPermutation RandomPrime RandomReal RandomSample RandomSeed RandomVariate RandomWalkProcess Range RangeFilter RangeSpecification RankedMax RankedMin Raster Raster3D Raster3DBox Raster3DBoxOptions RasterArray RasterBox RasterBoxOptions Rasterize RasterSize Rational RationalFunctions Rationalize Rationals Ratios Raw RawArray RawBoxes RawData RawMedium RayleighDistribution Re Read ReadList ReadProtected Real RealBlockDiagonalForm RealDigits RealExponent Reals Reap Record RecordLists RecordSeparators Rectangle RectangleBox RectangleBoxOptions RectangleChart RectangleChart3D RecurrenceFilter RecurrenceTable RecurringDigitsForm Red Reduce RefBox ReferenceLineStyle ReferenceMarkers ReferenceMarkerStyle Refine ReflectionMatrix ReflectionTransform Refresh RefreshRate RegionBinarize RegionFunction RegionPlot RegionPlot3D RegularExpression Regularization Reinstall Release ReleaseHold ReliabilityDistribution ReliefImage ReliefPlot Remove RemoveAlphaChannel RemoveAsynchronousTask Removed RemoveInputStreamMethod RemoveOutputStreamMethod RemoveProperty RemoveScheduledTask RenameDirectory RenameFile RenderAll RenderingOptions RenewalProcess RenkoChart Repeated RepeatedNull RepeatedString Replace ReplaceAll ReplaceHeldPart ReplaceImageValue ReplaceList ReplacePart ReplacePixelValue ReplaceRepeated Resampling Rescale RescalingTransform ResetDirectory ResetMenusPacket ResetScheduledTask Residue Resolve Rest Resultant ResumePacket Return ReturnExpressionPacket ReturnInputFormPacket ReturnPacket ReturnTextPacket Reverse ReverseBiorthogonalSplineWavelet ReverseElement ReverseEquilibrium ReverseGraph ReverseUpEquilibrium RevolutionAxis RevolutionPlot3D RGBColor RiccatiSolve RiceDistribution RidgeFilter RiemannR RiemannSiegelTheta RiemannSiegelZ Riffle Right RightArrow RightArrowBar RightArrowLeftArrow RightCosetRepresentative RightDownTeeVector RightDownVector RightDownVectorBar RightTee RightTeeArrow RightTeeVector RightTriangle RightTriangleBar RightTriangleEqual RightUpDownVector RightUpTeeVector RightUpVector RightUpVectorBar RightVector RightVectorBar RiskAchievementImportance RiskReductionImportance RogersTanimotoDissimilarity Root RootApproximant RootIntervals RootLocusPlot RootMeanSquare RootOfUnityQ RootReduce Roots RootSum Rotate RotateLabel RotateLeft RotateRight RotationAction RotationBox RotationBoxOptions RotationMatrix RotationTransform Round RoundImplies RoundingRadius Row RowAlignments RowBackgrounds RowBox RowHeights RowLines RowMinHeight RowReduce RowsEqual RowSpacings RSolve RudvalisGroupRu Rule RuleCondition RuleDelayed RuleForm RulerUnits Run RunScheduledTask RunThrough RuntimeAttributes RuntimeOptions RussellRaoDissimilarity SameQ SameTest SampleDepth SampledSoundFunction SampledSoundList SampleRate SamplingPeriod SARIMAProcess SARMAProcess SatisfiabilityCount SatisfiabilityInstances SatisfiableQ Saturday Save Saveable SaveAutoDelete SaveDefinitions SawtoothWave Scale Scaled ScaleDivisions ScaledMousePosition ScaleOrigin ScalePadding ScaleRanges ScaleRangeStyle ScalingFunctions ScalingMatrix ScalingTransform Scan ScheduledTaskActiveQ ScheduledTaskData ScheduledTaskObject ScheduledTasks SchurDecomposition ScientificForm ScreenRectangle ScreenStyleEnvironment ScriptBaselineShifts ScriptLevel ScriptMinSize ScriptRules ScriptSizeMultipliers Scrollbars ScrollingOptions ScrollPosition Sec Sech SechDistribution SectionGrouping SectorChart SectorChart3D SectorOrigin SectorSpacing SeedRandom Select Selectable SelectComponents SelectedCells SelectedNotebook Selection SelectionAnimate SelectionCell SelectionCellCreateCell SelectionCellDefaultStyle SelectionCellParentStyle SelectionCreateCell SelectionDebuggerTag SelectionDuplicateCell SelectionEvaluate SelectionEvaluateCreateCell SelectionMove SelectionPlaceholder SelectionSetStyle SelectWithContents SelfLoops SelfLoopStyle SemialgebraicComponentInstances SendMail Sequence SequenceAlignment SequenceForm SequenceHold SequenceLimit Series SeriesCoefficient SeriesData SessionTime Set SetAccuracy SetAlphaChannel SetAttributes Setbacks SetBoxFormNamesPacket SetDelayed SetDirectory SetEnvironment SetEvaluationNotebook SetFileDate SetFileLoadingContext SetNotebookStatusLine SetOptions SetOptionsPacket SetPrecision SetProperty SetSelectedNotebook SetSharedFunction SetSharedVariable SetSpeechParametersPacket SetStreamPosition SetSystemOptions Setter SetterBar SetterBox SetterBoxOptions Setting SetValue Shading Shallow ShannonWavelet ShapiroWilkTest Share Sharpen ShearingMatrix ShearingTransform ShenCastanMatrix Short ShortDownArrow Shortest ShortestMatch ShortestPathFunction ShortLeftArrow ShortRightArrow ShortUpArrow Show ShowAutoStyles ShowCellBracket ShowCellLabel ShowCellTags ShowClosedCellArea ShowContents ShowControls ShowCursorTracker ShowGroupOpenCloseIcon ShowGroupOpener ShowInvisibleCharacters ShowPageBreaks ShowPredictiveInterface ShowSelection ShowShortBoxForm ShowSpecialCharacters ShowStringCharacters ShowSyntaxStyles ShrinkingDelay ShrinkWrapBoundingBox SiegelTheta SiegelTukeyTest Sign Signature SignedRankTest SignificanceLevel SignPadding SignTest SimilarityRules SimpleGraph SimpleGraphQ Simplify Sin Sinc SinghMaddalaDistribution SingleEvaluation SingleLetterItalics SingleLetterStyle SingularValueDecomposition SingularValueList SingularValuePlot SingularValues Sinh SinhIntegral SinIntegral SixJSymbol Skeleton SkeletonTransform SkellamDistribution Skewness SkewNormalDistribution Skip SliceDistribution Slider Slider2D Slider2DBox Slider2DBoxOptions SliderBox SliderBoxOptions SlideView Slot SlotSequence Small SmallCircle Smaller SmithDelayCompensator SmithWatermanSimilarity SmoothDensityHistogram SmoothHistogram SmoothHistogram3D SmoothKernelDistribution SocialMediaData Socket SokalSneathDissimilarity Solve SolveAlways SolveDelayed Sort SortBy Sound SoundAndGraphics SoundNote SoundVolume Sow Space SpaceForm Spacer Spacings Span SpanAdjustments SpanCharacterRounding SpanFromAbove SpanFromBoth SpanFromLeft SpanLineThickness SpanMaxSize SpanMinSize SpanningCharacters SpanSymmetric SparseArray SpatialGraphDistribution Speak SpeakTextPacket SpearmanRankTest SpearmanRho Spectrogram SpectrogramArray Specularity SpellingCorrection SpellingDictionaries SpellingDictionariesPath SpellingOptions SpellingSuggestionsPacket Sphere SphereBox SphericalBesselJ SphericalBesselY SphericalHankelH1 SphericalHankelH2 SphericalHarmonicY SphericalPlot3D SphericalRegion SpheroidalEigenvalue SpheroidalJoiningFactor SpheroidalPS SpheroidalPSPrime SpheroidalQS SpheroidalQSPrime SpheroidalRadialFactor SpheroidalS1 SpheroidalS1Prime SpheroidalS2 SpheroidalS2Prime Splice SplicedDistribution SplineClosed SplineDegree SplineKnots SplineWeights Split SplitBy SpokenString Sqrt SqrtBox SqrtBoxOptions Square SquaredEuclideanDistance SquareFreeQ SquareIntersection SquaresR SquareSubset SquareSubsetEqual SquareSuperset SquareSupersetEqual SquareUnion SquareWave StabilityMargins StabilityMarginsStyle StableDistribution Stack StackBegin StackComplete StackInhibit StandardDeviation StandardDeviationFilter StandardForm Standardize StandbyDistribution Star StarGraph StartAsynchronousTask StartingStepSize StartOfLine StartOfString StartScheduledTask StartupSound StateDimensions StateFeedbackGains StateOutputEstimator StateResponse StateSpaceModel StateSpaceRealization StateSpaceTransform StationaryDistribution StationaryWaveletPacketTransform StationaryWaveletTransform StatusArea StatusCentrality StepMonitor StieltjesGamma StirlingS1 StirlingS2 StopAsynchronousTask StopScheduledTask StrataVariables StratonovichProcess StreamColorFunction StreamColorFunctionScaling StreamDensityPlot StreamPlot StreamPoints StreamPosition Streams StreamScale StreamStyle String StringBreak StringByteCount StringCases StringCount StringDrop StringExpression StringForm StringFormat StringFreeQ StringInsert StringJoin StringLength StringMatchQ StringPosition StringQ StringReplace StringReplaceList StringReplacePart StringReverse StringRotateLeft StringRotateRight StringSkeleton StringSplit StringTake StringToStream StringTrim StripBoxes StripOnInput StripWrapperBoxes StrokeForm StructuralImportance StructuredArray StructuredSelection StruveH StruveL Stub StudentTDistribution Style StyleBox StyleBoxAutoDelete StyleBoxOptions StyleData StyleDefinitions StyleForm StyleKeyMapping StyleMenuListing StyleNameDialogSettings StyleNames StylePrint StyleSheetPath Subfactorial Subgraph SubMinus SubPlus SubresultantPolynomialRemainders SubresultantPolynomials Subresultants Subscript SubscriptBox SubscriptBoxOptions Subscripted Subset SubsetEqual Subsets SubStar Subsuperscript SubsuperscriptBox SubsuperscriptBoxOptions Subtract SubtractFrom SubValues Succeeds SucceedsEqual SucceedsSlantEqual SucceedsTilde SuchThat Sum SumConvergence Sunday SuperDagger SuperMinus SuperPlus Superscript SuperscriptBox SuperscriptBoxOptions Superset SupersetEqual SuperStar Surd SurdForm SurfaceColor SurfaceGraphics SurvivalDistribution SurvivalFunction SurvivalModel SurvivalModelFit SuspendPacket SuzukiDistribution SuzukiGroupSuz SwatchLegend Switch Symbol SymbolName SymletWavelet Symmetric SymmetricGroup SymmetricMatrixQ SymmetricPolynomial SymmetricReduction Symmetrize SymmetrizedArray SymmetrizedArrayRules SymmetrizedDependentComponents SymmetrizedIndependentComponents SymmetrizedReplacePart SynchronousInitialization SynchronousUpdating Syntax SyntaxForm SyntaxInformation SyntaxLength SyntaxPacket SyntaxQ SystemDialogInput SystemException SystemHelpPath SystemInformation SystemInformationData SystemOpen SystemOptions SystemsModelDelay SystemsModelDelayApproximate SystemsModelDelete SystemsModelDimensions SystemsModelExtract SystemsModelFeedbackConnect SystemsModelLabels SystemsModelOrder SystemsModelParallelConnect SystemsModelSeriesConnect SystemsModelStateFeedbackConnect SystemStub Tab TabFilling Table TableAlignments TableDepth TableDirections TableForm TableHeadings TableSpacing TableView TableViewBox TabSpacings TabView TabViewBox TabViewBoxOptions TagBox TagBoxNote TagBoxOptions TaggingRules TagSet TagSetDelayed TagStyle TagUnset Take TakeWhile Tally Tan Tanh TargetFunctions TargetUnits TautologyQ TelegraphProcess TemplateBox TemplateBoxOptions TemplateSlotSequence TemporalData Temporary TemporaryVariable TensorContract TensorDimensions TensorExpand TensorProduct TensorQ TensorRank TensorReduce TensorSymmetry TensorTranspose TensorWedge Tetrahedron TetrahedronBox TetrahedronBoxOptions TeXForm TeXSave Text Text3DBox Text3DBoxOptions TextAlignment TextBand TextBoundingBox TextBox TextCell TextClipboardType TextData TextForm TextJustification TextLine TextPacket TextParagraph TextRecognize TextRendering TextStyle Texture TextureCoordinateFunction TextureCoordinateScaling Therefore ThermometerGauge Thick Thickness Thin Thinning ThisLink ThompsonGroupTh Thread ThreeJSymbol Threshold Through Throw Thumbnail Thursday Ticks TicksStyle Tilde TildeEqual TildeFullEqual TildeTilde TimeConstrained TimeConstraint Times TimesBy TimeSeriesForecast TimeSeriesInvertibility TimeUsed TimeValue TimeZone Timing Tiny TitleGrouping TitsGroupT ToBoxes ToCharacterCode ToColor ToContinuousTimeModel ToDate ToDiscreteTimeModel ToeplitzMatrix ToExpression ToFileName Together Toggle ToggleFalse Toggler TogglerBar TogglerBox TogglerBoxOptions ToHeldExpression ToInvertibleTimeSeries TokenWords Tolerance ToLowerCase ToNumberField TooBig Tooltip TooltipBox TooltipBoxOptions TooltipDelay TooltipStyle Top TopHatTransform TopologicalSort ToRadicals ToRules ToString Total TotalHeight TotalVariationFilter TotalWidth TouchscreenAutoZoom TouchscreenControlPlacement ToUpperCase Tr Trace TraceAbove TraceAction TraceBackward TraceDepth TraceDialog TraceForward TraceInternal TraceLevel TraceOff TraceOn TraceOriginal TracePrint TraceScan TrackedSymbols TradingChart TraditionalForm TraditionalFunctionNotation TraditionalNotation TraditionalOrder TransferFunctionCancel TransferFunctionExpand TransferFunctionFactor TransferFunctionModel TransferFunctionPoles TransferFunctionTransform TransferFunctionZeros TransformationFunction TransformationFunctions TransformationMatrix TransformedDistribution TransformedField Translate TranslationTransform TransparentColor Transpose TreeForm TreeGraph TreeGraphQ TreePlot TrendStyle TriangleWave TriangularDistribution Trig TrigExpand TrigFactor TrigFactorList Trigger TrigReduce TrigToExp TrimmedMean True TrueQ TruncatedDistribution TsallisQExponentialDistribution TsallisQGaussianDistribution TTest Tube TubeBezierCurveBox TubeBezierCurveBoxOptions TubeBox TubeBSplineCurveBox TubeBSplineCurveBoxOptions Tuesday TukeyLambdaDistribution TukeyWindow Tuples TuranGraph TuringMachine Transparent UnateQ Uncompress Undefined UnderBar Underflow Underlined Underoverscript UnderoverscriptBox UnderoverscriptBoxOptions Underscript UnderscriptBox UnderscriptBoxOptions UndirectedEdge UndirectedGraph UndirectedGraphQ UndocumentedTestFEParserPacket UndocumentedTestGetSelectionPacket Unequal Unevaluated UniformDistribution UniformGraphDistribution UniformSumDistribution Uninstall Union UnionPlus Unique UnitBox UnitConvert UnitDimensions Unitize UnitRootTest UnitSimplify UnitStep UnitTriangle UnitVector Unprotect UnsameQ UnsavedVariables Unset UnsetShared UntrackedVariables Up UpArrow UpArrowBar UpArrowDownArrow Update UpdateDynamicObjects UpdateDynamicObjectsSynchronous UpdateInterval UpDownArrow UpEquilibrium UpperCaseQ UpperLeftArrow UpperRightArrow UpperTriangularize Upsample UpSet UpSetDelayed UpTee UpTeeArrow UpValues URL URLFetch URLFetchAsynchronous URLSave URLSaveAsynchronous UseGraphicsRange Using UsingFrontEnd V2Get ValidationLength Value ValueBox ValueBoxOptions ValueForm ValueQ ValuesData Variables Variance VarianceEquivalenceTest VarianceEstimatorFunction VarianceGammaDistribution VarianceTest VectorAngle VectorColorFunction VectorColorFunctionScaling VectorDensityPlot VectorGlyphData VectorPlot VectorPlot3D VectorPoints VectorQ Vectors VectorScale VectorStyle Vee Verbatim Verbose VerboseConvertToPostScriptPacket VerifyConvergence VerifySolutions VerifyTestAssumptions Version VersionNumber VertexAdd VertexCapacity VertexColors VertexComponent VertexConnectivity VertexCoordinateRules VertexCoordinates VertexCorrelationSimilarity VertexCosineSimilarity VertexCount VertexCoverQ VertexDataCoordinates VertexDegree VertexDelete VertexDiceSimilarity VertexEccentricity VertexInComponent VertexInDegree VertexIndex VertexJaccardSimilarity VertexLabeling VertexLabels VertexLabelStyle VertexList VertexNormals VertexOutComponent VertexOutDegree VertexQ VertexRenderingFunction VertexReplace VertexShape VertexShapeFunction VertexSize VertexStyle VertexTextureCoordinates VertexWeight Vertical VerticalBar VerticalForm VerticalGauge VerticalSeparator VerticalSlider VerticalTilde ViewAngle ViewCenter ViewMatrix ViewPoint ViewPointSelectorSettings ViewPort ViewRange ViewVector ViewVertical VirtualGroupData Visible VisibleCell VoigtDistribution VonMisesDistribution WaitAll WaitAsynchronousTask WaitNext WaitUntil WakebyDistribution WalleniusHypergeometricDistribution WaringYuleDistribution WatershedComponents WatsonUSquareTest WattsStrogatzGraphDistribution WaveletBestBasis WaveletFilterCoefficients WaveletImagePlot WaveletListPlot WaveletMapIndexed WaveletMatrixPlot WaveletPhi WaveletPsi WaveletScale WaveletScalogram WaveletThreshold WeaklyConnectedComponents WeaklyConnectedGraphQ WeakStationarity WeatherData WeberE Wedge Wednesday WeibullDistribution WeierstrassHalfPeriods WeierstrassInvariants WeierstrassP WeierstrassPPrime WeierstrassSigma WeierstrassZeta WeightedAdjacencyGraph WeightedAdjacencyMatrix WeightedData WeightedGraphQ Weights WelchWindow WheelGraph WhenEvent Which While White Whitespace WhitespaceCharacter WhittakerM WhittakerW WienerFilter WienerProcess WignerD WignerSemicircleDistribution WilksW WilksWTest WindowClickSelect WindowElements WindowFloating WindowFrame WindowFrameElements WindowMargins WindowMovable WindowOpacity WindowSelected WindowSize WindowStatusArea WindowTitle WindowToolbars WindowWidth With WolframAlpha WolframAlphaDate WolframAlphaQuantity WolframAlphaResult Word WordBoundary WordCharacter WordData WordSearch WordSeparators WorkingPrecision Write WriteString Wronskian XMLElement XMLObject Xnor Xor Yellow YuleDissimilarity ZernikeR ZeroSymmetric ZeroTest ZeroWidthTimes Zeta ZetaZero ZipfDistribution ZTest ZTransform $Aborted $ActivationGroupID $ActivationKey $ActivationUserRegistered $AddOnsDirectory $AssertFunction $Assumptions $AsynchronousTask $BaseDirectory $BatchInput $BatchOutput $BoxForms $ByteOrdering $Canceled $CharacterEncoding $CharacterEncodings $CommandLine $CompilationTarget $ConditionHold $ConfiguredKernels $Context $ContextPath $ControlActiveSetting $CreationDate $CurrentLink $DateStringFormat $DefaultFont $DefaultFrontEnd $DefaultImagingDevice $DefaultPath $Display $DisplayFunction $DistributedContexts $DynamicEvaluation $Echo $Epilog $ExportFormats $Failed $FinancialDataSource $FormatType $FrontEnd $FrontEndSession $GeoLocation $HistoryLength $HomeDirectory $HTTPCookies $IgnoreEOF $ImagingDevices $ImportFormats $InitialDirectory $Input $InputFileName $InputStreamMethods $Inspector $InstallationDate $InstallationDirectory $InterfaceEnvironment $IterationLimit $KernelCount $KernelID $Language $LaunchDirectory $LibraryPath $LicenseExpirationDate $LicenseID $LicenseProcesses $LicenseServer $LicenseSubprocesses $LicenseType $Line $Linked $LinkSupported $LoadedFiles $MachineAddresses $MachineDomain $MachineDomains $MachineEpsilon $MachineID $MachineName $MachinePrecision $MachineType $MaxExtraPrecision $MaxLicenseProcesses $MaxLicenseSubprocesses $MaxMachineNumber $MaxNumber $MaxPiecewiseCases $MaxPrecision $MaxRootDegree $MessageGroups $MessageList $MessagePrePrint $Messages $MinMachineNumber $MinNumber $MinorReleaseNumber $MinPrecision $ModuleNumber $NetworkLicense $NewMessage $NewSymbol $Notebooks $NumberMarks $Off $OperatingSystem $Output $OutputForms $OutputSizeLimit $OutputStreamMethods $Packages $ParentLink $ParentProcessID $PasswordFile $PatchLevelID $Path $PathnameSeparator $PerformanceGoal $PipeSupported $Post $Pre $PreferencesDirectory $PrePrint $PreRead $PrintForms $PrintLiteral $ProcessID $ProcessorCount $ProcessorType $ProductInformation $ProgramName $RandomState $RecursionLimit $ReleaseNumber $RootDirectory $ScheduledTask $ScriptCommandLine $SessionID $SetParentLink $SharedFunctions $SharedVariables $SoundDisplay $SoundDisplayFunction $SuppressInputFormHeads $SynchronousEvaluation $SyntaxHandler $System $SystemCharacterEncoding $SystemID $SystemWordLength $TemporaryDirectory $TemporaryPrefix $TextStyle $TimedOut $TimeUnit $TimeZone $TopDirectory $TraceOff $TraceOn $TracePattern $TracePostAction $TracePreAction $Urgent $UserAddOnsDirectory $UserBaseDirectory $UserDocumentsDirectory $UserName $Version $VersionNumber",c:[{cN:"comment",b:/\(\*/,e:/\*\)/},a.ASM,a.QSM,a.CNM,{cN:"list",b:/\{/,e:/\}/,i:/:/}]}});hljs.registerLanguage("tex",function(a){var d={cN:"command",b:"\\\\[a-zA-Zа-ÑÐ-Ñ]+[\\*]?"};var c={cN:"command",b:"\\\\[^a-zA-Zа-ÑÐ-Ñ0-9]"};var b={cN:"special",b:"[{}\\[\\]\\&#~]",r:0};return{c:[{b:"\\\\[a-zA-Zа-ÑÐ-Ñ]+[\\*]? *= *-?\\d*\\.?\\d+(pt|pc|mm|cm|in|dd|cc|ex|em)?",rB:true,c:[d,c,{cN:"number",b:" *=",e:"-?\\d*\\.?\\d+(pt|pc|mm|cm|in|dd|cc|ex|em)?",eB:true}],r:10},d,c,b,{cN:"formula",b:"\\$\\$",e:"\\$\\$",c:[d,c,b],r:0},{cN:"formula",b:"\\$",e:"\\$",c:[d,c,b],r:0},{cN:"comment",b:"%",e:"$",r:0}]}});hljs.registerLanguage("cs",function(b){var a="abstract as base bool break byte case catch char checked const continue decimal default delegate do double else enum event explicit extern false finally fixed float for foreach goto if implicit in int interface internal is lock long new null object operator out override params private protected public readonly ref return sbyte sealed short sizeof stackalloc static string struct switch this throw true try typeof uint ulong unchecked unsafe ushort using virtual volatile void while async await ascending descending from get group into join let orderby partial select set value var where yield";return{k:a,c:[{cN:"comment",b:"///",e:"$",rB:true,c:[{cN:"xmlDocTag",b:"///|"},{cN:"xmlDocTag",b:""}]},b.CLCM,b.CBLCLM,{cN:"preprocessor",b:"#",e:"$",k:"if else elif endif define undef warning error line region endregion pragma checksum"},{cN:"string",b:'@"',e:'"',c:[{b:'""'}]},b.ASM,b.QSM,b.CNM,{bK:"protected public private internal",e:/[{;=]/,k:a,c:[{bK:"class namespace interface",starts:{c:[b.TM]}},{b:b.IR+"\\s*\\(",rB:true,c:[b.TM]}]}]}});hljs.registerLanguage("css",function(a){var b="[a-zA-Z-][a-zA-Z0-9_-]*";var c={cN:"function",b:b+"\\(",e:"\\)",c:["self",a.NM,a.ASM,a.QSM]};return{cI:true,i:"[=/|']",c:[a.CBLCLM,{cN:"id",b:"\\#[A-Za-z0-9_-]+"},{cN:"class",b:"\\.[A-Za-z0-9_-]+",r:0},{cN:"attr_selector",b:"\\[",e:"\\]",i:"$"},{cN:"pseudo",b:":(:)?[a-zA-Z0-9\\_\\-\\+\\(\\)\\\"\\']+"},{cN:"at_rule",b:"@(font-face|page)",l:"[a-z-]+",k:"font-face page"},{cN:"at_rule",b:"@",e:"[{;]",c:[{cN:"keyword",b:/\S+/},{b:/\s/,eW:true,eE:true,r:0,c:[c,a.ASM,a.QSM,a.NM]}]},{cN:"tag",b:b,r:0},{cN:"rules",b:"{",e:"}",i:"[^\\s]",r:0,c:[a.CBLCLM,{cN:"rule",b:"[^\\s]",rB:true,e:";",eW:true,c:[{cN:"attribute",b:"[A-Z\\_\\.\\-]+",e:":",eE:true,i:"[^\\s]",starts:{cN:"value",eW:true,eE:true,c:[c,a.NM,a.QSM,a.ASM,a.CBLCLM,{cN:"hexcolor",b:"#[0-9A-Fa-f]+"},{cN:"important",b:"!important"}]}}]}]}]}});hljs.registerLanguage("python",function(a){var f={cN:"prompt",b:/^(>>>|\.\.\.) /};var b={cN:"string",c:[a.BE],v:[{b:/(u|b)?r?'''/,e:/'''/,c:[f],r:10},{b:/(u|b)?r?"""/,e:/"""/,c:[f],r:10},{b:/(u|r|ur)'/,e:/'/,r:10},{b:/(u|r|ur)"/,e:/"/,r:10},{b:/(b|br)'/,e:/'/,},{b:/(b|br)"/,e:/"/,},a.ASM,a.QSM]};var d={cN:"number",r:0,v:[{b:a.BNR+"[lLjJ]?"},{b:"\\b(0o[0-7]+)[lLjJ]?"},{b:a.CNR+"[lLjJ]?"}]};var e={cN:"params",b:/\(/,e:/\)/,c:["self",f,d,b]};var c={e:/:/,i:/[${=;\n]/,c:[a.UTM,e]};return{k:{keyword:"and elif is global as in if from raise for except finally print import pass return exec else break not with class assert yield try while continue del or def lambda nonlocal|10 None True False",built_in:"Ellipsis NotImplemented"},i:/(<\/|->|\?)/,c:[f,d,b,a.HCM,a.inherit(c,{cN:"function",bK:"def",r:10}),a.inherit(c,{cN:"class",bK:"class"}),{cN:"decorator",b:/@/,e:/$/},{b:/\b(print|exec)\(/}]}});hljs.registerLanguage("profile",function(a){return{c:[a.CNM,{cN:"built_in",b:"{",e:"}$",eB:true,eE:true,c:[a.ASM,a.QSM],r:0},{cN:"filename",b:"[a-zA-Z_][\\da-zA-Z_]+\\.[\\da-zA-Z_]{1,3}",e:":",eE:true},{cN:"header",b:"(ncalls|tottime|cumtime)",e:"$",k:"ncalls tottime|10 cumtime|10 filename",r:10},{cN:"summary",b:"function calls",e:"$",c:[a.CNM],r:10},a.ASM,a.QSM,{cN:"function",b:"\\(",e:"\\)$",c:[a.UTM],r:0}]}});hljs.registerLanguage("django",function(a){var b={cN:"filter",b:/\|[A-Za-z]+\:?/,k:"truncatewords removetags linebreaksbr yesno get_digit timesince random striptags filesizeformat escape linebreaks length_is ljust rjust cut urlize fix_ampersands title floatformat capfirst pprint divisibleby add make_list unordered_list urlencode timeuntil urlizetrunc wordcount stringformat linenumbers slice date dictsort dictsortreversed default_if_none pluralize lower join center default truncatewords_html upper length phone2numeric wordwrap time addslashes slugify first escapejs force_escape iriencode last safe safeseq truncatechars localize unlocalize localtime utc timezone",c:[{cN:"argument",b:/"/,e:/"/},{cN:"argument",b:/'/,e:/'/}]};return{cI:true,sL:"xml",subLanguageMode:"continuous",c:[{cN:"template_comment",b:/\{%\s*comment\s*%}/,e:/\{%\s*endcomment\s*%}/},{cN:"template_comment",b:/\{#/,e:/#}/},{cN:"template_tag",b:/\{%/,e:/%}/,k:"comment endcomment load templatetag ifchanged endifchanged if endif firstof for endfor in ifnotequal endifnotequal widthratio extends include spaceless endspaceless regroup by as ifequal endifequal ssi now with cycle url filter endfilter debug block endblock else autoescape endautoescape csrf_token empty elif endwith static trans blocktrans endblocktrans get_static_prefix get_media_prefix plural get_current_language language get_available_languages get_current_language_bidi get_language_info get_language_info_list localize endlocalize localtime endlocaltime timezone endtimezone get_current_timezone verbatim",c:[b]},{cN:"variable",b:/\{\{/,e:/}}/,c:[b]}]}});hljs.registerLanguage("nginx",function(c){var b={cN:"variable",v:[{b:/\$\d+/},{b:/\$\{/,e:/}/},{b:"[\\$\\@]"+c.UIR}]};var a={eW:true,l:"[a-z/_]+",k:{built_in:"on off yes no true false none blocked debug info notice warn error crit select break last permanent redirect kqueue rtsig epoll poll /dev/poll"},r:0,i:"=>",c:[c.HCM,{cN:"string",c:[c.BE,b],v:[{b:/"/,e:/"/},{b:/'/,e:/'/}]},{cN:"url",b:"([a-z]+):/",e:"\\s",eW:true,eE:true},{cN:"regexp",c:[c.BE,b],v:[{b:"\\s\\^",e:"\\s|{|;",rE:true},{b:"~\\*?\\s+",e:"\\s|{|;",rE:true},{b:"\\*(\\.[a-z\\-]+)+"},{b:"([a-z\\-]+\\.)+\\*"}]},{cN:"number",b:"\\b\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}(:\\d{1,5})?\\b"},{cN:"number",b:"\\b\\d+[kKmMgGdshdwy]*\\b",r:0},b]};return{c:[c.HCM,{b:c.UIR+"\\s",e:";|{",rB:true,c:[c.inherit(c.UTM,{starts:a})],r:0}],i:"[^\\s\\}]"}});hljs.registerLanguage("smalltalk",function(a){var b="[a-z][a-zA-Z0-9_]*";var d={cN:"char",b:"\\$.{1}"};var c={cN:"symbol",b:"#"+a.UIR};return{k:"self super nil true false thisContext",c:[{cN:"comment",b:'"',e:'"'},a.ASM,{cN:"class",b:"\\b[A-Z][A-Za-z0-9_]*",r:0},{cN:"method",b:b+":",r:0},a.CNM,c,d,{cN:"localvars",b:"\\|[ ]*"+b+"([ ]+"+b+")*[ ]*\\|",rB:true,e:/\|/,i:/\S/,c:[{b:"(\\|[ ]*)?"+b}]},{cN:"array",b:"\\#\\(",e:"\\)",c:[a.ASM,d,a.CNM,c]}]}});hljs.registerLanguage("sql",function(a){return{cI:true,i:/[<>]/,c:[{cN:"operator",b:"\\b(begin|end|start|commit|rollback|savepoint|lock|alter|create|drop|rename|call|delete|do|handler|insert|load|replace|select|truncate|update|set|show|pragma|grant|merge)\\b(?!:)",e:";",eW:true,k:{keyword:"all partial global month current_timestamp using go revoke smallint indicator end-exec disconnect zone with character assertion to add current_user usage input local alter match collate real then rollback get read timestamp session_user not integer bit unique day minute desc insert execute like ilike|2 level decimal drop continue isolation found where constraints domain right national some module transaction relative second connect escape close system_user for deferred section cast current sqlstate allocate intersect deallocate numeric public preserve full goto initially asc no key output collation group by union session both last language constraint column of space foreign deferrable prior connection unknown action commit view or first into float year primary cascaded except restrict set references names table outer open select size are rows from prepare distinct leading create only next inner authorization schema corresponding option declare precision immediate else timezone_minute external varying translation true case exception join hour default double scroll value cursor descriptor values dec fetch procedure delete and false int is describe char as at in varchar null trailing any absolute current_time end grant privileges when cross check write current_date pad begin temporary exec time update catalog user sql date on identity timezone_hour natural whenever interval work order cascade diagnostics nchar having left call do handler load replace truncate start lock show pragma exists number trigger if before after each row merge matched database",aggregate:"count sum min max avg"},c:[{cN:"string",b:"'",e:"'",c:[a.BE,{b:"''"}]},{cN:"string",b:'"',e:'"',c:[a.BE,{b:'""'}]},{cN:"string",b:"`",e:"`",c:[a.BE]},a.CNM]},a.CBLCLM,{cN:"comment",b:"--",e:"$"}]}});hljs.registerLanguage("oxygene",function(b){var g="abstract add and array as asc aspect assembly async begin break block by case class concat const copy constructor continue create default delegate desc distinct div do downto dynamic each else empty end ensure enum equals event except exit extension external false final finalize finalizer finally flags for forward from function future global group has if implementation implements implies in index inherited inline interface into invariants is iterator join locked locking loop matching method mod module namespace nested new nil not notify nullable of old on operator or order out override parallel params partial pinned private procedure property protected public queryable raise read readonly record reintroduce remove repeat require result reverse sealed select self sequence set shl shr skip static step soft take then to true try tuple type union unit unsafe until uses using var virtual raises volatile where while with write xor yield await mapped deprecated stdcall cdecl pascal register safecall overload library platform reference packed strict published autoreleasepool selector strong weak unretained";var a={cN:"comment",b:"{",e:"}",r:0};var e={cN:"comment",b:"\\(\\*",e:"\\*\\)",r:10};var c={cN:"string",b:"'",e:"'",c:[{b:"''"}]};var d={cN:"string",b:"(#\\d+)+"};var f={cN:"function",bK:"function constructor destructor procedure method",e:"[:;]",k:"function constructor|10 destructor|10 procedure|10 method|10",c:[b.TM,{cN:"params",b:"\\(",e:"\\)",k:g,c:[c,d]},a,e]};return{cI:true,k:g,i:'("|\\$[G-Zg-z]|\\/\\*|{",e:"}"};var a={cN:"variable",v:[{b:/\$\d/},{b:/[\$\%\@\*](\^\w\b|#\w+(\:\:\w+)*|{\w+}|\w+(\:\:\w*)*)/},{b:/[\$\%\@\*][^\s\w{]/,r:0}]};var e={cN:"comment",b:"^(__END__|__DATA__)",e:"\\n$",r:5};var h=[c.BE,f,a];var b=[a,c.HCM,e,{cN:"comment",b:"^\\=\\w",e:"\\=cut",eW:true},g,{cN:"string",c:h,v:[{b:"q[qwxr]?\\s*\\(",e:"\\)",r:5},{b:"q[qwxr]?\\s*\\[",e:"\\]",r:5},{b:"q[qwxr]?\\s*\\{",e:"\\}",r:5},{b:"q[qwxr]?\\s*\\|",e:"\\|",r:5},{b:"q[qwxr]?\\s*\\<",e:"\\>",r:5},{b:"qw\\s+q",e:"q",r:5},{b:"'",e:"'",c:[c.BE]},{b:'"',e:'"'},{b:"`",e:"`",c:[c.BE]},{b:"{\\w+}",c:[],r:0},{b:"-?\\w+\\s*\\=\\>",c:[],r:0}]},{cN:"number",b:"(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b",r:0},{b:"(\\/\\/|"+c.RSR+"|\\b(split|return|print|reverse|grep)\\b)\\s*",k:"split return print reverse grep",r:0,c:[c.HCM,e,{cN:"regexp",b:"(s|tr|y)/(\\\\.|[^/])*/(\\\\.|[^/])*/[a-z]*",r:10},{cN:"regexp",b:"(m|qr)?/",e:"/[a-z]*",c:[c.BE],r:0}]},{cN:"sub",bK:"sub",e:"(\\s*\\(.*?\\))?[;{]",r:5},{cN:"operator",b:"-\\w\\b",r:0}];f.c=b;g.c=b;return{k:d,c:b}});hljs.registerLanguage("ini",function(a){return{cI:true,i:/\S/,c:[{cN:"comment",b:";",e:"$"},{cN:"title",b:"^\\[",e:"\\]"},{cN:"setting",b:"^[a-z0-9\\[\\]_-]+[ \\t]*=[ \\t]*",e:"$",c:[{cN:"value",eW:true,k:"on off true false yes no",c:[a.QSM,a.NM],r:0}]}]}});hljs.registerLanguage("erlang",function(i){var c="[a-z'][a-zA-Z0-9_']*";var o="("+c+":"+c+"|"+c+")";var f={keyword:"after and andalso|10 band begin bnot bor bsl bzr bxor case catch cond div end fun let not of orelse|10 query receive rem try when xor",literal:"false true"};var l={cN:"comment",b:"%",e:"$",r:0};var e={cN:"number",b:"\\b(\\d+#[a-fA-F0-9]+|\\d+(\\.\\d+)?([eE][-+]?\\d+)?)",r:0};var g={b:"fun\\s+"+c+"/\\d+"};var n={b:o+"\\(",e:"\\)",rB:true,r:0,c:[{cN:"function_name",b:o,r:0},{b:"\\(",e:"\\)",eW:true,rE:true,r:0}]};var h={cN:"tuple",b:"{",e:"}",r:0};var a={cN:"variable",b:"\\b_([A-Z][A-Za-z0-9_]*)?",r:0};var m={cN:"variable",b:"[A-Z][a-zA-Z0-9_]*",r:0};var b={b:"#"+i.UIR,r:0,rB:true,c:[{cN:"record_name",b:"#"+i.UIR,r:0},{b:"{",e:"}",r:0}]};var k={bK:"fun receive if try case",e:"end",k:f};k.c=[l,g,i.inherit(i.ASM,{cN:""}),k,n,i.QSM,e,h,a,m,b];var j=[l,g,k,n,i.QSM,e,h,a,m,b];n.c[1].c=j;h.c=j;b.c[1].c=j;var d={cN:"params",b:"\\(",e:"\\)",c:j};return{k:f,i:"(",rB:true,i:"\\(|#|//|/\\*|\\\\|:|;",c:[d,i.inherit(i.TM,{b:c})],starts:{e:";|\\.",k:f,c:j}},l,{cN:"pp",b:"^-",e:"\\.",r:0,eE:true,rB:true,l:"-"+i.IR,k:"-module -record -undef -export -ifdef -ifndef -author -copyright -doc -vsn -import -include -include_lib -compile -define -else -endif -file -behaviour -behavior",c:[d]},e,i.QSM,b,a,m,h]}});hljs.registerLanguage("1c",function(b){var f="[a-zA-Zа-ÑÐ-Я][a-zA-Z0-9_а-ÑÐ-Я]*";var c="возврат дата Ð´Ð»Ñ ÐµÑли и или иначе иначееÑли иÑключение конецеÑли конецпопытки конецпроцедуры конецфункции конеццикла конÑтанта не перейти перем перечиÑление по пока попытка прервать продолжить процедура Ñтрока тогда Ñ„Ñ Ñ„ÑƒÐ½ÐºÑ†Ð¸Ñ Ñ†Ð¸ÐºÐ» чиÑло ÑкÑпорт";var e="ansitooem oemtoansi ввеÑтивидÑубконто ввеÑтидату ввеÑтизначение ввеÑтиперечиÑление ввеÑтипериод ввеÑтипланÑчетов ввеÑтиÑтроку ввеÑтичиÑло Ð²Ð¾Ð¿Ñ€Ð¾Ñ Ð²Ð¾ÑÑтановитьзначение врег выбранныйпланÑчетов вызватьиÑключение датагод датамеÑÑц датачиÑло добавитьмеÑÑц завершитьработуÑиÑтемы заголовокÑиÑтемы запиÑьжурналарегиÑтрации запуÑтитьприложение зафикÑироватьтранзакцию значениевÑтроку значениевÑтрокувнутр значениевфайл значениеизÑтроки значениеизÑтрокивнутр значениеизфайла имÑкомпьютера имÑÐ¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ ÐºÐ°Ñ‚Ð°Ð»Ð¾Ð³Ð²Ñ€ÐµÐ¼ÐµÐ½Ð½Ñ‹Ñ…Ñ„Ð°Ð¹Ð»Ð¾Ð² каталогиб ÐºÐ°Ñ‚Ð°Ð»Ð¾Ð³Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ ÐºÐ°Ñ‚Ð°Ð»Ð¾Ð³Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¼Ñ‹ кодÑимв командаÑиÑтемы конгода конецпериодаби конецраÑÑчитанногопериодаби конецÑтандартногоинтервала конквартала конмеÑÑца коннедели лев лог лог10 Ð¼Ð°ÐºÑ Ð¼Ð°ÐºÑимальноеколичеÑтвоÑубконто мин монопольныйрежим названиеинтерфейÑа названиенабораправ назначитьвид назначитьÑчет найти найтипомеченныенаудаление найтиÑÑылки началопериодаби началоÑтандартногоинтервала начатьтранзакцию начгода начквартала начмеÑÑца начнедели номерднÑгода номерднÑнедели номернеделигода нрег Ð¾Ð±Ñ€Ð°Ð±Ð¾Ñ‚ÐºÐ°Ð¾Ð¶Ð¸Ð´Ð°Ð½Ð¸Ñ Ð¾ÐºÑ€ опиÑаниеошибки оÑновнойжурналраÑчетов оÑновнойпланÑчетов оÑновнойÑзык открытьформу открытьформумодально отменитьтранзакцию очиÑтитьокноÑообщений периодÑтр полноеимÑÐ¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð¿Ð¾Ð»ÑƒÑ‡Ð¸Ñ‚ÑŒÐ²Ñ€ÐµÐ¼Ñта получитьдатута получитьдокументта получитьзначениÑотбора получитьпозициюта получитьпуÑтоезначение получитьта прав праводоÑтупа предупреждение префикÑавтонумерации пуÑтаÑÑтрока пуÑтоезначение рабочаÑдаттьпуÑтоезначение рабочаÑдата разделительÑтраниц разделительÑтрок разм разобратьпозициюдокумента раÑÑчитатьрегиÑтрына раÑÑчитатьрегиÑтрыпо Ñигнал Ñимв ÑимволтабулÑции Ñоздатьобъект Ñокрл Ñокрлп Ñокрп Ñообщить ÑоÑтоÑние Ñохранитьзначение Ñред ÑтатуÑвозврата Ñтрдлина Ñтрзаменить ÑтрколичеÑтвоÑтрок ÑтрполучитьÑтроку ÑтрчиÑловхождений Ñформироватьпозициюдокумента Ñчетпокоду текущаÑдата Ñ‚ÐµÐºÑƒÑ‰ÐµÐµÐ²Ñ€ÐµÐ¼Ñ Ñ‚Ð¸Ð¿Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ Ñ‚Ð¸Ð¿Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸ÑÑтр удалитьобъекты уÑтановитьтана уÑтановитьтапо фикÑшаблон формат цел шаблон";var a={cN:"dquote",b:'""'};var d={cN:"string",b:'"',e:'"|$',c:[a]};var g={cN:"string",b:"\\|",e:'"|$',c:[a]};return{cI:true,l:f,k:{keyword:c,built_in:e},c:[b.CLCM,b.NM,d,g,{cN:"function",b:"(процедура|функциÑ)",e:"$",l:f,k:"процедура функциÑ",c:[b.inherit(b.TM,{b:f}),{cN:"tail",eW:true,c:[{cN:"params",b:"\\(",e:"\\)",l:f,k:"знач",c:[d,g]},{cN:"export",b:"ÑкÑпорт",eW:true,l:f,k:"ÑкÑпорт",c:[b.CLCM]}]},b.CLCM]},{cN:"preprocessor",b:"#",e:"$"},{cN:"date",b:"'\\d{2}\\.\\d{2}\\.(\\d{2}|\\d{4})'"}]}});hljs.registerLanguage("haskell",function(f){var g={cN:"comment",v:[{b:"--",e:"$"},{b:"{-",e:"-}",c:["self"]}]};var e={cN:"pragma",b:"{-#",e:"#-}"};var b={cN:"preprocessor",b:"^#",e:"$"};var d={cN:"type",b:"\\b[A-Z][\\w']*",r:0};var c={cN:"container",b:"\\(",e:"\\)",i:'"',c:[e,g,b,{cN:"type",b:"\\b[A-Z][\\w]*(\\((\\.\\.|,|\\w+)\\))?"},f.inherit(f.TM,{b:"[_a-z][\\w']*"})]};var a={cN:"container",b:"{",e:"}",c:c.c};return{k:"let in if then else case of where do module import hiding qualified type data newtype deriving class instance as default infix infixl infixr foreign export ccall stdcall cplusplus jvm dotnet safe unsafe family forall mdo proc rec",c:[{cN:"module",b:"\\bmodule\\b",e:"where",k:"module where",c:[c,g],i:"\\W\\.|;"},{cN:"import",b:"\\bimport\\b",e:"$",k:"import|0 qualified as hiding",c:[c,g],i:"\\W\\.|;"},{cN:"class",b:"^(\\s*)?(class|instance)\\b",e:"where",k:"class family instance where",c:[d,c,g]},{cN:"typedef",b:"\\b(data|(new)?type)\\b",e:"$",k:"data family type newtype deriving",c:[e,g,d,c,a]},{cN:"default",bK:"default",e:"$",c:[d,c,g]},{cN:"infix",bK:"infix infixl infixr",e:"$",c:[f.CNM,g]},{cN:"foreign",b:"\\bforeign\\b",e:"$",k:"foreign import export ccall stdcall cplusplus jvm dotnet safe unsafe",c:[d,f.QSM,g]},{cN:"shebang",b:"#!\\/usr\\/bin\\/env runhaskell",e:"$"},e,g,b,f.QSM,f.CNM,d,f.inherit(f.TM,{b:"^[_a-z][\\w']*"}),{b:"->|<-"}]}});hljs.registerLanguage("delphi",function(b){var a="exports register file shl array record property for mod while set ally label uses raise not stored class safecall var interface or private static exit index inherited to else stdcall override shr asm far resourcestring finalization packed virtual out and protected library do xorwrite goto near function end div overload object unit begin string on inline repeat until destructor write message program with read initialization except default nil if case cdecl in downto threadvar of try pascal const external constructor type public then implementation finally published procedure";var e={cN:"comment",v:[{b:/\{/,e:/\}/,r:0},{b:/\(\*/,e:/\*\)/,r:10}]};var c={cN:"string",b:/'/,e:/'/,c:[{b:/''/}]};var d={cN:"string",b:/(#\d+)+/};var f={b:b.IR+"\\s*=\\s*class\\s*\\(",rB:true,c:[b.TM]};var g={cN:"function",bK:"function constructor destructor procedure",e:/[:;]/,k:"function constructor|10 destructor|10 procedure|10",c:[b.TM,{cN:"params",b:/\(/,e:/\)/,k:a,c:[c,d]},e]};return{cI:true,k:a,i:/("|\$[G-Zg-z]|\/\*|<\/)/,c:[e,b.CLCM,c,d,b.NM,f,g]}});hljs.registerLanguage("markdown",function(a){return{c:[{cN:"header",v:[{b:"^#{1,6}",e:"$"},{b:"^.+?\\n[=-]{2,}$"}]},{b:"<",e:">",sL:"xml",r:0},{cN:"bullet",b:"^([*+-]|(\\d+\\.))\\s+"},{cN:"strong",b:"[*_]{2}.+?[*_]{2}"},{cN:"emphasis",v:[{b:"\\*.+?\\*"},{b:"_.+?_",r:0}]},{cN:"blockquote",b:"^>\\s+",e:"$"},{cN:"code",v:[{b:"`.+?`"},{b:"^( {4}|\t)",e:"$",r:0}]},{cN:"horizontal_rule",b:"^[-\\*]{3,}",e:"$"},{b:"\\[.+?\\][\\(\\[].+?[\\)\\]]",rB:true,c:[{cN:"link_label",b:"\\[",e:"\\]",eB:true,rE:true,r:0},{cN:"link_url",b:"\\]\\(",e:"\\)",eB:true,eE:true},{cN:"link_reference",b:"\\]\\[",e:"\\]",eB:true,eE:true,}],r:10},{b:"^\\[.+\\]:",e:"$",rB:true,c:[{cN:"link_reference",b:"\\[",e:"\\]",eB:true,eE:true},{cN:"link_url",b:"\\s",e:"$"}]}]}});hljs.registerLanguage("avrasm",function(a){return{cI:true,k:{keyword:"adc add adiw and andi asr bclr bld brbc brbs brcc brcs break breq brge brhc brhs brid brie brlo brlt brmi brne brpl brsh brtc brts brvc brvs bset bst call cbi cbr clc clh cli cln clr cls clt clv clz com cp cpc cpi cpse dec eicall eijmp elpm eor fmul fmuls fmulsu icall ijmp in inc jmp ld ldd ldi lds lpm lsl lsr mov movw mul muls mulsu neg nop or ori out pop push rcall ret reti rjmp rol ror sbc sbr sbrc sbrs sec seh sbi sbci sbic sbis sbiw sei sen ser ses set sev sez sleep spm st std sts sub subi swap tst wdr",built_in:"r0 r1 r2 r3 r4 r5 r6 r7 r8 r9 r10 r11 r12 r13 r14 r15 r16 r17 r18 r19 r20 r21 r22 r23 r24 r25 r26 r27 r28 r29 r30 r31 x|0 xh xl y|0 yh yl z|0 zh zl ucsr1c udr1 ucsr1a ucsr1b ubrr1l ubrr1h ucsr0c ubrr0h tccr3c tccr3a tccr3b tcnt3h tcnt3l ocr3ah ocr3al ocr3bh ocr3bl ocr3ch ocr3cl icr3h icr3l etimsk etifr tccr1c ocr1ch ocr1cl twcr twdr twar twsr twbr osccal xmcra xmcrb eicra spmcsr spmcr portg ddrg ping portf ddrf sreg sph spl xdiv rampz eicrb eimsk gimsk gicr eifr gifr timsk tifr mcucr mcucsr tccr0 tcnt0 ocr0 assr tccr1a tccr1b tcnt1h tcnt1l ocr1ah ocr1al ocr1bh ocr1bl icr1h icr1l tccr2 tcnt2 ocr2 ocdr wdtcr sfior eearh eearl eedr eecr porta ddra pina portb ddrb pinb portc ddrc pinc portd ddrd pind spdr spsr spcr udr0 ucsr0a ucsr0b ubrr0l acsr admux adcsr adch adcl porte ddre pine pinf"},c:[a.CBLCLM,{cN:"comment",b:";",e:"$",r:0},a.CNM,a.BNM,{cN:"number",b:"\\b(\\$[a-zA-Z0-9]+|0o[0-7]+)"},a.QSM,{cN:"string",b:"'",e:"[^\\\\]'",i:"[^\\\\][^']"},{cN:"label",b:"^[A-Za-z0-9_.$]+:"},{cN:"preprocessor",b:"#",e:"$"},{cN:"preprocessor",b:"\\.[a-zA-Z]+"},{cN:"localvars",b:"@[0-9]+"}]}});hljs.registerLanguage("lisp",function(h){var k="[a-zA-Z_\\-\\+\\*\\/\\<\\=\\>\\&\\#][a-zA-Z0-9_\\-\\+\\*\\/\\<\\=\\>\\&\\#!]*";var l="(\\-|\\+)?\\d+(\\.\\d+|\\/\\d+)?((d|e|f|l|s)(\\+|\\-)?\\d+)?";var j={cN:"shebang",b:"^#!",e:"$"};var b={cN:"literal",b:"\\b(t{1}|nil)\\b"};var d={cN:"number",v:[{b:l,r:0},{b:"#b[0-1]+(/[0-1]+)?"},{b:"#o[0-7]+(/[0-7]+)?"},{b:"#x[0-9a-f]+(/[0-9a-f]+)?"},{b:"#c\\("+l+" +"+l,e:"\\)"}]};var g=h.inherit(h.QSM,{i:null});var m={cN:"comment",b:";",e:"$"};var f={cN:"variable",b:"\\*",e:"\\*"};var n={cN:"keyword",b:"[:&]"+k};var c={b:"\\(",e:"\\)",c:["self",b,g,d]};var a={cN:"quoted",c:[d,g,f,n,c],v:[{b:"['`]\\(",e:"\\)",},{b:"\\(quote ",e:"\\)",k:{title:"quote"},}]};var i={cN:"list",b:"\\(",e:"\\)"};var e={eW:true,r:0};i.c=[{cN:"title",b:k},e];e.c=[a,i,b,d,g,m,f,n];return{i:/\S/,c:[d,j,b,g,m,a,i]}});hljs.registerLanguage("vbnet",function(a){return{cI:true,k:{keyword:"addhandler addressof alias and andalso aggregate ansi as assembly auto binary by byref byval call case catch class compare const continue custom declare default delegate dim distinct do each equals else elseif end enum erase error event exit explicit finally for friend from function get global goto group handles if implements imports in inherits interface into is isfalse isnot istrue join key let lib like loop me mid mod module mustinherit mustoverride mybase myclass namespace narrowing new next not notinheritable notoverridable of off on operator option optional or order orelse overloads overridable overrides paramarray partial preserve private property protected public raiseevent readonly redim rem removehandler resume return select set shadows shared skip static step stop structure strict sub synclock take text then throw to try unicode until using when where while widening with withevents writeonly xor",built_in:"boolean byte cbool cbyte cchar cdate cdec cdbl char cint clng cobj csbyte cshort csng cstr ctype date decimal directcast double gettype getxmlnamespace iif integer long object sbyte short single string trycast typeof uinteger ulong ushort",literal:"true false nothing"},i:"//|{|}|endif|gosub|variant|wend",c:[a.inherit(a.QSM,{c:[{b:'""'}]}),{cN:"comment",b:"'",e:"$",rB:true,c:[{cN:"xmlDocTag",b:"'''|"},{cN:"xmlDocTag",b:""},]},a.CNM,{cN:"preprocessor",b:"#",e:"$",k:"if else elseif end region externalsource"},]}});hljs.registerLanguage("axapta",function(a){return{k:"false int abstract private char boolean static null if for true while long throw finally protected final return void enum else break new catch byte super case short default double public try this switch continue reverse firstfast firstonly forupdate nofetch sum avg minof maxof count order group by asc desc index hint like dispaly edit client server ttsbegin ttscommit str real date container anytype common div mod",c:[a.CLCM,a.CBLCLM,a.ASM,a.QSM,a.CNM,{cN:"preprocessor",b:"#",e:"$"},{cN:"class",bK:"class interface",e:"{",i:":",c:[{cN:"inheritance",bK:"extends implements",r:10},a.UTM]}]}});hljs.registerLanguage("ocaml",function(a){return{k:{keyword:"and as assert asr begin class constraint do done downto else end exception external false for fun function functor if in include inherit initializer land lazy let lor lsl lsr lxor match method mod module mutable new object of open or private rec ref sig struct then to true try type val virtual when while with parser value",built_in:"bool char float int list unit array exn option int32 int64 nativeint format4 format6 lazy_t in_channel out_channel string",},i:/\/\//,c:[{cN:"string",b:'"""',e:'"""'},{cN:"comment",b:"\\(\\*",e:"\\*\\)",c:["self"]},{cN:"class",bK:"type",e:"\\(|=|$",c:[a.UTM]},{cN:"annotation",b:"\\[<",e:">\\]"},a.CBLCLM,a.inherit(a.ASM,{i:null}),a.inherit(a.QSM,{i:null}),a.CNM]}});hljs.registerLanguage("erlang-repl",function(a){return{k:{special_functions:"spawn spawn_link self",reserved:"after and andalso|10 band begin bnot bor bsl bsr bxor case catch cond div end fun if let not of or orelse|10 query receive rem try when xor"},c:[{cN:"prompt",b:"^[0-9]+> ",r:10},{cN:"comment",b:"%",e:"$"},{cN:"number",b:"\\b(\\d+#[a-fA-F0-9]+|\\d+(\\.\\d+)?([eE][-+]?\\d+)?)",r:0},a.ASM,a.QSM,{cN:"constant",b:"\\?(::)?([A-Z]\\w*(::)?)+"},{cN:"arrow",b:"->"},{cN:"ok",b:"ok"},{cN:"exclamation_mark",b:"!"},{cN:"function_or_atom",b:"(\\b[a-z'][a-zA-Z0-9_']*:[a-z'][a-zA-Z0-9_']*)|(\\b[a-z'][a-zA-Z0-9_']*)",r:0},{cN:"variable",b:"[A-Z][a-zA-Z0-9_']*",r:0}]}});hljs.registerLanguage("vala",function(a){return{k:{keyword:"char uchar unichar int uint long ulong short ushort int8 int16 int32 int64 uint8 uint16 uint32 uint64 float double bool struct enum string void weak unowned owned async signal static abstract interface override while do for foreach else switch case break default return try catch public private protected internal using new this get set const stdout stdin stderr var",built_in:"DBus GLib CCode Gee Object",literal:"false true null"},c:[{cN:"class",bK:"class interface delegate namespace",e:"{",i:"[^,:\\n\\s\\.]",c:[a.UTM]},a.CLCM,a.CBLCLM,{cN:"string",b:'"""',e:'"""',r:5},a.ASM,a.QSM,a.CNM,{cN:"preprocessor",b:"^#",e:"$",r:2},{cN:"constant",b:" [A-Z_]+ ",r:0}]}});hljs.registerLanguage("dos",function(a){return{cI:true,k:{flow:"if else goto for in do call exit not exist errorlevel defined equ neq lss leq gtr geq",keyword:"shift cd dir echo setlocal endlocal set pause copy",stream:"prn nul lpt3 lpt2 lpt1 con com4 com3 com2 com1 aux",winutils:"ping net ipconfig taskkill xcopy ren del"},c:[{cN:"envvar",b:"%%[^ ]"},{cN:"envvar",b:"%[^ ]+?%"},{cN:"envvar",b:"![^ ]+?!"},{cN:"number",b:"\\b\\d+",r:0},{cN:"comment",b:"@?rem",e:"$"}]}});hljs.registerLanguage("clojure",function(l){var e={built_in:"def cond apply if-not if-let if not not= = < < > <= <= >= == + / * - rem quot neg? pos? delay? symbol? keyword? true? false? integer? empty? coll? list? set? ifn? fn? associative? sequential? sorted? counted? reversible? number? decimal? class? distinct? isa? float? rational? reduced? ratio? odd? even? char? seq? vector? string? map? nil? contains? zero? instance? not-every? not-any? libspec? -> ->> .. . inc compare do dotimes mapcat take remove take-while drop letfn drop-last take-last drop-while while intern condp case reduced cycle split-at split-with repeat replicate iterate range merge zipmap declare line-seq sort comparator sort-by dorun doall nthnext nthrest partition eval doseq await await-for let agent atom send send-off release-pending-sends add-watch mapv filterv remove-watch agent-error restart-agent set-error-handler error-handler set-error-mode! error-mode shutdown-agents quote var fn loop recur throw try monitor-enter monitor-exit defmacro defn defn- macroexpand macroexpand-1 for dosync and or when when-not when-let comp juxt partial sequence memoize constantly complement identity assert peek pop doto proxy defstruct first rest cons defprotocol cast coll deftype defrecord last butlast sigs reify second ffirst fnext nfirst nnext defmulti defmethod meta with-meta ns in-ns create-ns import refer keys select-keys vals key val rseq name namespace promise into transient persistent! conj! assoc! dissoc! pop! disj! use class type num float double short byte boolean bigint biginteger bigdec print-method print-dup throw-if printf format load compile get-in update-in pr pr-on newline flush read slurp read-line subvec with-open memfn time re-find re-groups rand-int rand mod locking assert-valid-fdecl alias resolve ref deref refset swap! reset! set-validator! compare-and-set! alter-meta! reset-meta! commute get-validator alter ref-set ref-history-count ref-min-history ref-max-history ensure sync io! new next conj set! to-array future future-call into-array aset gen-class reduce map filter find empty hash-map hash-set sorted-map sorted-map-by sorted-set sorted-set-by vec vector seq flatten reverse assoc dissoc list disj get union difference intersection extend extend-type extend-protocol int nth delay count concat chunk chunk-buffer chunk-append chunk-first chunk-rest max min dec unchecked-inc-int unchecked-inc unchecked-dec-inc unchecked-dec unchecked-negate unchecked-add-int unchecked-add unchecked-subtract-int unchecked-subtract chunk-next chunk-cons chunked-seq? prn vary-meta lazy-seq spread list* str find-keyword keyword symbol gensym force rationalize"};var f="[a-zA-Z_0-9\\!\\.\\?\\-\\+\\*\\/\\<\\=\\>\\&\\#\\$';]+";var a="[\\s:\\(\\{]+\\d+(\\.\\d+)?";var d={cN:"number",b:a,r:0};var j=l.inherit(l.QSM,{i:null});var o={cN:"comment",b:";",e:"$",r:0};var n={cN:"collection",b:"[\\[\\{]",e:"[\\]\\}]"};var c={cN:"comment",b:"\\^"+f};var b={cN:"comment",b:"\\^\\{",e:"\\}"};var h={cN:"attribute",b:"[:]"+f};var m={cN:"list",b:"\\(",e:"\\)"};var g={eW:true,k:{literal:"true false nil"},r:0};var i={k:e,l:f,cN:"title",b:f,starts:g};m.c=[{cN:"comment",b:"comment"},i,g];g.c=[m,j,c,b,o,h,n,d];n.c=[m,j,c,o,h,n,d];return{i:/\S/,c:[o,m,{cN:"prompt",b:/^=> /,starts:{e:/\n\n|\Z/}}]}});hljs.registerLanguage("go",function(a){var b={keyword:"break default func interface select case map struct chan else goto package switch const fallthrough if range type continue for import return var go defer",constant:"true false iota nil",typename:"bool byte complex64 complex128 float32 float64 int8 int16 int32 int64 string uint8 uint16 uint32 uint64 int uint uintptr rune",built_in:"append cap close complex copy imag len make new panic print println real recover delete"};return{aliases:["golang"],k:b,i:"]/,c:[{bK:"extends implements",r:10},b.UTM]},{b:b.UIR+"\\s*\\(",rB:true,c:[b.UTM]}]},b.CNM,{cN:"annotation",b:"@[A-Za-z]+"}]}});hljs.registerLanguage("lua",function(b){var a="\\[=*\\[";var e="\\]=*\\]";var c={b:a,e:e,c:["self"]};var d=[{cN:"comment",b:"--(?!"+a+")",e:"$"},{cN:"comment",b:"--"+a,e:e,c:[c],r:10}];return{l:b.UIR,k:{keyword:"and break do else elseif end false for if in local nil not or repeat return then true until while",built_in:"_G _VERSION assert collectgarbage dofile error getfenv getmetatable ipairs load loadfile loadstring module next pairs pcall print rawequal rawget rawset require select setfenv setmetatable tonumber tostring type unpack xpcall coroutine debug io math os package string table"},c:d.concat([{cN:"function",bK:"function",e:"\\)",c:[b.inherit(b.TM,{b:"([_a-zA-Z]\\w*\\.)*([_a-zA-Z]\\w*:)?[_a-zA-Z]\\w*"}),{cN:"params",b:"\\(",eW:true,c:d}].concat(d)},b.CNM,b.ASM,b.QSM,{cN:"string",b:a,e:e,c:[c],r:10}])}});hljs.registerLanguage("rsl",function(a){return{k:{keyword:"float color point normal vector matrix while for if do return else break extern continue",built_in:"abs acos ambient area asin atan atmosphere attribute calculatenormal ceil cellnoise clamp comp concat cos degrees depth Deriv diffuse distance Du Dv environment exp faceforward filterstep floor format fresnel incident length lightsource log match max min mod noise normalize ntransform opposite option phong pnoise pow printf ptlined radians random reflect refract renderinfo round setcomp setxcomp setycomp setzcomp shadow sign sin smoothstep specular specularbrdf spline sqrt step tan texture textureinfo trace transform vtransform xcomp ycomp zcomp"},i:";/,r:0,sL:"xml"}],r:0},{cN:"function",bK:"function",e:/\{/,c:[a.inherit(a.TM,{b:/[A-Za-z$_][0-9A-Za-z$_]*/}),{cN:"params",b:/\(/,e:/\)/,c:[a.CLCM,a.CBLCLM],i:/["'\(]/}],i:/\[|%/},{b:/\$[(.]/},{b:"\\."+a.IR,r:0}]}});hljs.registerLanguage("r",function(a){var b="([a-zA-Z]|\\.[a-zA-Z.])[a-zA-Z0-9._]*";return{c:[a.HCM,{b:b,l:b,k:{keyword:"function if in break next repeat else for return switch while try tryCatch|10 stop warning require library attach detach source setMethod setGeneric setGroupGeneric setClass ...|10",literal:"NULL NA TRUE FALSE T F Inf NaN NA_integer_|10 NA_real_|10 NA_character_|10 NA_complex_|10"},r:0},{cN:"number",b:"0[xX][0-9a-fA-F]+[Li]?\\b",r:0},{cN:"number",b:"\\d+(?:[eE][+\\-]?\\d*)?L\\b",r:0},{cN:"number",b:"\\d+\\.(?!\\d)(?:i\\b)?",r:0},{cN:"number",b:"\\d+(?:\\.\\d*)?(?:[eE][+\\-]?\\d*)?i?\\b",r:0},{cN:"number",b:"\\.\\d+(?:[eE][+\\-]?\\d*)?i?\\b",r:0},{b:"`",e:"`",r:0},{cN:"string",c:[a.BE],v:[{b:'"',e:'"'},{b:"'",e:"'"}]}]}});hljs.registerLanguage("ruby",function(e){var h="[a-zA-Z_]\\w*[!?=]?|[-+~]\\@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\]=?";var g="and false then defined module in return redo if BEGIN retry end for true self when next until do begin unless END rescue nil else break undef not super class case require yield alias while ensure elsif or include attr_reader attr_writer attr_accessor";var a={cN:"yardoctag",b:"@[A-Za-z]+"};var i={cN:"comment",v:[{b:"#",e:"$",c:[a]},{b:"^\\=begin",e:"^\\=end",c:[a],r:10},{b:"^__END__",e:"\\n$"}]};var c={cN:"subst",b:"#\\{",e:"}",k:g};var d={cN:"string",c:[e.BE,c],v:[{b:/'/,e:/'/},{b:/"/,e:/"/},{b:"%[qw]?\\(",e:"\\)"},{b:"%[qw]?\\[",e:"\\]"},{b:"%[qw]?{",e:"}"},{b:"%[qw]?<",e:">",r:10},{b:"%[qw]?/",e:"/",r:10},{b:"%[qw]?%",e:"%",r:10},{b:"%[qw]?-",e:"-",r:10},{b:"%[qw]?\\|",e:"\\|",r:10},{b:/\B\?(\\\d{1,3}|\\x[A-Fa-f0-9]{1,2}|\\u[A-Fa-f0-9]{4}|\\?\S)\b/}]};var b={cN:"params",b:"\\(",e:"\\)",k:g};var f=[d,i,{cN:"class",bK:"class module",e:"$|;",i:/=/,c:[e.inherit(e.TM,{b:"[A-Za-z_]\\w*(::\\w+)*(\\?|\\!)?"}),{cN:"inheritance",b:"<\\s*",c:[{cN:"parent",b:"("+e.IR+"::)?"+e.IR}]},i]},{cN:"function",bK:"def",e:" |$|;",r:0,c:[e.inherit(e.TM,{b:h}),b,i]},{cN:"constant",b:"(::)?(\\b[A-Z]\\w*(::)?)+",r:0},{cN:"symbol",b:":",c:[d,{b:h}],r:0},{cN:"symbol",b:e.UIR+"(\\!|\\?)?:",r:0},{cN:"number",b:"(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b",r:0},{cN:"variable",b:"(\\$\\W)|((\\$|\\@\\@?)(\\w+))"},{b:"("+e.RSR+")\\s*",c:[i,{cN:"regexp",c:[e.BE,c],i:/\n/,v:[{b:"/",e:"/[a-z]*"},{b:"%r{",e:"}[a-z]*"},{b:"%r\\(",e:"\\)[a-z]*"},{b:"%r!",e:"![a-z]*"},{b:"%r\\[",e:"\\][a-z]*"}]}],r:0}];c.c=f;b.c=f;return{k:g,c:f}});hljs.registerLanguage("haml",function(a){return{cI:true,c:[{cN:"doctype",b:"^!!!( (5|1\\.1|Strict|Frameset|Basic|Mobile|RDFa|XML\\b.*))?$",r:10},{cN:"comment",b:"^\\s*(!=#|=#|-#|/).*$",r:0},{b:"^\\s*(-|=|!=)(?!#)",starts:{e:"\\n",sL:"ruby"}},{cN:"tag",b:"^\\s*%",c:[{cN:"title",b:"\\w+"},{cN:"value",b:"[#\\.]\\w+"},{b:"{\\s*",e:"\\s*}",eE:true,c:[{b:":\\w+\\s*=>",e:",\\s+",rB:true,eW:true,c:[{cN:"symbol",b:":\\w+"},{cN:"string",b:'"',e:'"'},{cN:"string",b:"'",e:"'"},{b:"\\w+",r:0}]}]},{b:"\\(\\s*",e:"\\s*\\)",eE:true,c:[{b:"\\w+\\s*=",e:"\\s+",rB:true,eW:true,c:[{cN:"attribute",b:"\\w+",r:0},{cN:"string",b:'"',e:'"'},{cN:"string",b:"'",e:"'"},{b:"\\w+",r:0}]},]}]},{cN:"bullet",b:"^\\s*[=~]\\s*",r:0},{b:"#{",starts:{e:"}",sL:"ruby"}}]}});hljs.registerLanguage("brainfuck",function(b){var a={cN:"literal",b:"[\\+\\-]",r:0};return{c:[{cN:"comment",b:"[^\\[\\]\\.,\\+\\-<> \r\n]",rE:true,e:"[\\[\\]\\.,\\+\\-<> \r\n]",r:0},{cN:"title",b:"[\\[\\]]",r:0},{cN:"string",b:"[\\.,]",r:0},{b:/\+\+|\-\-/,rB:true,c:[a]},a]}});hljs.registerLanguage("matlab",function(a){var b=[a.CNM,{cN:"string",b:"'",e:"'",c:[a.BE,{b:"''"}]}];return{k:{keyword:"break case catch classdef continue else elseif end enumerated events for function global if methods otherwise parfor persistent properties return spmd switch try while",built_in:"sin sind sinh asin asind asinh cos cosd cosh acos acosd acosh tan tand tanh atan atand atan2 atanh sec secd sech asec asecd asech csc cscd csch acsc acscd acsch cot cotd coth acot acotd acoth hypot exp expm1 log log1p log10 log2 pow2 realpow reallog realsqrt sqrt nthroot nextpow2 abs angle complex conj imag real unwrap isreal cplxpair fix floor ceil round mod rem sign airy besselj bessely besselh besseli besselk beta betainc betaln ellipj ellipke erf erfc erfcx erfinv expint gamma gammainc gammaln psi legendre cross dot factor isprime primes gcd lcm rat rats perms nchoosek factorial cart2sph cart2pol pol2cart sph2cart hsv2rgb rgb2hsv zeros ones eye repmat rand randn linspace logspace freqspace meshgrid accumarray size length ndims numel disp isempty isequal isequalwithequalnans cat reshape diag blkdiag tril triu fliplr flipud flipdim rot90 find sub2ind ind2sub bsxfun ndgrid permute ipermute shiftdim circshift squeeze isscalar isvector ans eps realmax realmin pi i inf nan isnan isinf isfinite j why compan gallery hadamard hankel hilb invhilb magic pascal rosser toeplitz vander wilkinson"},i:'(//|"|#|/\\*|\\s+/\\w+)',c:[{cN:"function",bK:"function",e:"$",c:[a.UTM,{cN:"params",b:"\\(",e:"\\)"},{cN:"params",b:"\\[",e:"\\]"}]},{cN:"transposed_variable",b:"[a-zA-Z_][a-zA-Z_0-9]*('+[\\.']*|[\\.']+)",e:"",r:0},{cN:"matrix",b:"\\[",e:"\\]'*[\\.']*",c:b,r:0},{cN:"cell",b:"\\{",e:"\\}'*[\\.']*",c:b,i:/:/},{cN:"comment",b:"\\%",e:"$"}].concat(b)}});hljs.registerLanguage("vbscript",function(a){return{cI:true,k:{keyword:"call class const dim do loop erase execute executeglobal exit for each next function if then else on error option explicit new private property let get public randomize redim rem select case set stop sub while wend with end to elseif is or xor and not class_initialize class_terminate default preserve in me byval byref step resume goto",built_in:"lcase month vartype instrrev ubound setlocale getobject rgb getref string weekdayname rnd dateadd monthname now day minute isarray cbool round formatcurrency conversions csng timevalue second year space abs clng timeserial fixs len asc isempty maths dateserial atn timer isobject filter weekday datevalue ccur isdate instr datediff formatdatetime replace isnull right sgn array snumeric log cdbl hex chr lbound msgbox ucase getlocale cos cdate cbyte rtrim join hour oct typename trim strcomp int createobject loadpicture tan formatnumber mid scriptenginebuildversion scriptengine split scriptengineminorversion cint sin datepart ltrim sqr scriptenginemajorversion time derived eval date formatpercent exp inputbox left ascw chrw regexp server response request cstr err",literal:"true false null nothing empty"},i:"//",c:[a.inherit(a.QSM,{c:[{b:'""'}]}),{cN:"comment",b:/'/,e:/$/,r:0},a.CNM]}});hljs.registerLanguage("fsharp",function(a){return{k:"abstract and as assert base begin class default delegate do done downcast downto elif else end exception extern false finally for fun function global if in inherit inline interface internal lazy let match member module mutable namespace new null of open or override private public rec return sig static struct then to true try type upcast use val void when while with yield",c:[{cN:"string",b:'@"',e:'"',c:[{b:'""'}]},{cN:"string",b:'"""',e:'"""'},{cN:"comment",b:"\\(\\*",e:"\\*\\)"},{cN:"class",bK:"type",e:"\\(|=|$",c:[a.UTM]},{cN:"annotation",b:"\\[<",e:">\\]"},{cN:"attribute",b:"\\B('[A-Za-z])\\b",c:[a.BE]},a.CLCM,a.inherit(a.QSM,{i:null}),a.CNM]}});hljs.registerLanguage("makefile",function(a){var b={cN:"variable",b:/\$\(/,e:/\)/,c:[a.BE]};return{c:[a.HCM,{b:/^\w+\s*\W*=/,rB:true,r:0,starts:{cN:"constant",e:/\s*\W*=/,eE:true,starts:{e:/$/,r:0,c:[b],}}},{cN:"title",b:/^[\w]+:\s*$/},{cN:"phony",b:/^\.PHONY:/,e:/$/,k:".PHONY",l:/[\.\w]+/},{b:/^\t+/,e:/$/,c:[a.QSM,b]}]}});hljs.registerLanguage("diff",function(a){return{c:[{cN:"chunk",r:10,v:[{b:/^\@\@ +\-\d+,\d+ +\+\d+,\d+ +\@\@$/},{b:/^\*\*\* +\d+,\d+ +\*\*\*\*$/},{b:/^\-\-\- +\d+,\d+ +\-\-\-\-$/}]},{cN:"header",v:[{b:/Index: /,e:/$/},{b:/=====/,e:/=====$/},{b:/^\-\-\-/,e:/$/},{b:/^\*{3} /,e:/$/},{b:/^\+\+\+/,e:/$/},{b:/\*{5}/,e:/\*{5}$/}]},{cN:"addition",b:"^\\+",e:"$"},{cN:"deletion",b:"^\\-",e:"$"},{cN:"change",b:"^\\!",e:"$"}]}});hljs.registerLanguage("rib",function(a){return{k:"ArchiveRecord AreaLightSource Atmosphere Attribute AttributeBegin AttributeEnd Basis Begin Blobby Bound Clipping ClippingPlane Color ColorSamples ConcatTransform Cone CoordinateSystem CoordSysTransform CropWindow Curves Cylinder DepthOfField Detail DetailRange Disk Displacement Display End ErrorHandler Exposure Exterior Format FrameAspectRatio FrameBegin FrameEnd GeneralPolygon GeometricApproximation Geometry Hider Hyperboloid Identity Illuminate Imager Interior LightSource MakeCubeFaceEnvironment MakeLatLongEnvironment MakeShadow MakeTexture Matte MotionBegin MotionEnd NuPatch ObjectBegin ObjectEnd ObjectInstance Opacity Option Orientation Paraboloid Patch PatchMesh Perspective PixelFilter PixelSamples PixelVariance Points PointsGeneralPolygons PointsPolygons Polygon Procedural Projection Quantize ReadArchive RelativeDetail ReverseOrientation Rotate Scale ScreenWindow ShadingInterpolation ShadingRate Shutter Sides Skew SolidBegin SolidEnd Sphere SubdivisionMesh Surface TextureCoordinates Torus Transform TransformBegin TransformEnd TransformPoints Translate TrimCurve WorldBegin WorldEnd",i:"/};var c={cN:"string",c:[b.BE,a],v:[{b:'b"',e:'"'},{b:"b'",e:"'"},b.inherit(b.ASM,{i:null}),b.inherit(b.QSM,{i:null})]};var d={v:[b.BNM,b.CNM]};return{cI:true,k:"and include_once list abstract global private echo interface as static endswitch array null if endwhile or const for endforeach self var while isset public protected exit foreach throw elseif include __FILE__ empty require_once do xor return parent clone use __CLASS__ __LINE__ else break print eval new catch __METHOD__ case exception default die require __FUNCTION__ enddeclare final try switch continue endfor endif declare unset true false trait goto instanceof insteadof __DIR__ __NAMESPACE__ yield finally",c:[b.CLCM,b.HCM,{cN:"comment",b:"/\\*",e:"\\*/",c:[{cN:"phpdoc",b:"\\s@[A-Za-z]+"},a]},{cN:"comment",b:"__halt_compiler.+?;",eW:true,k:"__halt_compiler",l:b.UIR},{cN:"string",b:"<<<['\"]?\\w+['\"]?$",e:"^\\w+;",c:[b.BE]},a,e,{cN:"function",bK:"function",e:/[;{]/,i:"\\$|\\[|%",c:[b.UTM,{cN:"params",b:"\\(",e:"\\)",c:["self",e,b.CBLCLM,c,d]}]},{cN:"class",bK:"class interface",e:"{",i:/[:\(\$"]/,c:[{bK:"extends implements",r:10},b.UTM]},{bK:"namespace",e:";",i:/[\.']/,c:[b.UTM]},{bK:"use",e:";",c:[b.UTM]},{b:"=>"},c,d]}});hljs.registerLanguage("cmake",function(a){return{cI:true,k:{keyword:"add_custom_command add_custom_target add_definitions add_dependencies add_executable add_library add_subdirectory add_test aux_source_directory break build_command cmake_minimum_required cmake_policy configure_file create_test_sourcelist define_property else elseif enable_language enable_testing endforeach endfunction endif endmacro endwhile execute_process export find_file find_library find_package find_path find_program fltk_wrap_ui foreach function get_cmake_property get_directory_property get_filename_component get_property get_source_file_property get_target_property get_test_property if include include_directories include_external_msproject include_regular_expression install link_directories load_cache load_command macro mark_as_advanced message option output_required_files project qt_wrap_cpp qt_wrap_ui remove_definitions return separate_arguments set set_directory_properties set_property set_source_files_properties set_target_properties set_tests_properties site_name source_group string target_link_libraries try_compile try_run unset variable_watch while build_name exec_program export_library_dependencies install_files install_programs install_targets link_libraries make_directory remove subdir_depends subdirs use_mangled_mesa utility_source variable_requires write_file qt5_use_modules qt5_use_package qt5_wrap_cpp on off true false and or",operator:"equal less greater strless strgreater strequal matches"},c:[{cN:"envvar",b:"\\${",e:"}"},a.HCM,a.QSM,a.NM]}});hljs.registerLanguage("bash",function(b){var a={cN:"variable",v:[{b:/\$[\w\d#@][\w\d_]*/},{b:/\$\{(.*?)\}/}]};var d={cN:"string",b:/"/,e:/"/,c:[b.BE,a,{cN:"variable",b:/\$\(/,e:/\)/,c:[b.BE]}]};var c={cN:"string",b:/'/,e:/'/};return{l:/-?[a-z\.]+/,k:{keyword:"if then else elif fi for break continue while in do done exit return set declare case esac export exec",literal:"true false",built_in:"printf echo read cd pwd pushd popd dirs let eval unset typeset readonly getopts source shopt caller type hash bind help sudo",operator:"-ne -eq -lt -gt -f -d -e -s -l -a"},c:[{cN:"shebang",b:/^#![^\n]+sh\s*$/,r:10},{cN:"function",b:/\w[\w\d_]*\s*\(\s*\)\s*\{/,rB:true,c:[b.inherit(b.TM,{b:/\w[\w\d_]*/})],r:0},b.HCM,b.NM,d,c,a]}});hljs.registerLanguage("applescript",function(a){var b=a.inherit(a.QSM,{i:""});var d={cN:"params",b:"\\(",e:"\\)",c:["self",a.CNM,b]};var c=[{cN:"comment",b:"--",e:"$",},{cN:"comment",b:"\\(\\*",e:"\\*\\)",c:["self",{b:"--",e:"$"}]},a.HCM];return{k:{keyword:"about above after against and around as at back before beginning behind below beneath beside between but by considering contain contains continue copy div does eighth else end equal equals error every exit fifth first for fourth from front get given global if ignoring in into is it its last local me middle mod my ninth not of on onto or over prop property put ref reference repeat returning script second set seventh since sixth some tell tenth that the then third through thru timeout times to transaction try until where while whose with without",constant:"AppleScript false linefeed return pi quote result space tab true",type:"alias application boolean class constant date file integer list number real record string text",command:"activate beep count delay launch log offset read round run say summarize write",property:"character characters contents day frontmost id item length month name paragraph paragraphs rest reverse running time version weekday word words year"},c:[b,a.CNM,{cN:"type",b:"\\bPOSIX file\\b"},{cN:"command",b:"\\b(clipboard info|the clipboard|info for|list (disks|folder)|mount volume|path to|(close|open for) access|(get|set) eof|current date|do shell script|get volume settings|random number|set volume|system attribute|system info|time to GMT|(load|run|store) script|scripting components|ASCII (character|number)|localized string|choose (application|color|file|file name|folder|from list|remote application|URL)|display (alert|dialog))\\b|^\\s*return\\b"},{cN:"constant",b:"\\b(text item delimiters|current application|missing value)\\b"},{cN:"keyword",b:"\\b(apart from|aside from|instead of|out of|greater than|isn't|(doesn't|does not) (equal|come before|come after|contain)|(greater|less) than( or equal)?|(starts?|ends|begins?) with|contained by|comes (before|after)|a (ref|reference))\\b"},{cN:"property",b:"\\b(POSIX path|(date|time) string|quoted form)\\b"},{cN:"function_start",bK:"on",i:"[${=;\\n]",c:[a.UTM,d]}].concat(c),i:"//"}});hljs.registerLanguage("vhdl",function(a){return{cI:true,k:{keyword:"abs access after alias all and architecture array assert attribute begin block body buffer bus case component configuration constant context cover disconnect downto default else elsif end entity exit fairness file for force function generate generic group guarded if impure in inertial inout is label library linkage literal loop map mod nand new next nor not null of on open or others out package port postponed procedure process property protected pure range record register reject release rem report restrict restrict_guarantee return rol ror select sequence severity shared signal sla sll sra srl strong subtype then to transport type unaffected units until use variable vmode vprop vunit wait when while with xnor xor",typename:"boolean bit character severity_level integer time delay_length natural positive string bit_vector file_open_kind file_open_status std_ulogic std_ulogic_vector std_logic std_logic_vector unsigned signed boolean_vector integer_vector real_vector time_vector"},i:"{",c:[a.CBLCLM,{cN:"comment",b:"--",e:"$"},a.QSM,a.CNM,{cN:"literal",b:"'(U|X|0|1|Z|W|L|H|-)'",c:[a.BE]},{cN:"attribute",b:"'[A-Za-z](_?[A-Za-z0-9])*",c:[a.BE]}]}});hljs.registerLanguage("parser3",function(a){return{sL:"xml",r:0,c:[{cN:"comment",b:"^#",e:"$"},{cN:"comment",b:"\\^rem{",e:"}",r:10,c:[{b:"{",e:"}",c:["self"]}]},{cN:"preprocessor",b:"^@(?:BASE|USE|CLASS|OPTIONS)$",r:10},{cN:"title",b:"@[\\w\\-]+\\[[\\w^;\\-]*\\](?:\\[[\\w^;\\-]*\\])?(?:.*)$"},{cN:"variable",b:"\\$\\{?[\\w\\-\\.\\:]+\\}?"},{cN:"keyword",b:"\\^[\\w\\-\\.\\:]+"},{cN:"number",b:"\\^#[0-9a-fA-F]+"},a.CNM]}});hljs.registerLanguage("scala",function(a){var c={cN:"annotation",b:"@[A-Za-z]+"};var b={cN:"string",b:'u?r?"""',e:'"""',r:10};return{k:"type yield lazy override def with val var false true sealed abstract private trait object null if for while throw finally protected extends import final return else break new catch super class case package default try this match continue throws",c:[{cN:"javadoc",b:"/\\*\\*",e:"\\*/",c:[{cN:"javadoctag",b:"@[A-Za-z]+"}],r:10},a.CLCM,a.CBLCLM,b,a.ASM,a.QSM,{cN:"class",b:"((case )?class |object |trait )",e:"({|$)",i:":",k:"case class trait object",c:[{bK:"extends with",r:10},a.UTM,{cN:"params",b:"\\(",e:"\\)",c:[a.ASM,a.QSM,b,c]}]},a.CNM,c]}});hljs.registerLanguage("cpp",function(a){var b={keyword:"false int float while private char catch export virtual operator sizeof dynamic_cast|10 typedef const_cast|10 const struct for static_cast|10 union namespace unsigned long throw volatile static protected bool template mutable if public friend do return goto auto void enum else break new extern using true class asm case typeid short reinterpret_cast|10 default double register explicit signed typename try this switch continue wchar_t inline delete alignof char16_t char32_t constexpr decltype noexcept nullptr static_assert thread_local restrict _Bool complex _Complex _Imaginary",built_in:"std string cin cout cerr clog stringstream istringstream ostringstream auto_ptr deque list queue stack vector map set bitset multiset multimap unordered_set unordered_map unordered_multiset unordered_multimap array shared_ptr abort abs acos asin atan2 atan calloc ceil cosh cos exit exp fabs floor fmod fprintf fputs free frexp fscanf isalnum isalpha iscntrl isdigit isgraph islower isprint ispunct isspace isupper isxdigit tolower toupper labs ldexp log10 log malloc memchr memcmp memcpy memset modf pow printf putchar puts scanf sinh sin snprintf sprintf sqrt sscanf strcat strchr strcmp strcpy strcspn strlen strncat strncmp strncpy strpbrk strrchr strspn strstr tanh tan vfprintf vprintf vsprintf"};return{aliases:["c"],k:b,i:"",i:"\\n"},a.CLCM]},{cN:"stl_container",b:"\\b(deque|list|queue|stack|vector|map|set|bitset|multiset|multimap|unordered_map|unordered_set|unordered_multiset|unordered_multimap|array)\\s*<",e:">",k:b,r:10,c:["self"]}]}}); \ No newline at end of file diff --git a/vendor/maximebf/debugbar/src/DebugBar/Resources/vendor/highlightjs/styles/github.css b/vendor/maximebf/debugbar/src/DebugBar/Resources/vendor/highlightjs/styles/github.css deleted file mode 100644 index b1efcdb2..00000000 --- a/vendor/maximebf/debugbar/src/DebugBar/Resources/vendor/highlightjs/styles/github.css +++ /dev/null @@ -1,125 +0,0 @@ -/* - -github.com style (c) Vasily Polovnyov - -*/ - -div.phpdebugbar .hljs { - display: block; padding: 0.5em; - color: #333; - background: #f8f8f8 -} - -div.phpdebugbar .hljs-comment, -div.phpdebugbar .hljs-template_comment, -div.phpdebugbar .diff .hljs-header, -div.phpdebugbar .hljs-javadoc { - color: #998; - font-style: italic -} - -div.phpdebugbar .hljs-keyword, -div.phpdebugbar .css .rule .hljs-keyword, -div.phpdebugbar .hljs-winutils, -div.phpdebugbar .javascript .hljs-title, -div.phpdebugbar .nginx .hljs-title, -div.phpdebugbar .hljs-subst, -div.phpdebugbar .hljs-request, -div.phpdebugbar .hljs-status { - color: #333; - font-weight: bold -} - -div.phpdebugbar .hljs-number, -div.phpdebugbar .hljs-hexcolor, -div.phpdebugbar .ruby .hljs-constant { - color: #099; -} - -div.phpdebugbar .hljs-string, -div.phpdebugbar .hljs-tag .hljs-value, -div.phpdebugbar .hljs-phpdoc, -div.phpdebugbar .tex .hljs-formula { - color: #d14 -} - -div.phpdebugbar .hljs-title, -div.phpdebugbar .hljs-id, -div.phpdebugbar .coffeescript .hljs-params, -div.phpdebugbar .scss .hljs-preprocessor { - color: #900; - font-weight: bold -} - -div.phpdebugbar .javascript .hljs-title, -div.phpdebugbar .lisp .hljs-title, -div.phpdebugbar .clojure .hljs-title, -div.phpdebugbar .hljs-subst { - font-weight: normal -} - -div.phpdebugbar .hljs-class .hljs-title, -div.phpdebugbar .haskell .hljs-type, -div.phpdebugbar .vhdl .hljs-literal, -div.phpdebugbar .tex .hljs-command { - color: #458; - font-weight: bold -} - -div.phpdebugbar .hljs-tag, -div.phpdebugbar .hljs-tag .hljs-title, -div.phpdebugbar .hljs-rules .hljs-property, -div.phpdebugbar .django .hljs-tag .hljs-keyword { - color: #000080; - font-weight: normal -} - -div.phpdebugbar .hljs-attribute, -div.phpdebugbar .hljs-variable, -div.phpdebugbar .lisp .hljs-body { - color: #008080 -} - -div.phpdebugbar .hljs-regexp { - color: #009926 -} - -div.phpdebugbar .hljs-symbol, -div.phpdebugbar .ruby .hljs-symbol .hljs-string, -div.phpdebugbar .lisp .hljs-keyword, -div.phpdebugbar .tex .hljs-special, -div.phpdebugbar .hljs-prompt { - color: #990073 -} - -div.phpdebugbar .hljs-built_in, -div.phpdebugbar .lisp .hljs-title, -div.phpdebugbar .clojure .hljs-built_in { - color: #0086b3 -} - -div.phpdebugbar .hljs-preprocessor, -div.phpdebugbar .hljs-pragma, -div.phpdebugbar .hljs-pi, -div.phpdebugbar .hljs-doctype, -div.phpdebugbar .hljs-shebang, -div.phpdebugbar .hljs-cdata { - color: #999; - font-weight: bold -} - -div.phpdebugbar .hljs-deletion { - background: #fdd -} - -div.phpdebugbar .hljs-addition { - background: #dfd -} - -div.phpdebugbar .diff .hljs-change { - background: #0086b3 -} - -div.phpdebugbar .hljs-chunk { - color: #aaa -} diff --git a/vendor/maximebf/debugbar/src/DebugBar/Resources/vendor/jquery/dist/jquery.min.js b/vendor/maximebf/debugbar/src/DebugBar/Resources/vendor/jquery/dist/jquery.min.js deleted file mode 100644 index e8364758..00000000 --- a/vendor/maximebf/debugbar/src/DebugBar/Resources/vendor/jquery/dist/jquery.min.js +++ /dev/null @@ -1,5 +0,0 @@ -/*! jQuery v1.12.4 | (c) jQuery Foundation | jquery.org/license */ -!function(a,b){"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){var c=[],d=a.document,e=c.slice,f=c.concat,g=c.push,h=c.indexOf,i={},j=i.toString,k=i.hasOwnProperty,l={},m="1.12.4",n=function(a,b){return new n.fn.init(a,b)},o=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,p=/^-ms-/,q=/-([\da-z])/gi,r=function(a,b){return b.toUpperCase()};n.fn=n.prototype={jquery:m,constructor:n,selector:"",length:0,toArray:function(){return e.call(this)},get:function(a){return null!=a?0>a?this[a+this.length]:this[a]:e.call(this)},pushStack:function(a){var b=n.merge(this.constructor(),a);return b.prevObject=this,b.context=this.context,b},each:function(a){return n.each(this,a)},map:function(a){return this.pushStack(n.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(e.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(0>a?b:0);return this.pushStack(c>=0&&b>c?[this[c]]:[])},end:function(){return this.prevObject||this.constructor()},push:g,sort:c.sort,splice:c.splice},n.extend=n.fn.extend=function(){var a,b,c,d,e,f,g=arguments[0]||{},h=1,i=arguments.length,j=!1;for("boolean"==typeof g&&(j=g,g=arguments[h]||{},h++),"object"==typeof g||n.isFunction(g)||(g={}),h===i&&(g=this,h--);i>h;h++)if(null!=(e=arguments[h]))for(d in e)a=g[d],c=e[d],g!==c&&(j&&c&&(n.isPlainObject(c)||(b=n.isArray(c)))?(b?(b=!1,f=a&&n.isArray(a)?a:[]):f=a&&n.isPlainObject(a)?a:{},g[d]=n.extend(j,f,c)):void 0!==c&&(g[d]=c));return g},n.extend({expando:"jQuery"+(m+Math.random()).replace(/\D/g,""),isReady:!0,error:function(a){throw new Error(a)},noop:function(){},isFunction:function(a){return"function"===n.type(a)},isArray:Array.isArray||function(a){return"array"===n.type(a)},isWindow:function(a){return null!=a&&a==a.window},isNumeric:function(a){var b=a&&a.toString();return!n.isArray(a)&&b-parseFloat(b)+1>=0},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},isPlainObject:function(a){var b;if(!a||"object"!==n.type(a)||a.nodeType||n.isWindow(a))return!1;try{if(a.constructor&&!k.call(a,"constructor")&&!k.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}if(!l.ownFirst)for(b in a)return k.call(a,b);for(b in a);return void 0===b||k.call(a,b)},type:function(a){return null==a?a+"":"object"==typeof a||"function"==typeof a?i[j.call(a)]||"object":typeof a},globalEval:function(b){b&&n.trim(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(p,"ms-").replace(q,r)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()},each:function(a,b){var c,d=0;if(s(a)){for(c=a.length;c>d;d++)if(b.call(a[d],d,a[d])===!1)break}else for(d in a)if(b.call(a[d],d,a[d])===!1)break;return a},trim:function(a){return null==a?"":(a+"").replace(o,"")},makeArray:function(a,b){var c=b||[];return null!=a&&(s(Object(a))?n.merge(c,"string"==typeof a?[a]:a):g.call(c,a)),c},inArray:function(a,b,c){var d;if(b){if(h)return h.call(b,a,c);for(d=b.length,c=c?0>c?Math.max(0,d+c):c:0;d>c;c++)if(c in b&&b[c]===a)return c}return-1},merge:function(a,b){var c=+b.length,d=0,e=a.length;while(c>d)a[e++]=b[d++];if(c!==c)while(void 0!==b[d])a[e++]=b[d++];return a.length=e,a},grep:function(a,b,c){for(var d,e=[],f=0,g=a.length,h=!c;g>f;f++)d=!b(a[f],f),d!==h&&e.push(a[f]);return e},map:function(a,b,c){var d,e,g=0,h=[];if(s(a))for(d=a.length;d>g;g++)e=b(a[g],g,c),null!=e&&h.push(e);else for(g in a)e=b(a[g],g,c),null!=e&&h.push(e);return f.apply([],h)},guid:1,proxy:function(a,b){var c,d,f;return"string"==typeof b&&(f=a[b],b=a,a=f),n.isFunction(a)?(c=e.call(arguments,2),d=function(){return a.apply(b||this,c.concat(e.call(arguments)))},d.guid=a.guid=a.guid||n.guid++,d):void 0},now:function(){return+new Date},support:l}),"function"==typeof Symbol&&(n.fn[Symbol.iterator]=c[Symbol.iterator]),n.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(a,b){i["[object "+b+"]"]=b.toLowerCase()});function s(a){var b=!!a&&"length"in a&&a.length,c=n.type(a);return"function"===c||n.isWindow(a)?!1:"array"===c||0===b||"number"==typeof b&&b>0&&b-1 in a}var t=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u="sizzle"+1*new Date,v=a.document,w=0,x=0,y=ga(),z=ga(),A=ga(),B=function(a,b){return a===b&&(l=!0),0},C=1<<31,D={}.hasOwnProperty,E=[],F=E.pop,G=E.push,H=E.push,I=E.slice,J=function(a,b){for(var c=0,d=a.length;d>c;c++)if(a[c]===b)return c;return-1},K="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",L="[\\x20\\t\\r\\n\\f]",M="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",N="\\["+L+"*("+M+")(?:"+L+"*([*^$|!~]?=)"+L+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+M+"))|)"+L+"*\\]",O=":("+M+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+N+")*)|.*)\\)|)",P=new RegExp(L+"+","g"),Q=new RegExp("^"+L+"+|((?:^|[^\\\\])(?:\\\\.)*)"+L+"+$","g"),R=new RegExp("^"+L+"*,"+L+"*"),S=new RegExp("^"+L+"*([>+~]|"+L+")"+L+"*"),T=new RegExp("="+L+"*([^\\]'\"]*?)"+L+"*\\]","g"),U=new RegExp(O),V=new RegExp("^"+M+"$"),W={ID:new RegExp("^#("+M+")"),CLASS:new RegExp("^\\.("+M+")"),TAG:new RegExp("^("+M+"|[*])"),ATTR:new RegExp("^"+N),PSEUDO:new RegExp("^"+O),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+L+"*(even|odd|(([+-]|)(\\d*)n|)"+L+"*(?:([+-]|)"+L+"*(\\d+)|))"+L+"*\\)|)","i"),bool:new RegExp("^(?:"+K+")$","i"),needsContext:new RegExp("^"+L+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+L+"*((?:-\\d)?\\d*)"+L+"*\\)|)(?=[^-]|$)","i")},X=/^(?:input|select|textarea|button)$/i,Y=/^h\d$/i,Z=/^[^{]+\{\s*\[native \w/,$=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,_=/[+~]/,aa=/'|\\/g,ba=new RegExp("\\\\([\\da-f]{1,6}"+L+"?|("+L+")|.)","ig"),ca=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:0>d?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)},da=function(){m()};try{H.apply(E=I.call(v.childNodes),v.childNodes),E[v.childNodes.length].nodeType}catch(ea){H={apply:E.length?function(a,b){G.apply(a,I.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function fa(a,b,d,e){var f,h,j,k,l,o,r,s,w=b&&b.ownerDocument,x=b?b.nodeType:9;if(d=d||[],"string"!=typeof a||!a||1!==x&&9!==x&&11!==x)return d;if(!e&&((b?b.ownerDocument||b:v)!==n&&m(b),b=b||n,p)){if(11!==x&&(o=$.exec(a)))if(f=o[1]){if(9===x){if(!(j=b.getElementById(f)))return d;if(j.id===f)return d.push(j),d}else if(w&&(j=w.getElementById(f))&&t(b,j)&&j.id===f)return d.push(j),d}else{if(o[2])return H.apply(d,b.getElementsByTagName(a)),d;if((f=o[3])&&c.getElementsByClassName&&b.getElementsByClassName)return H.apply(d,b.getElementsByClassName(f)),d}if(c.qsa&&!A[a+" "]&&(!q||!q.test(a))){if(1!==x)w=b,s=a;else if("object"!==b.nodeName.toLowerCase()){(k=b.getAttribute("id"))?k=k.replace(aa,"\\$&"):b.setAttribute("id",k=u),r=g(a),h=r.length,l=V.test(k)?"#"+k:"[id='"+k+"']";while(h--)r[h]=l+" "+qa(r[h]);s=r.join(","),w=_.test(a)&&oa(b.parentNode)||b}if(s)try{return H.apply(d,w.querySelectorAll(s)),d}catch(y){}finally{k===u&&b.removeAttribute("id")}}}return i(a.replace(Q,"$1"),b,d,e)}function ga(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function ha(a){return a[u]=!0,a}function ia(a){var b=n.createElement("div");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function ja(a,b){var c=a.split("|"),e=c.length;while(e--)d.attrHandle[c[e]]=b}function ka(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&(~b.sourceIndex||C)-(~a.sourceIndex||C);if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function la(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function ma(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function na(a){return ha(function(b){return b=+b,ha(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function oa(a){return a&&"undefined"!=typeof a.getElementsByTagName&&a}c=fa.support={},f=fa.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return b?"HTML"!==b.nodeName:!1},m=fa.setDocument=function(a){var b,e,g=a?a.ownerDocument||a:v;return g!==n&&9===g.nodeType&&g.documentElement?(n=g,o=n.documentElement,p=!f(n),(e=n.defaultView)&&e.top!==e&&(e.addEventListener?e.addEventListener("unload",da,!1):e.attachEvent&&e.attachEvent("onunload",da)),c.attributes=ia(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=ia(function(a){return a.appendChild(n.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=Z.test(n.getElementsByClassName),c.getById=ia(function(a){return o.appendChild(a).id=u,!n.getElementsByName||!n.getElementsByName(u).length}),c.getById?(d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c=b.getElementById(a);return c?[c]:[]}},d.filter.ID=function(a){var b=a.replace(ba,ca);return function(a){return a.getAttribute("id")===b}}):(delete d.find.ID,d.filter.ID=function(a){var b=a.replace(ba,ca);return function(a){var c="undefined"!=typeof a.getAttributeNode&&a.getAttributeNode("id");return c&&c.value===b}}),d.find.TAG=c.getElementsByTagName?function(a,b){return"undefined"!=typeof b.getElementsByTagName?b.getElementsByTagName(a):c.qsa?b.querySelectorAll(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){return"undefined"!=typeof b.getElementsByClassName&&p?b.getElementsByClassName(a):void 0},r=[],q=[],(c.qsa=Z.test(n.querySelectorAll))&&(ia(function(a){o.appendChild(a).innerHTML="
    ",a.querySelectorAll("[msallowcapture^='']").length&&q.push("[*^$]="+L+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||q.push("\\["+L+"*(?:value|"+K+")"),a.querySelectorAll("[id~="+u+"-]").length||q.push("~="),a.querySelectorAll(":checked").length||q.push(":checked"),a.querySelectorAll("a#"+u+"+*").length||q.push(".#.+[+~]")}),ia(function(a){var b=n.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&q.push("name"+L+"*[*^$|!~]?="),a.querySelectorAll(":enabled").length||q.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),q.push(",.*:")})),(c.matchesSelector=Z.test(s=o.matches||o.webkitMatchesSelector||o.mozMatchesSelector||o.oMatchesSelector||o.msMatchesSelector))&&ia(function(a){c.disconnectedMatch=s.call(a,"div"),s.call(a,"[s!='']:x"),r.push("!=",O)}),q=q.length&&new RegExp(q.join("|")),r=r.length&&new RegExp(r.join("|")),b=Z.test(o.compareDocumentPosition),t=b||Z.test(o.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)while(b=b.parentNode)if(b===a)return!0;return!1},B=b?function(a,b){if(a===b)return l=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===n||a.ownerDocument===v&&t(v,a)?-1:b===n||b.ownerDocument===v&&t(v,b)?1:k?J(k,a)-J(k,b):0:4&d?-1:1)}:function(a,b){if(a===b)return l=!0,0;var c,d=0,e=a.parentNode,f=b.parentNode,g=[a],h=[b];if(!e||!f)return a===n?-1:b===n?1:e?-1:f?1:k?J(k,a)-J(k,b):0;if(e===f)return ka(a,b);c=a;while(c=c.parentNode)g.unshift(c);c=b;while(c=c.parentNode)h.unshift(c);while(g[d]===h[d])d++;return d?ka(g[d],h[d]):g[d]===v?-1:h[d]===v?1:0},n):n},fa.matches=function(a,b){return fa(a,null,null,b)},fa.matchesSelector=function(a,b){if((a.ownerDocument||a)!==n&&m(a),b=b.replace(T,"='$1']"),c.matchesSelector&&p&&!A[b+" "]&&(!r||!r.test(b))&&(!q||!q.test(b)))try{var d=s.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return fa(b,n,null,[a]).length>0},fa.contains=function(a,b){return(a.ownerDocument||a)!==n&&m(a),t(a,b)},fa.attr=function(a,b){(a.ownerDocument||a)!==n&&m(a);var e=d.attrHandle[b.toLowerCase()],f=e&&D.call(d.attrHandle,b.toLowerCase())?e(a,b,!p):void 0;return void 0!==f?f:c.attributes||!p?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},fa.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},fa.uniqueSort=function(a){var b,d=[],e=0,f=0;if(l=!c.detectDuplicates,k=!c.sortStable&&a.slice(0),a.sort(B),l){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return k=null,a},e=fa.getText=function(a){var b,c="",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=fa.selectors={cacheLength:50,createPseudo:ha,match:W,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(ba,ca),a[3]=(a[3]||a[4]||a[5]||"").replace(ba,ca),"~="===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth"===a[1].slice(0,3)?(a[3]||fa.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&fa.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&&a[2];return W.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||"":c&&U.test(c)&&(b=g(c,!0))&&(b=c.indexOf(")",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(ba,ca).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=y[a+" "];return b||(b=new RegExp("(^|"+L+")"+a+"("+L+"|$)"))&&y(a,function(a){return b.test("string"==typeof a.className&&a.className||"undefined"!=typeof a.getAttribute&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){var e=fa.attr(d,a);return null==e?"!="===b:b?(e+="","="===b?e===c:"!="===b?e!==c:"^="===b?c&&0===e.indexOf(c):"*="===b?c&&e.indexOf(c)>-1:"$="===b?c&&e.slice(-c.length)===c:"~="===b?(" "+e.replace(P," ")+" ").indexOf(c)>-1:"|="===b?e===c||e.slice(0,c.length+1)===c+"-":!1):!0}},CHILD:function(a,b,c,d,e){var f="nth"!==a.slice(0,3),g="last"!==a.slice(-4),h="of-type"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling":"previousSibling",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),s=!i&&!h,t=!1;if(q){if(f){while(p){m=b;while(m=m[p])if(h?m.nodeName.toLowerCase()===r:1===m.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){m=q,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n&&j[2],m=n&&q.childNodes[n];while(m=++n&&m&&m[p]||(t=n=0)||o.pop())if(1===m.nodeType&&++t&&m===b){k[a]=[w,n,t];break}}else if(s&&(m=b,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n),t===!1)while(m=++n&&m&&m[p]||(t=n=0)||o.pop())if((h?m.nodeName.toLowerCase()===r:1===m.nodeType)&&++t&&(s&&(l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),k[a]=[w,t]),m===b))break;return t-=e,t===d||t%d===0&&t/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||fa.error("unsupported pseudo: "+a);return e[u]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?ha(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=J(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:ha(function(a){var b=[],c=[],d=h(a.replace(Q,"$1"));return d[u]?ha(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),b[0]=null,!c.pop()}}),has:ha(function(a){return function(b){return fa(a,b).length>0}}),contains:ha(function(a){return a=a.replace(ba,ca),function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:ha(function(a){return V.test(a||"")||fa.error("unsupported lang: "+a),a=a.replace(ba,ca).toLowerCase(),function(b){var c;do if(c=p?b.lang:b.getAttribute("xml:lang")||b.getAttribute("lang"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===o},focus:function(a){return a===n.activeElement&&(!n.hasFocus||n.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:function(a){return a.disabled===!1},disabled:function(a){return a.disabled===!0},checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return Y.test(a.nodeName)},input:function(a){return X.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:na(function(){return[0]}),last:na(function(a,b){return[b-1]}),eq:na(function(a,b,c){return[0>c?c+b:c]}),even:na(function(a,b){for(var c=0;b>c;c+=2)a.push(c);return a}),odd:na(function(a,b){for(var c=1;b>c;c+=2)a.push(c);return a}),lt:na(function(a,b,c){for(var d=0>c?c+b:c;--d>=0;)a.push(d);return a}),gt:na(function(a,b,c){for(var d=0>c?c+b:c;++db;b++)d+=a[b].value;return d}function ra(a,b,c){var d=b.dir,e=c&&"parentNode"===d,f=x++;return b.first?function(b,c,f){while(b=b[d])if(1===b.nodeType||e)return a(b,c,f)}:function(b,c,g){var h,i,j,k=[w,f];if(g){while(b=b[d])if((1===b.nodeType||e)&&a(b,c,g))return!0}else while(b=b[d])if(1===b.nodeType||e){if(j=b[u]||(b[u]={}),i=j[b.uniqueID]||(j[b.uniqueID]={}),(h=i[d])&&h[0]===w&&h[1]===f)return k[2]=h[2];if(i[d]=k,k[2]=a(b,c,g))return!0}}}function sa(a){return a.length>1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function ta(a,b,c){for(var d=0,e=b.length;e>d;d++)fa(a,b[d],c);return c}function ua(a,b,c,d,e){for(var f,g=[],h=0,i=a.length,j=null!=b;i>h;h++)(f=a[h])&&(c&&!c(f,d,e)||(g.push(f),j&&b.push(h)));return g}function va(a,b,c,d,e,f){return d&&!d[u]&&(d=va(d)),e&&!e[u]&&(e=va(e,f)),ha(function(f,g,h,i){var j,k,l,m=[],n=[],o=g.length,p=f||ta(b||"*",h.nodeType?[h]:h,[]),q=!a||!f&&b?p:ua(p,m,a,h,i),r=c?e||(f?a:o||d)?[]:g:q;if(c&&c(q,r,h,i),d){j=ua(r,n),d(j,[],h,i),k=j.length;while(k--)(l=j[k])&&(r[n[k]]=!(q[n[k]]=l))}if(f){if(e||a){if(e){j=[],k=r.length;while(k--)(l=r[k])&&j.push(q[k]=l);e(null,r=[],j,i)}k=r.length;while(k--)(l=r[k])&&(j=e?J(f,l):m[k])>-1&&(f[j]=!(g[j]=l))}}else r=ua(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):H.apply(g,r)})}function wa(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],h=g||d.relative[" "],i=g?1:0,k=ra(function(a){return a===b},h,!0),l=ra(function(a){return J(b,a)>-1},h,!0),m=[function(a,c,d){var e=!g&&(d||c!==j)||((b=c).nodeType?k(a,c,d):l(a,c,d));return b=null,e}];f>i;i++)if(c=d.relative[a[i].type])m=[ra(sa(m),c)];else{if(c=d.filter[a[i].type].apply(null,a[i].matches),c[u]){for(e=++i;f>e;e++)if(d.relative[a[e].type])break;return va(i>1&&sa(m),i>1&&qa(a.slice(0,i-1).concat({value:" "===a[i-2].type?"*":""})).replace(Q,"$1"),c,e>i&&wa(a.slice(i,e)),f>e&&wa(a=a.slice(e)),f>e&&qa(a))}m.push(c)}return sa(m)}function xa(a,b){var c=b.length>0,e=a.length>0,f=function(f,g,h,i,k){var l,o,q,r=0,s="0",t=f&&[],u=[],v=j,x=f||e&&d.find.TAG("*",k),y=w+=null==v?1:Math.random()||.1,z=x.length;for(k&&(j=g===n||g||k);s!==z&&null!=(l=x[s]);s++){if(e&&l){o=0,g||l.ownerDocument===n||(m(l),h=!p);while(q=a[o++])if(q(l,g||n,h)){i.push(l);break}k&&(w=y)}c&&((l=!q&&l)&&r--,f&&t.push(l))}if(r+=s,c&&s!==r){o=0;while(q=b[o++])q(t,u,g,h);if(f){if(r>0)while(s--)t[s]||u[s]||(u[s]=F.call(i));u=ua(u)}H.apply(i,u),k&&!f&&u.length>0&&r+b.length>1&&fa.uniqueSort(i)}return k&&(w=y,j=v),t};return c?ha(f):f}return h=fa.compile=function(a,b){var c,d=[],e=[],f=A[a+" "];if(!f){b||(b=g(a)),c=b.length;while(c--)f=wa(b[c]),f[u]?d.push(f):e.push(f);f=A(a,xa(e,d)),f.selector=a}return f},i=fa.select=function(a,b,e,f){var i,j,k,l,m,n="function"==typeof a&&a,o=!f&&g(a=n.selector||a);if(e=e||[],1===o.length){if(j=o[0]=o[0].slice(0),j.length>2&&"ID"===(k=j[0]).type&&c.getById&&9===b.nodeType&&p&&d.relative[j[1].type]){if(b=(d.find.ID(k.matches[0].replace(ba,ca),b)||[])[0],!b)return e;n&&(b=b.parentNode),a=a.slice(j.shift().value.length)}i=W.needsContext.test(a)?0:j.length;while(i--){if(k=j[i],d.relative[l=k.type])break;if((m=d.find[l])&&(f=m(k.matches[0].replace(ba,ca),_.test(j[0].type)&&oa(b.parentNode)||b))){if(j.splice(i,1),a=f.length&&qa(j),!a)return H.apply(e,f),e;break}}}return(n||h(a,o))(f,b,!p,e,!b||_.test(a)&&oa(b.parentNode)||b),e},c.sortStable=u.split("").sort(B).join("")===u,c.detectDuplicates=!!l,m(),c.sortDetached=ia(function(a){return 1&a.compareDocumentPosition(n.createElement("div"))}),ia(function(a){return a.innerHTML="","#"===a.firstChild.getAttribute("href")})||ja("type|href|height|width",function(a,b,c){return c?void 0:a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&ia(function(a){return a.innerHTML="",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||ja("value",function(a,b,c){return c||"input"!==a.nodeName.toLowerCase()?void 0:a.defaultValue}),ia(function(a){return null==a.getAttribute("disabled")})||ja(K,function(a,b,c){var d;return c?void 0:a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),fa}(a);n.find=t,n.expr=t.selectors,n.expr[":"]=n.expr.pseudos,n.uniqueSort=n.unique=t.uniqueSort,n.text=t.getText,n.isXMLDoc=t.isXML,n.contains=t.contains;var u=function(a,b,c){var d=[],e=void 0!==c;while((a=a[b])&&9!==a.nodeType)if(1===a.nodeType){if(e&&n(a).is(c))break;d.push(a)}return d},v=function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c},w=n.expr.match.needsContext,x=/^<([\w-]+)\s*\/?>(?:<\/\1>|)$/,y=/^.[^:#\[\.,]*$/;function z(a,b,c){if(n.isFunction(b))return n.grep(a,function(a,d){return!!b.call(a,d,a)!==c});if(b.nodeType)return n.grep(a,function(a){return a===b!==c});if("string"==typeof b){if(y.test(b))return n.filter(b,a,c);b=n.filter(b,a)}return n.grep(a,function(a){return n.inArray(a,b)>-1!==c})}n.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?n.find.matchesSelector(d,a)?[d]:[]:n.find.matches(a,n.grep(b,function(a){return 1===a.nodeType}))},n.fn.extend({find:function(a){var b,c=[],d=this,e=d.length;if("string"!=typeof a)return this.pushStack(n(a).filter(function(){for(b=0;e>b;b++)if(n.contains(d[b],this))return!0}));for(b=0;e>b;b++)n.find(a,d[b],c);return c=this.pushStack(e>1?n.unique(c):c),c.selector=this.selector?this.selector+" "+a:a,c},filter:function(a){return this.pushStack(z(this,a||[],!1))},not:function(a){return this.pushStack(z(this,a||[],!0))},is:function(a){return!!z(this,"string"==typeof a&&w.test(a)?n(a):a||[],!1).length}});var A,B=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,C=n.fn.init=function(a,b,c){var e,f;if(!a)return this;if(c=c||A,"string"==typeof a){if(e="<"===a.charAt(0)&&">"===a.charAt(a.length-1)&&a.length>=3?[null,a,null]:B.exec(a),!e||!e[1]&&b)return!b||b.jquery?(b||c).find(a):this.constructor(b).find(a);if(e[1]){if(b=b instanceof n?b[0]:b,n.merge(this,n.parseHTML(e[1],b&&b.nodeType?b.ownerDocument||b:d,!0)),x.test(e[1])&&n.isPlainObject(b))for(e in b)n.isFunction(this[e])?this[e](b[e]):this.attr(e,b[e]);return this}if(f=d.getElementById(e[2]),f&&f.parentNode){if(f.id!==e[2])return A.find(a);this.length=1,this[0]=f}return this.context=d,this.selector=a,this}return a.nodeType?(this.context=this[0]=a,this.length=1,this):n.isFunction(a)?"undefined"!=typeof c.ready?c.ready(a):a(n):(void 0!==a.selector&&(this.selector=a.selector,this.context=a.context),n.makeArray(a,this))};C.prototype=n.fn,A=n(d);var D=/^(?:parents|prev(?:Until|All))/,E={children:!0,contents:!0,next:!0,prev:!0};n.fn.extend({has:function(a){var b,c=n(a,this),d=c.length;return this.filter(function(){for(b=0;d>b;b++)if(n.contains(this,c[b]))return!0})},closest:function(a,b){for(var c,d=0,e=this.length,f=[],g=w.test(a)||"string"!=typeof a?n(a,b||this.context):0;e>d;d++)for(c=this[d];c&&c!==b;c=c.parentNode)if(c.nodeType<11&&(g?g.index(c)>-1:1===c.nodeType&&n.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?n.uniqueSort(f):f)},index:function(a){return a?"string"==typeof a?n.inArray(this[0],n(a)):n.inArray(a.jquery?a[0]:a,this):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(n.uniqueSort(n.merge(this.get(),n(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function F(a,b){do a=a[b];while(a&&1!==a.nodeType);return a}n.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return u(a,"parentNode")},parentsUntil:function(a,b,c){return u(a,"parentNode",c)},next:function(a){return F(a,"nextSibling")},prev:function(a){return F(a,"previousSibling")},nextAll:function(a){return u(a,"nextSibling")},prevAll:function(a){return u(a,"previousSibling")},nextUntil:function(a,b,c){return u(a,"nextSibling",c)},prevUntil:function(a,b,c){return u(a,"previousSibling",c)},siblings:function(a){return v((a.parentNode||{}).firstChild,a)},children:function(a){return v(a.firstChild)},contents:function(a){return n.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:n.merge([],a.childNodes)}},function(a,b){n.fn[a]=function(c,d){var e=n.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=n.filter(d,e)),this.length>1&&(E[a]||(e=n.uniqueSort(e)),D.test(a)&&(e=e.reverse())),this.pushStack(e)}});var G=/\S+/g;function H(a){var b={};return n.each(a.match(G)||[],function(a,c){b[c]=!0}),b}n.Callbacks=function(a){a="string"==typeof a?H(a):n.extend({},a);var b,c,d,e,f=[],g=[],h=-1,i=function(){for(e=a.once,d=b=!0;g.length;h=-1){c=g.shift();while(++h-1)f.splice(c,1),h>=c&&h--}),this},has:function(a){return a?n.inArray(a,f)>-1:f.length>0},empty:function(){return f&&(f=[]),this},disable:function(){return e=g=[],f=c="",this},disabled:function(){return!f},lock:function(){return e=!0,c||j.disable(),this},locked:function(){return!!e},fireWith:function(a,c){return e||(c=c||[],c=[a,c.slice?c.slice():c],g.push(c),b||i()),this},fire:function(){return j.fireWith(this,arguments),this},fired:function(){return!!d}};return j},n.extend({Deferred:function(a){var b=[["resolve","done",n.Callbacks("once memory"),"resolved"],["reject","fail",n.Callbacks("once memory"),"rejected"],["notify","progress",n.Callbacks("memory")]],c="pending",d={state:function(){return c},always:function(){return e.done(arguments).fail(arguments),this},then:function(){var a=arguments;return n.Deferred(function(c){n.each(b,function(b,f){var g=n.isFunction(a[b])&&a[b];e[f[1]](function(){var a=g&&g.apply(this,arguments);a&&n.isFunction(a.promise)?a.promise().progress(c.notify).done(c.resolve).fail(c.reject):c[f[0]+"With"](this===d?c.promise():this,g?[a]:arguments)})}),a=null}).promise()},promise:function(a){return null!=a?n.extend(a,d):d}},e={};return d.pipe=d.then,n.each(b,function(a,f){var g=f[2],h=f[3];d[f[1]]=g.add,h&&g.add(function(){c=h},b[1^a][2].disable,b[2][2].lock),e[f[0]]=function(){return e[f[0]+"With"](this===e?d:this,arguments),this},e[f[0]+"With"]=g.fireWith}),d.promise(e),a&&a.call(e,e),e},when:function(a){var b=0,c=e.call(arguments),d=c.length,f=1!==d||a&&n.isFunction(a.promise)?d:0,g=1===f?a:n.Deferred(),h=function(a,b,c){return function(d){b[a]=this,c[a]=arguments.length>1?e.call(arguments):d,c===i?g.notifyWith(b,c):--f||g.resolveWith(b,c)}},i,j,k;if(d>1)for(i=new Array(d),j=new Array(d),k=new Array(d);d>b;b++)c[b]&&n.isFunction(c[b].promise)?c[b].promise().progress(h(b,j,i)).done(h(b,k,c)).fail(g.reject):--f;return f||g.resolveWith(k,c),g.promise()}});var I;n.fn.ready=function(a){return n.ready.promise().done(a),this},n.extend({isReady:!1,readyWait:1,holdReady:function(a){a?n.readyWait++:n.ready(!0)},ready:function(a){(a===!0?--n.readyWait:n.isReady)||(n.isReady=!0,a!==!0&&--n.readyWait>0||(I.resolveWith(d,[n]),n.fn.triggerHandler&&(n(d).triggerHandler("ready"),n(d).off("ready"))))}});function J(){d.addEventListener?(d.removeEventListener("DOMContentLoaded",K),a.removeEventListener("load",K)):(d.detachEvent("onreadystatechange",K),a.detachEvent("onload",K))}function K(){(d.addEventListener||"load"===a.event.type||"complete"===d.readyState)&&(J(),n.ready())}n.ready.promise=function(b){if(!I)if(I=n.Deferred(),"complete"===d.readyState||"loading"!==d.readyState&&!d.documentElement.doScroll)a.setTimeout(n.ready);else if(d.addEventListener)d.addEventListener("DOMContentLoaded",K),a.addEventListener("load",K);else{d.attachEvent("onreadystatechange",K),a.attachEvent("onload",K);var c=!1;try{c=null==a.frameElement&&d.documentElement}catch(e){}c&&c.doScroll&&!function f(){if(!n.isReady){try{c.doScroll("left")}catch(b){return a.setTimeout(f,50)}J(),n.ready()}}()}return I.promise(b)},n.ready.promise();var L;for(L in n(l))break;l.ownFirst="0"===L,l.inlineBlockNeedsLayout=!1,n(function(){var a,b,c,e;c=d.getElementsByTagName("body")[0],c&&c.style&&(b=d.createElement("div"),e=d.createElement("div"),e.style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px",c.appendChild(e).appendChild(b),"undefined"!=typeof b.style.zoom&&(b.style.cssText="display:inline;margin:0;border:0;padding:1px;width:1px;zoom:1",l.inlineBlockNeedsLayout=a=3===b.offsetWidth,a&&(c.style.zoom=1)),c.removeChild(e))}),function(){var a=d.createElement("div");l.deleteExpando=!0;try{delete a.test}catch(b){l.deleteExpando=!1}a=null}();var M=function(a){var b=n.noData[(a.nodeName+" ").toLowerCase()],c=+a.nodeType||1;return 1!==c&&9!==c?!1:!b||b!==!0&&a.getAttribute("classid")===b},N=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,O=/([A-Z])/g;function P(a,b,c){if(void 0===c&&1===a.nodeType){var d="data-"+b.replace(O,"-$1").toLowerCase();if(c=a.getAttribute(d),"string"==typeof c){try{c="true"===c?!0:"false"===c?!1:"null"===c?null:+c+""===c?+c:N.test(c)?n.parseJSON(c):c}catch(e){}n.data(a,b,c)}else c=void 0; -}return c}function Q(a){var b;for(b in a)if(("data"!==b||!n.isEmptyObject(a[b]))&&"toJSON"!==b)return!1;return!0}function R(a,b,d,e){if(M(a)){var f,g,h=n.expando,i=a.nodeType,j=i?n.cache:a,k=i?a[h]:a[h]&&h;if(k&&j[k]&&(e||j[k].data)||void 0!==d||"string"!=typeof b)return k||(k=i?a[h]=c.pop()||n.guid++:h),j[k]||(j[k]=i?{}:{toJSON:n.noop}),"object"!=typeof b&&"function"!=typeof b||(e?j[k]=n.extend(j[k],b):j[k].data=n.extend(j[k].data,b)),g=j[k],e||(g.data||(g.data={}),g=g.data),void 0!==d&&(g[n.camelCase(b)]=d),"string"==typeof b?(f=g[b],null==f&&(f=g[n.camelCase(b)])):f=g,f}}function S(a,b,c){if(M(a)){var d,e,f=a.nodeType,g=f?n.cache:a,h=f?a[n.expando]:n.expando;if(g[h]){if(b&&(d=c?g[h]:g[h].data)){n.isArray(b)?b=b.concat(n.map(b,n.camelCase)):b in d?b=[b]:(b=n.camelCase(b),b=b in d?[b]:b.split(" ")),e=b.length;while(e--)delete d[b[e]];if(c?!Q(d):!n.isEmptyObject(d))return}(c||(delete g[h].data,Q(g[h])))&&(f?n.cleanData([a],!0):l.deleteExpando||g!=g.window?delete g[h]:g[h]=void 0)}}}n.extend({cache:{},noData:{"applet ":!0,"embed ":!0,"object ":"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"},hasData:function(a){return a=a.nodeType?n.cache[a[n.expando]]:a[n.expando],!!a&&!Q(a)},data:function(a,b,c){return R(a,b,c)},removeData:function(a,b){return S(a,b)},_data:function(a,b,c){return R(a,b,c,!0)},_removeData:function(a,b){return S(a,b,!0)}}),n.fn.extend({data:function(a,b){var c,d,e,f=this[0],g=f&&f.attributes;if(void 0===a){if(this.length&&(e=n.data(f),1===f.nodeType&&!n._data(f,"parsedAttrs"))){c=g.length;while(c--)g[c]&&(d=g[c].name,0===d.indexOf("data-")&&(d=n.camelCase(d.slice(5)),P(f,d,e[d])));n._data(f,"parsedAttrs",!0)}return e}return"object"==typeof a?this.each(function(){n.data(this,a)}):arguments.length>1?this.each(function(){n.data(this,a,b)}):f?P(f,a,n.data(f,a)):void 0},removeData:function(a){return this.each(function(){n.removeData(this,a)})}}),n.extend({queue:function(a,b,c){var d;return a?(b=(b||"fx")+"queue",d=n._data(a,b),c&&(!d||n.isArray(c)?d=n._data(a,b,n.makeArray(c)):d.push(c)),d||[]):void 0},dequeue:function(a,b){b=b||"fx";var c=n.queue(a,b),d=c.length,e=c.shift(),f=n._queueHooks(a,b),g=function(){n.dequeue(a,b)};"inprogress"===e&&(e=c.shift(),d--),e&&("fx"===b&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return n._data(a,c)||n._data(a,c,{empty:n.Callbacks("once memory").add(function(){n._removeData(a,b+"queue"),n._removeData(a,c)})})}}),n.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.lengthh;h++)b(a[h],c,g?d:d.call(a[h],h,b(a[h],c)));return e?a:j?b.call(a):i?b(a[0],c):f},Z=/^(?:checkbox|radio)$/i,$=/<([\w:-]+)/,_=/^$|\/(?:java|ecma)script/i,aa=/^\s+/,ba="abbr|article|aside|audio|bdi|canvas|data|datalist|details|dialog|figcaption|figure|footer|header|hgroup|main|mark|meter|nav|output|picture|progress|section|summary|template|time|video";function ca(a){var b=ba.split("|"),c=a.createDocumentFragment();if(c.createElement)while(b.length)c.createElement(b.pop());return c}!function(){var a=d.createElement("div"),b=d.createDocumentFragment(),c=d.createElement("input");a.innerHTML="
    a",l.leadingWhitespace=3===a.firstChild.nodeType,l.tbody=!a.getElementsByTagName("tbody").length,l.htmlSerialize=!!a.getElementsByTagName("link").length,l.html5Clone="<:nav>"!==d.createElement("nav").cloneNode(!0).outerHTML,c.type="checkbox",c.checked=!0,b.appendChild(c),l.appendChecked=c.checked,a.innerHTML="",l.noCloneChecked=!!a.cloneNode(!0).lastChild.defaultValue,b.appendChild(a),c=d.createElement("input"),c.setAttribute("type","radio"),c.setAttribute("checked","checked"),c.setAttribute("name","t"),a.appendChild(c),l.checkClone=a.cloneNode(!0).cloneNode(!0).lastChild.checked,l.noCloneEvent=!!a.addEventListener,a[n.expando]=1,l.attributes=!a.getAttribute(n.expando)}();var da={option:[1,""],legend:[1,"